Revision: 201031 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 19 Aug 2010 09:36:57 +0300
branchRCL_3
changeset 22 f54ad444594d
parent 21 289bbfdb6627
child 23 61bc0f252b2b
Revision: 201031 Kit: 201033
camerauis/activepalette/Group/ActivePalette2.mmp
camerauis/cameraapp/build/cameraapp.mmp
camerauis/cameraapp/build/iconlist.txt
camerauis/cameraapp/conf/cameraapp.confml
camerauis/cameraapp/conf/cameraapp_101FFA86.crml
camerauis/cameraapp/generic/GsCamcorderPlugin/group/gscameraplugin.mmp
camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamcorderPlugin.h
camerauis/cameraapp/generic/common/data/CamStillCaptureCamcorder.ra
camerauis/cameraapp/generic/common/data/CamVideoCaptureCamcorder.ra
camerauis/cameraapp/generic/common/inc/CamSettings.hrh
camerauis/cameraapp/generic/common/inc/CameraappPrivateCRKeys.h
camerauis/cameraapp/generic/data/cameraapp.rss
camerauis/cameraapp/generic/inc/CamAppUi.h
camerauis/cameraapp/generic/inc/cambatterypanedrawer.h
camerauis/cameraapp/generic/inc/camcapturebuttoncontainer.h
camerauis/cameraapp/generic/inc/camtvaccessorymonitor.h
camerauis/cameraapp/generic/src/CamAppController.cpp
camerauis/cameraapp/generic/src/CamAppui.cpp
camerauis/cameraapp/generic/src/CamBurstThumbnailView.cpp
camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp
camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp
camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp
camerauis/cameraapp/generic/src/CamNewFileService.cpp
camerauis/cameraapp/generic/src/CamPostCaptureViewBase.cpp
camerauis/cameraapp/generic/src/CamPreCaptureContainerBase.cpp
camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp
camerauis/cameraapp/generic/src/CamStandbyContainer.cpp
camerauis/cameraapp/generic/src/CamStillPostCaptureView.cpp
camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp
camerauis/cameraapp/generic/src/CamVideoPostCaptureView.cpp
camerauis/cameraapp/generic/src/CamViewBase.cpp
camerauis/cameraapp/generic/src/cambatterypanedrawer.cpp
camerauis/cameraapp/generic/src/camcapturebuttoncontainer.cpp
camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp
camerauis/cameraapp/generic/src/camtvaccessorymonitor.cpp
camerauis/cameraapp/help/data/xhtml.zip
camerauis/cameraapp/loc/cam.loc
--- a/camerauis/activepalette/Group/ActivePalette2.mmp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/activepalette/Group/ActivePalette2.mmp	Thu Aug 19 09:36:57 2010 +0300
@@ -74,7 +74,7 @@
 APP_LAYER_SYSTEMINCLUDE
 
 LIBRARY euser.lib cone.lib bitgdi.lib fbscli.lib ws32.lib gdi.lib flogger.lib 
-LIBRARY bafl.lib avkon.lib egul.lib AknSkins.lib AknIcon.lib 
+LIBRARY bafl.lib avkon.lib egul.lib aknskins.lib aknicon.lib 
 #ifdef AP2_USE_3D_RENDERING
 LIBRARY hitchcock.lib
 #endif
--- a/camerauis/cameraapp/build/cameraapp.mmp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/build/cameraapp.mmp	Thu Aug 19 09:36:57 2010 +0300
@@ -254,55 +254,55 @@
 // Libraries
 
 LIBRARY ecom.lib
-LIBRARY GSEcomPlugin.lib
+LIBRARY gsecomplugin.lib 
 LIBRARY euser.lib 
 LIBRARY apparc.lib 
 LIBRARY cone.lib 
 LIBRARY eikcore.lib  
 LIBRARY eikcoctl.lib 
 LIBRARY avkon.lib 
-LIBRARY caeengine.lib
-LIBRARY AknSkins.lib
+LIBRARY CaeEngine.lib 
+LIBRARY aknskins.lib 
 LIBRARY efsrv.lib 
-LIBRARY PlatformEnv.lib // PathInfo
-LIBRARY SysUtil.lib
+LIBRARY platformenv.lib // PathInfo 
+LIBRARY sysutil.lib 
 LIBRARY fbscli.lib 
 LIBRARY bitgdi.lib 
 LIBRARY ws32.lib 
-LIBRARY commonengine.lib
+LIBRARY CommonEngine.lib 
 LIBRARY egul.lib
 LIBRARY bafl.lib
 LIBRARY sendui.lib
 LIBRARY CdlEngine.lib
-LIBRARY BitmapTransforms.lib
+LIBRARY bitmaptransforms.lib 
 LIBRARY commondialogs.lib
 LIBRARY featmgr.lib
-LIBRARY ServiceHandler.lib  // AIW library
-LIBRARY AknIcon.lib
-LIBRARY MediaClientAudio.lib
+LIBRARY servicehandler.lib  // AIW library 
+LIBRARY aknicon.lib 
+LIBRARY mediaclientaudio.lib  
 LIBRARY eikctl.lib
 LIBRARY apgrfx.lib
 LIBRARY charconv.lib
 LIBRARY hlplch.lib // Help Launcher
-LIBRARY CommonUi.lib        // CDocumentHandler
+LIBRARY commonui.lib        // CDocumentHandler 
 LIBRARY apmime.lib          // TDataType
-LIBRARY CentralRepository.lib
+LIBRARY centralrepository.lib 
 LIBRARY eikdlg.lib
 LIBRARY numberconversion.lib 
-LIBRARY NewService.lib
+LIBRARY newservice.lib 
 LIBRARY camerauiconfigmanager.lib
-LIBRARY CFClient.lib
-LIBRARY CFServices.lib
+LIBRARY cfclient.lib 
+LIBRARY cfservices.lib 
 LIBRARY ActivePalette.lib
 LIBRARY aknlayout2.lib
 LIBRARY akntouchgesturefw.lib
 LIBRARY accmonitor.lib
 
 // Remote Controller framework
-LIBRARY RemConCoreApi.lib
-LIBRARY RemConInterfaceBase.lib
+LIBRARY remconcoreapi.lib 
+LIBRARY remconinterfacebase.lib 
 
-LIBRARY aknlayout2scalable.lib
+LIBRARY AknLayout2Scalable.lib 
 LIBRARY gdi.lib
 LIBRARY estor.lib // RWriteStream
 
@@ -317,13 +317,13 @@
 LIBRARY         ecamoverlay.lib
 #endif // CAMERAAPP_CAPI_V2
 
-LIBRARY ImageConversion.lib
-LIBRARY exiflib.lib          // CExifRead
+LIBRARY imageconversion.lib 
+LIBRARY Exiflib.lib          // CExifRead 
 LIBRARY hal.lib              // HAL, HALData
 
 LIBRARY         ecampluginsupport.lib
 
-LIBRARY SensrvClient.lib
+LIBRARY sensrvclient.lib 
 LIBRARY sensrvutil.lib
 
 LIBRARY svgengine.lib // For reading share SVGs
@@ -335,7 +335,7 @@
 LIBRARY cntmodel.lib 
 
 #ifndef __WINSCW__
-LIBRARY locationtrail.lib
+LIBRARY Locationtrail.lib 
 #ifdef RD_MDS_2_5
 LIBRARY locationmanager.lib
 #endif //RD_MDS_2_5
@@ -344,7 +344,7 @@
 LIBRARY oommonitor.lib
 LIBRARY aknnotify.lib
 
-LIBRARY imagingconfigmanager.lib
+LIBRARY ImagingConfigManager.lib 
 LIBRARY touchfeedback.lib 
 
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
--- a/camerauis/cameraapp/build/iconlist.txt	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/build/iconlist.txt	Thu Aug 19 09:36:57 2010 +0300
@@ -165,3 +165,15 @@
 -c8,8 qgn_menu_cams.svg
 -c8,1 qgn_indi_vid4_tb_still.svg
 -c8,1 qgn_indi_vid4_tb_video.svg
