diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-06-20 16:00:10 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-06-20 16:00:10 +0200 |
commit | 5475eab39364c7608e1a34504401ff09e3b80726 (patch) | |
tree | 68006eefdafb8fab481554e3399b70d145b15265 /examples/imapresource/imapserverproxy.cpp | |
parent | 893f6c75d1da2c0154d68fc5888f9a7cc43b76a6 (diff) | |
download | sink-5475eab39364c7608e1a34504401ff09e3b80726.tar.gz sink-5475eab39364c7608e1a34504401ff09e3b80726.zip |
Detect and skip noselect folders
Diffstat (limited to 'examples/imapresource/imapserverproxy.cpp')
-rw-r--r-- | examples/imapresource/imapserverproxy.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/examples/imapresource/imapserverproxy.cpp b/examples/imapresource/imapserverproxy.cpp index 49711a9..a82e3ac 100644 --- a/examples/imapresource/imapserverproxy.cpp +++ b/examples/imapresource/imapserverproxy.cpp | |||
@@ -44,6 +44,11 @@ const char* Imap::Flags::Deleted = "\\Deleted"; | |||
44 | const char* Imap::Flags::Answered = "\\Answered"; | 44 | const char* Imap::Flags::Answered = "\\Answered"; |
45 | const char* Imap::Flags::Flagged = "\\Flagged"; | 45 | const char* Imap::Flags::Flagged = "\\Flagged"; |
46 | 46 | ||
47 | const char* Imap::FolderFlags::Noselect = "\\Noselect"; | ||
48 | const char* Imap::FolderFlags::Noinferiors = "\\Noinferiors"; | ||
49 | const char* Imap::FolderFlags::Marked = "\\Marked"; | ||
50 | const char* Imap::FolderFlags::Unmarked = "\\Unmarked"; | ||
51 | |||
47 | template <typename T> | 52 | template <typename T> |
48 | static KAsync::Job<T> runJob(KJob *job, const std::function<T(KJob*)> &f) | 53 | static KAsync::Job<T> runJob(KJob *job, const std::function<T(KJob*)> &f) |
49 | { | 54 | { |
@@ -359,9 +364,12 @@ KAsync::Job<void> ImapServerProxy::fetchFolders(std::function<void(const QVector | |||
359 | Trace() << "Fetching folders"; | 364 | Trace() << "Fetching folders"; |
360 | return list(KIMAP::ListJob::IncludeUnsubscribed, [callback](const QList<KIMAP::MailBoxDescriptor> &mailboxes, const QList<QList<QByteArray> > &flags){ | 365 | return list(KIMAP::ListJob::IncludeUnsubscribed, [callback](const QList<KIMAP::MailBoxDescriptor> &mailboxes, const QList<QList<QByteArray> > &flags){ |
361 | QVector<Folder> list; | 366 | QVector<Folder> list; |
362 | for (const auto &mailbox : mailboxes) { | 367 | for (int i = 0; i < mailboxes.size(); i++) { |
363 | Trace() << "Found mailbox: " << mailbox.name; | 368 | const auto mailbox = mailboxes[i]; |
364 | list << Folder{mailbox.name.split(mailbox.separator), mailbox.name, mailbox.separator}; | 369 | const auto mailboxFlags = flags[i]; |
370 | bool noselect = mailboxFlags.contains(QByteArray(FolderFlags::Noselect).toLower()) || mailboxFlags.contains(QByteArray(FolderFlags::Noselect)); | ||
371 | Log() << "Found mailbox: " << mailbox.name << mailboxFlags << FolderFlags::Noselect << noselect; | ||
372 | list << Folder{mailbox.name.split(mailbox.separator), mailbox.name, mailbox.separator, noselect}; | ||
365 | } | 373 | } |
366 | callback(list); | 374 | callback(list); |
367 | }); | 375 | }); |