aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-07-24 13:43:54 +0200
committerhjk <hjk@qt.io>2019-07-29 08:54:18 +0000
commite3b1106afae5de6cd54ce627a0b11be041624591 (patch)
treeaccfac6791013e79476650b6dd840d5cf243e12b
parent02e224fcfa7135f1e32adb02a14426ea153ae618 (diff)
Compile fix with recent Qt dev
The reasoning in 1b4766e26c6b did not take into account that the scope of QT_NO_JAVA_STYLE_ITERATORS may change over time, as done with f70905448f6 in Qt base. Change-Id: Ib1966ff26c4d36d5f62e149d6b45baa4aecf825d Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp9
-rw-r--r--src/libs/cplusplus/ResolveExpression.cpp14
-rw-r--r--src/libs/extensionsystem/pluginmanager.cpp20
-rw-r--r--src/libs/extensionsystem/pluginspec.cpp4
-rw-r--r--src/libs/qmljs/persistenttrie.cpp5
-rw-r--r--src/libs/qmljs/qmljscheck.cpp5
-rw-r--r--src/libs/qmljs/qmljsimportdependencies.cpp20
-rw-r--r--src/libs/qmljs/qmljsinterpreter.cpp54
-rw-r--r--src/libs/qmljs/qmljslink.cpp23
-rw-r--r--src/libs/qmljs/qmljsmodelmanagerinterface.cpp33
-rw-r--r--src/libs/qmljs/qmljsmodelmanagerinterface.h1
-rw-r--r--src/libs/utils/changeset.cpp10
-rw-r--r--src/libs/utils/changeset.h2
-rw-r--r--src/libs/utils/fancymainwindow.cpp7
-rw-r--r--src/libs/utils/macroexpander.cpp5
-rw-r--r--src/libs/utils/mimetypes/mimeglobpattern.cpp7
-rw-r--r--src/libs/utils/mimetypes/mimeglobpattern_p.h9
-rw-r--r--src/libs/utils/mimetypes/mimeprovider.cpp14
-rw-r--r--src/plugins/clangcodemodel/clangbackendreceiver.cpp11
-rw-r--r--src/plugins/clangcodemodel/clangfixitoperation.cpp5
-rw-r--r--src/plugins/clangtools/clangtoolruncontrol.cpp4
-rw-r--r--src/plugins/coreplugin/actionmanager/actioncontainer.cpp16
-rw-r--r--src/plugins/coreplugin/actionmanager/command.cpp13
-rw-r--r--src/plugins/coreplugin/dialogs/externaltoolconfig.cpp22
-rw-r--r--src/plugins/coreplugin/documentmanager.cpp33
-rw-r--r--src/plugins/coreplugin/externaltoolmanager.cpp22
-rw-r--r--src/plugins/coreplugin/helpitem.cpp5
-rw-r--r--src/plugins/coreplugin/progressmanager/progressmanager.cpp4
-rw-r--r--src/plugins/coreplugin/settingsdatabase.cpp5
-rw-r--r--src/plugins/coreplugin/sidebar.cpp11
-rw-r--r--src/plugins/coreplugin/toolsettings.cpp8
-rw-r--r--src/plugins/cppeditor/cppcodemodelinspectordialog.cpp5
-rw-r--r--src/plugins/cppeditor/cppfunctiondecldeflink.cpp5
-rw-r--r--src/plugins/cppeditor/cppquickfixes.cpp6
-rw-r--r--src/plugins/cpptools/builtincursorinfo.cpp4
-rw-r--r--src/plugins/cpptools/cppcodemodelinspectordumper.cpp5
-rw-r--r--src/plugins/cpptools/cpplocalsymbols_test.cpp4
-rw-r--r--src/plugins/cpptools/cpplocatordata.cpp7
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp33
-rw-r--r--src/plugins/cpptools/cppmodelmanager_test.cpp7
-rw-r--r--src/plugins/cpptools/cppsemanticinfo.h1
-rw-r--r--src/plugins/cpptools/cppworkingcopy.h6
-rw-r--r--src/plugins/debugger/gdb/gdbengine.cpp4
-rw-r--r--src/plugins/debugger/qml/qmlengine.cpp6
-rw-r--r--src/plugins/debugger/watchhandler.cpp59
-rw-r--r--src/plugins/debugger/watchhandler.h4
-rw-r--r--src/plugins/designer/qtcreatorintegration.cpp8
-rw-r--r--src/plugins/fakevim/fakevimhandler.cpp12
-rw-r--r--src/plugins/git/gerrit/gerritremotechooser.cpp6
-rw-r--r--src/plugins/ios/iosconfigurations.cpp5
-rw-r--r--src/plugins/ios/iosdevice.cpp17
-rw-r--r--src/plugins/macros/macroevent.cpp5
-rw-r--r--src/plugins/macros/macrolocatorfilter.cpp4
-rw-r--r--src/plugins/macros/macrooptionswidget.cpp10
-rw-r--r--src/plugins/perforce/perforcesubmiteditor.cpp5
-rw-r--r--src/plugins/projectexplorer/codestylesettingspropertiespage.cpp7
-rw-r--r--src/plugins/projectexplorer/editorconfiguration.cpp12
-rw-r--r--src/plugins/projectexplorer/userfileaccessor.cpp4
-rw-r--r--src/plugins/qmljseditor/qmljsfindreferences.cpp5
-rw-r--r--src/plugins/qmljseditor/qmljswrapinloader.cpp4
-rw-r--r--src/plugins/qmljstools/qmljsfunctionfilter.cpp7
-rw-r--r--src/plugins/qtsupport/screenshotcropper.cpp4
-rw-r--r--src/plugins/scxmleditor/plugin_interface/scxmldocument.cpp20
-rw-r--r--src/plugins/scxmleditor/plugin_interface/scxmltag.cpp5
-rw-r--r--src/plugins/texteditor/basefilefind.cpp8
-rw-r--r--src/plugins/texteditor/colorscheme.cpp5
-rw-r--r--src/plugins/texteditor/texteditorsettings.cpp2
-rw-r--r--src/plugins/texteditor/texteditorsettings.h2
-rw-r--r--src/plugins/todo/todoitemsprovider.cpp8
-rw-r--r--src/tools/clangbackend/source/clangjobqueue.cpp7
70 files changed, 238 insertions, 491 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp
index 3dbb2cb79b..af5bea0f88 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp
@@ -587,13 +587,8 @@ QList<ServerNodeInstance> NodeInstanceServer::setupInstances(const CreateSceneCo
setInstanceAuxiliaryData(container);
}
-
- QListIterator<ServerNodeInstance> instanceListIterator(instanceList);
- instanceListIterator.toBack();
- while (instanceListIterator.hasPrevious()) {
- ServerNodeInstance instance = instanceListIterator.previous();
- instance.doComponentComplete();
- }
+ for (int i = instanceList.size(); --i >= 0; )
+ instanceList[i].doComponentComplete();
return instanceList;
}
diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp
index a513a02693..9dbeebc5ea 100644
--- a/src/libs/cplusplus/ResolveExpression.cpp
+++ b/src/libs/cplusplus/ResolveExpression.cpp
@@ -581,18 +581,14 @@ bool ResolveExpression::visit(UnaryExpressionAST *ast)
accept(ast->expression);
unsigned unaryOp = tokenKind(ast->unary_op_token);
if (unaryOp == T_AMPER) {
- QMutableListIterator<LookupItem > it(_results);
- while (it.hasNext()) {
- LookupItem p = it.next();
+ for (LookupItem &p : _results) {
FullySpecifiedType ty = p.type();
ty.setType(control()->pointerType(ty));
p.setType(ty);
- it.setValue(p);
}
} else if (unaryOp == T_STAR) {
- QMutableListIterator<LookupItem > it(_results);
- while (it.hasNext()) {
- LookupItem p = it.next();
+ for (int i = 0; i < _results.size(); ++i) {
+ LookupItem &p = _results[i];
FullySpecifiedType ty = p.type();
NamedType *namedTy = ty->asNamedType();
if (namedTy != 0) {
@@ -603,7 +599,6 @@ bool ResolveExpression::visit(UnaryExpressionAST *ast)
bool added = false;
if (PointerType *ptrTy = ty->asPointerType()) {
p.setType(ptrTy->elementType());
- it.setValue(p);
added = true;
} else if (namedTy != 0) {
const Name *starOp = control()->operatorNameId(OperatorNameId::StarOp);
@@ -616,7 +611,6 @@ bool ResolveExpression::visit(UnaryExpressionAST *ast)
FullySpecifiedType retTy = proto->returnType().simplified();
p.setType(retTy);
p.setScope(proto->enclosingScope());
- it.setValue(p);
added = true;
break;
}
@@ -626,7 +620,7 @@ bool ResolveExpression::visit(UnaryExpressionAST *ast)
}
}
if (!added)
- it.remove();
+ _results.removeAt(i--);
}
}
return false;
diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp
index d24e7429db..e5633e860b 100644
--- a/src/libs/extensionsystem/pluginmanager.cpp
+++ b/src/libs/extensionsystem/pluginmanager.cpp
@@ -390,9 +390,8 @@ QSet<PluginSpec *> PluginManager::pluginsRequiredByPlugin(PluginSpec *spec)
while (!queue.empty()) {
PluginSpec *checkSpec = queue.front();
queue.pop();
- QHashIterator<PluginDependency, PluginSpec *> depIt(checkSpec->dependencySpecs());
- while (depIt.hasNext()) {
- depIt.next();
+ const QHash<PluginDependency, PluginSpec *> deps = checkSpec->dependencySpecs();
+ for (auto depIt = deps.cbegin(), end = deps.cend(); depIt != end; ++depIt) {
if (depIt.key().type != PluginDependency::Required)
continue;
PluginSpec *depSpec = depIt.value();
@@ -933,7 +932,6 @@ void PluginManagerPrivate::deleteAll()
#ifdef WITH_TESTS
using TestPlan = QMap<QObject *, QStringList>; // Object -> selected test functions
-using TestPlanIterator = QMapIterator<QObject *, QStringList>;
static bool isTestFunction(const QMetaMethod &metaMethod)
{
@@ -1019,9 +1017,7 @@ static int executeTestPlan(const TestPlan &testPlan)
{
int failedTests = 0;
- TestPlanIterator it(testPlan);
- while (it.hasNext()) {
- it.next();
+ for (auto it = testPlan.cbegin(), end = testPlan.cend(); it != end; ++it) {
QObject *testObject = it.key();
QStringList functions = it.value();
@@ -1326,9 +1322,8 @@ bool PluginManagerPrivate::loadQueue(PluginSpec *spec,
}
// add dependencies
- QHashIterator<PluginDependency, PluginSpec *> it(spec->dependencySpecs());
- while (it.hasNext()) {
- it.next();
+ const QHash<PluginDependency, PluginSpec *> deps = spec->dependencySpecs();
+ for (auto it = deps.cbegin(), end = deps.cend(); it != end; ++it) {
// Skip test dependencies since they are not real dependencies but just force-loaded
// plugins when running tests
if (it.key().type == PluginDependency::Test)
@@ -1374,9 +1369,8 @@ void PluginManagerPrivate::loadPlugin(PluginSpec *spec, PluginSpec::State destSt
break;
}
// check if dependencies have loaded without error
- QHashIterator<PluginDependency, PluginSpec *> it(spec->dependencySpecs());
- while (it.hasNext()) {
- it.next();
+ const QHash<PluginDependency, PluginSpec *> deps = spec->dependencySpecs();
+ for (auto it = deps.cbegin(), end = deps.cend(); it != end; ++it) {
if (it.key().type != PluginDependency::Required)
continue;
PluginSpec *depSpec = it.value();
diff --git a/src/libs/extensionsystem/pluginspec.cpp b/src/libs/extensionsystem/pluginspec.cpp
index b8d0643982..4f1c2683e9 100644
--- a/src/libs/extensionsystem/pluginspec.cpp
+++ b/src/libs/extensionsystem/pluginspec.cpp
@@ -929,9 +929,7 @@ QVector<PluginSpec *> PluginSpecPrivate::enableDependenciesIndirectly(bool enabl
if (!q->isEffectivelyEnabled()) // plugin not enabled, nothing to do
return {};
QVector<PluginSpec *> enabled;
- QHashIterator<PluginDependency, PluginSpec *> it(dependencySpecs);
- while (it.hasNext()) {
- it.next();
+ for (auto it = dependencySpecs.cbegin(), end = dependencySpecs.cend(); it != end; ++it) {
if (it.key().type != PluginDependency::Required
&& (!enableTestDependencies || it.key().type != PluginDependency::Test))
continue;
diff --git a/src/libs/qmljs/persistenttrie.cpp b/src/libs/qmljs/persistenttrie.cpp
index 08c17dd164..edc3015099 100644
--- a/src/libs/qmljs/persistenttrie.cpp
+++ b/src/libs/qmljs/persistenttrie.cpp
@@ -286,12 +286,9 @@ public:
ReplaceInTrie() { }
void operator()(QString s)
{
- QHashIterator<QString, QString> i(replacements);
QString res = s;
- while (i.hasNext()) {
- i.next();
+ for (auto i = replacements.cbegin(), end = replacements.cend(); i != end; ++i)
res.replace(i.key(), i.value());
- }
trie = TrieNode::insertF(trie,res);
}
};
diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp
index cd6d024443..e509e3db42 100644
--- a/src/libs/qmljs/qmljscheck.cpp
+++ b/src/libs/qmljs/qmljscheck.cpp
@@ -1577,9 +1577,8 @@ void Check::scanCommentsForAnnotations()
void Check::warnAboutUnnecessarySuppressions()
{
- QHashIterator< int, QList<MessageTypeAndSuppression> > it(m_disabledMessageTypesByLine);
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_disabledMessageTypesByLine.cbegin(), end = m_disabledMessageTypesByLine.cend();
+ it != end; ++it) {
foreach (const MessageTypeAndSuppression &entry, it.value()) {
if (!entry.wasSuppressed)
addMessage(WarnUnnecessaryMessageSuppression, entry.suppressionSource);
diff --git a/src/libs/qmljs/qmljsimportdependencies.cpp b/src/libs/qmljs/qmljsimportdependencies.cpp
index 5a48c42a4d..e5d0161665 100644
--- a/src/libs/qmljs/qmljsimportdependencies.cpp
+++ b/src/libs/qmljs/qmljsimportdependencies.cpp
@@ -584,10 +584,8 @@ void ImportDependencies::filter(const ViewerContext &vContext)
{
QMap<QString, CoreImport> newCoreImports;
QMap<ImportKey, QStringList> newImportCache;
- QMapIterator<QString, CoreImport> j(m_coreImports);
bool hasChanges = false;
- while (j.hasNext()) {
- j.next();
+ for (auto j = m_coreImports.cbegin(), end = m_coreImports.cend(); j != end; ++j) {
const CoreImport &cImport = j.value();
if (vContext.languageIsCompatible(cImport.language)) {
QList<Export> newExports;
@@ -923,10 +921,8 @@ QSet<ImportKey> ImportDependencies::subdirImports(
void ImportDependencies::checkConsistency() const
{
- QMapIterator<ImportKey, QStringList> j(m_importCache);
- while (j.hasNext()) {
- j.next();
- foreach (const QString &s, j.value()) {
+ for (auto j = m_importCache.cbegin(), end = m_importCache.cend(); j != end; ++j) {
+ for (const QString &s : j.value()) {
bool found = false;
foreach (const Export &e, m_coreImports.value(s).possibleExports)
if (e.exportName == j.key())
@@ -934,19 +930,15 @@ void ImportDependencies::checkConsistency() const
Q_ASSERT(found); Q_UNUSED(found)
}
}
- QMapIterator<QString,CoreImport> i(m_coreImports);
- while (i.hasNext()) {
- i.next();
+ for (auto i = m_coreImports.cbegin(), end = m_coreImports.cend(); i != end; ++i) {
foreach (const Export &e, i.value().possibleExports) {
if (!m_importCache.value(e.exportName).contains(i.key())) {
qCWarning(importsLog) << e.exportName.toString();
qCWarning(importsLog) << i.key();
- QMapIterator<ImportKey, QStringList> j(m_importCache);
- while (j.hasNext()) {
- j.next();
+ for (auto j = m_importCache.cbegin(), end = m_importCache.cend(); j != end; ++j)
qCWarning(importsLog) << j.key().toString() << j.value();
- }
+
qCWarning(importsLog) << m_importCache.contains(e.exportName);
qCWarning(importsLog) << m_importCache.value(e.exportName);
}
diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 91f195f8fc..21a19c7ca8 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -1098,11 +1098,7 @@ bool ObjectValue::checkPrototype(const ObjectValue *, QSet<const ObjectValue *>
void ObjectValue::processMembers(MemberProcessor *processor) const
{
- QHashIterator<QString, PropertyData> it(m_members);
-
- while (it.hasNext()) {
- it.next();
-
+ for (auto it = m_members.cbegin(), end = m_members.cend(); it != end; ++it) {
if (! processor->processProperty(it.key(), it.value().value, it.value().propertyInfo))
break;
}
@@ -2359,10 +2355,9 @@ TypeScope::TypeScope(const Imports *imports, ValueOwner *valueOwner)
const Value *TypeScope::lookupMember(const QString &name, const Context *context,
const ObjectValue **foundInObject, bool) const
{
- QListIterator<Import> it(m_imports->all());
- it.toBack();
- while (it.hasPrevious()) {
- const Import &i = it.previous();
+ const QList<Import> &imports = m_imports->all();
+ for (int pos = imports.size(); --pos >= 0; ) {
+ const Import &i = imports.at(pos);
const ObjectValue *import = i.object;
const ImportInfo &info = i.info;
@@ -2374,7 +2369,7 @@ const Value *TypeScope::lookupMember(const QString &name, const Context *context
if (info.as() == name) {
if (foundInObject)
*foundInObject = this;
- i.used = true;
+ i.used = true; // FIXME: This evilly modifies a 'const' object
return import;
}
continue;
@@ -2392,10 +2387,9 @@ const Value *TypeScope::lookupMember(const QString &name, const Context *context
void TypeScope::processMembers(MemberProcessor *processor) const
{
- QListIterator<Import> it(m_imports->all());
- it.toBack();
- while (it.hasPrevious()) {
- const Import &i = it.previous();
+ const QList<Import> &imports = m_imports->all();
+ for (int pos = imports.size(); --pos >= 0; ) {
+ const Import &i = imports.at(pos);
const ObjectValue *import = i.object;
const ImportInfo &info = i.info;
@@ -2424,10 +2418,9 @@ JSImportScope::JSImportScope(const Imports *imports, ValueOwner *valueOwner)
const Value *JSImportScope::lookupMember(const QString &name, const Context *,
const ObjectValue **foundInObject, bool) const
{
- QListIterator<Import> it(m_imports->all());
- it.toBack();
- while (it.hasPrevious()) {
- const Import &i = it.previous();
+ const QList<Import> &imports = m_imports->all();
+ for (int pos = imports.size(); --pos >= 0; ) {
+ const Import &i = imports.at(pos);
const ObjectValue *import = i.object;
const ImportInfo &info = i.info;
@@ -2449,10 +2442,9 @@ const Value *JSImportScope::lookupMember(const QString &name, const Context *,
void JSImportScope::processMembers(MemberProcessor *processor) const
{
- QListIterator<Import> it(m_imports->all());
- it.toBack();
- while (it.hasPrevious()) {
- const Import &i = it.previous();
+ const QList<Import> &imports = m_imports->all();
+ for (int pos = imports.size(); --pos >= 0; ) {
+ const Import &i = imports.at(pos);
const ObjectValue *import = i.object;
const ImportInfo &info = i.info;
@@ -2505,10 +2497,8 @@ ImportInfo Imports::info(const QString &name, const Context *context) const
if (dotIdx != -1)
firstId = firstId.left(dotIdx);
- QListIterator<Import> it(m_imports);
- it.toBack();
- while (it.hasPrevious()) {
- const Import &i = it.previous();
+ for (int pos = m_imports.size(); --pos >= 0; ) {
+ const Import &i = m_imports.at(pos);
const ObjectValue *import = i.object;
const ImportInfo &info = i.info;
@@ -2531,10 +2521,8 @@ ImportInfo Imports::info(const QString &name, const Context *context) const
QString Imports::nameForImportedObject(const ObjectValue *value, const Context *context) const
{
- QListIterator<Import> it(m_imports);
- it.toBack();
- while (it.hasPrevious()) {
- const Import &i = it.previous();
+ for (int pos = m_imports.size(); --pos >= 0; ) {
+ const Import &i = m_imports.at(pos);
const ObjectValue *import = i.object;
const ImportInfo &info = i.info;
@@ -2617,10 +2605,8 @@ public:
void Imports::dump() const
{
qCDebug(qmljsLog) << "Imports contents, in search order:";
- QListIterator<Import> it(m_imports);
- it.toBack();
- while (it.hasPrevious()) {
- const Import &i = it.previous();
+ for (int pos = m_imports.size(); --pos >= 0; ) {
+ const Import &i = m_imports.at(pos);
const ObjectValue *import = i.object;
const ImportInfo &info = i.info;
diff --git a/src/libs/qmljs/qmljslink.cpp b/src/libs/qmljs/qmljslink.cpp
index 1acdb68ed9..6c843adb85 100644
--- a/src/libs/qmljs/qmljslink.cpp
+++ b/src/libs/qmljs/qmljslink.cpp
@@ -143,23 +143,18 @@ Link::Link(const Snapshot &snapshot, const ViewerContext &vContext, const Librar
ModelManagerInterface *modelManager = ModelManagerInterface::instance();
if (modelManager) {
- ModelManagerInterface::CppDataHash cppDataHash = modelManager->cppData();
+ const ModelManagerInterface::CppDataHash cppDataHash = modelManager->cppData();
{
// populate engine with types from C++
- ModelManagerInterface::CppDataHashIterator cppDataHashIterator(cppDataHash);
- while (cppDataHashIterator.hasNext()) {
- cppDataHashIterator.next();
- d->valueOwner->cppQmlTypes().load(cppDataHashIterator.key(),
- cppDataHashIterator.value().exportedTypes);
- }
+ for (auto it = cppDataHash.cbegin(), end = cppDataHash.cend(); it != end; ++it)
+ d->valueOwner->cppQmlTypes().load(it.key(), it.value().exportedTypes);
}
// build an object with the context properties from C++
ObjectValue *cppContextProperties = d->valueOwner->newObject(/* prototype = */ 0);
- foreach (const ModelManagerInterface::CppData &cppData, cppDataHash) {
- QHashIterator<QString, QString> it(cppData.contextProperties);
- while (it.hasNext()) {
- it.next();
+ for (const ModelManagerInterface::CppData &cppData : cppDataHash) {
+ for (auto it = cppData.contextProperties.cbegin(), end = cppData.contextProperties.cend();
+ it != end; ++it) {
const Value *value = 0;
const QString cppTypeName = it.value();
if (!cppTypeName.isEmpty())
@@ -332,10 +327,8 @@ Import LinkPrivate::importFileOrDirectory(Document::Ptr doc, const ImportInfo &i
importLibrary(doc, path, &import);
- QMapIterator<QString,QStringList> iter(ModelManagerInterface::instance()
- ->filesInQrcPath(path));
- while (iter.hasNext()) {
- iter.next();
+ const QMap<QString, QStringList> paths = ModelManagerInterface::instance()->filesInQrcPath(path);
+ for (auto iter = paths.cbegin(), end = paths.cend(); iter != end; ++iter) {
if (ModelManagerInterface::guessLanguageOfFile(iter.key()).isQmlLikeLanguage()) {
Document::Ptr importedDoc = snapshot.document(iter.value().at(0));
if (importedDoc && importedDoc->bind()->rootObjectValue()) {
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
index 2270d0a5b6..4453172e8a 100644
--- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
+++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
@@ -175,15 +175,10 @@ Dialect ModelManagerInterface::guessLanguageOfFile(const QString &fileName)
QStringList ModelManagerInterface::globPatternsForLanguages(const QList<Dialect> languages)
{
- QHash<QString, Dialect> lMapping;
- if (instance())
- lMapping = instance()->languageForSuffix();
- else
- lMapping = defaultLanguageMapping();
QStringList patterns;
- QHashIterator<QString,Dialect> i(lMapping);
- while (i.hasNext()) {
- i.next();
+ const QHash<QString, Dialect> lMapping =
+ instance() ? instance()->languageForSuffix() : defaultLanguageMapping();
+ for (auto i = lMapping.cbegin(), end = lMapping.cend(); i != end; ++i) {
if (languages.contains(i.value()))
patterns << QLatin1String("*.") + i.key();
}
@@ -725,9 +720,8 @@ static void findNewFileImports(const Document::Ptr &doc, const Snapshot &snapsho
*importedFiles += importPath;
}
} else if (import.type() == ImportType::QrcDirectory) {
- QMapIterator<QString,QStringList> dirContents(ModelManagerInterface::instance()->filesInQrcPath(importName));
- while (dirContents.hasNext()) {
- dirContents.next();
+ const QMap<QString, QStringList> files = ModelManagerInterface::instance()->filesInQrcPath(importName);
+ for (auto dirContents = files.cbegin(), end = files.cend(); dirContents != end; ++dirContents) {
if (ModelManagerInterface::guessLanguageOfFile(dirContents.key()).isQmlLikeOrJsLanguage()) {
foreach (const QString &filePath, dirContents.value()) {
if (! snapshot.document(filePath))
@@ -1091,10 +1085,7 @@ void ModelManagerInterface::updateImportPaths()
PathsAndLanguages allImportPaths;
QmlLanguageBundles activeBundles;
QmlLanguageBundles extendedBundles;
- QMapIterator<ProjectExplorer::Project *, ProjectInfo> pInfoIter(m_projects);
- QHashIterator<Dialect, QmlJS::ViewerContext> vCtxsIter = m_defaultVContexts;
- while (pInfoIter.hasNext()) {
- pInfoIter.next();
+ for (auto pInfoIter = m_projects.cbegin(), end = m_projects.cend(); pInfoIter != end; ++pInfoIter) {
const PathsAndLanguages &iPaths = pInfoIter.value().importPaths;
for (int i = 0; i < iPaths.size(); ++i) {
PathAndLanguage pAndL = iPaths.at(i);
@@ -1104,14 +1095,12 @@ void ModelManagerInterface::updateImportPaths()
pAndL.language());
}
}
- while (vCtxsIter.hasNext()) {
- vCtxsIter.next();
+ for (auto vCtxsIter = m_defaultVContexts.cbegin(), end = m_defaultVContexts.cend();
+ vCtxsIter != end; ++ vCtxsIter) {
foreach (const QString &path, vCtxsIter.value().paths)
allImportPaths.maybeInsert(Utils::FilePath::fromString(path), vCtxsIter.value().language);
}
- pInfoIter.toFront();
- while (pInfoIter.hasNext()) {
- pInfoIter.next();
+ for (auto pInfoIter = m_projects.cbegin(), end = m_projects.cend(); pInfoIter != end; ++pInfoIter) {
activeBundles.mergeLanguageBundles(pInfoIter.value().activeBundle);
foreach (Dialect l, pInfoIter.value().activeBundle.languages()) {
foreach (const QString &path, pInfoIter.value().activeBundle.bundleForLanguage(l)
@@ -1122,9 +1111,7 @@ void ModelManagerInterface::updateImportPaths()
}
}
}
- pInfoIter.toFront();
- while (pInfoIter.hasNext()) {
- pInfoIter.next();
+ for (auto pInfoIter = m_projects.cbegin(), end = m_projects.cend(); pInfoIter != end; ++pInfoIter) {
QString pathAtt = pInfoIter.value().qtQmlPath;
if (!pathAtt.isEmpty())
allImportPaths.maybeInsert(Utils::FilePath::fromString(pathAtt), Dialect::QmlQtQuick2);
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.h b/src/libs/qmljs/qmljsmodelmanagerinterface.h
index cd36cbca2f..b9bfe67db4 100644
--- a/src/libs/qmljs/qmljsmodelmanagerinterface.h
+++ b/src/libs/qmljs/qmljsmodelmanagerinterface.h
@@ -132,7 +132,6 @@ public:
};
typedef QHash<QString, CppData> CppDataHash;
- typedef QHashIterator<QString, CppData> CppDataHashIterator;
public:
ModelManagerInterface(QObject *parent = nullptr);
diff --git a/src/libs/utils/changeset.cpp b/src/libs/utils/changeset.cpp
index 7ee4339182..a7b27dcacd 100644
--- a/src/libs/utils/changeset.cpp
+++ b/src/libs/utils/changeset.cpp
@@ -53,11 +53,9 @@ static bool overlaps(int posA, int lengthA, int posB, int lengthB) {
}
}
-bool ChangeSet::hasOverlap(int pos, int length)
+bool ChangeSet::hasOverlap(int pos, int length) const
{
- QListIterator<EditOp> i(m_operationList);
- while (i.hasNext()) {
- const EditOp &cmd = i.next();
+ for (const EditOp &cmd : m_operationList) {
switch (cmd.type) {
case EditOp::Replace:
@@ -251,9 +249,7 @@ void ChangeSet::doReplace(const EditOp &op, QList<EditOp> *replaceList)
Q_ASSERT(op.type == EditOp::Replace);
{
- QMutableListIterator<EditOp> i(*replaceList);
- while (i.hasNext()) {
- EditOp &c = i.next();
+ for (EditOp &c : *replaceList) {
if (op.pos1 <= c.pos1)
c.pos1 += op.text.size();
if (op.pos1 < c.pos1)
diff --git a/src/libs/utils/changeset.h b/src/libs/utils/changeset.h
index 4b63cfb727..5cb484c9b6 100644
--- a/src/libs/utils/changeset.h
+++ b/src/libs/utils/changeset.h
@@ -105,7 +105,7 @@ private:
bool flip_helper(int pos1, int length1, int pos2, int length2);
bool copy_helper(int pos, int length, int to);
- bool hasOverlap(int pos, int length);
+ bool hasOverlap(int pos, int length) const;
QString textAt(int pos, int length);
void doReplace(const EditOp &replace, QList<EditOp> *replaceList);
diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp
index 9a5c84894c..9d870e90d2 100644
--- a/src/libs/utils/fancymainwindow.cpp
+++ b/src/libs/utils/fancymainwindow.cpp
@@ -468,12 +468,9 @@ void FancyMainWindow::handleVisibilityChanged(bool visible)
void FancyMainWindow::saveSettings(QSettings *settings) const
{
- QHash<QString, QVariant> hash = saveSettings();
- QHashIterator<QString, QVariant> it(hash);
- while (it.hasNext()) {
- it.next();
+ const QHash<QString, QVariant> hash = saveSettings();
+ for (auto it = hash.cbegin(), end = hash.cend(); it != end; ++it)
settings->setValue(it.key(), it.value());
- }
}
void FancyMainWindow::restoreSettings(const QSettings *settings)
diff --git a/src/libs/utils/macroexpander.cpp b/src/libs/utils/macroexpander.cpp
index a41fbde31d..6a64398e5b 100644
--- a/src/libs/utils/macroexpander.cpp
+++ b/src/libs/utils/macroexpander.cpp
@@ -313,11 +313,8 @@ QVariant MacroExpander::expandVariant(const QVariant &v) const
} else if (type == QMetaType::QVariantMap) {
const auto map = v.toMap();
QVariantMap result;
- QMapIterator<QString, QVariant> it(map);
- while (it.hasNext()) {
- it.next();
+ for (auto it = map.cbegin(), end = map.cend(); it != end; ++it)
result.insert(it.key(), expandVariant(it.value()));
- }
return result;
}
return v;
diff --git a/src/libs/utils/mimetypes/mimeglobpattern.cpp b/src/libs/utils/mimetypes/mimeglobpattern.cpp
index cdcd77c6b1..097fca365b 100644
--- a/src/libs/utils/mimetypes/mimeglobpattern.cpp
+++ b/src/libs/utils/mimetypes/mimeglobpattern.cpp
@@ -181,10 +181,9 @@ void MimeAllGlobPatterns::addGlob(const MimeGlobPattern &glob)
void MimeAllGlobPatterns::removeMimeType(const QString &mimeType)
{
- QMutableHashIterator<QString, QStringList> it(m_fastPatterns);
- while (it.hasNext()) {
- it.next().value().removeAll(mimeType);
- }
+ for (QStringList &x : m_fastPatterns)
+ x.removeAll(mimeType);
+
m_highWeightGlobs.removeMimeType(mimeType);
m_lowWeightGlobs.removeMimeType(mimeType);
}
diff --git a/src/libs/utils/mimetypes/mimeglobpattern_p.h b/src/libs/utils/mimetypes/mimeglobpattern_p.h
index accbab0646..ecbfb02ce9 100644
--- a/src/libs/utils/mimetypes/mimeglobpattern_p.h
+++ b/src/libs/utils/mimetypes/mimeglobpattern_p.h
@@ -114,11 +114,10 @@ public:
*/
void removeMimeType(const QString &mimeType)
{
- QMutableListIterator<MimeGlobPattern> it(*this);
- while (it.hasNext()) {
- if (it.next().mimeType() == mimeType)
- it.remove();
- }
+ auto isMimeTypeEqual = [&mimeType](const MimeGlobPattern &pattern) {
+ return pattern.mimeType() == mimeType;
+ };
+ erase(std::remove_if(begin(), end(), isMimeTypeEqual), end());
}
void match(MimeGlobMatchResult &result, const QString &fileName) const;
diff --git a/src/libs/utils/mimetypes/mimeprovider.cpp b/src/libs/utils/mimetypes/mimeprovider.cpp
index e9ed226063..11f5a17303 100644
--- a/src/libs/utils/mimetypes/mimeprovider.cpp
+++ b/src/libs/utils/mimetypes/mimeprovider.cpp
@@ -767,13 +767,12 @@ void MimeXMLProvider::setGlobPatternsForMimeType(const MimeType &mimeType, const
void MimeXMLProvider::setMagicRulesForMimeType(const MimeType &mimeType, const QMap<int, QList<MimeMagicRule> > &rules)
{
// remove all previous rules
- QMutableListIterator<MimeMagicRuleMatcher> matcherIt(m_magicMatchers);
- while (matcherIt.hasNext()) {
- if (matcherIt.next().mimetype() == mimeType.name())
- matcherIt.remove();
+ for (int i = 0; i < m_magicMatchers.size(); ++i) {
+ if (m_magicMatchers.at(i).mimetype() == mimeType.name())
+ m_magicMatchers.removeAt(i--);
}
// add new rules
- for (auto it = rules.constBegin(); it != rules.constEnd(); ++it) {
+ for (auto it = rules.cbegin(); it != rules.cend(); ++it) {
MimeMagicRuleMatcher matcher(mimeType.name(), it.key()/*priority*/);
matcher.addRules(it.value());
addMagicMatcher(matcher);
@@ -804,15 +803,14 @@ void MimeXMLProvider::ensureLoaded()
// add custom mime types first, which override any default from freedesktop.org.xml
MimeTypeParser parser(*this);
- QHashIterator<QString, QByteArray> it(m_additionalData);
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_additionalData.constBegin(), end = m_additionalData.constEnd(); it != end; ++it) {
QString errorMessage;
if (!parser.parse(it.value(), it.key(), &errorMessage)) {
qWarning("MimeDatabase: Error loading %s\n%s", qPrintable(it.key()),
qPrintable(errorMessage));
}
}
+
foreach (const QString &file, allFiles)
load(file);
}
diff --git a/src/plugins/clangcodemodel/clangbackendreceiver.cpp b/src/plugins/clangcodemodel/clangbackendreceiver.cpp
index 7f2ef28fd6..bfba1329a9 100644
--- a/src/plugins/clangcodemodel/clangbackendreceiver.cpp
+++ b/src/plugins/clangcodemodel/clangbackendreceiver.cpp
@@ -86,15 +86,18 @@ void BackendReceiver::addExpectedCompletionsMessage(
void BackendReceiver::deleteProcessorsOfEditorWidget(TextEditor::TextEditorWidget *textEditorWidget)
{
- QMutableHashIterator<quint64, ClangCompletionAssistProcessor *> it(m_assistProcessorsTable);
- while (it.hasNext()) {
- it.next();
+ QList<quint64> toRemove;
+ for (auto it = m_assistProcessorsTable.cbegin(), end = m_assistProcessorsTable.cend();
+ it != end; ++it)
+ {
ClangCompletionAssistProcessor *assistProcessor = it.value();
if (assistProcessor->textEditorWidget() == textEditorWidget) {
delete assistProcessor;
- it.remove();
+ toRemove.append(it.key());
}
}
+ for (quint64 item : toRemove)
+ m_assistProcessorsTable.remove(item);
}
QFuture<CppTools::CursorInfo> BackendReceiver::addExpectedReferencesMessage(
diff --git a/src/plugins/clangcodemodel/clangfixitoperation.cpp b/src/plugins/clangcodemodel/clangfixitoperation.cpp
index a7170dc881..5f325f8ceb 100644
--- a/src/plugins/clangcodemodel/clangfixitoperation.cpp
+++ b/src/plugins/clangcodemodel/clangfixitoperation.cpp
@@ -35,7 +35,6 @@ namespace ClangCodeModel {
namespace Internal {
using FileToFixits = QMap<QString, QVector<ClangBackEnd::FixItContainer>>;
-using FileToFixitsIterator = QMapIterator<QString, QVector<ClangBackEnd::FixItContainer>>;
using RefactoringFilePtr = QSharedPointer<TextEditor::RefactoringFile>;
ClangFixItOperation::ClangFixItOperation(
@@ -75,9 +74,7 @@ void ClangFixItOperation::perform()
const TextEditor::RefactoringChanges refactoringChanges;
const FileToFixits fileToFixIts = fixitsPerFile(fixItContainers);
- FileToFixitsIterator i(fileToFixIts);
- while (i.hasNext()) {
- i.next();
+ for (auto i = fileToFixIts.cbegin(), end = fileToFixIts.cend(); i != end; ++i) {
const QString filePath = i.key();
const QVector<ClangBackEnd::FixItContainer> fixits = i.value();
diff --git a/src/plugins/clangtools/clangtoolruncontrol.cpp b/src/plugins/clangtools/clangtoolruncontrol.cpp
index b00da89529..fffcbd94d0 100644
--- a/src/plugins/clangtools/clangtoolruncontrol.cpp
+++ b/src/plugins/clangtools/clangtoolruncontrol.cpp
@@ -356,9 +356,7 @@ void ClangToolRunControl::start()
void ClangToolRunControl::stop()
{
- QSetIterator<ClangToolRunner *> i(m_runners);
- while (i.hasNext()) {
- ClangToolRunner *runner = i.next();
+ for (ClangToolRunner *runner : m_runners) {
QObject::disconnect(runner, nullptr, this, nullptr);
delete runner;
}
diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
index d604adf4e6..04a515b88d 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
@@ -276,9 +276,7 @@ void ActionContainerPrivate::addMenu(ActionContainer *before, ActionContainer *m
auto containerPrivate = static_cast<ActionContainerPrivate *>(menu);
QTC_ASSERT(containerPrivate->canBeAddedToContainer(this), return);
- QMutableListIterator<Group> it(m_groups);
- while (it.hasNext()) {
- Group &group = it.next();
+ for (Group &group : m_groups) {
const int insertionPoint = group.items.indexOf(before);
if (insertionPoint >= 0) {
group.items.insert(insertionPoint, menu);
@@ -319,9 +317,7 @@ Command *ActionContainerPrivate::addSeparator(const Context &context, Id group,
void ActionContainerPrivate::clear()
{
- QMutableListIterator<Group> it(m_groups);
- while (it.hasNext()) {
- Group &group = it.next();
+ for (Group &group : m_groups) {
foreach (QObject *item, group.items) {
if (auto command = qobject_cast<Command *>(item)) {
removeAction(command);
@@ -343,9 +339,7 @@ void ActionContainerPrivate::clear()
void ActionContainerPrivate::itemDestroyed()
{
QObject *obj = sender();
- QMutableListIterator<Group> it(m_groups);
- while (it.hasNext()) {
- Group &group = it.next();
+ for (Group &group : m_groups) {
if (group.items.removeAll(obj) > 0)
break;
}
@@ -454,9 +448,7 @@ bool MenuActionContainer::updateInternal()
bool hasitems = false;
QList<QAction *> actions = m_menu->actions();
- QListIterator<Group> it(m_groups);
- while (it.hasNext()) {
- const Group &group = it.next();
+ for (const Group &group : m_groups) {
foreach (QObject *item, group.items) {
if (auto container = qobject_cast<ActionContainerPrivate*>(item)) {
actions.removeAll(container->menu()->menuAction());
diff --git a/src/plugins/coreplugin/actionmanager/command.cpp b/src/plugins/coreplugin/actionmanager/command.cpp
index 25ed98ae96..21ac5c2987 100644
--- a/src/plugins/coreplugin/actionmanager/command.cpp
+++ b/src/plugins/coreplugin/actionmanager/command.cpp
@@ -325,14 +325,13 @@ void Action::addOverrideAction(QAction *action, const Context &context, bool scr
void Action::removeOverrideAction(QAction *action)
{
- QMutableMapIterator<Id, QPointer<QAction> > it(m_contextActionMap);
- while (it.hasNext()) {
- it.next();
- if (it.value() == nullptr)
- it.remove();
- else if (it.value() == action)
- it.remove();
+ QList<Id> toRemove;
+ for (auto it = m_contextActionMap.cbegin(), end = m_contextActionMap.cend(); it != end; ++it) {
+ if (it.value() == nullptr || it.value() == action)
+ toRemove.append(it.key());
}
+ for (Id id : toRemove)
+ m_contextActionMap.remove(id);
setCurrentContext(m_context);
}
diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
index 59e73c8e35..b69aa2e2c9 100644
--- a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
+++ b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
@@ -58,11 +58,8 @@ ExternalToolModel::ExternalToolModel(QObject *parent)
ExternalToolModel::~ExternalToolModel()
{
- QMapIterator<QString, QList<ExternalTool *> > it(m_tools);
- while (it.hasNext()) {
- it.next();
- qDeleteAll(it.value());
- }
+ for (QList<ExternalTool *> &toolInCategory : m_tools)
+ qDeleteAll(toolInCategory);
}
Qt::DropActions ExternalToolModel::supportedDropActions() const
@@ -192,10 +189,8 @@ QModelIndex ExternalToolModel::parent(const QModelIndex &child) const
{
if (ExternalTool *tool = toolForIndex(child)) {
int categoryIndex = 0;
- QMapIterator<QString, QList<ExternalTool *> > it(m_tools);
- while (it.hasNext()) {
- it.next();
- if (it.value().contains(tool))
+ for (const QList<ExternalTool *> &toolsInCategory : m_tools) {
+ if (toolsInCategory.contains(tool))
return index(categoryIndex, 0);
++categoryIndex;
}
@@ -376,10 +371,7 @@ void ExternalToolModel::removeTool(const QModelIndex &modelIndex)
QTC_ASSERT(!tool->preset(), return);
// remove the tool and the tree item
int categoryIndex = 0;
- QMutableMapIterator<QString, QList<ExternalTool *> > it(m_tools);
- while (it.hasNext()) {
- it.next();
- QList<ExternalTool *> &items = it.value();
+ for (QList<ExternalTool *> &items : m_tools) {
int pos = items.indexOf(tool);
if (pos != -1) {
beginRemoveRows(index(categoryIndex, 0), pos, pos);
@@ -473,9 +465,7 @@ ExternalToolConfig::~ExternalToolConfig()
void ExternalToolConfig::setTools(const QMap<QString, QList<ExternalTool *> > &tools)
{
QMap<QString, QList<ExternalTool *> > toolsCopy;
- QMapIterator<QString, QList<ExternalTool *> > it(tools);
- while (it.hasNext()) {
- it.next();
+ for (auto it = tools.cbegin(), end = tools.cend(); it != end; ++it) {
QList<ExternalTool *> itemCopy;
for (ExternalTool *tool : it.value())
itemCopy.append(new ExternalTool(tool));
diff --git a/src/plugins/coreplugin/documentmanager.cpp b/src/plugins/coreplugin/documentmanager.cpp
index 3939703cb6..0f6a5a7c36 100644
--- a/src/plugins/coreplugin/documentmanager.cpp
+++ b/src/plugins/coreplugin/documentmanager.cpp
@@ -427,9 +427,8 @@ void DocumentManager::renamedFile(const QString &from, const QString &to)
// gather the list of IDocuments
QList<IDocument *> documentsToRename;
- QMapIterator<IDocument *, QStringList> it(d->m_documentsWithWatch);
- while (it.hasNext()) {
- it.next();
+ for (auto it = d->m_documentsWithWatch.cbegin(), end = d->m_documentsWithWatch.cend();
+ it != end; ++it) {
if (it.value().contains(fromKey))
documentsToRename.append(it.key());
}
@@ -1247,9 +1246,7 @@ void DocumentManager::checkForReload()
// handle deleted files
EditorManager::closeDocuments(documentsToClose, false);
- QHashIterator<IDocument *, QString> it(documentsToSave);
- while (it.hasNext()) {
- it.next();
+ for (auto it = documentsToSave.cbegin(), end = documentsToSave.cend(); it != end; ++it) {
saveDocument(it.key(), it.value());
it.key()->checkPermissions();
}
@@ -1270,14 +1267,10 @@ void DocumentManager::addToRecentFiles(const QString &fileName, Id editorId)
{
if (fileName.isEmpty())
return;
- QString fileKey = filePathKey(fileName, KeepLinks);
- QMutableListIterator<RecentFile > it(d->m_recentFiles);
- while (it.hasNext()) {
- RecentFile file = it.next();
- QString recentFileKey(filePathKey(file.first, DocumentManager::KeepLinks));
- if (fileKey == recentFileKey)
- it.remove();
- }
+ const QString fileKey = filePathKey(fileName, KeepLinks);
+ Utils::erase(d->m_recentFiles, [fileKey](const RecentFile &file) {
+ return fileKey == filePathKey(file.first, DocumentManager::KeepLinks);
+ });
while (d->m_recentFiles.count() >= EditorManagerPrivate::maxRecentFiles())
d->m_recentFiles.removeLast();
d->m_recentFiles.prepend(RecentFile(fileName, editorId));
@@ -1325,15 +1318,15 @@ void readSettings()
QSettings *s = ICore::settings();
d->m_recentFiles.clear();
s->beginGroup(QLatin1String(settingsGroupC));
- QStringList recentFiles = s->value(QLatin1String(filesKeyC)).toStringList();
- QStringList recentEditorIds = s->value(QLatin1String(editorsKeyC)).toStringList();
+ const QStringList recentFiles = s->value(QLatin1String(filesKeyC)).toStringList();
+ const QStringList recentEditorIds = s->value(QLatin1String(editorsKeyC)).toStringList();
s->endGroup();
// clean non-existing files
- QStringListIterator ids(recentEditorIds);
- foreach (const QString &fileName, recentFiles) {
+ for (int i = 0, n = recentFiles.size(); i < n; ++i) {
+ const QString &fileName = recentFiles.at(i);
QString editorId;
- if (ids.hasNext()) // guard against old or weird settings
- editorId = ids.next();
+ if (i < recentEditorIds.size()) // guard against old or weird settings
+ editorId = recentEditorIds.at(i);
if (QFileInfo(fileName).isFile())
d->m_recentFiles.append(DocumentManager::RecentFile(QDir::fromNativeSeparators(fileName), // from native to guard against old settings
Id::fromString(editorId)));
diff --git a/src/plugins/coreplugin/externaltoolmanager.cpp b/src/plugins/coreplugin/externaltoolmanager.cpp
index d2b37bf4ef..67f2dc1374 100644
--- a/src/plugins/coreplugin/externaltoolmanager.cpp
+++ b/src/plugins/coreplugin/externaltoolmanager.cpp
@@ -98,11 +98,8 @@ ExternalToolManager::ExternalToolManager()
true);
QMap<QString, QList<ExternalTool *> > categoryMap;
- QMapIterator<QString, QMultiMap<int, ExternalTool*> > it(categoryPriorityMap);
- while (it.hasNext()) {
- it.next();
+ for (auto it = categoryPriorityMap.cbegin(), end = categoryPriorityMap.cend(); it != end; ++it)
categoryMap.insert(it.key(), it.value().values());
- }
// read renamed categories and custom order
readSettings(tools, &categoryMap);
@@ -177,9 +174,7 @@ void ExternalToolManager::setToolsByCategory(const QMap<QString, QList<ExternalT
// delete old tools and create list of new ones
QMap<QString, ExternalTool *> newTools;
QMap<QString, QAction *> newActions;
- QMapIterator<QString, QList<ExternalTool *> > it(tools);
- while (it.hasNext()) {
- it.next();
+ for (auto it = tools.cbegin(), end = tools.cend(); it != end; ++it) {
foreach (ExternalTool *tool, it.value()) {
const QString id = tool->id();
if (d->m_tools.value(id) == tool) {
@@ -192,10 +187,9 @@ void ExternalToolManager::setToolsByCategory(const QMap<QString, QList<ExternalT
}
}
qDeleteAll(d->m_tools);
- QMapIterator<QString, QAction *> remainingActions(d->m_actions);
const Id externalToolsPrefix = "Tools.External.";
- while (remainingActions.hasNext()) {
- remainingActions.next();
+ for (auto remainingActions = d->m_actions.cbegin(), end = d->m_actions.cend();
+ remainingActions != end; ++remainingActions) {
ActionManager::unregisterAction(remainingActions.value(),
externalToolsPrefix.withSuffix(remainingActions.key()));
delete remainingActions.value();
@@ -208,9 +202,7 @@ void ExternalToolManager::setToolsByCategory(const QMap<QString, QList<ExternalT
// create menu structure and remove no-longer used containers
// add all the category menus, QMap is nicely sorted
QMap<QString, ActionContainer *> newContainers;
- it.toFront();
- while (it.hasNext()) {
- it.next();
+ for (auto it = tools.cbegin(), end = tools.cend(); it != end; ++it) {
ActionContainer *container = nullptr;
const QString &containerName = it.key();
if (containerName.isEmpty()) { // no displayCategory, so put into external tools menu directly
@@ -302,9 +294,7 @@ static void writeSettings()
settings->remove(QLatin1String(""));
settings->beginGroup(QLatin1String("OverrideCategories"));
- QMapIterator<QString, QList<ExternalTool *> > it(d->m_categoryMap);
- while (it.hasNext()) {
- it.next();
+ for (auto it = d->m_categoryMap.cbegin(), end = d->m_categoryMap.cend(); it != end; ++it) {
QString category = it.key();
if (category.isEmpty())
category = QLatin1String(kSpecialUncategorizedSetting);
diff --git a/src/plugins/coreplugin/helpitem.cpp b/src/plugins/coreplugin/helpitem.cpp
index d63bd883de..6349ad17cd 100644
--- a/src/plugins/coreplugin/helpitem.cpp
+++ b/src/plugins/coreplugin/helpitem.cpp
@@ -222,11 +222,8 @@ const HelpItem::Links &HelpItem::links() const
}
}
}
- QMapIterator<QString, QUrl> it(helpLinks);
- while (it.hasNext()) {
- it.next();
+ for (auto it = helpLinks.cbegin(), end = helpLinks.cend(); it != end; ++it)
m_helpLinks->emplace_back(it.key(), it.value());
- }
}
Utils::sort(*m_helpLinks, linkLessThan);
}
diff --git a/src/plugins/coreplugin/progressmanager/progressmanager.cpp b/src/plugins/coreplugin/progressmanager/progressmanager.cpp
index d822397b90..84ca73cc30 100644
--- a/src/plugins/coreplugin/progressmanager/progressmanager.cpp
+++ b/src/plugins/coreplugin/progressmanager/progressmanager.cpp
@@ -508,11 +508,9 @@ void ProgressManagerPrivate::updateSummaryProgressBar()
stopFadeOfSummaryProgress();
m_summaryProgressBar->setFinished(false);
- QMapIterator<QFutureWatcher<void> *, Id> it(m_runningTasks);
static const int TASK_RANGE = 100;
int value = 0;
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_runningTasks.cbegin(), end = m_runningTasks.cend(); it != end; ++it) {
QFutureWatcher<void> *watcher = it.key();
int min = watcher->progressMinimum();
int range = watcher->progressMaximum() - min;
diff --git a/src/plugins/coreplugin/settingsdatabase.cpp b/src/plugins/coreplugin/settingsdatabase.cpp
index 9b5054fa57..f3f52317d8 100644
--- a/src/plugins/coreplugin/settingsdatabase.cpp
+++ b/src/plugins/coreplugin/settingsdatabase.cpp
@@ -241,9 +241,8 @@ QStringList SettingsDatabase::childKeys() const
QStringList children;
const QString g = group();
- QMapIterator<QString, QVariant> i(d->m_settings);
- while (i.hasNext()) {
- const QString &key = i.next().key();
+ for (auto i = d->m_settings.cbegin(), end = d->m_settings.cend(); i != end; ++i) {
+ const QString &key = i.key();
if (key.startsWith(g) && key.indexOf(QLatin1Char('/'), g.length() + 1) == -1)
children.append(key.mid(g.length() + 1));
}
diff --git a/src/plugins/coreplugin/sidebar.cpp b/src/plugins/coreplugin/sidebar.cpp
index a5466a597e..f811e1df33 100644
--- a/src/plugins/coreplugin/sidebar.cpp
+++ b/src/plugins/coreplugin/sidebar.cpp
@@ -108,9 +108,7 @@ SideBar::~SideBar()
QString SideBar::idForTitle(const QString &title) const
{
- QMapIterator<QString, QPointer<SideBarItem> > iter(d->m_itemMap);
- while (iter.hasNext()) {
- iter.next();
+ for (auto iter = d->m_itemMap.cbegin(), end = d->m_itemMap.cend(); iter != end; ++iter) {
if (iter.value().data()->title() == title)
return iter.key();
}
@@ -266,11 +264,8 @@ void SideBar::saveSettings(QSettings *settings, const QString &name)
if (!currentItemId.isEmpty())
views.append(currentItemId);
}
- if (views.isEmpty() && d->m_itemMap.size()) {
- QMapIterator<QString, QPointer<SideBarItem> > iter(d->m_itemMap);
- iter.next();
- views.append(iter.key());
- }
+ if (views.isEmpty() && !d->m_itemMap.isEmpty())
+ views.append(d->m_itemMap.cbegin().key());
settings->setValue(prefix + QLatin1String("Views"), views);
settings->setValue(prefix + QLatin1String("Visible"),
diff --git a/src/plugins/coreplugin/toolsettings.cpp b/src/plugins/coreplugin/toolsettings.cpp
index 200e425140..c157ad0781 100644
--- a/src/plugins/coreplugin/toolsettings.cpp
+++ b/src/plugins/coreplugin/toolsettings.cpp
@@ -103,9 +103,7 @@ static QString findUnusedId(const QString &proposal, const QMap<QString, QList<E
result = proposal + (number > 0 ? QString::number(number) : QString::fromLatin1(""));
++number;
found = false;
- QMapIterator<QString, QList<ExternalTool *> > it(tools);
- while (!found && it.hasNext()) {
- it.next();
+ for (auto it = tools.cbegin(), end = tools.cend(); it != end; ++it) {
foreach (ExternalTool *tool, it.value()) {
if (tool->id() == result) {
found = true;
@@ -125,9 +123,7 @@ void ToolSettings::apply()
QMap<QString, ExternalTool *> originalTools = ExternalToolManager::toolsById();
QMap<QString, QList<ExternalTool *> > newToolsMap = m_widget->tools();
QMap<QString, QList<ExternalTool *> > resultMap;
- QMapIterator<QString, QList<ExternalTool *> > it(newToolsMap);
- while (it.hasNext()) {
- it.next();
+ for (auto it = newToolsMap.cbegin(), end = newToolsMap.cend(); it != end; ++it) {
QList<ExternalTool *> items;
foreach (ExternalTool *tool, it.value()) {
ExternalTool *toolToAdd = nullptr;
diff --git a/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp b/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
index 2744f69348..3da5501302 100644
--- a/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
+++ b/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
@@ -1254,9 +1254,8 @@ void WorkingCopyModel::configure(const WorkingCopy &workingCopy)
{
emit layoutAboutToBeChanged();
m_workingCopyList.clear();
- QHashIterator<Utils::FilePath, QPair<QByteArray, unsigned> > it = workingCopy.iterator();
- while (it.hasNext()) {
- it.next();
+ const WorkingCopy::Table &elements = workingCopy.elements();
+ for (auto it = elements.cbegin(), end = elements.cend(); it != end; ++it) {
m_workingCopyList << WorkingCopyEntry(it.key().toString(), it.value().first,
it.value().second);
}
diff --git a/src/plugins/cppeditor/cppfunctiondecldeflink.cpp b/src/plugins/cppeditor/cppfunctiondecldeflink.cpp
index 2a53648b31..beb2e2aaf7 100644
--- a/src/plugins/cppeditor/cppfunctiondecldeflink.cpp
+++ b/src/plugins/cppeditor/cppfunctiondecldeflink.cpp
@@ -878,9 +878,8 @@ ChangeSet FunctionDeclDefLink::changes(const Snapshot &snapshot, int targetOffse
const LocalSymbols localSymbols(targetFile->cppDocument(), targetDefinition);
const int endOfArguments = targetFile->endOf(targetFunctionDeclarator->rparen_token);
- QHashIterator<Symbol *, QString> it(renamedTargetParameters);
- while (it.hasNext()) {
- it.next();
+ for (auto it = renamedTargetParameters.cbegin(), end = renamedTargetParameters.cend();
+ it != end; ++it) {
const QList<SemanticInfo::Use> &uses = localSymbols.uses.value(it.key());
foreach (const SemanticInfo::Use &use, uses) {
if (use.isInvalid())
diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp
index b667cc9842..f82c3d6b50 100644
--- a/src/plugins/cppeditor/cppquickfixes.cpp
+++ b/src/plugins/cppeditor/cppquickfixes.cpp
@@ -3729,10 +3729,8 @@ void ExtractFunction::match(const CppQuickFixInterface &interface, QuickFixOpera
// Identify what would be parameters for the new function and its return value, if any.
Symbol *funcReturn = nullptr;
QList<QPair<QString, QString> > relevantDecls;
- SemanticInfo::LocalUseIterator it(interface.semanticInfo().localUses);
- while (it.hasNext()) {
- it.next();
-
+ const SemanticInfo::LocalUseMap &localUses = interface.semanticInfo().localUses;
+ for (auto it = localUses.cbegin(), end = localUses.cend(); it != end; ++it) {
bool usedBeforeExtraction = false;
bool usedAfterExtraction = false;
bool usedInsideExtraction = false;
diff --git a/src/plugins/cpptools/builtincursorinfo.cpp b/src/plugins/cpptools/builtincursorinfo.cpp
index ee17a8091a..c1e4a9c8c7 100644
--- a/src/plugins/cpptools/builtincursorinfo.cpp
+++ b/src/plugins/cpptools/builtincursorinfo.cpp
@@ -205,9 +205,7 @@ private:
LookupContext context(m_document, m_snapshot);
- CppTools::SemanticInfo::LocalUseIterator it(uses);
- while (it.hasNext()) {
- it.next();
+ for (auto it = uses.cbegin(), end = uses.cend(); it != end; ++it) {
const SemanticUses &uses = it.value();
bool good = false;
diff --git a/src/plugins/cpptools/cppcodemodelinspectordumper.cpp b/src/plugins/cpptools/cppcodemodelinspectordumper.cpp
index 23a3d1e034..950ef400e6 100644
--- a/src/plugins/cpptools/cppcodemodelinspectordumper.cpp
+++ b/src/plugins/cpptools/cppcodemodelinspectordumper.cpp
@@ -618,9 +618,8 @@ void Dumper::dumpWorkingCopy(const WorkingCopy &workingCopy)
m_out << "Working Copy contains " << workingCopy.size() << " entries{{{1\n";
const QByteArray i1 = indent(1);
- QHashIterator< ::Utils::FilePath, QPair<QByteArray, unsigned> > it = workingCopy.iterator();
- while (it.hasNext()) {
- it.next();
+ const WorkingCopy::Table &elements = workingCopy.elements();
+ for (auto it = elements.cbegin(), end = elements.cend(); it != end; ++it) {
const ::Utils::FilePath &filePath = it.key();
unsigned sourcRevision = it.value().second;
m_out << i1 << "rev=" << sourcRevision << ", " << filePath << "\n";
diff --git a/src/plugins/cpptools/cpplocalsymbols_test.cpp b/src/plugins/cpptools/cpplocalsymbols_test.cpp
index 7ee8ad1723..7a21b1bc4d 100644
--- a/src/plugins/cpptools/cpplocalsymbols_test.cpp
+++ b/src/plugins/cpptools/cpplocalsymbols_test.cpp
@@ -93,9 +93,7 @@ struct Result
{
QList<Result> result;
- CppTools::SemanticInfo::LocalUseIterator it(localUses);
- while (it.hasNext()) {
- it.next();
+ for (auto it = localUses.cbegin(), end = localUses.cend(); it != end; ++it) {
const CPlusPlus::Symbol *symbol = it.key();
const QList<CppTools::SemanticInfo::Use> &uses = it.value();
foreach (const CppTools::SemanticInfo::Use &use, uses)
diff --git a/src/plugins/cpptools/cpplocatordata.cpp b/src/plugins/cpptools/cpplocatordata.cpp
index f650859711..b1f0b22db8 100644
--- a/src/plugins/cpptools/cpplocatordata.cpp
+++ b/src/plugins/cpptools/cpplocatordata.cpp
@@ -103,10 +103,7 @@ QList<IndexItem::Ptr> CppLocatorData::allIndexItems(
const QHash<QString, QList<IndexItem::Ptr>> &items) const
{
QList<IndexItem::Ptr> result;
- QHashIterator<QString, QList<IndexItem::Ptr> > it(items);
- while (it.hasNext()) {
- it.next();
- result.append(it.value());
- }
+ for (const QList<IndexItem::Ptr> &subItems : items)
+ result.append(subItems);
return result;
}
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index ea083c8eb6..7833472559 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -608,10 +608,7 @@ void CppModelManager::ensureUpdated()
QStringList CppModelManager::internalProjectFiles() const
{
QStringList files;
- QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(d->m_projectToProjectsInfo);
- while (it.hasNext()) {
- it.next();
- const ProjectInfo pinfo = it.value();
+ for (const ProjectInfo &pinfo : d->m_projectToProjectsInfo) {
foreach (const ProjectPart::Ptr &part, pinfo.projectParts()) {
foreach (const ProjectFile &file, part->files)
files += file.path;
@@ -624,10 +621,7 @@ QStringList CppModelManager::internalProjectFiles() const
ProjectExplorer::HeaderPaths CppModelManager::internalHeaderPaths() const
{
ProjectExplorer::HeaderPaths headerPaths;
- QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(d->m_projectToProjectsInfo);
- while (it.hasNext()) {
- it.next();
- const ProjectInfo pinfo = it.value();
+ for (const ProjectInfo &pinfo : d->m_projectToProjectsInfo) {
foreach (const ProjectPart::Ptr &part, pinfo.projectParts()) {
foreach (const ProjectExplorer::HeaderPath &path, part->headerPaths) {
ProjectExplorer::HeaderPath hp(QDir::cleanPath(path.path), path.type);
@@ -655,10 +649,7 @@ ProjectExplorer::Macros CppModelManager::internalDefinedMacros() const
{
ProjectExplorer::Macros macros;
QSet<ProjectExplorer::Macro> alreadyIn;
- QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(d->m_projectToProjectsInfo);
- while (it.hasNext()) {
- it.next();
- const ProjectInfo pinfo = it.value();
+ for (const ProjectInfo &pinfo : d->m_projectToProjectsInfo) {
for (const ProjectPart::Ptr &part : pinfo.projectParts()) {
addUnique(part->toolChainMacros, macros, alreadyIn);
addUnique(part->projectMacros, macros, alreadyIn);
@@ -783,11 +774,8 @@ WorkingCopy CppModelManager::buildWorkingCopyList()
cppEditorDocument->revision());
}
- QSetIterator<AbstractEditorSupport *> it(d->m_extraEditorSupports);
- while (it.hasNext()) {
- AbstractEditorSupport *es = it.next();
+ for (AbstractEditorSupport *es : qAsConst(d->m_extraEditorSupports))
workingCopy.insert(es->fileName(), es->contents(), es->revision());
- }
// Add the project configuration file
QByteArray conf = codeModelConfiguration();
@@ -815,9 +803,7 @@ static QSet<QString> tooBigFilesRemoved(const QSet<QString> &files, int fileSize
QSet<QString> result;
QFileInfo fileInfo;
- QSetIterator<QString> i(files);
- while (i.hasNext()) {
- const QString filePath = i.next();
+ for (const QString &filePath : files) {
fileInfo.setFile(filePath);
if (fileSizeExceedsLimit(fileInfo, fileSizeLimitInMb))
continue;
@@ -887,9 +873,8 @@ QList<CppEditorDocumentHandle *> CppModelManager::cppEditorDocuments() const
void CppModelManager::removeFilesFromSnapshot(const QSet<QString> &filesToRemove)
{
QMutexLocker snapshotLocker(&d->m_snapshotMutex);
- QSetIterator<QString> i(filesToRemove);
- while (i.hasNext())
- d->m_snapshot.remove(i.next());
+ for (const QString &file : filesToRemove)
+ d->m_snapshot.remove(file);
}
class ProjectInfoComparer
@@ -935,9 +920,7 @@ public:
commonSourceFiles.intersect(m_oldSourceFiles);
QList<Document::Ptr> documentsToCheck;
- QSetIterator<QString> i(commonSourceFiles);
- while (i.hasNext()) {
- const QString file = i.next();
+ for (const QString &file : commonSourceFiles) {
if (Document::Ptr document = snapshot.document(file))
documentsToCheck << document;
}
diff --git a/src/plugins/cpptools/cppmodelmanager_test.cpp b/src/plugins/cpptools/cppmodelmanager_test.cpp
index be6791738b..f84a3f176c 100644
--- a/src/plugins/cpptools/cppmodelmanager_test.cpp
+++ b/src/plugins/cpptools/cppmodelmanager_test.cpp
@@ -618,11 +618,10 @@ void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles()
QCOMPARE(workingCopy.size(), 2); // mm->configurationFileName() and "ui_*.h"
QStringList fileNamesInWorkinCopy;
- QHashIterator<Utils::FilePath, QPair<QByteArray, unsigned> > it = workingCopy.iterator();
- while (it.hasNext()) {
- it.next();
+ const WorkingCopy::Table &elements = workingCopy.elements();
+ for (auto it = elements.cbegin(), end = elements.cend(); it != end; ++it)
fileNamesInWorkinCopy << Utils::FilePath::fromString(it.key().toString()).fileName();
- }
+
fileNamesInWorkinCopy.sort();
const QString expectedUiHeaderFileName = _("ui_mainwindow.h");
QCOMPARE(fileNamesInWorkinCopy.at(0), mm->configurationFileName());
diff --git a/src/plugins/cpptools/cppsemanticinfo.h b/src/plugins/cpptools/cppsemanticinfo.h
index 57e67eaf72..1c61592655 100644
--- a/src/plugins/cpptools/cppsemanticinfo.h
+++ b/src/plugins/cpptools/cppsemanticinfo.h
@@ -62,7 +62,6 @@ public:
public:
using Use = TextEditor::HighlightingResult;
using LocalUseMap = QHash<CPlusPlus::Symbol *, QList<Use>>;
- using LocalUseIterator = QHashIterator<CPlusPlus::Symbol *, QList<Use>>;
// Document specific
unsigned revision = 0;
diff --git a/src/plugins/cpptools/cppworkingcopy.h b/src/plugins/cpptools/cppworkingcopy.h
index 1477720553..1dd1c719d2 100644
--- a/src/plugins/cpptools/cppworkingcopy.h
+++ b/src/plugins/cpptools/cppworkingcopy.h
@@ -70,14 +70,14 @@ public:
QPair<QByteArray, unsigned> get(const Utils::FilePath &fileName) const
{ return _elements.value(fileName); }
- QHashIterator<Utils::FilePath, QPair<QByteArray, unsigned> > iterator() const
- { return QHashIterator<Utils::FilePath, QPair<QByteArray, unsigned> >(_elements); }
+ using Table = QHash<Utils::FilePath, QPair<QByteArray, unsigned> >;
+ const Table &elements() const
+ { return _elements; }
int size() const
{ return _elements.size(); }
private:
- using Table = QHash<Utils::FilePath, QPair<QByteArray, unsigned> >;
Table _elements;
};
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 1d0b219172..f17410ac09 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -2048,9 +2048,7 @@ void GdbEngine::setTokenBarrier()
{
//QTC_ASSERT(m_nonDiscardableCount == 0, /**/);
bool good = true;
- QHashIterator<int, DebuggerCommand> it(m_commandForToken);
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_commandForToken.cbegin(), end = m_commandForToken.cend(); it != end; ++it) {
if (!(m_flagsForToken.value(it.key()) & Discardable)) {
qDebug() << "TOKEN: " << it.key() << "CMD:" << it.value().function;
good = false;
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index 6b3dd37193..3b8ed0a9c5 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -886,12 +886,10 @@ static ConsoleItem *constructLogItemTree(const QVariant &result,
else
text = key + " : Object";
- QMap<QString, QVariant> resultMap = result.toMap();
+ const QMap<QString, QVariant> resultMap = result.toMap();
QVarLengthArray<ConsoleItem *> children(resultMap.size());
- QMapIterator<QString, QVariant> i(result.toMap());
auto it = children.begin();
- while (i.hasNext()) {
- i.next();
+ for (auto i = resultMap.cbegin(), end = resultMap.cend(); i != end; ++i) {
*(it++) = constructLogItemTree(i.value(), i.key());
}
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 432a67176b..d3cfeebec8 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -220,18 +220,14 @@ static void saveWatchers()
static void loadFormats()
{
- QVariant value = SessionManager::value("DefaultFormats");
- QMapIterator<QString, QVariant> it(value.toMap());
- while (it.hasNext()) {
- it.next();
+ QMap<QString, QVariant> value = SessionManager::value("DefaultFormats").toMap();
+ for (auto it = value.cbegin(), end = value.cend(); it != end; ++it) {
if (!it.key().isEmpty())
theTypeFormats.insert(it.key(), it.value().toInt());
}
- value = SessionManager::value("IndividualFormats");
- it = QMapIterator<QString, QVariant>(value.toMap());
- while (it.hasNext()) {
- it.next();
+ value = SessionManager::value("IndividualFormats").toMap();
+ for (auto it = value.cbegin(), end = value.cend(); it != end; ++it) {
if (!it.key().isEmpty())
theIndividualFormats.insert(it.key(), it.value().toInt());
}
@@ -240,9 +236,7 @@ static void loadFormats()
static void saveFormats()
{
QMap<QString, QVariant> formats;
- QHashIterator<QString, int> it(theTypeFormats);
- while (it.hasNext()) {
- it.next();
+ for (auto it = theTypeFormats.cbegin(), end = theTypeFormats.cend(); it != end; ++it) {
const int format = it.value();
if (format != AutomaticFormat) {
const QString key = it.key().trimmed();
@@ -253,9 +247,7 @@ static void saveFormats()
SessionManager::setValue("DefaultFormats", formats);
formats.clear();
- it = QHashIterator<QString, int>(theIndividualFormats);
- while (it.hasNext()) {
- it.next();
+ for (auto it = theIndividualFormats.cbegin(), end = theIndividualFormats.cend(); it != end; ++it) {
const int format = it.value();
const QString key = it.key().trimmed();
if (!key.isEmpty())
@@ -2395,9 +2387,7 @@ QStringList WatchHandler::watchedExpressions()
{
// Filter out invalid watchers.
QStringList watcherNames;
- QMapIterator<QString, int> it(theWatcherNames);
- while (it.hasNext()) {
- it.next();
+ for (auto it = theWatcherNames.cbegin(), end = theWatcherNames.cend(); it != end; ++it) {
const QString &watcherName = it.key();
if (!watcherName.isEmpty())
watcherNames.push_back(watcherName);
@@ -2512,9 +2502,7 @@ QString WatchHandler::typeFormatRequests() const
{
QString ba;
if (!theTypeFormats.isEmpty()) {
- QHashIterator<QString, int> it(theTypeFormats);
- while (it.hasNext()) {
- it.next();
+ for (auto it = theTypeFormats.cbegin(), end = theTypeFormats.cend(); it != end; ++it) {
const int format = it.value();
if (format != AutomaticFormat) {
ba.append(toHex(it.key()));
@@ -2532,9 +2520,7 @@ QString WatchHandler::individualFormatRequests() const
{
QString res;
if (!theIndividualFormats.isEmpty()) {
- QHashIterator<QString, int> it(theIndividualFormats);
- while (it.hasNext()) {
- it.next();
+ for (auto it = theIndividualFormats.cbegin(), end = theIndividualFormats.cend(); it != end; ++it) {
const int format = it.value();
if (format != AutomaticFormat) {
res.append(it.key());
@@ -2548,19 +2534,16 @@ QString WatchHandler::individualFormatRequests() const
return res;
}
-void WatchHandler::appendFormatRequests(DebuggerCommand *cmd)
+void WatchHandler::appendFormatRequests(DebuggerCommand *cmd) const
{
QJsonArray expanded;
- QSetIterator<QString> jt(m_model->m_expandedINames);
- while (jt.hasNext())
- expanded.append(jt.next());
+ for (const QString &name : qAsConst(m_model->m_expandedINames))
+ expanded.append(name);
cmd->arg("expanded", expanded);
QJsonObject typeformats;
- QHashIterator<QString, int> it(theTypeFormats);
- while (it.hasNext()) {
- it.next();
+ for (auto it = theTypeFormats.cbegin(), end = theTypeFormats.cend(); it != end; ++it) {
const int format = it.value();
if (format != AutomaticFormat)
typeformats.insert(it.key(), format);
@@ -2568,12 +2551,10 @@ void WatchHandler::appendFormatRequests(DebuggerCommand *cmd)
cmd->arg("typeformats", typeformats);
QJsonObject formats;
- QHashIterator<QString, int> it2(theIndividualFormats);
- while (it2.hasNext()) {
- it2.next();
- const int format = it2.value();
+ for (auto it = theIndividualFormats.cbegin(), end = theIndividualFormats.cend(); it != end; ++it) {
+ const int format = it.value();
if (format != AutomaticFormat)
- formats.insert(it2.key(), format);
+ formats.insert(it.key(), format);
}
cmd->arg("formats", formats);
}
@@ -2586,18 +2567,16 @@ static inline QJsonObject watcher(const QString &iname, const QString &exp)
return watcher;
}
-void WatchHandler::appendWatchersAndTooltipRequests(DebuggerCommand *cmd)
+void WatchHandler::appendWatchersAndTooltipRequests(DebuggerCommand *cmd) const
{
QJsonArray watchers;
const DebuggerToolTipContexts toolTips = m_engine->toolTipManager()->pendingTooltips();
for (const DebuggerToolTipContext &p : toolTips)
watchers.append(watcher(p.iname, p.expression));
- QMapIterator<QString, int> it(WatchHandler::watcherNames());
- while (it.hasNext()) {
- it.next();
+ for (auto it = theWatcherNames.cbegin(), end = theWatcherNames.cend(); it != end; ++it)
watchers.append(watcher("watch." + QString::number(it.value()), it.key()));
- }
+
cmd->arg("watchers", watchers);
}
diff --git a/src/plugins/debugger/watchhandler.h b/src/plugins/debugger/watchhandler.h
index 18228fc346..6d94249eea 100644
--- a/src/plugins/debugger/watchhandler.h
+++ b/src/plugins/debugger/watchhandler.h
@@ -86,8 +86,8 @@ public:
static QStringList watchedExpressions();
static QMap<QString, int> watcherNames();
- void appendFormatRequests(DebuggerCommand *cmd);
- void appendWatchersAndTooltipRequests(DebuggerCommand *cmd);
+ void appendFormatRequests(DebuggerCommand *cmd) const;
+ void appendWatchersAndTooltipRequests(DebuggerCommand *cmd) const;
QString typeFormatRequests() const;
QString individualFormatRequests() const;
diff --git a/src/plugins/designer/qtcreatorintegration.cpp b/src/plugins/designer/qtcreatorintegration.cpp
index 22f66c0258..e4bbc1f1a4 100644
--- a/src/plugins/designer/qtcreatorintegration.cpp
+++ b/src/plugins/designer/qtcreatorintegration.cpp
@@ -516,13 +516,11 @@ bool QtCreatorIntegration::navigateToSlot(const QString &objectName,
newDocTable.insert(i.value());
}
} else {
- const CppTools::WorkingCopy workingCopy =
- CppTools::CppModelManager::instance()->workingCopy();
const Utils::FilePath configFileName =
Utils::FilePath::fromString(CppTools::CppModelManager::configurationFileName());
- QHashIterator<Utils::FilePath, QPair<QByteArray, unsigned> > it = workingCopy.iterator();
- while (it.hasNext()) {
- it.next();
+ const CppTools::WorkingCopy::Table &elements =
+ CppTools::CppModelManager::instance()->workingCopy().elements();
+ for (auto it = elements.cbegin(), end = elements.cend(); it != end; ++it) {
const Utils::FilePath &fileName = it.key();
if (fileName != configFileName)
newDocTable.insert(docTable.document(fileName));
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index e8f622df8d..6a202c614c 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -321,7 +321,6 @@ private:
QString m_fileName;
};
using Marks = QHash<QChar, Mark>;
-using MarksIterator = QHashIterator<QChar, Mark>;
struct State
{
@@ -3605,8 +3604,7 @@ void FakeVimHandler::Private::updateSelection()
{
QList<QTextEdit::ExtraSelection> selections = m_extraSelections;
if (hasConfig(ConfigShowMarks)) {
- for (MarksIterator it(m_buffer->marks); it.hasNext(); ) {
- it.next();
+ for (auto it = m_buffer->marks.cbegin(), end = m_buffer->marks.cend(); it != end; ++it) {
QTextEdit::ExtraSelection sel;
sel.cursor = m_cursor;
setCursorPosition(&sel.cursor, it.value().position(document()));
@@ -5724,9 +5722,7 @@ bool FakeVimHandler::Private::handleExRegisterCommand(const ExCommand &cmd)
QByteArray regs = cmd.args.toLatin1();
if (regs.isEmpty()) {
regs = "\"0123456789";
- QHashIterator<int, Register> it(g.registers);
- while (it.hasNext()) {
- it.next();
+ for (auto it = g.registers.cbegin(), end = g.registers.cend(); it != end; ++it) {
if (it.key() > '9')
regs += char(it.key());
}
@@ -8535,10 +8531,8 @@ bool FakeVimHandler::Private::jumpToMark(QChar mark, bool backTickMode)
void FakeVimHandler::Private::updateMarks(const Marks &newMarks)
{
- for (MarksIterator it(newMarks); it.hasNext(); ) {
- it.next();
+ for (auto it = newMarks.cbegin(), end = newMarks.cend(); it != end; ++it)
m_buffer->marks[it.key()] = it.value();
- }
}
RangeMode FakeVimHandler::Private::registerRangeMode(int reg) const
diff --git a/src/plugins/git/gerrit/gerritremotechooser.cpp b/src/plugins/git/gerrit/gerritremotechooser.cpp
index 36082a3f26..9d0c465ded 100644
--- a/src/plugins/git/gerrit/gerritremotechooser.cpp
+++ b/src/plugins/git/gerrit/gerritremotechooser.cpp
@@ -103,11 +103,9 @@ bool GerritRemoteChooser::updateRemotes(bool forceReload)
m_remoteComboBox->clear();
m_remotes.clear();
QString errorMessage; // Mute errors. We'll just fallback to the defaults
- QMap<QString, QString> remotesList =
+ const QMap<QString, QString> remotesList =
Git::Internal::GitPlugin::client()->synchronousRemotesList(m_repository, &errorMessage);
- QMapIterator<QString, QString> mapIt(remotesList);
- while (mapIt.hasNext()) {
- mapIt.next();
+ for (auto mapIt = remotesList.cbegin(), end = remotesList.cend(); mapIt != end; ++mapIt) {
GerritServer server;
if (!server.fillFromRemote(mapIt.value(), *m_parameters, forceReload))
continue;
diff --git a/src/plugins/ios/iosconfigurations.cpp b/src/plugins/ios/iosconfigurations.cpp
index a7375acf6b..3a264bb4bb 100644
--- a/src/plugins/ios/iosconfigurations.cpp
+++ b/src/plugins/ios/iosconfigurations.cpp
@@ -474,9 +474,8 @@ void IosConfigurations::loadProvisioningData(bool notify)
const QSettings xcodeSettings(xcodePlistPath, QSettings::NativeFormat);
const QVariantMap teamMap = xcodeSettings.value(provisioningTeamsTag).toMap();
QList<QVariantMap> teams;
- QMapIterator<QString, QVariant> accountiterator(teamMap);
- while (accountiterator.hasNext()) {
- accountiterator.next();
+ for (auto accountiterator = teamMap.cbegin(), end = teamMap.cend();
+ accountiterator != end; ++accountiterator) {
QVariantMap teamInfo = accountiterator.value().toMap();
int provisioningTeamIsFree = teamInfo.value(freeTeamTag).toBool() ? 1 : 0;
teamInfo[freeTeamTag] = provisioningTeamIsFree;
diff --git a/src/plugins/ios/iosdevice.cpp b/src/plugins/ios/iosdevice.cpp
index 0ec0302cd5..922cf5009a 100644
--- a/src/plugins/ios/iosdevice.cpp
+++ b/src/plugins/ios/iosdevice.cpp
@@ -108,9 +108,7 @@ IosDevice::IosDevice(const QString &uid)
IDevice::DeviceInfo IosDevice::deviceInformation() const
{
IDevice::DeviceInfo res;
- QMapIterator<QString, QString> i(m_extraInfo);
- while (i.hasNext()) {
- i.next();
+ for (auto i = m_extraInfo.cbegin(), end = m_extraInfo.cend(); i != end; ++i) {
IosDeviceManager::TranslationMap tMap = IosDeviceManager::translationMap();
if (tMap.contains(i.key()))
res.append(DeviceInfoItem(tMap.value(i.key()), tMap.value(i.value(), i.value())));
@@ -131,24 +129,19 @@ DeviceProcessSignalOperation::Ptr IosDevice::signalOperation() const
void IosDevice::fromMap(const QVariantMap &map)
{
IDevice::fromMap(map);
- QVariantMap vMap = map.value(QLatin1String(Constants::EXTRA_INFO_KEY)).toMap();
- QMapIterator<QString, QVariant> i(vMap);
+
m_extraInfo.clear();
- while (i.hasNext()) {
- i.next();
+ const QVariantMap vMap = map.value(QLatin1String(Constants::EXTRA_INFO_KEY)).toMap();
+ for (auto i = vMap.cbegin(), end = vMap.cend(); i != end; ++i)
m_extraInfo.insert(i.key(), i.value().toString());
- }
}
QVariantMap IosDevice::toMap() const
{
QVariantMap res = IDevice::toMap();
QVariantMap vMap;
- QMapIterator<QString, QString> i(m_extraInfo);
- while (i.hasNext()) {
- i.next();
+ for (auto i = m_extraInfo.cbegin(), end = m_extraInfo.cend(); i != end; ++i)
vMap.insert(i.key(), i.value());
- }
res.insert(QLatin1String(Constants::EXTRA_INFO_KEY), vMap);
return res;
}
diff --git a/src/plugins/macros/macroevent.cpp b/src/plugins/macros/macroevent.cpp
index 10b4c0a632..4b0d93c34e 100644
--- a/src/plugins/macros/macroevent.cpp
+++ b/src/plugins/macros/macroevent.cpp
@@ -76,11 +76,8 @@ void MacroEvent::save(QDataStream &stream) const
{
stream << m_id.name();
stream << m_values.count();
- QMapIterator<quint8, QVariant> i(m_values);
- while (i.hasNext()) {
- i.next();
+ for (auto i = m_values.cbegin(), end = m_values.cend(); i != end; ++i)
stream << i.key() << i.value();
- }
}
Core::Id MacroEvent::id() const
diff --git a/src/plugins/macros/macrolocatorfilter.cpp b/src/plugins/macros/macrolocatorfilter.cpp
index 9c45c461fd..7e8bed5040 100644
--- a/src/plugins/macros/macrolocatorfilter.cpp
+++ b/src/plugins/macros/macrolocatorfilter.cpp
@@ -56,10 +56,8 @@ QList<Core::LocatorFilterEntry> MacroLocatorFilter::matchesFor(QFutureInterface<
const Qt::CaseSensitivity entryCaseSensitivity = caseSensitivity(entry);
const QMap<QString, Macro*> &macros = MacroManager::macros();
- QMapIterator<QString, Macro*> it(macros);
- while (it.hasNext()) {
- it.next();
+ for (auto it = macros.cbegin(), end = macros.cend(); it != end; ++it) {
const QString displayName = it.key();
const QString description = it.value()->description();
diff --git a/src/plugins/macros/macrooptionswidget.cpp b/src/plugins/macros/macrooptionswidget.cpp
index 96c1adb13e..a4e2940281 100644
--- a/src/plugins/macros/macrooptionswidget.cpp
+++ b/src/plugins/macros/macrooptionswidget.cpp
@@ -88,10 +88,7 @@ void MacroOptionsWidget::createTable()
{
QDir dir(MacroManager::macrosDirectory());
const Core::Id base = Core::Id(Constants::PREFIX_MACRO);
- QMapIterator<QString, Macro *> it(MacroManager::macros());
- while (it.hasNext()) {
- it.next();
- Macro *macro = it.value();
+ for (Macro *macro : MacroManager::macros()) {
QFileInfo fileInfo(macro->fileName());
if (fileInfo.absoluteDir() == dir.absolutePath()) {
auto macroItem = new QTreeWidgetItem(m_ui->treeWidget);
@@ -140,11 +137,8 @@ void MacroOptionsWidget::apply()
}
// Change macro
- QMapIterator<QString, QString> it(m_macroToChange);
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_macroToChange.cbegin(), end = m_macroToChange.cend(); it != end; ++it)
MacroManager::instance()->changeMacro(it.key(), it.value());
- }
// Reinitialize the page
initialize();
diff --git a/src/plugins/perforce/perforcesubmiteditor.cpp b/src/plugins/perforce/perforcesubmiteditor.cpp
index 38b1a04f1a..29b72462b0 100644
--- a/src/plugins/perforce/perforcesubmiteditor.cpp
+++ b/src/plugins/perforce/perforcesubmiteditor.cpp
@@ -54,11 +54,8 @@ QByteArray PerforceSubmitEditor::fileContents() const
const_cast<PerforceSubmitEditor*>(this)->updateEntries();
QString text;
QTextStream out(&text);
- QMapIterator<QString, QString> it(m_entries);
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_entries.cbegin(), end = m_entries.cend(); it != end; ++it)
out << it.key() << ":" << it.value();
- }
return text.toLocal8Bit();
}
diff --git a/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp b/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp
index 5c25cb83d8..098596d3c1 100644
--- a/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp
@@ -40,12 +40,7 @@ CodeStyleSettingsWidget::CodeStyleSettingsWidget(Project *project) : QWidget(),
const EditorConfiguration *config = m_project->editorConfiguration();
- QMap<Core::Id, ICodeStylePreferencesFactory *> factories
- = TextEditorSettings::codeStyleFactories();
- QMapIterator<Core::Id, ICodeStylePreferencesFactory *> it(factories);
- while (it.hasNext()) {
- it.next();
- ICodeStylePreferencesFactory *factory = it.value();
+ for (ICodeStylePreferencesFactory *factory : TextEditorSettings::codeStyleFactories()) {
Core::Id languageId = factory->languageId();
ICodeStylePreferences *codeStylePreferences = config->codeStyle(languageId);
diff --git a/src/plugins/projectexplorer/editorconfiguration.cpp b/src/plugins/projectexplorer/editorconfiguration.cpp
index 40e08d368e..a78afc440d 100644
--- a/src/plugins/projectexplorer/editorconfiguration.cpp
+++ b/src/plugins/projectexplorer/editorconfiguration.cpp
@@ -86,9 +86,8 @@ struct EditorConfigurationPrivate
EditorConfiguration::EditorConfiguration() : d(std::make_unique<EditorConfigurationPrivate>())
{
const QMap<Core::Id, ICodeStylePreferences *> languageCodeStylePreferences = TextEditorSettings::codeStyles();
- QMapIterator<Core::Id, ICodeStylePreferences *> itCodeStyle(languageCodeStylePreferences);
- while (itCodeStyle.hasNext()) {
- itCodeStyle.next();
+ for (auto itCodeStyle = languageCodeStylePreferences.cbegin(), end = languageCodeStylePreferences.cend();
+ itCodeStyle != end; ++itCodeStyle) {
Core::Id languageId = itCodeStyle.key();
// global prefs for language
ICodeStylePreferences *originalPreferences = itCodeStyle.value();
@@ -189,10 +188,11 @@ QVariantMap EditorConfiguration::toMap() const
map.insert(kCodec, d->m_textCodec->name());
map.insert(kCodeStyleCount, d->m_languageCodeStylePreferences.count());
- QMapIterator<Core::Id, ICodeStylePreferences *> itCodeStyle(d->m_languageCodeStylePreferences);
+
int i = 0;
- while (itCodeStyle.hasNext()) {
- itCodeStyle.next();
+ for (auto itCodeStyle = d->m_languageCodeStylePreferences.cbegin(),
+ end = d->m_languageCodeStylePreferences.cend();
+ itCodeStyle != end; ++itCodeStyle) {
QVariantMap settingsIdMap;
settingsIdMap.insert(QLatin1String("language"), itCodeStyle.key().toSetting());
QVariantMap value;
diff --git a/src/plugins/projectexplorer/userfileaccessor.cpp b/src/plugins/projectexplorer/userfileaccessor.cpp
index f166425a1d..676bcf7990 100644
--- a/src/plugins/projectexplorer/userfileaccessor.cpp
+++ b/src/plugins/projectexplorer/userfileaccessor.cpp
@@ -469,9 +469,7 @@ QVariantMap UserFileAccessor::prepareToWriteSettings(const QVariantMap &data) co
QVariantMap UserFileVersion14Upgrader::upgrade(const QVariantMap &map)
{
QVariantMap result;
- QMapIterator<QString, QVariant> it(map);
- while (it.hasNext()) {
- it.next();
+ for (auto it = map.cbegin(), end = map.cend(); it != end; ++it) {
if (it.value().type() == QVariant::Map)
result.insert(it.key(), upgrade(it.value().toMap()));
else if (it.key() == "AutotoolsProjectManager.AutotoolsBuildConfiguration.BuildDirectory"
diff --git a/src/plugins/qmljseditor/qmljsfindreferences.cpp b/src/plugins/qmljseditor/qmljsfindreferences.cpp
index 57796ea4bb..670fc69282 100644
--- a/src/plugins/qmljseditor/qmljsfindreferences.cpp
+++ b/src/plugins/qmljseditor/qmljsfindreferences.cpp
@@ -814,9 +814,8 @@ static void find_helper(QFutureInterface<FindReferences::Usage> &future,
// update snapshot from workingCopy to make sure it's up to date
// ### remove?
// ### this is a great candidate for map-reduce
- QHashIterator< QString, QPair<QString, int> > it(workingCopy.all());
- while (it.hasNext()) {
- it.next();
+ const ModelManagerInterface::WorkingCopy::Table &all = workingCopy.all();
+ for (auto it = all.cbegin(), end = all.cend(); it != end; ++it) {
const QString fileName = it.key();
Document::Ptr oldDoc = snapshot.document(fileName);
if (oldDoc && oldDoc->editorRevision() == it.value().second)
diff --git a/src/plugins/qmljseditor/qmljswrapinloader.cpp b/src/plugins/qmljseditor/qmljswrapinloader.cpp
index 3766dcdbbf..d83d34e23e 100644
--- a/src/plugins/qmljseditor/qmljswrapinloader.cpp
+++ b/src/plugins/qmljseditor/qmljswrapinloader.cpp
@@ -139,9 +139,7 @@ public:
// handle inner ids
QString innerIdForwarders;
- QHashIterator<QString, SourceLocation> it(innerIds);
- while (it.hasNext()) {
- it.next();
+ for (auto it = innerIds.cbegin(), end = innerIds.cend(); it != end; ++it) {
const QString innerId = it.key();
comment += tr("// Rename all outer uses of the id \"%1\" to \"%2.item.%1\".\n").arg(
innerId, loaderId);
diff --git a/src/plugins/qmljstools/qmljsfunctionfilter.cpp b/src/plugins/qmljstools/qmljsfunctionfilter.cpp
index 324f4f7559..4df32ffc8d 100644
--- a/src/plugins/qmljstools/qmljsfunctionfilter.cpp
+++ b/src/plugins/qmljstools/qmljsfunctionfilter.cpp
@@ -65,14 +65,11 @@ QList<Core::LocatorFilterEntry> FunctionFilter::matchesFor(
if (!regexp.isValid())
return goodEntries;
- QHashIterator<QString, QList<LocatorData::Entry> > it(m_data->entries());
- while (it.hasNext()) {
+ const QHash<QString, QList<LocatorData::Entry> > entries = m_data->entries();
+ for (const QList<LocatorData::Entry> &items : entries) {
if (future.isCanceled())
break;
- it.next();
-
- const QList<LocatorData::Entry> items = it.value();
for (const LocatorData::Entry &info : items) {
if (info.type != LocatorData::Function)
continue;
diff --git a/src/plugins/qtsupport/screenshotcropper.cpp b/src/plugins/qtsupport/screenshotcropper.cpp
index 79e10a8b84..4595e41143 100644
--- a/src/plugins/qtsupport/screenshotcropper.cpp
+++ b/src/plugins/qtsupport/screenshotcropper.cpp
@@ -152,9 +152,7 @@ bool ScreenshotCropper::saveAreasOfInterest(const QString &areasXmlFile, QMap<QS
writer.setAutoFormatting(true);
writer.writeStartDocument();
writer.writeStartElement(xmlTagAreas);
- QMapIterator<QString, QRect> i(areas);
- while (i.hasNext()) {
- i.next();
+ for (auto i = areas.cbegin(), end = areas.cend(); i != end; ++i) {
writer.writeStartElement(xmlTagArea);
writer.writeAttribute(xmlAttributeImage, i.key());
writer.writeAttribute(xmlAttributeX, QString::number(i.value().x()));
diff --git a/src/plugins/scxmleditor/plugin_interface/scxmldocument.cpp b/src/plugins/scxmleditor/plugin_interface/scxmldocument.cpp
index 4b7d61175c..033a6fbe1f 100644
--- a/src/plugins/scxmleditor/plugin_interface/scxmldocument.cpp
+++ b/src/plugins/scxmleditor/plugin_interface/scxmldocument.cpp
@@ -133,17 +133,15 @@ void ScxmlDocument::addNamespace(ScxmlNamespace *ns)
ScxmlTag *scxmlTag = scxmlRootTag();
if (scxmlTag) {
- QMapIterator<QString, ScxmlNamespace*> i(m_namespaces);
- while (i.hasNext()) {
- i.next();
- QString prefix = i.value()->prefix();
+ for (ScxmlNamespace *ns : qAsConst(m_namespaces)) {
+ QString prefix = ns->prefix();
if (prefix.isEmpty())
prefix = "xmlns";
if (prefix.startsWith("xmlns"))
- scxmlTag->setAttribute(prefix, i.value()->name());
+ scxmlTag->setAttribute(prefix, ns->name());
else
- scxmlTag->setAttribute(QString::fromLatin1("xmlns:%1").arg(prefix), i.value()->name());
+ scxmlTag->setAttribute(QString::fromLatin1("xmlns:%1").arg(prefix), ns->name());
}
}
}
@@ -172,17 +170,15 @@ bool ScxmlDocument::generateSCXML(QIODevice *io, ScxmlTag *tag) const
ScxmlTag *ScxmlDocument::createScxmlTag()
{
auto tag = new ScxmlTag(Scxml, this);
- QMapIterator<QString, ScxmlNamespace*> i(m_namespaces);
- while (i.hasNext()) {
- i.next();
- QString prefix = i.value()->prefix();
+ for (ScxmlNamespace *ns : m_namespaces) {
+ QString prefix = ns->prefix();
if (prefix.isEmpty())
prefix = "xmlns";
if (prefix.startsWith("xmlns"))
- tag->setAttribute(prefix, i.value()->name());
+ tag->setAttribute(prefix, ns->name());
else
- tag->setAttribute(QString::fromLatin1("xmlns:%1").arg(prefix), i.value()->name());
+ tag->setAttribute(QString::fromLatin1("xmlns:%1").arg(prefix), ns->name());
}
return tag;
}
diff --git a/src/plugins/scxmleditor/plugin_interface/scxmltag.cpp b/src/plugins/scxmleditor/plugin_interface/scxmltag.cpp
index f44ca314b6..b037fb9bb9 100644
--- a/src/plugins/scxmleditor/plugin_interface/scxmltag.cpp
+++ b/src/plugins/scxmleditor/plugin_interface/scxmltag.cpp
@@ -552,11 +552,8 @@ void ScxmlTag::writeXml(QXmlStreamWriter &xml)
// Write editorinfo if necessary
if (!m_editorInfo.isEmpty()) {
xml.writeStartElement("qt:editorinfo");
- QHashIterator<QString, QString> i(m_editorInfo);
- while (i.hasNext()) {
- i.next();
+ for (auto i = m_editorInfo.cbegin(), end = m_editorInfo.cend(); i != end; ++i)
xml.writeAttribute(i.key(), i.value());
- }
xml.writeEndElement();
}
diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp
index b3feef13f0..1ffe348c0c 100644
--- a/src/plugins/texteditor/basefilefind.cpp
+++ b/src/plugins/texteditor/basefilefind.cpp
@@ -496,10 +496,8 @@ QStringList BaseFileFind::replaceAll(const QString &text,
changes[QDir::fromNativeSeparators(item.path.first())].append(item);
// Checking for files without write permissions
- QHashIterator<QString, QList<SearchResultItem> > it(changes);
QSet<FilePath> roFiles;
- while (it.hasNext()) {
- it.next();
+ for (auto it = changes.cbegin(), end = changes.cend(); it != end; ++it) {
const QFileInfo fileInfo(it.key());
if (!fileInfo.isWritable())
roFiles.insert(FilePath::fromString(it.key()));
@@ -513,9 +511,7 @@ QStringList BaseFileFind::replaceAll(const QString &text,
return QStringList();
}
- it.toFront();
- while (it.hasNext()) {
- it.next();
+ for (auto it = changes.cbegin(), end = changes.cend(); it != end; ++it) {
const QString fileName = it.key();
const QList<SearchResultItem> changeItems = it.value();
diff --git a/src/plugins/texteditor/colorscheme.cpp b/src/plugins/texteditor/colorscheme.cpp
index ad756be2c7..80733e7ee1 100644
--- a/src/plugins/texteditor/colorscheme.cpp
+++ b/src/plugins/texteditor/colorscheme.cpp
@@ -251,9 +251,8 @@ bool ColorScheme::save(const QString &fileName, QWidget *parent) const
if (!m_displayName.isEmpty())
w.writeAttribute(QLatin1String("name"), m_displayName);
- QMapIterator<TextStyle, Format> i(m_formats);
- while (i.hasNext()) {
- const Format &format = i.next().value();
+ for (auto i = m_formats.cbegin(), end = m_formats.cend(); i != end; ++i) {
+ const Format &format = i.value();
w.writeStartElement(QLatin1String("style"));
w.writeAttribute(QLatin1String("name"), QString::fromLatin1(Constants::nameForStyle(i.key())));
if (format.foreground().isValid())
diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp
index bdc7e7a583..3d66f387e4 100644
--- a/src/plugins/texteditor/texteditorsettings.cpp
+++ b/src/plugins/texteditor/texteditorsettings.cpp
@@ -473,7 +473,7 @@ void TextEditorSettings::unregisterCodeStyleFactory(Core::Id languageId)
d->m_languageToFactory.remove(languageId);
}
-QMap<Core::Id, ICodeStylePreferencesFactory *> TextEditorSettings::codeStyleFactories()
+const QMap<Core::Id, ICodeStylePreferencesFactory *> &TextEditorSettings::codeStyleFactories()
{
return d->m_languageToFactory;
}
diff --git a/src/plugins/texteditor/texteditorsettings.h b/src/plugins/texteditor/texteditorsettings.h
index 013ed790ae..675c459d2e 100644
--- a/src/plugins/texteditor/texteditorsettings.h
+++ b/src/plugins/texteditor/texteditorsettings.h
@@ -79,7 +79,7 @@ public:
static const CommentsSettings &commentsSettings();
static ICodeStylePreferencesFactory *codeStyleFactory(Core::Id languageId);
- static QMap<Core::Id, ICodeStylePreferencesFactory *> codeStyleFactories();
+ static const QMap<Core::Id, ICodeStylePreferencesFactory *> &codeStyleFactories();
static void registerCodeStyleFactory(ICodeStylePreferencesFactory *codeStyleFactory);
static void unregisterCodeStyleFactory(Core::Id languageId);
diff --git a/src/plugins/todo/todoitemsprovider.cpp b/src/plugins/todo/todoitemsprovider.cpp
index ef3040054d..de83d31d4e 100644
--- a/src/plugins/todo/todoitemsprovider.cpp
+++ b/src/plugins/todo/todoitemsprovider.cpp
@@ -122,13 +122,11 @@ void TodoItemsProvider::createScanners()
void TodoItemsProvider::setItemsListWithinStartupProject()
{
- QHashIterator<FilePath, QList<TodoItem> > it(m_itemsHash);
const auto filePaths = Utils::toSet(m_startupProject->files(Project::SourceFiles));
QVariantMap settings = m_startupProject->namedSettings(Constants::SETTINGS_NAME_KEY).toMap();
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_itemsHash.cbegin(), end = m_itemsHash.cend(); it != end; ++it) {
const FilePath filePath = it.key();
if (filePaths.contains(filePath)) {
bool skip = false;
@@ -160,9 +158,7 @@ void TodoItemsProvider::setItemsListWithinSubproject()
// files must be both in the current subproject and the startup-project.
const auto fileNames = Utils::toSet(m_startupProject->files(Project::SourceFiles));
- QHashIterator<FilePath, QList<TodoItem> > it(m_itemsHash);
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_itemsHash.cbegin(), end = m_itemsHash.cend(); it != end; ++it) {
if (subprojectFileNames.contains(it.key()) && fileNames.contains(it.key()))
m_itemsList << it.value();
}
diff --git a/src/tools/clangbackend/source/clangjobqueue.cpp b/src/tools/clangbackend/source/clangjobqueue.cpp
index fab939c588..1be56b3b6c 100644
--- a/src/tools/clangbackend/source/clangjobqueue.cpp
+++ b/src/tools/clangbackend/source/clangjobqueue.cpp
@@ -239,9 +239,8 @@ JobRequests JobQueue::takeJobRequestsToRunNow()
using TranslationUnitIds = QSet<Utf8String>;
TranslationUnitIds translationUnitsScheduledForThisRun;
- QMutableVectorIterator<JobRequest> i(m_queue);
- while (i.hasNext()) {
- const JobRequest &request = i.next();
+ for (int pos = 0; pos < m_queue.size(); ++pos) {
+ const JobRequest &request = m_queue.at(pos);
try {
const Document &document = m_documents.document(request.filePath);
@@ -258,7 +257,7 @@ JobRequests JobQueue::takeJobRequestsToRunNow()
translationUnitsScheduledForThisRun.insert(id);
jobsToRun += request;
- i.remove();
+ m_queue.removeAt(pos--);
} catch (const std::exception &exception) {
qWarning() << "Error in Jobs::takeJobRequestsToRunNow for"
<< request << ":" << exception.what();