From 30ff3129290a0019de18e3528dfb9a34f82606de Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 29 Jun 2011 16:43:22 +0200 Subject: [PATCH] QtQuickApp wizard: Merge Components and Sources page Change-Id: I48e5009f2f71562a700eabddf38e54c1d4a127c1 Reviewed-on: http://codereview.qt.nokia.com/913 Reviewed-by: Qt Sanity Bot Reviewed-by: Alessandro Portale --- .../qt4projectmanager/qt4projectmanager.pro | 1 - .../wizards/qtquickappwizard.cpp | 11 +-- .../wizards/qtquickappwizardpages.cpp | 52 ++++------ .../wizards/qtquickappwizardpages.h | 21 +---- .../wizards/qtquickappwizardsourcespage.ui | 94 ------------------- .../wizards/qtquickcomponentsetoptionspage.ui | 72 +++++++++++++- 6 files changed, 91 insertions(+), 160 deletions(-) delete mode 100644 src/plugins/qt4projectmanager/wizards/qtquickappwizardsourcespage.ui diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.pro b/src/plugins/qt4projectmanager/qt4projectmanager.pro index 2c1b26e0338..5452bf28be7 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanager.pro +++ b/src/plugins/qt4projectmanager/qt4projectmanager.pro @@ -132,7 +132,6 @@ FORMS += makestep.ui \ librarydetailswidget.ui \ wizards/testwizardpage.ui \ wizards/targetsetuppage.ui \ - wizards/qtquickappwizardsourcespage.ui \ wizards/html5appwizardsourcespage.ui \ wizards/mobilelibrarywizardoptionpage.ui \ wizards/mobileappwizardgenericoptionspage.ui \ diff --git a/src/plugins/qt4projectmanager/wizards/qtquickappwizard.cpp b/src/plugins/qt4projectmanager/wizards/qtquickappwizard.cpp index 0c2d8a3e72e..27eda758e4d 100644 --- a/src/plugins/qt4projectmanager/wizards/qtquickappwizard.cpp +++ b/src/plugins/qt4projectmanager/wizards/qtquickappwizard.cpp @@ -57,7 +57,6 @@ protected: bool validateCurrentPage(); private: - class QtQuickAppWizardSourcesPage *m_qmlSourcesPage; class QtQuickComponentSetOptionsPage *m_componentOptionsPage; int m_componentOptionsPageId; @@ -68,22 +67,18 @@ private: QtQuickAppWizardDialog::QtQuickAppWizardDialog(QWidget *parent) : AbstractMobileAppWizardDialog(parent, QtSupport::QtVersionNumber(4, 7, 1)) - , m_qmlSourcesPage(0) { setWindowTitle(tr("New Qt Quick Application")); setIntroDescription(tr("This wizard generates a Qt Quick application project.")); m_componentOptionsPage = new Internal::QtQuickComponentSetOptionsPage; - m_componentOptionsPageId = addPageWithTitle(m_componentOptionsPage, tr("Component Set")); + m_componentOptionsPageId = addPageWithTitle(m_componentOptionsPage, tr("Application Type")); m_componentItem = wizardProgress()->item(m_componentOptionsPageId); AbstractMobileAppWizardDialog::addMobilePages(); m_componentItem->setNextItems(QList() << targetsPageItem()); - - m_qmlSourcesPage = new QtQuickAppWizardSourcesPage; - addPageWithTitle(m_qmlSourcesPage, tr("QML Sources")); } bool QtQuickAppWizardDialog::validateCurrentPage() @@ -163,10 +158,10 @@ void QtQuickAppWizard::prepareGenerateFiles(const QWizard *w, { Q_UNUSED(errorMessage) const QtQuickAppWizardDialog *wizard = qobject_cast(w); - if (wizard->m_qmlSourcesPage->mainQmlMode() == QtQuickApp::ModeGenerate) { + if (wizard->m_componentOptionsPage->mainQmlMode() == QtQuickApp::ModeGenerate) { m_d->app->setMainQml(QtQuickApp::ModeGenerate); } else { - const QString mainQmlFile = wizard->m_qmlSourcesPage->mainQmlFile(); + const QString mainQmlFile = wizard->m_componentOptionsPage->mainQmlFile(); m_d->app->setMainQml(QtQuickApp::ModeImport, mainQmlFile); } m_d->app->setComponentSet(wizard->m_componentOptionsPage->componentSet()); diff --git a/src/plugins/qt4projectmanager/wizards/qtquickappwizardpages.cpp b/src/plugins/qt4projectmanager/wizards/qtquickappwizardpages.cpp index ad5903e79d8..e3f9b473e06 100644 --- a/src/plugins/qt4projectmanager/wizards/qtquickappwizardpages.cpp +++ b/src/plugins/qt4projectmanager/wizards/qtquickappwizardpages.cpp @@ -32,7 +32,6 @@ #include "qtquickappwizardpages.h" #include "ui_qtquickcomponentsetoptionspage.h" -#include "ui_qtquickappwizardsourcespage.h" #include #include @@ -43,28 +42,32 @@ namespace Qt4ProjectManager { namespace Internal { - class QtQuickComponentSetOptionsPagePrivate { Ui::QtQuickComponentSetOptionsPage ui; friend class QtQuickComponentSetOptionsPage; }; -class QtQuickAppWizardSourcesPagePrivate -{ - Ui::QtQuickAppWizardSourcesPage ui; - friend class QtQuickAppWizardSourcesPage; -}; - - QtQuickComponentSetOptionsPage::QtQuickComponentSetOptionsPage(QWidget *parent) : QWizardPage(parent) , m_d(new QtQuickComponentSetOptionsPagePrivate) { m_d->ui.setupUi(this); + + m_d->ui.importLineEdit->setExpectedKind(Utils::PathChooser::File); + m_d->ui.importLineEdit->setPromptDialogFilter(QLatin1String("*.qml")); + m_d->ui.importLineEdit->setPromptDialogTitle(tr("Select QML File")); + connect(m_d->ui.importLineEdit, SIGNAL(changed(QString)), SIGNAL(completeChanged())); + connect(m_d->ui.importRadioButton, + SIGNAL(toggled(bool)), SIGNAL(completeChanged())); + + connect(m_d->ui.importRadioButton, SIGNAL(toggled(bool)), + m_d->ui.importLineEdit, SLOT(setEnabled(bool))); + m_d->ui.buttonGroup->setId(m_d->ui.qtquick10RadioButton, 0); m_d->ui.buttonGroup->setId(m_d->ui.symbian10RadioButton, 1); m_d->ui.buttonGroup->setId(m_d->ui.meego10RadioButton, 2); + m_d->ui.buttonGroup->setId(m_d->ui.importRadioButton, 3); connect(m_d->ui.buttonGroup, SIGNAL(buttonClicked(int)), this, SLOT(radioButtonChecked(int))); } @@ -98,40 +101,19 @@ void QtQuickComponentSetOptionsPage::radioButtonChecked(int index) m_d->ui.descriptionStackedWidget->setCurrentIndex(index); } -QtQuickAppWizardSourcesPage::QtQuickAppWizardSourcesPage(QWidget *parent) - : QWizardPage(parent) - , m_d(new QtQuickAppWizardSourcesPagePrivate) +QtQuickApp::Mode QtQuickComponentSetOptionsPage::mainQmlMode() const { - m_d->ui.setupUi(this); - m_d->ui.importLineEdit->setExpectedKind(Utils::PathChooser::File); - m_d->ui.importLineEdit->setPromptDialogFilter(QLatin1String("*.qml")); - m_d->ui.importLineEdit->setPromptDialogTitle(tr("Select QML File")); - connect(m_d->ui.importLineEdit, SIGNAL(changed(QString)), SIGNAL(completeChanged())); - connect(m_d->ui.importRadioButton, - SIGNAL(toggled(bool)), SIGNAL(completeChanged())); - connect(m_d->ui.generateRadioButton, SIGNAL(toggled(bool)), - m_d->ui.importLineEdit, SLOT(setDisabled(bool))); - m_d->ui.generateRadioButton->setChecked(true); + return m_d->ui.importRadioButton->isChecked() ? QtQuickApp::ModeImport + : QtQuickApp::ModeGenerate; } -QtQuickAppWizardSourcesPage::~QtQuickAppWizardSourcesPage() -{ - delete m_d; -} - -QtQuickApp::Mode QtQuickAppWizardSourcesPage::mainQmlMode() const -{ - return m_d->ui.generateRadioButton->isChecked() ? QtQuickApp::ModeGenerate - : QtQuickApp::ModeImport; -} - -QString QtQuickAppWizardSourcesPage::mainQmlFile() const +QString QtQuickComponentSetOptionsPage::mainQmlFile() const { return mainQmlMode() == QtQuickApp::ModeImport ? m_d->ui.importLineEdit->path() : QString(); } -bool QtQuickAppWizardSourcesPage::isComplete() const +bool QtQuickComponentSetOptionsPage::isComplete() const { return mainQmlMode() != QtQuickApp::ModeImport || m_d->ui.importLineEdit->isValid(); diff --git a/src/plugins/qt4projectmanager/wizards/qtquickappwizardpages.h b/src/plugins/qt4projectmanager/wizards/qtquickappwizardpages.h index 303074c9f38..7ce96823d15 100644 --- a/src/plugins/qt4projectmanager/wizards/qtquickappwizardpages.h +++ b/src/plugins/qt4projectmanager/wizards/qtquickappwizardpages.h @@ -48,6 +48,10 @@ public: explicit QtQuickComponentSetOptionsPage(QWidget *parent = 0); virtual ~QtQuickComponentSetOptionsPage(); + QtQuickApp::Mode mainQmlMode() const; + QString mainQmlFile() const; + virtual bool isComplete() const; + QtQuickApp::ComponentSet componentSet() const; void setComponentSet(QtQuickApp::ComponentSet componentSet); @@ -58,23 +62,6 @@ private: class QtQuickComponentSetOptionsPagePrivate *m_d; }; -class QtQuickAppWizardSourcesPage : public QWizardPage -{ - Q_OBJECT - Q_DISABLE_COPY(QtQuickAppWizardSourcesPage) - -public: - explicit QtQuickAppWizardSourcesPage(QWidget *parent = 0); - virtual ~QtQuickAppWizardSourcesPage(); - - QtQuickApp::Mode mainQmlMode() const; - QString mainQmlFile() const; - virtual bool isComplete() const; - -private: - class QtQuickAppWizardSourcesPagePrivate *m_d; -}; - } // namespace Internal } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/wizards/qtquickappwizardsourcespage.ui b/src/plugins/qt4projectmanager/wizards/qtquickappwizardsourcespage.ui deleted file mode 100644 index e451920b635..00000000000 --- a/src/plugins/qt4projectmanager/wizards/qtquickappwizardsourcespage.ui +++ /dev/null @@ -1,94 +0,0 @@ - - - QtQuickAppWizardSourcesPage - - - - 0 - 0 - 605 - 386 - - - - WizardPage - - - - - - Main QML File - - - - - - Generate a main.qml file - - - - - - - Import an existing .qml file - - - - - - - - - - Qt::Horizontal - - - QSizePolicy::Maximum - - - - 12 - 20 - - - - - - - - - - - - 0 - 1 - - - - Note: All files and directories that reside in the same directory as the main QML file are deployed. You can modify the contents of the directory any time before deploying. - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - true - - - - - - - - Utils::PathChooser - QLineEdit -
utils/pathchooser.h
- 1 - - editingFinished() - browsingFinished() - -
-
- - -
diff --git a/src/plugins/qt4projectmanager/wizards/qtquickcomponentsetoptionspage.ui b/src/plugins/qt4projectmanager/wizards/qtquickcomponentsetoptionspage.ui index cf514765ef3..34b697384ac 100644 --- a/src/plugins/qt4projectmanager/wizards/qtquickcomponentsetoptionspage.ui +++ b/src/plugins/qt4projectmanager/wizards/qtquickcomponentsetoptionspage.ui @@ -20,7 +20,7 @@ - Qt Quick Component Set + Qt Quick Application Type false @@ -38,7 +38,7 @@ true - buttonGroup + buttonGroup @@ -48,7 +48,7 @@ Qt Quick Components for Symbian - buttonGroup + buttonGroup @@ -58,10 +58,43 @@ Qt Quick Components for Meego/Harmattan - buttonGroup + buttonGroup + + + + Use an existing .qml file + + + buttonGroup + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Maximum + + + + 12 + 20 + + + + + + + + + @@ -81,7 +114,7 @@ - 0 + 3 @@ -140,6 +173,23 @@ Requires Qt 4.7.4 or newer, and the component set installed for your Qt version. + + + + + + All files and directories that reside in the same directory as the main QML file are deployed. You can modify the contents of the directory any time before deploying. + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + true + + + + + @@ -147,6 +197,18 @@ Requires Qt 4.7.4 or newer, and the component set installed for your Qt version. + + + Utils::PathChooser + QLineEdit +
utils/pathchooser.h
+ 1 + + editingFinished() + browsingFinished() + +
+