diff options
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | autotests/kconfigtest.cpp | 24 | ||||
| -rw-r--r-- | src/core/kauthorized.cpp | 2 | ||||
| -rw-r--r-- | src/core/kconfig.cpp | 17 | ||||
| -rw-r--r-- | src/core/kconfiggroup.h | 7 | ||||
| -rw-r--r-- | src/core/kconfigini.cpp | 2 | ||||
| -rw-r--r-- | src/core/kcoreconfigskeleton.cpp | 6 | ||||
| -rw-r--r-- | src/core/kdesktopfile.cpp | 14 | ||||
| -rw-r--r-- | src/core/ksharedconfig.cpp | 2 | ||||
| -rw-r--r-- | src/gui/kconfigloader.cpp | 7 | ||||
| -rw-r--r-- | src/kconf_update/kconf_update.cpp | 18 | ||||
| -rw-r--r-- | src/kconf_update/kconfigutils.cpp | 2 | ||||
| -rw-r--r-- | src/kconfig_compiler/kconfig_compiler.cpp | 11 | ||||
| -rw-r--r-- | src/kreadconfig/kreadconfig.cpp | 4 | ||||
| -rw-r--r-- | src/kreadconfig/kwriteconfig.cpp | 4 | 
15 files changed, 70 insertions, 51 deletions
| diff --git a/CMakeLists.txt b/CMakeLists.txt index 21c078fb..b9d1585f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,6 +44,7 @@ ecm_setup_version(PROJECT VARIABLE_PREFIX KCONFIG                          PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ConfigConfigVersion.cmake"                          SOVERSION 5) +add_definitions(-DQT_NO_FOREACH)  add_subdirectory(src)  if (BUILD_TESTING) diff --git a/autotests/kconfigtest.cpp b/autotests/kconfigtest.cpp index 2ad3b312..32d3eef8 100644 --- a/autotests/kconfigtest.cpp +++ b/autotests/kconfigtest.cpp @@ -338,7 +338,8 @@ void KConfigTest::testSimple()      QCOMPARE(sc2.name(), QString(TEST_SUBDIR "kconfigtest"));      // make sure groupList() isn't returning something it shouldn't -    Q_FOREACH (const QString &group, sc2.groupList()) { +    const QStringList lstGroup = sc2.groupList(); +    for (const QString &group : lstGroup) {          QVERIFY(!group.isEmpty() && group != "<default>");          QVERIFY(!group.contains(QChar(0x1d)));      } @@ -853,14 +854,16 @@ void KConfigTest::testDelete()      QVERIFY(cf.sync());      int count = 0; -    Q_FOREACH (const QByteArray &item, readLines()) +    const QList<QByteArray> listLines = readLines(); +    for (const QByteArray &item : listLines)          if (item.startsWith("devices|")) { // krazy:exclude=strings              count++;          }      QCOMPARE(count, 2);      cg.deleteEntry("devices|manual|/mnt/ipod");      QVERIFY(cf.sync()); -    Q_FOREACH (const QByteArray &item, readLines()) { +    const QList<QByteArray> listLines2 = readLines(); +    for (const QByteArray &item : listLines2) {          QVERIFY(!item.contains("ipod"));      }  } @@ -898,7 +901,8 @@ void KConfigTest::testDefaultGroup()      QCOMPARE(lines.first(), QByteArray("TestKey=defaultGroup\n"));      // Now that the group exists make sure it isn't returned from groupList() -    Q_FOREACH (const QString &group, sc.groupList()) { +    const QStringList groupList = sc.groupList(); +    for (const QString &group : groupList) {          QVERIFY(!group.isEmpty() && group != "<default>");      } @@ -943,7 +947,8 @@ void KConfigTest::testEmptyGroup()      QCOMPARE(lines.first(), QByteArray("TestKey=emptyGroup\n"));      // Now that the group exists make sure it isn't returned from groupList() -    Q_FOREACH (const QString &group, sc.groupList()) { +    const QStringList groupList = sc.groupList(); +    for (const QString &group : groupList) {          QVERIFY(!group.isEmpty() && group != "<default>");      }      emptyGroup.deleteGroup(); @@ -1048,7 +1053,7 @@ void KConfigTest::testMerge()                << "entry[fr]=French\n";          QFile file(testConfigDir() + "/mergetest");          file.open(QIODevice::ReadOnly | QIODevice::Text); -        Q_FOREACH (const QByteArray &line, lines) { +        for (const QByteArray &line : qAsConst(lines)) {              QCOMPARE(line, file.readLine());          }      } @@ -1111,7 +1116,7 @@ void KConfigTest::testOptionOrder()          QFile file(testConfigDir() + "/doubleattrtest");          file.open(QIODevice::ReadOnly | QIODevice::Text); -        Q_FOREACH (const QByteArray &line, lines) { +        for (const QByteArray &line : qAsConst(lines)) {              QCOMPARE(line, file.readLine());          }      } @@ -1190,7 +1195,8 @@ void KConfigTest::testSubGroup()      QCOMPARE(groups, QStringList() << "NEG Child1" << "NEG Child4");      // make sure groupList() isn't returning something it shouldn't -    Q_FOREACH (const QString &group, sc.groupList()) { +    const QStringList listGroup = sc.groupList(); +    for (const QString &group : listGroup) {          QVERIFY(!group.isEmpty() && group != "<default>");          QVERIFY(!group.contains(QChar(0x1d)));          QVERIFY(!group.contains("subgroup")); @@ -1866,7 +1872,7 @@ void KConfigTest::testThreads()      // QEXPECT_FAIL triggers race conditions, it should be fixed to use QThreadStorage...      //futures << QtConcurrent::run(this, &KConfigTest::testDeleteWhenLocalized);      //futures << QtConcurrent::run(this, &KConfigTest::testEntryMap); -    Q_FOREACH (QFuture<void> f, futures) { // krazy:exclude=foreach +    for (QFuture<void> f : qAsConst(futures)) { // krazy:exclude=foreach          f.waitForFinished();      }  } diff --git a/src/core/kauthorized.cpp b/src/core/kauthorized.cpp index b6054d76..12068dc5 100644 --- a/src/core/kauthorized.cpp +++ b/src/core/kauthorized.cpp @@ -391,7 +391,7 @@ KCONFIGCORE_EXPORT bool authorizeUrlActionInternal(const QString &action, const      QUrl destURL(_destURL);      destURL.setPath(QDir::cleanPath(destURL.path())); -    Q_FOREACH (const URLActionRule &rule, d->urlActionRestrictions) { +    for (const URLActionRule &rule : qAsConst(d->urlActionRestrictions)) {          if ((result != rule.permission) && // No need to check if it doesn't make a difference                  (action == QLatin1String(rule.action.constData())) &&                  rule.baseMatch(baseURL, baseClass) && diff --git a/src/core/kconfig.cpp b/src/core/kconfig.cpp index bdf89b1e..b78196d6 100644 --- a/src/core/kconfig.cpp +++ b/src/core/kconfig.cpp @@ -706,10 +706,10 @@ QStringList KConfigPrivate::getGlobalFiles() const          const bool useEtcKderc = !etc_kderc.isEmpty();          s_globalFiles()->reserve(paths1.size() + paths2.size() + (useEtcKderc ? 1 : 0)); -        Q_FOREACH (const QString &dir1, paths1) { +        for (const QString &dir1 : paths1) {              s_globalFiles()->push_front(dir1);          } -        Q_FOREACH (const QString &dir2, paths2) { +        for (const QString &dir2 : paths2) {              s_globalFiles()->push_front(dir2);          } @@ -729,7 +729,7 @@ void KConfigPrivate::parseGlobalFiles()      // TODO: can we cache the values in etc_kderc / other global files      //       on a per-application basis?      const QByteArray utf8Locale = locale.toUtf8(); -    Q_FOREACH (const QString &file, globalFiles) { +    for (const QString &file : globalFiles) {          KConfigBackend::ParseOptions parseOpts = KConfigBackend::ParseGlobal | KConfigBackend::ParseExpansions;          if (file.compare(*sGlobalFileName, sPathCaseSensitivity) != 0) @@ -760,7 +760,8 @@ void KConfigPrivate::parseConfigFiles()                          files << canonicalFile;                      }                  } else { -                    Q_FOREACH (const QString &f, QStandardPaths::locateAll(resourceType, fileName)) { +                    const QStringList localFilesPath = QStandardPaths::locateAll(resourceType, fileName); +                    for (const QString &f : localFilesPath) {                          files.prepend(QFileInfo(f).canonicalFilePath());                      } @@ -781,7 +782,7 @@ void KConfigPrivate::parseConfigFiles()  //        qDebug() << "parsing local files" << files;          const QByteArray utf8Locale = locale.toUtf8(); -        foreach (const QString &file, files) { +        for (const QString &file : qAsConst(files)) {              if (file.compare(mBackend->filePath(), sPathCaseSensitivity) == 0) {                  switch (mBackend->parseConfig(utf8Locale, entryMap, KConfigBackend::ParseExpansions)) {                  case KConfigBackend::ParseOk: @@ -816,7 +817,7 @@ KConfig::AccessMode KConfig::accessMode() const  void KConfig::addConfigSources(const QStringList &files)  {      Q_D(KConfig); -    Q_FOREACH (const QString &file, files) { +    for (const QString &file : files) {          d->extraFiles.push(file);      } @@ -931,9 +932,9 @@ void KConfig::deleteGroupImpl(const QByteArray &aGroup, WriteConfigFlags flags)      KEntryMap::EntryOptions options = convertToOptions(flags) | KEntryMap::EntryDeleted;      const QSet<QByteArray> groups = d->allSubGroups(aGroup); -    Q_FOREACH (const QByteArray &group, groups) { +    for (const QByteArray &group : groups) {          const QStringList keys = d->keyListImpl(group); -        Q_FOREACH (const QString &_key, keys) { +        for (const QString &_key : keys) {              const QByteArray &key = _key.toUtf8();              if (d->canWriteEntry(group, key.constData())) {                  d->entryMap.setEntry(group, key, QByteArray(), options); diff --git a/src/core/kconfiggroup.h b/src/core/kconfiggroup.h index f5e16fdb..0cedeaa7 100644 --- a/src/core/kconfiggroup.h +++ b/src/core/kconfiggroup.h @@ -731,12 +731,13 @@ QList<T> KConfigGroup::readEntry(const char *key, const QList<T> &defaultValue)      QVariantList data; -    Q_FOREACH (const T &value, defaultValue) { +    for (const T &value : defaultValue) {          data.append(qVariantFromValue(value));      }      QList<T> list; -    Q_FOREACH (const QVariant &value, readEntry<QVariantList>(key, data)) { +    const auto variantList = readEntry<QVariantList>(key, data); +    for (const QVariant &value : variantList) {          Q_ASSERT(value.canConvert<T>());          list.append(qvariant_cast<T>(value));      } @@ -757,7 +758,7 @@ void KConfigGroup::writeEntry(const char *key, const QList<T> &list, WriteConfig      ConversionCheck::to_QVariant<T>();      ConversionCheck::to_QString<T>();      QVariantList data; -    Q_FOREACH (const T &value, list) { +    for (const T &value : list) {          data.append(qVariantFromValue(value));      } diff --git a/src/core/kconfigini.cpp b/src/core/kconfigini.cpp index 87c4a8af..26d8390c 100644 --- a/src/core/kconfigini.cpp +++ b/src/core/kconfigini.cpp @@ -299,7 +299,7 @@ KConfigIniBackend::parseConfig(const QByteArray ¤tLocale, KEntryMap &entry      }      // now make sure immutable groups are marked immutable -    Q_FOREACH (const QByteArray &group, immutableGroups) { +    for (const QByteArray &group : qAsConst(immutableGroups)) {          entryMap.setEntry(group, QByteArray(), QByteArray(), KEntryMap::EntryImmutable);      } diff --git a/src/core/kcoreconfigskeleton.cpp b/src/core/kcoreconfigskeleton.cpp index 01f69cbe..50f91e93 100644 --- a/src/core/kcoreconfigskeleton.cpp +++ b/src/core/kcoreconfigskeleton.cpp @@ -902,12 +902,12 @@ void KCoreConfigSkeleton::ItemUrlList::readConfig(KConfig *config)          mReference = mDefault;      } else {          QStringList strList; -        Q_FOREACH (const QUrl &url, mDefault) { +        for (const QUrl &url : qAsConst(mDefault)) {              strList.append(url.toString());          }          mReference.clear();          const QStringList readList = cg.readEntry<QStringList>(mKey, strList); -        Q_FOREACH (const QString &str, readList) { +        for (const QString &str : readList) {              mReference.append(QUrl(str));          }      } @@ -924,7 +924,7 @@ void KCoreConfigSkeleton::ItemUrlList::writeConfig(KConfig *config)              cg.revertToDefault(mKey);          } else {              QStringList strList; -            Q_FOREACH (const QUrl &url, mReference) { +            for (const QUrl &url : qAsConst(mReference)) {                  strList.append(url.toString());              }              cg.writeEntry<QStringList>(mKey, strList); diff --git a/src/core/kdesktopfile.cpp b/src/core/kdesktopfile.cpp index 96d7b118..d9283cef 100644 --- a/src/core/kdesktopfile.cpp +++ b/src/core/kdesktopfile.cpp @@ -81,14 +81,16 @@ QString KDesktopFile::locateLocal(const QString &path)      QString relativePath;      QChar plus(QLatin1Char('/'));      // Relative to config? (e.g. for autostart) -    Q_FOREACH (const QString &dir, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) { +    const QStringList lstGenericConfigLocation = QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation); +    for (const QString &dir : lstGenericConfigLocation) {          if (path.startsWith(dir + plus)) {              relativePath = path.mid(dir.length() + 1);              return QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QLatin1Char('/') + relativePath;          }      }      // Relative to xdg data dir? (much more common) -    Q_FOREACH (const QString &dir, QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation)) { +    const QStringList lstGenericDataLocation = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation); +    for (const QString &dir : lstGenericDataLocation) {          if (path.startsWith(dir + plus)) {              relativePath = path.mid(dir.length() + 1);          } @@ -128,13 +130,14 @@ bool KDesktopFile::isAuthorizedDesktopFile(const QString &path)      // Check if the .desktop file is installed as part of KDE or XDG.      const QStringList appsDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation); -    Q_FOREACH (const QString &prefix, appsDirs) { +    for (const QString &prefix : appsDirs) {          if (QDir(prefix).exists() && realPath.startsWith(QFileInfo(prefix).canonicalFilePath(), sensitivity)) {              return true;          }      }      const QString servicesDir = QStringLiteral("kservices5/"); // KGlobal::dirs()->xdgDataRelativePath("services") -    Q_FOREACH (const QString &xdgDataPrefix, QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation)) { +    const QStringList lstGenericDataLocation = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation); +    for (const QString &xdgDataPrefix : lstGenericDataLocation) {          if (QDir(xdgDataPrefix).exists()) {              const QString prefix = QFileInfo(xdgDataPrefix).canonicalFilePath();              if (realPath.startsWith(prefix + QLatin1Char('/') + servicesDir, sensitivity)) { @@ -143,7 +146,8 @@ bool KDesktopFile::isAuthorizedDesktopFile(const QString &path)          }      }      const QString autostartDir = QStringLiteral("autostart/"); -    Q_FOREACH (const QString &xdgDataPrefix, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) { +    const QStringList lstConfigPath = QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation); +    for (const QString &xdgDataPrefix : lstConfigPath) {          if (QDir(xdgDataPrefix).exists()) {              const QString prefix = QFileInfo(xdgDataPrefix).canonicalFilePath();              if (realPath.startsWith(prefix + QLatin1Char('/') + autostartDir, sensitivity)) { diff --git a/src/core/ksharedconfig.cpp b/src/core/ksharedconfig.cpp index 52a2d23d..0b2b9c35 100644 --- a/src/core/ksharedconfig.cpp +++ b/src/core/ksharedconfig.cpp @@ -90,7 +90,7 @@ KSharedConfigPtr KSharedConfig::openConfig(const QString &_fileName,          list->mainConfig = nullptr;      } -    foreach (auto cfg, *static_cast<const GlobalSharedConfigList*>(list)) { +    for (auto cfg :  qAsConst(*list)) {          if (cfg->name() == fileName &&                  cfg->d_ptr->openFlags == flags &&                  cfg->locationType() == resType diff --git a/src/gui/kconfigloader.cpp b/src/gui/kconfigloader.cpp index e73b161b..bcf21464 100644 --- a/src/gui/kconfigloader.cpp +++ b/src/gui/kconfigloader.cpp @@ -270,9 +270,9 @@ void ConfigLoaderHandler::addItem()          }          item = doubleItem;      } else if (m_type == QStringLiteral("intlist")) { -        QStringList tmpList = m_default.split(QLatin1Char(',')); +        const QStringList tmpList = m_default.split(QLatin1Char(','));          QList<int> defaultList; -        foreach (const QString &tmp, tmpList) { +        for (const QString &tmp : tmpList) {              defaultList.append(tmp.toInt());          }          item = m_config->addItemIntList(m_name, *d->newIntList(), defaultList, m_key); @@ -428,7 +428,8 @@ QStringList KConfigLoader::groupList() const  bool KConfigLoader::usrWriteConfig()  {      if (d->saveDefaults) { -        foreach (const auto& item, items()) { +        const auto listItems = items(); +        for (const auto& item : listItems) {              config()->group(item->group()).writeEntry(item->key(), "");          }      } diff --git a/src/kconf_update/kconf_update.cpp b/src/kconf_update/kconf_update.cpp index 89a742ec..c389cda2 100644 --- a/src/kconf_update/kconf_update.cpp +++ b/src/kconf_update/kconf_update.cpp @@ -146,7 +146,7 @@ KonfUpdate::KonfUpdate(QCommandLineParser *parser)          updateAll = true;      } -    foreach (const QString& file, updateFiles) { +    for (const QString& file : qAsConst(updateFiles)) {          updateFile(file);      } @@ -211,11 +211,11 @@ QStringList KonfUpdate::findUpdateFiles(bool dirtyOnly)      QStringList result;      const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("kconf_update"), QStandardPaths::LocateDirectory); -    Q_FOREACH (const QString &d, dirs) { +    for (const QString &d : dirs) {          const QDir dir(d);          const QStringList fileNames = dir.entryList(QStringList(QStringLiteral("*.upd"))); -        Q_FOREACH (const QString &fileName, fileNames) { +        for (const QString &fileName : fileNames) {              const QString file = dir.filePath(fileName);              QFileInfo info(file); @@ -637,12 +637,14 @@ void KonfUpdate::copyOrMoveGroup(const QStringList &srcGroupPath, const QStringL      KConfigGroup cg = KConfigUtils::openGroup(m_oldConfig1, srcGroupPath);      // Keys -    Q_FOREACH (const QString &key, cg.keyList()) { +    const QStringList lstKeys = cg.keyList(); +    for (const QString &key : lstKeys) {          copyOrMoveKey(srcGroupPath, key, dstGroupPath, key);      }      // Subgroups -    Q_FOREACH (const QString &group, cg.groupList()) { +    const QStringList lstGroup = cg.groupList(); +    for (const QString &group : lstGroup) {          const QStringList groupPath(group);          copyOrMoveGroup(srcGroupPath + groupPath, dstGroupPath + groupPath);      } @@ -737,7 +739,8 @@ void KonfUpdate::copyGroup(const KConfigGroup &cg1, KConfigGroup &cg2)      }      // Copy subgroups -    Q_FOREACH (const QString &group, cg1.groupList()) { +    const QStringList lstGroup = cg1.groupList(); +    for (const QString &group : lstGroup) {          copyGroup(&cg1, group, &cg2, group);      }  } @@ -935,7 +938,8 @@ void KonfUpdate::gotScript(const QString &_script)          KConfigGroup dstCg = KConfigUtils::openGroup(m_newConfig, m_newGroup);          copyGroup(srcCg, dstCg);      } -    Q_FOREACH (const QString &group, scriptOutConfig.groupList()) { +    const QStringList lstGroup = scriptOutConfig.groupList(); +    for (const QString &group : lstGroup) {          copyGroup(&scriptOutConfig, group, m_newConfig, group);      }  } diff --git a/src/kconf_update/kconfigutils.cpp b/src/kconf_update/kconfigutils.cpp index 0a2741ea..8f0aa90c 100644 --- a/src/kconf_update/kconfigutils.cpp +++ b/src/kconf_update/kconfigutils.cpp @@ -37,7 +37,7 @@ KConfigGroup openGroup(KConfig *config, const QStringList &lst)  {      KConfigGroup cg = config->group(""); -    foreach (const auto &i, lst) { +    for (const auto &i : lst) {          cg = cg.group(i);      }      return cg; diff --git a/src/kconfig_compiler/kconfig_compiler.cpp b/src/kconfig_compiler/kconfig_compiler.cpp index f04d0bd5..da75ad94 100644 --- a/src/kconfig_compiler/kconfig_compiler.cpp +++ b/src/kconfig_compiler/kconfig_compiler.cpp @@ -1451,7 +1451,8 @@ QString memberMutatorBody(CfgEntry *e, const CfgConfig &cfg)      out << " ))" << (hasBody ? " {" : "") << endl;      out << "  " << varExpression << " = v;" << endl; -    Q_FOREACH (const Signal &signal, e->signalList()) { +    const auto listSignal = e->signalList(); +    for (const Signal &signal : listSignal) {          if (signal.modify) {              out << "  Q_EMIT " << This << signal.name << "();" << endl;          } else { @@ -1532,7 +1533,7 @@ void beginNamespaces(const QString &p_ns, QTextStream &p_out)  {      if (!p_ns.isEmpty()) {          const QStringList nameSpaces = p_ns.split(QStringLiteral("::")); -        foreach (const QString &ns, nameSpaces) { +        for (const QString &ns : nameSpaces) {              p_out << "namespace " << ns << " {" << endl;          }          p_out << endl; @@ -2075,7 +2076,7 @@ int main(int argc, char **argv)          h << "    };" << dec << endl << endl;          h << "  Q_SIGNALS:"; -        Q_FOREACH (const Signal &signal, signalList) { +        for (const Signal &signal : qAsConst(signalList)) {              h << endl;              if (!signal.label.isEmpty()) {                  h << "    /**" << endl; @@ -2620,7 +2621,7 @@ int main(int argc, char **argv)          cpp << "{" << endl;          cpp << "  const bool res = " << cfg.inherits << "::usrSave();" << endl;          cpp << "  if (!res) return false;" << endl << endl; -        Q_FOREACH (const Signal &signal, signalList) { +        for (const Signal &signal : qAsConst(signalList)) {              if (signal.modify) {                  continue;              } @@ -2665,7 +2666,7 @@ int main(int argc, char **argv)          if (!signalList.isEmpty())              cpp << endl; -        Q_FOREACH (const Signal &signal, signalList) { +        for (const Signal &signal : qAsConst(signalList)) {              if (signal.modify) {                  cpp << "  if ( flags & " << signalEnumName(signal.name) << " ) {" << endl;                  cpp << "    Q_EMIT " << signal.name << "();" << endl; diff --git a/src/kreadconfig/kreadconfig.cpp b/src/kreadconfig/kreadconfig.cpp index cad7e501..70e40b29 100644 --- a/src/kreadconfig/kreadconfig.cpp +++ b/src/kreadconfig/kreadconfig.cpp @@ -61,7 +61,7 @@ int main(int argc, char **argv)  	parser.process(app); -    QStringList groups=parser.values(QStringLiteral("group")); +    const QStringList groups=parser.values(QStringLiteral("group"));      QString key=parser.value(QStringLiteral("key"));      QString file=parser.value(QStringLiteral("file"));      QString dflt=parser.value(QStringLiteral("default")); @@ -83,7 +83,7 @@ int main(int argc, char **argv)  		configMustDeleted=true;  	}  	KConfigGroup cfgGroup = konfig->group(QString()); -	foreach (const QString &grp, groups) +    for (const QString &grp : groups)  		cfgGroup = cfgGroup.group(grp);      if(type==QStringLiteral("bool")) {  		dflt=dflt.toLower(); diff --git a/src/kreadconfig/kwriteconfig.cpp b/src/kreadconfig/kwriteconfig.cpp index 2168e8a9..bb2c892f 100644 --- a/src/kreadconfig/kwriteconfig.cpp +++ b/src/kreadconfig/kwriteconfig.cpp @@ -40,7 +40,7 @@ int main(int argc, char **argv)      parser.process(app); -    QStringList groups=parser.values(QStringLiteral("group")); +    const QStringList groups=parser.values(QStringLiteral("group"));      QString key=parser.value(QStringLiteral("key"));      QString file=parser.value(QStringLiteral("file"));      QString type=parser.value(QStringLiteral("type")).toLower(); @@ -58,7 +58,7 @@ int main(int argc, char **argv)          konfig = new KConfig( file, KConfig::NoGlobals );      KConfigGroup cfgGroup = konfig->group(QString()); -    foreach (const QString &grp, groups) +    for (const QString &grp : groups)          cfgGroup = cfgGroup.group(grp);      if ( konfig->accessMode() != KConfig::ReadWrite || cfgGroup.isEntryImmutable( key ) ) return 2; | 