+-c8,8 qgn_indi_cam4_battery_strength_0.svg
+-c8,8 qgn_indi_cam4_battery_strength_1.svg
+-c8,8 qgn_indi_cam4_battery_strength_2.svg
+-c8,8 qgn_indi_cam4_battery_strength_3.svg
+-c8,8 qgn_indi_cam4_battery_strength_4.svg
+-c8,8 qgn_indi_cam4_battery_strength_5.svg
+-c8,8 qgn_indi_cam4_battery_strength_6.svg
+-c8,8 qgn_indi_cam4_battery_strength_7.svg
+-c8,8 qgn_indi_cam4_capture_image.svg
+-c8,8 qgn_indi_cam4_capture_image_pressed.svg
+-c8,8 qgn_indi_cam4_capture_video.svg
+-c8,8 qgn_indi_cam4_capture_video_pressed.svg
\ No newline at end of file
Binary file camerauis/cameraapp/conf/cameraapp.confml has changed
Binary file camerauis/cameraapp/conf/cameraapp_101FFA86.crml has changed
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/group/gscameraplugin.mmp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/group/gscameraplugin.mmp	Thu Aug 19 09:36:57 2010 +0300
@@ -110,8 +110,8 @@
 END // Plugin resources
 
 LANGUAGE_IDS
-LIBRARY             GSEcomPlugin.lib
-LIBRARY             PlatformEnv.lib // PathInfo
+LIBRARY             gsecomplugin.lib 
+LIBRARY             platformenv.lib // PathInfo 
 LIBRARY             euser.lib
 LIBRARY             ecom.lib
 LIBRARY             efsrv.lib
@@ -120,23 +120,23 @@
 LIBRARY             cone.lib 
 LIBRARY             eikcoctl.lib 
 LIBRARY             eikcore.lib 
-LIBRARY             commonengine.lib//For RConeResourceLoader
-LIBRARY             GSFramework.lib
+LIBRARY             CommonEngine.lib//For RConeResourceLoader 
+LIBRARY             gsframework.lib 
 LIBRARY             egul.lib // CGulIcon
 LIBRARY             aknskins.lib // AknsUtils.h
 LIBRARY             centralrepository.lib
-LIBRARY             FeatMgr.lib           // Feature manager 
-LIBRARY             AknNotify.lib         // for CAknGlobalNote.h
-LIBRARY             AknIcon.lib     // AknIconUtils
-LIBRARY             GSListBox.lib         // For CGSListBoxItemTextArray
+LIBRARY             featmgr.lib           // Feature manager 
+LIBRARY             aknnotify.lib         // for CAknGlobalNote.h 
+LIBRARY             aknicon.lib     // AknIconUtils 
+LIBRARY             gslistbox.lib         // For CGSListBoxItemTextArray 
 LIBRARY             charconv.lib // utf
 LIBRARY             commondialogs.lib  // CAknMemorySelectionDialog
 LIBRARY             eikctl.lib
-LIBRARY             NewService.lib
+LIBRARY             newservice.lib 
 LIBRARY             eikdlg.lib
 LIBRARY             bitgdi.lib
 LIBRARY             aknlayout2.lib
-LIBRARY             aknlayout2scalable.lib
+LIBRARY             AknLayout2Scalable.lib 
 LIBRARY             CdlEngine.lib
 LIBRARY             camerauiconfigmanager.lib
 
@@ -145,7 +145,7 @@
 #endif
 LIBRARY fbscli.lib 
 LIBRARY ws32.lib
-LIBRARY     imagingconfigmanager.lib
+LIBRARY     ImagingConfigManager.lib 
 LIBRARY     touchfeedback.lib 
 
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamcorderPlugin.h	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamcorderPlugin.h	Thu Aug 19 09:36:57 2010 +0300
@@ -23,7 +23,7 @@
 #include <aknview.h>
 #include <eikclb.h>
 #include <ConeResLoader.h>
-#include <gsplugininterface.h>
+#include <GSPluginInterface.h> 
 #include <gsbaseview.h>
 #include "CamStaticSettingsModel.h"
 
--- a/camerauis/cameraapp/generic/common/data/CamStillCaptureCamcorder.ra	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/common/data/CamStillCaptureCamcorder.ra	Thu Aug 19 09:36:57 2010 +0300
@@ -905,6 +905,11 @@
             },
         MENU_ITEM
             {
+            command = ECamCmdEditPhoto;
+            txt = qtn_options_image_editor;
+            },    
+        MENU_ITEM
+            {
             command = KAiwCmdAssign;
             txt     = qtn_lcam_use_image_postcapture_menu;
             cascade = AIW_INTELLIGENT_CASCADE_ID;
--- a/camerauis/cameraapp/generic/common/data/CamVideoCaptureCamcorder.ra	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/common/data/CamVideoCaptureCamcorder.ra	Thu Aug 19 09:36:57 2010 +0300
@@ -956,6 +956,11 @@
             },
         MENU_ITEM
             {
+            command = ECamCmdEditVideo;
+            txt = qtn_options_video_editor;
+            },
+        MENU_ITEM
+            {
             command = ECamCmdShareOnOvi;
             // AIW provider fills the menu item title.
             // No submenu, only 1 provider acccepted.
--- a/camerauis/cameraapp/generic/common/inc/CamSettings.hrh	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/common/inc/CamSettings.hrh	Thu Aug 19 09:36:57 2010 +0300
@@ -279,6 +279,13 @@
     ESwitchSecondaryOrientation
     };
 
+enum TCamEditorSupport
+    {
+    ECamNoEditorSupport,
+    ECamEditorSupportInToolbar,
+    ECamEditorSupportInOptions
+    };
+	
 #ifdef _DEBUG
 #ifndef CAMERAAPP_PLUGIN_BUILD
 const TUint16* const KCamOrientationNames[] =
--- a/camerauis/cameraapp/generic/common/inc/CameraappPrivateCRKeys.h	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/common/inc/CameraappPrivateCRKeys.h	Thu Aug 19 09:36:57 2010 +0300
@@ -87,6 +87,8 @@
 // Customise Toolbar keys
 const TUint32 KCamCrImageToolbarItems        = 0x58;
 const TUint32 KCamCrImageToolbarDefaultItems = 0x59;
+//Ftu message key
+const TUint32 KCamCrFtuMessageFlag           = 0x60;
 
 //Support for Photo and Video editor
 const TUint32 KCamCrPhotoEditorSupport = 0x5A;
--- a/camerauis/cameraapp/generic/data/cameraapp.rss	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/data/cameraapp.rss	Thu Aug 19 09:36:57 2010 +0300
@@ -99,5 +99,54 @@
         };
     }
 
+// ---------------------------------------------------------
+//   
+//    r_ftu_message_dialog_text
+//    FTU message dialog text
+// ---------------------------------------------------------
+//
+RESOURCE TBUF r_ftu_message_dialog_text { buf=qtn_lcam_location_ftu_text; }
+
+// ---------------------------------------------------------
+//   
+//    r_ftu_message_hyperlink_text
+//    FTU message hyperlink text
+// ---------------------------------------------------------
+//
+RESOURCE TBUF r_ftu_message_hyperlink_text{ buf=qtn_lcam_location_ftu; }
+    
+    
+// ---------------------------------------------------------
+//   
+//    r_ftu_message_dialog
+//    The FTU message dialog resource
+// ---------------------------------------------------------
+//    
+RESOURCE DIALOG r_ftu_message_dialog
+    {
+    flags=EEikDialogFlagNoDrag |EEikDialogFlagCbaButtons |EEikDialogFlagWait;
+    buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
+       items =
+         {
+          DLG_LINE 
+              {
+                type = EAknCtPopupHeadingPane;  
+                id = EAknMessageQueryHeaderId;
+                control = AVKON_HEADING 
+                    {
+                    headinglayout = R_AVKON_LIST_HEADING_PANE_POPUPS;
+                    };
+                },
+                DLG_LINE    
+                    {
+                    type = EAknCtMessageQuery;   
+                    id = EAknMessageQueryContentId;        
+                    control = AVKON_MESSAGE_QUERY               
+                        {              
+                        message = "";             
+                        };          
+                    }
+         };
+    }
 // ===========================================================================
 // end of file
