diff -r ecc8def7944a -r 2dc6caa42ec3 emailuis/nmframeworkadapter/src/nmfwamessagesendingoperation.cpp --- a/emailuis/nmframeworkadapter/src/nmfwamessagesendingoperation.cpp Mon May 03 12:23:15 2010 +0300 +++ b/emailuis/nmframeworkadapter/src/nmfwamessagesendingoperation.cpp Fri May 14 15:41:10 2010 +0300 @@ -51,11 +51,13 @@ */ NmFwaMessageSendingOperation::~NmFwaMessageSendingOperation() { - delete mSaveOperation; - + if (mSaveOperation && mSaveOperation->isRunning()) { + mSaveOperation->cancelOperation(); + } doCancelOperation(); mMailClient.Close(); // decrease ref count delete mMessage; + NMLOG("NmFwaMessageSendingOperation::~NmFwaMessageSendingOperation --->"); } /*! @@ -113,6 +115,9 @@ TRAP_IGNORE(mMailClient.CancelL(mRequestId)); mRequestId = NmNotFoundError; } + if (mSaveOperation && mSaveOperation->isRunning()) { + mSaveOperation->cancelOperation(); + } } /*! @@ -145,9 +150,8 @@ void NmFwaMessageSendingOperation::handleCompletedSaveOperation(int error) { if (error == NmNoError) { - mTimer->stop(); - mTimer->start(1); mSaved = true; + doRunAsyncOperation(); } else { completeOperation(NmGeneralError); @@ -160,11 +164,10 @@ int NmFwaMessageSendingOperation::saveMessageWithSubparts() { int ret = NmNotFoundError; - if (mMessage) { - delete mSaveOperation; - mSaveOperation = NULL; - + if (mSaveOperation && mSaveOperation->isRunning()) { + mSaveOperation->cancelOperation(); + } mSaveOperation = mPluginInterface.saveMessageWithSubparts(*mMessage); if (mSaveOperation) { @@ -186,10 +189,11 @@ */ int NmFwaMessageSendingOperation::sendMessageL() { + NMLOG("NmFwaMessageSendingOperation::sendMessageL"); int ret = NmNotFoundError; if (mMessage) { - TFSMailMsgId mailboxId = NmConverter::nmIdToMailMsgId(mMessage->mailboxId()); + TFSMailMsgId mailboxId = NmConverter::nmIdToMailMsgId(mMessage->envelope().mailboxId()); CFSMailBox *currentMailbox( NULL ); currentMailbox = mMailClient.GetMailBoxByUidL(mailboxId); CleanupStack::PushL(currentMailbox);