Wizards: avoiding code duplication

I moved setPath(wizardDialogParameters.defaultPath()) into
the constructor of BaseProjectWizardDialog.

I created addExtensionPages() instead of having of having the
foreach everywhere. Moving the call into the constructor of
BaseProjectWizardDialog is not trivial since a lot of derived classes
rely on execution order and the order is often different.
Entangling this is not trivial and easily might break functionality.

Change-Id: I48dddaf72caea84da783dc9e2f42f2c7eff1c0ce
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
This commit is contained in:
Thomas Hartmann
2012-02-14 15:21:21 +01:00
parent c4b631f975
commit 0f073e4a35
20 changed files with 28 additions and 27 deletions

View File

@@ -72,6 +72,7 @@ BaseProjectWizardDialog::BaseProjectWizardDialog(QWidget *parent,
Utils::Wizard(parent),
d(new BaseProjectWizardDialogPrivate(new Utils::ProjectIntroPage))
{
setPath(parameters.defaultPath());
setSelectedPlatform(parameters.selectedPlatform());
setRequiredFeatures(parameters.requiredFeatures());
init();
@@ -84,6 +85,7 @@ BaseProjectWizardDialog::BaseProjectWizardDialog(Utils::ProjectIntroPage *introP
Utils::Wizard(parent),
d(new BaseProjectWizardDialogPrivate(introPage, introId))
{
setPath(parameters.defaultPath());
setSelectedPlatform(parameters.selectedPlatform());
setRequiredFeatures(parameters.requiredFeatures());
init();
@@ -171,6 +173,12 @@ QString BaseProjectWizardDialog::uniqueProjectName(const QString &path)
return prefix;
}
void BaseProjectWizardDialog::addExtensionPages(const QList<QWizardPage *> &wizardPageList)
{
foreach (QWizardPage *p,wizardPageList)
Core::BaseFileWizard::applyExtensionPageShortTitle(this, addPage(p));
}
QString BaseProjectWizardDialog::selectedPlatform() const
{
return d->selectedPlatform;