Kits: Fix editing of sysroot and mkspec

Task-number: QTCREATORBUG-8586

Change-Id: I074d7e85524e4dccef26c46391892477269648ce
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
Tobias Hunger
2013-01-21 15:44:59 +01:00
parent 47c3037c3d
commit 4d775ac56a
4 changed files with 14 additions and 4 deletions

View File

@@ -56,7 +56,8 @@ namespace Internal {
SysRootInformationConfigWidget::SysRootInformationConfigWidget(Kit *k, QWidget *parent) : SysRootInformationConfigWidget::SysRootInformationConfigWidget(Kit *k, QWidget *parent) :
KitConfigWidget(parent), KitConfigWidget(parent),
m_kit(k) m_kit(k),
m_ignoreChange(false)
{ {
setToolTip(tr("The root directory of the system image to use.<br>" setToolTip(tr("The root directory of the system image to use.<br>"
"Leave empty when building for the desktop.")); "Leave empty when building for the desktop."));
@@ -79,6 +80,7 @@ QString SysRootInformationConfigWidget::displayName() const
void SysRootInformationConfigWidget::refresh() void SysRootInformationConfigWidget::refresh()
{ {
if (!m_ignoreChange)
m_chooser->setFileName(SysRootKitInformation::sysRoot(m_kit)); m_chooser->setFileName(SysRootKitInformation::sysRoot(m_kit));
} }
@@ -94,7 +96,9 @@ QWidget *SysRootInformationConfigWidget::buttonWidget() const
void SysRootInformationConfigWidget::pathWasChanged() void SysRootInformationConfigWidget::pathWasChanged()
{ {
m_ignoreChange = true;
SysRootKitInformation::setSysRoot(m_kit, m_chooser->fileName()); SysRootKitInformation::setSysRoot(m_kit, m_chooser->fileName());
m_ignoreChange = false;
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------

View File

@@ -71,6 +71,7 @@ private slots:
private: private:
Kit *m_kit; Kit *m_kit;
Utils::PathChooser *m_chooser; Utils::PathChooser *m_chooser;
bool m_ignoreChange;
}; };
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------

View File

@@ -44,7 +44,8 @@ namespace Internal {
QmakeKitConfigWidget::QmakeKitConfigWidget(ProjectExplorer::Kit *k, QWidget *parent) : QmakeKitConfigWidget::QmakeKitConfigWidget(ProjectExplorer::Kit *k, QWidget *parent) :
ProjectExplorer::KitConfigWidget(parent), ProjectExplorer::KitConfigWidget(parent),
m_kit(k), 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.<br>" setToolTip(tr("The mkspec to use when building the project with qmake.<br>"
"This setting is ignored when using other build systems.")); "This setting is ignored when using other build systems."));
@@ -70,12 +71,15 @@ void QmakeKitConfigWidget::makeReadOnly()
void QmakeKitConfigWidget::refresh() 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) void QmakeKitConfigWidget::mkspecWasChanged(const QString &text)
{ {
m_ignoreChange = true;
QmakeKitInformation::setMkspec(m_kit, Utils::FileName::fromString(text)); QmakeKitInformation::setMkspec(m_kit, Utils::FileName::fromString(text));
m_ignoreChange = false;
} }
} // namespace Internal } // namespace Internal

View File

@@ -62,6 +62,7 @@ private:
ProjectExplorer::Kit *m_kit; ProjectExplorer::Kit *m_kit;
QLineEdit *m_lineEdit; QLineEdit *m_lineEdit;
bool m_ignoreChange;
}; };
} // namespace Internal } // namespace Internal