From a7a7e4d00213b33ca75ddb60e2a4fbd7b68e2144 Mon Sep 17 00:00:00 2001 From: dt <qtc-committer@nokia.com> Date: Wed, 25 Nov 2009 19:39:52 +0100 Subject: [PATCH] Change IBuildStepFactory::canCreate to take a BuildConfiguration instead of a Project. Since BuildSteps "should" only care about the BuildConfiguration not the Project. (Not 100% doable, but still.) --- src/plugins/cmakeprojectmanager/makestep.cpp | 2 +- src/plugins/cmakeprojectmanager/makestep.h | 2 +- src/plugins/genericprojectmanager/genericmakestep.cpp | 2 +- src/plugins/genericprojectmanager/genericmakestep.h | 2 +- src/plugins/projectexplorer/buildstep.h | 4 +--- src/plugins/projectexplorer/buildstepspage.cpp | 3 +-- src/plugins/projectexplorer/buildstepspage.h | 1 - src/plugins/projectexplorer/processstep.cpp | 4 ++-- src/plugins/projectexplorer/processstep.h | 2 +- src/plugins/qt4projectmanager/makestep.cpp | 4 ++-- src/plugins/qt4projectmanager/makestep.h | 2 +- src/plugins/qt4projectmanager/qmakestep.cpp | 6 ++++-- src/plugins/qt4projectmanager/qmakestep.h | 2 +- 13 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp index 4fe313e6a58..6cbb7bc72ef 100644 --- a/src/plugins/cmakeprojectmanager/makestep.cpp +++ b/src/plugins/cmakeprojectmanager/makestep.cpp @@ -284,7 +284,7 @@ BuildStep *MakeStepFactory::clone(BuildStep *bs, BuildConfiguration *bc) const return new MakeStep(static_cast<MakeStep *>(bs), bc); } -QStringList MakeStepFactory::canCreateForProject(Project * /* pro */) const +QStringList MakeStepFactory::canCreateForProject(BuildConfiguration * /* pro */) const { return QStringList(); } diff --git a/src/plugins/cmakeprojectmanager/makestep.h b/src/plugins/cmakeprojectmanager/makestep.h index f01bb1d6141..6bb2a9b5569 100644 --- a/src/plugins/cmakeprojectmanager/makestep.h +++ b/src/plugins/cmakeprojectmanager/makestep.h @@ -107,7 +107,7 @@ class MakeStepFactory : public ProjectExplorer::IBuildStepFactory virtual bool canCreate(const QString &name) const; virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *bc, const QString &name) const; virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStep *bs, ProjectExplorer::BuildConfiguration *bc) const; - virtual QStringList canCreateForProject(ProjectExplorer::Project *pro) const; + virtual QStringList canCreateForProject(ProjectExplorer::BuildConfiguration *bc) const; virtual QString displayNameForName(const QString &name) const; }; diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp index 54dd056d867..2d7f82de09d 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.cpp +++ b/src/plugins/genericprojectmanager/genericmakestep.cpp @@ -292,7 +292,7 @@ ProjectExplorer::BuildStep *GenericMakeStepFactory::clone(ProjectExplorer::Build return new GenericMakeStep(static_cast<GenericMakeStep*>(bs), bc); } -QStringList GenericMakeStepFactory::canCreateForProject(ProjectExplorer::Project * /* pro */) const +QStringList GenericMakeStepFactory::canCreateForProject(ProjectExplorer::BuildConfiguration * /* pro */) const { return QStringList(); } diff --git a/src/plugins/genericprojectmanager/genericmakestep.h b/src/plugins/genericprojectmanager/genericmakestep.h index c8c059a3501..d5eb0ccc979 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.h +++ b/src/plugins/genericprojectmanager/genericmakestep.h @@ -107,7 +107,7 @@ class GenericMakeStepFactory : public ProjectExplorer::IBuildStepFactory const QString &name) const; virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStep *bs, ProjectExplorer::BuildConfiguration *bc) const; - virtual QStringList canCreateForProject(ProjectExplorer::Project *pro) const; + virtual QStringList canCreateForProject(ProjectExplorer::BuildConfiguration *bc) const; virtual QString displayNameForName(const QString &name) const; }; diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h index c210f6af019..78c715495db 100644 --- a/src/plugins/projectexplorer/buildstep.h +++ b/src/plugins/projectexplorer/buildstep.h @@ -37,8 +37,6 @@ #include <QtCore/QFutureInterface> namespace ProjectExplorer { -// TODO remove this -class Project; class BuildConfiguration; /* @@ -135,7 +133,7 @@ public: virtual BuildStep *create(BuildConfiguration *bc, const QString &name) const = 0; /// Called by the add BuildStep action to check which BuildSteps could be added /// to the project by this factory, should return a list of names - virtual QStringList canCreateForProject(Project *pro) const = 0; + virtual QStringList canCreateForProject(BuildConfiguration *bc) const = 0; /// Called to convert an internal name to a displayName /// Called to clone a BuildStep diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp index fc1416000e6..c95b9b32d2a 100644 --- a/src/plugins/projectexplorer/buildstepspage.cpp +++ b/src/plugins/projectexplorer/buildstepspage.cpp @@ -47,7 +47,6 @@ using namespace ProjectExplorer::Internal; BuildStepsPage::BuildStepsPage(Project *project, bool clean) : BuildConfigWidget(), - m_pro(project), m_clean(clean) { m_vbox = new QVBoxLayout(this); @@ -144,7 +143,7 @@ void BuildStepsPage::updateAddBuildStepMenu() //Build up a list of possible steps and save map the display names to the (internal) name and factories. QList<IBuildStepFactory *> factories = ExtensionSystem::PluginManager::instance()->getObjects<IBuildStepFactory>(); foreach (IBuildStepFactory * factory, factories) { - QStringList names = factory->canCreateForProject(m_pro); + QStringList names = factory->canCreateForProject(m_configuration); foreach (const QString &name, names) { map.insert(factory->displayNameForName(name), QPair<QString, IBuildStepFactory *>(name, factory)); } diff --git a/src/plugins/projectexplorer/buildstepspage.h b/src/plugins/projectexplorer/buildstepspage.h index 92e8180218b..1e716d4d215 100644 --- a/src/plugins/projectexplorer/buildstepspage.h +++ b/src/plugins/projectexplorer/buildstepspage.h @@ -87,7 +87,6 @@ private: void updateBuildStepButtonsState(); void addBuildStepWidget(int pos, BuildStep *step); - Project *m_pro; BuildConfiguration *m_configuration; QHash<QAction *, QPair<QString, ProjectExplorer::IBuildStepFactory *> > m_addBuildStepHash; bool m_clean; diff --git a/src/plugins/projectexplorer/processstep.cpp b/src/plugins/projectexplorer/processstep.cpp index e442fc14d6c..fac4255c4c4 100644 --- a/src/plugins/projectexplorer/processstep.cpp +++ b/src/plugins/projectexplorer/processstep.cpp @@ -212,9 +212,9 @@ BuildStep *ProcessStepFactory::clone(BuildStep *bs, BuildConfiguration *bc) cons return new ProcessStep(static_cast<ProcessStep *>(bs), bc); } -QStringList ProcessStepFactory::canCreateForProject(Project *pro) const +QStringList ProcessStepFactory::canCreateForProject(BuildConfiguration *bc) const { - Q_UNUSED(pro) + Q_UNUSED(bc) return QStringList()<<"projectexplorer.processstep"; } QString ProcessStepFactory::displayNameForName(const QString &name) const diff --git a/src/plugins/projectexplorer/processstep.h b/src/plugins/projectexplorer/processstep.h index e7e74d0267b..2dc0398ad78 100644 --- a/src/plugins/projectexplorer/processstep.h +++ b/src/plugins/projectexplorer/processstep.h @@ -47,7 +47,7 @@ public: virtual bool canCreate(const QString &name) const; virtual BuildStep *create(BuildConfiguration *bc, const QString &name) const; virtual BuildStep *clone(BuildStep *bs, BuildConfiguration *bc) const; - virtual QStringList canCreateForProject(Project *pro) const; + virtual QStringList canCreateForProject(BuildConfiguration *pro) const; virtual QString displayNameForName(const QString &name) const; }; diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp index 4f2aba4aa15..77280b2498b 100644 --- a/src/plugins/qt4projectmanager/makestep.cpp +++ b/src/plugins/qt4projectmanager/makestep.cpp @@ -335,9 +335,9 @@ ProjectExplorer::BuildStep *MakeStepFactory::clone(ProjectExplorer::BuildStep *b return new MakeStep(static_cast<MakeStep *>(bs), bc); } -QStringList MakeStepFactory::canCreateForProject(ProjectExplorer::Project *pro) const +QStringList MakeStepFactory::canCreateForProject(ProjectExplorer::BuildConfiguration *pro) const { - if (qobject_cast<Qt4Project *>(pro)) + if (qobject_cast<Qt4BuildConfiguration *>(pro)) return QStringList() << Constants::MAKESTEP; else return QStringList(); diff --git a/src/plugins/qt4projectmanager/makestep.h b/src/plugins/qt4projectmanager/makestep.h index 471316897de..8040d98c2cb 100644 --- a/src/plugins/qt4projectmanager/makestep.h +++ b/src/plugins/qt4projectmanager/makestep.h @@ -54,7 +54,7 @@ public: bool canCreate(const QString & name) const; ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *bc, const QString & name) const; ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStep *bs, ProjectExplorer::BuildConfiguration *bc) const; - QStringList canCreateForProject(ProjectExplorer::Project *pro) const; + QStringList canCreateForProject(ProjectExplorer::BuildConfiguration *bc) const; QString displayNameForName(const QString &name) const; }; } diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 9a8181e9641..c5c914c031e 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -377,9 +377,11 @@ ProjectExplorer::BuildStep *QMakeStepFactory::clone(ProjectExplorer::BuildStep * return new QMakeStep(static_cast<QMakeStep *>(bs), bc); } -QStringList QMakeStepFactory::canCreateForProject(ProjectExplorer::Project *) const +QStringList QMakeStepFactory::canCreateForProject(ProjectExplorer::BuildConfiguration *bc) const { - return QStringList() << Constants::QMAKESTEP; + if (qobject_cast<Qt4BuildConfiguration *>(bc)) + return QStringList() << Constants::QMAKESTEP; + return QStringList(); } QString QMakeStepFactory::displayNameForName(const QString &name) const diff --git a/src/plugins/qt4projectmanager/qmakestep.h b/src/plugins/qt4projectmanager/qmakestep.h index 2e08953e246..fd249756f3f 100644 --- a/src/plugins/qt4projectmanager/qmakestep.h +++ b/src/plugins/qt4projectmanager/qmakestep.h @@ -54,7 +54,7 @@ public: bool canCreate(const QString & name) const; ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *bc, const QString & name) const; ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStep *bs, ProjectExplorer::BuildConfiguration *bc) const; - QStringList canCreateForProject(ProjectExplorer::Project *pro) const; + QStringList canCreateForProject(ProjectExplorer::BuildConfiguration *bc) const; QString displayNameForName(const QString &name) const; }; } -- GitLab