From 727be50d12e4366df6add54d9e9fb249352316f6 Mon Sep 17 00:00:00 2001 From: Michael Bohlender Date: Tue, 8 Dec 2015 18:32:41 +0100 Subject: maillist controller now accepts folderIds, creates a query and loads the model --- framework/mail/maillistcontroller.cpp | 24 ++++++++++++++++-------- framework/mail/maillistcontroller.h | 10 +++++----- framework/mail/maillistmodel.cpp | 14 ++++---------- framework/mail/maillistmodel.h | 6 ++++-- 4 files changed, 29 insertions(+), 25 deletions(-) (limited to 'framework/mail') 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 @@ #include #include -#include #include "maillistmodel.h" @@ -17,17 +16,26 @@ MailListModel *MailListController::model() const } -QString MailListController::query() const +QString MailListController::folderId() const { - return m_query; + return m_folderId; } -void MailListController::setQuery(const QString &query) +void MailListController::setFolderId(const QString &folderId) { - qDebug() << "set query"; - if (m_query != query) { - m_query = query; - emit queryChanged(); + if (m_folderId != folderId) { + m_folderId = folderId; + + + Akonadi2::Query query; + query.syncOnDemand = false; + query.processAll = false; + query.liveQuery = true; + query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important"; + query.ids << folderId.toLatin1(); + m_model->runQuery(query); + + emit folderIdChanged(); } } 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 @@ class MailListController : public QObject { Q_OBJECT - Q_PROPERTY (QString query READ query WRITE setQuery NOTIFY queryChanged) + Q_PROPERTY (QString folderId READ folderId WRITE setFolderId NOTIFY folderIdChanged) Q_PROPERTY (MailListModel *model READ model CONSTANT) public: explicit MailListController(QObject *parent = Q_NULLPTR); - QString query() const; - void setQuery(const QString &query); + QString folderId() const; + void setFolderId(const QString &query); MailListModel *model() const; signals: - void queryChanged(); + void folderIdChanged(); public slots: void addMail(QString subject); private: - QString m_query; + QString m_folderId; QScopedPointer m_model; }; 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 @@ #include "maillistmodel.h" -#include - MailListModel::MailListModel(QObject *parent) : QIdentityProxyModel() { - Akonadi2::Query query; - query.syncOnDemand = false; - query.processAll = false; - query.liveQuery = true; - query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important"; - mModel = Akonadi2::Store::loadModel(query); - setSourceModel(mModel.data()); + } MailListModel::~MailListModel() @@ -53,7 +45,9 @@ QVariant MailListModel::data(const QModelIndex &idx, int role) const return QIdentityProxyModel::data(idx, role); } -void MailListModel::runQuery(const QString& query) +void MailListModel::runQuery(const Akonadi2::Query &query) { + m_model = Akonadi2::Store::loadModel(query); + setSourceModel(m_model.data()); } 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 @@ #pragma once +#include + #include #include #include @@ -25,7 +27,7 @@ public: QHash roleNames() const; - void runQuery(const QString &query); + void runQuery(const Akonadi2::Query &query); private: - QSharedPointer mModel; + QSharedPointer m_model; }; -- cgit v1.2.3