forked from qt-creator/qt-creator
ProjectExplorer: Use a functor for BuildSystem creation
... instead of creating the BuildSystem direct. This will help the shift of BuildSystem owner ship as a Project will have potentially multiple BuildSystem instances (one per BuildConfiguration), but still be responsible for creating them with the Targets. Change-Id: I2dd71c7687ed41af9e42c874b3f932ce704e7ee3 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -57,7 +57,7 @@ namespace Internal {
|
||||
class PythonBuildSystem : public BuildSystem
|
||||
{
|
||||
public:
|
||||
PythonBuildSystem(PythonProject *project);
|
||||
explicit PythonBuildSystem(Project *project);
|
||||
|
||||
bool supportsAction(Node *context, ProjectAction action, const Node *node) const override;
|
||||
bool addFiles(Node *, const QStringList &filePaths, QStringList *) override;
|
||||
@@ -191,7 +191,7 @@ PythonProject::PythonProject(const FilePath &fileName)
|
||||
setDisplayName(fileName.toFileInfo().completeBaseName());
|
||||
|
||||
setNeedsBuildConfigurations(false);
|
||||
setBuildSystem(std::make_unique<PythonBuildSystem>(this));
|
||||
setBuildSystemCreator([](Project *p) { return new PythonBuildSystem(p); });
|
||||
}
|
||||
|
||||
void PythonBuildSystem::refresh()
|
||||
@@ -433,10 +433,10 @@ bool PythonProject::setupTarget(Target *t)
|
||||
return res;
|
||||
}
|
||||
|
||||
PythonBuildSystem::PythonBuildSystem(PythonProject *project)
|
||||
PythonBuildSystem::PythonBuildSystem(Project *project)
|
||||
: BuildSystem(project)
|
||||
{
|
||||
connect(project, &PythonProject::projectFileIsDirty, this, [this]() { refresh(); });
|
||||
connect(project, &Project::projectFileIsDirty, this, [this]() { refresh(); });
|
||||
QTimer::singleShot(0, this, &PythonBuildSystem::refresh);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user