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 <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Thomas Hartmann
2022-07-07 19:02:41 +02:00
parent 7c79e18831
commit 8f141a8e26
2 changed files with 26 additions and 2 deletions

View File

@@ -35,6 +35,10 @@
#include <nodeabstractproperty.h>
#include <variantproperty.h>
#include <signalhandlerproperty.h>
#include <qmldesignerplugin.h>
#include <viewmanager.h>
#include <utils/qtcassert.h>
#include <QTableView>
@@ -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<ConnectionView*>(view);
if (myView)
s_instance = myView;
}
QTC_ASSERT(s_instance, return nullptr);
return s_instance;
}
} // namesapce Internal
} // namespace QmlDesigner

View File

@@ -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<ConnectionViewWidget> m_connectionViewWidget;