File indexing completed on 2024-05-12 05:11:07

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