diff -r 6369bfd1b60d -r 08b5eae9f9ff homesync/contentmanager/homesyncgsplugin/src/mssettingitemlist.cpp --- a/homesync/contentmanager/homesyncgsplugin/src/mssettingitemlist.cpp Mon Nov 01 13:44:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,495 +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: CMSSettingItemList class implementation -* -*/ - - -#include -#include // for RProperty -#include // for StringLoader -#include // for profile -#include // for profile -#include - -#include "cmsettingsfactory.h" -#include "cmcommonutils.h" -#include "cmsettings.h" -#include "cmdriveinfo.h" -#include "mserv.hlp.hrh" -#include "msengine.h" -#include "mssettingitemlist.h" -#include "mssettingitemmemory.h" // mmc name -#include "mssettingitemdevices.h" // source devices -#include "mssettingsview.h" -#include "msconstants.h" -#include "cmmediaserverfull.h" -#include "msdebug.h" - -// CONSTANTS -const TInt KOfflineProfile = 5; - -// ================= MEMBER FUNCTIONS ======================= - -// -------------------------------------------------------------------------- -// CMSSettingItemList::NewL() -// Two phase constructor. -// -------------------------------------------------------------------------- -// -CMSSettingItemList* CMSSettingItemList::NewL( TInt aResourceId, - CMSSettingsView& aView ) - { - LOG(_L("[MediaServant]\t CMSSettingItemList::NewL")); - - CMSSettingItemList* self = CMSSettingItemList::NewLC( aResourceId, - aView ); - - CleanupStack::Pop( self ); - return self; - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::NewLC() -// Two phase constructor. -// -------------------------------------------------------------------------- -// -CMSSettingItemList* CMSSettingItemList::NewLC( TInt aResourceId, - CMSSettingsView& aView ) - { - LOG(_L("[MediaServant]\t CMSSettingItemList::NewLC")); - - CMSSettingItemList* self = new ( ELeave ) CMSSettingItemList( - aView ); - CleanupStack::PushL( self ); - self->ConstructL( aResourceId ); - return self; - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::CMSSettingItemList() -// -------------------------------------------------------------------------- -// -CMSSettingItemList::CMSSettingItemList( CMSSettingsView& aView ) - : iView( aView ) - { - LOG(_L("[MediaServant]\t CMSSettingItemList::CMSSettingItemList")); - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::~CMSSettingItemList() -// -------------------------------------------------------------------------- -// -CMSSettingItemList::~CMSSettingItemList() - { - LOG(_L("[MediaServant]\t CMSSettingItemList::~CMSSettingItemList")); - - if ( iStoredServers ) - { - iStoredServers->ResetAndDestroy(); - iStoredServers->Close(); - delete iStoredServers; - } - - if ( iMSEngine ) - { - delete iMSEngine; - } - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::ConstructL() -// Second phase constructor. -// -------------------------------------------------------------------------- -// -void CMSSettingItemList::ConstructL( TInt aResourceId ) - { - LOG(_L("[MediaServant]\t CMSSettingItemList::ConstructL")); - - // Create engine - iMSEngine = CMSEngine::NewL(); - - // Set engine observer - iMSEngine->SetObserver( this ); - // Read memory manager setting - iMemoryManager = - iMSEngine->ServiceState( ECmServiceMemoryManager ); - - iSync = iMSEngine->ServiceState( ECmServiceContentManager ); - - // Get server list - iStoredServers = iMSEngine->GetMediaServersL(); - - CAknSettingItemList::ConstructFromResourceL( aResourceId ); - - // sets memory selection setting visibility - SetMemorySelectionL(); - - iListBox = ListBox(); - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::OpenSelectedListboxItemL -// -------------------------------------------------------------------------- -// -void CMSSettingItemList::OpenSelectedListboxItemL() - { - LOG(_L("[MediaServant]\t CMSSettingItemList::OpenSelectedListboxItemL")); - - HandleListBoxEventL( ListBox(), EEventEnterKeyPressed ); - } - - -// -------------------------------------------------------------------------- -// CMSSettingItemList::HandleListBoxEventL() -// -------------------------------------------------------------------------- -// -void CMSSettingItemList::HandleListBoxEventL( CEikListBox *aListBox, - TListBoxEvent aEventType) - { - LOG(_L("[MediaServant]\t CMSSettingItemList::HandleListBoxEventL")); - - CAknSettingItemList::HandleListBoxEventL( aListBox, aEventType ); - - // UI selection is stored to actual settings variable - StoreSettingsL(); - - TInt listBoxItemIndex = iListBox->CurrentItemIndex(); - CAknSettingItemArray* itemArray = SettingItemArray(); - TInt realIndex = itemArray->ItemIndexFromVisibleIndex( - listBoxItemIndex ); - - if ( realIndex == EMSSettingsSync ) - { - iMSEngine->SetServiceState( ECmServiceContentManager, - iSync ); - // inform plugin about changed setting - TCmProgressInfo info; - info.iProcessedItems = 0, - info.iTotalItems = 0; - info.iService = ECmServiceNone; - - TCmProgressInfoPckg transferInfoPckg( info ); - - RProperty::Set( KCmPropertyCat, KCmProperty, - transferInfoPckg ); - - // we aren't allowed to set wlan scanning in offline mode - if ( GetCurrentProfileL() != KOfflineProfile ) - { - // Set wlan scanning parameters - TInt interval = ( iSync == ECmServiceStateDisabled ? - KWlanScanNetworkNever : KWlanScanNetworkInterval60 ); - - CmCommonUtils::SetWlanScanL( interval ); - } - } - - else if ( realIndex == EMSMemoryManager ) - { - iMSEngine->SetServiceState( ECmServiceMemoryManager, - iMemoryManager ); - } - else - { - LOG(_L("[MediaServant]\t CMSSettingItemList::\ - HandleListBoxEventL no such item")); - } - } - -// -------------------------------------------------------------------------- -// CAknSettingItem* CMSSettingItemList::CreateSettingItemL(TInt aIdentifier) -// Takes care of creating actual setting items. -// -------------------------------------------------------------------------- -// -CAknSettingItem* CMSSettingItemList::CreateSettingItemL( TInt aIdentifier ) - { - LOG(_L("[MediaServant]\t CMSSettingItemList::CreateSettingItemL")); - - CAknSettingItem* settingItem = NULL; - - // setting item is created according to aIdentifier - switch ( aIdentifier ) - { - case EMSSettingsSync: - { - LOG(_L("[MediaServant]\t List Item: EMSSettingsSync")); - settingItem = new (ELeave ) CAknEnumeratedTextPopupSettingItem( - aIdentifier, - reinterpret_cast (iSync) ); - break; - } - - case EMSSettingsSourceDevices: - { - LOG(_L("[MediaServant]\t List Item: EMSSettingsSourceDevices")); - settingItem = CMSSettingItemDevices::NewL ( - aIdentifier, - iDummyText, - *iMSEngine, - *iStoredServers ); - break; - } - - case EMSSettingsTargetDevices: - { - LOG(_L("[MediaServant]\t List Item: EMSSettingsTargetDevices")); - settingItem = CMSSettingItemDevices::NewL ( - aIdentifier, - iDummyText, - *iMSEngine, - *iStoredServers, - ETrue ); - break; - } - - case EMSSettingsMemory: - { - LOG(_L("[MediaServant]\t List Item: EMSSettingsMMC")); - settingItem = CMSSettingItemMemory::NewL ( - aIdentifier, - iDummyText, - *iMSEngine, - *this ); - break; - } - - case EMSMemoryManager: - { - LOG(_L("[MediaServant]\t List Item: EMSMemoryManager")); - settingItem = new ( ELeave ) CAknBinaryPopupSettingItem( - aIdentifier, - reinterpret_cast (iMemoryManager) ); - break; - } - - default: - { - LOG(_L("[MediaServant]\t No list item found")); - break; - } - } - return settingItem; - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::EditItemL() -// Called by framework when item is opened -// -------------------------------------------------------------------------- -// -void CMSSettingItemList::EditItemL ( TInt aIndex, TBool aCalledFromMenu ) - { - CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu ); - - if ( iListBox->CurrentItemIndex() == EMSSettingsSourceDevices ) - { - CMSSettingItemDevices* item = static_cast - (SearchItemById( EMSSettingsSourceDevices )); - - if ( item->SettingAccepted() ) - { - TCmServerState state( ECmServerStateIdle ); - // List of unselected servers - RPointerArray unselectedServers; - - iMSEngine->ServerState( state ); - if ( state != ECmServerStateIdle ) - { - iMSEngine->StopOperation(); - } - iView.ClearCurrentNaviPaneText(); - - iMSEngine->DeleteMetadataL(); - - HBufC* naviText = StringLoader::LoadLC( - R_MS_PREPROCESSING_TEXT ); - iView.SetNavigationPaneTextL( *naviText ); - CleanupStack::PopAndDestroy( naviText ); - } - } - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::SearchItemById -// Searches item from the itemarray by given ID -// -------------------------------------------------------------------------- -// -CAknSettingItem* CMSSettingItemList:: - SearchItemById( const TMSSettingItems aId ) const - { - LOG(_L("[MediaServant]\t CMSSettingItemList::SearchItemById")); - - CAknSettingItem* item = NULL; - CAknSettingItemArray* itemArray = SettingItemArray(); - TInt count = itemArray->Count(); - - for ( TInt index = 0; index < count; index++ ) - { - if ( itemArray->At( index )->Identifier() == aId ) - { - item = itemArray->At( index ); - // end loop - index = count; - } - } - return item; - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::SizeChanged() -// Called by framework when the view size is changed. -// -------------------------------------------------------------------------- -// -void CMSSettingItemList::SizeChanged() - { - LOG(_L("[MediaServant]\t CMSSettingItemList::SizeChanged")); - - ListBox()->SetRect( Rect() ); // Set rectangle of listbox. - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::HandleResourceChange -// Handles layout change -// -------------------------------------------------------------------------- -// -void CMSSettingItemList::HandleResourceChange( TInt aType ) - { - LOG(_L("[MediaServant]\t CMSSettingItemList::HandleResourceChange")); - - if ( aType == KEikDynamicLayoutVariantSwitch ) - { - SetRect( iView.ClientRect() ); - } - - CCoeControl::HandleResourceChange( aType ); - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::ReadyL() -// engine observer callback -// -------------------------------------------------------------------------- -// -#ifdef __DEBUG -void CMSSettingItemList::ReadyL( TCmService aService, TInt aError ) -#else -void CMSSettingItemList::ReadyL( TCmService aService, TInt /*aError*/ ) -#endif - { - LOG(_L("[MediaServant]\t CMSSettingItemList::ReadyL")); -#ifdef __DEBUG - TRACE(Print(_L("[MediaServant]\t CMSSettingItemList::\ - ReadyL error %d"), aError)); -#endif - - - switch ( aService ) - { - case ECmServiceDeleteMetadata: - { - iMSEngine->ExecuteFillPreProcessingL(); - break; - } - case ECmServicePreProcessingFill: - { - iView.ClearCurrentNaviPaneText(); - break; - } - default: - { - // do nothing - break; - } - } - } - -// -------------------------------------------------------------------------- -// CMSSettingItemList::MSEngine() -// -------------------------------------------------------------------------- -// -CMSEngine* CMSSettingItemList::MSEngine() - { - LOG(_L("[MediaServant]\t CMSSettingItemList::MSEngine")); - - return iMSEngine; - } - -// -------------------------------------------------------------------------- -// CMSMainContainer::GetCurrentProfileL() -// Reads current profile -// -------------------------------------------------------------------------- -// -TInt CMSSettingItemList::GetCurrentProfileL() const - { - LOG(_L("[MediaServant]\t CMSSettingItemList::GetCurrentProfileL")); - - TInt profile( 0 ); - CRepository* repository = CRepository::NewLC( KCRUidProfileEngine ); - repository->Get( KProEngActiveProfile, profile ); - CleanupStack::PopAndDestroy( repository ); - - return profile; - } - - -// --------------------------------------------------------------------------- -// CMSSettingItemList::SetMemorySelectionL -// --------------------------------------------------------------------------- -// -void CMSSettingItemList::SetMemorySelectionL() - { - LOG(_L("[MediaServant]\t CMSSettingItemList::SetMemorySelectionL")); - - TBool memoryCardFound( EFalse ); - RPointerArray driveArray; - CleanupClosePushL( driveArray ); - MCmSettings* settings = CCmSettingsFactory::NewCmSettingsEngineLC(); - - // get available drives - settings->DriveListL( ControlEnv()->FsSession(), driveArray ); - settings->Close(); - CleanupStack::Pop(); // settings - - TInt driveCount = driveArray.Count(); - for ( TInt i = 0; i < driveCount; i++ ) - { - if ( driveArray[i]->DriveType() == DriveInfo::EDriveRemovable ) - { - memoryCardFound = ETrue; - i = driveCount; // break loop - } - } - if ( !memoryCardFound ) - { - CAknSettingItem* item = SearchItemById( EMSSettingsMemory ); - item->SetHidden( ETrue); - // visibility changed - HandleChangeInItemArrayOrVisibilityL(); - } - - driveArray.ResetAndDestroy(); - CleanupStack::PopAndDestroy( &driveArray ); - } - -// --------------------------------------------------------------------------- -// CMSSettingItemList::GetHelpContext -// --------------------------------------------------------------------------- -// -void CMSSettingItemList::GetHelpContext( TCoeHelpContext& aContext ) const - { - LOG(_L("[MediaServant]\t CMSSettingItemList::GetHelpContext")); - - aContext.iMajor = KUidMediaServant; - aContext.iContext = KMSERV_HLP_SYNC_SETTINGS; - } - -// End of File