diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-01-08 13:06:41 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-01-08 13:01:55 +0000 |
commit | 09adb30a8e93187e1780700d1c756a553c9265aa (patch) | |
tree | e1fd3418a42626120d18852902beb19393467f01 | |
parent | 88c6d2d5841f7d573e98e97148e67374fc11a3f0 (diff) |
Qt Designer: Fix potential crashes when using findChild<>
Extends 3f600283ecc9cfcfc65eabd305ad36fbce55dbce.
Task-number: QTBUG-89926
Change-Id: Iac2adc26dff190380c4c8cf5610ebc0132efde2d
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
(cherry picked from commit e7af10cfabeac5d049130f137f54a0b0c9f6fdc4)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
3 files changed, 4 insertions, 2 deletions
diff --git a/src/designer/src/components/buddyeditor/buddyeditor.cpp b/src/designer/src/components/buddyeditor/buddyeditor.cpp index b31e2830b..7ad6c9eec 100644 --- a/src/designer/src/components/buddyeditor/buddyeditor.cpp +++ b/src/designer/src/components/buddyeditor/buddyeditor.cpp @@ -218,6 +218,8 @@ void BuddyEditor::setBackground(QWidget *background) const QString buddy_name = buddy(label, m_formWindow->core()); if (buddy_name.isEmpty()) continue; + if (background == nullptr) + continue; QWidget *target = background->findChild<QWidget*>(buddy_name); if (target == nullptr) continue; diff --git a/src/designer/src/components/formeditor/qdesigner_resource.cpp b/src/designer/src/components/formeditor/qdesigner_resource.cpp index 1f00cf906..9b4fd2434 100644 --- a/src/designer/src/components/formeditor/qdesigner_resource.cpp +++ b/src/designer/src/components/formeditor/qdesigner_resource.cpp @@ -1287,7 +1287,7 @@ DomTabStops *QDesignerResource::saveTabStops() void QDesignerResource::applyTabStops(QWidget *widget, DomTabStops *tabStops) { - if (!tabStops) + if (tabStops == nullptr || widget == nullptr) return; QWidgetList tabOrder; diff --git a/src/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp b/src/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp index 5570c141c..1ed2e9da2 100644 --- a/src/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp +++ b/src/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp @@ -743,7 +743,7 @@ void SignalSlotEditorWindow::setActiveFormWindow(QDesignerFormWindowInterface *f } } - m_editor = form->findChild<SignalSlotEditor*>(); + m_editor = form ? form->findChild<SignalSlotEditor*>() : nullptr; m_model->setEditor(m_editor); if (!m_editor.isNull()) { ConnectionDelegate *delegate |