From 5dd29e7835df20b14cc96cf59338856a4fd43dac Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 7 Aug 2023 17:42:52 +0200 Subject: [PATCH] Mark GTK theme plugin as free of Q_FOREACH, except where it isn't The density of Q_FOREACH uses isn't very high here, but at this time, this author just goes through the code-base and white-lists TUs that still use Q_FOREACH in order to globally enable QT_NO_FOREACH. Mark the whole plugin with QT_NO_FOREACH, to prevent new uses from creeping in, and whitelist the affected TU by #undef'ing QT_NO_FOREACH locally, at the top of each file. Since the TU is part of a larger executable, this requires the file to be compiled separately, so add it to NO_PCH_SOURCES (which implies NO_UNITY_BUILD_SOURCES, too). Task-number: QTBUG-115839 Change-Id: If731d02f65131c94afa8beb51679ed2ff7d2cdaa Reviewed-by: Richard Moe Gustavsen --- src/plugins/platformthemes/gtk3/CMakeLists.txt | 3 +++ src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/plugins/platformthemes/gtk3/CMakeLists.txt b/src/plugins/platformthemes/gtk3/CMakeLists.txt index 89acc84f07..c9e4de6124 100644 --- a/src/plugins/platformthemes/gtk3/CMakeLists.txt +++ b/src/plugins/platformthemes/gtk3/CMakeLists.txt @@ -23,8 +23,11 @@ qt_internal_add_plugin(QGtk3ThemePlugin qgtk3interface.cpp qgtk3interface_p.h qgtk3storage.cpp qgtk3storage_p.h qgtk3json.cpp qgtk3json_p.h + NO_PCH_SOURCES + qgtk3dialoghelpers.cpp # undef QT_NO_FOREACH DEFINES GDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_6 + QT_NO_FOREACH LIBRARIES PkgConfig::GTK3 Qt::Core diff --git a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp index b8ba58d30e..08419ec7dc 100644 --- a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp +++ b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp @@ -1,6 +1,8 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#undef QT_NO_FOREACH // this file contains unported legacy Q_FOREACH uses + #include "qgtk3dialoghelpers.h" #include "qgtk3theme.h"