From kmail-devel Sun Jun 30 18:50:02 2002 From: Carsten Burghardt Date: Sun, 30 Jun 2002 18:50:02 +0000 To: kmail-devel Subject: [PATCH] remove deleted imap-messages X-MARC-Message: https://marc.info/?l=kmail-devel&m=102546306714238 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--Boundary-00=_aL1H9CzcI3ivUmp" --Boundary-00=_aL1H9CzcI3ivUmp Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi, the attached patch removes messages from the headers (when you click on the= m)=20 that have been deleted on the server. At the moment you get a broken messag= e=20 (no subject, date, ...). Carsten =2D-=20 Carsten Burghardt email: cb@magic-shop.de WWW: http://www.magic-shop.de PGP: http://www.magic-shop.de/Carsten_Burghardt.asc --Boundary-00=_aL1H9CzcI3ivUmp Content-Type: text/x-diff; charset="us-ascii"; name="delete_imap_msgs.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="delete_imap_msgs.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(); } //----------------------------------------------------------------------------- --Boundary-00=_aL1H9CzcI3ivUmp-- _______________________________________________ KMail Developers mailing list kmail@mail.kde.org http://mail.kde.org/mailman/listinfo/kmail