diff options
author | Jake Petroules <jake.petroules@petroules.com> | 2014-01-08 14:36:16 -0500 |
---|---|---|
committer | Jake Petroules <jake.petroules@petroules.com> | 2014-01-14 17:41:47 +0100 |
commit | 49a051bd4b320aff32066181932dc27a4eea63c5 (patch) | |
tree | a8f5c6e56bb275d2ae8c83179065623385d1395a /src/lib/corelib | |
parent | cf706560d394e582a897d2a69e79ce5740d2459d (diff) |
Prepare for using QT_NO_CAST_FROM/TO_ASCII.
Change-Id: Ib39e49e896cbddf5a5bd851088500991d962355a
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src/lib/corelib')
30 files changed, 272 insertions, 218 deletions
diff --git a/src/lib/corelib/api/runenvironment.cpp b/src/lib/corelib/api/runenvironment.cpp index 43b5c5605..25ec6ab46 100644 --- a/src/lib/corelib/api/runenvironment.cpp +++ b/src/lib/corelib/api/runenvironment.cpp @@ -115,7 +115,7 @@ int RunEnvironment::runShell() envFile.reset(new QTemporaryFile); if (envFile->open()) { if (command.endsWith(QLatin1String("bash"))) - command += " --posix"; // Teach bash some manners. + command += QLatin1String(" --posix"); // Teach bash some manners. const QString promptLine = QLatin1String("PS1='") + prompt + QLatin1String("'\n"); envFile->write(promptLine.toLocal8Bit()); envFile->close(); diff --git a/src/lib/corelib/buildgraph/artifactcleaner.cpp b/src/lib/corelib/buildgraph/artifactcleaner.cpp index 98fed728e..a1e91cdaf 100644 --- a/src/lib/corelib/buildgraph/artifactcleaner.cpp +++ b/src/lib/corelib/buildgraph/artifactcleaner.cpp @@ -166,7 +166,7 @@ void ArtifactCleaner::cleanup(const TopLevelProjectPtr &project, if (dir.startsWith(project->buildDirectory) && FileInfo(dir).exists()) removeEmptyDirectories(dir, options); if (dir != project->buildDirectory) { - const QString parentDir = QDir::cleanPath(dir + "/.."); + const QString parentDir = QDir::cleanPath(dir + QLatin1String("/..")); if (parentDir != project->buildDirectory && !dirList.contains(parentDir)) dirList << parentDir; } diff --git a/src/lib/corelib/buildgraph/automoc.cpp b/src/lib/corelib/buildgraph/automoc.cpp index 5dcb6ec9f..38db3b83c 100644 --- a/src/lib/corelib/buildgraph/automoc.cpp +++ b/src/lib/corelib/buildgraph/automoc.cpp @@ -59,7 +59,7 @@ void AutoMoc::setScanResultCache(ScanResultCache *scanResultCache) void AutoMoc::apply(const ResolvedProductPtr &product) { if (cppScanners().isEmpty() || hppScanners().isEmpty()) - throw ErrorInfo("C++ scanner cannot be loaded."); + throw ErrorInfo(Tr::tr("C++ scanner cannot be loaded.")); Artifact *pluginMetaDataFile = 0; Artifact *pchFile = 0; @@ -159,10 +159,11 @@ QString AutoMoc::generateMocFileName(Artifact *artifact, FileType fileType) case UnknownFileType: break; case HppFileType: - mocFileName = "moc_" + FileInfo::baseName(artifact->filePath()) + ".cpp"; + mocFileName = QLatin1String("moc_") + FileInfo::baseName(artifact->filePath()) + + QLatin1String(".cpp"); break; case CppFileType: - mocFileName = FileInfo::baseName(artifact->filePath()) + ".moc"; + mocFileName = FileInfo::baseName(artifact->filePath()) + QLatin1String(".moc"); break; } return mocFileName; @@ -229,7 +230,8 @@ void AutoMoc::scan(Artifact *artifact, FileType fileType, bool &hasQObjectMacro, foreach (const ScanResultCache::Dependency &dependency, scanResult.deps) { const QString &includedFilePath = dependency.filePath(); - if (includedFilePath.startsWith("moc_") && includedFilePath.endsWith(".cpp")) { + if (includedFilePath.startsWith(QLatin1String("moc_")) && + includedFilePath.endsWith(QLatin1String(".cpp"))) { if (m_logger.traceEnabled()) m_logger.qbsTrace() << "[AUTOMOC] finds included file: " << includedFilePath; includedMocCppFiles += includedFilePath; diff --git a/src/lib/corelib/buildgraph/buildgraph.cpp b/src/lib/corelib/buildgraph/buildgraph.cpp index 542d083c9..af723cff7 100644 --- a/src/lib/corelib/buildgraph/buildgraph.cpp +++ b/src/lib/corelib/buildgraph/buildgraph.cpp @@ -67,7 +67,8 @@ public: setProduct(depfunc, product.data()); QScriptValue descriptor = m_engine->newObject(); descriptor.setProperty(QLatin1String("get"), depfunc); - descriptor.setProperty(QLatin1String("set"), m_engine->evaluate("(function(){})")); + descriptor.setProperty(QLatin1String("set"), + m_engine->evaluate(QLatin1String("(function(){})"))); descriptor.setProperty(QLatin1String("enumerable"), true); m_engine->defineProperty(productScriptValue, QLatin1String("dependencies"), descriptor); } @@ -124,7 +125,8 @@ private: depfunc.setData(engine->toScriptValue(propMap.value(QLatin1String("modules")))); QScriptValue descriptor = engine->newObject(); descriptor.setProperty(QLatin1String("get"), depfunc); - descriptor.setProperty(QLatin1String("set"), engine->evaluate("(function(){})")); + descriptor.setProperty(QLatin1String("set"), + engine->evaluate(QLatin1String("(function(){})"))); descriptor.setProperty(QLatin1String("enumerable"), true); engine->defineProperty(moduleScriptValue, QLatin1String("dependencies"), descriptor); moduleScriptValue.setProperty(QLatin1String("type"), QLatin1String("module")); @@ -324,7 +326,7 @@ QString relativeArtifactFileName(const Artifact *artifact) QString str = artifact->filePath(); if (str.startsWith(buildDir)) str.remove(0, buildDir.count()); - if (str.startsWith('/')) + if (str.startsWith(QLatin1Char('/'))) str.remove(0, 1); return str; } @@ -397,12 +399,12 @@ void insertArtifact(const ResolvedProductPtr &product, Artifact *artifact, const if (lookupArtifact(otherProduct, artifact->filePath())) { if (artifact->artifactType == Artifact::Generated) { QString pl; - pl.append(QString(" - %1 \n").arg(product->name)); + pl.append(QString::fromLatin1(" - %1 \n").arg(product->name)); foreach (const ResolvedProductConstPtr &p, product->project->products) { if (lookupArtifact(p, artifact->filePath())) - pl.append(QString(" - %1 \n").arg(p->name)); + pl.append(QString::fromLatin1(" - %1 \n").arg(p->name)); } - throw ErrorInfo(QString ("BUG: already inserted in this project: %1\n%2") + throw ErrorInfo(QString::fromLatin1("BUG: already inserted in this project: %1\n%2") .arg(artifact->filePath()).arg(pl), CodeLocation(), true); } } diff --git a/src/lib/corelib/buildgraph/command.cpp b/src/lib/corelib/buildgraph/command.cpp index 8e30906ee..60ec93907 100644 --- a/src/lib/corelib/buildgraph/command.cpp +++ b/src/lib/corelib/buildgraph/command.cpp @@ -70,9 +70,9 @@ bool AbstractCommand::equals(const AbstractCommand *other) const void AbstractCommand::fillFromScriptValue(const QScriptValue *scriptValue, const CodeLocation &codeLocation) { - m_description = scriptValue->property("description").toString(); - m_highlight = scriptValue->property("highlight").toString(); - m_silent = scriptValue->property("silent").toBool(); + m_description = scriptValue->property(QLatin1String("description")).toString(); + m_highlight = scriptValue->property(QLatin1String("highlight")).toString(); + m_silent = scriptValue->property(QLatin1String("silent")).toBool(); m_codeLocation = codeLocation; } @@ -90,9 +90,12 @@ static QScriptValue js_CommandBase(QScriptContext *context, QScriptEngine *engin { QScriptValue cmd = context->thisObject(); QBS_ASSERT(context->isCalledAsConstructor(), cmd = engine->newObject()); - cmd.setProperty("description", engine->toScriptValue(AbstractCommand::defaultDescription())); - cmd.setProperty("highlight", engine->toScriptValue(AbstractCommand::defaultHighLight())); - cmd.setProperty("silent", engine->toScriptValue(AbstractCommand::defaultIsSilent())); + cmd.setProperty(QLatin1String("description"), + engine->toScriptValue(AbstractCommand::defaultDescription())); + cmd.setProperty(QLatin1String("highlight"), + engine->toScriptValue(AbstractCommand::defaultHighLight())); + cmd.setProperty(QLatin1String("silent"), + engine->toScriptValue(AbstractCommand::defaultIsSilent())); return cmd; } @@ -110,16 +113,24 @@ static QScriptValue js_Command(QScriptContext *context, QScriptEngine *engine) if (arguments.isUndefined()) arguments = engine->toScriptValue(commandPrototype.arguments()); QScriptValue cmd = js_CommandBase(context, engine); - cmd.setProperty("className", engine->toScriptValue(QString("Command"))); - cmd.setProperty("program", program); - cmd.setProperty("arguments", arguments); - cmd.setProperty("workingDir", engine->toScriptValue(commandPrototype.workingDir())); - cmd.setProperty("maxExitCode", engine->toScriptValue(commandPrototype.maxExitCode())); - cmd.setProperty("stdoutFilterFunction", engine->toScriptValue(commandPrototype.stdoutFilterFunction())); - cmd.setProperty("stderrFilterFunction", engine->toScriptValue(commandPrototype.stderrFilterFunction())); - cmd.setProperty("responseFileThreshold", engine->toScriptValue(commandPrototype.responseFileThreshold())); - cmd.setProperty("responseFileUsagePrefix", engine->toScriptValue(commandPrototype.responseFileUsagePrefix())); - cmd.setProperty("environment", engine->toScriptValue(commandPrototype.environment().toStringList())); + cmd.setProperty(QLatin1String("className"), + engine->toScriptValue(QString::fromLatin1("Command"))); + cmd.setProperty(QLatin1String("program"), program); + cmd.setProperty(QLatin1String("arguments"), arguments); + cmd.setProperty(QLatin1String("workingDir"), + engine->toScriptValue(commandPrototype.workingDir())); + cmd.setProperty(QLatin1String("maxExitCode"), + engine->toScriptValue(commandPrototype.maxExitCode())); + cmd.setProperty(QLatin1String("stdoutFilterFunction"), + engine->toScriptValue(commandPrototype.stdoutFilterFunction())); + cmd.setProperty(QLatin1String("stderrFilterFunction"), + engine->toScriptValue(commandPrototype.stderrFilterFunction())); + cmd.setProperty(QLatin1String("responseFileThreshold"), + engine->toScriptValue(commandPrototype.responseFileThreshold())); + cmd.setProperty(QLatin1String("responseFileUsagePrefix"), + engine->toScriptValue(commandPrototype.responseFileUsagePrefix())); + cmd.setProperty(QLatin1String("environment"), + engine->toScriptValue(commandPrototype.environment().toStringList())); return cmd; } @@ -128,7 +139,7 @@ void ProcessCommand::setupForJavaScript(QScriptValue targetObject) { QBS_CHECK(targetObject.isObject()); QScriptValue ctor = targetObject.engine()->newFunction(js_Command, 2); - targetObject.setProperty("Command", ctor); + targetObject.setProperty(QLatin1String("Command"), ctor); } ProcessCommand::ProcessCommand() @@ -169,14 +180,18 @@ bool ProcessCommand::equals(const AbstractCommand *otherAbstractCommand) const void ProcessCommand::fillFromScriptValue(const QScriptValue *scriptValue, const CodeLocation &codeLocation) { AbstractCommand::fillFromScriptValue(scriptValue, codeLocation); - m_program = scriptValue->property("program").toString(); - m_arguments = scriptValue->property("arguments").toVariant().toStringList(); - m_workingDir = scriptValue->property("workingDirectory").toString(); - m_maxExitCode = scriptValue->property("maxExitCode").toInt32(); - m_stdoutFilterFunction = scriptValue->property("stdoutFilterFunction").toString(); - m_stderrFilterFunction = scriptValue->property("stderrFilterFunction").toString(); - m_responseFileThreshold = scriptValue->property("responseFileThreshold").toInt32(); - m_responseFileUsagePrefix = scriptValue->property("responseFileUsagePrefix").toString(); + m_program = scriptValue->property(QLatin1String("program")).toString(); + m_arguments = scriptValue->property(QLatin1String("arguments")).toVariant().toStringList(); + m_workingDir = scriptValue->property(QLatin1String("workingDirectory")).toString(); + m_maxExitCode = scriptValue->property(QLatin1String("maxExitCode")).toInt32(); + m_stdoutFilterFunction = + scriptValue->property(QLatin1String("stdoutFilterFunction")).toString(); + m_stderrFilterFunction = + scriptValue->property(QLatin1String("stderrFilterFunction")).toString(); + m_responseFileThreshold = scriptValue->property(QLatin1String("responseFileThreshold")) + .toInt32(); + m_responseFileUsagePrefix = scriptValue->property(QLatin1String("responseFileUsagePrefix")) + .toString(); QStringList envList = scriptValue->property(QLatin1String("environment")).toVariant() .toStringList(); getEnvironmentFromList(envList); @@ -218,13 +233,15 @@ static QScriptValue js_JavaScriptCommand(QScriptContext *context, QScriptEngine return context->throwError(Tr::tr("JavaScriptCommand constructor called without new.")); if (Q_UNLIKELY(context->argumentCount() != 0)) { return context->throwError(QScriptContext::SyntaxError, - "JavaScriptCommand c'tor doesn't take arguments."); + QLatin1String("JavaScriptCommand c'tor doesn't take arguments.")); } static JavaScriptCommand commandPrototype; QScriptValue cmd = js_CommandBase(context, engine); - cmd.setProperty("className", engine->toScriptValue(QString("JavaScriptCommand"))); - cmd.setProperty("sourceCode", engine->toScriptValue(commandPrototype.sourceCode())); + cmd.setProperty(QLatin1String("className"), + engine->toScriptValue(QString::fromLatin1("JavaScriptCommand"))); + cmd.setProperty(QLatin1String("sourceCode"), + engine->toScriptValue(commandPrototype.sourceCode())); return cmd; } @@ -232,7 +249,7 @@ void JavaScriptCommand::setupForJavaScript(QScriptValue targetObject) { QBS_CHECK(targetObject.isObject()); QScriptValue ctor = targetObject.engine()->newFunction(js_JavaScriptCommand, 0); - targetObject.setProperty("JavaScriptCommand", ctor); + targetObject.setProperty(QLatin1String("JavaScriptCommand"), ctor); } JavaScriptCommand::JavaScriptCommand() @@ -252,13 +269,14 @@ bool JavaScriptCommand::equals(const AbstractCommand *otherAbstractCommand) cons void JavaScriptCommand::fillFromScriptValue(const QScriptValue *scriptValue, const CodeLocation &codeLocation) { AbstractCommand::fillFromScriptValue(scriptValue, codeLocation); - QScriptValue sourceCode = scriptValue->property("sourceCode"); + QScriptValue sourceCode = scriptValue->property(QLatin1String("sourceCode")); if (sourceCode.isFunction()) - m_sourceCode = "(" + sourceCode.toString() + ")()"; + m_sourceCode = QLatin1String("(") + sourceCode.toString() + QLatin1String(")()"); else m_sourceCode = sourceCode.toString(); static QSet<QString> predefinedProperties = QSet<QString>() - << "description" << "highlight" << "silent" << "className" << "sourceCode"; + << QLatin1String("description") << QLatin1String("highlight") << QLatin1String("silent") + << QLatin1String("className") << QLatin1String("sourceCode"); QScriptValueIterator it(*scriptValue); while (it.hasNext()) { diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp index fe546c97b..3938e961b 100644 --- a/src/lib/corelib/buildgraph/executor.cpp +++ b/src/lib/corelib/buildgraph/executor.cpp @@ -505,7 +505,7 @@ void Executor::buildArtifact(Artifact *artifact) Artifact *output = *it; QDir outDir = QFileInfo(output->filePath()).absoluteDir(); if (!outDir.exists()) - outDir.mkpath("."); + outDir.mkpath(QLatin1String(".")); } } @@ -547,7 +547,7 @@ void Executor::buildArtifact(Artifact *artifact) m_processingJobs.insert(job, artifact); Q_ASSERT_X(artifact->product, Q_FUNC_INFO, - qPrintable(QString("Generated artifact '%1' belongs to no product.") + qPrintable(QString::fromLatin1("Generated artifact '%1' belongs to no product.") .arg(QDir::toNativeSeparators(artifact->filePath())))); job->run(artifact->transformer.data(), artifact->product); @@ -724,7 +724,7 @@ void Executor::addExecutorJobs(int jobNumber) for (int i = 1; i <= jobNumber; i++) { ExecutorJob *job = new ExecutorJob(m_logger, this); job->setMainThreadScriptEngine(m_evalContext->engine()); - job->setObjectName(QString(QLatin1String("J%1")).arg(i)); + job->setObjectName(QString::fromLatin1("J%1").arg(i)); m_availableJobs.append(job); connect(job, SIGNAL(reportCommandDescription(QString,QString)), this, SIGNAL(reportCommandDescription(QString,QString)), Qt::QueuedConnection); @@ -744,7 +744,7 @@ void Executor::runAutoMoc() throw ErrorInfo(Tr::tr("Build canceled%1.").arg(configString())); // HACK call the automoc thingy here only if we have use Qt/core module foreach (const ResolvedModuleConstPtr &m, product->modules) { - if (m->name == "Qt/core") { + if (m->name == QLatin1String("Qt/core")) { autoMocApplied = true; m_autoMoc->apply(product); break; @@ -817,7 +817,7 @@ void Executor::finish() m_logger.qbsInfo() << Tr::tr("Build done%1.").arg(configString()); } else { m_error.append(Tr::tr("The following products could not be built%1: %2.") - .arg(configString(), unbuiltProductNames.join(", "))); + .arg(configString(), unbuiltProductNames.join(QLatin1String(", ")))); } if (m_explicitlyCanceled) diff --git a/src/lib/corelib/buildgraph/inputartifactscanner.cpp b/src/lib/corelib/buildgraph/inputartifactscanner.cpp index d5a0fabb6..ba646c54f 100644 --- a/src/lib/corelib/buildgraph/inputartifactscanner.cpp +++ b/src/lib/corelib/buildgraph/inputartifactscanner.cpp @@ -62,12 +62,14 @@ static void collectIncludePaths(const QVariantMap &modules, QSet<QString> *colle QMapIterator<QString, QVariant> iterator(modules); while (iterator.hasNext()) { iterator.next(); - if (iterator.key() == "cpp") { - QVariant includePathsVariant = iterator .value().toMap().value("includePaths"); + if (iterator.key() == QLatin1String("cpp")) { + QVariant includePathsVariant = + iterator.value().toMap().value(QLatin1String("includePaths")); if (includePathsVariant.isValid()) collectedPaths->unite(QSet<QString>::fromList(includePathsVariant.toStringList())); } else { - collectIncludePaths(iterator.value().toMap().value("modules").toMap(), collectedPaths); + collectIncludePaths(iterator.value().toMap().value(QLatin1String("modules")).toMap(), + collectedPaths); } } } @@ -184,7 +186,8 @@ void InputArtifactScanner::scan() if (cacheHit) { includePaths = cacheItem.includePaths; } else { - includePaths = collectIncludePaths(inputArtifact->properties->value().value("modules").toMap()); + includePaths = collectIncludePaths(inputArtifact->properties->value() + .value(QLatin1String("modules")).toMap()); cacheItem.includePaths = includePaths; cacheItem.valid = true; } @@ -212,7 +215,7 @@ void InputArtifactScanner::scanForFileDependencies(ScannerPlugin *scannerPlugin, { if (m_logger.debugEnabled()) { m_logger.qbsDebug() << QString::fromLocal8Bit("scanning %1 [%2]\n from %3") - .arg(inputArtifact->filePath()).arg(scannerPlugin->fileTag) + .arg(inputArtifact->filePath()).arg(QLatin1String(scannerPlugin->fileTag)) .arg(m_artifact->filePath()); } diff --git a/src/lib/corelib/buildgraph/jscommandexecutor.cpp b/src/lib/corelib/buildgraph/jscommandexecutor.cpp index 5de52e581..b51dd6475 100644 --- a/src/lib/corelib/buildgraph/jscommandexecutor.cpp +++ b/src/lib/corelib/buildgraph/jscommandexecutor.cpp @@ -172,7 +172,7 @@ void JsCommandExecutor::onJavaScriptCommandFinished() if (!result.success) { logger().qbsDebug() << "JS context:\n" << jsCommand()->properties(); logger().qbsDebug() << "JS code:\n" << jsCommand()->sourceCode(); - QString msg = "Error while executing JavaScriptCommand:\n"; + QString msg = tr("Error while executing JavaScriptCommand:\n"); msg += result.errorMessage; emit error(ErrorInfo(msg, result.errorLocation)); } diff --git a/src/lib/corelib/buildgraph/processcommandexecutor.cpp b/src/lib/corelib/buildgraph/processcommandexecutor.cpp index 8887cc99f..3c435fcde 100644 --- a/src/lib/corelib/buildgraph/processcommandexecutor.cpp +++ b/src/lib/corelib/buildgraph/processcommandexecutor.cpp @@ -77,7 +77,7 @@ ProcessCommandExecutor::ProcessCommandExecutor(const Logger &logger, QObject *pa static QString commandArgsToString(const QStringList &args) { QString result; - QRegExp ws("\\s"); + QRegExp ws(QLatin1String("\\s")); foreach (const QString &arg, args) { result += QLatin1Char(' '); @@ -131,7 +131,7 @@ void ProcessCommandExecutor::doStart() // We need to delete the file manually, later. QTemporaryFile responseFile; responseFile.setAutoRemove(false); - responseFile.setFileTemplate(QDir::tempPath() + "/qbsresp"); + responseFile.setFileTemplate(QDir::tempPath() + QLatin1String("/qbsresp")); if (!responseFile.open()) { emit error(ErrorInfo(Tr::tr("Cannot create response file '%1'.") .arg(responseFile.fileName()))); @@ -171,7 +171,9 @@ QString ProcessCommandExecutor::filterProcessOutput(const QByteArray &_output, if (filterFunctionSource.isEmpty()) return output; - QScriptValue filterFunction = scriptEngine()->evaluate("var f = " + filterFunctionSource + "; f"); + QScriptValue filterFunction = scriptEngine()->evaluate(QLatin1String("var f = ") + + filterFunctionSource + + QLatin1String("; f")); if (!filterFunction.isFunction()) { emit error(ErrorInfo(Tr::tr("Error in filter function: %1.\n%2") .arg(filterFunctionSource, filterFunction.toString()))); @@ -285,8 +287,8 @@ QString ProcessCommandExecutor::findProcessCommandInPath() if (logger().traceEnabled()) logger().qbsTrace() << "[EXEC] looking for executable in PATH " << fullProgramPath; const QProcessEnvironment &buildEnvironment = product->buildEnvironment; - QStringList pathEnv = buildEnvironment.value("PATH").split(HostOsInfo::pathListSeparator(), - QString::SkipEmptyParts); + QStringList pathEnv = buildEnvironment.value(QLatin1String("PATH")) + .split(HostOsInfo::pathListSeparator(), QString::SkipEmptyParts); if (HostOsInfo::isWindowsHost()) pathEnv.prepend(QLatin1String(".")); for (int i = 0; i < pathEnv.count(); ++i) { diff --git a/src/lib/corelib/buildgraph/projectbuilddata.cpp b/src/lib/corelib/buildgraph/projectbuilddata.cpp index d671a029b..5c2188753 100644 --- a/src/lib/corelib/buildgraph/projectbuilddata.cpp +++ b/src/lib/corelib/buildgraph/projectbuilddata.cpp @@ -328,7 +328,8 @@ void BuildDataResolver::resolveProductBuildData(const ResolvedProductPtr &produc foreach (const QString &inputFileName, rtrafo->inputs) { Artifact *artifact = lookupArtifact(product, inputFileName); if (Q_UNLIKELY(!artifact)) - throw ErrorInfo(QString("Can't find artifact '%0' in the list of source files.").arg(inputFileName)); + throw ErrorInfo(Tr::tr("Can't find artifact '%0' in the list of source files.") + .arg(inputFileName)); inputArtifacts += artifact; } TransformerPtr transformer = Transformer::create(); @@ -369,7 +370,8 @@ void BuildDataResolver::resolveProductBuildData(const ResolvedProductPtr &produc ScriptEngine::argumentList(transformer->rule->prepareScript->argumentNames, prepareScriptContext)); if (Q_UNLIKELY(transformer->commands.isEmpty())) - throw ErrorInfo(QString("There's a transformer without commands."), rtrafo->transform->location); + throw ErrorInfo(Tr::tr("There's a transformer without commands."), + rtrafo->transform->location); } // Handle Transformer.explicitlyDependsOn after all transformer outputs have been created. diff --git a/src/lib/corelib/buildgraph/rulesapplicator.cpp b/src/lib/corelib/buildgraph/rulesapplicator.cpp index 8a60c709e..e5b5621da 100644 --- a/src/lib/corelib/buildgraph/rulesapplicator.cpp +++ b/src/lib/corelib/buildgraph/rulesapplicator.cpp @@ -100,8 +100,9 @@ void RulesApplicator::doApply(const ArtifactList &inputArtifacts, evalContext()->checkForCancelation(); if (m_logger.debugEnabled()) { - m_logger.qbsDebug() << "[BG] apply rule " << m_rule->toString() << " " - << toStringList(inputArtifacts).join(",\n "); + m_logger.qbsDebug() << QString::fromLatin1("[BG] apply rule ") << m_rule->toString() + << QString::fromLatin1(" ") + << toStringList(inputArtifacts).join(QLatin1String(",\n ")); } QList<QPair<const RuleArtifact *, Artifact *> > ruleArtifactArtifactMap; @@ -171,22 +172,25 @@ void RulesApplicator::doApply(const ArtifactList &inputArtifacts, Artifact *outputArtifact = ruleArtifactArtifactMap.at(i).second; outputArtifact->properties = outputArtifact->properties->clone(); - scope().setProperty("fileName", engine()->toScriptValue(outputArtifact->filePath())); - scope().setProperty("fileTags", + scope().setProperty(QLatin1String("fileName"), + engine()->toScriptValue(outputArtifact->filePath())); + scope().setProperty(QLatin1String("fileTags"), toScriptValue(engine(), outputArtifact->fileTags.toStringList())); - QVariantMap artifactModulesCfg = outputArtifact->properties->value().value("modules").toMap(); + QVariantMap artifactModulesCfg = outputArtifact->properties->value() + .value(QLatin1String("modules")).toMap(); for (int i=0; i < ra->bindings.count(); ++i) { const RuleArtifact::Binding &binding = ra->bindings.at(i); scriptValue = engine()->evaluate(binding.code); if (Q_UNLIKELY(engine()->hasErrorOrException(scriptValue))) { QString msg = QLatin1String("evaluating rule binding '%1': %2"); - throw ErrorInfo(msg.arg(binding.name.join(QLatin1String(".")), scriptValue.toString()), binding.location); + throw ErrorInfo(msg.arg(binding.name.join(QLatin1String(".")), + scriptValue.toString()), binding.location); } setConfigProperty(artifactModulesCfg, binding.name, scriptValue.toVariant()); } QVariantMap outputArtifactConfig = outputArtifact->properties->value(); - outputArtifactConfig.insert("modules", artifactModulesCfg); + outputArtifactConfig.insert(QLatin1String("modules"), artifactModulesCfg); outputArtifact->properties->setValue(outputArtifactConfig); } if (!ruleArtifactArtifactMap.isEmpty()) @@ -196,7 +200,8 @@ void RulesApplicator::doApply(const ArtifactList &inputArtifacts, m_transformer->createCommands(m_rule->prepareScript, evalContext(), ScriptEngine::argumentList(m_rule->prepareScript->argumentNames, prepareScriptContext)); if (Q_UNLIKELY(m_transformer->commands.isEmpty())) - throw ErrorInfo(QString("There's a rule without commands: %1.").arg(m_rule->toString()), m_rule->prepareScript->location); + throw ErrorInfo(Tr::tr("There's a rule without commands: %1.") + .arg(m_rule->toString()), m_rule->prepareScript->location); } void RulesApplicator::setupScriptEngineForArtifact(Artifact *artifact) @@ -217,13 +222,13 @@ void RulesApplicator::setupScriptEngineForArtifact(Artifact *artifact) // expose per file properties we want to use in an Artifact within a Rule QScriptValue scriptValue = engine()->newObject(); ModuleProperties::init(scriptValue, artifact); - scriptValue.setProperty("fileName", inFileName); - scriptValue.setProperty("baseName", inBaseName); - scriptValue.setProperty("completeBaseName", inCompleteBaseName); - scriptValue.setProperty("baseDir", basedir); + scriptValue.setProperty(QLatin1String("fileName"), inFileName); + scriptValue.setProperty(QLatin1String("baseName"), inBaseName); + scriptValue.setProperty(QLatin1String("completeBaseName"), inCompleteBaseName); + scriptValue.setProperty(QLatin1String("baseDir"), basedir); - scope().setProperty("input", scriptValue); - Q_ASSERT_X(scriptValue.strictlyEquals(engine()->evaluate("input")), + scope().setProperty(QLatin1String("input"), scriptValue); + Q_ASSERT_X(scriptValue.strictlyEquals(engine()->evaluate(QLatin1String("input"))), "BG", "The input object is not in current scope."); } @@ -232,9 +237,11 @@ Artifact *RulesApplicator::createOutputArtifact(const RuleArtifactConstPtr &rule { QScriptValue scriptValue = engine()->evaluate(ruleArtifact->fileName); if (Q_UNLIKELY(engine()->hasErrorOrException(scriptValue))) - throw ErrorInfo("Error in Rule.Artifact fileName: " + scriptValue.toString()); + throw ErrorInfo(Tr::tr("Error in Rule.Artifact fileName: ") + scriptValue.toString()); QString outputPath = scriptValue.toString(); - outputPath.replace("..", "dotdot"); // don't let the output artifact "escape" its build dir + + // Don't let the output artifact "escape" its build dir + outputPath.replace(QLatin1String(".."), QLatin1String("dotdot")); outputPath = resolveOutPath(outputPath); Artifact *outputArtifact = lookupArtifact(m_product, outputPath); @@ -252,18 +259,21 @@ Artifact *RulesApplicator::createOutputArtifact(const RuleArtifactConstPtr &rule m_transformer->inputs.unite(inputArtifacts); if (Q_UNLIKELY(m_transformer->inputs.count() > 1 && !m_rule->multiplex)) { - QString th = "[" + outputArtifact->fileTags.toStringList().join(", ") + "]"; - QString e = Tr::tr("Conflicting rules for producing %1 %2 \n").arg(outputArtifact->filePath(), th); - th = "[" + m_rule->inputs.toStringList().join(", ") - + "] -> [" + outputArtifact->fileTags.toStringList().join(", ") + "]"; - - e += QString(" while trying to apply: %1:%2:%3 %4\n") + QString th = QLatin1Char('[') + outputArtifact->fileTags.toStringList() + .join(QLatin1String(", ")) + QLatin1Char(']'); + QString e = Tr::tr("Conflicting rules for producing %1 %2 \n") + .arg(outputArtifact->filePath(), th); + th = QLatin1Char('[') + m_rule->inputs.toStringList().join(QLatin1String(", ")) + + QLatin1String("] -> [") + outputArtifact->fileTags.toStringList() + .join(QLatin1String(", ")) + QLatin1Char(']'); + + e += QString::fromLatin1(" while trying to apply: %1:%2:%3 %4\n") .arg(m_rule->prepareScript->location.fileName()) .arg(m_rule->prepareScript->location.line()) .arg(m_rule->prepareScript->location.column()) .arg(th); - e += QString(" was already defined in: %1:%2:%3 %4\n") + e += QString::fromLatin1(" was already defined in: %1:%2:%3 %4\n") .arg(outputArtifact->transformer->rule->prepareScript->location.fileName()) .arg(outputArtifact->transformer->rule->prepareScript->location.line()) .arg(outputArtifact->transformer->rule->prepareScript->location.column()) diff --git a/src/lib/corelib/buildgraph/transformer.cpp b/src/lib/corelib/buildgraph/transformer.cpp index 5c095f9db..87bc45527 100644 --- a/src/lib/corelib/buildgraph/transformer.cpp +++ b/src/lib/corelib/buildgraph/transformer.cpp @@ -96,14 +96,14 @@ void Transformer::setupInputs(QScriptEngine *scriptEngine, QScriptValue targetSc { const QString &defaultModuleName = rule->module->name; QScriptValue scriptValue = translateInOutputs(scriptEngine, inputs, defaultModuleName); - targetScriptValue.setProperty("inputs", scriptValue); + targetScriptValue.setProperty(QLatin1String("inputs"), scriptValue); if (inputs.count() == 1) { Artifact *input = *inputs.begin(); const FileTags &fileTags = input->fileTags; QBS_ASSERT(!fileTags.isEmpty(), return); QScriptValue inputsForFileTag = scriptValue.property(fileTags.begin()->toString()); QScriptValue inputScriptValue = inputsForFileTag.property(0); - targetScriptValue.setProperty("input", inputScriptValue); + targetScriptValue.setProperty(QLatin1String("input"), inputScriptValue); } else { targetScriptValue.setProperty(QLatin1String("input"), scriptEngine->undefinedValue()); } @@ -113,14 +113,14 @@ void Transformer::setupOutputs(QScriptEngine *scriptEngine, QScriptValue targetS { const QString &defaultModuleName = rule->module->name; QScriptValue scriptValue = translateInOutputs(scriptEngine, outputs, defaultModuleName); - targetScriptValue.setProperty("outputs", scriptValue); + targetScriptValue.setProperty(QLatin1String("outputs"), scriptValue); if (outputs.count() == 1) { Artifact *output = *outputs.begin(); const FileTags &fileTags = output->fileTags; QBS_ASSERT(!fileTags.isEmpty(), return); QScriptValue outputsForFileTag = scriptValue.property(fileTags.begin()->toString()); QScriptValue outputScriptValue = outputsForFileTag.property(0); - targetScriptValue.setProperty("output", outputScriptValue); + targetScriptValue.setProperty(QLatin1String("output"), outputScriptValue); } else { targetScriptValue.setProperty(QLatin1String("output"), scriptEngine->undefinedValue()); } @@ -132,10 +132,10 @@ static AbstractCommand *createCommandFromScriptValue(const QScriptValue &scriptV if (scriptValue.isUndefined() || !scriptValue.isValid()) return 0; AbstractCommand *cmdBase = 0; - QString className = scriptValue.property("className").toString(); - if (className == "Command") + QString className = scriptValue.property(QLatin1String("className")).toString(); + if (className == QLatin1String("Command")) cmdBase = new ProcessCommand; - else if (className == "JavaScriptCommand") + else if (className == QLatin1String("JavaScriptCommand")) cmdBase = new JavaScriptCommand; if (cmdBase) cmdBase->fillFromScriptValue(&scriptValue, codeLocation); @@ -157,14 +157,15 @@ void Transformer::createCommands(const ScriptFunctionConstPtr &script, propertiesRequestedFromArtifactInPrepareScript = engine->propertiesRequestedFromArtifact(); engine->clearRequestedProperties(); if (Q_UNLIKELY(engine->hasErrorOrException(scriptValue))) - throw ErrorInfo("evaluating prepare script: " + engine->uncaughtException().toString(), + throw ErrorInfo(Tr::tr("evaluating prepare script: ") + + engine->uncaughtException().toString(), CodeLocation(script->location.fileName(), script->location.line() + engine->uncaughtExceptionLineNumber() - 1)); qDeleteAll(commands); commands.clear(); if (scriptValue.isArray()) { - const int count = scriptValue.property("length").toInt32(); + const int count = scriptValue.property(QLatin1String("length")).toInt32(); for (qint32 i = 0; i < count; ++i) { QScriptValue item = scriptValue.property(i); if (item.isValid() && !item.isUndefined()) { diff --git a/src/lib/corelib/jsextensions/domxml.cpp b/src/lib/corelib/jsextensions/domxml.cpp index a66f2b21b..5042a54d7 100644 --- a/src/lib/corelib/jsextensions/domxml.cpp +++ b/src/lib/corelib/jsextensions/domxml.cpp @@ -40,9 +40,9 @@ void initializeJsExtensionXml(QScriptValue extensionObject) { QScriptEngine *engine = extensionObject.engine(); QScriptValue obj = engine->newQMetaObject(&XmlDomDocument::staticMetaObject, engine->newFunction(&XmlDomDocument::ctor)); - extensionObject.setProperty("XmlDomDocument", obj); + extensionObject.setProperty(QLatin1String("XmlDomDocument"), obj); obj = engine->newQMetaObject(&XmlDomNode::staticMetaObject, engine->newFunction(&XmlDomNode::ctor)); - extensionObject.setProperty("XmlDomElement", obj); + extensionObject.setProperty(QLatin1String("XmlDomElement"), obj); } QScriptValue XmlDomDocument::ctor(QScriptContext *context, QScriptEngine *engine) @@ -56,7 +56,7 @@ QScriptValue XmlDomDocument::ctor(QScriptContext *context, QScriptEngine *engine xml = new XmlDomDocument(context, context->argument(0).toString()); break; default: - return context->throwError("DomXml(QString file = QLatin1String(\"\"))"); + return context->throwError(QLatin1String("DomXml(QString file = QLatin1String(\"\"))")); } QScriptValue obj = engine->newQObject(xml, QScriptEngine::ScriptOwnership); return obj; diff --git a/src/lib/corelib/jsextensions/file.cpp b/src/lib/corelib/jsextensions/file.cpp index 1e6f2947c..34dadc7e6 100644 --- a/src/lib/corelib/jsextensions/file.cpp +++ b/src/lib/corelib/jsextensions/file.cpp @@ -56,11 +56,11 @@ void initializeJsExtensionFile(QScriptValue extensionObject) { QScriptEngine *engine = extensionObject.engine(); QScriptValue fileObj = engine->newFunction(File::js_ctor); - fileObj.setProperty("copy", engine->newFunction(File::js_copy)); - fileObj.setProperty("exists", engine->newFunction(File::js_exists)); - fileObj.setProperty("lastModified", engine->newFunction(File::js_lastModified)); - fileObj.setProperty("remove", engine->newFunction(File::js_remove)); - extensionObject.setProperty("File", fileObj); + fileObj.setProperty(QLatin1String("copy"), engine->newFunction(File::js_copy)); + fileObj.setProperty(QLatin1String("exists"), engine->newFunction(File::js_exists)); + fileObj.setProperty(QLatin1String("lastModified"), engine->newFunction(File::js_lastModified)); + fileObj.setProperty(QLatin1String("remove"), engine->newFunction(File::js_remove)); + extensionObject.setProperty(QLatin1String("File"), fileObj); } QScriptValue File::js_ctor(QScriptContext *context, QScriptEngine *engine) diff --git a/src/lib/corelib/jsextensions/moduleproperties.cpp b/src/lib/corelib/jsextensions/moduleproperties.cpp index 83d92e776..1d8286320 100644 --- a/src/lib/corelib/jsextensions/moduleproperties.cpp +++ b/src/lib/corelib/jsextensions/moduleproperties.cpp @@ -61,9 +61,9 @@ void ModuleProperties::init(QScriptValue objectWithProperties, const void *ptr, const QString &type) { QScriptEngine * const engine = objectWithProperties.engine(); - objectWithProperties.setProperty("moduleProperties", + objectWithProperties.setProperty(QLatin1String("moduleProperties"), engine->newFunction(ModuleProperties::js_moduleProperties, 2)); - objectWithProperties.setProperty("moduleProperty", + objectWithProperties.setProperty(QLatin1String("moduleProperty"), engine->newFunction(ModuleProperties::js_moduleProperty, 2)); objectWithProperties.setProperty(ptrKey(), engine->toScriptValue(quintptr(ptr))); objectWithProperties.setProperty(typeKey(), type); diff --git a/src/lib/corelib/jsextensions/process.cpp b/src/lib/corelib/jsextensions/process.cpp index 3cf74ab31..6d7922e7b 100644 --- a/src/lib/corelib/jsextensions/process.cpp +++ b/src/lib/corelib/jsextensions/process.cpp @@ -45,7 +45,7 @@ void initializeJsExtensionProcess(QScriptValue extensionObject) { QScriptEngine *engine = extensionObject.engine(); QScriptValue obj = engine->newQMetaObject(&Process::staticMetaObject, engine->newFunction(&Process::ctor)); - extensionObject.setProperty("Process", obj); + extensionObject.setProperty(QLatin1String("Process"), obj); } QScriptValue Process::ctor(QScriptContext *context, QScriptEngine *engine) @@ -56,7 +56,7 @@ QScriptValue Process::ctor(QScriptContext *context, QScriptEngine *engine) t = new Process(context); break; default: - return context->throwError("Process()"); + return context->throwError(QLatin1String("Process()")); } QScriptValue obj = engine->newQObject(t, QScriptEngine::ScriptOwnership); diff --git a/src/lib/corelib/jsextensions/textfile.cpp b/src/lib/corelib/jsextensions/textfile.cpp index 7129ee955..f3912f07d 100644 --- a/src/lib/corelib/jsextensions/textfile.cpp +++ b/src/lib/corelib/jsextensions/textfile.cpp @@ -43,7 +43,7 @@ void initializeJsExtensionTextFile(QScriptValue extensionObject) { QScriptEngine *engine = extensionObject.engine(); QScriptValue obj = engine->newQMetaObject(&TextFile::staticMetaObject, engine->newFunction(&TextFile::ctor)); - extensionObject.setProperty("TextFile", obj); + extensionObject.setProperty(QLatin1String("TextFile"), obj); } QScriptValue TextFile::ctor(QScriptContext *context, QScriptEngine *engine) @@ -68,7 +68,9 @@ QScriptValue TextFile::ctor(QScriptContext *context, QScriptEngine *engine) ); break; default: - return context->throwError("TextFile(QString file, OpenMode mode = ReadOnly, QString codec = QLatin1String(\"UTF8\"))"); + return context->throwError(QLatin1String("TextFile(QString file, " + "OpenMode mode = ReadOnly, " + "QString codec = QLatin1String(\"UTF8\"))")); } QScriptValue obj = engine->newQObject(t, QScriptEngine::ScriptOwnership); diff --git a/src/lib/corelib/language/builtindeclarations.cpp b/src/lib/corelib/language/builtindeclarations.cpp index 4bbc02579..f214aa248 100644 --- a/src/lib/corelib/language/builtindeclarations.cpp +++ b/src/lib/corelib/language/builtindeclarations.cpp @@ -144,7 +144,7 @@ void BuiltinDeclarations::setupItemForBuiltinType(Item *item) const JSSourceValuePtr sourceValue = JSSourceValue::create(); sourceValue->setFile(item->file()); sourceValue->setSourceCode(pd.initialValueSource.isEmpty() ? - "undefined" : pd.initialValueSource); + QLatin1String("undefined") : pd.initialValueSource); value = sourceValue; } } @@ -299,7 +299,7 @@ void BuiltinDeclarations::addProductItem() decl.initialValueSource = QLatin1String("[]"); item << decl; item << nameProperty(); - decl = PropertyDeclaration("targetName", PropertyDeclaration::String); + decl = PropertyDeclaration(QLatin1String("targetName"), PropertyDeclaration::String); decl.initialValueSource = QLatin1String("name"); item << decl; decl = PropertyDeclaration(QLatin1String("destinationDirectory"), PropertyDeclaration::String); diff --git a/src/lib/corelib/language/evaluatorscriptclass.cpp b/src/lib/corelib/language/evaluatorscriptclass.cpp index fb89f53e6..4a5250964 100644 --- a/src/lib/corelib/language/evaluatorscriptclass.cpp +++ b/src/lib/corelib/language/evaluatorscriptclass.cpp @@ -443,121 +443,121 @@ QScriptValue EvaluatorScriptClass::js_getHostOS(QScriptContext *context, QScript QStringList hostSystem; #if defined(Q_OS_AIX) - hostSystem << "aix"; + hostSystem << QLatin1String("aix"); #endif #if defined(Q_OS_ANDROID) - hostSystem << "android"; + hostSystem << QLatin1String("android"); #endif #if defined(Q_OS_BLACKBERRY) - hostSystem << "blackberry"; + hostSystem << QLatin1String("blackberry"); #endif #if defined(Q_OS_BSD4) - hostSystem << "bsd" << "bsd4"; + hostSystem << QLatin1String("bsd") << QLatin1String("bsd4"); #endif #if defined(Q_OS_BSDI) - hostSystem << "bsdi"; + hostSystem << QLatin1String("bsdi"); #endif #if defined(Q_OS_CYGWIN) - hostSystem << "cygwin"; + hostSystem << QLatin1String("cygwin"); #endif #if defined(Q_OS_DARWIN) - hostSystem << "darwin"; + hostSystem << QLatin1String("darwin"); #endif #if defined(Q_OS_DGUX) - hostSystem << "dgux"; + hostSystem << QLatin1String("dgux"); #endif #if defined(Q_OS_DYNIX) - hostSystem << "dynix"; + hostSystem << QLatin1String("dynix"); #endif #if defined(Q_OS_FREEBSD) - hostSystem << "freebsd"; + hostSystem << QLatin1String("freebsd"); #endif #if defined(Q_OS_HPUX) - hostSystem << "hpux"; + hostSystem << QLatin1String("hpux"); #endif #if defined(Q_OS_HURD) - hostSystem << "hurd"; + hostSystem << QLatin1String("hurd"); #endif #if defined(Q_OS_INTEGRITY) - hostSystem << "integrity"; + hostSystem << QLatin1String("integrity"); #endif #if defined(Q_OS_IOS) - hostSystem << "ios"; + hostSystem << QLatin1String("ios"); #endif #if defined(Q_OS_IRIX) - hostSystem << "irix"; + hostSystem << QLatin1String("irix"); #endif #if defined(Q_OS_LINUX) - hostSystem << "linux"; + hostSystem << QLatin1String("linux"); #endif #if defined(Q_OS_LYNX) - hostSystem << "lynx"; + hostSystem << QLatin1String("lynx"); #endif #if defined(Q_OS_MACX) - hostSystem << "osx"; + hostSystem << QLatin1String("osx"); #endif #if defined(Q_OS_MSDOS) - hostSystem << "msdos"; + hostSystem << QLatin1String("msdos"); #endif #if defined(Q_OS_NACL) - hostSystem << "nacl"; + hostSystem << QLatin1String("nacl"); #endif #if defined(Q_OS_NETBSD) - hostSystem << "netbsd"; + hostSystem << QLatin1String("netbsd"); #endif #if defined(Q_OS_OPENBSD) - hostSystem << "openbsd"; + hostSystem << QLatin1String("openbsd"); #endif #if defined(Q_OS_OS2) - hostSystem << "os2"; + hostSystem << QLatin1String("os2"); #endif #if defined(Q_OS_OS2EMX) - hostSystem << "os2emx"; + hostSystem << QLatin1String("os2emx"); #endif #if defined(Q_OS_OSF) - hostSystem << "osf"; + hostSystem << QLatin1String("osf"); #endif #if defined(Q_OS_QNX) - hostSystem << "qnx"; + hostSystem << QLatin1String("qnx"); #endif #if defined(Q_OS_ONX6) - hostSystem << "qnx6"; + hostSystem << QLatin1String("qnx6"); #endif #if defined(Q_OS_RELIANT) - hostSystem << "reliant"; + hostSystem << QLatin1String("reliant"); #endif #if defined(Q_OS_SCO) - hostSystem << "sco"; + hostSystem << QLatin1String("sco"); #endif #if defined(Q_OS_SOLARIS) - hostSystem << "solaris"; + hostSystem << QLatin1String("solaris"); #endif #if defined(Q_OS_SYMBIAN) - hostSystem << "symbian"; + hostSystem << QLatin1String("symbian"); #endif #if defined(Q_OS_ULTRIX) - hostSystem << "ultrix"; + hostSystem << QLatin1String("ultrix"); #endif #if defined(Q_OS_UNIX) - hostSystem << "unix"; + hostSystem << QLatin1String("unix"); #endif #if defined(Q_OS_UNIXWARE) - hostSystem << "unixware"; + hostSystem << QLatin1String("unixware"); #endif #if defined(Q_OS_VXWORKS) - hostSystem << "vxworks"; + hostSystem << QLatin1String("vxworks"); #endif #if defined(Q_OS_WIN32) - hostSystem << "windows"; + hostSystem << QLatin1String("windows"); #endif #if defined(Q_OS_WINCE) - hostSystem << "windowsce"; + hostSystem << QLatin1String("windowsce"); #endif #if defined(Q_OS_WINPHONE) - hostSystem << "windowsphone"; + hostSystem << QLatin1String("windowsphone"); #endif #if defined(Q_OS_WINRT) - hostSystem << "winrt"; + hostSystem << QLatin1String("winrt"); #endif return engine->toScriptValue(hostSystem); diff --git a/src/lib/corelib/language/itemreaderastvisitor.cpp b/src/lib/corelib/language/itemreaderastvisitor.cpp index a08a73648..33fe97e6b 100644 --- a/src/lib/corelib/language/itemreaderastvisitor.cpp +++ b/src/lib/corelib/language/itemreaderastvisitor.cpp @@ -104,7 +104,7 @@ void ItemReaderASTVisitor::collectPrototypes(const QString &path, const QString return; } - QDirIterator dirIter(path, QStringList("*.qbs")); + QDirIterator dirIter(path, QStringList(QLatin1String("*.qbs"))); while (dirIter.hasNext()) { const QString filePath = dirIter.next(); const QString fileName = dirIter.fileName(); @@ -205,12 +205,12 @@ bool ItemReaderASTVisitor::visit(AST::UiImportList *uiImportList) if (fi.isDir()) { collectPrototypes(name, as); } else { - if (name.endsWith(".js", Qt::CaseInsensitive)) { + if (name.endsWith(QLatin1String(".js"), Qt::CaseInsensitive)) { JsImport &jsImport = jsImports[as]; jsImport.scopeName = as; jsImport.fileNames.append(name); jsImport.location = toCodeLocation(import->firstSourceLocation()); - } else if (name.endsWith(".qbs", Qt::CaseInsensitive)) { + } else if (name.endsWith(QLatin1String(".qbs"), Qt::CaseInsensitive)) { m_typeNameToFile.insert(QStringList(as), name); } else { throw ErrorInfo(Tr::tr("Can only import .qbs and .js files"), @@ -225,13 +225,15 @@ bool ItemReaderASTVisitor::visit(AST::UiImportList *uiImportList) if (!found) { foreach (const QString &searchPath, m_reader->searchPaths()) { const QFileInfo fi(FileInfo::resolvePath( - FileInfo::resolvePath(searchPath, "imports"), importPath)); + FileInfo::resolvePath(searchPath, + QLatin1String("imports")), + importPath)); if (fi.isDir()) { // ### versioning, qbsdir file, etc. const QString &resultPath = fi.absoluteFilePath(); collectPrototypes(resultPath, as); - QDirIterator dirIter(resultPath, QStringList("*.js")); + QDirIterator dirIter(resultPath, QStringList(QLatin1String("*.js"))); while (dirIter.hasNext()) { dirIter.next(); JsImport &jsImport = jsImports[as]; @@ -247,8 +249,9 @@ bool ItemReaderASTVisitor::visit(AST::UiImportList *uiImportList) } } if (Q_UNLIKELY(!found)) { - throw ErrorInfo(Tr::tr("import %1 not found").arg(importUri.join(".")), - toCodeLocation(import->fileNameToken)); + throw ErrorInfo(Tr::tr("import %1 not found") + .arg(importUri.join(QLatin1String("."))), + toCodeLocation(import->fileNameToken)); } } } @@ -317,7 +320,7 @@ void ItemReaderASTVisitor::checkDuplicateBinding(Item *item, const QStringList & { if (Q_UNLIKELY(item->properties().contains(bindingName.last()))) { QString msg = Tr::tr("Duplicate binding for '%1'"); - throw ErrorInfo(msg.arg(bindingName.join(".")), + throw ErrorInfo(msg.arg(bindingName.join(QLatin1String("."))), qbs::Internal::toCodeLocation(m_file->filePath(), sourceLocation)); } } @@ -401,8 +404,8 @@ bool ItemReaderASTVisitor::visit(AST::FunctionDeclaration *ast) // remove the name QString funcNoName = textOf(m_sourceCode, ast); - funcNoName.replace(QRegExp("^(\\s*function\\s*)\\w*"), "(\\1"); - funcNoName.append(")"); + funcNoName.replace(QRegExp(QLatin1String("^(\\s*function\\s*)\\w*")), QLatin1String("(\\1")); + funcNoName.append(QLatin1Char(')')); f.setSourceCode(funcNoName); f.setLocation(toCodeLocation(ast->firstSourceLocation())); @@ -418,8 +421,8 @@ bool ItemReaderASTVisitor::visitStatement(AST::Statement *statement) QString sourceCode = textOf(m_sourceCode, statement); if (AST::cast<AST::Block *>(statement)) { // rewrite blocks to be able to use return statements in property assignments - sourceCode.prepend("(function()"); - sourceCode.append(")()"); + sourceCode.prepend(QLatin1String("(function()")); + sourceCode.append(QLatin1String(")()")); m_sourceValue->m_hasFunctionForm = true; } diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp index be02b03ee..ac553a111 100644 --- a/src/lib/corelib/language/language.cpp +++ b/src/lib/corelib/language/language.cpp @@ -582,11 +582,11 @@ static QProcessEnvironment getProcessEnvironment(ScriptEngine *engine, EnvType e const QScriptValue putEnvValue = engine->newFunction(js_putEnv, 1); // TODO: Remove in 1.3 - scope.setProperty("getenv", getEnvValue); - scope.setProperty("putenv", putEnvValue); + scope.setProperty(QLatin1String("getenv"), getEnvValue); + scope.setProperty(QLatin1String("putenv"), putEnvValue); - scope.setProperty("getEnv", getEnvValue); - scope.setProperty("putEnv", putEnvValue); + scope.setProperty(QLatin1String("getEnv"), getEnvValue); + scope.setProperty(QLatin1String("putEnv"), putEnvValue); QSet<QString> seenModuleNames; QList<const ResolvedModule *> topSortedModules = topSortModules(moduleChildren, rootModules, seenModuleNames); @@ -612,7 +612,8 @@ static QProcessEnvironment getProcessEnvironment(ScriptEngine *engine, EnvType e // expose properties of direct module dependencies QScriptValue scriptValue; - QVariantMap productModules = productConfiguration->value().value("modules").toMap(); + QVariantMap productModules = productConfiguration->value() + .value(QLatin1String("modules")).toMap(); foreach (const ResolvedModule * const depmod, moduleChildren.value(module)) { scriptValue = engine->newObject(); QVariantMap moduleCfg = productModules.value(depmod->name).toMap(); @@ -631,8 +632,10 @@ static QProcessEnvironment getProcessEnvironment(ScriptEngine *engine, EnvType e scriptValue = engine->evaluate(setupScript->sourceCode + QLatin1String("()")); ctx->popScope(); if (Q_UNLIKELY(engine->hasErrorOrException(scriptValue))) { - QString envTypeStr = (envType == BuildEnv ? "build" : "run"); - throw ErrorInfo(QString("Error while setting up %1 environment: %2").arg(envTypeStr, scriptValue.toString())); + QString envTypeStr = (envType == BuildEnv + ? QLatin1String("build") : QLatin1String("run")); + throw ErrorInfo(Tr::tr("Error while setting up %1 environment: %2") + .arg(envTypeStr, scriptValue.toString())); } } @@ -917,7 +920,7 @@ QSet<QString> SourceWildCards::expandPatterns(const GroupConstPtr &group, QSet<QString> files; foreach (QString pattern, patterns) { pattern.prepend(prefix); - pattern.replace('\\', '/'); + pattern.replace(QLatin1Char('\\'), QLatin1Char('/')); QStringList parts = pattern.split(QLatin1Char('/'), QString::SkipEmptyParts); if (FileInfo::isAbsolute(pattern)) { QString rootDir; diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index a0c06bb61..dbbef4612 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -255,9 +255,9 @@ void ModuleLoader::handleProject(ModuleLoaderResult *loadResult, Item *item, QList<Item *> projectChildren = projectContext.item->children(); projectChildren += subItem; projectContext.item->setChildren(projectChildren); - if (subItem->typeName() == "Product") { + if (subItem->typeName() == QLatin1String("Product")) { handleProduct(&projectContext, subItem); - } else if (subItem->typeName() == "Project") { + } else if (subItem->typeName() == QLatin1String("Project")) { copyProperties(item, subItem); handleProject(loadResult, subItem, QSet<QString>(referencedFilePaths) << absReferencePath); @@ -532,8 +532,8 @@ void ModuleLoader::resolveDependsItem(DependsContext *dependsContext, Item *item m_logger.qbsTrace() << "Depends item disabled, ignoring."; return; } - const QString name = m_evaluator->property(dependsItem, "name").toString(); - const QStringList nameParts = name.split('.'); + const QString name = m_evaluator->property(dependsItem, QLatin1String("name")).toString(); + const QStringList nameParts = name.split(QLatin1Char('.')); if (Q_UNLIKELY(nameParts.count() > 2)) { QString msg = Tr::tr("There cannot be more than one dot in a module name."); throw ErrorInfo(msg, dependsItem->location()); @@ -1075,7 +1075,7 @@ Item *ModuleLoader::wrapWithProject(Item *item) Item *prj = Item::create(item->pool()); prj->setChildren(QList<Item *>() << item); item->setParent(prj); - prj->setTypeName("Project"); + prj->setTypeName(QLatin1String("Project")); prj->setFile(item->file()); prj->setLocation(item->location()); m_reader->builtins()->setupItemForBuiltinType(prj); diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index 05a9b3aab..316f797e2 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -286,7 +286,7 @@ void ProjectResolver::resolveProduct(Item *item, ProjectContext *projectContext) product->name = m_evaluator->stringValue(item, QLatin1String("name")); if (product->name.isEmpty()) { product->name = FileInfo::completeBaseName(item->file()->filePath()); - item->setProperty("name", VariantValue::create(product->name)); + item->setProperty(QLatin1String("name"), VariantValue::create(product->name)); } m_logger.qbsTrace() << "[PR] resolveProduct " << product->name; @@ -361,11 +361,13 @@ void ProjectResolver::resolveModule(const QStringList &moduleName, Item *item, const ResolvedModulePtr &module = moduleContext.module; module->name = ModuleLoader::fullModuleName(moduleName); - module->setupBuildEnvironmentScript = scriptFunctionValue(item, "setupBuildEnvironment"); - module->setupRunEnvironmentScript = scriptFunctionValue(item, "setupRunEnvironment"); + module->setupBuildEnvironmentScript = scriptFunctionValue(item, + QLatin1String("setupBuildEnvironment")); + module->setupRunEnvironmentScript = scriptFunctionValue(item, + QLatin1String("setupRunEnvironment")); m_productContext->product->additionalFileTags - += m_evaluator->fileTagsValue(item, "additionalProductFileTags"); + += m_evaluator->fileTagsValue(item, QLatin1String("additionalProductFileTags")); foreach (const Item::Module &m, item->modules()) module->moduleDependencies += ModuleLoader::fullModuleName(m.name); @@ -469,7 +471,8 @@ void ProjectResolver::resolveGroup(Item *item, ProjectContext *projectContext) if (!patterns.isEmpty()) { SourceWildCards::Ptr wildcards = SourceWildCards::create(); - wildcards->excludePatterns = m_evaluator->stringListValue(item, "excludeFiles"); + wildcards->excludePatterns = m_evaluator->stringListValue(item, + QLatin1String("excludeFiles")); wildcards->prefix = group->prefix; wildcards->patterns = patterns; QSet<QString> files = wildcards->expandPatterns(group, m_productContext->product->sourceDirectory); @@ -486,13 +489,14 @@ void ProjectResolver::resolveGroup(Item *item, ProjectContext *projectContext) foreach (const SourceArtifactConstPtr &a, group->files) { if (!FileInfo(a->absoluteFilePath).exists()) { fileError.append(Tr::tr("File '%1' does not exist.") - .arg(a->absoluteFilePath), item->property("files")->location()); + .arg(a->absoluteFilePath), + item->property(QLatin1String("files"))->location()); } } if (fileError.hasError()) throw ErrorInfo(fileError); - group->name = m_evaluator->stringValue(item, "name"); + group->name = m_evaluator->stringValue(item, QLatin1String("name")); if (group->name.isEmpty()) group->name = Tr::tr("Group %1").arg(m_productContext->product->groups.count()); group->properties = properties; @@ -568,11 +572,12 @@ void ProjectResolver::resolveRule(Item *item, ProjectContext *projectContext) rule->prepareScript = scriptFunctionValue(item, QLatin1String("prepare")); rule->multiplex = m_evaluator->boolValue(item, QLatin1String("multiplex")); - rule->inputs = m_evaluator->fileTagsValue(item, "inputs"); - rule->usings = m_evaluator->fileTagsValue(item, "usings"); + rule->inputs = m_evaluator->fileTagsValue(item, QLatin1String("inputs")); + rule->usings = m_evaluator->fileTagsValue(item, QLatin1String("usings")); rule->auxiliaryInputs = m_evaluator->fileTagsValue(item, QLatin1String("auxiliaryInputs")); - rule->explicitlyDependsOn = m_evaluator->fileTagsValue(item, "explicitlyDependsOn"); + rule->explicitlyDependsOn + = m_evaluator->fileTagsValue(item, QLatin1String("explicitlyDependsOn")); rule->module = m_moduleContext ? m_moduleContext->module : projectContext->dummyModule; if (m_productContext) m_productContext->product->rules += rule; @@ -610,9 +615,9 @@ void ProjectResolver::resolveRuleArtifact(const RulePtr &rule, Item *item, return; RuleArtifactPtr artifact = RuleArtifact::create(); rule->artifacts += artifact; - artifact->fileName = verbatimValue(item, "fileName"); - artifact->fileTags = m_evaluator->fileTagsValue(item, "fileTags"); - artifact->alwaysUpdated = m_evaluator->boolValue(item, "alwaysUpdated"); + artifact->fileName = verbatimValue(item, QLatin1String("fileName")); + artifact->fileTags = m_evaluator->fileTagsValue(item, QLatin1String("fileTags")); + artifact->alwaysUpdated = m_evaluator->boolValue(item, QLatin1String("alwaysUpdated")); if (artifact->alwaysUpdated) *hasAlwaysUpdatedArtifact = true; @@ -664,7 +669,7 @@ void ProjectResolver::resolveFileTagger(Item *item, ProjectContext *projectConte QList<FileTaggerConstPtr> &fileTaggers = m_productContext ? m_productContext->product->fileTaggers : projectContext->fileTaggers; QStringList patterns = m_evaluator->stringListValue(item, QLatin1String("patterns")); - const FileTags fileTags = m_evaluator->fileTagsValue(item, "fileTags"); + const FileTags fileTags = m_evaluator->fileTagsValue(item, QLatin1String("fileTags")); if (fileTags.isEmpty()) throw ErrorInfo(Tr::tr("FileTagger.fileTags must not be empty."), item->location()); @@ -691,30 +696,31 @@ void ProjectResolver::resolveFileTagger(Item *item, ProjectContext *projectConte void ProjectResolver::resolveTransformer(Item *item, ProjectContext *projectContext) { checkCancelation(); - if (!m_evaluator->boolValue(item, "condition")) { + if (!m_evaluator->boolValue(item, QLatin1String("condition"))) { m_logger.qbsTrace() << "[PR] transformer condition is false"; return; } ResolvedTransformerPtr rtrafo = ResolvedTransformer::create(); rtrafo->module = m_moduleContext ? m_moduleContext->module : projectContext->dummyModule; - rtrafo->inputs = m_evaluator->stringListValue(item, "inputs"); + rtrafo->inputs = m_evaluator->stringListValue(item, QLatin1String("inputs")); for (int i = 0; i < rtrafo->inputs.count(); ++i) rtrafo->inputs[i] = FileInfo::resolvePath(m_productContext->product->sourceDirectory, rtrafo->inputs.at(i)); rtrafo->transform = scriptFunctionValue(item, QLatin1String("prepare")); - rtrafo->explicitlyDependsOn = m_evaluator->fileTagsValue(item, "explicitlyDependsOn"); + rtrafo->explicitlyDependsOn = m_evaluator->fileTagsValue(item, + QLatin1String("explicitlyDependsOn")); foreach (const Item *child, item->children()) { if (Q_UNLIKELY(child->typeName() != QLatin1String("Artifact"))) throw ErrorInfo(Tr::tr("Transformer: wrong child type '%0'.").arg(child->typeName())); SourceArtifactPtr artifact = SourceArtifact::create(); artifact->properties = m_productContext->product->properties; - QString fileName = m_evaluator->stringValue(child, "fileName"); + QString fileName = m_evaluator->stringValue(child, QLatin1String("fileName")); if (Q_UNLIKELY(fileName.isEmpty())) throw ErrorInfo(Tr::tr("Artifact fileName must not be empty.")); artifact->absoluteFilePath = FileInfo::resolvePath(m_productContext->product->topLevelProject()->buildDirectory, fileName); - artifact->fileTags = m_evaluator->fileTagsValue(child, "fileTags"); + artifact->fileTags = m_evaluator->fileTagsValue(child, QLatin1String("fileTags")); if (artifact->fileTags.isEmpty()) artifact->fileTags.insert(unknownFileTag()); rtrafo->outputs += artifact; @@ -871,7 +877,7 @@ void ProjectResolver::evaluateModuleValues(Item *item, QVariantMap *modulesMap) const Item::Module &module = *it; evaluateModuleValues(module.item, &depmods); QVariantMap dep = evaluateProperties(module.item); - dep.insert("modules", depmods); + dep.insert(QLatin1String("modules"), depmods); modulesMap->insert(ModuleLoader::fullModuleName(module.name), dep); } } diff --git a/src/lib/corelib/language/scriptengine.cpp b/src/lib/corelib/language/scriptengine.cpp index e7f475d4c..2a45badc7 100644 --- a/src/lib/corelib/language/scriptengine.cpp +++ b/src/lib/corelib/language/scriptengine.cpp @@ -55,7 +55,7 @@ ScriptEngine::ScriptEngine(const Logger &logger, QObject *parent) QScriptValue objectProto = globalObject().property(QLatin1String("Object")); m_definePropertyFunction = objectProto.property(QLatin1String("defineProperty")); QBS_ASSERT(m_definePropertyFunction.isFunction(), /* ignore */); - m_emptyFunction = evaluate("(function(){})"); + m_emptyFunction = evaluate(QLatin1String("(function(){})")); QBS_ASSERT(m_emptyFunction.isFunction(), /* ignore */); // Initially push a new context to turn off scope chain insanity mode. QScriptEngine::pushContext(); diff --git a/src/lib/corelib/logging/ilogsink.cpp b/src/lib/corelib/logging/ilogsink.cpp index 118fdf106..01128b3c8 100644 --- a/src/lib/corelib/logging/ilogsink.cpp +++ b/src/lib/corelib/logging/ilogsink.cpp @@ -38,7 +38,7 @@ namespace qbs { QString logLevelTag(LoggerLevel level) { if (level == LoggerInfo) - return QByteArray(); + return QString(); QString str = logLevelName(level).toUpper(); if (!str.isEmpty()) str.append(QLatin1String(": ")); diff --git a/src/lib/corelib/logging/logger.cpp b/src/lib/corelib/logging/logger.cpp index 9f7a19c01..efc87e4cc 100644 --- a/src/lib/corelib/logging/logger.cpp +++ b/src/lib/corelib/logging/logger.cpp @@ -150,7 +150,7 @@ LogWriter operator<<(LogWriter w, const QSet<QString> &strSet) LogWriter operator<<(LogWriter w, const QVariant &variant) { - QString str = variant.typeName() + QLatin1Char('('); + QString str = QLatin1String(variant.typeName()) + QLatin1Char('('); if (variant.type() == QVariant::List) { bool firstLoop = true; foreach (const QVariant &item, variant.toList()) { @@ -180,7 +180,7 @@ LogWriter operator<<(LogWriter w, qint64 n) LogWriter operator<<(LogWriter w, bool b) { - return w << QString(QLatin1String(b ? "true" : "false")); + return w << QString::fromLatin1(b ? "true" : "false"); } LogWriter operator<<(LogWriter w, const MessageTag &tag) diff --git a/src/lib/corelib/tools/qbsassert.cpp b/src/lib/corelib/tools/qbsassert.cpp index 46ea58b83..fc093a979 100644 --- a/src/lib/corelib/tools/qbsassert.cpp +++ b/src/lib/corelib/tools/qbsassert.cpp @@ -42,8 +42,8 @@ void writeAssertLocation(const char *condition, const char *file, int line) void throwAssertLocation(const char *condition, const char *file, int line) { - throw ErrorInfo(QString(QLatin1String("ASSERT: %1")).arg(condition), - CodeLocation(QString::fromLocal8Bit(file), line), true); + throw ErrorInfo(QString::fromLatin1("ASSERT: %1").arg(QLatin1String(condition)), + CodeLocation(QString::fromLocal8Bit(file), line), true); } } // namespace Internal diff --git a/src/lib/corelib/tools/scannerpluginmanager.cpp b/src/lib/corelib/tools/scannerpluginmanager.cpp index 3c5dad702..e795da159 100644 --- a/src/lib/corelib/tools/scannerpluginmanager.cpp +++ b/src/lib/corelib/tools/scannerpluginmanager.cpp @@ -68,11 +68,11 @@ void ScannerPluginManager::loadPlugins(const QStringList &pluginPaths, const Log QStringList filters; if (HostOsInfo::isWindowsHost()) - filters << "*.dll"; + filters << QLatin1String("*.dll"); else if (HostOsInfo::isOsxHost()) - filters << "*.dylib"; + filters << QLatin1String("*.dylib"); else - filters << "*.so"; + filters << QLatin1String("*.so"); foreach (const QString &pluginPath, pluginPaths) { logger.qbsTrace() << QString::fromLocal8Bit("pluginmanager: loading plugins from '%1'.") diff --git a/src/lib/corelib/tools/scripttools.cpp b/src/lib/corelib/tools/scripttools.cpp index c87898da5..1f9344264 100644 --- a/src/lib/corelib/tools/scripttools.cpp +++ b/src/lib/corelib/tools/scripttools.cpp @@ -80,49 +80,49 @@ QVariant getConfigProperty(const QVariantMap &cfg, const QStringList &name) QString toJSLiteral(const bool b) { - return b ? "true" : "false"; + return b ? QLatin1String("true") : QLatin1String("false"); } QString toJSLiteral(const QString &str) { QString js = str; - js.replace(QRegExp("([\\\\\"])"), "\\\\1"); - js.prepend('"'); - js.append('"'); + js.replace(QRegExp(QLatin1String("([\\\\\"])")), QLatin1String("\\\\1")); + js.prepend(QLatin1Char('"')); + js.append(QLatin1Char('"')); return js; } QString toJSLiteral(const QStringList &strs) { - QString js = "["; + QString js = QLatin1String("["); for (int i = 0; i < strs.count(); ++i) { if (i != 0) - js.append(", "); + js.append(QLatin1String(", ")); js.append(toJSLiteral(strs.at(i))); } - js.append(']'); + js.append(QLatin1Char(']')); return js; } QString toJSLiteral(const QVariant &val) { if (!val.isValid()) { - return "undefined"; + return QLatin1String("undefined"); } else if (val.type() == QVariant::List || val.type() == QVariant::StringList) { QString res; foreach (const QVariant &child, val.toList()) { - if (res.length()) res.append(", "); + if (res.length()) res.append(QLatin1String(", ")); res.append(toJSLiteral(child)); } - res.prepend("["); - res.append("]"); + res.prepend(QLatin1Char('[')); + res.append(QLatin1Char(']')); return res; } else if (val.type() == QVariant::Bool) { - return val.toBool() ? "true" : "false"; + return val.toBool() ? QLatin1String("true") : QLatin1String("false"); } else if (val.canConvert(QVariant::String)) { return QLatin1Char('"') + val.toString() + QLatin1Char('"'); } else { - return QString("Unconvertible type %1").arg(val.typeName()); + return QString::fromLatin1("Unconvertible type %1").arg(QLatin1String(val.typeName())); } } diff --git a/src/lib/corelib/tools/setupprojectparameters.cpp b/src/lib/corelib/tools/setupprojectparameters.cpp index 9f6c07cb8..354bb6e0d 100644 --- a/src/lib/corelib/tools/setupprojectparameters.cpp +++ b/src/lib/corelib/tools/setupprojectparameters.cpp @@ -275,7 +275,7 @@ ErrorInfo SetupProjectParameters::expandBuildConfiguration(Settings *settings) // Fill in buildCfg in this order (making sure not to overwrite a key already set by a previous stage) // 1) Things specified on command line (already in buildCfg at this point) // 2) Everything from the profile key - QString profileName = expandedConfig.value("qbs.profile").toString(); + QString profileName = expandedConfig.value(QLatin1String("qbs.profile")).toString(); if (profileName.isNull()) { profileName = settings->defaultProfile(); if (profileName.isNull()) { @@ -289,7 +289,7 @@ ErrorInfo SetupProjectParameters::expandBuildConfiguration(Settings *settings) .arg(profileNames)); return err; } - expandedConfig.insert("qbs.profile", profileName); + expandedConfig.insert(QLatin1String("qbs.profile"), profileName); } // (2) |