diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp index 0203f287f61b1a14568e26e9ef436a7834878064..706423e044b6451c3fc7a825b00492aa06ed7eda 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp +++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp @@ -32,6 +32,7 @@ #include <cmath> #include <QMessageBox> +#include <QByteArray> #include <nodeabstractproperty.h> #include <nodemetainfo.h> #include <modelnode.h> @@ -211,7 +212,7 @@ void raise(const SelectionContext &selectionState) return; try { - RewriterTransaction transaction(selectionState.view()); + RewriterTransaction transaction(selectionState.view(), QByteArrayLiteral("DesignerActionManager|raise")); foreach (ModelNode modelNode, selectionState.selectedModelNodes()) { QmlItemNode node = modelNode; if (node.isValid()) { @@ -232,7 +233,7 @@ void lower(const SelectionContext &selectionState) return; try { - RewriterTransaction transaction(selectionState.view()); + RewriterTransaction transaction(selectionState.view(), QByteArrayLiteral("DesignerActionManager|lower")); foreach (ModelNode modelNode, selectionState.selectedModelNodes()) { QmlItemNode node = modelNode; if (node.isValid()) { @@ -302,7 +303,7 @@ void resetSize(const SelectionContext &selectionState) return; try { - RewriterTransaction transaction(selectionState.view()); + RewriterTransaction transaction(selectionState.view(), QByteArrayLiteral("DesignerActionManager|resetSize")); foreach (ModelNode node, selectionState.selectedModelNodes()) { node.removeProperty("width"); node.removeProperty("height"); @@ -318,7 +319,7 @@ void resetPosition(const SelectionContext &selectionState) return; try { - RewriterTransaction transaction(selectionState.view()); + RewriterTransaction transaction(selectionState.view(), QByteArrayLiteral("DesignerActionManager|resetPosition")); foreach (ModelNode node, selectionState.selectedModelNodes()) { node.removeProperty("x"); node.removeProperty("y"); @@ -342,7 +343,7 @@ void resetZ(const SelectionContext &selectionState) if (!selectionState.view()) return; - RewriterTransaction transaction(selectionState.view()); + RewriterTransaction transaction(selectionState.view(), QByteArrayLiteral("DesignerActionManager|resetZ")); foreach (ModelNode node, selectionState.selectedModelNodes()) { node.removeProperty("z"); } @@ -373,7 +374,7 @@ void anchorsFill(const SelectionContext &selectionState) if (!selectionState.view()) return; - RewriterTransaction transaction(selectionState.view()); + RewriterTransaction transaction(selectionState.view(), QByteArrayLiteral("DesignerActionManager|anchorsFill")); ModelNode modelNode = selectionState.currentSingleSelectedNode(); @@ -392,7 +393,7 @@ void anchorsReset(const SelectionContext &selectionState) if (!selectionState.view()) return; - RewriterTransaction transaction(selectionState.view()); + RewriterTransaction transaction(selectionState.view(), QByteArrayLiteral("DesignerActionManager|anchorsReset")); ModelNode modelNode = selectionState.currentSingleSelectedNode(); @@ -458,7 +459,7 @@ static void layoutHelperFunction(const SelectionContext &selectionContext, ModelNode layoutNode; { - RewriterTransaction transaction(selectionContext.view()); + RewriterTransaction transaction(selectionContext.view(), QByteArrayLiteral("DesignerActionManager|layoutHelperFunction1")); QmlItemNode parentNode = qmlItemNode.instanceParentItem(); @@ -470,7 +471,7 @@ static void layoutHelperFunction(const SelectionContext &selectionContext, } { - RewriterTransaction transaction(selectionContext.view()); + RewriterTransaction transaction(selectionContext.view(), QByteArrayLiteral("DesignerActionManager|layoutHelperFunction2")); QList<ModelNode> sortedSelectedNodes = selectionContext.selectedModelNodes(); qSort(sortedSelectedNodes.begin(), sortedSelectedNodes.end(), lessThan); diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp index 20c1db6b19c57d22f3de786a87aa9bc11ee0bc1e..b4a342d76ef9f09d2032afcaf4466d1015b54afe 100644 --- a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp @@ -321,7 +321,7 @@ void DragTool::dragEnterEvent(QGraphicsSceneDragDropEvent * event) if (!m_rewriterTransaction.isValid()) { view()->clearSelectedModelNodes(); - m_rewriterTransaction = view()->beginRewriterTransaction(); + m_rewriterTransaction = view()->beginRewriterTransaction(QByteArrayLiteral("DragTool::dragEnterEvent")); } } } diff --git a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp index 4ac274afc7420e7e27edb017d1388e4ea2b1b89c..b295763f81dc46b3af1cd6e9a5b75910d90c49b2 100644 --- a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp +++ b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp @@ -159,7 +159,7 @@ void MoveManipulator::begin(const QPointF &beginPoint) // setOpacityForAllElements(0.62); - m_rewriterTransaction = m_view->beginRewriterTransaction(); + m_rewriterTransaction = m_view->beginRewriterTransaction(QByteArrayLiteral("MoveManipulator::begin")); } @@ -421,7 +421,7 @@ void MoveManipulator::moveBy(double deltaX, double deltaY) void MoveManipulator::beginRewriterTransaction() { - m_rewriterTransaction = m_view->beginRewriterTransaction(); + m_rewriterTransaction = m_view->beginRewriterTransaction(QByteArrayLiteral("MoveManipulator::beginRewriterTransaction")); } void MoveManipulator::endRewriterTransaction() diff --git a/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp b/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp index a872e4b0906181df0c5ad2c565cda2d3b843f98f..698cb7d8ccf350ecd6999da6455477e3daecd74b 100644 --- a/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp +++ b/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp @@ -81,7 +81,7 @@ void ResizeManipulator::begin(const QPointF &/*beginPoint*/) m_beginFromSceneToContentItemTransform = m_beginFromContentItemToSceneTransform.inverted(); m_beginFromItemToSceneTransform = m_resizeController.formEditorItem()->qmlItemNode().instanceSceneTransform(); m_beginToParentTransform = m_resizeController.formEditorItem()->qmlItemNode().instanceTransform(); - m_rewriterTransaction = m_view->beginRewriterTransaction(); + m_rewriterTransaction = m_view->beginRewriterTransaction(QByteArrayLiteral("ResizeManipulator::begin")); m_snapper.updateSnappingLines(m_resizeController.formEditorItem()); m_beginBottomRightPoint = m_beginToParentTransform.map(m_resizeController.formEditorItem()->qmlItemNode().instanceBoundingRect().bottomRight()); diff --git a/src/plugins/qmldesigner/components/integration/designdocument.cpp b/src/plugins/qmldesigner/components/integration/designdocument.cpp index 0745710faef649f9077eeee11decdcb565b9264c..f909de823c965e66cec540931ef99997714f6b69 100644 --- a/src/plugins/qmldesigner/components/integration/designdocument.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocument.cpp @@ -356,7 +356,7 @@ void DesignDocument::deleteSelected() return; try { - RewriterTransaction transaction(rewriterView()); + RewriterTransaction transaction(rewriterView(), QByteArrayLiteral("DesignDocument::deleteSelected")); QList<ModelNode> toDelete = view()->selectedModelNodes(); foreach (ModelNode node, toDelete) { if (node.isValid() && !node.isRootNode() && QmlObjectNode::isValidQmlObjectNode(node)) @@ -511,7 +511,7 @@ void DesignDocument::paste() QList<ModelNode> pastedNodeList; try { - RewriterTransaction transaction(rewriterView()); + RewriterTransaction transaction(rewriterView(), QByteArrayLiteral("DesignDocument::paste1")); int offset = double(qrand()) / RAND_MAX * 20 - 10; @@ -529,7 +529,7 @@ void DesignDocument::paste() } } else { try { - RewriterTransaction transaction(rewriterView()); + RewriterTransaction transaction(rewriterView(), QByteArrayLiteral("DesignDocument::paste2")); pasteModel->detachView(&view); currentModel()->attachView(&view); diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 4973004b84e643ed3d500cd29e1c8e4fe1217e8f..5cfce7648059e29c51df14f1e25f80b7dc8e17b8 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -510,7 +510,7 @@ void NavigatorTreeModel::moveNodesInteractive(NodeAbstractProperty parentPropert try { TypeName propertyQmlType = qmlTypeInQtContainer(parentProperty.parentModelNode().metaInfo().propertyTypeName(parentProperty.name())); - RewriterTransaction transaction = m_view->beginRewriterTransaction(); + RewriterTransaction transaction = m_view->beginRewriterTransaction(QByteArrayLiteral("NavigatorTreeModel::moveNodesInteractive")); foreach (const ModelNode &node, modelNodes) { if (!node.isValid()) continue; diff --git a/src/plugins/qmldesigner/components/propertyeditor/gradientlineqmladaptor.cpp b/src/plugins/qmldesigner/components/propertyeditor/gradientlineqmladaptor.cpp index 33c514b60ec49e78073a44b426919b08d4f25e36..c8dad8afa823d06c0945b1000cac0c0fd0670b9d 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/gradientlineqmladaptor.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/gradientlineqmladaptor.cpp @@ -131,7 +131,7 @@ void GradientLineQmlAdaptor::writeGradient() ModelNode gradientNode= modelNode.view()->createModelNode("QtQuick.Gradient", modelNode.view()->majorQtQuickVersion(), 0); modelNode.nodeProperty(gradientName().toUtf8()).reparentHere(gradientNode); - RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("GradientLineQmlAdaptor::writeGradient")); if (!oldId.isNull()) gradientNode.setId(oldId); @@ -173,7 +173,7 @@ void GradientLineQmlAdaptor::deleteGradient() if (m_itemNode.isInBaseState()) { if (modelNode.hasProperty(gradientName().toUtf8())) { - RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("GradientLineQmlAdaptor::deleteGradient")); ModelNode gradientNode = modelNode.nodeProperty(gradientName().toUtf8()).modelNode(); if (QmlObjectNode(gradientNode).isValid()) QmlObjectNode(gradientNode).destroy(); diff --git a/src/plugins/qmldesigner/components/propertyeditor/gradientmodel.cpp b/src/plugins/qmldesigner/components/propertyeditor/gradientmodel.cpp index ed5730f62d979bc3bb8c63348972baa514e7d4c5..7519448f83c07430c0acfdfccca7ecc4c3310c9f 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/gradientmodel.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/gradientmodel.cpp @@ -143,7 +143,7 @@ void GradientModel::addGradient() if (!color.isValid()) color = QColor(Qt::white); - QmlDesigner::RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction(); + QmlDesigner::RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("GradientModel::addGradient")); QmlDesigner::ModelNode gradientNode = m_itemNode.modelNode().view()->createModelNode("QtQuick.Gradient", @@ -227,7 +227,7 @@ qreal GradientModel::getPosition(int index) const void GradientModel::removeStop(int index) { if (index < rowCount() - 1 && index != 0) { - QmlDesigner::RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction(); + QmlDesigner::RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("GradientModel::removeStop")); QmlDesigner::ModelNode gradientNode = m_itemNode.modelNode().nodeProperty(gradientPropertyName().toUtf8()).modelNode(); QmlDesigner::QmlObjectNode stop = gradientNode.nodeListProperty("stops").toModelNodeList().at(index); if (stop.isValid()) { @@ -251,7 +251,7 @@ void GradientModel::deleteGradient() if (m_itemNode.isInBaseState()) { if (modelNode.hasProperty(gradientPropertyName().toUtf8())) { - QmlDesigner::RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction(); + QmlDesigner::RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("GradientModel::deleteGradient")); QmlDesigner::ModelNode gradientNode = modelNode.nodeProperty(gradientPropertyName().toUtf8()).modelNode(); if (QmlDesigner::QmlObjectNode(gradientNode).isValid()) QmlDesigner::QmlObjectNode(gradientNode).destroy(); diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditortransaction.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditortransaction.cpp index 11ebf5577781547fad888ee50ac3f10b3a5813c1..2efe488dc92a202a6359c1c90e7c1b34cb946edb 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditortransaction.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditortransaction.cpp @@ -44,7 +44,7 @@ void PropertyEditorTransaction::start() return; if (m_rewriterTransaction.isValid()) m_rewriterTransaction.commit(); - m_rewriterTransaction = m_propertyEditor->beginRewriterTransaction(); + m_rewriterTransaction = m_propertyEditor->beginRewriterTransaction(QByteArrayLiteral("PropertyEditorTransaction::start")); m_timerId = startTimer(4000); } diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp index 4148a57e786d7619d4afcbc88a3b1f9454e95cba..2f698237bd0ade328b01f67e61bc79d6e5140b5e 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp @@ -240,7 +240,7 @@ void PropertyEditorView::changeExpression(const QString &propertyName) if (m_locked) return; - RewriterTransaction transaction = beginRewriterTransaction(); + RewriterTransaction transaction = beginRewriterTransaction(QByteArrayLiteral("PropertyEditorView::changeExpression")); try { PropertyName underscoreName(name); diff --git a/src/plugins/qmldesigner/components/propertyeditor/qmlanchorbindingproxy.cpp b/src/plugins/qmldesigner/components/propertyeditor/qmlanchorbindingproxy.cpp index ac3bde0cdfae101dfd7ec33bf5a17cf06623747c..16aca7ee4ce052283d7b44e8ec222cc03b75602c 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/qmlanchorbindingproxy.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/qmlanchorbindingproxy.cpp @@ -268,7 +268,7 @@ void QmlAnchorBindingProxy::setTopTarget(const QString &target) if (!newTarget.isValid()) return; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setTopTarget")); m_topTarget = newTarget; calcTopMargin(); @@ -293,7 +293,7 @@ void QmlAnchorBindingProxy::setBottomTarget(const QString &target) if (!newTarget.isValid()) return; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setBottomTarget")); m_bottomTarget = newTarget; calcBottomMargin(); @@ -314,7 +314,7 @@ void QmlAnchorBindingProxy::setLeftTarget(const QString &target) if (!newTarget.isValid()) return; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setLeftTarget")); m_leftTarget = newTarget; calcLeftMargin(); @@ -335,7 +335,7 @@ void QmlAnchorBindingProxy::setRightTarget(const QString &target) if (!newTarget.isValid()) return; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setRightTarget")); m_rightTarget = newTarget; calcRightMargin(); @@ -356,7 +356,7 @@ void QmlAnchorBindingProxy::setVerticalTarget(const QString &target) if (!newTarget.isValid()) return; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setVerticalTarget")); m_verticalTarget = newTarget; m_qmlItemNode.anchors().setAnchor(AnchorLine::VerticalCenter, m_verticalTarget, AnchorLine::VerticalCenter); @@ -377,7 +377,7 @@ void QmlAnchorBindingProxy::setHorizontalTarget(const QString &target) if (!newTarget.isValid()) return; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setHorizontalTarget")); m_horizontalTarget = newTarget; m_qmlItemNode.anchors().setAnchor(AnchorLine::HorizontalCenter, m_horizontalTarget, AnchorLine::HorizontalCenter); @@ -421,7 +421,7 @@ int QmlAnchorBindingProxy::indexOfPossibleTargetItem(const QString &targetName) } void QmlAnchorBindingProxy::resetLayout() { - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::resetLayout")); m_qmlItemNode.anchors().removeAnchors(); m_qmlItemNode.anchors().removeMargins(); @@ -446,7 +446,7 @@ void QmlAnchorBindingProxy::setBottomAnchor(bool anchor) if (bottomAnchored() == anchor) return; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setBottomAnchor")); if (!anchor) { removeBottomAnchor(); @@ -469,7 +469,7 @@ void QmlAnchorBindingProxy::setLeftAnchor(bool anchor) if (leftAnchored() == anchor) return; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setLeftAnchor")); if (!anchor) { removeLeftAnchor(); @@ -493,7 +493,7 @@ void QmlAnchorBindingProxy::setRightAnchor(bool anchor) if (rightAnchored() == anchor) return; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setRightAnchor")); if (!anchor) { removeRightAnchor(); @@ -634,7 +634,7 @@ void QmlAnchorBindingProxy::setTopAnchor(bool anchor) if (topAnchored() == anchor) return; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setTopAnchor")); if (!anchor) { removeTopAnchor(); @@ -650,7 +650,7 @@ void QmlAnchorBindingProxy::setTopAnchor(bool anchor) } void QmlAnchorBindingProxy::removeTopAnchor() { - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::removeTopAnchor")); m_qmlItemNode.anchors().removeAnchor(AnchorLine::Top); m_qmlItemNode.anchors().removeMargin(AnchorLine::Top); @@ -661,7 +661,7 @@ void QmlAnchorBindingProxy::removeTopAnchor() { } void QmlAnchorBindingProxy::removeBottomAnchor() { - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::removeBottomAnchor")); m_qmlItemNode.anchors().removeAnchor(AnchorLine::Bottom); m_qmlItemNode.anchors().removeMargin(AnchorLine::Bottom); @@ -671,7 +671,7 @@ void QmlAnchorBindingProxy::removeBottomAnchor() { } void QmlAnchorBindingProxy::removeLeftAnchor() { - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::removeLeftAnchor")); m_qmlItemNode.anchors().removeAnchor(AnchorLine::Left); m_qmlItemNode.anchors().removeMargin(AnchorLine::Left); @@ -681,7 +681,7 @@ void QmlAnchorBindingProxy::removeLeftAnchor() { } void QmlAnchorBindingProxy::removeRightAnchor() { - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::removeRightAnchor")); m_qmlItemNode.anchors().removeAnchor(AnchorLine::Right); m_qmlItemNode.anchors().removeMargin(AnchorLine::Right); @@ -699,7 +699,7 @@ void QmlAnchorBindingProxy::setVerticalCentered(bool centered) m_locked = true; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setVerticalCentered")); if (!centered) { m_qmlItemNode.anchors().removeAnchor(AnchorLine::VerticalCenter); @@ -723,7 +723,7 @@ void QmlAnchorBindingProxy::setHorizontalCentered(bool centered) m_locked = true; - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setHorizontalCentered")); if (!centered) { m_qmlItemNode.anchors().removeAnchor(AnchorLine::HorizontalCenter); @@ -780,7 +780,7 @@ bool QmlAnchorBindingProxy::horizontalCentered() void QmlAnchorBindingProxy::fill() { - RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::fill")); backupPropertyAndRemove(modelNode(), "x"); diff --git a/src/plugins/qmldesigner/designercore/include/abstractview.h b/src/plugins/qmldesigner/designercore/include/abstractview.h index b3e61fe1a0d253c494aa657ea37f95a689e0953d..83601826f134754ca5e78c08556484309d291c75 100644 --- a/src/plugins/qmldesigner/designercore/include/abstractview.h +++ b/src/plugins/qmldesigner/designercore/include/abstractview.h @@ -132,7 +132,7 @@ public: Model* model() const; bool isAttached() const; - RewriterTransaction beginRewriterTransaction(); + RewriterTransaction beginRewriterTransaction(const QByteArray &identifier); ModelNode createModelNode(const TypeName &typeName, int majorVersion, diff --git a/src/plugins/qmldesigner/designercore/model/abstractview.cpp b/src/plugins/qmldesigner/designercore/model/abstractview.cpp index 77373431c8d82836435a2a50db071993e9e77a35..d9463e3e743e3bf92c01eae66125869b0896168c 100644 --- a/src/plugins/qmldesigner/designercore/model/abstractview.cpp +++ b/src/plugins/qmldesigner/designercore/model/abstractview.cpp @@ -71,9 +71,9 @@ void AbstractView::setModel(Model *model) m_model = model; } -RewriterTransaction AbstractView::beginRewriterTransaction() +RewriterTransaction AbstractView::beginRewriterTransaction(const QByteArray &identifier) { - return RewriterTransaction(this); + return RewriterTransaction(this, identifier); } ModelNode AbstractView::createModelNode(const TypeName &typeName, diff --git a/src/plugins/qmldesigner/designercore/model/modelmerger.cpp b/src/plugins/qmldesigner/designercore/model/modelmerger.cpp index 1a73394c2114b4dea5520ce9e4d048c113c60594..ecb53a8c2ca248db8f2578b4eac9fdc744e5a4c1 100644 --- a/src/plugins/qmldesigner/designercore/model/modelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/modelmerger.cpp @@ -154,7 +154,7 @@ static ModelNode createNodeFromNode(const ModelNode &modelNode,const QHash<QStri ModelNode ModelMerger::insertModel(const ModelNode &modelNode) { - RewriterTransaction transaction(view()->beginRewriterTransaction()); + RewriterTransaction transaction(view()->beginRewriterTransaction(QByteArrayLiteral("ModelMerger::insertModel"))); QList<Import> newImports; @@ -179,7 +179,7 @@ void ModelMerger::replaceModel(const ModelNode &modelNode) view()->model()->setFileUrl(modelNode.model()->fileUrl()); try { - RewriterTransaction transaction(view()->beginRewriterTransaction()); + RewriterTransaction transaction(view()->beginRewriterTransaction(QByteArrayLiteral("ModelMerger::replaceModel"))); ModelNode rootNode(view()->rootModelNode()); diff --git a/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp b/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp index 9284c907f705444427d25125842c2d49d9daaef7..44b461a284ba06b773f75294253f131a8c88cacd 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp @@ -176,7 +176,7 @@ void QmlAnchors::setAnchor(AnchorLine::Type sourceAnchorLine, const QmlItemNode &targetQmlItemNode, AnchorLine::Type targetAnchorLine) { - RewriterTransaction transaction = qmlItemNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = qmlItemNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchors::setAnchor")); if (qmlItemNode().isInBaseState()) { if ((qmlItemNode().nodeInstance().hasAnchor("anchors.fill") && (sourceAnchorLine & AnchorLine::Fill)) || ((qmlItemNode().nodeInstance().hasAnchor("anchors.centerIn") && (sourceAnchorLine & AnchorLine::Center)))) { @@ -330,7 +330,7 @@ AnchorLine QmlAnchors::instanceAnchor(AnchorLine::Type sourceAnchorLine) const void QmlAnchors::removeAnchor(AnchorLine::Type sourceAnchorLine) { - RewriterTransaction transaction = qmlItemNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = qmlItemNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchors::removeAnchor")); if (qmlItemNode().isInBaseState()) { const PropertyName propertyName = anchorPropertyName(sourceAnchorLine); if (qmlItemNode().nodeInstance().hasAnchor("anchors.fill") && (sourceAnchorLine & AnchorLine::Fill)) { @@ -352,7 +352,7 @@ void QmlAnchors::removeAnchor(AnchorLine::Type sourceAnchorLine) void QmlAnchors::removeAnchors() { - RewriterTransaction transaction = qmlItemNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = qmlItemNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchors::removeAnchors")); if (qmlItemNode().nodeInstance().hasAnchor("anchors.fill")) qmlItemNode().modelNode().removeProperty("anchors.fill"); if (qmlItemNode().nodeInstance().hasAnchor("anchors.centerIn")) @@ -540,7 +540,7 @@ void QmlAnchors::removeMargin(AnchorLine::Type sourceAnchorLineType) void QmlAnchors::removeMargins() { - RewriterTransaction transaction = qmlItemNode().view()->beginRewriterTransaction(); + RewriterTransaction transaction = qmlItemNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchors::removeMargins")); removeMargin(AnchorLine::Left); removeMargin(AnchorLine::Right); removeMargin(AnchorLine::Top); diff --git a/src/plugins/qmldesigner/designercore/model/qmlchangeset.cpp b/src/plugins/qmldesigner/designercore/model/qmlchangeset.cpp index 2602e96bbbebd7fdbd1d2dfdb1299b5b1dd75c67..c18fa8f8583bc4e8a6e290b89108f596ed13d056 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlchangeset.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlchangeset.cpp @@ -72,7 +72,7 @@ bool QmlModelStateOperation::isValidQmlModelStateOperation(const ModelNode &mode void QmlPropertyChanges::removeProperty(const PropertyName &name) { - RewriterTransaction transaction(view()->beginRewriterTransaction()); + RewriterTransaction transaction(view()->beginRewriterTransaction(QByteArrayLiteral("QmlPropertyChanges::removeProperty"))); if (name == "name") return; modelNode().removeProperty(name); diff --git a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp index 32ae0d815945649a62eb297c898d154c1dd5b0fa..c4ed7cc9c149244d6610f5f7336bb390b1aa9b3f 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp @@ -100,7 +100,7 @@ QmlItemNode QmlItemNode::createQmlItemNode(AbstractView *view, const ItemLibrary QmlItemNode newQmlItemNode; try { - RewriterTransaction transaction = view->beginRewriterTransaction(); + RewriterTransaction transaction = view->beginRewriterTransaction(QByteArrayLiteral("QmlItemNode::createQmlItemNode")); NodeMetaInfo metaInfo = view->model()->metaInfo(itemLibraryEntry.typeName()); @@ -208,7 +208,7 @@ QmlItemNode QmlItemNode::createQmlItemNodeFromImage(AbstractView *view, const QS parentQmlItemNode = QmlItemNode(view->rootModelNode()); if (parentQmlItemNode.isValid()) { - RewriterTransaction transaction = view->beginRewriterTransaction(); + RewriterTransaction transaction = view->beginRewriterTransaction(QByteArrayLiteral("QmlItemNode::createQmlItemNodeFromImage")); checkImageImport(view); diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index 28289f605fc6b7a2b058aed5fb735fea559a07a3..5e0b8a787f7992a9279a9acae4abba9c9b68cb91 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -203,7 +203,7 @@ void RewriterView::propertiesAboutToBeRemoved(const QList<AbstractProperty> &pro foreach (const AbstractProperty &property, propertyList) { if (property.isDefaultProperty() && property.isNodeListProperty()) { - m_removeDefaultPropertyTransaction = beginRewriterTransaction(); + m_removeDefaultPropertyTransaction = beginRewriterTransaction(QByteArrayLiteral("RewriterView::propertiesAboutToBeRemoved")); foreach (const ModelNode &node, property.toNodeListProperty().toModelNodeList()) { modelToTextMerger()->nodeRemoved(node, property.toNodeAbstractProperty(), AbstractView::NoAdditionalChanges); diff --git a/src/plugins/qmldesigner/designercore/rewritertransaction.cpp b/src/plugins/qmldesigner/designercore/rewritertransaction.cpp index 91d8e0e223bb4c50349379fbe50349307c1741a2..417d4fde7f7a4369e5a401747a86fdb0b2c00e5e 100644 --- a/src/plugins/qmldesigner/designercore/rewritertransaction.cpp +++ b/src/plugins/qmldesigner/designercore/rewritertransaction.cpp @@ -35,13 +35,29 @@ namespace QmlDesigner { + +QList<QByteArray> RewriterTransaction::m_identifierList; +bool RewriterTransaction::m_activeIdentifier = !qgetenv("QML_DESIGNER_TRACE_REWRITER_TRANSACTION").isEmpty(); + RewriterTransaction::RewriterTransaction() : m_valid(false) { } -RewriterTransaction::RewriterTransaction(AbstractView *_view) : m_view(_view), m_valid(true) +RewriterTransaction::RewriterTransaction(AbstractView *_view, const QByteArray &identifier) + : m_view(_view), + m_identifier(identifier), + m_valid(true) { Q_ASSERT(view()); + + static int identifierNumber = 0; + m_identifierNumber = identifierNumber++; + + if (m_activeIdentifier) { + qDebug() << "Begin RewriterTransaction:" << m_identifier << m_identifierNumber; + m_identifierList.append(m_identifier + QByteArrayLiteral("-") + QByteArray::number(m_identifierNumber)); + } + view()->emitRewriterBeginTransaction(); } @@ -60,6 +76,12 @@ void RewriterTransaction::commit() if (m_valid) { m_valid = false; view()->emitRewriterEndTransaction(); + + if (m_activeIdentifier) { + qDebug() << "Commit RewriterTransaction:" << m_identifier << m_identifierNumber; + bool success = m_identifierList.removeOne(m_identifier + QByteArrayLiteral("-") + QByteArray::number(m_identifierNumber)); + Q_ASSERT(success); + } } } @@ -70,6 +92,11 @@ void RewriterTransaction::rollback() m_valid = false; view()->emitRewriterEndTransaction(); QmlDesignerPlugin::instance()->currentDesignDocument()->undo(); + + if (m_activeIdentifier) { + qDebug() << "Rollback RewriterTransaction:" << m_identifier << m_identifierNumber; + m_identifierList.removeOne(m_identifier + QByteArrayLiteral("-") + QByteArray::number(m_identifierNumber)); + } } } @@ -84,6 +111,8 @@ RewriterTransaction::RewriterTransaction(const RewriterTransaction &other) if (&other != this) { m_valid = other.m_valid; m_view = other.m_view; + m_identifier = other.m_identifier; + m_identifierNumber = other.m_identifierNumber; other.m_valid = false; } } @@ -93,6 +122,8 @@ RewriterTransaction& RewriterTransaction::operator=(const RewriterTransaction &o if (!m_valid && (&other != this)) { m_valid = other.m_valid; m_view = other.m_view; + m_identifier = other.m_identifier; + m_identifierNumber = other.m_identifierNumber; other.m_valid = false; } diff --git a/src/plugins/qmldesigner/designercore/rewritertransaction.h b/src/plugins/qmldesigner/designercore/rewritertransaction.h index 3ab9410873d225a05f322839758580f74d47b01a..04eb5b7c726f4c78c2f1fb385762b14c560973f6 100644 --- a/src/plugins/qmldesigner/designercore/rewritertransaction.h +++ b/src/plugins/qmldesigner/designercore/rewritertransaction.h @@ -42,7 +42,7 @@ class QMLDESIGNERCORE_EXPORT RewriterTransaction { public: RewriterTransaction(); - RewriterTransaction(AbstractView *view); + RewriterTransaction(AbstractView *view, const QByteArray &identifier); ~RewriterTransaction(); void commit(); void rollback(); @@ -55,7 +55,11 @@ protected: AbstractView *view(); private: QWeakPointer<AbstractView> m_view; + QByteArray m_identifier; mutable bool m_valid; + int m_identifierNumber; + static QList<QByteArray> m_identifierList; + static bool m_activeIdentifier; }; } //QmlDesigner