phonebookui/Phonebook2/UIControls/src/CPbk2SettingsListControl.cpp
branchRCL_3
changeset 58 d4f567ce2e7c
parent 0 e686773b3f54
child 64 c1e8ba0c2b16
--- a/phonebookui/Phonebook2/UIControls/src/CPbk2SettingsListControl.cpp	Thu Jul 15 18:22:55 2010 +0300
+++ b/phonebookui/Phonebook2/UIControls/src/CPbk2SettingsListControl.cpp	Thu Aug 19 09:41:07 2010 +0300
@@ -38,6 +38,8 @@
 #include <centralrepository.h>
 #include <featmgr.h>
 #include <AknFepInternalCRKeys.h>
+#include <akncheckboxsettingpage.h>
+#include <sysutil.h>
 
 //Pbk2Debug
 #include "Pbk2Debug.h"
@@ -309,6 +311,26 @@
         //Edit selection setting item 
         //result is ETrue if OK pressed
         result = iSelectionSettingItem->EditItemL();
+        
+        TBool driveSpaceFull( EFalse );
+        driveSpaceFull = SysUtil::FFSSpaceBelowCriticalLevelL( &CCoeEnv::Static()->FsSession() );
+        if ( driveSpaceFull )
+            {
+            //If the disk is full, a write operation cannot complete. So restore 
+            //the previous state.
+            iEikonEnv->HandleError(KErrDiskFull);
+            CSelectionItemList& oldItem( iSettingListState->ItemListState() );
+            CSelectionItemList& item( iSettingListState->SelectionItemList() );
+            TInt count = item.Count();
+            for ( TInt i(0); i < count; ++i )
+                {
+                TBool select = oldItem.At(i)->SelectionStatus();
+                item.At(i)->SetSelectionStatus( select );
+                }
+            iSelectionSettingItem->RestoreStateL();
+            result = EFalse;
+            }
+        
         if ( result )
             {
             //Is selection setting list changed by user