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 }