photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp
branchRCL_3
changeset 17 a60acebbbd9d
parent 15 191387a8b767
child 21 f9e827349359
--- a/photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp	Tue Apr 27 16:37:53 2010 +0300
+++ b/photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp	Tue May 11 16:13:40 2010 +0300
@@ -30,6 +30,7 @@
 #include <mpxcollectionpath.h>
 #include <glxcollectionpluginimageviewer.hrh>
 #include <centralrepository.h>              // for checking the ShareOnline version
+#include <glxuiutility.h>
 
 // CONSTANTS AND DEFINITIONS
 namespace
@@ -292,30 +293,37 @@
 	{
     TRACER("CGlxToolbarController::SetStatusL");
 
-    GLX_LOG_INFO1("CGlxToolbarController::SetStatusL(%d)", aList->Count());
-    if (aList->Count() <= 0)
-        {
-        SetToolbarItemsDimmed(ETrue);
-        }
-    else if (KErrNotFound != aList->FocusIndex())
-        {
-        CGlxNavigationalState* navigationalState =
-                CGlxNavigationalState::InstanceL();
-        CleanupClosePushL(*navigationalState);
-        if (navigationalState->ViewingMode() == NGlxNavigationalState::EView)
-            {
-            SetToolbarItemsDimmed(EFalse);
-            }
-        else if (navigationalState->ViewingMode()
-                == NGlxNavigationalState::EBrowse)
-            {
-            TBool dimmed = aList->SelectionCount() ? EFalse : ETrue;
-            iToolbar->SetItemDimmed(EGlxCmdSend, dimmed, ETrue);
-            iToolbar->SetItemDimmed(EGlxCmdUpload, dimmed, ETrue);
-            }
-        CleanupStack::PopAndDestroy(navigationalState);
-        }
-    }
+	GLX_LOG_INFO1("CGlxToolbarController::SetStatusL(%d)", aList->Count());
+    // When going back from fullscreen to grid, when the attributes are already 
+    // available in the cache, there is no HandleAttributeAvailable callback. Hence,
+    // checking for medialist count and backward navigation
+	CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
+	CleanupClosePushL(*uiUtility);
+	if (aList->Count() <= 0 && (uiUtility->ViewNavigationDirection()
+			== EGlxNavigationBackwards))
+		{
+		SetToolbarItemsDimmed(ETrue);
+		}
+	else if (KErrNotFound != aList->FocusIndex())
+		{
+		CGlxNavigationalState* navigationalState =
+				CGlxNavigationalState::InstanceL();
+		CleanupClosePushL(*navigationalState);
+		if (navigationalState->ViewingMode() == NGlxNavigationalState::EView)
+			{
+			SetToolbarItemsDimmed(EFalse);
+			}
+		else if (navigationalState->ViewingMode()
+				== NGlxNavigationalState::EBrowse)
+			{
+			TBool dimmed = aList->SelectionCount() ? EFalse : ETrue;
+			iToolbar->SetItemDimmed(EGlxCmdSend, dimmed, ETrue);
+			iToolbar->SetItemDimmed(EGlxCmdUpload, dimmed, ETrue);
+			}
+		CleanupStack::PopAndDestroy(navigationalState);
+		}
+	CleanupStack::PopAndDestroy(uiUtility);
+	}
 
 //----------------------------------------------------------------------------
 // EnableLatch
@@ -350,6 +358,12 @@
         {
         SetToolbarItemsDimmed(ETrue);
         }
+    if (!iToolbar->IsVisible())
+        {
+        GLX_DEBUG1("CGlxToolbarController::HandlePopulatedL()"
+                " - SetToolbarVisibility(ETrue)");       
+        iToolbar->SetToolbarVisibility(ETrue);
+        } 
     }
 
 // ----------------------------------------------------------------------------