From 2d393ae042d5badf0862c0f95122f9662042f2a9 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 11 Apr 2012 15:57:06 -0300 Subject: [PATCH] Stop stuffing the URL "" in QML errors QQmlError already knows how to deal with source scripts with no URL and it will use "" when converting to a string. QUrl in Qt 5 leaves the "<" and ">" characters encoded, which means we ended up getting warnings about "%3CUnknown File%3E", which isn't nice. Change-Id: I504604fa37bb734549048432aaf9db3b1fa568d2 Reviewed-by: Lars Knoll --- src/qml/qml/qqmlbinding.cpp | 2 -- src/qml/qml/qqmljavascriptexpression.cpp | 2 +- src/qml/qml/v8/qv8bindings.cpp | 5 +---- tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp | 2 +- tests/auto/qml/qqmlengine/tst_qqmlengine.cpp | 2 +- 5 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp index c4f48ef..d2a02dc 100644 --- a/src/qml/qml/qqmlbinding.cpp +++ b/src/qml/qml/qqmlbinding.cpp @@ -230,8 +230,6 @@ void QQmlBinding::update(QQmlPropertyPrivate::WriteFlags flags) if (needsErrorData) { QUrl url = QUrl(m_url); - if (url.isEmpty()) url = QUrl(QLatin1String("")); - delayedError()->error.setUrl(url); delayedError()->error.setLine(m_lineNumber); delayedError()->error.setColumn(m_columnNumber); diff --git a/src/qml/qml/qqmljavascriptexpression.cpp b/src/qml/qml/qqmljavascriptexpression.cpp index aad6a04..569a292 100644 --- a/src/qml/qml/qqmljavascriptexpression.cpp +++ b/src/qml/qml/qqmljavascriptexpression.cpp @@ -263,7 +263,7 @@ void QQmlJavaScriptExpression::exceptionToError(v8::Handle message, v8::Local file = name->IsString()?name->ToString():v8::Local(); if (file.IsEmpty() || file->Length() == 0) - error.setUrl(QUrl(QLatin1String(""))); + error.setUrl(QUrl()); else error.setUrl(QUrl(QV8Engine::toStringStatic(file))); diff --git a/src/qml/qml/v8/qv8bindings.cpp b/src/qml/qml/v8/qv8bindings.cpp index 025854f..65c395e 100644 --- a/src/qml/qml/v8/qv8bindings.cpp +++ b/src/qml/qml/v8/qv8bindings.cpp @@ -144,10 +144,7 @@ void QV8Bindings::Binding::update(QQmlPropertyPrivate::WriteFlags flags) if (!watcher.wasDeleted() && !destroyedFlag()) { if (needsErrorData) { - QUrl url = parent->url(); - if (url.isEmpty()) url = QUrl(QLatin1String("")); - - delayedError()->error.setUrl(url); + delayedError()->error.setUrl(parent->url()); delayedError()->error.setLine(instruction->line); delayedError()->error.setColumn(-1); } diff --git a/tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp b/tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp index 6525bde..16365ee 100644 --- a/tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp +++ b/tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp @@ -345,7 +345,7 @@ void tst_qqmlcontext::setContextProperty() QQmlContext ctxt(engine.rootContext()); ctxt.setContextProperty("ctxtProp", QVariant()); - QTest::ignoreMessage(QtWarningMsg, ":1: TypeError: Cannot read property 'a' of undefined"); + QTest::ignoreMessage(QtWarningMsg, ": TypeError: Cannot read property 'a' of undefined"); QObject *obj = component.create(&ctxt); QVariant v = obj->property("obj"); diff --git a/tests/auto/qml/qqmlengine/tst_qqmlengine.cpp b/tests/auto/qml/qqmlengine/tst_qqmlengine.cpp index af2c897..89fc8e0 100644 --- a/tests/auto/qml/qqmlengine/tst_qqmlengine.cpp +++ b/tests/auto/qml/qqmlengine/tst_qqmlengine.cpp @@ -268,7 +268,7 @@ void tst_qqmlengine::outputWarningsToStandardError() delete o; QCOMPARE(warnings.count(), 1); - QCOMPARE(warnings.at(0), QLatin1String(":1: Unable to assign [undefined] to int")); + QCOMPARE(warnings.at(0), QLatin1String(": Unable to assign [undefined] to int")); warnings.clear(); -- 1.7.2.5