diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-05-24 11:42:25 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-05-29 09:27:13 +0000 |
commit | 705d06c2841ef5d9ebda954c112fc8f1e32ec2cb (patch) | |
tree | b51344fd1bff40bed1f9863eade897c1385cfb66 | |
parent | a4f656126803b6cfac8ac4b442ee975562145b73 (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.cpp | 17 |
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 |