File indexing completed on 2024-05-12 05:25:34
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 #include "pimdataexportcore_debug.h" 0009 #include "pimdataexporter_export.h" 0010 #include <KSharedConfig> 0011 #include <QString> 0012 class KZip; 0013 0014 struct ResourceFiles { 0015 QString akonadiConfigFile; 0016 QString akonadiResources; 0017 QString akonadiAgentConfigFile; 0018 void debug() const 0019 { 0020 qDebug() << " akonadiconfigfile :" << akonadiConfigFile << " akonadiResources:" << akonadiResources 0021 << " akonadiAgentConfigFile:" << akonadiAgentConfigFile; 0022 } 0023 0024 bool operator<(const ResourceFiles &other) const 0025 { 0026 return other.akonadiConfigFile < akonadiConfigFile; 0027 } 0028 }; 0029 0030 namespace Utils 0031 { 0032 struct AkonadiInstanceInfo { 0033 QString identifier; 0034 QStringList mimeTypes; 0035 QStringList capabilities; 0036 }; 0037 enum StoredType { 0038 None = 0, 0039 Identity = 1, 0040 Mails = 2, 0041 MailTransport = 4, 0042 Resources = 8, 0043 Config = 16, 0044 Data = 32 0045 // TODO add more type to import/export 0046 }; 0047 Q_DECLARE_FLAGS(StoredTypes, StoredType) 0048 0049 enum AppsType { Unknown = 0, KMail, KAddressBook, KAlarm, KOrganizer, KNotes, Akregator }; 0050 0051 struct importExportParameters { 0052 importExportParameters() 0053 : numberSteps(0) 0054 , types(None) 0055 { 0056 } 0057 0058 bool isEmpty() const 0059 { 0060 return types == None; 0061 } 0062 0063 int numberSteps; 0064 Utils::StoredTypes types; 0065 }; 0066 0067 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString transportsPath(); 0068 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString resourcesPath(); 0069 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString identitiesPath(); 0070 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString mailsPath(); 0071 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString configsPath(); 0072 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString akonadiPath(); 0073 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString dataPath(); 0074 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString calendarPath(); 0075 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString addressbookPath(); 0076 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString alarmPath(); 0077 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString infoPath(); 0078 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString notePath(); 0079 0080 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString storeMails(); 0081 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString backupnote(); 0082 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString storeCalendar(); 0083 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString storeAlarm(); 0084 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString storeAddressbook(); 0085 0086 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString resourceNoteArchiveName(); 0087 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString resourceAddressbookArchiveName(); 0088 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString resourceAlarmArchiveName(); 0089 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString resourceCalendarArchiveName(); 0090 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString resourceMailArchiveName(); 0091 0092 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString prefixAkonadiConfigFile(); 0093 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString exportDataTypeFileName(); 0094 [[nodiscard]] QString akonadiAgentName(const QString &configPath); 0095 [[nodiscard]] PIMDATAEXPORTER_EXPORT QList<Utils::AkonadiInstanceInfo> listOfResource(); 0096 0097 KZip *openZip(const QString &filename, QString &errorMsg); 0098 PIMDATAEXPORTER_EXPORT void storeDataExportInfo(KZip *archive, const QString &exportInfoFileName); 0099 0100 PIMDATAEXPORTER_EXPORT void addVersion(KZip *archive); 0101 [[nodiscard]] PIMDATAEXPORTER_EXPORT int archiveVersion(KZip *archive); 0102 0103 [[nodiscard]] PIMDATAEXPORTER_EXPORT int currentArchiveVersion(); 0104 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString appTypeToI18n(AppsType type); 0105 [[nodiscard]] PIMDATAEXPORTER_EXPORT QString storedTypeToI18n(StoredType type); 0106 } 0107 Q_DECLARE_TYPEINFO(Utils::AkonadiInstanceInfo, Q_RELOCATABLE_TYPE); 0108 Q_DECLARE_METATYPE(Utils::StoredTypes)