camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsList.cpp
branchRCL_3
changeset 11 d486e5e3cc9a
parent 9 792dfc98fb3b
child 13 38fb6f7eacd5
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsList.cpp	Mon Mar 15 12:39:00 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsList.cpp	Wed Mar 31 21:06:44 2010 +0300
@@ -27,6 +27,7 @@
 #include <AknWaitDialog.h>
 #include <CAknMemorySelectionSettingItemMultiDrive.h>
 #include <driveinfo.h> // DriveInfo
+#include <AknCommonDialogsDynMem.h>
 
 #include "GSCamcorderPlugin.hrh"
 #include "Cam.hrh"
@@ -46,6 +47,7 @@
 #include "CamWaitDialog.h"
 #include "CamLocationSettingItem.h"
 #include "camconfiguration.h"
+#include "GSCamCaptureToneSettingItem.h"
 
 // ========================= MEMBER FUNCTIONS ================================
 
@@ -201,7 +203,7 @@
      case ECamSettingItemPhotoCaptureTone:
             {
             settingItem = new( ELeave ) 
-                CAknEnumeratedTextPopupSettingItem( aIdentifier, valueId );
+                CGSCamCaptureToneSettingItem( aIdentifier, valueId );    
             }
             break;
 
@@ -227,18 +229,27 @@
             // Convert the setting to a memory enum
             iMemVal = static_cast<DriveInfo::TDefaultDrives>
                     ( CamUtility::MapToSettingsListMemory( valueId ) );
-            __ASSERT_DEBUG( iMemVal != KErrNotFound,
-                            CamPanic( ECamPanicUnhandledCreateSettingItem ) );
-
+            
 		    // Get the root path of the default mass storage memory.
-		    TInt driveInt;
-		    TInt err = DriveInfo::GetDefaultDrive( iMemVal, driveInt );
-		    iDrive = static_cast<TDriveNumber>(driveInt);
-
+		    if(iMemVal != KErrNotFound)
+		        {
+                TInt driveInt;
+		        TInt err = DriveInfo::GetDefaultDrive( iMemVal, driveInt );
+		        iDrive = static_cast<TDriveNumber>(driveInt);
+		        }
+		    else
+		        {
+                iDrive = static_cast<TDriveNumber>(0); //Doesn't matter
+		        }
+		    TInt includedMedias = AknCommonDialogsDynMem::EMemoryTypeMMCExternal |
+                                 AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage;   
 		    settingItem = new ( ELeave ) 
 		                  CAknMemorySelectionSettingItemMultiDrive(
 		                                                      aIdentifier,
-                                                              iDrive );
+                                                              iDrive
+                                                              );
+		    static_cast<CAknMemorySelectionSettingItemMultiDrive*>(settingItem)
+		                        ->SetIncludedMediasL(includedMedias);
             }
             break;
  
@@ -329,6 +340,9 @@
         {
         iMemVal = static_cast<DriveInfo::TDefaultDrives>(CamUtility::GetDriveTypeFromDriveNumber( iDrive ));
         settingValue = CamUtility::MapFromSettingsListMemory( iMemVal );
+        settingValue = ( (settingValue == ECamMediaStoragePhone) && 
+                         parent->IntegerSettingValue(ECamSettingItemRemovePhoneMemoryUsage)  )?
+                                 ECamMediaStorageNone:settingValue;
         }
     else if ( editedItem->Identifier() == ECamSettingItemPhotoQuality )
         {