1 files changed, 19 insertions, 6 deletions
diff --git a/src/ui/TextField.cpp b/src/ui/TextField.cpp
index 941d00a3..055fe73b 100644
--- a/src/ui/TextField.cpp
+++ b/src/ui/TextField.cpp
@@ -6,6 +6,7 @@
#include <QPaintEvent>
#include <QPainter>
#include <QPropertyAnimation>
+#include <QRegularExpressionValidator>
TextField::TextField(QWidget *parent)
: QLineEdit(parent)
@@ -70,18 +71,24 @@ TextField::hasLabel() const
return show_label_;
}
-bool
-TextField::isValid() const
-{
- return is_valid_;
-}
-
void
TextField::setValid(bool valid)
{
is_valid_ = valid;
}
+bool
+TextField::isValid() const
+{
+ QString s = text();
+ int pos = 0;
+ if (regexp_.pattern().isEmpty()) {
+ return is_valid_;
+ }
+ QRegularExpressionValidator v(QRegularExpression(regexp_), 0);
+ return v.validate(s, pos) == QValidator::Acceptable;
+}
+
void
TextField::setLabelFontSize(qreal size)
{
@@ -156,6 +163,12 @@ TextField::setUnderlineColor(const QColor &color)
update();
}
+void
+TextField::setRegexp(const QRegularExpression ®exp)
+{
+ regexp_ = regexp;
+}
+
QColor
TextField::underlineColor() const
{
|