diff -r 8b2d6d0384b0 -r d9aefe59d544 camerauis/cameraapp/generic/GsCamcorderPlugin/src/CamAlbumSettingItem.cpp --- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/CamAlbumSettingItem.cpp Tue Feb 02 00:01:39 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,212 +0,0 @@ -/* -* Copyright (c) 2007 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: Setting item type for "Add to album"* -*/ - - - -// INCLUDE FILES - -#include -#include - -#include "CamAlbumSettingItem.h" -#include "CamSettings.hrh" -#include "CamUtility.h" -#include "CameraappPrivateCRKeys.h" -#include "CamStaticSettingsModel.h" -#include "camerauiconfigmanager.h" -#include "CamAppUiBase.h" -#include "GSCamcorderPlugin.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// --------------------------------------------------------------------------- -// CCamAlbumSettingItem::CCamAlbumSettingItem -// Two phase construction -// --------------------------------------------------------------------------- -// -CCamAlbumSettingItem::CCamAlbumSettingItem( TInt aSettingItemId, - TInt& aValue) -: CAknEnumeratedTextPopupSettingItem( aSettingItemId, aValue ) - { - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CCamAlbumSettingItem::~CCamAlbumSettingItem() - { - PRINT( _L("Camera => ~CCamAlbumSettingItem") ); - PRINT( _L("Camera <= ~CCamAlbumSettingItem") ); - } - -// --------------------------------------------------------------------------- -// CCamAlbumSettingItem::HandleSettingPageEventL -// Handle events in the setting page -// --------------------------------------------------------------------------- -// -void CCamAlbumSettingItem::HandleSettingPageEventL( CAknSettingPage* /*aSettingPage*/, - TAknSettingPageEvent aEventType ) - { - // Get the value of the currently selected item on the setting page - MAknQueryValue* settingPageValues = QueryValue(); - TInt selectedIndex = settingPageValues->CurrentValueIndex(); - CArrayPtr* items = EnumeratedTextArray(); - TInt selectedValue = items->At( selectedIndex )->EnumerationValue(); - - // If the user has Okayed the "Yes" option. - if ( aEventType == EEventSettingOked && selectedValue == ECamSettYes ) - { - // Launch the album selection list popup - DisplayAlbumSelectionListL(); - } - UpdateListBoxTextL(); - } - -// --------------------------------------------------------------------------- -// CCamAlbumSettingItem::CompleteConstructionL -// Gets the correct text for a currently selected album -// --------------------------------------------------------------------------- -// -void CCamAlbumSettingItem::CompleteConstructionL() - { - PRINT( _L("Camera => CCamAlbumSettingItem::CompleteConstructionL") ); - CAknEnumeratedTextPopupSettingItem::CompleteConstructionL(); - if ( ExternalValue() == ECamSettYes ) - { - // We update the list box only if the setting item is true - // In this case, we stop displaying "Yes" and replace it with - // current album name. - UpdateListTextL(); - } - PRINT( _L("Camera <= CCamAlbumSettingItem::CompleteConstructionL") ); - } - -// --------------------------------------------------------------------------- -// CCamAlbumSettingItem::UpdateListTextL -// Update the text in the setting list to show the current capture album name -// --------------------------------------------------------------------------- -// -void CCamAlbumSettingItem::UpdateListTextL() - { - PRINT( _L("Camera => CCamAlbumSettingItem::UpdateListTextL") ); - - CAknViewAppUi *AppUi = static_cast( CCoeEnv::Static()->AppUi() ); - CGSCamcorderPlugin* parent = static_cast - ( AppUi->View( KGSCamcorderGSPluginUid ) ); - // If "Add to album" is on - if ( ExternalValue() == ECamSettYes ) - { - // A default capture album exists - // Replace the "Yes" text with the current capture album name - CArrayPtr* itemArray = EnumeratedTextArray(); - TInt numberOfItems = itemArray->Count(); // item count - TInt index = 0; - TBool found = EFalse; - while ( !found && index < numberOfItems ) - { - TInt value = itemArray->At( index )->EnumerationValue(); - // This is the "Yes" option - if ( value == ECamSettYes ) - { - // Replace the text with the album name - // We get the album name from CenRep key - HBufC* albumName = parent->TextSettingValue( - ECamSettingItemDefaultAlbumName ).AllocLC(); - - CAknEnumeratedText* newItem = new( ELeave ) - CAknEnumeratedText( value, albumName ); - CleanupStack::Pop( albumName ); - CleanupStack::PushL( newItem ); - CAknEnumeratedText* oldItem = itemArray->At( index ); - itemArray->Delete( index ); - delete oldItem; - oldItem = NULL; - itemArray->InsertL( index, newItem ); - CleanupStack::Pop( newItem ); - found = ETrue; - } - index++; - } - } // End of ExternalValue - UpdateListBoxTextL(); - PRINT( _L("Camera <= CCamAlbumSettingItem::UpdateListTextL C") ); - } - -// --------------------------------------------------------------------------- -// CCamAlbumSettingItem::DisplayAlbumSelectionListL -// Launch the album selection list popup -// --------------------------------------------------------------------------- -// -void CCamAlbumSettingItem::DisplayAlbumSelectionListL() - { - - CAknViewAppUi *AppUi = static_cast( CCoeEnv::Static()->AppUi() ); - CGSCamcorderPlugin* parent = static_cast - ( AppUi->View( KGSCamcorderGSPluginUid ) ); - // Launch the Pop-up menu using the Gallery API - // allowMultipleSelection = ETrue --> Multiple Selection - // allowMultipleSelection = EFalse --> Single Selection - TBool allowMultipleSelection = EFalse; - RArray selectedAlbumIds; - CleanupClosePushL( selectedAlbumIds ); - // Launching the Pop-up menu with the list of albums - TRAPD ( err, TGlxCollectionSelectionPopup::ShowPopupL( - selectedAlbumIds, - KGlxCollectionTypeIdAlbum, - allowMultipleSelection, - ETrue - ) ); - - TInt defaultAlbumId = 0; // default album id in CenRep - - TInt prevDefaultId = parent->IntegerSettingValue( - ECamSettingItemDefaultAlbumId ); - if ( selectedAlbumIds.Count() > 0 && err == KErrNone ) - { - // this is the new album which is set as default - defaultAlbumId = static_cast( selectedAlbumIds[0] ); - } - else if ( prevDefaultId != 0 ) - { - // UseCase: If the user selects cancel when the pop-up active - // we then go back to the prev album selected - defaultAlbumId = prevDefaultId; - } - else - { - } - CleanupStack::PopAndDestroy( &selectedAlbumIds ); - - parent->SetIntegerSettingValueL( ECamSettingItemDefaultAlbumId, - defaultAlbumId ); - - } - -// --------------------------------------------------------------------------- -// CCamAlbumSettingItem::HandleAlbumError -// Deal with loss of capture album or album information -// --------------------------------------------------------------------------- -// -void CCamAlbumSettingItem::HandleAlbumError() - { - // Set "Add to album" off - SetInternalValue( ECamSettNo ); - SetExternalValue( ECamSettNo ); - } - -// End of File