diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-08-30 00:35:03 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-09-15 16:14:19 +0200 |
commit | 4cd598035dcc297ad3a3af16fb5eda218c018a16 (patch) | |
tree | 1f2101c284d5aa0fdcba525f64ac18c2652df10f /examples/imapresource/imapserverproxy.cpp | |
parent | 8a0a4de6c51d5ef23ae86655a63536bd8386c575 (diff) | |
download | sink-4cd598035dcc297ad3a3af16fb5eda218c018a16.tar.gz sink-4cd598035dcc297ad3a3af16fb5eda218c018a16.zip |
Flag updates
Diffstat (limited to 'examples/imapresource/imapserverproxy.cpp')
-rw-r--r-- | examples/imapresource/imapserverproxy.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/examples/imapresource/imapserverproxy.cpp b/examples/imapresource/imapserverproxy.cpp index 25cbc57..4ce413a 100644 --- a/examples/imapresource/imapserverproxy.cpp +++ b/examples/imapresource/imapserverproxy.cpp | |||
@@ -416,6 +416,27 @@ QString ImapServerProxy::mailboxFromFolder(const Folder &folder) const | |||
416 | return folder.pathParts.join(mPersonalNamespaceSeparator); | 416 | return folder.pathParts.join(mPersonalNamespaceSeparator); |
417 | } | 417 | } |
418 | 418 | ||
419 | KAsync::Job<void> ImapServerProxy::fetchFlags(const Folder &folder, qint64 changedsince, std::function<void(const QVector<Message> &)> callback) | ||
420 | { | ||
421 | SinkTrace() << "Fetching flags " << folder.normalizedPath(); | ||
422 | return select(mailboxFromFolder(folder)).then<void, SelectResult>([=](const SelectResult &selectResult) -> KAsync::Job<void> { | ||
423 | SinkTrace() << "Modeseq " << folder.normalizedPath() << selectResult.highestModSequence << changedsince; | ||
424 | |||
425 | if (selectResult.highestModSequence == static_cast<quint64>(changedsince)) { | ||
426 | SinkTrace()<< folder.normalizedPath() << "Changedsince didn't change, nothing to do."; | ||
427 | return KAsync::null<void>(); | ||
428 | } | ||
429 | |||
430 | SinkTrace() << "Fetching flags " << folder.normalizedPath() << selectResult.highestModSequence << changedsince; | ||
431 | |||
432 | KIMAP2::FetchJob::FetchScope scope; | ||
433 | scope.mode = KIMAP2::FetchJob::FetchScope::Flags; | ||
434 | scope.changedSince = changedsince; | ||
435 | |||
436 | return fetch(KIMAP2::ImapSet(1, 0), scope, callback); | ||
437 | }); | ||
438 | } | ||
439 | |||
419 | KAsync::Job<void> ImapServerProxy::fetchMessages(const Folder &folder, qint64 uidNext, std::function<void(const QVector<Message> &)> callback, std::function<void(int, int)> progress) | 440 | KAsync::Job<void> ImapServerProxy::fetchMessages(const Folder &folder, qint64 uidNext, std::function<void(const QVector<Message> &)> callback, std::function<void(int, int)> progress) |
420 | { | 441 | { |
421 | auto time = QSharedPointer<QTime>::create(); | 442 | auto time = QSharedPointer<QTime>::create(); |
@@ -423,14 +444,14 @@ KAsync::Job<void> ImapServerProxy::fetchMessages(const Folder &folder, qint64 ui | |||
423 | Q_ASSERT(!mPersonalNamespaceSeparator.isNull()); | 444 | Q_ASSERT(!mPersonalNamespaceSeparator.isNull()); |
424 | return select(mailboxFromFolder(folder)).then<void, SelectResult>([this, callback, folder, time, progress, uidNext](const SelectResult &selectResult) -> KAsync::Job<void> { | 445 | return select(mailboxFromFolder(folder)).then<void, SelectResult>([this, callback, folder, time, progress, uidNext](const SelectResult &selectResult) -> KAsync::Job<void> { |
425 | 446 | ||
426 | SinkLog() << "UIDNEXT " << selectResult.uidNext << uidNext; | 447 | SinkTrace() << "UIDNEXT " << folder.normalizedPath() << selectResult.uidNext << uidNext; |
427 | if (selectResult.uidNext == (uidNext + 1)) { | 448 | if (selectResult.uidNext == (uidNext + 1)) { |
428 | SinkTrace() << "Uidnext didn't change, nothing to do."; | 449 | SinkTrace()<< folder.normalizedPath() << "Uidnext didn't change, nothing to do."; |
429 | return KAsync::null<void>(); | 450 | return KAsync::null<void>(); |
430 | } | 451 | } |
431 | 452 | ||
432 | return fetchHeaders(mailboxFromFolder(folder), (uidNext + 1)).then<void, QList<qint64>>([this, callback, time, progress](const QList<qint64> &uidsToFetch){ | 453 | return fetchHeaders(mailboxFromFolder(folder), (uidNext + 1)).then<void, QList<qint64>>([this, callback, time, progress, folder](const QList<qint64> &uidsToFetch){ |
433 | SinkTrace() << "Fetched headers"; | 454 | SinkTrace() << "Fetched headers" << folder.normalizedPath(); |
434 | SinkTrace() << " Total: " << uidsToFetch.size(); | 455 | SinkTrace() << " Total: " << uidsToFetch.size(); |
435 | SinkTrace() << " Uids to fetch: " << uidsToFetch; | 456 | SinkTrace() << " Uids to fetch: " << uidsToFetch; |
436 | SinkTrace() << " Took: " << Sink::Log::TraceTime(time->elapsed()); | 457 | SinkTrace() << " Took: " << Sink::Log::TraceTime(time->elapsed()); |