summaryrefslogtreecommitdiffstats
path: root/framework/src
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2018-01-10 12:27:56 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2018-01-10 12:42:13 +0100
commita5f38b6541fbab0bdf31d5a804ec644af09a6b1b (patch)
tree9e5bec0ec777f09d4ebe1761feb5a4cfb5a5d240 /framework/src
parent6d726bb10386b3d7f5481d41b735ec06cb2163ad (diff)
downloadkube-a5f38b6541fbab0bdf31d5a804ec644af09a6b1b.tar.gz
kube-a5f38b6541fbab0bdf31d5a804ec644af09a6b1b.zip
The Inbox crusher as a first experimental view.
The extension itself is not really usable yet, but serves as a showcase.
Diffstat (limited to 'framework/src')
-rw-r--r--framework/src/domain/maillistmodel.cpp40
-rw-r--r--framework/src/domain/maillistmodel.h5
2 files changed, 45 insertions, 0 deletions
diff --git a/framework/src/domain/maillistmodel.cpp b/framework/src/domain/maillistmodel.cpp
index 83fd37ff..4b70a10a 100644
--- a/framework/src/domain/maillistmodel.cpp
+++ b/framework/src/domain/maillistmodel.cpp
@@ -339,3 +339,43 @@ bool MailListModel::showDrafts() const
339{ 339{
340 return false; 340 return false;
341} 341}
342
343void MailListModel::setShowInbox(bool)
344{
345 using namespace Sink::ApplicationDomain;
346
347 Sink::Query folderQuery{};
348 folderQuery.containsFilter<Sink::ApplicationDomain::Folder::SpecialPurpose>(Sink::ApplicationDomain::SpecialPurpose::Mail::inbox);
349 folderQuery.request<Sink::ApplicationDomain::Folder::SpecialPurpose>();
350 folderQuery.request<Sink::ApplicationDomain::Folder::Name>();
351
352 Sink::Query query;
353 query.setFlags(Sink::Query::LiveQuery);
354 query.filter<Sink::ApplicationDomain::Mail::Folder>(folderQuery);
355 query.sort<Mail::Date>();
356 query.request<Mail::Subject>();
357 query.request<Mail::Sender>();
358 query.request<Mail::To>();
359 query.request<Mail::Cc>();
360 query.request<Mail::Bcc>();
361 query.request<Mail::Date>();
362 query.request<Mail::Unread>();
363 query.request<Mail::Important>();
364 query.request<Mail::Draft>();
365 query.request<Mail::Folder>();
366 query.request<Mail::Sent>();
367 query.request<Mail::Trash>();
368 query.request<Mail::MimeMessage>();
369 query.request<Mail::FullPayloadAvailable>();
370 mFetchMails = true;
371 mFetchedMails.clear();
372 qDebug() << "Running mail query for drafts: ";
373 //Latest mail at the top
374 sort(0, Qt::DescendingOrder);
375 runQuery(query);
376}
377
378bool MailListModel::showInbox() const
379{
380 return false;
381}
diff --git a/framework/src/domain/maillistmodel.h b/framework/src/domain/maillistmodel.h
index 5f593700..ce0399f7 100644
--- a/framework/src/domain/maillistmodel.h
+++ b/framework/src/domain/maillistmodel.h
@@ -32,6 +32,8 @@ class MailListModel : public QSortFilterProxyModel
32 Q_PROPERTY (QVariant parentFolder READ parentFolder WRITE setParentFolder) 32 Q_PROPERTY (QVariant parentFolder READ parentFolder WRITE setParentFolder)
33 Q_PROPERTY (QVariant mail READ mail WRITE setMail) 33 Q_PROPERTY (QVariant mail READ mail WRITE setMail)
34 Q_PROPERTY (bool showDrafts READ showDrafts WRITE setShowDrafts) 34 Q_PROPERTY (bool showDrafts READ showDrafts WRITE setShowDrafts)
35 Q_PROPERTY (bool showInbox READ showInbox WRITE setShowInbox)
36
35 Q_PROPERTY (QString filter READ filter WRITE setFilter) 37 Q_PROPERTY (QString filter READ filter WRITE setFilter)
36 Q_PROPERTY (bool isThreaded READ isThreaded NOTIFY isThreadedChanged) 38 Q_PROPERTY (bool isThreaded READ isThreaded NOTIFY isThreadedChanged)
37 39
@@ -91,6 +93,9 @@ public:
91 void setShowDrafts(bool); 93 void setShowDrafts(bool);
92 bool showDrafts() const; 94 bool showDrafts() const;
93 95
96 void setShowInbox(bool);
97 bool showInbox() const;
98
94signals: 99signals:
95 void isThreadedChanged(); 100 void isThreadedChanged();
96 101