diff options
author | hjk <hjk121@nokiamail.com> | 2013-09-05 14:36:20 +0200 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2013-09-05 15:37:43 +0200 |
commit | ad58c2bb4445567ecc349a0987bf3f8a781cc883 (patch) | |
tree | 243654c2889746d14dfe8a0c6ccf9471cbb611af | |
parent | e5c7ac61ece24e956badea69cc45dd8bc5437790 (diff) |
BuildManager: apply 'static' pattern
Change-Id: I00bb591c027a22088d5f1feedc84aa28523dcca2
Reviewed-by: David Schulz <david.schulz@digia.com>
19 files changed, 142 insertions, 172 deletions
diff --git a/src/plugins/android/androidpackagecreationwidget.cpp b/src/plugins/android/androidpackagecreationwidget.cpp index cceb080622..66f5691035 100644 --- a/src/plugins/android/androidpackagecreationwidget.cpp +++ b/src/plugins/android/androidpackagecreationwidget.cpp @@ -55,6 +55,7 @@ namespace Android { namespace Internal { +using namespace ProjectExplorer; using namespace Qt4ProjectManager; ///////////////////////////// CheckModel ///////////////////////////// @@ -251,10 +252,9 @@ void AndroidPackageCreationWidget::setTargetSDK(const QString &sdk) qs->setForced(true); - ProjectExplorer::BuildManager *bm = ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager(); - bm->buildList(bc->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN)), - ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN))); - bm->appendStep(qs, ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN))); + BuildManager::buildList(bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN), + ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN)); + BuildManager::appendStep(qs, ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN)); bc->setSubNodeBuild(0); // Make the buildconfiguration emit a evironmentChanged() signal // TODO find a better way diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index b31f6b5d9f..a4148a6c79 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -3490,8 +3490,7 @@ void DebuggerPluginPrivate::testProjectEvaluated() QString fileName = m_testProject->projectFilePath(); QVERIFY(!fileName.isEmpty()); qWarning("Project %s loaded", qPrintable(fileName)); - connect(ProjectExplorerPlugin::instance()->buildManager(), - SIGNAL(buildQueueFinished(bool)), + connect(BuildManager::instance(), SIGNAL(buildQueueFinished(bool)), SLOT(testProjectBuilt(bool))); ProjectExplorerPlugin::instance()->buildProject(m_testProject); } diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index bdfbbfa146..ab4d01d00d 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -111,9 +111,15 @@ BuildManagerPrivate::BuildManagerPrivate() : { } +static BuildManagerPrivate *d = 0; +static BuildManager *m_instance = 0; + BuildManager::BuildManager(QObject *parent, QAction *cancelBuildAction) - : QObject(parent), d(new BuildManagerPrivate) + : QObject(parent) { + m_instance = this; + d = new BuildManagerPrivate; + connect(&d->m_watcher, SIGNAL(finished()), this, SLOT(nextBuildQueue())); @@ -148,6 +154,11 @@ BuildManager::BuildManager(QObject *parent, QAction *cancelBuildAction) this, SLOT(finish())); } +QObject *BuildManager::instance() +{ + return m_instance; +} + void BuildManager::extensionsInitialized() { TaskHub::addCategory(Constants::TASK_CATEGORY_COMPILE, @@ -161,6 +172,7 @@ void BuildManager::extensionsInitialized() BuildManager::~BuildManager() { cancel(); + m_instance = 0; ExtensionSystem::PluginManager::removeObject(d->m_taskWindow); delete d->m_taskWindow; @@ -170,7 +182,7 @@ BuildManager::~BuildManager() delete d; } -void BuildManager::aboutToRemoveProject(ProjectExplorer::Project *p) +void BuildManager::aboutToRemoveProject(Project *p) { QHash<Project *, int>::iterator it = d->m_activeBuildSteps.find(p); QHash<Project *, int>::iterator end = d->m_activeBuildSteps.end(); @@ -182,13 +194,13 @@ void BuildManager::aboutToRemoveProject(ProjectExplorer::Project *p) } } -bool BuildManager::isBuilding() const +bool BuildManager::isBuilding() { // we are building even if we are not running yet return !d->m_buildQueue.isEmpty() || d->m_running; } -int BuildManager::getErrorTaskCount() const +int BuildManager::getErrorTaskCount() { const int errors = d->m_taskWindow->errorTaskCount(Constants::TASK_CATEGORY_BUILDSYSTEM) @@ -213,7 +225,7 @@ void BuildManager::updateTaskCount() { const int errors = getErrorTaskCount(); ProgressManager::setApplicationLabel(errors > 0 ? QString::number(errors) : QString()); - emit tasksChanged(); + emit m_instance->tasksChanged(); } void BuildManager::finish() @@ -254,7 +266,7 @@ void BuildManager::clearBuildQueue() d->m_futureProgress = 0; d->m_maxProgress = 0; - emit buildQueueFinished(false); + emit m_instance->buildQueueFinished(false); } @@ -273,7 +285,7 @@ void BuildManager::toggleTaskWindow() d->m_taskWindow->toggle(IOutputPane::ModeSwitch); } -bool BuildManager::tasksAvailable() const +bool BuildManager::tasksAvailable() { const int count = d->m_taskWindow->taskCount(Constants::TASK_CATEGORY_BUILDSYSTEM) @@ -285,7 +297,7 @@ bool BuildManager::tasksAvailable() const void BuildManager::startBuildQueue(const QStringList &preambleMessage) { if (d->m_buildQueue.isEmpty()) { - emit buildQueueFinished(true); + emit m_instance->buildQueueFinished(true); return; } if (!d->m_running) { @@ -302,7 +314,7 @@ void BuildManager::startBuildQueue(const QStringList &preambleMessage) d->m_futureProgress = ProgressManager::addTask(d->m_progressFutureInterface->future(), QString(), "ProjectExplorer.Task.Build", ProgressManager::KeepOnFinish | ProgressManager::ShowInApplicationIcon); - connect(d->m_futureProgress.data(), SIGNAL(clicked()), this, SLOT(showBuildResults())); + connect(d->m_futureProgress.data(), SIGNAL(clicked()), m_instance, SLOT(showBuildResults())); d->m_futureProgress.data()->setWidget(new Internal::BuildProgress(d->m_taskWindow)); d->m_futureProgress.data()->setStatusBarWidget(new Internal::BuildProgress(d->m_taskWindow, Qt::Horizontal)); @@ -352,7 +364,7 @@ void BuildManager::addToOutputWindow(const QString &string, BuildStep::OutputFor void BuildManager::buildStepFinishedAsync() { disconnect(d->m_currentBuildStep, SIGNAL(finished()), - this, SLOT(buildStepFinishedAsync())); + m_instance, SLOT(buildStepFinishedAsync())); d->m_futureInterfaceForAysnc = QFutureInterface<bool>(); nextBuildQueue(); } @@ -361,7 +373,7 @@ void BuildManager::nextBuildQueue() { if (d->m_canceling) { d->m_canceling = false; - QTimer::singleShot(0, this, SLOT(emitCancelMessage())); + QTimer::singleShot(0, m_instance, SLOT(emitCancelMessage())); disconnectOutput(d->m_currentBuildStep); decrementActiveBuildSteps(d->m_currentBuildStep); @@ -443,7 +455,7 @@ void BuildManager::nextStep() if (d->m_currentBuildStep->runInGuiThread()) { connect (d->m_currentBuildStep, SIGNAL(finished()), - this, SLOT(buildStepFinishedAsync())); + m_instance, SLOT(buildStepFinishedAsync())); d->m_watcher.setFuture(d->m_futureInterfaceForAysnc.future()); d->m_currentBuildStep->run(d->m_futureInterfaceForAysnc); } else { @@ -458,7 +470,7 @@ void BuildManager::nextStep() delete d->m_progressFutureInterface; d->m_progressFutureInterface = 0; d->m_maxProgress = 0; - emit buildQueueFinished(true); + emit m_instance->buildQueueFinished(true); } } @@ -471,9 +483,9 @@ bool BuildManager::buildQueueAppend(QList<BuildStep *> steps, QStringList names) for (; i < count; ++i) { BuildStep *bs = steps.at(i); connect(bs, SIGNAL(addTask(ProjectExplorer::Task)), - this, SLOT(addToTaskWindow(ProjectExplorer::Task))); + m_instance, SLOT(addToTaskWindow(ProjectExplorer::Task))); connect(bs, SIGNAL(addOutput(QString,ProjectExplorer::BuildStep::OutputFormat,ProjectExplorer::BuildStep::OutputNewlineSetting)), - this, SLOT(addToOutputWindow(QString,ProjectExplorer::BuildStep::OutputFormat,ProjectExplorer::BuildStep::OutputNewlineSetting))); + m_instance, SLOT(addToOutputWindow(QString,ProjectExplorer::BuildStep::OutputFormat,ProjectExplorer::BuildStep::OutputNewlineSetting))); if (bs->enabled()) { init = bs->init(); if (!init) @@ -616,7 +628,7 @@ void BuildManager::incrementActiveBuildSteps(BuildStep *bs) increment<ProjectConfiguration>(d->m_activeBuildStepsPerProjectConfiguration, bs->projectConfiguration()); increment<Target>(d->m_activeBuildStepsPerTarget, bs->target()); if (increment<Project>(d->m_activeBuildSteps, bs->project())) - emit buildStateChanged(bs->project()); + emit m_instance->buildStateChanged(bs->project()); } void BuildManager::decrementActiveBuildSteps(BuildStep *bs) @@ -624,16 +636,16 @@ void BuildManager::decrementActiveBuildSteps(BuildStep *bs) decrement<ProjectConfiguration>(d->m_activeBuildStepsPerProjectConfiguration, bs->projectConfiguration()); decrement<Target>(d->m_activeBuildStepsPerTarget, bs->target()); if (decrement<Project>(d->m_activeBuildSteps, bs->project())) - emit buildStateChanged(bs->project()); + emit m_instance->buildStateChanged(bs->project()); } void BuildManager::disconnectOutput(BuildStep *bs) { disconnect(bs, SIGNAL(addTask(ProjectExplorer::Task)), - this, SLOT(addToTaskWindow(ProjectExplorer::Task))); + m_instance, SLOT(addToTaskWindow(ProjectExplorer::Task))); disconnect(bs, SIGNAL(addOutput(QString, ProjectExplorer::BuildStep::OutputFormat, ProjectExplorer::BuildStep::OutputNewlineSetting)), - this, SLOT(addToOutputWindow(QString, ProjectExplorer::BuildStep::OutputFormat, + m_instance, SLOT(addToOutputWindow(QString, ProjectExplorer::BuildStep::OutputFormat, ProjectExplorer::BuildStep::OutputNewlineSetting))); } diff --git a/src/plugins/projectexplorer/buildmanager.h b/src/plugins/projectexplorer/buildmanager.h index c900286cca..0e093b60ef 100644 --- a/src/plugins/projectexplorer/buildmanager.h +++ b/src/plugins/projectexplorer/buildmanager.h @@ -37,47 +37,45 @@ #include <QStringList> namespace ProjectExplorer { + class Task; -class ProjectExplorerPlugin; class Project; -struct BuildManagerPrivate; - class PROJECTEXPLORER_EXPORT BuildManager : public QObject { Q_OBJECT public: explicit BuildManager(QObject *parent, QAction *cancelBuildAction); - virtual ~BuildManager(); + ~BuildManager(); + static QObject *instance(); - void extensionsInitialized(); + static void extensionsInitialized(); - bool isBuilding() const; + static bool isBuilding(); + static bool tasksAvailable(); - bool tasksAvailable() const; - - bool buildLists(QList<BuildStepList *> bsls, const QStringList &stepListNames, + static bool buildLists(QList<BuildStepList *> bsls, const QStringList &stepListNames, const QStringList &preambelMessage = QStringList()); - bool buildList(BuildStepList *bsl, const QString &stepListName); + static bool buildList(BuildStepList *bsl, const QString &stepListName); - bool isBuilding(Project *p); - bool isBuilding(Target *t); - bool isBuilding(ProjectConfiguration *p); - bool isBuilding(BuildStep *step); + static bool isBuilding(Project *p); + static bool isBuilding(Target *t); + static bool isBuilding(ProjectConfiguration *p); + static bool isBuilding(BuildStep *step); // Append any build step to the list of build steps (currently only used to add the QMakeStep) - void appendStep(BuildStep *step, const QString &name); + static void appendStep(BuildStep *step, const QString &name); - int getErrorTaskCount() const; + static int getErrorTaskCount(); public slots: - void cancel(); + static void cancel(); // Shows without focus - void showTaskWindow(); - void toggleTaskWindow(); - void toggleOutputWindow(); - void aboutToRemoveProject(ProjectExplorer::Project *p); + static void showTaskWindow(); + static void toggleTaskWindow(); + static void toggleOutputWindow(); + static void aboutToRemoveProject(ProjectExplorer::Project *p); signals: void buildStateChanged(ProjectExplorer::Project *pro); @@ -87,30 +85,29 @@ signals: void tasksCleared(); private slots: - void addToTaskWindow(const ProjectExplorer::Task &task); - void addToOutputWindow(const QString &string, ProjectExplorer::BuildStep::OutputFormat, + static void addToTaskWindow(const ProjectExplorer::Task &task); + static void addToOutputWindow(const QString &string, ProjectExplorer::BuildStep::OutputFormat, ProjectExplorer::BuildStep::OutputNewlineSetting = BuildStep::DoAppendNewline); - void buildStepFinishedAsync(); - void nextBuildQueue(); - void progressChanged(); - void progressTextChanged(); - void emitCancelMessage(); - void showBuildResults(); - void updateTaskCount(); - void finish(); + static void buildStepFinishedAsync(); + static void nextBuildQueue(); + static void progressChanged(); + static void progressTextChanged(); + static void emitCancelMessage(); + static void showBuildResults(); + static void updateTaskCount(); + static void finish(); private: - void startBuildQueue(const QStringList &preambleMessage = QStringList()); - void nextStep(); - void clearBuildQueue(); - bool buildQueueAppend(QList<BuildStep *> steps, QStringList names); - void incrementActiveBuildSteps(BuildStep *bs); - void decrementActiveBuildSteps(BuildStep *bs); - void disconnectOutput(BuildStep *bs); - - BuildManagerPrivate *d; + static void startBuildQueue(const QStringList &preambleMessage = QStringList()); + static void nextStep(); + static void clearBuildQueue(); + static bool buildQueueAppend(QList<BuildStep *> steps, QStringList names); + static void incrementActiveBuildSteps(BuildStep *bs); + static void decrementActiveBuildSteps(BuildStep *bs); + static void disconnectOutput(BuildStep *bs); }; + } // namespace ProjectExplorer #endif // BUILDMANAGER_H diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp index 2469430da4..67129ce94c 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp @@ -357,8 +357,7 @@ void BuildSettingsWidget::deleteConfiguration(BuildConfiguration *deleteConfigur m_target->buildConfigurations().size() <= 1) return; - ProjectExplorer::BuildManager *bm = ProjectExplorerPlugin::instance()->buildManager(); - if (bm->isBuilding(deleteConfiguration)) { + if (BuildManager::isBuilding(deleteConfiguration)) { QMessageBox box; QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Remove Build Configuration"), QMessageBox::AcceptRole); QPushButton *cancelClose = box.addButton(tr("Do Not Remove"), QMessageBox::RejectRole); @@ -369,7 +368,7 @@ void BuildSettingsWidget::deleteConfiguration(BuildConfiguration *deleteConfigur box.exec(); if (box.clickedButton() != closeAnyway) return; - bm->cancel(); + BuildManager::cancel(); } else { QMessageBox msgBox(QMessageBox::Question, tr("Remove Build Configuration?"), tr("Do you really want to delete build configuration <b>%1</b>?").arg(deleteConfiguration->displayName()), diff --git a/src/plugins/projectexplorer/buildsteplist.cpp b/src/plugins/projectexplorer/buildsteplist.cpp index 44a9f312b9..bb47642ba7 100644 --- a/src/plugins/projectexplorer/buildsteplist.cpp +++ b/src/plugins/projectexplorer/buildsteplist.cpp @@ -184,10 +184,8 @@ void BuildStepList::insertStep(int position, BuildStep *step) bool BuildStepList::removeStep(int position) { - ProjectExplorer::BuildManager *bm = - ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager(); BuildStep *bs = at(position); - if (bm->isBuilding(bs)) + if (BuildManager::isBuilding(bs)) return false; emit aboutToRemoveStep(position); diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index e19f3fb5cb..04b4867898 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -172,9 +172,7 @@ bool Project::removeTarget(Target *target) if (!target || !d->m_targets.contains(target)) return false; - ProjectExplorer::BuildManager *bm = - ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager(); - if (bm->isBuilding(target)) + if (BuildManager::isBuilding(target)) return false; if (target == activeTarget()) { diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index b478f4a321..22b94e9af2 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -215,8 +215,6 @@ struct ProjectExplorerPluginPrivate { Context m_lastProjectContext; Node *m_currentNode; - BuildManager *m_buildManager; - QList<Internal::ProjectFileFactory*> m_fileFactories; QStringList m_profileMimeTypes; Internal::AppOutputPane *m_outputPane; @@ -971,10 +969,10 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er connect(this, SIGNAL(updateRunActions()), this, SLOT(slotUpdateRunActions())); connect(this, SIGNAL(settingsChanged()), this, SLOT(updateRunWithoutDeployMenu())); - d->m_buildManager = new BuildManager(this, d->m_cancelBuildAction); - connect(d->m_buildManager, SIGNAL(buildStateChanged(ProjectExplorer::Project*)), + QObject *buildManager = new BuildManager(this, d->m_cancelBuildAction); + connect(buildManager, SIGNAL(buildStateChanged(ProjectExplorer::Project*)), this, SLOT(buildStateChanged(ProjectExplorer::Project*))); - connect(d->m_buildManager, SIGNAL(buildQueueFinished(bool)), + connect(buildManager, SIGNAL(buildQueueFinished(bool)), this, SLOT(buildQueueFinished(bool))); updateActions(); @@ -1036,7 +1034,7 @@ void ProjectExplorerPlugin::unloadProject() if (debug) qDebug() << "ProjectExplorerPlugin::unloadProject"; - if (buildManager()->isBuilding(d->m_currentProject)) { + if (BuildManager::isBuilding(d->m_currentProject)) { QMessageBox box; QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Unload"), QMessageBox::AcceptRole); QPushButton *cancelClose = box.addButton(tr("Do Not Unload"), QMessageBox::RejectRole); @@ -1047,7 +1045,7 @@ void ProjectExplorerPlugin::unloadProject() box.exec(); if (box.clickedButton() != closeAnyway) return; - buildManager()->cancel(); + BuildManager::cancel(); } IDocument *document = d->m_currentProject->document(); @@ -1098,7 +1096,7 @@ void ProjectExplorerPlugin::extensionsInitialized() d->m_profileMimeTypes += pf->mimeTypes(); addAutoReleasedObject(pf); } - d->m_buildManager->extensionsInitialized(); + BuildManager::extensionsInitialized(); DeviceManager::instance()->addDevice(IDevice::Ptr(new DesktopDevice)); DeviceManager::instance()->load(); @@ -1630,16 +1628,11 @@ void ProjectExplorerPlugin::showContextMenu(QWidget *view, const QPoint &globalP contextMenu->popup(globalPos); } -BuildManager *ProjectExplorerPlugin::buildManager() const -{ - return d->m_buildManager; -} - void ProjectExplorerPlugin::buildStateChanged(Project * pro) { if (debug) { qDebug() << "buildStateChanged"; - qDebug() << pro->document()->filePath() << "isBuilding()" << d->m_buildManager->isBuilding(pro); + qDebug() << pro->document()->filePath() << "isBuilding()" << BuildManager::isBuilding(pro); } Q_UNUSED(pro) updateActions(); @@ -1704,7 +1697,7 @@ void ProjectExplorerPlugin::buildQueueFinished(bool success) updateActions(); bool ignoreErrors = true; - if (d->m_delayedRunConfiguration && success && d->m_buildManager->getErrorTaskCount() > 0) { + if (d->m_delayedRunConfiguration && success && BuildManager::getErrorTaskCount() > 0) { ignoreErrors = QMessageBox::question(ICore::mainWindow(), tr("Ignore all errors?"), tr("Found some build errors in current task.\n" @@ -1716,8 +1709,8 @@ void ProjectExplorerPlugin::buildQueueFinished(bool success) if (success && ignoreErrors && d->m_delayedRunConfiguration) { executeRunConfiguration(d->m_delayedRunConfiguration, d->m_runMode); } else { - if (d->m_buildManager->tasksAvailable()) - d->m_buildManager->showTaskWindow(); + if (BuildManager::tasksAvailable()) + BuildManager::showTaskWindow(); } d->m_delayedRunConfiguration = 0; d->m_runMode = NoRunMode; @@ -1894,7 +1887,7 @@ void ProjectExplorerPlugin::updateActions() d->m_rebuildSessionAction->setToolTip(buildSessionState.second); d->m_cleanSessionAction->setToolTip(buildSessionState.second); - d->m_cancelBuildAction->setEnabled(d->m_buildManager->isBuilding()); + d->m_cancelBuildAction->setEnabled(BuildManager::isBuilding()); bool canPublish = false; if (project) { @@ -2028,7 +2021,7 @@ int ProjectExplorerPlugin::queue(QList<Project *> projects, QList<Id> stepIds) if (stepLists.isEmpty()) return 0; - if (!d->m_buildManager->buildLists(stepLists, names, preambleMessage)) + if (!BuildManager::buildLists(stepLists, names, preambleMessage)) return -1; return stepLists.count(); } @@ -2178,7 +2171,7 @@ QPair<bool, QString> ProjectExplorerPlugin::buildSettingsEnabled(Project *pro) if (!pro) { result.first = false; result.second = tr("No project loaded."); - } else if (d->m_buildManager->isBuilding(pro)) { + } else if (BuildManager::isBuilding(pro)) { result.first = false; result.second = tr("Currently building the active project."); } else if (pro->needsConfiguration()) { @@ -2211,7 +2204,7 @@ QPair<bool, QString> ProjectExplorerPlugin::buildSettingsEnabledForSession() if (!SessionManager::hasProjects()) { result.first = false; result.second = tr("No project loaded"); - } else if (d->m_buildManager->isBuilding()) { + } else if (BuildManager::isBuilding()) { result.first = false; result.second = tr("A build is in progress"); } else if (!hasBuildSettings(0)) { @@ -2235,7 +2228,7 @@ QPair<bool, QString> ProjectExplorerPlugin::buildSettingsEnabledForSession() bool ProjectExplorerPlugin::coreAboutToClose() { - if (d->m_buildManager->isBuilding()) { + if (BuildManager::isBuilding()) { QMessageBox box; QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Close"), QMessageBox::AcceptRole); QPushButton *cancelClose = box.addButton(tr("Do Not Close"), QMessageBox::RejectRole); @@ -2414,10 +2407,10 @@ void ProjectExplorerPlugin::updateDeployActions() Project *project = SessionManager::startupProject(); bool enableDeployActions = project - && ! (d->m_buildManager->isBuilding(project)) + && BuildManager::isBuilding(project) && hasDeploySettings(project); bool enableDeployActionsContextMenu = d->m_currentProject - && ! (d->m_buildManager->isBuilding(d->m_currentProject)) + && !BuildManager::isBuilding(d->m_currentProject) && hasDeploySettings(d->m_currentProject); if (d->m_projectExplorerSettings.buildBeforeDeploy) { @@ -2451,9 +2444,7 @@ void ProjectExplorerPlugin::updateDeployActions() } } } - if (!hasProjects - || !hasDeploySettings(0) - || d->m_buildManager->isBuilding()) + if (!hasProjects || !hasDeploySettings(0) || BuildManager::isBuilding()) enableDeploySessionAction = false; d->m_deploySessionAction->setEnabled(enableDeploySessionAction); @@ -2479,8 +2470,7 @@ bool ProjectExplorerPlugin::canRun(Project *project, RunMode runMode) bool canRun = findRunControlFactory(activeRC, runMode) && activeRC->isEnabled(); - const bool building = d->m_buildManager->isBuilding(); - return (canRun && !building); + return canRun && !BuildManager::isBuilding(); } QString ProjectExplorerPlugin::cannotRunReason(Project *project, RunMode runMode) @@ -2516,8 +2506,7 @@ QString ProjectExplorerPlugin::cannotRunReason(Project *project, RunMode runMode if (!findRunControlFactory(activeRC, runMode)) return tr("Cannot run '%1'.").arg(activeRC->displayName()); - - if (d->m_buildManager->isBuilding()) + if (BuildManager::isBuilding()) return tr("A build is still in progress."); return QString(); } @@ -2536,8 +2525,8 @@ void ProjectExplorerPlugin::cancelBuild() if (debug) qDebug() << "ProjectExplorerPlugin::cancelBuild"; - if (d->m_buildManager->isBuilding()) - d->m_buildManager->cancel(); + if (BuildManager::isBuilding()) + BuildManager::cancel(); } void ProjectExplorerPlugin::addToRecentProjects(const QString &fileName, const QString &displayName) diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h index ebd46fcb2e..2a4dcc04ed 100644 --- a/src/plugins/projectexplorer/projectexplorer.h +++ b/src/plugins/projectexplorer/projectexplorer.h @@ -49,7 +49,6 @@ class Id; } namespace ProjectExplorer { -class BuildManager; class RunControl; class RunConfiguration; class IRunControlFactory; @@ -86,8 +85,6 @@ public: void setCurrentFile(Project *project, const QString &file); void setCurrentNode(Node *node); - BuildManager *buildManager() const; - bool saveModifiedFiles(); void showContextMenu(QWidget *view, const QPoint &globalPos, Node *node); diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index 667f19dd69..0cf020a9c7 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -436,8 +436,7 @@ void RunSettingsWidget::addDeployConfiguration() void RunSettingsWidget::removeDeployConfiguration() { DeployConfiguration *dc = m_target->activeDeployConfiguration(); - ProjectExplorer::BuildManager *bm = ProjectExplorerPlugin::instance()->buildManager(); - if (bm->isBuilding(dc)) { + if (BuildManager::isBuilding(dc)) { QMessageBox box; QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Remove Deploy Configuration"), QMessageBox::AcceptRole); QPushButton *cancelClose = box.addButton(tr("Do Not Remove"), QMessageBox::RejectRole); @@ -448,7 +447,7 @@ void RunSettingsWidget::removeDeployConfiguration() box.exec(); if (box.clickedButton() != closeAnyway) return; - bm->cancel(); + BuildManager::cancel(); } else { QMessageBox msgBox(QMessageBox::Question, tr("Remove Deploy Configuration?"), tr("Do you really want to delete deploy configuration <b>%1</b>?").arg(dc->displayName()), diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index 223d9f7fc4..db63af0324 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -248,9 +248,7 @@ bool Target::removeBuildConfiguration(BuildConfiguration *configuration) if (!d->m_buildConfigurations.contains(configuration)) return false; - ProjectExplorer::BuildManager *bm = - ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager(); - if (bm->isBuilding(configuration)) + if (BuildManager::isBuilding(configuration)) return false; d->m_buildConfigurations.removeOne(configuration); @@ -325,9 +323,7 @@ bool Target::removeDeployConfiguration(DeployConfiguration *dc) if (!d->m_deployConfigurations.contains(dc)) return false; - ProjectExplorer::BuildManager *bm = - ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager(); - if (bm->isBuilding(dc)) + if (BuildManager::isBuilding(dc)) return false; d->m_deployConfigurations.removeOne(dc); diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp index 1dbcfd219d..d062862a2c 100644 --- a/src/plugins/projectexplorer/targetsettingspanel.cpp +++ b/src/plugins/projectexplorer/targetsettingspanel.cpp @@ -443,8 +443,7 @@ void TargetSettingsPanelWidget::removeTarget() void TargetSettingsPanelWidget::removeTarget(Target *t) { - ProjectExplorer::BuildManager *bm = ProjectExplorerPlugin::instance()->buildManager(); - if (bm->isBuilding(t)) { + if (BuildManager::isBuilding(t)) { QMessageBox box; QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Remove Kit"), QMessageBox::AcceptRole); QPushButton *cancelClose = box.addButton(tr("Do Not Remove"), QMessageBox::RejectRole); @@ -455,7 +454,7 @@ void TargetSettingsPanelWidget::removeTarget(Target *t) box.exec(); if (box.clickedButton() != closeAnyway) return; - bm->cancel(); + BuildManager::cancel(); } else { // We don't show the generic message box on removing the target, if we showed the still building one int ret = QMessageBox::warning(this, tr("Qt Creator"), diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp index e8d38a09b7..4882c17f9a 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp @@ -172,7 +172,7 @@ bool QbsProjectManagerPlugin::initialize(const QStringList &arguments, QString * connect(m_projectExplorer, SIGNAL(currentNodeChanged(ProjectExplorer::Node*,ProjectExplorer::Project*)), this, SLOT(updateContextActions(ProjectExplorer::Node*,ProjectExplorer::Project*))); - connect(m_projectExplorer->buildManager(), SIGNAL(buildStateChanged(ProjectExplorer::Project*)), + connect(BuildManager::instance(), SIGNAL(buildStateChanged(ProjectExplorer::Project*)), this, SLOT(buildStateChanged(ProjectExplorer::Project*))); connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)), @@ -213,7 +213,7 @@ void QbsProjectManagerPlugin::updateContextActions(ProjectExplorer::Node *node, activeTargetChanged(); - bool isBuilding = m_projectExplorer->buildManager()->isBuilding(project); + bool isBuilding = BuildManager::isBuilding(project); bool isFile = m_currentProject && node && (node->nodeType() == ProjectExplorer::FileNodeType); bool isProduct = m_currentProject && node && qobject_cast<QbsProductNode *>(node->projectNode()); bool isFileEnabled = isFile && node->isEnabled(); @@ -226,7 +226,7 @@ void QbsProjectManagerPlugin::updateContextActions(ProjectExplorer::Node *node, void QbsProjectManagerPlugin::updateReparseQbsAction() { m_reparseQbs->setEnabled(m_currentProject - && !m_projectExplorer->buildManager()->isBuilding(m_currentProject) + && !BuildManager::isBuilding(m_currentProject) && !m_currentProject->isParsing()); } @@ -246,7 +246,7 @@ void QbsProjectManagerPlugin::updateBuildActions() m_buildFile->setParameter(QFileInfo(file).fileName()); fileVisible = project && node && qobject_cast<QbsBaseProjectNode *>(node->projectNode()); - fileEnabled = !m_projectExplorer->buildManager()->isBuilding(project) + fileEnabled = !BuildManager::isBuilding(project) && m_currentProject && !m_currentProject->isParsing(); if (QbsProductNode *productNode @@ -357,18 +357,17 @@ void QbsProjectManagerPlugin::buildFiles(QbsProject *project, const QStringList if (!bc) return; - ProjectExplorer::ProjectExplorerPlugin *pe = ProjectExplorer::ProjectExplorerPlugin::instance(); - if (!pe->saveModifiedFiles()) + if (!ProjectExplorerPlugin::instance()->saveModifiedFiles()) return; bc->setChangedFiles(files); bc->setActiveFileTags(activeFileTags); bc->setProducts(QStringList()); - const Core::Id buildStep = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD); + const Core::Id buildStep = ProjectExplorer::Constants::BUILDSTEPS_BUILD; const QString name = ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(buildStep); - pe->buildManager()->buildList(bc->stepList(buildStep), name); + BuildManager::buildList(bc->stepList(buildStep), name); bc->setChangedFiles(QStringList()); } @@ -391,17 +390,16 @@ void QbsProjectManagerPlugin::buildProducts(QbsProject *project, const QStringLi if (!bc) return; - ProjectExplorer::ProjectExplorerPlugin *pe = ProjectExplorer::ProjectExplorerPlugin::instance(); - if (!pe->saveModifiedFiles()) + if (!ProjectExplorerPlugin::instance()->saveModifiedFiles()) return; bc->setChangedFiles(QStringList()); bc->setProducts(products); - const Core::Id buildStep = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD); + const Core::Id buildStep = ProjectExplorer::Constants::BUILDSTEPS_BUILD; - const QString name = ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(buildStep); - pe->buildManager()->buildList(bc->stepList(buildStep), name); + const QString name = ProjectExplorerPlugin::displayNameForStepId(buildStep); + BuildManager::buildList(bc->stepList(buildStep), name); bc->setProducts(QStringList()); } diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 1cae7daf88..c0e55fd5f2 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -649,11 +649,10 @@ void QMakeStepConfigWidget::recompileMessageBoxFinished(int button) return; QList<ProjectExplorer::BuildStepList *> stepLists; - const Core::Id clean = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN); - const Core::Id build = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD); + const Core::Id clean = ProjectExplorer::Constants::BUILDSTEPS_CLEAN; + const Core::Id build = ProjectExplorer::Constants::BUILDSTEPS_BUILD; stepLists << bc->stepList(clean) << bc->stepList(build); - ProjectExplorer::BuildManager *bm = ProjectExplorerPlugin::instance()->buildManager(); - bm->buildLists(stepLists, QStringList() << ProjectExplorerPlugin::displayNameForStepId(clean) + BuildManager::buildLists(stepLists, QStringList() << ProjectExplorerPlugin::displayNameForStepId(clean) << ProjectExplorerPlugin::displayNameForStepId(build)); } } diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index fb3295dd1d..08086eca6f 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -349,8 +349,7 @@ Qt4Project::Qt4Project(Qt4Manager *manager, const QString& fileName) : m_asyncUpdateTimer.setInterval(3000); connect(&m_asyncUpdateTimer, SIGNAL(timeout()), this, SLOT(asyncUpdate())); - connect(ProjectExplorerPlugin::instance()->buildManager(), - SIGNAL(buildQueueFinished(bool)), + connect(BuildManager::instance(), SIGNAL(buildQueueFinished(bool)), SLOT(buildFinished(bool))); } diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.cpp b/src/plugins/qt4projectmanager/qt4projectmanager.cpp index 593afa3aff..54ce6f8bce 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanager.cpp +++ b/src/plugins/qt4projectmanager/qt4projectmanager.cpp @@ -108,11 +108,6 @@ ProjectExplorer::Project *Qt4Manager::openProject(const QString &fileName, QStri return new Qt4Project(this, fileName); } -ProjectExplorer::ProjectExplorerPlugin *Qt4Manager::projectExplorer() const -{ - return ProjectExplorer::ProjectExplorerPlugin::instance(); -} - ProjectExplorer::Node *Qt4Manager::contextNode() const { return m_contextNode; @@ -222,7 +217,7 @@ void Qt4Manager::runQMake(ProjectExplorer::Project *p, ProjectExplorer::Node *no if (Qt4ProFileNode *profile = qobject_cast<Qt4ProFileNode *>(node)) bc->setSubNodeBuild(profile); - projectExplorer()->buildManager()->appendStep(qs, tr("QMake")); + BuildManager::appendStep(qs, tr("QMake")); bc->setSubNodeBuild(0); } @@ -287,23 +282,23 @@ void Qt4Manager::handleSubDirContextMenu(Qt4Manager::Action action, bool isFileB if (isFileBuild) bc->setFileNodeBuild(contextFile); - if (projectExplorer()->saveModifiedFiles()) { - const Core::Id buildStep = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD); - const Core::Id cleanStep = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN); + if (ProjectExplorerPlugin::instance()->saveModifiedFiles()) { + const Core::Id buildStep = ProjectExplorer::Constants::BUILDSTEPS_BUILD; + const Core::Id cleanStep = ProjectExplorer::Constants::BUILDSTEPS_CLEAN; if (action == BUILD) { - const QString name = ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(buildStep); - projectExplorer()->buildManager()->buildList(bc->stepList(buildStep), name); + const QString name = ProjectExplorerPlugin::displayNameForStepId(buildStep); + BuildManager::buildList(bc->stepList(buildStep), name); } else if (action == CLEAN) { - const QString name = ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(cleanStep); - projectExplorer()->buildManager()->buildList(bc->stepList(cleanStep), name); + const QString name = ProjectExplorerPlugin::displayNameForStepId(cleanStep); + BuildManager::buildList(bc->stepList(cleanStep), name); } else if (action == REBUILD) { QStringList names; - names << ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(cleanStep) - << ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(buildStep); + names << ProjectExplorerPlugin::displayNameForStepId(cleanStep) + << ProjectExplorerPlugin::displayNameForStepId(buildStep); QList<ProjectExplorer::BuildStepList *> stepLists; stepLists << bc->stepList(cleanStep) << bc->stepList(buildStep); - projectExplorer()->buildManager()->buildLists(stepLists, names); + BuildManager::buildLists(stepLists, names); } } diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.h b/src/plugins/qt4projectmanager/qt4projectmanager.h index 39ea259f40..9040c63238 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanager.h +++ b/src/plugins/qt4projectmanager/qt4projectmanager.h @@ -40,7 +40,6 @@ namespace ExtensionSystem { class PluginManager; } namespace ProjectExplorer { class Project; -class ProjectExplorerPlugin; class Node; class ToolChain; } @@ -67,8 +66,6 @@ public: void unregisterProject(Qt4Project *project); void notifyChanged(const QString &name); - ProjectExplorer::ProjectExplorerPlugin *projectExplorer() const; - virtual QString mimeType() const; ProjectExplorer::Project *openProject(const QString &fileName, QString *errorString); diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp index 06689630d3..69453439f1 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp +++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp @@ -257,7 +257,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString * mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_BUILD); connect(m_buildFileAction, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(buildFile())); - connect(m_projectExplorer->buildManager(), SIGNAL(buildStateChanged(ProjectExplorer::Project*)), + connect(BuildManager::instance(), SIGNAL(buildStateChanged(ProjectExplorer::Project*)), this, SLOT(buildStateChanged(ProjectExplorer::Project*))); connect(SessionManager::instance(), SIGNAL(startupProjectChanged(ProjectExplorer::Project*)), this, SLOT(startupProjectChanged())); @@ -333,7 +333,7 @@ void Qt4ProjectManagerPlugin::activeTargetChanged() void Qt4ProjectManagerPlugin::updateRunQMakeAction() { bool enable = true; - if (m_projectExplorer->buildManager()->isBuilding(m_projectExplorer->currentProject())) + if (BuildManager::isBuilding(m_projectExplorer->currentProject())) enable = false; Qt4Project *pro = qobject_cast<Qt4Project *>(m_projectExplorer->currentProject()); if (!pro @@ -374,7 +374,7 @@ void Qt4ProjectManagerPlugin::updateContextActions(ProjectExplorer::Node *node, Qt4BuildConfiguration *buildConfiguration = (qt4Project && qt4Project->activeTarget()) ? static_cast<Qt4BuildConfiguration *>(qt4Project->activeTarget()->activeBuildConfiguration()) : 0; bool isProjectNode = qt4Project && proFileNode && buildConfiguration; - bool isBuilding = m_projectExplorer->buildManager()->isBuilding(project); + bool isBuilding = BuildManager::isBuilding(project); bool enabled = subProjectActionsVisible && !isBuilding; m_buildSubProjectAction->setVisible(subProjectActionsVisible); @@ -424,7 +424,7 @@ void Qt4ProjectManagerPlugin::updateBuildFileAction() && node && qobject_cast<Qt4ProFileNode *>(node->projectNode()); - enabled = !m_projectExplorer->buildManager()->isBuilding(project); + enabled = !BuildManager::isBuilding(project); } m_buildFileAction->setVisible(visible); m_buildFileAction->setEnabled(enabled); diff --git a/src/plugins/qtsupport/uicodemodelsupport.cpp b/src/plugins/qtsupport/uicodemodelsupport.cpp index ee207d829a..a6f59102c9 100644 --- a/src/plugins/qtsupport/uicodemodelsupport.cpp +++ b/src/plugins/qtsupport/uicodemodelsupport.cpp @@ -47,6 +47,7 @@ enum { debug = 0 }; +using namespace ProjectExplorer; using namespace CPlusPlus; // Test for form editor (loosely coupled) @@ -310,11 +311,9 @@ UiCodeModelManager::UiCodeModelManager() : m_dirty(false) { m_instance = this; - ProjectExplorer::BuildManager *bm - = ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager(); - connect(bm, SIGNAL(buildStateChanged(ProjectExplorer::Project*)), + connect(BuildManager::instance(), SIGNAL(buildStateChanged(ProjectExplorer::Project*)), this, SLOT(buildStateHasChanged(ProjectExplorer::Project*))); - connect(ProjectExplorer::SessionManager::instance(), + connect(SessionManager::instance(), SIGNAL(projectRemoved(ProjectExplorer::Project*)), this, SLOT(projectWasRemoved(ProjectExplorer::Project*))); @@ -370,7 +369,7 @@ void UiCodeModelManager::update(ProjectExplorer::Project *project, QHash<QString void UiCodeModelManager::updateContents(const QString &uiFileName, const QString &contents) { - QHash<ProjectExplorer::Project *, QList<UiCodeModelSupport *> >::iterator i; + QHash<Project *, QList<UiCodeModelSupport *> >::iterator i; for (i = m_instance->m_projectUiSupport.begin(); i != m_instance->m_projectUiSupport.end(); ++i) { foreach (UiCodeModelSupport *support, i.value()) { @@ -380,9 +379,9 @@ void UiCodeModelManager::updateContents(const QString &uiFileName, const QString } } -void UiCodeModelManager::buildStateHasChanged(ProjectExplorer::Project *project) +void UiCodeModelManager::buildStateHasChanged(Project *project) { - if (ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager()->isBuilding(project)) + if (BuildManager::isBuilding(project)) return; QList<UiCodeModelSupport *> projectSupport = m_projectUiSupport.value(project); @@ -390,7 +389,7 @@ void UiCodeModelManager::buildStateHasChanged(ProjectExplorer::Project *project) i->updateFromBuild(); } -void UiCodeModelManager::projectWasRemoved(ProjectExplorer::Project *project) +void UiCodeModelManager::projectWasRemoved(Project *project) { CppTools::CppModelManagerInterface *mm = CppTools::CppModelManagerInterface::instance(); |