diff --git a/src/plugins/python/pysidebuildconfiguration.cpp b/src/plugins/python/pysidebuildconfiguration.cpp index 3285493e0a3..7163dc7b6a6 100644 --- a/src/plugins/python/pysidebuildconfiguration.cpp +++ b/src/plugins/python/pysidebuildconfiguration.cpp @@ -34,31 +34,30 @@ PySideBuildStepFactory::PySideBuildStepFactory() PySideBuildStep::PySideBuildStep(BuildStepList *bsl, Id id) : AbstractProcessStep(bsl, id) { - m_pysideProject = addAspect(); - m_pysideProject->setSettingsKey("Python.PySideProjectTool"); - m_pysideProject->setLabelText(Tr::tr("PySide project tool:")); - m_pysideProject->setToolTip(Tr::tr("Enter location of PySide project tool.")); - m_pysideProject->setDisplayStyle(StringAspect::PathChooserDisplay); - m_pysideProject->setExpectedKind(PathChooser::Command); - m_pysideProject->setHistoryCompleter("Python.PySideProjectTool.History"); + setOwnsSubAspects(false); - const FilePath pySideProjectPath = Environment::systemEnvironment().searchInPath( - "pyside6-project"); + m_pysideProject.setSettingsKey("Python.PySideProjectTool"); + m_pysideProject.setLabelText(Tr::tr("PySide project tool:")); + m_pysideProject.setToolTip(Tr::tr("Enter location of PySide project tool.")); + m_pysideProject.setExpectedKind(PathChooser::Command); + m_pysideProject.setHistoryCompleter("Python.PySideProjectTool.History"); + + const FilePath pySideProjectPath = FilePath("pyside6-project").searchInPath(); if (pySideProjectPath.isExecutableFile()) - m_pysideProject->setFilePath(pySideProjectPath); + m_pysideProject.setFilePath(pySideProjectPath); - setCommandLineProvider([this] { return CommandLine(m_pysideProject->filePath(), {"build"}); }); + setCommandLineProvider([this] { return CommandLine(m_pysideProject(), {"build"}); }); setWorkingDirectoryProvider([this] { - return m_pysideProject->filePath().withNewMappedPath(target()->project()->projectDirectory()); // FIXME: new path needed? + return m_pysideProject().withNewMappedPath(project()->projectDirectory()); // FIXME: new path needed? }); setEnvironmentModifier([this](Environment &env) { - env.prependOrSetPath(m_pysideProject->filePath().parentDir()); + env.prependOrSetPath(m_pysideProject().parentDir()); }); } -void PySideBuildStep::updatePySideProjectPath(const Utils::FilePath &pySideProjectPath) +void PySideBuildStep::updatePySideProjectPath(const FilePath &pySideProjectPath) { - m_pysideProject->setFilePath(pySideProjectPath); + m_pysideProject.setFilePath(pySideProjectPath); } void PySideBuildStep::doRun() diff --git a/src/plugins/python/pysidebuildconfiguration.h b/src/plugins/python/pysidebuildconfiguration.h index 8a04568d70a..e686b9c2220 100644 --- a/src/plugins/python/pysidebuildconfiguration.h +++ b/src/plugins/python/pysidebuildconfiguration.h @@ -16,11 +16,10 @@ public: PySideBuildStep(ProjectExplorer::BuildStepList *bsl, Utils::Id id); void updatePySideProjectPath(const Utils::FilePath &pySideProjectPath); -private: - Utils::StringAspect *m_pysideProject; - private: void doRun() override; + + Utils::FilePathAspect m_pysideProject{this}; }; class PySideBuildStepFactory : public ProjectExplorer::BuildStepFactory