diff options
author | Eric Springer <[email protected]> | 2010-01-13 15:36:41 +1000 |
---|---|---|
committer | Eric Springer <[email protected]> | 2010-01-13 16:08:49 +1000 |
commit | 1c93eb56b7de260fc4978cb41790939055e87ecb (patch) | |
tree | 914c15728cea2d8c9d47805d9870989768bc6944 | |
parent | 710829088211fe027ce1eff7e65552203fe02ecc (diff) |
Add progress events to ImapFolderList
This needs to be reviewed.
-rw-r--r-- | src/plugins/messageservices/imap/imapstrategy.cpp | 15 | ||||
-rw-r--r-- | src/plugins/messageservices/imap/imapstrategy.h | 7 |
2 files changed, 8 insertions, 14 deletions
diff --git a/src/plugins/messageservices/imap/imapstrategy.cpp b/src/plugins/messageservices/imap/imapstrategy.cpp index 82bf7019..a37d49fc 100644 --- a/src/plugins/messageservices/imap/imapstrategy.cpp +++ b/src/plugins/messageservices/imap/imapstrategy.cpp @@ -1298,6 +1298,7 @@ void ImapFolderListStrategy::clearSelection() void ImapFolderListStrategy::selectedFoldersAppend(const QMailFolderIdList& ids) { _mailboxIds += ids; + _processable += ids.count(); } void ImapFolderListStrategy::newConnection(ImapStrategyContextBase *context) @@ -1453,6 +1454,8 @@ void ImapFolderListStrategy::processFolder(ImapStrategyContextBase *context) context->protocol().sendList(_currentMailbox, "%"); else context->protocol().sendSelect(_currentMailbox); + + context->progressChanged(++_processed, _processable); } void ImapFolderListStrategy::folderListCompleted(ImapStrategyContextBase *context) @@ -1839,21 +1842,11 @@ void ImapRetrieveFolderListStrategy::handleList(ImapStrategyContextBase *context ImapSynchronizeBaseStrategy::handleList(context); } -void ImapRetrieveFolderListStrategy::processNextFolder(ImapStrategyContextBase *context) +void ImapRetrieveFolderListStrategy::folderListCompleted(ImapStrategyContextBase *context) { - if (nextFolder()) { - processFolder(context); - return; - } - // We should have discovered all available mailboxes now _mailboxList = context->client()->mailboxIds(); - folderListCompleted(context); -} - -void ImapRetrieveFolderListStrategy::folderListCompleted(ImapStrategyContextBase *context) -{ removeDeletedMailboxes(context); // We have retrieved all the folders - process any messages diff --git a/src/plugins/messageservices/imap/imapstrategy.h b/src/plugins/messageservices/imap/imapstrategy.h index 40067c17..d3a116f7 100644 --- a/src/plugins/messageservices/imap/imapstrategy.h +++ b/src/plugins/messageservices/imap/imapstrategy.h @@ -328,7 +328,7 @@ protected: class ImapFolderListStrategy : public ImapFetchSelectedMessagesStrategy { public: - ImapFolderListStrategy() {} + ImapFolderListStrategy() : _processed(0), _processable(0) {} virtual ~ImapFolderListStrategy() {} virtual void clearSelection(); @@ -366,6 +366,9 @@ protected: QMailFolderIdList _mailboxIds; QMap<QMailFolderId, FolderStatus> _folderStatus; + + int _processed; + int _processable; }; class ImapUpdateMessagesFlagsStrategy : public ImapFolderListStrategy @@ -460,8 +463,6 @@ protected: virtual void folderListCompleted(ImapStrategyContextBase *context); - virtual void processNextFolder(ImapStrategyContextBase *context); - void removeDeletedMailboxes(ImapStrategyContextBase *context); QMailFolderId _baseId; |