summary refs log tree commit diff
path: root/src/ui/TextField.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/TextField.cpp')
-rw-r--r--src/ui/TextField.cpp25
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 &regexp) +{ + regexp_ = regexp; +} + QColor TextField::underlineColor() const {