QmlDesigner: Split nodeOrderChanged notifier

For swap we cannot provide all the arguments and they are only used in the
rewriter. So we use now a simplified notifier for all views except the
rewriter view. After the introduction of the new rewriter we can remove
the old notifier.

Task-number: QDS-4159
Change-Id: Idc91a618ea40da0bda9856888d115a84016597d5
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Marco Bubke
2021-04-14 12:37:43 +02:00
parent 7eb9d8cb60
commit 2e8e47622c
21 changed files with 56 additions and 40 deletions

View File

@@ -112,7 +112,7 @@ void DesignerActionManagerView::selectedNodesChanged(const QList<ModelNode> &sel
emit selectionChanged(!selectedNodes.isEmpty(), singleSelectedModelNode().isRootNode());
}
void DesignerActionManagerView::nodeOrderChanged(const NodeListProperty &, const ModelNode &, int)
void DesignerActionManagerView::nodeOrderChanged(const NodeListProperty &)
{
setupContext(SelectionContext::UpdateMode::NodeHierachy);
}

View File

@@ -58,7 +58,7 @@ public:
void currentStateChanged(const ModelNode &) override;
void selectedNodesChanged(const QList<ModelNode> &,
const QList<ModelNode> &) override;
void nodeOrderChanged(const NodeListProperty &, const ModelNode &, int ) override;
void nodeOrderChanged(const NodeListProperty &) override;
void importsChanged(const QList<Import> &, const QList<Import> &) override;
void signalHandlerPropertiesChanged(const QVector<SignalHandlerProperty> &/*propertyList*/, PropertyChangeFlags /*propertyChange*/) override;
void variantPropertiesChanged(const QList<VariantProperty>& propertyList, PropertyChangeFlags propertyChangeFlag) override;

View File

@@ -513,16 +513,13 @@ void DebugView::currentStateChanged(const ModelNode &/*node*/)
}
void DebugView::nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex)
void DebugView::nodeOrderChanged(const NodeListProperty &listProperty)
{
if (isDebugViewEnabled()) {
QTextStream message;
QString string;
message.setString(&string);
message << movedNode << listProperty;
message << oldIndex << "to" << listProperty.indexOf(movedNode);
log("::nodeSlide:", string);
}
}

View File

@@ -88,7 +88,7 @@ public:
void nodeAboutToBeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, PropertyChangeFlags propertyChange) override;
void instancesToken(const QString &tokenName, int tokenNumber, const QVector<ModelNode> &nodeVector) override;
void currentStateChanged(const ModelNode &node) override;
void nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex) override;
void nodeOrderChanged(const NodeListProperty &listProperty) override;
protected:
void log(const QString &title, const QString &message, bool highlight = false);

View File

@@ -346,9 +346,7 @@ void NavigatorView::instanceErrorChanged(const QVector<ModelNode> &errorNodeList
m_currentModelInterface->notifyDataChanged(modelNode);
}
void NavigatorView::nodeOrderChanged(const NodeListProperty &listProperty,
const ModelNode &/*node*/,
int /*oldIndex*/)
void NavigatorView::nodeOrderChanged(const NodeListProperty &listProperty)
{
m_currentModelInterface->notifyModelNodesMoved(listProperty.directSubNodes());

View File

@@ -75,7 +75,7 @@ public:
void nodeAboutToBeRemoved(const ModelNode &removedNode) override;
void nodeRemoved(const ModelNode &removedNode, const NodeAbstractProperty &parentProperty, PropertyChangeFlags propertyChange) override;
void nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex) override;
void nodeOrderChanged(const NodeListProperty &listProperty) override;
void nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange) override;
void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) override;

View File

@@ -526,7 +526,7 @@ void StatesEditorView::nodeReparented(const ModelNode &node, const NodeAbstractP
}
}
void StatesEditorView::nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode & /*movedNode*/, int /*oldIndex*/)
void StatesEditorView::nodeOrderChanged(const NodeListProperty &listProperty)
{
if (listProperty.isValid() && listProperty.parentModelNode().isRootNode() && listProperty.name() == "states")
resetModel();

View File

@@ -73,7 +73,7 @@ public:
const NodeAbstractProperty &newPropertyParent,
const NodeAbstractProperty &oldPropertyParent,
AbstractView::PropertyChangeFlags propertyChange) override;
void nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex) override;
void nodeOrderChanged(const NodeListProperty &listProperty) override;
void bindingPropertiesChanged(const QList<BindingProperty>& propertyList, PropertyChangeFlags propertyChange) override;
void variantPropertiesChanged(const QList<VariantProperty>& propertyList, PropertyChangeFlags propertyChange) override;

View File

