Add a serial number based DeleteMsgCommand which also works if the message

is opened in an external reader window.

svn path=/trunk/kdepim/; revision=355767
wilder-work
Till Adam 22 years ago
parent 83a05196e6
commit 45f9567556
  1. 23
      kmcommands.cpp
  2. 8
      kmcommands.h

@ -1603,7 +1603,7 @@ void KMMenuCommand::makeFolderMenu(KMFolderNode* node, bool move,
KMCopyCommand::KMCopyCommand( KMFolder* destFolder,
const QPtrList<KMMsgBase> &msgList )
:mDestFolder( destFolder ), mMsgList( msgList )
:mDestFolder( destFolder ), mMsgList( msgList )
{
}
@ -1721,6 +1721,12 @@ KMMoveCommand::KMMoveCommand( KMFolder* destFolder,
mMsgList.append( msgBase );
}
KMMoveCommand::KMMoveCommand( Q_UINT32 )
:mProgressItem( 0 )
{
setDeletesItself( true );
}
KMCommand::Result KMMoveCommand::execute()
{
setEmitsCompletedItself( true );
@ -1910,15 +1916,25 @@ void KMMoveCommand::slotMoveCanceled()
// srcFolder doesn't make much sense for searchFolders
KMDeleteMsgCommand::KMDeleteMsgCommand( KMFolder* srcFolder,
const QPtrList<KMMsgBase> &msgList )
:KMMoveCommand(findTrashFolder( srcFolder ), msgList)
:KMMoveCommand( findTrashFolder( srcFolder ), msgList)
{
}
KMDeleteMsgCommand::KMDeleteMsgCommand( KMFolder* srcFolder, KMMessage * msg )
:KMMoveCommand(findTrashFolder( srcFolder ), msg)
:KMMoveCommand( findTrashFolder( srcFolder ), msg)
{
}
KMDeleteMsgCommand::KMDeleteMsgCommand( Q_UINT32 sernum )
:KMMoveCommand( sernum )
{
KMFolder *srcFolder;
int idx;
kmkernel->msgDict()->getLocation( sernum, &srcFolder, &idx );
KMMsgBase *msg = srcFolder->getMsgBase( idx );
addMsg( msg );
setDestFolder( findTrashFolder( srcFolder ) );
}
KMFolder * KMDeleteMsgCommand::findTrashFolder( KMFolder * folder )
{
@ -1930,6 +1946,7 @@ KMFolder * KMDeleteMsgCommand::findTrashFolder( KMFolder * folder )
return 0;
}
KMUrlClickedCommand::KMUrlClickedCommand( const KURL &url, uint identity,
KMReaderWin *readerWin, bool htmlPref, KMMainWidget *mainWidget )
:mUrl( url ), mIdentity( identity ), mReaderWin( readerWin ),

@ -675,6 +675,12 @@ public slots:
void slotMsgAddedToDestFolder(KMFolder *folder, Q_UINT32 serNum);
void slotMoveCanceled();
protected:
// Needed for KMDeleteCommand for "move to trash"
KMMoveCommand( Q_UINT32 sernum );
void setDestFolder( KMFolder* folder ) { mDestFolder = folder; }
void addMsg( KMMsgBase *msg ) { mMsgList.append( msg ); }
private:
virtual Result execute();
void completeMove( Result result );
@ -694,9 +700,11 @@ class KMDeleteMsgCommand : public KMMoveCommand
public:
KMDeleteMsgCommand( KMFolder* srcFolder, const QPtrList<KMMsgBase> &msgList );
KMDeleteMsgCommand( KMFolder* srcFolder, KMMessage * msg );
KMDeleteMsgCommand( Q_UINT32 sernum );
private:
static KMFolder * findTrashFolder( KMFolder * srcFolder );
};
class KMUrlClickedCommand : public KMCommand

Loading…
Cancel
Save