QmlDesigner: Add NodeAbstractProperty::parentProperty()

Change-Id: Ibb4e68cf80ab1d23680cfaf7a2c638fea5d6c5a0
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
This commit is contained in:
Marco Bubke
2014-05-06 13:46:18 +02:00
parent 0673a6a20d
commit 948990aa7b
2 changed files with 16 additions and 0 deletions

View File

@@ -56,6 +56,7 @@ public:
bool isEmpty() const;
int count() const;
int indexOf(const ModelNode &node) const;
NodeAbstractProperty parentProperty() const;
const QList<ModelNode> allSubNodes();
const QList<ModelNode> directSubNodes() const;

View File

@@ -116,6 +116,21 @@ int NodeAbstractProperty::indexOf(const ModelNode &node) const
return property->indexOf(node.internalNode());
}
NodeAbstractProperty NodeAbstractProperty::parentProperty() const
{
if (!isValid()) {
Q_ASSERT_X(isValid(), Q_FUNC_INFO, "property is invalid");
throw InvalidPropertyException(__LINE__, __FUNCTION__, __FILE__, name());
}
if (internalNode()->parentProperty().isNull()) {
Q_ASSERT_X(internalNode()->parentProperty(), Q_FUNC_INFO, "parentProperty is invalid");
throw InvalidPropertyException(__LINE__, __FUNCTION__, __FILE__, "parent");
}
return NodeAbstractProperty(internalNode()->parentProperty()->name(), internalNode()->parentProperty()->propertyOwner(), model(), view());
}
int NodeAbstractProperty::count() const
{
Internal::InternalNodeAbstractProperty::Pointer property = internalNode()->nodeAbstractProperty(name());