diff -r 2666d9724c76 -r d4f567ce2e7c phonebookui/Phonebook2/UIControls/src/CPbk2SettingsListControl.cpp --- 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 #include #include +#include +#include //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