File indexing completed on 2025-02-16 04:55:54
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 #include "ksievecore_export.h" 0009 #include <QObject> 0010 #include <QStringList> 0011 #include <QUrl> 0012 0013 namespace KManageSieve 0014 { 0015 class SieveJob; 0016 } 0017 0018 namespace KSieveCore 0019 { 0020 class ParseUserScriptJob; 0021 class KSIEVECORE_EXPORT VacationCheckJob : public QObject 0022 { 0023 Q_OBJECT 0024 public: 0025 explicit VacationCheckJob(const QUrl &url, const QString &serverName, QObject *parent = nullptr); 0026 ~VacationCheckJob() override; 0027 void setKep14Support(bool kep14Support); 0028 void start(); 0029 void kill(); 0030 [[nodiscard]] bool noScriptFound() const; 0031 [[nodiscard]] QString script() const; 0032 [[nodiscard]] QStringList sieveCapabilities() const; 0033 [[nodiscard]] QString serverName() const; 0034 0035 Q_SIGNALS: 0036 void vacationScriptActive(KSieveCore::VacationCheckJob *job, const QString &sscriptName, bool active); 0037 void error(const QString &errorStr); 0038 0039 private Q_SLOTS: 0040 void slotGetResult(KManageSieve::SieveJob *job, bool success, const QString &script, bool active); 0041 void slotGotActiveScripts(KSieveCore::ParseUserScriptJob *job); 0042 void slotGotList(KManageSieve::SieveJob *job, bool success, const QStringList &availableScripts, const QString &activeScript); 0043 void emitError(const QString &errorMessage); 0044 void searchVacationScript(); 0045 void getNextScript(); 0046 0047 private: 0048 [[nodiscard]] bool isLastScript() const; 0049 Q_DISABLE_COPY(VacationCheckJob) 0050 QStringList mAvailableScripts; 0051 QStringList mActiveScripts; 0052 QStringList mSieveCapabilities; 0053 QString mScript; 0054 const QString mServerName; 0055 const QUrl mUrl; 0056 KManageSieve::SieveJob *mSieveJob = nullptr; 0057 KSieveCore::ParseUserScriptJob *mParseJob = nullptr; 0058 int mScriptPos = -1; 0059 bool mKep14Support = false; 0060 bool mNoScriptFound = false; 0061 }; 0062 }