summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Springer <eric.springer@nokia.com>2011-07-13 18:47:16 +1000
committerEric Springer <eric.springer@nokia.com>2011-07-13 18:47:16 +1000
commit5031e603685efae43f811ef08e3681a4310b35d5 (patch)
treee3d395ba7a9358d1fce4105ac02a711d3446e071
parent848d9022250da7790892b4c0fdc1a0a62ecb9bd0 (diff)
Try to prevent retrieveMessageLists selecting unselectable folder2011W28
-rw-r--r--src/plugins/messageservices/imap/imapservice.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/plugins/messageservices/imap/imapservice.cpp b/src/plugins/messageservices/imap/imapservice.cpp
index 2f387a29..529a4ea5 100644
--- a/src/plugins/messageservices/imap/imapservice.cpp
+++ b/src/plugins/messageservices/imap/imapservice.cpp
@@ -156,6 +156,7 @@ public slots:
void queueFlagsChangedCheck();
void resetExpiryTimer();
void expireStrategy();
+ void emitActionSuccessfullyCompleted();
private:
bool doDelete(const QMailMessageIdList & ids);
@@ -207,12 +208,19 @@ bool ImapService::Source::retrieveFolderList(const QMailAccountId &accountId, co
bool ImapService::Source::retrieveMessageLists(const QMailAccountId &accountId, const QMailFolderIdList &folderIds, uint minimum, const QMailMessageSortKey &sort)
{
- if (folderIds.isEmpty()) {
- _service->errorOccurred(QMailServiceAction::Status::ErrInvalidData, tr("No folders specified"));
- return false;
+ QMailFolderIdList ids;
+
+ foreach (const QMailFolderId &id, folderIds) {
+ if (QMailFolder(id).status() & QMailFolder::MessagesPermitted)
+ ids.append(id);
+ }
+
+ if (ids.isEmpty()) {
+ QTimer::singleShot(0, this, SLOT(emitActionSuccessfullyCompleted()));
+ return true;
}
- return retrieveMessageLists(accountId, folderIds, minimum, sort, true /* accountCheck */);
+ return retrieveMessageLists(accountId, ids, minimum, sort, true /* accountCheck */);
}
bool ImapService::Source::retrieveMessageList(const QMailAccountId &accountId, const QMailFolderId &folderId, uint minimum, const QMailMessageSortKey &sort)
@@ -1261,6 +1269,11 @@ void ImapService::Source::expireStrategy()
_service->enable();
}
+void ImapService::Source::emitActionSuccessfullyCompleted()
+{
+ _service->actionCompleted(true);
+}
+
ImapService::ImapService(const QMailAccountId &accountId)
: QMailMessageService(),
_accountId(accountId),