summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qobjectdefs.h4
-rw-r--r--src/corelib/kernel/qtmetamacros.h5
-rw-r--r--src/corelib/kernel/qtmocconstants.h1
3 files changed, 10 insertions, 0 deletions
diff --git a/src/corelib/kernel/qobjectdefs.h b/src/corelib/kernel/qobjectdefs.h
index 190901d5d19..b8b8ea62d9f 100644
--- a/src/corelib/kernel/qobjectdefs.h
+++ b/src/corelib/kernel/qobjectdefs.h
@@ -14,6 +14,10 @@
#include <QtCore/qtcoreexports.h>
#include <QtCore/qtmetamacros.h>
+// this function is implemented by moc for the user classes and thus
+// intentionally outside of our namespace
+template <typename T> constexpr auto qt_call_create_metaobjectdata();
+
QT_BEGIN_NAMESPACE
class QByteArray;
diff --git a/src/corelib/kernel/qtmetamacros.h b/src/corelib/kernel/qtmetamacros.h
index 2ef5c0df9d6..69f390ea9a0 100644
--- a/src/corelib/kernel/qtmetamacros.h
+++ b/src/corelib/kernel/qtmetamacros.h
@@ -130,6 +130,8 @@ private: \
Q_OBJECT_NO_ATTRIBUTES_WARNING \
Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); \
QT_WARNING_POP \
+ template <typename> static constexpr auto qt_create_metaobjectdata(); \
+ template <typename> friend constexpr auto ::qt_call_create_metaobjectdata(); \
QT_DEFINE_TAG_STRUCT(QPrivateSignal); \
QT_ANNOTATE_CLASS(qt_qobject, "")
@@ -147,6 +149,8 @@ private: \
QT_WARNING_PUSH \
Q_OBJECT_NO_ATTRIBUTES_WARNING \
Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); \
+ template <typename> static constexpr auto qt_create_metaobjectdata(); \
+ template <typename> friend constexpr auto ::qt_call_create_metaobjectdata(); \
QT_WARNING_POP \
QT_ANNOTATE_CLASS(qt_qgadget, "") \
/*end*/
@@ -157,6 +161,7 @@ private: \
/* qmake ignore Q_NAMESPACE_EXPORT */
#define Q_NAMESPACE_EXPORT(...) \
extern __VA_ARGS__ const QMetaObject staticMetaObject; \
+ template <typename> static constexpr auto qt_create_metaobjectdata(); \
QT_ANNOTATE_CLASS(qt_qnamespace, "") \
/*end*/
diff --git a/src/corelib/kernel/qtmocconstants.h b/src/corelib/kernel/qtmocconstants.h
index 3748bfc25ac..a3d7912d86b 100644
--- a/src/corelib/kernel/qtmocconstants.h
+++ b/src/corelib/kernel/qtmocconstants.h
@@ -50,6 +50,7 @@ enum PropertyFlags : uint {
Required = 0x01000000,
Bindable = 0x02000000,
};
+inline constexpr PropertyFlags DefaultPropertyFlags { Readable | Designable | Scriptable | Stored };
enum MethodFlags : uint {
AccessPrivate = 0x00,