diff options
author | Daniel Teske <daniel.teske@nokia.com> | 2012-01-23 12:26:59 +0100 |
---|---|---|
committer | Daniel Teske <daniel.teske@nokia.com> | 2012-01-24 14:21:22 +0100 |
commit | 951b1120d603892b910b90b4d375d58b39354703 (patch) | |
tree | cd634c0cd9a07dead19bd7ceef6197aa01da7f2f /src/plugins/projectexplorer/customwizard/customwizardpage.cpp | |
parent | 50b1d6742ae58cb65cc6322d3a91b04f81f1f2bb (diff) | |
download | qt-creator-951b1120d603892b910b90b4d375d58b39354703.tar.gz |
Preserve user changes in custom wizard on back
Task-number: QTCREATORBUG-6774
Change-Id: I7c06f794f04b6e019a7d8b65d810096a1d9ebf82
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src/plugins/projectexplorer/customwizard/customwizardpage.cpp')
-rw-r--r-- | src/plugins/projectexplorer/customwizard/customwizardpage.cpp | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/plugins/projectexplorer/customwizard/customwizardpage.cpp b/src/plugins/projectexplorer/customwizard/customwizardpage.cpp index 9b37c3950e..725bf4375c 100644 --- a/src/plugins/projectexplorer/customwizard/customwizardpage.cpp +++ b/src/plugins/projectexplorer/customwizard/customwizardpage.cpp @@ -356,18 +356,19 @@ void CustomWizardFieldPage::initializePage() { QWizardPage::initializePage(); clearError(); - // Note that the field mechanism will always restore the value - // set on it when entering the page, so, there is no point in - // trying to preserve user modifications of the text. foreach(const LineEditData &led, m_lineEdits) { - if (!led.defaultText.isEmpty()) { + if (!led.userChange.isNull()) { + led.lineEdit->setText(led.userChange); + } else if (!led.defaultText.isEmpty()) { QString defaultText = led.defaultText; CustomWizardContext::replaceFields(m_context->baseReplacements, &defaultText); led.lineEdit->setText(defaultText); } } foreach(const TextEditData &ted, m_textEdits) { - if (!ted.defaultText.isEmpty()) { + if (!ted.userChange.isNull()) { + ted.textEdit->setText(ted.userChange); + } else if (!ted.defaultText.isEmpty()) { QString defaultText = ted.defaultText; CustomWizardContext::replaceFields(m_context->baseReplacements, &defaultText); ted.textEdit->setText(defaultText); @@ -375,6 +376,30 @@ void CustomWizardFieldPage::initializePage() } } +void CustomWizardFieldPage::cleanupPage() +{ + for (int i = 0; i < m_lineEdits.count(); ++i) { + LineEditData &led = m_lineEdits[i]; + QString defaultText = led.defaultText; + CustomWizardContext::replaceFields(m_context->baseReplacements, &defaultText); + if (led.lineEdit->text() != defaultText) + led.userChange = led.lineEdit->text(); + else + led.userChange.clear(); + + } + for (int i= 0; i < m_textEdits.count(); ++i) { + TextEditData &ted = m_textEdits[i]; + QString defaultText = ted.defaultText; + CustomWizardContext::replaceFields(m_context->baseReplacements, &defaultText); + if (ted.textEdit->toHtml() != ted.defaultText && ted.textEdit->toPlainText() != ted.defaultText) + ted.userChange = ted.textEdit->toHtml(); + else + ted.userChange.clear(); + } + QWizardPage::cleanupPage(); +} + bool CustomWizardFieldPage::validatePage() { clearError(); |