File indexing completed on 2024-05-12 05:17:09

0001 // SPDX-FileCopyrightText: 2023 Claudio Cambra <claudio.cambra@kde.org>
0002 // SPDX-License-Identifier: LGPL-2.0-or-later
0003 
0004 #include "identityeditorbackend.h"
0005 
0006 #include <memory>
0007 
0008 namespace KIdentityManagementQuick
0009 {
0010 IdentityEditorBackend::Mode IdentityEditorBackend::mode() const
0011 {
0012     return mMode;
0013 }
0014 
0015 void IdentityEditorBackend::setMode(Mode mode)
0016 {
0017     if (mMode == mode) {
0018         return;
0019     }
0020 
0021     mMode = mode;
0022     Q_EMIT modeChanged();
0023 }
0024 
0025 KIdentityManagementCore::Identity IdentityEditorBackend::identity() const
0026 {
0027     return mIdentity;
0028 }
0029 
0030 void IdentityEditorBackend::setIdentity(const KIdentityManagementCore::Identity &identity)
0031 {
0032     if (mIdentity == identity) {
0033         return;
0034     }
0035 
0036     mIdentity = identity;
0037     Q_EMIT identityChanged();
0038 }
0039 
0040 uint IdentityEditorBackend::identityUoid() const
0041 {
0042     return mIdentity.uoid();
0043 }
0044 
0045 void IdentityEditorBackend::setIdentityUoid(uint identityUoid)
0046 {
0047     if (mIdentity.uoid() == identityUoid) {
0048         return;
0049     }
0050 
0051     const auto &identity = mIdentityManager->modifyIdentityForUoid(identityUoid);
0052     setIdentity(identity);
0053 }
0054 
0055 void IdentityEditorBackend::saveIdentity(const KIdentityManagementCore::Identity &modifiedIdentity)
0056 {
0057     mIdentityManager->saveIdentity(modifiedIdentity);
0058 }
0059 
0060 void IdentityEditorBackend::addEmailAlias(const QString &alias)
0061 {
0062     auto aliases = mIdentity.emailAliases();
0063     aliases.append(alias);
0064     mIdentity.setEmailAliases(aliases);
0065 }
0066 
0067 void IdentityEditorBackend::modifyEmailAlias(const QString &originalAlias, const QString &modifiedAlias)
0068 {
0069     auto aliases = mIdentity.emailAliases();
0070     std::replace(aliases.begin(), aliases.end(), originalAlias, modifiedAlias);
0071     mIdentity.setEmailAliases(aliases);
0072 }
0073 
0074 void IdentityEditorBackend::removeEmailAlias(const QString &alias)
0075 {
0076     auto aliases = mIdentity.emailAliases();
0077     aliases.removeAll(alias);
0078     mIdentity.setEmailAliases(aliases);
0079 }
0080 }
0081 
0082 #include "moc_identityeditorbackend.cpp"