diff options
author | Don Sanders <don.sanders@nokia.com> | 2012-02-13 16:19:46 +0200 |
---|---|---|
committer | Don Sanders <don.sanders@nokia.com> | 2012-02-13 16:19:46 +0200 |
commit | 2748890d12ac4ab642a18f70850c3108394d07a1 (patch) | |
tree | 0730c3eadcd37150640e2d3e36eb4cc0df37e66c | |
parent | 04f6666d9d9e9ad3e701f7853819bea1413b1425 (diff) |
Correctly set standard INBOX folder.2012W07_1
For POP and IMAP accounts.
Also fix small bug where setFolderFlags was being called with
flags argument instead of folderFlags.
-rw-r--r-- | src/plugins/messageservices/imap/imapclient.cpp | 15 | ||||
-rw-r--r-- | src/plugins/messageservices/pop/popclient.cpp | 5 |
2 files changed, 13 insertions, 7 deletions
diff --git a/src/plugins/messageservices/imap/imapclient.cpp b/src/plugins/messageservices/imap/imapclient.cpp index ea0af890..6b198def 100644 --- a/src/plugins/messageservices/imap/imapclient.cpp +++ b/src/plugins/messageservices/imap/imapclient.cpp @@ -919,21 +919,22 @@ void ImapClient::mailboxListed(const QString &flags, const QString &path) folder.setStatus(QMailFolder::SynchronizationEnabled, true); folder.setStatus(QMailFolder::Incoming, true); + // The reported flags pertain to the listed folder only + QString folderFlags; + if (mailboxPath == path) { + folderFlags = flags; + } + if(QString::compare(path, "INBOX", Qt::CaseInsensitive) == 0) { //don't let inbox be deleted/renamed folder.setStatus(QMailFolder::DeletionPermitted, false); folder.setStatus(QMailFolder::RenamePermitted, false); + folderFlags.append(" \\Inbox"); } else { folder.setStatus(QMailFolder::DeletionPermitted, true); folder.setStatus(QMailFolder::RenamePermitted, true); } - // The reported flags pertain to the listed folder only - QString folderFlags; - if (mailboxPath == path) { - folderFlags = flags; - } - // Only folders beneath the base folder are relevant QString path(folder.path()); QString baseFolder(_strategyContext->baseFolder()); @@ -946,7 +947,7 @@ void ImapClient::mailboxListed(const QString &flags, const QString &path) } } - setFolderFlags(&account, &folder, flags); // requires valid folder.id() + setFolderFlags(&account, &folder, folderFlags); // requires valid folder.id() _strategyContext->mailboxListed(folder, folderFlags); if (!QMailStore::instance()->updateFolder(&folder)) { diff --git a/src/plugins/messageservices/pop/popclient.cpp b/src/plugins/messageservices/pop/popclient.cpp index ff0873b6..9fbcbb42 100644 --- a/src/plugins/messageservices/pop/popclient.cpp +++ b/src/plugins/messageservices/pop/popclient.cpp @@ -263,10 +263,15 @@ void PopClient::findInbox() childFolder.setDisplayName(tr("Inbox")); childFolder.setStatus(QMailFolder::SynchronizationEnabled, true); childFolder.setStatus(QMailFolder::Incoming, true); + childFolder.setStatus(QMailFolder::InboxFolder, true); if(!QMailStore::instance()->addFolder(&childFolder)) qWarning() << "Unable to add child folder to pop account"; folderId = childFolder.id(); + account.setStandardFolder(QMailFolder::InboxFolder, folderId); + if (!QMailStore::instance()->updateAccount(&account)) { + qWarning() << "Unable to update account" << account.id(); + } } partialContent = QMailFolder(folderId).status() & QMailFolder::PartialContent; } |