diff options
author | Kai Koehne <kai.koehne@nokia.com> | 2011-10-28 09:05:42 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-10-31 14:00:02 +0100 |
commit | 7c723fdb4d395ccc29e0289ae085e285c9701abe (patch) | |
tree | b3ec12b22ad2e4dfcacd4f8e31d648ee3987c5c8 /src | |
parent | 90ac4bee4388a5bee0882b7e6c1e8ebcedf66fae (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')
-rw-r--r-- | src/declarative/util/qdeclarativeconnections.cpp | 7 |
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 { |