summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2009-08-25 23:28:14 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2009-08-25 23:28:14 (GMT)
commitcf7f81933c593b1459d3afaf9cf8d968c81550cc (patch)
tree6e0060ab15c1fd95da511b13da66795e8f0a107e /src/declarative/qml
parent94a4d1918d5fe0d6d094b3f3cbc9e763a50bb19f (diff)
parent314c6ec54e4cb4e2ec936ada7e0a112a60b87832 (diff)
downloadQt-cf7f81933c593b1459d3afaf9cf8d968c81550cc.zip
Qt-cf7f81933c593b1459d3afaf9cf8d968c81550cc.tar.gz
Qt-cf7f81933c593b1459d3afaf9cf8d968c81550cc.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/qmlexpression.cpp12
-rw-r--r--src/declarative/qml/qmlvaluetype.cpp81
-rw-r--r--src/declarative/qml/qmlvaluetype_p.h18
3 files changed, 105 insertions, 6 deletions
diff --git a/src/declarative/qml/qmlexpression.cpp b/src/declarative/qml/qmlexpression.cpp
index 00454a1..77463cd 100644
--- a/src/declarative/qml/qmlexpression.cpp
+++ b/src/declarative/qml/qmlexpression.cpp
@@ -225,12 +225,13 @@ QVariant QmlExpressionPrivate::evalQtScript()
ctxtPriv->defaultObjects.insert(ctxtPriv->highPriorityCount, me);
QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(engine);
- QScriptContext *scriptContext = scriptEngine->pushContext();
- for (int i = ctxtPriv->scopeChain.size() - 1; i > -1; --i)
- scriptContext->pushScope(ctxtPriv->scopeChain.at(i));
if (!expressionFunctionValid) {
+ QScriptContext *scriptContext = scriptEngine->pushContext();
+ for (int i = ctxtPriv->scopeChain.size() - 1; i > -1; --i)
+ scriptContext->pushScope(ctxtPriv->scopeChain.at(i));
+
if (expressionRewritten) {
expressionFunction = scriptEngine->evaluate(expression, fileName, line);
} else {
@@ -239,12 +240,13 @@ QVariant QmlExpressionPrivate::evalQtScript()
const QString code = rewriteBinding(expression);
expressionFunction = scriptEngine->evaluate(code, fileName, line);
}
+
+ scriptEngine->popContext();
expressionFunctionValid = true;
}
QScriptValue svalue = expressionFunction.call();
-
if (scriptEngine->hasUncaughtException()) {
if (scriptEngine->uncaughtException().isError()){
QScriptValue exception = scriptEngine->uncaughtException();
@@ -301,8 +303,6 @@ QVariant QmlExpressionPrivate::evalQtScript()
if (rv.isNull())
rv = svalue.toVariant();
- scriptEngine->popContext();
-
return rv;
}
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<QPointF>(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<QPoint>(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<QSizeF>(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<QSize>(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<QRectF>(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<QRect>(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<QVector3D>(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<QFont>(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 &);