summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--framework/domain/maillistmodel.cpp17
-rw-r--r--framework/domain/maillistmodel.h1
2 files changed, 15 insertions, 3 deletions
diff --git a/framework/domain/maillistmodel.cpp b/framework/domain/maillistmodel.cpp
index 6fe80092..e0b74a3a 100644
--- a/framework/domain/maillistmodel.cpp
+++ b/framework/domain/maillistmodel.cpp
@@ -77,7 +77,7 @@ static QString join(const QList<Sink::ApplicationDomain::Mail::Contact> &contact
77void fetchMail(Sink::ApplicationDomain::Mail::Ptr mail) 77void fetchMail(Sink::ApplicationDomain::Mail::Ptr mail)
78{ 78{
79 if (mail && !mail->getFullPayloadAvailable()) { 79 if (mail && !mail->getFullPayloadAvailable()) {
80 qWarning() << "Fetching mail: " << mail->identifier() << mail->getSubject(); 80 qDebug() << "Fetching mail: " << mail->identifier() << mail->getSubject();
81 Sink::Store::synchronize(Sink::SyncScope{*mail}).exec(); 81 Sink::Store::synchronize(Sink::SyncScope{*mail}).exec();
82 } 82 }
83} 83}
@@ -145,9 +145,14 @@ void MailListModel::setParentFolder(const QVariant &parentFolder)
145 auto folder = parentFolder.value<Folder::Ptr>(); 145 auto folder = parentFolder.value<Folder::Ptr>();
146 if (!folder) { 146 if (!folder) {
147 qWarning() << "No folder: " << parentFolder; 147 qWarning() << "No folder: " << parentFolder;
148 mCurrentQueryItem.clear();
148 setSourceModel(nullptr); 149 setSourceModel(nullptr);
149 return; 150 return;
150 } 151 }
152 if (mCurrentQueryItem == folder->identifier()) {
153 return;
154 }
155 mCurrentQueryItem = folder->identifier();
151 Sink::Query query = Sink::StandardQueries::threadLeaders(*folder); 156 Sink::Query query = Sink::StandardQueries::threadLeaders(*folder);
152 query.setFlags(Sink::Query::LiveQuery); 157 query.setFlags(Sink::Query::LiveQuery);
153 query.limit(100); 158 query.limit(100);
@@ -163,7 +168,7 @@ void MailListModel::setParentFolder(const QVariant &parentFolder)
163 query.request<Mail::Trash>(); 168 query.request<Mail::Trash>();
164 query.request<Mail::Folder>(); 169 query.request<Mail::Folder>();
165 mFetchMails = false; 170 mFetchMails = false;
166 qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier(); 171 qDebug() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier();
167 //Latest mail on top 172 //Latest mail on top
168 sort(0, Qt::DescendingOrder); 173 sort(0, Qt::DescendingOrder);
169 runQuery(query); 174 runQuery(query);
@@ -180,10 +185,16 @@ void MailListModel::setMail(const QVariant &variant)
180 auto mail = variant.value<Sink::ApplicationDomain::Mail::Ptr>(); 185 auto mail = variant.value<Sink::ApplicationDomain::Mail::Ptr>();
181 if (!mail) { 186 if (!mail) {
182 qWarning() << "No mail: " << mail; 187 qWarning() << "No mail: " << mail;
188 mCurrentQueryItem.clear();
183 setSourceModel(nullptr); 189 setSourceModel(nullptr);
184 return; 190 return;
185 } 191 }
192 if (mCurrentQueryItem == mail->identifier()) {
193 return;
194 }
195 mCurrentQueryItem = mail->identifier();
186 Sink::Query query = Sink::StandardQueries::completeThread(*mail); 196 Sink::Query query = Sink::StandardQueries::completeThread(*mail);
197 query.setFlags(Sink::Query::LiveQuery);
187 query.request<Mail::Subject>(); 198 query.request<Mail::Subject>();
188 query.request<Mail::Sender>(); 199 query.request<Mail::Sender>();
189 query.request<Mail::To>(); 200 query.request<Mail::To>();
@@ -197,7 +208,7 @@ void MailListModel::setMail(const QVariant &variant)
197 query.request<Mail::MimeMessage>(); 208 query.request<Mail::MimeMessage>();
198 query.request<Mail::FullPayloadAvailable>(); 209 query.request<Mail::FullPayloadAvailable>();
199 mFetchMails = true; 210 mFetchMails = true;
200 qWarning() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier(); 211 qDebug() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier();
201 //Latest mail at the bottom 212 //Latest mail at the bottom
202 sort(0, Qt::AscendingOrder); 213 sort(0, Qt::AscendingOrder);
203 runQuery(query); 214 runQuery(query);
diff --git a/framework/domain/maillistmodel.h b/framework/domain/maillistmodel.h
index dbb24a4d..8c2609e0 100644
--- a/framework/domain/maillistmodel.h
+++ b/framework/domain/maillistmodel.h
@@ -72,4 +72,5 @@ public:
72private: 72private:
73 QSharedPointer<QAbstractItemModel> m_model; 73 QSharedPointer<QAbstractItemModel> m_model;
74 bool mFetchMails = false; 74 bool mFetchMails = false;
75 QByteArray mCurrentQueryItem;
75}; 76};