aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qdeclarativebinding.cpp
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2011-12-09 12:39:23 +0000
committerQt by Nokia <qt-info@nokia.com>2011-12-14 04:52:08 +0100
commite8d0ab4b01cabf31d9bff31a821928d846c2f0af (patch)
treee58f5d7a4a93b66a487ad9ea09b4f10d803b10c4 /src/declarative/qml/qdeclarativebinding.cpp
parent0f2188361b996c4d8b8901412cdcebf35bad1e53 (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.cpp18
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,