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) :
KitConfigWidget(parent),
m_kit(k)
m_kit(k),
m_ignoreChange(false)
{
setToolTip(tr("The root directory of the system image to use.<br>"
"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;
}
// --------------------------------------------------------------------------

View File

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

View File

@@ -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.<br>"
"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

View File

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