Libksieve

multiimapvacationmanager.h
1 /*
2  SPDX-FileCopyrightText: 2013-2021 Laurent Montel <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include "ksieveui_export.h"
10 #include "util_p.h"
11 #include <QMap>
12 #include <QObject>
13 
14 class QUrl;
15 
16 namespace KSieveUi
17 {
18 class CheckKolabKep14SupportJob;
19 class VacationCheckJob;
20 class SieveImapPasswordProvider;
21 /**
22  * @brief The MultiImapVacationManager class
23  * @author Laurent Montel <[email protected]>
24  */
25 class KSIEVEUI_EXPORT MultiImapVacationManager : public QObject
26 {
27  Q_OBJECT
28 public:
29  explicit MultiImapVacationManager(SieveImapPasswordProvider *passwordProvider, QObject *parent = nullptr);
30  ~MultiImapVacationManager() override;
31 
32  void checkVacation();
33  void checkVacation(const QString &serverName, const QUrl &url);
34 
35  Q_REQUIRED_RESULT bool kep14Support(const QString &serverName) const;
36  SieveImapPasswordProvider *passwordProvider() const;
37 
38 Q_SIGNALS:
39  void scriptActive(bool active, const QString &serverName);
40  void scriptAvailable(const QString &serverName, const QStringList &sieveCapabilities, const QString &scriptName, const QString &script, bool active);
41 
42 private Q_SLOTS:
43  void slotScriptActive(KSieveUi::VacationCheckJob *job, const QString &scriptName, bool active);
44  void slotCheckKep14Ended(KSieveUi::CheckKolabKep14SupportJob *job, bool success);
45 
46 private:
47  Q_DISABLE_COPY(MultiImapVacationManager)
48  void slotSearchServerWithVacationSupportFinished(const QMap<QString, KSieveUi::Util::AccountInfo> &list);
49  SieveImapPasswordProvider *const mPasswordProvider;
50  int mNumberOfJobs = 0;
51  bool mCheckInProgress = false;
52 
53  QMap<QString, bool> mKep14Support; // if the server has KEP:14 support
54 };
55 }
Checks for support of Non-conflicting edits of Sieve scripts by multiple editors (KEP:14) ...
The MultiImapVacationManager class.
The SieveImapPasswordProvider class.
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sun Apr 11 2021 23:09:36 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.