--- a/camerauis/cameraapp/generic/inc/CamAppUi.h	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/inc/CamAppUi.h	Thu Aug 19 09:36:57 2010 +0300
@@ -68,6 +68,8 @@
 class CCamStillPreCaptureView;
 class CCamVideoPreCaptureView;
 class CCamMemoryMonitor;
+//FTU message display class
+class CCamFtuDisplay;
 class CCamStartupLogoController;
 
 
@@ -198,16 +200,36 @@
     */
     void FileCheckingCompleteL( TInt aStatus, TInt aError );   
 
-  // -------------------------------------------------------
-  // New functions
-  public: 
-      /**
-      * Returns whether or the toolbar has been activated/visible
-      * Will return ETrue when when the toolbar is active/visible
-      * @since 3.2
-      * @return ETrue if toolbar is active/visible, else returns EFalse
-      */
-      virtual TBool IsToolBarVisible() const;
+    // -------------------------------------------------------
+    // New functions
+public: 
+    /*
+     * HyperlinkCallback
+     * static methode  to be called from TCallback
+     */
+
+    static TInt HyperlinkCallback( TAny* aAny );
+    
+    /**
+     * CamFtuDisplayL
+     * Check if camera is launching for first time ,
+     * accordingly FTU Message will be displayed.
+     */
+    void CamFtuDisplayL();
+  
+     /**
+	  * OpenSettingView
+	  * Non static public method , to launch the settings view
+	  */
+    void OpenSettingView();
+
+    /**
+     * Returns whether or the toolbar has been activated/visible
+     * Will return ETrue when when the toolbar is active/visible
+     * @since 3.2
+     * @return ETrue if toolbar is active/visible, else returns EFalse
+     */
+    virtual TBool IsToolBarVisible() const;
 
         /**
         * Check if given view state indicates that "internal",
@@ -1874,6 +1896,12 @@
         CCamStartupLogoController* iStartupLogoController;
 
         TBool iVideoClipPlayInProgress;
+
+        /**
+         * iCamFtuDisplay
+         * An instance of the CCamFtuDisplay class
+         */
+        CCamFtuDisplay* iCamFtuDisplay;
         };
 
 // ===========================================================================
--- a/camerauis/cameraapp/generic/inc/cambatterypanedrawer.h	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/inc/cambatterypanedrawer.h	Thu Aug 19 09:36:57 2010 +0300
@@ -114,13 +114,6 @@
         void LoadLayoutsL();
         
         /**
-        * Calculate height of 
-        * @param aLevel Battery level
-        * @return height
-        */
-        TInt BatteryStrengthIconHeight( TInt aLevel ) const;
-        
-        /**
         * Load icons needed for drawing the battery pane
         */
         void LoadIconsL();
@@ -145,10 +138,9 @@
         // Battery strength    
         TInt        iBatteryStrength;
 
-        // Battery strength and battery icon
-        CCamBitmapItem* iBatteryIcon; // own
-        CCamBitmapItem* iBatteryStrengthIcon; // own
-
+        
+        RPointerArray<CCamBitmapItem> iBatteryIcons;
+        
         // Rectangle of the battery pane
         TRect       iRect;
 
--- a/camerauis/cameraapp/generic/inc/camcapturebuttoncontainer.h	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/inc/camcapturebuttoncontainer.h	Thu Aug 19 09:36:57 2010 +0300
@@ -135,7 +135,9 @@
 
     // Icons and rect for capturing image
     CFbsBitmap *iCaptureIcon;
-    CFbsBitmap *iCaptureMask;
+    CFbsBitmap *iCaptureIconMask;
+    CFbsBitmap *iCaptureIconPressed;
+    CFbsBitmap *iCaptureIconPressedMask;
     TRect iCaptureRect;
     TBool iCaptureButtonShown;
     TBool iCaptureButtonPressed;
--- a/camerauis/cameraapp/generic/inc/camtvaccessorymonitor.h	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/inc/camtvaccessorymonitor.h	Thu Aug 19 09:36:57 2010 +0300
@@ -22,7 +22,7 @@
 #include <AccessoryServer.h>        // for RAccessoryServer
 #include <AccessoryMode.h>          // for RAccessoryMode
 #include <AccessoryConnection.h>    // for RAccessoryConnection
-#include <AccPolGenericIDArray.h>
+#include <accpolgenericidarray.h> 
 
 
 class MCamTvAccessoryObserver
--- a/camerauis/cameraapp/generic/src/CamAppController.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamAppController.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -2563,6 +2563,22 @@
       SetCameraOrientationModeL( landscapeScreenMode );
       }
   iCameraController->CompleteSwitchCameraL();
+  // Force to get a sensor data after switch camera from primary to secondary 
+  // when always holding in camera with portrait mode. 
+  if( iConfigManager 
+      && iConfigManager->IsOrientationSensorSupported() )
+    {
+    if( iAccSensorListening )
+      {
+      iAccSensorListening = EFalse;
+      }
+    if( iAccSensorChannel )
+      {
+      delete iAccSensorChannel;
+      iAccSensorChannel = NULL;
+      }        
+    TRAP_IGNORE( UpdateSensorApiL( ETrue ) );            
+    }
 
   // Camera switched.
   // a) Set current camera index to the new one.
@@ -3995,6 +4011,7 @@
 //
 TBool CCamAppController::IsAppUiAvailable() const
     {
+    PRINT1(_L("Camera <> CCamAppController::IsAppUiAvailable=%d"),iAppUiAvailable);
     return iAppUiAvailable;
     }       
     
@@ -8754,6 +8771,26 @@
   PRINT( _L("Camera => CCamAppController::StartLocationTrailL") );
   CCamAppUi* appUI = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() );
 
+  if( !iRepository )
+    {
+    iRepository = CRepository::NewL( KCRUidCameraappSettings ); 
+    }
+
+    TInt ftuValue=-1;
+    TInt retErr=0;
+    retErr = iRepository->Get( KCamCrFtuMessageFlag, ftuValue );
+	if( ftuValue == 0 )
+		{
+		return;
+		}
+
+	if( iRepository )
+		{
+		delete  iRepository;
+		iRepository = NULL;
+		}
+
+
   // If a stop request is pending but the trail is being restarted, stop 
   // and delete the timer
   if( iLocationTrailTimer )
--- a/camerauis/cameraapp/generic/src/CamAppui.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamAppui.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -63,6 +63,7 @@
 
 #include <AknCommonDialogsDynMem.h>
 #include <CAknMemorySelectionDialogMultiDrive.h>
+#include <aknmessagequerydialog.h>
 
 #include "CameraappPrivateCRKeys.h"
 #include "CamAppUi.h"
@@ -146,7 +147,45 @@
                                    | ECamCameraEventClassVfControl
                                    | ECamCameraEventClassSsControl
                                    | ECamCameraEventClassSettings );
-
+/**
+ * class CCamFtuDisplay
+ * This class is used to give a notification to Camera First Time User regarding the 
+ * geotagging of captured images or videos.
+ */
+
+class CCamFtuDisplay : public CAsyncOneShot 
+    {
+public:
+    /**
+     * CCamFtuDisplay
+     * Default Constructor
+     */
+    CCamFtuDisplay( CCamAppUi * aCamAppUi )
+    : CAsyncOneShot( CActive::EPriorityLow), iCamAppUi(aCamAppUi)
+            {
+            }
+    enum TEnableCamFtu
+        {
+        ECamFtuEnable = 0,
+        ECamFtuDisable
+        };
+    
+protected:
+    /**
+     * RunL
+     * Callback method
+     */
+    void RunL()
+        {
+        iCamAppUi->CamFtuDisplayL();
+        }
+private:
+    /**
+     * iCamAppUi
+     * An instance of the CCamAppUi
+     */
+    CCamAppUi* iCamAppUi;
+    };
 
 
 // ===========================================================================
@@ -252,6 +291,12 @@
     delete iCollectionManager;
     iCollectionManager = NULL;
 
