diff options
author | Jake Petroules <jake.petroules@qt.io> | 2017-10-24 08:40:54 -0700 |
---|---|---|
committer | Jake Petroules <jake.petroules@qt.io> | 2017-11-14 18:24:18 +0000 |
commit | b5613da1391789fe661063ab9d30850aa96efd59 (patch) | |
tree | d38dba0aefb774dd32268ec94bea5ddc0c9cea0d | |
parent | f40667f6fb026fa1747a1e330d6e397bf79435c7 (diff) |
STL compatibility: use front() instead of first()
This is a simple find and replace with manual sanity check.
Change-Id: I82f0eb38b6a5a3b75a4ed38d97bdb6ce164d09b3
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
30 files changed, 161 insertions, 161 deletions
diff --git a/src/app/config-ui/commandlineparser.cpp b/src/app/config-ui/commandlineparser.cpp index 718b64b0a..5c5606442 100644 --- a/src/app/config-ui/commandlineparser.cpp +++ b/src/app/config-ui/commandlineparser.cpp @@ -59,7 +59,7 @@ void CommandLineParser::parse(const QStringList &commandLine) if (m_commandLine.isEmpty()) return; - const QString &arg = m_commandLine.first(); + const QString &arg = m_commandLine.front(); if (arg == helpOptionShort() || arg == helpOptionLong()) { m_commandLine.removeFirst(); m_helpRequested = true; diff --git a/src/app/config-ui/mainwindow.cpp b/src/app/config-ui/mainwindow.cpp index c5f629278..4de5c85d8 100644 --- a/src/app/config-ui/mainwindow.cpp +++ b/src/app/config-ui/mainwindow.cpp @@ -184,7 +184,7 @@ bool MainWindow::eventFilter(QObject *watched, QEvent *event) if (keyEvent->matches(QKeySequence::Delete)) { const QModelIndexList indexes = ui->treeView->selectionModel()->selectedRows(); if (indexes.count() == 1) { - const QModelIndex index = indexes.first(); + const QModelIndex index = indexes.front(); if (index.isValid()) { m_model->removeKey(index); return true; diff --git a/src/app/config/configcommandexecutor.cpp b/src/app/config/configcommandexecutor.cpp index 9341663dd..a8ae28f66 100644 --- a/src/app/config/configcommandexecutor.cpp +++ b/src/app/config/configcommandexecutor.cpp @@ -63,7 +63,7 @@ void ConfigCommandExecutor::execute(const ConfigCommand &command) printSettings(command); break; case ConfigCommand::CfgSet: - setValue(command.varNames.first(), command.varValue); + setValue(command.varNames.front(), command.varValue); break; case ConfigCommand::CfgUnset: foreach (const QString &varName, command.varNames) diff --git a/src/app/config/configcommandlineparser.cpp b/src/app/config/configcommandlineparser.cpp index 595a23ef4..45fb79231 100644 --- a/src/app/config/configcommandlineparser.cpp +++ b/src/app/config/configcommandlineparser.cpp @@ -55,13 +55,13 @@ void ConfigCommandLineParser::parse(const QStringList &commandLine) m_commandLine = commandLine; if (m_commandLine.isEmpty()) throw ErrorInfo(Tr::tr("No parameters supplied.")); - if (m_commandLine.count() == 1 && (m_commandLine.first() == QLatin1String("--help") - || m_commandLine.first() == QLatin1String("-h"))) { + if (m_commandLine.count() == 1 && (m_commandLine.front() == QLatin1String("--help") + || m_commandLine.front() == QLatin1String("-h"))) { m_helpRequested = true; return; } - while (!m_commandLine.isEmpty() && m_commandLine.first().startsWith(QLatin1String("--"))) { + while (!m_commandLine.isEmpty() && m_commandLine.front().startsWith(QLatin1String("--"))) { const QString arg = m_commandLine.takeFirst().mid(2); if (arg == QLatin1String("list")) setCommand(ConfigCommand::CfgList); @@ -83,7 +83,7 @@ void ConfigCommandLineParser::parse(const QStringList &commandLine) throw ErrorInfo(Tr::tr("No parameters supplied.")); if (m_commandLine.count() > 2) throw ErrorInfo(Tr::tr("Too many arguments.")); - m_command.varNames << m_commandLine.first(); + m_command.varNames << m_commandLine.front(); if (m_commandLine.count() == 1) { setCommand(ConfigCommand::CfgList); } else { @@ -99,12 +99,12 @@ void ConfigCommandLineParser::parse(const QStringList &commandLine) case ConfigCommand::CfgExport: if (m_commandLine.count() != 1) throw ErrorInfo(Tr::tr("Need name of file to which to export.")); - m_command.fileName = m_commandLine.first(); + m_command.fileName = m_commandLine.front(); break; case ConfigCommand::CfgImport: if (m_commandLine.count() != 1) throw ErrorInfo(Tr::tr("Need name of file from which to import.")); - m_command.fileName = m_commandLine.first(); + m_command.fileName = m_commandLine.front(); break; case ConfigCommand::CfgList: m_command.varNames = m_commandLine; diff --git a/src/app/qbs-setup-android/commandlineparser.cpp b/src/app/qbs-setup-android/commandlineparser.cpp index f5a5c3aa3..d2465f395 100644 --- a/src/app/qbs-setup-android/commandlineparser.cpp +++ b/src/app/qbs-setup-android/commandlineparser.cpp @@ -72,7 +72,7 @@ void CommandLineParser::parse(const QStringList &commandLine) throwError(Tr::tr("No command-line arguments provided.")); while (!m_commandLine.isEmpty()) { - const QString arg = m_commandLine.first(); + const QString arg = m_commandLine.front(); if (!arg.startsWith(QLatin1Char('-'))) break; m_commandLine.removeFirst(); diff --git a/src/app/qbs-setup-qt/commandlineparser.cpp b/src/app/qbs-setup-qt/commandlineparser.cpp index 9a6a003f7..c51af58a0 100644 --- a/src/app/qbs-setup-qt/commandlineparser.cpp +++ b/src/app/qbs-setup-qt/commandlineparser.cpp @@ -65,7 +65,7 @@ void CommandLineParser::parse(const QStringList &commandLine) throwError(Tr::tr("No command-line arguments provided.")); while (!m_commandLine.isEmpty()) { - const QString arg = m_commandLine.first(); + const QString arg = m_commandLine.front(); if (!arg.startsWith(QLatin1Char('-'))) break; m_commandLine.removeFirst(); diff --git a/src/app/qbs-setup-qt/setupqt.cpp b/src/app/qbs-setup-qt/setupqt.cpp index d6eb282eb..23a5b2736 100644 --- a/src/app/qbs-setup-qt/setupqt.cpp +++ b/src/app/qbs-setup-qt/setupqt.cpp @@ -566,9 +566,9 @@ void SetupQt::saveToQbsSettings(const QString &qtVersionName, const QtEnvironmen QString bestMatch; if (fullMatches.count() == 1) - bestMatch = fullMatches.first(); + bestMatch = fullMatches.front(); else if (fullMatches.isEmpty() && partialMatches.count() == 1) - bestMatch = partialMatches.first(); + bestMatch = partialMatches.front(); if (bestMatch.isEmpty()) { QString message = Tr::tr("You need to set up toolchain information before you can " "use this Qt version for building. "); diff --git a/src/app/qbs-setup-toolchains/commandlineparser.cpp b/src/app/qbs-setup-toolchains/commandlineparser.cpp index b1cbc9129..f67a24ab3 100644 --- a/src/app/qbs-setup-toolchains/commandlineparser.cpp +++ b/src/app/qbs-setup-toolchains/commandlineparser.cpp @@ -67,7 +67,7 @@ void CommandLineParser::parse(const QStringList &commandLine) throwError(Tr::tr("No command-line arguments provided.")); while (!m_commandLine.isEmpty()) { - const QString arg = m_commandLine.first(); + const QString arg = m_commandLine.front(); if (!arg.startsWith(QLatin1Char('-'))) break; m_commandLine.removeFirst(); diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp index 2bb99abfd..c2bc06c7d 100644 --- a/src/app/qbs-setup-toolchains/probe.cpp +++ b/src/app/qbs-setup-toolchains/probe.cpp @@ -290,7 +290,7 @@ void probe(Settings *settings) if (profiles.isEmpty()) { qStderr << Tr::tr("Could not detect any toolchains. No profile created.") << endl; } else if (profiles.count() == 1 && settings->defaultProfile().isEmpty()) { - const QString profileName = profiles.first().name(); + const QString profileName = profiles.front().name(); qStdout << Tr::tr("Making profile '%1' the default.").arg(profileName) << endl; settings->setValue(QLatin1String("defaultProfile"), profileName); } diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp index 2a6dae2b6..2c4290c46 100644 --- a/src/app/qbs/commandlinefrontend.cpp +++ b/src/app/qbs/commandlinefrontend.cpp @@ -374,7 +374,7 @@ void CommandLineFrontend::handleProjectsResolved() qApp->exit(runShell()); break; case StatusCommandType: - qApp->exit(printStatus(m_projects.first().projectData())); + qApp->exit(printStatus(m_projects.front().projectData())); break; case GenerateCommandType: checkGeneratorName(); @@ -431,20 +431,20 @@ int CommandLineFrontend::runShell() case 0: // No specific product, use project-global environment. break; case 1: - productToRun = productsToUse().values().first().first(); + productToRun = productsToUse().values().front().front(); break; default: throw ErrorInfo(Tr::tr("The command '%1' cannot take more than one product.")); } - RunEnvironment runEnvironment = m_projects.first().getRunEnvironment(productToRun, - m_parser.installOptions(m_projects.first().profile()), + RunEnvironment runEnvironment = m_projects.front().getRunEnvironment(productToRun, + m_parser.installOptions(m_projects.front().profile()), QProcessEnvironment::systemEnvironment(), m_settings); return runEnvironment.doRunShell(); } BuildOptions CommandLineFrontend::buildOptions(const Project &project) const { - BuildOptions options = m_parser.buildOptions(m_projects.first().profile()); + BuildOptions options = m_parser.buildOptions(m_projects.front().profile()); if (options.maxJobCount() <= 0) { const QString profileName = project.profile(); QBS_CHECK(!profileName.isEmpty()); @@ -541,8 +541,8 @@ int CommandLineFrontend::runTarget() throw ErrorInfo(Tr::tr("Cannot run: Product '%1' is not an application.") .arg(productToRun.name())); } - RunEnvironment runEnvironment = m_projects.first().getRunEnvironment(productToRun, - m_parser.installOptions(m_projects.first().profile()), + RunEnvironment runEnvironment = m_projects.front().getRunEnvironment(productToRun, + m_parser.installOptions(m_projects.front().profile()), QProcessEnvironment::systemEnvironment(), m_settings); return runEnvironment.doRunTarget(executableFilePath, m_parser.runArgs()); } @@ -560,8 +560,8 @@ void CommandLineFrontend::dumpNodesTree() { QFile stdOut; stdOut.open(stdout, QIODevice::WriteOnly); - const ErrorInfo error = m_projects.first().dumpNodesTree(stdOut, productsToUse() - .value(m_projects.first())); + const ErrorInfo error = m_projects.front().dumpNodesTree(stdOut, productsToUse() + .value(m_projects.front())); if (error.hasError()) throw error; } @@ -615,8 +615,8 @@ ProductData CommandLineFrontend::getTheOneRunnableProduct() QBS_CHECK(m_projects.count() == 1); // Has been checked earlier. if (m_parser.products().count() == 1) { - foreach (const ProductData &p, m_projects.first().projectData().allProducts()) { - if (p.name() == m_parser.products().first()) + foreach (const ProductData &p, m_projects.front().projectData().allProducts()) { + if (p.name() == m_parser.products().front()) return p; } QBS_CHECK(false); @@ -624,13 +624,13 @@ ProductData CommandLineFrontend::getTheOneRunnableProduct() QBS_CHECK(m_parser.products().count() == 0); QList<ProductData> runnableProducts; - foreach (const ProductData &p, m_projects.first().projectData().allProducts()) { + foreach (const ProductData &p, m_projects.front().projectData().allProducts()) { if (p.isRunnable()) runnableProducts << p; } if (runnableProducts.count() == 1) - return runnableProducts.first(); + return runnableProducts.front(); if (runnableProducts.isEmpty()) { throw ErrorInfo(Tr::tr("Cannot execute command '%1': Project has no runnable product.") @@ -642,7 +642,7 @@ ProductData CommandLineFrontend::getTheOneRunnableProduct() error.append(Tr::tr("Use the '--products' option with one of the following products:")); foreach (const ProductData &p, runnableProducts) { QString productRepr = QLatin1String("\t") + p.name(); - if (p.profile() != m_projects.first().profile()) { + if (p.profile() != m_projects.front().profile()) { productRepr.append(QLatin1String(" [")).append(p.profile()) .append(QLatin1Char(']')); } @@ -654,7 +654,7 @@ ProductData CommandLineFrontend::getTheOneRunnableProduct() void CommandLineFrontend::install() { Q_ASSERT(m_projects.count() == 1); - const Project project = m_projects.first(); + const Project project = m_projects.front(); InstallJob *installJob; if (m_parser.products().isEmpty()) { const Project::ProductSelection productSelection = m_parser.withNonDefaultProducts() @@ -662,7 +662,7 @@ void CommandLineFrontend::install() installJob = project.installAllProducts(m_parser.installOptions(project.profile()), productSelection); } else { - const Project project = m_projects.first(); + const Project project = m_projects.front(); const ProductMap products = productsToUse(); installJob = project.installSomeProducts(products.value(project), m_parser.installOptions(project.profile())); diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp index 434ddf126..c223ea735 100644 --- a/src/app/qbs/parser/commandlineparser.cpp +++ b/src/app/qbs/parser/commandlineparser.cpp @@ -321,16 +321,16 @@ void CommandLineParser::CommandLineParserPrivate::doParse() if (commandLine.isEmpty()) { // No command given, use default. command = commandPool.getCommand(BuildCommandType); } else { - command = commandFromString(commandLine.first()); + command = commandFromString(commandLine.front()); if (command) { commandLine.removeFirst(); } else { // No command given. - if (commandLine.first() == QLatin1String("-h") - || commandLine.first() == QLatin1String("--help")) { + if (commandLine.front() == QLatin1String("-h") + || commandLine.front() == QLatin1String("--help")) { command = commandPool.getCommand(HelpCommandType); commandLine.takeFirst(); - } else if (commandLine.first() == QLatin1String("-V") - || commandLine.first() == QLatin1String("--version")) { + } else if (commandLine.front() == QLatin1String("-V") + || commandLine.front() == QLatin1String("--version")) { command = commandPool.getCommand(VersionCommandType); commandLine.takeFirst(); } else { diff --git a/src/app/qbs/parser/parsercommand.cpp b/src/app/qbs/parser/parsercommand.cpp index dd07f2cce..7bf147cea 100644 --- a/src/app/qbs/parser/parsercommand.cpp +++ b/src/app/qbs/parser/parsercommand.cpp @@ -101,7 +101,7 @@ QList<CommandLineOption::Type> Command::actualSupportedOptions() const void Command::parseOption(QStringList &input) { - const QString optionString = input.first(); + const QString optionString = input.front(); QBS_CHECK(optionString.startsWith(QLatin1Char('-'))); input.removeFirst(); if (optionString.count() == 1) @@ -148,7 +148,7 @@ void Command::parseOption(QStringList &input) void Command::parseNext(QStringList &input) { QBS_CHECK(!input.empty()); - if (input.first().startsWith(QLatin1Char('-'))) + if (input.front().startsWith(QLatin1Char('-'))) parseOption(input); else parsePropertyAssignment(input.takeFirst()); @@ -392,7 +392,7 @@ QList<CommandLineOption::Type> RunCommand::supportedOptions() const void RunCommand::parseNext(QStringList &input) { QBS_CHECK(!input.empty()); - if (input.first() != QLatin1String("--")) { + if (input.front() != QLatin1String("--")) { Command::parseNext(input); return; } diff --git a/src/lib/corelib/api/changeset.cpp b/src/lib/corelib/api/changeset.cpp index ad070744c..bd04fe006 100644 --- a/src/lib/corelib/api/changeset.cpp +++ b/src/lib/corelib/api/changeset.cpp @@ -373,7 +373,7 @@ void ChangeSet::apply_helper() QList<EditOp> replaceList; { while (!m_operationList.isEmpty()) { - const EditOp cmd(m_operationList.first()); + const EditOp cmd(m_operationList.front()); m_operationList.removeFirst(); convertToReplace(cmd, &replaceList); } @@ -384,7 +384,7 @@ void ChangeSet::apply_helper() m_cursor->beginEditBlock(); while (!replaceList.isEmpty()) { - const EditOp cmd(replaceList.first()); + const EditOp cmd(replaceList.front()); replaceList.removeFirst(); doReplace(cmd, &replaceList); } diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp index 648022b32..4101f705d 100644 --- a/src/lib/corelib/api/project.cpp +++ b/src/lib/corelib/api/project.cpp @@ -337,14 +337,14 @@ void ProjectPrivate::addGroup(const ProductData &product, const QString &groupNa const QList<ResolvedProductPtr> resolvedProducts = internalProducts(products); QBS_CHECK(products.count() == resolvedProducts.count()); - for (const GroupPtr &resolvedGroup : qAsConst(resolvedProducts.first()->groups)) { + for (const GroupPtr &resolvedGroup : qAsConst(resolvedProducts.front()->groups)) { if (resolvedGroup->name == groupName) { throw ErrorInfo(Tr::tr("Group '%1' already exists in product '%2'.") .arg(groupName, product.name()), resolvedGroup->location); } } - ProjectFileGroupInserter groupInserter(products.first(), groupName); + ProjectFileGroupInserter groupInserter(products.front(), groupName); groupInserter.apply(); m_projectData.d.detach(); // The data we already gave out must stay as it is. @@ -354,7 +354,7 @@ void ProjectPrivate::addGroup(const ProductData &product, const QString &groupNa updateExternalCodeLocations(m_projectData, groupInserter.itemPosition(), groupInserter.lineOffset()); - products = findProductsByName(products.first().name()); // These are new objects. + products = findProductsByName(products.front().name()); // These are new objects. QBS_CHECK(products.count() == resolvedProducts.count()); for (int i = 0; i < products.count(); ++i) { const GroupPtr resolvedGroup = ResolvedGroup::create(); @@ -451,7 +451,7 @@ ProjectPrivate::FileListUpdateContext ProjectPrivate::getFileListContext(const P throw ErrorInfo(Tr::tr("File '%1' appears more than once.").arg(absPath)); if (forAdding && !FileInfo(absPath).exists()) throw ErrorInfo(Tr::tr("File '%1' does not exist.").arg(absPath)); - if (matchesWildcard(absPath, groupContext.resolvedGroups.first())) { + if (matchesWildcard(absPath, groupContext.resolvedGroups.front())) { filesContext.absoluteFilePathsFromWildcards << absPath; } else { filesContext.absoluteFilePaths << absPath; @@ -490,8 +490,8 @@ void ProjectPrivate::addFiles(const ProductData &product, const GroupData &group } } - ProjectFileFilesAdder adder(groupContext.products.first(), - group.isValid() ? groupContext.groups.first() : GroupData(), + ProjectFileFilesAdder adder(groupContext.products.front(), + group.isValid() ? groupContext.groups.front() : GroupData(), filesContext.relativeFilePaths); adder.apply(); @@ -559,7 +559,7 @@ void ProjectPrivate::removeFiles(const ProductData &product, const GroupData &gr } QStringList filesNotFound = filesContext.absoluteFilePaths; QList<SourceArtifactPtr> sourceArtifacts; - for (const SourceArtifactPtr &sa : qAsConst(groupContext.resolvedGroups.first()->files)) { + for (const SourceArtifactPtr &sa : qAsConst(groupContext.resolvedGroups.front()->files)) { if (filesNotFound.removeOne(sa->absoluteFilePath)) sourceArtifacts << sa; } @@ -568,8 +568,8 @@ void ProjectPrivate::removeFiles(const ProductData &product, const GroupData &gr .arg(filesNotFound.join(QLatin1String(", ")))); } - ProjectFileFilesRemover remover(groupContext.products.first(), - group.isValid() ? groupContext.groups.first() : GroupData(), + ProjectFileFilesRemover remover(groupContext.products.front(), + group.isValid() ? groupContext.groups.front() : GroupData(), filesContext.relativeFilePaths); remover.apply(); @@ -595,7 +595,7 @@ void ProjectPrivate::removeGroup(const ProductData &product, const GroupData &gr { GroupUpdateContext context = getGroupContext(product, group); - ProjectFileGroupRemover remover(context.products.first(), context.groups.first()); + ProjectFileGroupRemover remover(context.products.front(), context.groups.front()); remover.apply(); for (int i = 0; i < context.resolvedProducts.count(); ++i) { diff --git a/src/lib/corelib/api/projectfileupdater.cpp b/src/lib/corelib/api/projectfileupdater.cpp index 942ab0efa..ced85e123 100644 --- a/src/lib/corelib/api/projectfileupdater.cpp +++ b/src/lib/corelib/api/projectfileupdater.cpp @@ -233,7 +233,7 @@ void ProjectFileGroupInserter::doApply(QString &fileContent, UiProgram *ast) int lineOffset = 3 + 1; // Our text + a leading newline that is always added by the rewriter. const QList<ChangeSet::EditOp> &editOps = changeSet.operationList(); QBS_CHECK(editOps.count() == 1); - const ChangeSet::EditOp &insertOp = editOps.first(); + const ChangeSet::EditOp &insertOp = editOps.front(); setLineOffset(lineOffset); int insertionLine = fileContent.left(insertOp.pos1).count(QLatin1Char('\n')); @@ -256,7 +256,7 @@ static const ChangeSet::EditOp &getEditOp(const ChangeSet &changeSet) { const QList<ChangeSet::EditOp> &editOps = changeSet.operationList(); QBS_CHECK(editOps.count() == 1); - return editOps.first(); + return editOps.front(); } static int getLineOffsetForChangedBinding(const ChangeSet &changeSet, const QString &oldRhs) @@ -345,9 +345,9 @@ void ProjectFileFilesAdder::doApply(QString &fileContent, UiProgram *ast) } // Insert new files "sorted", but do not change the order of existing files. - const QString firstNewFileRepr = toJSLiteral(sortedFiles.first()); + const QString firstNewFileRepr = toJSLiteral(sortedFiles.front()); while (!oldFileReprs.isEmpty()) { - if (oldFileReprs.first() > firstNewFileRepr) + if (oldFileReprs.front() > firstNewFileRepr) break; addToFilesRepr(filesRepresentation, oldFileReprs.takeFirst(), arrayElemIndentation); } @@ -486,9 +486,9 @@ void ProjectFileFilesRemover::doApply(QString &fileContent, UiProgram *ast) } const QString existingFile = static_cast<StringLiteral *>(exprStatement->expression)->value.toString(); - if (existingFile != m_files.first()) { + if (existingFile != m_files.front()) { throw ErrorInfo(Tr::tr("File '%1' could not be found in the 'files' list.") - .arg(m_files.first()), bindingLocation); + .arg(m_files.front()), bindingLocation); } rewriter.changeBinding(itemFinder.item()->initializer, QLatin1String("files"), QLatin1String("[]"), Rewriter::ScriptBinding); @@ -539,7 +539,7 @@ void ProjectFileGroupRemover::doApply(QString &fileContent, UiProgram *ast) setItemPosition(m_group.location()); const QList<ChangeSet::EditOp> &editOps = changeSet.operationList(); QBS_CHECK(editOps.count() == 1); - const ChangeSet::EditOp &op = editOps.first(); + const ChangeSet::EditOp &op = editOps.front(); const QString removedText = fileContent.mid(op.pos1, op.length1); setLineOffset(-removedText.count(QLatin1Char('\n'))); diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp index 8913c5469..0d86142ef 100644 --- a/src/lib/corelib/buildgraph/executor.cpp +++ b/src/lib/corelib/buildgraph/executor.cpp @@ -257,7 +257,7 @@ void Executor::doBuild() InstallOptions installOptions; installOptions.setDryRun(m_buildOptions.dryRun()); - installOptions.setInstallRoot(m_productsToBuild.first()->moduleProperties + installOptions.setInstallRoot(m_productsToBuild.front()->moduleProperties ->qbsPropertyValue(QLatin1String("installRoot")).toString()); installOptions.setKeepGoing(m_buildOptions.keepGoing()); m_productInstaller = new ProductInstaller(m_project, m_productsToBuild, installOptions, diff --git a/src/lib/corelib/buildgraph/productinstaller.cpp b/src/lib/corelib/buildgraph/productinstaller.cpp index 1b1e507bb..89e7c94a9 100644 --- a/src/lib/corelib/buildgraph/productinstaller.cpp +++ b/src/lib/corelib/buildgraph/productinstaller.cpp @@ -192,7 +192,7 @@ void ProductInstaller::copyFile(const Artifact *artifact) { if (m_observer->canceled()) { throw ErrorInfo(Tr::tr("Installation canceled for configuration '%1'.") - .arg(m_products.first()->project->topLevelProject()->id())); + .arg(m_products.front()->project->topLevelProject()->id())); } const QString targetFilePath = this->targetFilePath(m_project.get(), diff --git a/src/lib/corelib/buildgraph/qtmocscanner.cpp b/src/lib/corelib/buildgraph/qtmocscanner.cpp index 3251ff167..9f369bdd1 100644 --- a/src/lib/corelib/buildgraph/qtmocscanner.cpp +++ b/src/lib/corelib/buildgraph/qtmocscanner.cpp @@ -216,15 +216,15 @@ QScriptValue QtMocScanner::apply(QScriptEngine *engine, const Artifact *artifact QList<ScannerPlugin *> scanners = ScannerPluginManager::scannersForFileTag(m_tags.cpp); if (scanners.count() != 1) return scannerCountError(engine, scanners.count(), m_tags.cpp.toString()); - m_cppScanner = scanners.first(); + m_cppScanner = scanners.front(); scanners = ScannerPluginManager::scannersForFileTag(m_tags.objcpp); if (scanners.count() != 1) return scannerCountError(engine, scanners.count(), m_tags.objcpp.toString()); - m_objcppScanner = scanners.first(); + m_objcppScanner = scanners.front(); scanners = ScannerPluginManager::scannersForFileTag(m_tags.hpp); if (scanners.count() != 1) return scannerCountError(engine, scanners.count(), m_tags.hpp.toString()); - m_hppScanner = scanners.first(); + m_hppScanner = scanners.front(); } findIncludedMocCppFiles(); diff --git a/src/lib/corelib/language/astimportshandler.cpp b/src/lib/corelib/language/astimportshandler.cpp index c4c701f22..1f3c10a0f 100644 --- a/src/lib/corelib/language/astimportshandler.cpp +++ b/src/lib/corelib/language/astimportshandler.cpp @@ -87,8 +87,8 @@ void ASTImportsHandler::handleImport(const QbsQmlJS::AST::UiImport *import) bool isBase = false; if (import->importUri) { importUri = toStringList(import->importUri); - isBase = (importUri.size() == 1 && importUri.first() == QLatin1String("qbs")) - || (importUri.size() == 2 && importUri.first() == QLatin1String("qbs") + isBase = (importUri.size() == 1 && importUri.front() == QLatin1String("qbs")) + || (importUri.size() == 2 && importUri.front() == QLatin1String("qbs") && importUri.last() == QLatin1String("base")); if (isBase) { checkImportVersion(import->versionToken); @@ -105,7 +105,7 @@ void ASTImportsHandler::handleImport(const QbsQmlJS::AST::UiImport *import) toCodeLocation(m_file->filePath(), import->importIdToken)); } } else { - if (importUri.count() == 2 && importUri.first() == QLatin1String("qbs")) { + if (importUri.count() == 2 && importUri.front() == QLatin1String("qbs")) { const QString extensionName = importUri.last(); if (JsExtensions::hasExtension(extensionName)) { if (Q_UNLIKELY(!import->importId.isNull())) { diff --git a/src/lib/corelib/language/itemreaderastvisitor.cpp b/src/lib/corelib/language/itemreaderastvisitor.cpp index 9d77472c2..76bdc7ff0 100644 --- a/src/lib/corelib/language/itemreaderastvisitor.cpp +++ b/src/lib/corelib/language/itemreaderastvisitor.cpp @@ -195,7 +195,7 @@ bool ItemReaderASTVisitor::visit(AST::UiScriptBinding *ast) const QStringList bindingName = toStringList(ast->qualifiedId); - if (bindingName.length() == 1 && bindingName.first() == QLatin1String("id")) { + if (bindingName.length() == 1 && bindingName.front() == QLatin1String("id")) { const auto * const expStmt = AST::cast<AST::ExpressionStatement *>(ast->statement); if (Q_UNLIKELY(!expStmt)) throw ErrorInfo(Tr::tr("id: must be followed by identifier")); diff --git a/src/lib/corelib/language/loader.cpp b/src/lib/corelib/language/loader.cpp index d7da2ca67..6926ed61f 100644 --- a/src/lib/corelib/language/loader.cpp +++ b/src/lib/corelib/language/loader.cpp @@ -204,7 +204,7 @@ void Loader::setupProjectFilePath(SetupProjectParameters ¶meters) throw ErrorInfo(Tr::tr("More than one project file found in directory '%1'.") .arg(projectFilePath)); } - projectFilePath.append(QLatin1Char('/')).append(actualFileNames.first()); + projectFilePath.append(QLatin1Char('/')).append(actualFileNames.front()); projectFilePath = QDir::current().filePath(projectFilePath); projectFilePath = QDir::cleanPath(projectFilePath); diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index 1ee216100..9b683c5dd 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -1752,11 +1752,11 @@ void ModuleLoader::propagateModulesFromParent(ProductContext *productContext, It for (Item::Module depMod : oldModules) { depMod.item = moduleInstancesForGroup.value(depMod.name); adaptedModules << depMod; - if (depMod.name.first() == module.name.first()) + if (depMod.name.front() == module.name.front()) continue; - const ItemValuePtr &modulePrefix = groupItem->itemProperty(depMod.name.first()); + const ItemValuePtr &modulePrefix = groupItem->itemProperty(depMod.name.front()); QBS_CHECK(modulePrefix); - module.item->setProperty(depMod.name.first(), modulePrefix); + module.item->setProperty(depMod.name.front(), modulePrefix); } module.item->setModules(adaptedModules); } @@ -2114,7 +2114,7 @@ void ModuleLoader::resolveDependsItem(DependsContext *dependsContext, Item *pare ErrorInfo e(Tr::tr("Dependency '%1' not found for product '%2'.") .arg(moduleName.toString(), dependsContext->product->name), dependsItem->location()); - if (moduleName.count() == 2 && moduleName.first() == QLatin1String("Qt")) { + if (moduleName.count() == 2 && moduleName.front() == QLatin1String("Qt")) { e.append(Tr::tr("Please create a Qt profile using the qbs-setup-qt tool " "if you haven't already done so.")); } @@ -2355,7 +2355,7 @@ private: static bool isBaseModule(const QualifiedId &moduleName) { - return moduleName.count() == 1 && moduleName.first() == QLatin1String("qbs"); + return moduleName.count() == 1 && moduleName.front() == QLatin1String("qbs"); } class DelayedPropertyChanger @@ -2419,7 +2419,7 @@ Item *ModuleLoader::loadModule(ProductContext *productContext, Item *exportingPr if (Q_UNLIKELY(moduleInstance->type() == ItemType::ModulePrefix)) { for (const Item::Module &m : item->modules()) { - if (m.name.first() == moduleName.first()) + if (m.name.front() == moduleName.front()) throwModuleNamePrefixError(moduleName, m.name, dependsItemLocation); } } @@ -2849,7 +2849,7 @@ void ModuleLoader::instantiateModule(ProductContext *productContext, Item *expor Item *item = moduleInstanceItem(moduleInstance, iip.first); item->setPrototype(iip.second->item()); if (iip.second->createdByPropertiesBlock()) { - ItemValuePtr itemValue = moduleInstance->itemProperty(iip.first.first()); + ItemValuePtr itemValue = moduleInstance->itemProperty(iip.first.front()); for (int i = 1; i < iip.first.size(); ++i) itemValue = itemValue->item()->itemProperty(iip.first.at(i)); itemValue->setCreatedByPropertiesBlock(true); diff --git a/src/lib/corelib/tools/applecodesignutils.cpp b/src/lib/corelib/tools/applecodesignutils.cpp index f5f8b06fa..b77850a55 100644 --- a/src/lib/corelib/tools/applecodesignutils.cpp +++ b/src/lib/corelib/tools/applecodesignutils.cpp @@ -90,7 +90,7 @@ QVariantMap certificateInfo(const QByteArray &data) const auto subjectInfo = [](const QSslCertificate &cert) { QVariantMap map; for (const auto &attr : cert.subjectInfoAttributes()) - map.insert(QString::fromLatin1(attr), cert.subjectInfo(attr).first()); + map.insert(QString::fromLatin1(attr), cert.subjectInfo(attr).front()); return map; }; diff --git a/src/lib/corelib/tools/scripttools.cpp b/src/lib/corelib/tools/scripttools.cpp index 7f094f9bb..adf930cf0 100644 --- a/src/lib/corelib/tools/scripttools.cpp +++ b/src/lib/corelib/tools/scripttools.cpp @@ -49,9 +49,9 @@ namespace Internal { void setConfigProperty(QVariantMap &cfg, const QStringList &name, const QVariant &value) { if (name.length() == 1) { - cfg.insert(name.first(), value); + cfg.insert(name.front(), value); } else { - QVariant &subCfg = cfg[name.first()]; + QVariant &subCfg = cfg[name.front()]; QVariantMap subCfgMap = subCfg.toMap(); setConfigProperty(subCfgMap, name.mid(1), value); subCfg = subCfgMap; @@ -61,9 +61,9 @@ void setConfigProperty(QVariantMap &cfg, const QStringList &name, const QVariant QVariant getConfigProperty(const QVariantMap &cfg, const QStringList &name) { if (name.length() == 1) - return cfg.value(name.first()); + return cfg.value(name.front()); else - return getConfigProperty(cfg.value(name.first()).toMap(), name.mid(1)); + return getConfigProperty(cfg.value(name.front()).toMap(), name.mid(1)); } TemporaryGlobalObjectSetter::TemporaryGlobalObjectSetter(const QScriptValue &object) diff --git a/src/lib/corelib/tools/settingsmodel.cpp b/src/lib/corelib/tools/settingsmodel.cpp index ed52455ea..4544fa5d0 100644 --- a/src/lib/corelib/tools/settingsmodel.cpp +++ b/src/lib/corelib/tools/settingsmodel.cpp @@ -329,7 +329,7 @@ void SettingsModel::SettingsModelPrivate::readSettings() for (QVariantMap::ConstIterator it = additionalProperties.constBegin(); it != additionalProperties.constEnd(); ++it) { const QStringList nameAsList = it.key().split(QLatin1Char('.'), QString::SkipEmptyParts); - addNode(&rootNode, nameAsList.first(), nameAsList.mid(1), it.value()); + addNode(&rootNode, nameAsList.front(), nameAsList.mid(1), it.value()); } dirty = false; } @@ -371,7 +371,7 @@ void SettingsModel::SettingsModelPrivate::addNode(qbs::Internal::Node *parentNod currentNode->value = settingsValueToRepresentation(value); currentNode->isFromSettings = false; } else { - addNode(currentNode, restOfName.first(), restOfName.mid(1), value); + addNode(currentNode, restOfName.front(), restOfName.mid(1), value); } } diff --git a/src/lib/corelib/tools/shellutils.cpp b/src/lib/corelib/tools/shellutils.cpp index 4521e018c..c1992551f 100644 --- a/src/lib/corelib/tools/shellutils.cpp +++ b/src/lib/corelib/tools/shellutils.cpp @@ -54,7 +54,7 @@ QString shellInterpreter(const QString &filePath) { const QString shebang = ts.readLine(); if (shebang.startsWith(QLatin1String("#!"))) { return (shebang.mid(2).split(QRegExp(QLatin1String("\\s")), - QString::SkipEmptyParts) << QString()).first(); + QString::SkipEmptyParts) << QString()).front(); } } diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp index 6b64bc2ea..9d859880e 100644 --- a/tests/auto/api/tst_api.cpp +++ b/tests/auto/api/tst_api.cpp @@ -295,7 +295,7 @@ void TestApi::buildErrorCodeLocation() const qbs::ErrorInfo errorInfo = doBuildProject("build-error-code-location/build-error-code-location.qbs"); QVERIFY(errorInfo.hasError()); - const qbs::ErrorItem errorItem = errorInfo.items().first(); + const qbs::ErrorItem errorItem = errorInfo.items().front(); QCOMPARE(errorItem.description(), QString("Rule.outputArtifacts must return an array of objects.")); const qbs::CodeLocation errorLoc = errorItem.codeLocation(); @@ -657,7 +657,7 @@ void TestApi::changeContent() qbs::Project project = job->project(); qbs::ProjectData projectData = project.projectData(); QCOMPARE(projectData.allProducts().count(), 1); - qbs::ProductData product = projectData.allProducts().first(); + qbs::ProductData product = projectData.allProducts().front(); QVERIFY(product.groups().count() >= 8); // Error handling: Invalid product. @@ -690,7 +690,7 @@ void TestApi::changeContent() // Add files to empty array literal. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); QVERIFY(product.groups().count() >= 10); qbs::GroupData group = findGroup(product, "New Group 1"); QVERIFY(group.isValid()); @@ -700,7 +700,7 @@ void TestApi::changeContent() // Error handling: Add the same file again. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); QVERIFY(product.groups().count() >= 10); group = findGroup(product, "New Group 1"); QVERIFY(group.isValid()); @@ -715,7 +715,7 @@ void TestApi::changeContent() // Error handling: Try to remove the same file again. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); QVERIFY(product.groups().count() >= 10); group = findGroup(product, "New Group 1"); QVERIFY(group.isValid()); @@ -737,7 +737,7 @@ void TestApi::changeContent() // Add file to non-empty array literal. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); group = findGroup(product, "Existing Group 1"); QVERIFY(group.isValid()); errorInfo = project.addFiles(product, group, QStringList() << "newfile1.txt"); @@ -746,14 +746,14 @@ void TestApi::changeContent() // Add files to list represented as a single string. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); errorInfo = project.addFiles(product, qbs::GroupData(), QStringList() << "newfile2.txt"); VERIFY_NO_ERROR(errorInfo); // Add files to list represented as an identifier. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); group = findGroup(product, "Existing Group 2"); QVERIFY(group.isValid()); errorInfo = project.addFiles(product, group, QStringList() << "newfile3.txt"); @@ -762,7 +762,7 @@ void TestApi::changeContent() // Add files to list represented as a block of code (not yet implemented). projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); group = findGroup(product, "Existing Group 3"); QVERIFY(group.isValid()); errorInfo = project.addFiles(product, group, QStringList() << "newfile4.txt"); @@ -772,7 +772,7 @@ void TestApi::changeContent() // Add file to group with directory prefix. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); group = findGroup(product, "Existing Group 4"); QVERIFY(group.isValid()); errorInfo = project.addFiles(product, group, QStringList() << "file.txt"); @@ -781,7 +781,7 @@ void TestApi::changeContent() // Error handling: Add file to group with non-directory prefix. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); group = findGroup(product, "Existing Group 5"); QVERIFY(group.isValid()); errorInfo = project.addFiles(product, group, QStringList() << "newfile1.txt"); @@ -791,14 +791,14 @@ void TestApi::changeContent() // Remove group. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); group = findGroup(product, "Existing Group 5"); QVERIFY(group.isValid()); errorInfo = project.removeGroup(product, group); VERIFY_NO_ERROR(errorInfo); projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - QVERIFY(projectData.products().first().groups().count() >= 9); + QVERIFY(projectData.products().front().groups().count() >= 9); // Error handling: Try to remove the same group again. errorInfo = project.removeGroup(product, group); @@ -808,7 +808,7 @@ void TestApi::changeContent() // Add a file to a group where the file name is already matched by a wildcard. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); group = findGroup(product, "Group with wildcards"); QVERIFY(group.isValid()); QFile newFile("koerper.klaus"); @@ -818,17 +818,17 @@ void TestApi::changeContent() VERIFY_NO_ERROR(errorInfo); projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); group = findGroup(product, "Group with wildcards"); QVERIFY(group.isValid()); QCOMPARE(group.sourceArtifactsFromWildcards().count(), 1); - QCOMPARE(group.sourceArtifactsFromWildcards().first().filePath(), + QCOMPARE(group.sourceArtifactsFromWildcards().front().filePath(), QFileInfo(newFile).absoluteFilePath()); // Error checking: Try to remove a file that originates from a wildcard pattern. projectData = project.projectData(); QVERIFY(projectData.products().count() == 1); - product = projectData.products().first(); + product = projectData.products().front(); group = findGroup(product, "Other group with wildcards"); QVERIFY(group.isValid()); errorInfo = project.removeFiles(product, group, QStringList() << "test.wildcard"); @@ -861,7 +861,7 @@ void TestApi::changeContent() // not having run yet. bool projectDataMatches = newProjectData.products().count() == 1 && projectData.products().count() == 1 - && newProjectData.products().first().groups() == projectData.products().first().groups(); + && newProjectData.products().front().groups() == projectData.products().front().groups(); if (!projectDataMatches) { qDebug("This is the assumed project:"); printProjectData(projectData); @@ -884,11 +884,11 @@ void TestApi::changeContent() // Error handling: Try to change the project during a build. buildJob.reset(project.buildAllProducts(buildOptions, defaultProducts(), this)); - errorInfo = project.addGroup(newProjectData.products().first(), "blubb"); + errorInfo = project.addGroup(newProjectData.products().front(), "blubb"); QVERIFY(errorInfo.hasError()); QVERIFY2(errorInfo.toString().contains("in process"), qPrintable(errorInfo.toString())); waitForFinished(buildJob.get()); - errorInfo = project.addGroup(newProjectData.products().first(), "blubb"); + errorInfo = project.addGroup(newProjectData.products().front(), "blubb"); VERIFY_NO_ERROR(errorInfo); project = qbs::Project(); @@ -905,7 +905,7 @@ void TestApi::changeContent() project = job->project(); projectData = project.projectData(); QCOMPARE(projectData.allProducts().count(), 1); - product = projectData.allProducts().first(); + product = projectData.allProducts().front(); errorInfo = project.addFiles(product, qbs::GroupData(), QStringList("main.cpp")); VERIFY_NO_ERROR(errorInfo); projectData = project.projectData(); @@ -924,7 +924,7 @@ void TestApi::changeContent() newProjectData = job->project().projectData(); projectDataMatches = newProjectData.products().count() == 1 && projectData.products().count() == 1 - && newProjectData.products().first().groups() == projectData.products().first().groups(); + && newProjectData.products().front().groups() == projectData.products().front().groups(); if (!projectDataMatches) { printProjectData(projectData); qDebug("\n====\n"); @@ -945,7 +945,7 @@ void TestApi::commandExtraction() qbs::Project project = setupJob->project(); qbs::ProjectData projectData = project.projectData(); QCOMPARE(projectData.allProducts().count(), 1); - qbs::ProductData productData = projectData.allProducts().first(); + qbs::ProductData productData = projectData.allProducts().front(); qbs::ErrorInfo errorInfo; const QString projectDirPath = QDir::cleanPath(QFileInfo(setupParams.projectFilePath()).path()); const QString sourceFilePath = projectDirPath + "/main.cpp"; @@ -964,14 +964,14 @@ void TestApi::commandExtraction() QVERIFY2(!buildJob->error().hasError(), qPrintable(buildJob->error().toString())); projectData = project.projectData(); QCOMPARE(projectData.allProducts().count(), 1); - productData = projectData.allProducts().first(); + productData = projectData.allProducts().front(); errorInfo = qbs::ErrorInfo(); // After the build, the compile command must be found. commands = project.ruleCommands(productData, sourceFilePath, "obj", &errorInfo); QCOMPARE(commands.count(), 1); QVERIFY2(!errorInfo.hasError(), qPrintable(errorInfo.toString())); - const qbs::RuleCommand command = commands.first(); + const qbs::RuleCommand command = commands.front(); QCOMPARE(command.type(), qbs::RuleCommand::ProcessCommandType); QVERIFY(!command.executable().isEmpty()); QVERIFY(!command.arguments().isEmpty()); @@ -1042,7 +1042,7 @@ void TestApi::errorInSetupRunEnvironment() const qbs::Project project = job->project(); QVERIFY(project.isValid()); QCOMPARE(project.projectData().products().count(), 1); - const qbs::ProductData product = project.projectData().products().first(); + const qbs::ProductData product = project.projectData().products().front(); bool exceptionCaught = false; try { @@ -1083,14 +1083,14 @@ void TestApi::disabledInstallGroup() qbs::ProjectData projectData = project.projectData(); QCOMPARE(projectData.allProducts().count(), 1); - qbs::ProductData product = projectData.allProducts().first(); + qbs::ProductData product = projectData.allProducts().front(); const QList<qbs::ArtifactData> targets = product.targetArtifacts(); QCOMPARE(targets.count(), 1); - QVERIFY(targets.first().isGenerated()); - QVERIFY(targets.first().isExecutable()); - QVERIFY(targets.first().isTargetArtifact()); + QVERIFY(targets.front().isGenerated()); + QVERIFY(targets.front().isExecutable()); + QVERIFY(targets.front().isTargetArtifact()); QCOMPARE(projectData.installableArtifacts().count(), 0); - QCOMPARE(product.targetExecutable(), targets.first().filePath()); + QCOMPARE(product.targetExecutable(), targets.front().filePath()); } void TestApi::disabledProduct() @@ -1205,10 +1205,10 @@ void TestApi::fileTagsFilterOverride() qbs::ProjectData projectData = project.projectData(); QCOMPARE(projectData.allProducts().count(), 1); - const qbs::ProductData product = projectData.allProducts().first(); + const qbs::ProductData product = projectData.allProducts().front(); QList<qbs::ArtifactData> installableFiles = product.installableArtifacts(); QCOMPARE(installableFiles.count(), 1); - QVERIFY(installableFiles.first().installData().installFilePath().contains("habicht")); + QVERIFY(installableFiles.front().installData().installFilePath().contains("habicht")); } void TestApi::generatedFilesList() @@ -1227,7 +1227,7 @@ void TestApi::generatedFilesList() VERIFY_NO_ERROR(buildJob->error()); const qbs::ProjectData projectData = project.projectData(); QCOMPARE(projectData.products().count(), 1); - const qbs::ProductData product = projectData.products().first(); + const qbs::ProductData product = projectData.products().front(); QString uiFilePath; QVERIFY(product.generatedArtifacts().count() >= 6); foreach (const qbs::ArtifactData &a, product.generatedArtifacts()) { @@ -1258,7 +1258,7 @@ void TestApi::generatedFilesList() QVERIFY(!uiFilePath.isEmpty()); const QStringList directParents = project.generatedFiles(product, uiFilePath, false); QCOMPARE(directParents.count(), 1); - const QFileInfo uiHeaderFileInfo(directParents.first()); + const QFileInfo uiHeaderFileInfo(directParents.front()); QCOMPARE(uiHeaderFileInfo.fileName(), QLatin1String("ui_mainwindow.h")); QVERIFY(!uiHeaderFileInfo.exists()); const QStringList allParents = project.generatedFiles(product, uiFilePath, true); @@ -1373,12 +1373,12 @@ void TestApi::installableFiles() project = job->project(); projectData = project.projectData(); QCOMPARE(projectData.allProducts().count(), 1); - product = projectData.allProducts().first(); + product = projectData.allProducts().front(); installableFiles = product.installableArtifacts(); QCOMPARE(installableFiles.count(), 2); foreach (const qbs::ArtifactData &f, installableFiles) QVERIFY(!f.isExecutable()); - QCOMPARE(installableFiles.first().installData().localInstallFilePath(), + QCOMPARE(installableFiles.front().installData().localInstallFilePath(), QLatin1String("/tmp/dir/file1.txt")); QCOMPARE(installableFiles.last().installData().localInstallFilePath(), QLatin1String("/tmp/dir/file2.txt")); @@ -1621,9 +1621,9 @@ void TestApi::missingSourceFile() QVERIFY2(!job->error().hasError(), qPrintable(job->error().toString())); qbs::ProjectData project = job->project().projectData(); QCOMPARE(project.allProducts().count(), 1); - qbs::ProductData product = project.allProducts().first(); + qbs::ProductData product = project.allProducts().front(); QCOMPARE(product.groups().count(), 1); - qbs::GroupData group = product.groups().first(); + qbs::GroupData group = product.groups().front(); QCOMPARE(group.allSourceArtifacts().count(), 2); QFile::rename("file2.txt.missing", "file2.txt"); @@ -1632,9 +1632,9 @@ void TestApi::missingSourceFile() QVERIFY2(!job->error().hasError(), qPrintable(job->error().toString())); project = job->project().projectData(); QCOMPARE(project.allProducts().count(), 1); - product = project.allProducts().first(); + product = project.allProducts().front(); QCOMPARE(product.groups().count(), 1); - group = product.groups().first(); + group = product.groups().front(); QCOMPARE(group.allSourceArtifacts().count(), 3); } @@ -1699,9 +1699,9 @@ void TestApi::multiArch() } QCOMPARE(hostProducts.count(), 2); QCOMPARE(targetProducts.count(), 1); - QCOMPARE(targetProducts.first().name(), QLatin1String("p1")); + QCOMPARE(targetProducts.front().name(), QLatin1String("p1")); QStringList hostProductNames - = QStringList() << hostProducts.first().name() << hostProducts.last().name(); + = QStringList() << hostProducts.front().name() << hostProducts.last().name(); QCOMPARE(hostProductNames.count("p1"), 1); QCOMPARE(hostProductNames.count("p2"), 1); @@ -2095,12 +2095,12 @@ void TestApi::projectDataAfterProductInvalidation() qbs::Project project = setupJob->project(); QVERIFY(project.isValid()); QCOMPARE(project.projectData().products().count(), 1); - QVERIFY(project.projectData().products().first().generatedArtifacts().isEmpty()); + QVERIFY(project.projectData().products().front().generatedArtifacts().isEmpty()); std::unique_ptr<qbs::BuildJob> buildJob(project.buildAllProducts(qbs::BuildOptions())); waitForFinished(buildJob.get()); QVERIFY2(!buildJob->error().hasError(), qPrintable(buildJob->error().toString())); QCOMPARE(project.projectData().products().count(), 1); - const qbs::ProductData productAfterBulding = project.projectData().products().first(); + const qbs::ProductData productAfterBulding = project.projectData().products().front(); QVERIFY(!productAfterBulding.generatedArtifacts().isEmpty()); QFile projectFile(setupParams.projectFilePath()); WAIT_FOR_NEW_TIMESTAMP(); @@ -2118,13 +2118,13 @@ void TestApi::projectDataAfterProductInvalidation() project = setupJob->project(); QVERIFY(project.isValid()); QCOMPARE(project.projectData().products().count(), 1); - QVERIFY(project.projectData().products().first().generatedArtifacts() + QVERIFY(project.projectData().products().front().generatedArtifacts() == productAfterBulding.generatedArtifacts()); buildJob.reset(project.buildAllProducts(qbs::BuildOptions())); waitForFinished(buildJob.get()); QVERIFY2(!buildJob->error().hasError(), qPrintable(buildJob->error().toString())); QCOMPARE(project.projectData().products().count(), 1); - QVERIFY(project.projectData().products().first().generatedArtifacts() + QVERIFY(project.projectData().products().front().generatedArtifacts() != productAfterBulding.generatedArtifacts()); } @@ -2362,7 +2362,7 @@ void TestApi::references() const qbs::ProjectData topLevelProject = job->project().projectData(); QCOMPARE(topLevelProject.subProjects().count(), 1); const QString subProjectFileName - = QFileInfo(topLevelProject.subProjects().first().location().filePath()).fileName(); + = QFileInfo(topLevelProject.subProjects().front().location().filePath()).fileName(); QCOMPARE(subProjectFileName, QString("p.qbs")); } @@ -2576,7 +2576,7 @@ void TestApi::sourceFileInBuildDir() QVERIFY2(!job->error().hasError(), qPrintable(job->error().toString())); const qbs::ProjectData projectData = job->project().projectData(); QCOMPARE(projectData.allProducts().count(), 1); - const qbs::ProductData product = projectData.allProducts().first(); + const qbs::ProductData product = projectData.allProducts().front(); QCOMPARE(product.profile(), profileName()); const qbs::GroupData group = findGroup(product, "the group"); QVERIFY(group.isValid()); @@ -2650,7 +2650,7 @@ void TestApi::toolInModule() const qbs::ProjectData projectData = project.projectData(); const QList<qbs::ProductData> products = projectData.products(); QCOMPARE(products.count(), 1); - const qbs::ProductData product = products.first(); + const qbs::ProductData product = products.front(); for (const qbs::GroupData &group : product.groups()) QVERIFY(group.name() != "thetool binary"); const std::unique_ptr<qbs::BuildJob> buildJob(setupJob->project() diff --git a/tests/auto/cmdlineparser/tst_cmdlineparser.cpp b/tests/auto/cmdlineparser/tst_cmdlineparser.cpp index 0b6963c67..333d949e2 100644 --- a/tests/auto/cmdlineparser/tst_cmdlineparser.cpp +++ b/tests/auto/cmdlineparser/tst_cmdlineparser.cpp @@ -105,19 +105,19 @@ private slots: // Second "global" profile overwrites first. QVERIFY(parser.parseCommandLine(QStringList() << "profile:a" << m_fileArgs << "profile:b")); QCOMPARE(parser.buildConfigurations().count(), 1); - QCOMPARE(parser.buildConfigurations().first().value("qbs.profile").toString(), QLatin1String("b")); + QCOMPARE(parser.buildConfigurations().front().value("qbs.profile").toString(), QLatin1String("b")); // Second build configuration-specific profile overwrites first. QVERIFY(parser.parseCommandLine(QStringList(m_fileArgs) << "config:debug" << "profile:a" << "profile:b")); QCOMPARE(parser.buildConfigurations().count(), 1); - QCOMPARE(parser.buildConfigurations().first().value("qbs.profile").toString(), QLatin1String("b")); + QCOMPARE(parser.buildConfigurations().front().value("qbs.profile").toString(), QLatin1String("b")); QVERIFY(parser.parseCommandLine(QStringList(m_fileArgs) << "config:a-debug" << "profile:a" << "config:b-debug" << "profile:b")); QCOMPARE(parser.buildConfigurations().count(), 2); - QCOMPARE(parser.buildConfigurations().first().value("qbs.configurationName").toString(), QLatin1String("a-debug")); - QCOMPARE(parser.buildConfigurations().first().value("qbs.profile").toString(), QLatin1String("a")); + QCOMPARE(parser.buildConfigurations().front().value("qbs.configurationName").toString(), QLatin1String("a-debug")); + QCOMPARE(parser.buildConfigurations().front().value("qbs.profile").toString(), QLatin1String("a")); QCOMPARE(parser.buildConfigurations().at(1).value("qbs.configurationName").toString(), QLatin1String("b-debug")); QCOMPARE(parser.buildConfigurations().at(1).value("qbs.profile").toString(), QLatin1String("b")); @@ -129,8 +129,8 @@ private slots: QVERIFY(parser.parseCommandLine(QStringList() << "config:debug" << "profile:a" << "config:release" << "profile:b" << m_fileArgs)); QCOMPARE(parser.buildConfigurations().count(), 2); - QCOMPARE(parser.buildConfigurations().first().value("qbs.configurationName").toString(), QLatin1String("debug")); - QCOMPARE(parser.buildConfigurations().first().value("qbs.profile").toString(), QLatin1String("a")); + QCOMPARE(parser.buildConfigurations().front().value("qbs.configurationName").toString(), QLatin1String("debug")); + QCOMPARE(parser.buildConfigurations().front().value("qbs.profile").toString(), QLatin1String("a")); QCOMPARE(parser.buildConfigurations().at(1).value("qbs.configurationName").toString(), QLatin1String("release")); QCOMPARE(parser.buildConfigurations().at(1).value("qbs.profile").toString(), QLatin1String("b")); @@ -138,8 +138,8 @@ private slots: QVERIFY(parser.parseCommandLine(QStringList(m_fileArgs) << "profile:a" << "config:debug" << "profile:b")); QCOMPARE(parser.buildConfigurations().count(), 1); - QCOMPARE(parser.buildConfigurations().first().value("qbs.configurationName").toString(), QLatin1String("debug")); - QCOMPARE(parser.buildConfigurations().first().value("qbs.profile").toString(), QLatin1String("b")); + QCOMPARE(parser.buildConfigurations().front().value("qbs.configurationName").toString(), QLatin1String("debug")); + QCOMPARE(parser.buildConfigurations().front().value("qbs.profile").toString(), QLatin1String("b")); // Digits are always handled as option parameters. QVERIFY(parser.parseCommandLine(QStringList(m_fileArgs) << "-j" << "123")); @@ -152,14 +152,14 @@ private slots: << "-j123")); QCOMPARE(parser.command(), RunCommandType); QCOMPARE(parser.buildOptions(QString()).maxJobCount(), 123); - QCOMPARE(parser.buildConfigurations().first().value("qbs.configurationName").toString(), + QCOMPARE(parser.buildConfigurations().front().value("qbs.configurationName").toString(), QLatin1String("custom")); QVERIFY(parser.runArgs().empty()); QVERIFY(parser.parseCommandLine(QStringList("run") << m_fileArgs << "-j" << "123" << "--" << "config:custom")); QCOMPARE(parser.command(), RunCommandType); QCOMPARE(parser.buildOptions(QString()).maxJobCount(), 123); - QCOMPARE(parser.buildConfigurations().first().value("qbs.configurationName").toString(), + QCOMPARE(parser.buildConfigurations().front().value("qbs.configurationName").toString(), QLatin1String("default")); QCOMPARE(parser.runArgs(), QStringList({"config:custom"})); diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp index e2e8d9409..20e0c1703 100644 --- a/tests/auto/language/tst_language.cpp +++ b/tests/auto/language/tst_language.cpp @@ -296,7 +296,7 @@ void TestLanguage::chainedProbes() const TopLevelProjectConstPtr project = loader->loadProject(parameters); QVERIFY(!!project); QCOMPARE(project->products.count(), 1); - const QString prop2Val = project->products.first()->moduleProperties + const QString prop2Val = project->products.front()->moduleProperties ->moduleProperty("m", "prop2").toString(); QCOMPARE(prop2Val, QLatin1String("probe1Valprobe2Val")); } catch (const ErrorInfo &e) { @@ -595,11 +595,11 @@ void TestLanguage::enumerateProjectProperties() QVERIFY(!!project); auto products = productsFromProject(project); QCOMPARE(products.count(), 1); - auto product = products.values().first(); - auto files = product->groups.first()->allFiles(); + auto product = products.values().front(); + auto files = product->groups.front()->allFiles(); QCOMPARE(product->groups.count(), 1); QCOMPARE(files.count(), 1); - auto fileName = FileInfo::fileName(files.first()->absoluteFilePath); + auto fileName = FileInfo::fileName(files.front()->absoluteFilePath); QCOMPARE(fileName, QString("dummy.txt")); } catch (const ErrorInfo &e) { exceptionCaught = true; @@ -1381,7 +1381,7 @@ void TestLanguage::jsImportUsedInMultipleScopes() QVERIFY(!!project); QHash<QString, ResolvedProductPtr> products = productsFromProject(project); QCOMPARE(products.count(), 1); - ResolvedProductPtr product = products.values().first(); + ResolvedProductPtr product = products.values().front(); QVERIFY(!!product); QCOMPARE(product->name, expectedProductName); } @@ -1886,14 +1886,14 @@ void TestLanguage::outerInGroup() QVERIFY(!!group); QCOMPARE(group->name, product->name); QCOMPARE(group->files.count(), 1); - SourceArtifactConstPtr artifact = group->files.first(); + SourceArtifactConstPtr artifact = group->files.front(); QVariant installDir = artifact->properties->qbsPropertyValue("installDir"); QCOMPARE(installDir.toString(), QString("/somewhere")); group = product->groups.at(1); QVERIFY(!!group); QCOMPARE(group->name, QString("Special Group")); QCOMPARE(group->files.count(), 1); - artifact = group->files.first(); + artifact = group->files.front(); installDir = artifact->properties->qbsPropertyValue("installDir"); QCOMPARE(installDir.toString(), QString("/somewhere/else")); } @@ -1916,7 +1916,7 @@ void TestLanguage::overriddenPropertiesAndPrototypes() TopLevelProjectConstPtr project = loader->loadProject(params); QVERIFY(!!project); QCOMPARE(project->products.count(), 1); - QCOMPARE(project->products.first()->moduleProperties->moduleProperty( + QCOMPARE(project->products.front()->moduleProperties->moduleProperty( "multiple-backends", "prop").toString(), backendName); } catch (const ErrorInfo &e) { @@ -2004,12 +2004,12 @@ void TestLanguage::profileValuesAndOverriddenValues() QVariantList values; values = product->moduleProperties->moduleProperty("dummy", "cxxFlags").toList(); QCOMPARE(values.length(), 1); - QCOMPARE(values.first().toString(), QString("IN_PROFILE")); + QCOMPARE(values.front().toString(), QString("IN_PROFILE")); values = product->moduleProperties->moduleProperty("dummy", "defines").toList(); QCOMPARE(values, QVariantList() << QLatin1String("IN_FILE") << QLatin1String("IN_PROFILE")); values = product->moduleProperties->moduleProperty("dummy", "cFlags").toList(); QCOMPARE(values.length(), 1); - QCOMPARE(values.first().toString(), QString("OVERRIDDEN")); + QCOMPARE(values.front().toString(), QString("OVERRIDDEN")); } catch (const ErrorInfo &e) { exceptionCaught = true; qDebug() << e.toString(); @@ -2261,7 +2261,7 @@ void TestLanguage::propertiesBlockInGroup() const TopLevelProjectPtr project = loader->loadProject(defaultParameters); QVERIFY(!!project); QCOMPARE(project->allProducts().count(), 1); - const ResolvedProductConstPtr product = project->allProducts().first(); + const ResolvedProductConstPtr product = project->allProducts().front(); const auto groupIt = std::find_if(product->groups.constBegin(), product->groups.constEnd(), [](const GroupConstPtr &g) { return g->name == "the group"; }); QVERIFY(groupIt != product->groups.constEnd()); @@ -2376,8 +2376,8 @@ void TestLanguage::relaxedErrorMode() const ResolvedProductConstPtr missingFile = productMap.value("missing file"); QVERIFY(missingFile->enabled); QCOMPARE(missingFile->groups.count(), 1); - QVERIFY(missingFile->groups.first()->enabled); - QCOMPARE(missingFile->groups.first()->allFiles().count(), 2); + QVERIFY(missingFile->groups.front()->enabled); + QCOMPARE(missingFile->groups.front()->allFiles().count(), 2); const ResolvedProductConstPtr fine = productMap.value("fine"); QVERIFY(fine->enabled); QCOMPARE(fine->allFiles().count(), 1); @@ -2530,7 +2530,7 @@ void TestLanguage::fileTags() GroupPtr group = product->groups.last(); QVERIFY(!!group); QCOMPARE(group->files.count(), 1); - SourceArtifactConstPtr sourceFile = group->files.first(); + SourceArtifactConstPtr sourceFile = group->files.front(); QStringList fileTags = sourceFile->fileTags.toStringList(); fileTags.sort(); QCOMPARE(fileTags, expectedFileTags); @@ -2753,7 +2753,7 @@ void TestLanguage::wildcards() } } else { QCOMPARE(product->groups.count(), HostOsInfo::isMacosHost() ? 2 : 1); - group = product->groups.first(); + group = product->groups.front(); } QVERIFY(!!group); QCOMPARE(group->files.count(), 0); diff --git a/tests/benchmarker/commandlineparser.cpp b/tests/benchmarker/commandlineparser.cpp index f33fdcaf4..115288f11 100644 --- a/tests/benchmarker/commandlineparser.cpp +++ b/tests/benchmarker/commandlineparser.cpp @@ -75,9 +75,9 @@ void CommandLineParser::parse() << oldCommitOption << newCommitOption << testProjectOption << qbsRepoOption; foreach (const QCommandLineOption &o, mandatoryOptions) { if (!parser.isSet(o)) - throwException(o.names().first(), parser.helpText()); + throwException(o.names().front(), parser.helpText()); if (parser.value(o).isEmpty()) - throwException(o.names().first(), QString(), parser.helpText()); + throwException(o.names().front(), QString(), parser.helpText()); } m_oldCommit = parser.value(oldCommitOption); m_newCommit = parser.value(newCommitOption); @@ -96,7 +96,7 @@ void CommandLineParser::parse() } else if (activityString == nullBuildActivity()) { m_activities |= ActivityNullBuild; } else { - throwException(activitiesOption.names().first(), activityString, parser.helpText()); + throwException(activitiesOption.names().front(), activityString, parser.helpText()); } } m_regressionThreshold = 5; |