File indexing completed on 2024-06-16 05:00:32

0001 /*
0002    SPDX-FileCopyrightText: 2012-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "exportcalendarjobinterfaceimpl.h"
0008 #include <MailCommon/MailUtil>
0009 
0010 #include <KConfigGroup>
0011 
0012 #include "resourceconverterimpl.h"
0013 
0014 #include "exportresourcearchivejob.h"
0015 #include <QStandardPaths>
0016 
0017 ExportCalendarJobInterfaceImpl::ExportCalendarJobInterfaceImpl(QObject *parent,
0018                                                                Utils::StoredTypes typeSelected,
0019                                                                ArchiveStorage *archiveStorage,
0020                                                                int numberOfStep)
0021     : ExportCalendarJobInterface(parent, typeSelected, archiveStorage, numberOfStep)
0022 {
0023 }
0024 
0025 ExportCalendarJobInterfaceImpl::~ExportCalendarJobInterfaceImpl() = default;
0026 
0027 QList<Utils::AkonadiInstanceInfo> ExportCalendarJobInterfaceImpl::listOfResource()
0028 {
0029     return Utils::listOfResource();
0030 }
0031 
0032 Akonadi::Collection::Id ExportCalendarJobInterfaceImpl::convertFolderPathToCollectionId(const QString &path)
0033 {
0034     ResourceConverterImpl converter;
0035     return converter.convertFolderPathToCollectionId(path);
0036 }
0037 
0038 void ExportCalendarJobInterfaceImpl::convertCollectionListToRealPath(KConfigGroup &group, const QString &currentKey)
0039 {
0040     ResourceConverterImpl converter;
0041     converter.convertCollectionListToRealPath(group, currentKey);
0042 }
0043 
0044 QString ExportCalendarJobInterfaceImpl::convertToFullCollectionPath(const qlonglong collectionValue)
0045 {
0046     ResourceConverterImpl converter;
0047     return converter.convertToFullCollectionPath(collectionValue);
0048 }
0049 
0050 void ExportCalendarJobInterfaceImpl::exportResourceToArchive(const QString &archivePath, const QString &url, const QString &identifier)
0051 {
0052     auto resourceJob = new ExportResourceArchiveJob(this);
0053     resourceJob->setArchivePath(archivePath);
0054     resourceJob->setUrl(url);
0055     resourceJob->setIdentifier(identifier);
0056     resourceJob->setArchive(archive());
0057     resourceJob->setArchiveName(Utils::resourceCalendarArchiveName());
0058     connect(resourceJob, &ExportResourceArchiveJob::error, this, &ExportCalendarJobInterfaceImpl::error);
0059     connect(resourceJob, &ExportResourceArchiveJob::info, this, &ExportCalendarJobInterfaceImpl::info);
0060     connect(resourceJob, &ExportResourceArchiveJob::terminated, this, &ExportCalendarJobInterfaceImpl::slotCalendarJobTerminated);
0061     resourceJob->start();
0062 }
0063 
0064 QString ExportCalendarJobInterfaceImpl::resourcePath(const QString &identifier) const
0065 {
0066     ResourceConverterImpl converter;
0067     const QString url = converter.resourcePath(identifier);
0068     return url;
0069 }
0070 
0071 void ExportCalendarJobInterfaceImpl::backupCalendarResourceFile(const QString &agentIdentifier, const QString &defaultPath)
0072 {
0073     backupResourceFile(agentIdentifier, defaultPath);
0074 }
0075 
0076 QString ExportCalendarJobInterfaceImpl::adaptNewResourceUrl(bool overwriteResources, const KSharedConfig::Ptr &resourceConfig, const QString &storePath)
0077 {
0078     ResourceConverterImpl converter;
0079     return converter.adaptNewResourceUrl(overwriteResources, resourceConfig, storePath);
0080 }
0081 
0082 QString
0083 ExportCalendarJobInterfaceImpl::createResource(const QString &resources, const QString &name, const QMap<QString, QVariant> &settings, bool synchronizeTree)
0084 {
0085     Q_UNUSED(resources);
0086     Q_UNUSED(name);
0087     Q_UNUSED(settings);
0088     Q_UNUSED(synchronizeTree);
0089     Q_UNREACHABLE();
0090     return {};
0091 }
0092 
0093 #include "moc_exportcalendarjobinterfaceimpl.cpp"