meetingrequest/mrgui/src/cesmrcontactmenuhandler.cpp
branchRCL_3
changeset 12 4ce476e64c59
parent 11 0396474f30f5
child 13 8592a65ad3fb
--- a/meetingrequest/mrgui/src/cesmrcontactmenuhandler.cpp	Mon Mar 15 12:39:10 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,778 +0,0 @@
-/*
-* Copyright (c) 2008-2009 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:  Implementation of class CESMRContactMenuHandler.
-*
-*/
-
-
-#include "emailtrace.h"
-#include "cesmrcontactmenuhandler.h"
-#include "cesmrcontactmenuurlhandler.h"
-#include "cesmrcontactmenuattachmenthandler.h"
-
-#include <CVPbkContactManager.h>
-#include <CVPbkContactLinkArray.h>
-#include <MVPbkContactStoreList.h>
-#include <MVPbkContactStore.h>
-#include <MVPbkContactStoreProperties.h>
-#include <MVPbkStoreContact.h>
-#include <MVPbkFieldType.h>
-#include <MVPbkContactOperationBase.h>
-#include <MVPbkContactFieldTextData.h>
-#include <TVPbkFieldVersitProperty.h>
-#include <CVPbkFieldTypeRefsList.h>
-
-#include "cfsccontactactionservice.h"
-#include "cfsccontactactionmenu.h"
-#include "tfsccontactactionqueryresult.h"
-#include "tfsccontactactionvisibility.h"
-#include "mfsccontactaction.h"
-#include "mfsccontactactionmenumodel.h"
-#include "cesmrattachmentinfo.h"
-
-#include <CVPbkFieldTypeIterator.h>
-#include <CVPbkFieldTypeSelector.h>
-#include <VPbkEng.rsg>
-
-#include <esmrgui.rsg>
-#include "esmrcommands.h"
-
-#include <eikenv.h>
-#include <eikmenup.h>
-#include <commonphoneparser.h>
-
-/// Unnamed namespace for local definitions
-namespace{ // codescanner::namespace
-
-const TInt KGranularity( 8 );
-
-}//namespace
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::CESMRContactMenuHandler( )
-// ---------------------------------------------------------------------------
-//
-CESMRContactMenuHandler::CESMRContactMenuHandler( 
-		CESMRContactManagerHandler& aContactManagerHandler ):
-    iContactManagerHandler( aContactManagerHandler ), 
-    iContactActionList( KGranularity )
-    {
-    FUNC_LOG;
-    //do nothing
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::NewL( )
-// ---------------------------------------------------------------------------
-//
-CESMRContactMenuHandler* CESMRContactMenuHandler::NewL( 
-		CESMRContactManagerHandler& aContactManagerHandler )
-    {
-    FUNC_LOG;
-    CESMRContactMenuHandler* self = new (ELeave) CESMRContactMenuHandler( 
-													aContactManagerHandler );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::ConstructL( )
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::ConstructL( )
-    {
-    FUNC_LOG;
-    
-    CVPbkContactManager& contactManager =
-            iContactManagerHandler.GetContactManager();
-    
-    iContactActionService = CFscContactActionService::NewL( contactManager );
-    iContactActionMenu = CFscContactActionMenu::NewL( 
-            *iContactActionService, EFscContactActionMenuModeNormal, ETrue );
-
-    iContactMenuUrlHandler
-            = CESMRContactMenuUrlHandler::NewL( *iContactActionMenu );
-
-	// <cmail>
-    iContactMenuAttachmentHandler
-            = CESMRContactMenuAttachmentHandler::NewL( *iContactActionMenu );
-	// </cmail>
-
-    if ( iContactManagerHandler.IsReady() )
-        {
-        iContactManagerReady = ETrue;
-        }
-    else
-        {
-        iContactManagerHandler.AddObserverL ( this );
-        }
-    
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::~CESMRContactMenuHandler( )
-// ---------------------------------------------------------------------------
-//
-CESMRContactMenuHandler::~CESMRContactMenuHandler( )
-    {
-    FUNC_LOG;
-    iStoreContactList.ResetAndDestroy();
-    delete iFindResultsArray;
-    delete iContactMenuUrlHandler;    
-    delete iContactMenuAttachmentHandler;    
-    delete iContactOperationBase;
-    delete iContactActionMenu;
-    delete iContactActionService;
-    delete iValue;
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::OptionsMenuAvailable( )
-// ---------------------------------------------------------------------------
-//
-TBool CESMRContactMenuHandler::OptionsMenuAvailable( )
-    {
-    FUNC_LOG;
-    return iOptionsMenuReady || 
-		   iContactMenuUrlHandler->OptionsMenuAvailable( ) ||
-		   iContactMenuAttachmentHandler->OptionsMenuAvailable();
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::InitOptionsMenuL
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::InitOptionsMenuL( 
-		CEikMenuPane* aActionMenuPane )
-    {
-    FUNC_LOG;
-    switch ( iValueType )
-        {
-        case EValueTypeEmail: // Fall through
-        case EValueTypePhoneNumber:
-            {
-            // Add actions to options / actions submenu
-            const TInt count(iContactActionList.Count());
-            for ( TInt i = 0; i < count; ++i )
-                {
-                CEikMenuPaneItem::SData data;
-                data.iFlags = 0;
-                data.iCascadeId = 0;
-                data.iCommandId = EESMRCmdActionMenuFirst + i;
-                data.iText = iContactActionList[i].iAction->ActionMenuText();
-                aActionMenuPane->AddMenuItemL( data );
-
-                aActionMenuPane->SetItemDimmed( 
-                		data.iCommandId,
-                        iContactActionList[i].iOptionsMenuVisibility.iVisibility
-                        == TFscContactActionVisibility::EFscActionDimmed );
-                }
-            break;
-            }
-        case EValueTypeURL:
-            {
-            iContactMenuUrlHandler->InitOptionsMenuL( aActionMenuPane );
-            break;
-            }        
-        case EValueTypeAttachment:
-            {
-            iContactMenuAttachmentHandler->InitOptionsMenuL( aActionMenuPane );
-            break;
-            }     
-        default:
-            {
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::ExecuteOptionsMenuL
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::ExecuteOptionsMenuL( TInt aCommand )
-    {
-    FUNC_LOG;
-    switch ( iValueType )
-        {
-        case EValueTypeEmail: // Fall through
-        case EValueTypePhoneNumber:
-            {
-            TInt index = aCommand - EESMRCmdActionMenuFirst;
-            if ( index >= 0 && index < iContactActionList.Count() )
-                {
-                TUid uid = iContactActionList[index].iAction->Uid();
-                iContactActionService->ExecuteL( uid, this );
-                }
-            break;
-            }
-        case EValueTypeURL:
-            {
-            iContactMenuUrlHandler->ExecuteOptionsMenuL( aCommand );
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::Reset( )
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CESMRContactMenuHandler::Reset( )
-    {
-    FUNC_LOG;
-    delete iContactOperationBase;
-    iContactOperationBase = NULL;
-
-    delete iFindResultsArray;
-    iFindResultsArray = NULL;
-
-    iContactMenuUrlHandler->Reset();
-    iContactMenuAttachmentHandler->Reset();
-    
-    iContactActionMenu->Model().RemoveAll();
-    
-    delete iValue;
-    iValue = NULL;
-    
-    iContactActionList.Reset();
-    iStoreContactList.ResetAndDestroy();
-    iActionMenuReady = EFalse;
-    iOptionsMenuReady = EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::SetValueL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CESMRContactMenuHandler::SetValueL(
-        const TDesC& aValue, TValueType aValueType )
-    {
-    FUNC_LOG;
-    Reset();
-
-    if ( aValueType == EValueTypeURL )
-        {
-        iContactMenuUrlHandler->SetUrlL( aValue );
-        iValueType = aValueType;
-        }
-    else if( aValueType == EValueTypeAttachment )
-        {
-        iContactMenuAttachmentHandler->InitActionMenuL();
-        iValueType = aValueType;
-        }
-    else
-        {
-        iValue = aValue.AllocL();
-        iValueType = aValueType;
-        if ( iContactManagerReady )
-            {
-            SearchContactL();
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::SetAttachmentInfoL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CESMRContactMenuHandler::SetAttachmentInfoL(
-        CESMRAttachmentInfo* aAttachmentInfo )
-    {
-    FUNC_LOG;
-
-    iContactMenuAttachmentHandler->SetAttachmentInfo( aAttachmentInfo );
-    SetValueL( KNullDesC, EValueTypeAttachment );
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::SetCommandObserver()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CESMRContactMenuHandler::SetCommandObserver(
-            MEikCommandObserver* aCommandObserver )
-    {
-    FUNC_LOG;
-    iCommandObserver = aCommandObserver;
-    
-    if ( iValueType == EValueTypeAttachment )
-        {
-        iContactMenuAttachmentHandler->SetCommandObserver( aCommandObserver );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::ShowActionMenuL( )
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CESMRContactMenuHandler::ShowActionMenuL( )
-    {
-    FUNC_LOG;
-    if ( iValueType == EValueTypeURL )
-        {
-        iContactMenuUrlHandler->ShowActionMenuL();
-        }
-    else if ( iValueType == EValueTypeAttachment )
-        {
-        iContactMenuAttachmentHandler->ShowActionMenuL();
-        }
-    else if ( iActionMenuReady )
-        {
-        iContactActionMenu->ExecuteL( );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::VerifyContactDetailsL
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::VerifyContactDetailsL()
-    {
-    FUNC_LOG;
-    if ( iFindResultsArrayIndex < iFindResultsArray->Count() )
-        {
-        CVPbkContactManager& contactManager =
-                iContactManagerHandler.GetContactManager();
-
-        iContactOperationBase =
-            contactManager.RetrieveContactL( 
-            		iFindResultsArray->At( iFindResultsArrayIndex ), 
-            		*this );
-        }
-    else
-        {
-        delete iFindResultsArray;
-        iFindResultsArray = NULL;
-
-        if ( iStoreContactList.Count() > 0 )
-            {
-            iContactActionService->SetContactSetL( iStoreContactList );
-            iContactActionService->QueryActionsL( this );
-            }
-        else
-            {
-            CreateContactL ( );
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::ContactManagerReady( )
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::ContactManagerReady( )
-    {
-    FUNC_LOG;
-    iContactManagerReady = ETrue;
-    iContactManagerHandler.RemoveObserver( this );
-    if ( iValue )
-        {
-        TRAP_IGNORE( SearchContactL() );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::VPbkSingleContactOperationComplete
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::VPbkSingleContactOperationComplete(
-        MVPbkContactOperationBase& /*aOperation*/,
-        MVPbkStoreContact* aContact )
-    {
-    FUNC_LOG;
-    delete iContactOperationBase;
-    iContactOperationBase = NULL;
-
-    MVPbkStoreContactFieldCollection& fieldCollection =
-        aContact->Fields();
-
-    TBool valueMatchFound = EFalse;
-    const TInt count(fieldCollection.FieldCount());
-    for ( TInt i = 0; valueMatchFound == EFalse && i < count; ++i )
-        {
-        MVPbkStoreContactField& contactField = fieldCollection.FieldAt( i );
-        MVPbkContactFieldData& fieldData = contactField.FieldData();
-        if ( fieldData.DataType() == EVPbkFieldStorageTypeText )
-            {
-            MVPbkContactFieldTextData& fieldTextData =
-                MVPbkContactFieldTextData::Cast( fieldData );
-
-            if ( fieldTextData.Text().CompareF( *iValue ) == 0 )
-                {
-                valueMatchFound = ETrue;
-                }
-            }
-        }
-
-    if ( valueMatchFound )
-        {
-        TRAP_IGNORE( iStoreContactList.AppendL( aContact ) );
-        }
-    else
-        {
-        delete aContact;
-        }
-
-    ++iFindResultsArrayIndex;
-    TRAPD( err, VerifyContactDetailsL() );
-    if ( err != KErrNone )
-        {
-        Reset();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::VPbkSingleContactOperationFailed
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::VPbkSingleContactOperationFailed(
-        MVPbkContactOperationBase& /*aOperation*/,
-        TInt /*aError*/ )
-    {
-    FUNC_LOG;
-    delete iContactOperationBase;
-    iContactOperationBase = NULL;
-
-    ++iFindResultsArrayIndex;
-    TRAPD( err, VerifyContactDetailsL() );
-    if ( err != KErrNone )
-        {
-        Reset();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::FindCompleteL
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::FindCompleteL( MVPbkContactLinkArray* aResults )
-    {
-    FUNC_LOG;
-    delete iContactOperationBase;
-    iContactOperationBase = NULL;
-
-    iStoreContactList.ResetAndDestroy();
-    iFindResultsArray = aResults;
-    iFindResultsArrayIndex = 0;
-
-    VerifyContactDetailsL();
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::FindFailed
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::FindFailed( TInt /*aError*/)
-    {
-    FUNC_LOG;
-    delete iContactOperationBase;
-    iContactOperationBase = NULL;
-
-    Reset ( );
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::QueryActionsComplete( )
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::QueryActionsComplete( )
-    {
-    FUNC_LOG;
-    const CFscContactActionList& actionList =
-            iContactActionService->QueryResults();
-
-    // Add visible actions to local contact action list for
-    // options menu / actions.
-    const TInt count(actionList.Count());
-    for ( TInt i = 0; i < count; ++i )
-        {
-        TFscContactActionVisibility::TVisibility visibility =
-                actionList[i].iOptionsMenuVisibility.iVisibility;
-        if ( visibility == TFscContactActionVisibility::EFscActionVisible ||
-             visibility == TFscContactActionVisibility::EFscActionDimmed )
-            {
-            TRAP_IGNORE( iContactActionList.AppendL( actionList.At(i) ) );
-            }
-        }
-
-    const TInt count2(iContactActionList.Count());
-    for ( TInt i = 0; i < count2; ++i )
-        {
-        iContactActionList[i].iPriority = -iContactActionList[i].iPriority;
-        }
-
-    // Sort local list of actions by priority.
-    TKeyArrayFix sortKey( _FOFF( TFscContactActionQueryResult, // codescanner::foff
-                                 iPriority ),
-                          ECmpTInt);
-    iContactActionList.Sort( sortKey );
-
-    // Enable options menu / actions if there are actions available.
-    iOptionsMenuReady = iContactActionList.Count() > 0;
-
-    // Initialize contact action menu and enable it.
-    TRAPD( error, iContactActionMenu->Model().AddPreQueriedCasItemsL ( ) );
-    if ( error != KErrNone )
-        {
-        iActionMenuReady = EFalse;
-        }
-    else
-        {
-        iActionMenuReady = ETrue;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::QueryActionsFailed
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::QueryActionsFailed( TInt /*aError*/)
-    {
-    FUNC_LOG;
-    Reset();
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::ExecuteComplete( )
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::ExecuteComplete( )
-    {
-    FUNC_LOG;
-    // Do nothing
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::ExecuteFailed
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::ExecuteFailed( TInt /*aError*/)
-    {
-    FUNC_LOG;
-    // Do nothing
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::SearchContactL( )
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::SearchContactL( )
-    {
-    FUNC_LOG;
-    // Cancel ongoing search if one exists.
-    if ( iContactOperationBase )
-        {
-        delete iContactOperationBase;
-        iContactOperationBase = NULL;
-        }
-
-    CVPbkContactManager& contactManager =
-            iContactManagerHandler.GetContactManager();
-
-    switch ( iValueType )
-        {
-        case EValueTypeEmail:
-            {
-            const MVPbkFieldTypeList& fieldTypeList = 
-							contactManager.FieldTypes();
-
-            CVPbkFieldTypeRefsList* fieldTypeRefsList =
-                    CVPbkFieldTypeRefsList::NewL();
-            CleanupStack::PushL( fieldTypeRefsList );
-
-            // Search for all email fields.
-            const TInt count(fieldTypeList.FieldTypeCount());
-            for ( TInt i = 0; i < count; ++i )
-                {
-                const MVPbkFieldType& fieldType = 
-					fieldTypeList.FieldTypeAt( i );
-                TArray<TVPbkFieldVersitProperty> versitProperties =
-                        fieldType.VersitProperties();
-
-                const TInt count2(versitProperties.Count());
-                for ( TInt ii=0; ii < count2; ++ii )
-                    {
-                    if ( versitProperties[ii].Name() == EVPbkVersitNameEMAIL )
-                        {
-                        fieldTypeRefsList->AppendL( fieldType );
-                        break;
-                        }
-                    }
-                }
-
-            // Initiate find operation, returns to FindCompleteL.
-            iContactOperationBase = contactManager.FindL( *iValue,
-                    *fieldTypeRefsList, *this );
-
-            CleanupStack::PopAndDestroy ( fieldTypeRefsList );
-            break;
-            }
-        case EValueTypePhoneNumber:
-            {
-            if ( CommonPhoneParser::IsValidPhoneNumber( *iValue,
-                    CommonPhoneParser::EPlainPhoneNumber ) )
-                {
-                // Initiate find operation, returns to FindCompleteL.
-                const MVPbkFieldTypeList& fieldTypeList = 
-											contactManager.FieldTypes();
-
-                CVPbkFieldTypeRefsList* fieldTypeRefsList =
-                        CVPbkFieldTypeRefsList::NewL();
-                CleanupStack::PushL( fieldTypeRefsList );
-
-                // Search for all email fields.
-                const TInt count(fieldTypeList.FieldTypeCount());
-                for ( TInt i = 0; i < count; ++i )
-                    {
-                    const MVPbkFieldType& fieldType = 
-											fieldTypeList.FieldTypeAt( i );
-                    TArray<TVPbkFieldVersitProperty> versitProperties =
-                            fieldType.VersitProperties();
-
-                    const TInt count2(versitProperties.Count());
-                    for ( TInt ii=0; ii < count2; ++ii )
-                        {
-                        if ( versitProperties[ii].Name() == EVPbkVersitNameTEL )
-                            {
-                            fieldTypeRefsList->AppendL( fieldType );
-                            break;
-                            }
-                        }
-                    }
-                // Initiate find operation, returns to FindCompleteL.
-                iContactOperationBase = contactManager.FindL( *iValue,
-                        *fieldTypeRefsList, *this );
-
-                CleanupStack::PopAndDestroy ( fieldTypeRefsList );
-                }
-            else
-                {
-                CreateContactL();
-                }
-            break;
-            }
-        default:
-            {
-            // Disable contact action handler.
-            Reset();
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::CreateContactL( )
-// ---------------------------------------------------------------------------
-//
-void CESMRContactMenuHandler::CreateContactL( )
-    {
-    FUNC_LOG;
-    CVPbkContactManager& contactManager =
-            iContactManagerHandler.GetContactManager();
-
-    const MVPbkFieldTypeList& fieldTypeList = contactManager.FieldTypes();
-    const MVPbkFieldType* fieldType= NULL;
-
-    // Try to find appropriate field type.
-    switch ( iValueType )
-        {
-        case EValueTypeEmail:
-            {
-            fieldType = fieldTypeList.Find ( R_VPBK_FIELD_TYPE_EMAILGEN );
-            break;
-            }
-        case EValueTypePhoneNumber:
-            {
-            fieldType = fieldTypeList.Find ( R_VPBK_FIELD_TYPE_MOBILEPHONEGEN );
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-
-    // If field type was found.
-    if ( fieldType )
-        {
-        // Create temporary store contact.
-        MVPbkContactStore& store = LocalContactStoreL();
-        MVPbkStoreContact* storeContact = store.CreateNewContactLC();
-        iStoreContactList.AppendL( storeContact );
-        CleanupStack::Pop(); // codescanner::cleanup
-
-        // Add link value to field.
-        MVPbkStoreContactField* field =
-                storeContact->CreateFieldLC ( *fieldType );
-        MVPbkContactFieldTextData::Cast(field->FieldData()).SetTextL(*iValue);
-        storeContact->AddFieldL( field );
-        CleanupStack::Pop( field );
-
-        // Add link value to first name too.
-        // Otherwise t.ex send multimedia shows contact as 'unnamed'.
-        fieldType = fieldTypeList.Find( R_VPBK_FIELD_TYPE_FIRSTNAME );
-        if ( fieldType )
-            {
-            field = storeContact->CreateFieldLC( *fieldType );
-            MVPbkContactFieldTextData::Cast( 
-            		field->FieldData() ).SetTextL( *iValue );
-            storeContact->AddFieldL( field );
-            CleanupStack::Pop( field );
-            }
-
-        // Set contact set for contact action service.
-        iContactActionService->SetContactSetL( iStoreContactList );
-        // Initiate query actions, returns to QueryActionsComplete.
-        iContactActionService->QueryActionsL( this );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRContactMenuHandler::LocalContactStoreL( )
-// ---------------------------------------------------------------------------
-//
-MVPbkContactStore& CESMRContactMenuHandler::LocalContactStoreL( )
-    {
-    FUNC_LOG;
-    CVPbkContactManager& contactManager =
-            iContactManagerHandler.GetContactManager();
-
-    // Search for local contact store.
-    MVPbkContactStoreList& storeList = contactManager.ContactStoresL();
-    const TInt count(storeList.Count());
-    for ( TInt i = 0; i< count; ++i )
-        {
-        MVPbkContactStore& store = storeList.At( i );
-        if ( store.StoreProperties().Local() )
-            {
-            return store;
-            }
-        }
-    // Leave if not found.
-    User::Leave ( KErrNotFound );
-    // Disables warning.
-    MVPbkContactStore* null = NULL;
-    return *null;
-    }
-
-// EOF
-