summaryrefslogtreecommitdiffstats
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 09:27:13 +0000
commit705d06c2841ef5d9ebda954c112fc8f1e32ec2cb (patch)
treeb51344fd1bff40bed1f9863eade897c1385cfb66
parenta4f656126803b6cfac8ac4b442ee975562145b73 (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> (cherry picked from commit 9f3354218321c326c05f9d4627c462c781d1714e)
-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 fad08b1e1..f628b6fc0 100644
--- a/src/designer/src/lib/shared/qdesigner_taskmenu.cpp
+++ b/src/designer/src/lib/shared/qdesigner_taskmenu.cpp
@@ -737,14 +737,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