Fix a crash that happens when saving a message and then quickly deleting it.

Patch provided by tsdgeos.  Thanks Albert.

Wouldn't be surprised if there was a bug report for this but heck if I
can find it amongst so many BRs.

CCMAIL: aacid@kde.org

svn path=/branches/KDE/3.5/kdepim/; revision=598927
wilder-work
Allen Winter 20 years ago
parent cdd603c6ce
commit 4b3d18bc8a
  1. 34
      kmcommands.cpp

@ -811,22 +811,28 @@ void KMSaveMsgCommand::slotSaveDataReq()
assert( idx >= 0 );
msg = p->getMsg(idx);
if (msg->transferInProgress()) {
QByteArray data = QByteArray();
mJob->sendAsyncData( data );
}
msg->setTransferInProgress( true );
if (msg->isComplete() ) {
slotMessageRetrievedForSaving(msg);
} else {
if ( msg ) {
if ( msg->transferInProgress() ) {
QByteArray data = QByteArray();
mJob->sendAsyncData( data );
}
msg->setTransferInProgress( true );
if (msg->isComplete() ) {
slotMessageRetrievedForSaving( msg );
} else {
// retrieve Message first
if (msg->parent() && !msg->isComplete() ) {
FolderJob *job = msg->parent()->createJob(msg);
job->setCancellable( false );
connect(job, SIGNAL(messageRetrieved(KMMessage*)),
this, SLOT(slotMessageRetrievedForSaving(KMMessage*)));
job->start();
if ( msg->parent() && !msg->isComplete() ) {
FolderJob *job = msg->parent()->createJob( msg );
job->setCancellable( false );
connect(job, SIGNAL( messageRetrieved( KMMessage* ) ),
this, SLOT( slotMessageRetrievedForSaving( KMMessage* ) ) );
job->start();
}
}
} else {
mJob->slotError( KIO::ERR_ABORTED,
i18n("The message was removed while saving it. "
"It has not been saved.") );
}
} else {
if ( mStandAloneMessage ) {

Loading…
Cancel
Save