diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp index eafc521815e..2614ca939ca 100644 --- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp @@ -179,6 +179,42 @@ static bool idIsQmlKeyWord(const QString& id) return keywords.contains(id); } +static bool isIdToAvoid(const QString& id) +{ + static const QSet ids = { + "top", + "bottom", + "left", + "right", + "width", + "height", + "x", + "y", + "opacity", + "parent", + "item", + "flow", + "color", + "margin", + "padding", + "border", + "font", + "text", + "source", + "state", + "visible", + "focus", + "data", + "clip", + "layer", + "scale", + "enabled", + "anchors" + }; + + return ids.contains(id); +} + static bool idContainsWrongLetter(const QString& id) { static QRegExp idExpr(QStringLiteral("[a-z_][a-zA-Z0-9_]*")); @@ -187,7 +223,7 @@ static bool idContainsWrongLetter(const QString& id) bool ModelNode::isValidId(const QString &id) { - return id.isEmpty() || (!idContainsWrongLetter(id) && !idIsQmlKeyWord(id)); + return id.isEmpty() || (!idContainsWrongLetter(id) && !idIsQmlKeyWord(id)) && !isIdToAvoid(id); } bool ModelNode::hasId() const