diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp index 910723304894e2b696989def213387d641a05657..b804b9aced7f423b3370e709e6d409d407c0e9f1 100644 --- a/src/plugins/projectexplorer/gcctoolchain.cpp +++ b/src/plugins/projectexplorer/gcctoolchain.cpp @@ -626,6 +626,13 @@ bool Internal::GccToolChainConfigWidget::isDirty() const || m_abiList.at(m_abiComboBox->currentIndex()) != tc->targetAbi(); } +void Internal::GccToolChainConfigWidget::makeReadOnly() +{ + m_compilerPath->setEnabled(false); + m_abiComboBox->setEnabled(false); + ToolChainConfigWidget::makeReadOnly(); +} + void Internal::GccToolChainConfigWidget::handlePathChange() { QString path = m_compilerPath->path(); diff --git a/src/plugins/projectexplorer/gcctoolchainfactories.h b/src/plugins/projectexplorer/gcctoolchainfactories.h index 5ee603d2dd3f647ef0f4287ac5d38ea7eb1f4108..bed6fefeedba9f1de7ee97a430a0e5f6a2247af7 100644 --- a/src/plugins/projectexplorer/gcctoolchainfactories.h +++ b/src/plugins/projectexplorer/gcctoolchainfactories.h @@ -91,6 +91,7 @@ public: void apply(); void discard() { setFromToolchain(); } bool isDirty() const; + void makeReadOnly(); private slots: void handlePathChange(); diff --git a/src/plugins/projectexplorer/toolchainconfigwidget.cpp b/src/plugins/projectexplorer/toolchainconfigwidget.cpp index 7efa4bb69ab36cf0d670c94c672b13bbe094d551..1285e7fdec14fbdfa53bbff834f00cb4915d5722 100644 --- a/src/plugins/projectexplorer/toolchainconfigwidget.cpp +++ b/src/plugins/projectexplorer/toolchainconfigwidget.cpp @@ -83,6 +83,12 @@ ToolChain *ToolChainConfigWidget::toolChain() const return m_d->m_toolChain; } +void ToolChainConfigWidget::makeReadOnly() +{ + if (m_d->m_debuggerPathChooser) + m_d->m_debuggerPathChooser->setEnabled(false); +} + void ToolChainConfigWidget::emitDirty() { emit dirty(toolChain()); diff --git a/src/plugins/projectexplorer/toolchainconfigwidget.h b/src/plugins/projectexplorer/toolchainconfigwidget.h index c4dd1ba2d83517ff09878927992fa41550356734..4945fd2458425702a5d5b0a154bace346a1b32da 100644 --- a/src/plugins/projectexplorer/toolchainconfigwidget.h +++ b/src/plugins/projectexplorer/toolchainconfigwidget.h @@ -68,6 +68,8 @@ public: virtual bool isDirty() const = 0; + virtual void makeReadOnly(); + signals: void dirty(ProjectExplorer::ToolChain *); diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp index 5b755283b07a0cbe1476839f3f3d82c2d265f024..65a5a26376b497c84289b2405f830798a09c9c87 100644 --- a/src/plugins/projectexplorer/toolchainoptionspage.cpp +++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp @@ -63,7 +63,8 @@ public: p->childNodes.append(this); widget = tc ? tc->configurationWidget() : 0; if (widget) { - widget->setEnabled(tc ? !tc->isAutoDetected() : false); + if (tc && tc->isAutoDetected()) + widget->makeReadOnly(); widget->setVisible(false); } } diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp index a29485bbcb40051a197c1294f4a8f85567d761aa..aa9c4e86c2a2e00ee28d0609b04a8fcafbd6ac6f 100644 --- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp @@ -421,6 +421,14 @@ bool RvctToolChainConfigWidget::isDirty() const || tc->debuggerCommand() != debuggerCommand(); } +void RvctToolChainConfigWidget::makeReadOnly() +{ + m_ui->versionComboBox->setEnabled(false); + m_ui->compilerPath->setEnabled(false); + m_ui->environmentView->setEditTriggers(QAbstractItemView::NoEditTriggers); + ProjectExplorer::ToolChainConfigWidget::makeReadOnly(); +} + QList<Utils::EnvironmentItem> RvctToolChainConfigWidget::environmentChanges() const { Utils::Environment baseEnv; diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h index 40efbac9a40bac7facbe843e11dc62e55d3ed3bf..d8c3acb2ccca346c979031f217d48431eca357c6 100644 --- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h +++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h @@ -147,6 +147,7 @@ public: void apply(); void discard() { setFromToolChain(); } bool isDirty() const; + void makeReadOnly(); private: void setFromToolChain();