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 08:33:50 +0000 |
commit | 9f3354218321c326c05f9d4627c462c781d1714e (patch) | |
tree | 64d9b05dda7000ef111cfa78fc6d3d6d113ba7b8 /src | |
parent | f9dbcb724f8ea735532620db9859ea8cc9a74e6d (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.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 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 |