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 }