File indexing completed on 2024-05-12 05:25:33

0001 /*
0002    SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <KZip>
0010 #include <QObject>
0011 
0012 #include "pimdataexporter_export.h"
0013 class PIMDATAEXPORTER_EXPORT BackupResourceFileJobBase : public QObject
0014 {
0015     Q_OBJECT
0016 public:
0017     explicit BackupResourceFileJobBase(QObject *parent = nullptr);
0018     ~BackupResourceFileJobBase() override;
0019 
0020     void start();
0021 
0022     [[nodiscard]] bool canStart() const;
0023 
0024     [[nodiscard]] QString identifier() const;
0025     void setIdentifier(const QString &identifier);
0026 
0027     [[nodiscard]] KZip *zip() const;
0028     void setZip(KZip *zip);
0029 
0030     [[nodiscard]] QString defaultPath() const;
0031     void setDefaultPath(const QString &defaultPath);
0032 
0033     [[nodiscard]] virtual QString resourcePath(const QString &identifier) const = 0;
0034 Q_SIGNALS:
0035     void error(const QString &);
0036     void info(const QString &);
0037 
0038 private:
0039     void storeResource(const QString &archivePath);
0040     QString mDefaultPath;
0041     QString mIdentifier;
0042     KZip *mZip = nullptr;
0043 };