--- a/commsconfig/cscsettingsui/src/cscsettingsuimainview.cpp Fri Feb 19 22:44:34 2010 +0200
+++ b/commsconfig/cscsettingsui/src/cscsettingsuimainview.cpp Fri Mar 12 15:42:09 2010 +0200
@@ -81,6 +81,7 @@
iTitlePane = static_cast<CAknTitlePane*>
( statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
+ iImToneSelectionListOpen = EFalse;
CSCSETUIDEBUG( "CCSCSettingsUiMainView::ConstructL - end" );
}
@@ -670,51 +671,60 @@
// ---------------------------------------------------------------------------
void CCSCSettingsUiMainView::ShowImToneSelectionListL()
{
- CMediaFileList* list = CMediaFileList::NewL();
- CleanupStack::PushL( list );
-
- HBufC* popupTitle = StringLoader::LoadLC(
- R_CSCSETTINGSUI_IM_TONE_POPUP_HEADING );
-
- HBufC* noTone = StringLoader::LoadLC(
- R_CSCSETTINGSUI_NO_IM_TONE_TEXT );
-
- list->SetAttrL(
- CMediaFileList::EAttrAutomatedType,
- CDRMHelper::EAutomatedTypeIMAlert );
-
- list->SetNullItemL(
- *noTone,
- KNullDesC,
- CMediaFileList::EMediaFileTypeAudio,
- CMediaFileList::ENullItemIconOff );
+ CSCSETUIDEBUG( "CCSCSettingsUiMainView::ShowImToneSelectionListL - begin" );
- list->SetAttrL( CMediaFileList::EAttrTitle, *popupTitle );
-
- TBuf<KCSCMaxImToneLength> toneName;
- TInt nullItem = KErrNotFound;
-
- TBool result = list->ShowMediaFileListL(
- &toneName, &nullItem , NULL, NULL );
-
- CleanupStack::PopAndDestroy( noTone );
- CleanupStack::PopAndDestroy( popupTitle );
- CleanupStack::PopAndDestroy( list );
-
- if ( result )
+ if ( !iImToneSelectionListOpen )
{
- iContainer->SaveImTonePathL( toneName );
- }
- else if( KErrNotFound != nullItem )
- {
- iContainer->SaveImTonePathL( KNullDesC );
- }
- else
- {
- // do nothing
+ iImToneSelectionListOpen = ETrue;
+ CMediaFileList* list = CMediaFileList::NewL();
+ CleanupStack::PushL( list );
+
+ HBufC* popupTitle = StringLoader::LoadLC(
+ R_CSCSETTINGSUI_IM_TONE_POPUP_HEADING );
+
+ HBufC* noTone = StringLoader::LoadLC(
+ R_CSCSETTINGSUI_NO_IM_TONE_TEXT );
+
+ list->SetAttrL(
+ CMediaFileList::EAttrAutomatedType,
+ CDRMHelper::EAutomatedTypeIMAlert );
+
+ list->SetNullItemL(
+ *noTone,
+ KNullDesC,
+ CMediaFileList::EMediaFileTypeAudio,
+ CMediaFileList::ENullItemIconOff );
+
+ list->SetAttrL( CMediaFileList::EAttrTitle, *popupTitle );
+
+ TBuf<KCSCMaxImToneLength> toneName;
+ TInt nullItem = KErrNotFound;
+
+ TBool result = list->ShowMediaFileListL(
+ &toneName, &nullItem , NULL, NULL );
+
+ CleanupStack::PopAndDestroy( noTone );
+ CleanupStack::PopAndDestroy( popupTitle );
+ CleanupStack::PopAndDestroy( list );
+
+ if ( result )
+ {
+ iContainer->SaveImTonePathL( toneName );
+ }
+ else if( KErrNotFound != nullItem )
+ {
+ iContainer->SaveImTonePathL( KNullDesC );
+ }
+ else
+ {
+ // do nothing
+ }
+
+ iContainer->UpdateContainerL();
+ iImToneSelectionListOpen = EFalse;
}
- iContainer->UpdateContainerL();
+ CSCSETUIDEBUG( "CCSCSettingsUiMainView::ShowImToneSelectionListL - end" );
}