From ecd37a35adc4008b105b8bc9fcf55450da1dd949 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 25 Aug 2009 12:05:21 +0200 Subject: QVector3D: missing implicit conversion to QVariant --- src/gui/math3d/qvector3d.cpp | 8 ++++++++ src/gui/math3d/qvector3d.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/gui/math3d/qvector3d.cpp b/src/gui/math3d/qvector3d.cpp index 0e3f4e1..63fda09 100644 --- a/src/gui/math3d/qvector3d.cpp +++ b/src/gui/math3d/qvector3d.cpp @@ -282,6 +282,14 @@ void QVector3D::normalize() */ /*! + Returns the vector as a QVariant +*/ +QVector3D::operator QVariant () const +{ + return QVariant(QVariant::Vector3D, this); +} + +/*! Returns the dot product of \a v1 and \a v2. */ qreal QVector3D::dotProduct(const QVector3D& v1, const QVector3D& v2) diff --git a/src/gui/math3d/qvector3d.h b/src/gui/math3d/qvector3d.h index 36292d2..b625946 100644 --- a/src/gui/math3d/qvector3d.h +++ b/src/gui/math3d/qvector3d.h @@ -95,6 +95,8 @@ public: QVector3D &operator*=(const QVector3D& vector); QVector3D &operator/=(qreal divisor); + operator QVariant() const; + static qreal dotProduct(const QVector3D& v1, const QVector3D& v2); static QVector3D crossProduct(const QVector3D& v1, const QVector3D& v2); static QVector3D normal(const QVector3D& v1, const QVector3D& v2); -- cgit v0.12 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