forked from qt-creator/qt-creator
QmlDesigner: Allow using selected node in QmlModelNodeProxy::moveNode()
Change-Id: I4c08a3fbfe750a8a9673828acfe542f9b8365e66
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
(cherry picked from commit 1f24a2fa4a
)
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -161,13 +161,12 @@ void QmlModelNodeProxy::createModelNode(int internalIdParent,
|
|||||||
const QString &typeName,
|
const QString &typeName,
|
||||||
const QString &requiredImport)
|
const QString &requiredImport)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_qmlObjectNode.isValid(), return );
|
|
||||||
|
|
||||||
auto modelNode = m_qmlObjectNode.modelNode();
|
|
||||||
|
|
||||||
AbstractView *view = modelNode.view();
|
|
||||||
|
|
||||||
auto parentModelNode = m_qmlObjectNode.modelNode();
|
auto parentModelNode = m_qmlObjectNode.modelNode();
|
||||||
|
|
||||||
|
QTC_ASSERT(parentModelNode.isValid(), return );
|
||||||
|
|
||||||
|
AbstractView *view = parentModelNode.view();
|
||||||
|
|
||||||
if (internalIdParent >= 0)
|
if (internalIdParent >= 0)
|
||||||
parentModelNode = view->modelNodeForInternalId(internalIdParent);
|
parentModelNode = view->modelNodeForInternalId(internalIdParent);
|
||||||
|
|
||||||
@@ -186,7 +185,7 @@ void QmlModelNodeProxy::createModelNode(int internalIdParent,
|
|||||||
#ifdef QDS_USE_PROJECTSTORAGE
|
#ifdef QDS_USE_PROJECTSTORAGE
|
||||||
ModelNode newNode = view->createModelNode(typeName.toUtf8());
|
ModelNode newNode = view->createModelNode(typeName.toUtf8());
|
||||||
#else
|
#else
|
||||||
NodeMetaInfo metaInfo = modelNode.model()->metaInfo(typeName.toUtf8());
|
NodeMetaInfo metaInfo = parentModelNode.model()->metaInfo(typeName.toUtf8());
|
||||||
ModelNode newNode = view->createModelNode(metaInfo.typeName(),
|
ModelNode newNode = view->createModelNode(metaInfo.typeName(),
|
||||||
metaInfo.majorVersion(),
|
metaInfo.majorVersion(),
|
||||||
metaInfo.minorVersion());
|
metaInfo.minorVersion());
|
||||||
@@ -200,14 +199,17 @@ void QmlModelNodeProxy::moveNode(int internalIdParent,
|
|||||||
int fromIndex,
|
int fromIndex,
|
||||||
int toIndex)
|
int toIndex)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_qmlObjectNode.isValid(), return );
|
ModelNode modelNode = m_qmlObjectNode.modelNode();
|
||||||
|
|
||||||
ModelNode node = m_qmlObjectNode.view()->modelNodeForInternalId(internalIdParent);
|
QTC_ASSERT(modelNode.isValid(), return );
|
||||||
|
|
||||||
QTC_ASSERT(node.isValid(), return );
|
if (internalIdParent >= 0)
|
||||||
|
modelNode = m_qmlObjectNode.view()->modelNodeForInternalId(internalIdParent);
|
||||||
|
|
||||||
|
QTC_ASSERT(modelNode.isValid(), return );
|
||||||
AbstractView *view = m_qmlObjectNode.view();
|
AbstractView *view = m_qmlObjectNode.view();
|
||||||
view->executeInTransaction("QmlModelNodeProxy::swapNode", [&] {
|
view->executeInTransaction("QmlModelNodeProxy::moveNode", [&] {
|
||||||
node.nodeListProperty(propertyName.toUtf8()).slide(fromIndex, toIndex);
|
modelNode.nodeListProperty(propertyName.toUtf8()).slide(fromIndex, toIndex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user