+    if( iCamFtuDisplay )
+        {
+        delete iCamFtuDisplay;
+        iCamFtuDisplay = NULL;
+        }
+
     PRINT( _L("Camera <= ~CCamAppUi" ))
     }
 
@@ -662,7 +707,20 @@
 
   PRINT( _L("Camera <= CCamAppUi::ConstructL") )
   OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, DUP3_CCAMAPPUI_CONSTRUCTL, "e_CCamAppUi_ConstructL 0" );
-  }
+   
+  //  To get FTU flag value
+
+    TInt ftuValue=0;
+    TInt retErr=0;
+    retErr=iRepository->Get( KCamCrFtuMessageFlag, ftuValue );
+   
+    if( !IsEmbedded() && ftuValue == CCamFtuDisplay::ECamFtuEnable 
+	        && retErr==KErrNone )
+        {
+        iCamFtuDisplay = new (ELeave)CCamFtuDisplay(this);
+        iCamFtuDisplay->Call();
+        }
+    }
     
 
 
@@ -694,9 +752,73 @@
   PRINT1( _L("Camera <= CCamAppUi::IsInternalView, return %d"), internal );
   return internal;
   }
-
-
- 
+// -----------------------------------------------------------------------------
+// CCamAppUi:: HyperlinkCallback
+// Call back method for the hyper link text 
+// -----------------------------------------------------------------------------
+//
+TInt CCamAppUi:: HyperlinkCallback(TAny* aAny)
+    {
+    (static_cast<CCamAppUi*>(aAny))->OpenSettingView();
+    return EFalse;
+    }
+// -----------------------------------------------------------------------------
+// CCamAppUi::OpenSettingView
+// Non static public method , to launch the settings view
+// -----------------------------------------------------------------------------
+//
+void CCamAppUi::OpenSettingView()
+    {
+    TRAP_IGNORE( HandleCommandL( ECamCmdSettings ) );
+    }
+// -----------------------------------------------------------------------------
+// CCamAppUi::CamFtuDisplayL()
+// TO Display FTU message for first time camera launched
+// -----------------------------------------------------------------------------
+//
+void CCamAppUi::CamFtuDisplayL()
+    {    
+
+	iController.SetIntegerSettingValueL( ECamSettingItemRecLocation, ECamLocationOn );
+
+    CAknMessageQueryDialog* dlg =
+    new (ELeave) CAknMessageQueryDialog();
+    dlg->PrepareLC( R_FTU_MESSAGE_DIALOG );
+    HBufC* msg = iEikonEnv->AllocReadResourceLC( R_FTU_MESSAGE_DIALOG_TEXT );
+    HBufC* hyperLinkMsg = iEikonEnv->AllocReadResourceLC(
+            R_FTU_MESSAGE_HYPERLINK_TEXT );
+   
+    TInt len = msg->Length() 
+            + hyperLinkMsg->Length() 
+            + KOpeningLinkTag().Length() 
+            + KClosingLinkTag().Length();
+    
+    HBufC* displayMsg = HBufC::NewLC( len );
+    _LIT(KMsgFormat, "%S%S%S%S");
+    displayMsg->Des().Format(KMsgFormat, 
+            msg, 
+            &KOpeningLinkTag(),
+            hyperLinkMsg,
+            &KClosingLinkTag());
+
+    dlg->SetMessageTextL( *displayMsg );
+    CleanupStack::PopAndDestroy(3); //msg, hyperLinkMsg, displayMsg
+    
+    TCallBack callback( HyperlinkCallback, this );
+
+    dlg->SetLink( callback );
+
+    dlg->RunLD();
+
+    iRepository->Set( KCamCrFtuMessageFlag, CCamFtuDisplay::ECamFtuDisable );
+
+	//Read the location record value in case its changed by hyperlink
+
+	TInt value = 0;
+	iRepository->Get( KCamCrPhotoStoreLocation, value );
+	iController.SetIntegerSettingValueL( ECamSettingItemRecLocation, value );
+	
+    } 
 // -----------------------------------------------------------------------------
 // CCamAppUi::IsConstructionComplete
 // Returns whether or not all construction has completed
@@ -895,7 +1017,14 @@
         // In capture setup mode, toolbar and indicators are not visible
         // They will be updated when returning to precap, similarily to
         // when setting the self timer mode above
-        if( iPreCaptureMode != ECamPreCapCaptureSetup )
+        // during changing from still pre-capture view to video pre-capture view, no need 
+        // to show toolbar of still image. It will display toolbar of video when entering video pre-capture  
+
+        if( ( iPreCaptureMode != ECamPreCapCaptureSetup && 
+              iPreCaptureMode != ECamPreCapSceneSetting ) &&                           
+            !( IsViewFinderInTransit() && 
+                iMode == ECamControllerImage &&
+                iTargetMode == ECamControllerVideo ) )    
             {
             // Re-show the active palette
             iActivePaletteHandler->UpdateActivePaletteL();
@@ -922,6 +1051,14 @@
             }        
         
         UpdateCba();
+        CCamViewBase* precapView = static_cast<CCamViewBase*>( iView );              
+        if( precapView && 
+            IsViewFinderInTransit() && 
+            iMode == ECamControllerImage &&
+            iTargetMode == ECamControllerVideo )
+          {
+          precapView->ViewCba()->DrawNow();       
+          }
         }    
     }
 
@@ -1474,7 +1611,10 @@
         SetActivePaletteVisibility( EFalse );           
            
         // Update CBA
-        UpdateCba();
+        if ( iSelfTimer && iSelfTimer->IsActive() )
+            {
+            UpdateCba();
+            }
         }
       }
       break;
@@ -2007,6 +2147,10 @@
                 }
             }
         }
+     else
+        {
+        SetToolbarVisibility();
+        }
       iFirstVFStart = EFalse;
       
       PRINT( _L( "Camera <> CCamAppUi::HandleCameraEventL updating CBA") );
@@ -3943,7 +4087,7 @@
       {
       iController.ReleaseArray( ETrue );    
       }
-    if ( iPreCaptureMode != ECamPreCapTimeLapseSlider )
+    if ( iPreCaptureMode != ECamPreCapTimeLapseSlider && !IsEmbedded() )
       {
       iPreCaptureMode = ECamPreCapViewfinder;
       }       
--- a/camerauis/cameraapp/generic/src/CamBurstThumbnailView.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamBurstThumbnailView.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -716,7 +716,7 @@
     iAiwServiceHandler->AttachMenuL( R_CAM_BURST_THUMBNAIL_MENU, 
                                      R_CAM_MOVE_TO_STILL_IMAGE_SEQUENCE_INTEREST );
     
