From 564bc713c2639f8c2e0d63712bcbf3baea970586 Mon Sep 17 00:00:00 2001 From: Milian Wolff Date: Tue, 22 Oct 2024 13:16:41 +0200 Subject: [PATCH] Don't use foreach, prefer range-based-for loops --- CMakeLists.txt | 2 +- src/flamegraph.cpp | 9 +++++---- src/frequencypage.cpp | 7 ++++++- src/models/processlist_unix.cpp | 3 ++- src/models/processmodel.cpp | 2 +- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b7083ea1..37e8b55a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,7 +150,7 @@ file(RELATIVE_PATH LIBEXEC_REL_PATH "${KDE_INSTALL_FULL_BINDIR}" "${KDE_INSTALL_ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/hotspot-config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/hotspot-config.h @ONLY) -add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_USE_QSTRINGBUILDER) +add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_USE_QSTRINGBUILDER -DQT_NO_FOREACH) add_compile_options(-Wall -pedantic -Wextra) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wno-gnu-zero-variadic-macro-arguments) diff --git a/src/flamegraph.cpp b/src/flamegraph.cpp index 23daae2da..c3e5f4b3f 100644 --- a/src/flamegraph.cpp +++ b/src/flamegraph.cpp @@ -471,7 +471,7 @@ void layoutItems(FrameGraphicsItem* parent) < static_cast(rhs)->symbol(); }); - foreach (auto child, children) { + for (auto child : children) { auto frameChild = static_cast(child); const qreal w = maxWidth * double(frameChild->cost()) / parent->cost(); frameChild->setVisible(w > 1); @@ -485,7 +485,7 @@ void layoutItems(FrameGraphicsItem* parent) FrameGraphicsItem* findItemBySymbol(const QList& items, const Data::Symbol& symbol) { - foreach (auto item_, items) { + for (auto item_ : items) { auto item = static_cast(item_); if (item->symbol() == symbol) { return item; @@ -501,7 +501,7 @@ template void toGraphicsItems(const Data::Costs& costs, int type, const QVector& data, FrameGraphicsItem* parent, const double costThreshold, const BrushConfig& brushConfig, bool collapseRecursion) { - foreach (const auto& row, data) { + for (const auto& row : data) { if (collapseRecursion && !row.symbol.symbol.isEmpty() && row.symbol == parent->symbol()) { if (costs.cost(type, row.id) > costThreshold) { toGraphicsItems(costs, type, row.children, parent, costThreshold, brushConfig, collapseRecursion); @@ -1178,7 +1178,8 @@ void FlameGraph::selectItem(FrameGraphicsItem* item) rect.setWidth(rootWidth); parent->setRect(rect); if (parent->parentItem()) { - foreach (auto sibling, parent->parentItem()->childItems()) { + const auto children = parent->parentItem()->childItems(); + for (auto sibling : children) { sibling->setVisible(sibling == parent); } } diff --git a/src/frequencypage.cpp b/src/frequencypage.cpp index 469d70016..e150c7e8c 100644 --- a/src/frequencypage.cpp +++ b/src/frequencypage.cpp @@ -6,11 +6,16 @@ SPDX-License-Identifier: GPL-2.0-or-later */ +// NOTE: QCustomPlot still uses foreach +#undef QT_NO_FOREACH +#include +#undef foreach +#define QT_NO_FOREACH + #include "frequencypage.h" #include #include -#include #include "parsers/perf/perfparser.h" #include "ui_frequencypage.h" diff --git a/src/models/processlist_unix.cpp b/src/models/processlist_unix.cpp index 5d5cd4f85..4ed40ece4 100644 --- a/src/models/processlist_unix.cpp +++ b/src/models/processlist_unix.cpp @@ -104,7 +104,8 @@ ProcDataList processList() return unixProcessListPS(); ProcDataList rc; - foreach (const QString& procId, procDir.entryList()) { + const auto entries = procDir.entryList(); + for (const QString& procId : entries) { if (!isUnixProcessId(procId)) continue; diff --git a/src/models/processmodel.cpp b/src/models/processmodel.cpp index 33bce6331..915b104cc 100644 --- a/src/models/processmodel.cpp +++ b/src/models/processmodel.cpp @@ -37,7 +37,7 @@ void ProcessModel::mergeProcesses(const ProcDataList& processes) // iterator over m_data int i = 0; - foreach (const ProcData& newProc, sortedProcesses) { + for (const ProcData& newProc : sortedProcesses) { bool shouldInsert = true; while (i < m_data.count()) { const ProcData& oldProc = m_data.at(i);