idlefw/plugins/mcsplugin/settings/src/mcspluginsettingsbkmlist.cpp
branchRCL_3
changeset 64 b276298d5729
parent 51 15e4dd19031c
--- a/idlefw/plugins/mcsplugin/settings/src/mcspluginsettingsbkmlist.cpp	Wed Apr 14 16:16:44 2010 +0300
+++ b/idlefw/plugins/mcsplugin/settings/src/mcspluginsettingsbkmlist.cpp	Tue Apr 27 16:57:49 2010 +0300
@@ -181,7 +181,6 @@
 //
 void CMCSPluginSettingsBkmList::GetBookmarksFromMCSL()
     {
-    TBool exists( EFalse );
     CMenuFilter* filter = CMenuFilter::NewL();
     CleanupStack::PushL( filter );
     filter->SetType( KMenuUrl );
@@ -192,17 +191,20 @@
     TInt count( itemArray.Count() );
     for ( TInt i = 0; i < count; i++ )
         {
+        TBool uidExists( EFalse );
+        TBool nameExists( EFalse );
+        TBool urlExists( EFalse );
         CMenuItem* menuItem = CMenuItem::OpenL( iMenu, itemArray[i] );
         CleanupStack::PushL( menuItem );
-        TPtrC uid = menuItem->GetAttributeL( KMenuAttrUid, exists );
-        TPtrC name = menuItem->GetAttributeL( KMenuAttrLongName, exists );
-        TPtrC url = menuItem->GetAttributeL( KUrl, exists );
-        // if exists, add it
-        if ( exists )
+        TPtrC uid = menuItem->GetAttributeL( KMenuAttrUid, uidExists );
+        TPtrC name = menuItem->GetAttributeL( KMenuAttrLongName, nameExists );
+        TPtrC url = menuItem->GetAttributeL( KUrl, urlExists );
+        // if all attrib exists, add it ( url ignored )
+        if ( uidExists && uid.Length() > 0 && 
+            nameExists && name.Length() > 0 )
             {
             AddBookmarkL( uid, name, url, EMCSBookmark );
             }
-
         CleanupStack::PopAndDestroy( menuItem );
         }
 
@@ -216,7 +218,7 @@
 // If predefined bookmark was selected, MCS menu item is retrieved
 // ---------------------------------------------------------------------------
 //
-CMenuItem& CMCSPluginSettingsBkmList::ItemL( TInt aIndex )
+CMenuItem* CMCSPluginSettingsBkmList::ItemL( TInt aIndex )
     {
     CMenuItem* menuItem( NULL );
     CBkmListItem* listItem = iListItems[aIndex];
@@ -228,7 +230,7 @@
         {
         menuItem = MCSMenuItemL( *listItem->iUid, *listItem->iCaption, *listItem->iUrl );
         }
-    return *menuItem;
+    return menuItem;
     }
 
 // ---------------------------------------------------------------------------
@@ -275,9 +277,12 @@
     if( itemArray.Count() > 0 )
         {
         item = CMenuItem::OpenL( iMenu, itemArray[0] );
-        CleanupStack::PushL( item );
-        iMenuItems.AppendL( item );
-        CleanupStack::Pop( item );
+        if ( item )
+            {
+            CleanupStack::PushL( item );
+            iMenuItems.AppendL( item );
+            CleanupStack::Pop( item );
+            }
         }
     CleanupStack::PopAndDestroy( &itemArray );
     CleanupStack::PopAndDestroy( filter );
@@ -300,6 +305,11 @@
         {
         listItem->iUrl = aUrl.AllocL();
         }
+    else
+        {
+        listItem->iUrl = KNullDesC().AllocL();
+        }
+
     TLinearOrder<CBkmListItem> sortMethod(CBkmListItem::CompareCaption);
     User::LeaveIfError(iListItems.InsertInOrderAllowRepeats(listItem, sortMethod));
     CleanupStack::Pop(listItem);