forked from qt-creator/qt-creator
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:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user