diff --git a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp index a957d145b5d..b18f871c780 100644 --- a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp +++ b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp @@ -48,6 +48,8 @@ #include +#include + namespace QmlDesigner { static Internal::DesignModeWidget *designModeWidget() @@ -349,6 +351,10 @@ void ActionSubscriber::setupNotifier() emit tooltipChanged(); } +#ifdef DVCONNECTOR_ENABLED +static std::unique_ptr s_designViewerConnector; +#endif + ToolBarBackend::ToolBarBackend(QObject *parent) : QObject(parent) { @@ -929,7 +935,10 @@ QString ToolBarBackend::runManagerError() const #ifdef DVCONNECTOR_ENABLED DesignViewer::DVConnector *ToolBarBackend::designViewerConnector() { - return &m_designViewerConnector; + if (!s_designViewerConnector) + s_designViewerConnector = std::make_unique(); + + return s_designViewerConnector.get(); } #endif diff --git a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h index b3330a15eef..864e781348f 100644 --- a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h +++ b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h @@ -232,9 +232,6 @@ private: QStringList m_openDocuments; QMetaObject::Connection m_kitConnection; -#ifdef DVCONNECTOR_ENABLED - DesignViewer::DVConnector m_designViewerConnector; -#endif }; } // namespace QmlDesigner