diff options
author | Warwick Allison <warwick.allison@nokia.com> | 2009-07-24 07:03:15 (GMT) |
---|---|---|
committer | Warwick Allison <warwick.allison@nokia.com> | 2009-07-24 07:03:15 (GMT) |
commit | ea2f61a76f8b6075a3421f8f1dce353d8ae22b58 (patch) | |
tree | 00f444ea0cec034907796e3e9762b2753d1bfc82 /src/declarative/qml | |
parent | 3b6ac3b45a333815b097603c93bb38d97782826e (diff) | |
parent | ae038738460f9f42da23446eff67964851ed446f (diff) | |
download | Qt-ea2f61a76f8b6075a3421f8f1dce353d8ae22b58.zip Qt-ea2f61a76f8b6075a3421f8f1dce353d8ae22b58.tar.gz Qt-ea2f61a76f8b6075a3421f8f1dce353d8ae22b58.tar.bz2 |
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'src/declarative/qml')
-rw-r--r-- | src/declarative/qml/qmlvaluetype.cpp | 49 | ||||
-rw-r--r-- | src/declarative/qml/qmlvaluetype_p.h | 25 |
2 files changed, 74 insertions, 0 deletions
diff --git a/src/declarative/qml/qmlvaluetype.cpp b/src/declarative/qml/qmlvaluetype.cpp index a01b4a7..571263e 100644 --- a/src/declarative/qml/qmlvaluetype.cpp +++ b/src/declarative/qml/qmlvaluetype.cpp @@ -61,6 +61,8 @@ QmlValueType *QmlValueTypeFactory::valueType(int t) switch (t) { case QVariant::Rect: return new QmlRectValueType; + case QVariant::Vector3D: + return new QmlVector3DValueType; default: return 0; } @@ -128,4 +130,51 @@ void QmlRectValueType::setHeight(int h) rect.setHeight(h); } +QmlVector3DValueType::QmlVector3DValueType(QObject *parent) +: QmlValueType(parent) +{ +} + +void QmlVector3DValueType::read(QObject *obj, int idx) +{ + void *a[] = { &vector, 0 }; + QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); +} + +void QmlVector3DValueType::write(QObject *obj, int idx) +{ + void *a[] = { &vector, 0 }; + QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a); +} + +qreal QmlVector3DValueType::x() const +{ + return vector.x(); +} + +qreal QmlVector3DValueType::y() const +{ + return vector.y(); +} + +qreal QmlVector3DValueType::z() const +{ + return vector.z(); +} + +void QmlVector3DValueType::setX(qreal x) +{ + vector.setX(x); +} + +void QmlVector3DValueType::setY(qreal y) +{ + vector.setY(y); +} + +void QmlVector3DValueType::setZ(qreal z) +{ + vector.setZ(z); +} + QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlvaluetype_p.h b/src/declarative/qml/qmlvaluetype_p.h index 5581df7..b19c1ba 100644 --- a/src/declarative/qml/qmlvaluetype_p.h +++ b/src/declarative/qml/qmlvaluetype_p.h @@ -56,6 +56,7 @@ #include <QtCore/qobject.h> #include <QtCore/qrect.h> #include <QtCore/qvariant.h> +#include <QtGui/qvector3d.h> QT_BEGIN_NAMESPACE @@ -105,6 +106,30 @@ public: private: QRect rect; }; + +class QmlVector3DValueType : public QmlValueType +{ + Q_PROPERTY(qreal x READ x WRITE setX); + Q_PROPERTY(qreal y READ y WRITE setY); + Q_PROPERTY(qreal z READ z WRITE setZ); + Q_OBJECT +public: + QmlVector3DValueType(QObject *parent = 0); + + virtual void read(QObject *, int); + virtual void write(QObject *, int); + + qreal x() const; + qreal y() const; + qreal z() const; + void setX(qreal); + void setY(qreal); + void setZ(qreal); + +private: + QVector3D vector; +}; + QT_END_NAMESPACE #endif // QMLVALUETYPE_P_H |