From 4d775ac56ac554b85c133d9eff5751d006c6171b Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 21 Jan 2013 15:44:59 +0100 Subject: Kits: Fix editing of sysroot and mkspec Task-number: QTCREATORBUG-8586 Change-Id: I074d7e85524e4dccef26c46391892477269648ce Reviewed-by: Daniel Teske --- src/plugins/projectexplorer/kitinformationconfigwidget.cpp | 8 ++++++-- src/plugins/projectexplorer/kitinformationconfigwidget.h | 1 + src/plugins/qt4projectmanager/qmakekitconfigwidget.cpp | 8 ++++++-- src/plugins/qt4projectmanager/qmakekitconfigwidget.h | 1 + 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp index 78e3927689..6908c013d0 100644 --- a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp @@ -56,7 +56,8 @@ namespace Internal { SysRootInformationConfigWidget::SysRootInformationConfigWidget(Kit *k, QWidget *parent) : KitConfigWidget(parent), - m_kit(k) + m_kit(k), + m_ignoreChange(false) { setToolTip(tr("The root directory of the system image to use.
" "Leave empty when building for the desktop.")); @@ -79,7 +80,8 @@ QString SysRootInformationConfigWidget::displayName() const void SysRootInformationConfigWidget::refresh() { - m_chooser->setFileName(SysRootKitInformation::sysRoot(m_kit)); + if (!m_ignoreChange) + m_chooser->setFileName(SysRootKitInformation::sysRoot(m_kit)); } void SysRootInformationConfigWidget::makeReadOnly() @@ -94,7 +96,9 @@ QWidget *SysRootInformationConfigWidget::buttonWidget() const void SysRootInformationConfigWidget::pathWasChanged() { + m_ignoreChange = true; SysRootKitInformation::setSysRoot(m_kit, m_chooser->fileName()); + m_ignoreChange = false; } // -------------------------------------------------------------------------- diff --git a/src/plugins/projectexplorer/kitinformationconfigwidget.h b/src/plugins/projectexplorer/kitinformationconfigwidget.h index 2f3aaf1dd0..54f02accda 100644 --- a/src/plugins/projectexplorer/kitinformationconfigwidget.h +++ b/src/plugins/projectexplorer/kitinformationconfigwidget.h @@ -71,6 +71,7 @@ private slots: private: Kit *m_kit; Utils::PathChooser *m_chooser; + bool m_ignoreChange; }; // -------------------------------------------------------------------------- diff --git a/src/plugins/qt4projectmanager/qmakekitconfigwidget.cpp b/src/plugins/qt4projectmanager/qmakekitconfigwidget.cpp index d5546f90b1..95f7e2ec5a 100644 --- a/src/plugins/qt4projectmanager/qmakekitconfigwidget.cpp +++ b/src/plugins/qt4projectmanager/qmakekitconfigwidget.cpp @@ -44,7 +44,8 @@ namespace Internal { QmakeKitConfigWidget::QmakeKitConfigWidget(ProjectExplorer::Kit *k, QWidget *parent) : ProjectExplorer::KitConfigWidget(parent), m_kit(k), - m_lineEdit(new QLineEdit) + m_lineEdit(new QLineEdit), + m_ignoreChange(false) { setToolTip(tr("The mkspec to use when building the project with qmake.
" "This setting is ignored when using other build systems.")); @@ -70,12 +71,15 @@ void QmakeKitConfigWidget::makeReadOnly() void QmakeKitConfigWidget::refresh() { - m_lineEdit->setText(QmakeKitInformation::mkspec(m_kit).toString()); + if (!m_ignoreChange) + m_lineEdit->setText(QmakeKitInformation::mkspec(m_kit).toUserOutput()); } void QmakeKitConfigWidget::mkspecWasChanged(const QString &text) { + m_ignoreChange = true; QmakeKitInformation::setMkspec(m_kit, Utils::FileName::fromString(text)); + m_ignoreChange = false; } } // namespace Internal diff --git a/src/plugins/qt4projectmanager/qmakekitconfigwidget.h b/src/plugins/qt4projectmanager/qmakekitconfigwidget.h index 0f2f9227e3..b9d6b5f2ed 100644 --- a/src/plugins/qt4projectmanager/qmakekitconfigwidget.h +++ b/src/plugins/qt4projectmanager/qmakekitconfigwidget.h @@ -62,6 +62,7 @@ private: ProjectExplorer::Kit *m_kit; QLineEdit *m_lineEdit; + bool m_ignoreChange; }; } // namespace Internal -- cgit v1.2.3