summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathias Hasselmann <mathias.hasselmann@kdab.com>2013-11-03 10:07:08 +0100
committerMathias Hasselmann <mathias.hasselmann@kdab.com>2013-11-03 10:07:08 +0100
commit581cb0979eddc6cb7608b60772daa7ab78373ccb (patch)
tree5a32bd41583c3c6bc8cffe9113d1ce86890de3ed
parentc4928da3a039916c43e2542845c82b3980cb2be9 (diff)
downloadqtquickstreamer-581cb0979eddc6cb7608b60772daa7ab78373ccb.tar.gz
qtquickstreamer-581cb0979eddc6cb7608b60772daa7ab78373ccb.tar.xz
Add QQmlParserStatus interface
-rw-r--r--src/QuickStreamer/object.cpp14
-rw-r--r--src/QuickStreamer/object.h8
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);