aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqml.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2022-03-14 15:56:28 +0100
committerUlf Hermann <ulf.hermann@qt.io>2022-03-23 23:21:56 +0100
commitcc6bd22b61cff5b992b594b69552c8f41f65f13b (patch)
tree13aad8f781c767d793d29a1499f94383052d5578 /src/qml/qml/qqml.cpp
parent00b59c391e88d37dd09f187000416a3501a1e009 (diff)
Add public API for retrieving the extension object
Change-Id: I28bc1c177cb78d85d844c7a5cd5b6710db8fd65d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/qml/qml/qqml.cpp')
-rw-r--r--src/qml/qml/qqml.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/qml/qml/qqml.cpp b/src/qml/qml/qqml.cpp
index d8d366a716..8859dea711 100644
--- a/src/qml/qml/qqml.cpp
+++ b/src/qml/qml/qqml.cpp
@@ -149,6 +149,25 @@ QObject *qmlAttachedPropertiesObject(QObject *object, QQmlAttachedPropertiesFunc
return resolveAttachedProperties(func, data, object, create);
}
+QObject *qmlExtendedObject(QObject *object)
+{
+ if (!object)
+ return nullptr;
+
+ void *result = nullptr;
+ QObjectPrivate *d = QObjectPrivate::get(object);
+ if (!d->metaObject)
+ return nullptr;
+
+ const int id = d->metaObject->metaCall(
+ object, QMetaObject::CustomCall,
+ QQmlProxyMetaObject::ExtensionObjectId, &result);
+ if (id != QQmlProxyMetaObject::ExtensionObjectId)
+ return nullptr;
+
+ return static_cast<QObject *>(result);
+}
+
int qmlRegisterUncreatableMetaObject(const QMetaObject &staticMetaObject,
const char *uri, int versionMajor,
int versionMinor, const char *qmlName,