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