eventsui/eventseditor/src/evteditor.cpp
branchRCL_3
changeset 17 1fc85118c3ae
parent 16 8173571d354e
child 18 870918037e16
--- a/eventsui/eventseditor/src/evteditor.cpp	Thu Aug 19 09:48:36 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1729 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   Form class for creating events.
-*
-*/
-
-#include <evtmgmteditorui.rsg>
-#include <avkon.rsg>
-#include <avkon.hrh>
-#include <eikedwin.h>
-#include <eikmenup.h>
-#include <eikenv.h>
-#include <aknlistquerydialog.h>
-#include <StringLoader.h>
-#include <eikaufty.h>
-#include <AknPopupFieldText.h> 
-#include <eikenv.h>
-#include <eikspane.h>       // Status pane
-#include <akntitle.h>       // CAknTitlePane
-#include <aknuniteditor.h> 
-#include <e32math.h>
-#include <AknIconArray.h>       // Icon Array
-#include <evteditor.mbg>
-#include <AknsUtils.h>
-#include <AknsSkinInstance.h>
-#include <data_caging_path_literals.hrh>
-#include <gulicon.h>            // Gul Icon
-#include <eikapp.h>
-#include <eikenv.h>
-#include <barsread.h>               // For TResourceReader
-#include <bautils.h> 
-#include <eikserverapp.h>
-#include <aknappui.h>
-#include <AknUtils.h>
-#include <aknnotewrappers.h>
-#include <hlplch.h>
-
-#include "evteditor.h"
-#include "evtmgmteditorui.hrh"
-#include "evtevent.h"
-#include "evttoneaction.h"
-#include "evtdebug.h"
-#include "evteditorconsts.h"
-#include "evtmgmtuiringtonecomponent.h"
-#include "evtdefs.h"
-
-// ---------------------------------------------------------------------------
-// CEvtEditor::NewL()
-// @param[in] aIsEditMode - It sets mode of editor. 
-//                          If true, edit mode is set else view mode is set. 
-// @param[in] aEvent - The event to be displayed on editor
-//                     Empty if new event is going to be created.
-// @param[in] aTriggerLocation - Coordinate based location details of 
-//                                  the event to be displayed on editor. 
-// @param[in] aExitCmdHandler - It handles all commands which may result into closing editor.
-// ---------------------------------------------------------------------------
-//
-CEvtEditor* CEvtEditor ::NewL(TBool                             aIsEditable, 
-                             CEvtEvent&                         aEvent, 
-                             CEvtMgmtUiEngine&                  aEventEngine,
-                             TBool                              aDisplayExitMenuItem
-                             )
-    {
-    CEvtEditor * self = new (ELeave) CEvtEditor(aIsEditable, aEvent, aEventEngine, aDisplayExitMenuItem );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CEvtEditor::~CEvtEditor()
-// ---------------------------------------------------------------------------
-//
-CEvtEditor::~CEvtEditor()
-    {  
-	EVTUIDEBUG("+ CEvtEditor::~CEvtEditor()");
-    // Close the resource loader
-    iResourceLoader.Close();
-       
-    if(iCmdHandler)
-        {
-        delete iCmdHandler;
-        iCmdHandler = NULL;
-        }
-    
-    delete iSysOfMeas;
-    iSysOfMeas = NULL;
-	EVTUIDEBUG("- CEvtEditor::~CEvtEditor()");
-    }
-
-// ---------------------------------------------------------------------------
-// CEvtEditor ::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CEvtEditor ::ConstructL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::ConstructL()");
-    // Open the Resource File
-    OpenLocalizedResourceFileL( KEvtEditorResFileName, iResourceLoader );
-       
-    CAknForm::ConstructL(R_EVTMGMTUI_CREATEEVENTFORM_MENUBAR);    
-    iCmdHandler = CEvtMgmtUiEditorCmdHandler::NewL( iEvent, 
-                                                    *this,
-                                                    iEventEngine );
-    
-    // Observer for a change in System of Measurement
-    iSysOfMeas = CEvtMgmtUiSysOfMeasurement::NewL(*this);
-    	EVTUIDEBUG("- CEvtEditor::ConstructL()");
-    }
-
-// ---------------------------------------------------------------------------
-// CEvtEditor ::CEvtEditor()
-// ---------------------------------------------------------------------------
-//
-CEvtEditor::CEvtEditor( TBool                           aIsEditable, 
-                        CEvtEvent&                      aEvent,
-                        CEvtMgmtUiEngine&               aEventEngine,
-                        TBool                           aDisplayExitMenuItem)
-    :iIsEditMode( aIsEditable ), 
-    iEvent( aEvent ), 
-    iResourceLoader( *CCoeEnv::Static()),
-    iEventEngine( aEventEngine ),
-    iDisplayExitMenuItem( aDisplayExitMenuItem )
-    {
-    iEventAttributeMask = 0;
-    }
-
-// ---------------------------------------------------------------------------
-// Derived from CEikDialog
-// CEvtEditor ::OkToExitL()
-// ---------------------------------------------------------------------------
-//
-TBool CEvtEditor::OkToExitL( TInt aButtonId )
-    {
-	EVTUIDEBUG1("+ CEvtEditor::OkToExitL() - %d", aButtonId );
-    switch(aButtonId)
-        {
-        case EAknFormCmdEdit: // when MSK is pressed
-            {
-            //Handle MSK operation based on focused line.
-            HandleMSKL(); 
-            //dont close editor
-            return EFalse;
-            }
-        case EAknSoftkeyOptions: //when LSK is pressed
-            {
-            //display menu specific to editor
-            DisplayMenuL();
-            //don't close editor
-            return EFalse;
-            }
-        case EAknSoftkeyDone: // when RSK is pressed in edit mode
-            {
-            return ProcessDoneCommandL();
-            }
-        default: // close editor in all other cases
-            {
-            return ETrue;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CEvtEditor::ProcessDoneCommandL()
-// It checks if event is empty.
-// @ret true if event is empty else false
-// ---------------------------------------------------------------------------
-//
-TBool CEvtEditor::ProcessDoneCommandL()
-    {                
-    //validate event, if valid event, display 'Event status' popup dialog
-    // and perform selected operation.          
-    if( IsEmptyEventL() || !iEventAttributeMask )
-        {
-        return ETrue;
-        }                
-    else
-        {
-        //update attribute mask so that only those attributes of event will be modified                    
-        iCmdHandler->SetEventAttributeMask( iEventAttributeMask );
-
-        if(EActive == iEvent.EventStatus())
-            {
-            if(MandatoryFieldsFilled())
-                {
-                iCmdHandler->HandleEditorCmdL( EEvtEditorCmdActivate );
-                }
-            else
-                {
-                HBufC* infoMsg = StringLoader::LoadLC(R_LOCEV_NOTE_MISSED_INFO );
-                CAknInformationNote* infoNote = new(ELeave) CAknInformationNote( ETrue );
-                infoNote->ExecuteLD( *infoMsg  );
-                CleanupStack::PopAndDestroy();
-                }
-            }
-        else
-            {
-            iCmdHandler->HandleEditorCmdL( EEvtEditorCmdSaveDraft );
-            }
-            
-        return EFalse;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CEvtEditor::IsEmptyEventL()
-// It checks if event is empty.
-// @ret true if event is empty else false
-// ---------------------------------------------------------------------------
-//
-TBool CEvtEditor::IsEmptyEventL()
-    {    
-    //if eventid is not zero, it means existing event is opened in editor
-    //hence it is not empty event.
-    if(iEvent.EventId())
-        return EFalse;
-
-    // Check for Default Action
-    TBool defaultAction(EFalse);
-    if( iEvent.HasAction() )
-        {            
-        CEvtToneAction* tone = CEvtToneAction::NewLC();  
-        tone->InternalizeL( iEvent.Action() );  
-        CEvtMgmtUiRingtoneComponent* ringtoneComponent = CEvtMgmtUiRingtoneComponent::NewLC( KNullDesC() );
-        if( ringtoneComponent->DefaultRingtoneL().Compare( tone->FileName() ) == 0 && 
-                !tone->ToneLoop() )
-            {
-            defaultAction = ETrue;
-            }
-        CleanupStack::PopAndDestroy( 2 ); // tone, ringtoneComponent
-        }
-    
-    //if eventid is zero, it means new event is about to create.
-    //hence check if something is entered by the user.    
-    if( 6 == GetNumberOfLinesOnPage(0) && //if only subject,place and repeat are present
-        0 == iEvent.Subject().Compare(KNullDesC) && //if subject is empty
-        0 == iEvent.Place().Compare(KNullDesC) && // if place is default
-        0 == iEvent.Repeat() && // if repeat is OFF
-        EDraft == iEvent.EventStatus() &&
-        defaultAction ) // if Status is Draft
-        {       
-        return ETrue; 
-        }  
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// CEvtEditor ::LoadFormValuesFromDataL()
-// Called when the form is  executed and when the user chooses to discard changes
-// in QuerySaveChangesL (via  DoNotSaveFormDataL).
-// ---------------------------------------------------------------------------
-// 
-void CEvtEditor::LoadFormValuesFromDataL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::LoadFormValuesFromDataL()");
-    if(iEvent.EventId()==0) //if create event
-        {
-        CEikEdwin* placeEditor = static_cast <CEikEdwin*> (ControlOrNull(EEvtMgmtUiDlgCIdPlace));            
-            if(placeEditor)
-                {   
-                if( iEvent.Place().Compare(KNullDesC) == 0 )  
-                    {
-                    HBufC* define = StringLoader::LoadLC(R_EVTUI_CREATENEW_FORM_DEFINED);   
-                    placeEditor->SetTextL(define);
-                    CleanupStack::PopAndDestroy(define);
-                    }               
-                } 
-            
-        CAknPopupFieldText* repeatPopupFieldText = (CAknPopupFieldText*)Control( EEvtMgmtUiDlgCIdRepeat );
-            if(repeatPopupFieldText)
-                {  
-                repeatPopupFieldText->SetCurrentValueIndex(1);      
-                }
-
-        // Set the Default Ringtone
-        CEvtMgmtUiRingtoneComponent* ringtoneComponent = CEvtMgmtUiRingtoneComponent::NewLC( KNullDesC() );
-        if( ringtoneComponent->DefaultRingtoneL().Compare( KNullDesC ) == 0 )
-            {
-            iEvent.SetActionL( NULL );
-            }
-        else
-            {
-            CEvtToneAction* tone = CEvtToneAction::NewLC();
-            tone->SetFileNameL( ringtoneComponent->Ringtone() );
-            tone->SetToneLoop( EFalse );  
-      
-            CEvtAction* action = CEvtAction::NewLC();
-            tone->ExternalizeL( *action );
-            iEvent.SetActionL( action ); // ownership is transferred.
-            CleanupStack::Pop( action ); // action  
-
-            CleanupStack::PopAndDestroy( ); // tone        
-            }
-        CleanupStack::PopAndDestroy( ); // ringtoneComponent   
-        
-        SetRingtoneL();
-        
-        // Set Default Status
-        iEvent.SetEventStatus(EDraft);
-        SetStatusL();
-        
-        return;
-        }
-    
-   //assign initial values
-   	CEikEdwin* subjectEditor = static_cast <CEikEdwin*> (ControlOrNull(EEvtMgmtUiDlgCIdSubject));
-    if(subjectEditor )
-        {        
-		if( iEvent.Subject().Compare(KNullDesC) != 0 )
-			{
-			HBufC* subject = iEvent.Subject().AllocLC();   
-			subjectEditor->SetTextL( subject );
-			CleanupStack::PopAndDestroy(subject);
-			}
-        }
-   
-    CEikEdwin* placeEditor = static_cast <CEikEdwin*> (ControlOrNull(EEvtMgmtUiDlgCIdPlace));            
-    if(placeEditor)
-        {   
-        if( iEvent.Place().Compare(KNullDesC) == 0 )  
-	        {
-			HBufC* define = StringLoader::LoadLC(R_EVTUI_CREATENEW_FORM_DEFINED);   
-			placeEditor->SetTextL(define);
-			CleanupStack::PopAndDestroy(define);
-	        }
-	    else
-		    {
-			HBufC* place = iEvent.Place().AllocLC();   
-			placeEditor->SetTextL(place);
-			CleanupStack::PopAndDestroy(place);
-            EVTUIDEBUG(" Setting Radius");
-            InsertRadiusDlgLineL();
-		    }
-	    }     
-    
-    CAknPopupFieldText* repeatPopupFieldText = (CAknPopupFieldText*)Control( EEvtMgmtUiDlgCIdRepeat );
-    if(repeatPopupFieldText)
-        {    
-        if(iEvent.Repeat())
-            repeatPopupFieldText->SetCurrentValueIndex(0);
-         else
-             repeatPopupFieldText->SetCurrentValueIndex(1);      
-        }
-    
-    // Set Ringtone
-    SetRingtoneL();
-    
-    // Set Status
-    SetStatusL();
-       
-    if( iEvent.Description().Compare(KNullDesC)!=0 )
-        {
-        InsertDesDlgLineL();
-        SetDescL();
-        }
-	EVTUIDEBUG("- CEvtEditor::LoadFormValuesFromDataL()");
-    }
- 
-// ---------------------------------------------------------------------------
-// Derived from CEikDialog
-// CEvtEditor ::PreLayoutDynInitL()
-// ---------------------------------------------------------------------------
-// 
-void CEvtEditor::PreLayoutDynInitL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::PreLayoutDynInitL()");
-    CAknForm::PreLayoutDynInitL();
-    
-    //Load existing event if it is opened in viewe mode  
-    LoadFormValuesFromDataL();
-	EVTUIDEBUG("- CEvtEditor::PreLayoutDynInitL()");
-    }
- 
-// ---------------------------------------------------------------------------
-// Derived from CEikDialog
-// CEvtEditor ::PostLayoutDynInitL()
-// ---------------------------------------------------------------------------
-// 
-void CEvtEditor::PostLayoutDynInitL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::PostLayoutDynInitL()");
-   CAknForm::PostLayoutDynInitL();
-   
-     if(iEvent.Subject().Compare(KNullDesC) == 0)
-        {
-        if(iEvent.EventId())
-            {
-            TPtrC ptr = KNullDesC();
-            MakeTitleL(ptr);  
-            }
-        else
-            {
-            HBufC* navititle = StringLoader::LoadLC( R_EVTUI_CREATENEW_FORM_DEFAULTNAVITITLE);
-            MakeTitleL(*navititle);  
-            CleanupStack::PopAndDestroy(navititle);
-            }
-        }
-    else
-        {
-        TPtrC ptr = iEvent.Subject();
-        MakeTitleL( ptr);
-        }
-            
-    ChangeRSKCaptionL();
-    SetEditableL(iIsEditMode);
-	EVTUIDEBUG("- CEvtEditor::PostLayoutDynInitL()");
-    }
-// ---------------------------------------------------------------------------
-// Derived from CAknForm
-// CEvtEditor ::DynInitMenuPaneL()
-// ---------------------------------------------------------------------------
-//  
-void CEvtEditor ::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
-    {
-    CAknForm::DynInitMenuPaneL(aResourceId,aMenuPane);
-
-    if (aResourceId == R_AVKON_FORM_MENUPANE)
-        {  
-        
-        // Disable all the unwanted AKnForm's Default Menu Items 
-        aMenuPane->SetItemDimmed(EAknFormCmdLabel, ETrue);
-        aMenuPane->SetItemDimmed(EAknFormCmdAdd, ETrue);
-        aMenuPane->SetItemDimmed(EAknFormCmdDelete, ETrue);
-        aMenuPane->SetItemDimmed(EAknFormCmdSave, ETrue);
-        
-        if(iDisplayExitMenuItem)
-            aMenuPane->SetItemDimmed(EAknCmdExit, EFalse);
-        else
-            aMenuPane->SetItemDimmed(EAknCmdExit, ETrue);
-        
-        if( IsEditable() )
-	        {
-	        // "Edit" present only in Viewer mode
-	        aMenuPane->SetItemDimmed(EAknFormCmdEdit, ETrue);
-	        
-	        // "Discard Changes" has to be present only in Edit mode
-	        // and if some changes are made
-	        if( IsEmptyEventL() || !iEventAttributeMask || !iEvent.EventId())
-	            aMenuPane->SetItemDimmed(EEvtEditorCmdDiscard, ETrue);
-	        else
-                aMenuPane->SetItemDimmed(EEvtEditorCmdDiscard, EFalse);
-            
-            // Initially display all the Editor specific Menu items which 
-            // are dimmed based on focus and context
-			aMenuPane->SetItemDimmed(EEvtEditorCmdAddDesc, ETrue);
-			aMenuPane->SetItemDimmed(EEvtEditorCmdRemoveDesc, ETrue);
-			aMenuPane->SetItemDimmed(EEvtEditorCmdSetPlace, ETrue);
-			aMenuPane->SetItemDimmed(EEvtEditorCmdEditDesc, ETrue);
-
-			if(NULL == ControlOrNull(EEvtMgmtUiDlgCIdAssignTone))
-			    aMenuPane->SetItemDimmed(EEvtEditorCmdAssignTone, EFalse);
-			else
-			    aMenuPane->SetItemDimmed(EEvtEditorCmdAssignTone, ETrue);
-	        
-	        // "Add Description" / "Remove Description" is displayed based
-	        // on Decsription control's existance in Form
-	        if( NULL == ControlOrNull(EEvtMgmtUiDlgCIdDesc) )
-	            {
-	            aMenuPane->SetItemDimmed(EEvtEditorCmdAddDesc, EFalse);
-	        	aMenuPane->SetItemDimmed(EEvtEditorCmdRemoveDesc, ETrue);
-	            }
-	        else
-	            {
-	            aMenuPane->SetItemDimmed(EEvtEditorCmdAddDesc, ETrue);
-	        	aMenuPane->SetItemDimmed(EEvtEditorCmdRemoveDesc, EFalse);
-	            }
-            
-	        // Menu items whose existance depends on the focussed control
-	        switch( IdOfFocusControl() )
-	            {
-	            case EEvtMgmtUiDlgCIdPlace:
-	                {
-	                aMenuPane->SetItemDimmed(EEvtEditorCmdSetPlace, EFalse);
-	                break;
-	                }
-	            case EEvtMgmtUiDlgCIdDesc:            
-	                {
-	                aMenuPane->SetItemDimmed(EEvtEditorCmdEditDesc, EFalse);
-	                break;
-	                }    
-	            case EEvtMgmtUiDlgCIdAssignTone:              
-	                {
-	                aMenuPane->SetItemDimmed(EAknFormCmdEdit, ETrue);
-	                aMenuPane->SetItemDimmed(EEvtEditorCmdAssignTone, EFalse);
-	                break;
-	                }    
-	            case EEvtMgmtUiDlgCIdRepeat:
-	            case EEvtMgmtUiDlgCIdAudioLoop:   
-                case EEvtMgmtUiDlgCIdStatus:            
-	                {
-	        		aMenuPane->SetItemDimmed(EAknFormCmdEdit, EFalse);
-        			aMenuPane->SetItemTextL(EAknFormCmdEdit,R_EVTUI_CREATENEW_FORM_CMDCHANGE);
-	                break;
-	                }    
-	            default:
-	                {
-	                break;
-	                }                
-	            }//switch
- 
-            // Activate and Draft are absent in Edit mode
-            aMenuPane->SetItemDimmed(EEvtEditorCmdActivate, ETrue);
-            aMenuPane->SetItemDimmed(EEvtEditorCmdSaveDraft, ETrue);
-	            
-	        // Editor/Viewer specific menu items    
-    		aMenuPane->SetItemDimmed(EEvtEditorCmdNavigateToPlace, ETrue);
-    		aMenuPane->SetItemDimmed(EEvtEditorCmdShowOnMap, ETrue);
-    		aMenuPane->SetItemDimmed(EEvtMgmtUiEventUiPosSettings, EFalse);
-	        }
-	    else   // View Mode
-	        {
-	        // "Edit" present only in Viewer mode
-	        aMenuPane->SetItemDimmed(EAknFormCmdEdit, EFalse);
-            
-            // "Discard Changes" has to be absent only in View mode
-            aMenuPane->SetItemDimmed(EEvtEditorCmdDiscard, ETrue);
-            
-            // Dim all the Editor specific Menu items.
-			aMenuPane->SetItemDimmed(EEvtEditorCmdAddDesc, ETrue);
-			aMenuPane->SetItemDimmed(EEvtEditorCmdRemoveDesc, ETrue);
-			aMenuPane->SetItemDimmed(EEvtEditorCmdSetPlace, ETrue);
-			aMenuPane->SetItemDimmed(EEvtEditorCmdEditDesc, ETrue);
-			aMenuPane->SetItemDimmed(EEvtEditorCmdAssignTone, ETrue);
-            
-            // Menu items that depend on Event's status
-    		switch( iEvent.EventStatus() )
-    			{
-    			case EActive:
-    			    {
-            		aMenuPane->SetItemDimmed(EEvtEditorCmdActivate, ETrue);
-            		aMenuPane->SetItemDimmed(EEvtEditorCmdSaveDraft, EFalse);
-    				break;
-    			    }
-    			case EDraft:
-    			    {
-    			    if(MandatoryFieldsFilled())
-    			        aMenuPane->SetItemDimmed(EEvtEditorCmdActivate, EFalse);
-    			    else
-    			        aMenuPane->SetItemDimmed(EEvtEditorCmdActivate, ETrue);
-            		aMenuPane->SetItemDimmed(EEvtEditorCmdSaveDraft, ETrue);
-    				break;
-    			    }
-                case ECompleted:
-                    {
-                    aMenuPane->SetItemDimmed(EEvtEditorCmdActivate, EFalse);
-                    aMenuPane->SetItemDimmed(EEvtEditorCmdSaveDraft, EFalse);
-                    break;
-                    }
-    			default:
-    				break;
-    			}
-    			
-	        // if location is defined
-    		if( Math::IsNaN( iEvent.Location().Latitude() ) || Math::IsNaN( iEvent.Location().Latitude() )
-    			|| iEvent.Location().Latitude() == 0 || iEvent.Location().Latitude() == 0 ) 
-    		    {
-        		aMenuPane->SetItemDimmed(EEvtEditorCmdNavigateToPlace, ETrue);
-        		aMenuPane->SetItemDimmed(EEvtEditorCmdShowOnMap, ETrue);
-    		    }
-    		else
-    		    {
-    		    aMenuPane->SetItemDimmed(EEvtEditorCmdNavigateToPlace, EFalse);
-                aMenuPane->SetItemDimmed(EEvtEditorCmdShowOnMap, EFalse);
-                 }
-    		aMenuPane->SetItemDimmed(EEvtMgmtUiEventUiPosSettings, ETrue);
-	        }
-
-        }//if
-    }
-// -----------------------------------------------------------------------------
-// Derived from CEikDialog
-// CEvtEditor::HandleControlStateChangeL()
-// Called when focus is moved from the specified line.
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::HandleControlStateChangeL(TInt aControlId)
-    {
-	EVTUIDEBUG1("+ CEvtEditor::PostLayoutDynInitL() - %d", aControlId );
-    switch(aControlId)
-        {
-        case EEvtMgmtUiDlgCIdSubject:
-            {            
-            iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributeSubject;
-            
-            //Retrieve subject text 
-            CEikEdwin* subjectEditor = static_cast <CEikEdwin*> (ControlOrNull(EEvtMgmtUiDlgCIdSubject));            
-            if(subjectEditor)
-                {                       
-                HBufC* subject = subjectEditor->GetTextInHBufL();
-                if( subject )
-	                {
-	                CleanupStack::PushL(subject);
-	                subject->Des().Trim();
-	                iEvent.SetSubjectL(*subject);
-                	MakeTitleL(*subject); 
-	                CleanupStack::PopAndDestroy(subject);
-	                }
-	            else
-	                {
-	                iEvent.SetSubjectL(KNullDesC);
-	                HBufC* navititle = StringLoader::LoadLC( R_EVTUI_CREATENEW_FORM_DEFAULTNAVITITLE);
-	                MakeTitleL(*navititle);             
-	                CleanupStack::PopAndDestroy(navititle);	
-	                }
-                }              
-            break;
-            } 
-        case EEvtMgmtUiDlgCIdRadius:
-            {
-            iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributeRadius;
-            CAknUnitEditor* radiusEd =
-                 (CAknUnitEditor*)Control( EEvtMgmtUiDlgCIdRadius );
-            if(radiusEd)
-                {
-                //convert radius in km unit
-                TReal val(0);
-        		if( EAknUnitEditorMile == radiusEd->Unit() )
-        			{        			
-        			val = radiusEd->Value();
-        			val /= KUnitConversion;        		       			       			
-        			}
-        		if( EAknUnitEditorKilometer ==radiusEd->Unit() )
-        		    val = radiusEd->Value();
-        		
-        		//validate radius value
-        		if( val<KMinRadiusInKm ) //if less than minima, set to minima
-        		    iEvent.SetRadius( KMinRadiusInKm );
-        		else if( val>KMaxRadiusInKm ) //if greater than maxima, set to maxima
-        		    iEvent.SetRadius( KMaxRadiusInKm );
-        		else
-        		    iEvent.SetRadius( val );
-                }
-            break;
-            } 
-        case EEvtMgmtUiDlgCIdRepeat:
-           {
-           iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributeRepeat;
-           CAknPopupFieldText* repeatPopupFieldText =
-                 (CAknPopupFieldText*)Control( EEvtMgmtUiDlgCIdRepeat );
-           if(repeatPopupFieldText)
-               {
-               if(repeatPopupFieldText->CurrentValueIndex() == 0)               
-                   iEvent.SetRepeat( ETrue );
-               else
-                   iEvent.SetRepeat( EFalse );   
-               }
-           break;
-           }
-        case EEvtMgmtUiDlgCIdAudioLoop:
-           {
-           iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributeAudioLoop;                 
-           CAknPopupFieldText* audioLoopPopupFieldText =
-                 (CAknPopupFieldText*)Control( EEvtMgmtUiDlgCIdAudioLoop );
-           if(audioLoopPopupFieldText)
-               {
-               CEvtToneAction* tone = CEvtToneAction::NewLC();
-               tone->InternalizeL( iEvent.Action() );
-               if( audioLoopPopupFieldText->CurrentValueIndex() == 0)
-                   tone->SetToneLoop( EFalse );
-               else
-                   tone->SetToneLoop( ETrue );   
-               
-                CEvtAction* action = CEvtAction::NewLC();
-                tone->ExternalizeL( *action );
-                iEvent.SetActionL( action ); //ownership is transferred.
-                CleanupStack::Pop( action );
-                CleanupStack::PopAndDestroy( tone );
-               }
-           break;
-           }    
-        case EEvtMgmtUiDlgCIdStatus:
-           {
-           iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributeStatus;                 
-           CAknPopupFieldText* statusPopupFieldText =
-                 (CAknPopupFieldText*)Control( EEvtMgmtUiDlgCIdStatus );
-           if(statusPopupFieldText)
-               {
-               switch(statusPopupFieldText->CurrentValueIndex())
-                   {
-                   case 0:
-                       iEvent.SetEventStatus(EActive);
-                       break;
-                   case 1:
-                       iEvent.SetEventStatus(EDraft);
-                       break;
-                   case 2:
-                       iEvent.SetEventStatus(ECompleted);
-                       break;
-                   default:
-                       iEvent.SetEventStatus(EDraft);
-                       break;
-                   }
-               }
-           break;
-           }                
-        }
-	EVTUIDEBUG("- CEvtEditor::PostLayoutDynInitL()");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::ProcessCommandL()
-// It handles command events
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::ProcessCommandL(TInt  aCommandId)
-    {      
-	EVTUIDEBUG1("+ CEvtEditor::ProcessCommandL() - %d", aCommandId );         
-    CAknForm::ProcessCommandL(aCommandId); //to hide menu  
- 
-    
-    switch(aCommandId)
-        {          
-        case EEvtEditorCmdAddDescNew:
-        case EEvtEditorCmdAddDescFromExisting:            
-        case EEvtEditorCmdEditDesc:
-        case EEvtEditorCmdAssignTone:
-        case EEvtEditorCmdShowOnMap:
-        case EEvtEditorCmdNavigateToPlace:
-        case EEvtMgmtUiEventUiPosSettings:
-        case EEvtEditorCmdSetPlace:
-            {      
-            iCmdHandler->HandleEditorCmdL( aCommandId );
-            break;
-            }
-        case EEvtEditorCmdRemoveDesc:
-            {
-            RemoveDesDlgLineL();
-            iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributeDesc;
-            DrawDeferred();
-            break;
-            }
-        case EEvtEditorCmdDelete:    
-            {
-            if( IsEmptyEventL() )
-                TryExitL( EAknSoftkeyBack );
-            else if( DisplayConfirmationQueryDlgL(R_EVTUI_CREATENEW_FORM_CONFIRMATION_DELETEEVENT) )
-                {
-                if( !iEvent.EventId() )
-                    TryExitL( EAknSoftkeyBack );
-                else
-                    iCmdHandler->HandleEditorCmdL( aCommandId );
-                }
-            break;
-            }
-        case EEvtEditorCmdActivate:
-            {         
-            if(IsEditable())
-                ProcessDoneCommandL();
-            else
-                {            
-                iEvent.SetEventStatus(EActive);
-                iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributeStatus;          
-                iCmdHandler->SetEventAttributeMask( iEventAttributeMask );
-                iCmdHandler->HandleEditorCmdL( aCommandId );
-                }
-            break;
-            }    
-        case EEvtEditorCmdSaveDraft:
-            {         
-            if(IsEditable())
-                ProcessDoneCommandL();
-            else
-                {            
-                iEvent.SetEventStatus(EDraft);
-                iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributeStatus;          
-                iCmdHandler->SetEventAttributeMask( iEventAttributeMask );
-                iCmdHandler->HandleEditorCmdL( aCommandId );
-                }
-            break;
-            }         
-        case EAknCmdExit:
-            {
-            // The User has exited the application using the Exit option from
-            //.Options menu.  But, thats possible only if we exit the application
-            // with EAknCmdExit.
-            // A bit of convoluted logic but needed because we are using the
-            // same components for the Settings UI Server as well as LC.
-            
-           	CEikAppServer* server = iEikonEnv->AppServer();
-			if ( server )
-				{
-				server->NotifyServerExit( EAknCmdExit );
-				}
-		    CAknAppUi* appUi = static_cast< CAknAppUi* >( iEikonEnv->AppUi());
-		    appUi->RunAppShutter();            
-            break;
-            }
-        case EAknFormCmdEdit:
-            {
-            HandleMSKL(); 
-            if( !iIsEditMode )
-                {
-                iIsEditMode = ETrue;
-                }               
-            DrawDeferred();             
-            break;
-            }
-        case EEvtEditorCmdDiscard:
-            if( !DisplayConfirmationQueryDlgL(R_LOCEV_QUERY_DISCARD_CHANGES) )
-                break;
-        case EAknSoftkeyBack:
-            {
-            TryExitL( EAknSoftkeyBack );
-            break;
-            }
-        case EAknCmdHelp:
-            {
-            HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
-                static_cast<CAknAppUi*>(
-                    iCoeEnv->AppUi() )->AppHelpContextL() );
-            break;
-            }
-        default:
-            {
-            //panic code
-            break;
-            }
-        }  
-	EVTUIDEBUG("- CEvtEditor::ProcessCommandL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::SetMopParent
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::SetMopParent(
-    MObjectProvider* aParent )
-    {        
-    CCoeControl::SetMopParent( aParent );
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::SetHelpContext
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::SetHelpContext( TCoeHelpContext aContext )
-    {    
-    iHelpContext = aContext;
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::ExecuteL
-// -----------------------------------------------------------------------------
-//
-TInt CEvtEditor::ExecuteLD()
-    {    
-	return CAknForm::ExecuteLD( R_EVTMGMTUI_CREATEEVENT_FORM_DIALOG );    	
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::GetHelpContext
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::GetHelpContext( TCoeHelpContext& aContext ) const
-    {
-    if ( iHelpContext.iContext.Length() > 0 )
-        {
-        aContext.iContext = iHelpContext.iContext;
-        aContext.iMajor = iHelpContext.iMajor;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CEvtEditor::DisplayConfirmationQueryDlg()
-// It shows confirmation query dialog
-// -----------------------------------------------------------------------------
-//
-TBool CEvtEditor::DisplayConfirmationQueryDlgL( TInt aResourceId )
-    {
-    HBufC* msg = StringLoader::LoadLC(aResourceId);
-    TBool response= EFalse;
-    CAknQueryDialog* confirmationQuery = CAknQueryDialog::NewL();     
-    response = confirmationQuery->ExecuteLD(R_EVTUI_CONFIRMATION_QUERY, *msg);         
-    CleanupStack::PopAndDestroy(msg);
-    return response;
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::ChangeRSKCaptionL()
-// It changes caption of RSK key
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::ChangeRSKCaptionL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::ChangeRSKCaptionL()");
-    //if edit mode then RSK =Done otherwise Back
-    CEikButtonGroupContainer* cba   = CEikButtonGroupContainer::Current();
-    CleanupStack::PushL( cba );
-    if(iIsEditMode)
-        cba->SetCommandSetL ( R_EVTMGMTUI_CREATEEVENT_CBA_NOMSK ); 
-    else
-        cba->SetCommandSetL(R_EVTMGMTUI_CREATEEVENT_CBA_BACK);         
-    cba->DrawDeferred();    
-    CleanupStack::Pop();//cba  
-	EVTUIDEBUG("- CEvtEditor::ChangeRSKCaptionL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::ChangeMSKCaptionL()
-// It changes caption of MSK key
-// @param aControlId of current focused line
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::ChangeMSKCaptionL(TInt  aControlId)
-    {
-	EVTUIDEBUG("+ CEvtEditor::ChangeMSKCaptionL()");
-    CEikButtonGroupContainer* cba   = CEikButtonGroupContainer::Current();
-    CleanupStack::PushL( cba );
-         
-    //attribute specific cba
-    switch(aControlId)
-        {
-        case EEvtMgmtUiDlgCIdSubject:
-        case EEvtMgmtUiDlgCIdRadius:
-            {//Options Done
-            cba->SetCommandSetL(R_EVTMGMTUI_CREATEEVENT_CBA_NOMSK);
-            break;
-            }
-        case EEvtMgmtUiDlgCIdRepeat:
-        case EEvtMgmtUiDlgCIdAssignTone:
-        case EEvtMgmtUiDlgCIdAudioLoop:
-        case EEvtMgmtUiDlgCIdStatus:
-            { //Options Change Done
-            cba->SetCommandSetL(R_EVTMGMTUI_CREATEEVENT_CBA);                
-            break;
-            }
-        case EEvtMgmtUiDlgCIdDesc:
-            {//Options Edit Done
-            cba->SetCommandSetL(R_EVTMGMTUI_CREATEEVENT_CBA_EDIT);
-            break;
-            }
-        case EEvtMgmtUiDlgCIdPlace:
-            {
-            if(iEvent.Place().Compare(KNullDesC)==0)//Options Define Done
-                cba->SetCommandSetL(R_EVTMGMTUI_CREATEEVENT_CBA_DEFINE);
-            else //Options Change Done
-                cba->SetCommandSetL(R_EVTMGMTUI_CREATEEVENT_CBA);
-            break;
-            }
-        default:
-            break;
-        }
-    cba->DrawDeferred();    
-    CleanupStack::Pop();//cba    
-	EVTUIDEBUG("- CEvtEditor::ChangeMSKCaptionL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::HandleMSKL()
-// It performs the required action when MSK is pressed
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::HandleMSKL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::HandleMSKL()");
-    if( !iIsEditMode )
-        {
-        iIsEditMode = ETrue;
-        SetEditableL(ETrue);  
-        ChangeRSKCaptionL();
-        ChangeMSKCaptionL( IdOfFocusControl() ); 
-        return;    
-        }
-    
-    if(IsEditable())
-        {
-        //attribute specific action
-        switch( IdOfFocusControl() )
-            {
-            case EEvtMgmtUiDlgCIdSubject:
-                {
-                CEikEdwin* subjectEditor = static_cast <CEikEdwin*> (ControlOrNull(EEvtMgmtUiDlgCIdSubject));
-                if(subjectEditor )
-                    {    
-                    subjectEditor->SetCursorPosL(iEvent.Subject().Length(),EFalse);
-                    subjectEditor->DrawDeferred();
-                    }
-                break;
-                }
-            case EEvtMgmtUiDlgCIdPlace:
-                {
-                ProcessCommandL(EEvtEditorCmdSetPlace);
-                break;
-                }
-            case EEvtMgmtUiDlgCIdDesc:
-                {
-                ProcessCommandL(EEvtEditorCmdEditDesc);
-                break;
-                }
-            case EEvtMgmtUiDlgCIdAssignTone:
-                {
-                ProcessCommandL(EEvtEditorCmdAssignTone);
-                break;
-                }
-            case EEvtMgmtUiDlgCIdRepeat:    
-                {
-                //ProcessCommandL(EEvtMgmtUiDlgCIdRepeat);
-                TogglePopupFieldControlL( EEvtMgmtUiDlgCIdRepeat );
-                break;
-                }
-            case EEvtMgmtUiDlgCIdAudioLoop:
-                {              
-                //ProcessCommandL(EEvtMgmtUiDlgCIdAudioLoop);
-               TogglePopupFieldControlL( EEvtMgmtUiDlgCIdAudioLoop );
-                break;
-                }  
-            case EEvtMgmtUiDlgCIdStatus:
-                {      
-                CheckStatusL();
-                CAknPopupFieldText* statusEditor = static_cast <CAknPopupFieldText*> ( ControlOrNull(EEvtMgmtUiDlgCIdStatus) );
-                     if (statusEditor)
-                         {  
-                         TKeyEvent keyEvent;
-                         keyEvent.iCode = EKeyEnter;
-                         keyEvent.iModifiers = EModifierPureKeycode;
-                         statusEditor->OfferKeyEventL( keyEvent, EEventKey ); 
-                         }
-                break;
-                }                  
-            default:
-                {  
-                //error panic
-              break;
-                }
-            }
-        }
-	EVTUIDEBUG("- CEvtEditor::HandleMSKL()");
-    }
-    
-// -----------------------------------------------------------------------------
-// CEvtEditor::InsertDesDlgLineL()
-// It inserts dialog line for descriptor
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::InsertDesDlgLineL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::InsertDesDlgLineL()");
-    TInt lineIndex;
-    if( !ControlOrNull( EEvtMgmtUiDlgCIdRadius ))
-        {
-        lineIndex = FindLineIndex(* ControlOrNull(EEvtMgmtUiDlgCIdPlace)) + 1;
-        }
-    else
-        {
-        lineIndex = FindLineIndex(* ControlOrNull(EEvtMgmtUiDlgCIdRadius))  + 1;
-        }
-   InsertLineL(lineIndex,R_EVTUI_CREATENEWFORM_DLGLINE_DESC);
-   UpdatePageL(ETrue);
-	EVTUIDEBUG("- CEvtEditor::InsertDesDlgLineL()");
-   }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::RemoveDesDlgLineL()
-// It removes dialog line for descriptor
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::RemoveDesDlgLineL()
-    {      
-	EVTUIDEBUG("+ CEvtEditor::RemoveDesDlgLineL()");
-    if( ControlOrNull(EEvtMgmtUiDlgCIdDesc))
-      {
-      DeleteLine(EEvtMgmtUiDlgCIdDesc,ETrue);
-      iEvent.SetDescriptionL(KNullDesC);
-      }               
-	EVTUIDEBUG("- CEvtEditor::RemoveDesDlgLineL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::SetDescL()
-// It sets text to descriptor edwin
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::SetDescL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::SetDescL()");
-    CEikEdwin* descEditor = static_cast <CEikEdwin*> (ControlOrNull(EEvtMgmtUiDlgCIdDesc));
-     if (descEditor)
-         {
-         TPtrC desc = iEvent.Description();
-         descEditor->SetTextL(&desc);  
-         UpdatePageL(ETrue);
-         }
-	EVTUIDEBUG("- CEvtEditor::SetDescL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::SetRadiusL()
-// It sets radius to radius editor
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::SetRadiusL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::SetRadiusL()");
-    CAknUnitEditor* radiusEd =
-                      (CAknUnitEditor*)Control( EEvtMgmtUiDlgCIdRadius );
-     if(radiusEd)
-         {
-         NotifySOMChangeL(); // to set unit value
-         }
-	EVTUIDEBUG("- CEvtEditor::SetRadiusL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::CheckStatusL()
-// It Checks for the status and dynamically sets the popup list
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::CheckStatusL()
-    {
-    CAknPopupFieldText* statusEditor = static_cast <CAknPopupFieldText*> ( ControlOrNull(EEvtMgmtUiDlgCIdStatus) );
-    if( statusEditor && statusEditor->MdcArray()->MdcaCount() == 3 )
-        {
-        MDesC16Array* statusArray = (MDesC16Array*) (statusEditor->MdcArray());
-        CAknQueryValueTextArray* aTextArray = static_cast <CAknQueryValueTextArray*> (statusArray);
-        CDesCArray* arr =  aTextArray->Array();      // Delete the previous Array
-        arr->Reset();
-        arr->Compress();
-        HBufC* strActive = StringLoader::LoadLC( R_LOCEV_LIST_VALUE_ACTIVE );
-        HBufC* strDraft = StringLoader::LoadLC( R_LOCEV_LIST_VALUE_DRAFT );
-        arr->AppendL( *strActive );
-        arr->AppendL( *strDraft );
-        CleanupStack::PopAndDestroy( strDraft );
-        CleanupStack::PopAndDestroy( strActive );   
-        
-        if(EActive == iEvent.EventStatus())
-            statusEditor->SetCurrentValueIndex (0);
-        else
-            statusEditor->SetCurrentValueIndex (1);
-            
-        statusEditor->SetFocus(ETrue);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::SetStatusL()
-// It sets Status of the event
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::SetStatusL()
-    {
-    EVTUIDEBUG("+ CEvtEditor::SetStatusL()");
-    //Set Status of the Event
-    CAknPopupFieldText* statusEditor = static_cast <CAknPopupFieldText*> ( ControlOrNull(EEvtMgmtUiDlgCIdStatus) );
-    if(statusEditor)
-        {
-        switch(iEvent.EventStatus())
-            {
-            case EActive:
-                statusEditor->SetCurrentValueIndex(0);
-                break;
-            case EDraft:
-                statusEditor->SetCurrentValueIndex(1);
-                break;
-            case ECompleted:
-                statusEditor->SetCurrentValueIndex(2);
-                break;
-            default:
-                statusEditor->SetCurrentValueIndex(0);
-                break;
-            }
-       }
-    EVTUIDEBUG("- CEvtEditor::SetStatusL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::SetPlaceL()
-// It sets text to place edwin
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::SetPlaceL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::SetPlaceL()");
-    //Set place dialog line to new place value
-    CEikEdwin* placeEditor = static_cast <CEikEdwin*> (ControlOrNull(EEvtMgmtUiDlgCIdPlace));
-    if (placeEditor)
-       { 
-       HBufC* place = iEvent.Place().AllocLC();   
-       if(place->Compare(KNullDesC)!=0)
-           {
-           iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributePlace;
-           placeEditor->SetTextL(place);   
-           placeEditor->DrawDeferred();   
-           InsertRadiusDlgLineL();
-		   DrawNow();
-           } 
-       CleanupStack::PopAndDestroy(place);       
-       }
-	EVTUIDEBUG("- CEvtEditor::SetPlaceL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::SetRingtoneL()
-// It sets text to ringtone edwin
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::SetRingtoneL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::SetRingtoneL()");
-    CEikEdwin* ringtoneEditor = static_cast <CEikEdwin*> ( ControlOrNull(EEvtMgmtUiDlgCIdAssignTone) );
-          
-    if ( ringtoneEditor )
-         {
-         if( iEvent.HasAction() )
-             {            
-             CEvtToneAction* tone = CEvtToneAction::NewLC();  
-             tone->InternalizeL( iEvent.Action() );      
-             TParsePtrC parse( tone->FileName() );
-             TPtrC filename = parse.NameAndExt();
-             ringtoneEditor->SetTextL( &filename ); 
-             
-             // Insert Loop
-             InsertAudioLoopDlgLinesL();
-             CAknPopupFieldText* audioLoopEditor = static_cast <CAknPopupFieldText*> ( ControlOrNull(EEvtMgmtUiDlgCIdAudioLoop) );
-             if(audioLoopEditor)
-                 {
-                 if(tone->ToneLoop())
-                     audioLoopEditor->SetCurrentValueIndex(1);
-                 else
-                     audioLoopEditor->SetCurrentValueIndex(0);
-                 }
-             CleanupStack::PopAndDestroy( tone );
-             }
-         else
-             {
-             HBufC* strOff = StringLoader::LoadLC( R_EVTUI_RINGTONESELECT_OFF );
-             ringtoneEditor->SetTextL( strOff ); 
-             CleanupStack::PopAndDestroy( strOff );
-             
-             // Remove Loop
-             RemoveAudioLoopDlgLineL();
-             }
-         UpdatePageL(ETrue);
-         }
-    Debug(_L("CEvtEditor::SetRingtoneL()"));
-      if( iEvent.HasAction() )
-          {        
-          CEvtToneAction* tone = CEvtToneAction::NewLC();
-          TFileName debug;
-          tone->InternalizeL( iEvent.Action() );
-          debug.Copy(_L("Ringtone: "));
-          debug.Append(tone->FileName());
-          Debug(debug);
-          debug.Copy(_L("Audio Loop: "));
-          debug.AppendNum(tone->ToneLoop());
-          Debug(debug);            
-          CleanupStack::PopAndDestroy(tone);
-          }
-	EVTUIDEBUG("- CEvtEditor::SetRingtoneL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::MandatoryFieldsFilled()
-// It checks if all mandatory fields are filled
-// @return ETrue if all mandatory fields are filled
-//         KFalse otherwise
-// -----------------------------------------------------------------------------
-//
-TBool CEvtEditor::MandatoryFieldsFilled()
-    {   
-    return (iEvent.Subject().Compare(KNullDesC)!=0 && iEvent.Place().Compare(KNullDesC)!=0);
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::LineChangedL()
-// Derived from CAknDialog
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::LineChangedL(TInt  aControlId)
-    {
-	EVTUIDEBUG("+ CEvtEditor::LineChangedL()");
-    if(iIsEditMode)
-        ChangeMSKCaptionL(aControlId); 
-	EVTUIDEBUG("- CEvtEditor::LineChangedL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::InsertRadiusDlgLineL()
-// It inserts dialog line for radius
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::InsertRadiusDlgLineL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::InsertRadiusDlgLineL()");
-    if( ControlOrNull(EEvtMgmtUiDlgCIdRadius)==NULL )
-        {
-        TInt lineIndex;   
-        lineIndex = FindLineIndex(* ControlOrNull(EEvtMgmtUiDlgCIdPlace))+1;
-        InsertLineL(lineIndex,R_EVTUI_CREATENEWFORM_DLGLINE_RADIUS);
-		SetRadiusL();
-        }
-	EVTUIDEBUG("- CEvtEditor::InsertRadiusDlgLineL()");
-	}
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::RemoveRadiusDlgLineL()
-// It remove dialog line for radius
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::RemoveRadiusDlgLineL()
-    {  
-	EVTUIDEBUG("+ CEvtEditor::RemoveRadiusDlgLineL()");
-    if(ControlOrNull(EEvtMgmtUiDlgCIdRadius)!=NULL)
-          {
-          DeleteLine(EEvtMgmtUiDlgCIdRadius,ETrue); 
-          }  
-	EVTUIDEBUG("- CEvtEditor::RemoveRadiusDlgLineL()");  
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::RemoveAudioLoopDlgLineL()
-// It removes dialog line for ringtone and audio-loop
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::RemoveAudioLoopDlgLineL()
-    {  
-	EVTUIDEBUG("+ CEvtEditor::RemoveAudioLoopDlgLineL()");    
-    if(ControlOrNull(EEvtMgmtUiDlgCIdAudioLoop)!=NULL)
-      {
-      DeleteLine(EEvtMgmtUiDlgCIdAudioLoop,ETrue); 
-      }  
-	EVTUIDEBUG("- CEvtEditor::RemoveAudioLoopDlgLineL()");             
-    }
-// -----------------------------------------------------------------------------
-// CEvtEditor::InsertAudioLoopDlgLinesL()
-// It inserts dialog line for ringtone and audio-loop
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::InsertAudioLoopDlgLinesL()
-    {
-	EVTUIDEBUG("+ CEvtEditor::InsertAudioLoopDlgLinesL()"); 
-    if( ControlOrNull(EEvtMgmtUiDlgCIdAudioLoop)==NULL )
-        {
-        TInt lastLineIndex = FindLineIndex(* ControlOrNull(EEvtMgmtUiDlgCIdAssignTone));
-        InsertLineL(lastLineIndex+1,R_EVTUI_CREATENEWFORM_DLGLINE_AUDIOLOOP);
-        UpdatePageL(ETrue);
-        }
-	EVTUIDEBUG("- CEvtEditor::InsertAudioLoopDlgLinesL()"); 
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::NotifyEditorL()
-// Inherited from MEvtMgmtUiEditorObserver
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::NotifyEditorL(TInt aCommand, TInt aErrorCode)
-    {
-	EVTUIDEBUG1("+ CEvtEditor::NotifyEditorL() - %d", aErrorCode ); 
-    if(aErrorCode!=KErrNone && aErrorCode!=KErrCancel&& aErrorCode!=KErrNotFound)
-        return;
-    
-    switch(aCommand)
-        {              
-        case EEvtEditorCmdSetPlace:
-            {        
-            if( aErrorCode==KErrNone )              
-            	SetPlaceL();
-            ChangeMSKCaptionL(EEvtMgmtUiDlgCIdPlace);          
-            break;
-            }
-        case EEvtEditorCmdAddDescNew:
-        case EEvtEditorCmdAddDescFromExisting: 
-        case EEvtEditorCmdEditDesc:
-            {
-            if( aErrorCode == KErrNone )
-                {
-                if(!ControlOrNull(EEvtMgmtUiDlgCIdDesc))
-                    InsertDesDlgLineL();
-                TryChangeFocusToL( EEvtMgmtUiDlgCIdDesc ); 
-                SetDescL();
-                }
-             else
-             	{
-				RemoveDesDlgLineL();
-				DrawNow();
-             	}     
-            iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributeDesc;             
-            break;
-            }
-        case EEvtEditorCmdAssignTone:
-            {     
-            if (  aErrorCode == KErrNone  ||  aErrorCode == KErrNotFound )
-                {
-                // Ring tone assignment was successful
-                SetRingtoneL();
-                TryChangeFocusToL( EEvtMgmtUiDlgCIdAssignTone );   
-                iEventAttributeMask  = iEventAttributeMask | CEvtMgmtUiEngine::EEvtEventAttributeTone;
-                }        
-            break;
-            }
-        case EEvtEditorCmdDelete:        
-        case EEvtEditorCmdActivate:
-        case EEvtEditorCmdSaveDraft:
-            {  
-            if ( !aErrorCode )
-                {
-                TryExitL( EEvtEditorCmdCloseDlg );
-                }
-            break;
-            }      
-        default:
-            {
-            break;
-            }
-        }
-	EVTUIDEBUG("- CEvtEditor::NotifyEditorL()");
-    }
-    
-// -----------------------------------------------------------------------------
-// CEvtEditor::NotifySOMChangeL()
-// Inherited from MEvtMgmtUiSOMObserver
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::NotifySOMChangeL( )
-	{
-	EVTUIDEBUG("+ CEvtEditor::NotifySOMChangeL()");
-    if( ControlOrNull(EEvtMgmtUiDlgCIdRadius) != NULL )
-        {
-        CAknUnitEditor* radiusEd =
-             (CAknUnitEditor*)Control( EEvtMgmtUiDlgCIdRadius );
-             
-        //convert radius in km unit
-        TReal val(0);
-        switch( iSysOfMeas->GetCurrentSysofMeasL() )
-        	{
-        	case ELocImperial: // Mile
-        	    {
-                val = iEvent.Radius();
-                val *= KUnitConversion;
-                TReal setVal;
-                Math::Round(setVal, val, 2);
-                radiusEd->SetMinimumAndMaximum( KMinRadiusInKm*KUnitConversion, KMaxRadiusInKm*KUnitConversion );
-                radiusEd->SetValue( setVal );
-                radiusEd->SetUnitL( EAknUnitEditorMile );      
-        		break;
-        	    }
-        	case ELocMetric:   // KiloMetre
-                {
-                val = iEvent.Radius();
-                TReal setVal;
-                Math::Round(setVal, val, 2);
-                radiusEd->SetMinimumAndMaximum( KMinRadiusInKm, KMaxRadiusInKm );
-                radiusEd->SetValue( setVal );
-                radiusEd->SetUnitL( EAknUnitEditorKilometer );      
-                break;  			
-                }
-        	default: 
-        		break;
-        	}
-        UpdatePageL(ETrue);
-        }
-	EVTUIDEBUG("- CEvtEditor::NotifySOMChangeL()");
-	}
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::OfferKeyEventL()
-// Inherited from CAknForm
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CEvtEditor::OfferKeyEventL (const TKeyEvent &aKeyEvent, TEventCode aType) 
-    {
-    // Handle the "C" key in View mode.
-    if(!IsEditable() && aType == EEventKeyUp)
-        {
-        switch ( aKeyEvent.iScanCode )
-            {
-            case EStdKeyBackspace:
-            case EStdKeyDelete:
-                {
-                ProcessCommandL( EEvtEditorCmdDelete );  
-                return EKeyWasConsumed;               
-                }
-            default:
-                {
-                break;  
-                }
-            }
-        }  
-    
-    // Handle the Control Specific key events.
-    if( IdOfFocusControl() == EEvtMgmtUiDlgCIdPlace && aType == EEventKey )
-        {
-        switch(aKeyEvent.iCode)
-            {
-            case EKeyDownArrow:
-                {
-                if( ControlOrNull(EEvtMgmtUiDlgCIdRadius) )
-                    TryChangeFocusToL( EEvtMgmtUiDlgCIdRadius );  
-                else if( ControlOrNull(EEvtMgmtUiDlgCIdDesc) )
-                    TryChangeFocusToL( EEvtMgmtUiDlgCIdDesc );  
-                else if( ControlOrNull(EEvtMgmtUiDlgCIdRepeat) )
-                    TryChangeFocusToL( EEvtMgmtUiDlgCIdRepeat );  
-                return EKeyWasConsumed;
-                }
-            default:
-                break;
-            }
-        }
-    if( IdOfFocusControl() == EEvtMgmtUiDlgCIdStatus && aType == EEventKey )
-        {
-        switch(aKeyEvent.iCode)
-            {
-            case EKeyLeftArrow:
-            case EKeyRightArrow:
-            case EKeyOK:
-            case EKeyEnter:
-                {
-                CheckStatusL();
-                }
-            default:
-                break;
-            }
-        }
-    return CAknForm::OfferKeyEventL( aKeyEvent, aType );  
-    }
-
-// -----------------------------------------------------------------------------
-// CEvtEditor::HandlePointerEventL()
-// Inherited from CAknForm
-// -----------------------------------------------------------------------------
-//
-void CEvtEditor::HandlePointerEventL(const TPointerEvent& aPointerEvent)
-    {    
-    EVTUIDEBUG("+ CEvtEditor::HandlePointerEventL()");
-
-    if( aPointerEvent.iType != TPointerEvent::EButton1Up  )
-        {
-        CAknForm::HandlePointerEventL( aPointerEvent );  
-        if( aPointerEvent.iType == TPointerEvent::EDrag  )
-            iIsDragging++;
-        return;
-        }
-    
-    EVTUIDEBUG1("iIsDragging =%d",iIsDragging );
-    
-    //ToDo: Hack for kinetic scrolling
-    // Must be removed once avkon fix is recieved.
-    if( iIsDragging >6 )
-        {        
-        CAknForm::HandlePointerEventL( aPointerEvent );
-        iIsDragging = 0;  
-        return;
-        }
-        
-    iIsDragging = 0;
-    // End of todo
-    
-    if( !IsEditable() )
-        {
-        iIsEditMode = ETrue;
-        SetEditableL(ETrue);
-        ChangeRSKCaptionL();
-        ChangeMSKCaptionL( IdOfFocusControl() ); 			
-		return;
-        }	  
-    
-    CEikEdwin* editor = NULL;
-    CAknPopupFieldText* popupFieldText = NULL;
-    switch(IdOfFocusControl())
-        {
-        case EEvtMgmtUiDlgCIdPlace: // Place Editor
-            editor = static_cast <CEikEdwin*> (ControlOrNull(EEvtMgmtUiDlgCIdPlace));
-             if ( editor )
-                 { 
-                 iCmdHandler->HandleEditorCmdL( EEvtEditorCmdSetPlace );
-                 }
-            break;
-        case EEvtMgmtUiDlgCIdDesc: // Description Editor
-            editor = static_cast <CEikEdwin*> (ControlOrNull(EEvtMgmtUiDlgCIdDesc));
-             if ( editor )
-                 {
-                 iCmdHandler->HandleEditorCmdL( EEvtEditorCmdEditDesc );
-                 }
-            break;
-        case EEvtMgmtUiDlgCIdAssignTone: // Tone Editor
-            editor = static_cast <CEikEdwin*> (ControlOrNull(EEvtMgmtUiDlgCIdAssignTone));
-             if ( editor )
-                 {
-                 iCmdHandler->HandleEditorCmdL( EEvtEditorCmdAssignTone );
-                 }
-            break;
-        case EEvtMgmtUiDlgCIdStatus: // Status Editor
-            popupFieldText = static_cast <CAknPopupFieldText*> ( ControlOrNull(EEvtMgmtUiDlgCIdStatus) );
-            if( popupFieldText )
-                {
-                TInt editorStatus = popupFieldText->CurrentValueIndex();
-                CheckStatusL();
-                if( ECompleted != editorStatus )
-                    {
-                    if( EActive == editorStatus )
-                        {
-                        popupFieldText->SetCurrentValueIndex ( EDraft );
-                        }
-                    else
-                        {
-                        popupFieldText->SetCurrentValueIndex ( EActive );
-                        }
-          					HandleControlStateChangeL( EEvtMgmtUiDlgCIdStatus );
-                    UpdatePageL(ETrue);
-                    return;
-                    }
-                else
-                    {
-                    CAknForm::HandlePointerEventL( aPointerEvent );  
-                    return;
-                    }
-                }
-            break;
-        case EEvtMgmtUiDlgCIdRepeat: // Repeat editor
-        case EEvtMgmtUiDlgCIdAudioLoop: // audio loop editor
-        				TogglePopupFieldControlL( IdOfFocusControl() );
-            break;
-        default:
-            CAknForm::HandlePointerEventL( aPointerEvent );  
-            break;
-        }
-		EVTUIDEBUG("- CEvtEditor::HandlePointerEventL()");
-    }
-// ---------------------------------------------------------------------------
-// CEvtEditor::MakeTitleL()
-// Set the Title Text
-// ---------------------------------------------------------------------------
-//
-void CEvtEditor::MakeTitleL( TDesC& aText )
-    {
-	EVTUIDEBUG("+ CEvtEditor::MakeTitleL()");
-    
-    // Obtain the title from the Status Pane
-    CAknTitlePane* title = static_cast<CAknTitlePane*>( iEikonEnv->AppUiFactory()->
-    	StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle )));
-       
-    // Set the Title's buffer    
-    HBufC* buf = aText.AllocL();
-    title->SetText( buf ); // Takes ownership of buf
-    title->DrawNow();
-	EVTUIDEBUG("- CEvtEditor::MakeTitleL()");
-    }     
-
-// ---------------------------------------------------------------------------
-// CEvtEditor::TogglePopupFieldControlL()
-// it toggles  value of popupfield control
-// ---------------------------------------------------------------------------
-//
-void CEvtEditor::TogglePopupFieldControlL( TInt aControlId )
-    {
-	EVTUIDEBUG1("+ CEvtEditor::TogglePopupFieldControlL() - %d", aControlId );
-    CAknPopupFieldText* audioLoopPopupFieldText =
-                    (CAknPopupFieldText*)Control( aControlId );
-      if(audioLoopPopupFieldText)
-          {          
-          if( audioLoopPopupFieldText->CurrentValueIndex() == 0)
-              audioLoopPopupFieldText->SetCurrentValueIndex(1);
-          else
-              audioLoopPopupFieldText->SetCurrentValueIndex(0);    
-                    
-          HandleControlStateChangeL( aControlId );
-          
-          UpdatePageL(ETrue);
-          }
-	EVTUIDEBUG("- CEvtEditor::TogglePopupFieldControlL()");
-    }
-    
-// ---------------------------------------------------------------------------
-// void CEvtMgmtUiModel::OpenLocalizedResourceFileL
-// Opens the nearest localized resourcefile using aResourceLoader. 
-// aResourceLoader should be opened only once before closing it. 
-// Otherwise it will raise a panic. Therefore it is better to have 
-// multiple resource loaders.
-// 
-// @param aResourceFileName Drive and name of resource file in format 
-//                          <path>:<rsc_file_name>
-// @param aResourceLoader Resource loader for the resource. The loader 
-//                        must not be opened allready or it will raise 
-//                        a panic. It is caller's responsibility to 
-//                        close the resource loader after using the 
-//                        resource.
-// ---------------------------------------------------------------------------
-//  
-void CEvtEditor::OpenLocalizedResourceFileL( 
-                            const TDesC&               aResourceFileName, 
-                                  RConeResourceLoader& aResourceLoader )
-    {    
-    TFileName* tmpName = new(ELeave) TFileName;
-    CleanupStack::PushL( tmpName );
-    
-    // Append the Resource Files Directory
-    tmpName->Append( KDC_RESOURCE_FILES_DIR );
-    
-    // Append the Ressource File Name
-    tmpName->Append( aResourceFileName );
-    
-    // Obtain the drive where the DLL is installed
-    TFileName* dllDrive = new (ELeave) TFileName;
-    CleanupStack::PushL( dllDrive );
-    Dll::FileName( *dllDrive );
-    
-    // Obtain the Complete path for the Resource File
-    TParse parse;
-    User::LeaveIfError( parse.Set( *dllDrive, NULL, NULL ) );
-    User::LeaveIfError( parse.Set( parse.Drive(), tmpName, NULL ) );
-    TFileName* fileName = new(ELeave) TFileName;
-    CleanupStack::PushL( fileName );
-    fileName->Append( parse.FullName() );
-    
-    // Get language of resource file
-    BaflUtils::NearestLanguageFile( CEikonEnv::Static()->FsSession(), *fileName );
-    
-    // Open resource file    
-    aResourceLoader.OpenL( *fileName );
-    
-    // Pop all the fields
-    CleanupStack::PopAndDestroy( fileName );
-    CleanupStack::PopAndDestroy( dllDrive );
-    CleanupStack::PopAndDestroy( tmpName );    
-    }
-
-//End of file