File indexing completed on 2025-02-16 04:49:30

0001 /*
0002    SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #include "checkduplicateemailsjob.h"
0007 
0008 #include <KEmailAddress>
0009 #include <PimCommon/PimUtil>
0010 
0011 CheckDuplicateEmailsJob::CheckDuplicateEmailsJob() = default;
0012 
0013 CheckDuplicateEmailsJob::~CheckDuplicateEmailsJob() = default;
0014 
0015 void CheckDuplicateEmailsJob::start()
0016 {
0017     mResult.clear();
0018     if (mEmails.isEmpty()) {
0019         return;
0020     }
0021     QMap<QString, int> results;
0022     for (const QString &email : std::as_const(mEmails)) {
0023         QString tname;
0024         QString temail;
0025         KEmailAddress::extractEmailAddressAndName(email, temail, tname); // ignore return value
0026 
0027         if (!temail.isEmpty()) {
0028             const int val = results.value(temail, 0);
0029             if (val == 0) {
0030                 results.insert(temail, val + 1);
0031             } else {
0032                 results[temail] = val + 1;
0033             }
0034         }
0035     }
0036     QMapIterator<QString, int> i(results);
0037     while (i.hasNext()) {
0038         i.next();
0039         if (i.value() > 1) {
0040             mResult.insert(i.key(), i.value());
0041         }
0042     }
0043 }
0044 
0045 void CheckDuplicateEmailsJob::setEmails(const QStringList &list)
0046 {
0047     mEmails = PimCommon::Util::generateEmailList(list);
0048 }
0049 
0050 QMap<QString, int> CheckDuplicateEmailsJob::result() const
0051 {
0052     return mResult;
0053 }