From 97929c440fdf9f3872b6b89e1172ee3b2911bc97 Mon Sep 17 00:00:00 2001 From: dt Date: Tue, 8 Dec 2009 14:41:56 +0100 Subject: [PATCH] Ensure that the environment widget is updated correctly --- .../cmakebuildenvironmentwidget.cpp | 12 ++++++++++++ .../cmakebuildenvironmentwidget.h | 1 + .../qt4projectmanager/qt4buildconfiguration.cpp | 3 +++ .../qt4projectmanager/qt4buildenvironmentwidget.cpp | 13 +++++++++++++ .../qt4projectmanager/qt4buildenvironmentwidget.h | 1 + 5 files changed, 30 insertions(+) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp b/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp index 69188181bb6..5731cc021e9 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp @@ -68,6 +68,13 @@ void CMakeBuildEnvironmentWidget::init(ProjectExplorer::BuildConfiguration *bc) if (debug) qDebug() << "Qt4BuildConfigWidget::init()"; + if (m_buildConfiguration) { + disconnect(m_buildConfiguration, SIGNAL(environmentChanged()), + this, SLOT(environmentChanged())); + } + connect(m_buildConfiguration, SIGNAL(environmentChanged()), + this, SLOT(environmentChanged())); + m_buildConfiguration = static_cast(bc); m_clearSystemEnvironmentCheckBox->setChecked(!m_buildConfiguration->useSystemEnvironment()); @@ -86,3 +93,8 @@ void CMakeBuildEnvironmentWidget::clearSystemEnvironmentCheckBoxClicked(bool che m_buildConfiguration->setUseSystemEnvironment(!checked); m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment()); } + +void CMakeBuildEnvironmentWidget::environmentChanged() +{ + m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment()); +} diff --git a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.h b/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.h index 3f5103a194c..b039c0bad55 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.h @@ -57,6 +57,7 @@ public: private slots: void environmentModelUserChangesChanged(); void clearSystemEnvironmentCheckBoxClicked(bool checked); + void environmentChanged(); private: ProjectExplorer::EnvironmentWidget *m_buildEnvironmentWidget; diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index aa9c85bbfa8..4a57267f07f 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -242,6 +242,7 @@ void Qt4BuildConfiguration::setQtVersion(int id) setValue(KEY_QT_VERSION_ID, id); emit qtVersionChanged(); emit targetInformationChanged(); + emit environmentChanged(); } void Qt4BuildConfiguration::setToolChainType(ProjectExplorer::ToolChain::ToolChainType type) @@ -251,6 +252,7 @@ void Qt4BuildConfiguration::setToolChainType(ProjectExplorer::ToolChain::ToolCha setValue("ToolChain", (int)type); emit toolChainTypeChanged(); emit targetInformationChanged(); + emit environmentChanged(); } ProjectExplorer::ToolChain::ToolChainType Qt4BuildConfiguration::toolChainType() const @@ -322,6 +324,7 @@ void Qt4BuildConfiguration::defaultQtVersionChanged() if (qtVersionId() == 0) { emit qtVersionChanged(); emit targetInformationChanged(); + emit environmentChanged(); } } diff --git a/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp b/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp index 4887dd21af8..59cef31c517 100644 --- a/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp +++ b/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp @@ -71,7 +71,15 @@ void Qt4BuildEnvironmentWidget::init(ProjectExplorer::BuildConfiguration *bc) if (debug) qDebug() << "Qt4BuildConfigWidget::init()"; + if (m_buildConfiguration) { + disconnect(this, SIGNAL(environmentChanged()), + this, SLOT(environmentChanged())); + } + m_buildConfiguration = static_cast(bc); + connect(m_buildConfiguration, SIGNAL(environmentChanged()), + this, SLOT(environmentChanged())); + m_clearSystemEnvironmentCheckBox->setChecked(!m_buildConfiguration->useSystemEnvironment()); m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment()); m_buildEnvironmentWidget->setUserChanges(m_buildConfiguration->userEnvironmentChanges()); @@ -88,3 +96,8 @@ void Qt4BuildEnvironmentWidget::clearSystemEnvironmentCheckBoxClicked(bool check m_buildConfiguration->setUseSystemEnvironment(!checked); m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment()); } + +void Qt4BuildEnvironmentWidget::environmentChanged() +{ + m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment()); +} diff --git a/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.h b/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.h index 304649c0449..e519aa9acea 100644 --- a/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.h +++ b/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.h @@ -60,6 +60,7 @@ public: private slots: void environmentModelUserChangesUpdated(); void clearSystemEnvironmentCheckBoxClicked(bool checked); + void environmentChanged(); private: ProjectExplorer::EnvironmentWidget *m_buildEnvironmentWidget;