From 792e3a05c4506302d1ff00ef7b012440f3510c17 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 8 Feb 2017 14:24:43 +0100 Subject: Don't hardcode capabilities --- examples/imapresource/imapserverproxy.cpp | 8 ++++++-- examples/imapresource/imapserverproxy.h | 7 +++++++ 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'examples/imapresource') 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"; const char* Imap::FolderFlags::Junk = "\\Junk"; const char* Imap::FolderFlags::Flagged = "\\Flagged"; +const char* Imap::Capabilities::Namespace = "NAMESPACE"; +const char* Imap::Capabilities::Uidplus = "UIDPLUS"; +const char* Imap::Capabilities::Condstore = "CONDSTORE"; + template static KAsync::Job runJob(KJob *job, const std::function &f) { @@ -145,7 +149,7 @@ KAsync::Job ImapServerProxy::login(const QString &username, const QString return runJob(loginJob).then(runJob(capabilitiesJob)).then([this](){ SinkTrace() << "Supported capabilities: " << mCapabilities; - QStringList requiredExtensions = QStringList() << "UIDPLUS" << "NAMESPACE"; + QStringList requiredExtensions = QStringList() << Capabilities::Uidplus << Capabilities::Namespace; for (const auto &requiredExtension : requiredExtensions) { if (!mCapabilities.contains(requiredExtension)) { SinkWarning() << "Server doesn't support required capability: " << requiredExtension; @@ -182,7 +186,7 @@ KAsync::Job ImapServerProxy::select(const QString &mailbox) { auto select = new KIMAP2::SelectJob(mSession); select->setMailBox(mailbox); - select->setCondstoreEnabled(mCapabilities.contains("CONDSTORE")); + select->setCondstoreEnabled(mCapabilities.contains(Capabilities::Condstore)); return runJob(select, [select](KJob* job) -> SelectResult { return {select->uidValidity(), select->nextUid(), select->highestModSequence()}; }).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 extern const char* All; } +namespace Capabilities +{ + extern const char* Condstore; + extern const char* Uidplus; + extern const char* Namespace; +} + struct Message { qint64 uid; qint64 size; -- cgit v1.2.3