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 };