meetingrequest/mrgui/src/cesmreditordialog.cpp
changeset 1 12c456ceeff2
parent 0 8466d47a6819
child 16 4ce476e64c59
--- 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<TESMRThisOccurenceOrSeriesQuery>( 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;
             }