From 4f81a64533703704518522d193f234a4f37a3654 Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Wed, 6 Oct 2021 01:10:16 +0200 Subject: [PATCH] Code cleanup - More range-for - Reverse iterators instead of java-style ones with toBack/hasPrevious - Don't use a QSet (which is based on QHash) to hold a few items --- src/Application.cpp | 10 +++++----- src/ProcessInfo.cpp | 22 +++++++++------------- src/ProcessInfo.h | 4 ++-- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/Application.cpp b/src/Application.cpp index 63f392c6..e0d62368 100644 --- a/src/Application.cpp +++ b/src/Application.cpp @@ -364,12 +364,12 @@ void Application::createTabFromArgs(MainWindow *window, const QHashisSet(QStringLiteral("new-tab"))) { - QListIterator iter(QApplication::topLevelWidgets()); - iter.toBack(); - while (iter.hasPrevious()) { - window = qobject_cast(iter.previous()); - if (window != nullptr) { + const QList list = QApplication::topLevelWidgets(); + for (auto it = list.crbegin(), endIt = list.crend(); it != endIt; ++it) { + window = qobject_cast(*it); + if (window) { break; } } diff --git a/src/ProcessInfo.cpp b/src/ProcessInfo.cpp index 657a8bef..6fb88604 100644 --- a/src/ProcessInfo.cpp +++ b/src/ProcessInfo.cpp @@ -114,9 +114,9 @@ QString ProcessInfo::validCurrentDir() const return dir; } -QSet ProcessInfo::_commonDirNames; +QStringList ProcessInfo::_commonDirNames; -QSet ProcessInfo::commonDirNames() +QStringList ProcessInfo::commonDirNames() { static bool forTheFirstTime = true; @@ -124,8 +124,8 @@ QSet ProcessInfo::commonDirNames() const KSharedConfigPtr &config = KSharedConfig::openConfig(); const KConfigGroup &configGroup = config->group("ProcessInfo"); // Need to make a local copy so the begin() and end() point to the same QList - const QStringList commonDirsList = configGroup.readEntry("CommonDirNames", QStringList()); - _commonDirNames = QSet(commonDirsList.begin(), commonDirsList.end()); + _commonDirNames = configGroup.readEntry("CommonDirNames", QStringList()); + _commonDirNames.removeDuplicates(); forTheFirstTime = false; } @@ -135,26 +135,22 @@ QSet ProcessInfo::commonDirNames() QString ProcessInfo::formatShortDir(const QString &input) const { - if (input == QStringLiteral("/")) { + if (input == QLatin1Char('/')) { return QStringLiteral("/"); } QString result; - const QStringList &parts = input.split(QDir::separator()); + const QStringList parts = input.split(QDir::separator()); - QSet dirNamesToShorten = commonDirNames(); - - QListIterator iter(parts); - iter.toBack(); + QStringList dirNamesToShorten = commonDirNames(); // go backwards through the list of the path's parts // adding abbreviations of common directory names // and stopping when we reach a dir name which is not // in the commonDirNames set - while (iter.hasPrevious()) { - const QString &part = iter.previous(); - + for (auto it = parts.crbegin(), endIt = parts.crend(); it != endIt; ++it) { + const QString &part = *it; if (dirNamesToShorten.contains(part)) { result.prepend(QDir::separator() + part[0]); } else { diff --git a/src/ProcessInfo.h b/src/ProcessInfo.h index b4fa2cb0..011e3fe1 100644 --- a/src/ProcessInfo.h +++ b/src/ProcessInfo.h @@ -270,8 +270,8 @@ private: QVector _arguments; - static QSet commonDirNames(); - static QSet _commonDirNames; + static QStringList commonDirNames(); + static QStringList _commonDirNames; }; Q_DECLARE_OPERATORS_FOR_FLAGS(ProcessInfo::Fields)