QmlDesigner: crash fix

prefixNames containing white spaces did crash.
This was lost during refactoring.
Instead of calling toLower one the string
we call toLower only on the first char.
This creates camel case ids.

Change-Id: I1093d12258e87d4f56ceef67a553d844afdfd376
Reviewed-by: Marco Bubke <marco.bubke@digia.com>
This commit is contained in:
Thomas Hartmann
2013-08-16 12:02:25 +02:00
committed by Marco Bubke
parent 882d0e3562
commit d9ec96ab31

View File

@@ -376,15 +376,26 @@ bool AbstractView::hasId(const QString &id) const
return model()->d->hasId(id);
}
QString firstCharToLower(const QString string)
{
QString resultString = string;
if (!resultString.isEmpty())
resultString[0] = resultString.at(0).toLower();
return resultString;
}
QString AbstractView::generateNewId(const QString prefixName) const
{
int counter = 1;
QString newId = QString("%1%2").arg(prefixName.toLower()).arg(counter);
QString newId = QString("%1%2").arg(firstCharToLower(prefixName)).arg(counter);
newId.remove(QRegExp(QLatin1String("[^a-zA-Z0-9_]")));
while (hasId(newId)) {
counter += 1;
newId = QString("%1%2").arg(prefixName.toLower()).arg(counter);
newId = QString("%1%2").arg(firstCharToLower(prefixName)).arg(counter);
}
return newId;