From ec14d436f69d595fc1801e98496df26c896971f1 Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Wed, 10 Jun 2009 19:30:27 +0200
Subject: [PATCH] Re-index when tool chain is changed.

---
 .../qt4projectmanager/qt-s60/qt-s60-todo.txt      |  5 ++---
 .../qt4projectmanager/qt4projectconfigwidget.cpp  | 15 ++++++++++++---
 .../qt4projectmanager/qt4projectconfigwidget.h    |  1 +
 3 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt b/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt
index 7cb88473620..846f57c86dd 100644
--- a/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt
+++ b/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt
@@ -5,7 +5,6 @@
     * Qt auto-detection fails if no winscw-udeb Qt libs are installed
 
 * QtVersion:
-    * support the different tool chains
     * gui for overriding the default make target if necessary,
       make arguments --> make options
     * more general "debug / release" configuration to be used in toolchain???
@@ -15,8 +14,8 @@
       of ToolChain::defaultMakeTarget then as well
     * build parser should be defined/created by toolchain, not make step
 
-* Tool chains:
-    * changing tool chain does not reindex (changed includes+defines)
+* Debugging helpers
+    * must probably be compiled for different toolchains
 
 * WINSCW tool chain:
     * predefined macros
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
index 2fa595dd3db..7e75e1ae0f3 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
@@ -274,8 +274,8 @@ void Qt4ProjectConfigWidget::qtVersionComboBoxCurrentIndexChanged(const QString
     m_ui->invalidQtWarningLabel->setVisible(!isValid);
     if (newQtVersion != m_pro->qtVersionId(m_buildConfiguration)) {
         m_pro->setQtVersion(m_buildConfiguration, newQtVersion);
-        m_pro->update();
         updateToolChainCombo();
+        m_pro->update();
     }
 }
 
@@ -311,13 +311,22 @@ void Qt4ProjectConfigWidget::updateToolChainCombo()
         }
     }
     m_ui->toolChainComboBox->setEnabled(toolchains.size() > 1);
-    selectToolChain(toolchains.indexOf(m_pro->toolChainType(m_buildConfiguration)));
+    setToolChain(toolchains.indexOf(m_pro->toolChainType(m_buildConfiguration)));
 }
 
 void Qt4ProjectConfigWidget::selectToolChain(int index)
 {
+    setToolChain(index);
+    m_pro->update();
+}
+
+void Qt4ProjectConfigWidget::setToolChain(int index)
+{
+    ProjectExplorer::ToolChain::ToolChainType selectedToolChainType =
+        m_ui->toolChainComboBox->itemData(index,
+            Qt::UserRole).value<ProjectExplorer::ToolChain::ToolChainType>();
     m_pro->setToolChainType(m_buildConfiguration, m_ui->toolChainComboBox->itemData(index,
-        Qt::UserRole).value<ProjectExplorer::ToolChain::ToolChainType>());
+            Qt::UserRole).value<ProjectExplorer::ToolChain::ToolChainType>());
     if (m_ui->toolChainComboBox->currentIndex() != index)
         m_ui->toolChainComboBox->setCurrentIndex(index);
 }
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.h b/src/plugins/qt4projectmanager/qt4projectconfigwidget.h
index c9864049418..a892299c1af 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.h
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.h
@@ -66,6 +66,7 @@ private slots:
 private:
     void updateToolChainCombo();
     void updateImportLabel();
+    void setToolChain(int index);
     Ui::Qt4ProjectConfigWidget *m_ui;
     Qt4Project *m_pro;
     QString m_buildConfiguration;
-- 
GitLab