diff options
author | Mathias Hasselmann <mathias.hasselmann@kdab.com> | 2013-11-03 10:07:08 +0100 |
---|---|---|
committer | Mathias Hasselmann <mathias.hasselmann@kdab.com> | 2013-11-03 10:07:08 +0100 |
commit | 581cb0979eddc6cb7608b60772daa7ab78373ccb (patch) | |
tree | 5a32bd41583c3c6bc8cffe9113d1ce86890de3ed | |
parent | c4928da3a039916c43e2542845c82b3980cb2be9 (diff) | |
download | qtquickstreamer-581cb0979eddc6cb7608b60772daa7ab78373ccb.tar.gz qtquickstreamer-581cb0979eddc6cb7608b60772daa7ab78373ccb.tar.xz |
Add QQmlParserStatus interface
-rw-r--r-- | src/QuickStreamer/object.cpp | 14 | ||||
-rw-r--r-- | src/QuickStreamer/object.h | 8 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/QuickStreamer/object.cpp b/src/QuickStreamer/object.cpp index 6fd4756..62a8c45 100644 --- a/src/QuickStreamer/object.cpp +++ b/src/QuickStreamer/object.cpp @@ -550,6 +550,8 @@ void *Object::qt_metacast(const char *className) if (strcmp(className, G_OBJECT_TYPE_NAME(m_target)) == 0) return this; + if (strcmp(className, QQmlParserStatus_iid) == 0) + return this; return QObject::qt_metacast(className); } @@ -588,6 +590,18 @@ int Object::qt_metacall(QMetaObject::Call call, int id, void **args) return id; } +void Object::classBegin() +{ + Q_ASSERT(parent() != Q_NULLPTR); + qDebug() << Q_FUNC_INFO << metaObject()->className() << parent()->children(); +} + +void Object::componentComplete() +{ + Q_ASSERT(parent() != Q_NULLPTR); + qDebug() << Q_FUNC_INFO << metaObject()->className() << parent()->children(); +} + int Object::readProperty(int id, QVariant *value) { const auto *const typeInfo = TypeInfo::find(G_OBJECT_TYPE(m_target)); diff --git a/src/QuickStreamer/object.h b/src/QuickStreamer/object.h index 759a589..36153dc 100644 --- a/src/QuickStreamer/object.h +++ b/src/QuickStreamer/object.h @@ -2,6 +2,7 @@ #define QQUICKSTREAMER_OBJECT_H #include <QObject> +#include <QQmlParserStatus> typedef unsigned long GType; typedef struct _GParamSpec GParamSpec; @@ -10,10 +11,12 @@ typedef struct _GstObject GstObject; namespace QQuickStreamer { -class Object : public QObject +class Object : public QObject, public QQmlParserStatus + { public: Q_OBJECT_CHECK + Q_INTERFACES(QQmlParserStatus) explicit Object(GstObject *target, QObject *parent = Q_NULLPTR); Object(const Object &other); @@ -27,6 +30,9 @@ public: void *qt_metacast(const char *classname) Q_DECL_OVERRIDE; int qt_metacall(QMetaObject::Call call, int id, void **args) Q_DECL_OVERRIDE; + void classBegin() Q_DECL_OVERRIDE; + void componentComplete() Q_DECL_OVERRIDE; + protected: int readProperty(int id, QVariant *value); int writeProperty(int id, const void *value); |