diff --git a/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp b/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp index c947d8e1559..76db41a177e 100644 --- a/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp +++ b/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp @@ -65,7 +65,7 @@ void saveBackgroundColorConfiguration(const QList &colorConfig) } // namespace -QPointer BackgroundColorSelection::createDialog(QWidget *parent) +QColorDialog *BackgroundColorSelection::createDialog(QWidget *parent) { auto dialog = new QColorDialog(parent); @@ -100,4 +100,8 @@ void BackgroundColorSelection::showBackgroundColorSelectionWidget(QWidget *paren m_dialog = BackgroundColorSelection::createDialog(parent); QTC_ASSERT(m_dialog, return); + + QObject::connect(m_dialog, &QWidget::destroyed, m_dialog, [&]() { + m_dialog = nullptr; + }); } diff --git a/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.h b/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.h index d90693f03c5..d8832f40fda 100644 --- a/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.h +++ b/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.h @@ -40,8 +40,8 @@ public: static void showBackgroundColorSelectionWidget(QWidget *parent); private: - static QPointer createDialog(QWidget *parent); - inline static QPointer m_dialog; + static QColorDialog *createDialog(QWidget *parent); + inline static QColorDialog *m_dialog = nullptr; }; } // namespace QmlDesigner