From 430e8577845e7722bf8397ce5b37dd83f5de1b2e Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 25 Aug 2009 12:06:18 +0200 Subject: Reading and writing of QVariant for QmlValueType This is very useful for Bauhaus and avoids code duplication Reviewed-by: Aaron Kennedy --- src/declarative/qml/qmlvaluetype.cpp | 81 ++++++++++++++++++++++++++++++++++++ src/declarative/qml/qmlvaluetype_p.h | 18 ++++++++ 2 files changed, 99 insertions(+) diff --git a/src/declarative/qml/qmlvaluetype.cpp b/src/declarative/qml/qmlvaluetype.cpp index 7af3c56..4ae2070 100644 --- a/src/declarative/qml/qmlvaluetype.cpp +++ b/src/declarative/qml/qmlvaluetype.cpp @@ -103,6 +103,16 @@ void QmlPointFValueType::write(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a); } +QVariant QmlPointFValueType::value() +{ + return QVariant(point); +} + +void QmlPointFValueType::setValue(QVariant value) +{ + point = qvariant_cast(value); +} + qreal QmlPointFValueType::x() const { return point.x(); @@ -140,6 +150,16 @@ void QmlPointValueType::write(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a); } +QVariant QmlPointValueType::value() +{ + return QVariant(point); +} + +void QmlPointValueType::setValue(QVariant value) +{ + point = qvariant_cast(value); +} + int QmlPointValueType::x() const { return point.x(); @@ -177,6 +197,16 @@ void QmlSizeFValueType::write(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a); } +QVariant QmlSizeFValueType::value() +{ + return QVariant(size); +} + +void QmlSizeFValueType::setValue(QVariant value) +{ + size = qvariant_cast(value); +} + qreal QmlSizeFValueType::width() const { return size.width(); @@ -214,6 +244,16 @@ void QmlSizeValueType::write(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a); } +QVariant QmlSizeValueType::value() +{ + return QVariant(size); +} + +void QmlSizeValueType::setValue(QVariant value) +{ + size = qvariant_cast(value); +} + int QmlSizeValueType::width() const { return size.width(); @@ -251,6 +291,16 @@ void QmlRectFValueType::write(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a); } +QVariant QmlRectFValueType::value() +{ + return QVariant(rect); +} + +void QmlRectFValueType::setValue(QVariant value) +{ + rect = qvariant_cast(value); +} + qreal QmlRectFValueType::x() const { return rect.x(); @@ -308,6 +358,16 @@ void QmlRectValueType::write(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a); } +QVariant QmlRectValueType::value() +{ + return QVariant(rect); +} + +void QmlRectValueType::setValue(QVariant value) +{ + rect = qvariant_cast(value); +} + int QmlRectValueType::x() const { return rect.x(); @@ -365,6 +425,16 @@ void QmlVector3DValueType::write(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a); } +QVariant QmlVector3DValueType::value() +{ + return QVariant(vector); +} + +void QmlVector3DValueType::setValue(QVariant value) +{ + vector = qvariant_cast(value); +} + qreal QmlVector3DValueType::x() const { return vector.x(); @@ -412,6 +482,17 @@ void QmlFontValueType::write(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a); } +QVariant QmlFontValueType::value() +{ + return QVariant(font); +} + +void QmlFontValueType::setValue(QVariant value) +{ + font = qvariant_cast(value); +} + + QString QmlFontValueType::family() const { return font.family(); diff --git a/src/declarative/qml/qmlvaluetype_p.h b/src/declarative/qml/qmlvaluetype_p.h index 7a3620c..a56feec 100644 --- a/src/declarative/qml/qmlvaluetype_p.h +++ b/src/declarative/qml/qmlvaluetype_p.h @@ -68,6 +68,8 @@ public: QmlValueType(QObject *parent = 0); virtual void read(QObject *, int) = 0; virtual void write(QObject *, int) = 0; + virtual QVariant value() = 0; + virtual void setValue(QVariant) = 0; }; class QmlValueTypeFactory @@ -91,6 +93,8 @@ public: virtual void read(QObject *, int); virtual void write(QObject *, int); + virtual QVariant value(); + virtual void setValue(QVariant value); qreal x() const; qreal y() const; @@ -111,6 +115,8 @@ public: virtual void read(QObject *, int); virtual void write(QObject *, int); + virtual QVariant value(); + virtual void setValue(QVariant value); int x() const; int y() const; @@ -131,6 +137,8 @@ public: virtual void read(QObject *, int); virtual void write(QObject *, int); + virtual QVariant value(); + virtual void setValue(QVariant value); qreal width() const; qreal height() const; @@ -151,6 +159,8 @@ public: virtual void read(QObject *, int); virtual void write(QObject *, int); + virtual QVariant value(); + virtual void setValue(QVariant value); int width() const; int height() const; @@ -173,6 +183,8 @@ public: virtual void read(QObject *, int); virtual void write(QObject *, int); + virtual QVariant value(); + virtual void setValue(QVariant value); qreal x() const; qreal y() const; @@ -200,6 +212,8 @@ public: virtual void read(QObject *, int); virtual void write(QObject *, int); + virtual QVariant value(); + virtual void setValue(QVariant value); int x() const; int y() const; @@ -226,6 +240,8 @@ public: virtual void read(QObject *, int); virtual void write(QObject *, int); + virtual QVariant value(); + virtual void setValue(QVariant value); qreal x() const; qreal y() const; @@ -252,6 +268,8 @@ public: virtual void read(QObject *, int); virtual void write(QObject *, int); + virtual QVariant value(); + virtual void setValue(QVariant value); QString family() const; void setFamily(const QString &); -- cgit v0.12