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);
|
||||
|
||||
if (backendObjectCasted)
|
||||
m_path = backendObjectCasted->qmlItemNode().modelNode().model()->fileUrl();
|
||||
m_path = backendObjectCasted->qmlObjectNode().modelNode().model()->fileUrl();
|
||||
|
||||
setupModel();
|
||||
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();
|
||||
}
|
||||
@@ -57,44 +57,44 @@ void QmlModelNodeProxy::emitSelectionChanged()
|
||||
emit selectionChanged();
|
||||
}
|
||||
|
||||
QmlItemNode QmlModelNodeProxy::qmlItemNode() const
|
||||
QmlObjectNode QmlModelNodeProxy::qmlObjectNode() const
|
||||
{
|
||||
return m_qmlItemNode;
|
||||
return m_qmlObjectNode;
|
||||
}
|
||||
|
||||
ModelNode QmlModelNodeProxy::modelNode() const
|
||||
{
|
||||
return m_qmlItemNode.modelNode();
|
||||
return m_qmlObjectNode.modelNode();
|
||||
}
|
||||
|
||||
bool QmlModelNodeProxy::multiSelection() const
|
||||
{
|
||||
if (!m_qmlItemNode.isValid())
|
||||
if (!m_qmlObjectNode.isValid())
|
||||
return false;
|
||||
|
||||
return m_qmlItemNode.view()->selectedModelNodes().count() > 1;
|
||||
return m_qmlObjectNode.view()->selectedModelNodes().count() > 1;
|
||||
}
|
||||
|
||||
QString QmlModelNodeProxy::nodeId() const
|
||||
{
|
||||
if (!m_qmlItemNode.isValid())
|
||||
if (!m_qmlObjectNode.isValid())
|
||||
return {};
|
||||
|
||||
if (multiSelection())
|
||||
return tr("multiselection");
|
||||
|
||||
return m_qmlItemNode.id();
|
||||
return m_qmlObjectNode.id();
|
||||
}
|
||||
|
||||
QString QmlModelNodeProxy::simplifiedTypeName() const
|
||||
{
|
||||
if (!m_qmlItemNode.isValid())
|
||||
if (!m_qmlObjectNode.isValid())
|
||||
return {};
|
||||
|
||||
if (multiSelection())
|
||||
return tr("multiselection");
|
||||
|
||||
return m_qmlItemNode.simplifiedTypeName();
|
||||
return m_qmlObjectNode.simplifiedTypeName();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -41,14 +41,14 @@ class QmlModelNodeProxy : public QObject
|
||||
public:
|
||||
explicit QmlModelNodeProxy(QObject *parent = nullptr);
|
||||
|
||||
void setup(const QmlItemNode &itemNode);
|
||||
void setup(const QmlObjectNode &objectNode);
|
||||
|
||||
static void registerDeclarativeType();
|
||||
|
||||
void emitSelectionToBeChanged();
|
||||
void emitSelectionChanged();
|
||||
|
||||
QmlItemNode qmlItemNode() const;
|
||||
QmlObjectNode qmlObjectNode() const;
|
||||
|
||||
ModelNode modelNode() const;
|
||||
|
||||
@@ -64,7 +64,7 @@ signals:
|
||||
void selectionChanged();
|
||||
|
||||
private:
|
||||
QmlItemNode m_qmlItemNode;
|
||||
QmlObjectNode m_qmlObjectNode;
|
||||
};
|
||||
|
||||
} //QmlDesigner
|
||||
|
Reference in New Issue
Block a user