12#include "nameandemailwidget.h"
14#include "formtextinput_p.h"
16#include "ui/errorlabel.h"
17#include "utils/validation.h"
19#include <KLocalizedString>
33 }
else if (email.isEmpty()) {
36 return QStringLiteral(
"%1 <%2>").arg(name, email);
41class NameAndEmailWidget::Private
47 std::unique_ptr<FormTextInput<QLineEdit>> nameInput;
48 std::unique_ptr<FormTextInput<QLineEdit>> emailInput;
57 ui.nameInput = FormTextInput<QLineEdit>::create(q);
58 ui.nameInput->setLabelText(
i18nc(
"@label",
"Name"));
59 ui.nameInput->setValueRequiredErrorMessage(
i18n(
"Enter a name."));
62 mainLayout->addWidget(ui.nameInput->label());
63 mainLayout->addWidget(ui.nameInput->hintLabel());
64 mainLayout->addWidget(ui.nameInput->errorLabel());
65 mainLayout->addWidget(ui.nameInput->widget());
68 Q_EMIT q->userIDChanged();
72 ui.emailInput = FormTextInput<QLineEdit>::create(q);
73 ui.emailInput->setLabelText(
i18nc(
"@label",
"Email address"));
74 ui.emailInput->setValueRequiredErrorMessage(
i18n(
"Enter an email address."));
77 mainLayout->addWidget(ui.emailInput->label());
78 mainLayout->addWidget(ui.emailInput->hintLabel());
79 mainLayout->addWidget(ui.emailInput->errorLabel());
80 mainLayout->addWidget(ui.emailInput->widget());
83 Q_EMIT q->userIDChanged();
87 void setNamePattern(
const QString ®exp)
90 ui.nameInput->setValidator(Validation::simpleName(Validation::Optional));
91 ui.nameInput->setInvalidEntryErrorMessage(
92 i18n(
"The name must not include <, >, and @."),
93 i18nc(
"text for screen readers",
"The name must not include less-than sign, greater-than sign, and at sign."));
95 ui.nameInput->setValidator(Validation::simpleName(regexp, Validation::Optional));
96 ui.nameInput->setInvalidEntryErrorMessage(
i18n(
"The name must be in the format required by your organization and "
97 "it must not include <, >, and @."),
98 i18nc(
"text for screen readers",
99 "The name must be in the format required by your organization and "
100 "it must not include less-than sign, greater-than sign, and at sign."));
104 void setEmailPattern(
const QString ®exp)
107 ui.emailInput->setValidator(Validation::email(Validation::Optional));
108 ui.emailInput->setInvalidEntryErrorMessage(
i18n(
"Enter an email address in the correct format, like name@example.com."));
110 ui.emailInput->setValidator(Validation::email(regexp, Validation::Optional));
111 ui.emailInput->setInvalidEntryErrorMessage(
i18n(
"Enter an email address in the correct format required by your organization."));
117 return ui.nameInput->widget()->text().trimmed();
122 return ui.emailInput->widget()->text().trimmed();
128 , d(new Private{this})
132NameAndEmailWidget::~NameAndEmailWidget() =
default;
134void NameAndEmailWidget::setName(
const QString &name)
136 d->ui.nameInput->widget()->setText(name);
139QString NameAndEmailWidget::name()
const
144void NameAndEmailWidget::setNameIsRequired(
bool required)
146 d->ui.nameInput->setIsRequired(required);
149bool NameAndEmailWidget::nameIsRequired()
const
151 return d->ui.nameInput->isRequired();
154void NameAndEmailWidget::setNameLabel(
const QString &label)
157 d->ui.nameInput->setLabelText(
i18nc(
"@label",
"Name"));
159 d->ui.nameInput->setLabelText(label);
163QString NameAndEmailWidget::nameLabel()
const
165 return d->ui.nameInput->label()->text();
168void NameAndEmailWidget::setNameHint(
const QString &hint)
170 d->ui.nameInput->setHint(hint);
173QString NameAndEmailWidget::nameHint()
const
175 return d->ui.nameInput->hintLabel()->text();
178void NameAndEmailWidget::setNamePattern(
const QString &pattern)
180 d->setNamePattern(pattern);
183QString NameAndEmailWidget::nameError()
const
185 return d->ui.nameInput->currentError();
188void NameAndEmailWidget::setEmail(
const QString &email)
190 d->ui.emailInput->widget()->setText(email);
193QString NameAndEmailWidget::email()
const
198void NameAndEmailWidget::setEmailIsRequired(
bool required)
200 d->ui.emailInput->setIsRequired(required);
203bool NameAndEmailWidget::emailIsRequired()
const
205 return d->ui.emailInput->isRequired();
208void NameAndEmailWidget::setEmailLabel(
const QString &label)
211 d->ui.emailInput->setLabelText(
i18nc(
"@label",
"Email address"));
213 d->ui.emailInput->setLabelText(label);
217QString NameAndEmailWidget::emailLabel()
const
219 return d->ui.emailInput->label()->text();
222void NameAndEmailWidget::setEmailHint(
const QString &hint)
224 d->ui.emailInput->setHint(hint);
227QString NameAndEmailWidget::emailHint()
const
229 return d->ui.emailInput->hintLabel()->text();
232void NameAndEmailWidget::setEmailPattern(
const QString &pattern)
234 d->setEmailPattern(pattern);
237QString NameAndEmailWidget::emailError()
const
239 return d->ui.emailInput->currentError();
244 return buildUserId(name(), email());
247#include "moc_nameandemailwidget.cpp"
constexpr bool isEmpty() const
QString i18nc(const char *context, const char *text, const TYPE &arg...)
QString i18n(const char *text, const TYPE &arg...)
void textChanged(const QString &text)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
bool isEmpty() const const