aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/util
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@nokia.com>2011-10-28 09:05:42 +0200
committerQt by Nokia <qt-info@nokia.com>2011-10-31 14:00:02 +0100
commit7c723fdb4d395ccc29e0289ae085e285c9701abe (patch)
treeb3ec12b22ad2e4dfcacd4f8e31d648ee3987c5c8 /src/declarative/util
parent90ac4bee4388a5bee0882b7e6c1e8ebcedf66fae (diff)
Pass the right line information to signal handlers in Connection element
Make sure that the right line information is passed to v8 when executing signal handlers in the Connection element. Change-Id: I384caa40217e9c148fdb4943cf471d1aafcea735 Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/declarative/util')
-rw-r--r--src/declarative/util/qdeclarativeconnections.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/declarative/util/qdeclarativeconnections.cpp b/src/declarative/util/qdeclarativeconnections.cpp
index c57363fdfe..aa944f3622 100644
--- a/src/declarative/util/qdeclarativeconnections.cpp
+++ b/src/declarative/util/qdeclarativeconnections.cpp
@@ -203,6 +203,8 @@ QDeclarativeConnectionsParser::compile(const QList<QDeclarativeCustomParserPrope
for(int ii = 0; ii < props.count(); ++ii)
{
QString propName = props.at(ii).name();
+ int propLine = props.at(ii).location().line;
+
if (!propName.startsWith(QLatin1String("on")) || !propName.at(2).isUpper()) {
error(props.at(ii), QDeclarativeConnections::tr("Cannot assign to non-existent property \"%1\"").arg(propName));
return QByteArray();
@@ -224,6 +226,7 @@ QDeclarativeConnectionsParser::compile(const QList<QDeclarativeCustomParserPrope
if (v.isScript()) {
ds << propName;
ds << v.asScript();
+ ds << propLine;
} else {
error(props.at(ii), QDeclarativeConnections::tr("Connections: script expected"));
return QByteArray();
@@ -256,6 +259,8 @@ void QDeclarativeConnections::connectSignals()
ds >> propName;
QString script;
ds >> script;
+ int line;
+ ds >> line;
QDeclarativeProperty prop(target(), propName);
if (prop.isValid() && (prop.type() & QDeclarativeProperty::SignalProperty)) {
QDeclarativeBoundSignal *signal =
@@ -263,7 +268,7 @@ void QDeclarativeConnections::connectSignals()
QDeclarativeExpression *expression = new QDeclarativeExpression(qmlContext(this), 0, script);
QDeclarativeData *ddata = QDeclarativeData::get(this);
if (ddata && ddata->outerContext && !ddata->outerContext->url.isEmpty())
- expression->setSourceLocation(ddata->outerContext->url.toString(), ddata->lineNumber);
+ expression->setSourceLocation(ddata->outerContext->url.toString(), line);
signal->setExpression(expression);
d->boundsignals += signal;
} else {