Revision: 201001
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 18 Jan 2010 20:19:20 +0200
changeset 2 7d9067c6fcb1
parent 1 9ba538e329bd
child 3 9a9c174934f5
Revision: 201001 Kit: 201003
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsidlist.h
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp
photosgallery/collectionframework/plugins/glxcollectionpluginmonths/inc/glxcollectionpluginmonths.h
photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp
photosgallery/commonui/bwins/glxcommonuiu.def
photosgallery/commonui/eabi/glxcommonuiu.def
photosgallery/commonui/inc/glxnavigationalstate.h
photosgallery/commonui/src/glxnavigationalstate.cpp
photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginalbums.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginall.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginbase.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginmonths.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugintags.h
photosgallery/contentharvesterplugin/inc/glxmapconstants.h
photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginalbums.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginall.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginbase.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterplugincaptured.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterplugindownloads.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginmonths.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterplugintags.cpp
photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp
photosgallery/gallery/group/glx_reg.rss
photosgallery/gallery/inc/glxappui.h
photosgallery/gallery/sis/glxgallery.pkg
photosgallery/gallery/src/glxappui.cpp
photosgallery/group/bld.inf
photosgallery/photossuitelauncher/data/photossuitelauncher.rss
photosgallery/photossuitelauncher/data/photossuitelauncher_reg.rss
photosgallery/photossuitelauncher/group/bld.inf
photosgallery/photossuitelauncher/group/photossuitelauncher.mmp
photosgallery/photossuitelauncher/inc/photossuitelauncher.hrh
photosgallery/photossuitelauncher/sis/backup_registration.xml
photosgallery/photossuitelauncher/sis/createsis.bat
photosgallery/photossuitelauncher/sis/photossuitelauncher.pkg
photosgallery/photossuitelauncher/sis/photossuitelauncher.sis
photosgallery/photossuitelauncher/sis/photossuitelauncher.sisx
photosgallery/photossuitelauncher/sis/rd-key.pem
photosgallery/photossuitelauncher/sis/rd.cer
photosgallery/photossuitelauncher/src/photossuitelauncher.cpp
photosgallery/rom/glxgallery.iby
photosgallery/rom/glxgallery_resources.iby
photosgallery/slideshow/engine/tsrc/t_cshwdefaulteffectmanager/t_cshwdefaulteffectmanager.cpp
photosgallery/slideshow/settingsdialog/data/shwsettingsdialog.rss
photosgallery/slideshow/settingsdialog/inc/shwslideshowsettings.hrh
photosgallery/slideshow/settingsdialog/src/shwslideshowsettingsdialog.cpp
photosgallery/slideshow/view/src/shwslideshowview.cpp
photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp
photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/group/bld.inf
photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/eabi/t_glxcommandhandlercopytohomenetworku.def
photosgallery/viewframework/commandhandlers/commoncommandhandlers/bwins/glxcommoncommandhandlersu.def
photosgallery/viewframework/commandhandlers/commoncommandhandlers/eabi/glxcommoncommandhandlersu.def
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersave.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdownload.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersave.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlervideoplayback.cpp
photosgallery/viewframework/commandhandlers/tsrc/group/bld.inf
photosgallery/viewframework/dataprovider/src/glxpreviewthumbnailbinding.cpp
photosgallery/viewframework/medialists/eabi/glxmedialistsu.def
photosgallery/viewframework/medialists/inc/glxcachemanager.h
photosgallery/viewframework/medialists/inc/glximagereader.h
photosgallery/viewframework/medialists/src/glxcachemanager.cpp
photosgallery/viewframework/medialists/src/glximagereader.cpp
photosgallery/viewframework/medialists/tsrc/eabi/t_cglxcacheu.def
photosgallery/viewframework/medialists/tsrc/eabi/t_cglxgarbagecollectoru.def
photosgallery/viewframework/medialists/tsrc/eabi/t_glxlistwindowu.def
photosgallery/viewframework/medialists/tsrc/eabi/t_tglxexclusioniteratoru.def
photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxattributecontextu.def
photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxitemlistu.def
photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxnavigablelistu.def
photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxstaticitemlistu.def
photosgallery/viewframework/medialists/tsrc/eabi/ut_glxerrormanageru.def
photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp
photosgallery/viewframework/plugins/gridviewplugin/data/glxgridviewdata.rss
photosgallery/viewframework/plugins/gridviewplugin/src/glxmaingridviewplugin.cpp
photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp
photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp
photosgallery/viewframework/views/cloudview/group/glxcloudview.mmp
photosgallery/viewframework/views/cloudview/inc/glxcloudviewcontrol.h
photosgallery/viewframework/views/cloudview/src/glxcloudviewcontrol.cpp
photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h
photosgallery/viewframework/views/fullscreenview/inc/glxsinglelinemetapanecontrol.h
photosgallery/viewframework/views/fullscreenview/inc/glxslmpfavmlobserver.h
photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp
photosgallery/viewframework/views/fullscreenview/src/glxsinglelinemetapanecontrol.cpp
photosgallery/viewframework/views/fullscreenview/src/glxslmpfavmlobserver.cpp
photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h
photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h
photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp
photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp
photosgallery/viewframework/views/listview/inc/glxlistviewimp.h
photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h
photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp
photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp
photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatadialog.cpp
photosgallery/viewframework/views/metadatadialog/src/glxmetadatadialog.cpp
photosgallery/viewframework/views/viewbase/src/glxmedialistviewbase.cpp
photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsidlist.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsidlist.h	Mon Jan 18 20:19:20 2010 +0200
@@ -128,6 +128,10 @@
     
     void PostFilterL(const RArray<TGlxMediaId>& aFilteredList,
             const TGlxFilterProperties& aFilterProperties);                                                                            
+#ifdef _DEBUG
+    TTime iStartTime;
+    TTime iStopTime;
+#endif
 	};
 
 #endif // GLXDATASOURCETASKMDSIDLIST_H_
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -114,6 +114,9 @@
 void CGlxDataSourceTaskMdeIdList::ExecuteRequestL()
     {
     TRACER("CGlxDataSourceTaskMdeIdList::ExecuteRequestL()") 
+#ifdef _DEBUG
+    iStartTime.HomeTime(); 
+#endif    
     CGlxIdListRequest* request = static_cast<CGlxIdListRequest*>(iRequest);
     TGlxMediaId container = request->ContainerId();
     TGlxQueryType queryType = EIdListQuery;
@@ -207,6 +210,11 @@
     TRACER("CGlxDataSourceTaskMdeIdList::DoHandleQueryCompletedL()")
     __ASSERT_DEBUG(iQueryTypes[0] == EIdListQuery, Panic(EGlxPanicLogicError));
     DoHandleListQueryCompletedL();
+#ifdef _DEBUG
+    iStopTime.HomeTime(); 
+    GLX_DEBUG2("GlxDataSrcTaskMdeIdList:DoHandleQueryCompletedL() took %d us",
+                     (TInt)iStopTime.MicroSecondsFrom(iStartTime).Int64());
+#endif    
     }
 
 // ----------------------------------------------------------------------------
--- a/photosgallery/collectionframework/plugins/glxcollectionpluginmonths/inc/glxcollectionpluginmonths.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/collectionframework/plugins/glxcollectionpluginmonths/inc/glxcollectionpluginmonths.h	Mon Jan 18 20:19:20 2010 +0200
@@ -104,6 +104,37 @@
 	TBool IsUpdateMessageIgnored(CMPXMessage& aMessage);
 
     TGlxFilterProperties DefaultFilter(TInt aLevel);
+    
+private:
+    /**
+     * enum TMonthStringType
+     *
+     * This is mainly passed as a param to be used by the method 
+     * GetMonthNameAsStringLC().
+     * GetMonthNameAsStringLC() manipulates and returns the months name in 
+     * Title format or sub-title format based on this enum which is passed as 
+     * param.
+     */  
+    enum TMonthStringType
+        {
+        EMonthNameAsSubtitle, /// Month name is desired in sub-title format
+        EMonthNameAsTitle  /// Month name is desired in title format
+        };
+
+private:
+    /**
+     * Utility method to take a TMonth param, and convert it into a string. This
+     * string is returned to the calling method. The returned string can contain
+     * the month name in sub-title or title format. Subtitle format is used in 
+     * the list views to signify months ("Jan", "Feb", ... ). Title format is 
+     * used in mpnth-grid views to name the view ("January", "February", ...).     
+     *
+     * @param aMonth The month whose name is desired as a string.
+     * @param aStrType enum specified by calling method to tell how it wants the 
+     * month string to be.   
+     */  
+    HBufC* GetMonthNameAsStringLC( const TMonth& aMonth,
+            const TMonthStringType& aStrType);
     };
 
 #endif      // C_GLXCOLLECTIONPLUGINMONTHS_H
--- a/photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -58,6 +58,8 @@
 const TInt KDateFormat2 = 2;
 const TInt KDateFormat3 = 3;
 
+_LIT(KResourceFile, "z:glxpluginmonths.rsc");
+
 // ============================ LOCAL FUNCTIONS ==============================
     
 // ============================ MEMBER FUNCTIONS ==============================
@@ -259,8 +261,6 @@
     {
     TRACER("CGlxCollectionPluginMonths::HandleCpiAttributeResponseL");
     
-    _LIT(KResourceFile, "z:glxpluginmonths.rsc");
-
 	TInt count = aCpiAttributes.Count();
 	TLanguage lang;
     lang = User::Language();
@@ -357,70 +357,8 @@
                 	AknTextUtils::DisplayTextLanguageSpecificNumberConversion(yearTitle);
 					}
 
-                HBufC* monthTitle = NULL;
-                switch(start.DateTime().Month())
-                    {
-                    case EJanuary:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JAN);
-                        break;
-                        }
-                    case EFebruary:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_FEB);
-                        break;
-                        }
-                    case EMarch:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_MAR);
-                        break;
-                        }
-                    case EApril:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_APR);
-                        break;
-                        }
-                    case EMay:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_MAY);
-                        break;
-                        }
-                    case EJune:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JUN);
-                        break;
-                        }
-                    case EJuly:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JUL);
-                        break;
-                        }
-                    case EAugust:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_AUG);
-                        break;
-                        }
-                    case ESeptember:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_SEP);
-                        break;
-                        }
-                    case EOctober:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_OCT);
-                        break;
-                        }
-                    case ENovember:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_NOV);
-                        break;
-                        }
-                    case EDecember:
-                        {
-                        monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_DEC);
-                        break;
-                        }
-                    }
+                HBufC* monthTitle = GetMonthNameAsStringLC(
+                        start.DateTime().Month(), EMonthNameAsSubtitle );
                 TBuf<KYearBufferSize> yearTitle2;
                 end.FormatL(yearTitle2, KGlxTempMonthYearTitleFormat);
 
@@ -430,70 +368,8 @@
                 	AknTextUtils::DisplayTextLanguageSpecificNumberConversion(yearTitle2);
 					}
 
-                HBufC* monthTitle2 = NULL;
-                switch(end.DateTime().Month())
-                    {
-                    case EJanuary:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JAN);
-                        break;
-                        }
-                    case EFebruary:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_FEB);
-                        break;
-                        }
-                    case EMarch:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_MAR);
-                        break;
-                        }
-                    case EApril:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_APR);
-                        break;
-                        }
-                    case EMay:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_MAY);
-                        break;
-                        }
-                    case EJune:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JUN);
-                        break;
-                        }
-                    case EJuly:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JUL);
-                        break;
-                        }
-                    case EAugust:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_AUG);
-                        break;
-                        }
-                    case ESeptember:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_SEP);
-                        break;
-                        }
-                    case EOctober:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_OCT);
-                        break;
-                        }
-                    case ENovember:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_NOV);
-                        break;
-                        }
-                    case EDecember:
-                        {
-                        monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_DEC);
-                        break;
-                        }
-                    }
+                HBufC* monthTitle2 = GetMonthNameAsStringLC(
+                        end.DateTime().Month(), EMonthNameAsSubtitle );
 
                 HBufC* title1 = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMax);
                 TPtr ptr1 = title1->Des();
@@ -724,70 +600,8 @@
 	                	AknTextUtils::DisplayTextLanguageSpecificNumberConversion(yearTitle);
 						}
 
-                    HBufC* monthTitle = NULL;
-                    switch(month.DateTime().Month())
-                        {
-                        case EJanuary:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_JAN);
-                            break;
-                            }
-                        case EFebruary:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_FEB);
-                            break;
-                            }
-                        case EMarch:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_MAR);
-                            break;
-                            }
-                        case EApril:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_APR);
-                            break;
-                            }
-                        case EMay:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_MAY);
-                            break;
-                            }
-                        case EJune:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_JUN);
-                            break;
-                            }
-                        case EJuly:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_JUL);
-                            break;
-                            }
-                        case EAugust:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_AUG);
-                            break;
-                            }
-                        case ESeptember:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_SEP);
-                            break;
-                            }
-                        case EOctober:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_OCT);
-                            break;
-                            }
-                        case ENovember:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_NOV);
-                            break;
-                            }
-                        case EDecember:
-                            {
-                            monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_DEC);
-                            break;
-                            }
-                        }
+                    HBufC* monthTitle = GetMonthNameAsStringLC( 
+                            month.DateTime().Month(), EMonthNameAsTitle );
 
                     HBufC* title1 = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMax);
                     TPtr ptr = title1->Des();
@@ -853,4 +667,112 @@
     }
     
 
+
+HBufC* CGlxCollectionPluginMonths::GetMonthNameAsStringLC(
+        const TMonth& aMonth, const TMonthStringType& aStrType)
+    {
+    TInt monthResourceId = 0;
+
+    switch (aMonth)
+        {
+        case EJanuary:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_JAN
+                                                            : R_MONTHS_TITLE_JAN;
+            break;
+            }
+        case EFebruary:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_FEB
+                                                            : R_MONTHS_TITLE_FEB;
+            break;
+            }
+        case EMarch:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_MAR
+                                                            : R_MONTHS_TITLE_MAR;
+            break;
+            }
+        case EApril:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_APR
+                                                            : R_MONTHS_TITLE_APR;
+            break;
+            }
+        case EMay:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_MAY
+                                                            : R_MONTHS_TITLE_MAY;
+            break;
+            }
+        case EJune:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_JUN
+                                                            : R_MONTHS_TITLE_JUN;
+            break;
+            }
+        case EJuly:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_JUL
+                                                            : R_MONTHS_TITLE_JUL;
+            break;
+            }
+        case EAugust:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_AUG
+                                                            : R_MONTHS_TITLE_AUG;
+            break;
+            }
+        case ESeptember:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_SEP
+                                                            : R_MONTHS_TITLE_SEP;
+            break;
+            }
+        case EOctober:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_OCT
+                                                            : R_MONTHS_TITLE_OCT;
+            break;
+            }
+        case ENovember:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_NOV
+                                                            : R_MONTHS_TITLE_NOV;
+            break;
+            }
+        case EDecember:
+            {
+            monthResourceId
+                    = (EMonthNameAsSubtitle == aStrType)
+                                                         ? R_MONTHS_SUB_TITLE_DEC
+                                                            : R_MONTHS_TITLE_DEC;
+            break;
+            }
+        }
+
+    return LoadLocalizedStringLC(KResourceFile, monthResourceId);
+    }
  // End of file
--- a/photosgallery/commonui/bwins/glxcommonuiu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/commonui/bwins/glxcommonuiu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -1,33 +1,35 @@
 EXPORTS
-	??1CGlxResolutionManager@@UAE@XZ @ 1 NONAME ; CGlxResolutionManager::~CGlxResolutionManager(void)
-	?ActivatePreviousViewL@CGlxNavigationalState@@QAEXXZ @ 2 NONAME ; void CGlxNavigationalState::ActivatePreviousViewL(void)
-	?AddObserverL@CGlxNavigationalState@@QAEXAAVMGlxNavigationalStateObserver@@@Z @ 3 NONAME ; void CGlxNavigationalState::AddObserverL(class MGlxNavigationalStateObserver &)
-	?AddObserverL@CGlxResolutionUtility@@QAEXAAVMGlxResolutionChangeObserver@@@Z @ 4 NONAME ; void CGlxResolutionUtility::AddObserverL(class MGlxResolutionChangeObserver &)
-	?BackExitStatus@CGlxNavigationalState@@QAEHXZ @ 5 NONAME ; int CGlxNavigationalState::BackExitStatus(void)
-	?Close@CGlxErrorPoster@@QAEXXZ @ 6 NONAME ; void CGlxErrorPoster::Close(void)
-	?Close@CGlxNavigationalState@@QAEXXZ @ 7 NONAME ; void CGlxNavigationalState::Close(void)
-	?Close@CGlxResolutionUtility@@QAEXXZ @ 8 NONAME ; void CGlxResolutionUtility::Close(void)
-	?ForwardActivationEventL@CGlxBackServiceWrapper@@QAEHABVTDesC8@@H@Z @ 9 NONAME ; int CGlxBackServiceWrapper::ForwardActivationEventL(class TDesC8 const &, int)
-	?HandleBackCommandL@CGlxBackServiceWrapper@@QAEHABVTDesC8@@H@Z @ 10 NONAME ; int CGlxBackServiceWrapper::HandleBackCommandL(class TDesC8 const &, int)
-	?InstanceL@CGlxErrorPoster@@SAPAV1@XZ @ 11 NONAME ; class CGlxErrorPoster * CGlxErrorPoster::InstanceL(void)
-	?InstanceL@CGlxNavigationalState@@SAPAV1@XZ @ 12 NONAME ; class CGlxNavigationalState * CGlxNavigationalState::InstanceL(void)
-	?InstanceL@CGlxResolutionUtility@@SAPAV1@XZ @ 13 NONAME ; class CGlxResolutionUtility * CGlxResolutionUtility::InstanceL(void)
-	?NavigateToChildL@CGlxNavigationalState@@QAEXABVTGlxMediaId@@@Z @ 14 NONAME ; void CGlxNavigationalState::NavigateToChildL(class TGlxMediaId const &)
-	?NavigateToL@CGlxNavigationalState@@QAEXABVCMPXCollectionPath@@@Z @ 15 NONAME ; void CGlxNavigationalState::NavigateToL(class CMPXCollectionPath const &)
-	?NavigateToParentL@CGlxNavigationalState@@QAEXXZ @ 16 NONAME ; void CGlxNavigationalState::NavigateToParentL(void)
-	?NewL@CGlxBackServiceWrapper@@SAPAV1@VTUid@@@Z @ 17 NONAME ; class CGlxBackServiceWrapper * CGlxBackServiceWrapper::NewL(class TUid)
-	?NewL@CGlxResolutionManager@@SAPAV1@XZ @ 18 NONAME ; class CGlxResolutionManager * CGlxResolutionManager::NewL(void)
-	?NewLC@CGlxBackServiceWrapper@@SAPAV1@VTUid@@@Z @ 19 NONAME ; class CGlxBackServiceWrapper * CGlxBackServiceWrapper::NewLC(class TUid)
-	?PixelsToPoss@CGlxResolutionUtility@@QBEMABM@Z @ 20 NONAME ; float CGlxResolutionUtility::PixelsToPoss(float const &) const
-	?PossToPixels@CGlxResolutionUtility@@QBEMABM@Z @ 21 NONAME ; float CGlxResolutionUtility::PossToPixels(float const &) const
-	?PostError@CGlxErrorPoster@@QAEXH@Z @ 22 NONAME ; void CGlxErrorPoster::PostError(int)
-	?PublishStateL@NGlxZoomStatePublisher@@YAXH@Z @ 23 NONAME ; void NGlxZoomStatePublisher::PublishStateL(int)
-	?RemoveObserver@CGlxNavigationalState@@QAEXAAVMGlxNavigationalStateObserver@@@Z @ 24 NONAME ; void CGlxNavigationalState::RemoveObserver(class MGlxNavigationalStateObserver &)
-	?RemoveObserver@CGlxResolutionUtility@@QAEXAAVMGlxResolutionChangeObserver@@@Z @ 25 NONAME ; void CGlxResolutionUtility::RemoveObserver(class MGlxResolutionChangeObserver &)
-	?ScreenSize@CGlxResolutionUtility@@QBE?AVTSize@@XZ @ 26 NONAME ; class TSize CGlxResolutionUtility::ScreenSize(void) const
+	?PostError@CGlxErrorPoster@@QAEXH@Z @ 1 NONAME ; void CGlxErrorPoster::PostError(int)
+	?InstanceL@CGlxErrorPoster@@SAPAV1@XZ @ 2 NONAME ; class CGlxErrorPoster * CGlxErrorPoster::InstanceL(void)
+	?ActivatePreviousViewL@CGlxNavigationalState@@QAEXXZ @ 3 NONAME ; void CGlxNavigationalState::ActivatePreviousViewL(void)
+	?PossToPixels@CGlxResolutionUtility@@QBEMABM@Z @ 4 NONAME ; float CGlxResolutionUtility::PossToPixels(float const &) const
+	?Close@CGlxResolutionUtility@@QAEXXZ @ 5 NONAME ; void CGlxResolutionUtility::Close(void)
+	?SetStartingLevel@CGlxNavigationalState@@QAEXH@Z @ 6 NONAME ; void CGlxNavigationalState::SetStartingLevel(int)
+	??1CGlxResolutionManager@@UAE@XZ @ 7 NONAME ; CGlxResolutionManager::~CGlxResolutionManager(void)
+	?RemoveObserver@CGlxResolutionUtility@@QAEXAAVMGlxResolutionChangeObserver@@@Z @ 8 NONAME ; void CGlxResolutionUtility::RemoveObserver(class MGlxResolutionChangeObserver &)
+	?PixelsToPoss@CGlxResolutionUtility@@QBEMABM@Z @ 9 NONAME ; float CGlxResolutionUtility::PixelsToPoss(float const &) const
+	?PublishStateL@NGlxZoomStatePublisher@@YAXH@Z @ 10 NONAME ; void NGlxZoomStatePublisher::PublishStateL(int)
+	?BackExitStatus@CGlxNavigationalState@@QAEHXZ @ 11 NONAME ; int CGlxNavigationalState::BackExitStatus(void)
+	?SetToViewMode@CGlxNavigationalState@@QAEXXZ @ 12 NONAME ; void CGlxNavigationalState::SetToViewMode(void)
+	?ForwardActivationEventL@CGlxBackServiceWrapper@@QAEHABVTDesC8@@H@Z @ 13 NONAME ; int CGlxBackServiceWrapper::ForwardActivationEventL(class TDesC8 const &, int)
+	?SetScreenSizeL@CGlxResolutionManager@@QAEXVTSize@@@Z @ 14 NONAME ; void CGlxResolutionManager::SetScreenSizeL(class TSize)
+	?RemoveObserver@CGlxNavigationalState@@QAEXAAVMGlxNavigationalStateObserver@@@Z @ 15 NONAME ; void CGlxNavigationalState::RemoveObserver(class MGlxNavigationalStateObserver &)
+	?Close@CGlxNavigationalState@@QAEXXZ @ 16 NONAME ; void CGlxNavigationalState::Close(void)
+	?AddObserverL@CGlxNavigationalState@@QAEXAAVMGlxNavigationalStateObserver@@@Z @ 17 NONAME ; void CGlxNavigationalState::AddObserverL(class MGlxNavigationalStateObserver &)
+	?StartingLevel@CGlxNavigationalState@@QAEHXZ @ 18 NONAME ; int CGlxNavigationalState::StartingLevel(void)
+	?NavigateToL@CGlxNavigationalState@@QAEXABVCMPXCollectionPath@@@Z @ 19 NONAME ; void CGlxNavigationalState::NavigateToL(class CMPXCollectionPath const &)
+	?NavigateToParentL@CGlxNavigationalState@@QAEXXZ @ 20 NONAME ; void CGlxNavigationalState::NavigateToParentL(void)
+	?NavigateToChildL@CGlxNavigationalState@@QAEXABVTGlxMediaId@@@Z @ 21 NONAME ; void CGlxNavigationalState::NavigateToChildL(class TGlxMediaId const &)
+	?NewL@CGlxResolutionManager@@SAPAV1@XZ @ 22 NONAME ; class CGlxResolutionManager * CGlxResolutionManager::NewL(void)
+	?NewLC@CGlxBackServiceWrapper@@SAPAV1@VTUid@@@Z @ 23 NONAME ; class CGlxBackServiceWrapper * CGlxBackServiceWrapper::NewLC(class TUid)
+	?ViewingMode@CGlxNavigationalState@@QAE?AW4TViewingMode@NGlxNavigationalState@@XZ @ 24 NONAME ; enum NGlxNavigationalState::TViewingMode CGlxNavigationalState::ViewingMode(void)
+	?Close@CGlxErrorPoster@@QAEXXZ @ 25 NONAME ; void CGlxErrorPoster::Close(void)
+	?AddObserverL@CGlxResolutionUtility@@QAEXAAVMGlxResolutionChangeObserver@@@Z @ 26 NONAME ; void CGlxResolutionUtility::AddObserverL(class MGlxResolutionChangeObserver &)
 	?SetBackExitStatus@CGlxNavigationalState@@QAEXH@Z @ 27 NONAME ; void CGlxNavigationalState::SetBackExitStatus(int)
-	?SetScreenSizeL@CGlxResolutionManager@@QAEXVTSize@@@Z @ 28 NONAME ; void CGlxResolutionManager::SetScreenSizeL(class TSize)
-	?SetToViewMode@CGlxNavigationalState@@QAEXXZ @ 29 NONAME ; void CGlxNavigationalState::SetToViewMode(void)
-	?StateLC@CGlxNavigationalState@@QBEPAVCMPXCollectionPath@@XZ @ 30 NONAME ; class CMPXCollectionPath * CGlxNavigationalState::StateLC(void) const
-	?ViewingMode@CGlxNavigationalState@@QAE?AW4TViewingMode@NGlxNavigationalState@@XZ @ 31 NONAME ; enum NGlxNavigationalState::TViewingMode CGlxNavigationalState::ViewingMode(void)
+	?HandleBackCommandL@CGlxBackServiceWrapper@@QAEHABVTDesC8@@H@Z @ 28 NONAME ; int CGlxBackServiceWrapper::HandleBackCommandL(class TDesC8 const &, int)
+	?StateLC@CGlxNavigationalState@@QBEPAVCMPXCollectionPath@@XZ @ 29 NONAME ; class CMPXCollectionPath * CGlxNavigationalState::StateLC(void) const
+	?InstanceL@CGlxNavigationalState@@SAPAV1@XZ @ 30 NONAME ; class CGlxNavigationalState * CGlxNavigationalState::InstanceL(void)
+	?NewL@CGlxBackServiceWrapper@@SAPAV1@VTUid@@@Z @ 31 NONAME ; class CGlxBackServiceWrapper * CGlxBackServiceWrapper::NewL(class TUid)
+	?InstanceL@CGlxResolutionUtility@@SAPAV1@XZ @ 32 NONAME ; class CGlxResolutionUtility * CGlxResolutionUtility::InstanceL(void)
+	?ScreenSize@CGlxResolutionUtility@@QBE?AVTSize@@XZ @ 33 NONAME ; class TSize CGlxResolutionUtility::ScreenSize(void) const
 
--- a/photosgallery/commonui/eabi/glxcommonuiu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/commonui/eabi/glxcommonuiu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -6,34 +6,36 @@
 	_ZN21CGlxNavigationalState11ViewingModeEv @ 5 NONAME
 	_ZN21CGlxNavigationalState12AddObserverLER29MGlxNavigationalStateObserver @ 6 NONAME
 	_ZN21CGlxNavigationalState13SetToViewModeEv @ 7 NONAME
-	_ZN21CGlxNavigationalState14BackExitStatusEv @ 8 NONAME
-	_ZN21CGlxNavigationalState14RemoveObserverER29MGlxNavigationalStateObserver @ 9 NONAME
-	_ZN21CGlxNavigationalState16NavigateToChildLERK11TGlxMediaId @ 10 NONAME
-	_ZN21CGlxNavigationalState17NavigateToParentLEv @ 11 NONAME
-	_ZN21CGlxNavigationalState17SetBackExitStatusEi @ 12 NONAME
-	_ZN21CGlxNavigationalState21ActivatePreviousViewLEv @ 13 NONAME
-	_ZN21CGlxNavigationalState5CloseEv @ 14 NONAME
-	_ZN21CGlxNavigationalState9InstanceLEv @ 15 NONAME
-	_ZN21CGlxResolutionManager14SetScreenSizeLE5TSize @ 16 NONAME
-	_ZN21CGlxResolutionManager4NewLEv @ 17 NONAME
-	_ZN21CGlxResolutionManagerD0Ev @ 18 NONAME
-	_ZN21CGlxResolutionManagerD1Ev @ 19 NONAME
-	_ZN21CGlxResolutionManagerD2Ev @ 20 NONAME
-	_ZN21CGlxResolutionUtility12AddObserverLER28MGlxResolutionChangeObserver @ 21 NONAME
-	_ZN21CGlxResolutionUtility14RemoveObserverER28MGlxResolutionChangeObserver @ 22 NONAME
-	_ZN21CGlxResolutionUtility5CloseEv @ 23 NONAME
-	_ZN21CGlxResolutionUtility9InstanceLEv @ 24 NONAME
-	_ZN22CGlxBackServiceWrapper18HandleBackCommandLERK6TDesC8i @ 25 NONAME
-	_ZN22CGlxBackServiceWrapper23ForwardActivationEventLERK6TDesC8i @ 26 NONAME
-	_ZN22CGlxBackServiceWrapper4NewLE4TUid @ 27 NONAME
-	_ZN22CGlxBackServiceWrapper5NewLCE4TUid @ 28 NONAME
-	_ZN22NGlxZoomStatePublisher13PublishStateLEi @ 29 NONAME
-	_ZNK21CGlxNavigationalState7StateLCEv @ 30 NONAME
-	_ZNK21CGlxResolutionUtility10ScreenSizeEv @ 31 NONAME
-	_ZNK21CGlxResolutionUtility12PixelsToPossERKf @ 32 NONAME
-	_ZNK21CGlxResolutionUtility12PossToPixelsERKf @ 33 NONAME
-	_ZTI21CGlxNavigationalState @ 34 NONAME ; #<TI>#
-	_ZTI22CGlxBackServiceWrapper @ 35 NONAME ; #<TI>#
-	_ZTV21CGlxNavigationalState @ 36 NONAME ; #<VT>#
-	_ZTV22CGlxBackServiceWrapper @ 37 NONAME ; #<VT>#
+	_ZN21CGlxNavigationalState13StartingLevelEv @ 8 NONAME
+	_ZN21CGlxNavigationalState14BackExitStatusEv @ 9 NONAME
+	_ZN21CGlxNavigationalState14RemoveObserverER29MGlxNavigationalStateObserver @ 10 NONAME
+	_ZN21CGlxNavigationalState16NavigateToChildLERK11TGlxMediaId @ 11 NONAME
+	_ZN21CGlxNavigationalState16SetStartingLevelEi @ 12 NONAME
+	_ZN21CGlxNavigationalState17NavigateToParentLEv @ 13 NONAME
+	_ZN21CGlxNavigationalState17SetBackExitStatusEi @ 14 NONAME
+	_ZN21CGlxNavigationalState21ActivatePreviousViewLEv @ 15 NONAME
+	_ZN21CGlxNavigationalState5CloseEv @ 16 NONAME
+	_ZN21CGlxNavigationalState9InstanceLEv @ 17 NONAME
+	_ZN21CGlxResolutionManager14SetScreenSizeLE5TSize @ 18 NONAME
+	_ZN21CGlxResolutionManager4NewLEv @ 19 NONAME
+	_ZN21CGlxResolutionManagerD0Ev @ 20 NONAME
+	_ZN21CGlxResolutionManagerD1Ev @ 21 NONAME
+	_ZN21CGlxResolutionManagerD2Ev @ 22 NONAME
+	_ZN21CGlxResolutionUtility12AddObserverLER28MGlxResolutionChangeObserver @ 23 NONAME
+	_ZN21CGlxResolutionUtility14RemoveObserverER28MGlxResolutionChangeObserver @ 24 NONAME
+	_ZN21CGlxResolutionUtility5CloseEv @ 25 NONAME
+	_ZN21CGlxResolutionUtility9InstanceLEv @ 26 NONAME
+	_ZN22CGlxBackServiceWrapper18HandleBackCommandLERK6TDesC8i @ 27 NONAME
+	_ZN22CGlxBackServiceWrapper23ForwardActivationEventLERK6TDesC8i @ 28 NONAME
+	_ZN22CGlxBackServiceWrapper4NewLE4TUid @ 29 NONAME
+	_ZN22CGlxBackServiceWrapper5NewLCE4TUid @ 30 NONAME
+	_ZN22NGlxZoomStatePublisher13PublishStateLEi @ 31 NONAME
+	_ZNK21CGlxNavigationalState7StateLCEv @ 32 NONAME
+	_ZNK21CGlxResolutionUtility10ScreenSizeEv @ 33 NONAME
+	_ZNK21CGlxResolutionUtility12PixelsToPossERKf @ 34 NONAME
+	_ZNK21CGlxResolutionUtility12PossToPixelsERKf @ 35 NONAME
+	_ZTI21CGlxNavigationalState @ 36 NONAME
+	_ZTI22CGlxBackServiceWrapper @ 37 NONAME
+	_ZTV21CGlxNavigationalState @ 38 NONAME
+	_ZTV22CGlxBackServiceWrapper @ 39 NONAME
 
--- a/photosgallery/commonui/inc/glxnavigationalstate.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/commonui/inc/glxnavigationalstate.h	Mon Jan 18 20:19:20 2010 +0200
@@ -111,10 +111,30 @@
      * Sets the mode to "view"
      */
      IMPORT_C void SetToViewMode();
-
+     
+     /**
+     * Sets the BackExitStatus
+     * @param aStatus ETrue photos navigates to parent on Back EFalse photos exits on back.
+     */
      IMPORT_C void SetBackExitStatus(TBool aStatus);
      
+     /**
+     * Gets the BackExitStatus
+     * @return BackExitStatus
+     */          
      IMPORT_C TBool BackExitStatus();
+     
+     /**
+     * Sets the starting navigation level
+     * @param aLevel starting level
+     */
+     IMPORT_C void SetStartingLevel(TInt aLevel);
+     
+     /**
+     * Gets the starting navigation level
+     * @return starting navigation level
+     */     
+     IMPORT_C TInt StartingLevel();
   
 private:
     /** Constructor for singleton store */
@@ -127,8 +147,10 @@
     /// Implementation 
     CGlxNavigationalStateImp* iImp;
     
-public:
     TBool iBackExitStatus;
+    
+    TInt iStartingLevel ;
+    
     };
     
     
--- a/photosgallery/commonui/src/glxnavigationalstate.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/commonui/src/glxnavigationalstate.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -428,27 +428,60 @@
     GLX_LOG_ENTRY_EXIT( "CGlxNavigationalState::ActivatePreviousViewL");
     iImp->ActivatePreviousViewL();
     }
-    
+
+// -----------------------------------------------------------------------------
+// Set the ViewingMode
+// -----------------------------------------------------------------------------
+//    
 EXPORT_C void CGlxNavigationalState::SetToViewMode()
     {
-     iImp->SetToViewMode();
-     // inform the observers( only appui!! ) that the mode is view
+    iImp->SetToViewMode();
+    // inform the observers( only appui!! ) that the mode is view
     }
-    
+
+// -----------------------------------------------------------------------------
+// Get the ViewingMode
+// -----------------------------------------------------------------------------
+//    
 EXPORT_C  NGlxNavigationalState::TViewingMode CGlxNavigationalState::ViewingMode()
     {
-     return iImp->ViewingMode();
+    return iImp->ViewingMode();
     }
-
- 
+// -----------------------------------------------------------------------------
+// Set the BackExitStatus
+// -----------------------------------------------------------------------------
+// 
 EXPORT_C void CGlxNavigationalState::SetBackExitStatus(TBool aStatus)
     {
     iBackExitStatus = aStatus;
     }
 
+// -----------------------------------------------------------------------------
+// Get the BackExitStatus
+// -----------------------------------------------------------------------------
+//
 EXPORT_C TBool CGlxNavigationalState::BackExitStatus()
     {
     return iBackExitStatus;
     }
 
-// EOF	
+// -----------------------------------------------------------------------------
+// Set the Starting navigation Level
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CGlxNavigationalState::SetStartingLevel(TInt aLevel)
+    {
+    iStartingLevel = aLevel;
+    }
+    
+// -----------------------------------------------------------------------------
+// Get the Starting navigation Level
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt CGlxNavigationalState::StartingLevel()
+    {
+    return iStartingLevel;
+    }
+
+// EOF
+
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginalbums.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginalbums.h	Mon Jan 18 20:19:20 2010 +0200
@@ -112,11 +112,6 @@
     TInt UpdateItem(TInt aItemIndex); 
 
     /*
-     * This Updates the thumbnail/Preview list with thumbnails already present
-     */
-    void HandleItemChanged();
-
-    /*
      * This Function is called when the collection recives a focus and losses the focus
      * @param aOn :True   : The collection is in focus
      *            : False : The collection lost the focus 
@@ -192,7 +187,6 @@
     MLiwInterface* iCPSInterface;
     CLiwGenericParamList* iInParamList;
     CLiwGenericParamList* iOutParamList;
-    CPeriodic* iPeriodic;
 
     /// Owned: Media list
     MGlxMediaList* iMediaList;
@@ -205,11 +199,6 @@
     /// Own: Thumbnail Iterator
     TGlxSequentialIterator iThumbnailIterator;  
 
-    RArray<TInt> iPreviewItemCount;
-
-    // Preview thumbnail index
-    TInt iProgressIndex;
-    
     };
 
 #endif /*GLXCONTENTHARVESTERPLUGINALBUMS_H*/
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginall.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginall.h	Mon Jan 18 20:19:20 2010 +0200
@@ -112,11 +112,6 @@
     TInt UpdateItem(TInt aItemIndex); 
 
     /*
-     * This Updates the thumbnail/Preview list with thumbnails already present
-     */
-    void HandleItemChanged();
-
-    /*
      * This Function is called when the collection recives a focus and losses the focus
      * @param aOn :True   : The collection is in focus
      *            : False : The collection lost the focus 
@@ -191,7 +186,6 @@
     MLiwInterface* iCPSInterface;
     CLiwGenericParamList* iInParamList;
     CLiwGenericParamList* iOutParamList;
-    CPeriodic* iPeriodic;
 
     /// Owned: Media list
     MGlxMediaList* iMediaList;
@@ -204,13 +198,6 @@
     /// Own: Thumbnail Iterator
     TGlxSequentialIterator iThumbnailIterator;
 
-    RArray<TInt> iPreviewItemCount;
-
-    // Preview thumbnail index
-    TInt iProgressIndex;
-    
-    //this variable holds the value ,whether the collection is in focus or not
-    TBool iIsFocused;
     };
 
 #endif /*GLXCONTENTHARVESTERPLUGINALL_H_*/
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginbase.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginbase.h	Mon Jan 18 20:19:20 2010 +0200
@@ -87,10 +87,6 @@
      */
     TInt GetBitmapHandle() const;
 
-    /**
-     * Returns if the collection is in focus or not  
-     */
-    TBool IsFocused() const;
 
     /**
      * Updates  the focus value of the collection to true or false
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginmonths.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginmonths.h	Mon Jan 18 20:19:20 2010 +0200
@@ -114,11 +114,6 @@
     TInt UpdateItem(TInt aItemIndex); 
 
     /*
-     * This Updates the thumbnail/Preview list with thumbnails already present
-     */
-    void HandleItemChanged();
-
-    /*
      * This Function is called when the collection recives a focus and losses the focus
      * @param aOn :True   : The collection is in focus
      *            : False : The collection lost the focus 
@@ -194,7 +189,6 @@
     MLiwInterface* iCPSInterface;
     CLiwGenericParamList* iInParamList;
     CLiwGenericParamList* iOutParamList;
-    CPeriodic* iPeriodic;
 
     /// Owned: Media list
     MGlxMediaList* iMediaList;
@@ -207,13 +201,6 @@
     /// Own: Thumbnail Iterator
     TGlxSequentialIterator iThumbnailIterator;
 
-    RArray<TInt> iPreviewItemCount;
-
-    // Preview thumbnail index
-    TInt iProgressIndex;
-
-    //this variable holds the value ,whether the collection is in focus or not
-    TBool iIsFocused;
     };
 
 #endif /*GLXCONTENTHARVESTERPLUGINMONTHS_H_*/
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugintags.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugintags.h	Mon Jan 18 20:19:20 2010 +0200
@@ -112,11 +112,6 @@
     TInt UpdateItem(TInt aItemIndex); 
 
     /*
-     * This Updates the thumbnail/Preview list with thumbnails already present
-     */
-    void HandleItemChanged();
-
-    /*
      * This Function is called when the collection recives a focus and losses the focus
      * @param aOn :True   : The collection is in focus
      *            : False : The collection lost the focus 
@@ -192,7 +187,6 @@
     MLiwInterface* iCPSInterface;
     CLiwGenericParamList* iInParamList;
     CLiwGenericParamList* iOutParamList;
-    CPeriodic* iPeriodic;
 
     /// Owned: Media list
     MGlxMediaList* iMediaList;
@@ -205,13 +199,6 @@
     /// Own: Thumbnail Iterator
     TGlxSequentialIterator iThumbnailIterator;
 
-    RArray<TInt> iPreviewItemCount;
-
-    // Preview thumbnail index
-    TInt iProgressIndex;
-
-    //this variable holds the value ,whether the collection is in focus or not
-    TBool iIsFocused;
     };
 
 #endif /*GLXCONTENTHARVESTERPLUGINTAGS_H_*/
--- a/photosgallery/contentharvesterplugin/inc/glxmapconstants.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/inc/glxmapconstants.h	Mon Jan 18 20:19:20 2010 +0200
@@ -52,7 +52,8 @@
 const TInt KPreviewThumbnailFetchCount(15);
 //The Thumbnails to shown/fetched when the collection is not in focus
 const TInt KSinglePreviewThumbnail(1);
-
+// The preview item Index
+const TInt KPreviewItemIndex = 0;
 //The constants to identify the plugin/collection
 const TInt KMaxInt = 0x7fffffff;
 
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginalbums.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginalbums.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -40,12 +40,6 @@
 
 
 // ============================ MEMBER FUNCTIONS ==============================
-LOCAL_C TInt TimerCallbackL( TAny* aPtr )
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::TimerCallbackL" );
-    static_cast<CGlxContentHarvesterPluginAlbums*>(aPtr)->UpdateDataL();
-    return KErrNone;
-    }
 
 // ----------------------------------------------------------------------------
 // Constructor
@@ -70,9 +64,6 @@
     
     //Call the base class ConstructL
     CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
-    
-    iPeriodic = CPeriodic::NewL( CActive::EPriorityLow );    
-       
     iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
     iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
     
@@ -107,11 +98,6 @@
     TRACER( "CGlxContentHarvesterPluginAlbums::~CGlxContentHarvesterPluginAlbums" );
 
     DestroyMedialist();
-    if ( iPeriodic )
-        {
-        iPeriodic->Cancel();
-        }
-    delete iPeriodic;
     }
 
 // ----------------------------------------------------------------------------
@@ -121,31 +107,31 @@
 void CGlxContentHarvesterPluginAlbums::UpdateDataL() 
     {
     TRACER( "CGlxContentHarvesterPluginAlbums::UpdateDataL" );
-    if(iMediaList && iMediaList->Count() && iPreviewItemCount.Count() )
+
+    if (!iMediaList)
         {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::UpdateDataL(),iProgressIndex=%d",iProgressIndex);
-        TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]);
-        if(ret != KErrNotFound)
+        return;
+        }
+
+    if (iMediaList->Count())
+        {
+        TInt ret = UpdateItem(KPreviewItemIndex);
+        if (ret != KErrNotFound)
             {
             //Updates the thumbnail in the collection 
             UpdateDataInCPSL(ret);
             }
-        else
-            {
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
         }
     else
         {
         // Show previous thumbnail until the new thumbnail is
         // fecthed.Added this check to avoid flicker
-        if(!GetCHPlugin()->IsRefreshNeeded() || (iMediaList->Count() == 0))
-        	{
-			//Don't Show the Thumbnail/Show nothing
-			GLX_LOG_INFO("CGlxContentHarvesterPluginAlbums::UpdateDataL() --O");
-			UpdateDataInCPSL(GetBitmapHandle());
-        	}
-        
+        if (!GetCHPlugin()->IsRefreshNeeded() || (iMediaList->Count() == 0))
+            {
+            //Don't Show the Thumbnail/Show nothing
+            GLX_LOG_INFO("CGlxContentHarvesterPluginAlbums::UpdateDataL() --O");
+            UpdateDataInCPSL(GetBitmapHandle());
+            }
         }
     }
 
@@ -165,52 +151,6 @@
     }
 
 // ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleItemChanged()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::HandleItemChanged()
-    {
-    TRACER("CGlxContentHarvesterPluginAlbums::HandleItemChanged");
-
-    iProgressIndex = 0;
-    iPreviewItemCount.Reset();
-
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    if(iMediaList)  
-        {
-        TInt count = iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums:: HandleItemChanged ,count=%d",count);
-
-        TBool inFocus = IsFocused();
-        for(TInt aItemIndex = 0; aItemIndex < count; aItemIndex++)
-            {
-            const TGlxMedia& item = iMediaList->Item( aItemIndex );
-            const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-            if (value)
-                {
-                iPreviewItemCount.InsertInOrder(aItemIndex);
-                if(!inFocus)
-                    {
-                    //if the collection is in Focus,retrieve only one thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::HandleItemChanged,iRange=1,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-                else if(iPreviewItemCount.Count() == KPreviewThumbnailFetchCount ||
-                        iPreviewItemCount.Count() == count )
-                    {
-                    //if the collection is not in Focus,retrieve 15 thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::HandleItemChanged,iRange=15,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-
-                }
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
 // CGlxContentHarvesterPluginAlbums::UpdateDataInCPSL()
 // ----------------------------------------------------------------------------
 // 
@@ -251,14 +191,6 @@
     const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
     if (value)
         {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::UpdateItem,iProgressIndex=%d ",iProgressIndex);
-        iProgressIndex++;
-        if (iProgressIndex >= KPreviewThumbnailFetchCount || 
-                iProgressIndex >= iPreviewItemCount.Count() ||
-                iProgressIndex >= iMediaList->Count())
-            {
-            iProgressIndex = 0;
-            }
         return value->iBitmap->Handle();
         }
     return KErrNotFound;
@@ -275,7 +207,7 @@
     GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::ActivateL aOn =%d",aOn);
     SetFocus(aOn);
 
-    if (IsMatrixMenuInForegroundL() && aOn && !iPeriodic->IsActive() )
+    if (IsMatrixMenuInForegroundL() && aOn )
         {
         if(GetCHPlugin()->IsRefreshNeeded())
             {
@@ -288,10 +220,6 @@
             //to update the thumbnails on the focus , need to call the below function
             UpdatePreviewThumbnailListL();
             }
-
-        iPeriodic->Start( KTimerInterval, 
-                KTimerInterval, 
-                TCallBack( TimerCallbackL, this ) );
         }
     else if ( !aOn )
         {
@@ -302,7 +230,6 @@
             GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::ActivateL !aOn =%d and matrix not in foreground",aOn);
             GetCHPlugin()->UpdatePlugins(aOn);
             }
-        iPeriodic->Cancel();
         }
     }
 
@@ -370,25 +297,12 @@
         if (value)
             {
             GLX_LOG_INFO("CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL Thumbnail is present ");
-            iPreviewItemCount.InsertInOrder(aItemIndex);
-            //if the collection on the matrix menu is not focused,then show only one thumbnail
-            if(!IsFocused())
-                {
-                //if one thumbnail is fetched,it is sufficent when the collection is not in focus.
-                //remove the observer as client need not listen to the callbacks 
-                GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,one thumbnail fetched");
-                UpdateDataInCPSL( value->iBitmap->Handle());
-                iMediaList->RemoveMediaListObserver( this );          
-                }
-            else if (iPreviewItemCount.Count()  == KPreviewThumbnailFetchCount ||
-                    iPreviewItemCount.Count() == aList->Count() )
-                {
 
-                GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL,media list count=%d",aList->Count());
-                //if the PreviewItemCount  equals 15 or if it is eqaul to the total count
-                //remove the observer as client need not listen to the callbacks 
-                iMediaList->RemoveMediaListObserver( this );
-                }
+			// Update the preview thumbnail
+			//remove the observer as client need not listen to the callbacks
+			GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,one thumbnail fetched");
+			UpdateDataInCPSL( value->iBitmap->Handle());
+			iMediaList->RemoveMediaListObserver( this );
             }//end of  check against value 
         }//end of  attribute match
     }
@@ -459,16 +373,8 @@
     TRACER( "CGlxContentHarvesterPluginAlbums::CreateMedialistL" );
     if(!iMediaList)
         {
-        //if the collection is in focus then , create media list with context of 15 items else
-        // with context of single item.
-        if(IsFocused())
-            {
-            iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); 
-            }
-        else
-            {
-            iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-            }
+		iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
+
         iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
                         KGlxCollectionPluginAlbumsImplementationUid ),
                         iUriAttributeContext,iThumbnailAttributeContext);         
@@ -491,8 +397,6 @@
         {
         //media list is not created yet,create it.
         CreateMedialistL( );
-        //This is called to show the preview thumbnails. If no thumbnails are
-        //present, display nothing
         UpdateDataL();
         }
     else
@@ -501,28 +405,12 @@
             {
             ContainerCacheCleanupL(iMediaList);
             }
-   		if(IsFocused())
-	        {
-	        //1.This loop is executed,when the collection gets focus
-	        //2.This loop is executed,when the contents are updated for this collection
-	        //and this collection has focus,so 15 thumbnails are fetched.
-	        HandleItemChanged();
-	        iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount );
-	        RemoveContextAndObserver();
-	        AddContextAndObserverL();
-	        }
-	    else
-	        {
-	        //1.This loop is executed,when the contents are updated for this collection
-	        //and this collection doesn't have the focus,so only one thumbnail is fetched.
 
-	        //here we need to fetch only one item 
 	        //1.if the content is deleted,then creating a context doesn't fetch the attributes
 	        //2.if the content is added and the content is not the latest as per the sorted order of the
 	        // media list,then the thumbnails are not fetched.
 	        // so show the first available thumbnail in the media list.
 
-	        HandleItemChanged();
 	        UpdateDataL();
 
 	        //Adding the context doesn't gaurantee we get a call back for
@@ -536,7 +424,7 @@
 	        RemoveContextAndObserver();
 	        AddContextAndObserverL();
 			}
-        }
+
     }
 
 // ---------------------------------------------------------------------------
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginall.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginall.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -40,14 +40,6 @@
 #include "glxmapconstants.h"
 
 
-// ============================ MEMBER FUNCTIONS ==============================
-LOCAL_C TInt TimerCallbackL( TAny* aPtr )
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::TimerCallbackL" );
-    static_cast<CGlxContentHarvesterPluginAll*>(aPtr)->UpdateDataL();
-    return KErrNone;
-    }
-
 // ----------------------------------------------------------------------------
 // Constructor
 // ----------------------------------------------------------------------------
@@ -71,9 +63,7 @@
     
     //Call the base class ConstructL,to create the default thumbnail
     CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
-    
-    iPeriodic = CPeriodic::NewL( CActive::EPriorityLow );
-    
+
     iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
     iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
 
@@ -108,12 +98,6 @@
     TRACER( "CGlxContentHarvesterPluginAll::~CGlxContentHarvesterPluginAll" );
 
     DestroyMedialist();
-
-    if ( iPeriodic )
-        {
-        iPeriodic->Cancel();
-        }
-    delete iPeriodic;
     }
 
 // ----------------------------------------------------------------------------
@@ -123,30 +107,31 @@
 void CGlxContentHarvesterPluginAll::UpdateDataL() 
     {
     TRACER( "CGlxContentHarvesterPluginAll::UpdateDataL" );
-    if(iMediaList && iMediaList->Count() && iPreviewItemCount.Count() )
+
+    if (!iMediaList)
         {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::UpdateDataL(),iProgressIndex=%d",iProgressIndex);
-        TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]);
-        if(ret != KErrNotFound)
+        return;
+        }
+
+    if (iMediaList->Count())
+        {
+        TInt ret = UpdateItem(KPreviewItemIndex);
+        if (ret != KErrNotFound)
             {
             //Updates the thumbnail in the collection 
             UpdateDataInCPSL(ret);
             }
-        else
-            {
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
         }
     else
         {
         // Show previous thumbnail until the new thumbnail is
         // fecthed.Added this check to avoid flicker
-		if(iMediaList->Count() == 0)
-			{
-			//Don't Show the Thumbnail/Show nothing
-			GLX_LOG_INFO("CGlxContentHarvesterPluginAll::UpdateDataL() --O");
-			UpdateDataInCPSL(GetBitmapHandle());
-			}
+        if (iMediaList->Count() == 0)
+            {
+            //Don't Show the Thumbnail/Show nothing
+            GLX_LOG_INFO("CGlxContentHarvesterPluginAll::UpdateDataL() --O");
+            UpdateDataInCPSL(GetBitmapHandle());
+            }
         }
     }
 
@@ -173,52 +158,6 @@
     }
 
 // ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleItemChanged()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleItemChanged()
-    {
-    TRACER("CGlxContentHarvesterPluginAll::HandleItemChanged");
-
-    iProgressIndex = 0;
-    iPreviewItemCount.Reset();
-
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    if(iMediaList)  
-        {
-        TInt count = iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAll:: HandleItemChanged ,count=%d",count);
-
-        TBool inFocus = IsFocused();
-        for(TInt aItemIndex = 0; aItemIndex < count; aItemIndex++)
-            {
-            const TGlxMedia& item = iMediaList->Item( aItemIndex );
-            const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-            if (value)
-                {
-                iPreviewItemCount.InsertInOrder(aItemIndex);
-                if(!inFocus)
-                    {
-                    //if the collection is NOT in Focus,retrive only one thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleItemChanged,Range=1,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-                else if(iPreviewItemCount.Count() == KPreviewThumbnailFetchCount ||
-                        iPreviewItemCount.Count() == count )
-                    {
-                    //if the collection is not in Focus,retrive 15 thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleItemChanged,Range=15,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-
-                }
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
 // CGlxContentHarvesterPluginAll::UpdateDataInCPSL()
 // ----------------------------------------------------------------------------
 //  
@@ -260,14 +199,6 @@
     const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
     if (value)
         {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::UpdateItem,iProgressIndex=%d ",iProgressIndex);
-        iProgressIndex++;
-        if (iProgressIndex >= KPreviewThumbnailFetchCount || 
-                iProgressIndex >= iPreviewItemCount.Count() ||
-                iProgressIndex >= iMediaList->Count())
-            {
-            iProgressIndex = 0;
-            }
         return value->iBitmap->Handle();
         }
     return KErrNotFound;
@@ -284,7 +215,7 @@
     GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::ActivateL aOn =%d",aOn);
     SetFocus(aOn);
 
-    if (IsMatrixMenuInForegroundL() && aOn && !iPeriodic->IsActive() )
+    if (IsMatrixMenuInForegroundL() && aOn )
         {
         if(GetCHPlugin()->IsRefreshNeeded())
             {
@@ -297,10 +228,6 @@
             //to update the thumbnails on the focus , need to call the below function
             UpdatePreviewThumbnailListL();
             }
-
-        iPeriodic->Start( KTimerInterval, 
-                KTimerInterval, 
-                TCallBack( TimerCallbackL, this ) );
         }
     else if ( !aOn )
         {
@@ -311,7 +238,6 @@
             GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::ActivateL !aOn =%d and matrix not in foreground",aOn);
             GetCHPlugin()->UpdatePlugins(aOn);
             }
-        iPeriodic->Cancel();
         }
     }
 
@@ -378,25 +304,12 @@
         if (value)
             {
             GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL Thumbnail is present ");
-            iPreviewItemCount.InsertInOrder(aItemIndex);
 
-            //if the collection on the matrix menu is not focused,then show only one thumbnail
-            if(!IsFocused())
-                {
-                //if one thumbnail is fetched,it is sufficent when the collection is not in focus.
-                //remove the observer as client need not listen to the callbacks 
-                GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,one thumbnail fetched");
-                UpdateDataInCPSL( value->iBitmap->Handle());           
-                iMediaList->RemoveMediaListObserver( this );
-                }
-            else if (iPreviewItemCount.Count()  == KPreviewThumbnailFetchCount ||
-                    iPreviewItemCount.Count() == aList->Count() )
-                {
-                //if the PreviewItemCount  equals 15 or if it is eqaul to the total count
-                //remove the observer as client need not listen to the callbacks 
-                GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,media list count=%d",aList->Count());
-                iMediaList->RemoveMediaListObserver( this );
-                }
+			// Update the preview thumbnail
+			//remove the observer as client need not listen to the callbacks
+			GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,one thumbnail fetched");
+			UpdateDataInCPSL( value->iBitmap->Handle());
+			iMediaList->RemoveMediaListObserver( this );
             }//end of  check against value 
         }//end of  attribute match
     }
@@ -468,21 +381,12 @@
     TRACER( "CGlxContentHarvesterPluginAll::CreateMedialistL" );
     if(!iMediaList)
         {
-        //if the collection is in focus then , create media list with context of 15 items else
-        // with context of single item.
-        if(IsFocused())
-            {
-            iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); 
-            }
-        else
-            {
-            iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-            }
+        iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
 
         iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
                 KGlxCollectionPluginAllImplementationUid ),
                 iUriAttributeContext,iThumbnailAttributeContext);         
-        
+
         AddContextAndObserverL();
         }
     }
@@ -501,35 +405,10 @@
         {
         //medis list is not created yet,create it.
         CreateMedialistL( );
-        //This is called to show the preview thumbnails. If no thumbnails are
-        //present, display nothing 
         UpdateDataL();
         }
-    else if(IsFocused())
-        {
-        //1.This loop is executed,when the collection gets focus
-        //2.This loop is executed,when the contents are added/deleted for this collection
-        //and this collection has focus,so 15 thumbnails are fetched.
-        //say for example
-        //1.focus is on "All" collection/view and you insert MMC
-        //2.capture in burst mode and return quickly to photos suite and focus on "All"
-        HandleItemChanged();
-        iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount );
-        RemoveContextAndObserver();
-        AddContextAndObserverL();
-        }
     else
         {
-        //1.This loop is executed,when the contents are updated for this collection
-        //and this collection doesn't have the focus,so only one thumbnail is fetched.
-
-        //here we need to fetch only one item 
-        //1.if the content is deleted,then creating a context doesn't fetch the attributes
-        //2.if the content is added and the content is not the latest as per the sorted order of the
-        // media list,then the thumbnails are not fetched.
-        // so show the first available thumbnail in the media list.
-
-        HandleItemChanged();
         UpdateDataL();
 
         //Adding the context doesn't gaurantee we get a call back for
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginbase.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginbase.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -488,16 +488,6 @@
             return mediaList;
             }
 
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginBase::IsFocused
-// ---------------------------------------------------------------------------
-//
-TBool CGlxContentHarvesterPluginBase::IsFocused() const
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::IsFocused" );
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginBase::IsFocused,isFocused=%d",iIsFocused);
-    return iIsFocused;
-    }
 
 // ---------------------------------------------------------------------------
 // CGlxContentHarvesterPluginBase::Focused
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugincaptured.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugincaptured.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -124,11 +124,17 @@
 void CGlxContentHarvesterPluginCaptured::UpdateDataL() 
     {
     TRACER( "CGlxContentHarvesterPluginCaptured::UpdateDataL" );
-    if(iMediaList && iMediaList->Count() && iPreviewItemCount.Count() )
+
+    if (!iMediaList)
+        {
+        return;
+        }
+    
+    if (iMediaList->Count() && iPreviewItemCount.Count())
         {
         GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::UpdateDataL(),iProgressIndex=%d",iProgressIndex);
         TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]);
-        if(ret != KErrNotFound)
+        if (ret != KErrNotFound)
             {
             //Updates the thumbnail in the collection 
             UpdateDataInCPSL(ret);
@@ -141,13 +147,13 @@
     else
         {
         // Show previous thumbnail until the new thumbnail is
-		// fecthed.Added this check to avoid flicker
-		if(iMediaList->Count() == 0)
-			{
-			//Don't Show the Thumbnail/Show nothing
-			GLX_LOG_INFO("CGlxContentHarvesterPluginCaptured::UpdateDataL() --O");
-			UpdateDataInCPSL(GetBitmapHandle());
-			}
+        // fecthed.Added this check to avoid flicker
+        if (iMediaList->Count() == 0)
+            {
+            //Don't Show the Thumbnail/Show nothing
+            GLX_LOG_INFO("CGlxContentHarvesterPluginCaptured::UpdateDataL() --O");
+            UpdateDataInCPSL(GetBitmapHandle());
+            }
         }
     }
 
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugindownloads.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugindownloads.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -125,7 +125,13 @@
 void CGlxContentHarvesterPluginDownloads::UpdateDataL() 
     {
     TRACER( "CGlxContentHarvesterPluginDownloads::UpdateDataL" );
-    if(iMediaList && iMediaList->Count() && iPreviewItemCount.Count() )
+
+    if (!iMediaList)
+        {
+        return;
+        }
+
+    if (iMediaList->Count() && iPreviewItemCount.Count())
         {
         GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::UpdateDataL(),iProgressIndex=%d",iProgressIndex);
         TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]);
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginmonths.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginmonths.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -39,13 +39,8 @@
 #include "glxcontentharvesterplugin.hrh"
 #include "glxmapconstants.h"
 
+
 // ============================ MEMBER FUNCTIONS ==============================
-LOCAL_C TInt TimerCallbackL( TAny* aPtr )
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::TimerCallbackL" );
-    static_cast<CGlxContentHarvesterPluginMonths*>(aPtr)->UpdateDataL();
-    return KErrNone;
-    }
 
 // ----------------------------------------------------------------------------
 // Constructor
@@ -72,8 +67,6 @@
     //Call the base class ConstructL to create default bitmap
     CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
 
-    iPeriodic = CPeriodic::NewL( CActive::EPriorityLow );
-    
     iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
     iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
 
@@ -107,12 +100,6 @@
     {
     TRACER( "CGlxContentHarvesterPluginMonths::~CGlxContentHarvesterPluginMonths" );
     DestroyMedialist();
-    if ( iPeriodic )
-        {
-        iPeriodic->Cancel();
-        }
-    delete iPeriodic;
-
     }
 
 // ----------------------------------------------------------------------------
@@ -122,19 +109,20 @@
 void CGlxContentHarvesterPluginMonths::UpdateDataL() 
     {
     TRACER( "CGlxContentHarvesterPluginMonths::UpdateDataL" );
-    if(iMediaList && iMediaList->Count() && iPreviewItemCount.Count() )
+    
+    if (!iMediaList)
         {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::UpdateDataL(),iProgressIndex=%d",iProgressIndex);
-        TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]);
+        return;
+        }
+    
+    if (iMediaList->Count())
+        {
+        TInt ret = UpdateItem(KPreviewItemIndex);
         if(ret != KErrNotFound)
             {
             //Updates the thumbnail in the collection 
             UpdateDataInCPSL(ret);
             }
-        else
-            {
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
         }
     else
         {
@@ -165,52 +153,6 @@
     }
 
 // ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleItemChanged()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::HandleItemChanged()
-    {
-    TRACER("CGlxContentHarvesterPluginMonths::HandleItemChanged");
-
-    iProgressIndex = 0;
-    iPreviewItemCount.Reset();
-
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    if(iMediaList)  
-        {
-        TInt count = iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths:: HandleItemChanged ,count=%d",count);
-
-        TBool inFocus = IsFocused();
-        for(TInt aItemIndex = 0; aItemIndex < count; aItemIndex++)
-            {
-            const TGlxMedia& item = iMediaList->Item( aItemIndex );
-            const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-            if (value)
-                {
-                iPreviewItemCount.InsertInOrder(aItemIndex);
-                if(!inFocus)
-                    {
-                    //if the collection is NOT in Focus,retrieve only one thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::HandleItemChanged,Range=1,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-                else if(iPreviewItemCount.Count() == KPreviewThumbnailFetchCount ||
-                        iPreviewItemCount.Count() == count )
-                    {
-                    //if the collection is not in Focus,retrieve 15 thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::HandleItemChanged,Range=15,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-
-                }
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
 // CGlxContentHarvesterPluginMonths::UpdateDataInCPSL()
 // ----------------------------------------------------------------------------
 // 
@@ -251,14 +193,6 @@
     const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
     if (value)
         {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::UpdateItem,iProgressIndex=%d ",iProgressIndex);
-        iProgressIndex++;
-        if (iProgressIndex >= KPreviewThumbnailFetchCount || 
-                iProgressIndex >= iPreviewItemCount.Count() ||
-                iProgressIndex >= iMediaList->Count())
-            {
-            iProgressIndex = 0;
-            }
         return value->iBitmap->Handle();
         }
     return KErrNotFound;
@@ -275,7 +209,7 @@
     GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::ActivateL aOn =%d",aOn);
     SetFocus(aOn);
 
-    if (IsMatrixMenuInForegroundL() && aOn && !iPeriodic->IsActive() )
+    if (IsMatrixMenuInForegroundL() && aOn )
         {
         if(GetCHPlugin()->IsRefreshNeeded())
             {
@@ -288,10 +222,6 @@
             //to update the thumbnails on the focus , need to call the below function
             UpdatePreviewThumbnailListL();
             }
-
-        iPeriodic->Start( KTimerInterval, 
-                KTimerInterval, 
-                TCallBack( TimerCallbackL, this ) );
         }
     else if ( !aOn )
         {
@@ -302,7 +232,6 @@
             GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::ActivateL !aOn =%d and matrix not in foreground",aOn);
             GetCHPlugin()->UpdatePlugins(aOn);
             }
-        iPeriodic->Cancel();
         }
     }
 
@@ -369,25 +298,12 @@
         if (value)
             {
             GLX_LOG_INFO("CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL Thumbnail is present ");
-            iPreviewItemCount.InsertInOrder(aItemIndex);
 
-            //if the collection on the matrix menu is not focused,then show only one thumbnail
-            if(!IsFocused())
-                {
+			// Update the preview thumbnail
+			//remove the observer as client need not listen to the callbacks 
                 GLX_LOG_INFO("CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL,one thumbnail fetched");
-                UpdateDataInCPSL( value->iBitmap->Handle());
-                //if one thumbnail is fetched,it is sufficent when the collection is not in focus.
-                //remove the observer as client need not listen to the callbacks 
-                iMediaList->RemoveMediaListObserver( this );
-                }
-            else if (iPreviewItemCount.Count()  == KPreviewThumbnailFetchCount || 
-                    iPreviewItemCount.Count() == aList->Count() )
-                {
-                GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL,media list count=%d",aList->Count());
-                //if the PreviewItemCount  equals 15 or if it is eqaul to the total count
-                //remove the observer as client need not listen to the callbacks
-                iMediaList->RemoveMediaListObserver( this );
-                }
+			UpdateDataInCPSL( value->iBitmap->Handle());           
+			iMediaList->RemoveMediaListObserver( this );
             }//end of  check against value 
         }//end of  attribute match
     }
@@ -459,16 +375,7 @@
     TRACER( "CGlxContentHarvesterPluginMonths::CreateMedialistL" );
     if(!iMediaList)
         {
-        //if the collection is in focus then , create media list with context of 15 items else
-        // with context of single item.
-        if(IsFocused())
-            {
-            iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); 
-            }
-        else
-            {
-            iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-            }
+		iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
 
         iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
                 KGlxCollectionPluginMonthsImplementationUid ), 
@@ -489,10 +396,8 @@
     //this function is executed or when the collection recives the focus. 
     if(!iMediaList)
         {
-        //medis list is not created yet,create it.
+        //media list is not created yet,create it.
         CreateMedialistL( );
-        //This is called to show the preview thumbnails. If no thumbnails are
-        //present, display nothing 
         UpdateDataL();
         }
     else
@@ -501,28 +406,12 @@
             {
             ContainerCacheCleanupL(iMediaList);
             }  
-        if(IsFocused())
-	        {
-	        //1.This loop is executed,when the collection gets focus
-	        //2.This loop is executed,when the contents are updated for this collection
-	        //and this collection has focus,so 15 thumbnails are fetched.
-	        HandleItemChanged();
-	        iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount );
-	        RemoveContextAndObserver();
-	        AddContextAndObserverL();
-	        }
-	    else
-	        {
-	        //1.This loop is executed,when the contents are updated for this collection
-	        //and this collection doesn't have the focus,so only one thumbnail is fetched.
 
-	        //here we need to fetch only one item 
 	        //1.if the content is deleted,then creating a context doesn't fetch the attributes
 	        //2.if the content is added and the content is not the latest as per the sorted order of the
 	        // media list,then the thumbnails are not fetched.
 	        // so show the first available thumbnail in the media list.
 
-	        HandleItemChanged();
 	        UpdateDataL();
 
 	        //Adding the context doesn't gaurantee we get a call back for
@@ -536,7 +425,7 @@
 	        RemoveContextAndObserver();
 	        AddContextAndObserverL();
 			}
-        }
+	
     }
 
 
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugintags.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugintags.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -38,13 +38,8 @@
 #include "glxcontentharvesterplugin.hrh"
 #include "glxmapconstants.h"
 
+
 // ============================ MEMBER FUNCTIONS ==============================
-LOCAL_C TInt TimerCallbackL( TAny* aPtr )
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::TimerCallbackL" );
-    static_cast<CGlxContentHarvesterPluginTags*>(aPtr)->UpdateDataL();
-    return KErrNone;
-    }
 
 // ----------------------------------------------------------------------------
 // Constructor
@@ -71,8 +66,6 @@
     //Call the base class ConstructL to create default bitmap
     CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
 
-    iPeriodic = CPeriodic::NewL( CActive::EPriorityLow );
-    
     iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
     iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator);
 
@@ -108,12 +101,6 @@
     TRACER( "CGlxContentHarvesterPluginTags::~CGlxContentHarvesterPluginTags" );
 
     DestroyMedialist();
-    if ( iPeriodic )
-        {
-        iPeriodic->Cancel();
-        }
-    delete iPeriodic;
-
     }
 
 // ----------------------------------------------------------------------------
@@ -123,30 +110,31 @@
 void CGlxContentHarvesterPluginTags::UpdateDataL() 
     {
     TRACER( "CGlxContentHarvesterPluginTags::UpdateDataL" );
-    if(iMediaList && iMediaList->Count() && iPreviewItemCount.Count() )
+    
+    if (!iMediaList)
         {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::UpdateDataL(),iProgressIndex=%d",iProgressIndex);
-        TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]);
-        if(ret != KErrNotFound)
+        return;
+        }
+
+    if (iMediaList->Count())
+        {
+        TInt ret = UpdateItem(KPreviewItemIndex);
+        if (ret != KErrNotFound)
             {
             //Updates the thumbnail in the collection 
             UpdateDataInCPSL(ret);
             }
-        else
-            {
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
         }
     else
         {
         // Show previous thumbnail until the new thumbnail is
         // fecthed.Added this check to avoid flicker
-        if(!GetCHPlugin()->IsRefreshNeeded() || (iMediaList->Count() == 0))
-        	{
-			//Don't Show the Thumbnail/Show nothing
-			GLX_LOG_INFO("CGlxContentHarvesterPluginTags::UpdateDataL() --O");
-			UpdateDataInCPSL(GetBitmapHandle());
-        	}
+        if (!GetCHPlugin()->IsRefreshNeeded() || (iMediaList->Count() == 0))
+            {
+            //Don't Show the Thumbnail/Show nothing
+            GLX_LOG_INFO("CGlxContentHarvesterPluginTags::UpdateDataL() --O");
+            UpdateDataInCPSL(GetBitmapHandle());
+            }
         }
     }
 
@@ -165,51 +153,6 @@
     return KErrNone;
     }
 
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleItemChanged()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::HandleItemChanged()
-    {
-    TRACER("CGlxContentHarvesterPluginTags::HandleItemChanged");
-
-    iProgressIndex = 0;
-    iPreviewItemCount.Reset();
-
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    if(iMediaList)  
-        {
-        TInt count = iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginTags:: HandleItemChanged ,count=%d",count);
-
-        TBool inFocus = IsFocused();
-        for(TInt aItemIndex = 0; aItemIndex < count; aItemIndex++)
-            {
-            const TGlxMedia& item = iMediaList->Item( aItemIndex );
-            const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-            if (value)
-                {
-                iPreviewItemCount.InsertInOrder(aItemIndex);
-                if(!inFocus)
-                    {
-                    //if the collection is in Focus,retrieve only one thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::HandleItemChanged,iRange=1,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-                else if(iPreviewItemCount.Count() == KPreviewThumbnailFetchCount || 
-                        iPreviewItemCount.Count() == count )
-                    {
-                    //if the collection is not in Focus,retrieve 15 thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::HandleItemChanged,iRange=15,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-
-                }
-            }
-        }
-    }
 
 // ----------------------------------------------------------------------------
 // CGlxContentHarvesterPluginTags::UpdateDataInCPSL()
@@ -252,14 +195,6 @@
     const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
     if (value)
         {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::UpdateItem,iProgressIndex=%d ",iProgressIndex);
-        iProgressIndex++;
-        if (iProgressIndex >= KPreviewThumbnailFetchCount || 
-                iProgressIndex >= iPreviewItemCount.Count() ||
-                iProgressIndex >= iMediaList->Count())
-            {
-            iProgressIndex = 0;
-            }
         return value->iBitmap->Handle();
         }
     return KErrNotFound;
@@ -276,7 +211,7 @@
     GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::ActivateL aOn =%d",aOn);
     SetFocus(aOn);
 
-    if (IsMatrixMenuInForegroundL() && aOn && !iPeriodic->IsActive() )
+    if (IsMatrixMenuInForegroundL() && aOn )
         {
         if(GetCHPlugin()->IsRefreshNeeded())
             {
@@ -289,10 +224,6 @@
             //to update the thumbnails on the focus , need to call the below function
             UpdatePreviewThumbnailListL();
             }
-
-        iPeriodic->Start( KTimerInterval, 
-                KTimerInterval, 
-                TCallBack( TimerCallbackL, this ) );
         }
     else if ( !aOn )
         {
@@ -303,7 +234,6 @@
             GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::ActivateL !aOn =%d and matrix not in foreground",aOn);
             GetCHPlugin()->UpdatePlugins(aOn);    
             }
-        iPeriodic->Cancel();
         }
     }
 
@@ -370,25 +300,12 @@
         if (value)
             {
             GLX_LOG_INFO("CGlxContentHarvesterPluginTags::HandleAttributesAvailableL Thumbnail is present ");
-            iPreviewItemCount.InsertInOrder(aItemIndex);
 
-            //if the collection on the matrix menu is not focused,then show only one thumbnail
-            if(!IsFocused())
-                {
+			// Update the preview thumbnail
+			//remove the observer as client need not listen to the callbacks 
                 GLX_LOG_INFO("CGlxContentHarvesterPluginTags::HandleAttributesAvailableL,one thumbnail fetched");
-                UpdateDataInCPSL( value->iBitmap->Handle());
-                //if one thumbnail is fetched,it is sufficent when the collection is not in focus.
-                //remove the observer as client need not listen to the callbacks
-                iMediaList->RemoveMediaListObserver( this );
-                }
-            else if (iPreviewItemCount.Count() == KPreviewThumbnailFetchCount ||
-                    iPreviewItemCount.Count() == aList->Count() )
-                {
-                GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::HandleAttributesAvailableL,media list count=%d",aList->Count());
-                //if the PreviewItemCount  equals 15 or if it is eqaul to the total count
-                //remove the observer as client need not listen to the callbacks
-                iMediaList->RemoveMediaListObserver( this );
-                }
+			UpdateDataInCPSL( value->iBitmap->Handle());           
+			iMediaList->RemoveMediaListObserver( this );
             }//end of  check against value 
         }//end of  attribute match
     }
@@ -460,17 +377,8 @@
     TRACER( "CGlxContentHarvesterPluginTags::CreateMedialistL" );
     if(!iMediaList)
         {
-        //if the collection is in focus then , create media list with context of 15 items else
-        // with context of single item.
-        if(IsFocused())
-            {
-            iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); 
-            }
-        else
-            {
             iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-            }
-
+    
         iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
         		KGlxTagCollectionPluginImplementationUid ),
         		iUriAttributeContext, iThumbnailAttributeContext); 
@@ -491,10 +399,8 @@
     //this function is executed or when the collection recives the focus. 
     if(!iMediaList)
         {
-        //medis list is not created yet,create it.
+        //media list is not created yet,create it.
         CreateMedialistL( );
-        //This is called to show the preview thumbnails. If no thumbnails are
-        //present, display nothing
         UpdateDataL();
         }
     else
@@ -503,28 +409,12 @@
             {
             ContainerCacheCleanupL(iMediaList);
             }
-        if(IsFocused())
-	        {			
-	        //1.This loop is executed,when the collection gets focus
-	        //2.This loop is executed,when the contents are updated for this collection
-	        //and this collection has focus,so 15 thumbnails are fetched.
-	        HandleItemChanged();
-	        iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount );
-	        RemoveContextAndObserver();
-	        AddContextAndObserverL();
-	        }
-	    else
-	        {
-	        //1.This loop is executed,when the contents are updated for this collection
-	        //and this collection doesn't have the focus,so only one thumbnail is fetched.
 
-	        //here we need to fetch only one item 
 	        //1.if the content is deleted,then creating a context doesn't fetch the attributes
 	        //2.if the content is added and the content is not the latest as per the sorted order of the
 	        // media list,then the thumbnails are not fetched.
 	        // so show the first available thumbnail in the media list.
 
-	        HandleItemChanged();
 	        UpdateDataL();
 
 	        //Adding the context doesn't gaurantee we get a call back for
@@ -538,7 +428,7 @@
 	        RemoveContextAndObserver();
 	        AddContextAndObserverL();
 			}
-        }
+	
     }
 
 // ---------------------------------------------------------------------------
--- a/photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -44,7 +44,6 @@
 #include "glxfetchercontainer.h"
 #include "glxfetcher.hrh"
 
-#define GetAppUi() (dynamic_cast<CAknAppUi*>(iEikonEnv->EikAppUi()))
 const TInt KControlId = 1;
      
 //-----------------------------------------------------------------------------
@@ -92,9 +91,9 @@
 	if(iFetcherContainer)
 	    {
 	    // Restore the Toolbar as it was in the Calling application
-	    if(GetAppUi()->CurrentFixedToolbar())  // there is Hardware Specific Output for Fixed ToolBar
+	    if(iAvkonAppUi->CurrentFixedToolbar())  // there is Hardware Specific Output for Fixed ToolBar
 	        {
-	        GetAppUi()->CurrentFixedToolbar()->SetToolbarVisibility(ETrue);
+	        iAvkonAppUi->CurrentFixedToolbar()->SetToolbarVisibility(ETrue);
 	        }
 
 	    TRAP_IGNORE(iFetcherContainer->SetPreviousTitleL());
@@ -116,9 +115,9 @@
     CAknDialog::ConstructL( R_MULTISELECT_FETCHER_MENUBAR );
 
     // Get the Instance of the toolbar and disable it as it is note required in the Fetcher Application
-    if(GetAppUi()->CurrentFixedToolbar())  // there is Hardware Specific Output for Fixed ToolBar
+    if (iAvkonAppUi->CurrentFixedToolbar())  // there is Hardware Specific Output for Fixed ToolBar
         {
-        GetAppUi()->CurrentFixedToolbar()->SetToolbarVisibility(EFalse);
+        iAvkonAppUi->CurrentFixedToolbar()->SetToolbarVisibility(EFalse);
         }
 	// Get the Hitchcock environment.
     iUiUtility = CGlxUiUtility::UtilityL();
--- a/photosgallery/gallery/group/glx_reg.rss	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/gallery/group/glx_reg.rss	Mon Jan 18 20:19:20 2010 +0200
@@ -31,6 +31,4 @@
 	//
 	localisable_resource_file="\\resource\\apps\\glx_loc";
   	localisable_resource_id = R_GLX_LOCALISABLE_APP_INFO;
-	//
-	hidden = KAppIsHidden;
 	}
--- a/photosgallery/gallery/inc/glxappui.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/gallery/inc/glxappui.h	Mon Jan 18 20:19:20 2010 +0200
@@ -62,6 +62,10 @@
     //OOM Method
     void HandleApplicationSpecificEventL(TInt aEventType, const TWsEvent& aWsEvent);
 
+    // Callback for periodic timer, static, 
+    static TInt PeriodicCallback( TAny* aPtr );
+    //nonstatic func called from periodic timer
+    void PeriodicCallback();
 
 private:    // From CEikAppUi
     MCoeMessageObserver::TMessageResponse HandleMessageL(
@@ -213,7 +217,11 @@
     */
     TBool iEndKeyPressed;
 
-};
+    /**
+     *Timer to check for IAD updates 30 seconds after application startup.
+     */
+     CPeriodic* iPeriodic ;
+} ;
 
 
 #endif // C_GLXWERAPPUI_H
--- a/photosgallery/gallery/sis/glxgallery.pkg	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/gallery/sis/glxgallery.pkg	Mon Jan 18 20:19:20 2010 +0200
@@ -147,13 +147,6 @@
 "\epoc32\release\armv5\urel\glxcontentharvesterplugin.dll"          -"!:\sys\bin\glxcontentharvesterplugin.dll"
 "\epoc32\data\Z\resource\plugins\glxcontentharvesterplugin.rsc" 		-"!:\resource\plugins\glxcontentharvesterplugin.rsc"
 
-;photosuitelauncher - for the shortcut.
-
-"\epoc32\release\armv5\urel\photossuitelauncher.exe"-"!:\sys\bin\photossuitelauncher.exe"
-"\epoc32\data\z\resource\apps\photossuitelauncher.mif"-"!:\resource\apps\photossuitelauncher.mif"
-"\epoc32\data\z\private\10003a3f\import\apps\photossuitelauncher_reg.rsc"-"!:\private\10003a3f\import\apps\photossuitelauncher_reg.rsc"
-"\epoc32\data\z\resource\apps\photossuitelauncher.Rsc"-"!:\resource\apps\photossuitelauncher.Rsc"
-
 ; For photossuite component
 
 
--- a/photosgallery/gallery/src/glxappui.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/gallery/src/glxappui.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -94,13 +94,16 @@
 _LIT8( KPhotosAlbums, "Albums" );
 _LIT8( KPhotosAllValue,"Allcs");
 
-_LIT8( KPhotoSuiteActivationMessage, "mm://root/photossuite?exit=hide" );
 _LIT8( KPhotosSuiteExitMessage, "mm://photossuite?action=exit" );
 
 // Matrix uid, needed for activating the suite view.
 const TInt KMatrixUid = 0x101F4CD2;
 const TInt KCapturedAlbumId = 2 ;
         
+/**
+ * Start Delay for the periodic timer, in microseconds
+ */
+const TInt KPeriodicStartDelay = 60000000; // 60 secs
 // -----------------------------------------------------------------------------
 // Constructor
 // -----------------------------------------------------------------------------
@@ -172,6 +175,11 @@
         {	
         delete iBSWrapper;    
         }
+    if (iPeriodic)
+        {
+        iPeriodic->Cancel();
+        delete iPeriodic;
+        }
     
     if( iIadUpdate )
         {	
@@ -282,9 +290,11 @@
     TRAPD(err, HandleActivationMessageL(aCommand, aDocumentName, aTail));
     if ( KErrNone != err )
         {
-        // Open photos suite view
-        LaunchMmViewL( KPhotoSuiteActivationMessage );
-        Exit();
+        // Open navigational state at root level
+        CMPXCollectionPath* newState = CMPXCollectionPath::NewL();
+        CleanupStack::PushL( newState );
+        iNavigationalState->NavigateToL( *newState );
+        CleanupStack::PopAndDestroy( newState );
         }
 
     if(0 == aTail.CompareC(KNullDesC8))
@@ -524,10 +534,16 @@
     CleanupClosePushL(stream);
     stream >> msgUid;
     
-    //Check for the IADUpdate
-    //TBD: Need to check the location this has to be called.
-    //This might not be proper place.
-    DoCheckForIADUpdatesL();
+    //Start a timer to check for thr IAD update after 30 Secs.
+    if(!iPeriodic)
+        {
+        iPeriodic = CPeriodic::NewL(CActive::EPriorityLow);
+        }    
+    if ( !iPeriodic->IsActive() )
+        {
+        iPeriodic->Start( KPeriodicStartDelay, KMaxTInt, 
+                TCallBack( &PeriodicCallback, static_cast<TAny*>(this) ) );
+        }
     
     switch ( msgUid.iUid )
         {
@@ -537,6 +553,7 @@
             // Send the command to reset the view
             ProcessCommandL(EGlxCmdResetView);
             // Not using KGlxCollectionPluginCameraImplementationUid
+            iNavigationalState->SetBackExitStatus(ETrue);
             path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);            
             path->AppendL(KCapturedAlbumId);
             SetActivationParamL(KGlxActivationFullScreen);
@@ -545,6 +562,7 @@
         case KGlxActivationCameraAlbum:
             // Go to camera album tile view
             GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: camera album");
+            iNavigationalState->SetBackExitStatus(ETrue);
             path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);
             path->AppendL(KCapturedAlbumId);
             break;
@@ -552,7 +570,14 @@
         case KGlxActivationPhotosMenu:
             // Open the main view
             GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: photos menu");
-            break;            
+            break;
+            
+        case KGlxActivationAllView:
+            GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: Show all photos");
+            // Send the command to reset the view
+            ProcessCommandL(EGlxCmdResetView);
+            path->AppendL(KGlxCollectionPluginAllImplementationUid);            
+        	break;            
 
         default:
             GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: unknown command");
@@ -560,34 +585,30 @@
 
             if(0 == aData.CompareC(KPhotosCaptured))
                 {
-                iNavigationalState->SetBackExitStatus(ETrue);
                 path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);
 				path->AppendL(KCapturedAlbumId);
                 }
             else if(0 == aData.CompareC(KPhotosAllValue))
                 {
-                iNavigationalState->SetBackExitStatus(ETrue);
                 path->AppendL(KGlxCollectionPluginAllImplementationUid);
                 }
             else if(0 == aData.CompareC(KPhotosMonths))
                 {
-                iNavigationalState->SetBackExitStatus(ETrue);
                 path->AppendL(KGlxCollectionPluginMonthsImplementationUid);
                 }
             else if(0 == aData.CompareC(KPhotosAlbums))
                 {
-                iNavigationalState->SetBackExitStatus(ETrue);
                 path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);
                 }
             else if(0 == aData.CompareC(KPhotosTags))
                 {
-                iNavigationalState->SetBackExitStatus(ETrue);
                 path->AppendL(KGlxTagCollectionPluginImplementationUid);
                 }
             else
                 {
                 User::Leave(KErrNotSupported);
                 }
+            iNavigationalState->SetBackExitStatus(ETrue);
             TBuf8<15> buf;
             buf.Append( KPhotosSuiteNavigation );
             TRAP_IGNORE(iBSWrapper->ForwardActivationEventL( buf, ETrue ))
@@ -595,6 +616,7 @@
             break;
         }
     CleanupStack::PopAndDestroy(&stream);
+    iNavigationalState->SetStartingLevel(path->Levels());
     iNavigationalState->NavigateToL( *path );
     CleanupStack::PopAndDestroy(path);
     
@@ -784,20 +806,53 @@
     cacheManager->Close();
     }
 
+// -----------------------------------------------------------------------------
+// Callback from periodic timer
+// -----------------------------------------------------------------------------
+//
+TInt CGlxAppUi::PeriodicCallback(TAny* aPtr)
+    {
+    TRACER("CGlxAppUi::PeriodicCallback(TAny* aPtr)");
+    // get "this" pointer    
+    static_cast<CGlxAppUi*>(aPtr)->PeriodicCallback();
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// Callback from periodic timer, non-static
+// -----------------------------------------------------------------------------
+//
+void CGlxAppUi::PeriodicCallback()
+    {
+    TRACER("CGlxAppUi::PeriodicCallback()");
+    TRAP_IGNORE(DoCheckForIADUpdatesL());
+    iPeriodic->Cancel();
+    }    
+
 // ---------------------------------------------------------------------------
-// CGlxAppUi::DoCheckForIADUpdatesL()
+// CCGlxNsAppUi::DoCheckForIADUpdatesL()
 // Check for updates via IAD
 // ---------------------------------------------------------------------------
 // 
 void CGlxAppUi::DoCheckForIADUpdatesL()
     {
     TRACER("CGlxAppUi::DoCheckForIADUpdatesL()");
-    
+#ifdef _DEBUG
+    TTime startTime;
+    GLX_LOG_INFO("CGlxAppUi::DoCheckForIADUpdatesL(+)");  
+    startTime.HomeTime();
+#endif
     if ( !iIadUpdate )
         {
         iIadUpdate = CGlxIadUpdate::NewL();
         }
     iIadUpdate->StartL();
+#ifdef _DEBUG
+    TTime stopTime;
+    stopTime.HomeTime();
+    GLX_DEBUG2("CGlxAppUi::DoCheckForIADUpdatesL(-) took <%d> us", 
+                    (TInt)stopTime.MicroSecondsFrom(startTime).Int64());
+#endif    
     }
 
 // ---------------------------------------------------------------------------
--- a/photosgallery/group/bld.inf	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/group/bld.inf	Mon Jan 18 20:19:20 2010 +0200
@@ -77,8 +77,5 @@
 //include photos memory plug-in
 #include "../memoryplugin/group/bld.inf"
 
-//include Photos Suite Launcher
-#include "../photossuitelauncher/group/bld.inf"
-
 //include imageviewer
 #include "../imgvwr/group/bld.inf"
\ No newline at end of file
--- a/photosgallery/photossuitelauncher/data/photossuitelauncher.rss	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Resource definitions for photos suite launcher
-*
-*/
-//  RESOURCE IDENTIFIER
-NAME PHOT	// 4 letter ID
-
-
-//  INCLUDES
-#include <eikon.rh>
-#include <avkon.rsg>
-#include <avkon.rh>
-#include <appinfo.rh>
-#include "matrixmenudata.loc"
-
-//  RESOURCE DEFINITIONS
-// -----------------------------------------------------------------------------
-//
-//	Define the resource file signature
-//	This resource should be empty.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE RSS_SIGNATURE
-	{
-	}
-
-
-// ---------------------------------------------------------------------------- 
-//
-// r_localisable_app_info
-//
-// ---------------------------------------------------------------------------- 
-//
-RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
-	{
-	short_caption = qtn_apps_photos_grid;
-	caption_and_icon = 
-	CAPTION_AND_ICON_INFO
-		{
-		caption = qtn_apps_photos_grid;
-
-		number_of_icons = 1;
-		icon_file = "\\resource\\apps\\photossuitelauncher.mif";
-		};
-	}
-
-// End of File
--- a/photosgallery/photossuitelauncher/data/photossuitelauncher_reg.rss	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Application's registration resource file 
-*
-*/
-
-#include <appinfo.rh>
-#include <photossuitelauncher.rsg>
-#include "photossuitelauncher.hrh"
-
-UID2 KUidAppRegistrationResourceFile
-UID3 _UID3
-
-RESOURCE APP_REGISTRATION_INFO
-	{
-	app_file="photossuitelauncher";
-	localisable_resource_file =  "\\resource\\apps\\photossuitelauncher";
-	localisable_resource_id = R_LOCALISABLE_APP_INFO;
-    
-	embeddability=KAppNotEmbeddable;
-	newfile=KAppDoesNotSupportNewFile;
-	}
-
--- a/photosgallery/photossuitelauncher/group/bld.inf	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    This file provides the information required for building the
-*				whole of a photossuitelauncher.
-*
-*/
-
-
-PRJ_PLATFORMS
-WINSCW ARMV5
-
-
-PRJ_EXTENSIONS
-START EXTENSION s60/mifconv
-OPTION TARGETFILE photossuitelauncher.mif
-OPTION SOURCES 	-c8,8 qgn_menu_photos 
-END
-
-PRJ_MMPFILES
-photossuitelauncher.mmp
-
--- a/photosgallery/photossuitelauncher/group/photossuitelauncher.mmp	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    This is the project specification file for photossuitelauncher.
-*
-*/
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-#include "../inc/photossuitelauncher.hrh"
-
-CAPABILITY	  	CAP_APPLICATION
-TARGET			photossuitelauncher.exe
-TARGETTYPE		exe
-UID		        0x100039CE _UID3
-
-APP_LAYER_SYSTEMINCLUDE
-USERINCLUDE	   	../inc
-
-SYSTEMINCLUDE           ../../inc
-
-SOURCEPATH 		../src
-SOURCE 			photossuitelauncher.cpp
-
-SOURCEPATH		../data
-
-START RESOURCE	photossuitelauncher.rss
-HEADER
-TARGET photossuitelauncher
-TARGETPATH APP_RESOURCE_DIR
-LANGUAGE_IDS
-END //RESOURCE
-
-START RESOURCE	photossuitelauncher_reg.rss
-DEPENDS photossuitelauncher.rsg
-TARGET photossuitelauncher_reg
-TARGETPATH 	  /private/10003a3f/import/apps
-END //RESOURCE
-
-LIBRARY		   euser.lib
-LIBRARY		   apparc.lib
-LIBRARY		   commonengine.lib
-LIBRARY		   apgrfx.lib
-LIBRARY        ws32.lib 
-LIBRARY        glxlogging.lib
-
-
-// End of File
--- a/photosgallery/photossuitelauncher/inc/photossuitelauncher.hrh	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    This file contains declarations for constants of photossuitelauncher.
-* The file can be included in C++ or resource file.
-*
-*/
-
-#ifndef __PHOTOSSUITELAUNCHER_HRH__
-#define __PHOTOSSUITELAUNCHER_HRH__
-
-#define _UID3 0x200104E4
-
-#endif // __PHOTOSSUITELAUNCHER_HRH__
--- a/photosgallery/photossuitelauncher/sis/backup_registration.xml	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<?xml version="1.0" standalone="yes"?>
-<backup_registration>
-  <system_backup/>
-  <restore requires_reboot = "no"/>
-</backup_registration>
--- a/photosgallery/photossuitelauncher/sis/createsis.bat	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-rem
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:  Batch file to create sis file for photossuite launcher
-rem
-
-makesis photossuitelauncher.pkg
-signsis photossuitelauncher.sis photossuitelauncher.sisx rd.cer rd-key.pem
--- a/photosgallery/photossuitelauncher/sis/photossuitelauncher.pkg	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description:    Package file for photossuitelauncher application
-;
-
-
-;Language - standard language definitions
-&EN
-
-; standard SIS file header
-#{"photossuitelauncher"},(0x200104E4),1,0,0
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-;Supports Series 60 v 3.0
-[0x101F7961], 0, 0, 0, {"Series60v3.0"}
-
-;Files to install
-;You should change the source paths to match that of your environment
-;<source> <destination>
-"\Epoc32\release\armv5\urel\photossuitelauncher.exe"		-"!:\sys\bin\photossuitelauncher.exe"
-"\Epoc32\data\z\resource\apps\photossuitelauncher.rsc"		-"!:\resource\apps\photossuitelauncher.rsc"
-"\Epoc32\data\z\private\10003a3f\apps\photossuitelauncher_reg.rsc"	-"!:\private\10003a3f\import\apps\photossuitelauncher_reg.rsc"
-"\Epoc32\data\z\resource\apps\photossuitelauncher.mif" -"!:\resource\apps\photossuitelauncher.mif"
Binary file photosgallery/photossuitelauncher/sis/photossuitelauncher.sis has changed
Binary file photosgallery/photossuitelauncher/sis/photossuitelauncher.sisx has changed
--- a/photosgallery/photossuitelauncher/sis/rd-key.pem	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQDLRF+r1FGGkCwTrb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW4
-6Y+LWaA8HMlDdoHRB0FgASisYcFagwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh
-7W7Dt9F5FZij8F7/9Pi6+FhhxZFIf1DD+yry9D7+Sp+BgdNALe4XOpf25QIBAwKB
-gQCHgupyjYuvCsgNHn7PNtnvVxInrB5MQNoPli+O+uNJWUK/Q+57Rl+yO8AoEzDX
-pFaLWiuVVhsdloDnAgabT/FXzYncs6uOHyEUV+dSXb78vtLPJqAX+Fg2i3hOXreB
-yskcZ13/OsKVOu5wgrJkx2baZufkqMwOSytf5y9nwjEIKwJBAP+inobagVNrN62j
-KQva3cC+UN/6XnKdTc0CA6bHyLOaJoH1xiMwG/VS2PGjHI0tiSMNtLn/QPpHJ003
-iabGhdUCQQDLjp/9UjFT6K6CF66Chqf30pZXhx+GTSQZmv/gvZiMly7X9fX9BGX3
-2MbJohBC4yI21XKTbisWywkF73Hwh+TRAkEAqmxprzxWN5zPyRdwspHpKymLP/w+
-9xOJM1atGdqFzRFvAU6EF3Vn+OHl9my9s3OwwgkjJqorUYTE3iUGby8D4wJBAIe0
-aqjhdjfwdFa6dFcEb/qMZDpaFQQzbWZnVUB+ZbMPdI/5TqitmU/l2dvBYCyXbCSO
-TGJJcg8yBgP09qBamIsCQFL7j1tM0XPVQJQ89WpKCld7O9ORxRGVj1eG0tWijrH8
-mGbYh8SGCVoWV3vrKSS8GBrFVgQnqUaHuEdtM7tpCAQ=
------END RSA PRIVATE KEY-----
--- a/photosgallery/photossuitelauncher/sis/rd.cer	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICzDCCAjWgAwIBAgIBADANBgkqhkiG9w0BAQUFADArMRAwDgYDVQQKEwdSRCBD
-ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZTAeFw0wNDExMTUxMjQyMDZaFw0z
-NzA5MjMxMjQyMDZaMCsxEDAOBgNVBAoTB1JEIENlcnQxFzAVBgNVBAMTDlJEIENl
-cnRpZmljYXRlMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDLRF+r1FGGkCwT
-rb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW46Y+LWaA8HMlDdoHRB0FgASisYcFa
-gwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh7W7Dt9F5FZij8F7/9Pi6+FhhxZFI
-f1DD+yry9D7+Sp+BgdNALe4XOpf25QIBA6OCAQAwgf0wDAYDVR0TBAUwAwEB/zAL
-BgNVHQ8EBAMCAoQwHQYDVR0OBBYEFFi/kuGzxhVpjGxe9ZwlxC3fH9jFMFMGA1Ud
-IwRMMEqAFFi/kuGzxhVpjGxe9ZwlxC3fH9jFoS+kLTArMRAwDgYDVQQKEwdSRCBD
-ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZYIBADBsBgNVHSAEZTBjMGEGBFUd
-IAAwWTATBggrBgEFBQcCARYHaHR0cDovLzBCBggrBgEFBQcCAjA2GjRGb3IgUiZE
-IHVzYWdlIG9ubHkuIFRoaXMgY2VydGlmaWNhdGUgaXMgbm90IHRydXN0ZWQuMA0G
-CSqGSIb3DQEBBQUAA4GBAHGB4RQMAgBdeT2hxfOr6f2nA/dZm+M5yX5daUtZnET9
-Ed0A9sazLawfN2G1KFQT9kxEParAyoAkpbMAsRrnRz/9cM3OHgFm/NiKRnf50DpT
-7oCx0I/65mVD2kt+xXE62/Ii5KPnTufIkPi2uLvURCia1tTS8JmJ8dtxDGyQt8BR
------END CERTIFICATE-----
--- a/photosgallery/photossuitelauncher/src/photossuitelauncher.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   Main application class
-*
-*/
-
-
-// INCLUDE FILES
-
-// Command Line and APA
-#include <apgtask.h>
-#include <apgcli.h>
-#include <apaid.h>
-#include <apacmdln.h>
-
-#include <glxlog.h>
-
-const TInt KPhotosSuiteUid ( 0x101f4cd2 );
-
-// -----------------------------------------------------------------------------
-// LaunchMenuViewL
-// -----------------------------------------------------------------------------
-//
-void LaunchMenuViewL( const TDesC8& aMessage )
-	{
-	GLX_LOG_INFO("PhotosSuiteLauncher LaunchMenuViewL");
-	RWsSession wssession;
-	User::LeaveIfError(wssession.Connect());
-	CleanupClosePushL(wssession);
-	
-  TApaTaskList taskList( wssession );    
-  TApaTask task = taskList.FindApp( TUid::Uid( KPhotosSuiteUid ) );
-  
-  if ( task.Exists() )
-      {
-      TInt err = task.SendMessage( TUid::Uid( KUidApaMessageSwitchOpenFileValue ), 
-        					aMessage );
-	    }
-	else
-	    { // app not yet running
-	    RApaLsSession appArcSession;
-	    CleanupClosePushL( appArcSession );
-	    User::LeaveIfError( appArcSession.Connect() ); 	    
-      TApaAppInfo appInfo;
-      TInt err = appArcSession.GetAppInfo( appInfo, 
-      								TUid::Uid( KPhotosSuiteUid ) );
-      if( err == KErrNone )
-          {
-          CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
-          cmdLine->SetExecutableNameL( appInfo.iFullName );
-          cmdLine->SetCommandL( EApaCommandRun );
-          cmdLine->SetTailEndL( aMessage );
-
-          appArcSession.StartApp( *cmdLine );
-          CleanupStack::PopAndDestroy( cmdLine );
-          }
-	    CleanupStack::PopAndDestroy( &appArcSession ); 
-	    }
-  CleanupStack::PopAndDestroy( &wssession ); 
-	}
-
-// -----------------------------------------------------------------------------
-// DoItL
-// -----------------------------------------------------------------------------
-//
-void DoItL()
-    {
-    GLX_LOG_INFO("PhotosSuiteLauncher DoItL");	
-    LaunchMenuViewL(_L8("mm://photossuite?exit=hide"));
-    }
-
-
-// -----------------------------------------------------------------------------
-// E32Main
-// -----------------------------------------------------------------------------
-//
-GLDEF_C TInt E32Main()
-    {
-    __UHEAP_MARK;
-    CTrapCleanup* cleanup=CTrapCleanup::New(); // get clean-up stack
-    TRAPD(error,DoItL()); // more initialization, then do example 
-    if(error != KErrNone)   
-	    {
-	    GLX_LOG_INFO1("PhotosSuiteLauncher DoItL Error %d",error);	
-	    }
-    delete cleanup; // destroy clean-up stack
-    __UHEAP_MARKEND;
-    return 0; // and return
-    }
-
-
--- a/photosgallery/rom/glxgallery.iby	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/rom/glxgallery.iby	Mon Jan 18 20:19:20 2010 +0200
@@ -27,22 +27,15 @@
 // photos image viewer
 data=\epoc32\data\z\private\10003a3f\import\apps\glxivwr_reg.rsc         private\10003a3f\import\apps\glxivwr_reg.rsc
 
-//photosuitelauncher application resource file
-data=\epoc32\data\z\private\10003a3f\import\apps\photossuitelauncher_reg.rsc         private\10003a3f\import\apps\photossuitelauncher_reg.rsc
 
 // stub sisx file to be included in ROM
 data=\epoc32\data\z\system\install\glxgallery_stub.sis        \system\install\glxgallery_stub.sis
 
 S60_APP_EXE(glx)
 
-//photosuitelauncher application 
-S60_APP_EXE(photossuitelauncher)
-
 //photos image viewer exe
 S60_APP_EXE(glxivwr)
 
-data=DATAZ_\APP_RESOURCE_DIR\photossuitelauncher.mif          APP_RESOURCE_DIR\photossuitelauncher.mif
-
 
 data=DATAZ_\APP_RESOURCE_DIR\glxicons.mif                     APP_RESOURCE_DIR\glxicons.mif  
 data=DATAZ_\APP_RESOURCE_DIR\glx_aif.mif                      APP_RESOURCE_DIR\glx_aif.mif  
--- a/photosgallery/rom/glxgallery_resources.iby	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/rom/glxgallery_resources.iby	Mon Jan 18 20:19:20 2010 +0200
@@ -31,12 +31,8 @@
 data=DATAZ_\APP_RESOURCE_DIR\glxivwr_loc.Rsc                      APP_RESOURCE_DIR\glxivwr_loc.Rsc  
 data=DATAZ_\APP_RESOURCE_DIR\glxivwr.Rsc                          APP_RESOURCE_DIR\glxivwr.Rsc 
 
-//photosuitelauncher application resource file
-data=DATAZ_\APP_RESOURCE_DIR\photossuitelauncher.Rsc          APP_RESOURCE_DIR\photossuitelauncher.Rsc  
-
 //data=DATAZ_\APP_RESOURCE_DIR\glxtagsmanagerview.rsc         APP_RESOURCE_DIR\glxtagsmanagerview.rsc  
 
-
 data=DATAZ_\APP_RESOURCE_DIR\glxtagsbrowserview.rsc           APP_RESOURCE_DIR\glxtagsbrowserview.rsc  
 
 data=DATAZ_\resource\plugins\glxplugintags.rsc                resource\plugins\glxplugintags.rsc
--- a/photosgallery/slideshow/engine/tsrc/t_cshwdefaulteffectmanager/t_cshwdefaulteffectmanager.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwdefaulteffectmanager/t_cshwdefaulteffectmanager.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -123,9 +123,9 @@
     CleanupStack::Pop( effect );
 
 	// TRAP since we expect it to leave
-	TRAPD( error, iDefaultEffectManager->CurrentEffect() );
-    EUNIT_ASSERT_EQUALS_DESC( 
-    	NShwEngine::EIncorrectEffectIndex, error, "iEffects was not set");
+	//TRAPD( error, iDefaultEffectManager->CurrentEffect() );
+   // EUNIT_ASSERT_EQUALS_DESC( 
+   // 	NShwEngine::EIncorrectEffectIndex, error, "iEffects was not set");
 	// get effects info
    	TShwEffectInfo info = effect->EffectInfo();
 	// set effect order
@@ -136,18 +136,19 @@
     EUNIT_ASSERT_DESC( 
     	current == static_cast<MShwEffect*>( effect ), "current effect was set");   
     }
-
+	
 void T_CShwDefaultEffectManager::TestAddNullEffectL()
     {
     iDefaultEffectManager->AddEffectL( NULL );
 
 	// TRAP since we expect it to leave
-	TRAPD( error, iDefaultEffectManager->CurrentEffect() );
-    EUNIT_ASSERT_EQUALS_DESC( 
-    	NShwEngine::EIncorrectEffectIndex, error, "iEffects was not set");
+	//TRAPD( error, iDefaultEffectManager->CurrentEffect() );
+    //EUNIT_ASSERT_EQUALS_DESC( 
+    //	NShwEngine::EIncorrectEffectIndex, error, "iEffects was not set");
 
 	// create empty effect info
    	TShwEffectInfo info;
+	TInt error ;
 	// set effect order
 	TRAP( error, iDefaultEffectManager->SetDefaultEffectL( info ) );
 	// ask for effect again
--- a/photosgallery/slideshow/settingsdialog/data/shwsettingsdialog.rss	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/slideshow/settingsdialog/data/shwsettingsdialog.rss	Mon Jan 18 20:19:20 2010 +0200
@@ -489,11 +489,6 @@
     {
     items =
         {
-        MENU_ITEM
-        	{
-        	command = EShwCmdSettingsChange;  
-        	txt = qtn_options_change;
-        	},
         MENU_ITEM 
         	{ 
         	command = EShwCmdHelp; 
--- a/photosgallery/slideshow/settingsdialog/inc/shwslideshowsettings.hrh	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/slideshow/settingsdialog/inc/shwslideshowsettings.hrh	Mon Jan 18 20:19:20 2010 +0200
@@ -36,7 +36,7 @@
 #define ETransEffectListItem    5
 
 
-#define EShwCmdSettingsChange   0x6000
+
 #define EShwCmdHelp	            0x6001	
 #define EShwCmdExit	            0x6002
 
--- a/photosgallery/slideshow/settingsdialog/src/shwslideshowsettingsdialog.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/slideshow/settingsdialog/src/shwslideshowsettingsdialog.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -45,7 +45,6 @@
 #include "shwsettingsmodel.h"			 // for CShwSettingsModel
 #include "shwslideshowsettingslist.h"	 // for CShwSlideshowSettingsList
 
-#define GetAppUi() (dynamic_cast<CAknAppUi*>(iEikonEnv->EikAppUi()))
 //CONSTANTS
 namespace
 	{
@@ -119,7 +118,7 @@
 	// hide toolbar.	
 	SetSlShwToolbarVisibility(EFalse);
 	iStatusPaneChanged = EFalse;
-	iStatusPane = GetAppUi()->StatusPane();
+	iStatusPane = iAvkonAppUi->StatusPane();
     iTitlePane = ( CAknTitlePane* )iStatusPane->ControlL(
             TUid::Uid( EEikStatusPaneUidTitle ));
 	// If Status pane not visible, then make it visible.
@@ -155,8 +154,9 @@
 void CShwSlideshowSettingsDialog::SetSlShwToolbarVisibility(TBool aVisible)
     {
     TRACER("CShwSlideshowSettingsDialog::SetSlShwToolbarVisibility");
-    CAknAppUi* appUi = GetAppUi();
+    CAknAppUi* appUi = iAvkonAppUi;
     __ASSERT_DEBUG(appUi, Panic(EGlxPanicNullPointer));
+
     CAknToolbar* popupToolbar = appUi->PopupToolbar();
     if(popupToolbar)
         {
@@ -220,12 +220,6 @@
 	GLX_LOG_INFO("CShwSlideshowSettingsDialog::ProcessCommandL");			
 	switch (aCommandId)
 		{
-		case EShwCmdSettingsChange: 
-			{
-			CAknDialog::ProcessCommandL(aCommandId);
-		    iItemList->UpdateListBoxL(iItemList->ListBox()->CurrentItemIndex());
-			break;			
-			}
 		case EShwCmdHelp:
 			{
 			TCoeHelpContext helpContext;
--- a/photosgallery/slideshow/view/src/shwslideshowview.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/slideshow/view/src/shwslideshowview.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -337,13 +337,12 @@
 	iShwGestureControl = CShwGestureControl::NewL(*iEnv,*iDisplay,*this);
 	iGestureControlGroup->AppendL( iShwGestureControl );
 	
-	iGestureControl = GestureHelper::CGestureControl::NewLC( 
+	GestureHelper::CGestureControl* gestureControl = GestureHelper::CGestureControl::NewLC( 
             *iShwGestureControl, *iEnv, *iDisplay, KGestureControlGroupId );
+    iGestureControl = gestureControl;
+    CleanupStack::Pop( gestureControl ); // doc says the following takes ownership, but reality is different!
 	iGestureControlGroup->AppendL( iGestureControl );
-	
-    // doc says the following takes ownership, but reality is different!
-    
-    CleanupStack::Pop( iGestureControl );
+
 	// Need a mechanism to distinguish when we receive the MusicVolume 
 	// callback for the first time
 	iCurrentVolume = -1;
--- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -41,6 +41,7 @@
 #include <glxuistd.h>
 #include <glxuiutilities.rsg>
 #include <glxcommandhandlers.hrh>
+#include <glxtracer.h>
 #include <glxresourceutilities.h>                // for CGlxResourceUtilities
 
 /// @todo Move elsewhere
@@ -54,6 +55,7 @@
     CGlxMpxCommandCommandHandler(MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem)
         : CGlxMediaListCommandHandler(aMediaListProvider, aHasToolbarItem)
 	{
+    TRACER("CGlxMpxCommandCommandHandler::CGlxMpxCommandCommandHandler");
     iAppUi = static_cast< CAknAppUi* >( CCoeEnv::Static()->AppUi() );
 	}
 	
@@ -63,6 +65,7 @@
 //	
 EXPORT_C CGlxMpxCommandCommandHandler::~CGlxMpxCommandCommandHandler()
 	{
+    TRACER("CGlxMpxCommandCommandHandler::~CGlxMpxCommandCommandHandler");
 	// cancel command if running
 	if (iProgressComplete)
 	    {
@@ -84,6 +87,7 @@
 EXPORT_C TBool CGlxMpxCommandCommandHandler::DoExecuteL(TInt aCommandId, 
         MGlxMediaList& aList)
     {
+    TRACER("CGlxMpxCommandCommandHandler::DoExecuteL");
     // reset progress complete flag
     iProgressComplete = EFalse;
     
@@ -130,8 +134,7 @@
             		static_cast<TAny*>(this));
 
        		aList.AddMediaListObserverL(this);
-
-            // @todo TRAP this?
+			
             aList.CommandL(*command);
             
             // raise progress note. Note will be closed when complete message received
@@ -150,6 +153,7 @@
 //	
 EXPORT_C void CGlxMpxCommandCommandHandler::TryExitL(TInt aErrorCode)
 	{
+    TRACER("CGlxMpxCommandCommandHandler::TryExitL");
 	// any error will abort the command execution
     if ( KErrNone != aErrorCode ) 
 	    {
@@ -187,6 +191,7 @@
 //	
 EXPORT_C void CGlxMpxCommandCommandHandler::HandleErrorL(TInt aErrorCode) 
     {
+    TRACER("CGlxMpxCommandCommandHandler::HandleErrorL");
 	// show error note
 	GlxGeneralUiUtilities::ShowErrorNoteL(aErrorCode);
     }
@@ -198,6 +203,7 @@
 TBool CGlxMpxCommandCommandHandler::UpdateProgressL(const CMPXMessage& aMessage,
         TInt& aError)
     {
+    TRACER("CGlxMpxCommandCommandHandler::UpdateProgressL");
     TBool isComplete = EFalse;
     
     // should not receive any progress messages after progress is completed
@@ -246,6 +252,7 @@
 EXPORT_C void CGlxMpxCommandCommandHandler::DoHandleCommandCompleteL(TAny* /*aSessionId*/, 
         CMPXCommand* /*aCommandResult*/, TInt /*aError*/, MGlxMediaList* /*aList*/)
     {
+    TRACER("CGlxMpxCommandCommandHandler::DoHandleCommandCompleteL");
     }
 
 
@@ -256,6 +263,7 @@
 EXPORT_C TInt CGlxMpxCommandCommandHandler::DoHandleMessageL(const CMPXMessage& /*aMessage*/,
 	    MGlxMediaList& /*aList*/)
     {
+    TRACER("CGlxMpxCommandCommandHandler::DoHandleMessageL");
     return KErrNone;
     }
 
@@ -266,6 +274,7 @@
 EXPORT_C void CGlxMpxCommandCommandHandler::DoHandleItemAddedL(TInt /*aStartIndex*/, 
 		TInt /*aEndIndex*/, MGlxMediaList* /*aList*/)
 	{
+    TRACER("CGlxMpxCommandCommandHandler::DoHandleItemAddedL");
 	}
 
 // -----------------------------------------------------------------------------
@@ -274,6 +283,7 @@
 //	
 EXPORT_C TBool CGlxMpxCommandCommandHandler::OkToExit() const
     {
+    TRACER("CGlxMpxCommandCommandHandler:::OkToExit()");
     return ETrue;
     }
 
@@ -284,6 +294,7 @@
 EXPORT_C TBool CGlxMpxCommandCommandHandler::ConfirmationNoteL(TInt aCommandId,
         MGlxMediaList& aMediaList) const
 	{
+    TRACER("CGlxMpxCommandCommandHandler::ConfirmationNoteL");
 	TInt selectionCount = aMediaList.SelectionCount();
 
     // If media list is not empty, treat focused item as selected
@@ -315,6 +326,7 @@
 EXPORT_C TBool CGlxMpxCommandCommandHandler::ConfirmationNoteSingleL(TInt aCommandId, 
         MGlxMediaList& aMediaList) const
     {
+    TRACER("CGlxMpxCommandCommandHandler::ConfirmationNoteSingleL");
     // if no confirmation note shown, assume command is confirmed
     TBool confirmed = ETrue;
 
@@ -377,6 +389,7 @@
 EXPORT_C TBool CGlxMpxCommandCommandHandler::ConfirmationNoteMultipleL(TInt aCommandId, 
         MGlxMediaList& aMediaList) const
 	{
+    TRACER("CGlxMpxCommandCommandHandler::ConfirmationNoteMultipleL");
 	// if no confirmation note shown, assume command is confirmed
 	TBool confirmed = ETrue;
 
@@ -417,6 +430,7 @@
 //	
 EXPORT_C HBufC* CGlxMpxCommandCommandHandler::ProgressTextL(TInt /*aCommandId*/) const
     {
+    TRACER("CGlxMpxCommandCommandHandler::ProgressTextL");
     // Lazy construction for resource file
     if (iResourceOffset == 0)
         {
@@ -451,6 +465,7 @@
 //	
 void CGlxMpxCommandCommandHandler::ProgressNoteL(TInt aCommandId)
 	{
+    TRACER("CGlxMpxCommandCommandHandler::ProgressNoteL(TInt aCommandId)");
 	//MGlxMediaList& mediaList = MediaList();
 
     // get progress note 
@@ -478,6 +493,7 @@
 //	
 void CGlxMpxCommandCommandHandler::DismissProgressNoteL()
 	{
+    TRACER("CGlxMpxCommandCommandHandler::DismissProgressNoteL");
     // Close the progress note, if displayed
     if (iProgressDialog) 
         {
@@ -493,6 +509,7 @@
 //
 void CGlxMpxCommandCommandHandler::RemoveMediaListObserver()
 	{
+    TRACER("CGlxMpxCommandCommandHandler::RemoveMediaListObserver");
 	MGlxMediaList& mediaList = MediaList();
 	mediaList.RemoveMediaListObserver(this);
 	}
@@ -503,6 +520,7 @@
 //	
 void CGlxMpxCommandCommandHandler::CompletionNoteL() const
 	{
+    TRACER("CGlxMpxCommandCommandHandler::CompletionNoteL");
 	// Get completion note text 
 	HBufC* noteText = CompletionTextL(); 
 	if ( noteText )
@@ -587,6 +605,7 @@
 EXPORT_C void CGlxMpxCommandCommandHandler::HandleMessageL(const CMPXMessage& aMessage, 
         MGlxMediaList* aList)
 	{
+    TRACER("CGlxMpxCommandCommandHandler::HandleMessageL");
     if ((aMessage.IsSupported(KMPXMessageGeneralId) &&
     	(aMessage.IsSupported(KMPXCommandGeneralSessionId))))
         {
@@ -619,6 +638,7 @@
 EXPORT_C void CGlxMpxCommandCommandHandler::HandleCommandCompleteL(TAny* aSessionId,
 	CMPXCommand* aCommandResult, TInt aError, MGlxMediaList* aList)
     {
+    TRACER("CGlxMpxCommandCommandHandler::HandleCommandCompleteL");
     // Unmark all medialist items. Exit Multiple marking mode upon command completion
     iAppUi->ProcessCommandL(EGlxCmdEndMultipleMarking);
 
@@ -634,6 +654,7 @@
 //  
 EXPORT_C void CGlxMpxCommandCommandHandler::DialogDismissedL(TInt /*aButtonId*/)
 	{
+    TRACER("CGlxMpxCommandCommandHandler::DialogDismissedL");
 	if (!iProgressComplete)
 		{
 		// Remove as media list observer
@@ -658,6 +679,7 @@
 //
 EXPORT_C void CGlxMpxCommandCommandHandler::Deactivate()
     {
+    TRACER("CGlxMpxCommandCommandHandler::Deactivate");
     // Close the progress note, if displayed
 	if (iProgressDialog)
         {
--- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/group/bld.inf	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/group/bld.inf	Mon Jan 18 20:19:20 2010 +0200
@@ -15,11 +15,10 @@
 *
 */
 
-
-
-PRJ_TESTMMPFILES
 #include "../t_cglxcommandhandlershowviaupnp/group/bld.inf"
 //#include "../t_glxupnprenderer/group/bld.inf"
 #include "../t_cglxupnprendererimpl/group/bld.inf"
 #include "../t_cglxthumbnailsaver/group/bld.inf"
 #include "../t_glxcommandhandlercopytohomenetwork/group/bld.inf"
+
+PRJ_TESTMMPFILES
\ No newline at end of file
--- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/eabi/t_glxcommandhandlercopytohomenetworku.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/eabi/t_glxcommandhandlercopytohomenetworku.def	Mon Jan 18 20:19:20 2010 +0200
@@ -1,3 +1,4 @@
 EXPORTS
 	_Z16CreateTestSuiteLv @ 1 NONAME
+	_ZN35CGlxCommandHandlerCopyToHomeNetwork4NewLER21MGlxMediaListProvider @ 2 NONAME
 
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/bwins/glxcommoncommandhandlersu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/bwins/glxcommoncommandhandlersu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -42,10 +42,10 @@
 	??1CGlxCommandHandlerDelete@@UAE@XZ @ 41 NONAME ; CGlxCommandHandlerDelete::~CGlxCommandHandlerDelete(void)
 	??1CGlxCommandHandlerDetails@@UAE@XZ @ 42 NONAME ; CGlxCommandHandlerDetails::~CGlxCommandHandlerDetails(void)
 	??1CGlxCommandHandlerDownload@@UAE@XZ @ 43 NONAME ; CGlxCommandHandlerDownload::~CGlxCommandHandlerDownload(void)
-	??1CGlxCommandHandlerOpen@@UAE@XZ @ 44 NONAME ; CGlxCommandHandlerOpen::~CGlxCommandHandlerOpen(void)
-	?NewL@CGlxCommandHandlerSlideshow@@SAPAV1@PAVMGlxMediaListProvider@@HH@Z @ 45 NONAME ; class CGlxCommandHandlerSlideshow * CGlxCommandHandlerSlideshow::NewL(class MGlxMediaListProvider *, int, int)
-	?IsPrivate@CGlxImageViewerManager@@QAEHXZ @ 46 NONAME ; int CGlxImageViewerManager::IsPrivate(void)
-	?NewL@CGlxCommandHandlerSave@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 47 NONAME ; class CGlxCommandHandlerSave * CGlxCommandHandlerSave::NewL(class MGlxMediaListProvider *, int)
+	?NewL@CGlxCommandHandlerSave@@SAPAV1@XZ @ 44 NONAME ; class CGlxCommandHandlerSave * CGlxCommandHandlerSave::NewL(void)
+	??1CGlxCommandHandlerOpen@@UAE@XZ @ 45 NONAME ; CGlxCommandHandlerOpen::~CGlxCommandHandlerOpen(void)
+	?NewL@CGlxCommandHandlerSlideshow@@SAPAV1@PAVMGlxMediaListProvider@@HH@Z @ 46 NONAME ; class CGlxCommandHandlerSlideshow * CGlxCommandHandlerSlideshow::NewL(class MGlxMediaListProvider *, int, int)
+	?IsPrivate@CGlxImageViewerManager@@QAEHXZ @ 47 NONAME ; int CGlxImageViewerManager::IsPrivate(void)
 	?NewL@CGlxCommandHandlerAiwShareOnOvi@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 48 NONAME ; class CGlxCommandHandlerAiwShareOnOvi * CGlxCommandHandlerAiwShareOnOvi::NewL(class MGlxMediaListProvider *, int)
 	?NewAddToAlbumCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 49 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL(class MGlxMediaListProvider *, int)
 	??1CGlxCommandHandlerRename@@UAE@XZ @ 50 NONAME ; CGlxCommandHandlerRename::~CGlxCommandHandlerRename(void)
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/eabi/glxcommoncommandhandlersu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/eabi/glxcommoncommandhandlersu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -17,7 +17,7 @@
 	_ZN22CGlxCommandHandlerOpenD0Ev @ 16 NONAME
 	_ZN22CGlxCommandHandlerOpenD1Ev @ 17 NONAME
 	_ZN22CGlxCommandHandlerOpenD2Ev @ 18 NONAME
-	_ZN22CGlxCommandHandlerSave4NewLEP21MGlxMediaListProvideri @ 19 NONAME
+	_ZN22CGlxCommandHandlerSave4NewLEv @ 19 NONAME
 	_ZN22CGlxCommandHandlerSaveD0Ev @ 20 NONAME
 	_ZN22CGlxCommandHandlerSaveD1Ev @ 21 NONAME
 	_ZN22CGlxCommandHandlerSaveD2Ev @ 22 NONAME
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h	Mon Jan 18 20:19:20 2010 +0200
@@ -69,6 +69,9 @@
 	    
     /** Destructor */
 	IMPORT_C ~CGlxCommandHandlerAddToContainer();
+	
+	// from MProgressDialogCallback
+	void DialogDismissedL(TInt aButtonId);
 
 protected: // From CGlxMediaListCommandHandler
 
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersave.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersave.h	Mon Jan 18 20:19:20 2010 +0200
@@ -11,79 +11,97 @@
 *
 * Contributors:
 *
-* Description:    Delete command handler
+* Description:    Save command handler
 *
 */
 
-
-
-
 #ifndef __C_GLXCOMMANDHANDLERSAVE_H__
 #define __C_GLXCOMMANDHANDLERSAVE_H__
 
 #include <e32base.h>
-#include <glxmpxcommandcommandhandler.h>
+#include <glxcommandhandler.h>
 #include <glximageviewermanager.h>
 
-class MGlxMediaListProvider;
-class CGlxUiUtility;
-
 /**
  * @class CGlxCommandHandlerSave
  *
- * Command handler that deletes selected items from a media list.
+ * Command handler that saves the current item to the file system.
  *
  */
 
 NONSHARABLE_CLASS( CGlxCommandHandlerSave)
-    : public CGlxMpxCommandCommandHandler
+    : public CGlxCommandHandler
     {
 public:
     /**
      * Two-phase constructor
-     * @param aMediaListProvider object that provides the media list
-     * @param aHasToolbarItem Whether Command Should be toolbar item (ETrue - if toolbar item)
      * @return pointer to CGlxCommandHandlerSave object
      */
-    IMPORT_C static CGlxCommandHandlerSave* NewL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem);
-        
+    IMPORT_C static CGlxCommandHandlerSave* NewL();
+
     /** Destructor */
     IMPORT_C ~CGlxCommandHandlerSave();
-    
-public: // From CGlxMpxCommandCommandHandler
-    /** See @ref CGlxMpxCommandCommandHandler::CreateCommandL */
-    virtual CMPXCommand* CreateCommandL(TInt aCommandId, MGlxMediaList& aList,
-        TBool& aConsume) const;    
+   
+public: // From MGlxCommandHandler
+	/**
+	 * Execute the command, if applicable
+	 * @param aCommand The command to handle
+	 * @return ETrue if command was handled
+	 */
+	TBool ExecuteL( TInt aCommandId);    
+
+	/**
+	 * Modify a menu before it is displayed.
+	 * @param aResourceId The resource ID of the menu
+	 * @param aMenuPane The in-memory representation of the menu pane
+	 */
+	void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
+	
+	/**
+	 * Called when the owning view is activated
+	 * @param aViewId The ID of the view
+	 */
+	void DoActivateL(TInt aViewId);
 
-public: // From CGlxCommandHandler
-    /** See @ref CGlxCommandHandler::DoActivateL */
-    void DoActivateL(TInt aViewId);
-    virtual void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
-     /** See @ref CGlxCommandHandler::OfferKeyEventL  */
-    TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+	/**
+	 * Called when the owning view is deactivated
+	 */
+	void Deactivate();
+	
+	/**
+	 * Offers key events to the command handler
+	 * @param aKeyEvent The key event. 
+	 * @param aType The type of key event: EEventKey, EEventKeyUp or EEventKeyDown
+	 * @return Indicates whether or not the key event was used by this control. EKeyWasNotConsumed or EKeyWasConsumed
+	 */
+	TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
 
-protected:
-     /** See @ref CGlxCommandHandler::PopulateToolbar*/
-    void PopulateToolbarL();
+	/**
+	 * Perform any actions needed before the options menu is displayed.
+	 * The view calling this must first arrange a wait dialog to be displayed, as this operation may take
+	 * a long time to complete
+	 */
+	void PreDynInitMenuPaneL( TInt aResourceId );
+	
+    /**
+     * See @ref MGlxCommandHandler::GetRequiredAttributesL
+     * No implementation required
+     */	
+    void GetRequiredAttributesL(RArray< TMPXAttribute >& /*aAttributes*/,
+                                TBool /*aFilterUsingSelection*/,
+                                TBool /*aFilterUsingCommandId*/, 
+                                TInt /*aCommandId*/) const {}
 
 private:
     /** Second phase constructor */
     void ConstructL();
 
     /** Constructor */
-    CGlxCommandHandlerSave(MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem);    
-
-    
-private:
-    /// Resource file offset
-    TInt iResourceOffset;
-    
- 
-    CGlxUiUtility* iUiUtility;
+    CGlxCommandHandlerSave();    
+   
+private:  
     // Not own
     CGlxImageViewerManager* iImageViewerInstance;
-    };
-    
+    }; 
 
 #endif // __C_GLXCOMMANDHANDLERSAVE_H__
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -48,6 +48,7 @@
 
 #include "glxmediaselectionpopup.h"
 #include <glxicons.mbg>
+#include <glxtracer.h>
 
 TInt CGlxCommandHandlerAddToContainer::iSelectionCount = 0;
 
@@ -59,6 +60,7 @@
     CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL(
         MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem) 
     {
+    TRACER("CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL");
     return CGlxCommandHandlerAddToContainer::NewL (aMediaListProvider, 
                                                 EGlxCmdAddToAlbum, aHasToolbarItem);
     }
@@ -71,6 +73,7 @@
     CGlxCommandHandlerAddToContainer::NewAddToTagCommandHandlerL(
         MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem) 
     {
+    TRACER("CGlxCommandHandlerAddToContainer::NewAddToTagCommandHandlerL");
     return CGlxCommandHandlerAddToContainer::NewL(aMediaListProvider, 
                                                 EGlxCmdAddTag, aHasToolbarItem);
     }
@@ -83,6 +86,7 @@
     CGlxCommandHandlerAddToContainer::NewAddToFavCommandHandlerL(
         MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem) 
     {
+    TRACER("CGlxCommandHandlerAddToContainer::NewAddToFavCommandHandlerL");
     return CGlxCommandHandlerAddToContainer::NewL(aMediaListProvider, 
                                     EGlxCmdAddToFavourites, aHasToolbarItem);
     }
@@ -94,6 +98,7 @@
 EXPORT_C CGlxCommandHandlerAddToContainer* CGlxCommandHandlerAddToContainer::NewL(
         MGlxMediaListProvider* aMediaListProvider, TInt aCommandId, TBool aHasToolbarItem)
     {
+    TRACER("CGlxCommandHandlerAddToContainer::NewL");
     CGlxCommandHandlerAddToContainer* self = 
         new ( ELeave ) CGlxCommandHandlerAddToContainer( aMediaListProvider, aHasToolbarItem );
     CleanupStack::PushL( self );
@@ -119,6 +124,7 @@
 //
 void CGlxCommandHandlerAddToContainer::ConstructL(TInt aCommandId)
     {
+    TRACER("CGlxCommandHandlerAddToContainer::ConstructL");
     // Load resource
 	TParse parse;
     parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
@@ -146,6 +152,7 @@
 //
 EXPORT_C CGlxCommandHandlerAddToContainer::~CGlxCommandHandlerAddToContainer()
     {
+    TRACER("CGlxCommandHandlerAddToContainer::~CGlxCommandHandlerAddToContainer");
     if ( iResourceOffset )
         {
         CCoeEnv::Static()->DeleteResourceFile(iResourceOffset);
@@ -161,6 +168,7 @@
 CMPXCommand* CGlxCommandHandlerAddToContainer::CreateCommandL(TInt aCommandId, 
         MGlxMediaList& aMediaList, TBool& /*aConsume*/) const
     {
+    TRACER("CGlxCommandHandlerAddToContainer::CreateCommandL");
 	// Ignore the current command in case the previous command has still not been completed
 	if(iIsProcessOngoing)
 	    {
@@ -253,6 +261,7 @@
 //	
 HBufC* CGlxCommandHandlerAddToContainer::CompletionTextL() const
     {
+    TRACER("CGlxCommandHandlerAddToContainer::CompletionTextL()");
     if (iCommandId == EGlxCmdAddToAlbum)
     	{
    		if (iSelectionCount > 1)
@@ -282,10 +291,26 @@
 void CGlxCommandHandlerAddToContainer::DoHandleCommandCompleteL(TAny* /*aSessionId*/,
         CMPXCommand* /*aCommandResult*/, TInt /*aError*/, MGlxMediaList* /*aList*/)
       {
+      TRACER("CGlxCommandHandlerAddToContainer::DoHandleCommandCompleteL()");
 	  // Reset the Flag inorder to allow any new selection pop-up to be created.
       iIsProcessOngoing = EFalse;
       }
-    
+
+
+
+// -----------------------------------------------------------------------------
+// DialogDismissedL
+// -----------------------------------------------------------------------------
+//  
+void CGlxCommandHandlerAddToContainer::DialogDismissedL(TInt aButtonId)
+    {
+    TRACER("CGlxCommandHandlerAddToContainer::DialogDismissedL");
+    iIsProcessOngoing = EFalse;
+    CGlxMpxCommandCommandHandler::DialogDismissedL(aButtonId);
+    }
+
+
+
 // ---------------------------------------------------------------------------
 // CGlxCommandHandlerAddToContainer::DoActivateL
 // ---------------------------------------------------------------------------
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -57,8 +57,9 @@
 	{
 	if (!aFilterUsingSelection || SelectionLength() <= MaxSelectedItems())
 		{
-		// Add filename attribute to fetch context
-		aAttributes.AppendL(KMPXMediaGeneralUri);
+	    // Add MIME type and fileaname attributes
+	    aAttributes.AppendL(KMPXMediaGeneralMimeType);
+		aAttributes.AppendL(KMPXMediaGeneralUri);		
 		}
 	}
 
@@ -109,7 +110,8 @@
     return AppendDefaultAiwParameterL(  aItem, 
                                         aAiwServiceHandler, 
                                         ETrue,                  // Add the Uri
-                                        EFalse);                // Don't add the Mime Type
+                                        ETrue);                // Add the Mime Type
+		                                       
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -175,7 +175,9 @@
                 CleanupStack::PushL(navigationalState);
 
                 // let Back Stepping Service handle the event
-                if(2 == navigationalState->Levels()&&  iNavigationalState->BackExitStatus())
+                if((2 == navigationalState->Levels()||
+                		iNavigationalState->StartingLevel() == navigationalState->Levels()-1)
+                		&&  iNavigationalState->BackExitStatus())
                     {
                     iBSWrapper->HandleBackCommandL( KPhotosSuiteNavigation );
                     if(iAppUi)
@@ -183,13 +185,6 @@
                         iAppUi->ProcessCommandL(EAknSoftkeyExit);    
                         }
                     }
-                else if (!(iNavigationalState->BackExitStatus()))
-                    {
-                    if(iAppUi)
-                        {
-                        iAppUi->ProcessCommandL(EAknSoftkeyExit);    
-                        }
-                    }
                 else if( iIsViewActivated )
                     {
                     iIsViewActivated = EFalse;
@@ -213,13 +208,6 @@
     		        }
     		    else
     		        {
-    		        if (!(iNavigationalState->BackExitStatus()))
-    		            {
-    		            if(iAppUi)
-    		                {
-    		                iAppUi->ProcessCommandL(EAknSoftkeyExit);    
-    		                }
-    		            }
     		        if( iIsViewActivated )
     		            {
     		            iIsViewActivated = EFalse;
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdownload.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdownload.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -28,8 +28,8 @@
 
 
 //  EXTERNAL INCLUDES
-#include <FavouritesLimits.h>               // for favourites context IDs
-#include <BrowserLauncher.h>
+#include <favouriteslimits.h>               // for favourites context IDs
+#include <browserlauncher.h>
 
 //  INTERNAL INCLUDES
 #include <glxcommandhandlers.hrh>           // for EGlxCmdDownloadImages,
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -35,6 +35,7 @@
 #include <glxfetchcontextremover.h>
 #include <glxgeneraluiutilities.h>
 #include <glxpanic.h>
+#include <glxtracer.h>
 #include <glxresourceutilities.h>                // for CGlxResourceUtilities
 #include <glxsetappstate.h>
 #include <glxtextentrypopup.h>
@@ -61,6 +62,7 @@
 //
 EXPORT_C CGlxCommandHandlerNewMedia* CGlxCommandHandlerNewMedia::NewL(MGlxMediaListProvider* aMediaListProvider)
     {
+    TRACER("CGlxCommandHandlerNewMedia* CGlxCommandHandlerNewMedia::NewL");
     CGlxCommandHandlerNewMedia* self = new (ELeave) CGlxCommandHandlerNewMedia(aMediaListProvider);
     CleanupStack::PushL(self);
     self->ConstructL();
@@ -86,6 +88,7 @@
 void CGlxCommandHandlerNewMedia::DoHandleCommandCompleteL(TAny* /*aSessionId*/, CMPXCommand* aCommandResult, 
             							TInt aError, MGlxMediaList* /*aList*/)
 	{
+    TRACER("CGlxCommandHandlerNewMedia::DoHandleCommandCompleteL");
 	if (aError == KErrNone && aCommandResult && aCommandResult->IsSupported(KMPXMediaGeneralId))
     	{	
     	iNewMediaId = TGlxMediaId(aCommandResult->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId));
@@ -117,6 +120,7 @@
 //
 void CGlxCommandHandlerNewMedia::ConstructL()
     {
+    TRACER("CGlxCommandHandlerNewMedia::ConstructL()");
     iFileNameAlreadyExists = EFalse ;
     // Load resource file
 	TParse parse;
@@ -139,6 +143,7 @@
 //
 EXPORT_C CGlxCommandHandlerNewMedia::~CGlxCommandHandlerNewMedia()
     {
+    TRACER("CGlxCommandHandlerNewMedia::~CGlxCommandHandlerNewMedia()");
     if ( iResourceOffset )
         {
         CCoeEnv::Static()->DeleteResourceFile(iResourceOffset);
@@ -155,6 +160,7 @@
 //
 EXPORT_C TInt CGlxCommandHandlerNewMedia::ExecuteLD(TGlxMediaId& aNewMediaId)
 	{
+    TRACER("CGlxCommandHandlerNewMedia::ExecuteLD");
 	CleanupStack::PushL(this);
 	iSchedulerWait = new (ELeave) CActiveSchedulerWait();
 	
@@ -182,6 +188,7 @@
 CMPXCommand* CGlxCommandHandlerNewMedia::CreateCommandL(TInt /*aCommandId*/, 
         MGlxMediaList& aMediaList, TBool& /*aConsume*/) const
     {
+    TRACER("CGlxCommandHandlerNewMedia::CreateCommandL");
     iOkToExit = ETrue;
     
     CMPXCollectionPath* path = aMediaList.PathLC( NGlxListDefs::EPathParent );
@@ -189,7 +196,13 @@
 
     TBuf <KMaxNewMediaItemTitleLength> defaultNewMediaItemTitle;
     
-    TitlesL(TGlxMediaId(path->Id(0)), defaultNewMediaItemTitle);
+    TRAPD(error, TitlesL(TGlxMediaId(path->Id(0)), defaultNewMediaItemTitle));
+    if(error != KErrNone)
+        {
+        iNewMediaCreationError = KErrCancel;
+        CleanupStack::PopAndDestroy(path);
+        return command;
+        }
     
     HBufC* mediaPopupTitle = StringLoader::LoadLC(R_GLX_PROMPT_NAME);
     if(iFileNameAlreadyExists)
@@ -229,6 +242,7 @@
 // 
 void CGlxCommandHandlerNewMedia::HandleErrorL(TInt aError) 
 	{
+    TRACER("CGlxCommandHandlerNewMedia::HandleErrorL");
 	if (aError == KErrAlreadyExists && iNewMediaItemTitle)
 		{
 		HBufC* info = StringLoader::LoadLC(R_GLX_NAME_ALREADY_USED, *iNewMediaItemTitle);
@@ -258,6 +272,7 @@
 //	
 EXPORT_C TBool CGlxCommandHandlerNewMedia::BypassFiltersForExecute() const
     {
+    TRACER("CGlxCommandHandlerNewMedia::BypassFiltersForExecute()");
     // if iSchedulerWait exists then we know the command is being executed from
     // the ExecuteLD() method and filtering is not required.
     return iSchedulerWait != NULL;
@@ -271,6 +286,7 @@
 
 void CGlxCommandHandlerNewMedia::TitlesL(const TGlxMediaId aCollectionId, TDes& aDefaultNewMediaItemTitle) const
 	{
+    TRACER("CGlxCommandHandlerNewMedia::TitlesL");
     CMPXCollectionPath* path = CMPXCollectionPath::NewL();
     CleanupStack::PushL(path);
     MGlxMediaList* rootList = MGlxMediaList::InstanceL(*path);
@@ -315,6 +331,7 @@
 HBufC* CGlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL
                                    (const TDesC& aDefaultNewMediaItemTitle, MGlxMediaList& aList) const
     {        
+    TRACER("CGlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL");
     TGlxSequentialIterator iter;
     CGlxAttributeContext* attributeContext = new (ELeave) CGlxAttributeContext(&iter);
     CleanupStack::PushL(attributeContext);
@@ -415,6 +432,7 @@
 // 
 void CGlxCommandHandlerNewMedia::SetFocusL(TInt aIndex)
     {
+    TRACER("CGlxCommandHandlerNewMedia::SetFocusL");
     iOkToExit = ETrue;
     MediaList().SetFocusL(NGlxListDefs::EAbsolute, aIndex);
     TryExitL(KErrNone);
@@ -426,6 +444,7 @@
 //  
 EXPORT_C void CGlxCommandHandlerNewMedia::HandleItemAddedL(TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList)
     {
+    TRACER("CGlxCommandHandlerNewMedia::HandleItemAddedL");
     if(aList == &MediaList() && iNewMediaId != KGlxCollectionRootId)
         {
         for (TInt i = aStartIndex; i <= aEndIndex; i++)
@@ -450,6 +469,7 @@
     // running before it. (Unless they too are scheduled to run and have the maximum
     // possible priority
     {
+    TRACER("CGlxCommandHandlerNewMedia::CGlxAsyncFocuser::CGlxAsyncFocuser");
     __ASSERT_DEBUG(aGlxCommandHandlerNewMedia, Panic(EGlxPanicNullPointer));
     CActiveScheduler::Add(this);
     }
@@ -461,6 +481,7 @@
 CGlxCommandHandlerNewMedia::CGlxAsyncFocuser::
     ~CGlxAsyncFocuser()
     {
+    TRACER("CGlxCommandHandlerNewMedia::CGlxAsyncFocuser::~CGlxAsyncFocuser()");
     Cancel();
     }
 
@@ -470,6 +491,7 @@
 //  
 void CGlxCommandHandlerNewMedia::CGlxAsyncFocuser::RunL()
     {
+    TRACER("CGlxCommandHandlerNewMedia::CGlxAsyncFocuser::RunL()");
     iGlxCommandHandlerNewMedia->SetFocusL(iFocusIndex);
     }
 
@@ -489,6 +511,7 @@
 //  
 void CGlxCommandHandlerNewMedia::CGlxAsyncFocuser::SetFocus(TInt aIndex)
     {
+    TRACER("CGlxCommandHandlerNewMedia::CGlxAsyncFocuser::SetFocus()");
     iFocusIndex = aIndex;
     TRequestStatus* requestStatus = &iStatus;
     User::RequestComplete(requestStatus,KErrNone);
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersave.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersave.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -11,53 +11,27 @@
 *
 * Contributors:
 *
-* Description:    Delete command handler
+* Description:    Save command handler
 *
 */
 
 
-
-
 #include "glxcommandhandlersave.h"
 
-#include <AknUtils.h>
-#include <AknCommonDialogsDynMem.h>
-#include <CAknCommonDialogsBase.h>
-#include <CAknMemorySelectionDialogMultiDrive.h>
-#include <bautils.h>
-#include <data_caging_path_literals.hrh>
 #include <glxcommandhandlers.hrh>
-#include <glxuiutility.h>
-#include <glxuistd.h>
-#include <glxuiutilities.rsg>
-#include <mglxmedialist.h>
-#include <glxresourceutilities.h>                // for CGlxResourceUtilities
 #include <glxscreenfurniture.h>
-#include <mpxcollectionpath.h>
-#include <StringLoader.h>
-#include <f32file.h>
-#include <glxappui.h>
-#include <aknViewAppUi.h>
-#include <glxicons.mbg>
 #include <glxtracer.h>
-#include <glxtextentrypopup.h>
 #include <DocumentHandler.h>
-#include <apmstd.h>
-#include <glximageviewermanager.h>
-#include "glxcommandfactory.h"
-
-
-
+#include <glxpanic.h>
 
 // ---------------------------------------------------------------------------
 // Two-phased constructor.
 // ---------------------------------------------------------------------------
 //
-EXPORT_C CGlxCommandHandlerSave* CGlxCommandHandlerSave::NewL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem)
+EXPORT_C CGlxCommandHandlerSave* CGlxCommandHandlerSave::NewL()
     {
     TRACER("CGlxCommandHandlerSave::NewL");
-    CGlxCommandHandlerSave* self = new (ELeave) CGlxCommandHandlerSave(aMediaListProvider, aHasToolbarItem);
+    CGlxCommandHandlerSave* self = new (ELeave) CGlxCommandHandlerSave();
     CleanupStack::PushL( self );
     self->ConstructL();
     CleanupStack::Pop( self );
@@ -69,8 +43,7 @@
 // might leave.
 // ---------------------------------------------------------------------------
 //
-CGlxCommandHandlerSave::CGlxCommandHandlerSave(MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem)
-        : CGlxMpxCommandCommandHandler( aMediaListProvider, aHasToolbarItem )
+CGlxCommandHandlerSave::CGlxCommandHandlerSave()
     {
     // Don't do anything.
     }
@@ -82,21 +55,7 @@
 void CGlxCommandHandlerSave::ConstructL()
     {
     TRACER("CGlxCommandHandlerSave::ConstructL");    
-    iUiUtility = CGlxUiUtility::UtilityL();
     iImageViewerInstance = CGlxImageViewerManager::InstanceL();
-    // Load resource file
-	TParse parse;
-    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName());
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
-   	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile);
-
-   	// Add supported command
-   	TCommandInfo saveInfo( EGlxCmdSave );
-   	// Filter out static items
-    saveInfo.iMinSelectionLength = 1;
-   	AddCommandL(saveInfo);
 	}
 
 // ---------------------------------------------------------------------------
@@ -106,14 +65,6 @@
 EXPORT_C CGlxCommandHandlerSave::~CGlxCommandHandlerSave()
     {
     TRACER("CGlxCommandHandlerSave::~CGlxCommandHandlerSave");
-    if (iResourceOffset)
-        {
-        CCoeEnv::Static()->DeleteResourceFile(iResourceOffset);
-        }
-    if(iUiUtility)
-        {
-        iUiUtility->Close();
-        }
     if ( NULL != iImageViewerInstance)
         {
         iImageViewerInstance->DeleteInstance();
@@ -121,20 +72,26 @@
     }
 
 // ---------------------------------------------------------------------------
-// Create an add to container command
+// Create save command
 // ---------------------------------------------------------------------------
 //
-CMPXCommand* CGlxCommandHandlerSave::CreateCommandL(TInt /*aCommandId*/, 
-        MGlxMediaList& /*aMediaList*/, TBool& /*aConsume*/) const
+TBool CGlxCommandHandlerSave::ExecuteL(TInt aCommandId)
     {
     TRACER("CGlxCommandHandlerSave::CreateCommandL");
-    CMPXCommand* command = NULL;
-    TDataType nullType;
-    CDocumentHandler* handler = CDocumentHandler::NewLC( NULL );
-    HBufC* imagePath = iImageViewerInstance->ImageUri();
-    TInt err = handler->CopyL( *imagePath, *imagePath, nullType, NULL );
-    CleanupStack::PopAndDestroy(handler);    
-    return command;
+    if(aCommandId == EGlxCmdSave)
+    	{
+    	TDataType nullType;
+    	RFile64& imageHandle = iImageViewerInstance->ImageFileHandle();
+    	if ( imageHandle.SubSessionHandle() != KNullHandle )
+    		{
+    		CDocumentHandler* handler = CDocumentHandler::NewLC(NULL);
+    		__ASSERT_ALWAYS(handler, Panic(EGlxPanicNullPointer));        
+    		TRAP_IGNORE(handler->CopyL(imageHandle, KNullDesC, nullType, NULL));
+    		CleanupStack::PopAndDestroy(handler);
+    		}
+    	return ETrue;
+    	}
+    return EFalse;
     } 
 // ---------------------------------------------------------------------------
 // DynInitMenuPaneL
@@ -161,7 +118,16 @@
 // ----------------------------------------------------------------------------
 void CGlxCommandHandlerSave::DoActivateL(TInt /*aViewId*/)
 	{
+	// Do Nothing
+	}
 
+// -----------------------------------------------------------------------------
+// Deactivate
+// -----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerSave::Deactivate()
+	{
+	// Do Nothing
 	}
 
 // ----------------------------------------------------------------------------
@@ -174,7 +140,7 @@
     // Is the key event from the Cancel (Backspace) key
 	if (aKeyEvent.iCode == EKeyBackspace && aType == EEventKey)
 		{
-		// try to execute the delete command
+		// try to execute the save command
 		if(ExecuteL( EGlxCmdSave ))
 		    {
     		response = EKeyWasConsumed;
@@ -183,15 +149,13 @@
 	return response;	
 	}
 
-// ----------------------------------------------------------------------------
-// PopulateToolbar
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+// PreDynInitMenuPaneL
+// -----------------------------------------------------------------------------
 //
-void CGlxCommandHandlerSave::PopulateToolbarL()
+void CGlxCommandHandlerSave::PreDynInitMenuPaneL( TInt /*aResourceId*/ )
 	{
-	TRACER( "CGlxCommandHandlerRename::PopulateToolbar" );
-	
-	iUiUtility->ScreenFurniture()->SetTooltipL( EGlxCmdSave, CAknButton::EPositionLeft );
+	// Do Nothing		
 	}
-
-
+		
+//End of file
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -50,10 +50,6 @@
 	const TInt KShwDefaultBufferSize = 128;
 	}
 
-// This class does not have access to a CEikonEnv and hence 
-// pls ignore the code scanner warning - Using CEikonEnv::Static	
-#define GetAppUi() (dynamic_cast<CAknViewAppUi*>(CEikonEnv::Static()->EikAppUi()))
-
 // ---------------------------------------------------------------------------
 // Two-phased constructor.
 // ---------------------------------------------------------------------------
@@ -300,7 +296,7 @@
 				}
 			// show HUI display
 			CGlxUiUtility::ShowAlfDisplayL();           	
-			GetAppUi()->ProcessCommandL(EGlxCmdResetView);
+			iAvkonAppUi->ProcessCommandL(EGlxCmdResetView);
             break;
             }
         case EGlxCmdShowViaUpnpStateChanged:
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -53,11 +53,6 @@
     const TUid KCmdGetOneClickToolTip = { 15 };    
     }
 
-// Get the AppUi instance
-// This class does not have access to a CEikonEnv and hence 
-// pls ignore the code scanner warning - Using CEikonEnv::Static
-#define GetAppUi() (dynamic_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi()))
-
 // ----------------------------------------------------------------------------
 // Two-phased constructor.
 // ----------------------------------------------------------------------------
@@ -370,47 +365,48 @@
 void CGlxCommandHandlerUpload::SetToolTipL()
     {
     TRACER("CGlxCommandHandlerUpload::SetToolTipL");
-    
-    CAknToolbar* toolbar = GetAppUi()->CurrentFixedToolbar();
 
-    if(toolbar)
+    CAknToolbar* toolbar = iAvkonAppUi->CurrentFixedToolbar();
+    if (!toolbar)
         {
-        CAknButton* uploadButton = static_cast<CAknButton*>     
-        (toolbar->ControlOrNull( EGlxCmdUpload ));
-                    
-        if(uploadButton && iUploadSupported)
+        return;
+        }
+
+    CAknButton* uploadButton =
+            static_cast<CAknButton*> (toolbar->ControlOrNull(EGlxCmdUpload));
+
+    if (uploadButton && iUploadSupported)
+        {
+        // Get the tooltip text from AIW ShareOnline application
+        HBufC* toolTipText = NULL;
+
+        // GetToolTipL might allocate memory. Hence toolTipText should 
+        // be popped and destroyed if present.
+        GetToolTipL(toolTipText);
+
+        if (toolTipText)
             {
-            // Get the tooltip text from AIW ShareOnline application
-            HBufC* toolTipText = NULL;
-            
-            // GetToolTipL might allocate memory. Hence toolTipText should 
-            // be popped and destroyed if present.
-            GetToolTipL(toolTipText);     
-            
-            if( toolTipText )
-                {                
-                // Get current button state and set the help text(tool tip)             
-                CAknButtonState* currentState = uploadButton->State();
-                
-               TBool dimmed = uploadButton->IsDimmed();
-               if(dimmed)
-               		{
-               		uploadButton->SetDimmed(EFalse);
-                	currentState->SetHelpTextL( toolTipText->Des()); 
-                	uploadButton->SetDimmed(ETrue);
-              		}
-              	else
-              		{
-              		currentState->SetHelpTextL( toolTipText->Des()); 	
-              		}
-                CleanupStack::PopAndDestroy(toolTipText);
+            // Get current button state and set the help text(tool tip)             
+            CAknButtonState* currentState = uploadButton->State();
+
+            TBool dimmed = uploadButton->IsDimmed();
+            if (dimmed)
+                {
+                uploadButton->SetDimmed(EFalse);
+                currentState->SetHelpTextL(toolTipText->Des());
+                uploadButton->SetDimmed(ETrue);
                 }
             else
                 {
-                User::Leave(KErrArgument);
-                }            
+                currentState->SetHelpTextL(toolTipText->Des());
+                }
+            CleanupStack::PopAndDestroy(toolTipText);
             }
-        }
+        else
+            {
+            User::Leave(KErrArgument);
+            }
+        } // if(uploadButton && iUploadSupported)
     }
 
 // End of file
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlervideoplayback.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlervideoplayback.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -91,11 +91,6 @@
     {
     iUiUtility = CGlxUiUtility::UtilityL();
     
-    const TUid playbackMode = { 0x200009EE };  // photos UID
-    iPlaybackUtility = MMPXPlaybackUtility::UtilityL( playbackMode );
-    MMPXPlayerManager& manager = iPlaybackUtility->PlayerManager();
-    manager.SelectPlayerL( KVideoHelixPlaybackPluginUid );
-    iPlaybackUtility->AddObserverL( *this ); 
      
     iViewUtility = MMPXViewUtility::UtilityL(); 
 
@@ -215,6 +210,16 @@
 		{
         if(media->IsSupported(KMPXMediaGeneralUri))
             {
+            if (!iPlaybackUtility)
+                {
+                GLX_LOG_INFO( "CmdHandler VideoPlayback - SelectPlayerL(+)" );
+                const TUid playbackMode = { 0x200009EE };  // photos UID
+                iPlaybackUtility = MMPXPlaybackUtility::UtilityL( playbackMode );
+                MMPXPlayerManager& manager = iPlaybackUtility->PlayerManager();
+                manager.SelectPlayerL( KVideoHelixPlaybackPluginUid );
+                iPlaybackUtility->AddObserverL( *this ); 
+                GLX_LOG_INFO( "CmdHandler VideoPlayback - SelectPlayerL(-)" );
+                }
             // MPX playbackutility instead of VIA Player 
             const TDesC& filename = media->ValueText(KMPXMediaGeneralUri); 
             // Causes callback to HandlePlaybackMessage() 
--- a/photosgallery/viewframework/commandhandlers/tsrc/group/bld.inf	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/tsrc/group/bld.inf	Mon Jan 18 20:19:20 2010 +0200
@@ -16,7 +16,7 @@
 */
 
 
-
+#include "../ut_commandhandlermoreinfo/group/bld.inf"
 
 PRJ_PLATFORMS
     ARMV5 GCCE WINSCW
@@ -27,9 +27,6 @@
 
 
 PRJ_TESTMMPFILES
-//../ut__commandhandlermarking/group/t_glxcommandhandlermarking.mmp
-//../ut_commandhandlerdrm/group/t_glxcommandhandlerdrm.mmp
-../ut_commandhandlermoreinfo/group/t_glxcommandhandlermoreinfo.mmp
 
 
 // End of file
--- a/photosgallery/viewframework/dataprovider/src/glxpreviewthumbnailbinding.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxpreviewthumbnailbinding.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -334,28 +334,26 @@
 // This function resets any existing timer and starts a new timer tick
 // ----------------------------------------------------------------------------
 //    
-    
-CGlxBinding::TResponse CGlxPreviewThumbnailBinding::HandleFocusChanged( TBool aIsGained )
+CGlxBinding::TResponse CGlxPreviewThumbnailBinding::HandleFocusChanged(
+        TBool aIsGained)
     {
     TRACER("CGlxPreviewThumbnailBinding::HandleFocusChanged");
-	if(aIsGained)
-	    {
-	    if(iTimer)
-	        {
-	        iTimer->Cancel();
-	        }
-	   
-	     if(!iTimer->IsActive() ) 
-	        {
-	        iTimer->Start(KThumbnailStartTimeDelay, KThumbnailIntervalTimeDelay,
-	            TCallBack(IsTime,this));
-	      
-	        }
-	    }
-	//return EUpdateRequested;
-	return ENoUpdateNeeded;
+    if (aIsGained && iTimer)
+        {
+        if (iTimer->IsActive())
+            {
+            iTimer->Cancel();
+            }
+
+        if (!iTimer->IsActive())
+            {
+            iTimer->Start(KThumbnailStartTimeDelay,
+                    KThumbnailIntervalTimeDelay, TCallBack(IsTime, this));
+            }
+        }
+
+    return ENoUpdateNeeded;
     }
-    
 
 // ----------------------------------------------------------------------------
 // HandleItemChangedL
--- a/photosgallery/viewframework/medialists/eabi/glxmedialistsu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/eabi/glxmedialistsu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -57,140 +57,141 @@
 	_ZN21TGlxSelectionIteratorD1Ev @ 56 NONAME
 	_ZN21TGlxSelectionIteratorD2Ev @ 57 NONAME
 	_ZN21TGlxSelectionIteratorppEi @ 58 NONAME
-	_ZN22CGlxImageViewerManager8ImageUriEv @ 59 NONAME
-	_ZN22CGlxImageViewerManager9IsPrivateEv @ 60 NONAME
-	_ZN22TGlxSequentialIterator8SetRangeEi @ 61 NONAME
-	_ZN22TGlxSequentialIteratorC1Ev @ 62 NONAME
-	_ZN22TGlxSequentialIteratorC2Ev @ 63 NONAME
-	_ZN22TGlxSpecificIdIteratorC1ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 64 NONAME
-	_ZN22TGlxSpecificIdIteratorC2ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 65 NONAME
-	_ZN23TGlxFetchContextRemover5CloseEv @ 66 NONAME
-	_ZN23TGlxFetchContextRemoverC1EP16MGlxFetchContextR13MGlxMediaList @ 67 NONAME
-	_ZN23TGlxFetchContextRemoverC2EP16MGlxFetchContextR13MGlxMediaList @ 68 NONAME
-	_ZN23TGlxFetchContextRemoverD1Ev @ 69 NONAME
-	_ZN23TGlxFetchContextRemoverD2Ev @ 70 NONAME
-	_ZN25TGlxFirstThenLastIteratorC1Ev @ 71 NONAME
-	_ZN25TGlxFirstThenLastIteratorC2Ev @ 72 NONAME
-	_ZN25TGlxFirstThenLastIteratorD1Ev @ 73 NONAME
-	_ZN25TGlxFirstThenLastIteratorD2Ev @ 74 NONAME
-	_ZN27CGlxDefaultAttributeContext15SetRangeOffsetsEii @ 75 NONAME
-	_ZN27CGlxDefaultAttributeContext4NewLEv @ 76 NONAME
-	_ZN27CGlxDefaultAttributeContextD0Ev @ 77 NONAME
-	_ZN27CGlxDefaultAttributeContextD1Ev @ 78 NONAME
-	_ZN27CGlxDefaultAttributeContextD2Ev @ 79 NONAME
-	_ZN27CGlxDefaultThumbnailContext15SetRangeOffsetsEii @ 80 NONAME
-	_ZN27CGlxDefaultThumbnailContext4NewLEv @ 81 NONAME
-	_ZN27CGlxDefaultThumbnailContextD0Ev @ 82 NONAME
-	_ZN27CGlxDefaultThumbnailContextD1Ev @ 83 NONAME
-	_ZN27CGlxDefaultThumbnailContextD2Ev @ 84 NONAME
-	_ZN28TGlxFromFocusOutwardIterator15SetRangeOffsetsEii @ 85 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorC1Ev @ 86 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorC2Ev @ 87 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorD1Ev @ 88 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorD2Ev @ 89 NONAME
-	_ZN33TGlxFromManualIndexBlockyIterator15SetRangeOffsetsEii @ 90 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorC1Ev @ 91 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorC2Ev @ 92 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorD1Ev @ 93 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorD2Ev @ 94 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorC1Ev @ 95 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorC2Ev @ 96 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorD1Ev @ 97 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorD2Ev @ 98 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIterator15SetRangeOffsetsEii @ 99 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorC1ERKNS_9MGlxIndexE @ 100 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorC2ERKNS_9MGlxIndexE @ 101 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorD1Ev @ 102 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorD2Ev @ 103 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIterator8SetIndexEi @ 104 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC1Ev @ 105 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC2Ev @ 106 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD1Ev @ 107 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD2Ev @ 108 NONAME
-	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 109 NONAME
-	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 110 NONAME
-	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 111 NONAME
-	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 112 NONAME
-	_ZN9CGlxMedia5ResetEv @ 113 NONAME
-	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 114 NONAME
-	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 115 NONAME
-	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 116 NONAME
-	_ZN9CGlxMediaD0Ev @ 117 NONAME
-	_ZN9CGlxMediaD1Ev @ 118 NONAME
-	_ZN9CGlxMediaD2Ev @ 119 NONAME
-	_ZN9MGlxCache9InstanceLEv @ 120 NONAME
-	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 121 NONAME
-	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 122 NONAME
-	_ZNK14CGlxListWindow2AtEi @ 123 NONAME
-	_ZNK14CGlxListWindow8IteratorEv @ 124 NONAME
-	_ZNK20CGlxUStringConverter9AsStringLERK9TGlxMediaRK13TMPXAttributeiRP7HBufC16 @ 125 NONAME
-	_ZNK21TGlxSelectionIterator7InRangeEi @ 126 NONAME
-	_ZNK22CGlxImageViewerManager15ImageFileHandleEv @ 127 NONAME
-	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 128 NONAME
-	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 129 NONAME
-	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 130 NONAME
-	_ZNK9TGlxMedia11GetDurationERf @ 131 NONAME
-	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 132 NONAME
-	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 133 NONAME
-	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 134 NONAME
-	_ZNK9TGlxMedia13GetFrameCountERi @ 135 NONAME
-	_ZNK9TGlxMedia13GetSystemItemERi @ 136 NONAME
-	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 137 NONAME
-	_ZNK9TGlxMedia14IsDrmProtectedEv @ 138 NONAME
-	_ZNK9TGlxMedia15GetDrmProtectedERi @ 139 NONAME
-	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 140 NONAME
-	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 141 NONAME
-	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 142 NONAME
-	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 143 NONAME
-	_ZNK9TGlxMedia21GetContainedItemCountERi @ 144 NONAME
-	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 145 NONAME
-	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 146 NONAME
-	_ZNK9TGlxMedia3UriEv @ 147 NONAME
-	_ZNK9TGlxMedia5TitleEv @ 148 NONAME
-	_ZNK9TGlxMedia7CommentEv @ 149 NONAME
-	_ZNK9TGlxMedia7GetDateER5TTime @ 150 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 151 NONAME
-	_ZNK9TGlxMedia8CategoryEv @ 152 NONAME
-	_ZNK9TGlxMedia8IsStaticEv @ 153 NONAME
-	_ZNK9TGlxMedia8MimeTypeEv @ 154 NONAME
-	_ZNK9TGlxMedia8SubTitleEv @ 155 NONAME
-	_ZNK9TGlxMedia9IdSpaceIdEv @ 156 NONAME
-	_ZTI13CGlxMediaList @ 157 NONAME
-	_ZTI14CGlxListWindow @ 158 NONAME
-	_ZTI15CGlxImageReader @ 159 NONAME
-	_ZTI16CGlxCacheManager @ 160 NONAME
-	_ZTI20CGlxAttributeContext @ 161 NONAME
-	_ZTI20CGlxGarbageCollector @ 162 NONAME
-	_ZTI20CGlxThumbnailContext @ 163 NONAME
-	_ZTI21TGlxExclusionIterator @ 164 NONAME
-	_ZTI21TGlxSelectionIterator @ 165 NONAME
-	_ZTI22TGlxSequentialIterator @ 166 NONAME
-	_ZTI22TGlxSpecificIdIterator @ 167 NONAME
-	_ZTI25TGlxFirstThenLastIterator @ 168 NONAME
-	_ZTI27CGlxDefaultAttributeContext @ 169 NONAME
-	_ZTI27CGlxDefaultThumbnailContext @ 170 NONAME
-	_ZTI28TGlxFromFocusOutwardIterator @ 171 NONAME
-	_ZTI33TGlxFromManualIndexBlockyIterator @ 172 NONAME
-	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 173 NONAME
-	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 174 NONAME
-	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 175 NONAME
-	_ZTV13CGlxMediaList @ 176 NONAME
-	_ZTV14CGlxListWindow @ 177 NONAME
-	_ZTV15CGlxImageReader @ 178 NONAME
-	_ZTV16CGlxCacheManager @ 179 NONAME
-	_ZTV20CGlxAttributeContext @ 180 NONAME
-	_ZTV20CGlxGarbageCollector @ 181 NONAME
-	_ZTV20CGlxThumbnailContext @ 182 NONAME
-	_ZTV21TGlxExclusionIterator @ 183 NONAME
-	_ZTV21TGlxSelectionIterator @ 184 NONAME
-	_ZTV22TGlxSequentialIterator @ 185 NONAME
-	_ZTV22TGlxSpecificIdIterator @ 186 NONAME
-	_ZTV25TGlxFirstThenLastIterator @ 187 NONAME
-	_ZTV27CGlxDefaultAttributeContext @ 188 NONAME
-	_ZTV27CGlxDefaultThumbnailContext @ 189 NONAME
-	_ZTV28TGlxFromFocusOutwardIterator @ 190 NONAME
-	_ZTV33TGlxFromManualIndexBlockyIterator @ 191 NONAME
-	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 192 NONAME
-	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 193 NONAME
-	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 194 NONAME
+	_ZN22CGlxImageViewerManager17IncrementRefCountEv @ 59 NONAME
+	_ZN22CGlxImageViewerManager8ImageUriEv @ 60 NONAME
+	_ZN22CGlxImageViewerManager9IsPrivateEv @ 61 NONAME
+	_ZN22TGlxSequentialIterator8SetRangeEi @ 62 NONAME
+	_ZN22TGlxSequentialIteratorC1Ev @ 63 NONAME
+	_ZN22TGlxSequentialIteratorC2Ev @ 64 NONAME
+	_ZN22TGlxSpecificIdIteratorC1ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 65 NONAME
+	_ZN22TGlxSpecificIdIteratorC2ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 66 NONAME
+	_ZN23TGlxFetchContextRemover5CloseEv @ 67 NONAME
+	_ZN23TGlxFetchContextRemoverC1EP16MGlxFetchContextR13MGlxMediaList @ 68 NONAME
+	_ZN23TGlxFetchContextRemoverC2EP16MGlxFetchContextR13MGlxMediaList @ 69 NONAME
+	_ZN23TGlxFetchContextRemoverD1Ev @ 70 NONAME
+	_ZN23TGlxFetchContextRemoverD2Ev @ 71 NONAME
+	_ZN25TGlxFirstThenLastIteratorC1Ev @ 72 NONAME
+	_ZN25TGlxFirstThenLastIteratorC2Ev @ 73 NONAME
+	_ZN25TGlxFirstThenLastIteratorD1Ev @ 74 NONAME
+	_ZN25TGlxFirstThenLastIteratorD2Ev @ 75 NONAME
+	_ZN27CGlxDefaultAttributeContext15SetRangeOffsetsEii @ 76 NONAME
+	_ZN27CGlxDefaultAttributeContext4NewLEv @ 77 NONAME
+	_ZN27CGlxDefaultAttributeContextD0Ev @ 78 NONAME
+	_ZN27CGlxDefaultAttributeContextD1Ev @ 79 NONAME
+	_ZN27CGlxDefaultAttributeContextD2Ev @ 80 NONAME
+	_ZN27CGlxDefaultThumbnailContext15SetRangeOffsetsEii @ 81 NONAME
+	_ZN27CGlxDefaultThumbnailContext4NewLEv @ 82 NONAME
+	_ZN27CGlxDefaultThumbnailContextD0Ev @ 83 NONAME
+	_ZN27CGlxDefaultThumbnailContextD1Ev @ 84 NONAME
+	_ZN27CGlxDefaultThumbnailContextD2Ev @ 85 NONAME
+	_ZN28TGlxFromFocusOutwardIterator15SetRangeOffsetsEii @ 86 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorC1Ev @ 87 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorC2Ev @ 88 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorD1Ev @ 89 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorD2Ev @ 90 NONAME
+	_ZN33TGlxFromManualIndexBlockyIterator15SetRangeOffsetsEii @ 91 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorC1Ev @ 92 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorC2Ev @ 93 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorD1Ev @ 94 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorD2Ev @ 95 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorC1Ev @ 96 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorC2Ev @ 97 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorD1Ev @ 98 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorD2Ev @ 99 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIterator15SetRangeOffsetsEii @ 100 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorC1ERKNS_9MGlxIndexE @ 101 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorC2ERKNS_9MGlxIndexE @ 102 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorD1Ev @ 103 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorD2Ev @ 104 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIterator8SetIndexEi @ 105 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC1Ev @ 106 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC2Ev @ 107 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD1Ev @ 108 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD2Ev @ 109 NONAME
+	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 110 NONAME
+	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 111 NONAME
+	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 112 NONAME
+	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 113 NONAME
+	_ZN9CGlxMedia5ResetEv @ 114 NONAME
+	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 115 NONAME
+	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 116 NONAME
+	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 117 NONAME
+	_ZN9CGlxMediaD0Ev @ 118 NONAME
+	_ZN9CGlxMediaD1Ev @ 119 NONAME
+	_ZN9CGlxMediaD2Ev @ 120 NONAME
+	_ZN9MGlxCache9InstanceLEv @ 121 NONAME
+	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 122 NONAME
+	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 123 NONAME
+	_ZNK14CGlxListWindow2AtEi @ 124 NONAME
+	_ZNK14CGlxListWindow8IteratorEv @ 125 NONAME
+	_ZNK20CGlxUStringConverter9AsStringLERK9TGlxMediaRK13TMPXAttributeiRP7HBufC16 @ 126 NONAME
+	_ZNK21TGlxSelectionIterator7InRangeEi @ 127 NONAME
+	_ZNK22CGlxImageViewerManager15ImageFileHandleEv @ 128 NONAME
+	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 129 NONAME
+	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 130 NONAME
+	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 131 NONAME
+	_ZNK9TGlxMedia11GetDurationERf @ 132 NONAME
+	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 133 NONAME
+	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 134 NONAME
+	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 135 NONAME
+	_ZNK9TGlxMedia13GetFrameCountERi @ 136 NONAME
+	_ZNK9TGlxMedia13GetSystemItemERi @ 137 NONAME
+	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 138 NONAME
+	_ZNK9TGlxMedia14IsDrmProtectedEv @ 139 NONAME
+	_ZNK9TGlxMedia15GetDrmProtectedERi @ 140 NONAME
+	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 141 NONAME
+	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 142 NONAME
+	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 143 NONAME
+	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 144 NONAME
+	_ZNK9TGlxMedia21GetContainedItemCountERi @ 145 NONAME
+	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 146 NONAME
+	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 147 NONAME
+	_ZNK9TGlxMedia3UriEv @ 148 NONAME
+	_ZNK9TGlxMedia5TitleEv @ 149 NONAME
+	_ZNK9TGlxMedia7CommentEv @ 150 NONAME
+	_ZNK9TGlxMedia7GetDateER5TTime @ 151 NONAME
+	_ZNK9TGlxMedia7GetSizeERi @ 152 NONAME
+	_ZNK9TGlxMedia8CategoryEv @ 153 NONAME
+	_ZNK9TGlxMedia8IsStaticEv @ 154 NONAME
+	_ZNK9TGlxMedia8MimeTypeEv @ 155 NONAME
+	_ZNK9TGlxMedia8SubTitleEv @ 156 NONAME
+	_ZNK9TGlxMedia9IdSpaceIdEv @ 157 NONAME
+	_ZTI13CGlxMediaList @ 158 NONAME
+	_ZTI14CGlxListWindow @ 159 NONAME
+	_ZTI15CGlxImageReader @ 160 NONAME
+	_ZTI16CGlxCacheManager @ 161 NONAME
+	_ZTI20CGlxAttributeContext @ 162 NONAME
+	_ZTI20CGlxGarbageCollector @ 163 NONAME
+	_ZTI20CGlxThumbnailContext @ 164 NONAME
+	_ZTI21TGlxExclusionIterator @ 165 NONAME
+	_ZTI21TGlxSelectionIterator @ 166 NONAME
+	_ZTI22TGlxSequentialIterator @ 167 NONAME
+	_ZTI22TGlxSpecificIdIterator @ 168 NONAME
+	_ZTI25TGlxFirstThenLastIterator @ 169 NONAME
+	_ZTI27CGlxDefaultAttributeContext @ 170 NONAME
+	_ZTI27CGlxDefaultThumbnailContext @ 171 NONAME
+	_ZTI28TGlxFromFocusOutwardIterator @ 172 NONAME
+	_ZTI33TGlxFromManualIndexBlockyIterator @ 173 NONAME
+	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 174 NONAME
+	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 175 NONAME
+	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 176 NONAME
+	_ZTV13CGlxMediaList @ 177 NONAME
+	_ZTV14CGlxListWindow @ 178 NONAME
+	_ZTV15CGlxImageReader @ 179 NONAME
+	_ZTV16CGlxCacheManager @ 180 NONAME
+	_ZTV20CGlxAttributeContext @ 181 NONAME
+	_ZTV20CGlxGarbageCollector @ 182 NONAME
+	_ZTV20CGlxThumbnailContext @ 183 NONAME
+	_ZTV21TGlxExclusionIterator @ 184 NONAME
+	_ZTV21TGlxSelectionIterator @ 185 NONAME
+	_ZTV22TGlxSequentialIterator @ 186 NONAME
+	_ZTV22TGlxSpecificIdIterator @ 187 NONAME
+	_ZTV25TGlxFirstThenLastIterator @ 188 NONAME
+	_ZTV27CGlxDefaultAttributeContext @ 189 NONAME
+	_ZTV27CGlxDefaultThumbnailContext @ 190 NONAME
+	_ZTV28TGlxFromFocusOutwardIterator @ 191 NONAME
+	_ZTV33TGlxFromManualIndexBlockyIterator @ 192 NONAME
+	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 193 NONAME
+	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 194 NONAME
+	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 195 NONAME
 
--- a/photosgallery/viewframework/medialists/inc/glxcachemanager.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/inc/glxcachemanager.h	Mon Jan 18 20:19:20 2010 +0200
@@ -180,7 +180,7 @@
     void StopRAMReleaseL();
 	//OOM
     void ForceCleanupMedia(TGlxIdSpaceId aSpaceId,TGlxMediaId aId); 
-    TBool HasDRMRightsL(TDesC& aFileName);
+
 public:
     void ImageReadyL(const TInt& aError, const TSize aSz);
 private:
@@ -287,7 +287,8 @@
      */
     CMPXCollectionPath* RequestAsPathLC(const CGlxMediaList& aList);
     
-    void GetMimeType(TFileName& aFileName, TDataType& aMimeType );
+    void GetMimeTypeL(TFileName& aFileName, TDataType& aMimeType );
+    
 #ifdef USE_S60_TNM
     /*
      * This function doesnt add up any value, added to reduce compiler warnings
--- a/photosgallery/viewframework/medialists/inc/glximagereader.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/inc/glximagereader.h	Mon Jan 18 20:19:20 2010 +0200
@@ -48,7 +48,7 @@
 public:
     static CGlxImageReader* NewL(MImageReadyCallBack& aNotify);
     ~CGlxImageReader();
-    TBool HasDRMRightsL();
+    TInt GetDRMRightsL(TInt aAttribute);
 
 private:
     MImageReadyCallBack&                iNotify;
--- a/photosgallery/viewframework/medialists/src/glxcachemanager.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxcachemanager.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -211,6 +211,7 @@
 		// Cancel the pending attribute request
 		collection.CancelRequest();	
 		
+#ifdef USE_S60_TNM
 		GLX_DEBUG2("CGlxCacheManager::CancelPreviousRequest() iThumbnailRequestIds.Count() %d", iThumbnailRequestIds.Count());
 		
 		// Check if any thumbnail requests are pending and cancel the requests.		
@@ -219,6 +220,7 @@
 			iTnEngine->CancelRequest(iThumbnailRequestIds[i].iId);									
 			}
 		iThumbnailRequestIds.Reset();		
+#endif
 		iRequestOwner = NULL;
 		}
 	}
@@ -595,7 +597,7 @@
 #ifdef MEDIA_ID_BASED_TN_FETCH_ENABLED
 	               	 	GLX_DEBUG2("CGlxCacheManager::MaintainCacheL() requesting TN attribute (Medialist) itemId %d", itemId.Value());
 						if (item.Uri().Find(KFileIdentifier) != KErrNotFound ||
-						    item.Uri().Length() == 0 && itemId.Value())
+						    item.Uri().Length() && itemId.Value())
 #else
 	               	 	GLX_DEBUG1("CGlxCacheManager::MaintainCacheL() requesting TN attribute (Medialist) Uri");
 						if (item.Uri().Find(KFileIdentifier) != KErrNotFound)
@@ -764,9 +766,22 @@
                                 }
                             else if ( iRequestedAttrs[i] == KGlxMediaGeneralLastModifiedDate )
                                 {
-                                TTime time;
-                                time.HomeTime();
-                                iMPXMedia->SetTObjectValueL(KGlxMediaGeneralLastModifiedDate, time.Int64());
+                                if(errInImage == KErrNone)
+                                    {
+                                    RFs fs; 
+                                    fs.Connect();   
+                                    TEntry entry;   
+                                    fs.Entry(fileName,entry);    
+                                    TTime time = entry.iModified;   
+                                    fs.Close();
+                                    iMPXMedia->SetTObjectValueL(KGlxMediaGeneralLastModifiedDate, time.Int64());
+                                    }
+                                else
+                                    {
+                                    TTime time;
+                                    time.HomeTime();
+                                    iMPXMedia->SetTObjectValueL(KGlxMediaGeneralLastModifiedDate, time.Int64());
+                                    }
                                 }
                             else if ( iRequestedAttrs[i] == KMPXMediaGeneralSize )
                                 {
@@ -805,7 +820,7 @@
                                 if(errInImage == KErrNone)
                                     {
                                     TDataType dataType;
-                                    GetMimeType(fileName, dataType);
+                                    GetMimeTypeL(fileName, dataType);
                                     iMPXMedia->SetTextValueL(KMPXMediaGeneralMimeType, dataType.Des());
                                     }
                                 else
@@ -846,12 +861,17 @@
                                 }
                             else if (iRequestedAttrs[i] == KMPXMediaDrmProtected )
                                 {
-                                iMPXMedia->SetTObjectValueL(KMPXMediaDrmProtected, EFalse); 
+                                TBool protection = iReader->GetDRMRightsL
+                                		(ContentAccess::EIsProtected);
+                                iMPXMedia->SetTObjectValueL(KMPXMediaDrmProtected, protection); 
                                 }
-                            else if ( iRequestedAttrs[i] == KGlxMediaGeneralDRMRightsValid )            
-                                {
+                            else if ( iRequestedAttrs[i] == KGlxMediaGeneralDRMRightsValid )
+                                { 
+                                TBool canView = iReader->GetDRMRightsL(ContentAccess::ECanView);
+                                TInt rightsValid = canView ? 
+                                		EGlxDrmRightsValid : EGlxDrmRightsInvalid;
                                 iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDRMRightsValid,
-                                            EGlxDrmRightsValidityUnknown); 
+                                                             rightsValid); 
                                 }
                             else if ( iRequestedAttrs[i] == KMPXMediaGeneralCount )
                                 {
@@ -860,7 +880,8 @@
                             else if ( iRequestedAttrs[i] == KMPXMediaColDetailSpaceId )
                                 {
                                 TGlxIdSpaceId spaceId = list->IdSpaceId(iRequestedItemIndexes[0]);
-                                iMPXMedia->SetTObjectValueL(KMPXMediaColDetailSpaceId, spaceId.Value());
+                                iMPXMedia->SetTObjectValueL(KMPXMediaColDetailSpaceId,
+                                		 spaceId.Value());
                                 }
                             else if ( iRequestedAttrs[i] == KGlxMediaGeneralSlideshowableContent )
                                 {
@@ -1406,8 +1427,10 @@
     }
 #endif
 
-void CGlxCacheManager::GetMimeType(TFileName& aFileName, TDataType& aMimeType)
+void CGlxCacheManager::GetMimeTypeL(TFileName& aFileName, TDataType& aMimeType)
     {
+    TRACER("CGlxCacheManager::GetMimeTypeL");
+    
     RApaLsSession session;
     User::LeaveIfError( session.Connect() );
     CleanupClosePushL( session );
@@ -1419,9 +1442,13 @@
     }
 void CGlxCacheManager::ImageReadyL(const TInt& aError, const TSize aSz)
     {
+    TRACER("CGlxCacheManager::ImageReadyL");              
+    GLX_DEBUG2("CGlxCacheManager::ImageReadyL aError=%d", aError);             
+    iImgSz = TSize();
     if(iSchedulerWait)
         {
         iSchedulerWait->AsyncStop();    
         }    
+    User::LeaveIfError( aError );                    
     iImgSz = aSz;
     }
--- a/photosgallery/viewframework/medialists/src/glximagereader.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glximagereader.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -18,6 +18,9 @@
 
 #include <apgcli.h>
 #include <glxtracer.h>
+#include <glxlog.h>
+#include <glxpanic.h>
+
 //for DRM
 #include <caf/content.h>
 #include <caf/attributeset.h>
@@ -93,16 +96,21 @@
 void CGlxImageReader::ConstructL()
     {
     TRACER("CGlxImageReader::ConstructL");
-    
+
     CActiveScheduler::Add(this);
     iIsLaunchedFromFMngr = EFalse;
 
     iImgViewerMgr = CGlxImageViewerManager::InstanceL();
-    if (iImgViewerMgr && iImgViewerMgr->IsPrivate())
+    if (!iImgViewerMgr)
         {
-        iIsLaunchedFromFMngr = ETrue;    
+        return;
         }
-    
+
+    if (iImgViewerMgr->IsPrivate())
+        {
+        iIsLaunchedFromFMngr = ETrue;
+        }
+
     TInt errInImage = KErrNone;
     if (iIsLaunchedFromFMngr)
         {
@@ -114,13 +122,15 @@
         TRAP(errInImage,iImageDecoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(), iImgViewerMgr->ImageUri()->Des()));
         }
 
-    if(errInImage != KErrNone)
+    if (errInImage != KErrNone)
         {
         User::Leave(errInImage);
         }
-    iFrame = new(ELeave)CFbsBitmap();
-    iFrame->Create(iImageDecoder->FrameInfo(0).iOverallSizeInPixels,iImageDecoder->FrameInfo(0).iFrameDisplayMode);
-    iImageDecoder->Convert(&iStatus,*iFrame,0);
+    iFrame = new (ELeave) CFbsBitmap();
+    iFrame->Create(iImageDecoder->FrameInfo(0).iOverallSizeInPixels,
+            iImageDecoder->FrameInfo(0).iFrameDisplayMode);
+    iImageDecoder->Convert(&iStatus, *iFrame, 0);
+
     SetActive();
     }
 
@@ -143,55 +153,52 @@
     {
     TRACER("CGlxImageReader::RunL");
     
-    const TSize sz = iFrame->SizeInPixels();
-    iNotify.ImageReadyL(iStatus.Int(),sz);
+    TSize size = TSize();
+    TInt reqStatus = iStatus.Int(); 
+    if (reqStatus == KErrNone && iFrame)
+        {
+        size = iFrame->SizeInPixels();
+        }
+    GLX_DEBUG2("CGlxImageReader::RunL() reqStatus=%d", reqStatus);   
+    iNotify.ImageReadyL(reqStatus, size);
     }
 // ---------------------------------------------------------
-// CGlxImageReader::HasDRMRightsL
+// CGlxImageReader::GetDRMRightsL
 // ---------------------------------------------------------
 //
-TBool CGlxImageReader::HasDRMRightsL()
+TInt CGlxImageReader::GetDRMRightsL(TInt aAttribute)
     {
-    TRACER("Entering CGlxImageReader::HasDRMRightsL");
- 
-    RAttributeSet attributeSet;
-    CleanupClosePushL(attributeSet);
-    attributeSet.AddL(ECanView);
-    attributeSet.AddL(EIsProtected);
-    CContent* content;
+    TRACER("CGlxImageReader::GetDRMRightsL");
+    
+    TInt value = KErrNone;
+    TInt error = KErrNone;
+    CContent* content = NULL;
     if(iIsLaunchedFromFMngr)
         {
-        content = CContent::NewL(iImgViewerMgr->ImageFileHandle());    
+        content = CContent::NewLC(iImgViewerMgr->ImageFileHandle());    
         }
     else
         {
-        content = CContent::NewL(iImgViewerMgr->ImageUri()->Des());
+        content = CContent::NewLC(iImgViewerMgr->ImageUri()->Des());
         }
 
-    // Retrieve the attributes from the agent
-    User::LeaveIfError(content->GetAttributeSet(attributeSet));
-    TInt rights = ERightsNone;
-    TBool drmProtected = EFalse;
-    attributeSet.GetValue(EIsProtected,drmProtected);
-    if(!drmProtected)
-        {
-        CleanupStack::PopAndDestroy(&attributeSet);
-        delete content;
-        content = NULL;
-        return EFalse;
-        }
-    attributeSet.GetValue(ECanView,rights);
-    CleanupStack::PopAndDestroy(&attributeSet);
-
-    if(content)
-        {
-        delete content;
-        content = NULL;
-        }
-
-    if(rights)
-        {
-        return ETrue;
-        }
-    return EFalse;
+    __ASSERT_ALWAYS(content, Panic(EGlxPanicNullPointer));
+    error = content->GetAttribute(aAttribute, value);
+    CleanupStack::PopAndDestroy( content );
+    GLX_DEBUG2("CGlxImageReader::GetDRMRightsL value=%d", value);
+    if(error != KErrNone)
+	    {
+	    switch	( aAttribute )
+			{
+			case ContentAccess::EIsProtected : 
+				value = ETrue;
+				break;
+			case ContentAccess::ECanView : 
+				value = EFalse;
+				break;
+		    default:
+		    	value = EFalse;
+			}
+	    }
+    return value;
     }
--- a/photosgallery/viewframework/medialists/tsrc/eabi/t_cglxcacheu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/t_cglxcacheu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -2,56 +2,62 @@
 	_Z16CreateTestSuiteLv @ 1 NONAME
 	_ZN15GlxErrorManager18HasAttributeErrorLEPK9CGlxMediaRK13TMPXAttribute @ 2 NONAME
 	_ZN15GlxErrorManager18HasAttributeErrorLEPK9CGlxMediai @ 3 NONAME
-	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 4 NONAME
-	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 5 NONAME
-	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 6 NONAME
-	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 7 NONAME
-	_ZN9CGlxMedia5ResetEv @ 8 NONAME
-	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 9 NONAME
-	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 10 NONAME
-	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 11 NONAME
-	_ZN9CGlxMediaD0Ev @ 12 NONAME
-	_ZN9CGlxMediaD1Ev @ 13 NONAME
-	_ZN9CGlxMediaD2Ev @ 14 NONAME
-	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 15 NONAME
-	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 16 NONAME
-	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 17 NONAME
-	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 18 NONAME
-	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 19 NONAME
-	_ZNK9TGlxMedia11GetDurationERf @ 20 NONAME
-	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 21 NONAME
-	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 22 NONAME
-	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 23 NONAME
-	_ZNK9TGlxMedia13GetFrameCountERi @ 24 NONAME
-	_ZNK9TGlxMedia13GetSystemItemERi @ 25 NONAME
-	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 26 NONAME
-	_ZNK9TGlxMedia14IsDrmProtectedEv @ 27 NONAME
-	_ZNK9TGlxMedia15GetDrmProtectedERi @ 28 NONAME
-	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 29 NONAME
-	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 30 NONAME
-	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 31 NONAME
-	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 32 NONAME
-	_ZNK9TGlxMedia21GetContainedItemCountERi @ 33 NONAME
-	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 34 NONAME
-	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 35 NONAME
-	_ZNK9TGlxMedia3UriEv @ 36 NONAME
-	_ZNK9TGlxMedia5TitleEv @ 37 NONAME
-	_ZNK9TGlxMedia7CommentEv @ 38 NONAME
-	_ZNK9TGlxMedia7GetDateER5TTime @ 39 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 40 NONAME
-	_ZNK9TGlxMedia8CategoryEv @ 41 NONAME
-	_ZNK9TGlxMedia8IsStaticEv @ 42 NONAME
-	_ZNK9TGlxMedia8MimeTypeEv @ 43 NONAME
-	_ZNK9TGlxMedia8SubTitleEv @ 44 NONAME
-	_ZNK9TGlxMedia9IdSpaceIdEv @ 45 NONAME
-	_ZTI13CGlxMediaList @ 46 NONAME ; #<TI>#
-	_ZTI16CGlxCacheManager @ 47 NONAME ; #<TI>#
-	_ZTI20CGlxGarbageCollector @ 48 NONAME ; #<TI>#
-	_ZTIN11T_CGlxCache17CGlxMediaUserTestE @ 49 NONAME ; #<TI>#
-	_ZTIN11T_CGlxCache21CGlxCacheObserverTestE @ 50 NONAME ; #<TI>#
-	_ZTV13CGlxMediaList @ 51 NONAME ; #<VT>#
-	_ZTV16CGlxCacheManager @ 52 NONAME ; #<VT>#
-	_ZTV20CGlxGarbageCollector @ 53 NONAME ; #<VT>#
-	_ZTVN11T_CGlxCache17CGlxMediaUserTestE @ 54 NONAME ; #<VT>#
-	_ZTVN11T_CGlxCache21CGlxCacheObserverTestE @ 55 NONAME ; #<VT>#
+	_ZN22CGlxImageViewerManager17IncrementRefCountEv @ 4 NONAME
+	_ZN22CGlxImageViewerManager8ImageUriEv @ 5 NONAME
+	_ZN22CGlxImageViewerManager9IsPrivateEv @ 6 NONAME
+	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 7 NONAME
+	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 8 NONAME
+	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 9 NONAME
+	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 10 NONAME
+	_ZN9CGlxMedia5ResetEv @ 11 NONAME
+	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 12 NONAME
+	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 13 NONAME
+	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 14 NONAME
+	_ZN9CGlxMediaD0Ev @ 15 NONAME
+	_ZN9CGlxMediaD1Ev @ 16 NONAME
+	_ZN9CGlxMediaD2Ev @ 17 NONAME
+	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 18 NONAME
+	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 19 NONAME
+	_ZNK22CGlxImageViewerManager15ImageFileHandleEv @ 20 NONAME
+	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 21 NONAME
+	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 22 NONAME
+	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 23 NONAME
+	_ZNK9TGlxMedia11GetDurationERf @ 24 NONAME
+	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 25 NONAME
+	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 26 NONAME
+	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 27 NONAME
+	_ZNK9TGlxMedia13GetFrameCountERi @ 28 NONAME
+	_ZNK9TGlxMedia13GetSystemItemERi @ 29 NONAME
+	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 30 NONAME
+	_ZNK9TGlxMedia14IsDrmProtectedEv @ 31 NONAME
+	_ZNK9TGlxMedia15GetDrmProtectedERi @ 32 NONAME
+	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 33 NONAME
+	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 34 NONAME
+	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 35 NONAME
+	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 36 NONAME
+	_ZNK9TGlxMedia21GetContainedItemCountERi @ 37 NONAME
+	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 38 NONAME
+	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 39 NONAME
+	_ZNK9TGlxMedia3UriEv @ 40 NONAME
+	_ZNK9TGlxMedia5TitleEv @ 41 NONAME
+	_ZNK9TGlxMedia7CommentEv @ 42 NONAME
+	_ZNK9TGlxMedia7GetDateER5TTime @ 43 NONAME
+	_ZNK9TGlxMedia7GetSizeERi @ 44 NONAME
+	_ZNK9TGlxMedia8CategoryEv @ 45 NONAME
+	_ZNK9TGlxMedia8IsStaticEv @ 46 NONAME
+	_ZNK9TGlxMedia8MimeTypeEv @ 47 NONAME
+	_ZNK9TGlxMedia8SubTitleEv @ 48 NONAME
+	_ZNK9TGlxMedia9IdSpaceIdEv @ 49 NONAME
+	_ZTI13CGlxMediaList @ 50 NONAME
+	_ZTI15CGlxImageReader @ 51 NONAME
+	_ZTI16CGlxCacheManager @ 52 NONAME
+	_ZTI20CGlxGarbageCollector @ 53 NONAME
+	_ZTIN11T_CGlxCache17CGlxMediaUserTestE @ 54 NONAME
+	_ZTIN11T_CGlxCache21CGlxCacheObserverTestE @ 55 NONAME
+	_ZTV13CGlxMediaList @ 56 NONAME
+	_ZTV15CGlxImageReader @ 57 NONAME
+	_ZTV16CGlxCacheManager @ 58 NONAME
+	_ZTV20CGlxGarbageCollector @ 59 NONAME
+	_ZTVN11T_CGlxCache17CGlxMediaUserTestE @ 60 NONAME
+	_ZTVN11T_CGlxCache21CGlxCacheObserverTestE @ 61 NONAME
 
--- a/photosgallery/viewframework/medialists/tsrc/eabi/t_cglxgarbagecollectoru.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/t_cglxgarbagecollectoru.def	Mon Jan 18 20:19:20 2010 +0200
@@ -2,68 +2,74 @@
 	_Z16CreateTestSuiteLv @ 1 NONAME
 	_ZN15GlxErrorManager18HasAttributeErrorLEPK9CGlxMediaRK13TMPXAttribute @ 2 NONAME
 	_ZN15GlxErrorManager18HasAttributeErrorLEPK9CGlxMediai @ 3 NONAME
-	_ZN5CIdle3NewEi @ 4 NONAME
-	_ZN5CIdle4NewLEi @ 5 NONAME
-	_ZN5CIdle4RunLEv @ 6 NONAME
-	_ZN5CIdle5StartE9TCallBack @ 7 NONAME
-	_ZN5CIdle8DoCancelEv @ 8 NONAME
-	_ZN5CIdleC1Ei @ 9 NONAME
-	_ZN5CIdleC2Ei @ 10 NONAME
-	_ZN5CIdleD0Ev @ 11 NONAME
-	_ZN5CIdleD1Ev @ 12 NONAME
-	_ZN5CIdleD2Ev @ 13 NONAME
-	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 14 NONAME
-	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 15 NONAME
-	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 16 NONAME
-	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 17 NONAME
-	_ZN9CGlxMedia5ResetEv @ 18 NONAME
-	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 19 NONAME
-	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 20 NONAME
-	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 21 NONAME
-	_ZN9CGlxMediaD0Ev @ 22 NONAME
-	_ZN9CGlxMediaD1Ev @ 23 NONAME
-	_ZN9CGlxMediaD2Ev @ 24 NONAME
-	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 25 NONAME
-	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 26 NONAME
-	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 27 NONAME
-	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 28 NONAME
-	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 29 NONAME
-	_ZNK9TGlxMedia11GetDurationERf @ 30 NONAME
-	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 31 NONAME
-	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 32 NONAME
-	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 33 NONAME
-	_ZNK9TGlxMedia13GetFrameCountERi @ 34 NONAME
-	_ZNK9TGlxMedia13GetSystemItemERi @ 35 NONAME
-	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 36 NONAME
-	_ZNK9TGlxMedia14IsDrmProtectedEv @ 37 NONAME
-	_ZNK9TGlxMedia15GetDrmProtectedERi @ 38 NONAME
-	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 39 NONAME
-	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 40 NONAME
-	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 41 NONAME
-	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 42 NONAME
-	_ZNK9TGlxMedia21GetContainedItemCountERi @ 43 NONAME
-	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 44 NONAME
-	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 45 NONAME
-	_ZNK9TGlxMedia3UriEv @ 46 NONAME
-	_ZNK9TGlxMedia5TitleEv @ 47 NONAME
-	_ZNK9TGlxMedia7CommentEv @ 48 NONAME
-	_ZNK9TGlxMedia7GetDateER5TTime @ 49 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 50 NONAME
-	_ZNK9TGlxMedia8CategoryEv @ 51 NONAME
-	_ZNK9TGlxMedia8IsStaticEv @ 52 NONAME
-	_ZNK9TGlxMedia8MimeTypeEv @ 53 NONAME
-	_ZNK9TGlxMedia8SubTitleEv @ 54 NONAME
-	_ZNK9TGlxMedia9IdSpaceIdEv @ 55 NONAME
-	_ZTI13CGlxMediaList @ 56 NONAME ; #<TI>#
-	_ZTI16CGlxCacheManager @ 57 NONAME ; #<TI>#
-	_ZTI20CGlxGarbageCollector @ 58 NONAME ; #<TI>#
-	_ZTI5CIdle @ 59 NONAME ; #<TI>#
-	_ZTIN22T_CGlxGarbageCollector10CTimerTestE @ 60 NONAME ; #<TI>#
-	_ZTIN22T_CGlxGarbageCollector17CGlxMediaUserTestE @ 61 NONAME ; #<TI>#
-	_ZTV13CGlxMediaList @ 62 NONAME ; #<VT>#
-	_ZTV16CGlxCacheManager @ 63 NONAME ; #<VT>#
-	_ZTV20CGlxGarbageCollector @ 64 NONAME ; #<VT>#
-	_ZTV5CIdle @ 65 NONAME ; #<VT>#
-	_ZTVN22T_CGlxGarbageCollector10CTimerTestE @ 66 NONAME ; #<VT>#
-	_ZTVN22T_CGlxGarbageCollector17CGlxMediaUserTestE @ 67 NONAME ; #<VT>#
+	_ZN22CGlxImageViewerManager17IncrementRefCountEv @ 4 NONAME
+	_ZN22CGlxImageViewerManager8ImageUriEv @ 5 NONAME
+	_ZN22CGlxImageViewerManager9IsPrivateEv @ 6 NONAME
+	_ZN5CIdle3NewEi @ 7 NONAME
+	_ZN5CIdle4NewLEi @ 8 NONAME
+	_ZN5CIdle4RunLEv @ 9 NONAME
+	_ZN5CIdle5StartE9TCallBack @ 10 NONAME
+	_ZN5CIdle8DoCancelEv @ 11 NONAME
+	_ZN5CIdleC1Ei @ 12 NONAME
+	_ZN5CIdleC2Ei @ 13 NONAME
+	_ZN5CIdleD0Ev @ 14 NONAME
+	_ZN5CIdleD1Ev @ 15 NONAME
+	_ZN5CIdleD2Ev @ 16 NONAME
+	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 17 NONAME
+	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 18 NONAME
+	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 19 NONAME
+	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 20 NONAME
+	_ZN9CGlxMedia5ResetEv @ 21 NONAME
+	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 22 NONAME
+	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 23 NONAME
+	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 24 NONAME
+	_ZN9CGlxMediaD0Ev @ 25 NONAME
+	_ZN9CGlxMediaD1Ev @ 26 NONAME
+	_ZN9CGlxMediaD2Ev @ 27 NONAME
+	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 28 NONAME
+	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 29 NONAME
+	_ZNK22CGlxImageViewerManager15ImageFileHandleEv @ 30 NONAME
+	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 31 NONAME
+	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 32 NONAME
+	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 33 NONAME
+	_ZNK9TGlxMedia11GetDurationERf @ 34 NONAME
+	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 35 NONAME
+	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 36 NONAME
+	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 37 NONAME
+	_ZNK9TGlxMedia13GetFrameCountERi @ 38 NONAME
+	_ZNK9TGlxMedia13GetSystemItemERi @ 39 NONAME
+	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 40 NONAME
+	_ZNK9TGlxMedia14IsDrmProtectedEv @ 41 NONAME
+	_ZNK9TGlxMedia15GetDrmProtectedERi @ 42 NONAME
+	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 43 NONAME
+	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 44 NONAME
+	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 45 NONAME
+	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 46 NONAME
+	_ZNK9TGlxMedia21GetContainedItemCountERi @ 47 NONAME
+	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 48 NONAME
+	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 49 NONAME
+	_ZNK9TGlxMedia3UriEv @ 50 NONAME
+	_ZNK9TGlxMedia5TitleEv @ 51 NONAME
+	_ZNK9TGlxMedia7CommentEv @ 52 NONAME
+	_ZNK9TGlxMedia7GetDateER5TTime @ 53 NONAME
+	_ZNK9TGlxMedia7GetSizeERi @ 54 NONAME
+	_ZNK9TGlxMedia8CategoryEv @ 55 NONAME
+	_ZNK9TGlxMedia8IsStaticEv @ 56 NONAME
+	_ZNK9TGlxMedia8MimeTypeEv @ 57 NONAME
+	_ZNK9TGlxMedia8SubTitleEv @ 58 NONAME
+	_ZNK9TGlxMedia9IdSpaceIdEv @ 59 NONAME
+	_ZTI13CGlxMediaList @ 60 NONAME
+	_ZTI15CGlxImageReader @ 61 NONAME
+	_ZTI16CGlxCacheManager @ 62 NONAME
+	_ZTI20CGlxGarbageCollector @ 63 NONAME
+	_ZTI5CIdle @ 64 NONAME
+	_ZTIN22T_CGlxGarbageCollector10CTimerTestE @ 65 NONAME
+	_ZTIN22T_CGlxGarbageCollector17CGlxMediaUserTestE @ 66 NONAME
+	_ZTV13CGlxMediaList @ 67 NONAME
+	_ZTV15CGlxImageReader @ 68 NONAME
+	_ZTV16CGlxCacheManager @ 69 NONAME
+	_ZTV20CGlxGarbageCollector @ 70 NONAME
+	_ZTV5CIdle @ 71 NONAME
+	_ZTVN22T_CGlxGarbageCollector10CTimerTestE @ 72 NONAME
+	_ZTVN22T_CGlxGarbageCollector17CGlxMediaUserTestE @ 73 NONAME
 
--- a/photosgallery/viewframework/medialists/tsrc/eabi/t_glxlistwindowu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/t_glxlistwindowu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -21,6 +21,6 @@
 	_ZN18TGlxWindowIteratorppEi @ 20 NONAME
 	_ZNK14CGlxListWindow2AtEi @ 21 NONAME
 	_ZNK14CGlxListWindow8IteratorEv @ 22 NONAME
-	_ZTI14CGlxListWindow @ 23 NONAME ; #<TI>#
-	_ZTV14CGlxListWindow @ 24 NONAME ; #<VT>#
+	_ZTI14CGlxListWindow @ 23 NONAME
+	_ZTV14CGlxListWindow @ 24 NONAME
 
--- a/photosgallery/viewframework/medialists/tsrc/eabi/t_tglxexclusioniteratoru.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/t_tglxexclusioniteratoru.def	Mon Jan 18 20:19:20 2010 +0200
@@ -68,26 +68,26 @@
 	_ZNK14CGlxListWindow2AtEi @ 67 NONAME
 	_ZNK14CGlxListWindow8IteratorEv @ 68 NONAME
 	_ZNK21TGlxSelectionIterator7InRangeEi @ 69 NONAME
-	_ZTI14CGlxListWindow @ 70 NONAME ; #<TI>#
-	_ZTI21TGlxExclusionIterator @ 71 NONAME ; #<TI>#
-	_ZTI21TGlxSelectionIterator @ 72 NONAME ; #<TI>#
-	_ZTI22TGlxSequentialIterator @ 73 NONAME ; #<TI>#
-	_ZTI22TGlxSpecificIdIterator @ 74 NONAME ; #<TI>#
-	_ZTI25TGlxFirstThenLastIterator @ 75 NONAME ; #<TI>#
-	_ZTI28TGlxFromFocusOutwardIterator @ 76 NONAME ; #<TI>#
-	_ZTI33TGlxFromManualIndexBlockyIterator @ 77 NONAME ; #<TI>#
-	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 78 NONAME ; #<TI>#
-	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 79 NONAME ; #<TI>#
-	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 80 NONAME ; #<TI>#
-	_ZTV14CGlxListWindow @ 81 NONAME ; #<VT>#
-	_ZTV21TGlxExclusionIterator @ 82 NONAME ; #<VT>#
-	_ZTV21TGlxSelectionIterator @ 83 NONAME ; #<VT>#
-	_ZTV22TGlxSequentialIterator @ 84 NONAME ; #<VT>#
-	_ZTV22TGlxSpecificIdIterator @ 85 NONAME ; #<VT>#
-	_ZTV25TGlxFirstThenLastIterator @ 86 NONAME ; #<VT>#
-	_ZTV28TGlxFromFocusOutwardIterator @ 87 NONAME ; #<VT>#
-	_ZTV33TGlxFromManualIndexBlockyIterator @ 88 NONAME ; #<VT>#
-	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 89 NONAME ; #<VT>#
-	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 90 NONAME ; #<VT>#
-	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 91 NONAME ; #<VT>#
+	_ZTI14CGlxListWindow @ 70 NONAME
+	_ZTI21TGlxExclusionIterator @ 71 NONAME
+	_ZTI21TGlxSelectionIterator @ 72 NONAME
+	_ZTI22TGlxSequentialIterator @ 73 NONAME
+	_ZTI22TGlxSpecificIdIterator @ 74 NONAME
+	_ZTI25TGlxFirstThenLastIterator @ 75 NONAME
+	_ZTI28TGlxFromFocusOutwardIterator @ 76 NONAME
+	_ZTI33TGlxFromManualIndexBlockyIterator @ 77 NONAME
+	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 78 NONAME
+	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 79 NONAME
+	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 80 NONAME
+	_ZTV14CGlxListWindow @ 81 NONAME
+	_ZTV21TGlxExclusionIterator @ 82 NONAME
+	_ZTV21TGlxSelectionIterator @ 83 NONAME
+	_ZTV22TGlxSequentialIterator @ 84 NONAME
+	_ZTV22TGlxSpecificIdIterator @ 85 NONAME
+	_ZTV25TGlxFirstThenLastIterator @ 86 NONAME
+	_ZTV28TGlxFromFocusOutwardIterator @ 87 NONAME
+	_ZTV33TGlxFromManualIndexBlockyIterator @ 88 NONAME
+	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 89 NONAME
+	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 90 NONAME
+	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 91 NONAME
 
--- a/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxattributecontextu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxattributecontextu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -27,165 +27,172 @@
 	_ZN19GlxThumbnailUtility16ClosestThumbnailERK5TSizeRK9CGlxMediai @ 26 NONAME
 	_ZN20CGlxAttributeContext13AddAttributeLERK13TMPXAttribute @ 27 NONAME
 	_ZN20CGlxAttributeContext14AttributeCountEv @ 28 NONAME
-	_ZN20CGlxAttributeContext14SetGranularityEj @ 29 NONAME
-	_ZN20CGlxAttributeContext15RemoveAttributeERK13TMPXAttribute @ 30 NONAME
-	_ZN20CGlxAttributeContextC1EP21MGlxMediaListIterator @ 31 NONAME
-	_ZN20CGlxAttributeContextC2EP21MGlxMediaListIterator @ 32 NONAME
-	_ZN20CGlxAttributeContextD0Ev @ 33 NONAME
-	_ZN20CGlxAttributeContextD1Ev @ 34 NONAME
-	_ZN20CGlxAttributeContextD2Ev @ 35 NONAME
-	_ZN20CGlxThumbnailContext14SetDefaultSpecEii @ 36 NONAME
-	_ZN20CGlxThumbnailContext15AddSpecForItemLEiii @ 37 NONAME
-	_ZN20CGlxThumbnailContext18SetHighQualityOnlyEi @ 38 NONAME
-	_ZN20CGlxThumbnailContext4NewLEP21MGlxMediaListIterator @ 39 NONAME
-	_ZN20CGlxThumbnailContextC1EP21MGlxMediaListIterator @ 40 NONAME
-	_ZN20CGlxThumbnailContextC2EP21MGlxMediaListIterator @ 41 NONAME
-	_ZN20CGlxThumbnailContextD0Ev @ 42 NONAME
-	_ZN20CGlxThumbnailContextD1Ev @ 43 NONAME
-	_ZN20CGlxThumbnailContextD2Ev @ 44 NONAME
-	_ZN21TGlxExclusionIterator10SetToFirstEPK13MGlxMediaList @ 45 NONAME
-	_ZN21TGlxExclusionIteratorC1ER21MGlxMediaListIteratorS1_ @ 46 NONAME
-	_ZN21TGlxExclusionIteratorC2ER21MGlxMediaListIteratorS1_ @ 47 NONAME
-	_ZN21TGlxExclusionIteratorD1Ev @ 48 NONAME
-	_ZN21TGlxExclusionIteratorD2Ev @ 49 NONAME
-	_ZN21TGlxSelectionIterator10SetToFirstEPK13MGlxMediaList @ 50 NONAME
-	_ZN21TGlxSelectionIterator34SetDisabledIfMoreThanRangeSelectedEi @ 51 NONAME
-	_ZN21TGlxSelectionIterator8SetRangeEi @ 52 NONAME
-	_ZN21TGlxSelectionIteratorC1Ev @ 53 NONAME
-	_ZN21TGlxSelectionIteratorC2Ev @ 54 NONAME
-	_ZN21TGlxSelectionIteratorD1Ev @ 55 NONAME
-	_ZN21TGlxSelectionIteratorD2Ev @ 56 NONAME
-	_ZN21TGlxSelectionIteratorppEi @ 57 NONAME
-	_ZN22TGlxSequentialIterator8SetRangeEi @ 58 NONAME
-	_ZN22TGlxSequentialIteratorC1Ev @ 59 NONAME
-	_ZN22TGlxSequentialIteratorC2Ev @ 60 NONAME
-	_ZN22TGlxSpecificIdIteratorC1ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 61 NONAME
-	_ZN22TGlxSpecificIdIteratorC2ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 62 NONAME
-	_ZN23TGlxFetchContextRemover5CloseEv @ 63 NONAME
-	_ZN23TGlxFetchContextRemoverC1EP16MGlxFetchContextR13MGlxMediaList @ 64 NONAME
-	_ZN23TGlxFetchContextRemoverC2EP16MGlxFetchContextR13MGlxMediaList @ 65 NONAME
-	_ZN23TGlxFetchContextRemoverD1Ev @ 66 NONAME
-	_ZN23TGlxFetchContextRemoverD2Ev @ 67 NONAME
-	_ZN25TGlxFirstThenLastIteratorC1Ev @ 68 NONAME
-	_ZN25TGlxFirstThenLastIteratorC2Ev @ 69 NONAME
-	_ZN25TGlxFirstThenLastIteratorD1Ev @ 70 NONAME
-	_ZN25TGlxFirstThenLastIteratorD2Ev @ 71 NONAME
-	_ZN27CGlxDefaultAttributeContext15SetRangeOffsetsEii @ 72 NONAME
-	_ZN27CGlxDefaultAttributeContext4NewLEv @ 73 NONAME
-	_ZN27CGlxDefaultAttributeContextD0Ev @ 74 NONAME
-	_ZN27CGlxDefaultAttributeContextD1Ev @ 75 NONAME
-	_ZN27CGlxDefaultAttributeContextD2Ev @ 76 NONAME
-	_ZN27CGlxDefaultThumbnailContext15SetRangeOffsetsEii @ 77 NONAME
-	_ZN27CGlxDefaultThumbnailContext4NewLEv @ 78 NONAME
-	_ZN27CGlxDefaultThumbnailContextD0Ev @ 79 NONAME
-	_ZN27CGlxDefaultThumbnailContextD1Ev @ 80 NONAME
-	_ZN27CGlxDefaultThumbnailContextD2Ev @ 81 NONAME
-	_ZN28TGlxFromFocusOutwardIterator15SetRangeOffsetsEii @ 82 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorC1Ev @ 83 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorC2Ev @ 84 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorD1Ev @ 85 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorD2Ev @ 86 NONAME
-	_ZN33TGlxFromManualIndexBlockyIterator15SetRangeOffsetsEii @ 87 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorC1Ev @ 88 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorC2Ev @ 89 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorD1Ev @ 90 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorD2Ev @ 91 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorC1Ev @ 92 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorC2Ev @ 93 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorD1Ev @ 94 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorD2Ev @ 95 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIterator15SetRangeOffsetsEii @ 96 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorC1ERKNS_9MGlxIndexE @ 97 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorC2ERKNS_9MGlxIndexE @ 98 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorD1Ev @ 99 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorD2Ev @ 100 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIterator8SetIndexEi @ 101 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC1Ev @ 102 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC2Ev @ 103 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD1Ev @ 104 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD2Ev @ 105 NONAME
-	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 106 NONAME
-	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 107 NONAME
-	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 108 NONAME
-	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 109 NONAME
-	_ZN9CGlxMedia5ResetEv @ 110 NONAME
-	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 111 NONAME
-	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 112 NONAME
-	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 113 NONAME
-	_ZN9CGlxMediaD0Ev @ 114 NONAME
-	_ZN9CGlxMediaD1Ev @ 115 NONAME
-	_ZN9CGlxMediaD2Ev @ 116 NONAME
-	_ZN9MGlxCache9InstanceLEv @ 117 NONAME
-	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 118 NONAME
-	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 119 NONAME
-	_ZNK14CGlxListWindow2AtEi @ 120 NONAME
-	_ZNK14CGlxListWindow8IteratorEv @ 121 NONAME
-	_ZNK21TGlxSelectionIterator7InRangeEi @ 122 NONAME
-	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 123 NONAME
-	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 124 NONAME
-	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 125 NONAME
-	_ZNK9TGlxMedia11GetDurationERf @ 126 NONAME
-	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 127 NONAME
-	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 128 NONAME
-	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 129 NONAME
-	_ZNK9TGlxMedia13GetFrameCountERi @ 130 NONAME
-	_ZNK9TGlxMedia13GetSystemItemERi @ 131 NONAME
-	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 132 NONAME
-	_ZNK9TGlxMedia14IsDrmProtectedEv @ 133 NONAME
-	_ZNK9TGlxMedia15GetDrmProtectedERi @ 134 NONAME
-	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 135 NONAME
-	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 136 NONAME
-	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 137 NONAME
-	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 138 NONAME
-	_ZNK9TGlxMedia21GetContainedItemCountERi @ 139 NONAME
-	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 140 NONAME
-	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 141 NONAME
-	_ZNK9TGlxMedia3UriEv @ 142 NONAME
-	_ZNK9TGlxMedia5TitleEv @ 143 NONAME
-	_ZNK9TGlxMedia7CommentEv @ 144 NONAME
-	_ZNK9TGlxMedia7GetDateER5TTime @ 145 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 146 NONAME
-	_ZNK9TGlxMedia8CategoryEv @ 147 NONAME
-	_ZNK9TGlxMedia8IsStaticEv @ 148 NONAME
-	_ZNK9TGlxMedia8MimeTypeEv @ 149 NONAME
-	_ZNK9TGlxMedia8SubTitleEv @ 150 NONAME
-	_ZNK9TGlxMedia9IdSpaceIdEv @ 151 NONAME
-	_ZTI13CGlxMediaList @ 152 NONAME ; #<TI>#
-	_ZTI14CGlxListWindow @ 153 NONAME ; #<TI>#
-	_ZTI16CGlxCacheManager @ 154 NONAME ; #<TI>#
-	_ZTI20CGlxAttributeContext @ 155 NONAME ; #<TI>#
-	_ZTI20CGlxGarbageCollector @ 156 NONAME ; #<TI>#
-	_ZTI20CGlxThumbnailContext @ 157 NONAME ; #<TI>#
-	_ZTI21TGlxExclusionIterator @ 158 NONAME ; #<TI>#
-	_ZTI21TGlxSelectionIterator @ 159 NONAME ; #<TI>#
-	_ZTI22TGlxSequentialIterator @ 160 NONAME ; #<TI>#
-	_ZTI22TGlxSpecificIdIterator @ 161 NONAME ; #<TI>#
-	_ZTI25TGlxFirstThenLastIterator @ 162 NONAME ; #<TI>#
-	_ZTI27CGlxDefaultAttributeContext @ 163 NONAME ; #<TI>#
-	_ZTI27CGlxDefaultThumbnailContext @ 164 NONAME ; #<TI>#
-	_ZTI28TGlxFromFocusOutwardIterator @ 165 NONAME ; #<TI>#
-	_ZTI33TGlxFromManualIndexBlockyIterator @ 166 NONAME ; #<TI>#
-	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 167 NONAME ; #<TI>#
-	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 168 NONAME ; #<TI>#
-	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 169 NONAME ; #<TI>#
-	_ZTIN23UT_CGlxAttributeContext17CGlxMediaListTestE @ 170 NONAME ; #<TI>#
-	_ZTV13CGlxMediaList @ 171 NONAME ; #<VT>#
-	_ZTV14CGlxListWindow @ 172 NONAME ; #<VT>#
-	_ZTV16CGlxCacheManager @ 173 NONAME ; #<VT>#
-	_ZTV20CGlxAttributeContext @ 174 NONAME ; #<VT>#
-	_ZTV20CGlxGarbageCollector @ 175 NONAME ; #<VT>#
-	_ZTV20CGlxThumbnailContext @ 176 NONAME ; #<VT>#
-	_ZTV21TGlxExclusionIterator @ 177 NONAME ; #<VT>#
-	_ZTV21TGlxSelectionIterator @ 178 NONAME ; #<VT>#
-	_ZTV22TGlxSequentialIterator @ 179 NONAME ; #<VT>#
-	_ZTV22TGlxSpecificIdIterator @ 180 NONAME ; #<VT>#
-	_ZTV25TGlxFirstThenLastIterator @ 181 NONAME ; #<VT>#
-	_ZTV27CGlxDefaultAttributeContext @ 182 NONAME ; #<VT>#
-	_ZTV27CGlxDefaultThumbnailContext @ 183 NONAME ; #<VT>#
-	_ZTV28TGlxFromFocusOutwardIterator @ 184 NONAME ; #<VT>#
-	_ZTV33TGlxFromManualIndexBlockyIterator @ 185 NONAME ; #<VT>#
-	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 186 NONAME ; #<VT>#
-	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 187 NONAME ; #<VT>#
-	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 188 NONAME ; #<VT>#
-	_ZTVN23UT_CGlxAttributeContext17CGlxMediaListTestE @ 189 NONAME ; #<VT>#
+	_ZN20CGlxAttributeContext14SetDefaultSpecEii @ 29 NONAME
+	_ZN20CGlxAttributeContext14SetGranularityEj @ 30 NONAME
+	_ZN20CGlxAttributeContext15RemoveAttributeERK13TMPXAttribute @ 31 NONAME
+	_ZN20CGlxAttributeContextC1EP21MGlxMediaListIterator @ 32 NONAME
+	_ZN20CGlxAttributeContextC2EP21MGlxMediaListIterator @ 33 NONAME
+	_ZN20CGlxAttributeContextD0Ev @ 34 NONAME
+	_ZN20CGlxAttributeContextD1Ev @ 35 NONAME
+	_ZN20CGlxAttributeContextD2Ev @ 36 NONAME
+	_ZN20CGlxThumbnailContext14SetDefaultSpecEii @ 37 NONAME
+	_ZN20CGlxThumbnailContext15AddSpecForItemLEiii @ 38 NONAME
+	_ZN20CGlxThumbnailContext18SetHighQualityOnlyEi @ 39 NONAME
+	_ZN20CGlxThumbnailContext4NewLEP21MGlxMediaListIterator @ 40 NONAME
+	_ZN20CGlxThumbnailContextC1EP21MGlxMediaListIterator @ 41 NONAME
+	_ZN20CGlxThumbnailContextC2EP21MGlxMediaListIterator @ 42 NONAME
+	_ZN20CGlxThumbnailContextD0Ev @ 43 NONAME
+	_ZN20CGlxThumbnailContextD1Ev @ 44 NONAME
+	_ZN20CGlxThumbnailContextD2Ev @ 45 NONAME
+	_ZN21TGlxExclusionIterator10SetToFirstEPK13MGlxMediaList @ 46 NONAME
+	_ZN21TGlxExclusionIteratorC1ER21MGlxMediaListIteratorS1_ @ 47 NONAME
+	_ZN21TGlxExclusionIteratorC2ER21MGlxMediaListIteratorS1_ @ 48 NONAME
+	_ZN21TGlxExclusionIteratorD1Ev @ 49 NONAME
+	_ZN21TGlxExclusionIteratorD2Ev @ 50 NONAME
+	_ZN21TGlxSelectionIterator10SetToFirstEPK13MGlxMediaList @ 51 NONAME
+	_ZN21TGlxSelectionIterator34SetDisabledIfMoreThanRangeSelectedEi @ 52 NONAME
+	_ZN21TGlxSelectionIterator8SetRangeEi @ 53 NONAME
+	_ZN21TGlxSelectionIteratorC1Ev @ 54 NONAME
+	_ZN21TGlxSelectionIteratorC2Ev @ 55 NONAME
+	_ZN21TGlxSelectionIteratorD1Ev @ 56 NONAME
+	_ZN21TGlxSelectionIteratorD2Ev @ 57 NONAME
+	_ZN21TGlxSelectionIteratorppEi @ 58 NONAME
+	_ZN22CGlxImageViewerManager17IncrementRefCountEv @ 59 NONAME
+	_ZN22CGlxImageViewerManager8ImageUriEv @ 60 NONAME
+	_ZN22CGlxImageViewerManager9IsPrivateEv @ 61 NONAME
+	_ZN22TGlxSequentialIterator8SetRangeEi @ 62 NONAME
+	_ZN22TGlxSequentialIteratorC1Ev @ 63 NONAME
+	_ZN22TGlxSequentialIteratorC2Ev @ 64 NONAME
+	_ZN22TGlxSpecificIdIteratorC1ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 65 NONAME
+	_ZN22TGlxSpecificIdIteratorC2ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 66 NONAME
+	_ZN23TGlxFetchContextRemover5CloseEv @ 67 NONAME
+	_ZN23TGlxFetchContextRemoverC1EP16MGlxFetchContextR13MGlxMediaList @ 68 NONAME
+	_ZN23TGlxFetchContextRemoverC2EP16MGlxFetchContextR13MGlxMediaList @ 69 NONAME
+	_ZN23TGlxFetchContextRemoverD1Ev @ 70 NONAME
+	_ZN23TGlxFetchContextRemoverD2Ev @ 71 NONAME
+	_ZN25TGlxFirstThenLastIteratorC1Ev @ 72 NONAME
+	_ZN25TGlxFirstThenLastIteratorC2Ev @ 73 NONAME
+	_ZN25TGlxFirstThenLastIteratorD1Ev @ 74 NONAME
+	_ZN25TGlxFirstThenLastIteratorD2Ev @ 75 NONAME
+	_ZN27CGlxDefaultAttributeContext15SetRangeOffsetsEii @ 76 NONAME
+	_ZN27CGlxDefaultAttributeContext4NewLEv @ 77 NONAME
+	_ZN27CGlxDefaultAttributeContextD0Ev @ 78 NONAME
+	_ZN27CGlxDefaultAttributeContextD1Ev @ 79 NONAME
+	_ZN27CGlxDefaultAttributeContextD2Ev @ 80 NONAME
+	_ZN27CGlxDefaultThumbnailContext15SetRangeOffsetsEii @ 81 NONAME
+	_ZN27CGlxDefaultThumbnailContext4NewLEv @ 82 NONAME
+	_ZN27CGlxDefaultThumbnailContextD0Ev @ 83 NONAME
+	_ZN27CGlxDefaultThumbnailContextD1Ev @ 84 NONAME
+	_ZN27CGlxDefaultThumbnailContextD2Ev @ 85 NONAME
+	_ZN28TGlxFromFocusOutwardIterator15SetRangeOffsetsEii @ 86 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorC1Ev @ 87 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorC2Ev @ 88 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorD1Ev @ 89 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorD2Ev @ 90 NONAME
+	_ZN33TGlxFromManualIndexBlockyIterator15SetRangeOffsetsEii @ 91 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorC1Ev @ 92 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorC2Ev @ 93 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorD1Ev @ 94 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorD2Ev @ 95 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorC1Ev @ 96 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorC2Ev @ 97 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorD1Ev @ 98 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorD2Ev @ 99 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIterator15SetRangeOffsetsEii @ 100 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorC1ERKNS_9MGlxIndexE @ 101 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorC2ERKNS_9MGlxIndexE @ 102 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorD1Ev @ 103 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorD2Ev @ 104 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIterator8SetIndexEi @ 105 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC1Ev @ 106 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC2Ev @ 107 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD1Ev @ 108 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD2Ev @ 109 NONAME
+	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 110 NONAME
+	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 111 NONAME
+	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 112 NONAME
+	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 113 NONAME
+	_ZN9CGlxMedia5ResetEv @ 114 NONAME
+	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 115 NONAME
+	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 116 NONAME
+	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 117 NONAME
+	_ZN9CGlxMediaD0Ev @ 118 NONAME
+	_ZN9CGlxMediaD1Ev @ 119 NONAME
+	_ZN9CGlxMediaD2Ev @ 120 NONAME
+	_ZN9MGlxCache9InstanceLEv @ 121 NONAME
+	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 122 NONAME
+	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 123 NONAME
+	_ZNK14CGlxListWindow2AtEi @ 124 NONAME
+	_ZNK14CGlxListWindow8IteratorEv @ 125 NONAME
+	_ZNK21TGlxSelectionIterator7InRangeEi @ 126 NONAME
+	_ZNK22CGlxImageViewerManager15ImageFileHandleEv @ 127 NONAME
+	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 128 NONAME
+	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 129 NONAME
+	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 130 NONAME
+	_ZNK9TGlxMedia11GetDurationERf @ 131 NONAME
+	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 132 NONAME
+	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 133 NONAME
+	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 134 NONAME
+	_ZNK9TGlxMedia13GetFrameCountERi @ 135 NONAME
+	_ZNK9TGlxMedia13GetSystemItemERi @ 136 NONAME
+	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 137 NONAME
+	_ZNK9TGlxMedia14IsDrmProtectedEv @ 138 NONAME
+	_ZNK9TGlxMedia15GetDrmProtectedERi @ 139 NONAME
+	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 140 NONAME
+	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 141 NONAME
+	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 142 NONAME
+	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 143 NONAME
+	_ZNK9TGlxMedia21GetContainedItemCountERi @ 144 NONAME
+	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 145 NONAME
+	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 146 NONAME
+	_ZNK9TGlxMedia3UriEv @ 147 NONAME
+	_ZNK9TGlxMedia5TitleEv @ 148 NONAME
+	_ZNK9TGlxMedia7CommentEv @ 149 NONAME
+	_ZNK9TGlxMedia7GetDateER5TTime @ 150 NONAME
+	_ZNK9TGlxMedia7GetSizeERi @ 151 NONAME
+	_ZNK9TGlxMedia8CategoryEv @ 152 NONAME
+	_ZNK9TGlxMedia8IsStaticEv @ 153 NONAME
+	_ZNK9TGlxMedia8MimeTypeEv @ 154 NONAME
+	_ZNK9TGlxMedia8SubTitleEv @ 155 NONAME
+	_ZNK9TGlxMedia9IdSpaceIdEv @ 156 NONAME
+	_ZTI13CGlxMediaList @ 157 NONAME
+	_ZTI14CGlxListWindow @ 158 NONAME
+	_ZTI15CGlxImageReader @ 159 NONAME
+	_ZTI16CGlxCacheManager @ 160 NONAME
+	_ZTI20CGlxAttributeContext @ 161 NONAME
+	_ZTI20CGlxGarbageCollector @ 162 NONAME
+	_ZTI20CGlxThumbnailContext @ 163 NONAME
+	_ZTI21TGlxExclusionIterator @ 164 NONAME
+	_ZTI21TGlxSelectionIterator @ 165 NONAME
+	_ZTI22TGlxSequentialIterator @ 166 NONAME
+	_ZTI22TGlxSpecificIdIterator @ 167 NONAME
+	_ZTI25TGlxFirstThenLastIterator @ 168 NONAME
+	_ZTI27CGlxDefaultAttributeContext @ 169 NONAME
+	_ZTI27CGlxDefaultThumbnailContext @ 170 NONAME
+	_ZTI28TGlxFromFocusOutwardIterator @ 171 NONAME
+	_ZTI33TGlxFromManualIndexBlockyIterator @ 172 NONAME
+	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 173 NONAME
+	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 174 NONAME
+	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 175 NONAME
+	_ZTIN23UT_CGlxAttributeContext17CGlxMediaListTestE @ 176 NONAME
+	_ZTV13CGlxMediaList @ 177 NONAME
+	_ZTV14CGlxListWindow @ 178 NONAME
+	_ZTV15CGlxImageReader @ 179 NONAME
+	_ZTV16CGlxCacheManager @ 180 NONAME
+	_ZTV20CGlxAttributeContext @ 181 NONAME
+	_ZTV20CGlxGarbageCollector @ 182 NONAME
+	_ZTV20CGlxThumbnailContext @ 183 NONAME
+	_ZTV21TGlxExclusionIterator @ 184 NONAME
+	_ZTV21TGlxSelectionIterator @ 185 NONAME
+	_ZTV22TGlxSequentialIterator @ 186 NONAME
+	_ZTV22TGlxSpecificIdIterator @ 187 NONAME
+	_ZTV25TGlxFirstThenLastIterator @ 188 NONAME
+	_ZTV27CGlxDefaultAttributeContext @ 189 NONAME
+	_ZTV27CGlxDefaultThumbnailContext @ 190 NONAME
+	_ZTV28TGlxFromFocusOutwardIterator @ 191 NONAME
+	_ZTV33TGlxFromManualIndexBlockyIterator @ 192 NONAME
+	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 193 NONAME
+	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 194 NONAME
+	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 195 NONAME
+	_ZTVN23UT_CGlxAttributeContext17CGlxMediaListTestE @ 196 NONAME
 
--- a/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxitemlistu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxitemlistu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -44,8 +44,8 @@
 	_ZNK9TGlxMedia8MimeTypeEv @ 43 NONAME
 	_ZNK9TGlxMedia8SubTitleEv @ 44 NONAME
 	_ZNK9TGlxMedia9IdSpaceIdEv @ 45 NONAME
-	_ZTI16CGlxListTestBaseI12CGlxItemList26CGlxItemListReconstructionE @ 46 NONAME ; #<TI>#
-	_ZTI26CGlxListReconstructionBase @ 47 NONAME ; #<TI>#
-	_ZTV16CGlxListTestBaseI12CGlxItemList26CGlxItemListReconstructionE @ 48 NONAME ; #<VT>#
-	_ZTV26CGlxListReconstructionBase @ 49 NONAME ; #<VT>#
+	_ZTI16CGlxListTestBaseI12CGlxItemList26CGlxItemListReconstructionE @ 46 NONAME
+	_ZTI26CGlxListReconstructionBase @ 47 NONAME
+	_ZTV16CGlxListTestBaseI12CGlxItemList26CGlxItemListReconstructionE @ 48 NONAME
+	_ZTV26CGlxListReconstructionBase @ 49 NONAME
 
--- a/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxnavigablelistu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxnavigablelistu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -44,8 +44,8 @@
 	_ZNK9TGlxMedia8MimeTypeEv @ 43 NONAME
 	_ZNK9TGlxMedia8SubTitleEv @ 44 NONAME
 	_ZNK9TGlxMedia9IdSpaceIdEv @ 45 NONAME
-	_ZTI16CGlxListTestBaseI17CGlxNavigableList31CGlxNavigableListReconstructionE @ 46 NONAME ; #<TI>#
-	_ZTI26CGlxListReconstructionBase @ 47 NONAME ; #<TI>#
-	_ZTV16CGlxListTestBaseI17CGlxNavigableList31CGlxNavigableListReconstructionE @ 48 NONAME ; #<VT>#
-	_ZTV26CGlxListReconstructionBase @ 49 NONAME ; #<VT>#
+	_ZTI16CGlxListTestBaseI17CGlxNavigableList31CGlxNavigableListReconstructionE @ 46 NONAME
+	_ZTI26CGlxListReconstructionBase @ 47 NONAME
+	_ZTV16CGlxListTestBaseI17CGlxNavigableList31CGlxNavigableListReconstructionE @ 48 NONAME
+	_ZTV26CGlxListReconstructionBase @ 49 NONAME
 
--- a/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxstaticitemlistu.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxstaticitemlistu.def	Mon Jan 18 20:19:20 2010 +0200
@@ -44,8 +44,8 @@
 	_ZNK9TGlxMedia8MimeTypeEv @ 43 NONAME
 	_ZNK9TGlxMedia8SubTitleEv @ 44 NONAME
 	_ZNK9TGlxMedia9IdSpaceIdEv @ 45 NONAME
-	_ZTI16CGlxListTestBaseI18CGlxStaticItemList32CGlxStaticItemListReconstructionE @ 46 NONAME ; #<TI>#
-	_ZTI26CGlxListReconstructionBase @ 47 NONAME ; #<TI>#
-	_ZTV16CGlxListTestBaseI18CGlxStaticItemList32CGlxStaticItemListReconstructionE @ 48 NONAME ; #<VT>#
-	_ZTV26CGlxListReconstructionBase @ 49 NONAME ; #<VT>#
+	_ZTI16CGlxListTestBaseI18CGlxStaticItemList32CGlxStaticItemListReconstructionE @ 46 NONAME
+	_ZTI26CGlxListReconstructionBase @ 47 NONAME
+	_ZTV16CGlxListTestBaseI18CGlxStaticItemList32CGlxStaticItemListReconstructionE @ 48 NONAME
+	_ZTV26CGlxListReconstructionBase @ 49 NONAME
 
--- a/photosgallery/viewframework/medialists/tsrc/eabi/ut_glxerrormanageru.def	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/ut_glxerrormanageru.def	Mon Jan 18 20:19:20 2010 +0200
@@ -27,163 +27,170 @@
 	_ZN19GlxThumbnailUtility16ClosestThumbnailERK5TSizeRK9CGlxMediai @ 26 NONAME
 	_ZN20CGlxAttributeContext13AddAttributeLERK13TMPXAttribute @ 27 NONAME
 	_ZN20CGlxAttributeContext14AttributeCountEv @ 28 NONAME
-	_ZN20CGlxAttributeContext14SetGranularityEj @ 29 NONAME
-	_ZN20CGlxAttributeContext15RemoveAttributeERK13TMPXAttribute @ 30 NONAME
-	_ZN20CGlxAttributeContextC1EP21MGlxMediaListIterator @ 31 NONAME
-	_ZN20CGlxAttributeContextC2EP21MGlxMediaListIterator @ 32 NONAME
-	_ZN20CGlxAttributeContextD0Ev @ 33 NONAME
-	_ZN20CGlxAttributeContextD1Ev @ 34 NONAME
-	_ZN20CGlxAttributeContextD2Ev @ 35 NONAME
-	_ZN20CGlxThumbnailContext14SetDefaultSpecEii @ 36 NONAME
-	_ZN20CGlxThumbnailContext15AddSpecForItemLEiii @ 37 NONAME
-	_ZN20CGlxThumbnailContext18SetHighQualityOnlyEi @ 38 NONAME
-	_ZN20CGlxThumbnailContext4NewLEP21MGlxMediaListIterator @ 39 NONAME
-	_ZN20CGlxThumbnailContextC1EP21MGlxMediaListIterator @ 40 NONAME
-	_ZN20CGlxThumbnailContextC2EP21MGlxMediaListIterator @ 41 NONAME
-	_ZN20CGlxThumbnailContextD0Ev @ 42 NONAME
-	_ZN20CGlxThumbnailContextD1Ev @ 43 NONAME
-	_ZN20CGlxThumbnailContextD2Ev @ 44 NONAME
-	_ZN21TGlxExclusionIterator10SetToFirstEPK13MGlxMediaList @ 45 NONAME
-	_ZN21TGlxExclusionIteratorC1ER21MGlxMediaListIteratorS1_ @ 46 NONAME
-	_ZN21TGlxExclusionIteratorC2ER21MGlxMediaListIteratorS1_ @ 47 NONAME
-	_ZN21TGlxExclusionIteratorD1Ev @ 48 NONAME
-	_ZN21TGlxExclusionIteratorD2Ev @ 49 NONAME
-	_ZN21TGlxSelectionIterator10SetToFirstEPK13MGlxMediaList @ 50 NONAME
-	_ZN21TGlxSelectionIterator34SetDisabledIfMoreThanRangeSelectedEi @ 51 NONAME
-	_ZN21TGlxSelectionIterator8SetRangeEi @ 52 NONAME
-	_ZN21TGlxSelectionIteratorC1Ev @ 53 NONAME
-	_ZN21TGlxSelectionIteratorC2Ev @ 54 NONAME
-	_ZN21TGlxSelectionIteratorD1Ev @ 55 NONAME
-	_ZN21TGlxSelectionIteratorD2Ev @ 56 NONAME
-	_ZN21TGlxSelectionIteratorppEi @ 57 NONAME
-	_ZN22TGlxSequentialIterator8SetRangeEi @ 58 NONAME
-	_ZN22TGlxSequentialIteratorC1Ev @ 59 NONAME
-	_ZN22TGlxSequentialIteratorC2Ev @ 60 NONAME
-	_ZN22TGlxSpecificIdIteratorC1ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 61 NONAME
-	_ZN22TGlxSpecificIdIteratorC2ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 62 NONAME
-	_ZN23TGlxFetchContextRemover5CloseEv @ 63 NONAME
-	_ZN23TGlxFetchContextRemoverC1EP16MGlxFetchContextR13MGlxMediaList @ 64 NONAME
-	_ZN23TGlxFetchContextRemoverC2EP16MGlxFetchContextR13MGlxMediaList @ 65 NONAME
-	_ZN23TGlxFetchContextRemoverD1Ev @ 66 NONAME
-	_ZN23TGlxFetchContextRemoverD2Ev @ 67 NONAME
-	_ZN25TGlxFirstThenLastIteratorC1Ev @ 68 NONAME
-	_ZN25TGlxFirstThenLastIteratorC2Ev @ 69 NONAME
-	_ZN25TGlxFirstThenLastIteratorD1Ev @ 70 NONAME
-	_ZN25TGlxFirstThenLastIteratorD2Ev @ 71 NONAME
-	_ZN27CGlxDefaultAttributeContext15SetRangeOffsetsEii @ 72 NONAME
-	_ZN27CGlxDefaultAttributeContext4NewLEv @ 73 NONAME
-	_ZN27CGlxDefaultAttributeContextD0Ev @ 74 NONAME
-	_ZN27CGlxDefaultAttributeContextD1Ev @ 75 NONAME
-	_ZN27CGlxDefaultAttributeContextD2Ev @ 76 NONAME
-	_ZN27CGlxDefaultThumbnailContext15SetRangeOffsetsEii @ 77 NONAME
-	_ZN27CGlxDefaultThumbnailContext4NewLEv @ 78 NONAME
-	_ZN27CGlxDefaultThumbnailContextD0Ev @ 79 NONAME
-	_ZN27CGlxDefaultThumbnailContextD1Ev @ 80 NONAME
-	_ZN27CGlxDefaultThumbnailContextD2Ev @ 81 NONAME
-	_ZN28TGlxFromFocusOutwardIterator15SetRangeOffsetsEii @ 82 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorC1Ev @ 83 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorC2Ev @ 84 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorD1Ev @ 85 NONAME
-	_ZN28TGlxFromFocusOutwardIteratorD2Ev @ 86 NONAME
-	_ZN33TGlxFromManualIndexBlockyIterator15SetRangeOffsetsEii @ 87 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorC1Ev @ 88 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorC2Ev @ 89 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorD1Ev @ 90 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorD2Ev @ 91 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorC1Ev @ 92 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorC2Ev @ 93 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorD1Ev @ 94 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorD2Ev @ 95 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIterator15SetRangeOffsetsEii @ 96 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorC1ERKNS_9MGlxIndexE @ 97 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorC2ERKNS_9MGlxIndexE @ 98 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorD1Ev @ 99 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorD2Ev @ 100 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIterator8SetIndexEi @ 101 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC1Ev @ 102 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC2Ev @ 103 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD1Ev @ 104 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD2Ev @ 105 NONAME
-	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 106 NONAME
-	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 107 NONAME
-	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 108 NONAME
-	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 109 NONAME
-	_ZN9CGlxMedia5ResetEv @ 110 NONAME
-	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 111 NONAME
-	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 112 NONAME
-	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 113 NONAME
-	_ZN9CGlxMediaD0Ev @ 114 NONAME
-	_ZN9CGlxMediaD1Ev @ 115 NONAME
-	_ZN9CGlxMediaD2Ev @ 116 NONAME
-	_ZN9MGlxCache9InstanceLEv @ 117 NONAME
-	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 118 NONAME
-	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 119 NONAME
-	_ZNK14CGlxListWindow2AtEi @ 120 NONAME
-	_ZNK14CGlxListWindow8IteratorEv @ 121 NONAME
-	_ZNK21TGlxSelectionIterator7InRangeEi @ 122 NONAME
-	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 123 NONAME
-	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 124 NONAME
-	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 125 NONAME
-	_ZNK9TGlxMedia11GetDurationERf @ 126 NONAME
-	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 127 NONAME
-	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 128 NONAME
-	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 129 NONAME
-	_ZNK9TGlxMedia13GetFrameCountERi @ 130 NONAME
-	_ZNK9TGlxMedia13GetSystemItemERi @ 131 NONAME
-	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 132 NONAME
-	_ZNK9TGlxMedia14IsDrmProtectedEv @ 133 NONAME
-	_ZNK9TGlxMedia15GetDrmProtectedERi @ 134 NONAME
-	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 135 NONAME
-	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 136 NONAME
-	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 137 NONAME
-	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 138 NONAME
-	_ZNK9TGlxMedia21GetContainedItemCountERi @ 139 NONAME
-	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 140 NONAME
-	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 141 NONAME
-	_ZNK9TGlxMedia3UriEv @ 142 NONAME
-	_ZNK9TGlxMedia5TitleEv @ 143 NONAME
-	_ZNK9TGlxMedia7CommentEv @ 144 NONAME
-	_ZNK9TGlxMedia7GetDateER5TTime @ 145 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 146 NONAME
-	_ZNK9TGlxMedia8CategoryEv @ 147 NONAME
-	_ZNK9TGlxMedia8IsStaticEv @ 148 NONAME
-	_ZNK9TGlxMedia8MimeTypeEv @ 149 NONAME
-	_ZNK9TGlxMedia8SubTitleEv @ 150 NONAME
-	_ZNK9TGlxMedia9IdSpaceIdEv @ 151 NONAME
-	_ZTI13CGlxMediaList @ 152 NONAME ; #<TI>#
-	_ZTI14CGlxListWindow @ 153 NONAME ; #<TI>#
-	_ZTI16CGlxCacheManager @ 154 NONAME ; #<TI>#
-	_ZTI20CGlxAttributeContext @ 155 NONAME ; #<TI>#
-	_ZTI20CGlxGarbageCollector @ 156 NONAME ; #<TI>#
-	_ZTI20CGlxThumbnailContext @ 157 NONAME ; #<TI>#
-	_ZTI21TGlxExclusionIterator @ 158 NONAME ; #<TI>#
-	_ZTI21TGlxSelectionIterator @ 159 NONAME ; #<TI>#
-	_ZTI22TGlxSequentialIterator @ 160 NONAME ; #<TI>#
-	_ZTI22TGlxSpecificIdIterator @ 161 NONAME ; #<TI>#
-	_ZTI25TGlxFirstThenLastIterator @ 162 NONAME ; #<TI>#
-	_ZTI27CGlxDefaultAttributeContext @ 163 NONAME ; #<TI>#
-	_ZTI27CGlxDefaultThumbnailContext @ 164 NONAME ; #<TI>#
-	_ZTI28TGlxFromFocusOutwardIterator @ 165 NONAME ; #<TI>#
-	_ZTI33TGlxFromManualIndexBlockyIterator @ 166 NONAME ; #<TI>#
-	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 167 NONAME ; #<TI>#
-	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 168 NONAME ; #<TI>#
-	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 169 NONAME ; #<TI>#
-	_ZTV13CGlxMediaList @ 170 NONAME ; #<VT>#
-	_ZTV14CGlxListWindow @ 171 NONAME ; #<VT>#
-	_ZTV16CGlxCacheManager @ 172 NONAME ; #<VT>#
-	_ZTV20CGlxAttributeContext @ 173 NONAME ; #<VT>#
-	_ZTV20CGlxGarbageCollector @ 174 NONAME ; #<VT>#
-	_ZTV20CGlxThumbnailContext @ 175 NONAME ; #<VT>#
-	_ZTV21TGlxExclusionIterator @ 176 NONAME ; #<VT>#
-	_ZTV21TGlxSelectionIterator @ 177 NONAME ; #<VT>#
-	_ZTV22TGlxSequentialIterator @ 178 NONAME ; #<VT>#
-	_ZTV22TGlxSpecificIdIterator @ 179 NONAME ; #<VT>#
-	_ZTV25TGlxFirstThenLastIterator @ 180 NONAME ; #<VT>#
-	_ZTV27CGlxDefaultAttributeContext @ 181 NONAME ; #<VT>#
-	_ZTV27CGlxDefaultThumbnailContext @ 182 NONAME ; #<VT>#
-	_ZTV28TGlxFromFocusOutwardIterator @ 183 NONAME ; #<VT>#
-	_ZTV33TGlxFromManualIndexBlockyIterator @ 184 NONAME ; #<VT>#
-	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 185 NONAME ; #<VT>#
-	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 186 NONAME ; #<VT>#
-	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 187 NONAME ; #<VT>#
+	_ZN20CGlxAttributeContext14SetDefaultSpecEii @ 29 NONAME
+	_ZN20CGlxAttributeContext14SetGranularityEj @ 30 NONAME
+	_ZN20CGlxAttributeContext15RemoveAttributeERK13TMPXAttribute @ 31 NONAME
+	_ZN20CGlxAttributeContextC1EP21MGlxMediaListIterator @ 32 NONAME
+	_ZN20CGlxAttributeContextC2EP21MGlxMediaListIterator @ 33 NONAME
+	_ZN20CGlxAttributeContextD0Ev @ 34 NONAME
+	_ZN20CGlxAttributeContextD1Ev @ 35 NONAME
+	_ZN20CGlxAttributeContextD2Ev @ 36 NONAME
+	_ZN20CGlxThumbnailContext14SetDefaultSpecEii @ 37 NONAME
+	_ZN20CGlxThumbnailContext15AddSpecForItemLEiii @ 38 NONAME
+	_ZN20CGlxThumbnailContext18SetHighQualityOnlyEi @ 39 NONAME
+	_ZN20CGlxThumbnailContext4NewLEP21MGlxMediaListIterator @ 40 NONAME
+	_ZN20CGlxThumbnailContextC1EP21MGlxMediaListIterator @ 41 NONAME
+	_ZN20CGlxThumbnailContextC2EP21MGlxMediaListIterator @ 42 NONAME
+	_ZN20CGlxThumbnailContextD0Ev @ 43 NONAME
+	_ZN20CGlxThumbnailContextD1Ev @ 44 NONAME
+	_ZN20CGlxThumbnailContextD2Ev @ 45 NONAME
+	_ZN21TGlxExclusionIterator10SetToFirstEPK13MGlxMediaList @ 46 NONAME
+	_ZN21TGlxExclusionIteratorC1ER21MGlxMediaListIteratorS1_ @ 47 NONAME
+	_ZN21TGlxExclusionIteratorC2ER21MGlxMediaListIteratorS1_ @ 48 NONAME
+	_ZN21TGlxExclusionIteratorD1Ev @ 49 NONAME
+	_ZN21TGlxExclusionIteratorD2Ev @ 50 NONAME
+	_ZN21TGlxSelectionIterator10SetToFirstEPK13MGlxMediaList @ 51 NONAME
+	_ZN21TGlxSelectionIterator34SetDisabledIfMoreThanRangeSelectedEi @ 52 NONAME
+	_ZN21TGlxSelectionIterator8SetRangeEi @ 53 NONAME
+	_ZN21TGlxSelectionIteratorC1Ev @ 54 NONAME
+	_ZN21TGlxSelectionIteratorC2Ev @ 55 NONAME
+	_ZN21TGlxSelectionIteratorD1Ev @ 56 NONAME
+	_ZN21TGlxSelectionIteratorD2Ev @ 57 NONAME
+	_ZN21TGlxSelectionIteratorppEi @ 58 NONAME
+	_ZN22CGlxImageViewerManager17IncrementRefCountEv @ 59 NONAME
+	_ZN22CGlxImageViewerManager8ImageUriEv @ 60 NONAME
+	_ZN22CGlxImageViewerManager9IsPrivateEv @ 61 NONAME
+	_ZN22TGlxSequentialIterator8SetRangeEi @ 62 NONAME
+	_ZN22TGlxSequentialIteratorC1Ev @ 63 NONAME
+	_ZN22TGlxSequentialIteratorC2Ev @ 64 NONAME
+	_ZN22TGlxSpecificIdIteratorC1ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 65 NONAME
+	_ZN22TGlxSpecificIdIteratorC2ERK6TGlxIdI17TGlxIdSpaceIdBaseE11TGlxMediaId @ 66 NONAME
+	_ZN23TGlxFetchContextRemover5CloseEv @ 67 NONAME
+	_ZN23TGlxFetchContextRemoverC1EP16MGlxFetchContextR13MGlxMediaList @ 68 NONAME
+	_ZN23TGlxFetchContextRemoverC2EP16MGlxFetchContextR13MGlxMediaList @ 69 NONAME
+	_ZN23TGlxFetchContextRemoverD1Ev @ 70 NONAME
+	_ZN23TGlxFetchContextRemoverD2Ev @ 71 NONAME
+	_ZN25TGlxFirstThenLastIteratorC1Ev @ 72 NONAME
+	_ZN25TGlxFirstThenLastIteratorC2Ev @ 73 NONAME
+	_ZN25TGlxFirstThenLastIteratorD1Ev @ 74 NONAME
+	_ZN25TGlxFirstThenLastIteratorD2Ev @ 75 NONAME
+	_ZN27CGlxDefaultAttributeContext15SetRangeOffsetsEii @ 76 NONAME
+	_ZN27CGlxDefaultAttributeContext4NewLEv @ 77 NONAME
+	_ZN27CGlxDefaultAttributeContextD0Ev @ 78 NONAME
+	_ZN27CGlxDefaultAttributeContextD1Ev @ 79 NONAME
+	_ZN27CGlxDefaultAttributeContextD2Ev @ 80 NONAME
+	_ZN27CGlxDefaultThumbnailContext15SetRangeOffsetsEii @ 81 NONAME
+	_ZN27CGlxDefaultThumbnailContext4NewLEv @ 82 NONAME
+	_ZN27CGlxDefaultThumbnailContextD0Ev @ 83 NONAME
+	_ZN27CGlxDefaultThumbnailContextD1Ev @ 84 NONAME
+	_ZN27CGlxDefaultThumbnailContextD2Ev @ 85 NONAME
+	_ZN28TGlxFromFocusOutwardIterator15SetRangeOffsetsEii @ 86 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorC1Ev @ 87 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorC2Ev @ 88 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorD1Ev @ 89 NONAME
+	_ZN28TGlxFromFocusOutwardIteratorD2Ev @ 90 NONAME
+	_ZN33TGlxFromManualIndexBlockyIterator15SetRangeOffsetsEii @ 91 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorC1Ev @ 92 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorC2Ev @ 93 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorD1Ev @ 94 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorD2Ev @ 95 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorC1Ev @ 96 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorC2Ev @ 97 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorD1Ev @ 98 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorD2Ev @ 99 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIterator15SetRangeOffsetsEii @ 100 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorC1ERKNS_9MGlxIndexE @ 101 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorC2ERKNS_9MGlxIndexE @ 102 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorD1Ev @ 103 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorD2Ev @ 104 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIterator8SetIndexEi @ 105 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC1Ev @ 106 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC2Ev @ 107 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD1Ev @ 108 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD2Ev @ 109 NONAME
+	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 110 NONAME
+	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 111 NONAME
+	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 112 NONAME
+	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 113 NONAME
+	_ZN9CGlxMedia5ResetEv @ 114 NONAME
+	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 115 NONAME
+	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 116 NONAME
+	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 117 NONAME
+	_ZN9CGlxMediaD0Ev @ 118 NONAME
+	_ZN9CGlxMediaD1Ev @ 119 NONAME
+	_ZN9CGlxMediaD2Ev @ 120 NONAME
+	_ZN9MGlxCache9InstanceLEv @ 121 NONAME
+	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 122 NONAME
+	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 123 NONAME
+	_ZNK14CGlxListWindow2AtEi @ 124 NONAME
+	_ZNK14CGlxListWindow8IteratorEv @ 125 NONAME
+	_ZNK21TGlxSelectionIterator7InRangeEi @ 126 NONAME
+	_ZNK22CGlxImageViewerManager15ImageFileHandleEv @ 127 NONAME
+	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 128 NONAME
+	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 129 NONAME
+	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 130 NONAME
+	_ZNK9TGlxMedia11GetDurationERf @ 131 NONAME
+	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 132 NONAME
+	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 133 NONAME
+	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 134 NONAME
+	_ZNK9TGlxMedia13GetFrameCountERi @ 135 NONAME
+	_ZNK9TGlxMedia13GetSystemItemERi @ 136 NONAME
+	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 137 NONAME
+	_ZNK9TGlxMedia14IsDrmProtectedEv @ 138 NONAME
+	_ZNK9TGlxMedia15GetDrmProtectedERi @ 139 NONAME
+	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 140 NONAME
+	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 141 NONAME
+	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 142 NONAME
+	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 143 NONAME
+	_ZNK9TGlxMedia21GetContainedItemCountERi @ 144 NONAME
+	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 145 NONAME
+	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 146 NONAME
+	_ZNK9TGlxMedia3UriEv @ 147 NONAME
+	_ZNK9TGlxMedia5TitleEv @ 148 NONAME
+	_ZNK9TGlxMedia7CommentEv @ 149 NONAME
+	_ZNK9TGlxMedia7GetDateER5TTime @ 150 NONAME
+	_ZNK9TGlxMedia7GetSizeERi @ 151 NONAME
+	_ZNK9TGlxMedia8CategoryEv @ 152 NONAME
+	_ZNK9TGlxMedia8IsStaticEv @ 153 NONAME
+	_ZNK9TGlxMedia8MimeTypeEv @ 154 NONAME
+	_ZNK9TGlxMedia8SubTitleEv @ 155 NONAME
+	_ZNK9TGlxMedia9IdSpaceIdEv @ 156 NONAME
+	_ZTI13CGlxMediaList @ 157 NONAME
+	_ZTI14CGlxListWindow @ 158 NONAME
+	_ZTI15CGlxImageReader @ 159 NONAME
+	_ZTI16CGlxCacheManager @ 160 NONAME
+	_ZTI20CGlxAttributeContext @ 161 NONAME
+	_ZTI20CGlxGarbageCollector @ 162 NONAME
+	_ZTI20CGlxThumbnailContext @ 163 NONAME
+	_ZTI21TGlxExclusionIterator @ 164 NONAME
+	_ZTI21TGlxSelectionIterator @ 165 NONAME
+	_ZTI22TGlxSequentialIterator @ 166 NONAME
+	_ZTI22TGlxSpecificIdIterator @ 167 NONAME
+	_ZTI25TGlxFirstThenLastIterator @ 168 NONAME
+	_ZTI27CGlxDefaultAttributeContext @ 169 NONAME
+	_ZTI27CGlxDefaultThumbnailContext @ 170 NONAME
+	_ZTI28TGlxFromFocusOutwardIterator @ 171 NONAME
+	_ZTI33TGlxFromManualIndexBlockyIterator @ 172 NONAME
+	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 173 NONAME
+	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 174 NONAME
+	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 175 NONAME
+	_ZTV13CGlxMediaList @ 176 NONAME
+	_ZTV14CGlxListWindow @ 177 NONAME
+	_ZTV15CGlxImageReader @ 178 NONAME
+	_ZTV16CGlxCacheManager @ 179 NONAME
+	_ZTV20CGlxAttributeContext @ 180 NONAME
+	_ZTV20CGlxGarbageCollector @ 181 NONAME
+	_ZTV20CGlxThumbnailContext @ 182 NONAME
+	_ZTV21TGlxExclusionIterator @ 183 NONAME
+	_ZTV21TGlxSelectionIterator @ 184 NONAME
+	_ZTV22TGlxSequentialIterator @ 185 NONAME
+	_ZTV22TGlxSpecificIdIterator @ 186 NONAME
+	_ZTV25TGlxFirstThenLastIterator @ 187 NONAME
+	_ZTV27CGlxDefaultAttributeContext @ 188 NONAME
+	_ZTV27CGlxDefaultThumbnailContext @ 189 NONAME
+	_ZTV28TGlxFromFocusOutwardIterator @ 190 NONAME
+	_ZTV33TGlxFromManualIndexBlockyIterator @ 191 NONAME
+	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 192 NONAME
+	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 193 NONAME
+	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 194 NONAME
 
--- a/photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -171,7 +171,7 @@
     
     GLX_LOG_INFO( "Adding CGlxCommandHandlerSave" );
             iFullScreenView->AddCommandHandlerL(
-                            CGlxCommandHandlerSave::NewL( iFullScreenView, ETrue ) );
+                            CGlxCommandHandlerSave::NewL() );
     
     GLX_LOG_INFO( "Adding CGlxCommandHandlerSlideshow" );
     iFullScreenView->AddCommandHandlerL(
--- a/photosgallery/viewframework/plugins/gridviewplugin/data/glxgridviewdata.rss	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/plugins/gridviewplugin/data/glxgridviewdata.rss	Mon Jan 18 20:19:20 2010 +0200
@@ -551,7 +551,7 @@
                           bmpmask = EMbmGlxiconsQgn_indi_tb_slideshow_mask;
                           press_bmpid = EMbmGlxiconsQgn_indi_tb_slideshow;
                           press_bmpmask = EMbmGlxiconsQgn_indi_tb_slideshow_mask;
-                          helptxt = qtn_lgal_options_slideshow;
+                          helptxt = qtn_lgal_tooltip_slideshow;
                           }
                       };
                   };
--- a/photosgallery/viewframework/plugins/gridviewplugin/src/glxmaingridviewplugin.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/plugins/gridviewplugin/src/glxmaingridviewplugin.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -108,9 +108,6 @@
     TGlxHelpContext helpInfo;
     helpInfo.iBrowseContext = LGAL_HLP_ALL_GRID;
     helpInfo.iViewContext = LGAL_HLP_ALL_FULLSCREEN;
-    GLX_LOG_INFO( "Adding CGlxCommandHandlerSlideshow" );
-    iGridView->AddCommandHandlerL(
-                    CGlxCommandHandlerSlideshow::NewL( iGridView, ETrue , EFalse ) );
     iGridView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
     }
 
--- a/photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -53,6 +53,10 @@
     DestroyContainer();
     delete iStoredImagePath;
     iStoredImagePath = NULL;
+    if(iGlxTvOut)
+		{
+        delete iGlxTvOut;
+		}
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -359,8 +359,8 @@
     
     #ifdef _DEBUG
     iStopTime.HomeTime();
-    GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::HandleRunL() ConvertImageL took us %d us",
-            iStopTime.MicroSecondsFrom(iStartTime) );
+    GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::HandleRunL() ConvertImageL took"
+                " <%d> us", (TInt)iStopTime.MicroSecondsFrom(iStartTime).Int64());
     #endif
     
     iZoomRectSz = iDecodedBitmap->SizeInPixels(); 
--- a/photosgallery/viewframework/views/cloudview/group/glxcloudview.mmp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/group/glxcloudview.mmp	Mon Jan 18 20:19:20 2010 +0200
@@ -76,6 +76,7 @@
 
 LIBRARY         cdlengine.lib
 LIBRARY      	aknlayout2scalable.lib
+LIBRARY      	aknphysics.lib
 
 
 // End of File
\ No newline at end of file
--- a/photosgallery/viewframework/views/cloudview/inc/glxcloudviewcontrol.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/inc/glxcloudviewcontrol.h	Mon Jan 18 20:19:20 2010 +0200
@@ -35,6 +35,7 @@
 #include <alf/alfeventhandler.h>
 
 #include <AknLayout2Def.h>
+#include <AknPhysicsObserverIface.h> //Physics - Kinetic scrolling listener
 using namespace Alf;
 
 
@@ -52,6 +53,7 @@
 class MGlxCloudViewMskObserver;
 class MGlxEnterKeyEventObserver;
 class MGlxCloudViewLayoutObserver;
+class CAknPhysics;
 
 enum TTagEventType
     {
@@ -66,6 +68,7 @@
 
 class CGlxCloudViewControl : public CAlfControl,public IAlfWidgetEventHandler
                             ,public MGlxMediaListObserver
+                            ,public MAknPhysicsObserver
 	{
 public:
 
@@ -304,9 +307,39 @@
 	 * */
 	 void AppendToCloudArrayL( TGlxCloudInfo& aCloudInfo, 
 	     const TInt& aStartIndex, const TInt& aEndIndex );
-	
+	 
+private: // from MAknPhysicsObserver
+    
+	 /*
+	  * Observer to get notified about new position to be displayed in
+	  * @param aNewPosition The new point where the virtual port should start from 
+	  * @param aDrawNow value to determine whether to draw at new position or not
+	  * @param aFags Special value (not used here)
+	  */
+    void ViewPositionChanged( const TPoint& aNewPosition, TBool aDrawNow, TUint /*aFlags*/ );
+    
+    /*
+     * Obsrever to get notified whether the physics emulation ended
+     */
+    void PhysicEmulationEnded();
+    
+    /*
+     * Observer callback used by CAknPhysics to know our current viewposition
+     * (which is with reference to displayable viewportposition + screeenheight/2) 
+     * Returns current viewposition point  
+     */
+    TPoint ViewPosition() const;
+
+
 private:
-
+    
+    TBool IsLandscape();
+    
+    /*
+     * Initializes the physcs library with total size, displayable size, etc 
+     */
+    void InitPhysicsL();
+    
     /** 
 	 * Sets focused item color
 	 **/
@@ -568,7 +601,30 @@
 	TInt iIsDragging;
 	
 	TAknWindowLineLayout iScrollPaneHandle;
-		
+
+	//View position w.r.t. viewportposition + (screeenwidth/2, screenheight/2)
+	TPoint iViewPosition;
+	
+	//determins whether dragging is currently going on or not
+	TBool iDragging;
+	
+	//Notes the time before dragging, when pointer down event happens  
+	TTime iStartTime;
+	
+	//Notes the last pointer co-ordinates
+	TPoint iPrev;
+	
+	//The pointer coordinates before dragging when pointerDown event happened 
+	TPoint iStart;
+	
+	//owning - Physics library object
+	CAknPhysics* iPhysics;
+	
+	//boolean to check whether physics emulation is going on or not
+	TBool iPhysicsStarted;
+	
+	//boolean to check if dragging really happened
+	TBool iViewDragged;
 	};
 
 #endif // C_GLXCLOUDVIEWCONTROL_H
--- a/photosgallery/viewframework/views/cloudview/src/glxcloudviewcontrol.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/src/glxcloudviewcontrol.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -33,7 +33,7 @@
 #include <alf/alfdisplay.h> // For CAlfDisplay
 #include <alf/ialfscrollbarmodel.h> // For alfScrollbar model
 #include <aknlayoutscalable_uiaccel.cdl.h>
-
+#include <aknphysics.h> // For Kinetic Scrolling
 #include <glxuiutility.h>
 #include <glxgeneraluiutilities.h>
 #include <glxuistd.h>
@@ -65,8 +65,9 @@
 const TInt KRightmargin = 20;
 const TInt KMinTagSize = 77;
 const TInt KTagScreenHeight = 460;
-const TInt KDragHoldTime = 500;
-
+const TReal KBoundaryMargin = 0.1; //10% = 10/100 = 0.1 
+const TInt KFastCloudMovement = 100; //Transition time to move cloud view
+const TInt KSlowCloudMovement = 1000; //Transition time to move cloud view
 
 // ---------------------------------------------------------------------------
 // Two-phased constructor.
@@ -142,7 +143,7 @@
     iParentLayout = CAlfLayout::AddNewL(*this, aAnchorLayout);                    
     iTagScreenWidth = rect.Width() - iScrollPaneHandle.iW - KRightmargin;
 
-    if (GlxGeneralUiUtilities::IsLandscape())
+    if(IsLandscape())
         {	
         iTagScreenHeight = rect.Height();	
         }
@@ -194,6 +195,8 @@
         }
     //get touch feedback instance
     iTouchFeedback = MTouchFeedback::Instance(); 
+    iPhysics = CAknPhysics::NewL(*this, NULL);
+    InitPhysicsL();
     }
 
 
@@ -206,10 +209,10 @@
     TRACER("GLX_CLOUD::CGlxCloudViewControl::VisualLayoutUpdated");
     TRect rect;
     AknLayoutUtils::LayoutMetricsRect (AknLayoutUtils::EMainPane, rect);
-    if ( (rect.Width() != iTagScreenWidth) && ( rect.Height () != iScreenHeight))
+    if ((rect.Width() != (iTagScreenWidth + iScrollPaneHandle.iW + KRightmargin)) || (rect.Height() != iScreenHeight))
         {
         //set the new screen dimensions
-        UpdateLayoutL();
+        TRAP_IGNORE(UpdateLayoutL());
         }
     }
 
@@ -237,6 +240,7 @@
         iUiUtility->Close ();
         }	
     delete iEmptyText;
+    delete iPhysics;
     }
 
 // --------------------------------------------------------------------------- 
@@ -408,7 +412,7 @@
     iViewPortLayout->SetSize(TAlfRealSize(iTagScreenWidth,iTagScreenHeight), 0);
     iViewPortSize.iWidth = iTagScreenWidth;
     iViewPortSize.iHeight = iTagScreenHeight;	
-    iViewPortLayout->SetViewportPos(TAlfRealPoint(0, 0),1000);
+    iViewPortLayout->SetViewportPos(TAlfRealPoint(0, 0), KSlowCloudMovement);
 
     iViewPortPosition.iX =0;
     iViewPortPosition.iY =0;
@@ -475,7 +479,7 @@
 
             case EKeyDownArrow:
                 {              
-                if(iCloudInfo.Count() >1 )
+                if (iCloudInfo.Count() > 1)
                     {
                     HandleKeyDownL ();
                     consumed = ETrue;
@@ -594,35 +598,6 @@
         //if its a pointer event
         consumed = HandlePointerEventL(aEvent);
         }
-    else if( aEvent.IsCustomEvent() )
-        {
-        if(aEvent.CustomParameter() == ECustomEventFocusDragScroll)
-            {
-            //dragging down
-            if( iIsDragging == 1 )
-                {
-                if(iFocusRowIndex!=iCloudInfo.Count()-1)
-                    {
-                    SetRelativeFocusL(iFocusRowIndex+1);
-                    iFocusRowIndex = RowNumber (iMediaList.FocusIndex ()); 
-                    // iScrollDirection = 0;               
-                    MoveDownIfRequired();  
-                    }
-                }
-            //dragging up
-            else if(iIsDragging == 2)
-                {
-                if(iFocusRowIndex!=0)
-                    {
-                    SetRelativeFocusL(iFocusRowIndex-1);
-                    iFocusRowIndex = RowNumber (iMediaList.FocusIndex ()); 
-                    // iScrollDirection = 0;               
-                    MoveUpIfRequired();  
-                    }
-                }
-            }
-        consumed = EFalse;
-        }
     return consumed;
     }
 
@@ -663,10 +638,9 @@
 
     // If the last item is focused and if we are navigating downwards,then set the
     // focus to first element.
-    if( iFocusRowIndex == iCloudInfo.Count()-1 )
-        {   
-        iMediaList.SetFocusL (NGlxListDefs::EAbsolute,
-                0); 
+    if (iFocusRowIndex == iCloudInfo.Count() - 1)
+        {
+        iMediaList.SetFocusL(NGlxListDefs::EAbsolute, 0);
         }
 
     //else set the focus to the item which is in the next row,that overlaps with midpoint of the 
@@ -818,6 +792,7 @@
         UpdateRowDataL (); //updates the row data and reassigns font sizes and draw the layout on screen.
         }
 
+    InitPhysicsL();
     }
 
 
@@ -859,6 +834,7 @@
             DisplayEmptyCloudViewL();
             }
         }
+    InitPhysicsL();
     }
 
 // ---------------------------------------------------------------------------
@@ -910,6 +886,8 @@
             }
         //generate row structures and draw rows on screen
         UpdateRowDataL ();
+
+        InitPhysicsL();
         }
     }
 
@@ -1336,7 +1314,7 @@
         {
         iViewPortPosition.iY = iViewPortVirtualSize.iHeight - iViewPortSize.iHeight;
         }
-    iViewPortLayout->SetViewportPos (iViewPortPosition,1000); 
+    iViewPortLayout->SetViewportPos(iViewPortPosition, KSlowCloudMovement);
     iScrollEventData.mViewStartPos = iViewPortPosition.iY;
     Scroll();  
     //CalculateBubleMidPoint ();   
@@ -1371,7 +1349,7 @@
         {
         iViewPortPosition.iY = 0;
         }     
-    iViewPortLayout->SetViewportPos (iViewPortPosition,1000); 
+    iViewPortLayout->SetViewportPos(iViewPortPosition, KSlowCloudMovement);
     iScrollEventData.mViewStartPos = iViewPortPosition.iY;
     if(iScrollBarWidget)
         {
@@ -1434,8 +1412,21 @@
     TRACER("GLX_CLOUD::CGlxCloudViewControl::HandlePointerEventL");
     CAlfVisual* tappedvisual = aEvent.Visual();	
     TBool consumed = EFalse;
+    
     if(aEvent.PointerEvent().iType == TPointerEvent::EButton1Down)
         {	
+        //reset variables & Physics simulator 
+        iPhysics->StopPhysics();
+        iPhysics->ResetFriction();
+        iDragging = EFalse;
+        iPhysicsStarted = EFalse;
+        iStartTime.HomeTime();
+        iViewDragged = EFalse;
+        Display()->Roster().SetPointerEventObservers(
+                EAlfPointerEventReportDrag + EAlfPointerEventReportLongTap
+                        + EAlfPointerEventReportUnhandled, *this);
+        Display()->Roster().DisableLongTapEventsWhenDragging(*this);
+
         if(tappedvisual)
             {
             for(TInt index=0;index<iLayout->Count();index++)
@@ -1445,19 +1436,53 @@
                 if(layoutvisual == tappedvisual)
                     {
                     TInt focus = iMediaList.FocusIndex();
-                    //if the visual is already focused then for next tap open the next view
-                    if( focus == index )
+                    if (index != focus)
                         {
-                        iTouchFeedback->InstantFeedback( ETouchFeedbackBasic );
-                        iObserverEnterKeyEvent.HandleEnterKeyEventL( (TInt)EAknCmdOpen );		    			
-                        consumed = ETrue;
+                        iTouchFeedback->InstantFeedback(ETouchFeedbackBasic);
+                        iMediaList.SetFocusL(NGlxListDefs::EAbsolute, index);
+                        SetFocusColor();
                         }
-                    else if( index!= focus )
+                    consumed = ETrue;
+                    break;
+                    }
+                }
+            }
+        }
+    else if (aEvent.PointerEvent().iType == TPointerEvent::EDrag)
+        {
+        GLX_LOG_INFO("GLX_CLOUD :: CGlxCloudViewControl::HandlePointerEventL(EDrag) event");
+        iTouchFeedback->InstantFeedback(ETouchFeedbackBasic);
+
+        consumed = HandleDragL(aEvent.PointerEvent());
+        }
+    else if (aEvent.PointerUp())
+        {
+        Display()->Roster().SetPointerEventObservers(0, *this);
+        consumed = ETrue;
+
+        //Check if dragging actually happened using iViewDragged 
+        if (iDragging && iViewDragged)
+            {
+            iDragging = EFalse;
+            TPoint drag = iStart - aEvent.PointerEvent().iPosition;
+            iPhysics->StartPhysics(drag, iStartTime);
+            iPhysicsStarted = ETrue;
+            }
+        //If dragging not happened consider it as Tapped event
+        else if (tappedvisual && !iViewDragged)
+            {
+            for (TInt index = 0; index < iLayout->Count(); index++)
+                {
+                CAlfVisual* layoutvisual = &(iLayout->Visual(index));
+                //if the tapped visual is same as the visual in the layout then focus that visual
+                if (layoutvisual == tappedvisual)
+                    {
+                    TInt focus = iMediaList.FocusIndex();
+                    if (index != focus)
                         {
                         iTouchFeedback->InstantFeedback( ETouchFeedbackBasic );
                         TInt focusrowindex = iFocusRowIndex;
-                        iMediaList.SetFocusL (NGlxListDefs::EAbsolute,
-                                index);
+                        iMediaList.SetFocusL(NGlxListDefs::EAbsolute, index);
                         SetFocusColor();
                         iFocusRowIndex = RowNumber (iMediaList.FocusIndex ());
                         if( iFocusRowIndex > focusrowindex)
@@ -1473,29 +1498,15 @@
                             MoveUpIfRequired();                 
                             }
                         }
+
+                    iTouchFeedback->InstantFeedback(ETouchFeedbackBasic);
+                    iObserverEnterKeyEvent.HandleEnterKeyEventL((TInt) EAknCmdOpen);
                     consumed = ETrue;
-                    Display()->Roster().SetPointerEventObservers( EAlfPointerEventReportDrag 
-                            + EAlfPointerEventReportLongTap 
-                            + EAlfPointerEventReportUnhandled, *this );
-                    Display()->Roster().DisableLongTapEventsWhenDragging(*this);
                     break;
                     }
                 }
             }
-        }			
-
-    else if (aEvent.PointerEvent().iType == TPointerEvent::EDrag)
-        {
-        GLX_LOG_INFO("GLX_CLOUD :: CGlxCloudViewControl::HandlePointerEventL(EDrag) event");
-        iTouchFeedback->InstantFeedback( ETouchFeedbackBasic );
-        consumed =  HandleDragL(aEvent.PointerEvent());
-        }
-    else if (aEvent.PointerUp())
-        {
-        
-        Env().CancelCustomCommands(this,ECustomEventFocusDragScroll);
-        Display()->Roster().SetPointerEventObservers(0, *this);
-        consumed =  ETrue;
+        iViewDragged = EFalse;
         }
     return consumed;
     }
@@ -1506,59 +1517,65 @@
 //
 TBool CGlxCloudViewControl::HandleDragL(const TPointerEvent& aPointerEvent)
     {
-    TRACER("GLX_CLOUD::CGlxCloudViewControl::HandleDragL");
-    TBool consumed = EFalse;
-    TInt itemindex = GetAbsoluteIndex(aPointerEvent.iPosition);
-    TInt focus = iMediaList.FocusIndex();
-    TInt focusrowindex = iFocusRowIndex;
+    TBool consumed(EFalse);
+    
+    // If Physics Emulation is going on, no need to entertain drag event
+    if (iPhysicsStarted)
+        return consumed;
 
-    //if index is not NULL then focus the tag and move the viewport down if necessary
-    if ( itemindex != KErrNotFound )
+    //Simply ignore the first drag event as there is huge difference between position 
+    //coordinates in drag event and corordinates in normal pointer down / up events  
+    if (!iDragging)
         {
-        if (focus != itemindex )
-            {
-            iTouchFeedback->InstantFeedback( ETouchFeedbackSensitive );
-            iMediaList.SetFocusL (NGlxListDefs::EAbsolute,itemindex);			
-            iFocusRowIndex = RowNumber (iMediaList.FocusIndex ());
-            GLX_LOG_INFO1("GLX_CLOUD :: CGlxCloudViewControl::HandleDragL,focusrowindex = %d",iFocusRowIndex);
-            if( iFocusRowIndex > focusrowindex)
-                {
-                GLX_LOG_INFO("GLX_CLOUD :: CGlxCloudViewControl::HandleDragL,b4 movedown");
-                iScrollDirection = 0;
-                MoveDownIfRequired(); 				
-                }
-            else if( iFocusRowIndex < focusrowindex )
-                {
-                GLX_LOG_INFO("GLX_CLOUD :: CGlxCloudViewControl::HandleDragL,b4 moveup");
-                iScrollDirection = 1;
-                MoveUpIfRequired();					
-                }			
-            }
-        consumed = ETrue;
+        //Note the current position for future reference
+        iStart = aPointerEvent.iPosition;
+        iPrev = iStart; 
+        iDragging = ETrue;
+        return consumed;
         }
 
-    TRect screenstartrect;
-    //the starting rect of the visible screen
-    screenstartrect.SetRect(0,0,iTagScreenWidth,2*KRowHeight);
+    TRect rect;
+    AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect);
+    TInt cntrlTopYLimit = rect.iTl.iY;
+    TInt cntrlBottomYLimit = rect.iBr.iY;
+    TInt delta = iPrev.iY - aPointerEvent.iPosition.iY;
 
-    TRect screenendrect;
-    //the end rect of the visible screen
-    screenendrect.SetRect(0,(iTagScreenHeight-(2*KRowHeight)),iTagScreenWidth,iTagScreenHeight);
+    //Check for physics threshold, before regidterting drag corordinates
+    TInt deltaAbs = delta < 0 ? -delta : delta;
+    TBool panning = deltaAbs >= iPhysics->DragThreshold();
+    if (panning)
+        {
+        TPoint deltaPt = iPrev - aPointerEvent.iPosition;
+        iPhysics->RegisterPanningPosition(deltaPt);
+        iPrev = aPointerEvent.iPosition;
+        iViewDragged = ETrue;
+        }
+    consumed = ETrue;
 
-    //dragging down
-    if(screenendrect.Contains(aPointerEvent.iPosition))
-        {            
-        iIsDragging = 1;            
-        Env().Send(TAlfCustomEventCommand(ECustomEventFocusDragScroll,
-                this),KDragHoldTime);
+    //Calculate margin after which we might get pointer out of screen, and we might not 
+    //get further pointer events. Also This is currently only 10% of total delta we can find, 
+    //to get margin corresponding to movement of user flicking speed
+    //This implies higher speed - higher margin
+    //Lower speed - 0 margin
+    TInt deltaMargin = deltaAbs * KBoundaryMargin;
+
+    //Code to predict future movement if same delta movement we might get in future
+    //For flick event down - If the movement goes below screen, start physics
+    //or For flick event up - If the movement goes above screen, start physics 
+    if (((delta < 0) && (aPointerEvent.iPosition.iY - delta >= cntrlBottomYLimit - deltaMargin))
+            || ((delta > 0) && (aPointerEvent.iPosition.iY - delta <= cntrlTopYLimit + deltaMargin)))
+        {
+        iPhysicsStarted = ETrue;
         }
-    //dragging up
-    else if  (screenstartrect.Contains(aPointerEvent.iPosition))
+
+    //If found that possibly in next move it might go out of bounds, start physics
+    //emulation
+    if (iPhysicsStarted && iDragging)
         {
-        iIsDragging = 2;             
-        Env().Send(TAlfCustomEventCommand(ECustomEventFocusDragScroll,
-                this),KDragHoldTime);
-        }        
+        TPoint drag = iStart - aPointerEvent.iPosition;
+        iPhysics->StartPhysics(drag, iStartTime);
+        iDragging = EFalse;
+        }
 
     return consumed;
     }
@@ -1684,6 +1701,8 @@
                         TInt steps = TInt(aEvent.CustomEventData());
                         UpdateScrollBar(steps,EFalse);                        
                         Scroll();                       
+                        iPhysics->StopPhysics();
+
                         status = EEventHandled; 
                         }
                         break;                   
@@ -1692,7 +1711,8 @@
                         GLX_LOG_INFO("GLX_CLOUD :: CGlxCloudViewControl::offerEvent(EEventScrollPageUp) event");                       
                         UpdateScrollBar(-iScrollEventData.mViewLength); 
                         Scroll();                        
-                        status = EEventHandled;    		    	    
+                        iPhysics->StopPhysics();
+                        status = EEventHandled;
                         }
                         break;
                     case EEventScrollPageDown:
@@ -1700,6 +1720,7 @@
                         GLX_LOG_INFO("GLX_CLOUD :: CGlxCloudViewControl::offerEvent(EEventScrollPageDown) event");                       
                         UpdateScrollBar(iScrollEventData.mViewLength); 
                         Scroll();
+                        iPhysics->StopPhysics();
                         status = EEventHandled; 		    	    
                         }
                         break;                    
@@ -1755,7 +1776,7 @@
     iScrollbarElement->offerEvent(*(iScrollBarWidget->control()),customevent);
     GLX_LOG_INFO1("GLX_CLOUD ::CGlxCloudViewControl::Scroll(),position %d ",iScrollEventData.mViewStartPos);
     iViewPortPosition.iY = iScrollEventData.mViewStartPos;
-    iViewPortLayout->SetViewportPos (iViewPortPosition,1000);  
+    iViewPortLayout->SetViewportPos(iViewPortPosition, KSlowCloudMovement);
     }
 
 // ---------------------------------------------------------------------------
@@ -1820,12 +1841,12 @@
     {
     TRect rect;
     AknLayoutUtils::LayoutMetricsRect (AknLayoutUtils::EMainPane, rect);
-    if ( (rect.Width() != iTagScreenWidth) && ( rect.Height () != iScreenHeight))
+    if ((rect.Width() != (iTagScreenWidth + iScrollPaneHandle.iW + KRightmargin)) || (rect.Height() != iScreenHeight))
         {
         //set the new screen dimensions
         iScreenHeight=rect.Height();
        iTagScreenWidth = rect.Width()- iScrollPaneHandle.iW - KRightmargin;
-        if (GlxGeneralUiUtilities::IsLandscape())
+        if(IsLandscape())
             {   
             iTagScreenHeight = rect.Height();   
             }
@@ -1842,8 +1863,79 @@
             FetchAttributeFromCacheL();
             //generate row structures and draw rows on screen
             UpdateRowDataL ();                                    
+
+            InitPhysicsL();
             }
         }
     }
+
+// ---------------------------------------------------------------------------
+// InitPhysicsL() 
+// ---------------------------------------------------------------------------
+//
+void CGlxCloudViewControl::InitPhysicsL()
+    {
+    //Update physics with new total layout, viewable size and our landscape mode 
+    iPhysics->InitPhysicsL(TSize(iViewPortVirtualSize.iWidth,
+            iViewPortVirtualSize.iHeight), TSize(iTagScreenWidth,
+            iTagScreenHeight), EFalse);
+
+    //Note: Physics viewposition must always be mid of viewable screen size to get best result
+    //I learned the hard way
+    iViewPosition.SetXY(iTagScreenWidth / 2, iTagScreenHeight / 2);
+    }
+
+// ---------------------------------------------------------------------------
+// ViewPositionChanged() 
+// ---------------------------------------------------------------------------
+//
+void CGlxCloudViewControl::ViewPositionChanged(const TPoint& aNewPosition,
+        TBool aDrawNow, TUint /*aFlags*/)
+    {
+    iViewPosition = aNewPosition;
+    iViewPortPosition.iY = iViewPosition.iY - iTagScreenHeight / 2;
+    if (aDrawNow)
+        {
+        iViewPortLayout->SetViewportPos(iViewPortPosition, KFastCloudMovement);
         
+        iScrollEventData.mViewStartPos = iViewPortPosition.iY;
+        Scroll();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// PhysicEmulationEnded() 
+// ---------------------------------------------------------------------------
+//
+void CGlxCloudViewControl::PhysicEmulationEnded()
+    {
+    iPhysicsStarted = EFalse;
+    }
+
+// ---------------------------------------------------------------------------
+// ViewPosition() 
+// ---------------------------------------------------------------------------
+//
+TPoint CGlxCloudViewControl::ViewPosition() const
+    {
+    return iViewPosition;
+    }
+
+// ---------------------------------------------------------------------------
+// IsLandscape() 
+// ---------------------------------------------------------------------------
+//
+TBool CGlxCloudViewControl::IsLandscape()
+    {
+    TRect rect;
+    AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EScreen, rect);
+    if(rect.Width() > rect.Height())
+        {
+        return ETrue;
+        }
+    else
+        {
+        return EFalse;
+        }
+    }
 //End of file
--- a/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h	Mon Jan 18 20:19:20 2010 +0200
@@ -40,7 +40,7 @@
 class CEikButtonGroupContainer;
 class CGlxActiveMediaListRegistry;
 class CGlxZoomControl;
-class CGlxSinleLineMetaPane;
+class CGlxSingleLineMetaPane;
 class CGlxCommandHandlerAiwShowMapHardKey;
 class CGlxDRMUtility;
 class CGlxHdmiController;
@@ -295,7 +295,7 @@
 	CGlxCommandHandlerAiwShowMapHardKey* iShowOnMapHardKeyhandler;
     
     CGlxScreenFurniture* iScreenFurniture;
-    //CGlxSinleLineMetaPane* iSingleLineMetaPane;
+    //CGlxSingleLineMetaPane* iSingleLineMetaPane;
 //    CHgContextUtility* iContextUtility;
     CGlxHdmiController* iHdmiController;
 	    
--- a/photosgallery/viewframework/views/fullscreenview/inc/glxsinglelinemetapanecontrol.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/inc/glxsinglelinemetapanecontrol.h	Mon Jan 18 20:19:20 2010 +0200
@@ -61,7 +61,7 @@
 /*
  * For craeting and maintaining the Single Line metapane 
  */
-class CGlxSinleLineMetaPane: public CAlfControl,
+class CGlxSingleLineMetaPane: public CAlfControl,
                             public MGlxMediaListObserver,
                             public MGlxSLMPObserver
      {
@@ -69,13 +69,13 @@
     /*
      * NewL()
      */
-    static CGlxSinleLineMetaPane* NewL( CGlxFullScreenViewImp& aFullscreenView,
+    static CGlxSingleLineMetaPane* NewL( CGlxFullScreenViewImp& aFullscreenView,
             MGlxMediaList& aMediaList, CGlxUiUtility& aUiUtility);
     
     /*
      * destructor
      */
-    ~CGlxSinleLineMetaPane();
+    ~CGlxSingleLineMetaPane();
     
     /*
      * Show/Hide the Metapane
@@ -109,7 +109,7 @@
     /*
      * Constructor
      */
-    CGlxSinleLineMetaPane(CGlxFullScreenViewImp& aFullscreenView,
+    CGlxSingleLineMetaPane(CGlxFullScreenViewImp& aFullscreenView,
             MGlxMediaList& aMediaList,CGlxUiUtility& aUiUtility);
     
     /*
--- a/photosgallery/viewframework/views/fullscreenview/inc/glxslmpfavmlobserver.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/inc/glxslmpfavmlobserver.h	Mon Jan 18 20:19:20 2010 +0200
@@ -31,7 +31,7 @@
     /*
      * Newl()
      */
-    static CGlxSLMPFavMLObserver* NewL( CGlxSinleLineMetaPane& aSingleLineMetaPane,
+    static CGlxSLMPFavMLObserver* NewL( CGlxSingleLineMetaPane& aSingleLineMetaPane,
             TInt aFocusIndex,MGlxMediaList* aList);
     
     /*
@@ -58,7 +58,7 @@
     /*
      * Constructor
      */
-    CGlxSLMPFavMLObserver(CGlxSinleLineMetaPane& aSingleLineMetaPane);
+    CGlxSLMPFavMLObserver(CGlxSingleLineMetaPane& aSingleLineMetaPane);
     
     /*
      * 2nd Phase Ctor
@@ -68,7 +68,7 @@
     void ConstructL(TInt aFocusIndex, MGlxMediaList* aList);
     
 private:
-    CGlxSinleLineMetaPane&          iSingleLineMetaPane;        // SingleLineMetapane Reference
+    CGlxSingleLineMetaPane&          iSingleLineMetaPane;        // SingleLineMetapane Reference
     MGlxMediaList*                  iFavMediaList;              // Favourite Medialist
     CGlxDefaultAttributeContext*    iFavAttribContext;          // Attribute context for favourites
     };
--- a/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -70,8 +70,6 @@
 
 using namespace Alf;
 
-//To disable AppUi status pane
-#define GetAppViewUi() (dynamic_cast<CAknViewAppUi*>(CEikonEnv::Static()->EikAppUi()))
 const TInt KGlxScreenTimeout =10000000;
 const TInt KCoverflowDataWindowSize = 1;
 const TInt KGlxMaxSmallImageZoomLevel =150;
@@ -343,7 +341,7 @@
             *iZoomButtonGroup, *iSliderWidget, iGestureHelper);
 
     // Create the Metapane
-    //iSingleLineMetaPane = CGlxSinleLineMetaPane::NewL(*this,*iMediaList,*iUiUtility);
+    //iSingleLineMetaPane = CGlxSingleLineMetaPane::NewL(*this,*iMediaList,*iUiUtility);
 
     // hide the screen furniture
     HideUi(ETrue);
@@ -380,39 +378,41 @@
         // Get widget factory from CAlfEnv
         // Factory is then used to create the individual widgets & data model
 
-        IAlfWidgetFactory& widgetFactory = AlfWidgetEnvExtension::widgetFactory(*iEnv); 
+        IAlfWidgetFactory& widgetFactory =
+                AlfWidgetEnvExtension::widgetFactory(*iEnv);
 
-    // create a view widget  
-    iViewWidget = widgetFactory.createViewWidget (
-            KCoverflowViewWidget, 0x113);
-    // hide control and status pane
-    iViewWidget->enableControlPane(EFalse);
-    iViewWidget->enableStatusPane(EFalse);
-    iViewWidget->setRect(TRect(TPoint(0,0),AlfUtil::ScreenSize()));
-    iViewWidget->show(true);
-    // create coverflow widget
-    iCoverFlowWidget = widgetFactory.createWidget<IMulCoverFlowWidget> (
-            KWidgetName, KCoverflowWidget, *iViewWidget, NULL);			
-    iCoverFlowWidget->SetFlags(IMulMultiItemWidget::EMulWidgetDoubleTap);
+        // create a view widget  
+        iViewWidget = widgetFactory.createViewWidget(KCoverflowViewWidget,
+                0x113);
+        // hide control and status pane
+        iViewWidget->enableControlPane(EFalse);
+        iViewWidget->enableStatusPane(EFalse);
+        iViewWidget->setRect(TRect(TPoint(0, 0), AlfUtil::ScreenSize()));
+        iViewWidget->show(true);
+        // create coverflow widget
+        iCoverFlowWidget = widgetFactory.createWidget<IMulCoverFlowWidget> (
+                KWidgetName, KCoverflowWidget, *iViewWidget, NULL);
+        iCoverFlowWidget->SetFlags(IMulMultiItemWidget::EMulWidgetDoubleTap);
 
-    // Widget takes the ownership
-    iCoverFlowWidget->AddEventHandler (*this);
+        // Widget takes the ownership
+        iCoverFlowWidget->AddEventHandler(*this);
 
-    // hide appui's status pane  
-    GetAppViewUi()->StatusPane()->MakeVisible(EFalse);
+        CAknViewAppUi* appui = AppUi();
+        if ( appui )
+            {
+            appui->StatusPane()->MakeVisible(EFalse);
+            appui->Cba()->MakeVisible(EFalse);
+            }
 
-    // hide appui's softkeys
-    GetAppViewUi()->Cba()->MakeVisible(EFalse);
-    iCoverFlowWidget->ShowWidget(ETrue);
-    iCoverFlowWidget->control()->AcquireFocus();
+        iCoverFlowWidget->ShowWidget(ETrue);
+        iCoverFlowWidget->control()->AcquireFocus();
+        iMediaListMulModelProvider = CGlxMediaListMulModelProvider::NewL(
+                *iEnv, *iCoverFlowWidget, *iMediaList, iFullScreenBindingSet,
+                mulwidget::KTemplate4, KCoverflowDataWindowSize);
 
-        iMediaListMulModelProvider = CGlxMediaListMulModelProvider::NewL (*iEnv,
-                *iCoverFlowWidget, *iMediaList, iFullScreenBindingSet,
-                mulwidget::KTemplate4, KCoverflowDataWindowSize );
-        
-        iGestureHelper = (GestureHelper::CGestureHelper*)iCoverFlowWidget->Gesturehelper();
+        iGestureHelper
+                = (GestureHelper::CGestureHelper*) iCoverFlowWidget->Gesturehelper();
         }
-
     catch(...)
         {
         User::Leave(KErrGeneral);
--- a/photosgallery/viewframework/views/fullscreenview/src/glxsinglelinemetapanecontrol.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/src/glxsinglelinemetapanecontrol.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -70,18 +70,15 @@
 _LIT8(KTagLoc, "Loc");
 _LIT8(KTagFav, "Fav");
 
-#define GetAppUi() (dynamic_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi()))
-
-
 // ---------------------------------------------------------------------------
 // NewL
 // ---------------------------------------------------------------------------
 //  
-CGlxSinleLineMetaPane* CGlxSinleLineMetaPane::NewL(CGlxFullScreenViewImp& aFullscreenView,
+CGlxSingleLineMetaPane* CGlxSingleLineMetaPane::NewL(CGlxFullScreenViewImp& aFullscreenView,
         MGlxMediaList& aMediaList, CGlxUiUtility& aUiUtility)
     {
-    TRACER("CGlxSinleLineMetaPane* CGlxSinleLineMetaPane::NewL()");
-    CGlxSinleLineMetaPane* self = new (ELeave) CGlxSinleLineMetaPane(aFullscreenView,
+    TRACER("CGlxSingleLineMetaPane* CGlxSingleLineMetaPane::NewL()");
+    CGlxSingleLineMetaPane* self = new (ELeave) CGlxSingleLineMetaPane(aFullscreenView,
             aMediaList, aUiUtility);
     CleanupStack::PushL(self);
     self->ConstructL();
@@ -90,14 +87,14 @@
     }
 
 // ---------------------------------------------------------------------------
-// CGlxSinleLineMetaPane() constructor
+// CGlxSingleLineMetaPane() constructor
 // ---------------------------------------------------------------------------
 //  
-CGlxSinleLineMetaPane::CGlxSinleLineMetaPane(CGlxFullScreenViewImp& aFullscreenView, 
+CGlxSingleLineMetaPane::CGlxSingleLineMetaPane(CGlxFullScreenViewImp& aFullscreenView, 
         MGlxMediaList& aMediaList, CGlxUiUtility& aUiUtility) :iFullscreenView(aFullscreenView),
         iMediaList(aMediaList), iUiUtility(aUiUtility)
     {
-    TRACER("CGlxSinleLineMetaPane* CGlxSinleLineMetaPane::NewL()");
+    TRACER("CGlxSingleLineMetaPane* CGlxSingleLineMetaPane::NewL()");
     // No Implementation
     }
 
@@ -105,9 +102,9 @@
 // ConstructL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::ConstructL()
+void CGlxSingleLineMetaPane::ConstructL()
     {
-    TRACER("CGlxSinleLineMetaPane::ConstructL()");
+    TRACER("CGlxSingleLineMetaPane::ConstructL()");
     // Construct the base class.
     // Get the icon file
     TFileName resFile(KDC_APP_BITMAP_DIR);
@@ -185,12 +182,12 @@
     }
 
 // ---------------------------------------------------------------------------
-// ~CGlxSinleLineMetaPane Destructor
+// ~CGlxSingleLineMetaPane Destructor
 // ---------------------------------------------------------------------------
 //  
-CGlxSinleLineMetaPane::~CGlxSinleLineMetaPane()
+CGlxSingleLineMetaPane::~CGlxSingleLineMetaPane()
     {
-    TRACER("CGlxSinleLineMetaPane::~CGlxSinleLineMetaPane()");
+    TRACER("CGlxSingleLineMetaPane::~CGlxSingleLineMetaPane()");
     iMediaList.RemoveMediaListObserver(this);
     if( iAttribContext )
         {
@@ -213,9 +210,9 @@
 // CreateIconTextureAndUpdateVisualsL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::CreateIconTextureAndUpdateVisualsL()
+void CGlxSingleLineMetaPane::CreateIconTextureAndUpdateVisualsL()
     {
-    TRACER("CGlxSinleLineMetaPane::CreateIconTextureAndUpdateVisualsL()");
+    TRACER("CGlxSingleLineMetaPane::CreateIconTextureAndUpdateVisualsL()");
     // Get the icon file
     TFileName resFile(KDC_APP_BITMAP_DIR);
     resFile.Append(KGlxIconsFilename);
@@ -235,9 +232,9 @@
 // @bug :tapadar :major :This function is using magic numbers, would be corrected with updated LAF docs
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::CreateGridL()
+void CGlxSingleLineMetaPane::CreateGridL()
     {
-    TRACER("CGlxSinleLineMetaPane::CreateGridL()");
+    TRACER("CGlxSingleLineMetaPane::CreateGridL()");
 
     iGridVisual->SetPadding(TPoint(1,1));
     iGridVisual->SetInnerPadding( TPoint(1,1) );
@@ -289,10 +286,10 @@
 // ShowMetaPane
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::ShowMetaPane(TBool aShow)
+void CGlxSingleLineMetaPane::ShowMetaPane(TBool aShow)
     {
-    TRACER("CGlxSinleLineMetaPane::ShowMetaPane()");
-    GLX_LOG_INFO1("CGlxSinleLineMetaPane::ShowMetaPane() value %d",aShow);
+    TRACER("CGlxSingleLineMetaPane::ShowMetaPane()");
+    GLX_LOG_INFO1("CGlxSingleLineMetaPane::ShowMetaPane() value %d",aShow);
     if(aShow)
         {
         iMainVisual->SetOpacity(KOpacityOpaque);    
@@ -307,14 +304,14 @@
 // OfferEventL
 // ---------------------------------------------------------------------------
 //  
-TBool CGlxSinleLineMetaPane::OfferEventL(const TAlfEvent &aEvent)
+TBool CGlxSingleLineMetaPane::OfferEventL(const TAlfEvent &aEvent)
     {
-    TRACER("CGlxSinleLineMetaPane::OfferEventL()");
+    TRACER("CGlxSingleLineMetaPane::OfferEventL()");
     TBool consumed = EFalse;
     
     if (aEvent.IsKeyEvent())
         {
-        GLX_LOG_INFO( "CGlxSinleLineMetaPane::OfferEventL::KeyEvent");
+        GLX_LOG_INFO( "CGlxSingleLineMetaPane::OfferEventL::KeyEvent");
         }
 
     // Dont handle if not visible. [HACK ALERT]: This might probably be a hack. 
@@ -326,27 +323,27 @@
     
     if(aEvent.IsPointerEvent() && aEvent.PointerDown() )
         {
-        GLX_LOG_INFO( "CGlxSinleLineMetaPane::OfferEventL::PointerEvent");
+        GLX_LOG_INFO( "CGlxSingleLineMetaPane::OfferEventL::PointerEvent");
         CAlfVisual* onVisual = NULL;
         onVisual = aEvent.Visual();
         if(AlfUtil::TagMatches(onVisual->Tag(), KTagFav))
             {
-            GLX_LOG_INFO( "CGlxSinleLineMetaPane::OfferEventL::PointerEvent - KTagFav");
+            GLX_LOG_INFO( "CGlxSingleLineMetaPane::OfferEventL::PointerEvent - KTagFav");
             if (iFavIconStatus)
                 {
-                GLX_LOG_INFO( "CGlxSinleLineMetaPane::OfferEventL::PointerEvent - Already Fav");
+                GLX_LOG_INFO( "CGlxSingleLineMetaPane::OfferEventL::PointerEvent - Already Fav");
                 iFullscreenView.HandleCommandL(EGlxCmdRemoveFromFavourites,this);
                 }
             else
                 {
-                GLX_LOG_INFO( "CGlxSinleLineMetaPane::OfferEventL::PointerEvent - Add to Fav");
+                GLX_LOG_INFO( "CGlxSingleLineMetaPane::OfferEventL::PointerEvent - Add to Fav");
                 iFullscreenView.HandleCommandL(EGlxCmdAddToFavourites,this);    
                 }
             consumed = ETrue;
             }
         else if (AlfUtil::TagMatches(onVisual->Tag(), KTagLoc))
             {
-            GLX_LOG_INFO( "CGlxSinleLineMetaPane::OfferEventL::PointerEvent - KTagLoc , Location info present");
+            GLX_LOG_INFO( "CGlxSingleLineMetaPane::OfferEventL::PointerEvent - KTagLoc , Location info present");
             iFullscreenView.HandleCommandL(KGlxCmdMnShowMap,this); 
             consumed = ETrue;
             }
@@ -358,9 +355,9 @@
 // VisualLayoutUpdated
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::VisualLayoutUpdated(CAlfVisual&/* aVisual*/)
+void CGlxSingleLineMetaPane::VisualLayoutUpdated(CAlfVisual&/* aVisual*/)
     {
-    TRACER("CGlxSinleLineMetaPane::VisualLayoutUpdated()");
+    TRACER("CGlxSingleLineMetaPane::VisualLayoutUpdated()");
     // Update the Screen positions only if the layout has changed.
     // For performace improvement
     TRect presentScreenSize = GetScreenSize();
@@ -375,9 +372,9 @@
 // DetermineOrientation
 // ---------------------------------------------------------------------------
 //  
-TInt CGlxSinleLineMetaPane::DetermineOrientation(TRect aRect)
+TInt CGlxSingleLineMetaPane::DetermineOrientation(TRect aRect)
     {
-    TRACER("CGlxSinleLineMetaPane::DetermineOrientation()");
+    TRACER("CGlxSingleLineMetaPane::DetermineOrientation()");
     TInt orientationValue = (aRect.Width()>aRect.Height()?EMetaOrinentaionLandscape:
                                                             EMetaOrinentaionPortrait);
     return orientationValue;
@@ -387,9 +384,9 @@
 // GetScreenSize
 // ---------------------------------------------------------------------------
 //  
-TRect CGlxSinleLineMetaPane::GetScreenSize()
+TRect CGlxSingleLineMetaPane::GetScreenSize()
     {
-    TRACER("CGlxSinleLineMetaPane::GetScreenSize()");
+    TRACER("CGlxSingleLineMetaPane::GetScreenSize()");
     return AlfUtil::ScreenSize();
     }
 // ---------------------------------------------------------------------------
@@ -398,9 +395,9 @@
 // @bug :tapadar :major :This function needs to be worked upon across corrolla and ivalo once LAF present
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::UpdatePosition()
+void CGlxSingleLineMetaPane::UpdatePosition()
     {
-    TRACER("CGlxSinleLineMetaPane::UpdatePosition()");
+    TRACER("CGlxSingleLineMetaPane::UpdatePosition()");
     TRect rect = GetScreenSize();
     TInt screenWidth = rect.Width();
     TInt screenHeight = rect.Height();
@@ -410,8 +407,8 @@
     iMainVisual->ClearFlag( EAlfVisualFlagLayoutUpdateNotification);
     if (EMetaOrinentaionPortrait == orientation)
         {
-        GLX_LOG_INFO("CGlxSinleLineMetaPane::UpdatePosition - EMetaOrinentaionPortrait Orientation");
-        CAknToolbar* toolbar = GetAppUi()->CurrentFixedToolbar();
+        GLX_LOG_INFO("CGlxSingleLineMetaPane::UpdatePosition - EMetaOrinentaionPortrait Orientation");
+        CAknToolbar* toolbar = iAvkonAppUi->CurrentFixedToolbar();
         
         if (toolbar->IsToolbarDisabled())
             {
@@ -428,14 +425,14 @@
         }
     else if(EMetaOrinentaionLandscape == orientation)
         {
-        GLX_LOG_INFO("CGlxSinleLineMetaPane::UpdatePosition - EMetaOrinentaionLandscape Orientation");
+        GLX_LOG_INFO("CGlxSingleLineMetaPane::UpdatePosition - EMetaOrinentaionLandscape Orientation");
         //set the control size
         iMainVisual->SetSize(TSize(screenWidth-100,45));
         iMainVisual->SetPos(TAlfRealPoint(3,screenHeight-45));
         }
     else
         {
-        GLX_LOG_INFO("CGlxSinleLineMetaPane::UpdatePosition - Wrong Orientation");
+        GLX_LOG_INFO("CGlxSingleLineMetaPane::UpdatePosition - Wrong Orientation");
         }
     iMainVisual->SetFlag ( EAlfVisualFlagLayoutUpdateNotification);
     }
@@ -444,10 +441,10 @@
 // UpdateMetaPaneL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::UpdateMetaPaneL(TInt aFocusIndex, MGlxMediaList* aList, 
+void CGlxSingleLineMetaPane::UpdateMetaPaneL(TInt aFocusIndex, MGlxMediaList* aList, 
             TBool aUpdateFavIcon)
     {
-    TRACER("CGlxSinleLineMetaPane::UpdateMetaPaneL()");
+    TRACER("CGlxSingleLineMetaPane::UpdateMetaPaneL()");
     
     const TGlxMedia& item = aList->Item(aFocusIndex);
     const CGlxMedia* media = item.Properties();
@@ -497,9 +494,9 @@
 // HandleUpdateIconL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleUpdateIconL(TBool aModify)
+void CGlxSingleLineMetaPane::HandleUpdateIconL(TBool aModify)
     {
-    TRACER("CGlxSinleLineMetaPane::HandleUpdateIconL()");
+    TRACER("CGlxSingleLineMetaPane::HandleUpdateIconL()");
     // Check if the item is added to favourites already
     if (aModify)
         {
@@ -517,10 +514,10 @@
 // HandleItemAddedL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleItemAddedL( TInt /*aStartIndex*/, TInt /*aEndIndex*/,
+void CGlxSingleLineMetaPane::HandleItemAddedL( TInt /*aStartIndex*/, TInt /*aEndIndex*/,
         MGlxMediaList* /*aList*/ )
     {
-    TRACER("CGlxSinleLineMetaPane::HandleItemAddedL()");
+    TRACER("CGlxSingleLineMetaPane::HandleItemAddedL()");
     // No Implementation
     }
 
@@ -528,10 +525,10 @@
 // HandleItemRemovedL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleItemRemovedL( TInt/* aStartIndex*/, 
+void CGlxSingleLineMetaPane::HandleItemRemovedL( TInt/* aStartIndex*/, 
         TInt/* aEndIndex*/, MGlxMediaList*/* aList */)
     {
-    TRACER("CGlxSinleLineMetaPane::HandleItemRemovedL()");
+    TRACER("CGlxSingleLineMetaPane::HandleItemRemovedL()");
     // No Implementation
     }
 
@@ -539,13 +536,13 @@
 // HandleAttributesAvailableL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleAttributesAvailableL( TInt aItemIndex, 
+void CGlxSingleLineMetaPane::HandleAttributesAvailableL( TInt aItemIndex, 
     const RArray<TMPXAttribute>& /*aAttributes*/, MGlxMediaList* aList )
     {
-    TRACER("CGlxSinleLineMetaPane::HandleAttributesAvailableL()");
+    TRACER("CGlxSingleLineMetaPane::HandleAttributesAvailableL()");
 
     TInt focusIndex = iMediaList.FocusIndex();
-    GLX_LOG_INFO2("CGlxSinleLineMetaPane::HandleAttributesAvailableL FocusIndex is : %d and ItemIdex is : %d", 
+    GLX_LOG_INFO2("CGlxSingleLineMetaPane::HandleAttributesAvailableL FocusIndex is : %d and ItemIdex is : %d", 
             focusIndex, aItemIndex);
     
     // Update the metapane only for the focus Index, do not make unnecessary calls.
@@ -561,10 +558,10 @@
 // HandleFocusChangedL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleFocusChangedL( NGlxListDefs::TFocusChangeType /*aType*/, 
+void CGlxSingleLineMetaPane::HandleFocusChangedL( NGlxListDefs::TFocusChangeType /*aType*/, 
 TInt aNewIndex, TInt /*aOldIndex*/, MGlxMediaList* aList )
     {
-    TRACER("CGlxSinleLineMetaPane::HandleFocusChangedL()");
+    TRACER("CGlxSingleLineMetaPane::HandleFocusChangedL()");
     // Check the count here to ensure the medialist is present
     // this case may be occurred when the last item of the Fs view is deleted and it 
     // wants to go back to the grid view
@@ -585,10 +582,10 @@
 // HandleItemSelectedL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleItemSelectedL(TInt/* aIndex*/, TBool/* aSelected*/,
+void CGlxSingleLineMetaPane::HandleItemSelectedL(TInt/* aIndex*/, TBool/* aSelected*/,
         MGlxMediaList* /*aList*/ )
     {
-    TRACER("CGlxSinleLineMetaPane::HandleItemSelectedL()");
+    TRACER("CGlxSingleLineMetaPane::HandleItemSelectedL()");
     // No Implementation
     }
 
@@ -596,10 +593,10 @@
 // HandleMessageL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleMessageL( const CMPXMessage& /*aMessage*/, 
+void CGlxSingleLineMetaPane::HandleMessageL( const CMPXMessage& /*aMessage*/, 
         MGlxMediaList*/* aList */)
     {
-    TRACER("CGlxSinleLineMetaPane::HandleMessageL()");
+    TRACER("CGlxSingleLineMetaPane::HandleMessageL()");
     // No Implementation
     }
 
@@ -607,9 +604,9 @@
 // HandleError
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleError( TInt /*aError*/ )
+void CGlxSingleLineMetaPane::HandleError( TInt /*aError*/ )
     {
-    TRACER("CGlxSinleLineMetaPane::HandleError()");
+    TRACER("CGlxSingleLineMetaPane::HandleError()");
     // No Implementation
     }
 
@@ -617,10 +614,10 @@
 // HandleCommandCompleteL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleCommandCompleteL( CMPXCommand* /*aCommandResult*/, 
+void CGlxSingleLineMetaPane::HandleCommandCompleteL( CMPXCommand* /*aCommandResult*/, 
         TInt /*aError*/, MGlxMediaList*/* aList */)
     {
-    TRACER("CGlxSinleLineMetaPane::HandleCommandCompleteL()");
+    TRACER("CGlxSingleLineMetaPane::HandleCommandCompleteL()");
     // No Implementation
     }
 
@@ -628,9 +625,9 @@
 // HandleMediaL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleMediaL( TInt /*aListIndex*/, MGlxMediaList*/* aList */)
+void CGlxSingleLineMetaPane::HandleMediaL( TInt /*aListIndex*/, MGlxMediaList*/* aList */)
     {
-    TRACER("CGlxSinleLineMetaPane::HandleMediaL()");
+    TRACER("CGlxSingleLineMetaPane::HandleMediaL()");
     // No Implementation
     }
 
@@ -638,10 +635,10 @@
 // HandleItemModifiedL
 // ---------------------------------------------------------------------------
 //  
-void CGlxSinleLineMetaPane::HandleItemModifiedL( const RArray<TInt>& /*aItemIndexes*/,
+void CGlxSingleLineMetaPane::HandleItemModifiedL( const RArray<TInt>& /*aItemIndexes*/,
         MGlxMediaList*/* aList */)
     {
-    TRACER("CGlxSinleLineMetaPane::HandleItemModifiedL()");
+    TRACER("CGlxSingleLineMetaPane::HandleItemModifiedL()");
     // No Implementation
     }
 
--- a/photosgallery/viewframework/views/fullscreenview/src/glxslmpfavmlobserver.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/src/glxslmpfavmlobserver.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -28,7 +28,7 @@
 // NewL()
 // ---------------------------------------------------------------------------
 //  
-CGlxSLMPFavMLObserver* CGlxSLMPFavMLObserver::NewL( CGlxSinleLineMetaPane& aSingleLineMetapane,
+CGlxSLMPFavMLObserver* CGlxSLMPFavMLObserver::NewL( CGlxSingleLineMetaPane& aSingleLineMetapane,
         TInt aFocusIndex, MGlxMediaList* aList)
     {
     TRACER("CGlxSLMPFavMLObserver::NewL()");
@@ -43,7 +43,7 @@
 // CGlxSLMPFavMLObserver()
 // ---------------------------------------------------------------------------
 //  
-CGlxSLMPFavMLObserver::CGlxSLMPFavMLObserver(CGlxSinleLineMetaPane& aSingleLineMetaPane) 
+CGlxSLMPFavMLObserver::CGlxSLMPFavMLObserver(CGlxSingleLineMetaPane& aSingleLineMetaPane) 
             : iSingleLineMetaPane( aSingleLineMetaPane)
     {
     TRACER("CGlxSLMPFavMLObserver::CGlxSLMPFavMLObserver()");
--- a/photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h	Mon Jan 18 20:19:20 2010 +0200
@@ -123,18 +123,6 @@
 	// Create Grid once again after returning from FS as No calls for handleItem added.
 	void CreateGridAfterFSDeactivatedL();
 	/**
-	 * Set FS thumbnail context with FromFocusOutwardIterator
-	 * for FS thumbnails
-	 */
-	void FetchFSThumbnailL();
-	/**
-	 * Set the Time stamp for Scrollbar Time Strip
-	 */
-	void SetDownloadLinksTimeL();
-	/**
-	 * Removes the thumbnail contexts for FS
-	 */
-	void RemoveFSThumbnailContext();
 	/**
 	 * Handle Multiple marking
 	 */
@@ -178,19 +166,13 @@
 	// Thumbnail context
 	CGlxThumbnailContext* iThumbnailContext;
 
-	// FS thumbnail context
-	CGlxThumbnailContext* iFsThumbnailContext;
 
 	// Iterators for Grid and FS
 	TGlxFromManualIndexBlockyIterator iBlockyIterator;
-	TGlxFromFocusOutwardIterator iFsFromFocusOutwardIterator;
 
 	// Grid Icon size from FS view
 	TSize iGridIconSize;
 
-	// Flag to indicate the downloads plugin
-	TBool iDownloadsPlugin;
-
 	// Bool to check backward navigation
 	TBool iBackwardActivation;
 
--- a/photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h	Mon Jan 18 20:19:20 2010 +0200
@@ -117,9 +117,6 @@
     //No of visible items in a page/view
     TInt  iItemsPerPage;
 
-    // Flag to indicate the downloads plugin
-    TBool iDownloadsPlugin;
-    
     // Modified Indexes array to refresh the screen
     RArray<TInt> iModifiedIndexes;
 
--- a/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -19,7 +19,6 @@
 #include <StringLoader.h>
 #include <AknsBasicBackgroundControlContext.h>
 #include <caf/caferr.h>
-#include <featmgr.h>		                            // Feature Manager
 
 // Ganes Headers
 #include <gulicon.h>                                    // Gul Icons
@@ -28,7 +27,6 @@
 
 // Framework
 #include <data_caging_path_literals.hrh>
-#include <glxcollectionplugindownloads.hrh>
 #include <glxcommandhandlers.hrh>                       // For EGlxCmdFullScreenBack
 #include <glxcollectionpluginall.hrh> 	            	// All item collection plugin id
 
@@ -48,7 +46,6 @@
 
 const TInt KNoOfPages(3);
 const TInt KBufferTresholdSize(3); 						// in rows
-const TInt KMaxNoOfSeamlessLinks(2);
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -106,10 +103,6 @@
 		iMediaList->RemoveContext(iThumbnailContext);
 		delete iThumbnailContext;
 		}
-	if(iUiUtility->IsPenSupported())
-		{
-		RemoveFSThumbnailContext();
-		}
 	if(iNavigationalstate)
 		{
 		iNavigationalstate->Close();
@@ -289,11 +282,6 @@
 				}
 			}
 		}
-
-	if (iDownloadsPlugin && aRequestStart == KMaxNoOfSeamlessLinks)
-		{
-		SetDownloadLinksTimeL();
-		}
 	}
 
 // ----------------------------------------------------------------------------
@@ -384,35 +372,19 @@
 	TInt mediaCount = iMediaList->Count();
 	if (!iHgGrid)
 		{
+        TSize tnSize = CHgGrid::PreferredImageSize();
+        GLX_DEBUG3("GlxGrid: CHgGrid::PreferredImageSize() w(%d) h(%d)", 
+                tnSize.iWidth, tnSize.iHeight);
 		TFileName resFile(KDC_APP_BITMAP_DIR);
 		resFile.Append(KGlxIconsFilename);
 		CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile,
 				EMbmGlxiconsQgn_prop_image_notcreated);
-		AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize());
+        AknIconUtils::SetSize(bitmap, tnSize);
 		TRect rect = iEikonEnv->EikAppUi()->ClientRect();
 		// Create Hg grid object
 		iHgGrid = CHgGrid::NewL (rect,mediaCount,CGulIcon::NewL(bitmap));
 		}
-	if (mediaCount)
-		{
-		// Mediacount would give the no of static items present and
-		// coz medialist doesnt have all the item at
-		// this stage, it will focus index for only download icons.
-		// For other grid views, we have to set focus elsewhere
-		for (TInt i=0; i<mediaCount; i++)
-			{
-			const TGlxMedia& item = iMediaList->Item(i);
-			TIconInfo icon;
-			if (item.GetIconInfo(icon) )
-				{
-				CFbsBitmap* bitmap = AknIconUtils::CreateIconL(icon.bmpfile, icon.bitmapId);
-				AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize());
-				iHgGrid->ItemL(i).SetIcon(CGulIcon::NewL(bitmap));
-				}
-			}
-		// Setting the initial focus
-		iHgGrid->SetSelectedIndex(iMediaList->FocusIndex());
-		}
+
 	// Setting to MopParent to update background skin
 	iHgGrid->SetMopParent(this);
 	// Setting Selction observer for getting callback on key event change
@@ -448,11 +420,6 @@
 	CreateGridMediaListObserverL();
 	// Create Grid once again after returning from FS as No calls for handleItem added.
 	CreateGridAfterFSDeactivatedL();
-	if (iUiUtility->IsPenSupported())
-		{
-		// Fetch fullscreen thumbnails of the focused item with low priority
-		FetchFSThumbnailL();
-		}
 	}
 	
 // ---------------------------------------------------------------------------
@@ -468,14 +435,6 @@
 	iThumbnailContext = CGlxThumbnailContext::NewL( &iBlockyIterator ); // set the thumbnail context
 	iThumbnailContext->SetDefaultSpec( iGridIconSize.iWidth,iGridIconSize.iHeight );
 	iMediaList->AddContextL(iThumbnailContext, KGlxFetchContextPriorityNormal );
-
-	iDownloadsPlugin = EFalse;
-	CMPXCollectionPath* path = iMediaList->PathLC( NGlxListDefs::EPathParent );
-	if (path->Id() == KGlxCollectionPluginDownloadsImplementationUid)
-		{
-		iDownloadsPlugin = ETrue;
-		}
-	CleanupStack::PopAndDestroy(path);
 	}
     
 // ---------------------------------------------------------------------------
@@ -525,8 +484,6 @@
 			SetIconsL(index);
 			}
 			
-		SetDownloadLinksTimeL();
-
 		iHgGrid->SetSelectedIndex(focusIndex);
 		iHgGrid->RefreshScreen(focusIndex);
 		}
@@ -565,14 +522,6 @@
 		iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap));
 		GLX_LOG_INFO1("### CGlxGridViewContainer::SetIconsL speedTn-Index is %d",index);
 		}
-	else if (item.GetIconInfo(icon))
-		{
-		GLX_LOG_INFO1("CGlxGridViewContainer::SetIconsL - icon(%d)", index);
-		CFbsBitmap* bitmap = AknIconUtils::CreateIconL(icon.bmpfile, icon.bitmapId);
-		AknIconUtils::SetSize(bitmap, setSize);
-		iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap));
-		GLX_LOG_INFO1("### CGlxGridViewContainer::SetIconsL GetIconInfo-Index is %d",index);
-		}
 	else if ( KErrNone != tnError && KErrNotSupported != tnError && KErrCANoRights !=tnError)
 		{
 		GLX_LOG_INFO2("CGlxGridViewContainer::SetIconsL - image_corrupted tnError(%d), i(%d)",
@@ -660,76 +609,7 @@
 		}
 	}
    
-// ---------------------------------------------------------------------------
-// FetchFSThumbnailL
-// ---------------------------------------------------------------------------
-//
-void CGlxGridViewContainer::FetchFSThumbnailL()
-	{
-	TRACER("CGlxGridViewContainer::FetchFSThumbnailL()");
-	TSize dispSize = iUiUtility->DisplaySize();
-	iFsFromFocusOutwardIterator.SetRangeOffsets(0,0);
-
-	iFsThumbnailContext = CGlxThumbnailContext::NewL(&iFsFromFocusOutwardIterator);
-
-	if (dispSize.iHeight > dispSize.iWidth)
-		{
-		iFsThumbnailContext->SetDefaultSpec(dispSize.iHeight, dispSize.iWidth);
-		}
-	else
-		{
-		iFsThumbnailContext->SetDefaultSpec(dispSize.iWidth, dispSize.iHeight);
-		}
-	iMediaList->AddContextL(iFsThumbnailContext, KGlxFetchContextPriorityLow);
-	}
-
-// ---------------------------------------------------------------------------
-// SetDownloadLinksTimeL
-// ---------------------------------------------------------------------------
-//
-void CGlxGridViewContainer::SetDownloadLinksTimeL()
-	{
-	TRACER("CGlxGridViewContainer::SetDownloadLinksTimeL()");
-	// Sets up TLS, must be done before FeatureManager is used.
-	FeatureManager::InitializeLibL();
-	TInt mediaCount = iMediaList->Count();
-	if (FeatureManager::FeatureSupported(KFeatureIdSeamlessLinks))
-		{
-		if (iDownloadsPlugin && mediaCount > iHgGrid->ItemsOnScreen() )
-			{
-			TTime time(0);
-			if (iMediaList->Item(KMaxNoOfSeamlessLinks).GetDate(time))
-				{
-				if (iMediaList->Item(0).IsStatic())
-					{
-					iHgGrid->ItemL(0).SetTime(time); // Image Downloads link Icon
-					}
-				if (iMediaList->Item(1).IsStatic())
-					{
-					iHgGrid->ItemL(1).SetTime(time); // Video Downloads link Icon
-					}
-				}
-			}
-		}
-	// Frees the TLS. Must be done after FeatureManager is used.
-	FeatureManager::UnInitializeLib();
-	}
-    
-// ---------------------------------------------------------------------------
-// RemoveFSThumbnailContext
-// ---------------------------------------------------------------------------
-//
-void CGlxGridViewContainer::RemoveFSThumbnailContext()
-	{
-	TRACER("CGlxGridViewContainer::RemoveFSThumbnailContext()");
-	if (iMediaList)
-		{
-		iMediaList->RemoveContext(iFsThumbnailContext);
-		delete iFsThumbnailContext;
-		iFsThumbnailContext = NULL;
-		}
-	}
-    
+        
 // -----------------------------------------------------------------------------
 // MopSupplyObject
 // To handle Skin support
--- a/photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -49,7 +49,7 @@
 
 #include "glxgridviewmlobserver.h"
 
-const TInt KRecreateGridSize(100); //minimum no of items added to trigger recreate grid
+const TInt KRecreateGridSize(5); //minimum no of items added to trigger recreate grid
 // ======== MEMBER FUNCTIONS ========
 
 // ---------------------------------------------------------------------------
@@ -96,15 +96,6 @@
     iItemsPerPage = uiUtility->VisibleItemsInPageGranularityL();
     uiUtility->Close() ;
     
-   	iDownloadsPlugin = EFalse;
-   	
-    CMPXCollectionPath* path = iMediaList.PathLC( NGlxListDefs::EPathParent );
-    if (path->Id() == KGlxCollectionPluginDownloadsImplementationUid)
-    	{
-    	iDownloadsPlugin = ETrue;
-    	}
-    CleanupStack::PopAndDestroy(path);
-
     iQualityTnAttrib = TMPXAttribute (KGlxMediaIdThumbnail, 
         GlxFullThumbnailAttributeId( ETrue,  iGridIconSize.iWidth, 
                 iGridIconSize.iHeight ) );
@@ -140,28 +131,27 @@
     GLX_DEBUG3("CGlxGridViewMLObserver::HandleItemAddedL() aStartIndex(%d),"
             " aEndIndex(%d)", aStartIndex, aEndIndex);
 
-    if (iHgGrid)
+    if (!iHgGrid)
         {
-        if ((aEndIndex - aStartIndex) >= KRecreateGridSize)
+        return;
+        }
+
+    if ((aEndIndex - aStartIndex) > KRecreateGridSize)
+        {
+        iHgGrid->ResizeL(aList->Count());
+        }
+    else
+        {
+        for (TInt i = aStartIndex; i <= aEndIndex; i++)
             {
-            iHgGrid->ResizeL(aList->Count());
-            }
-        else
-            {
-            for (TInt i = aStartIndex; i<= aEndIndex; i++)
-                {
-                iHgGrid->InsertItem(CHgItem::NewL(), i);
-                }
+            iHgGrid->InsertItem(CHgItem::NewL(), i);
             }
         }
+
     // Setting the initial focus for all grid views except downloads,
     // for downloads it is already set.
-	TInt focusIndex = aList->FocusIndex();
+    TInt focusIndex = aList->FocusIndex();
     iHgGrid->SetSelectedIndex(focusIndex);
-    
-    // if the Medialist has any item, set the First index context to Hg Context Utility
-//    TGlxMedia item = aList->Item( focusIndex );
-//    iContextUtility->PublishPhotoContextL(item.Uri());
     }
 
 // ----------------------------------------------------------------------------
@@ -256,14 +246,6 @@
             GLX_LOG_INFO1("### CGlxGridViewMLObserver::HandleAttributesAvailableL"
                     " speedTn-Index is %d",aItemIndex);
             }
-        else if (item.GetIconInfo(icon))
-            {  
-            CFbsBitmap* bitmap = AknIconUtils::CreateIconL(icon.bmpfile, icon.bitmapId);
-            AknIconUtils::SetSize(bitmap, setSize );
-            iHgGrid->ItemL(aItemIndex).SetIcon(CGulIcon::NewL(bitmap));
-            GLX_LOG_INFO1("### CGlxGridViewMLObserver::HandleAttributesAvailableL "
-                    "GetIconInfo-Index is %d",aItemIndex);
-            }
         else if ( KErrNone != tnError && KErrNotSupported != tnError &&
                             KErrArgument != tnError )
             {
@@ -409,7 +391,6 @@
         CleanupStack::PopAndDestroy(emptyText);
         GLX_DEBUG2("GridMLObserver::HandlePopulatedL() iMediaList.Count()=%d",
                                                           iMediaList.Count());
-           
         
         if (iMediaList.Count() <= 0)
             {
@@ -475,6 +456,15 @@
                      " RefreshScreen - firstIndex(%d)", firstIndex);
             iHgGrid->RefreshScreen(firstIndex);
             }
+        else if (aItemIndex > firstIndex && aItemIndex <= lastOnScreen)
+            {
+            if ( HasRelevantThumbnail(lastOnScreen) )
+                {
+                GLX_DEBUG2("GridMLObserver::HandleAttributesAvailableL()"
+                        " RefreshScreen - aItemIndex(%d)", aItemIndex);					
+                iHgGrid->RefreshScreen(aItemIndex);
+                }
+            }
         }
     else if (aItemIndex > firstIndex && aItemIndex <= lastOnScreen)
         {
@@ -582,28 +572,6 @@
             {
             iHgGrid->ItemL(aItemIndex).SetTime(time);
             }
-        
-        // Sets up TLS, must be done before FeatureManager is used.
-        FeatureManager::InitializeLibL();
-
-        if (FeatureManager::FeatureSupported(KFeatureIdSeamlessLinks))
-            {
-            if (iDownloadsPlugin && mediaCount > iHgGrid->ItemsOnScreen()
-                    && aItemIndex == 2)
-                {
-                if (iMediaList.Item(0).IsStatic())
-                    {
-                    iHgGrid->ItemL(0).SetTime(time); // Image Downloads link Icon	
-                    }
-                if (iMediaList.Item(1).IsStatic())
-                    {
-                    iHgGrid->ItemL(1).SetTime(time); // Video Downloads link Icon
-                    }
-                }
-            }
-        
-        // Frees the TLS. Must be done after FeatureManager is used.
-        FeatureManager::UnInitializeLib(); 
         }
     
     if (aAttributes.Find(KMPXMediaGeneralCategory, match) != KErrNotFound)
--- a/photosgallery/viewframework/views/listview/inc/glxlistviewimp.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/listview/inc/glxlistviewimp.h	Mon Jan 18 20:19:20 2010 +0200
@@ -27,7 +27,6 @@
 #include "glxlistview.h"
 #include "glxpreviewthumbnailbinding.h"
 
-#include <glxthumbnailcontext.h>         // Fetch context to retrieve thumbnails
 #include <glxmedialistiterator.h>        // Interface for going through items in
 
 #include <ganes/HgScrollBufferObserverIface.h>
@@ -149,6 +148,7 @@
     	 
 protected:
     void Request(TInt aRequestStart, TInt aRequestEnd, THgScrollDirection aDirection);
+    void RequestL(TInt aRequestStart, TInt aRequestEnd);
     void Release(TInt aReleaseStart, TInt aReleaseEnd);
 
 protected:
@@ -190,9 +190,6 @@
     // Fetch context for retrieving subtitle
     CGlxDefaultAttributeContext* iSubtitleAttributeContext;
 	
-	// Thumbnail context
-	CGlxThumbnailContext* iThumbnailContext; //Own
-
 	// for thumbnail context
 	TGlxSequentialIterator iThumbnailIterator;
 
@@ -207,6 +204,8 @@
     
     TBool iPopulateListTNs;
 	
+    TBool iBackwardNavigation;
+
     TInt iStartIndex;
 
     TInt iLastFocusedIndex;
--- a/photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h	Mon Jan 18 20:19:20 2010 +0200
@@ -67,11 +67,6 @@
 	 */
 	~CGlxPreviewThumbnailBinding();
 	
-	/**
-	 * HasFirstThumbnail
-	 */
-	TBool HasFirstThumbnail( const RArray< TMPXAttribute >& aAttributes );
-	
 private:
 
 	 /**
@@ -85,8 +80,10 @@
 	void ConstructL();
 
 public:	
-      void HandleItemChangedL(const CMPXCollectionPath& aPath, TBool aPopulateListTNs);
+      void HandleItemChangedL(const CMPXCollectionPath& aPath,
+              TBool aPopulateListTNs, TBool aBackwardNavigation);
       void StartTimer(TBool aPopulateListTNs);
+      void StopTimer();
       
       // From MGlxMediaListObserver
       void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
@@ -102,6 +99,7 @@
           MGlxMediaList* aList );
       void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
       void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
+      void HandlePopulatedL( MGlxMediaList* aList );
      
 private:
 	/**
@@ -123,8 +121,8 @@
 	//Medialist that holds the thumbnail information
 	MGlxMediaList* iMediaList;
 	
-	// Thumbnail context
-	CGlxThumbnailContext* iThumbnailContext;
+	// Thumbnail Attrib context
+    CGlxAttributeContext* iThumbnailContext;	
 	
 	// for thumbnail context
 	TGlxSequentialIterator iThumbnailIterator;
@@ -149,6 +147,10 @@
     TInt iTrialCount;
     
     TInt iTrial;
+        
+    TBool iBackwardNavigation;
+    
+    CMPXFilter* iPreviewFilter;
 };
     
 
--- a/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -42,8 +42,12 @@
 #include <aknViewAppUi.h>
 #include <StringLoader.h>					//StringLoader		
 #include <glxsetappstate.h>
+#include <glxthumbnailattributeinfo.h>
 
-const TInt KListDataWindowSize(10);
+const TInt KListDataWindowSize(25);
+const TInt KNoOfPages(2);
+const TInt KBufferTresholdSize(6);
+const TInt KRecreateListSize(5);
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -112,6 +116,8 @@
     
     //Register the view to recieve toolbar events. ViewBase handles the events    
     SetToolbarObserver(this);
+    
+    iBackwardNavigation = EFalse;
     }
 
 // ---------------------------------------------------------------------------
@@ -198,6 +204,11 @@
     iBgContext = CAknsBasicBackgroundControlContext::NewL( 
             KAknsIIDQsnBgScreen,apRect,ETrue);
     
+    if(iUiUtility->ViewNavigationDirection() == EGlxNavigationBackwards )
+        {
+        iBackwardNavigation = ETrue;
+        }
+
     iPreviewTNBinding = CGlxPreviewThumbnailBinding::NewL(*this);
     CreateListL();
     if (iPreviewTNBinding)
@@ -205,7 +216,8 @@
         iPopulateListTNs  = ETrue;
         CMPXCollectionPath* path = iMediaList->PathLC( 
                 NGlxListDefs::EPathFocusOrSelection );
-        iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs);
+        iPreviewTNBinding->HandleItemChangedL(*path, 
+                iPopulateListTNs, iBackwardNavigation);
         CleanupStack::PopAndDestroy( path );        
         }
 
@@ -328,12 +340,65 @@
     return CAknView::MopSupplyObject(aId);
 	}
 
-void CGlxListViewImp::Request(TInt /*aRequestStart*/, TInt /*aRequestEnd*/, 
+void CGlxListViewImp::Request(TInt aRequestStart, TInt aRequestEnd, 
         THgScrollDirection /*aDirection*/)
     {
     TRACER("CGlxListViewImp::Request");
+    //Doing this to avoid codescanner warning.
+    TRAP_IGNORE(RequestL(aRequestStart, aRequestEnd));    
     }
 
+// ---------------------------------------------------------------------------
+// RequestL
+// ---------------------------------------------------------------------------
+//
+void CGlxListViewImp::RequestL(TInt aRequestStart, TInt aRequestEnd)
+    {
+    TRACER("CGlxListViewImp::RequestL()");
+    TInt mediaCount = iMediaList->Count();
+    GLX_LOG_INFO1("CGlxListViewImp::RequestL - mediaCount(%d)", mediaCount);
+    if(mediaCount<=0)
+        {
+        return;
+        }
+    
+    TInt visIndex = iList->FirstIndexOnScreen();
+    aRequestStart = (aRequestStart < 0 ? 0 : aRequestStart) ;
+    aRequestEnd = (aRequestEnd >= mediaCount ? (mediaCount-1) : aRequestEnd);
+    GLX_LOG_INFO3("CGlxListViewImp::RequestL - aRequestStart(%d), "
+       "aRequestEnd(%d), visIndex(%d)", aRequestStart, aRequestEnd, visIndex);
+
+    if (visIndex >= mediaCount )
+        {
+        visIndex = mediaCount-1;
+        }
+    if (visIndex < 0 || mediaCount <= 0)
+        {
+        visIndex = 0;
+        }
+
+    for (TInt i=aRequestStart; i<= aRequestEnd; i++)
+        {
+        const TGlxMedia& item = iMediaList->Item(i);
+        iList->ItemL(i).SetTitleL(item.Title());
+        iList->ItemL(i).SetTextL(item.SubTitle());
+        }
+    
+    iList->RefreshScreen(visIndex);
+    
+    if ( visIndex != iLastFocusedIndex && !iPopulateListTNs)
+        {
+        GLX_LOG_INFO1("CGlxListViewImp::RequestL - SetFocusL()"
+                " iPopulateListTNs(%d)", iPopulateListTNs);      
+        GLX_LOG_INFO1("CGlxListViewImp::RequestL - SetFocusL()"
+                " visIndex(%d)", visIndex);
+        iPopulateListTNs = ETrue;
+        iStartIndex = KErrNotFound;
+        iMediaList->SetFocusL(NGlxListDefs::EAbsolute, visIndex);
+        }
+    }
+
+
 void CGlxListViewImp::Release(TInt /*aBufferStart*/, TInt /*aBufferEnd*/)
     {
     TRACER("CGlxListViewImp::Release");
@@ -371,7 +436,9 @@
         /*aMask*/, TInt /*aIndex*/)
     {
     TRACER("CGlxListViewImp::PreviewTNReadyL");
-    
+
+    iPreviewTNBinding->StopTimer();
+
 	TInt focusIndex = iMediaList->FocusIndex();
     TInt mediaCount = iMediaList->Count();
     
@@ -448,7 +515,11 @@
                  */
                 if(count==1)
                     {                        
-                    iPreviewTNBinding->StartTimer( iPopulateListTNs );
+                    CMPXCollectionPath* path = iMediaList->PathLC( 
+                            NGlxListDefs::EPathFocusOrSelection );
+                    iPreviewTNBinding->HandleItemChangedL(*path, 
+                            iPopulateListTNs, iBackwardNavigation);
+                    CleanupStack::PopAndDestroy( path );
                     }
                 }
 			}
@@ -486,14 +557,18 @@
 	    
 		iList->SetSelectionObserver(*this);
 		
+	    // Enable Buffer support
+		iList->EnableScrollBufferL(*this, (KNoOfPages * KBufferTresholdSize),
+	            KBufferTresholdSize);
+		
         if (iUiUtility->ViewNavigationDirection() == EGlxNavigationBackwards)
             {
             GLX_DEBUG1("CGlxListViewImp::CreateListL() - SetEmptyTextL()");			
             //set the text to be shown if the list is empty.
             HBufC* emptyText = StringLoader::LoadLC(R_LIST_EMPTY_VIEW_TEXT); 
             iList->SetEmptyTextL(*emptyText);
-            CleanupStack::PopAndDestroy(emptyText);
-            iLastFocusedIndex = iMediaList->FocusIndex();
+            CleanupStack::PopAndDestroy(emptyText);            
+            iLastFocusedIndex = iList->FirstIndexOnScreen();            
             }		
         
 		//Fix for ESLM-7SAHPT::Clear Flag to Disable QWERTY search input in list view
@@ -522,30 +597,36 @@
 // ----------------------------------------------------------------------------
 // 
 void CGlxListViewImp::HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, 
-     MGlxMediaList* /*aList*/ )
-	{
-	TRACER("CGlxListViewImp::HandleItemAddedL");
-	
-	if (iList)
-		{
-		for (TInt i = aStartIndex; i<= aEndIndex; i++)
-			{
-		   	const TGlxMedia& item = iMediaList->Item(i);
-			iList->InsertItem(CHgItem::NewL(CHgItem::EHgItemFlagsNone,
-			        NULL, item.Title(), item.SubTitle()), i);
-			}
-		
-		if(aStartIndex == aEndIndex )
-		    {
-			iLastFocusedIndex = aStartIndex;
-	        iPopulateListTNs = EFalse;
-	        iMediaList->SetFocusL(NGlxListDefs::EAbsolute, iLastFocusedIndex);			
-		    }
+     MGlxMediaList* aList )
+    {
+    TRACER("CGlxListViewImp::HandleItemAddedL");
+    if (iList)
+        {
+        if ((aEndIndex - aStartIndex) >= KRecreateListSize)
+            {
+            iList->ResizeL(aList->Count());
+            }
+        else
+            {
+            for (TInt i = aStartIndex; i<= aEndIndex; i++)
+                {
+                const TGlxMedia& item = iMediaList->Item(i);
+                iList->InsertItem(CHgItem::NewL(CHgItem::EHgItemFlagsNone,
+                        NULL, item.Title(), item.SubTitle()), i);
+                }
 
-		iList->SetSelectedIndex(iLastFocusedIndex);	
-		iList->RefreshScreen(iLastFocusedIndex);
-		}
-	}
+            if(aStartIndex == aEndIndex )
+                {
+                iLastFocusedIndex = aStartIndex;
+                iPopulateListTNs = EFalse;
+                iMediaList->SetFocusL(NGlxListDefs::EAbsolute, iLastFocusedIndex);			
+                }
+
+            iList->SetSelectedIndex(iLastFocusedIndex);	
+            iList->RefreshScreen(iLastFocusedIndex);
+            }
+        }
+    }
 
 // ----------------------------------------------------------------------------
 // HandleItemRemoved
@@ -605,7 +686,8 @@
 			iStartIndex = KErrNotFound;
 			CMPXCollectionPath* path = iMediaList->PathLC( 
 					NGlxListDefs::EPathFocusOrSelection );
-			iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs);
+	        iPreviewTNBinding->HandleItemChangedL(*path, 
+	                iPopulateListTNs, iBackwardNavigation);
 			CleanupStack::PopAndDestroy( path ); 		
 			}
     	}
@@ -625,7 +707,8 @@
 		{
 		CMPXCollectionPath* path = iMediaList->PathLC( 
 		        NGlxListDefs::EPathFocusOrSelection );
-		iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs);
+        iPreviewTNBinding->HandleItemChangedL(*path, 
+                iPopulateListTNs, iBackwardNavigation);
 		CleanupStack::PopAndDestroy( path );		
 		}
 	}
--- a/photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -31,9 +31,9 @@
 
 const TInt KInitialThumbnailsTimeDelay(100000);
 const TInt KWaitCount(5);
-const TInt KThumbnailStartTimeDelay(2000000);
-const TInt KThumbnailIntervalTimeDelay(2000000);
-const TInt KPreviewThumbnailFetchCount(18);
+const TInt KThumbnailStartTimeDelay(250000);
+const TInt KThumbnailIntervalTimeDelay(50000);
+const TInt KPreviewThumbnailFetchCount(1);
 
 // ----------------------------------------------------------------------------
 // NewL
@@ -83,9 +83,19 @@
     CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
     iGridIconSize = uiUtility->GetGridIconSize();
     uiUtility->Close() ;
+    
+    // Filter that filters out any GIF, corrupted images     
+    iPreviewFilter = TGlxFilterFactory::CreatePreviewFilterL();    
+    iThumbnailIterator.SetRange(KPreviewThumbnailFetchCount);
+    iThumbnailContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
+    TMPXAttribute tnAttr( KGlxMediaIdThumbnail,
+                        GlxFullThumbnailAttributeId(ETrue,
+                            iGridIconSize.iWidth,iGridIconSize.iHeight) );
+    iThumbnailContext->SetDefaultSpec(iGridIconSize.iWidth,
+                                                iGridIconSize.iHeight);
+    iThumbnailContext->AddAttributeL(tnAttr);
     }
 
-
 // ----------------------------------------------------------------------------
 // Destructor
 // ----------------------------------------------------------------------------
@@ -98,11 +108,11 @@
 		{
         iMediaList->RemoveMediaListObserver( this );
         iMediaList->RemoveContext(iThumbnailContext);
-        delete iThumbnailContext;
         iMediaList->Close();
         iMediaList = NULL;
 		}
-		
+    delete iThumbnailContext;
+    delete iPreviewFilter;
 	// cancel any outstanding request of the timer
 	if(iTimer->IsActive())
 	    {
@@ -139,13 +149,6 @@
                 CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
                 bitmap->Duplicate( value->iBitmap->Handle());
                 iObserver.PreviewTNReadyL(bitmap, NULL,iProgressIndex);
-                iProgressIndex++;
-                if (iProgressIndex >= KPreviewThumbnailFetchCount || 
-                    iProgressIndex >= iPreviewItemCount.Count() ||
-                    iProgressIndex >= iMediaList->Count())
-                    {
-                    iProgressIndex = 0;
-                    }
                 }
     	    }
        	}
@@ -177,12 +180,6 @@
 			CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
 			bitmap->Duplicate( value->iBitmap->Handle());
 			iObserver.PreviewTNReadyL(bitmap, NULL,iProgressIndex);
-			iProgressIndex++;
-			if (iProgressIndex >= KPreviewThumbnailFetchCount || 
-				iProgressIndex >= iMediaList->Count())
-				{
-				iProgressIndex = 0;
-				}
 			}
 		else
 			{
@@ -223,11 +220,12 @@
 // ----------------------------------------------------------------------------
 //    
 void CGlxPreviewThumbnailBinding::HandleItemChangedL(const CMPXCollectionPath& aPath,
-        TBool aPopulateListTNs )
+        TBool aPopulateListTNs, TBool aBackwardNavigation)
     {
     TRACER("CGlxPreviewThumbnailBinding::HandleItemChangedL");
     iTimerTicked = EFalse;
     iPopulateListTNs = aPopulateListTNs;
+    iBackwardNavigation = aBackwardNavigation;
     iProgressIndex = KErrNone;
 
     // remove and close old medialist   
@@ -238,29 +236,14 @@
 	    iTrialCount = 0;
 	    iMediaList->RemoveMediaListObserver( this );
         iMediaList->RemoveContext(iThumbnailContext);
-        delete iThumbnailContext;
-        iThumbnailContext = NULL;
         iMediaList->Close();
         iMediaList = NULL;
 	    }
 	    
-	// Filter that filters out any GIF, corrupted images    
-    CMPXFilter* filter = NULL;
-    filter = TGlxFilterFactory::CreatePreviewFilterL(); 
-    CleanupStack::PushL( filter );
-    // create new medialist with the required filter which filters out all DRM, GIFS and corrupt 
-    // thumbnial
-	iMediaList = MGlxMediaList::InstanceL( aPath ,KGlxIdNone, filter);
-	iThumbnailContext = CGlxThumbnailContext::NewL( &iThumbnailIterator ); // set the thumbnail context
-	iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); // request for fifiteen thumbnails
-	iThumbnailContext->SetDefaultSpec( iGridIconSize.iWidth,iGridIconSize.iHeight );
-	iMediaList->AddContextL(iThumbnailContext ,KGlxFetchContextPriorityNormal );
+    iMediaList = MGlxMediaList::InstanceL(aPath, KGlxIdNone, iPreviewFilter);
+    iMediaList->AddContextL(iThumbnailContext, KGlxFetchContextPriorityNormal);
 	// adding the medialist to observ any changes or updates done
 	iMediaList->AddMediaListObserverL(this);
-	CleanupStack::PopAndDestroy( filter );
-	
-	//Start the timer
-	StartTimer(iPopulateListTNs);
     }
 
 // ----------------------------------------------------------------------------
@@ -282,32 +265,34 @@
         
     if (iPopulateListTNs)
         {
-        iTimer->Start(KInitialThumbnailsTimeDelay, KInitialThumbnailsTimeDelay, 
-            TCallBack(IsTimeL,this));   
+        if (iBackwardNavigation)
+            {
+            iTimer->Start(KThumbnailIntervalTimeDelay, KThumbnailIntervalTimeDelay/KWaitCount,
+                    TCallBack(IsTimeL,this));
+            }
+        else
+            {
+            iTimer->Start(KThumbnailStartTimeDelay, 
+                    KInitialThumbnailsTimeDelay, TCallBack(IsTimeL,this));
+            }
         }
-    else
+     }
+
+// ----------------------------------------------------------------------------
+// StopTimer - Stop the timer
+// ----------------------------------------------------------------------------
+//    
+void CGlxPreviewThumbnailBinding::StopTimer()
+    {
+    TRACER("CGlxPreviewThumbnailBinding::StopTimer");
+        
+    if (iTimer && iTimer->IsActive())
         {
-        iTimer->Start(KThumbnailStartTimeDelay, KThumbnailIntervalTimeDelay,
-            TCallBack(IsTimeL,this));               
+        iTimer->Cancel();
         }
     }
 
 // ----------------------------------------------------------------------------
-// HasFirstThumbnail
-// ----------------------------------------------------------------------------
-// 
- TBool CGlxPreviewThumbnailBinding::HasFirstThumbnail( const RArray< TMPXAttribute >& aAttributes )
-     {
-     TRACER("CGlxPreviewThumbnailBinding::HasFirstThumbnail");
-     TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-                                          GlxFullThumbnailAttributeId( ETrue, 
-                                               iGridIconSize.iWidth,
-                                                   iGridIconSize.iHeight) );
-                                                          
-     TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
-     return ( KErrNotFound != aAttributes.Find( thumbnailAttribute, match ) );    
-     }
-// ----------------------------------------------------------------------------
 // HandleItemAddedL
 // ----------------------------------------------------------------------------
 // 
@@ -428,3 +413,15 @@
     {
     
     }
+
+// ----------------------------------------------------------------------------
+// HandlePopulatedL
+// ----------------------------------------------------------------------------
+//
+void CGlxPreviewThumbnailBinding::HandlePopulatedL( MGlxMediaList* /*aList*/ )
+    {
+    TRACER("CGlxPreviewThumbnailBinding::HandlePopulatedL()");
+    //Start the timer
+    StartTimer(iPopulateListTNs);
+    }
+
--- a/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatadialog.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatadialog.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -47,9 +47,6 @@
 #include <glxpanic.h>                    // For Panics
 #include "glxmetadatacommandhandler.h"
 
-#define GetAppUi() (dynamic_cast<CAknAppUi*>(iEikonEnv->EikAppUi()))
-
-
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -110,7 +107,7 @@
             {
             delete text;
             }
-        GetAppUi()->StatusPane()->MakeVisible(ETrue);             
+        iAvkonAppUi->StatusPane()->MakeVisible(ETrue);             
         }
 
     iUiUtility = CGlxUiUtility::UtilityL(); 
@@ -131,13 +128,12 @@
 
 
     //To Disable the status pane if the dialog is launched from fullscreenview  
-    if(!iStatusPaneAvailable)
+    if (!iStatusPaneAvailable && iAvkonAppUi)
         {
-        GetAppUi()->StatusPane()->MakeVisible(EFalse);
+        iAvkonAppUi->StatusPane()->MakeVisible(EFalse);
         }       
 
     TRAP_IGNORE(SetPreviousTitleL());
-
     delete iPreviousTitle;
 
     // Restore the Toolbar as it was in the Calling application
@@ -145,7 +141,10 @@
 
     // If details launched from FullScreen View, while moving back,
     // all the UI components should be hidden. Hence processing this command here.
-    TRAP_IGNORE(GetAppUi()->ProcessCommandL(EGlxCmdResetView));
+    if (iAvkonAppUi)
+        {
+        TRAP_IGNORE(iAvkonAppUi->ProcessCommandL(EGlxCmdResetView));
+        }
 
     if( iUiUtility )
         {
@@ -164,11 +163,9 @@
 void CGlxImgVwrMetadataDialog::SetDetailsDlgToolbarVisibility(TBool aVisible)
     {
     TRACER("CGlxImgVwrMetadataDialog::SetDetailsDlgToolbarVisibility");
-    CAknAppUi* appUi = GetAppUi();
-    __ASSERT_DEBUG(appUi, Panic(EGlxPanicNullPointer));
 
     HandleToolbarResetting(aVisible);
-    CAknToolbar* currentPopupToolbar = appUi->CurrentPopupToolbar();
+    CAknToolbar* currentPopupToolbar = iAvkonAppUi->CurrentPopupToolbar();
     if(currentPopupToolbar)
         {
         currentPopupToolbar->SetToolbarVisibility(aVisible);
@@ -235,7 +232,7 @@
     controlInfo.iFlags          = 0;
     if (aControlType == EMetaDataDialogListBox)
         {
-        iContainer = CGlxImgVwrMetadataContainer::NewL(GetAppUi()->ClientRect(),iUri);        
+        iContainer = CGlxImgVwrMetadataContainer::NewL(iAvkonAppUi->ClientRect(),iUri);        
         controlInfo.iControl = iContainer; // giving ownership   
         }
     return controlInfo; // returns ownership of ItemList
@@ -245,9 +242,10 @@
 // CGlxImgVwrMetadataDialog::DynInitMenuPaneL
 // -----------------------------------------------------------------------------
 //
-void CGlxImgVwrMetadataDialog::DynInitMenuPaneL( TInt aMenuId, CEikMenuPane* aMenuPane )
+void CGlxImgVwrMetadataDialog::DynInitMenuPaneL(TInt /*aMenuId*/,
+        CEikMenuPane* /*aMenuPane*/)
     {
-		//no implementation
+    //no implementation
     }
 
 //-----------------------------------------------------------------------------
@@ -389,10 +387,8 @@
 void CGlxImgVwrMetadataDialog::HandleToolbarResetting(TBool aVisible)
     {
     TRACER("CGlxImgVwrMetadataDialog::HandleToolbarResetting");
-    CAknAppUi* appUi = GetAppUi();
-    __ASSERT_DEBUG(appUi, Panic(EGlxPanicNullPointer));
 
-    CAknToolbar* popupToolbar = appUi->PopupToolbar();
+    CAknToolbar* popupToolbar = iAvkonAppUi->PopupToolbar();
     if(popupToolbar)
         {
         popupToolbar->SetToolbarVisibility( !aVisible ); 
@@ -402,7 +398,7 @@
             popupToolbar->DrawNow();    
             }
         }   
-    CAknToolbar* toolbar = appUi->CurrentFixedToolbar();
+    CAknToolbar* toolbar = iAvkonAppUi->CurrentFixedToolbar();
     if(toolbar)
         {
         toolbar->HideItemsAndDrawOnlyBackground(!aVisible);
--- a/photosgallery/viewframework/views/metadatadialog/src/glxmetadatadialog.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/metadatadialog/src/glxmetadatadialog.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -46,9 +46,6 @@
 #include <glxpanic.h>                    // For Panics
 #include "glxmetadatacommandhandler.h"
 
-#define GetAppUi() (dynamic_cast<CAknAppUi*>(iEikonEnv->EikAppUi()))
-
-
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -107,7 +104,7 @@
 		    {
 		    delete text;
 		    }
-		GetAppUi()->StatusPane()->MakeVisible(ETrue);			  
+		iAvkonAppUi->StatusPane()->MakeVisible(ETrue);			  
 		}
 		
 	iUiUtility = CGlxUiUtility::UtilityL();	
@@ -128,46 +125,48 @@
 //
 CGlxMetadataDialog::~CGlxMetadataDialog()
 	{
-		
-	TRACER("CGlxMetadataDialog::~CGlxMetadataDialog");
-		
-	//To Disable the status pane if the dialog is launched from fullscreenview	
-	if(!iStatusPaneAvailable)
-	    {
-	    GetAppUi()->StatusPane()->MakeVisible(EFalse);
-	    }	    
-	
-	TRAP_IGNORE(SetPreviousTitleL());
-		
-	delete iPreviousTitle;
-	delete iMetadataCmdHandler;	
+    TRACER("CGlxMetadataDialog::~CGlxMetadataDialog");
+
+    //To Disable the status pane if the dialog is launched from fullscreenview	
+    if (!iStatusPaneAvailable && iAvkonAppUi)
+        {
+        iAvkonAppUi->StatusPane()->MakeVisible(EFalse);
+        }
+
+    TRAP_IGNORE(SetPreviousTitleL());
+
+    delete iPreviousTitle;
+    delete iMetadataCmdHandler;
 
     // Restore the Toolbar as it was in the Calling application
     SetDetailsDlgToolbarVisibility(ETrue);
-	
-	// If details launched from FullScreen View, while moving back,
-	// all the UI components should be hidden. Hence processing this command here.
-	TRAP_IGNORE(GetAppUi()->ProcessCommandL(EGlxCmdResetView));
-	
-  if(iAddToTag)
-	   {
-      delete iAddToTag;
-      }
-      
-  if(iAddToAlbum)
-      {
-      delete iAddToAlbum;
-      }
-       
-	if( iUiUtility )
-		{
-		iUiUtility->Close();
-		}
-		
-	if (iResourceOffset)
-		{
-		CCoeEnv::Static()->DeleteResourceFile(iResourceOffset);
-        }   
+
+    // If details launched from FullScreen View, while moving back,
+    // all the UI components should be hidden. Hence processing this command here.
+    if (iAvkonAppUi)
+        {
+        TRAP_IGNORE(iAvkonAppUi->ProcessCommandL(EGlxCmdResetView));
+        }
+
+    if (iAddToTag)
+        {
+        delete iAddToTag;
+        }
+
+    if (iAddToAlbum)
+        {
+        delete iAddToAlbum;
+        }
+
+    if (iUiUtility)
+        {
+        iUiUtility->Close();
+        }
+
+    if (iResourceOffset)
+        {
+        CCoeEnv::Static()->DeleteResourceFile(iResourceOffset);
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -176,12 +175,9 @@
 void CGlxMetadataDialog::SetDetailsDlgToolbarVisibility(TBool aVisible)
     {
     TRACER("CGlxMetadataDialog::SetDetailsDlgToolbarVisibility");
-    CAknAppUi* appUi = GetAppUi();
-    __ASSERT_DEBUG(appUi, Panic(EGlxPanicNullPointer));
-
   
     HandleToolbarResetting(aVisible);
-    CAknToolbar* currentPopupToolbar = appUi->CurrentPopupToolbar();
+    CAknToolbar* currentPopupToolbar = iAvkonAppUi->CurrentPopupToolbar();
     if(currentPopupToolbar)
         {
         currentPopupToolbar->SetToolbarVisibility(aVisible);
@@ -284,7 +280,7 @@
     controlInfo.iFlags          = 0;
     if (aControlType == EMetaDataDialogListBox)
         {
-        iContainer = CGlxMetadataContainer::NewL(GetAppUi()->ClientRect(),
+        iContainer = CGlxMetadataContainer::NewL(iAvkonAppUi->ClientRect(),
 		                                         *this, iUri, *this);        
         controlInfo.iControl = iContainer; // giving ownership   
         }
@@ -565,10 +561,8 @@
 void CGlxMetadataDialog::HandleToolbarResetting(TBool aVisible)
     {
     TRACER("CGlxMetadataDialog::HandleToolbarResetting");
-    CAknAppUi* appUi = GetAppUi();
-    __ASSERT_DEBUG(appUi, Panic(EGlxPanicNullPointer));
 
-    CAknToolbar* popupToolbar = appUi->PopupToolbar();
+    CAknToolbar* popupToolbar = iAvkonAppUi->PopupToolbar();
     if(popupToolbar)
         {
         popupToolbar->SetToolbarVisibility( !aVisible ); 
@@ -578,7 +572,7 @@
         	popupToolbar->DrawNow();    
         	}
         }   
-    CAknToolbar* toolbar = appUi->CurrentFixedToolbar();
+    CAknToolbar* toolbar = iAvkonAppUi->CurrentFixedToolbar();
     if(toolbar)
         {
         toolbar->HideItemsAndDrawOnlyBackground(!aVisible);
--- a/photosgallery/viewframework/views/viewbase/src/glxmedialistviewbase.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/viewbase/src/glxmedialistviewbase.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -162,6 +162,7 @@
         iMediaList = &iMediaListFactory->CreateMediaListL(*iCollectionUtility);
     	iMediaList->AddContextL(iPreloadContextForCommandHandlers, 0);
         }
+    __ASSERT_ALWAYS(iMediaList, Panic(EGlxPanicNullMediaList));
 
     if(iFixedTitle)
         {
@@ -181,7 +182,7 @@
    
     //Allow the MskController to observe medialist everytime a view with a valid
     //medialist becomes active
-    if( iCbaControl && iMediaList && Cba()&& iEnableMidddleSoftkey )
+    if( iCbaControl && Cba()&& iEnableMidddleSoftkey )
         {
         CMPXCollectionPath* navigationalState = iCollectionUtility->Collection().PathL();
         CleanupStack::PushL(navigationalState);
@@ -215,21 +216,25 @@
 EXPORT_C void CGlxMediaListViewBase::DoViewDeactivate()
     {
     DoMLViewDeactivate();
-    if( iCbaControl && iMediaList && Cba() )
-        {
-        //Remove Mskcontroller from medialist observer
-        iCbaControl->RemoveFromObserver(*iMediaList);
-        }
-    if( Toolbar() && iToolbarControl )
+
+    if( iMediaList )
         {
-        //Remove Toolbarcontroller from medialist observer
-        iToolbarControl->RemoveFromObserver(*iMediaList);
-        }    
-    
-    // Only close the medialist if navigating backwards
-    if ( iUiUtility->ViewNavigationDirection() == EGlxNavigationBackwards )
-        {
-        CloseMediaList();
+        if (iCbaControl && Cba())
+            {
+            //Remove Mskcontroller from medialist observer
+            iCbaControl->RemoveFromObserver(*iMediaList);
+            }
+        if (Toolbar() && iToolbarControl)
+            {
+            //Remove Toolbarcontroller from medialist observer
+            iToolbarControl->RemoveFromObserver(*iMediaList);
+            }
+
+        // Only close the medialist if navigating backwards
+        if (iUiUtility->ViewNavigationDirection() == EGlxNavigationBackwards)
+            {
+            CloseMediaList();
+            }
         }
 
     delete iTitleFetcher;
--- a/photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -230,6 +230,10 @@
         iTimer->Cancel();
         }
     delete iTimer;
+    if(iGlxTvOut)
+        {
+        delete iGlxTvOut;
+        }
     if(iEventHandler)
         {
         delete iEventHandler;