File indexing completed on 2024-05-19 05:17:28
0001 // SPDX-FileCopyrightText: 2023 Claudio Cambra <claudio.cambra@kde.org> 0002 // SPDX-License-Identifier: LGPL-2.0-or-later 0003 0004 #pragma once 0005 0006 #include <QObject> 0007 0008 #include "identity.h" 0009 #include "identitymanager.h" 0010 0011 namespace KIdentityManagementQuick 0012 { 0013 class IdentityEditorBackend : public QObject 0014 { 0015 Q_OBJECT 0016 0017 Q_PROPERTY(Mode mode READ mode WRITE setMode NOTIFY modeChanged) 0018 Q_PROPERTY(KIdentityManagementCore::Identity identity READ identity WRITE setIdentity NOTIFY identityChanged NOTIFY modeChanged) 0019 Q_PROPERTY(uint identityUoid READ identityUoid WRITE setIdentityUoid NOTIFY identityChanged) 0020 0021 public: 0022 enum Mode { CreateMode, EditMode }; 0023 Q_ENUM(Mode); 0024 0025 explicit IdentityEditorBackend() = default; 0026 0027 [[nodiscard]] Mode mode() const; 0028 void setMode(Mode mode); 0029 0030 [[nodiscard]] KIdentityManagementCore::Identity identity() const; 0031 void setIdentity(const KIdentityManagementCore::Identity &identity); 0032 0033 [[nodiscard]] uint identityUoid() const; 0034 void setIdentityUoid(uint identityUoid); 0035 0036 Q_INVOKABLE void saveIdentity(const KIdentityManagementCore::Identity &modifiedIdentity); 0037 0038 Q_INVOKABLE void addEmailAlias(const QString &alias); 0039 Q_INVOKABLE void modifyEmailAlias(const QString &originalAlias, const QString &modifiedAlias); 0040 Q_INVOKABLE void removeEmailAlias(const QString &alias); 0041 0042 Q_SIGNALS: 0043 void modeChanged(); 0044 void identityChanged(); 0045 0046 private: 0047 KIdentityManagementCore::IdentityManager *const mIdentityManager = KIdentityManagementCore::IdentityManager::self(); 0048 KIdentityManagementCore::Identity mIdentity; 0049 Mode mMode = CreateMode; 0050 }; 0051 }