--- a/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp Wed Mar 31 21:31:03 2010 +0300
+++ b/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp Wed Apr 14 15:57:24 2010 +0300
@@ -164,27 +164,9 @@
//Register the view to recieve toolbar events. ViewBase handles the events
SetToolbarObserver(this);
iImgViewerMode = EFalse;
- // Presently image viewer dont have toolbar
- // So need to remove if image viewer using full screen
- CGlxNavigationalState* navigationalState = CGlxNavigationalState::InstanceL();
- CleanupClosePushL( *navigationalState );
- CMPXCollectionPath* naviState = navigationalState->StateLC();
- if (naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid))
- {
- CAknToolbar* toolbar = Toolbar();
- if(toolbar)
- {
- toolbar->DisableToolbarL(ETrue);
- }
- ShowToolbarOnViewActivation(EFalse);
- }
- else
- {
- ShowToolbarOnViewActivation(ETrue);
- }
- CleanupStack::PopAndDestroy(naviState);
- CleanupStack::PopAndDestroy(navigationalState);
-
+ //Disable the toolbar always while entering fullscreen
+ EnableFSToolbarL(EFalse);
+ ShowToolbarOnViewActivation(EFalse);
//Get the ScreenFurniture instance
iScreenFurniture = iUiUtility->ScreenFurniture();
@@ -306,12 +288,13 @@
const TDesC8 & /* aCustomMessage */)
{
TRACER("CGlxFullScreenViewImp::DoMLViewActivateL");
+ //Disable the softkeys
+ Cba()->MakeVisible( EFalse );
+ Cba()->DrawNow();
+
// hide the toolbar
- CAknToolbar* toolbar = Toolbar();
- if(toolbar)
- {
- toolbar->SetToolbarVisibility(EFalse);
- }
+ EnableFSToolbarL(EFalse);
+
CGlxNavigationalState* navigationalState = CGlxNavigationalState::InstanceL();
CleanupClosePushL( *navigationalState );
@@ -357,9 +340,6 @@
// create the coverflow
CreateCoverflowWidgetL();
- // create the screen furniture for touch devices
- CreateScreenFurnitureL();
-
CreateSliderWidgetL();
iBusyIcon = CGlxFullScreenBusyIcon::NewL(*iMediaList,*iUiUtility);
@@ -519,11 +499,11 @@
iCoverFlowWidget->SetUIMode(ETrue);
}
- //show the toolbar
- CAknToolbar* toolbar = Toolbar();
- if(toolbar)
+ //Since the toolbar should not be present for ImageViewer.
+ if(!iImgViewerMode)
{
- toolbar->SetToolbarVisibility(ETrue);
+ //show the toolbar
+ EnableFSToolbarL(ETrue);
}
// For floating toolbar in non-touch devices
@@ -565,12 +545,17 @@
{
iCoverFlowWidget->SetUIMode(EFalse);
}
- // hide the toolbar
- CAknToolbar* toolbar = Toolbar();
- if(toolbar)
+
+ //Since the toolbar should not be present for ImageViewer.
+ if(!iImgViewerMode)
{
- toolbar->SetToolbarVisibility(EFalse);
- }
+ // hide the toolbar
+ CAknToolbar* toolbar = Toolbar();
+ if(toolbar)
+ {
+ toolbar->SetToolbarVisibility(EFalse);
+ }
+ }
// hide the softkeys
Cba()->MakeVisible( EFalse );
@@ -581,20 +566,6 @@
}
// ---------------------------------------------------------------------------
-// CreateScreenFurnitureL
-// ---------------------------------------------------------------------------
-//
-void CGlxFullScreenViewImp::CreateScreenFurnitureL()
- {
- TRACER("CGlxFullScreenViewImp::CreateScreenFurnitureL");
- // create the softkeys
- CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
- CleanupStack::PushL( cba );
- cba->SetCommandSetL(R_GLX_FULLSCREEN_SOFTKEYS);
- CleanupStack::Pop(cba);
- }
-
-// ---------------------------------------------------------------------------
// SetUiSate
// ---------------------------------------------------------------------------
//
@@ -771,6 +742,19 @@
void CGlxFullScreenViewImp::DoMLViewDeactivate()
{
TRACER("CGlxFullScreenViewImp::DoMLViewDeactivate");
+ //Disabling the toolbar here since it would give a crash when
+ //we try to enable the toolbar in activate without exiting photos.
+ if(!iImgViewerMode)
+ {
+ // hide the toolbar
+ TRAP_IGNORE(EnableFSToolbarL(EFalse));
+ }
+
+ HideUi(ETrue);
+ // In Order to hide the softkeys immediately. The above statement does not do that as soon as we need.
+ // So we do the below trick. The SK overlap is still there but much much less noticable.
+ CCoeEnv::Static()->WsSession().Flush();
+
//Clear the last uri for which DRM Rights were consumed before going back to grid view
//since the GridView::Activate() and FullScreen::DeActivate() can be called in any order,
//this call is being made to be on safer side
@@ -828,12 +812,10 @@
if (!aForeground)
{
-
if(iHdmiController)
{
iHdmiController->ShiftToCloningMode();
}
-
iUiUtility->GlxTextureManager().FlushTextures();
}
else
@@ -918,7 +900,7 @@
if ( NGlxNFullScreenUIState::EUiOff == GetUiSate()&& (
aEvent.Code() == EEventKey ) )
{
- //the Ui timer sjould be started once the UI screen furniture is shown
+ //the Ui timer should be started once the UI screen furniture is shown
ShowUiL(ETrue);
}
return EEventHandled;
@@ -949,10 +931,10 @@
}
}
if(!aEvent.IsCustomEvent())
- {
- GLX_LOG_INFO("Event Not Handled");
- return EEventNotHandled;
- }
+ {
+ GLX_LOG_INFO("Event Not Handled");
+ return EEventNotHandled;
+ }
if(aEvent.IsCustomEvent())
{
@@ -1565,3 +1547,20 @@
}
ProcessCommandL(EAknSoftkeyExit);
}
+
+// ---------------------------------------------------------------------------
+// EnableFSToolbarL
+//
+// ---------------------------------------------------------------------------
+//
+void CGlxFullScreenViewImp::EnableFSToolbarL(TBool aEnable)
+ {
+ TRACER("CGlxFullScreenViewImp::EnableFSToolbarL()");
+ CAknToolbar* toolbar = Toolbar();
+ if(toolbar)
+ {
+ toolbar->DisableToolbarL(!aEnable);
+ toolbar->SetToolbarVisibility(aEnable);
+ }
+ }
+