summaryrefslogtreecommitdiff
path: root/src/plugins/qmljseditor
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@nokia.com>2012-04-11 17:58:59 +0200
committerMarco Bubke <marco.bubke@nokia.com>2012-04-12 13:49:03 +0200
commit9fcae416724c456e703dee2cedce82672461a283 (patch)
treece4d5820b031f2b45878b5172c94dd2fa2f3b4be /src/plugins/qmljseditor
parent1cb66190730a3ec8c28d62af3eecf26e79e913c7 (diff)
downloadqt-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.cpp29
-rw-r--r--src/plugins/qmljseditor/qmljscomponentnamedialog.ui38
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>