summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2024-11-13 16:15:14 -0800
committerThiago Macieira <thiago.macieira@intel.com>2024-11-19 04:51:05 -0800
commit0b044e8b055f9c1d93b278ed69aba76f7c886cb1 (patch)
tree0a8b2d8c148f61f0a5f64635267ccb6e4188a623 /src
parenta9fe57fefaac0cb047e4c02e0b8c8f8327e0a58c (diff)
QObject: implement the ### Qt7 for dynamicMetaObject()
As requested in qtbase/5d174877234477a59eb29818d3cfb99fedc3e704. Change-Id: I5f6568921a25918a5ae3fffdff7c136d3eb455a9 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/kernel/qobject.cpp1
-rw-r--r--src/corelib/kernel/qobject.h6
-rw-r--r--src/corelib/kernel/qobject_p.h8
3 files changed, 13 insertions, 2 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 42d2abbb982..6a93042b8c8 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -152,6 +152,7 @@ void (*QAbstractDeclarativeData::setWidgetParent)(QObject *, QObject *) = nullpt
QObjectData::~QObjectData() {}
+QT7_ONLY(const)
QMetaObject *QObjectData::dynamicMetaObject() const
{
return metaObject->toDynamicMetaObject(q_ptr);
diff --git a/src/corelib/kernel/qobject.h b/src/corelib/kernel/qobject.h
index 7393bbe209f..6b82a6ad4f6 100644
--- a/src/corelib/kernel/qobject.h
+++ b/src/corelib/kernel/qobject.h
@@ -90,9 +90,11 @@ public:
QDynamicMetaObjectData *metaObject;
QBindingStorage bindingStorage;
- // ### Qt7: Make this return a const QMetaObject *. You should not mess with
- // the metaobjects of existing objects.
+#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
+ const QMetaObject *dynamicMetaObject() const;
+#else
QMetaObject *dynamicMetaObject() const;
+#endif
#ifdef QT_DEBUG
enum { CheckForParentChildLoopsWarnDepth = 4096 };
diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h
index 0a729acb82b..d6dd14a2d21 100644
--- a/src/corelib/kernel/qobject_p.h
+++ b/src/corelib/kernel/qobject_p.h
@@ -469,7 +469,11 @@ struct Q_CORE_EXPORT QDynamicMetaObjectData
virtual ~QDynamicMetaObjectData();
virtual void objectDestroyed(QObject *) { delete this; }
+#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
+ virtual const QMetaObject *toDynamicMetaObject(QObject *) const = 0;
+#else
virtual QMetaObject *toDynamicMetaObject(QObject *) = 0;
+#endif
virtual int metaCall(QObject *, QMetaObject::Call, int _id, void **) = 0;
};
@@ -477,7 +481,11 @@ struct Q_CORE_EXPORT QAbstractDynamicMetaObject : public QDynamicMetaObjectData,
{
~QAbstractDynamicMetaObject();
+#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
+ const QMetaObject *toDynamicMetaObject(QObject *) const override { return this; }
+#else
QMetaObject *toDynamicMetaObject(QObject *) override { return this; }
+#endif
virtual int createProperty(const char *, const char *) { return -1; }
int metaCall(QObject *, QMetaObject::Call c, int _id, void **a) override
{ return metaCall(c, _id, a); }