aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/util/qquickglobal.cpp
diff options
context:
space:
mode:
authorChris Adams <christopher.adams@nokia.com>2012-07-16 16:32:49 +1000
committerQt by Nokia <qt-info@nokia.com>2012-08-09 07:58:06 +0200
commit42f9444e983b5257241c17242471ca63f208c3f6 (patch)
tree4847ae743a0e05b0ff9d3d4ab6003ea257a6c682 /src/quick/util/qquickglobal.cpp
parentf09517bd9c907698a05ee92ccf158a06db3340b8 (diff)
Allow invokable functions of value-type classes to be called
Previously, invokable functions of value-type classes were returned as properties. This commit fixes that bug by allowing such functions to be invoked normally. It also improves copy-value type handling. This commit also ensures that QMatrix4x4 value types are constructed with qreal values as this is the storage type used internally. Change-Id: Iab0fe4c522ed53d60154e8a8d46dda925fb9f4de Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/quick/util/qquickglobal.cpp')
-rw-r--r--src/quick/util/qquickglobal.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/quick/util/qquickglobal.cpp b/src/quick/util/qquickglobal.cpp
index 1708cf7331..3d27e832ee 100644
--- a/src/quick/util/qquickglobal.cpp
+++ b/src/quick/util/qquickglobal.cpp
@@ -203,8 +203,8 @@ public:
int index = s.indexOf(QLatin1Char(','));
bool xGood, yGood;
- qreal xCoord = s.left(index).toDouble(&xGood);
- qreal yCoord = s.mid(index+1).toDouble(&yGood);
+ float xCoord = s.left(index).toFloat(&xGood);
+ float yCoord = s.mid(index+1).toFloat(&yGood);
if (xGood && yGood) {
if (ok) *ok = true;
@@ -223,9 +223,9 @@ public:
int index2 = s.indexOf(QLatin1Char(','), index+1);
bool xGood, yGood, zGood;
- qreal xCoord = s.left(index).toDouble(&xGood);
- qreal yCoord = s.mid(index+1, index2-index-1).toDouble(&yGood);
- qreal zCoord = s.mid(index2+1).toDouble(&zGood);
+ float xCoord = s.left(index).toFloat(&xGood);
+ float yCoord = s.mid(index+1, index2-index-1).toFloat(&yGood);
+ float zCoord = s.mid(index2+1).toFloat(&zGood);
if (xGood && yGood && zGood) {
if (ok) *ok = true;
@@ -245,10 +245,10 @@ public:
int index3 = s.indexOf(QLatin1Char(','), index2+1);
bool xGood, yGood, zGood, wGood;
- qreal xCoord = s.left(index).toDouble(&xGood);
- qreal yCoord = s.mid(index+1, index2-index-1).toDouble(&yGood);
- qreal zCoord = s.mid(index2+1, index3-index2-1).toDouble(&zGood);
- qreal wCoord = s.mid(index3+1).toDouble(&wGood);
+ float xCoord = s.left(index).toFloat(&xGood);
+ float yCoord = s.mid(index+1, index2-index-1).toFloat(&yGood);
+ float zCoord = s.mid(index2+1, index3-index2-1).toFloat(&zGood);
+ float wCoord = s.mid(index3+1).toFloat(&wGood);
if (xGood && yGood && zGood && wGood) {
if (ok) *ok = true;
@@ -582,7 +582,7 @@ public:
break;
case QMetaType::QQuaternion:
if (argc == 1) {
- const double *sxyz = reinterpret_cast<const double*>(argv[0]);
+ const qreal *sxyz = reinterpret_cast<const qreal*>(argv[0]);
QQuaternion q(sxyz[0], sxyz[1], sxyz[2], sxyz[3]);
*v = QVariant(q);
return true;
@@ -590,7 +590,7 @@ public:
break;
case QMetaType::QMatrix4x4:
if (argc == 1) {
- const float *vals = reinterpret_cast<const float*>(argv[0]);
+ const qreal *vals = reinterpret_cast<const qreal*>(argv[0]);
QMatrix4x4 m(vals[0], vals[1], vals[2], vals[3],
vals[4], vals[5], vals[6], vals[7],
vals[8], vals[9], vals[10], vals[11],