File indexing completed on 2024-04-28 03:53:09

0001 /*
0002   SPDX-FileCopyrightText: 2010 Casey Link <unnamedrambler@gmail.com>
0003   SPDX-FileCopyrightText: 2009-2010 Klaralvdalens Datakonsult AB, a KDAB Group company <info@kdab.net>
0004   SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "kemailvalidator.h"
0008 
0009 #include <KEmailAddress>
0010 
0011 KEmailValidator::KEmailValidator(QObject *parent)
0012     : QValidator(parent)
0013 {
0014 }
0015 
0016 KEmailValidator::~KEmailValidator() = default;
0017 
0018 QValidator::State KEmailValidator::validate(QString &str, int &pos) const
0019 {
0020     Q_UNUSED(pos)
0021 
0022     if (KEmailAddress::isValidSimpleAddress(str)) {
0023         return QValidator::Acceptable;
0024     }
0025     const auto containsSpace = std::any_of(str.begin(), str.end(), [](QChar c) {
0026         return c.isSpace();
0027     });
0028     if (containsSpace) {
0029         return QValidator::Invalid;
0030     }
0031     return QValidator::Intermediate;
0032 }
0033 
0034 void KEmailValidator::fixup(QString &str) const
0035 {
0036     str = str.trimmed();
0037 }
0038 
0039 #include "moc_kemailvalidator.cpp"