summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-05-24 11:42:25 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-05-29 08:33:50 +0000
commit9f3354218321c326c05f9d4627c462c781d1714e (patch)
tree64d9b05dda7000ef111cfa78fc6d3d6d113ba7b8 /src
parentf9dbcb724f8ea735532620db9859ea8cc9a74e6d (diff)
Qt Designer: Fix crash in "Go to slot" dialog when no signal is selected
Add a check for the selection. Task-number: QTBUG-61009 Change-Id: Ic99d8ca2b9b838b2cb24f1cf4b259c38e2a6f1ca Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/designer/src/lib/shared/qdesigner_taskmenu.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/designer/src/lib/shared/qdesigner_taskmenu.cpp b/src/designer/src/lib/shared/qdesigner_taskmenu.cpp
index f0d40161c..946673553 100644
--- a/src/designer/src/lib/shared/qdesigner_taskmenu.cpp
+++ b/src/designer/src/lib/shared/qdesigner_taskmenu.cpp
@@ -707,14 +707,17 @@ void QDesignerTaskMenu::navigateToSlot(QDesignerFormEditorInterface *core,
dialogUi.signalList->resizeColumnToContents(0);
- if (selectSignalDialog.exec() == QDialog::Accepted) {
- QTreeWidgetItem *selectedItem = dialogUi.signalList->selectedItems().first();
- const QString signalSignature = selectedItem->text(0);
- const QStringList parameterNames = qvariant_cast<QStringList>(selectedItem->data(0, Qt::UserRole));
+ if (selectSignalDialog.exec() != QDialog::Accepted)
+ return;
+ const QList<QTreeWidgetItem *> &selectedItems = dialogUi.signalList->selectedItems();
+ if (selectedItems.isEmpty())
+ return;
+ const QTreeWidgetItem *selectedItem = selectedItems.constFirst();
+ const QString signalSignature = selectedItem->text(0);
+ const QStringList parameterNames = qvariant_cast<QStringList>(selectedItem->data(0, Qt::UserRole));
- // TODO: Check whether signal is connected to slot
- core->integration()->emitNavigateToSlot(objectName, signalSignature, parameterNames);
- }
+ // TODO: Check whether signal is connected to slot
+ core->integration()->emitNavigateToSlot(objectName, signalSignature, parameterNames);
}
// Add a command that takes over the value of the current geometry as