summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/QtSoundSelectionStyledItemDelegate.cpp')
-rw-r--r--Swift/QtUI/QtSoundSelectionStyledItemDelegate.cpp10
1 files changed, 0 insertions, 10 deletions
diff --git a/Swift/QtUI/QtSoundSelectionStyledItemDelegate.cpp b/Swift/QtUI/QtSoundSelectionStyledItemDelegate.cpp
index 3811004..03af455 100644
--- a/Swift/QtUI/QtSoundSelectionStyledItemDelegate.cpp
+++ b/Swift/QtUI/QtSoundSelectionStyledItemDelegate.cpp
@@ -56,56 +56,46 @@ void QtSoundSelectionStyledItemDelegate::paint(QPainter* painter, const QStyleOp
QApplication::style()->drawControl(QStyle::CE_ComboBoxLabel, &opt, painter);
painter->restore();
}
bool QtSoundSelectionStyledItemDelegate::editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& /*option*/, const QModelIndex& index) {
if (event->type() == QEvent::MouseButtonRelease) {
auto mouseEvent = dynamic_cast<QMouseEvent*>(event);
assert(mouseEvent);
auto editRoleString = index.data(Qt::EditRole).toString();
auto popUpMenu = new QMenu();
auto noSound = popUpMenu->addAction(tr("No sound"));
auto defaultSound = popUpMenu->addAction(tr("Default sound"));
QAction* customSoundFile = nullptr;
QAction* selectedAction = nullptr;
if (editRoleString.isEmpty()) {
selectedAction = noSound;
}
else if (editRoleString == "defaultSound") {
selectedAction = defaultSound;
}
else {
customSoundFile = popUpMenu->addAction(editRoleString);
selectedAction = customSoundFile;
}
if (selectedAction) {
selectedAction->setCheckable(true);
selectedAction->setChecked(true);
}
- auto chooseSoundFile = popUpMenu->addAction(tr("Choose sound file…"));
selectedAction = popUpMenu->exec(mouseEvent->globalPos(), selectedAction);
if (selectedAction == defaultSound) {
model->setData(index, "defaultSound", Qt::EditRole);
}
- else if (customSoundFile && (selectedAction == customSoundFile)) {
- model->setData(index, customSoundFile->text(), Qt::EditRole);
- }
else if (selectedAction == noSound) {
model->setData(index, "", Qt::EditRole);
}
- else if (selectedAction == chooseSoundFile) {
- auto newPath = QFileDialog::getOpenFileName(0, tr("Choose notification sound file"), "", tr("WAV Files (*.wav)"));
- if (!newPath.isEmpty()) {
- model->setData(index, newPath, Qt::EditRole);
- }
- }
delete popUpMenu;
}
return true;
}
};