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"