diff options
author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-03-05 15:24:38 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-03-05 15:54:09 +0100 |
commit | 72ea71aacfab308f074afe891a5333ec88d17efc (patch) | |
tree | cbed2629e3c8a0a41e6733eb90033c33f51e1508 | |
parent | b59442e07298bc588509f7752ddb2a924bf96a88 (diff) | |
download | qt-creator-72ea71aacfab308f074afe891a5333ec88d17efc.tar.gz |
Fixed string escaping when writing QML properties.
-rw-r--r-- | src/plugins/qmldesigner/core/model/qmltextgenerator.cpp | 15 | ||||
-rw-r--r-- | src/plugins/qmldesigner/core/model/qmltextgenerator.h | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/core/model/qmltextgenerator.cpp b/src/plugins/qmldesigner/core/model/qmltextgenerator.cpp index 023debed9f..8602078e3f 100644 --- a/src/plugins/qmldesigner/core/model/qmltextgenerator.cpp +++ b/src/plugins/qmldesigner/core/model/qmltextgenerator.cpp @@ -97,7 +97,7 @@ QString QmlTextGenerator::toQml(const AbstractProperty &property, int indentDept return stringValue; default: - return QString(QLatin1String("\"%1\"")).arg(stringValue); + return QString(QLatin1String("\"%1\"")).arg(escape(stringValue)); } } else { Q_ASSERT("Unknown property type"); @@ -176,3 +176,16 @@ QString QmlTextGenerator::propertyToQml(const AbstractProperty &property, int in return result; } + +QString QmlTextGenerator::escape(const QString &value) +{ + QString result = value; + + result.replace(QLatin1String("\\"), QLatin1String("\\\\")); + result.replace(QLatin1String("\""), QLatin1String("\\\"")); + result.replace(QLatin1String("\t"), QLatin1String("\\\t")); + result.replace(QLatin1String("\r"), QLatin1String("\\\r")); + result.replace(QLatin1String("\n"), QLatin1String("\\\n")); + + return result; +} diff --git a/src/plugins/qmldesigner/core/model/qmltextgenerator.h b/src/plugins/qmldesigner/core/model/qmltextgenerator.h index 3103581af2..84b03bc196 100644 --- a/src/plugins/qmldesigner/core/model/qmltextgenerator.h +++ b/src/plugins/qmldesigner/core/model/qmltextgenerator.h @@ -56,6 +56,8 @@ private: QString propertiesToQml(const ModelNode &node, int indentDepth) const; QString propertyToQml(const AbstractProperty &property, int indentDepth) const; + static QString escape(const QString &value); + private: QStringList m_propertyOrder; int m_indentDepth; |