summaryrefslogtreecommitdiffstats
path: root/src/corelib/global
diff options
context:
space:
mode:
authorKai Köhne <kai.koehne@qt.io>2021-11-15 13:28:17 +0100
committerKai Koehne <kai.koehne@qt.io>2021-11-16 17:26:04 +0000
commitb99adf7a8101b48c3acd246baeacec9a5f871acd (patch)
tree1d10cf945a9ce48794627306c1977238727f931d /src/corelib/global
parent61d5783ba87a4eaed01b5756970e4852d74b85a6 (diff)
Do not include qloggingcategory.h in public headers
Reduce overhead for including qguiapplication.h by splitting up qnativeinterface.h into a public and a private part. [ChangeLog][Potentially Source-Incompatible Changes] The qguiapplication.h header no longer implicitly includes qloggingcategory.h. If your code depends on the transitive include, explicitly include <QLoggingCategory> where needed. Pick-to: 6.2 Task-number: QTBUG-97601 Change-Id: Ic02327a1c3092e21730160af5c59a9d58dc1239c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/corelib/global')
-rw-r--r--src/corelib/global/qglobal.cpp5
-rw-r--r--src/corelib/global/qnativeinterface.h33
-rw-r--r--src/corelib/global/qnativeinterface_p.h99
3 files changed, 102 insertions, 35 deletions
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index d455f887ed..c8f97c7148 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -52,6 +52,7 @@
#endif // Q_OS_WIN || Q_OS_CYGWIN
#include <private/qlocale_tools_p.h>
#include "qnativeinterface.h"
+#include "qnativeinterface_p.h"
#include <qmutex.h>
#include <QtCore/private/qlocking_p.h>
@@ -4923,8 +4924,8 @@ bool QInternal::activateCallbacks(Callback cb, void **parameters)
declares __CFMutableString and CFMutableStringRef.
*/
-namespace QNativeInterface::Private {
- Q_LOGGING_CATEGORY(lcNativeInterface, "qt.nativeinterface")
+namespace QtPrivate {
+Q_LOGGING_CATEGORY(lcNativeInterface, "qt.nativeinterface")
}
QT_END_NAMESPACE
diff --git a/src/corelib/global/qnativeinterface.h b/src/corelib/global/qnativeinterface.h
index 56805d5a6e..bc25600efc 100644
--- a/src/corelib/global/qnativeinterface.h
+++ b/src/corelib/global/qnativeinterface.h
@@ -41,7 +41,6 @@
#define QNATIVEINTERFACE_H
#include <QtCore/qglobal.h>
-#include <QtCore/qloggingcategory.h>
QT_BEGIN_NAMESPACE
@@ -159,9 +158,6 @@ namespace QNativeInterface::Private {
// of incompatible interface types read better.
template <typename I>
struct NativeInterface : TypeInfo<I> {};
-
- Q_CORE_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcNativeInterface)
-
} // QNativeInterface::Private
// Declares an accessor for the native interface
@@ -183,35 +179,6 @@ namespace QNativeInterface::Private {
public:
#endif
-// Provides a definition for the interface destructor
-#define QT_DEFINE_NATIVE_INTERFACE_2(Namespace, InterfaceClass) \
- QT_PREPEND_NAMESPACE(Namespace)::InterfaceClass::~InterfaceClass() = default
-
-#define QT_DEFINE_NATIVE_INTERFACE(...) QT_OVERLOADED_MACRO(QT_DEFINE_NATIVE_INTERFACE, QNativeInterface, __VA_ARGS__)
-#define QT_DEFINE_PRIVATE_NATIVE_INTERFACE(...) QT_OVERLOADED_MACRO(QT_DEFINE_NATIVE_INTERFACE, QNativeInterface::Private, __VA_ARGS__)
-
-#define QT_NATIVE_INTERFACE_RETURN_IF(NativeInterface, baseType) \
- { \
- using QNativeInterface::Private::lcNativeInterface; \
- using QNativeInterface::Private::TypeInfo; \
- qCDebug(lcNativeInterface, "Comparing requested interface name %s with available %s", \
- name, TypeInfo<NativeInterface>::name()); \
- if (qstrcmp(name, TypeInfo<NativeInterface>::name()) == 0) { \
- qCDebug(lcNativeInterface, "Match for interface %s. Comparing revisions (requested %d / available %d)", \
- name, revision, TypeInfo<NativeInterface>::revision()); \
- if (revision == TypeInfo<NativeInterface>::revision()) { \
- qCDebug(lcNativeInterface) << "Full match. Returning dynamic cast of" << baseType; \
- return dynamic_cast<NativeInterface*>(baseType); \
- } else { \
- qCWarning(lcNativeInterface, "Native interface revision mismatch (requested %d / available %d) for interface %s", \
- revision, TypeInfo<NativeInterface>::revision(), name); \
- return nullptr; \
- } \
- } else { \
- qCDebug(lcNativeInterface, "No match for requested interface name %s", name); \
- } \
- }
-
QT_END_NAMESPACE
#endif // QNATIVEINTERFACE_H
diff --git a/src/corelib/global/qnativeinterface_p.h b/src/corelib/global/qnativeinterface_p.h
new file mode 100644
index 0000000000..65332eeecb
--- /dev/null
+++ b/src/corelib/global/qnativeinterface_p.h
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QNATIVEINTERFACE_P_H
+#define QNATIVEINTERFACE_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtCore/qglobal.h>
+#include <QtCore/qloggingcategory.h>
+
+QT_BEGIN_NAMESPACE
+
+namespace QtPrivate {
+Q_CORE_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcNativeInterface)
+}
+
+// Provides a definition for the interface destructor
+#define QT_DEFINE_NATIVE_INTERFACE_2(Namespace, InterfaceClass) \
+ QT_PREPEND_NAMESPACE(Namespace)::InterfaceClass::~InterfaceClass() = default
+
+#define QT_DEFINE_NATIVE_INTERFACE(...) \
+ QT_OVERLOADED_MACRO(QT_DEFINE_NATIVE_INTERFACE, QNativeInterface, __VA_ARGS__)
+#define QT_DEFINE_PRIVATE_NATIVE_INTERFACE(...) \
+ QT_OVERLOADED_MACRO(QT_DEFINE_NATIVE_INTERFACE, QNativeInterface::Private, __VA_ARGS__)
+
+#define QT_NATIVE_INTERFACE_RETURN_IF(NativeInterface, baseType) \
+ { \
+ using QtPrivate::lcNativeInterface; \
+ using QNativeInterface::Private::TypeInfo; \
+ qCDebug(lcNativeInterface, "Comparing requested interface name %s with available %s", \
+ name, TypeInfo<NativeInterface>::name()); \
+ if (qstrcmp(name, TypeInfo<NativeInterface>::name()) == 0) { \
+ qCDebug(lcNativeInterface, \
+ "Match for interface %s. Comparing revisions (requested %d / available %d)", \
+ name, revision, TypeInfo<NativeInterface>::revision()); \
+ if (revision == TypeInfo<NativeInterface>::revision()) { \
+ qCDebug(lcNativeInterface) << "Full match. Returning dynamic cast of" << baseType; \
+ return dynamic_cast<NativeInterface *>(baseType); \
+ } else { \
+ qCWarning(lcNativeInterface, \
+ "Native interface revision mismatch (requested %d / available %d) for " \
+ "interface %s", \
+ revision, TypeInfo<NativeInterface>::revision(), name); \
+ return nullptr; \
+ } \
+ } else { \
+ qCDebug(lcNativeInterface, "No match for requested interface name %s", name); \
+ } \
+ }
+
+QT_END_NAMESPACE
+
+#endif // QNATIVEINTERFACE_P_H