File indexing completed on 2024-06-23 05:18:28

0001 /*
0002    SPDX-FileCopyrightText: 2022 Sandro Knauß <sknauss@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "contactpreference.h"
0008 
0009 #include <KContacts/Addressee>
0010 
0011 using namespace MessageComposer;
0012 
0013 ContactPreference::ContactPreference() = default;
0014 
0015 void ContactPreference::fillFromAddressee(const KContacts::Addressee &contact)
0016 {
0017     const QString encryptPref = contact.custom(QStringLiteral("KADDRESSBOOK"), QStringLiteral("CRYPTOENCRYPTPREF"));
0018     encryptionPreference = Kleo::stringToEncryptionPreference(encryptPref);
0019     const QString signPref = contact.custom(QStringLiteral("KADDRESSBOOK"), QStringLiteral("CRYPTOSIGNPREF"));
0020     signingPreference = Kleo::stringToSigningPreference(signPref);
0021     const QString cryptoFormats = contact.custom(QStringLiteral("KADDRESSBOOK"), QStringLiteral("CRYPTOPROTOPREF"));
0022     cryptoMessageFormat = Kleo::stringToCryptoMessageFormat(cryptoFormats);
0023     pgpKeyFingerprints = contact.custom(QStringLiteral("KADDRESSBOOK"), QStringLiteral("OPENPGPFP")).split(QLatin1Char(','), Qt::SkipEmptyParts);
0024     smimeCertFingerprints = contact.custom(QStringLiteral("KADDRESSBOOK"), QStringLiteral("SMIMEFP")).split(QLatin1Char(','), Qt::SkipEmptyParts);
0025 }
0026 
0027 void ContactPreference::fillAddressee(KContacts::Addressee &contact) const
0028 {
0029     contact.insertCustom(QStringLiteral("KADDRESSBOOK"),
0030                          QStringLiteral("CRYPTOENCRYPTPREF"),
0031                          QLatin1StringView(Kleo::encryptionPreferenceToString(encryptionPreference)));
0032     contact.insertCustom(QStringLiteral("KADDRESSBOOK"),
0033                          QStringLiteral("CRYPTOSIGNPREF"),
0034                          QLatin1StringView(Kleo::signingPreferenceToString(signingPreference)));
0035     contact.insertCustom(QStringLiteral("KADDRESSBOOK"),
0036                          QStringLiteral("CRYPTOPROTOPREF"),
0037                          QLatin1StringView(cryptoMessageFormatToString(cryptoMessageFormat)));
0038     contact.insertCustom(QStringLiteral("KADDRESSBOOK"), QStringLiteral("OPENPGPFP"), pgpKeyFingerprints.join(QLatin1Char(',')));
0039     contact.insertCustom(QStringLiteral("KADDRESSBOOK"), QStringLiteral("SMIMEFP"), smimeCertFingerprints.join(QLatin1Char(',')));
0040 }