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)) if (arg.hasAuxiliaryData(auxProp))
return arg.auxiliaryData(auxProp).toBool(); return arg.auxiliaryData(auxProp).toBool();
const bool value = QmlItemNode::isValidQmlItemNode(arg) || NodeHints::fromModelNode(arg).visibleInNavigator(); const bool value = QmlItemNode::isValidQmlItemNode(arg) || NodeHints::fromModelNode(arg).visibleInNavigator();
arg.setAuxiliaryData(auxProp, value); arg.setAuxiliaryDataWithoutLock(auxProp, value);
return value; return value;
})); }));
} else { } else {

View File

@@ -189,6 +189,7 @@ public:
QVariant auxiliaryData(const PropertyName &name) const; QVariant auxiliaryData(const PropertyName &name) const;
void setAuxiliaryData(const PropertyName &name, const QVariant &data) 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; void removeAuxiliaryData(const PropertyName &name) const;
bool hasAuxiliaryData(const PropertyName &name) const; bool hasAuxiliaryData(const PropertyName &name) const;
const QHash<PropertyName, QVariant> &auxiliaryData() 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); 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 void ModelNode::removeAuxiliaryData(const PropertyName &name) const
{ {
Internal::WriteLocker locker(m_model.data()); Internal::WriteLocker locker(m_model.data());