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

List:       kmail-devel
Subject:    [PATCH] remove deleted imap-messages
From:       Carsten Burghardt <cb () magic-shop ! de>
Date:       2002-06-30 18:50:02
[Download RAW message or body]

Hi,

the attached patch removes messages from the headers (when you click on them) 
that have been deleted on the server. At the moment you get a broken message 
(no subject, date, ...).

Carsten
-- 
Carsten Burghardt
email: cb@magic-shop.de
WWW: http://www.magic-shop.de
PGP: http://www.magic-shop.de/Carsten_Burghardt.asc

["delete_imap_msgs.diff" (text/x-diff)]

Index: kdenetwork/kmail/kmfolderimap.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmfolderimap.cpp,v
retrieving revision 1.61
diff -u -3 -p -r1.61 kmfolderimap.cpp
--- kdenetwork/kmail/kmfolderimap.cpp	2002/06/06 19:46:41	1.61
+++ kdenetwork/kmail/kmfolderimap.cpp	2002/06/30 18:44:12
@@ -1124,13 +1124,18 @@ void KMImapJob::slotGetMessageResult(KIO
     job->showErrorDialog();
     if (job->error() == KIO::ERR_SLAVE_DIED) account->slaveDied();
   } else {
-    QString uid = mMsg->headerField("X-UID");
-    (*it).data.resize((*it).data.size() + 1);
-    (*it).data[(*it).data.size() - 1] = '\0';
-    mMsg->fromString(QCString((*it).data));
-    mMsg->setHeaderField("X-UID",uid);
-    mMsg->setComplete( TRUE );
-    emit messageRetrieved(mMsg);
+    if ((*it).data.size() > 0)
+    {
+      QString uid = mMsg->headerField("X-UID");
+      (*it).data.resize((*it).data.size() + 1);
+      (*it).data[(*it).data.size() - 1] = '\0';
+      mMsg->fromString(QCString((*it).data));
+      mMsg->setHeaderField("X-UID",uid);
+      mMsg->setComplete( TRUE );
+      emit messageRetrieved(mMsg);
+    } else {
+      emit messageRetrieved(NULL);
+    }
     mMsg = NULL;
   }
   if (account->slave()) account->mapJobData.remove(it);
Index: kdenetwork/kmail/kmmainwin.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmmainwin.cpp,v
retrieving revision 1.482
diff -u -3 -p -r1.482 kmmainwin.cpp
--- kdenetwork/kmail/kmmainwin.cpp	2002/06/30 09:29:17	1.482
+++ kdenetwork/kmail/kmmainwin.cpp	2002/06/30 18:44:27
@@ -1863,7 +1863,10 @@ void KMMainWin::slotReplaceMsgByUnencryp
 //-----------------------------------------------------------------------------
 void KMMainWin::slotUpdateImapMessage(KMMessage *msg)
 {
-  if (((KMMsgBase*)msg)->isMessage()) mMsgView->setMsg(msg, TRUE);
+  if (msg && ((KMMsgBase*)msg)->isMessage()) 
+    mMsgView->setMsg(msg, TRUE);
+  else
+    slotDeleteMsg();
 }
 
 //-----------------------------------------------------------------------------

_______________________________________________
KMail Developers mailing list
kmail@mail.kde.org
http://mail.kde.org/mailman/listinfo/kmail

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

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