diff --git a/src/plugins/nim/project/nimcompilercleanstep.cpp b/src/plugins/nim/project/nimcompilercleanstep.cpp index c17f9437a53..8e13c068131 100644 --- a/src/plugins/nim/project/nimcompilercleanstep.cpp +++ b/src/plugins/nim/project/nimcompilercleanstep.cpp @@ -110,7 +110,7 @@ bool NimCompilerCleanStep::removeOutFilePath() NimCompilerCleanStepFactory::NimCompilerCleanStepFactory() { registerStep(Constants::C_NIMCOMPILERCLEANSTEP_ID); - setFlags(BuildStepInfo::Unclonable); + setFlags(BuildStep::Unclonable); setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN); setSupportedConfiguration(Constants::C_NIMBUILDCONFIGURATION_ID); setRepeatable(false); diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index c078a73d822..84c2fcf79ee 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -361,7 +361,7 @@ bool BuildStepFactory::canHandle(BuildStepList *bsl) const return false; } - if (!m_isRepeatable && bsl->contains(m_info.id)) + if (!m_isRepeatable && bsl->contains(m_stepId)) return false; if (m_supportedConfiguration.isValid()) { @@ -375,14 +375,19 @@ bool BuildStepFactory::canHandle(BuildStepList *bsl) const return true; } -void BuildStepFactory::setDisplayName(const QString &displayName) +QString BuildStepFactory::displayName() const { - m_info.displayName = displayName; + return m_displayName; } -void BuildStepFactory::setFlags(BuildStepInfo::Flags flags) +void BuildStepFactory::setDisplayName(const QString &displayName) { - m_info.flags = flags; + m_displayName = displayName; +} + +void BuildStepFactory::setFlags(BuildStep::Flags flags) +{ + m_flags = flags; } void BuildStepFactory::setSupportedStepList(Id id) @@ -415,20 +420,20 @@ void BuildStepFactory::setSupportedDeviceTypes(const QList &ids) m_supportedDeviceTypes = ids; } -BuildStepInfo BuildStepFactory::stepInfo() const +BuildStep::Flags BuildStepFactory::stepFlags() const { - return m_info; + return m_flags; } Id BuildStepFactory::stepId() const { - return m_info.id; + return m_stepId; } BuildStep *BuildStepFactory::create(BuildStepList *parent) { - BuildStep *step = m_info.creator(parent); - step->setDefaultDisplayName(m_info.displayName); + BuildStep *step = m_creator(parent); + step->setDefaultDisplayName(m_displayName); return step; } diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h index 547a5e2027b..d0a21910afa 100644 --- a/src/plugins/projectexplorer/buildstep.h +++ b/src/plugins/projectexplorer/buildstep.h @@ -76,6 +76,12 @@ public: enum OutputNewlineSetting { DoAppendNewline, DontAppendNewline }; + enum Flags { + Uncreatable = 1 << 0, + Unclonable = 1 << 1, + UniqueStep = 1 << 8 // Can't be used twice in a BuildStepList + }; + bool widgetExpandedByDefault() const; void setWidgetExpandedByDefault(bool widgetExpandedByDefault); @@ -136,23 +142,6 @@ private: QString m_summaryText; }; -class PROJECTEXPLORER_EXPORT BuildStepInfo -{ -public: - enum Flags { - Uncreatable = 1 << 0, - Unclonable = 1 << 1, - UniqueStep = 1 << 8 // Can't be used twice in a BuildStepList - }; - - using BuildStepCreator = std::function; - - Utils::Id id; - QString displayName; - Flags flags = Flags(); - BuildStepCreator creator; -}; - class PROJECTEXPLORER_EXPORT BuildStepFactory { public: @@ -163,22 +152,24 @@ public: static const QList allBuildStepFactories(); - BuildStepInfo stepInfo() const; + BuildStep::Flags stepFlags() const; Utils::Id stepId() const; BuildStep *create(BuildStepList *parent); BuildStep *restore(BuildStepList *parent, const QVariantMap &map); bool canHandle(BuildStepList *bsl) const; + QString displayName() const; + protected: using BuildStepCreator = std::function; template void registerStep(Utils::Id id) { - QTC_CHECK(!m_info.creator); - m_info.id = id; - m_info.creator = [id](BuildStepList *bsl) { return new BuildStepType(bsl, id); }; + QTC_CHECK(!m_creator); + m_stepId = id; + m_creator = [id](BuildStepList *bsl) { return new BuildStepType(bsl, id); }; } void setSupportedStepList(Utils::Id id); @@ -189,10 +180,13 @@ protected: void setSupportedDeviceTypes(const QList &ids); void setRepeatable(bool on) { m_isRepeatable = on; } void setDisplayName(const QString &displayName); - void setFlags(BuildStepInfo::Flags flags); + void setFlags(BuildStep::Flags flags); private: - BuildStepInfo m_info; + Utils::Id m_stepId; + QString m_displayName; + BuildStep::Flags m_flags = {}; + BuildStepCreator m_creator; Utils::Id m_supportedProjectType; QList m_supportedDeviceTypes; diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp index 241d2a98352..21fb4c20932 100644 --- a/src/plugins/projectexplorer/buildstepspage.cpp +++ b/src/plugins/projectexplorer/buildstepspage.cpp @@ -209,14 +209,14 @@ void BuildStepListWidget::updateAddBuildStepMenu() if (!factory->canHandle(m_buildStepList)) continue; - const BuildStepInfo &info = factory->stepInfo(); - if (info.flags & BuildStepInfo::Uncreatable) + const BuildStep::Flags flags = factory->stepFlags(); + if (flags & BuildStep::Uncreatable) continue; - if ((info.flags & BuildStepInfo::UniqueStep) && m_buildStepList->contains(info.id)) + if ((flags & BuildStep::UniqueStep) && m_buildStepList->contains(factory->stepId())) continue; - QAction *action = menu->addAction(info.displayName); + QAction *action = menu->addAction(factory->displayName()); connect(action, &QAction::triggered, this, [factory, this] { BuildStep *newStep = factory->create(m_buildStepList); QTC_ASSERT(newStep, return); diff --git a/src/plugins/python/pysidebuildconfiguration.cpp b/src/plugins/python/pysidebuildconfiguration.cpp index 3480be3e87a..ce37bb67b32 100644 --- a/src/plugins/python/pysidebuildconfiguration.cpp +++ b/src/plugins/python/pysidebuildconfiguration.cpp @@ -42,7 +42,7 @@ PySideBuildStepFactory::PySideBuildStepFactory() registerStep(pySideBuildStep); setSupportedProjectType(PythonProjectId); setDisplayName(Tr::tr("Run PySide6 project tool")); - setFlags(BuildStepInfo::UniqueStep); + setFlags(BuildStep::UniqueStep); } PySideBuildStep::PySideBuildStep(BuildStepList *bsl, Id id) diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index c726156e942..344acf25ba0 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -744,7 +744,7 @@ QMakeStepFactory::QMakeStepFactory() setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); //: QMakeStep default display name setDisplayName(::QmakeProjectManager::Tr::tr("qmake")); // Fully qualifying for lupdate - setFlags(BuildStepInfo::UniqueStep); + setFlags(BuildStep::UniqueStep); } QMakeStepConfig::TargetArchConfig QMakeStepConfig::targetArchFor(const Abi &, const QtVersion *)