aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/qtprofilesetup/qtprofilesetup.cpp
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2014-06-05 16:27:09 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2014-06-16 11:24:55 +0200
commita087dbee911773b9e43abe0a1fb9a8ba5b4544e7 (patch)
treeab119c03d26e11be73d46e96653a9de5f9e2a786 /src/lib/qtprofilesetup/qtprofilesetup.cpp
parent07d410e0254cfef40a8aac767bcf9d921486ff41 (diff)
use toJSLiteral in setupQtProfile
Remove duplicated code to convert Qt datatypes to JavaScript literals. Change-Id: I5dac447648f6d3ec05be254c6d5ae8a3ed3665b5 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src/lib/qtprofilesetup/qtprofilesetup.cpp')
-rw-r--r--src/lib/qtprofilesetup/qtprofilesetup.cpp36
1 files changed, 16 insertions, 20 deletions
diff --git a/src/lib/qtprofilesetup/qtprofilesetup.cpp b/src/lib/qtprofilesetup/qtprofilesetup.cpp
index dae4a055f..226863aa9 100644
--- a/src/lib/qtprofilesetup/qtprofilesetup.cpp
+++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp
@@ -33,6 +33,7 @@
#include <tools/error.h>
#include <tools/fileinfo.h>
#include <tools/profile.h>
+#include <tools/scripttools.h>
#include <tools/settings.h>
#include <QDir>
@@ -45,6 +46,12 @@
namespace qbs {
+template <class T>
+QByteArray utf8JSLiteral(T t)
+{
+ return toJSLiteral(t).toUtf8();
+}
+
struct QtModuleInfo
{
QtModuleInfo(const QString &name, const QString &qbsName,
@@ -105,15 +112,6 @@ static void copyTemplateFile(const QString &fileName, const QString &targetDirec
}
}
-static void replaceListPlaceholder(QByteArray &content, const QByteArray &placeHolder,
- const QStringList &list)
-{
- QByteArray listString;
- foreach (const QString &elem, list)
- listString += "'" + elem.toUtf8() + "', ";
- content.replace(placeHolder, listString);
-}
-
// We erroneously called the "testlib" module "test" for quite a while. Let's not punish users
// for that.
static void addTestModule(QList<QtModuleInfo> &modules)
@@ -134,11 +132,9 @@ static void addDesignerComponentsModule(QList<QtModuleInfo> &modules)
modules << module;
}
-static QString quotedPath(const QString &str)
+static QString pathToJSLiteral(const QString &path)
{
- return QLatin1Char('"')
- + QDir::fromNativeSeparators(str).replace(QLatin1Char('"'), QLatin1String("\\\""))
- + QLatin1Char('"');
+ return toJSLiteral(QDir::fromNativeSeparators(path));
}
static void createModules(Profile &profile, Settings *settings,
@@ -339,10 +335,10 @@ static void createModules(Profile &profile, Settings *settings,
.arg(profile.name(), moduleFile.fileName(), moduleFile.errorString()));
}
QByteArray content = moduleFile.readAll();
- content.replace("### name", '"' + qtModuleName(module).toUtf8() + '"');
- content.replace("### has library", module.hasLibrary ? "true" : "false");
- replaceListPlaceholder(content, "### dependencies", module.dependencies);
- replaceListPlaceholder(content, "### includes", module.includePaths);
+ content.replace("### name", utf8JSLiteral(qtModuleName(module)));
+ content.replace("### has library", utf8JSLiteral(module.hasLibrary));
+ content.replace("### dependencies", utf8JSLiteral(module.dependencies));
+ content.replace("### includes", utf8JSLiteral(module.includePaths));
QByteArray propertiesString;
if (module.qbsName == QLatin1String("declarative")
|| module.qbsName == QLatin1String("quick")) {
@@ -360,15 +356,15 @@ static void createModules(Profile &profile, Settings *settings,
if (qtEnvironment.qmlPath.isEmpty())
s << endl;
else
- s << ": " << quotedPath(qtEnvironment.qmlPath) << endl;
+ s << ": " << pathToJSLiteral(qtEnvironment.qmlPath) << endl;
s << indent << "property string qmlImportsPath: "
- << quotedPath(qtEnvironment.qmlImportPath);
+ << pathToJSLiteral(qtEnvironment.qmlImportPath);
}
if (!module.modulePrefix.isEmpty()) {
if (!propertiesString.isEmpty())
propertiesString += "\n ";
- propertiesString += "qtModulePrefix: \"" + module.modulePrefix.toUtf8() + '"';
+ propertiesString += "qtModulePrefix: " + utf8JSLiteral(module.modulePrefix);
}
if (module.isStaticLibrary) {
if (!propertiesString.isEmpty())