diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-04-08 06:13:31 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-04-08 06:18:43 (GMT) |
commit | df1788b4dbbb2826ae63f26bdf166342595343f4 (patch) | |
tree | b021f683c6da72f9c46d0decbf0f8aa97dd2a9d4 /src/declarative/qml/qdeclarativeexpression_p.h | |
parent | 942a605a52dbbd6dfa824e3b76e37576c7d79f6e (diff) | |
download | Qt-df1788b4dbbb2826ae63f26bdf166342595343f4.zip Qt-df1788b4dbbb2826ae63f26bdf166342595343f4.tar.gz Qt-df1788b4dbbb2826ae63f26bdf166342595343f4.tar.bz2 |
Cleanup handling of errors in bindings and scripts
QML used to silently ignore a log of errors - such as a failed assignment
to a QObject property. These errors are now all reported as exceptions
in JavaScript.
Other questionable activities, like assigning a JavaScript array to a
"property var" property which appeared to work, thanks to QtScript's
transparent conversion of arrays to a QVariantList, are now blocked
entirely.
QTBUG-9152 QTBUG-9382 QTBUG-9341 QTBUG-6886
Diffstat (limited to 'src/declarative/qml/qdeclarativeexpression_p.h')
-rw-r--r-- | src/declarative/qml/qdeclarativeexpression_p.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/declarative/qml/qdeclarativeexpression_p.h b/src/declarative/qml/qdeclarativeexpression_p.h index 9a90fb6..d39aa2c 100644 --- a/src/declarative/qml/qdeclarativeexpression_p.h +++ b/src/declarative/qml/qdeclarativeexpression_p.h @@ -150,7 +150,9 @@ public: QDeclarativeExpressionData *data; QVariant value(QObject *secondaryScope = 0, bool *isUndefined = 0); - QVariant evalQtScript(QObject *secondaryScope, bool *isUndefined = 0); + QScriptValue scriptValue(QObject *secondaryScope = 0, bool *isUndefined = 0); + + QScriptValue eval(QObject *secondaryScope, bool *isUndefined = 0); void updateGuards(const QPODVector<QDeclarativeEnginePrivate::CapturedProperty> &properties); void clearGuards(); @@ -165,8 +167,10 @@ public: virtual void emitValueChanged(); static void exceptionToError(QScriptEngine *, QDeclarativeError &); - static QScriptValue evalInObjectScope(QDeclarativeContextData *, QObject *, const QString &, QScriptValue * = 0); - static QScriptValue evalInObjectScope(QDeclarativeContextData *, QObject *, const QScriptProgram &, QScriptValue * = 0); + static QScriptValue evalInObjectScope(QDeclarativeContextData *, QObject *, const QString &, const QString &, + int, QScriptValue *); + static QScriptValue evalInObjectScope(QDeclarativeContextData *, QObject *, const QScriptProgram &, + QScriptValue *); }; QT_END_NAMESPACE |