diff options
author | Valerio Valerio <valerio.valerio@jollamobile.com> | 2013-01-14 14:12:28 +0200 |
---|---|---|
committer | Robin Burchell <robin+qt@viroteck.net> | 2013-01-16 08:29:22 +0100 |
commit | 73a5e18c075df4239cc4ac832393e88f2bb679b1 (patch) | |
tree | b9c03e830d399d8b4c7f95e3b8ebad6ac8a0ab7d | |
parent | ad3add755f9c153ae77214bfb010980418b730e9 (diff) |
Set Inbox as standard folder for IMAP4 accounts.testtag_16012013
Set Inbox as standard folder when discovered for the first time for IMAP4 accounts.
According to IMAP4 RFC(3501), a case-insensitive mailbox name "INBOX"
has always to exist on the server.
Signed-off-by: Valerio Valerio <valerio.valerio@jollamobile.com>
Change-Id: Ifa598a57c8eff2c2c236162a76128ad231d79581
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
-rw-r--r-- | src/plugins/messageservices/imap/imapclient.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/plugins/messageservices/imap/imapclient.cpp b/src/plugins/messageservices/imap/imapclient.cpp index b4538508..6b764b41 100644 --- a/src/plugins/messageservices/imap/imapclient.cpp +++ b/src/plugins/messageservices/imap/imapclient.cpp @@ -942,10 +942,12 @@ void ImapClient::mailboxListed(const QString &flags, const QString &path) //don't let inbox be deleted/renamed folder.setStatus(QMailFolder::DeletionPermitted, false); folder.setStatus(QMailFolder::RenamePermitted, false); + folder.setStatus(QMailFolder::InboxFolder, true); folderFlags.append(" \\Inbox"); } else { folder.setStatus(QMailFolder::DeletionPermitted, true); folder.setStatus(QMailFolder::RenamePermitted, true); + folder.setStatus(QMailFolder::InboxFolder, false); } // Only folders beneath the base folder are relevant @@ -958,8 +960,17 @@ void ImapClient::mailboxListed(const QString &flags, const QString &path) if (!QMailStore::instance()->addFolder(&folder)) { qWarning() << "Unable to add folder for account:" << folder.parentAccountId() << "path:" << folder.path(); } + else { + //set inbox as standardFolder + if (folder.status() & QMailFolder::InboxFolder) { + account.setStandardFolder(QMailFolder::InboxFolder, folder.id()); + if (!QMailStore::instance()->updateAccount(&account)) { + qWarning() << "Unable to update account" << account.id(); + } + } + } } - + setFolderFlags(&account, &folder, folderFlags, _protocol.capabilities().contains("XLIST")); // requires valid folder.id() _strategyContext->mailboxListed(folder, folderFlags); |