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 };