QmlDesigner: Use QmlObjectNode in QmlModelNodeProxy

Selected nodes in the property editor do not have to be items.

Change-Id: I0d4fff7f3069640ceb1c17f3d755abb340575667
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Thomas Hartmann
2019-09-05 15:24:51 +02:00
parent 9ca9a7e4a6
commit 6e6ee2e9cb
3 changed files with 15 additions and 15 deletions

View File

@@ -49,7 +49,7 @@ void FileResourcesModel::setModelNodeBackend(const QVariant &modelNodeBackend)
qobject_cast<const QmlDesigner::QmlModelNodeProxy *>(modelNodeBackendObject); qobject_cast<const QmlDesigner::QmlModelNodeProxy *>(modelNodeBackendObject);
if (backendObjectCasted) if (backendObjectCasted)
m_path = backendObjectCasted->qmlItemNode().modelNode().model()->fileUrl(); m_path = backendObjectCasted->qmlObjectNode().modelNode().model()->fileUrl();
setupModel(); setupModel();
emit modelNodeBackendChanged(); emit modelNodeBackendChanged();

View File

@@ -35,9 +35,9 @@ QmlModelNodeProxy::QmlModelNodeProxy(QObject *parent) :
{ {
} }
void QmlModelNodeProxy::setup(const QmlItemNode &itemNode) void QmlModelNodeProxy::setup(const QmlObjectNode &objectNode)
{ {
m_qmlItemNode = itemNode; m_qmlObjectNode = objectNode;
emit modelNodeChanged(); emit modelNodeChanged();
} }
@@ -57,44 +57,44 @@ void QmlModelNodeProxy::emitSelectionChanged()
emit selectionChanged(); emit selectionChanged();
} }
QmlItemNode QmlModelNodeProxy::qmlItemNode() const QmlObjectNode QmlModelNodeProxy::qmlObjectNode() const
{ {
return m_qmlItemNode; return m_qmlObjectNode;
} }
ModelNode QmlModelNodeProxy::modelNode() const ModelNode QmlModelNodeProxy::modelNode() const
{ {
return m_qmlItemNode.modelNode(); return m_qmlObjectNode.modelNode();
} }
bool QmlModelNodeProxy::multiSelection() const bool QmlModelNodeProxy::multiSelection() const
{ {
if (!m_qmlItemNode.isValid()) if (!m_qmlObjectNode.isValid())
return false; return false;
return m_qmlItemNode.view()->selectedModelNodes().count() > 1; return m_qmlObjectNode.view()->selectedModelNodes().count() > 1;
} }
QString QmlModelNodeProxy::nodeId() const QString QmlModelNodeProxy::nodeId() const
{ {
if (!m_qmlItemNode.isValid()) if (!m_qmlObjectNode.isValid())
return {}; return {};
if (multiSelection()) if (multiSelection())
return tr("multiselection"); return tr("multiselection");
return m_qmlItemNode.id(); return m_qmlObjectNode.id();
} }
QString QmlModelNodeProxy::simplifiedTypeName() const QString QmlModelNodeProxy::simplifiedTypeName() const
{ {
if (!m_qmlItemNode.isValid()) if (!m_qmlObjectNode.isValid())
return {}; return {};
if (multiSelection()) if (multiSelection())
return tr("multiselection"); return tr("multiselection");
return m_qmlItemNode.simplifiedTypeName(); return m_qmlObjectNode.simplifiedTypeName();
} }
} }

View File

@@ -41,14 +41,14 @@ class QmlModelNodeProxy : public QObject
public: public:
explicit QmlModelNodeProxy(QObject *parent = nullptr); explicit QmlModelNodeProxy(QObject *parent = nullptr);
void setup(const QmlItemNode &itemNode); void setup(const QmlObjectNode &objectNode);
static void registerDeclarativeType(); static void registerDeclarativeType();
void emitSelectionToBeChanged(); void emitSelectionToBeChanged();
void emitSelectionChanged(); void emitSelectionChanged();
QmlItemNode qmlItemNode() const; QmlObjectNode qmlObjectNode() const;
ModelNode modelNode() const; ModelNode modelNode() const;
@@ -64,7 +64,7 @@ signals:
void selectionChanged(); void selectionChanged();
private: private:
QmlItemNode m_qmlItemNode; QmlObjectNode m_qmlObjectNode;
}; };
} //QmlDesigner } //QmlDesigner