BuildManager: apply 'static' pattern

Change-Id: I00bb591c027a22088d5f1feedc84aa28523dcca2
Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
hjk
2013-09-05 14:36:20 +02:00
parent e5c7ac61ec
commit ad58c2bb44
19 changed files with 143 additions and 173 deletions

View File

@@ -55,6 +55,7 @@
namespace Android { namespace Android {
namespace Internal { namespace Internal {
using namespace ProjectExplorer;
using namespace Qt4ProjectManager; using namespace Qt4ProjectManager;
///////////////////////////// CheckModel ///////////////////////////// ///////////////////////////// CheckModel /////////////////////////////
@@ -251,10 +252,9 @@ void AndroidPackageCreationWidget::setTargetSDK(const QString &sdk)
qs->setForced(true); qs->setForced(true);
ProjectExplorer::BuildManager *bm = ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager(); BuildManager::buildList(bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN),
bm->buildList(bc->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN)), ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN))); BuildManager::appendStep(qs, ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
bm->appendStep(qs, ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN)));
bc->setSubNodeBuild(0); bc->setSubNodeBuild(0);
// Make the buildconfiguration emit a evironmentChanged() signal // Make the buildconfiguration emit a evironmentChanged() signal
// TODO find a better way // TODO find a better way

View File

@@ -3490,8 +3490,7 @@ void DebuggerPluginPrivate::testProjectEvaluated()
QString fileName = m_testProject->projectFilePath(); QString fileName = m_testProject->projectFilePath();
QVERIFY(!fileName.isEmpty()); QVERIFY(!fileName.isEmpty());
qWarning("Project %s loaded", qPrintable(fileName)); qWarning("Project %s loaded", qPrintable(fileName));
connect(ProjectExplorerPlugin::instance()->buildManager(), connect(BuildManager::instance(), SIGNAL(buildQueueFinished(bool)),
SIGNAL(buildQueueFinished(bool)),
SLOT(testProjectBuilt(bool))); SLOT(testProjectBuilt(bool)));
ProjectExplorerPlugin::instance()->buildProject(m_testProject); ProjectExplorerPlugin::instance()->buildProject(m_testProject);
} }

View File

