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 };