summaryrefslogtreecommitdiffstats
path: root/framework/domain/maillistmodel.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-02-24 12:01:05 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-02-24 12:01:05 +0100
commit08b857c641d3a62f00b2b7fcbfa1fd51773d170c (patch)
tree7d8e905078962219690b3549aa8670f6075dcc76 /framework/domain/maillistmodel.cpp
parent99c4d53fd86440ee6c8a76c9d320a319ff5da7bc (diff)
downloadkube-08b857c641d3a62f00b2b7fcbfa1fd51773d170c.tar.gz
kube-08b857c641d3a62f00b2b7fcbfa1fd51773d170c.zip
Only fetch every mail once.
Diffstat (limited to 'framework/domain/maillistmodel.cpp')
-rw-r--r--framework/domain/maillistmodel.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/framework/domain/maillistmodel.cpp b/framework/domain/maillistmodel.cpp
index e0b74a3a..58a6b384 100644
--- a/framework/domain/maillistmodel.cpp
+++ b/framework/domain/maillistmodel.cpp
@@ -20,9 +20,6 @@
20 20
21#include "maillistmodel.h" 21#include "maillistmodel.h"
22 22
23#include <QFile>
24#include <QDateTime>
25
26#include <sink/standardqueries.h> 23#include <sink/standardqueries.h>
27 24
28MailListModel::MailListModel(QObject *parent) 25MailListModel::MailListModel(QObject *parent)
@@ -74,10 +71,11 @@ static QString join(const QList<Sink::ApplicationDomain::Mail::Contact> &contact
74 return list.join(", "); 71 return list.join(", ");
75} 72}
76 73
77void fetchMail(Sink::ApplicationDomain::Mail::Ptr mail) 74void MailListModel::fetchMail(Sink::ApplicationDomain::Mail::Ptr mail) const
78{ 75{
79 if (mail && !mail->getFullPayloadAvailable()) { 76 if (mail && !mail->getFullPayloadAvailable() && !mFetchedMails.contains(mail->identifier())) {
80 qDebug() << "Fetching mail: " << mail->identifier() << mail->getSubject(); 77 qDebug() << "Fetching mail: " << mail->identifier() << mail->getSubject();
78 mFetchedMails.insert(mail->identifier());
81 Sink::Store::synchronize(Sink::SyncScope{*mail}).exec(); 79 Sink::Store::synchronize(Sink::SyncScope{*mail}).exec();
82 } 80 }
83} 81}
@@ -208,6 +206,7 @@ void MailListModel::setMail(const QVariant &variant)
208 query.request<Mail::MimeMessage>(); 206 query.request<Mail::MimeMessage>();
209 query.request<Mail::FullPayloadAvailable>(); 207 query.request<Mail::FullPayloadAvailable>();
210 mFetchMails = true; 208 mFetchMails = true;
209 mFetchedMails.clear();
211 qDebug() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier(); 210 qDebug() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier();
212 //Latest mail at the bottom 211 //Latest mail at the bottom
213 sort(0, Qt::AscendingOrder); 212 sort(0, Qt::AscendingOrder);