diff options
Diffstat (limited to 'src/corelib/kernel')
| -rw-r--r-- | src/corelib/kernel/qobjectdefs.h | 4 | ||||
| -rw-r--r-- | src/corelib/kernel/qtmetamacros.h | 5 | ||||
| -rw-r--r-- | src/corelib/kernel/qtmocconstants.h | 1 |
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, |
