diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp index 9b9bd549277..14f7e45e8eb 100644 --- a/src/plugins/cmakeprojectmanager/makestep.cpp +++ b/src/plugins/cmakeprojectmanager/makestep.cpp @@ -175,6 +175,8 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) } connect(m_targetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*))); + connect(ProjectExplorer::ProjectExplorerPlugin::instance(), SIGNAL(settingsChanged()), + this, SLOT(updateDetails())); } void MakeStepConfigWidget::additionalArgumentsEdited() diff --git a/src/plugins/cmakeprojectmanager/makestep.h b/src/plugins/cmakeprojectmanager/makestep.h index f5b7a5ee288..90cd0f16964 100644 --- a/src/plugins/cmakeprojectmanager/makestep.h +++ b/src/plugins/cmakeprojectmanager/makestep.h @@ -82,8 +82,8 @@ public: private slots: void itemChanged(QListWidgetItem*); void additionalArgumentsEdited(); -private: void updateDetails(); +private: QString m_buildConfiguration; MakeStep *m_makeStep; QListWidget *m_targetsList; diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp index 95cd2ed7e29..b84bab7c145 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.cpp +++ b/src/plugins/genericprojectmanager/genericmakestep.cpp @@ -169,6 +169,11 @@ GenericMakeStepConfigWidget::GenericMakeStepConfigWidget(GenericMakeStep *makeSt this, SLOT(makeLineEditTextEdited())); connect(m_ui->makeArgumentsLineEdit, SIGNAL(textEdited(QString)), this, SLOT(makeArgumentsLineEditTextEdited())); + + connect(ProjectExplorer::ProjectExplorerPlugin::instance(), SIGNAL(settingsChanged()), + this, SLOT(updateMakeOverrrideLabel())); + connect(ProjectExplorer::ProjectExplorerPlugin::instance(), SIGNAL(settingsChanged()), + this, SLOT(updateDetails())); } QString GenericMakeStepConfigWidget::displayName() const @@ -176,12 +181,17 @@ QString GenericMakeStepConfigWidget::displayName() const return "Make"; } +// TODO: Label should update when tool chain is changed +void GenericMakeStepConfigWidget::updateMakeOverrrideLabel() +{ + m_ui->makeLabel->setText(tr("Override %1:").arg(m_makeStep->makeCommand(m_buildConfiguration))); +} + void GenericMakeStepConfigWidget::init(const QString &buildConfiguration) { m_buildConfiguration = buildConfiguration; - // TODO: Label should update when tool chain is changed - m_ui->makeLabel->setText(tr("Override %1:").arg(m_makeStep->makeCommand(buildConfiguration))); + updateMakeOverrrideLabel(); QString makeCommand = m_makeStep->value(buildConfiguration, "makeCommand").toString(); m_ui->makeLineEdit->setText(makeCommand); diff --git a/src/plugins/genericprojectmanager/genericmakestep.h b/src/plugins/genericprojectmanager/genericmakestep.h index a9cd9c067d6..28446092e43 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.h +++ b/src/plugins/genericprojectmanager/genericmakestep.h @@ -80,6 +80,7 @@ private slots: void itemChanged(QListWidgetItem*); void makeLineEditTextEdited(); void makeArgumentsLineEditTextEdited(); + void updateMakeOverrrideLabel(); private: void updateDetails(); QString m_buildConfiguration; diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 223be8d2153..b671466b1f5 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1989,7 +1989,10 @@ void ProjectExplorerPlugin::setSession(QAction *action) void ProjectExplorerPlugin::setProjectExplorerSettings(const Internal::ProjectExplorerSettings &pes) { + if (m_projectExplorerSettings == pes) + return; m_projectExplorerSettings = pes; + emit settingsChanged(); } Internal::ProjectExplorerSettings ProjectExplorerPlugin::projectExplorerSettings() const diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h index da163b19c73..10d60a7b520 100644 --- a/src/plugins/projectexplorer/projectexplorer.h +++ b/src/plugins/projectexplorer/projectexplorer.h @@ -81,6 +81,12 @@ struct ProjectExplorerSettings bool saveBeforeBuild; bool showCompilerOutput; bool useJom; + bool operator==(const ProjectExplorerSettings &other) { + return this->buildBeforeRun == other.buildBeforeRun + && this->saveBeforeBuild == other.saveBeforeBuild + && this->showCompilerOutput == other.showCompilerOutput + && this->useJom == other.useJom; + } }; } // namespace Internal @@ -136,6 +142,8 @@ signals: void currentNodeChanged(ProjectExplorer::Node *node, ProjectExplorer::Project *project); void aboutToExecuteProject(ProjectExplorer::Project *project); + void settingsChanged(); + private slots: void buildStateChanged(ProjectExplorer::Project * pro); void buildQueueFinished(bool success); diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp index 5c1d3bc2908..6b7aeb03ac0 100644 --- a/src/plugins/qt4projectmanager/makestep.cpp +++ b/src/plugins/qt4projectmanager/makestep.cpp @@ -174,9 +174,18 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) connect(makeStep, SIGNAL(changed()), this, SLOT(update())); + connect(ProjectExplorer::ProjectExplorerPlugin::instance(), SIGNAL(settingsChanged()), + this, SLOT(updateMakeOverrideLabel())); + connect(ProjectExplorer::ProjectExplorerPlugin::instance(), SIGNAL(settingsChanged()), + this, SLOT(updateSummary())); } -void MakeStepConfigWidget::updateTitle() +void MakeStepConfigWidget::updateMakeOverrideLabel() +{ + m_ui.makeLabel->setText(tr("Override %1:").arg(static_cast(m_makeStep->project())->makeCommand(m_buildConfiguration))); +} + +void MakeStepConfigWidget::updateSummary() { // TODO reduce heavy code duplication QString workingDirectory; @@ -244,7 +253,7 @@ void MakeStepConfigWidget::init(const QString &buildConfiguration) m_makeStep->setValue(buildConfiguration, "makeargs", QStringList() << "clean"); } - m_ui.makeLabel->setText(tr("Override %1:").arg(pro->makeCommand(buildConfiguration))); + updateMakeOverrideLabel(); const QString &makeCmd = m_makeStep->value(buildConfiguration, "makeCmd").toString(); m_ui.makeLineEdit->setText(makeCmd); @@ -252,14 +261,14 @@ void MakeStepConfigWidget::init(const QString &buildConfiguration) const QStringList &makeArguments = m_makeStep->value(buildConfiguration, "makeargs").toStringList(); m_ui.makeArgumentsLineEdit->setText(ProjectExplorer::Environment::joinArgumentList(makeArguments)); - updateTitle(); + updateSummary(); } void MakeStepConfigWidget::makeLineEditTextEdited() { Q_ASSERT(!m_buildConfiguration.isNull()); m_makeStep->setValue(m_buildConfiguration, "makeCmd", m_ui.makeLineEdit->text()); - updateTitle(); + updateSummary(); } void MakeStepConfigWidget::makeArgumentsLineEditTextEdited() @@ -267,7 +276,7 @@ void MakeStepConfigWidget::makeArgumentsLineEditTextEdited() Q_ASSERT(!m_buildConfiguration.isNull()); m_makeStep->setValue(m_buildConfiguration, "makeargs", ProjectExplorer::Environment::parseCombinedArgString(m_ui.makeArgumentsLineEdit->text())); - updateTitle(); + updateSummary(); } /// diff --git a/src/plugins/qt4projectmanager/makestep.h b/src/plugins/qt4projectmanager/makestep.h index 039b0ef2abc..914bf659f1e 100644 --- a/src/plugins/qt4projectmanager/makestep.h +++ b/src/plugins/qt4projectmanager/makestep.h @@ -91,8 +91,9 @@ private slots: void makeLineEditTextEdited(); void makeArgumentsLineEditTextEdited(); void update(); + void updateMakeOverrideLabel(); + void updateSummary(); private: - void updateTitle(); QString m_buildConfiguration; Ui::MakeStep m_ui; MakeStep *m_makeStep; diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 5c86ca03327..0181e2da1d1 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -178,7 +178,6 @@ bool QMakeStep::immutable() const return false; } - void QMakeStep::processStartupFailed() { m_forced = true;