[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE_3_3_BRANCH: kdepim/kmail
From:       Till Adam <adam () kde ! org>
Date:       2004-12-03 12:39:18
Message-ID: 20041203123918.A435E1B9DB () office ! kde ! org
[Download RAW message or body]

CVS commit by tilladam: 

Backport proko2 fix for crashes when the source folder of a delete command
is prematurely closed.


  M +11 -0     kmcommands.cpp   1.163.2.7
  M +2 -0      kmcommands.h   1.46.2.5


--- kdepim/kmail/kmcommands.cpp  #1.163.2.6:1.163.2.7
@@ -1871,4 +1871,9 @@ void KMMoveCommand::completeMove( Result
   if ( mDestFolder )
     mDestFolder->close();
+  while ( !mOpenedFolders.empty() ) {
+    KMFolder *folder = mOpenedFolders.back();
+    mOpenedFolders.pop_back();
+    folder->close();
+  }
   if ( mProgressItem )
     mProgressItem->setComplete();
@@ -1888,4 +1893,6 @@ KMDeleteMsgCommand::KMDeleteMsgCommand( 
 :KMMoveCommand( findTrashFolder( srcFolder ), msgList)
 {
+  srcFolder->open();
+  mOpenedFolders.push_back( srcFolder );
 }
 
@@ -1893,4 +1900,6 @@ KMDeleteMsgCommand::KMDeleteMsgCommand( 
 :KMMoveCommand( findTrashFolder( srcFolder ), msg)
 {
+  srcFolder->open();
+  mOpenedFolders.push_back( srcFolder );
 }
 
@@ -1902,4 +1911,6 @@ KMDeleteMsgCommand::KMDeleteMsgCommand( 
   kmkernel->msgDict()->getLocation( sernum, &srcFolder, &idx );
   KMMsgBase *msg = srcFolder->getMsgBase( idx );
+  srcFolder->open();
+  mOpenedFolders.push_back( srcFolder );
   addMsg( msg );
   setDestFolder( findTrashFolder( srcFolder ) );

--- kdepim/kmail/kmcommands.h  #1.46.2.4:1.46.2.5
@@ -7,4 +7,5 @@
 #include <qptrlist.h>
 #include <qvaluelist.h>
+#include <qvaluevector.h>
 #include <kio/job.h>
 #include "kmmsgbase.h" // for KMMsgStatus
@@ -658,4 +659,5 @@ protected:
   void setDestFolder( KMFolder* folder ) { mDestFolder = folder; }
   void addMsg( KMMsgBase *msg ) { mMsgList.append( msg ); }
+  QValueVector<KMFolder*> mOpenedFolders;
 
 private:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic