diff --git a/src/plugins/qmldesigner/designercore/include/nodehints.h b/src/plugins/qmldesigner/designercore/include/nodehints.h index 1e8b7d99e41..7fed390ee0a 100644 --- a/src/plugins/qmldesigner/designercore/include/nodehints.h +++ b/src/plugins/qmldesigner/designercore/include/nodehints.h @@ -64,9 +64,11 @@ public: bool isStackedContainer() const; bool canBeReparentedTo(const ModelNode &potenialParent); QString indexPropertyForStackedContainer() const; + QStringList visibleNonDefaultProperties() const; bool takesOverRenderingOfChildren() const; bool visibleInNavigator() const; bool visibleInLibrary() const; + QString forceNonDefaultProperty() const; QHash hints() const; static NodeHints fromModelNode(const ModelNode &modelNode); diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodehints.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodehints.cpp index c6bc6451866..dcb350c4480 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodehints.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodehints.cpp @@ -192,6 +192,19 @@ QString NodeHints::indexPropertyForStackedContainer() const return Internal::evaluateExpression(expression, modelNode(), ModelNode()).toString(); } +QStringList NodeHints::visibleNonDefaultProperties() const +{ + if (!isValid()) + return {}; + + const QString expression = m_hints.value("visibleNonDefaultProperties"); + + if (expression.isEmpty()) + return {}; + + return Internal::evaluateExpression(expression, modelNode(), ModelNode()).toString().split(","); +} + bool NodeHints::takesOverRenderingOfChildren() const { if (!isValid()) @@ -213,6 +226,16 @@ bool NodeHints::visibleInLibrary() const return evaluateBooleanExpression("visibleInLibrary", true); } +QString NodeHints::forceNonDefaultProperty() const +{ + const QString expression = m_hints.value("forceNonDefaultProperty"); + + if (expression.isEmpty()) + return {}; + + return Internal::evaluateExpression(expression, modelNode(), ModelNode()).toString(); +} + QHash NodeHints::hints() const { return m_hints;