File indexing completed on 2024-05-12 05:23:47

0001 /*
0002    SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "mboximportkernel.h"
0008 
0009 #include <Akonadi/ChangeRecorder>
0010 #include <Akonadi/EntityMimeTypeFilterModel>
0011 #include <Akonadi/EntityTreeModel>
0012 #include <Akonadi/Session>
0013 #include <KIdentityManagementCore/IdentityManager>
0014 #include <KSharedConfig>
0015 #include <MailCommon/FolderCollectionMonitor>
0016 
0017 MBoxImporterKernel::MBoxImporterKernel(QObject *parent)
0018     : QObject(parent)
0019 {
0020     mIdentityManager = KIdentityManagementCore::IdentityManager::self();
0021     auto session = new Akonadi::Session("MBox importer Kernel ETM", this);
0022     mFolderCollectionMonitor = new MailCommon::FolderCollectionMonitor(session, this);
0023 
0024     mEntityTreeModel = new Akonadi::EntityTreeModel(folderCollectionMonitor(), this);
0025     mEntityTreeModel->setListFilter(Akonadi::CollectionFetchScope::Enabled);
0026     mEntityTreeModel->setItemPopulationStrategy(Akonadi::EntityTreeModel::LazyPopulation);
0027 
0028     mCollectionModel = new Akonadi::EntityMimeTypeFilterModel(this);
0029     mCollectionModel->setSourceModel(mEntityTreeModel);
0030     mCollectionModel->addMimeTypeInclusionFilter(Akonadi::Collection::mimeType());
0031     mCollectionModel->setHeaderGroup(Akonadi::EntityTreeModel::CollectionTreeHeaders);
0032     mCollectionModel->setDynamicSortFilter(true);
0033     mCollectionModel->setSortCaseSensitivity(Qt::CaseInsensitive);
0034 }
0035 
0036 KIdentityManagementCore::IdentityManager *MBoxImporterKernel::identityManager()
0037 {
0038     return mIdentityManager;
0039 }
0040 
0041 MessageComposer::MessageSender *MBoxImporterKernel::msgSender()
0042 {
0043     return nullptr;
0044 }
0045 
0046 Akonadi::EntityMimeTypeFilterModel *MBoxImporterKernel::collectionModel() const
0047 {
0048     return mCollectionModel;
0049 }
0050 
0051 KSharedConfig::Ptr MBoxImporterKernel::config()
0052 {
0053     return KSharedConfig::openConfig();
0054 }
0055 
0056 void MBoxImporterKernel::syncConfig()
0057 {
0058     Q_ASSERT(false);
0059 }
0060 
0061 MailCommon::JobScheduler *MBoxImporterKernel::jobScheduler() const
0062 {
0063     Q_ASSERT(false);
0064     return nullptr;
0065 }
0066 
0067 Akonadi::ChangeRecorder *MBoxImporterKernel::folderCollectionMonitor() const
0068 {
0069     return mFolderCollectionMonitor->monitor();
0070 }
0071 
0072 void MBoxImporterKernel::updateSystemTray()
0073 {
0074     Q_ASSERT(false);
0075 }
0076 
0077 bool MBoxImporterKernel::showPopupAfterDnD()
0078 {
0079     return false;
0080 }
0081 
0082 qreal MBoxImporterKernel::closeToQuotaThreshold()
0083 {
0084     return 80;
0085 }
0086 
0087 QStringList MBoxImporterKernel::customTemplates()
0088 {
0089     Q_ASSERT(false);
0090     return {};
0091 }
0092 
0093 bool MBoxImporterKernel::excludeImportantMailFromExpiry()
0094 {
0095     Q_ASSERT(false);
0096     return true;
0097 }
0098 
0099 Akonadi::Collection::Id MBoxImporterKernel::lastSelectedFolder()
0100 {
0101     Q_ASSERT(false);
0102     return Akonadi::Collection::Id();
0103 }
0104 
0105 void MBoxImporterKernel::setLastSelectedFolder(Akonadi::Collection::Id col)
0106 {
0107     Q_UNUSED(col)
0108 }
0109 
0110 void MBoxImporterKernel::expunge(Akonadi::Collection::Id col, bool sync)
0111 {
0112     Q_UNUSED(col)
0113     Q_UNUSED(sync)
0114 }
0115 
0116 #include "moc_mboximportkernel.cpp"