diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-12-09 12:39:23 +0000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-14 04:52:08 +0100 |
commit | e8d0ab4b01cabf31d9bff31a821928d846c2f0af (patch) | |
tree | e58f5d7a4a93b66a487ad9ea09b4f10d803b10c4 /src/declarative/qml/qdeclarativebinding.cpp | |
parent | 0f2188361b996c4d8b8901412cdcebf35bad1e53 (diff) |
Add a tracing API for the QML engine
Change-Id: Ic03583444d586f275897d765be8e1b5e69fdd5d4
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'src/declarative/qml/qdeclarativebinding.cpp')
-rw-r--r-- | src/declarative/qml/qdeclarativebinding.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/declarative/qml/qdeclarativebinding.cpp b/src/declarative/qml/qdeclarativebinding.cpp index fbfba6d8d3..84b49e10a8 100644 --- a/src/declarative/qml/qdeclarativebinding.cpp +++ b/src/declarative/qml/qdeclarativebinding.cpp @@ -48,6 +48,7 @@ #include "qdeclarativecompiler_p.h" #include "qdeclarativedata_p.h" #include <private/qdeclarativedebugtrace_p.h> +#include <private/qdeclarativetrace_p.h> #include <QVariant> #include <QtCore/qdebug.h> @@ -215,7 +216,7 @@ void QDeclarativeBindingPrivate::refresh() } QDeclarativeBindingPrivate::QDeclarativeBindingPrivate() -: updating(false), enabled(false) +: updating(false), enabled(false), columnNumber(0) { } @@ -239,7 +240,7 @@ QDeclarativeBinding::createBinding(Identifier id, QObject *obj, QDeclarativeCont typeData = engine->typeLoader.get(ctxtdata->url); cdata = typeData->compiledData(); } - QDeclarativeBinding *rv = cdata ? new QDeclarativeBinding(cdata->primitives.at(id), true, obj, ctxtdata, url, lineNumber, parent) : 0; + QDeclarativeBinding *rv = cdata ? new QDeclarativeBinding(cdata->primitives.at(id), true, obj, ctxtdata, url, lineNumber, 0, parent) : 0; if (cdata) cdata->release(); if (typeData) @@ -265,11 +266,15 @@ QDeclarativeBinding::QDeclarativeBinding(const QString &str, QObject *obj, QDecl QDeclarativeBinding::QDeclarativeBinding(const QString &str, bool isRewritten, QObject *obj, QDeclarativeContextData *ctxt, - const QString &url, int lineNumber, QObject *parent) + const QString &url, int lineNumber, int columnNumber, + QObject *parent) : QDeclarativeExpression(ctxt, obj, str, isRewritten, url, lineNumber, *new QDeclarativeBindingPrivate) { + Q_D(QDeclarativeBinding); + setParent(parent); setNotifyOnValueChanged(true); + d->columnNumber = columnNumber; } /*! @@ -351,6 +356,11 @@ void QDeclarativeBinding::update(QDeclarativePropertyPrivate::WriteFlags flags) if (!d->enabled || !d->context() || !d->context()->isValid()) return; + QDeclarativeTrace trace("General Binding Update"); + trace.addDetail("URL", d->url); + trace.addDetail("Line", d->line); + trace.addDetail("Column", d->columnNumber); + if (!d->updating) { QDeclarativeBindingProfiler prof(this); d->updating = true; @@ -379,6 +389,8 @@ void QDeclarativeBinding::update(QDeclarativePropertyPrivate::WriteFlags flags) v8::Context::Scope scope(ep->v8engine()->context()); v8::Local<v8::Value> result = d->v8value(0, &isUndefined); + trace.event("writing binding result"); + bool needsErrorData = false; if (!watcher.wasDeleted() && !d->error.isValid()) needsErrorData = !QDeclarativePropertyPrivate::writeBinding(d->property, d, result, |