QmlDesigner: Remove AuxiliaryDataauxilary if data is invalid

Change-Id: Ifc802442f54b4c84e1df04cbd8c59ad48c745aa5
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
Marco Bubke
2013-08-05 15:20:30 +02:00
committed by Thomas Hartmann
parent 835ef9507b
commit 56bdb0d1ea
3 changed files with 11 additions and 1 deletions

View File

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

View File

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

View File

@@ -803,7 +803,11 @@ void ModelPrivate::notifyPropertiesAboutToBeRemoved(const QList<InternalProperty
void ModelPrivate::setAuxiliaryData(const InternalNode::Pointer& node, const PropertyName &name, const QVariant &data)
{
node->setAuxiliaryData(name, data);
if (data.isValid())
node->setAuxiliaryData(name, data);
else
node->removeAuxiliaryData(name);
notifyAuxiliaryDataChanged(node, name,data);
}