From 56bdb0d1ea0dfc1a8af500dc195b57daba7f9b28 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 5 Aug 2013 15:20:30 +0200 Subject: [PATCH] QmlDesigner: Remove AuxiliaryDataauxilary if data is invalid Change-Id: Ifc802442f54b4c84e1df04cbd8c59ad48c745aa5 Reviewed-by: Thomas Hartmann --- src/plugins/qmldesigner/designercore/model/internalnode.cpp | 5 +++++ src/plugins/qmldesigner/designercore/model/internalnode_p.h | 1 + src/plugins/qmldesigner/designercore/model/model.cpp | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/model/internalnode.cpp b/src/plugins/qmldesigner/designercore/model/internalnode.cpp index 8e6bac99c17..1271a69fb43 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalnode.cpp @@ -174,6 +174,11 @@ void InternalNode::setAuxiliaryData(const PropertyName &name, const QVariant &da m_auxiliaryDataHash.insert(name, data); } +void InternalNode::removeAuxiliaryData(const PropertyName &name) +{ + m_auxiliaryDataHash.remove(name); +} + bool InternalNode::hasAuxiliaryData(const PropertyName &name) const { return m_auxiliaryDataHash.contains(name); diff --git a/src/plugins/qmldesigner/designercore/model/internalnode_p.h b/src/plugins/qmldesigner/designercore/model/internalnode_p.h index 37c249f47b7..a3242bbe983 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnode_p.h +++ b/src/plugins/qmldesigner/designercore/model/internalnode_p.h @@ -89,6 +89,7 @@ public: QVariant auxiliaryData(const PropertyName &name) const; void setAuxiliaryData(const PropertyName &name, const QVariant &data); + void removeAuxiliaryData(const PropertyName &name); bool hasAuxiliaryData(const PropertyName &name) const; QHash auxiliaryData() const; diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp index b195fd8dd84..0ca13e17d22 100644 --- a/src/plugins/qmldesigner/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/designercore/model/model.cpp @@ -803,7 +803,11 @@ void ModelPrivate::notifyPropertiesAboutToBeRemoved(const QListsetAuxiliaryData(name, data); + if (data.isValid()) + node->setAuxiliaryData(name, data); + else + node->removeAuxiliaryData(name); + notifyAuxiliaryDataChanged(node, name,data); }