From 548a75049efaa3f9b3087016e3e36cc9b4f23e2e Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 28 May 2018 14:00:21 +0200 Subject: Qt Designer: Fix crash when morphing widgets with buddies Bail out of PropertyEditor::setObject() when no form window can be found for the current widget, which can happen when setting the buddy property in morph macro sequences. Task-number: QTBUG-68507 Change-Id: I61955121d57e1c18e2ccf93d63e51d2df24f0827 Reviewed-by: Jarek Kobus --- src/designer/src/components/propertyeditor/propertyeditor.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/designer/src/components/propertyeditor/propertyeditor.cpp b/src/designer/src/components/propertyeditor/propertyeditor.cpp index 2fc1ff415..a0d0a53d4 100644 --- a/src/designer/src/components/propertyeditor/propertyeditor.cpp +++ b/src/designer/src/components/propertyeditor/propertyeditor.cpp @@ -911,6 +911,8 @@ void PropertyEditor::setObject(QObject *object) m_object = object; m_propertyManager->setObject(object); QDesignerFormWindowInterface *formWindow = QDesignerFormWindowInterface::findFormWindow(m_object); + if (Q_UNLIKELY(formWindow == nullptr)) // QTBUG-68507, can happen in Morph Undo macros with buddies + return; FormWindowBase *fwb = qobject_cast(formWindow); const bool idIdBasedTranslation = fwb && fwb->useIdBasedTranslations(); const bool idIdBasedTranslationUnchanged = (idIdBasedTranslation == DesignerPropertyManager::useIdBasedTranslations()); -- cgit v1.2.1