diff options
author | Marco Bubke <marco.bubke@digia.com> | 2014-07-09 18:07:13 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@digia.com> | 2014-07-10 11:56:28 +0200 |
commit | 6610833f59401e5e7c7b1d1ed1cb96337b625267 (patch) | |
tree | 2e83f1097aa3200377a9100104c7fc2123625743 | |
parent | e92be0b21e54c8a96921bdeccd909bc91b8c4ffc (diff) | |
download | qt-creator-6610833f59401e5e7c7b1d1ed1cb96337b625267.tar.gz |
QmlDesigner: Add a way to find out if instance has a value
It was not possible to find out if a property has value in the node
instance.
Change-Id: I54bf4cddbef431104153555b9c89379a3048cc9c
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
4 files changed, 15 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstance.h b/src/plugins/qmldesigner/designercore/include/nodeinstance.h index 55b8623f74..bd07c80f30 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeinstance.h +++ b/src/plugins/qmldesigner/designercore/include/nodeinstance.h @@ -78,6 +78,7 @@ public: QPixmap blurredRenderPixmap() const; QVariant property(const PropertyName &name) const; + bool hasProperty(const PropertyName &name) const; bool hasBindingForProperty(const PropertyName &name) const; QPair<PropertyName, qint32> anchor(const PropertyName &name) const; bool hasAnchor(const PropertyName &name) const; diff --git a/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h b/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h index ffad71c30c..8e071fee87 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h +++ b/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h @@ -73,6 +73,7 @@ public: NodeProperty nodeProperty(const PropertyName &name) const; NodeListProperty nodeListProperty(const PropertyName &name) const; + bool instanceHasValue(const PropertyName &name) const; QVariant instanceValue(const PropertyName &name) const; TypeName instanceType(const PropertyName &name) const; diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp index 7ca96cc7b2..2d60729a61 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp @@ -315,6 +315,14 @@ QVariant NodeInstance::property(const PropertyName &name) const return QVariant(); } +bool NodeInstance::hasProperty(const PropertyName &name) const +{ + if (isValid()) + return d->propertyValues.contains(name); + + return false; +} + bool NodeInstance::hasBindingForProperty(const PropertyName &name) const { if (isValid()) diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp index 40dff682ac..7911967a2f 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp @@ -147,6 +147,11 @@ NodeListProperty QmlObjectNode::nodeListProperty(const PropertyName &name) const return modelNode().nodeListProperty(name); } +bool QmlObjectNode::instanceHasValue(const PropertyName &name) const +{ + return nodeInstance().hasProperty(name); +} + bool QmlObjectNode::propertyAffectedByCurrentState(const PropertyName &name) const { if (!isValid()) |