aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-08-21 16:44:04 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2020-08-27 10:03:27 +0000
commitacdb971048652b49941f3d4c009a5cadf466047c (patch)
treec47d9f369d4b6cda376bfe30a271de289911a642 /src/plugins/qmldesigner/designercore
parent151373396fc52de763eff05da0b0071130f521db (diff)
QmlDesigner: Add suffux to invalid ids
Instead of replacing them with "element" add a suffix. Change-Id: Idc72ba9a8a7b4f48d4e325378b975cafeab88bd4 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/designercore')
-rw-r--r--src/plugins/qmldesigner/designercore/model/abstractview.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/abstractview.cpp b/src/plugins/qmldesigner/designercore/model/abstractview.cpp
index 3be64be127..f5ef94f621 100644
--- a/src/plugins/qmldesigner/designercore/model/abstractview.cpp
+++ b/src/plugins/qmldesigner/designercore/model/abstractview.cpp
@@ -508,9 +508,13 @@ QString AbstractView::generateNewId(const QString &prefixName) const
{
QString fixedPrefix = firstCharToLower(prefixName);
fixedPrefix.remove(' ');
+
+ bool forceSuffix = false;
+
if (!ModelNode::isValidId(fixedPrefix))
- return generateNewId("element");
- int counter = 1;
+ forceSuffix = true;
+
+ int counter = 0;
/* First try just the prefixName without number as postfix, then continue with 2 and further as postfix
* until id does not already exist.
@@ -520,11 +524,14 @@ QString AbstractView::generateNewId(const QString &prefixName) const
*/
QString newId = QString(QStringLiteral("%1")).arg(firstCharToLower(prefixName));
+ if (forceSuffix)
+ QString(QStringLiteral("%1%2")).arg(firstCharToLower(prefixName)).arg(1);
+
newId.remove(QRegExp(QStringLiteral("[^a-zA-Z0-9_]")));
while (!ModelNode::isValidId(newId) || hasId(newId) || rootModelNode().hasProperty(newId.toUtf8()) || newId == "item") {
counter += 1;
- newId = QString(QStringLiteral("%1%2")).arg(firstCharToLower(prefixName)).arg(counter - 1);
+ newId = QString(QStringLiteral("%1%2")).arg(firstCharToLower(prefixName)).arg(counter);
newId.remove(QRegExp(QStringLiteral("[^a-zA-Z0-9_]")));
}