1 /* 2 SPDX-FileCopyrightText: 2012-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #pragma once 8 #include "pimdataexportcore_debug.h" 9 #include "pimdataexporter_export.h" 10 #include <KSharedConfig> 11 #include <QString> 12 class KZip; 13 14 struct ResourceFiles { 15 QString akonadiConfigFile; 16 QString akonadiResources; 17 QString akonadiAgentConfigFile; debugResourceFiles18 void debug() const 19 { 20 qDebug() << " akonadiconfigfile :" << akonadiConfigFile << " akonadiResources:" << akonadiResources 21 << " akonadiAgentConfigFile:" << akonadiAgentConfigFile; 22 } 23 24 bool operator<(const ResourceFiles &other) const 25 { 26 return other.akonadiConfigFile < akonadiConfigFile; 27 } 28 }; 29 30 namespace Utils 31 { 32 struct AkonadiInstanceInfo { 33 QString identifier; 34 QStringList mimeTypes; 35 QStringList capabilities; 36 }; 37 enum StoredType { 38 None = 0, 39 Identity = 1, 40 Mails = 2, 41 MailTransport = 4, 42 Resources = 8, 43 Config = 16, 44 Data = 32 45 // TODO add more type to import/export 46 }; 47 Q_DECLARE_FLAGS(StoredTypes, StoredType) 48 49 enum AppsType { Unknown = 0, KMail, KAddressBook, KAlarm, KOrganizer, KNotes, Akregator }; 50 51 struct importExportParameters { importExportParametersimportExportParameters52 importExportParameters() 53 : numberSteps(0) 54 , types(None) 55 { 56 } 57 isEmptyimportExportParameters58 bool isEmpty() const 59 { 60 return types == None; 61 } 62 63 int numberSteps; 64 Utils::StoredTypes types; 65 }; 66 67 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString transportsPath(); 68 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString resourcesPath(); 69 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString identitiesPath(); 70 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString mailsPath(); 71 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString configsPath(); 72 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString akonadiPath(); 73 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString dataPath(); 74 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString calendarPath(); 75 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString addressbookPath(); 76 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString alarmPath(); 77 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString infoPath(); 78 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString notePath(); 79 80 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString storeMails(); 81 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString backupnote(); 82 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString storeCalendar(); 83 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString storeAlarm(); 84 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString storeAddressbook(); 85 86 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString resourceNoteArchiveName(); 87 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString resourceAddressbookArchiveName(); 88 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString resourceAlarmArchiveName(); 89 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString resourceCalendarArchiveName(); 90 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString resourceMailArchiveName(); 91 92 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString prefixAkonadiConfigFile(); 93 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString exportDataTypeFileName(); 94 Q_REQUIRED_RESULT QString akonadiAgentName(const QString &configPath); 95 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QVector<Utils::AkonadiInstanceInfo> listOfResource(); 96 97 KZip *openZip(const QString &filename, QString &errorMsg); 98 PIMDATAEXPORTER_EXPORT void storeDataExportInfo(KZip *archive, const QString &exportInfoFileName); 99 100 PIMDATAEXPORTER_EXPORT void addVersion(KZip *archive); 101 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT int archiveVersion(KZip *archive); 102 103 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT int currentArchiveVersion(); 104 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString appTypeToI18n(AppsType type); 105 PIMDATAEXPORTER_EXPORT Q_REQUIRED_RESULT QString storedTypeToI18n(StoredType type); 106 } 107 Q_DECLARE_TYPEINFO(Utils::AkonadiInstanceInfo, Q_MOVABLE_TYPE); 108 Q_DECLARE_METATYPE(Utils::StoredTypes) 109