diff options
author | Michael Bohlender <michael.bohlender@kdemail.net> | 2015-12-08 18:32:41 +0100 |
---|---|---|
committer | Michael Bohlender <michael.bohlender@kdemail.net> | 2015-12-08 18:32:41 +0100 |
commit | 727be50d12e4366df6add54d9e9fb249352316f6 (patch) | |
tree | ca385f2cafdf07c53f8eb745f163f0538c934abe | |
parent | 09de3c5275e0eabe9a13ccfefeb230f69b89dff4 (diff) | |
download | kube-727be50d12e4366df6add54d9e9fb249352316f6.tar.gz kube-727be50d12e4366df6add54d9e9fb249352316f6.zip |
maillist controller now accepts folderIds, creates a query and loads the model
-rw-r--r-- | framework/mail/maillistcontroller.cpp | 24 | ||||
-rw-r--r-- | framework/mail/maillistcontroller.h | 10 | ||||
-rw-r--r-- | framework/mail/maillistmodel.cpp | 14 | ||||
-rw-r--r-- | framework/mail/maillistmodel.h | 6 |
4 files changed, 29 insertions, 25 deletions
diff --git a/framework/mail/maillistcontroller.cpp b/framework/mail/maillistcontroller.cpp index d2e00991..67bfe4fe 100644 --- a/framework/mail/maillistcontroller.cpp +++ b/framework/mail/maillistcontroller.cpp | |||
@@ -3,7 +3,6 @@ | |||
3 | #include <QStringList> | 3 | #include <QStringList> |
4 | 4 | ||
5 | #include <akonadi2common/clientapi.h> | 5 | #include <akonadi2common/clientapi.h> |
6 | #include <akonadi2common/query.h> | ||
7 | 6 | ||
8 | #include "maillistmodel.h" | 7 | #include "maillistmodel.h" |
9 | 8 | ||
@@ -17,17 +16,26 @@ MailListModel *MailListController::model() const | |||
17 | 16 | ||
18 | } | 17 | } |
19 | 18 | ||
20 | QString MailListController::query() const | 19 | QString MailListController::folderId() const |
21 | { | 20 | { |
22 | return m_query; | 21 | return m_folderId; |
23 | } | 22 | } |
24 | 23 | ||
25 | void MailListController::setQuery(const QString &query) | 24 | void MailListController::setFolderId(const QString &folderId) |
26 | { | 25 | { |
27 | qDebug() << "set query"; | 26 | if (m_folderId != folderId) { |
28 | if (m_query != query) { | 27 | m_folderId = folderId; |
29 | m_query = query; | 28 | |
30 | emit queryChanged(); | 29 | |
30 | Akonadi2::Query query; | ||
31 | query.syncOnDemand = false; | ||
32 | query.processAll = false; | ||
33 | query.liveQuery = true; | ||
34 | query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important"; | ||
35 | query.ids << folderId.toLatin1(); | ||
36 | m_model->runQuery(query); | ||
37 | |||
38 | emit folderIdChanged(); | ||
31 | } | 39 | } |
32 | } | 40 | } |
33 | 41 | ||
diff --git a/framework/mail/maillistcontroller.h b/framework/mail/maillistcontroller.h index ab29c779..9e972e18 100644 --- a/framework/mail/maillistcontroller.h +++ b/framework/mail/maillistcontroller.h | |||
@@ -10,23 +10,23 @@ | |||
10 | class MailListController : public QObject | 10 | class MailListController : public QObject |
11 | { | 11 | { |
12 | Q_OBJECT | 12 | Q_OBJECT |
13 | Q_PROPERTY (QString query READ query WRITE setQuery NOTIFY queryChanged) | 13 | Q_PROPERTY (QString folderId READ folderId WRITE setFolderId NOTIFY folderIdChanged) |
14 | Q_PROPERTY (MailListModel *model READ model CONSTANT) | 14 | Q_PROPERTY (MailListModel *model READ model CONSTANT) |
15 | 15 | ||
16 | public: | 16 | public: |
17 | explicit MailListController(QObject *parent = Q_NULLPTR); | 17 | explicit MailListController(QObject *parent = Q_NULLPTR); |
18 | 18 | ||
19 | QString query() const; | 19 | QString folderId() const; |
20 | void setQuery(const QString &query); | 20 | void setFolderId(const QString &query); |
21 | MailListModel *model() const; | 21 | MailListModel *model() const; |
22 | 22 | ||
23 | signals: | 23 | signals: |
24 | void queryChanged(); | 24 | void folderIdChanged(); |
25 | 25 | ||
26 | public slots: | 26 | public slots: |
27 | void addMail(QString subject); | 27 | void addMail(QString subject); |
28 | 28 | ||
29 | private: | 29 | private: |
30 | QString m_query; | 30 | QString m_folderId; |
31 | QScopedPointer<MailListModel> m_model; | 31 | QScopedPointer<MailListModel> m_model; |
32 | }; | 32 | }; |
diff --git a/framework/mail/maillistmodel.cpp b/framework/mail/maillistmodel.cpp index baa11bc3..144c1970 100644 --- a/framework/mail/maillistmodel.cpp +++ b/framework/mail/maillistmodel.cpp | |||
@@ -1,17 +1,9 @@ | |||
1 | #include "maillistmodel.h" | 1 | #include "maillistmodel.h" |
2 | #include <akonadi2common/clientapi.h> | ||
3 | |||
4 | 2 | ||
5 | MailListModel::MailListModel(QObject *parent) | 3 | MailListModel::MailListModel(QObject *parent) |
6 | : QIdentityProxyModel() | 4 | : QIdentityProxyModel() |
7 | { | 5 | { |
8 | Akonadi2::Query query; | 6 | |
9 | query.syncOnDemand = false; | ||
10 | query.processAll = false; | ||
11 | query.liveQuery = true; | ||
12 | query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important"; | ||
13 | mModel = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Mail>(query); | ||
14 | setSourceModel(mModel.data()); | ||
15 | } | 7 | } |
16 | 8 | ||
17 | MailListModel::~MailListModel() | 9 | MailListModel::~MailListModel() |
@@ -53,7 +45,9 @@ QVariant MailListModel::data(const QModelIndex &idx, int role) const | |||
53 | return QIdentityProxyModel::data(idx, role); | 45 | return QIdentityProxyModel::data(idx, role); |
54 | } | 46 | } |
55 | 47 | ||
56 | void MailListModel::runQuery(const QString& query) | 48 | void MailListModel::runQuery(const Akonadi2::Query &query) |
57 | { | 49 | { |
50 | m_model = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Mail>(query); | ||
51 | setSourceModel(m_model.data()); | ||
58 | } | 52 | } |
59 | 53 | ||
diff --git a/framework/mail/maillistmodel.h b/framework/mail/maillistmodel.h index 3784bea0..572aa80d 100644 --- a/framework/mail/maillistmodel.h +++ b/framework/mail/maillistmodel.h | |||
@@ -1,5 +1,7 @@ | |||
1 | #pragma once | 1 | #pragma once |
2 | 2 | ||
3 | #include <akonadi2common/clientapi.h> | ||
4 | |||
3 | #include <QIdentityProxyModel> | 5 | #include <QIdentityProxyModel> |
4 | #include <QSharedPointer> | 6 | #include <QSharedPointer> |
5 | #include <QStringList> | 7 | #include <QStringList> |
@@ -25,7 +27,7 @@ public: | |||
25 | 27 | ||
26 | QHash<int, QByteArray> roleNames() const; | 28 | QHash<int, QByteArray> roleNames() const; |
27 | 29 | ||
28 | void runQuery(const QString &query); | 30 | void runQuery(const Akonadi2::Query &query); |
29 | private: | 31 | private: |
30 | QSharedPointer<QAbstractItemModel> mModel; | 32 | QSharedPointer<QAbstractItemModel> m_model; |
31 | }; | 33 | }; |