Warning, file /pim/pim-data-exporter/core/mail/exportmailjobinterface.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002    SPDX-FileCopyrightText: 2012-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "abstractimportexportjob.h"
0010 #include "pimdataexportercore_private_export.h"
0011 #include <KSharedConfig>
0012 #include <ctime>
0013 namespace MailCommon
0014 {
0015 class MailFilter;
0016 }
0017 class ArchiveStorage;
0018 
0019 class PIMDATAEXPORTER_TESTS_EXPORT ExportMailJobInterface : public AbstractImportExportJob
0020 {
0021     Q_OBJECT
0022 public:
0023     explicit ExportMailJobInterface(QObject *parent, Utils::StoredTypes typeSelected, ArchiveStorage *archiveStorage, int numberOfStep);
0024     ~ExportMailJobInterface() override;
0025 
0026     void start() override;
0027     void slotWriteNextArchiveResource();
0028     void slotMailsJobTerminated();
0029     [[nodiscard]] virtual QString convertToFullCollectionPath(const qlonglong collectionValue) = 0;
0030 
0031 Q_SIGNALS:
0032     void taskCanceled();
0033 
0034 protected:
0035     virtual void convertCollectionIdsToRealPath(KConfigGroup &group, const QString &currentKey, const QString &prefixCollection = QString()) = 0;
0036     virtual void convertCollectionToRealPath(KConfigGroup &group, const QString &currentKey) = 0;
0037     virtual void convertCollectionListToRealPath(KConfigGroup &group, const QString &currentKey) = 0;
0038     void backupResources();
0039     virtual QList<MailCommon::MailFilter *> filters() = 0;
0040     void slotCheckBackupResources();
0041     virtual void exportResourceToArchive(const QString &archivePath, const QString &url, const QString &identifier) = 0;
0042     [[nodiscard]] virtual QList<Utils::AkonadiInstanceInfo> listOfResource() = 0;
0043     [[nodiscard]] virtual QString storeResources(KZip *archive, const QString &identifier, const QString &path) = 0;
0044     [[nodiscard]] virtual QString resourcePath(const QString &identifier) const = 0;
0045     virtual void backupMailResourceFile(const QString &agentIdentifier, const QString &defaultPath) = 0;
0046     virtual void exportFilters() = 0;
0047     [[nodiscard]] virtual QList<uint> listIdentityUoid() const = 0;
0048 
0049     virtual void exportFolderAttributes() = 0;
0050     [[nodiscard]] QString applicationName() const override;
0051 
0052 private:
0053     void slotCheckBackupIdentity();
0054     void slotCheckBackupMailTransport();
0055     void slotCheckBackupConfig();
0056     void slotCheckBackupMails();
0057 
0058     [[nodiscard]] bool checkBackupType(Utils::StoredType type) const;
0059     void backupTransports();
0060     void backupConfig();
0061     void backupIdentity();
0062     void backupFolderAttributes();
0063 
0064 private:
0065     int mIndexIdentifier = 0;
0066 };