From cec8f23879da3c458be0da5719b9eed091e6a1c8 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 16 May 2012 12:19:47 +0200 Subject: Custom wizard: Respect defaultText for Utils::PathChooser Essentially the same code as for TextEdits and LineEdits Change-Id: Id4812882258385d35bc5939ecba7433109ec6d2a Reviewed-by: Friedemann Kleint Reviewed-by: Titta Heikkala --- .../customwizard/customwizardpage.cpp | 27 +++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'src/plugins/projectexplorer/customwizard/customwizardpage.cpp') diff --git a/src/plugins/projectexplorer/customwizard/customwizardpage.cpp b/src/plugins/projectexplorer/customwizard/customwizardpage.cpp index 4486a03134..b77d177483 100644 --- a/src/plugins/projectexplorer/customwizard/customwizardpage.cpp +++ b/src/plugins/projectexplorer/customwizard/customwizardpage.cpp @@ -164,6 +164,11 @@ CustomWizardFieldPage::TextEditData::TextEditData(QTextEdit* le, const QString & { } +CustomWizardFieldPage::PathChooserData::PathChooserData(Utils::PathChooser* pe, const QString &defText) : + pathChooser(pe), defaultText(defText) +{ +} + CustomWizardFieldPage::CustomWizardFieldPage(const QSharedPointer &ctx, const QSharedPointer ¶meters, QWidget *parent) : @@ -305,10 +310,12 @@ QWidget *CustomWizardFieldPage::registerTextEdit(const QString &fieldName, } // QTextEdit QWidget *CustomWizardFieldPage::registerPathChooser(const QString &fieldName, - const CustomWizardField & /*field*/) + const CustomWizardField &field) { Utils::PathChooser *pathChooser = new Utils::PathChooser; registerField(fieldName, pathChooser, "path", SIGNAL(changed(QString))); + const QString defaultText = field.controlAttributes.value(QLatin1String("defaulttext")); + m_pathChoosers.push_back(PathChooserData(pathChooser, defaultText)); return pathChooser; } // Utils::PathChooser @@ -374,6 +381,15 @@ void CustomWizardFieldPage::initializePage() ted.textEdit->setText(defaultText); } } + foreach (const PathChooserData &ped, m_pathChoosers) { + if (!ped.userChange.isNull()) { + ped.pathChooser->setPath(ped.userChange); + } else if (!ped.defaultText.isEmpty()) { + QString defaultText = ped.defaultText; + CustomWizardContext::replaceFields(m_context->baseReplacements, &defaultText); + ped.pathChooser->setPath(defaultText); + } + } } void CustomWizardFieldPage::cleanupPage() @@ -397,6 +413,15 @@ void CustomWizardFieldPage::cleanupPage() else ted.userChange.clear(); } + for (int i= 0; i < m_pathChoosers.count(); ++i) { + PathChooserData &ped = m_pathChoosers[i]; + QString defaultText = ped.defaultText; + CustomWizardContext::replaceFields(m_context->baseReplacements, &defaultText); + if (ped.pathChooser->path() != ped.defaultText) + ped.userChange = ped.pathChooser->path(); + else + ped.userChange.clear(); + } QWizardPage::cleanupPage(); } -- cgit v1.2.1