1 /*
2     SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
3     SPDX-FileContributor: Kevin Ottens <kevin@kdab.com>
4 
5     SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7 
8 #pragma once
9 
10 #include "resourcetask.h"
11 
12 class ChangeCollectionTask : public ResourceTask
13 {
14     Q_OBJECT
15 
16 public:
17     explicit ChangeCollectionTask(const ResourceStateInterface::Ptr &resource, QObject *parent = nullptr);
18     ~ChangeCollectionTask() override;
19 
20     void syncEnabledState(bool);
21 
22 private Q_SLOTS:
23     void onRenameDone(KJob *job);
24     void onSubscribeDone(KJob *job);
25     void onSetAclDone(KJob *job);
26     void onSetMetaDataDone(KJob *job);
27 
28 protected:
29     void doStart(KIMAP::Session *session) override;
30 
31 private:
32     void endTaskIfNeeded();
33 
34     int m_pendingJobs = 0;
35     Akonadi::Collection m_collection;
36     bool m_syncEnabledState = true;
37 };
38 
39