summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2024-06-06 09:26:03 +0200
committerUlf Hermann <ulf.hermann@qt.io>2024-06-14 16:08:13 +0200
commitdeae8b9ce9f551b29ef98d0bb827a8543af2797e (patch)
treef11807df250b92c44430fb2d8d93a468dea40fab /src/compositor/compositor_api
parentbd8285263b88e2d58c63a82e023429c5f525d004 (diff)
Prepare for hiding of logging categories in namespacesHEADdev
We can and should use the new export macro for the client logging categories, but we need to manually define the compositor logging categories now since they are public and we cannot change their symbols. Task-number: QTBUG-67692 Change-Id: If4eb9c390a4851945d308e2b83ef13b12816698a Reviewed-by: David Edmundson <davidedmundson@kde.org>
Diffstat (limited to 'src/compositor/compositor_api')
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor.cpp17
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor.h8
2 files changed, 17 insertions, 8 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor.cpp b/src/compositor/compositor_api/qwaylandcompositor.cpp
index e6f5955b8..b3433f426 100644
--- a/src/compositor/compositor_api/qwaylandcompositor.cpp
+++ b/src/compositor/compositor_api/qwaylandcompositor.cpp
@@ -60,10 +60,19 @@
QT_BEGIN_NAMESPACE
-Q_LOGGING_CATEGORY(qLcWaylandCompositor, "qt.waylandcompositor")
-Q_LOGGING_CATEGORY(qLcWaylandCompositorHardwareIntegration, "qt.waylandcompositor.hardwareintegration")
-Q_LOGGING_CATEGORY(qLcWaylandCompositorInputMethods, "qt.waylandcompositor.inputmethods")
-Q_LOGGING_CATEGORY(qLcWaylandCompositorTextInput, "qt.waylandcompositor.textinput")
+// These logging categories are public symbols. To remain binary-compatible we cannot hide them in
+// a namespace like we do for all Qt-internal logging categories.
+#define Q_PUBLIC_LOGGING_CATEGORY(name, ...) \
+ const QLoggingCategory &name() \
+ { \
+ static const QLoggingCategory category(__VA_ARGS__); \
+ return category; \
+ }
+
+Q_PUBLIC_LOGGING_CATEGORY(qLcWaylandCompositor, "qt.waylandcompositor")
+Q_PUBLIC_LOGGING_CATEGORY(qLcWaylandCompositorHardwareIntegration, "qt.waylandcompositor.hardwareintegration")
+Q_PUBLIC_LOGGING_CATEGORY(qLcWaylandCompositorInputMethods, "qt.waylandcompositor.inputmethods")
+Q_PUBLIC_LOGGING_CATEGORY(qLcWaylandCompositorTextInput, "qt.waylandcompositor.textinput")
namespace QtWayland {
diff --git a/src/compositor/compositor_api/qwaylandcompositor.h b/src/compositor/compositor_api/qwaylandcompositor.h
index 1dee5cad1..58b053d4e 100644
--- a/src/compositor/compositor_api/qwaylandcompositor.h
+++ b/src/compositor/compositor_api/qwaylandcompositor.h
@@ -34,10 +34,10 @@ class QWaylandTouch;
class QWaylandSurfaceGrabber;
class QWaylandBufferRef;
-Q_WAYLANDCOMPOSITOR_EXPORT Q_DECLARE_LOGGING_CATEGORY(qLcWaylandCompositor)
-Q_WAYLANDCOMPOSITOR_EXPORT Q_DECLARE_LOGGING_CATEGORY(qLcWaylandCompositorHardwareIntegration)
-Q_DECLARE_LOGGING_CATEGORY(qLcWaylandCompositorInputMethods)
-Q_DECLARE_LOGGING_CATEGORY(qLcWaylandCompositorTextInput)
+Q_WAYLANDCOMPOSITOR_EXPORT const QLoggingCategory &qLcWaylandCompositor();
+Q_WAYLANDCOMPOSITOR_EXPORT const QLoggingCategory &qLcWaylandCompositorHardwareIntegration();
+const QLoggingCategory &qLcWaylandCompositorInputMethods();
+const QLoggingCategory &qLcWaylandCompositorTextInput();
class Q_WAYLANDCOMPOSITOR_EXPORT QWaylandCompositor : public QWaylandObject
{