diff -r 191387a8b767 -r a60acebbbd9d photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp --- a/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp Tue Apr 27 16:37:53 2010 +0300 +++ b/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp Tue May 11 16:13:40 2010 +0300 @@ -31,6 +31,8 @@ #include #include #include // for CGlxResourceUtilities +#include +#include #include #include @@ -171,18 +173,29 @@ case EAknCmdOpen: case EKeyEnter: { - // Processing of this Command depends on Medialist Count ( > 0 tags Available) - if(iMediaList->Count()) - { - // There can be no selection in cloud view, so assume that path contains focused item - iUiUtility->SetViewNavigationDirection(EGlxNavigationForwards); - CMPXCollectionPath* path = iMediaList->PathLC( NGlxListDefs::EPathFocusOrSelection ); - iCollectionUtility->Collection().OpenL (*path); - CleanupStack::PopAndDestroy (path); - consumed= ETrue; - } - break; - } + // Processing of this Command depends on Medialist Count ( > 0 tags Available) + if (iMediaList->Count()) + { + // There can be no selection in cloud view, so assume that path contains focused item + iUiUtility->SetViewNavigationDirection(EGlxNavigationForwards); + CMPXCollectionPath* path = iMediaList->PathLC( + NGlxListDefs::EPathFocusOrSelection); + // When a collection is opened for browsing, + // there are two queries executed with similar filter. + // First query to open the collection from list / cloud view. + // Second one from grid view construction. To improve the grid opening + // performance, the first query will be completed with empty Id list. + RArray attributeArray; + CleanupClosePushL(attributeArray); + attributeArray.AppendL(KGlxFilterGeneralNavigationalStateOnly); + iCollectionUtility->Collection().OpenL(*path, + attributeArray.Array()); + CleanupStack::PopAndDestroy(&attributeArray); + CleanupStack::PopAndDestroy(path); + consumed = ETrue; + } + break; + } } return consumed;