Don't allow opening the same generic project multiple times

Quick fix by copying code also found in Qt4 and QML project managers.
Would be better to have some common solution...

Task-number: QTCREATORBUG-1383
This commit is contained in:
Thorbjørn Lindeijer
2010-05-17 16:18:34 +02:00
parent 896f474511
commit 2816ccbd37
4 changed files with 18 additions and 8 deletions

View File

@@ -32,8 +32,11 @@
#include "genericproject.h"
#include <coreplugin/icore.h>
#include <coreplugin/messagemanager.h>
#include <coreplugin/uniqueidmanager.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/session.h>
#include <QtDebug>
@@ -60,14 +63,21 @@ QString Manager::mimeType() const
ProjectExplorer::Project *Manager::openProject(const QString &fileName)
{
QFileInfo fileInfo(fileName);
if (!QFileInfo(fileName).isFile())
return 0;
if (fileInfo.isFile()) {
GenericProject *project = new GenericProject(this, fileName);
return project;
ProjectExplorer::ProjectExplorerPlugin *projectExplorer = ProjectExplorer::ProjectExplorerPlugin::instance();
foreach (ProjectExplorer::Project *pi, projectExplorer->session()->projects()) {
if (fileName == pi->file()->fileName()) {
Core::MessageManager *messageManager = Core::ICore::instance()->messageManager();
messageManager->printToOutputPanePopup(tr("Failed opening project '%1': Project already open")
.arg(QDir::toNativeSeparators(fileName)));
return 0;
}
}
return 0;
GenericProject *project = new GenericProject(this, fileName);
return project;
}
void Manager::registerProject(GenericProject *project)