-    if ( iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport) )
+    if ( iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport) != ECamNoEditorSupport )
         {    
         iAiwServiceHandler->AttachMenuL( R_CAM_BURST_THUMBNAIL_MENU, 
                 R_CAM_SET_AS_CALL_IMAGE_INTEREST_EDITOR );
--- a/camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -393,7 +393,7 @@
          ( IsCaptureKeyL( aKeyEvent, aType ) || IsShutterKeyL( aKeyEvent, aType ) ) ) )  
         {
         TKeyResponse response = iCaptureSetupControl->OfferKeyEventL( aKeyEvent, aType );
-        if ( aType == EEventKey && response == EKeyWasNotConsumed &&
+        if ( aType == EEventKey && response == EKeyWasNotConsumed && aKeyEvent.iCode != EKeyOK &&
             ( ECamSettingItemDynamicPhotoFlash == iControlHandler.SettingType() ||
             ECamSettingItemDynamicSelfTimer == iControlHandler.SettingType() ) )
             {
--- a/camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -636,7 +636,7 @@
         {
         // Set the shaft layout and icon size for Contrast slider
         iShaftLayout.LayoutRect( sliderRect, 
-                              AknLayoutScalable_Apps::cset_slider_pane( 7 )  );
+                              AknLayoutScalable_Apps::cset_slider_pane( 5 )  );
         // set Contrast slider legend layouts      
         TouchContrastLayoutL( sliderRect ); 
         }   
--- a/camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -597,7 +597,15 @@
         case EEventItemSingleClicked:
             {
             TInt settingValue = CurrentSettingItemValue();
-            iController.PreviewSettingChangeL( ECamSettingItemDynamicPhotoLightSensitivity, settingValue );
+
+            if ( iView.Id().iUid == ECamViewIdPhotoUserSceneSetup )
+                {                   
+                iController.PreviewSettingChangeL( ECamSettingItemUserSceneLightSensitivity, settingValue );
+                }
+     	    else
+       	        {
+		        iController.PreviewSettingChangeL( ECamSettingItemDynamicPhotoLightSensitivity, settingValue );
+          	    }
             }
             break;
         default:
--- a/camerauis/cameraapp/generic/src/CamNewFileService.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamNewFileService.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -69,13 +69,13 @@
   if ( !iCompleted && iObserver )
     {	    
     TRAP_IGNORE( iObserver->HandleCompletedNewServiceL( EFalse ) );
-    CCamAppUi* appUi = static_cast< CCamAppUi* >( CEikonEnv::Static()->EikAppUi() );
-    if ( appUi )
-        {
-        // Tell appui 'this' is not valid MCamEmbeddedObserver pointer anymore
-        appUi->SetEmbeddedObserver( NULL );
-        }
     }
+  CCamAppUi* appUi = static_cast< CCamAppUi* >( CEikonEnv::Static()->EikAppUi() );
+  if ( appUi )
+      {
+      // Tell appui 'this' is not valid MCamEmbeddedObserver pointer anymore
+      appUi->SetEmbeddedObserver( NULL );
+      }
   PRINT( _L("Camera <= ~CCamNewFileService") );
   }
     
--- a/camerauis/cameraapp/generic/src/CamPostCaptureViewBase.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamPostCaptureViewBase.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -217,6 +217,8 @@
             break;
         case KAiwCmdEdit:
         case ECamCmdEdit:
+        case ECamCmdEditPhoto:
+        case ECamCmdEditVideo:    
             {
             CAiwGenericParamList& inputParams = iAiwServiceHandler->InParamListL();
             TPtrC currentFullFileName(iController.CurrentFullFileName());
@@ -582,7 +584,8 @@
                 {
                 fixedToolbar->SetToolbarObserver( this );
                 UpdateToolbarIconsL();
-                if( Id().iUid != ECamViewIdVideoPostCapture && !appui->IsSelfTimedCapture() )
+                if( Id().iUid != ECamViewIdVideoPostCapture && !appui->IsSelfTimedCapture() && 
+                    !iController.SavedCurrentImage() )
                     {
                     fixedToolbar->SetDimmed(ETrue);
                     }
--- a/camerauis/cameraapp/generic/src/CamPreCaptureContainerBase.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamPreCaptureContainerBase.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -981,7 +981,7 @@
         // Cancel timer if we're losing focus
         iZoomTimer->Cancel();  
         
-        if ( !iShuttingDown )
+        if ( iController.IsAppUiAvailable() && !iShuttingDown )
             {
             iSidePane->MakeVisible( ETrue );
             iZoomPane->MakeVisible( EFalse, EFalse );
@@ -2929,7 +2929,8 @@
         iDrawIndicator = ETrue;
         }
     
-    if ( iCaptureButtonContainer )
+    CCamAppUi* appUi = static_cast<CCamAppUi*>( iEikonEnv->AppUi() );
+    if ( iCaptureButtonContainer && !( appUi && appUi->SelfTimerEnabled() ) )
         {
         iCaptureButtonContainer->SetCaptureButtonShown( EFalse );
         }
--- a/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -1877,7 +1877,8 @@
         }
     else if ( EAknTouchGestureFwDoubleTap == aEvent.Type() 
               && ( ECamNoOperation == iController.CurrentOperation() 
-                   || ( ECamCapturing   == iController.CurrentOperation() 
+                   || ( ( ECamCapturing   == iController.CurrentOperation() 
+                            || ECamPaused   == iController.CurrentOperation() )
                         && iController.CurrentMode() == ECamControllerVideo ) ) )
         {
         PRINT( _L("Camera <> double tap event") );
--- a/camerauis/cameraapp/generic/src/CamStandbyContainer.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamStandbyContainer.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -201,7 +201,7 @@
                !static_cast<CCamAppUi*>( iEikonEnv->AppUi() )->IsSecondCameraEnabled() )
         || ( IsCaptureKeyL(aKeyEvent, aType)) )
         {
-        // in case we receive an enter key or MSK key event in standby mode
+        // in case we receive MSK key event in standby mode
         // we should not call HandleCommandL function with ECamCmdExitStandby
         // because by default application will get a left softkey command id
         // when MSK is pressed. In standby mode left softkey command id is
@@ -209,8 +209,7 @@
         if ( !( ( aType == EEventKey || 
                   aType == EEventKeyDown || 
                   aType == EEventKeyUp ) && 
-                ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
-                  aKeyEvent.iScanCode == EStdKeyEnter ) ) )
+                  aKeyEvent.iScanCode == EStdKeyDevice3  ) )
              {
              iView.HandleCommandL( ECamCmdExitStandby );
              }
--- a/camerauis/cameraapp/generic/src/CamStillPostCaptureView.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamStillPostCaptureView.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -342,7 +342,7 @@
     iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID),
             R_CAM_AIW_VIEW_INTEREST );
 
-    if ( iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport) )
+    if ( iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport) != ECamNoEditorSupport )
         {    
         iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), 
                 R_CAM_SET_AS_CALL_IMAGE_INTEREST_EDITOR );
@@ -558,46 +558,34 @@
     if ( aResourceId == ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID ) ||
          aResourceId == ROID( R_CAM_STILL_POST_CAPTURE_OK_MENU_ID ) )
         {
-        TBool showSend = ETrue;
-        TBool showSendToCaller = EFalse;
-
-/*#ifndef __WINS__
-        if ( iSFIUtils->IsCLIValidL() )
-            {
-            showSend = EFalse;
-            showSendToCaller = ETrue;
-            }
-#endif*/
-
-        TCamOrientation orientation =
-            static_cast<CCamAppUiBase*>( AppUi() )->CamOrientation();
-
-        if ( orientation == ECamOrientationCamcorder || 
-            orientation == ECamOrientationCamcorderLeft ||
-			orientation == ECamOrientationPortrait )
-            {
-            showSend = EFalse;
-            showSendToCaller = EFalse;
-            }
-
         TInt itemPos = 0;
         if ( aMenuPane->MenuItemExists( ECamCmdSendToCallerMultimedia, itemPos ) )
             {
             aMenuPane->SetItemDimmed(
-                ECamCmdSendToCallerMultimedia, !showSendToCaller );
+                ECamCmdSendToCallerMultimedia, ETrue );
             }
         
-        if(iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport))
-            {
-            showSend = ETrue;
-            }
+		TInt editorSupport = iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport);
         
