File indexing completed on 2024-05-12 05:25:34
0001 /* 0002 SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "storeresourcejob.h" 0008 #include "pimdataexportcore_debug.h" 0009 #include "resourceconverterimpl.h" 0010 #include <Akonadi/ServerManager> 0011 #include <KLocalizedString> 0012 #include <KZip> 0013 0014 #include <QFileInfo> 0015 0016 StoreResourceJob::StoreResourceJob(QObject *parent) 0017 : QObject(parent) 0018 { 0019 } 0020 0021 StoreResourceJob::~StoreResourceJob() = default; 0022 0023 void StoreResourceJob::setArchivePath(const QString &archivePath) 0024 { 0025 mArchivePath = archivePath; 0026 } 0027 0028 void StoreResourceJob::setIdentifier(const QString &identifier) 0029 { 0030 mIdentifier = identifier; 0031 } 0032 0033 void StoreResourceJob::setZip(KZip *zip) 0034 { 0035 mZip = zip; 0036 } 0037 0038 void StoreResourceJob::start() 0039 { 0040 if (!mZip) { 0041 qCWarning(PIMDATAEXPORTERCORE_LOG) << " mZip null it's a bug"; 0042 deleteLater(); 0043 return; 0044 } 0045 0046 ResourceConverterImpl converter; 0047 const QString errorStr = converter.storeResources(mZip, mIdentifier, mArchivePath); 0048 if (!errorStr.isEmpty()) { 0049 Q_EMIT error(errorStr); 0050 } 0051 const QString url = Akonadi::ServerManager::agentConfigFilePath(mIdentifier); 0052 if (!url.isEmpty()) { 0053 const QFileInfo fi(url); 0054 const QString filename = fi.fileName(); 0055 const bool fileAdded = mZip->addLocalFile(url, mArchivePath + filename); 0056 if (fileAdded) { 0057 Q_EMIT info(i18n("\"%1\" was backed up.", filename)); 0058 } else { 0059 Q_EMIT error(i18n("\"%1\" file cannot be added to backup file.", filename)); 0060 } 0061 } 0062 deleteLater(); 0063 } 0064 0065 #include "moc_storeresourcejob.cpp"