From 6b85c2d520967f718a91e3a55bba58590111f4bf Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@nokia.com> Date: Fri, 1 Oct 2010 11:29:11 +0200 Subject: [PATCH] Polish the checkout wizard (base and git) * Polish the base checkout wizard * Make UI easier to grasp * Add tooltips explaining things Task-number: QTCREATORBUG-2540 Reviewed-by: Robert Loehning --- src/plugins/git/clonewizardpage.cpp | 3 +- .../vcsbase/basecheckoutwizardpage.cpp | 32 ++- src/plugins/vcsbase/basecheckoutwizardpage.h | 12 +- src/plugins/vcsbase/basecheckoutwizardpage.ui | 184 ++++++++++++------ 4 files changed, 160 insertions(+), 71 deletions(-) diff --git a/src/plugins/git/clonewizardpage.cpp b/src/plugins/git/clonewizardpage.cpp index 504c60e283a..3b321f96e4d 100644 --- a/src/plugins/git/clonewizardpage.cpp +++ b/src/plugins/git/clonewizardpage.cpp @@ -63,7 +63,8 @@ CloneWizardPage::CloneWizardPage(QWidget *parent) : setSubTitle(tr("Specify repository URL, checkout directory and path.")); setRepositoryLabel(tr("Clone URL:")); d->deleteMasterCheckBox = new QCheckBox(tr("Delete master branch")); - addControl(d->deleteMasterCheckBox); + d->deleteMasterCheckBox->setToolTip(tr("Delete the master branch after checking out the repository.")); + addLocalControl(d->deleteMasterCheckBox); setDeleteMasterBranch(true); } diff --git a/src/plugins/vcsbase/basecheckoutwizardpage.cpp b/src/plugins/vcsbase/basecheckoutwizardpage.cpp index 111d069fb5c..b575e839492 100644 --- a/src/plugins/vcsbase/basecheckoutwizardpage.cpp +++ b/src/plugins/vcsbase/basecheckoutwizardpage.cpp @@ -53,6 +53,8 @@ BaseCheckoutWizardPage::BaseCheckoutWizardPage(QWidget *parent) : connect(d->ui.checkoutDirectoryLineEdit, SIGNAL(validChanged()), this, SLOT(slotChanged())); connect(d->ui.checkoutDirectoryLineEdit, SIGNAL(textEdited(QString)), this, SLOT(slotDirectoryEdited())); + connect(d->ui.branchComboBox, SIGNAL(currentIndexChanged(int)), + this, SLOT(slotChanged())); d->ui.pathChooser->setExpectedKind(Utils::PathChooser::Directory); connect(d->ui.pathChooser, SIGNAL(validChanged()), this, SLOT(slotChanged())); @@ -67,14 +69,31 @@ BaseCheckoutWizardPage::~BaseCheckoutWizardPage() delete d; } -void BaseCheckoutWizardPage::addControl(QWidget *w) +void BaseCheckoutWizardPage::addLocalControl(QWidget *w) +{ + d->ui.localLayout->addRow(w); +} + +void BaseCheckoutWizardPage::addLocalControl(QString &description, QWidget *w) { - d->ui.formLayout->addRow(w); + d->ui.localLayout->addRow(description, w); } -void BaseCheckoutWizardPage::addControl(QString &description, QWidget *w) +void BaseCheckoutWizardPage::addRepositoryControl(QWidget *w) { - d->ui.formLayout->addRow(description, w); + d->ui.repositoryLayout->addRow(w); +} + +bool BaseCheckoutWizardPage::checkIsValid() const +{ + return d->ui.pathChooser->isValid() + && d->ui.checkoutDirectoryLineEdit->isValid() + && !d->ui.repositoryLineEdit->text().isEmpty(); +} + +void BaseCheckoutWizardPage::addRepositoryControl(QString &description, QWidget *w) +{ + d->ui.repositoryLayout->addRow(description, w); } bool BaseCheckoutWizardPage::isBranchSelectorVisible() const @@ -167,6 +186,7 @@ void BaseCheckoutWizardPage::slotRefreshBranches() if (current >= 0 && current < branchList.size()) d->ui.branchComboBox->setCurrentIndex(current); } + slotChanged(); } void BaseCheckoutWizardPage::slotRepositoryChanged(const QString &repo) @@ -212,9 +232,7 @@ bool BaseCheckoutWizardPage::isComplete() const void BaseCheckoutWizardPage::slotChanged() { - const bool valid = d->ui.pathChooser->isValid() - && d->ui.checkoutDirectoryLineEdit->isValid() - && !d->ui.repositoryLineEdit->text().isEmpty(); + const bool valid = checkIsValid(); if (valid != d->m_valid) { d->m_valid = valid; diff --git a/src/plugins/vcsbase/basecheckoutwizardpage.h b/src/plugins/vcsbase/basecheckoutwizardpage.h index f4471298a77..9d5cbcc5194 100644 --- a/src/plugins/vcsbase/basecheckoutwizardpage.h +++ b/src/plugins/vcsbase/basecheckoutwizardpage.h @@ -71,7 +71,7 @@ public: virtual bool isComplete() const; - bool isBranchSelectorVisible() const ; + bool isBranchSelectorVisible() const; protected: void changeEvent(QEvent *e); @@ -88,8 +88,14 @@ protected: virtual QStringList branches(const QString &repository, int *current); /* Add additional controls */ - void addControl(QWidget *w); - void addControl(QString &description, QWidget *w); + void addLocalControl(QWidget *w); + void addLocalControl(QString &description, QWidget *w); + + void addRepositoryControl(QWidget *w); + void addRepositoryControl(QString &description, QWidget *w); + + /* Override validity information */ + virtual bool checkIsValid() const; private slots: void slotRepositoryChanged(const QString &url); diff --git a/src/plugins/vcsbase/basecheckoutwizardpage.ui b/src/plugins/vcsbase/basecheckoutwizardpage.ui index eb48ba9b467..f94995ccdf2 100644 --- a/src/plugins/vcsbase/basecheckoutwizardpage.ui +++ b/src/plugins/vcsbase/basecheckoutwizardpage.ui @@ -13,64 +13,129 @@ <property name="windowTitle"> <string>WizardPage</string> </property> - <layout class="QHBoxLayout" name="horizontalLayout"> + <layout class="QVBoxLayout" name="verticalLayout"> <item> - <layout class="QFormLayout" name="formLayout"> - <item row="0" column="0"> - <widget class="QLabel" name="repositoryLabel"/> - </item> - <item row="0" column="1"> - <widget class="QLineEdit" name="repositoryLineEdit"/> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="checkoutDirectoryLabel"> - <property name="text"> - <string>Checkout Directory:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="Utils::ProjectNameValidatingLineEdit" name="checkoutDirectoryLineEdit"/> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="pathLabel"> - <property name="text"> - <string>Path:</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="Utils::PathChooser" name="pathChooser" native="true"/> - </item> - <item row="3" column="0"> - <widget class="QLabel" name="branchLabel"> - <property name="text"> - <string>Branch:</string> - </property> - </widget> - </item> - <item row="3" column="1"> - <layout class="QHBoxLayout" name="branchHorizontalLayout"> - <item> - <widget class="QComboBox" name="branchComboBox"> - <property name="sizePolicy"> - <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="branchRefreshToolButton"> - <property name="text"> - <string>...</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> + <widget class="QGroupBox" name="repositoryGroupBox"> + <property name="title"> + <string>Repository</string> + </property> + <property name="flat"> + <bool>true</bool> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <layout class="QFormLayout" name="repositoryLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="repositoryLabel"/> + </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="repositoryLineEdit"> + <property name="toolTip"> + <string>The remote repository to check out.</string> + </property> + <property name="whatsThis"> + <string/> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="branchLabel"> + <property name="text"> + <string>Branch:</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <layout class="QHBoxLayout" name="branchHorizontalLayout"> + <item> + <widget class="QComboBox" name="branchComboBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>The development branch in the remote repository to check out.</string> + </property> + <property name="whatsThis"> + <string/> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="branchRefreshToolButton"> + <property name="toolTip"> + <string>Retrieve list of branches in repository.</string> + </property> + <property name="text"> + <string>...</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="localGroupBox"> + <property name="title"> + <string>Working Copy</string> + </property> + <property name="flat"> + <bool>true</bool> + </property> + <layout class="QFormLayout" name="localLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="pathLabel"> + <property name="toolTip"> + <string>The path in which the directory containing the checkout will be created.</string> + </property> + <property name="text"> + <string>Checkout Path:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="Utils::PathChooser" name="pathChooser"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="checkoutDirectoryLabel"> + <property name="toolTip"> + <string>The local directory that will contain the code after the checkout.</string> + </property> + <property name="text"> + <string>Checkout Directory:</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="Utils::ProjectNameValidatingLineEdit" name="checkoutDirectoryLineEdit"> + <property name="toolTip"> + <string>The local directory that will contain the code after the checkout.</string> + </property> + <property name="whatsThis"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>0</height> + </size> + </property> + </spacer> </item> </layout> </widget> @@ -82,9 +147,8 @@ </customwidget> <customwidget> <class>Utils::PathChooser</class> - <extends>QWidget</extends> - <header location="global">utils/pathchooser.h</header> - <container>1</container> + <extends>QLineEdit</extends> + <header>utils/pathchooser.h</header> </customwidget> </customwidgets> <resources/> -- GitLab