From 8f141a8e26e67b61da62a967b4e87eebb508e2a0 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 7 Jul 2022 19:02:41 +0200 Subject: [PATCH] QmlDesigner: Add instance to ConnectionView and make methods public This allows to use the model from the property editor. We do not implement the instance as singleton but use the View Manager. Change-Id: I2d95235a31d4a776411336ef82ace0f230c9971f Reviewed-by: Qt CI Bot Reviewed-by: Thomas Hartmann --- .../connectioneditor/connectionview.cpp | 23 +++++++++++++++++++ .../connectioneditor/connectionview.h | 5 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp b/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp index 4884925c0e3..b174cafe6db 100644 --- a/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp +++ b/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp @@ -35,6 +35,10 @@ #include #include #include +#include +#include + +#include #include @@ -268,6 +272,25 @@ BackendModel *ConnectionView::backendModel() const return m_backendModel; } +ConnectionView *ConnectionView::instance() +{ + + static ConnectionView *s_instance = nullptr; + + if (s_instance) + return s_instance; + + const auto views = QmlDesignerPlugin::instance()->viewManager().views(); + for (auto *view : views) { + ConnectionView *myView = qobject_cast(view); + if (myView) + s_instance = myView; + } + + QTC_ASSERT(s_instance, return nullptr); + return s_instance; +} + } // namesapce Internal } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/connectioneditor/connectionview.h b/src/plugins/qmldesigner/components/connectioneditor/connectionview.h index fb934ba3855..7bf3064f830 100644 --- a/src/plugins/qmldesigner/components/connectioneditor/connectionview.h +++ b/src/plugins/qmldesigner/components/connectioneditor/connectionview.h @@ -83,13 +83,14 @@ public: QTableView *dynamicPropertiesTableView() const; QTableView *backendView() const; -protected: + DynamicPropertiesModel *dynamicPropertiesModel() const; + ConnectionViewWidget *connectionViewWidget() const; ConnectionModel *connectionModel() const; BindingModel *bindingModel() const; - DynamicPropertiesModel *dynamicPropertiesModel() const; BackendModel *backendModel() const; + static ConnectionView *instance(); private: //variables QPointer m_connectionViewWidget;