@@ -232,7 +232,10 @@ public:
virtual void fileUrlChanged(const QUrl &oldUrl, const QUrl &newUrl);
virtual void nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex);
virtual void nodeOrderChanged(const NodeListProperty &listProperty);
virtual void nodeOrderChanged(const NodeListProperty &listProperty,
const ModelNode &movedNode,
int oldIndex);
virtual void importsChanged(const QList<Import> &addedImports, const QList<Import> &removedImports);
virtual void possibleImportsChanged(const QList<Import> &possibleImports);

View File

@@ -65,7 +65,7 @@ public:
void fileUrlChanged(const QUrl &oldUrl, const QUrl &newUrl) override;
void nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex) override;
void nodeOrderChanged(const NodeListProperty &listProperty) override;
void importsChanged(const QList<Import> &addedImports, const QList<Import> &removedImports) override;
void auxiliaryDataChanged(const ModelNode &node, const PropertyName &name, const QVariant &data) override;
@@ -211,12 +211,11 @@ void ForwardView<ViewType>::fileUrlChanged(const QUrl &oldUrl, const QUrl &newUr
view->fileUrlChanged(oldUrl, newUrl);
}
template <class ViewType>
void ForwardView<ViewType>::nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex)
template<class ViewType>
void ForwardView<ViewType>::nodeOrderChanged(const NodeListProperty &listProperty)
{
foreach (const ViewTypePointer &view, m_targetViewList)
view->nodeOrderChanged(NodeListProperty(listProperty, view.data()),
ModelNode(movedNode, view.data()), oldIndex);
view->nodeOrderChanged(NodeListProperty(listProperty, view.data()));
}
template <class ViewType>

View File

@@ -95,7 +95,7 @@ public:
void nodeTypeChanged(const ModelNode& node, const TypeName &type, int majorVersion, int minorVersion) override;
void fileUrlChanged(const QUrl &oldUrl, const QUrl &newUrl) override;
void nodeIdChanged(const ModelNode& node, const QString& newId, const QString& oldId) override;
void nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex) override;
void nodeOrderChanged(const NodeListProperty &listProperty) override;
void importsChanged(const QList<Import> &addedImports, const QList<Import> &removedImports) override;
void auxiliaryDataChanged(const ModelNode &node, const PropertyName &name, const QVariant &data) override;
void customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data) override;

View File

