aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorChristiaan Janssen <christiaan.janssen@nokia.com>2012-01-11 17:50:51 +0100
committerQt by Nokia <qt-info@nokia.com>2012-01-16 12:36:46 +0100
commitdf6338a7b4ff43b1bb0538c44c632d122a7c3766 (patch)
tree23ba0e6833865ad6e7bb5144c78f61d8c4590acc /src/quick
parenteca445fdf76ee59f7dae07f8833e2f00da26dd89 (diff)
QDeclarativeExpression: storing column number in expression location
Change-Id: I2d69738158abfc76f80b1cfc0e0ccb145fda2245 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/qtquick2.cpp6
-rw-r--r--src/quick/util/qdeclarativeconnections.cpp7
-rw-r--r--src/quick/util/qdeclarativepropertychanges.cpp6
3 files changed, 12 insertions, 7 deletions
diff --git a/src/quick/qtquick2.cpp b/src/quick/qtquick2.cpp
index 8614589557..232a621ce3 100644
--- a/src/quick/qtquick2.cpp
+++ b/src/quick/qtquick2.cpp
@@ -67,7 +67,7 @@ public:
virtual void updateBinding(QDeclarativeContext *context,
const QDeclarativeProperty &property,
const QVariant &expression, bool isLiteralValue,
- const QString &fileName, int line,
+ const QString &fileName, int line, int column,
bool *isBaseState);
virtual bool setBindingForInvalidProperty(QObject *object,
const QString &propertyName,
@@ -122,7 +122,7 @@ void QDeclarativeQtQuick2DebugStatesDelegate::buildStatesList(QObject *obj)
void QDeclarativeQtQuick2DebugStatesDelegate::updateBinding(QDeclarativeContext *context,
const QDeclarativeProperty &property,
const QVariant &expression, bool isLiteralValue,
- const QString &fileName, int line,
+ const QString &fileName, int line, int column,
bool *inBaseState)
{
QObject *object = property.object();
@@ -138,7 +138,7 @@ void QDeclarativeQtQuick2DebugStatesDelegate::updateBinding(QDeclarativeContext
newBinding = new QDeclarativeBinding(expression.toString(), object, context);
newBinding->setTarget(property);
newBinding->setNotifyOnValueChanged(true);
- newBinding->setSourceLocation(fileName, line);
+ newBinding->setSourceLocation(fileName, line, column);
}
state->changeBindingInRevertList(object, propertyName, newBinding);
diff --git a/src/quick/util/qdeclarativeconnections.cpp b/src/quick/util/qdeclarativeconnections.cpp
index 92bb1ffa0f..7b977c8f5c 100644
--- a/src/quick/util/qdeclarativeconnections.cpp
+++ b/src/quick/util/qdeclarativeconnections.cpp
@@ -204,6 +204,7 @@ QDeclarativeConnectionsParser::compile(const QList<QDeclarativeCustomParserPrope
{
QString propName = props.at(ii).name();
int propLine = props.at(ii).location().line;
+ int propColumn = props.at(ii).location().column;
if (!propName.startsWith(QLatin1String("on")) || !propName.at(2).isUpper()) {
error(props.at(ii), QDeclarativeConnections::tr("Cannot assign to non-existent property \"%1\"").arg(propName));
@@ -227,6 +228,7 @@ QDeclarativeConnectionsParser::compile(const QList<QDeclarativeCustomParserPrope
ds << propName;
ds << rewriteSignalHandler(v.asScript(), propName);
ds << propLine;
+ ds << propColumn;
} else {
error(props.at(ii), QDeclarativeConnections::tr("Connections: script expected"));
return QByteArray();
@@ -261,6 +263,9 @@ void QDeclarativeConnections::connectSignals()
ds >> script;
int line;
ds >> line;
+ int column;
+ ds >> column;
+
QDeclarativeProperty prop(target(), propName);
if (prop.isValid() && (prop.type() & QDeclarativeProperty::SignalProperty)) {
QDeclarativeBoundSignal *signal =
@@ -276,7 +281,7 @@ void QDeclarativeConnections::connectSignals()
}
QDeclarativeExpression *expression = ctxtdata ?
- QDeclarativeExpressionPrivate::create(ctxtdata, 0, script, true, location, line) : 0;
+ QDeclarativeExpressionPrivate::create(ctxtdata, 0, script, true, location, line, column) : 0;
signal->setExpression(expression);
d->boundsignals += signal;
} else {
diff --git a/src/quick/util/qdeclarativepropertychanges.cpp b/src/quick/util/qdeclarativepropertychanges.cpp
index a475c5f879..9404b24560 100644
--- a/src/quick/util/qdeclarativepropertychanges.cpp
+++ b/src/quick/util/qdeclarativepropertychanges.cpp
@@ -337,7 +337,7 @@ void QDeclarativePropertyChangesPrivate::decode()
QDeclarativeExpression *expression = new QDeclarativeExpression(qmlContext(q), object, data.toString());
QDeclarativeData *ddata = QDeclarativeData::get(q);
if (ddata && ddata->outerContext && !ddata->outerContext->url.isEmpty())
- expression->setSourceLocation(ddata->outerContext->url.toString(), ddata->lineNumber);
+ expression->setSourceLocation(ddata->outerContext->url.toString(), ddata->lineNumber, ddata->columnNumber);
QDeclarativeReplaceSignalHandler *handler = new QDeclarativeReplaceSignalHandler;
handler->property = prop;
handler->expression = expression;
@@ -346,7 +346,7 @@ void QDeclarativePropertyChangesPrivate::decode()
QDeclarativeExpression *expression = new QDeclarativeExpression(qmlContext(q), object, data.toString());
QDeclarativeData *ddata = QDeclarativeData::get(q);
if (ddata && ddata->outerContext && !ddata->outerContext->url.isEmpty())
- expression->setSourceLocation(ddata->outerContext->url.toString(), ddata->lineNumber);
+ expression->setSourceLocation(ddata->outerContext->url.toString(), ddata->lineNumber, ddata->columnNumber);
expressions << ExpressionChange(name, id, expression);
} else {
properties << qMakePair(name, data);
@@ -480,7 +480,7 @@ QDeclarativePropertyChanges::ActionList QDeclarativePropertyChanges::actions()
QDeclarativeBinding *newBinding = id != QDeclarativeBinding::Invalid ? QDeclarativeBinding::createBinding(id, object(), qmlContext(this), e->sourceFile(), e->lineNumber()) : 0;
if (!newBinding) {
newBinding = new QDeclarativeBinding(e->expression(), object(), qmlContext(this));
- newBinding->setSourceLocation(e->sourceFile(), e->lineNumber());
+ newBinding->setSourceLocation(e->sourceFile(), e->lineNumber(), e->columnNumber());
}
newBinding->setTarget(prop);
a.toBinding = newBinding;