File indexing completed on 2025-02-16 04:56:08
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-only 0005 */ 0006 0007 #pragma once 0008 0009 #include <QUrl> 0010 #include <QWidget> 0011 class QStackedWidget; 0012 namespace KManageSieve 0013 { 0014 } 0015 0016 namespace KSieveCore 0017 { 0018 class SieveImapAccountSettings; 0019 class VacationCreateScriptJob; 0020 class MultiImapVacationManager; 0021 } 0022 namespace KSieveUi 0023 { 0024 class VacationEditWidget; 0025 class VacationWarningWidget; 0026 class VacationPageWidget : public QWidget 0027 { 0028 Q_OBJECT 0029 public: 0030 explicit VacationPageWidget(QWidget *parent = nullptr); 0031 ~VacationPageWidget() override; 0032 0033 void setServerUrl(const QUrl &url); 0034 void setServerName(const QString &serverName); 0035 [[nodiscard]] KSieveCore::VacationCreateScriptJob *writeScript(bool &errorFound); 0036 void setDefault(); 0037 void setVacationManager(KSieveCore::MultiImapVacationManager *vacationManager); 0038 void setSieveImapAccountSettings(const KSieveCore::SieveImapAccountSettings &account); 0039 0040 bool wasChanged() const; 0041 private Q_SLOTS: 0042 void slotGetResult(const QString &serverName, const QStringList &sieveCapabilities, const QString &scriptName, const QString &script, bool active); 0043 0044 private: 0045 enum PageType { Script = 0, ScriptNotSupported = 1 }; 0046 0047 QString mServerName; 0048 QUrl mUrl; 0049 QStackedWidget *mStackWidget = nullptr; 0050 VacationEditWidget *mVacationEditWidget = nullptr; 0051 VacationWarningWidget *mVacationWarningWidget = nullptr; 0052 KSieveCore::MultiImapVacationManager *mVacationManager = nullptr; 0053 PageType mPageScript = Script; 0054 bool mWasActive = false; 0055 bool mHasDateSupport = false; 0056 }; 0057 }