diff -r d2c4c66342f3 -r d51193d814ea messagingfw/muiuutils/src/MsvFactorySettings.cpp --- a/messagingfw/muiuutils/src/MsvFactorySettings.cpp Tue Aug 31 15:41:11 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,140 +0,0 @@ -/* -* Copyright (c) 2002 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: MsvFactorySettings implementation -* -*/ - - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "MsvFactorySettings.h" - - - -// MODULE DATA STRUCTURES -class CDummyObserver : public CBase, public MMsvSessionObserver - { - public: - CDummyObserver() {}; - void HandleSessionEventL( TMsvSessionEvent /*aEvent*/, - TAny* /*aArg1*/, - TAny* /*aArg2*/, - TAny* /*aArg3*/ ) {}; - }; - -// LOCAL FUNCTION PROTOTYPES -/** -* Performs factory settings to single item -*/ -void DoRestoreFactorySettingsSingleMtmL( CClientMtmRegistry& aBaseReg, - CMtmUiRegistry& aUiReg, - TUid anId, - TMsvFactorySettingsLevel aLevel ); - - -// ================= MEMBER FUNCTIONS ======================= - -// --------------------------------------------------------- -// MsvFactorySettings::ResetL -// --------------------------------------------------------- -// -EXPORT_C void MsvFactorySettings::ResetL( TMsvFactorySettingsLevel aLevel ) - { - // connect to the server - CDummyObserver* ob = new( ELeave )CDummyObserver; - CleanupStack::PushL(ob); - - CMsvSession* session = CMsvSession::OpenSyncL( *ob ); - CleanupStack::PushL( session ); - - //create ui registry - CClientMtmRegistry* basemtmregistry = CClientMtmRegistry::NewL( *session ); - CleanupStack::PushL( basemtmregistry ); - CMtmUiRegistry* uiRegistry = CMtmUiRegistry::NewL( *session ); - CleanupStack::PushL( uiRegistry ); - - //check through mtms - TInt error = 0; - TInt count=uiRegistry->NumRegisteredMtmDlls(); - for ( TInt cc=0; cc < count; ++cc ) - { - // return value is ignored, so as not to prevent other MTMs being initialised - TRAPD(ret, DoRestoreFactorySettingsSingleMtmL( *basemtmregistry, - *uiRegistry, - basemtmregistry->MtmTypeUid( cc ), - aLevel ) ); - if ( ret && ret != KErrNotSupported ) - { - error = ret; - } - } - - User::LeaveIfError( error ); - CleanupStack::PopAndDestroy( 4,ob ); // uiRegistry,basemtmregistry,session,ob - } - - -// --------------------------------------------------------- -// DoRestoreFactorySettingsSingleMtmL -// --------------------------------------------------------- -// -void DoRestoreFactorySettingsSingleMtmL( CClientMtmRegistry& aBaseReg, - CMtmUiRegistry& aUiReg, - TUid anId, - TMsvFactorySettingsLevel aLevel ) - { - //create base mtm - CBaseMtm* baseMtm = aBaseReg.NewMtmL( anId ); - CleanupStack::PushL( baseMtm ); - - CBaseMtmUi* mtmUi = aUiReg.NewMtmUiL( *baseMtm ); - CleanupStack::PushL( mtmUi ); - - TInt response; - TUid isInstalled = { KUidMsvMtmQueryFactorySettings }; - TInt err = mtmUi->QueryCapability( isInstalled, response ); - - if ( err == KErrNone ) - { - // Need to install this type - CMsvEntrySelection* tempobject = new ( ELeave ) CMsvEntrySelection; - CleanupStack::PushL( tempobject ); - TPckg levelPack( aLevel ); - TInt installNow = { KMtmUiFunctionRestoreFactorySettings }; - mtmUi->InvokeSyncFunctionL( installNow, *tempobject, levelPack ); - CleanupStack::PopAndDestroy( tempobject ); - } - else if ( err != KErrNotSupported ) - { - User::Leave( err ); - } - else - { - //Does nothing - } - - CleanupStack::PopAndDestroy( 2, baseMtm ); // mtmUi,baseMtm - } - -// End of File -