camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamQualitySettingPage.cpp
changeset 19 d9aefe59d544
parent 3 8b2d6d0384b0
child 21 fa6d9f75d6a6
child 28 3075d9b614e6
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamQualitySettingPage.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +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 page for Image/Video quality.*
-*/
-
-
-
-// INCLUDE FILES
-#include <gscamerapluginrsc.rsg>
-#include <aknsettingitemlist.h>
-#include <barsread.h>
-#include "GSCamQualitySettingPage.h"
-#include "GSCamQualitySettingContainer.h"
-#include "CamUtility.h"
-#include "MCamAppController.h"
-#include "CamAppUiBase.h"
-#include <aknlayoutscalable_apps.cdl.h>
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::CGSCamQualitySettingPage
-// C++ constructor
-// ---------------------------------------------------------------------------
-//
-CGSCamQualitySettingPage::CGSCamQualitySettingPage( 
-    TCamCameraMode     aMode, 
-    TDesC&             aSettingTitleText,
-    TInt               aSettingNumber, 
-    TInt               aControlType,
-    TInt               aEditorResourceId, 
-    TInt               aSettingPageResourceId,
-    MAknQueryValue&    aQueryValue )
-  : CAknSettingPage( &aSettingTitleText, 
-                     aSettingNumber, 
-                     aControlType,
-                     aEditorResourceId, 
-                     aSettingPageResourceId ),
-    iQueryValue( aQueryValue ),
-    iController( static_cast<CCamAppUiBase*>( CCoeEnv::Static()->AppUi() )->AppController() ),
-    iMode( aMode )
-  {
-  }
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::~CGSCamQualitySettingPage
-// C++ destructor
-// ---------------------------------------------------------------------------
-//
-CGSCamQualitySettingPage::~CGSCamQualitySettingPage()
-  {
-  PRINT( _L("Camera => ~CGSCamQualitySettingPage") );
-  delete iQualityContainer;
-  
-  if ( iTimer && iTimer->IsActive() )
-    {
-    iTimer->Cancel();
-    }
-  delete iTimer;
-  
-  TRAP_IGNORE( iController.CancelPreviewChangesL() );
-  PRINT( _L("Camera <= ~CGSCamQualitySettingPage") );
-  }
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::ConstructL
-// Construct the setting page
-// ---------------------------------------------------------------------------
-//
-void CGSCamQualitySettingPage::ConstructL()
-	{
-    // create the timer used for callbacks
-    iTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-    // this needs to be created before BaseConstructL as it sets the
-    // size of the setting page which will result in SizeChanged being called
-    iQualityContainer = CGSCamQualitySettingContainer::NewL( iController,
-                                                             iMode,
-                                                             this );
-	BaseConstructL();
-
-	}
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::UpdateSettingL
-// Called when the state of quality control changes
-// ---------------------------------------------------------------------------
-//
-void CGSCamQualitySettingPage::UpdateSettingL()
-  {
-  TBool settingValueEnabled = ETrue;
-  iCurrentVal = iQualityContainer->SelectedQuality();
-  
-  if ( ECamControllerVideo == iMode )
-    {
-    iSettingItemId = ECamSettingItemVideoQuality;       
-    }
-  else
-    {
-    iSettingItemId = ECamSettingItemPhotoQuality;
-    }
-        
-  // Inform the base setting page class
-  SetDataValidity( settingValueEnabled );
-  UpdateCbaL();
-
-  // If the list item is enabled update the image/video count to
-  // let the user know how this item would affect the remaining images/videos
-  if ( settingValueEnabled )
-    {
-    if ( iTimer->IsActive() )
-      {
-      iTimer->Cancel();
-      }
-    iTimer->Start( 10*1000,
-                   10*1000,
-                   TCallBack( PreviewSettingChange, this ) );
-    }
-  }
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::ProcessCommandL
-// Processes events from the softkeys.
-// ---------------------------------------------------------------------------
-//
-void CGSCamQualitySettingPage::ProcessCommandL( TInt aCommandId )
-	{
-	HideMenu();
-
-	// Respond to softkey events
-	switch ( aCommandId )
-		{
-		case EAknSoftkeyOk:
-		case EAknSoftkeySelect:  
-			SelectCurrentItemL(); 
-			AttemptExitL( ETrue );
-			iCurrentVal = iQualityContainer->SelectedQuality();
-            iController.CommitPreviewChanges();
-			break;
-		case EAknSoftkeyCancel:
-			AttemptExitL( EFalse );
-            iController.CancelPreviewChangesL();
-			break;
-		default:
-			break;
-		}
-	}
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::PostDisplayCheckL
-// Customises some of the functionality so that the custom quality control
-// is used instead of the base classes editor control
-// ---------------------------------------------------------------------------
-//
-TBool CGSCamQualitySettingPage::PostDisplayCheckL()
-    {
-    // don't use the editor control in the base class
-    // use the quality control instead.
-    iQualityContainer->SetObserver( this );
-    return CAknSettingPage::PostDisplayCheckL();
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::SelectCurrentItemL
-// Uses the query value to inform the setting item that
-// a new quality has been selected
-// ---------------------------------------------------------------------------
-//
-void CGSCamQualitySettingPage::SelectCurrentItemL()
-	{
-	iQueryValue.SetCurrentValueIndex( iQualityContainer->SelectedQuality() );
-	} 
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::ConstructFromResourceL
-// Constructs the quality container from the resource file
-// ---------------------------------------------------------------------------
-//
-void CGSCamQualitySettingPage::ConstructFromResourceL( TResourceReader& aReader )
-  {
-  // setting page window is created in the base class
-  CAknSettingPage::ConstructFromResourceL( aReader );
-
-  TInt resourceId = ( ECamControllerVideo == iMode )
-                    ? R_CAM_SETTING_VIDEO_QUALITY_SLIDER
-                    : R_CAM_SETTING_PHOTO_QUALITY_SLIDER;
-
-  TResourceReader reader;
-  iCoeEnv->CreateResourceReaderLC( reader, resourceId );
-  iQualityContainer->ConstructFromResourceL( reader );
-  CleanupStack::PopAndDestroy(); //reader 
-  }
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::CountComponentControls
-// Returns the number of component controls
-// ---------------------------------------------------------------------------
-//
-TInt CGSCamQualitySettingPage::CountComponentControls() const
-  {
-  return 1; // the quality container
-  }
- 
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::ComponentControl
-// Returns the control at the given index
-// ---------------------------------------------------------------------------
-//
-CCoeControl* CGSCamQualitySettingPage::ComponentControl( TInt /*aIndex*/ ) const
-  {
-  return iQualityContainer;
-  }
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::Draw
-// Draws the setting page
-// ---------------------------------------------------------------------------
-//
-void CGSCamQualitySettingPage::Draw( const TRect& /*aRect*/ ) const
-  {
-  CWindowGc& gc = SystemGc();
-  gc.SetPenStyle( CGraphicsContext::ENullPen );
-  gc.SetBrushColor( KRgbWhite );
-  gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-  gc.DrawRect( Rect() );
-  }
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::SizeChanged
-// Handles a change in the size of the page
-// ---------------------------------------------------------------------------
-//
-void CGSCamQualitySettingPage::SizeChanged()
-  {
-  CAknSettingPage::SizeChanged();
-
-  AknLayoutUtils::LayoutControl( iQualityContainer, Rect(), AknLayoutScalable_Apps::main_cam_set_pane_g1( 6 ) );
-  
-  }
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::OfferKeyEventL
-// Handles the key event
-// ---------------------------------------------------------------------------
-//
-TKeyResponse 
-CGSCamQualitySettingPage::OfferKeyEventL( const TKeyEvent& aKeyEvent, 
-                                          TEventCode aType ) 
-  {
-  // Always react to Escape key by cancelling the setting page
-	if ( aType == EEventKey && aKeyEvent.iCode == EKeyEscape)
-		{
-		ProcessCommandL( EAknSoftkeyCancel );
-		return EKeyWasConsumed;
-		}
-
-	// Only handle other key events if we're focused
-	if ( IsFocused() )
-		{
-		// Abstraction of key events: Escape is handled like Cancel 
-		// OK key is handled like the Select softkey by default
-		if ( aType == EEventKey && aKeyEvent.iCode == EKeyOK )
-			{
-			if ( aKeyEvent.iRepeats != 0 ) 
-                {
-                return EKeyWasConsumed;
-                }
-			if ( DataValidity() )
-                {
-                ProcessCommandL( EAknSoftkeySelect );
-                }
-            return EKeyWasConsumed;
-            }
-		}
-
-    // offer the key to the quality container class
-    // if not handled by the setting page
-    return iQualityContainer->OfferKeyEventL( aKeyEvent, aType );
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCamQualitySettingPage::PreviewSettingChangeL
-// Previews the setting value
-// ---------------------------------------------------------------------------
-//
-TInt CGSCamQualitySettingPage::PreviewSettingChange( TAny* aAny )
-    {
-    CGSCamQualitySettingPage* settingPage = 
-        static_cast<CGSCamQualitySettingPage*>( aAny );
-    // preview the setting value - will 
-    // update the engine and the navi couner    
-    TRAP_IGNORE( settingPage->iController.PreviewSettingChangeL( 
-                                                settingPage->iSettingItemId, 
-                                                settingPage->iCurrentVal ) );
-
-    // cancel the timer
-    settingPage->iTimer->Cancel();
-
-    return KErrNone;
-    }