diff --git a/src/plugins/qmldesigner/core/model/modelmerger.cpp b/src/plugins/qmldesigner/core/model/modelmerger.cpp
index 4707db2eb7c3cd8ae4089e987eaa9a8385e486d5..7fc54351417696d268874538d1cb55f82a8f5370 100644
--- a/src/plugins/qmldesigner/core/model/modelmerger.cpp
+++ b/src/plugins/qmldesigner/core/model/modelmerger.cpp
@@ -81,16 +81,20 @@ static void syncId(ModelNode &outputNode, const ModelNode &inputNode, const QHas
static void splitIdInBaseNameAndNumber(const QString &id, QString *baseId, int *number)
{
- QRegExp regularExpression("(.*)(\\d*)");
-// regularExpression.setMinimal(true);
- regularExpression.setPatternSyntax(QRegExp::RegExp2);
- regularExpression.indexIn(id);
- QStringList splitedList = regularExpression.capturedTexts();
- *baseId = regularExpression.cap(1);
+ int counter = 0;
+ while(counter < id.count()) {
+ bool canConvertToInteger = false;
+ int newNumber = id.right(counter +1).toInt(&canConvertToInteger);
+ if (canConvertToInteger)
+ *number = newNumber;
+ else
+ break;
+ counter++;
+ }
- qDebug() <<splitedList;
+ *baseId = id.left(id.count() - counter);
}
static void setupIdRenamingHash(const ModelNode &modelNode, QHash<QString, QString> &idRenamingHash, AbstractView *view)
@@ -105,10 +109,10 @@ static void setupIdRenamingHash(const ModelNode &modelNode, QHash<QString, QStri
splitIdInBaseNameAndNumber(newId, &baseId, &number);
while (view->hasId(newId) || idRenamingHash.contains(newId)) {
-
- newId = baseId + QString::number(number).toLower();
+ newId = baseId + QString::number(number);
number++;
}
+
idRenamingHash.insert(node.id(), newId);
}
}