From fb8357136efff51c9874c1a17a3889a650a3dada Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@nokia.com>
Date: Wed, 17 Feb 2010 13:37:00 +0100
Subject: [PATCH] Remove support for old .qmlproject file format

We used to fail back to the old format if the .qmlproject file
was invalid. Anyhow, this lead to weird effects ... better disable
it explicitly.

That no warning is shown right now when loading an invalid qmlproject
file is a bug in coreplugin.
---
 src/plugins/qmlprojectmanager/qmlproject.cpp  | 39 ++++++-------------
 src/plugins/qmlprojectmanager/qmlproject.h    |  2 +
 .../qmlprojectmanager/qmlprojectmanager.cpp   |  8 ++--
 3 files changed, 16 insertions(+), 33 deletions(-)

diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index c738c6c2ce3..975c5a623c0 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -31,6 +31,9 @@
 #include "qmlprojectfile.h"
 #include "qmlprojectmanagerconstants.h"
 #include "fileformat/qmlprojectitem.h"
+
+#include <coreplugin/icore.h>
+#include <coreplugin/messagemanager.h>
 #include <extensionsystem/pluginmanager.h>
 #include <projectexplorer/filewatcher.h>
 #include <qmljseditor/qmljsmodelmanagerinterface.h>
@@ -77,30 +80,6 @@ QDir QmlProject::projectDir() const
 QString QmlProject::filesFileName() const
 { return m_fileName; }
 
-static QStringList readLines(const QString &absoluteFileName)
-{
-    QStringList lines;
-
-    QFile file(absoluteFileName);
-    if (file.open(QFile::ReadOnly)) {
-        QTextStream stream(&file);
-
-        forever {
-            QString line = stream.readLine();
-            if (line.isNull())
-                break;
-
-            line = line.trimmed();
-            if (line.isEmpty())
-                continue;
-
-            lines.append(line);
-        }
-    }
-
-    return lines;
-}
-
 void QmlProject::parseProject(RefreshOptions options)
 {
     if (options & Files) {
@@ -116,10 +95,9 @@ void QmlProject::parseProject(RefreshOptions options)
                     m_projectItem = qobject_cast<QmlProjectItem*>(component->create());
                     connect(m_projectItem.data(), SIGNAL(qmlFilesChanged()), this, SLOT(refreshFiles()));
                 } else {
-                    qWarning() << m_fileName << "is not valid qml file, falling back to old format ...";
-                    m_files = convertToAbsoluteFiles(readLines(filesFileName()));
-                    m_files.removeDuplicates();
-                    m_modelManager->updateSourceFiles(m_files);
+                    Core::MessageManager *messageManager = Core::ICore::instance()->messageManager();
+                    messageManager->printToOutputPane(tr("Error while loading project file!"));
+                    messageManager->printToOutputPane(component->errorsString(), true);
                 }
             }
         }
@@ -173,6 +151,11 @@ QStringList QmlProject::files() const
     return files;
 }
 
+bool QmlProject::validProjectFile() const
+{
+    return !m_projectItem.isNull();
+}
+
 QStringList QmlProject::libraryPaths() const
 {
     QStringList libraryPaths;
diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h
index 994d75acb4e..3e209e53fad 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.h
+++ b/src/plugins/qmlprojectmanager/qmlproject.h
@@ -85,6 +85,8 @@ public:
     Internal::QmlProjectNode *rootProjectNode() const;
     QStringList files(FilesMode fileMode) const;
 
+    bool validProjectFile() const;
+
     enum RefreshOption {
         ProjectFile   = 0x01,
         Files         = 0x02,
diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp b/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp
index 3d352876b98..2fc768f195b 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp
@@ -73,16 +73,14 @@ ProjectExplorer::Project *Manager::openProject(const QString &fileName)
 
     foreach (ProjectExplorer::Project *pi, projectExplorer->session()->projects()) {
         if (fileName == pi->file()->fileName()) {
-            messageManager->printToOutputPane(tr("Failed opening project '%1': Project already open").arg(QDir::toNativeSeparators(fileName)));
-            messageManager->displayStatusBarMessage(tr("Failed opening project"), 5000);
+            messageManager->printToOutputPanePopup(tr("Failed opening project '%1': Project already open")
+                                                   .arg(QDir::toNativeSeparators(fileName)));
             return 0;
         }
     }
 
     if (fileInfo.isFile()) {
-        QmlProject *project = new QmlProject(this, fileName);
-        messageManager->displayStatusBarMessage(tr("Done opening project"), 5000);
-        return project;
+        return new QmlProject(this, fileName);
     }
 
     return 0;
-- 
GitLab