photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp
branchRCL_3
changeset 24 ea65f74e6de4
parent 23 b023a8d2866a
equal deleted inserted replaced
23:b023a8d2866a 24:ea65f74e6de4
   207 	if(!iPeriodic)
   207 	if(!iPeriodic)
   208 		{
   208 		{
   209 		iPeriodic = CPeriodic::NewL(CActive::EPriorityStandard);
   209 		iPeriodic = CPeriodic::NewL(CActive::EPriorityStandard);
   210 		}
   210 		}
   211 	iGlxTvOut = CGlxTv::NewL(*this);
   211 	iGlxTvOut = CGlxTv::NewL(*this);
       
   212 	
       
   213 	iNaviState = CGlxNavigationalState::InstanceL();
   212     }
   214     }
   213 
   215 
   214 // ---------------------------------------------------------------------------
   216 // ---------------------------------------------------------------------------
   215 // ~CGlxFullScreenViewImp()
   217 // ~CGlxFullScreenViewImp()
   216 // ---------------------------------------------------------------------------
   218 // ---------------------------------------------------------------------------
   259     if (iPeriodic)
   261     if (iPeriodic)
   260  		{
   262  		{
   261  		iPeriodic->Cancel();
   263  		iPeriodic->Cancel();
   262  		delete iPeriodic;
   264  		delete iPeriodic;
   263  		}
   265  		}
       
   266     
       
   267     if (iNaviState)
       
   268         {
       
   269         iNaviState->Close();
       
   270         }    
   264 	}
   271 	}
   265  // ---------------------------------------------------------------------------
   272  // ---------------------------------------------------------------------------
   266 // From CGlxViewBase
   273 // From CGlxViewBase
   267 // ---------------------------------------------------------------------------
   274 // ---------------------------------------------------------------------------
   268 //
   275 //
   324     TRACER("CGlxFullScreenViewImp::DoMLViewActivateL");
   331     TRACER("CGlxFullScreenViewImp::DoMLViewActivateL");
   325 	
   332 	
   326     // hide the toolbar
   333     // hide the toolbar
   327     EnableFSToolbar(EFalse);
   334     EnableFSToolbar(EFalse);
   328     
   335     
   329     CGlxNavigationalState* navigationalState =  CGlxNavigationalState::InstanceL();
   336     if (iMediaList->Count() == 0)
   330     CleanupClosePushL( *navigationalState );
   337         {
   331     CMPXCollectionPath* naviState = navigationalState->StateLC();
   338         GLX_LOG_INFO("CGlxFullScreenViewImp::DoMLViewActivateL() - No items!");	
   332     
   339 		// While in slideshow from fullscreen view,
   333     if(!iMediaList->Count())
   340         // 1) Connect USB in mass storage mode or 
   334 		{
   341         // 2) Delete items through file manager 
   335         //Fix For EPKA-7U5DT7-slideshow launched from FullScreen and connect USB in mass storage mode results in Photos crash
   342         // shall result in activating fullscreen view with no items; so, goto grid view.
   336         navigationalState->ActivatePreviousViewL();
   343         iNaviState->ActivatePreviousViewL();
   337         }  
   344         }
   338 	else
   345     else
   339 		{
   346         {
   340 		//fix for ESLM-7YYDXC: When in FullScreen View, view mode must be 'EView'
   347         //fix for ESLM-7YYDXC: When in FullScreen View, view mode must be 'EView'
   341 		//While coming back from SlideShow to FullScreen view, need to set view mode.
   348         //While coming back from SlideShow to FullScreen view, need to set view mode.
   342 		if(navigationalState->ViewingMode() != NGlxNavigationalState::EView)
   349         if (iMediaList->Count() && iNaviState->ViewingMode()
   343 		   	{
   350                 != NGlxNavigationalState::EView)
   344 		   	navigationalState->SetToViewMode();
   351             {
   345 		   	}
   352             iNaviState->SetToViewMode();
   346 		}
   353             }
   347 		
   354         }
   348     if(naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid))
   355 
       
   356     CMPXCollectionPath* collPath = iNaviState->StateLC();
       
   357     if (collPath->Id() == TMPXItemId(
       
   358             KGlxCollectionPluginImageViewerImplementationUid))
   349         {
   359         {
   350         iImgViewerMode = ETrue;
   360         iImgViewerMode = ETrue;
   351         CreateImageViewerInstanceL();
   361         CreateImageViewerInstanceL();
   352         }
   362         }
   353     //destroy and close navistate and navipath
   363     CleanupStack::PopAndDestroy(collPath);
   354     CleanupStack::PopAndDestroy( naviState );
       
   355     CleanupStack::PopAndDestroy( navigationalState );
       
   356 
   364 
   357     iScrnSize = iUiUtility->DisplaySize();
   365     iScrnSize = iUiUtility->DisplaySize();
   358     iGridIconSize = iUiUtility->GetGridIconSize();
   366     iGridIconSize = iUiUtility->GetGridIconSize();
   359 
   367 
   360     iHdmiWidth = (iScrnSize.iWidth > iScrnSize.iHeight ?iScrnSize.iWidth :iScrnSize.iHeight);
   368     iHdmiWidth = (iScrnSize.iWidth > iScrnSize.iHeight ?iScrnSize.iWidth :iScrnSize.iHeight);
   493         iSliderWidget->AddEventHandler(*this);
   501         iSliderWidget->AddEventHandler(*this);
   494         iSliderWidget->SetHandleKeyEvent(EFalse);
   502         iSliderWidget->SetHandleKeyEvent(EFalse);
   495         iSliderModel = widgetFactory.createModel<IMulSliderModel> ("mulslidermodel");
   503         iSliderModel = widgetFactory.createModel<IMulSliderModel> ("mulslidermodel");
   496         iSliderModel->SetTemplate(ESliderTemplate3);
   504         iSliderModel->SetTemplate(ESliderTemplate3);
   497         iSliderWidget->setModel(iSliderModel);
   505         iSliderWidget->setModel(iSliderModel);
       
   506         iSliderWidget->control()->disableState(IAlfWidgetControl::Focusable);
   498     
   507     
   499         //adding the range and slider tick value 
   508         //adding the range and slider tick value 
   500         if(iSliderModel)
   509         if(iSliderModel)
   501             {
   510             {
   502             iSliderModel->SetTick(KGlxSliderTickValue);
   511             iSliderModel->SetTick(KGlxSliderTickValue);
   670 	    if(iZoomControl->Activated())
   679 	    if(iZoomControl->Activated())
   671 	        {
   680 	        {
   672 	        HideUi(iSliderWidget->IsHidden());
   681 	        HideUi(iSliderWidget->IsHidden());
   673 	        }
   682 	        }
   674 		}
   683 		}
   675     iViewWidget->show(ETrue);
       
   676     }
   684     }
   677 
   685 
   678 // ---------------------------------------------------------------------------
   686 // ---------------------------------------------------------------------------
   679 //ActivateFullScreen function.
   687 //ActivateFullScreen function.
   680 // ---------------------------------------------------------------------------
   688 // ---------------------------------------------------------------------------
   690         }
   698         }
   691     if(iSliderWidget)
   699     if(iSliderWidget)
   692         {
   700         {
   693         iSliderWidget->AddEventHandler(*this);
   701         iSliderWidget->AddEventHandler(*this);
   694         }
   702         }
   695     iViewWidget->show(ETrue);
       
   696     iViewWidget->setRect(TRect(TPoint(0,0),AlfUtil::ScreenSize()));
   703     iViewWidget->setRect(TRect(TPoint(0,0),AlfUtil::ScreenSize()));
   697 	GlxSetAppState::SetState(EGlxInFullScreenView);   
   704 	GlxSetAppState::SetState(EGlxInFullScreenView);   
   698     }
   705     }
   699 
   706 
   700 // ---------------------------------------------------------------------------
   707 // ---------------------------------------------------------------------------
   928 //
   935 //
   929 void CGlxFullScreenViewImp::HandleForegroundEventL(TBool aForeground)
   936 void CGlxFullScreenViewImp::HandleForegroundEventL(TBool aForeground)
   930     {
   937     {
   931     TRACER("CGlxFullScreenViewImp::HandleForegroundEventL");
   938     TRACER("CGlxFullScreenViewImp::HandleForegroundEventL");
   932     CAknView::HandleForegroundEventL(aForeground);
   939     CAknView::HandleForegroundEventL(aForeground);
       
   940 
       
   941     iUiUtility->SetForegroundStatus(aForeground);
       
   942 
   933     if(iMMCState)
   943     if(iMMCState)
   934         {
   944         {
   935         iMMCState =EFalse;
   945         iMMCState =EFalse;
   936         NavigateToMainListL();
   946         NavigateToMainListL();
   937         }
   947         }
   952 	else
   962 	else
   953 		{
   963 		{
   954 		if (iMediaList)
   964 		if (iMediaList)
   955 			{
   965 			{
   956 			/** if there is no image to show go back to the previous view */
   966 			/** if there is no image to show go back to the previous view */
   957 			if (!iMediaList->Count())
   967 			if (!iMediaList->Count() && iNaviState->ViewingMode()
   958 				{
   968                     == NGlxNavigationalState::EView)
   959 				iUiUtility->SetViewNavigationDirection(EGlxNavigationBackwards);
   969                 {
   960 				CGlxNavigationalState* navigationalState =
   970                 iUiUtility->SetViewNavigationDirection(
   961 						CGlxNavigationalState::InstanceL();
   971                         EGlxNavigationBackwards);
   962 				CleanupClosePushL(*navigationalState);
   972                 iNaviState->ActivatePreviousViewL();
   963 				navigationalState ->ActivatePreviousViewL();
   973                 }
   964 				CleanupStack::PopAndDestroy(navigationalState);
       
   965 				}
       
   966 			else if (iMediaListMulModelProvider)
   974 			else if (iMediaListMulModelProvider)
   967 				{
   975 				{
   968 	            UpdateItems();
   976 	            UpdateItems();
   969 
   977 
   970 				if (iHdmiController)
   978 				if (iHdmiController)
  1117                 }
  1125                 }
  1118                 break;
  1126                 break;
  1119                 
  1127                 
  1120             case ETypeRemove:
  1128             case ETypeRemove:
  1121                 {
  1129                 {
  1122                 // Handle the "C" key or the BackSpace key to Delete an item.
  1130                 // If From photos, delete the img.
  1123                 ProcessCommandL(EGlxCmdDelete);
  1131                 // If Image-Viewer collection and not in private Path 
  1124                 return EEventConsumed;
  1132                 // handle the "C" or BackSpace key to delete the item
       
  1133                 if (!iImgViewerMode || (iImageViewerInstance
       
  1134                         && !iImageViewerInstance->IsPrivate()))
       
  1135                     {
       
  1136                     ProcessCommandL(EGlxCmdDelete);
       
  1137                     return EEventConsumed;
       
  1138                     }
       
  1139                 return EEventNotHandled;
  1125                 }               
  1140                 }               
  1126                 
       
  1127             case ETypeDoubleTap:
  1141             case ETypeDoubleTap:
  1128                 {
  1142                 {
  1129                 GLX_LOG_INFO("CGlxFullScreenViewImp::OfferEventL ETypeDoubleTap");   
  1143                 GLX_LOG_INFO("CGlxFullScreenViewImp::OfferEventL ETypeDoubleTap");   
  1130 
  1144 
  1131                 MulDoubleTapData* DoubleTapData = (MulDoubleTapData*)(aEvent.CustomEventData()); 
  1145                 MulDoubleTapData* DoubleTapData = (MulDoubleTapData*)(aEvent.CustomEventData()); 
  1146                     }
  1160                     }
  1147                 return EEventConsumed;
  1161                 return EEventConsumed;
  1148                 }
  1162                 }
  1149             case ETypeItemRemoved:
  1163             case ETypeItemRemoved:
  1150                 {
  1164                 {
       
  1165                 GLX_LOG_INFO("CGlxFullScreenViewImp::OfferEventL ETypeItemRemoved");
       
  1166                 TInt focusIndex = iMediaList->FocusIndex();
       
  1167                 TInt mlCount = iMediaList->Count();
       
  1168                 GLX_LOG_INFO2("CGlxFullScreenViewImp::OfferEventL focusIndex=%d, iOldFocusIndex=%d",
       
  1169                         focusIndex, iOldFocusIndex);
       
  1170                 if (mlCount && (iOldFocusIndex == focusIndex
       
  1171                         || iOldFocusIndex == mlCount) && iZoomControl
       
  1172                         && iZoomControl->Activated())
       
  1173                     {
       
  1174                     GLX_LOG_INFO("Fcused item is removed, Exit zoom view!");
       
  1175                     DeactivateZoomControlL();
       
  1176                     }
  1151                 SetItemToHDMIL();
  1177                 SetItemToHDMIL();
  1152                 TInt focusIndex = iMediaList->FocusIndex();
       
  1153                 if (focusIndex != KErrNotFound && EUiOn == GetUiState())
  1178                 if (focusIndex != KErrNotFound && EUiOn == GetUiState())
  1154                     {
  1179                     {
  1155                     // show/hide the slider
  1180                     // show/hide the slider
  1156                     if (iSliderWidget)
  1181                     if (iSliderWidget)
  1157                         {
  1182                         {
  1158                         iSliderWidget->ShowWidget(CheckIfSliderToBeShownL());
  1183                         iSliderWidget->ShowWidget(CheckIfSliderToBeShownL());
  1159                         }
  1184                         }
  1160                     }
  1185                     }
  1161                 /** if this is the last image deleted when Photo is in foreground, go back to the previous view*/
  1186                 /** if this is the last image deleted when Photo is in foreground, go back to the previous view*/
  1162 				if (!iMediaList->Count() && IsForeground())
  1187                 if (mlCount == 0 && IsForeground()
  1163 					{
  1188                         && iNaviState->ViewingMode()
  1164 					iUiUtility->SetViewNavigationDirection(
  1189                                 == NGlxNavigationalState::EView)
  1165 							EGlxNavigationBackwards);
  1190                     {
  1166 					CGlxNavigationalState* navigationalState =
  1191                     iUiUtility->SetViewNavigationDirection(
  1167 							CGlxNavigationalState::InstanceL();
  1192                             EGlxNavigationBackwards);
  1168 					CleanupClosePushL(*navigationalState);
  1193                     iNaviState->ActivatePreviousViewL();
  1169 					navigationalState ->ActivatePreviousViewL();
  1194                     }
  1170 					CleanupStack::PopAndDestroy(navigationalState);
  1195                 TRAP_IGNORE(ShowDrmExpiryNoteL());
  1171 					}
       
  1172                 return EEventConsumed;
  1196                 return EEventConsumed;
  1173                 }
  1197                 }
  1174             case ETypeHighlight:
  1198             case ETypeHighlight:
  1175                 {
  1199                 {
       
  1200                 GLX_LOG_INFO("CGlxFullScreenViewImp::OfferEventL ETypeHighlight");
  1176                 iMediaList->SetFocusL( NGlxListDefs::EAbsolute,(aEvent.CustomEventData())); 
  1201                 iMediaList->SetFocusL( NGlxListDefs::EAbsolute,(aEvent.CustomEventData())); 
  1177                 if (AknLayoutUtils::PenEnabled())
  1202                 if (AknLayoutUtils::PenEnabled())
  1178                 	{
  1203                 	{
  1179                 	iMediaList->SetVisibleWindowIndexL(aEvent.CustomEventData()); 
  1204                 	iMediaList->SetVisibleWindowIndexL(aEvent.CustomEventData()); 
  1180                 	}
  1205                 	}
  1194                 {
  1219                 {
  1195                 TGlxMedia item = iMediaList->Item( iMediaList->FocusIndex() );
  1220                 TGlxMedia item = iMediaList->Item( iMediaList->FocusIndex() );
  1196                 if(item.Category() == EMPXVideo)
  1221                 if(item.Category() == EMPXVideo)
  1197                     {                                 
  1222                     {                                 
  1198                     ProcessCommandL(EGlxCmdPlay);
  1223                     ProcessCommandL(EGlxCmdPlay);
       
  1224                     iViewWidget->show(false);
  1199                     } 
  1225                     } 
  1200                 else
  1226                 else
  1201                     { 
  1227                     { 
  1202                     if ( EUiOn == GetUiState() )                    
  1228                     if ( EUiOn == GetUiState() )                    
  1203                         {
  1229                         {
  1276 		case EGlxCmdDialogLaunched:
  1302 		case EGlxCmdDialogLaunched:
  1277             {
  1303             {
  1278             iIsDialogLaunched = ETrue;
  1304             iIsDialogLaunched = ETrue;
  1279             break;
  1305             break;
  1280             }
  1306             }
       
  1307         case EGlxCmdDialogDismissed:
       
  1308             {
       
  1309             if (iIsDialogLaunched && iIsMMCRemoved)
       
  1310                 {
       
  1311                 ProcessCommandL(EAknSoftkeyExit);
       
  1312                 }
       
  1313             consumed = ETrue;
       
  1314             iIsDialogLaunched = EFalse;
       
  1315             break;
       
  1316             }
       
  1317 		case EAknSoftkeyBack:
       
  1318             {
       
  1319             HideUi(ETrue);
       
  1320             break;
       
  1321             }                        
  1281         } 
  1322         } 
  1282     return consumed;
  1323     return consumed;
  1283     }
  1324     }
  1284 
  1325 
  1285 // ---------------------------------------------------------------------------
  1326 // ---------------------------------------------------------------------------