summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDon Sanders <don.sanders@nokia.com>2012-02-13 16:19:46 +0200
committerDon Sanders <don.sanders@nokia.com>2012-02-13 16:19:46 +0200
commit2748890d12ac4ab642a18f70850c3108394d07a1 (patch)
tree0730c3eadcd37150640e2d3e36eb4cc0df37e66c
parent04f6666d9d9e9ad3e701f7853819bea1413b1425 (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.cpp15
-rw-r--r--src/plugins/messageservices/pop/popclient.cpp5
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;
}