diff options
author | Marco Bubke <marco.bubke@nokia.com> | 2012-04-11 17:58:59 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@nokia.com> | 2012-04-12 13:49:03 +0200 |
commit | 9fcae416724c456e703dee2cedce82672461a283 (patch) | |
tree | ce4d5820b031f2b45878b5172c94dd2fa2f3b4be /src/plugins/qmljseditor | |
parent | 1cb66190730a3ec8c28d62af3eecf26e79e913c7 (diff) | |
download | qt-creator-9fcae416724c456e703dee2cedce82672461a283.tar.gz |
Improve validation of the move component refactoring dialog
Using PathChooser and ClassNameValidatingLineEdit improves the usability.
Change-Id: Ib01ee99222ea495b37b0e839fbc68981b071d0a6
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Diffstat (limited to 'src/plugins/qmljseditor')
-rw-r--r-- | src/plugins/qmljseditor/qmljscomponentnamedialog.cpp | 29 | ||||
-rw-r--r-- | src/plugins/qmljseditor/qmljscomponentnamedialog.ui | 38 |
2 files changed, 39 insertions, 28 deletions
diff --git a/src/plugins/qmljseditor/qmljscomponentnamedialog.cpp b/src/plugins/qmljseditor/qmljscomponentnamedialog.cpp index 35b94b4984..cc90f180cb 100644 --- a/src/plugins/qmljseditor/qmljscomponentnamedialog.cpp +++ b/src/plugins/qmljseditor/qmljscomponentnamedialog.cpp @@ -35,6 +35,7 @@ #include <QFileInfo> #include <QFileDialog> +#include <QPushButton> using namespace QmlJSEditor::Internal; @@ -44,9 +45,7 @@ ComponentNameDialog::ComponentNameDialog(QWidget *parent) : { ui->setupUi(this); - connect(ui->choosePathButton, SIGNAL(clicked()), - this, SLOT(choosePath())); - connect(ui->pathEdit, SIGNAL(textChanged(QString)), + connect(ui->pathEdit, SIGNAL(changed(QString)), this, SLOT(validate())); connect(ui->componentNameEdit, SIGNAL(textChanged(QString)), this, SLOT(validate())); @@ -65,38 +64,44 @@ void ComponentNameDialog::go(QString *proposedName, Q_ASSERT(proposedPath); ComponentNameDialog d(parent); + d.ui->componentNameEdit->setNamespacesEnabled(false); + d.ui->componentNameEdit->setLowerCaseFileName(false); + d.ui->componentNameEdit->setClassNameMustBeCapital(true); d.ui->componentNameEdit->setText(*proposedName); - d.ui->pathEdit->setText(*proposedPath); + d.ui->pathEdit->setExpectedKind(Utils::PathChooser::ExistingDirectory); + d.ui->pathEdit->setPath(*proposedPath); if (QDialog::Accepted == d.exec()) { *proposedName = d.ui->componentNameEdit->text(); - *proposedPath = d.ui->pathEdit->text(); + *proposedPath = d.ui->pathEdit->path(); } } void ComponentNameDialog::choosePath() { QString dir = QFileDialog::getExistingDirectory(this, tr("Choose a path"), - ui->pathEdit->text()); + ui->pathEdit->path()); if (!dir.isEmpty()) - ui->pathEdit->setText(dir); + ui->pathEdit->setPath(dir); } void ComponentNameDialog::validate() { - const QString msg = isValid(); - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(msg.isEmpty()); - ui->messageLabel->setText(msg); + const QString message = isValid(); + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(message.isEmpty()); + ui->messageLabel->setText(message); } QString ComponentNameDialog::isValid() const { + if (!ui->componentNameEdit->isValid()) + return ui->componentNameEdit->errorMessage(); + QString compName = ui->componentNameEdit->text(); if (compName.isEmpty() || !compName[0].isUpper()) return tr("Invalid component name"); - QString path = ui->pathEdit->text(); - if (path.isEmpty() || !QFileInfo(path).isDir()) + if (!ui->pathEdit->isValid()) return tr("Invalid path"); return QString(); diff --git a/src/plugins/qmljseditor/qmljscomponentnamedialog.ui b/src/plugins/qmljseditor/qmljscomponentnamedialog.ui index 59f3532657..1f70caf25e 100644 --- a/src/plugins/qmljseditor/qmljscomponentnamedialog.ui +++ b/src/plugins/qmljseditor/qmljscomponentnamedialog.ui @@ -25,15 +25,15 @@ <property name="verticalSpacing"> <number>10</number> </property> - <item row="0" column="0"> - <widget class="QLabel" name="componentNameLabel"> + <item row="2" column="1" colspan="2"> + <widget class="QLabel" name="messageLabel"> <property name="text"> - <string>Component name:</string> + <string/> </property> </widget> </item> <item row="0" column="1"> - <widget class="QLineEdit" name="componentNameEdit"/> + <widget class="Utils::ClassNameValidatingLineEdit" name="componentNameEdit"/> </item> <item row="1" column="0"> <widget class="QLabel" name="choosePathLabel"> @@ -42,22 +42,15 @@ </property> </widget> </item> - <item row="1" column="1"> - <widget class="QLineEdit" name="pathEdit"/> - </item> - <item row="1" column="2"> - <widget class="QPushButton" name="choosePathButton"> + <item row="0" column="0"> + <widget class="QLabel" name="componentNameLabel"> <property name="text"> - <string>Choose...</string> + <string>Component name:</string> </property> </widget> </item> - <item row="2" column="1" colspan="2"> - <widget class="QLabel" name="messageLabel"> - <property name="text"> - <string/> - </property> - </widget> + <item row="1" column="1"> + <widget class="Utils::PathChooser" name="pathEdit" native="true"/> </item> </layout> </item> @@ -86,6 +79,19 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>Utils::ClassNameValidatingLineEdit</class> + <extends>QLineEdit</extends> + <header location="global">utils/classnamevalidatinglineedit.h</header> + </customwidget> + <customwidget> + <class>Utils::PathChooser</class> + <extends>QWidget</extends> + <header location="global">utils/pathchooser.h</header> + <container>1</container> + </customwidget> + </customwidgets> <resources/> <connections> <connection> |