forked from qt-creator/qt-creator
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:
@@ -32,8 +32,11 @@
|
|||||||
#include "genericproject.h"
|
#include "genericproject.h"
|
||||||
|
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
|
#include <coreplugin/messagemanager.h>
|
||||||
#include <coreplugin/uniqueidmanager.h>
|
#include <coreplugin/uniqueidmanager.h>
|
||||||
|
#include <projectexplorer/projectexplorer.h>
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
|
#include <projectexplorer/session.h>
|
||||||
|
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
|
|
||||||
@@ -60,14 +63,21 @@ QString Manager::mimeType() const
|
|||||||
|
|
||||||
ProjectExplorer::Project *Manager::openProject(const QString &fileName)
|
ProjectExplorer::Project *Manager::openProject(const QString &fileName)
|
||||||
{
|
{
|
||||||
QFileInfo fileInfo(fileName);
|
if (!QFileInfo(fileName).isFile())
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (fileInfo.isFile()) {
|
ProjectExplorer::ProjectExplorerPlugin *projectExplorer = ProjectExplorer::ProjectExplorerPlugin::instance();
|
||||||
GenericProject *project = new GenericProject(this, fileName);
|
foreach (ProjectExplorer::Project *pi, projectExplorer->session()->projects()) {
|
||||||
return project;
|
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)
|
void Manager::registerProject(GenericProject *project)
|
||||||
|
|||||||
Reference in New Issue
Block a user