camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp
branchRCL_3
changeset 16 d486e5e3cc9a
parent 11 792dfc98fb3b
child 20 38fb6f7eacd5
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp	Mon Mar 15 12:39:00 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.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"
@@ -227,20 +228,27 @@
             {
             // Convert the setting to a memory enum
             iMemVal = static_cast<DriveInfo::TDefaultDrives>
-                    ( CamUtility::MapToSettingsListMemory( 
-                                  iSettings[lastItem]->iValueId ) );
-
-            __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);
-
-		    settingItem = new ( ELeave ) 
-		                  CAknMemorySelectionSettingItemMultiDrive( aIdentifier, 
-                                                                    iDrive );
+                                ( CamUtility::MapToSettingsListMemory( valueId ) );
+            
+            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
+                                                              );
+            static_cast<CAknMemorySelectionSettingItemMultiDrive*>(settingItem)
+                                            ->SetIncludedMediasL(includedMedias);
             break;
             }
         case ECamSettingItemVideoNameBaseType:
@@ -343,6 +351,9 @@
         {
         iMemVal = static_cast<DriveInfo::TDefaultDrives>(CamUtility::GetDriveTypeFromDriveNumber( iDrive ));
         settingValue = CamUtility::MapFromSettingsListMemory( iMemVal );
+        settingValue = ( (settingValue == ECamMediaStoragePhone) && 
+                         parent->IntegerSettingValue(ECamSettingItemRemovePhoneMemoryUsage)  )?
+                                 ECamMediaStorageNone:settingValue;
         //__ASSERT_DEBUG( settingValue != KErrNotFound, CamPanic( ECamPanicUnknownSettingItem ) );
         }
     else if ( editedItem->Identifier() == ECamSettingItemVideoQuality )