QmlDesigner: Allow setting AuxiliaryData without lock

Change-Id: I63344aa240a2d1198195ff4130690131efe18a43
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Thomas Hartmann
2021-11-19 17:23:29 +01:00
parent f4070c4b43
commit 1f7f3144c3
3 changed files with 7 additions and 1 deletions

View File

@@ -320,7 +320,7 @@ QList<ModelNode> 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 {

View File

@@ -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<PropertyName, QVariant> &auxiliaryData() const;

View File

@@ -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());