File indexing completed on 2024-05-12 05:25:33
0001 /* 0002 SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "exportresourcearchivejob.h" 0008 #include "pimdatabackupthread.h" 0009 #include "pimdataexportcore_debug.h" 0010 #include "storeresourcejob.h" 0011 #include <KZip> 0012 0013 #include <Akonadi/ServerManager> 0014 0015 ExportResourceArchiveJob::ExportResourceArchiveJob(QObject *parent) 0016 : QObject(parent) 0017 { 0018 } 0019 0020 ExportResourceArchiveJob::~ExportResourceArchiveJob() = default; 0021 0022 void ExportResourceArchiveJob::setArchive(KZip *zip) 0023 { 0024 mZip = zip; 0025 } 0026 0027 void ExportResourceArchiveJob::setIdentifier(const QString &identifier) 0028 { 0029 mIdentifier = identifier; 0030 } 0031 0032 void ExportResourceArchiveJob::setUrl(const QString &url) 0033 { 0034 mUrl = url; 0035 } 0036 0037 void ExportResourceArchiveJob::setArchivePath(const QString &archivePath) 0038 { 0039 mArchivePath = archivePath; 0040 } 0041 0042 void ExportResourceArchiveJob::setArchiveName(const QString &archiveName) 0043 { 0044 mArchiveName = archiveName; 0045 } 0046 0047 void ExportResourceArchiveJob::start() 0048 { 0049 if (mZip) { 0050 mThread = new PimDataBackupThread(mZip, mUrl, mArchivePath, mArchiveName); 0051 connect(mThread, &PimDataBackupThread::error, this, &ExportResourceArchiveJob::error); 0052 connect(mThread, &PimDataBackupThread::info, this, &ExportResourceArchiveJob::info); 0053 connect(mThread, &PimDataBackupThread::terminated, this, &ExportResourceArchiveJob::slotTerminated); 0054 connect(mThread, &QThread::finished, mThread, &QObject::deleteLater); 0055 mThread->start(); 0056 } else { 0057 qCDebug(PIMDATAEXPORTERCORE_LOG) << "zip not defined !"; 0058 finished(); 0059 } 0060 } 0061 0062 void ExportResourceArchiveJob::slotTerminated(bool success) 0063 { 0064 if (success) { 0065 auto job = new StoreResourceJob(this); 0066 connect(job, &StoreResourceJob::error, this, &ExportResourceArchiveJob::error); 0067 connect(job, &StoreResourceJob::info, this, &ExportResourceArchiveJob::info); 0068 job->setArchivePath(mArchivePath); 0069 job->setZip(mZip); 0070 job->setIdentifier(mIdentifier); 0071 job->start(); 0072 } 0073 finished(); 0074 } 0075 0076 void ExportResourceArchiveJob::slotTaskCanceled() 0077 { 0078 qCDebug(PIMDATAEXPORTERCORE_LOG) << " void ExportResourceArchiveJob::slotTaskCanceled()"; 0079 if (mThread) { 0080 mThread->exit(); 0081 } 0082 } 0083 0084 void ExportResourceArchiveJob::finished() 0085 { 0086 Q_EMIT terminated(); 0087 deleteLater(); 0088 } 0089 0090 #include "moc_exportresourcearchivejob.cpp"