ProjectExplorer: Follow up on too-much-magic in IProjectManager

Use a ProjectManager::registerProjectType<Project>(MimeType) function,
removing cryptic IProjectManager object ownership.

Change-Id: I212cd25bd4ee757022a8cb0decb4b8de3a112d12
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2017-03-03 18:16:34 +01:00
parent 57144e28da
commit c1bfc5d8ec
54 changed files with 152 additions and 532 deletions

View File

@@ -155,13 +155,3 @@ void CMakeManager::rescanProject(Project *project)
cmakeProject->scanProjectTree();
cmakeProject->runCMake(); // by my experience: every rescan run requires cmake run too
}
Project *CMakeManager::openProject(const QString &fileName)
{
return new CMakeProject(Utils::FileName::fromString(fileName));
}
QString CMakeManager::mimeType() const
{
return QLatin1String(Constants::CMAKEPROJECTMIMETYPE);
}

View File

@@ -25,7 +25,7 @@
#pragma once
#include <projectexplorer/iprojectmanager.h>
#include <projectexplorer/project.h>
QT_BEGIN_NAMESPACE
class QAction;
@@ -36,15 +36,13 @@ namespace Internal {
class CMakeSettingsPage;
class CMakeManager : public ProjectExplorer::IProjectManager
class CMakeManager : public QObject
{
Q_OBJECT
public:
CMakeManager();
ProjectExplorer::Project *openProject(const QString &fileName) override;
QString mimeType() const override;
private:
void updateCmakeActions();
void clearCMakeCache(ProjectExplorer::Project *project);

View File

@@ -45,6 +45,7 @@
#include <coreplugin/fileiconprovider.h>
#include <projectexplorer/kitmanager.h>
#include <projectexplorer/projectmanager.h>
#include <projectexplorer/projecttree.h>
#include <utils/parameteraction.h>
@@ -64,6 +65,9 @@ bool CMakeProjectPlugin::initialize(const QStringList & /*arguments*/, QString *
addAutoReleasedObject(new Internal::CMakeSnippetProvider);
addAutoReleasedObject(new CMakeSettingsPage);
addAutoReleasedObject(new CMakeManager);
ProjectManager::registerProjectType<CMakeProject>(Constants::CMAKEPROJECTMIMETYPE);
addAutoReleasedObject(new CMakeBuildStepFactory);
addAutoReleasedObject(new CMakeRunConfigurationFactory);
addAutoReleasedObject(new CMakeBuildConfigurationFactory);