summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qdeclarativebinding.cpp
diff options
context:
space:
mode:
authorBea Lam <bea.lam@nokia.com>2011-01-27 05:34:34 (GMT)
committerBea Lam <bea.lam@nokia.com>2011-01-27 05:37:10 (GMT)
commit43b8305367156c1ceb09eb4a056bdae3f325b5eb (patch)
tree8d792838920476495cba22c802939b719619a55d /src/declarative/qml/qdeclarativebinding.cpp
parent357f1163f75e4b23a5b87dd6b3d742d167cd9c10 (diff)
downloadQt-43b8305367156c1ceb09eb4a056bdae3f325b5eb.zip
Qt-43b8305367156c1ceb09eb4a056bdae3f325b5eb.tar.gz
Qt-43b8305367156c1ceb09eb4a056bdae3f325b5eb.tar.bz2
Allow property bindings to be easily created from JavaScript
Properties can now be assigned a function that returns the binding value. Task-number: QTBUG-14964 Reviewed-by: Aaron Kennedy
Diffstat (limited to 'src/declarative/qml/qdeclarativebinding.cpp')
-rw-r--r--src/declarative/qml/qdeclarativebinding.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/declarative/qml/qdeclarativebinding.cpp b/src/declarative/qml/qdeclarativebinding.cpp
index b2d0738..a5bd604 100644
--- a/src/declarative/qml/qdeclarativebinding.cpp
+++ b/src/declarative/qml/qdeclarativebinding.cpp
@@ -274,6 +274,13 @@ QDeclarativeBinding::QDeclarativeBinding(const QString &str, QObject *obj, QDecl
setNotifyOnValueChanged(true);
}
+QDeclarativeBinding::QDeclarativeBinding(const QScriptValue &func, QObject *obj, QDeclarativeContextData *ctxt, QObject *parent)
+: QDeclarativeExpression(ctxt, obj, func, *new QDeclarativeBindingPrivate)
+{
+ setParent(parent);
+ setNotifyOnValueChanged(true);
+}
+
QDeclarativeBinding::~QDeclarativeBinding()
{
}
@@ -292,6 +299,19 @@ QDeclarativeProperty QDeclarativeBinding::property() const
return d->property;
}
+void QDeclarativeBinding::setEvaluateFlags(EvaluateFlags flags)
+{
+ Q_D(QDeclarativeBinding);
+ d->setEvaluateFlags(QDeclarativeQtScriptExpression::EvaluateFlags(static_cast<int>(flags)));
+}
+
+QDeclarativeBinding::EvaluateFlags QDeclarativeBinding::evaluateFlags() const
+{
+ Q_D(const QDeclarativeBinding);
+ return QDeclarativeBinding::EvaluateFlags(static_cast<int>(d->evaluateFlags()));
+}
+
+
class QDeclarativeBindingProfiler {
public:
QDeclarativeBindingProfiler(QDeclarativeBinding *bind)