summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2014-06-06 13:12:47 +0200
committerDaniel Teske <daniel.teske@digia.com>2014-06-16 14:26:03 +0200
commit5a30007e45e93ff37e021dd9de00098789586004 (patch)
tree3ce7124e85004f8843b0d9583aaa3947ef7d0362 /src/plugins
parentc78258cd57abac4a593965c1d759c0b877f9f1c7 (diff)
downloadqt-creator-5a30007e45e93ff37e021dd9de00098789586004.tar.gz
ProjectExplorer: Use more algorithms
Make heavy use of lambdas Change-Id: I53197d0ffb4ae8eec076f15335cc22b74e1def1d Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/coreplugin/mimedatabase.cpp10
-rw-r--r--src/plugins/projectexplorer/allprojectsfind.cpp11
-rw-r--r--src/plugins/projectexplorer/appoutputpane.cpp15
-rw-r--r--src/plugins/projectexplorer/buildconfiguration.cpp38
-rw-r--r--src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp6
-rw-r--r--src/plugins/projectexplorer/project.cpp26
-rw-r--r--src/plugins/qtsupport/baseqtversion.cpp19
-rw-r--r--src/plugins/qtsupport/exampleslistmodel.cpp30
-rw-r--r--src/plugins/qtsupport/qtoptionspage.cpp13
9 files changed, 73 insertions, 95 deletions
diff --git a/src/plugins/coreplugin/mimedatabase.cpp b/src/plugins/coreplugin/mimedatabase.cpp
index 77b90b861b..75276d49eb 100644
--- a/src/plugins/coreplugin/mimedatabase.cpp
+++ b/src/plugins/coreplugin/mimedatabase.cpp
@@ -32,6 +32,7 @@
#include "icore.h"
#include <utils/qtcassert.h>
+#include <utils/algorithm.h>
#include <QByteArray>
#include <QCoreApplication>
@@ -50,7 +51,6 @@
#include <QXmlStreamReader>
#include <QXmlStreamWriter>
-#include <algorithm>
#include <functional>
enum { debugMimeDB = 0 };
@@ -898,16 +898,14 @@ struct RemovePred : std::unary_function<MimeType::IMagicMatcherSharedPointer, bo
MimeType::IMagicMatcherList MimeType::magicRuleMatchers() const
{
IMagicMatcherList ruleMatchers = m_d->magicMatchers;
- ruleMatchers.erase(std::remove_if(ruleMatchers.begin(), ruleMatchers.end(), RemovePred(true)),
- ruleMatchers.end());
+ Utils::erase(ruleMatchers, RemovePred(true));
return ruleMatchers;
}
void MimeType::setMagicRuleMatchers(const IMagicMatcherList &matchers)
{
- m_d->magicMatchers.erase(std::remove_if(m_d->magicMatchers.begin(), m_d->magicMatchers.end(),
- RemovePred(false)),
- m_d->magicMatchers.end());
+ Utils::erase(m_d->magicMatchers, RemovePred(false));
+
m_d->magicMatchers.append(matchers);
}
diff --git a/src/plugins/projectexplorer/allprojectsfind.cpp b/src/plugins/projectexplorer/allprojectsfind.cpp
index 891480a651..f3483e6719 100644
--- a/src/plugins/projectexplorer/allprojectsfind.cpp
+++ b/src/plugins/projectexplorer/allprojectsfind.cpp
@@ -36,6 +36,7 @@
#include <texteditor/itexteditor.h>
#include <utils/filesearch.h>
+#include <utils/algorithm.h>
#include <QSettings>
#include <QRegExp>
@@ -90,11 +91,11 @@ Utils::FileIterator *AllProjectsFind::filesForProjects(const QStringList &nameFi
QStringList filteredFiles;
if (!filterRegs.isEmpty()) {
foreach (const QString &file, projectFiles) {
- foreach (QRegExp reg, filterRegs) {
- if (reg.exactMatch(file) || reg.exactMatch(QFileInfo(file).fileName())) {
- filteredFiles.append(file);
- break;
- }
+ if (Utils::anyOf(filterRegs,
+ [&file](QRegExp reg) {
+ return (reg.exactMatch(file) || reg.exactMatch(QFileInfo(file).fileName()));
+ })) {
+ filteredFiles.append(file);
}
}
} else {
diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp
index f2b7136a26..6a79a9c095 100644
--- a/src/plugins/projectexplorer/appoutputpane.cpp
+++ b/src/plugins/projectexplorer/appoutputpane.cpp
@@ -43,6 +43,7 @@
#include <extensionsystem/invoker.h>
#include <utils/qtcassert.h>
+#include <utils/algorithm.h>
#include <QAction>
#include <QVBoxLayout>
@@ -231,10 +232,9 @@ void AppOutputPane::updateCloseActions()
bool AppOutputPane::aboutToClose() const
{
- foreach (const RunControlTab &rt, m_runControlTabs)
- if (rt.runControl->isRunning() && !rt.runControl->promptToStop())
- return false;
- return true;
+ return Utils::allOf(m_runControlTabs, [](const RunControlTab &rt) {
+ return !rt.runControl->isRunning() || rt.runControl->promptToStop();
+ });
}
void AppOutputPane::aboutToUnloadSession()
@@ -599,10 +599,9 @@ void AppOutputPane::slotRunControlFinished2(RunControl *sender)
bool AppOutputPane::isRunning() const
{
- foreach (const RunControlTab &rt, m_runControlTabs)
- if (rt.runControl->isRunning())
- return true;
- return false;
+ return Utils::anyOf(m_runControlTabs, [](const RunControlTab &rt) {
+ return rt.runControl->isRunning();
+ });
}
bool AppOutputPane::canNext() const
diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index e4d4bc5485..2e16db3081 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -42,6 +42,7 @@
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
+#include <utils/algorithm.h>
#include <QDebug>
@@ -154,10 +155,9 @@ Utils::AbstractMacroExpander *BuildConfiguration::macroExpander()
QList<Core::Id> BuildConfiguration::knownStepLists() const
{
- QList<Core::Id> result;
- foreach (BuildStepList *list, m_stepLists)
- result.append(list->id());
- return result;
+ return Utils::transform(m_stepLists, [](BuildStepList *list) {
+ return list->id();
+ });
}
BuildStepList *BuildConfiguration::stepList(Core::Id id) const
@@ -344,16 +344,11 @@ IBuildConfigurationFactory *IBuildConfigurationFactory::find(Kit *k, const QStri
{
QList<IBuildConfigurationFactory *> factories
= ExtensionSystem::PluginManager::instance()->getObjects<IBuildConfigurationFactory>();
- IBuildConfigurationFactory *factory = 0;
- int priority = -1;
- foreach (IBuildConfigurationFactory *i, factories) {
- int iPriority = i->priority(k, projectPath);
- if (iPriority > priority) {
- factory = i;
- priority = iPriority;
- }
- }
- return factory;
+
+ return Utils::maxElementOr(factories, 0,
+ [&k, &projectPath](IBuildConfigurationFactory *a, IBuildConfigurationFactory *b) {
+ return a->priority(k, projectPath) > b->priority(k, projectPath);
+ });
}
// create
@@ -361,16 +356,11 @@ IBuildConfigurationFactory * IBuildConfigurationFactory::find(Target *parent)
{
QList<IBuildConfigurationFactory *> factories
= ExtensionSystem::PluginManager::getObjects<IBuildConfigurationFactory>();
- IBuildConfigurationFactory *factory = 0;
- int priority = -1;
- foreach (IBuildConfigurationFactory *i, factories) {
- int iPriority = i->priority(parent);
- if (iPriority > priority) {
- factory = i;
- priority = iPriority;
- }
- }
- return factory;
+
+ return Utils::maxElementOr(factories, 0,
+ [&parent](IBuildConfigurationFactory *a, IBuildConfigurationFactory *b) {
+ return a->priority(parent) > b->priority(parent);
+ });
}
// clone
diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp
index eb79641f08..4015fca851 100644
--- a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp
+++ b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp
@@ -42,6 +42,7 @@
#include <coreplugin/icore.h>
#include <extensionsystem/pluginmanager.h>
#include <utils/qtcassert.h>
+#include <utils/algorithm.h>
#include <QPixmap>
#include <QPushButton>
@@ -118,8 +119,9 @@ void DeviceSettingsWidget::initGui()
const QList<IDeviceFactory *> &factories
= ExtensionSystem::PluginManager::getObjects<IDeviceFactory>();
- bool hasDeviceFactories = std::any_of(factories.constBegin(), factories.constEnd(),
- [](IDeviceFactory *factory) { return factory->canCreate(); });
+ bool hasDeviceFactories = Utils::anyOf(factories, [](IDeviceFactory *factory) {
+ return factory->canCreate();
+ });
m_ui->addConfigButton->setEnabled(hasDeviceFactories);
diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp
index 207ce827f5..54c2ff783f 100644
--- a/src/plugins/projectexplorer/project.cpp
+++ b/src/plugins/projectexplorer/project.cpp
@@ -43,6 +43,7 @@
#include <projectexplorer/kitmanager.h>
#include <limits>
#include <utils/qtcassert.h>
+#include <utils/algorithm.h>
/*!
\class ProjectExplorer::Project
@@ -226,20 +227,16 @@ void Project::setActiveTarget(Target *target)
Target *Project::target(const Core::Id id) const
{
- foreach (Target *target, d->m_targets) {
- if (target->id() == id)
- return target;
- }
- return 0;
+ return Utils::findOr(d->m_targets, 0, [&id](Target *target) {
+ return target->id() == id;
+ });
}
Target *Project::target(Kit *k) const
{
- foreach (Target *target, d->m_targets) {
- if (target->kit() == k)
- return target;
- }
- return 0;
+ return Utils::findOr(d->m_targets, 0, [&k](Target *target) {
+ return target->kit() == k;
+ });
}
bool Project::supportsKit(Kit *k, QString *errorMessage) const
@@ -501,12 +498,9 @@ void Project::setup(QList<const BuildInfo *> infoList)
continue;
Target *t = target(k);
if (!t) {
- foreach (Target *i, toRegister) {
- if (i->kit() == k) {
- t = i;
- break;
- }
- }
+ t = Utils::findOr(toRegister, 0, [&k](Target *i){
+ return i->kit() == k;
+ });
}
if (!t) {
t = new Target(this, k);
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index 200377bc46..c56eaa207f 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -49,6 +49,7 @@
#include <utils/runextensions.h>
#include <utils/synchronousprocess.h>
#include <utils/winutils.h>
+#include <utils/algorithm.h>
#include <QDir>
#include <QUrl>
@@ -479,16 +480,14 @@ QStringList BaseQtVersion::warningReason() const
ToolChain *BaseQtVersion::preferredToolChain(const FileName &ms) const
{
const FileName spec = ms.isEmpty() ? mkspec() : ms;
- ToolChain *possibleTc = 0;
- foreach (ToolChain *tc, ToolChainManager::toolChains()) {
- if (!qtAbis().contains(tc->targetAbi()))
- continue;
- if (tc->suggestedMkspecList().contains(spec))
- return tc; // perfect match
- if (!possibleTc)
- possibleTc = tc; // first possible match
- }
- return possibleTc;
+
+ QList<ToolChain *> toolchains = ToolChainManager::toolChains();
+ return Utils::findOr(toolchains,
+ toolchains.isEmpty() ? 0 : toolchains.first(),
+ [&spec, this](ToolChain *tc) {
+ return qtAbis().contains(tc->targetAbi())
+ && tc->suggestedMkspecList().contains(spec);
+ });
}
FileName BaseQtVersion::qmakeCommand() const
diff --git a/src/plugins/qtsupport/exampleslistmodel.cpp b/src/plugins/qtsupport/exampleslistmodel.cpp
index b30e6b1cf6..40a909893d 100644
--- a/src/plugins/qtsupport/exampleslistmodel.cpp
+++ b/src/plugins/qtsupport/exampleslistmodel.cpp
@@ -41,6 +41,7 @@
#include <qtsupport/qtversionmanager.h>
#include <utils/environment.h>
#include <utils/qtcassert.h>
+#include <utils/algorithm.h>
#include <algorithm>
@@ -262,11 +263,9 @@ static QString fixStringForTags(const QString &string)
static QStringList trimStringList(const QStringList &stringlist)
{
- QStringList returnList;
- foreach (const QString &string, stringlist)
- returnList << string.trimmed();
-
- return returnList;
+ return Utils::transform(stringlist, [](const QString &string) {
+ return string.trimmed();
+ });
}
static QString relativeOrInstallPath(const QString &path, const QString &manifestPath,
@@ -540,13 +539,12 @@ void ExamplesListModel::updateQtVersions()
// try to select the previously selected Qt version, or
// select examples corresponding to 'highest' Qt version
int currentQtId = m_exampleSetModel->getQtId(currentIndex);
- BaseQtVersion *newQtVersion = 0;
- foreach (BaseQtVersion *version, m_qtVersions) {
- if (version->uniqueId() == currentQtId) {
- newQtVersion = version;
- break;
- }
- }
+ BaseQtVersion *newQtVersion = Utils::findOr(m_qtVersions,
+ 0,
+ [&currentQtId](BaseQtVersion *version) {
+ return version->uniqueId() == currentQtId;
+ });
+
if (!newQtVersion)
newQtVersion = findHighestQtVersion();
currentIndex = m_exampleSetModel->indexForQtVersion(newQtVersion);
@@ -753,11 +751,9 @@ void ExamplesListModelFilter::updateFilter()
bool containsSubString(const QStringList &list, const QString &substr, Qt::CaseSensitivity cs)
{
- foreach (const QString &elem, list)
- if (elem.contains(substr, cs))
- return true;
-
- return false;
+ return Utils::contains(list, [&substr, &cs](const QString &elem) {
+ return elem.contains(substr, cs);
+ });
}
bool ExamplesListModelFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index 6e1da5f4a5..7397f56f87 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -45,6 +45,7 @@
#include <utils/pathchooser.h>
#include <utils/qtcassert.h>
#include <utils/runextensions.h>
+#include <utils/algorithm.h>
#include <QDir>
#include <QMessageBox>
@@ -609,13 +610,11 @@ void QtOptionsPageWidget::addQtDir()
if (BuildableHelperLibrary::isQtChooser(fi))
qtVersion = FileName::fromString(BuildableHelperLibrary::qtChooserToQmakePath(fi.symLinkTarget()));
- BaseQtVersion *version = 0;
- foreach (BaseQtVersion *v, m_versions) {
- if (v->qmakeCommand() == qtVersion) {
- version = v;
- break;
- }
- }
+ BaseQtVersion *version = Utils::findOr(m_versions,
+ 0,
+ [&qtVersion](BaseQtVersion *v) {
+ return v->qmakeCommand() == qtVersion;
+ });
if (version) {
// Already exist
QMessageBox::warning(this, tr("Qt Version Already Known"),