-        if ( aMenuPane->MenuItemExists( ECamCmdSend, itemPos ) )
+		if( editorSupport == ECamNoEditorSupport || 
+			editorSupport == ECamEditorSupportInOptions )
             {
-            aMenuPane->SetItemDimmed(
-                ECamCmdSend, !showSend );
-            }
-
+			if ( aMenuPane->MenuItemExists( ECamCmdSend, itemPos ) )
+				{
+				aMenuPane->SetItemDimmed(
+					ECamCmdSend, ETrue );
+				}
+			}
+		if( editorSupport == ECamNoEditorSupport || 
+			editorSupport == ECamEditorSupportInToolbar )
+			{
+			if ( aMenuPane->MenuItemExists( ECamCmdEditPhoto, itemPos ) )
+				{
+				aMenuPane->SetItemDimmed(
+					ECamCmdEditPhoto, ETrue );
+				}			
+			}
+			
         /*
          * MSK : ContextOptions --> We just hide Help and Exit from the Options Menu when
          *       the MSK is pressed in the postcapture still view
@@ -668,7 +656,8 @@
 			}
 		else
 			{
-            if(iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport))
+			TInt editorSupport = iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport);
+            if( editorSupport == ECamEditorSupportInToolbar )
                 {
                 aToolbar->RemoveItem( ECamCmdSend );
                 CAknButton* editButton = dynamic_cast<CAknButton*>(aToolbar->ControlOrNull( ECamCmdEdit ));
--- a/camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -290,7 +290,7 @@
     // To background
     else if( !aForeground )
         {
-        iNotifierPopupShowing = appUi->AppInBackground( ETrue );
+        iNotifierPopupShowing = appUi->AppInBackground( ETrue ) && !appUi->AppInBackground( EFalse );        
         PRINT( _L("Camera <> CCamUserSceneSetupViewBase::HandleForegroundEventL dec engine count") );
         // Register that we nolonger need the engine
         if( !iNotifierPopupShowing )
--- a/camerauis/cameraapp/generic/src/CamVideoPostCaptureView.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamVideoPostCaptureView.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -277,7 +277,7 @@
             R_CAM_SHARE_ON_OVI_INTEREST );
 
     // SHARE_AIW
-    iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID),
+    iAiwServiceHandler->AttachMenuL( ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID),
                                      R_CAM_AIW_VIEW_INTEREST );
 
     CCamPostCaptureViewBase::DoActivateL(
@@ -314,7 +314,7 @@
             {   
             }
         }
-    if ( iController.IntegerSettingValue(ECamSettingItemVideoEditorSupport) )
+    if ( iController.IntegerSettingValue(ECamSettingItemVideoEditorSupport) != ECamNoEditorSupport )
         {
         iAiwServiceHandler->AttachMenuL( ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ), 
                 R_CAM_SET_AS_RING_TONE_INTEREST_EDITOR );
@@ -476,53 +476,32 @@
     if ( aResourceId == ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ) ||
          aResourceId == ROID( R_CAM_VIDEO_POST_CAPTURE_OK_MENU_ID ) )
         {
-        TBool showSend = ETrue;
-        TBool showSendToCaller = EFalse;
-
-/*#ifndef __WINS__
-        if ( iSFIUtils->IsCLIValidL() )
-            {
-            showSend = EFalse;
-            showSendToCaller = ETrue;
-
-            if ( iController.IntegerSettingValue( ECamSettingItemVideoQuality ) 
-                == ECamVideoQualityHigh )
-                {
-                showSendToCaller = EFalse;
-                }
-            }
-#endif*/
-
-        if ( !iController.IsTouchScreenSupported() ||
-             !iOneClickUploadUtility->OneClickUploadSupported() )
-            {
-            // In non-touch UI Send/Send to caller are always in AP.
-            // No need for Options menu items.
-
-            // If 1-click upload is not supported in touch UI, then there is
-            // a send button in the fixed toolbar. There is no need to
-            // have it in Options menu.
-            showSend = EFalse;
-            showSendToCaller = EFalse;
-            }
 
         if( aMenuPane->MenuItemExists( ECamCmdSendToCallerMultimedia, itemPos ) )
             {
             aMenuPane->SetItemDimmed(
-                ECamCmdSendToCallerMultimedia, !showSendToCaller );
-            }
-
-        if(iController.IntegerSettingValue(ECamSettingItemVideoEditorSupport))
-            {
-            showSend = ETrue;
+                ECamCmdSendToCallerMultimedia, ETrue );
             }
