forked from qt-creator/qt-creator
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:
@@ -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();
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user