From 85f10dcaaa2ddeddffb9d6dc1ba98139f4c2c935 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 16 Mar 2015 15:40:49 +0100 Subject: [PATCH] ToolChains: Fix enabling the toolchain combobox in the Kits page Change-Id: I96b44e2febf070f4eea4a5b5878382dd8b374564 Reviewed-by: Daniel Teske --- .../kitinformationconfigwidget.cpp | 27 +++++++------------ .../kitinformationconfigwidget.h | 2 +- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp index 52f35255e51..1aaa02a0672 100644 --- a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp @@ -127,10 +127,10 @@ void SysRootInformationConfigWidget::pathWasChanged() ToolChainInformationConfigWidget::ToolChainInformationConfigWidget(Kit *k, const KitInformation *ki) : KitConfigWidget(k, ki), - m_ignoreChanges(false) + m_ignoreChanges(false), + m_isReadOnly(false) { m_comboBox = new QComboBox; - m_comboBox->setEnabled(false); m_comboBox->setToolTip(toolTip()); refresh(); @@ -166,7 +166,12 @@ void ToolChainInformationConfigWidget::refresh() foreach (ToolChain *tc, ToolChainManager::toolChains()) m_comboBox->addItem(tc->displayName(), tc->id()); - m_comboBox->setEnabled(m_comboBox->count() > 1); + if (m_comboBox->count() == 0) { + m_comboBox->addItem(tr(""), QString()); + m_comboBox->setEnabled(false); + } else { + m_comboBox->setEnabled(m_comboBox->count() > 1 && !m_isReadOnly); + } m_comboBox->setCurrentIndex(indexOf(ToolChainKitInformation::toolChain(m_kit))); m_ignoreChanges = false; @@ -174,6 +179,7 @@ void ToolChainInformationConfigWidget::refresh() void ToolChainInformationConfigWidget::makeReadOnly() { + m_isReadOnly = true; m_comboBox->setEnabled(false); } @@ -201,21 +207,6 @@ void ToolChainInformationConfigWidget::currentToolChainChanged(int idx) ToolChainKitInformation::setToolChain(m_kit, ToolChainManager::findToolChain(id)); } -void ToolChainInformationConfigWidget::updateComboBox() -{ - // remove unavailable tool chain: - int pos = indexOf(0); - if (pos >= 0) - m_comboBox->removeItem(pos); - - if (m_comboBox->count() == 0) { - m_comboBox->addItem(tr(""), QString()); - m_comboBox->setEnabled(false); - } else { - m_comboBox->setEnabled(true); - } -} - int ToolChainInformationConfigWidget::indexOf(const ToolChain *tc) { const QString id = tc ? tc->id() : QString(); diff --git a/src/plugins/projectexplorer/kitinformationconfigwidget.h b/src/plugins/projectexplorer/kitinformationconfigwidget.h index 40b47152f5c..d9a055be7d1 100644 --- a/src/plugins/projectexplorer/kitinformationconfigwidget.h +++ b/src/plugins/projectexplorer/kitinformationconfigwidget.h @@ -104,12 +104,12 @@ private slots: void currentToolChainChanged(int idx); private: - void updateComboBox(); int indexOf(const ToolChain *tc); QComboBox *m_comboBox; QPushButton *m_manageButton; bool m_ignoreChanges; + bool m_isReadOnly; }; // --------------------------------------------------------------------------