-        
-        if( aMenuPane->MenuItemExists( ECamCmdSend, itemPos ) )
+		TInt editorSupport = iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport);
+		
+		if( editorSupport == ECamNoEditorSupport || 
+			editorSupport == ECamEditorSupportInOptions )
             {
-            aMenuPane->SetItemDimmed(
-                ECamCmdSend, !showSend );
-            }
-
+			if ( aMenuPane->MenuItemExists( ECamCmdSend, itemPos ) )
+				{
+				aMenuPane->SetItemDimmed(
+					ECamCmdSend, ETrue );
+				}
+			}
+		if( editorSupport == ECamNoEditorSupport || 
+			editorSupport == ECamEditorSupportInToolbar )
+			{
+			if ( aMenuPane->MenuItemExists( ECamCmdEditPhoto, itemPos ) )
+				{
+				aMenuPane->SetItemDimmed(
+					ECamCmdEditPhoto, ETrue );
+				}			
+			}
         /*
          * MSK : ContextOptions --> We just hide Help and Exit from the Options Menu when
          *       the MSK is pressed in the postcapture still view
@@ -594,7 +573,8 @@
 			}
         else
 			{
-            if(iController.IntegerSettingValue(ECamSettingItemVideoEditorSupport))
+			TInt editorSupport = iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport);
+            if( editorSupport == ECamEditorSupportInToolbar )
                 {
                 aToolbar->RemoveItem( ECamCmdSend );
                 CAknButton* editButton = dynamic_cast<CAknButton*>(aToolbar->ControlOrNull( ECamCmdEdit ));
--- a/camerauis/cameraapp/generic/src/CamViewBase.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamViewBase.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -515,6 +515,13 @@
 
     SetStandbyModeActive(ETrue);
 
+    UpdateCbaL();
+    if ( Cba() )
+        {
+        Cba()->DrawNow();
+        }
+        
+    
     // Release the camera hardware
     iController.ReleaseCamera();
     
--- a/camerauis/cameraapp/generic/src/cambatterypanedrawer.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/cambatterypanedrawer.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -51,6 +51,18 @@
 const TInt KCamDefaultBatteryCellHeight = 3;
 const TInt KCamDefaultBatteryCellMargin = 1;
 
+const TInt KBatteryStrengthIcons[] = 
+        {
+                EMbmCameraappQgn_indi_cam4_battery_strength_0,
+                EMbmCameraappQgn_indi_cam4_battery_strength_1,
+                EMbmCameraappQgn_indi_cam4_battery_strength_2,
+                EMbmCameraappQgn_indi_cam4_battery_strength_3,
+                EMbmCameraappQgn_indi_cam4_battery_strength_4,
+                EMbmCameraappQgn_indi_cam4_battery_strength_5,
+                EMbmCameraappQgn_indi_cam4_battery_strength_6,
+                EMbmCameraappQgn_indi_cam4_battery_strength_7
+        };
+
 // ---------------------------------------------------------------------------
 // CCamBatteryPaneDrawer::CCamBatteryPaneDrawer
 // ---------------------------------------------------------------------------
@@ -134,19 +146,11 @@
     // Delete existing icon bitmaps
     DeleteIcons();
 
-    // Load and resize battery icon and mask
-    delete iBatteryIcon;
-    iBatteryIcon = NULL;
-    iBatteryIcon = CCamBitmapItem::NewL(
-        EMbmCameraappQgn_prop_cam_battery_icon,
-        EMbmCameraappQgn_prop_cam_battery_icon_mask );
-    
-    // Load and resize battery strength icon and mask    
-    delete iBatteryStrengthIcon;
-    iBatteryStrengthIcon = NULL;
-    iBatteryStrengthIcon = CCamBitmapItem::NewL(
-        EMbmCameraappQgn_indi_cam_battery_strength,
-        EMbmCameraappQgn_indi_cam_battery_strength_mask );                            
+    for( TInt index = KMinBatteryStrength; index <= KMaxBatteryStrength; index++ )
+        {
+        iBatteryIcons.AppendL( CCamBitmapItem::NewL( KBatteryStrengthIcons[index], 
+                KBatteryStrengthIcons[index] + 1) );
+        }
 
     PRINT( _L("Camera <= CCamBatteryPaneDrawer::LoadIconsL") );	       
     }
@@ -167,30 +171,7 @@
 //
 void CCamBatteryPaneDrawer::Draw( CBitmapContext& aGc ) const
     {
-    // Make sure that no brush is being used
-    aGc.SetBrushStyle( CGraphicsContext::ENullBrush );    
-
-    if( iBatteryStrengthIcon )
-        {
-        TSize iconSize = iBatteryStrengthIcon->BitmapSize();
-
-        TRect strengthIconCropRect(
-            0,
-            iconSize.iHeight - BatteryStrengthIconHeight( iBatteryStrength ),
-            iconSize.iWidth,
-            iconSize.iHeight );
-
-        // Draw the icon, with correct battery strength
-        iBatteryStrengthIcon->DrawPartial( 
-            aGc,
-            iBatteryStrengthIcon->LayoutRect(),
-            strengthIconCropRect );
-        }
-
-    if( iBatteryIcon )
-        {
-        iBatteryIcon->Draw( aGc );
-        }    
+    iBatteryIcons[ iBatteryStrength ]->Draw( aGc );
     }       
 
 // ---------------------------------------------------------------------------
@@ -230,30 +211,12 @@
 
 
 // ---------------------------------------------------------------------------
-// CCamBatteryPaneDrawer::BatteryStrengthIconHeight
-// ---------------------------------------------------------------------------    
-//
-TInt CCamBatteryPaneDrawer::BatteryStrengthIconHeight( TInt aLevel ) const
-    {
-    TInt cellHeight = KCamDefaultBatteryCellHeight;
-    if ( iBatteryStrengthIcon )
-        {
-        cellHeight = iBatteryStrengthIcon->BitmapSize().iHeight /
-            KMaxBatteryStrength;
-        }
-    return ( aLevel * cellHeight ) + KCamDefaultBatteryCellMargin;
-    }
-
-// ---------------------------------------------------------------------------
 // CCamBatteryPaneDrawer::DeleteIcons
 // ---------------------------------------------------------------------------
 //
 void CCamBatteryPaneDrawer::DeleteIcons()
     {
-    delete iBatteryIcon;
-    iBatteryIcon = NULL;
-    delete iBatteryStrengthIcon;
-    iBatteryStrengthIcon = NULL;
+    iBatteryIcons.ResetAndDestroy();
     }
 
 // ---------------------------------------------------------------------------
@@ -293,19 +256,11 @@
     batteryPane.LayoutRect( indicatorsPane.Rect(),
         AknLayoutScalable_Apps::cam6_battery_pane( cba ) );
     iRect = batteryPane.Rect();
-
-    // Battery icon
-    if ( iBatteryIcon )
+	
+    TInt batteryIconsCount = iBatteryIcons.Count();
+    for( TInt index = 0; index < batteryIconsCount; index++ )
         {
-        iBatteryIcon->SetLayoutL( iRect,
-            AknLayoutScalable_Apps::cam6_battery_pane_g1( cba ));
-        }
-
-    // Battery strength icon    
-    if ( iBatteryStrengthIcon )
-        {
-        iBatteryStrengthIcon->SetLayoutL( iRect,
-            AknLayoutScalable_Apps::cam6_battery_pane_g2( cba ));
+        iBatteryIcons[index]->SetLayoutL( iRect );
         }
     }
 
@@ -326,19 +281,12 @@
         AknLayoutScalable_Apps::cam4_battery_pane( var ).LayoutLine() );
     iRect = batteryPane.Rect();
 
-    // Battery icon
-    if ( iBatteryIcon )
+    TInt batteryIconsCount = iBatteryIcons.Count();
+    for( TInt index = 0; index < batteryIconsCount; index++ )
         {
-        iBatteryIcon->SetLayoutL( iRect,
-            AknLayoutScalable_Apps::cam4_battery_pane_g2( var ).LayoutLine() );
+        iBatteryIcons[index]->SetLayoutL( iRect );
         }
-
-    // Battery strength icon    
-    if ( iBatteryStrengthIcon )
-        {
-        iBatteryStrengthIcon->SetLayoutL( iRect,
-            AknLayoutScalable_Apps::cam4_battery_pane_g1( var ).LayoutLine() );
-        }
+    
     }
 
 // End of file
--- a/camerauis/cameraapp/generic/src/camcapturebuttoncontainer.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/camcapturebuttoncontainer.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -32,7 +32,7 @@
 const TUint32 KToolbarExtensionBgColor = 0x00000000;
 const TInt KToolBarExtensionBgAlpha = 0x7F;
 const TInt KCaptureButtonOrdinalPriority( 1 );
-
+const TSize KIconMargin( 7, 7 );
 
 // -----------------------------------------------------------------------------
 // CCamCaptureButtonContainer::CCamCaptureButtonContainer
@@ -65,22 +65,41 @@
     CCamAppUi* appUi = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() );
 
     // Load capture icon
-    TInt bitmapId = EMbmCameraappQgn_indi_cam4_capture;
-    TInt maskId   = EMbmCameraappQgn_indi_cam4_capture_mask;
+    TInt bitmapId = EMbmCameraappQgn_indi_cam4_capture_image;
+    TInt maskId   = EMbmCameraappQgn_indi_cam4_capture_image_mask;
+    TInt bitmapPressedId = EMbmCameraappQgn_indi_cam4_capture_image_pressed;
+    TInt maskPressedId = EMbmCameraappQgn_indi_cam4_capture_image_pressed_mask;
+
     if ( iCameraMode == ECamControllerVideo )
         {
-        bitmapId = EMbmCameraappQgn_indi_cam4_video;
-        maskId   = EMbmCameraappQgn_indi_cam4_video_mask;
+        bitmapId = EMbmCameraappQgn_indi_cam4_capture_video;
+        maskId   = EMbmCameraappQgn_indi_cam4_capture_video_mask;
+        bitmapPressedId = EMbmCameraappQgn_indi_cam4_capture_video_pressed;
+        maskPressedId = EMbmCameraappQgn_indi_cam4_capture_video_pressed_mask;
         }
+    
+    iCaptureRect = aRect;
+    iCaptureRect.Move(-iCaptureRect.iTl.iX, -iCaptureRect.iTl.iY );
+    iCaptureRect.Shrink( KIconMargin );
+    
     AknIconUtils::CreateIconL(
              iCaptureIcon,
-             iCaptureMask,
+             iCaptureIconMask,
              KCamBitmapFile(),
              bitmapId,
              maskId );
-    AknIconUtils::SetSize( iCaptureIcon, KIconSize, EAspectRatioPreserved );
+    AknIconUtils::SetSize( iCaptureIcon, iCaptureRect.Size() );
+    AknIconUtils::SetSize( iCaptureIconMask, iCaptureRect.Size() );
     
-    iCaptureRect = aRect;
+    AknIconUtils::CreateIconL(
+                 iCaptureIconPressed,
+                 iCaptureIconPressedMask,
+                 KCamBitmapFile(),
+                 bitmapPressedId,
+                 maskPressedId );
+    AknIconUtils::SetSize( iCaptureIconPressed, iCaptureRect.Size() );
+    AknIconUtils::SetSize( iCaptureIconPressedMask, iCaptureRect.Size() );
+    
     iFeedback = MTouchFeedback::Instance();
     PRINT( _L("Camera <= CCamCaptureButtonContainer::ConstructL") );
     }
@@ -92,7 +111,9 @@
 CCamCaptureButtonContainer::~CCamCaptureButtonContainer()
     {
     delete iCaptureIcon;
-    delete iCaptureMask;
+    delete iCaptureIconMask;
+    delete iCaptureIconPressed;
+    delete iCaptureIconPressedMask;
     }
 
 // -----------------------------------------------------------------------------
@@ -266,31 +287,18 @@
 void CCamCaptureButtonContainer::DrawCaptureButton( CBitmapContext& aGc ) const
     {
     PRINT( _L("Camera => CCamCaptureButtonContainer::DrawCaptureButton") );
+    TRect boundingRect( iCaptureRect );
+    boundingRect.Move( -boundingRect.iTl.iX, -boundingRect.iTl.iY );
 
-    TRect boundingRect( iCaptureRect );
-    boundingRect.Move( -iCaptureRect.iTl.iX, -iCaptureRect.iTl.iY );
-    boundingRect.Shrink( KAdditionalArea );
-    
-    TPoint iconTl( boundingRect.iTl.iX + KCaptureIconDelta, 
-                   boundingRect.iTl.iY + KCaptureIconDelta );
-
-    aGc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha );
-    aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-    aGc.SetPenStyle( CGraphicsContext::ENullPen );
     if ( iCaptureButtonPressed )
         {
-        aGc.SetBrushColor( KRgbBlack );
+        aGc.BitBltMasked( iCaptureRect.iTl, iCaptureIconPressed, boundingRect, iCaptureIconPressedMask, EFalse );
         }
     else
         {
-        aGc.SetBrushColor( TRgb( KToolbarExtensionBgColor, KToolBarExtensionBgAlpha ) );
-        }
-    aGc.DrawEllipse( boundingRect );
+        aGc.BitBltMasked( iCaptureRect.iTl, iCaptureIcon, boundingRect, iCaptureIconMask, EFalse );
 
-    TRect iconRect( KIconSize );
-    aGc.SetPenStyle( CGraphicsContext::ESolidPen );
-    aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
-    aGc.BitBltMasked( iconTl, iCaptureIcon, iconRect, iCaptureMask, EFalse );
+        }
 
     PRINT( _L("Camera <= CCamCaptureButtonContainer::DrawCaptureButton") );
     }
--- a/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -2918,14 +2918,12 @@
 
               OstTrace0( CAMERAAPP_PERFORMANCE, CCAMCAMERACONTROLLER_PROCESSVFSTARTREQUESTL, "e_CAM_APP_VF_INIT 0" ); //CCORAPP_APP_VF_INIT_END
 
-              TInt orgPos = SetVfWindowOrdinal(); // Set visible
               iCamera->StartViewFinderDirectL(
                   env->WsSession(),
                   *env->ScreenDevice(),
                   *iViewfinderWindow,
                   params().iRect );
-              (void) SetVfWindowOrdinal( orgPos ); // back to original
-
+              
               if ( appUi && ECamActiveCameraSecondary == appUi->ActiveCamera() )
                   {
                   iCamera->SetViewFinderMirrorL(ETrue);
@@ -6502,13 +6500,12 @@
             
             CEikonEnv* env = CEikonEnv::Static();
     
-              TInt orgPos = SetVfWindowOrdinal(); // Set visible
-              iCamera->StartViewFinderDirectL(
+            iCamera->StartViewFinderDirectL(
                   env->WsSession(),
                   *env->ScreenDevice(),
                   *iViewfinderWindow,
                   params().iRect );
-              (void) SetVfWindowOrdinal( orgPos ); // back to original
+              
             }
         else
             {
--- a/camerauis/cameraapp/generic/src/camtvaccessorymonitor.cpp	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/generic/src/camtvaccessorymonitor.cpp	Thu Aug 19 09:36:57 2010 +0300
@@ -15,7 +15,7 @@
 */
 
 #include <eikenv.h>
