diff options
author | Bea Lam <bea.lam@nokia.com> | 2011-01-27 05:34:34 (GMT) |
---|---|---|
committer | Bea Lam <bea.lam@nokia.com> | 2011-01-27 05:37:10 (GMT) |
commit | 43b8305367156c1ceb09eb4a056bdae3f325b5eb (patch) | |
tree | 8d792838920476495cba22c802939b719619a55d /src/declarative/qml/qdeclarativebinding.cpp | |
parent | 357f1163f75e4b23a5b87dd6b3d742d167cd9c10 (diff) | |
download | Qt-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.cpp | 20 |
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) |