From 1f7f3144c324d57b0d4896c128598df90c4d9537 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Fri, 19 Nov 2021 17:23:29 +0100 Subject: [PATCH] QmlDesigner: Allow setting AuxiliaryData without lock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I63344aa240a2d1198195ff4130690131efe18a43 Reviewed-by: Henning Gründl Reviewed-by: Qt CI Bot Reviewed-by: --- .../qmldesigner/components/navigator/navigatortreemodel.cpp | 2 +- src/plugins/qmldesigner/designercore/include/modelnode.h | 1 + src/plugins/qmldesigner/designercore/model/modelnode.cpp | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 0eed7dec4af..c42f351f5f7 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -320,7 +320,7 @@ QList filteredList(const NodeListProperty &property, bool filter, boo if (arg.hasAuxiliaryData(auxProp)) return arg.auxiliaryData(auxProp).toBool(); const bool value = QmlItemNode::isValidQmlItemNode(arg) || NodeHints::fromModelNode(arg).visibleInNavigator(); - arg.setAuxiliaryData(auxProp, value); + arg.setAuxiliaryDataWithoutLock(auxProp, value); return value; })); } else { diff --git a/src/plugins/qmldesigner/designercore/include/modelnode.h b/src/plugins/qmldesigner/designercore/include/modelnode.h index a34762ff50a..92884a9710e 100644 --- a/src/plugins/qmldesigner/designercore/include/modelnode.h +++ b/src/plugins/qmldesigner/designercore/include/modelnode.h @@ -189,6 +189,7 @@ public: QVariant auxiliaryData(const PropertyName &name) const; void setAuxiliaryData(const PropertyName &name, const QVariant &data) const; + void setAuxiliaryDataWithoutLock(const PropertyName &name, const QVariant &data) const; void removeAuxiliaryData(const PropertyName &name) const; bool hasAuxiliaryData(const PropertyName &name) const; const QHash &auxiliaryData() const; diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp index 7e4f2b4b2a7..98f4f310851 100644 --- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp @@ -1045,6 +1045,11 @@ void ModelNode::setAuxiliaryData(const PropertyName &name, const QVariant &data) m_model.data()->d->setAuxiliaryData(internalNode(), name, data); } +void ModelNode::setAuxiliaryDataWithoutLock(const PropertyName &name, const QVariant &data) const +{ + m_model.data()->d->setAuxiliaryData(internalNode(), name, data); +} + void ModelNode::removeAuxiliaryData(const PropertyName &name) const { Internal::WriteLocker locker(m_model.data());