File indexing completed on 2024-05-12 05:25:39
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "libsieveeditor_private_export.h" 0010 #include "sieveeditorutil.h" 0011 #include <QWidget> 0012 0013 namespace Ui 0014 { 0015 class ServerSieveSettings; 0016 } 0017 namespace MailTransport 0018 { 0019 class ServerTest; 0020 } 0021 class QComboBox; 0022 class LIBSIEVEEDITOR_TESTS_EXPORT ServerSieveSettings : public QWidget 0023 { 0024 Q_OBJECT 0025 0026 public: 0027 explicit ServerSieveSettings(QWidget *parent = nullptr); 0028 ~ServerSieveSettings() override; 0029 0030 [[nodiscard]] QString serverName() const; 0031 void setServerName(const QString &name); 0032 0033 [[nodiscard]] int port() const; 0034 void setPort(int value); 0035 0036 [[nodiscard]] QString userName() const; 0037 void setUserName(const QString &name); 0038 0039 [[nodiscard]] QString password() const; 0040 void setPassword(const QString &pass); 0041 0042 void setServerSieveConfig(const SieveEditorUtil::SieveServerConfig &conf); 0043 [[nodiscard]] SieveEditorUtil::SieveServerConfig serverSieveConfig() const; 0044 0045 [[nodiscard]] QString imapServerName() const; 0046 void setImapServerName(const QString &name); 0047 0048 [[nodiscard]] int imapPort() const; 0049 void setImapPort(int value); 0050 0051 [[nodiscard]] QString imapUserName() const; 0052 void setImapUserName(const QString &name); 0053 0054 [[nodiscard]] QString imapPassword() const; 0055 void setImapPassword(const QString &pass); 0056 0057 void setAuthenticationType(KSieveCore::SieveImapAccountSettings::AuthenticationMode type); 0058 [[nodiscard]] KSieveCore::SieveImapAccountSettings::AuthenticationMode authenticationType() const; 0059 Q_SIGNALS: 0060 void enableOkButton(bool enabled); 0061 0062 private: 0063 void slotUserServerNameChanged(); 0064 void slotTest(); 0065 0066 void slotFinished(const QList<int> &testResult); 0067 void slotEncryptionRadioChanged(); 0068 0069 private: 0070 void populateDefaultAuthenticationOptions(QComboBox *combobox); 0071 void slotSafetyChanged(); 0072 void populateDefaultComboBoxAuthenticationOptions(); 0073 Ui::ServerSieveSettings *const ui; 0074 MailTransport::ServerTest *mServerTest = nullptr; 0075 };