summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Springer <[email protected]>2010-01-13 15:36:41 +1000
committerEric Springer <[email protected]>2010-01-13 16:08:49 +1000
commit1c93eb56b7de260fc4978cb41790939055e87ecb (patch)
tree914c15728cea2d8c9d47805d9870989768bc6944
parent710829088211fe027ce1eff7e65552203fe02ecc (diff)
Add progress events to ImapFolderList
This needs to be reviewed.
-rw-r--r--src/plugins/messageservices/imap/imapstrategy.cpp15
-rw-r--r--src/plugins/messageservices/imap/imapstrategy.h7
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;