aboutsummaryrefslogtreecommitdiffstats
path: root/src/messaging/IMAPFolder.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2004-12-17 17:02:18 +0000
committerVincent Richard <[email protected]>2004-12-17 17:02:18 +0000
commit90b9650ede514a6cbc01a7e7501df3c9afed7c8f (patch)
tree0de1be429125a4bae8740be5cbec9bafbe248aaf /src/messaging/IMAPFolder.cpp
parentUpdated function doc. (diff)
downloadvmime-90b9650ede514a6cbc01a7e7501df3c9afed7c8f.tar.gz
vmime-90b9650ede514a6cbc01a7e7501df3c9afed7c8f.zip
Fixed bugs with message count notification.
Diffstat (limited to 'src/messaging/IMAPFolder.cpp')
-rw-r--r--src/messaging/IMAPFolder.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/messaging/IMAPFolder.cpp b/src/messaging/IMAPFolder.cpp
index 7544dc2c..0cbb860a 100644
--- a/src/messaging/IMAPFolder.cpp
+++ b/src/messaging/IMAPFolder.cpp
@@ -1214,11 +1214,26 @@ void IMAPFolder::expunge()
}
}
+ m_messageCount -= nums.size();
+
// Notify message expunged
events::messageCountEvent event(this, events::messageCountEvent::TYPE_REMOVED, nums);
- m_messageCount -= nums.size();
notifyMessageCount(event);
+
+ // Notify folders with the same path
+ for (std::list <IMAPFolder*>::iterator it = m_store->m_folders.begin() ;
+ it != m_store->m_folders.end() ; ++it)
+ {
+ if ((*it) != this && (*it)->getFullPath() == m_path)
+ {
+ (*it)->m_messageCount = m_messageCount;
+
+ events::messageCountEvent event(*it, events::messageCountEvent::TYPE_REMOVED, nums);
+
+ (*it)->notifyMessageCount(event);
+ }
+ }
}
@@ -1474,12 +1489,18 @@ void IMAPFolder::status(int& count, int& unseen)
events::messageCountEvent event(this, events::messageCountEvent::TYPE_ADDED, nums);
+ notifyMessageCount(event);
+
+ // Notify folders with the same path
for (std::list <IMAPFolder*>::iterator it = m_store->m_folders.begin() ;
it != m_store->m_folders.end() ; ++it)
{
- if ((*it)->getFullPath() == m_path)
+ if ((*it) != this && (*it)->getFullPath() == m_path)
{
(*it)->m_messageCount = count;
+
+ events::messageCountEvent event(*it, events::messageCountEvent::TYPE_ADDED, nums);
+
(*it)->notifyMessageCount(event);
}
}