commit 2cfe6214625343a15d743c9c882fc75340ca33d9
Author: Christian Ehringfeld <c.ehringfeld@t-online.de>
Date:   Mon Aug 10 23:54:12 2015 +0200

    email validator

diff --git a/src/validators/emailvalidator.cpp b/src/validators/emailvalidator.cpp
index 4bfc028..18c9345 100644
--- a/src/validators/emailvalidator.cpp
+++ b/src/validators/emailvalidator.cpp
@@ -1,11 +1,38 @@
 #include "emailvalidator.h"
-
+#include <QRegularExpression>
 using namespace CuteEntityManager;
 EmailValidator::EmailValidator() : Validator() {
 
 }
 
 ErrorMsg EmailValidator::validateParam(QVariant value, Param param) const {
+    QRegularExpression exp = QRegularExpression();
+    QString val = value.toString();
+    if (param.getName() == "full") {
+        exp.setPattern(this->getFullPattern());
+    } else {
+        exp.setPattern(this->getPattern());
+    }
+    if (exp.match(val).hasMatch()) {
+        return ErrorMsg();
+    }
+    return ErrorMsg(param.getName(), "Value is not a valid email address.");
+}
 
+QString EmailValidator::getPattern() const {
+    return pattern;
+}
+
+void EmailValidator::setPattern(const QString &value) {
+    pattern = value;
+}
+QString EmailValidator::getFullPattern() const {
+    return fullPattern;
 }
 
+void EmailValidator::setFullPattern(const QString &value) {
+    fullPattern = value;
+}
+
+
+
diff --git a/src/validators/emailvalidator.h b/src/validators/emailvalidator.h
index 2d93386..eb396b4 100644
--- a/src/validators/emailvalidator.h
+++ b/src/validators/emailvalidator.h
@@ -7,6 +7,17 @@ class EmailValidator : public Validator {
   public:
     EmailValidator();
     ErrorMsg validateParam(QVariant value, Param param) const final override;
+    QString getPattern() const;
+    void setPattern(const QString &value);
+
+    QString getFullPattern() const;
+    void setFullPattern(const QString &value);
+
+  protected:
+    QString pattern =
+        QStringLiteral("/^[a-zA-Z0-9!#$%&\'*+\\/=?^_`{|}~-]+(?:\\\\.[a-zA-Z0-9!#$%&\'*+\\\\/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/");
+    QString fullPattern =
+        QStringLiteral("/^[^@]*<[a-zA-Z0-9!#$%&'*+\\\\/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&\'*+\\\\/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?>$/");
 };
 }
 #endif // EMAILVALIDATOR_H
