File indexing completed on 2024-05-12 05:25:34

0001 /*
0002    SPDX-FileCopyrightText: 2012-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #pragma once
0007 
0008 #include "pimdataexporter_export.h"
0009 #include <MailCommon/MailInterfaces>
0010 
0011 namespace Akonadi
0012 {
0013 class EntityTreeModel;
0014 class EntityMimeTypeFilterModel;
0015 }
0016 
0017 namespace MailCommon
0018 {
0019 class FolderCollectionMonitor;
0020 }
0021 
0022 class PIMDATAEXPORTER_EXPORT PimDataExporterKernel : public QObject, public MailCommon::IKernel, public MailCommon::ISettings
0023 {
0024 public:
0025     explicit PimDataExporterKernel(QObject *parent = nullptr);
0026 
0027     KIdentityManagementCore::IdentityManager *identityManager() override;
0028     MessageComposer::MessageSender *msgSender() override;
0029 
0030     Akonadi::EntityMimeTypeFilterModel *collectionModel() const override;
0031     KSharedConfig::Ptr config() override;
0032     void syncConfig() override;
0033     MailCommon::JobScheduler *jobScheduler() const override;
0034     Akonadi::ChangeRecorder *folderCollectionMonitor() const override;
0035     void updateSystemTray() override;
0036 
0037     qreal closeToQuotaThreshold() override;
0038     bool excludeImportantMailFromExpiry() override;
0039     QStringList customTemplates() override;
0040     Akonadi::Collection::Id lastSelectedFolder() override;
0041     void setLastSelectedFolder(Akonadi::Collection::Id col) override;
0042     bool showPopupAfterDnD() override;
0043     void expunge(Akonadi::Collection::Id col, bool sync) override;
0044 
0045 private:
0046     KIdentityManagementCore::IdentityManager *mIdentityManager = nullptr;
0047     MailCommon::FolderCollectionMonitor *mFolderCollectionMonitor = nullptr;
0048     Akonadi::EntityTreeModel *mEntityTreeModel = nullptr;
0049     Akonadi::EntityMimeTypeFilterModel *mCollectionModel = nullptr;
0050 };