Libksieve

multiimapvacationmanager.h
1/*
2 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#pragma once
8
9#include "ksievecore_export.h"
10#include <KSieveCore/Util>
11#include <QMap>
12#include <QObject>
13
14class QUrl;
15
16namespace KSieveCore
17{
18class SieveImapPasswordProvider;
19class CheckKolabKep14SupportJob;
20class VacationCheckJob;
21/**
22 * @brief The MultiImapVacationManager class
23 * @author Laurent Montel <montel@kde.org>
24 */
25class KSIEVECORE_EXPORT MultiImapVacationManager : public QObject
26{
27 Q_OBJECT
28public:
29 explicit MultiImapVacationManager(KSieveCore::SieveImapPasswordProvider *passwordProvider, QObject *parent = nullptr);
31
32 void checkVacation();
33 void checkVacation(const QString &serverName, const QUrl &url);
34
35 [[nodiscard]] bool kep14Support(const QString &serverName) const;
36 KSieveCore::SieveImapPasswordProvider *passwordProvider() const;
37
38Q_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
42private Q_SLOTS:
43 KSIEVECORE_NO_EXPORT void slotScriptActive(KSieveCore::VacationCheckJob *job, const QString &scriptName, bool active);
44 KSIEVECORE_NO_EXPORT void slotCheckKep14Ended(KSieveCore::CheckKolabKep14SupportJob *job, bool success);
45
46private:
47 Q_DISABLE_COPY(MultiImapVacationManager)
48 KSIEVECORE_NO_EXPORT void slotSearchServerWithVacationSupportFinished(const QMap<QString, KSieveCore::Util::AccountInfo> &list);
49 KSieveCore::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-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:17:19 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.