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

0001 /*
0002    SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "importmailjobinterface.h"
0010 #include "pimdataexportercore_private_export.h"
0011 #include <Akonadi/Collection>
0012 #include <Akonadi/SpecialMailCollections>
0013 #include <KArchive>
0014 #include <MailTransport/TransportManager>
0015 #include <QStringList>
0016 class ArchiveStorage;
0017 namespace KIdentityManagementCore
0018 {
0019 class Identity;
0020 class IdentityManager;
0021 }
0022 namespace MailTransport
0023 {
0024 class Transport;
0025 }
0026 class PIMDATAEXPORTER_TESTS_EXPORT ImportMailJobInterfaceImpl : public ImportMailJobInterface
0027 {
0028     Q_OBJECT
0029 public:
0030     explicit ImportMailJobInterfaceImpl(QObject *widget, Utils::StoredTypes typeSelected, ArchiveStorage *archiveStorage, int numberOfStep);
0031     ~ImportMailJobInterfaceImpl() override;
0032 
0033 protected:
0034     void registerSpecialCollection(Akonadi::SpecialMailCollections::Type type, qint64 colId) override;
0035     [[nodiscard]] QString createResource(const QString &resources, const QString &name, const QMap<QString, QVariant> &settings, bool synchronizeTree) override;
0036     [[nodiscard]] QString adaptResourcePath(const KSharedConfigPtr &resourceConfig, const QString &storedData) override;
0037     void synchronizeResource(const QStringList &lst) override;
0038     void importFilters(const QString &filename) override;
0039     [[nodiscard]] Akonadi::Collection::Id convertFolderPathToCollectionId(const QString &path) override;
0040     [[nodiscard]] QString adaptNewResourceUrl(bool overwriteResources, const KSharedConfig::Ptr &resourceConfig, const QString &storePath) override;
0041     void addNewIdentity(const QString &name, KConfigGroup &group, int defaultIdentities, int oldUid) override;
0042     void importCustomMailTransport(const QString &identifierValue, const KConfigGroup &group, int defaultTransport, int transportId) override;
0043     void importSmtpMailTransport(const SmtpMailTransport &smtpMailTransport, int defaultTransport, int transportId) override;
0044     void addMailTransport(MailTransport::Transport *mt, int defaultTransport, int transportId);
0045     [[nodiscard]] QString configLocation() const override;
0046     void importFolderAttributes() override final;
0047 
0048 private:
0049     [[nodiscard]] int convertEncryptionEnum(int val);
0050     [[nodiscard]] QString uniqueIdentityName(const QString &name);
0051     KIdentityManagementCore::IdentityManager *const mIdentityManager;
0052 };