Get rid of FancyLineEdit::validate

Use aggregation instead of inheritance for customization of validation.
Gets rid of a few additional classes.

Change-Id: Iaf8f12026c40a55bfde98b3786100f8ac431d750
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
Eike Ziller
2015-04-28 14:49:56 +02:00
parent e8862cd21f
commit 3fc7222062
24 changed files with 148 additions and 373 deletions

View File

@@ -69,6 +69,9 @@ ClassNameValidatingLineEdit::ClassNameValidatingLineEdit(QWidget *parent) :
FancyLineEdit(parent),
d(new ClassNameValidatingLineEditPrivate)
{
setValidationFunction([this](FancyLineEdit *edit, QString *errorMessage) {
return validateClassName(edit, errorMessage);
});
updateRegExp();
}
@@ -104,10 +107,11 @@ void ClassNameValidatingLineEdit::setNamespaceDelimiter(const QString &delimiter
d->m_namespaceDelimiter = delimiter;
}
bool ClassNameValidatingLineEdit::validate(const QString &value, QString *errorMessage) const
bool ClassNameValidatingLineEdit::validateClassName(FancyLineEdit *edit, QString *errorMessage) const
{
QTC_ASSERT(d->m_nameRegexp.isValid(), return false);
const QString value = edit->text();
if (!d->m_namespacesEnabled && value.contains(d->m_namespaceDelimiter)) {
if (errorMessage)
*errorMessage = tr("The class name must not contain namespace delimiters.");