Update the search dialog correctly when messages are removed.

svn path=/trunk/kdepim/; revision=204801
wilder-work
Don Sanders 23 years ago
parent 57c6cb3d44
commit 3c90a0e8c4
  1. 12
      kmfldsearch.cpp
  2. 2
      kmfldsearch.h
  3. 2
      kmfolder.cpp
  4. 1
      kmfoldersearch.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));
}

@ -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:

@ -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 );

@ -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;
}

Loading…
Cancel
Save