diff options
author | Ian Walters <ian.walters@nokia.com> | 2009-05-05 02:11:36 (GMT) |
---|---|---|
committer | Ian Walters <ian.walters@nokia.com> | 2009-05-05 02:11:36 (GMT) |
commit | d0b37af9b27849278fd56a83635c141525a912ce (patch) | |
tree | 2c0c2c149d686b52c339a5b2135fde35659d7648 /src/declarative/qml/qmlvme.cpp | |
parent | 28b3eb37f7647450ccbac1365a06ffc6ba6a8584 (diff) | |
parent | 84b619c1e8556c3e7ca79d799dfa705b63523370 (diff) | |
download | Qt-d0b37af9b27849278fd56a83635c141525a912ce.zip Qt-d0b37af9b27849278fd56a83635c141525a912ce.tar.gz Qt-d0b37af9b27849278fd56a83635c141525a912ce.tar.bz2 |
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Conflicts:
doc/src/tutorials/declarative.qdoc
Diffstat (limited to 'src/declarative/qml/qmlvme.cpp')
-rw-r--r-- | src/declarative/qml/qmlvme.cpp | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/declarative/qml/qmlvme.cpp b/src/declarative/qml/qmlvme.cpp index 253e9a7..a3bfd62 100644 --- a/src/declarative/qml/qmlvme.cpp +++ b/src/declarative/qml/qmlvme.cpp @@ -45,7 +45,7 @@ #include <private/qmlstringconverters_p.h> #include "private/qmetaobjectbuilder_p.h" #include <qml.h> -#include <qmlcustomparser.h> +#include <private/qmlcustomparser_p.h> #include <qperformancelog.h> #include <QStack> #include <private/qmlcompiledcomponent_p.h> @@ -176,9 +176,14 @@ QmlVME::QmlVME() #define VME_EXCEPTION(desc) \ { \ - exceptionLine = instr.line; \ - QDebug d(&exceptionDescription); \ - d << desc; \ + QString str; \ + QDebug d(&str); \ + d << desc; \ + QmlError error; \ + error.setDescription(str); \ + error.setLine(instr.line); \ + error.setUrl(comp->url); \ + vmeErrors << error; \ break; \ } @@ -224,6 +229,8 @@ QObject *QmlVME::run(QmlContext *ctxt, QmlCompiledComponent *comp, int start, in QStack<QmlMetaProperty> pushedProperties; QObject **savedObjects = 0; + vmeErrors.clear(); + if (start == -1) start = 0; if (count == -1) count = comp->bytecode.count(); @@ -257,6 +264,11 @@ QObject *QmlVME::run(QmlContext *ctxt, QmlCompiledComponent *comp, int start, in if (!o) VME_EXCEPTION("Unable to create object of type" << types.at(instr.create.type).className); + if (instr.create.data != -1) { + QmlCustomParser *customParser = + types.at(instr.create.type).type->customParser(); + customParser->setCustomData(o, datas.at(instr.create.data)); + } if (!stack.isEmpty()) { QObject *parent = stack.top(); o->setParent(parent); @@ -1067,17 +1079,12 @@ QObject *QmlVME::run(QmlContext *ctxt, QmlCompiledComponent *comp, int start, in bool QmlVME::isError() const { - return exceptionLine != -1; -} - -qint64 QmlVME::errorLine() const -{ - return exceptionLine; + return !vmeErrors.isEmpty(); } -QString QmlVME::errorDescription() const +QList<QmlError> QmlVME::errors() const { - return exceptionDescription; + return vmeErrors; } void QmlVME::runStoreInstruction(QStack<QObject *> &stack, |