diff options
Diffstat (limited to 'examples/imapresource')
-rw-r--r-- | examples/imapresource/imapresource.cpp | 3 | ||||
-rw-r--r-- | examples/imapresource/imapserverproxy.cpp | 13 | ||||
-rw-r--r-- | examples/imapresource/imapserverproxy.h | 2 |
3 files changed, 11 insertions, 7 deletions
diff --git a/examples/imapresource/imapresource.cpp b/examples/imapresource/imapresource.cpp index 0b1437a..8422b49 100644 --- a/examples/imapresource/imapresource.cpp +++ b/examples/imapresource/imapresource.cpp | |||
@@ -236,6 +236,9 @@ public: | |||
236 | 236 | ||
237 | modify(ENTITY_TYPE_MAIL, remoteId, mail); | 237 | modify(ENTITY_TYPE_MAIL, remoteId, mail); |
238 | } | 238 | } |
239 | }) | ||
240 | .syncThen<void, SelectResult>([this, folder](const SelectResult &selectResult) { | ||
241 | syncStore().writeValue(folder.normalizedPath().toUtf8() + "changedsince", QByteArray::number(selectResult.highestModSequence)); | ||
239 | }); | 242 | }); |
240 | }) | 243 | }) |
241 | .then<void>([=]() { | 244 | .then<void>([=]() { |
diff --git a/examples/imapresource/imapserverproxy.cpp b/examples/imapresource/imapserverproxy.cpp index 4ce413a..0f3524f 100644 --- a/examples/imapresource/imapserverproxy.cpp +++ b/examples/imapresource/imapserverproxy.cpp | |||
@@ -100,7 +100,7 @@ ImapServerProxy::ImapServerProxy(const QString &serverUrl, int port) : mSession( | |||
100 | if (Sink::Test::testModeEnabled()) { | 100 | if (Sink::Test::testModeEnabled()) { |
101 | mSession->setTimeout(1); | 101 | mSession->setTimeout(1); |
102 | } else { | 102 | } else { |
103 | mSession->setTimeout(10); | 103 | mSession->setTimeout(20); |
104 | } | 104 | } |
105 | } | 105 | } |
106 | 106 | ||
@@ -416,15 +416,15 @@ 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) | 419 | KAsync::Job<SelectResult> ImapServerProxy::fetchFlags(const Folder &folder, qint64 changedsince, std::function<void(const QVector<Message> &)> callback) |
420 | { | 420 | { |
421 | SinkTrace() << "Fetching flags " << folder.normalizedPath(); | 421 | SinkTrace() << "Fetching flags " << folder.normalizedPath(); |
422 | return select(mailboxFromFolder(folder)).then<void, SelectResult>([=](const SelectResult &selectResult) -> KAsync::Job<void> { | 422 | return select(mailboxFromFolder(folder)).then<SelectResult, SelectResult>([=](const SelectResult &selectResult) -> KAsync::Job<SelectResult> { |
423 | SinkTrace() << "Modeseq " << folder.normalizedPath() << selectResult.highestModSequence << changedsince; | 423 | SinkTrace() << "Modeseq " << folder.normalizedPath() << selectResult.highestModSequence << changedsince; |
424 | 424 | ||
425 | if (selectResult.highestModSequence == static_cast<quint64>(changedsince)) { | 425 | if (selectResult.highestModSequence == static_cast<quint64>(changedsince)) { |
426 | SinkTrace()<< folder.normalizedPath() << "Changedsince didn't change, nothing to do."; | 426 | SinkTrace()<< folder.normalizedPath() << "Changedsince didn't change, nothing to do."; |
427 | return KAsync::null<void>(); | 427 | return KAsync::value<SelectResult>(selectResult); |
428 | } | 428 | } |
429 | 429 | ||
430 | SinkTrace() << "Fetching flags " << folder.normalizedPath() << selectResult.highestModSequence << changedsince; | 430 | SinkTrace() << "Fetching flags " << folder.normalizedPath() << selectResult.highestModSequence << changedsince; |
@@ -433,7 +433,9 @@ KAsync::Job<void> ImapServerProxy::fetchFlags(const Folder &folder, qint64 chang | |||
433 | scope.mode = KIMAP2::FetchJob::FetchScope::Flags; | 433 | scope.mode = KIMAP2::FetchJob::FetchScope::Flags; |
434 | scope.changedSince = changedsince; | 434 | scope.changedSince = changedsince; |
435 | 435 | ||
436 | return fetch(KIMAP2::ImapSet(1, 0), scope, callback); | 436 | return fetch(KIMAP2::ImapSet(1, 0), scope, callback).syncThen<SelectResult>([selectResult] { |
437 | return selectResult; | ||
438 | }); | ||
437 | }); | 439 | }); |
438 | } | 440 | } |
439 | 441 | ||
@@ -443,7 +445,6 @@ KAsync::Job<void> ImapServerProxy::fetchMessages(const Folder &folder, qint64 ui | |||
443 | time->start(); | 445 | time->start(); |
444 | Q_ASSERT(!mPersonalNamespaceSeparator.isNull()); | 446 | Q_ASSERT(!mPersonalNamespaceSeparator.isNull()); |
445 | return select(mailboxFromFolder(folder)).then<void, SelectResult>([this, callback, folder, time, progress, uidNext](const SelectResult &selectResult) -> KAsync::Job<void> { | 447 | return select(mailboxFromFolder(folder)).then<void, SelectResult>([this, callback, folder, time, progress, uidNext](const SelectResult &selectResult) -> KAsync::Job<void> { |
446 | |||
447 | SinkTrace() << "UIDNEXT " << folder.normalizedPath() << selectResult.uidNext << uidNext; | 448 | SinkTrace() << "UIDNEXT " << folder.normalizedPath() << selectResult.uidNext << uidNext; |
448 | if (selectResult.uidNext == (uidNext + 1)) { | 449 | if (selectResult.uidNext == (uidNext + 1)) { |
449 | SinkTrace()<< folder.normalizedPath() << "Uidnext didn't change, nothing to do."; | 450 | SinkTrace()<< folder.normalizedPath() << "Uidnext didn't change, nothing to do."; |
diff --git a/examples/imapresource/imapserverproxy.h b/examples/imapresource/imapserverproxy.h index 83efc38..ff87d47 100644 --- a/examples/imapresource/imapserverproxy.h +++ b/examples/imapresource/imapserverproxy.h | |||
@@ -138,7 +138,7 @@ public: | |||
138 | KAsync::Job<void> fetchFolders(std::function<void(const QVector<Folder> &)> callback); | 138 | KAsync::Job<void> fetchFolders(std::function<void(const QVector<Folder> &)> callback); |
139 | KAsync::Job<void> fetchMessages(const Folder &folder, std::function<void(const QVector<Message> &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>()); | 139 | KAsync::Job<void> fetchMessages(const Folder &folder, std::function<void(const QVector<Message> &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>()); |
140 | KAsync::Job<void> fetchMessages(const Folder &folder, qint64 uidNext, std::function<void(const QVector<Message> &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>()); | 140 | KAsync::Job<void> fetchMessages(const Folder &folder, qint64 uidNext, std::function<void(const QVector<Message> &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>()); |
141 | KAsync::Job<void> fetchFlags(const Folder &folder, qint64 changedsince, std::function<void(const QVector<Message> &)> callback); | 141 | KAsync::Job<SelectResult> fetchFlags(const Folder &folder, qint64 changedsince, std::function<void(const QVector<Message> &)> callback); |
142 | KAsync::Job<QVector<qint64>> fetchUids(const Folder &folder); | 142 | KAsync::Job<QVector<qint64>> fetchUids(const Folder &folder); |
143 | 143 | ||
144 | private: | 144 | private: |