diff --git a/kmfolder.cpp b/kmfolder.cpp index b216d9b63..57b516ee0 100644 --- a/kmfolder.cpp +++ b/kmfolder.cpp @@ -12,6 +12,7 @@ #include "kmidentity.h" #include "kmfoldermgr.h" #include "kmkernel.h" +#include "kmcommands.h" #include #include @@ -183,7 +184,6 @@ void KMFolder::setIdentity( uint identity ) { kernel->slotRequestConfigSync(); } - //----------------------------------------------------------------------------- void KMFolder::markNewAsUnread() { @@ -204,7 +204,7 @@ void KMFolder::markNewAsUnread() void KMFolder::markUnreadAsRead() { const KMMsgBase* msgBase; - QValueList items; + SerNumList serNums; for (int i=count()-1; i>=0; --i) { @@ -212,13 +212,14 @@ void KMFolder::markUnreadAsRead() assert(msgBase); if (msgBase->status() == KMMsgStatusNew || msgBase->status() == KMMsgStatusUnread) { - items += i; + serNums.append( msgBase->getMsgSerNum() ); } } + if (serNums.empty()) + return; - if (items.count() > 0) - setStatus(items, KMMsgStatusRead); - emit numUnreadMsgsChanged( this ); + KMCommand *command = new KMSetStatusCommand( KMMsgStatusRead, serNums ); + command->start(); } //----------------------------------------------------------------------------- diff --git a/kmfolder.h b/kmfolder.h index ba399cc44..abf1a75ad 100644 --- a/kmfolder.h +++ b/kmfolder.h @@ -32,6 +32,8 @@ class QTimer; #define KMFolderInherited KMFolderNode +typedef QValueList SerNumList; + /** Mail folder. * (description will be here). *