diff --git a/src/plugins/qmldesigner/designercore/include/modelnode.h b/src/plugins/qmldesigner/designercore/include/modelnode.h index f4022c8c92e..99f0840fa1d 100644 --- a/src/plugins/qmldesigner/designercore/include/modelnode.h +++ b/src/plugins/qmldesigner/designercore/include/modelnode.h @@ -155,6 +155,7 @@ public: void setIdWithRefactoring(const QString &id); void setIdWithoutRefactoring(const QString &id); static bool isValidId(const QString &id); + bool hasId() const; Model *model() const; AbstractView *view() const; diff --git a/src/plugins/qmldesigner/designercore/model/internalnode.cpp b/src/plugins/qmldesigner/designercore/model/internalnode.cpp index 1059e8b7760..f89809f138d 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalnode.cpp @@ -155,6 +155,11 @@ void InternalNode::setId(const QString& id) m_id = id; } +bool InternalNode::hasId() const +{ + return !m_id.isEmpty(); +} + uint qHash(const InternalNodePointer& node) { diff --git a/src/plugins/qmldesigner/designercore/model/internalnode_p.h b/src/plugins/qmldesigner/designercore/model/internalnode_p.h index b24757ff31a..879c3f15115 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnode_p.h +++ b/src/plugins/qmldesigner/designercore/model/internalnode_p.h @@ -86,6 +86,7 @@ public: QString id() const; void setId(const QString& id); + bool hasId() const; QVariant auxiliaryData(const PropertyName &name) const; void setAuxiliaryData(const PropertyName &name, const QVariant &data); diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp index 04c2bdd66cc..f916ef0dfc3 100644 --- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp @@ -164,6 +164,14 @@ bool ModelNode::isValidId(const QString &id) return id.isEmpty() || (!idContainsWrongLetter(id) && !idIsQmlKeyWord(id)); } +bool ModelNode::hasId() const +{ + if (!isValid()) + throw InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__); + + return m_internalNode->hasId(); +} + void ModelNode::setIdWithRefactoring(const QString& id) { if (model()->rewriterView()