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

0001 /*
0002    SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QObject>
0010 class PimDataBackupRestore;
0011 class LogInFile;
0012 class LogInfo;
0013 class PimDataExporterConsole : public QObject
0014 {
0015     Q_OBJECT
0016 public:
0017     enum Mode { Import = 0, Export = 1 };
0018 
0019     explicit PimDataExporterConsole(QObject *parent = nullptr);
0020     ~PimDataExporterConsole() override;
0021 
0022     [[nodiscard]] Mode mode() const;
0023     void setMode(Mode mode);
0024 
0025     void setLogFileName(const QString &logFileName);
0026 
0027     void setTemplateFileName(const QString &templateFileName);
0028 
0029     void start();
0030 
0031     [[nodiscard]] QString importExportFileName() const;
0032     void setImportExportFileName(const QString &importFileName);
0033 
0034 Q_SIGNALS:
0035     void finished();
0036 
0037 private:
0038     void slotAddEndLine();
0039     void slotAddError(const QString &message);
0040     void slotAddInfo(const QString &message);
0041     void slotAddTitle(const QString &message);
0042     void slotJobFailed();
0043     void slotBackupDone();
0044     void slotJobFinished();
0045     void slotRestoreDone();
0046 
0047     void initializeLogInFile();
0048     void closeLogFile();
0049     QString mTemplateFileName;
0050     QString mImportExportFileName;
0051     PimDataBackupRestore *const mPimDataBackupRestore;
0052     LogInFile *mLogInFile = nullptr;
0053     LogInfo *const mLogInfo;
0054     Mode mMode = Import;
0055     bool mInProgress = false;
0056 };