aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlvmemetaobject_p.h
diff options
context:
space:
mode:
authorMatthew Vogt <matthew.vogt@nokia.com>2012-05-15 16:56:40 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-21 00:17:37 +0200
commita96705e349c51215b6e451147b4c2de49ba5a107 (patch)
tree67898969e15f92e95ccfc97a3ce8c4458a8887e7 /src/qml/qml/qqmlvmemetaobject_p.h
parent5821f91abb348ac8d8ad84846b504c5629d2eed8 (diff)
Allow the existence of a VME metaobject to be asserted
Test for the existence of a VME metaobject. Otherwise, assertion of a static cast result is not meaningful. Change-Id: Ic9e9c38e5dce65c41d20e405c33e179334c37b00 Reviewed-by: Michael Brasser <michael.brasser@nokia.com> Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'src/qml/qml/qqmlvmemetaobject_p.h')
-rw-r--r--src/qml/qml/qqmlvmemetaobject_p.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlvmemetaobject_p.h b/src/qml/qml/qqmlvmemetaobject_p.h
index 1f44c63a47..c9992471d4 100644
--- a/src/qml/qml/qqmlvmemetaobject_p.h
+++ b/src/qml/qml/qqmlvmemetaobject_p.h
@@ -169,6 +169,8 @@ public:
void connectAliasSignal(int index);
+ static inline QQmlVMEMetaObject *get(const QObject *obj);
+
protected:
virtual int metaCall(QMetaObject::Call _c, int _id, void **_a);
@@ -227,6 +229,18 @@ private:
friend class QV8QObjectWrapper;
};
+QQmlVMEMetaObject *QQmlVMEMetaObject::get(const QObject *obj)
+{
+ if (obj) {
+ if (QQmlData *data = QQmlData::get(obj)) {
+ if (data->hasVMEMetaObject)
+ return const_cast<QQmlVMEMetaObject *>(static_cast<const QQmlVMEMetaObject *>(obj->metaObject()));
+ }
+ }
+
+ return 0;
+}
+
QT_END_NAMESPACE
#endif // QQMLVMEMETAOBJECT_P_H