diff -r 8466d47a6819 -r 12c456ceeff2 meetingrequest/mrgui/src/cesmreditordialog.cpp --- a/meetingrequest/mrgui/src/cesmreditordialog.cpp Thu Dec 17 08:39:21 2009 +0200 +++ b/meetingrequest/mrgui/src/cesmreditordialog.cpp Thu Jan 07 12:38:38 2010 +0200 @@ -137,8 +137,36 @@ } else { - aEntry.SetModifyingRuleL( - MESMRMeetingRequestEntry::EESMRThisOnly ); + TInt result = + CESMRListQuery::ExecuteL( aQueryType ); + + if( KErrCancel == result ) + { + // User has cancelled selecting opening the instance + User::Leave( KErrCancel ); + } + + TESMRThisOccurenceOrSeriesQuery recurrenceModRule = + static_cast( result ); + + switch( recurrenceModRule ) + { + case EESMRThisOccurence: + { + aEntry.SetModifyingRuleL( + MESMRMeetingRequestEntry::EESMRThisOnly ); + } + break; + case EESMRSeries: + { + aEntry.SetModifyingRuleL( + MESMRMeetingRequestEntry::EESMRAllInSeries ); + } + break; + default: + __ASSERT_DEBUG( EFalse, Panic(EESMREditDlgInvalidSeriesResult)); + break; + } } } @@ -612,7 +640,8 @@ TRAPD( err, DoProcessCommandL( aCommand ) ); if ( err != KErrNone && err != KErrCancel && - err != KErrArgument ) + err != KErrArgument&& + err !=EESMRCmdSendMR) { User::Leave(err); } @@ -673,8 +702,13 @@ case EESMRCmdCalEntryUIAddParticipants: { iView->ExternalizeL (); // no force validation - User::LeaveIfError( - iCallback.ProcessCommandWithResultL ( aCommand )); + TInt result; + TRAPD(err,result=iCallback.ProcessCommandWithResultL ( aCommand )) + if (err != EESMRCmdSendMR&&err!=KErrNone) + { + User::Leave(err); + } + User::LeaveIfError(result); TryExitL ( EESMRCmdForceExit ); break; }