@@ -91,7 +91,9 @@ public:
const NodeAbstractProperty &oldPropertyParent,
AbstractView::PropertyChangeFlags propertyChange) override;
void nodeIdChanged(const ModelNode& node, const QString& newId, const QString& oldId) override;
void nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex) override;
void nodeOrderChanged(const NodeListProperty &listProperty,
const ModelNode &movedNode,
int /*oldIndex*/) override;
void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) override;
void nodeTypeChanged(const ModelNode& node, const TypeName &type, int majorVersion, int minorVersion) override;
void customNotification(const AbstractView *view, const QString &identifier,

View File

@@ -562,8 +562,7 @@ void NodeInstanceView::nodeIdChanged(const ModelNode& node, const QString& /*new
}
}
void NodeInstanceView::nodeOrderChanged(const NodeListProperty & listProperty,
const ModelNode & /*movedNode*/, int /*oldIndex*/)
void NodeInstanceView::nodeOrderChanged(const NodeListProperty &listProperty)
{
QTC_ASSERT(m_nodeInstanceServer, return);
QVector<ReparentContainer> containerList;

View File

@@ -270,8 +270,11 @@ void AbstractView::fileUrlChanged(const QUrl &/*oldUrl*/, const QUrl &/*newUrl*/
{
}
void AbstractView::nodeOrderChanged(const NodeListProperty &/*listProperty*/, const ModelNode &/*movedNode*/, int /*oldIndex*/)
void AbstractView::nodeOrderChanged(const NodeListProperty & /*listProperty*/) {}
void AbstractView::nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &, int)
{
nodeOrderChanged(listProperty);
}
/*!

View File

@@ -880,12 +880,12 @@ void ModelPrivate::notifyNodeReparent(const InternalNodePointer &node,
}
void ModelPrivate::notifyNodeOrderChanged(const InternalNodeListPropertyPointer &internalListProperty,
const InternalNodePointer &node, int oldIndex)
const InternalNodePointer &node,
int oldIndex)
{
notifyNodeInstanceViewLast([&](AbstractView *view) {
view->nodeOrderChanged(NodeListProperty(internalListProperty, m_model, view),
ModelNode(node, m_model, view),
oldIndex);
NodeListProperty nodeListProperty(internalListProperty, m_model, view);
view->nodeOrderChanged(nodeListProperty, ModelNode(node, m_model, view), oldIndex);
});
}

View File

@@ -156,7 +156,9 @@ public:
void notifyVariantPropertiesChanged(const InternalNodePointer &node, const PropertyNameList &propertyNameList, AbstractView::PropertyChangeFlags propertyChange);
void notifyScriptFunctionsChanged(const InternalNodePointer &node, const QStringList &scriptFunctionList);
void notifyNodeOrderChanged(const InternalNodeListPropertyPointer &internalListProperty, const InternalNodePointer &node, int oldIndex);
void notifyNodeOrderChanged(const InternalNodeListPropertyPointer &internalListProperty,
const InternalNodePointer &node,
int oldIndex);
void notifyAuxiliaryDataChanged(const InternalNodePointer &node, const PropertyName &name, const QVariant &data);
void notifyNodeSourceChanged(const InternalNodePointer &node, const QString &newNodeSource);

View File

@@ -310,7 +310,9 @@ void RewriterView::nodeIdChanged(const ModelNode& node, const QString& newId, co
applyChanges();
}
void RewriterView::nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int /*oldIndex*/)
void RewriterView::nodeOrderChanged(const NodeListProperty &listProperty,
const ModelNode &movedNode,
int /*oldIndex*/)
{
Q_ASSERT(textModifier());
if (textToModelMerger()->isActive())
@@ -326,6 +328,21 @@ void RewriterView::nodeOrderChanged(const NodeListProperty &listProperty, const
applyChanges();
}
void RewriterView::nodeOrderChanged(const NodeListProperty &listProperty)
{
Q_ASSERT(textModifier());
if (textToModelMerger()->isActive())
return;
auto modelNodes = listProperty.directSubNodes();
for (const ModelNode &movedNode : modelNodes)
modelToTextMerger()->nodeSlidAround(movedNode, ModelNode{});
if (!isModificationGroupActive())
applyChanges();
}
void RewriterView::rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion)
{
Q_ASSERT(textModifier());

View File

@@ -161,10 +161,10 @@ void TestView::selectedNodesChanged(const QList<QmlDesigner::ModelNode> &selecte
m_methodCalls += MethodCall("selectedNodesChanged", QStringList() << selectedNodes.join(", ") << lastSelectedNodes.join(", "));
}
void TestView::nodeOrderChanged(const QmlDesigner::NodeListProperty &listProperty, const QmlDesigner::ModelNode &movedNode, int oldIndex)
void TestView::nodeOrderChanged(const QmlDesigner::NodeListProperty &listProperty)
{
m_methodCalls += MethodCall("nodeOrderChanged", QStringList() << QString::fromUtf8(listProperty.name()) << movedNode.id() << QString::number(oldIndex));
m_methodCalls += MethodCall("nodeOrderChanged",
QStringList() << QString::fromUtf8(listProperty.name()));
}
void TestView::instancePropertyChanged(const QList<QPair<QmlDesigner::ModelNode, QmlDesigner::PropertyName> > &)

View File

@@ -73,8 +73,7 @@ public:
void selectedNodesChanged(const QList<QmlDesigner::ModelNode> &selectedNodeList,
const QList<QmlDesigner::ModelNode> &lastSelectedNodeList);
void nodeOrderChanged(const QmlDesigner::NodeListProperty &listProperty, const QmlDesigner::ModelNode &movedNode, int oldIndex);
void nodeOrderChanged(const QmlDesigner::NodeListProperty &listProperty);
virtual void instancePropertyChanged(const QList<QPair<QmlDesigner::ModelNode, QmlDesigner::PropertyName> > &propertyList);
virtual void instancesCompleted(const QVector<QmlDesigner::ModelNode> &completedNodeList);

View File

@@ -67,10 +67,7 @@ public:
{}
void nodeIdChanged(const ModelNode &node, const QString &newId, const QString &oldId) override
{}
void nodeOrderChanged(const NodeListProperty &listProperty,
const ModelNode &movedNode,
int oldIndex) override
{}
void nodeOrderChanged(const NodeListProperty &listProperty) override {}
void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) override {}
void nodeTypeChanged(const ModelNode &node,
const TypeName &type,

View File

@@ -87,7 +87,7 @@ public:
AbstractView::PropertyChangeFlags) override
{}
void nodeIdChanged(const ModelNode &, const QString &, const QString &) override {}
void nodeOrderChanged(const NodeListProperty &, const ModelNode &, int) override {}
void nodeOrderChanged(const NodeListProperty &) override {}
void rootNodeTypeChanged(const QString &, int, int) override {}
void nodeTypeChanged(const ModelNode &, const TypeName &, int, int) override {}
void customNotification(const AbstractView *,