summaryrefslogtreecommitdiffstats
path: root/framework/domain/maillistmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/domain/maillistmodel.cpp')
-rw-r--r--framework/domain/maillistmodel.cpp21
1 files changed, 1 insertions, 20 deletions
diff --git a/framework/domain/maillistmodel.cpp b/framework/domain/maillistmodel.cpp
index a995451e..c96f6dd1 100644
--- a/framework/domain/maillistmodel.cpp
+++ b/framework/domain/maillistmodel.cpp
@@ -27,8 +27,6 @@ MailListModel::MailListModel(QObject *parent)
27{ 27{
28 setDynamicSortFilter(true); 28 setDynamicSortFilter(true);
29 sort(0, Qt::DescendingOrder); 29 sort(0, Qt::DescendingOrder);
30 connect(&mFetchTimer, &QTimer::timeout, this, &MailListModel::fetch);
31 mFetchTimer.setSingleShot(true);
32} 30}
33 31
34MailListModel::~MailListModel() 32MailListModel::~MailListModel()
@@ -78,24 +76,7 @@ void MailListModel::fetchMail(Sink::ApplicationDomain::Mail::Ptr mail)
78 if (mail && !mail->getFullPayloadAvailable() && !mFetchedMails.contains(mail->identifier())) { 76 if (mail && !mail->getFullPayloadAvailable() && !mFetchedMails.contains(mail->identifier())) {
79 qDebug() << "Fetching mail: " << mail->identifier() << mail->getSubject(); 77 qDebug() << "Fetching mail: " << mail->identifier() << mail->getSubject();
80 mFetchedMails.insert(mail->identifier()); 78 mFetchedMails.insert(mail->identifier());
81 mMailsToFetch << *mail; 79 Sink::Store::synchronize(Sink::SyncScope{*mail}).exec();
82 //TODO it would be nicer if Sink could just transparently merge synchronization requeusts.
83 if (!mFetchTimer.isActive()) {
84 mFetchTimer.start(50);
85 }
86 }
87}
88
89void MailListModel::fetch()
90{
91 if (!mMailsToFetch.isEmpty()) {
92 auto first = mMailsToFetch.first();
93 auto scope = Sink::SyncScope{first};
94 for (const auto &m : mMailsToFetch) {
95 scope.filter(m.identifier());
96 }
97 Sink::Store::synchronize(scope).exec();
98 mMailsToFetch.clear();
99 } 80 }
100} 81}
101 82