summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Bohlender <michael.bohlender@kdemail.net>2015-12-08 18:32:41 +0100
committerMichael Bohlender <michael.bohlender@kdemail.net>2015-12-08 18:32:41 +0100
commit727be50d12e4366df6add54d9e9fb249352316f6 (patch)
treeca385f2cafdf07c53f8eb745f163f0538c934abe
parent09de3c5275e0eabe9a13ccfefeb230f69b89dff4 (diff)
downloadkube-727be50d12e4366df6add54d9e9fb249352316f6.tar.gz
kube-727be50d12e4366df6add54d9e9fb249352316f6.zip
maillist controller now accepts folderIds, creates a query and loads the model
-rw-r--r--framework/mail/maillistcontroller.cpp24
-rw-r--r--framework/mail/maillistcontroller.h10
-rw-r--r--framework/mail/maillistmodel.cpp14
-rw-r--r--framework/mail/maillistmodel.h6
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
20QString MailListController::query() const 19QString MailListController::folderId() const
21{ 20{
22 return m_query; 21 return m_folderId;
23} 22}
24 23
25void MailListController::setQuery(const QString &query) 24void 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 @@
10class MailListController : public QObject 10class 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
16public: 16public:
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
23signals: 23signals:
24 void queryChanged(); 24 void folderIdChanged();
25 25
26public slots: 26public slots:
27 void addMail(QString subject); 27 void addMail(QString subject);
28 28
29private: 29private:
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
5MailListModel::MailListModel(QObject *parent) 3MailListModel::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
17MailListModel::~MailListModel() 9MailListModel::~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
56void MailListModel::runQuery(const QString& query) 48void 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);
29private: 31private:
30 QSharedPointer<QAbstractItemModel> mModel; 32 QSharedPointer<QAbstractItemModel> m_model;
31}; 33};