diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/corelib/kernel/qobject.cpp | 1 | ||||
| -rw-r--r-- | src/corelib/kernel/qobject.h | 6 | ||||
| -rw-r--r-- | src/corelib/kernel/qobject_p.h | 8 |
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); } |
