File indexing completed on 2025-02-16 04:56:07
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "ksieveui_export.h" 0010 #include <KSieveCore/Util> 0011 #include <QDialog> 0012 #include <memory> 0013 class QDialogButtonBox; 0014 namespace KSieveCore 0015 { 0016 class VacationCreateScriptJob; 0017 class MultiImapVacationManager; 0018 } 0019 namespace KSieveUi 0020 { 0021 class MultiImapVacationDialogPrivate; 0022 /** 0023 * @brief The MultiImapVacationDialog class 0024 * @author Laurent Montel <montel@kde.org> 0025 */ 0026 class KSIEVEUI_EXPORT MultiImapVacationDialog : public QDialog 0027 { 0028 Q_OBJECT 0029 public: 0030 explicit MultiImapVacationDialog(KSieveCore::MultiImapVacationManager *manager, QWidget *parent = nullptr); 0031 ~MultiImapVacationDialog() override; 0032 0033 [[nodiscard]] QList<KSieveCore::VacationCreateScriptJob *> listCreateJob() const; 0034 0035 void switchToServerNamePage(const QString &serverName); 0036 void reject() override; 0037 Q_SIGNALS: 0038 void okClicked(); 0039 void cancelClicked(); 0040 0041 private: 0042 KSIEVEUI_NO_EXPORT void slotSearchServerWithVacationSupportFinished(const QMap<QString, KSieveCore::Util::AccountInfo> &info); 0043 KSIEVEUI_NO_EXPORT void slotOkClicked(); 0044 KSIEVEUI_NO_EXPORT void slotDefaultClicked(); 0045 KSIEVEUI_NO_EXPORT void slotCanceled(); 0046 KSIEVEUI_NO_EXPORT void createPage(const QString &serverName, const KSieveCore::Util::AccountInfo &info); 0047 KSIEVEUI_NO_EXPORT void init(); 0048 KSIEVEUI_NO_EXPORT void readConfig(); 0049 KSIEVEUI_NO_EXPORT void writeConfig(); 0050 KSIEVEUI_NO_EXPORT void initialize(); 0051 QDialogButtonBox *mButtonBox = nullptr; 0052 std::unique_ptr<MultiImapVacationDialogPrivate> const d; 0053 }; 0054 }