@@ -111,9 +111,15 @@ BuildManagerPrivate::BuildManagerPrivate() :
{ {
} }
static BuildManagerPrivate *d = 0;
static BuildManager *m_instance = 0;
BuildManager::BuildManager(QObject *parent, QAction *cancelBuildAction) 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()), connect(&d->m_watcher, SIGNAL(finished()),
this, SLOT(nextBuildQueue())); this, SLOT(nextBuildQueue()));
@@ -148,6 +154,11 @@ BuildManager::BuildManager(QObject *parent, QAction *cancelBuildAction)
this, SLOT(finish())); this, SLOT(finish()));
} }
QObject *BuildManager::instance()
{
return m_instance;
}
void BuildManager::extensionsInitialized() void BuildManager::extensionsInitialized()
{ {
TaskHub::addCategory(Constants::TASK_CATEGORY_COMPILE, TaskHub::addCategory(Constants::TASK_CATEGORY_COMPILE,
@@ -161,6 +172,7 @@ void BuildManager::extensionsInitialized()
BuildManager::~BuildManager() BuildManager::~BuildManager()
{ {
cancel(); cancel();
m_instance = 0;
ExtensionSystem::PluginManager::removeObject(d->m_taskWindow); ExtensionSystem::PluginManager::removeObject(d->m_taskWindow);
delete d->m_taskWindow; delete d->m_taskWindow;
@@ -170,7 +182,7 @@ BuildManager::~BuildManager()
delete d; 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 it = d->m_activeBuildSteps.find(p);
QHash<Project *, int>::iterator end = d->m_activeBuildSteps.end(); 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 // we are building even if we are not running yet
return !d->m_buildQueue.isEmpty() || d->m_running; return !d->m_buildQueue.isEmpty() || d->m_running;
} }
int BuildManager::getErrorTaskCount() const int BuildManager::getErrorTaskCount()
{ {
const int errors = const int errors =
d->m_taskWindow->errorTaskCount(Constants::TASK_CATEGORY_BUILDSYSTEM) d->m_taskWindow->errorTaskCount(Constants::TASK_CATEGORY_BUILDSYSTEM)
@@ -213,7 +225,7 @@ void BuildManager::updateTaskCount()
{ {
const int errors = getErrorTaskCount(); const int errors = getErrorTaskCount();
ProgressManager::setApplicationLabel(errors > 0 ? QString::number(errors) : QString()); ProgressManager::setApplicationLabel(errors > 0 ? QString::number(errors) : QString());
emit tasksChanged(); emit m_instance->tasksChanged();
} }
void BuildManager::finish() void BuildManager::finish()
@@ -254,7 +266,7 @@ void BuildManager::clearBuildQueue()
d->m_futureProgress = 0; d->m_futureProgress = 0;
d->m_maxProgress = 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); d->m_taskWindow->toggle(IOutputPane::ModeSwitch);
} }
bool BuildManager::tasksAvailable() const bool BuildManager::tasksAvailable()
{ {
const int count = const int count =
d->m_taskWindow->taskCount(Constants::TASK_CATEGORY_BUILDSYSTEM) d->m_taskWindow->taskCount(Constants::TASK_CATEGORY_BUILDSYSTEM)
@@ -285,7 +297,7 @@ bool BuildManager::tasksAvailable() const
void BuildManager::startBuildQueue(const QStringList &preambleMessage) void BuildManager::startBuildQueue(const QStringList &preambleMessage)
{ {
if (d->m_buildQueue.isEmpty()) { if (d->m_buildQueue.isEmpty()) {
emit buildQueueFinished(true); emit m_instance->buildQueueFinished(true);
return; return;
} }
if (!d->m_running) { if (!d->m_running) {
@@ -302,7 +314,7 @@ void BuildManager::startBuildQueue(const QStringList &preambleMessage)
d->m_futureProgress = ProgressManager::addTask(d->m_progressFutureInterface->future(), d->m_futureProgress = ProgressManager::addTask(d->m_progressFutureInterface->future(),
QString(), "ProjectExplorer.Task.Build", QString(), "ProjectExplorer.Task.Build",
ProgressManager::KeepOnFinish | ProgressManager::ShowInApplicationIcon); 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()->setWidget(new Internal::BuildProgress(d->m_taskWindow));
d->m_futureProgress.data()->setStatusBarWidget(new Internal::BuildProgress(d->m_taskWindow, d->m_futureProgress.data()->setStatusBarWidget(new Internal::BuildProgress(d->m_taskWindow,
Qt::Horizontal)); Qt::Horizontal));
@@ -352,7 +364,7 @@ void BuildManager::addToOutputWindow(const QString &string, BuildStep::OutputFor
void BuildManager::buildStepFinishedAsync() void BuildManager::buildStepFinishedAsync()
{ {
disconnect(d->m_currentBuildStep, SIGNAL(finished()), disconnect(d->m_currentBuildStep, SIGNAL(finished()),
this, SLOT(buildStepFinishedAsync())); m_instance, SLOT(buildStepFinishedAsync()));
d->m_futureInterfaceForAysnc = QFutureInterface<bool>(); d->m_futureInterfaceForAysnc = QFutureInterface<bool>();
nextBuildQueue(); nextBuildQueue();
} }
@@ -361,7 +373,7 @@ void BuildManager::nextBuildQueue()
{ {
if (d->m_canceling) { if (d->m_canceling) {
d->m_canceling = false; d->m_canceling = false;
QTimer::singleShot(0, this, SLOT(emitCancelMessage())); QTimer::singleShot(0, m_instance, SLOT(emitCancelMessage()));
disconnectOutput(d->m_currentBuildStep); disconnectOutput(d->m_currentBuildStep);
decrementActiveBuildSteps(d->m_currentBuildStep); decrementActiveBuildSteps(d->m_currentBuildStep);
@@ -443,7 +455,7 @@ void BuildManager::nextStep()
if (d->m_currentBuildStep->runInGuiThread()) { if (d->m_currentBuildStep->runInGuiThread()) {
connect (d->m_currentBuildStep, SIGNAL(finished()), connect (d->m_currentBuildStep, SIGNAL(finished()),
this, SLOT(buildStepFinishedAsync())); m_instance, SLOT(buildStepFinishedAsync()));
d->m_watcher.setFuture(d->m_futureInterfaceForAysnc.future()); d->m_watcher.setFuture(d->m_futureInterfaceForAysnc.future());
d->m_currentBuildStep->run(d->m_futureInterfaceForAysnc); d->m_currentBuildStep->run(d->m_futureInterfaceForAysnc);
} else { } else {
@@ -458,7 +470,7 @@ void BuildManager::nextStep()
delete d->m_progressFutureInterface; delete d->m_progressFutureInterface;
d->m_progressFutureInterface = 0; d->m_progressFutureInterface = 0;
d->m_maxProgress = 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) { for (; i < count; ++i) {
BuildStep *bs = steps.at(i); BuildStep *bs = steps.at(i);
connect(bs, SIGNAL(addTask(ProjectExplorer::Task)), 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)), 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()) { if (bs->enabled()) {
init = bs->init(); init = bs->init();
if (!init) if (!init)
@@ -616,7 +628,7 @@ void BuildManager::incrementActiveBuildSteps(BuildStep *bs)
increment<ProjectConfiguration>(d->m_activeBuildStepsPerProjectConfiguration, bs->projectConfiguration()); increment<ProjectConfiguration>(d->m_activeBuildStepsPerProjectConfiguration, bs->projectConfiguration());
increment<Target>(d->m_activeBuildStepsPerTarget, bs->target()); increment<Target>(d->m_activeBuildStepsPerTarget, bs->target());
if (increment<Project>(d->m_activeBuildSteps, bs->project())) if (increment<Project>(d->m_activeBuildSteps, bs->project()))
emit buildStateChanged(bs->project()); emit m_instance->buildStateChanged(bs->project());
} }
void BuildManager::decrementActiveBuildSteps(BuildStep *bs) void BuildManager::decrementActiveBuildSteps(BuildStep *bs)
@@ -624,16 +636,16 @@ void BuildManager::decrementActiveBuildSteps(BuildStep *bs)
decrement<ProjectConfiguration>(d->m_activeBuildStepsPerProjectConfiguration, bs->projectConfiguration()); decrement<ProjectConfiguration>(d->m_activeBuildStepsPerProjectConfiguration, bs->projectConfiguration());
decrement<Target>(d->m_activeBuildStepsPerTarget, bs->target()); decrement<Target>(d->m_activeBuildStepsPerTarget, bs->target());
if (decrement<Project>(d->m_activeBuildSteps, bs->project())) if (decrement<Project>(d->m_activeBuildSteps, bs->project()))
emit buildStateChanged(bs->project()); emit m_instance->buildStateChanged(bs->project());
} }
void BuildManager::disconnectOutput(BuildStep *bs) void BuildManager::disconnectOutput(BuildStep *bs)
{ {
disconnect(bs, SIGNAL(addTask(ProjectExplorer::Task)), 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, disconnect(bs, SIGNAL(addOutput(QString, ProjectExplorer::BuildStep::OutputFormat,
ProjectExplorer::BuildStep::OutputNewlineSetting)), ProjectExplorer::BuildStep::OutputNewlineSetting)),
this, SLOT(addToOutputWindow(QString, ProjectExplorer::BuildStep::OutputFormat, m_instance, SLOT(addToOutputWindow(QString, ProjectExplorer::BuildStep::OutputFormat,
ProjectExplorer::BuildStep::OutputNewlineSetting))); ProjectExplorer::BuildStep::OutputNewlineSetting)));
} }

View File

@@ -37,11 +37,9 @@
#include <QStringList> #include <QStringList>
namespace ProjectExplorer { namespace ProjectExplorer {
class Task;
class ProjectExplorerPlugin;
class Project;
struct BuildManagerPrivate; class Task;
class Project;
class PROJECTEXPLORER_EXPORT BuildManager : public QObject class PROJECTEXPLORER_EXPORT BuildManager : public QObject
{ {
@@ -49,35 +47,35 @@ class PROJECTEXPLORER_EXPORT BuildManager : public QObject
public: public:
explicit BuildManager(QObject *parent, QAction *cancelBuildAction); 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; static bool buildLists(QList<BuildStepList *> bsls, const QStringList &stepListNames,
bool buildLists(QList<BuildStepList *> bsls, const QStringList &stepListNames,
const QStringList &preambelMessage = QStringList()); const QStringList &preambelMessage = QStringList());
bool buildList(BuildStepList *bsl, const QString &stepListName); static bool buildList(BuildStepList *bsl, const QString &stepListName);
bool isBuilding(Project *p); static bool isBuilding(Project *p);
bool isBuilding(Target *t); static bool isBuilding(Target *t);
bool isBuilding(ProjectConfiguration *p); static bool isBuilding(ProjectConfiguration *p);
bool isBuilding(BuildStep *step); static bool isBuilding(BuildStep *step);
// Append any build step to the list of build steps (currently only used to add the QMakeStep) // 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: public slots:
void cancel(); static void cancel();
// Shows without focus // Shows without focus
void showTaskWindow(); static void showTaskWindow();
void toggleTaskWindow(); static void toggleTaskWindow();
void toggleOutputWindow(); static void toggleOutputWindow();
void aboutToRemoveProject(ProjectExplorer::Project *p); static void aboutToRemoveProject(ProjectExplorer::Project *p);
signals: signals:
void buildStateChanged(ProjectExplorer::Project *pro); void buildStateChanged(ProjectExplorer::Project *pro);
@@ -87,30 +85,29 @@ signals:
void tasksCleared(); void tasksCleared();
private slots: private slots:
void addToTaskWindow(const ProjectExplorer::Task &task); static void addToTaskWindow(const ProjectExplorer::Task &task);
void addToOutputWindow(const QString &string, ProjectExplorer::BuildStep::OutputFormat, static void addToOutputWindow(const QString &string, ProjectExplorer::BuildStep::OutputFormat,
ProjectExplorer::BuildStep::OutputNewlineSetting = BuildStep::DoAppendNewline); ProjectExplorer::BuildStep::OutputNewlineSetting = BuildStep::DoAppendNewline);
void buildStepFinishedAsync(); static void buildStepFinishedAsync();
void nextBuildQueue(); static void nextBuildQueue();
void progressChanged(); static void progressChanged();
void progressTextChanged(); static void progressTextChanged();
void emitCancelMessage(); static void emitCancelMessage();
void showBuildResults(); static void showBuildResults();
void updateTaskCount(); static void updateTaskCount();
void finish(); static void finish();
private: private:
void startBuildQueue(const QStringList &preambleMessage = QStringList()); static void startBuildQueue(const QStringList &preambleMessage = QStringList());
void nextStep(); static void nextStep();
void clearBuildQueue(); static void clearBuildQueue();
bool buildQueueAppend(QList<BuildStep *> steps, QStringList names); static bool buildQueueAppend(QList<BuildStep *> steps, QStringList names);
void incrementActiveBuildSteps(BuildStep *bs); static void incrementActiveBuildSteps(BuildStep *bs);
void decrementActiveBuildSteps(BuildStep *bs); static void decrementActiveBuildSteps(BuildStep *bs);
void disconnectOutput(BuildStep *bs); static void disconnectOutput(BuildStep *bs);
BuildManagerPrivate *d;
}; };
} // namespace ProjectExplorer } // namespace ProjectExplorer
#endif // BUILDMANAGER_H #endif // BUILDMANAGER_H

View File

@@ -357,8 +357,7 @@ void BuildSettingsWidget::deleteConfiguration(BuildConfiguration *deleteConfigur
m_target->buildConfigurations().size() <= 1) m_target->buildConfigurations().size() <= 1)
return; return;
ProjectExplorer::BuildManager *bm = ProjectExplorerPlugin::instance()->buildManager(); if (BuildManager::isBuilding(deleteConfiguration)) {
if (bm->isBuilding(deleteConfiguration)) {
QMessageBox box; QMessageBox box;
QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Remove Build Configuration"), QMessageBox::AcceptRole); QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Remove Build Configuration"), QMessageBox::AcceptRole);
QPushButton *cancelClose = box.addButton(tr("Do Not Remove"), QMessageBox::RejectRole); QPushButton *cancelClose = box.addButton(tr("Do Not Remove"), QMessageBox::RejectRole);
@@ -369,7 +368,7 @@ void BuildSettingsWidget::deleteConfiguration(BuildConfiguration *deleteConfigur
box.exec(); box.exec();
if (box.clickedButton() != closeAnyway) if (box.clickedButton() != closeAnyway)
return; return;
bm->cancel(); BuildManager::cancel();
} else { } else {
QMessageBox msgBox(QMessageBox::Question, tr("Remove Build Configuration?"), QMessageBox msgBox(QMessageBox::Question, tr("Remove Build Configuration?"),
tr("Do you really want to delete build configuration <b>%1</b>?").arg(deleteConfiguration->displayName()), tr("Do you really want to delete build configuration <b>%1</b>?").arg(deleteConfiguration->displayName()),

View File

@@ -184,10 +184,8 @@ void BuildStepList::insertStep(int position, BuildStep *step)
bool BuildStepList::removeStep(int position) bool BuildStepList::removeStep(int position)
{ {
ProjectExplorer::BuildManager *bm =
ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager();
BuildStep *bs = at(position); BuildStep *bs = at(position);
if (bm->isBuilding(bs)) if (BuildManager::isBuilding(bs))
return false; return false;
emit aboutToRemoveStep(position); emit aboutToRemoveStep(position);

View File

@@ -172,9 +172,7 @@ bool Project::removeTarget(Target *target)
if (!target || !d->m_targets.contains(target)) if (!target || !d->m_targets.contains(target))
return false; return false;
ProjectExplorer::BuildManager *bm = if (BuildManager::isBuilding(target))
ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager();
if (bm->isBuilding(target))
return false; return false;
if (target == activeTarget()) { if (target == activeTarget()) {

View File

@@ -215,8 +215,6 @@ struct ProjectExplorerPluginPrivate {
Context m_lastProjectContext; Context m_lastProjectContext;
Node *m_currentNode; Node *m_currentNode;
BuildManager *m_buildManager;
QList<Internal::ProjectFileFactory*> m_fileFactories; QList<Internal::ProjectFileFactory*> m_fileFactories;
QStringList m_profileMimeTypes; QStringList m_profileMimeTypes;
Internal::AppOutputPane *m_outputPane; 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(updateRunActions()), this, SLOT(slotUpdateRunActions()));
connect(this, SIGNAL(settingsChanged()), this, SLOT(updateRunWithoutDeployMenu())); connect(this, SIGNAL(settingsChanged()), this, SLOT(updateRunWithoutDeployMenu()));
d->m_buildManager = new BuildManager(this, d->m_cancelBuildAction); QObject *buildManager = new BuildManager(this, d->m_cancelBuildAction);
connect(d->m_buildManager, SIGNAL(buildStateChanged(ProjectExplorer::Project*)), connect(buildManager, SIGNAL(buildStateChanged(ProjectExplorer::Project*)),
this, SLOT(buildStateChanged(ProjectExplorer::Project*))); this, SLOT(buildStateChanged(ProjectExplorer::Project*)));
connect(d->m_buildManager, SIGNAL(buildQueueFinished(bool)), connect(buildManager, SIGNAL(buildQueueFinished(bool)),
this, SLOT(buildQueueFinished(bool))); this, SLOT(buildQueueFinished(bool)));
updateActions(); updateActions();
@@ -1036,7 +1034,7 @@ void ProjectExplorerPlugin::unloadProject()
if (debug) if (debug)
qDebug() << "ProjectExplorerPlugin::unloadProject"; qDebug() << "ProjectExplorerPlugin::unloadProject";
if (buildManager()->isBuilding(d->m_currentProject)) { if (BuildManager::isBuilding(d->m_currentProject)) {
QMessageBox box; QMessageBox box;
QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Unload"), QMessageBox::AcceptRole); QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Unload"), QMessageBox::AcceptRole);
QPushButton *cancelClose = box.addButton(tr("Do Not Unload"), QMessageBox::RejectRole); QPushButton *cancelClose = box.addButton(tr("Do Not Unload"), QMessageBox::RejectRole);
@@ -1047,7 +1045,7 @@ void ProjectExplorerPlugin::unloadProject()
box.exec(); box.exec();
if (box.clickedButton() != closeAnyway) if (box.clickedButton() != closeAnyway)
return; return;
buildManager()->cancel(); BuildManager::cancel();
} }
IDocument *document = d->m_currentProject->document(); IDocument *document = d->m_currentProject->document();
@@ -1098,7 +1096,7 @@ void ProjectExplorerPlugin::extensionsInitialized()
d->m_profileMimeTypes += pf->mimeTypes(); d->m_profileMimeTypes += pf->mimeTypes();
addAutoReleasedObject(pf); addAutoReleasedObject(pf);
} }
d->m_buildManager->extensionsInitialized(); BuildManager::extensionsInitialized();
DeviceManager::instance()->addDevice(IDevice::Ptr(new DesktopDevice)); DeviceManager::instance()->addDevice(IDevice::Ptr(new DesktopDevice));
DeviceManager::instance()->load(); DeviceManager::instance()->load();
@@ -1630,16 +1628,11 @@ void ProjectExplorerPlugin::showContextMenu(QWidget *view, const QPoint &globalP
contextMenu->popup(globalPos); contextMenu->popup(globalPos);
} }
BuildManager *ProjectExplorerPlugin::buildManager() const
{
return d->m_buildManager;
}
void ProjectExplorerPlugin::buildStateChanged(Project * pro) void ProjectExplorerPlugin::buildStateChanged(Project * pro)
{ {
if (debug) { if (debug) {
qDebug() << "buildStateChanged"; qDebug() << "buildStateChanged";
qDebug() << pro->document()->filePath() << "isBuilding()" << d->m_buildManager->isBuilding(pro); qDebug() << pro->document()->filePath() << "isBuilding()" << BuildManager::isBuilding(pro);
} }
Q_UNUSED(pro) Q_UNUSED(pro)
updateActions(); updateActions();
@@ -1704,7 +1697,7 @@ void ProjectExplorerPlugin::buildQueueFinished(bool success)
updateActions(); updateActions();
bool ignoreErrors = true; 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(), ignoreErrors = QMessageBox::question(ICore::mainWindow(),
tr("Ignore all errors?"), tr("Ignore all errors?"),
tr("Found some build errors in current task.\n" tr("Found some build errors in current task.\n"
@@ -1716,8 +1709,8 @@ void ProjectExplorerPlugin::buildQueueFinished(bool success)
if (success && ignoreErrors && d->m_delayedRunConfiguration) { if (success && ignoreErrors && d->m_delayedRunConfiguration) {
executeRunConfiguration(d->m_delayedRunConfiguration, d->m_runMode); executeRunConfiguration(d->m_delayedRunConfiguration, d->m_runMode);
} else { } else {
if (d->m_buildManager->tasksAvailable()) if (BuildManager::tasksAvailable())
d->m_buildManager->showTaskWindow(); BuildManager::showTaskWindow();
} }
d->m_delayedRunConfiguration = 0; d->m_delayedRunConfiguration = 0;
d->m_runMode = NoRunMode; d->m_runMode = NoRunMode;
@@ -1894,7 +1887,7 @@ void ProjectExplorerPlugin::updateActions()
d->m_rebuildSessionAction->setToolTip(buildSessionState.second); d->m_rebuildSessionAction->setToolTip(buildSessionState.second);
d->m_cleanSessionAction->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; bool canPublish = false;
if (project) { if (project) {
@@ -2028,7 +2021,7 @@ int ProjectExplorerPlugin::queue(QList<Project *> projects, QList<Id> stepIds)
if (stepLists.isEmpty()) if (stepLists.isEmpty())
return 0; return 0;
if (!d->m_buildManager->buildLists(stepLists, names, preambleMessage)) if (!BuildManager::buildLists(stepLists, names, preambleMessage))
return -1; return -1;
return stepLists.count(); return stepLists.count();
} }
@@ -2178,7 +2171,7 @@ QPair<bool, QString> ProjectExplorerPlugin::buildSettingsEnabled(Project *pro)
if (!pro) { if (!pro) {
result.first = false; result.first = false;
result.second = tr("No project loaded."); result.second = tr("No project loaded.");
} else if (d->m_buildManager->isBuilding(pro)) { } else if (BuildManager::isBuilding(pro)) {
result.first = false; result.first = false;
result.second = tr("Currently building the active project."); result.second = tr("Currently building the active project.");
} else if (pro->needsConfiguration()) { } else if (pro->needsConfiguration()) {
@@ -2211,7 +2204,7 @@ QPair<bool, QString> ProjectExplorerPlugin::buildSettingsEnabledForSession()
if (!SessionManager::hasProjects()) { if (!SessionManager::hasProjects()) {
result.first = false; result.first = false;
result.second = tr("No project loaded"); result.second = tr("No project loaded");
} else if (d->m_buildManager->isBuilding()) { } else if (BuildManager::isBuilding()) {
result.first = false; result.first = false;
result.second = tr("A build is in progress"); result.second = tr("A build is in progress");
} else if (!hasBuildSettings(0)) { } else if (!hasBuildSettings(0)) {
@@ -2235,7 +2228,7 @@ QPair<bool, QString> ProjectExplorerPlugin::buildSettingsEnabledForSession()
bool ProjectExplorerPlugin::coreAboutToClose() bool ProjectExplorerPlugin::coreAboutToClose()
{ {
if (d->m_buildManager->isBuilding()) { if (BuildManager::isBuilding()) {
QMessageBox box; QMessageBox box;
QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Close"), QMessageBox::AcceptRole); QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Close"), QMessageBox::AcceptRole);
QPushButton *cancelClose = box.addButton(tr("Do Not Close"), QMessageBox::RejectRole); QPushButton *cancelClose = box.addButton(tr("Do Not Close"), QMessageBox::RejectRole);
@@ -2414,10 +2407,10 @@ void ProjectExplorerPlugin::updateDeployActions()
Project *project = SessionManager::startupProject(); Project *project = SessionManager::startupProject();
bool enableDeployActions = project bool enableDeployActions = project
&& ! (d->m_buildManager->isBuilding(project)) && BuildManager::isBuilding(project)
&& hasDeploySettings(project); && hasDeploySettings(project);
bool enableDeployActionsContextMenu = d->m_currentProject bool enableDeployActionsContextMenu = d->m_currentProject
&& ! (d->m_buildManager->isBuilding(d->m_currentProject)) && !BuildManager::isBuilding(d->m_currentProject)
&& hasDeploySettings(d->m_currentProject); && hasDeploySettings(d->m_currentProject);
if (d->m_projectExplorerSettings.buildBeforeDeploy) { if (d->m_projectExplorerSettings.buildBeforeDeploy) {
@@ -2451,9 +2444,7 @@ void ProjectExplorerPlugin::updateDeployActions()
} }
} }
} }
if (!hasProjects if (!hasProjects || !hasDeploySettings(0) || BuildManager::isBuilding())
|| !hasDeploySettings(0)
|| d->m_buildManager->isBuilding())
enableDeploySessionAction = false; enableDeploySessionAction = false;
d->m_deploySessionAction->setEnabled(enableDeploySessionAction); d->m_deploySessionAction->setEnabled(enableDeploySessionAction);
@@ -2479,8 +2470,7 @@ bool ProjectExplorerPlugin::canRun(Project *project, RunMode runMode)
bool canRun = findRunControlFactory(activeRC, runMode) bool canRun = findRunControlFactory(activeRC, runMode)
&& activeRC->isEnabled(); && activeRC->isEnabled();
const bool building = d->m_buildManager->isBuilding(); return canRun && !BuildManager::isBuilding();
return (canRun && !building);
} }
QString ProjectExplorerPlugin::cannotRunReason(Project *project, RunMode runMode) QString ProjectExplorerPlugin::cannotRunReason(Project *project, RunMode runMode)
@@ -2516,8 +2506,7 @@ QString ProjectExplorerPlugin::cannotRunReason(Project *project, RunMode runMode
if (!findRunControlFactory(activeRC, runMode)) if (!findRunControlFactory(activeRC, runMode))
return tr("Cannot run '%1'.").arg(activeRC->displayName()); return tr("Cannot run '%1'.").arg(activeRC->displayName());
if (BuildManager::isBuilding())
if (d->m_buildManager->isBuilding())
return tr("A build is still in progress."); return tr("A build is still in progress.");
return QString(); return QString();
} }
@@ -2536,8 +2525,8 @@ void ProjectExplorerPlugin::cancelBuild()
if (debug) if (debug)
qDebug() << "ProjectExplorerPlugin::cancelBuild"; qDebug() << "ProjectExplorerPlugin::cancelBuild";
if (d->m_buildManager->isBuilding()) if (BuildManager::isBuilding())
d->m_buildManager->cancel(); BuildManager::cancel();
} }
void ProjectExplorerPlugin::addToRecentProjects(const QString &fileName, const QString &displayName) void ProjectExplorerPlugin::addToRecentProjects(const QString &fileName, const QString &displayName)

View File

@@ -49,7 +49,6 @@ class Id;
} }
namespace ProjectExplorer { namespace ProjectExplorer {
class BuildManager;
class RunControl; class RunControl;
class RunConfiguration; class RunConfiguration;
class IRunControlFactory; class IRunControlFactory;
@@ -86,8 +85,6 @@ public:
void setCurrentFile(Project *project, const QString &file); void setCurrentFile(Project *project, const QString &file);
void setCurrentNode(Node *node); void setCurrentNode(Node *node);
BuildManager *buildManager() const;
bool saveModifiedFiles(); bool saveModifiedFiles();
void showContextMenu(QWidget *view, const QPoint &globalPos, Node *node); void showContextMenu(QWidget *view, const QPoint &globalPos, Node *node);

View File

@@ -436,8 +436,7 @@ void RunSettingsWidget::addDeployConfiguration()
void RunSettingsWidget::removeDeployConfiguration() void RunSettingsWidget::removeDeployConfiguration()
{ {
DeployConfiguration *dc = m_target->activeDeployConfiguration(); DeployConfiguration *dc = m_target->activeDeployConfiguration();
ProjectExplorer::BuildManager *bm = ProjectExplorerPlugin::instance()->buildManager(); if (BuildManager::isBuilding(dc)) {
if (bm->isBuilding(dc)) {
QMessageBox box; QMessageBox box;
QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Remove Deploy Configuration"), QMessageBox::AcceptRole); QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Remove Deploy Configuration"), QMessageBox::AcceptRole);
QPushButton *cancelClose = box.addButton(tr("Do Not Remove"), QMessageBox::RejectRole); QPushButton *cancelClose = box.addButton(tr("Do Not Remove"), QMessageBox::RejectRole);
@@ -448,7 +447,7 @@ void RunSettingsWidget::removeDeployConfiguration()
box.exec(); box.exec();
if (box.clickedButton() != closeAnyway) if (box.clickedButton() != closeAnyway)
return; return;
bm->cancel(); BuildManager::cancel();
} else { } else {
QMessageBox msgBox(QMessageBox::Question, tr("Remove Deploy Configuration?"), QMessageBox msgBox(QMessageBox::Question, tr("Remove Deploy Configuration?"),
tr("Do you really want to delete deploy configuration <b>%1</b>?").arg(dc->displayName()), tr("Do you really want to delete deploy configuration <b>%1</b>?").arg(dc->displayName()),

View File

@@ -248,9 +248,7 @@ bool Target::removeBuildConfiguration(BuildConfiguration *configuration)
if (!d->m_buildConfigurations.contains(configuration)) if (!d->m_buildConfigurations.contains(configuration))
return false; return false;
ProjectExplorer::BuildManager *bm = if (BuildManager::isBuilding(configuration))
ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager();
if (bm->isBuilding(configuration))
return false; return false;
d->m_buildConfigurations.removeOne(configuration); d->m_buildConfigurations.removeOne(configuration);
@@ -325,9 +323,7 @@ bool Target::removeDeployConfiguration(DeployConfiguration *dc)
if (!d->m_deployConfigurations.contains(dc)) if (!d->m_deployConfigurations.contains(dc))
return false; return false;
ProjectExplorer::BuildManager *bm = if (BuildManager::isBuilding(dc))
ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager();
if (bm->isBuilding(dc))
return false; return false;
d->m_deployConfigurations.removeOne(dc); d->m_deployConfigurations.removeOne(dc);

View File

@@ -443,8 +443,7 @@ void TargetSettingsPanelWidget::removeTarget()
void TargetSettingsPanelWidget::removeTarget(Target *t) void TargetSettingsPanelWidget::removeTarget(Target *t)
{ {
ProjectExplorer::BuildManager *bm = ProjectExplorerPlugin::instance()->buildManager(); if (BuildManager::isBuilding(t)) {
if (bm->isBuilding(t)) {
QMessageBox box; QMessageBox box;
QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Remove Kit"), QMessageBox::AcceptRole); QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Remove Kit"), QMessageBox::AcceptRole);
QPushButton *cancelClose = box.addButton(tr("Do Not Remove"), QMessageBox::RejectRole); QPushButton *cancelClose = box.addButton(tr("Do Not Remove"), QMessageBox::RejectRole);
@@ -455,7 +454,7 @@ void TargetSettingsPanelWidget::removeTarget(Target *t)
box.exec(); box.exec();
if (box.clickedButton() != closeAnyway) if (box.clickedButton() != closeAnyway)
return; return;
bm->cancel(); BuildManager::cancel();
} else { } else {
// We don't show the generic message box on removing the target, if we showed the still building one // 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"), int ret = QMessageBox::warning(this, tr("Qt Creator"),

View File

@@ -172,7 +172,7 @@ bool QbsProjectManagerPlugin::initialize(const QStringList &arguments, QString *
connect(m_projectExplorer, SIGNAL(currentNodeChanged(ProjectExplorer::Node*,ProjectExplorer::Project*)), connect(m_projectExplorer, SIGNAL(currentNodeChanged(ProjectExplorer::Node*,ProjectExplorer::Project*)),
this, SLOT(updateContextActions(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*))); this, SLOT(buildStateChanged(ProjectExplorer::Project*)));
connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)), connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)),
@@ -213,7 +213,7 @@ void QbsProjectManagerPlugin::updateContextActions(ProjectExplorer::Node *node,
activeTargetChanged(); activeTargetChanged();
bool isBuilding = m_projectExplorer->buildManager()->isBuilding(project); bool isBuilding = BuildManager::isBuilding(project);
bool isFile = m_currentProject && node && (node->nodeType() == ProjectExplorer::FileNodeType); bool isFile = m_currentProject && node && (node->nodeType() == ProjectExplorer::FileNodeType);
bool isProduct = m_currentProject && node && qobject_cast<QbsProductNode *>(node->projectNode()); bool isProduct = m_currentProject && node && qobject_cast<QbsProductNode *>(node->projectNode());
bool isFileEnabled = isFile && node->isEnabled(); bool isFileEnabled = isFile && node->isEnabled();
@@ -226,7 +226,7 @@ void QbsProjectManagerPlugin::updateContextActions(ProjectExplorer::Node *node,
void QbsProjectManagerPlugin::updateReparseQbsAction() void QbsProjectManagerPlugin::updateReparseQbsAction()
{ {
m_reparseQbs->setEnabled(m_currentProject m_reparseQbs->setEnabled(m_currentProject
&& !m_projectExplorer->buildManager()->isBuilding(m_currentProject) && !BuildManager::isBuilding(m_currentProject)
&& !m_currentProject->isParsing()); && !m_currentProject->isParsing());
} }
@@ -246,7 +246,7 @@ void QbsProjectManagerPlugin::updateBuildActions()
m_buildFile->setParameter(QFileInfo(file).fileName()); m_buildFile->setParameter(QFileInfo(file).fileName());
fileVisible = project && node && qobject_cast<QbsBaseProjectNode *>(node->projectNode()); fileVisible = project && node && qobject_cast<QbsBaseProjectNode *>(node->projectNode());
fileEnabled = !m_projectExplorer->buildManager()->isBuilding(project) fileEnabled = !BuildManager::isBuilding(project)
&& m_currentProject && !m_currentProject->isParsing(); && m_currentProject && !m_currentProject->isParsing();
if (QbsProductNode *productNode if (QbsProductNode *productNode
@@ -357,18 +357,17 @@ void QbsProjectManagerPlugin::buildFiles(QbsProject *project, const QStringList
if (!bc) if (!bc)
return; return;
ProjectExplorer::ProjectExplorerPlugin *pe = ProjectExplorer::ProjectExplorerPlugin::instance(); if (!ProjectExplorerPlugin::instance()->saveModifiedFiles())
if (!pe->saveModifiedFiles())
return; return;
bc->setChangedFiles(files); bc->setChangedFiles(files);
bc->setActiveFileTags(activeFileTags); bc->setActiveFileTags(activeFileTags);
bc->setProducts(QStringList()); 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); const QString name = ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(buildStep);
pe->buildManager()->buildList(bc->stepList(buildStep), name); BuildManager::buildList(bc->stepList(buildStep), name);
bc->setChangedFiles(QStringList()); bc->setChangedFiles(QStringList());
} }
@@ -391,17 +390,16 @@ void QbsProjectManagerPlugin::buildProducts(QbsProject *project, const QStringLi
if (!bc) if (!bc)
return; return;
ProjectExplorer::ProjectExplorerPlugin *pe = ProjectExplorer::ProjectExplorerPlugin::instance(); if (!ProjectExplorerPlugin::instance()->saveModifiedFiles())
if (!pe->saveModifiedFiles())
return; return;
bc->setChangedFiles(QStringList()); bc->setChangedFiles(QStringList());
bc->setProducts(products); 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); const QString name = ProjectExplorerPlugin::displayNameForStepId(buildStep);
pe->buildManager()->buildList(bc->stepList(buildStep), name); BuildManager::buildList(bc->stepList(buildStep), name);
bc->setProducts(QStringList()); bc->setProducts(QStringList());
} }

View File

@@ -649,11 +649,10 @@ void QMakeStepConfigWidget::recompileMessageBoxFinished(int button)
return; return;
QList<ProjectExplorer::BuildStepList *> stepLists; QList<ProjectExplorer::BuildStepList *> stepLists;
const Core::Id clean = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN); const Core::Id clean = ProjectExplorer::Constants::BUILDSTEPS_CLEAN;
const Core::Id build = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD); const Core::Id build = ProjectExplorer::Constants::BUILDSTEPS_BUILD;
stepLists << bc->stepList(clean) << bc->stepList(build); stepLists << bc->stepList(clean) << bc->stepList(build);
ProjectExplorer::BuildManager *bm = ProjectExplorerPlugin::instance()->buildManager(); BuildManager::buildLists(stepLists, QStringList() << ProjectExplorerPlugin::displayNameForStepId(clean)
bm->buildLists(stepLists, QStringList() << ProjectExplorerPlugin::displayNameForStepId(clean)
<< ProjectExplorerPlugin::displayNameForStepId(build)); << ProjectExplorerPlugin::displayNameForStepId(build));
} }
} }

View File

@@ -349,8 +349,7 @@ Qt4Project::Qt4Project(Qt4Manager *manager, const QString& fileName) :
m_asyncUpdateTimer.setInterval(3000); m_asyncUpdateTimer.setInterval(3000);
connect(&m_asyncUpdateTimer, SIGNAL(timeout()), this, SLOT(asyncUpdate())); connect(&m_asyncUpdateTimer, SIGNAL(timeout()), this, SLOT(asyncUpdate()));
connect(ProjectExplorerPlugin::instance()->buildManager(), connect(BuildManager::instance(), SIGNAL(buildQueueFinished(bool)),
SIGNAL(buildQueueFinished(bool)),
SLOT(buildFinished(bool))); SLOT(buildFinished(bool)));
} }

View File

@@ -108,11 +108,6 @@ ProjectExplorer::Project *Qt4Manager::openProject(const QString &fileName, QStri
return new Qt4Project(this, fileName); return new Qt4Project(this, fileName);
} }
ProjectExplorer::ProjectExplorerPlugin *Qt4Manager::projectExplorer() const
{
return ProjectExplorer::ProjectExplorerPlugin::instance();
}
ProjectExplorer::Node *Qt4Manager::contextNode() const ProjectExplorer::Node *Qt4Manager::contextNode() const
{ {
return m_contextNode; return m_contextNode;
@@ -222,7 +217,7 @@ void Qt4Manager::runQMake(ProjectExplorer::Project *p, ProjectExplorer::Node *no
if (Qt4ProFileNode *profile = qobject_cast<Qt4ProFileNode *>(node)) if (Qt4ProFileNode *profile = qobject_cast<Qt4ProFileNode *>(node))
bc->setSubNodeBuild(profile); bc->setSubNodeBuild(profile);
projectExplorer()->buildManager()->appendStep(qs, tr("QMake")); BuildManager::appendStep(qs, tr("QMake"));
bc->setSubNodeBuild(0); bc->setSubNodeBuild(0);
} }
@@ -287,23 +282,23 @@ void Qt4Manager::handleSubDirContextMenu(Qt4Manager::Action action, bool isFileB
if (isFileBuild) if (isFileBuild)
bc->setFileNodeBuild(contextFile); bc->setFileNodeBuild(contextFile);
if (projectExplorer()->saveModifiedFiles()) { if (ProjectExplorerPlugin::instance()->saveModifiedFiles()) {
const Core::Id buildStep = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD); const Core::Id buildStep = ProjectExplorer::Constants::BUILDSTEPS_BUILD;
const Core::Id cleanStep = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN); const Core::Id cleanStep = ProjectExplorer::Constants::BUILDSTEPS_CLEAN;
if (action == BUILD) { if (action == BUILD) {
const QString name = ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(buildStep); const QString name = ProjectExplorerPlugin::displayNameForStepId(buildStep);
projectExplorer()->buildManager()->buildList(bc->stepList(buildStep), name); BuildManager::buildList(bc->stepList(buildStep), name);
} else if (action == CLEAN) { } else if (action == CLEAN) {
const QString name = ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(cleanStep); const QString name = ProjectExplorerPlugin::displayNameForStepId(cleanStep);
projectExplorer()->buildManager()->buildList(bc->stepList(cleanStep), name); BuildManager::buildList(bc->stepList(cleanStep), name);
} else if (action == REBUILD) { } else if (action == REBUILD) {
QStringList names; QStringList names;
names << ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(cleanStep) names << ProjectExplorerPlugin::displayNameForStepId(cleanStep)
<< ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(buildStep); << ProjectExplorerPlugin::displayNameForStepId(buildStep);
QList<ProjectExplorer::BuildStepList *> stepLists; QList<ProjectExplorer::BuildStepList *> stepLists;
stepLists << bc->stepList(cleanStep) << bc->stepList(buildStep); stepLists << bc->stepList(cleanStep) << bc->stepList(buildStep);
projectExplorer()->buildManager()->buildLists(stepLists, names); BuildManager::buildLists(stepLists, names);
} }
} }

View File

@@ -40,7 +40,6 @@ namespace ExtensionSystem { class PluginManager; }
namespace ProjectExplorer { namespace ProjectExplorer {
class Project; class Project;
class ProjectExplorerPlugin;
class Node; class Node;
class ToolChain; class ToolChain;
} }
@@ -67,8 +66,6 @@ public:
void unregisterProject(Qt4Project *project); void unregisterProject(Qt4Project *project);
void notifyChanged(const QString &name); void notifyChanged(const QString &name);
ProjectExplorer::ProjectExplorerPlugin *projectExplorer() const;
virtual QString mimeType() const; virtual QString mimeType() const;
ProjectExplorer::Project *openProject(const QString &fileName, QString *errorString); ProjectExplorer::Project *openProject(const QString &fileName, QString *errorString);

View File

@@ -257,7 +257,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_BUILD); mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_BUILD);
connect(m_buildFileAction, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(buildFile())); 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*))); this, SLOT(buildStateChanged(ProjectExplorer::Project*)));
connect(SessionManager::instance(), SIGNAL(startupProjectChanged(ProjectExplorer::Project*)), connect(SessionManager::instance(), SIGNAL(startupProjectChanged(ProjectExplorer::Project*)),
this, SLOT(startupProjectChanged())); this, SLOT(startupProjectChanged()));
@@ -333,7 +333,7 @@ void Qt4ProjectManagerPlugin::activeTargetChanged()
void Qt4ProjectManagerPlugin::updateRunQMakeAction() void Qt4ProjectManagerPlugin::updateRunQMakeAction()
{ {
bool enable = true; bool enable = true;
if (m_projectExplorer->buildManager()->isBuilding(m_projectExplorer->currentProject())) if (BuildManager::isBuilding(m_projectExplorer->currentProject()))
enable = false; enable = false;
Qt4Project *pro = qobject_cast<Qt4Project *>(m_projectExplorer->currentProject()); Qt4Project *pro = qobject_cast<Qt4Project *>(m_projectExplorer->currentProject());
if (!pro if (!pro
@@ -374,7 +374,7 @@ void Qt4ProjectManagerPlugin::updateContextActions(ProjectExplorer::Node *node,
Qt4BuildConfiguration *buildConfiguration = (qt4Project && qt4Project->activeTarget()) ? Qt4BuildConfiguration *buildConfiguration = (qt4Project && qt4Project->activeTarget()) ?
static_cast<Qt4BuildConfiguration *>(qt4Project->activeTarget()->activeBuildConfiguration()) : 0; static_cast<Qt4BuildConfiguration *>(qt4Project->activeTarget()->activeBuildConfiguration()) : 0;
bool isProjectNode = qt4Project && proFileNode && buildConfiguration; bool isProjectNode = qt4Project && proFileNode && buildConfiguration;
bool isBuilding = m_projectExplorer->buildManager()->isBuilding(project); bool isBuilding = BuildManager::isBuilding(project);
bool enabled = subProjectActionsVisible && !isBuilding; bool enabled = subProjectActionsVisible && !isBuilding;
m_buildSubProjectAction->setVisible(subProjectActionsVisible); m_buildSubProjectAction->setVisible(subProjectActionsVisible);
@@ -424,7 +424,7 @@ void Qt4ProjectManagerPlugin::updateBuildFileAction()
&& node && node
&& qobject_cast<Qt4ProFileNode *>(node->projectNode()); && qobject_cast<Qt4ProFileNode *>(node->projectNode());
enabled = !m_projectExplorer->buildManager()->isBuilding(project); enabled = !BuildManager::isBuilding(project);
} }
m_buildFileAction->setVisible(visible); m_buildFileAction->setVisible(visible);
m_buildFileAction->setEnabled(enabled); m_buildFileAction->setEnabled(enabled);

View File

@@ -47,6 +47,7 @@
enum { debug = 0 }; enum { debug = 0 };
using namespace ProjectExplorer;
using namespace CPlusPlus; using namespace CPlusPlus;
// Test for form editor (loosely coupled) // Test for form editor (loosely coupled)
@@ -310,11 +311,9 @@ UiCodeModelManager::UiCodeModelManager() :
m_dirty(false) m_dirty(false)
{ {
m_instance = this; m_instance = this;
ProjectExplorer::BuildManager *bm connect(BuildManager::instance(), SIGNAL(buildStateChanged(ProjectExplorer::Project*)),
= ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager();
connect(bm, SIGNAL(buildStateChanged(ProjectExplorer::Project*)),
this, SLOT(buildStateHasChanged(ProjectExplorer::Project*))); this, SLOT(buildStateHasChanged(ProjectExplorer::Project*)));
connect(ProjectExplorer::SessionManager::instance(), connect(SessionManager::instance(),
SIGNAL(projectRemoved(ProjectExplorer::Project*)), SIGNAL(projectRemoved(ProjectExplorer::Project*)),
this, SLOT(projectWasRemoved(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) 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(); for (i = m_instance->m_projectUiSupport.begin();
i != m_instance->m_projectUiSupport.end(); ++i) { i != m_instance->m_projectUiSupport.end(); ++i) {
foreach (UiCodeModelSupport *support, i.value()) { 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; return;
QList<UiCodeModelSupport *> projectSupport = m_projectUiSupport.value(project); QList<UiCodeModelSupport *> projectSupport = m_projectUiSupport.value(project);
@@ -390,7 +389,7 @@ void UiCodeModelManager::buildStateHasChanged(ProjectExplorer::Project *project)
i->updateFromBuild(); i->updateFromBuild();
} }
void UiCodeModelManager::projectWasRemoved(ProjectExplorer::Project *project) void UiCodeModelManager::projectWasRemoved(Project *project)
{ {
CppTools::CppModelManagerInterface *mm = CppTools::CppModelManagerInterface::instance(); CppTools::CppModelManagerInterface *mm = CppTools::CppModelManagerInterface::instance();