Fix dIMAP bug 71734: Mails were instantly stripped of the X-UID header, causing it to be seen as a new mail on every sync.

svn path=/trunk/kdepim/; revision=276374
wilder-work
Bo Thorsen 23 years ago
parent c3faf25932
commit 65bdb529f4
  1. 2
      kmfiltermgr.cpp
  2. 7
      kmfolder.h
  3. 3
      kmfoldercachedimap.h

@ -155,7 +155,7 @@ void KMFilterMgr::endFiltering(KMMsgBase *msgBase) const
int index = parent->find( msgBase );
KMMessage *msg = parent->getMsg( index );
parent->take( index );
parent->addMsg( msg );
parent->addMsgKeepUID( msg );
}
}
MessageProperty::setFiltering( msgBase, false );

@ -152,6 +152,13 @@ public:
takes ownership of the message (deleting it in the destructor).*/
virtual int addMsg(KMMessage* msg, int* index_return = 0) = 0;
/** (Note(bo): This needs to be fixed better at a later point.)
This is overridden by dIMAP because addMsg strips the X-UID
header from the mail. */
virtual int addMsgKeepUID(KMMessage* msg, int* index_return = 0) {
return addMsg(msg, index_return);
}
/** Called by derived classes implementation of addMsg.
Emits msgAdded signals */
void emitMsgAddedSignals(int idx);

@ -136,6 +136,9 @@ public:
virtual int addMsg(KMMessage* msg, int* index_return = 0);
/* internal version that doesn't remove the X-UID header */
virtual int addMsgInternal(KMMessage* msg, bool, int* index_return = 0);
virtual int addMsgKeepUID(KMMessage* msg, int* index_return = 0) {
return addMsgInternal(msg, false, index_return);
}
/* Reimplemented from KMFolderMaildir */
virtual void removeMsg(int i, bool imapQuiet = FALSE);

Loading…
Cancel
Save