-#include <AccPolGenericIdDefinitions.h>
+#include <accpolgenericiddefinitions.h> 
 #include <AccPolSubblockNameArray.h>
 
 #include "camtvaccessorymonitor.h"
Binary file camerauis/cameraapp/help/data/xhtml.zip has changed
--- a/camerauis/cameraapp/loc/cam.loc	Thu Jul 15 18:18:07 2010 +0300
+++ b/camerauis/cameraapp/loc/cam.loc	Thu Aug 19 09:36:57 2010 +0300
@@ -845,27 +845,27 @@
 
 //d:Item text for flash auto value
 //d:Visible in set_up lists
-//l:main_cam5_pane_t1
+//l:cset_list_set_pane_t1
 //
 #define qtn_lcam_set_auto                 "Automatic"
 
 //d:Item text for flash forced value
 //d:Visible in set_up lists
-//l:main_cam5_pane_t1
+//l:cset_list_set_pane_t1
 //
 #define qtn_lcam_set_force                 "On"
 
 //d:Item text for flash off value
 //d:Visible in set_up lists
-//l:main_cam5_pane_t1
+//l:cset_list_set_pane_t1
 //
 #define qtn_lcam_set_flash_off                    "Off"
 
 //d:Item text for flash redeye reduction value
 //d:Visible in set_up lists
-//l:main_cam5_pane_t1
-//
-#define qtn_lcam_set_redeye                    "Red eye redu."
+//l:cset_list_set_pane_t1
+//
+#define qtn_lcam_set_redeye                    "Red eye reduction"
 
 //----------------------------------------------------
 
@@ -4278,6 +4278,94 @@
 //l: cell_tb_ext_pane_t1/opt1
 #define qtn_lcam_tb_switch "Switch"
 
+//d: Options menu item for accessing the Photo editor
+//d: Visible in options menu of still post capture view
+//l: list_single_pane_t1_cp2
+#define qtn_options_image_editor "Image Editor"
+
+//d: Options menu item for accessing the Video editor
+//d: Visible in options menu of video post capture view
+//l: list_single_pane_t1_cp2
+#define qtn_options_video_editor "Video Editor"
+
+//d: Title string of Low FPS video recording note
+//d: Visible in discreet popup during low fps video recording
+//l: popup_discreet_window_t1
+#define qtn_lcam_note_low_fps "Low FPS detected"
+
+//d: Body string of Low FPS video recording note
+//d: Visible in discreet popup during low fps video recording
+//l: popup_discreet_window_t2
+#define qtn_lcam_note_low_fps_help_link "See help"
+
+//d: Description string for close up video shooting mode
+//d: Visible in video scene mode summary
+//l: popup_preview_text_window/opt5
+#define qtn_lcam_scene_vid_close_up_ex "Ideal for filming small objects between 10 and 60 cm"
+
+//d: Description string for strong backlight video shooting mode
+//d: Visible in video scene mode summary
+//l: popup_preview_text_window/opt5
+#define qtn_lcam_scene_vid_backlight_ex "Ideal when capturing subjects with strong backlight"
+
+//d: Description string for concert video shooting mode
+//d: Visible in video scene mode summary
+//l: popup_preview_text_window/opt5
+#define qtn_lcam_scene_vid_concert_ex "Ideal when capturing live concert on stage"
+
+//d: Backlight list item in video scene view
+//d: Visible in video scene mode list box
+//l: list_set_graphic_pane_t1
+#define qtn_lcam_scene_vid_backlight "Backlight"
+
+//d: Concert list item in video scene view
+//d: Visible in video scene mode list box
+//l: list_set_graphic_pane_t1
+#define qtn_lcam_scene_vid_concert "Concert"
+
+//d: Confirmation note shown when the user adds one item to an album 
+//l: popup_note_window
+#define qtn_lcam_note_added_one_item_album              "Added"
+
+//d:Video quality setting description
+//d:Visible in video quality slider control.
+//l: main_cam5_pane_t4/opt1
+#define qtn_lcam_descr_quality_highdefinition_30fps "Best quality for playback on high-definition televisions. 30fps HD 1280x720."
+
+//d:Video quality setting description
+//d:Visible in video quality slider control.
+//l: main_cam5_pane_t4/opt1
+#define qtn_lcam_descr_quality_highdefinition_reduced "For playback on high definition displays, with reduced storage memory consumption"
+
+//d:Video quality setting description
+//d:Visible in video quality slider control.
+//l: main_cam5_pane_t4/opt1
+#define qtn_lcam_descr_quality_widescreen_wvga "High quality for playback in 16:9 aspect ratio"
+
+//d: Settings list item body text
+//l: list_set_graphic_pane_t1
+#define qtn_lcam_set_type_highdefinition_reduced "High definition, reduced storage requirements"
+
+//d: Settings list item body text
+//l: list_set_graphic_pane_t1
+#define qtn_lcam_set_type_widescreen_wvga "Widescreen high quality"
+
+//d: Settings list item header
+//l: list_setting_pane_t1
+#define qtn_lcam_sett_startup_mode "Start-up mode"
+
+//d: Settings list item body text
+//l: list_set_graphic_pane_t1
+#define qtn_lcam_set_startup_mode_still "Still image"
+
+//d: Settings list item body text
+//l: list_set_graphic_pane_t1
+#define qtn_lcam_set_startup_mode_video "Video"
+
+//d: Settings list item body text
+//l: list_set_graphic_pane_t1
+#define qtn_lcam_set_startup_mode_memorized "Memorized"
+
 
 // end of file