diff -r 6205fd287e8a -r 1abc632eb502 menufw/hierarchynavigator/hnutilities/src/hnrepositorymanager.cpp --- a/menufw/hierarchynavigator/hnutilities/src/hnrepositorymanager.cpp Thu Mar 18 14:45:17 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,194 +0,0 @@ -/* -* Copyright (c) 2007-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: -* -*/ - - -#include - -#include "hnrepositorymanager.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C CHnRepositoryManager * CHnRepositoryManager::NewL() - { - CHnRepositoryManager * self = CHnRepositoryManager::NewLC(); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C CHnRepositoryManager * CHnRepositoryManager::NewLC() - { - CHnRepositoryManager * self = new (ELeave) CHnRepositoryManager(); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CHnRepositoryManager::StoreSuiteWidgetTypeL( - const TDesC& aSuiteName, THnSuiteWidgetType aWidgetType ) - { - DEBUG(("_MM_:CHnRepositoryManager::StoreSuiteWidgetTypeL IN")); - DEBUG16(("_MM_:\taSuiteName: %S; aWidgetType: %d",&aSuiteName,aWidgetType)); - - TInt ret( KErrGeneral ); - - RArray< TUint32 > foundIds; - CleanupClosePushL( foundIds ); - - ret = iRepository->FindEqL( 0, 0, aSuiteName, foundIds ); - - // If there is more than one entry of suite genre in central repository - // it certainly means that it's a mistake. - ASSERT( foundIds.Count() <= 1 ); - - TInt keyId; - if ( foundIds.Count() == 1 ) - { - keyId = foundIds[ foundIds.Count() - 1 ]; - } - else - { - foundIds.Reset(); - ret = iRepository->FindL(0, 0, foundIds); - //Finding a free position to write - keyId = ( foundIds.Count() > 0 ) ? - foundIds[ foundIds.Count() - 1 ] + 1 : 0; - } - - DEBUG(("_MM_:\t\tkey ID: %d",keyId)); - - TInt stateType(aWidgetType); - if ( ( ret = iRepository->Set( keyId, aSuiteName ) ) == KErrNone ) - { - ret = iRepository->Set(keyId + KWidgetTypePosition, stateType); - } - - User::LeaveIfError( ret ); - - DEBUG(("_MM_:\treturn value: %d",ret)); - DEBUG(("_MM_:CHnRepositoryManager::StoreSuiteWidgetTypeL OUT")); - - CleanupStack::PopAndDestroy( &foundIds ); - return ret; - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CHnRepositoryManager::DeleteSuiteRelatedL( const TDesC & aSuiteName ) - { - TInt ret( KErrNone ); - RArray< TUint32 > foundIds; - CleanupClosePushL( foundIds ); - - ret = iRepository->FindEqL( 0, 0, aSuiteName, foundIds ); - for (int i=0; iDelete( foundIds[i] ) < 0 ) - { - ret = KErrGeneral; - } - if( iRepository->Delete( foundIds[i] + KWidgetTypePosition ) < 0 ) - { - ret = KErrGeneral; - } - } - - CleanupStack::PopAndDestroy( &foundIds ); - return ret; - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CHnRepositoryManager::ReadSuiteWidgetTypeL( - const TDesC& aSuiteName, THnSuiteWidgetType& aSuiteWidget ) - { - TInt ret( KErrNone ); - RArray< TUint32 > foundIds; - CleanupClosePushL( foundIds ); - ret = iRepository->FindEqL( 0, 0, aSuiteName, foundIds ); - - // If there is more than one entry of suite genre in central repository - // it certainly means that it's a mistake. - ASSERT( foundIds.Count() <= 1 ); - if ( foundIds.Count() == 1 ) - { - THnSuiteWidgetType suiteState( EUnspecified ); - ret = iRepository->Get( foundIds[0] + KWidgetTypePosition, - (int &) suiteState); - if( !ret ) - { - switch( suiteState ) - { - case EGridWidget: - case EListWidget: - case ECoverFlowWidget: - case EChangeWidget: - case EUnspecified: - aSuiteWidget = suiteState; - break; - default: - ASSERT(false); - } - } - } - - CleanupStack::PopAndDestroy( &foundIds ); - return ret; - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C CHnRepositoryManager::~CHnRepositoryManager() - { - delete iRepository; - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void CHnRepositoryManager::ConstructL() - { - iRepository = CRepository::NewL( KMatrixRepositoryUid ); - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -CHnRepositoryManager::CHnRepositoryManager() - : KWidgetTypePosition(1), iRepository(NULL) - { - } -