--- a/menufw/menufwui/mmwidgets/src/mmcacheforitem.cpp Fri Jan 22 09:35:14 2010 +0200
+++ b/menufw/menufwui/mmwidgets/src/mmcacheforitem.cpp Tue Jan 26 11:48:23 2010 +0200
@@ -21,6 +21,7 @@
#include "hniconholder.h"
const TInt KIconHolderListGranularity = 2;
+const TInt KIconListGranularity = 2;
// -----------------------------------------------------------------------------
//
@@ -54,6 +55,7 @@
ClearIconArray();
iIconHolderList.Close();
iItemText.Close();
+ delete iIconList;
}
// -----------------------------------------------------------------------------
@@ -82,19 +84,7 @@
CArrayPtr<CGulIcon>* CMmCacheForItem::GetIconListL()
{
__ASSERT_DEBUG( iIsValid, User::Invariant() );
-
- const TInt iconCount = iIconHolderList.Count();
- CArrayPtr<CGulIcon>* iconList = new (ELeave) CArrayPtrFlat<CGulIcon>(
- Max( iconCount, 1 ) );
- CleanupStack::PushL( iconList );
-
- for ( TInt i = 0; i < iconCount; ++i )
- {
- iconList->AppendL( iIconHolderList[i]->GetGulIcon() );
- }
-
- CleanupStack::Pop( iconList );
- return iconList;
+ return iIconList;
}
// -----------------------------------------------------------------------------
@@ -121,6 +111,7 @@
//
void CMmCacheForItem::ClearIconArray()
{
+ iIconList->Reset();
const TInt count = iIconHolderList.Count();
for (TInt i = 0; i < count; ++i )
{
@@ -142,7 +133,7 @@
if ( iSubcellsSetupCode != aSubcellsSetupCode ||
(!!iIsCurrent) != (!!aIsItemCurrent) )
{
- iIsValid = EFalse;
+ SetValidL( EFalse );
}
}
@@ -160,5 +151,20 @@
// -----------------------------------------------------------------------------
//
void CMmCacheForItem::ConstructL()
- {
+ {
+ iIconList = new ( ELeave ) CArrayPtrFlat<CGulIcon>( KIconListGranularity );
}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMmCacheForItem::UpdateIconListL()
+ {
+ iIconList->Reset();
+ const TInt iconCount = iIconHolderList.Count();
+ for ( TInt i = 0; i < iconCount; ++i )
+ {
+ iIconList->AppendL( iIconHolderList[i]->GetGulIcon() );
+ }
+ }