diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-02-08 14:24:43 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-02-08 14:24:43 +0100 |
commit | 792e3a05c4506302d1ff00ef7b012440f3510c17 (patch) | |
tree | 228f2ec4d08aa4442461840e1e376affe6a6c0d6 /examples | |
parent | 0277baf81448b0ec0fbbd92b21c321f91ba994d0 (diff) | |
download | sink-792e3a05c4506302d1ff00ef7b012440f3510c17.tar.gz sink-792e3a05c4506302d1ff00ef7b012440f3510c17.zip |
Don't hardcode capabilities
Diffstat (limited to 'examples')
-rw-r--r-- | examples/imapresource/imapserverproxy.cpp | 8 | ||||
-rw-r--r-- | examples/imapresource/imapserverproxy.h | 7 |
2 files changed, 13 insertions, 2 deletions
diff --git a/examples/imapresource/imapserverproxy.cpp b/examples/imapresource/imapserverproxy.cpp index e329911..d3de6ba 100644 --- a/examples/imapresource/imapserverproxy.cpp +++ b/examples/imapresource/imapserverproxy.cpp | |||
@@ -62,6 +62,10 @@ const char* Imap::FolderFlags::Archive = "\\Archive"; | |||
62 | const char* Imap::FolderFlags::Junk = "\\Junk"; | 62 | const char* Imap::FolderFlags::Junk = "\\Junk"; |
63 | const char* Imap::FolderFlags::Flagged = "\\Flagged"; | 63 | const char* Imap::FolderFlags::Flagged = "\\Flagged"; |
64 | 64 | ||
65 | const char* Imap::Capabilities::Namespace = "NAMESPACE"; | ||
66 | const char* Imap::Capabilities::Uidplus = "UIDPLUS"; | ||
67 | const char* Imap::Capabilities::Condstore = "CONDSTORE"; | ||
68 | |||
65 | template <typename T> | 69 | template <typename T> |
66 | static KAsync::Job<T> runJob(KJob *job, const std::function<T(KJob*)> &f) | 70 | static KAsync::Job<T> runJob(KJob *job, const std::function<T(KJob*)> &f) |
67 | { | 71 | { |
@@ -145,7 +149,7 @@ KAsync::Job<void> ImapServerProxy::login(const QString &username, const QString | |||
145 | 149 | ||
146 | return runJob(loginJob).then(runJob(capabilitiesJob)).then([this](){ | 150 | return runJob(loginJob).then(runJob(capabilitiesJob)).then([this](){ |
147 | SinkTrace() << "Supported capabilities: " << mCapabilities; | 151 | SinkTrace() << "Supported capabilities: " << mCapabilities; |
148 | QStringList requiredExtensions = QStringList() << "UIDPLUS" << "NAMESPACE"; | 152 | QStringList requiredExtensions = QStringList() << Capabilities::Uidplus << Capabilities::Namespace; |
149 | for (const auto &requiredExtension : requiredExtensions) { | 153 | for (const auto &requiredExtension : requiredExtensions) { |
150 | if (!mCapabilities.contains(requiredExtension)) { | 154 | if (!mCapabilities.contains(requiredExtension)) { |
151 | SinkWarning() << "Server doesn't support required capability: " << requiredExtension; | 155 | SinkWarning() << "Server doesn't support required capability: " << requiredExtension; |
@@ -182,7 +186,7 @@ KAsync::Job<SelectResult> ImapServerProxy::select(const QString &mailbox) | |||
182 | { | 186 | { |
183 | auto select = new KIMAP2::SelectJob(mSession); | 187 | auto select = new KIMAP2::SelectJob(mSession); |
184 | select->setMailBox(mailbox); | 188 | select->setMailBox(mailbox); |
185 | select->setCondstoreEnabled(mCapabilities.contains("CONDSTORE")); | 189 | select->setCondstoreEnabled(mCapabilities.contains(Capabilities::Condstore)); |
186 | return runJob<SelectResult>(select, [select](KJob* job) -> SelectResult { | 190 | return runJob<SelectResult>(select, [select](KJob* job) -> SelectResult { |
187 | return {select->uidValidity(), select->nextUid(), select->highestModSequence()}; | 191 | return {select->uidValidity(), select->nextUid(), select->highestModSequence()}; |
188 | }).onError([=] (const KAsync::Error &error) { | 192 | }).onError([=] (const KAsync::Error &error) { |
diff --git a/examples/imapresource/imapserverproxy.h b/examples/imapresource/imapserverproxy.h index 081750f..84343eb 100644 --- a/examples/imapresource/imapserverproxy.h +++ b/examples/imapresource/imapserverproxy.h | |||
@@ -56,6 +56,13 @@ namespace FolderFlags | |||
56 | extern const char* All; | 56 | extern const char* All; |
57 | } | 57 | } |
58 | 58 | ||
59 | namespace Capabilities | ||
60 | { | ||
61 | extern const char* Condstore; | ||
62 | extern const char* Uidplus; | ||
63 | extern const char* Namespace; | ||
64 | } | ||
65 | |||
59 | struct Message { | 66 | struct Message { |
60 | qint64 uid; | 67 | qint64 uid; |
61 | qint64 size; | 68 | qint64 size; |