Fix the qmldir parser diagnostic messages.
authorRoberto Raggi <roberto.raggi@nokia.com>
Mon, 22 Aug 2011 13:27:04 +0000 (15:27 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 30 Aug 2011 11:18:28 +0000 (13:18 +0200)
Change-Id: I752d5cf334faa5761007f553caf49e64d0e1f411
Reviewed-on: http://codereview.qt.nokia.com/3795
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
src/declarative/qml/qdeclarativedirparser.cpp
src/declarative/qml/qdeclarativedirparser_p.h
src/declarative/qml/qdeclarativeimport.cpp

index 1008d39..dd7f4e4 100644 (file)
@@ -109,14 +109,14 @@ bool QDeclarativeDirParser::parse()
         QFile file(_filePathSouce);
         if (!QDeclarative_isFileCaseCorrect(_filePathSouce)) {
             QDeclarativeError error;
-            error.setDescription(QString::fromUtf8("cannot load module \"%1\": File name case mismatch for \"%2\"").arg(_url.toString()).arg(_filePathSouce));
+            error.setDescription(QString::fromUtf8("cannot load module \"%2\": File name case mismatch for \"%1\"").arg(_filePathSouce));
             _errors.prepend(error);
             return false;
         } else if (file.open(QFile::ReadOnly)) {
             _source = QString::fromUtf8(file.readAll());
         } else {
             QDeclarativeError error;
-            error.setDescription(QString::fromUtf8("module \"%1\" definition \"%2\" not readable").arg(_url.toString()).arg(_filePathSouce));
+            error.setDescription(QString::fromUtf8("module \"%2\" definition \"%1\" not readable").arg(_filePathSouce));
             _errors.prepend(error);
             return false;
         }
@@ -254,9 +254,14 @@ bool QDeclarativeDirParser::hasError() const
     return false;
 }
 
-QList<QDeclarativeError> QDeclarativeDirParser::errors() const
+QList<QDeclarativeError> QDeclarativeDirParser::errors(const QString &uri) const
 {
-    return _errors;
+    QList<QDeclarativeError> errors = _errors;
+    for (int i = 0; i < errors.size(); ++i) {
+        QDeclarativeError &e = errors[i];
+        e.setDescription(e.description().arg(uri));
+    }
+    return errors;
 }
 
 QList<QDeclarativeDirParser::Plugin> QDeclarativeDirParser::plugins() const
index a5df5b4..8540747 100644 (file)
@@ -80,7 +80,7 @@ public:
     bool parse();
 
     bool hasError() const;
-    QList<QDeclarativeError> errors() const;
+    QList<QDeclarativeError> errors(const QString &uri) const;
 
     struct Plugin
     {
index 0d35947..539f1b8 100644 (file)
@@ -370,8 +370,9 @@ bool QDeclarativeImportsPrivate::importExtension(const QString &absoluteFilePath
     const QDeclarativeDirParser *qmldirParser = typeLoader->qmlDirParser(absoluteFilePath);
     if (qmldirParser->hasError()) {
         if (errors) {
-            for (int i = 0; i < qmldirParser->errors().size(); ++i)
-                errors->prepend(qmldirParser->errors().at(i));
+            const QList<QDeclarativeError> qmldirErrors = qmldirParser->errors(uri);
+            for (int i = 0; i < qmldirErrors.size(); ++i)
+                errors->prepend(qmldirErrors.at(i));
         }
         return false;
     }