File indexing completed on 2024-05-12 05:10:35
0001 /* 0002 SPDX-FileCopyrightText: 2013 Sérgio Martins <iamsergio@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 0005 */ 0006 0007 #pragma once 0008 0009 #include "options.h" 0010 0011 #include <Akonadi/Collection> 0012 #include <KCalendarCore/MemoryCalendar> 0013 0014 #include <QList> 0015 #include <QObject> 0016 0017 class KJob; 0018 0019 class Backuper : public QObject 0020 { 0021 Q_OBJECT 0022 public: 0023 explicit Backuper(QObject *parent = nullptr); 0024 void backup(const QString &filename, const QList<Akonadi::Collection::Id> &collectionIds); 0025 0026 Q_SIGNALS: 0027 void finished(bool success, const QString &errorMessage); 0028 0029 private Q_SLOTS: 0030 void onCollectionsFetched(KJob *); 0031 void onCollectionLoaded(KJob *); 0032 0033 private: 0034 void loadCollection(const Akonadi::Collection &collection); 0035 void emitFinished(bool success, const QString &message); 0036 0037 QList<Akonadi::Collection::Id> m_requestedCollectionIds; 0038 QList<Akonadi::Collection::Id> m_pendingCollections; 0039 0040 Akonadi::Collection::List m_collections; 0041 QString m_filename; 0042 KCalendarCore::MemoryCalendar::Ptr m_calendar; 0043 0044 bool m_backupInProgress; 0045 };