File indexing completed on 2025-02-16 04:50:21

0001 /*
0002     SPDX-FileCopyrightText: 2008 Volker Krause <vkrause@kde.org>
0003     SPDX-FileCopyrightText: 2008 Omat Holding B.V. <info@omat.nl>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include "settingsbase.h"
0011 
0012 #include <KIMAP/LoginJob>
0013 
0014 #include <MailTransport/Transport>
0015 
0016 class ImapAccount;
0017 class KJob;
0018 
0019 class Settings : public SettingsBase
0020 {
0021     Q_OBJECT
0022     Q_CLASSINFO("D-Bus Interface", "org.kde.Akonadi.Imap.Wallet")
0023 public:
0024     static KIMAP::LoginJob::AuthenticationMode mapTransportAuthToKimap(MailTransport::Transport::EnumAuthenticationType authType);
0025 
0026     explicit Settings(WId = 0);
0027     void setWinId(WId);
0028 
0029     virtual void requestPassword();
0030 
0031     virtual void loadAccount(ImapAccount *account) const;
0032 
0033     [[nodiscard]] QString rootRemoteId() const;
0034     virtual void renameRootCollection(const QString &newName);
0035 
0036     virtual void clearCachedPassword();
0037     virtual void cleanup();
0038 
0039     virtual QString password(bool *userRejected = nullptr) const;
0040     virtual QString sieveCustomPassword(bool *userRejected = nullptr) const;
0041 
0042 Q_SIGNALS:
0043     void passwordRequestCompleted(const QString &password, bool userRejected);
0044 
0045 public Q_SLOTS:
0046     Q_SCRIPTABLE virtual void setPassword(const QString &password);
0047     Q_SCRIPTABLE virtual void setSieveCustomPassword(const QString &password);
0048 
0049 protected Q_SLOTS:
0050     virtual void onWalletOpened(bool success);
0051 
0052     void onRootCollectionFetched(KJob *job);
0053 
0054 protected:
0055     WId m_winId;
0056     mutable QString m_password;
0057     mutable QString m_customSievePassword;
0058 };