diff options
Diffstat (limited to 'src/declarative/util/qdeclarativeconnections.cpp')
-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 { |