Merge remote-tracking branch 'origin/KDE/4.10'
[kdepim.git] / archivemailagent / archivemailkernel.h
blobee23161863e87611b3c8a7a8069168ca0b90c28f
1 /*
2 Copyright (c) 2012-2013 Montel Laurent <montel.org>
4 This program is free software; you can redistribute it and/or modify it
5 under the terms of the GNU General Public License, version 2, as
6 published by the Free Software Foundation.
8 This program is distributed in the hope that it will be useful, but
9 WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 General Public License for more details.
13 You should have received a copy of the GNU General Public License along
14 with this program; if not, write to the Free Software Foundation, Inc.,
15 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 #ifndef ARCHIVEMAILKERNEL_H
19 #define ARCHIVEMAILKERNEL_H
21 #include <mailcommon/mailinterfaces.h>
23 namespace Akonadi {
24 class EntityTreeModel;
25 class EntityMimeTypeFilterModel;
28 namespace MailCommon {
29 class FolderCollectionMonitor;
30 class JobScheduler;
33 class ArchiveMailKernel : public QObject, public MailCommon::IKernel, public MailCommon::ISettings
35 public:
36 explicit ArchiveMailKernel( QObject *parent = 0 );
38 KPIMIdentities::IdentityManager *identityManager();
39 MessageSender *msgSender();
41 Akonadi::EntityMimeTypeFilterModel *collectionModel() const;
42 KSharedConfig::Ptr config();
43 void syncConfig();
44 MailCommon::JobScheduler* jobScheduler() const;
45 Akonadi::ChangeRecorder *folderCollectionMonitor() const;
46 void updateSystemTray();
48 qreal closeToQuotaThreshold();
49 bool excludeImportantMailFromExpiry();
50 QStringList customTemplates();
51 Akonadi::Entity::Id lastSelectedFolder();
52 void setLastSelectedFolder(const Akonadi::Entity::Id& col);
53 bool showPopupAfterDnD();
56 private:
57 KPIMIdentities::IdentityManager *mIdentityManager;
58 MailCommon::FolderCollectionMonitor *mFolderCollectionMonitor;
59 Akonadi::EntityTreeModel *mEntityTreeModel;
60 Akonadi::EntityMimeTypeFilterModel *mCollectionModel;
61 MailCommon::JobScheduler* mJobScheduler;
64 #endif