summaryrefslogtreecommitdiffstats
path: root/framework/mail/maillistcontroller.h
blob: 3c969403604fbb03001c1ea6e5e8ef4a58c91708 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once

#include "maillistmodel.h"

#include <QObject>
#include <QScopedPointer>
#include <QString>
#include <QAbstractItemModel>

class MailListController : public QObject
{
    Q_OBJECT
    Q_PROPERTY (MailListModel *model READ model CONSTANT)
    Q_PROPERTY (QString selectedMail READ selectedMail WRITE setSelectedMail NOTIFY selectedMailChanged)

public:
    explicit MailListController(QObject *parent = Q_NULLPTR);

    MailListModel *model() const;

    QString selectedMail() const;
    void setSelectedMail(const QString &id);

signals:
    void selectedMailChanged();

public slots:
    void loadAllMail();
    void loadUnreadMail();
    void loadImportantMail();
    void loadMailFolder(const QString &folderId);

    void markMailImportant(bool important);
    void markMailUnread(bool unread);
    void deleteMail();

private:
    QScopedPointer<MailListModel> m_model;

    QString m_selectedMail;
};