diff options
author | Chris Adams <christopher.adams@nokia.com> | 2011-07-14 15:40:30 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-08-18 09:25:04 +0200 |
commit | eaf52673ef38b4d7a14f9fb9f258d8f1c6097401 (patch) | |
tree | a607ea443865da0668029725283009cf17d2ffe1 /src/declarative/qml/v8/qv8engine.cpp | |
parent | 36767e3fe1f0038441ae06ef5b5e1cb19a3738fa (diff) |
Add support for a vector4d type in QML
QVector4D is a value-type which is supported but was not able to be
constructed using a Qt object function. This commit allows properties
of vector4d type to be constructed, and adds a function to the global
Qt object and adds unit tests to ensure that it behaves correctly.
Task-number: QTBUG-18559
Change-Id: I96509a4f496b644d20fdb1d977d0afe430d89e13
Reviewed-on: http://codereview.qt.nokia.com/1626
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'src/declarative/qml/v8/qv8engine.cpp')
-rw-r--r-- | src/declarative/qml/v8/qv8engine.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/declarative/qml/v8/qv8engine.cpp b/src/declarative/qml/v8/qv8engine.cpp index b2f98ac2c5..db58aabb29 100644 --- a/src/declarative/qml/v8/qv8engine.cpp +++ b/src/declarative/qml/v8/qv8engine.cpp @@ -477,6 +477,7 @@ QVariant QV8Engine::toBasicVariant(v8::Handle<v8::Value> value) #include <QtGui/qvector3d.h> +#include <QtGui/qvector4d.h> struct StaticQtMetaObject : public QObject { @@ -511,6 +512,7 @@ void QV8Engine::initializeGlobal(v8::Handle<v8::Object> global) qt->Set(v8::String::New("point"), V8FUNCTION(point, this)); qt->Set(v8::String::New("size"), V8FUNCTION(size, this)); qt->Set(v8::String::New("vector3d"), V8FUNCTION(vector3d, this)); + qt->Set(v8::String::New("vector4d"), V8FUNCTION(vector4d, this)); qt->Set(v8::String::New("formatDate"), V8FUNCTION(formatDate, this)); qt->Set(v8::String::New("formatTime"), V8FUNCTION(formatTime, this)); @@ -846,6 +848,23 @@ v8::Handle<v8::Value> QV8Engine::vector3d(const v8::Arguments &args) } /*! +\qmlmethod Qt::vector4d(real x, real y, real z, real w) +Returns a Vector4D with the specified \c x, \c y, \c z and \c w. +*/ +v8::Handle<v8::Value> QV8Engine::vector4d(const v8::Arguments &args) +{ + if (args.Length() != 4) + V8THROW_ERROR("Qt.vector4d(): Invalid arguments"); + + double x = args[0]->NumberValue(); + double y = args[1]->NumberValue(); + double z = args[2]->NumberValue(); + double w = args[3]->NumberValue(); + + return V8ENGINE()->fromVariant(QVariant::fromValue(QVector4D(x, y, z, w))); +} + +/*! \qmlmethod color Qt::lighter(color baseColor, real factor) Returns a color lighter than \c baseColor by the \c factor provided. |