diff --git a/kmfldsearch.cpp b/kmfldsearch.cpp index f6aa02fe6..30aea2771 100644 --- a/kmfldsearch.cpp +++ b/kmfldsearch.cpp @@ -359,12 +359,12 @@ void KMFldSearch::slotSearch() mFolder->stopSearch(); disconnect(mFolder, SIGNAL(msgAdded(int)), this, SLOT(slotAddMsg(int))); - disconnect(mFolder, SIGNAL(msgRemoved(int, QString)), - this, SLOT(slotRemoveMsg(int))); + disconnect(mFolder, SIGNAL(msgRemoved(KMFolder*, Q_UINT32)), + this, SLOT(slotRemoveMsg(KMFolder*, Q_UINT32))); connect(mFolder, SIGNAL(msgAdded(int)), this, SLOT(slotAddMsg(int))); - connect(mFolder, SIGNAL(msgRemoved(int, QString)), - this, SLOT(slotRemoveMsg(int))); + connect(mFolder, SIGNAL(msgRemoved(KMFolder*, Q_UINT32)), + this, SLOT(slotRemoveMsg(KMFolder*, Q_UINT32))); KMSearch *search = new KMSearch(); connect(search, SIGNAL(finished(bool)), this, SLOT(searchDone())); @@ -432,11 +432,10 @@ void KMFldSearch::slotAddMsg(int idx) mFolder->unGetMsg(idx); } -void KMFldSearch::slotRemoveMsg(int idx) +void KMFldSearch::slotRemoveMsg(KMFolder *, Q_UINT32 serNum) { if (!mFolder) return; - Q_UINT32 serNum = mFolder->serNum(idx); QListViewItemIterator it(mLbxMatches); while (it.current()) { QListViewItem *item = *it; @@ -558,7 +557,6 @@ KMMessageList KMFldSearch::selectedMessages() if (it.current()->isSelected()) { kernel->msgDict()->getLocation((*it)->text(MSGID_COLUMN).toUInt(), &folder, &msgIndex); - if (folder && msgIndex >= 0) msgList.append(folder->getMsgBase(msgIndex)); } diff --git a/kmfldsearch.h b/kmfldsearch.h index 8c23ec930..d4d16bd5c 100644 --- a/kmfldsearch.h +++ b/kmfldsearch.h @@ -80,7 +80,7 @@ protected slots: /** GUI cleanup after search */ virtual void searchDone(); virtual void slotAddMsg(int idx); - virtual void slotRemoveMsg(int idx); + virtual void slotRemoveMsg(KMFolder *, Q_UINT32 serNum); void enableGUI(); protected: diff --git a/kmfolder.cpp b/kmfolder.cpp index af561a752..b3dd896c9 100644 --- a/kmfolder.cpp +++ b/kmfolder.cpp @@ -400,7 +400,7 @@ void KMFolder::removeMsg(int idx, bool) KMMsgBase* mb = getMsgBase(idx); QString msgIdMD5 = mb->msgIdMD5(); Q_UINT32 serNum = kernel->msgDict()->getMsgSerNum(this, idx); - if (!mQuiet) + if (!mQuiet && serNum != 0) emit msgRemoved(this, serNum); mb = takeIndexEntry( idx ); diff --git a/kmfoldersearch.cpp b/kmfoldersearch.cpp index 1d7929c7b..35c371cf5 100644 --- a/kmfoldersearch.cpp +++ b/kmfoldersearch.cpp @@ -469,6 +469,7 @@ void KMFolderSearch::removeSerNum(Q_UINT32 serNum) KMFolder *folder = 0; kernel->msgDict()->getLocation(serNum, &folder, &idx); assert(folder && (idx != -1)); + emit msgRemoved(this, serNum); removeMsg(i); return; }