photosgallery/gallery/src/glxappui.cpp
branchRCL_3
changeset 14 2dac0fdba72b
parent 13 bcb43dc84c44
child 15 191387a8b767
equal deleted inserted replaced
13:bcb43dc84c44 14:2dac0fdba72b
   119     iUiUtility->SetAppOrientationL(EGlxOrientationDefault);
   119     iUiUtility->SetAppOrientationL(EGlxOrientationDefault);
   120     ReserveMemoryL(EEntryTypeStartUp);
   120     ReserveMemoryL(EEntryTypeStartUp);
   121     // publish zoom context, no zoom keys for now
   121     // publish zoom context, no zoom keys for now
   122     NGlxZoomStatePublisher::PublishStateL( EFalse );
   122     NGlxZoomStatePublisher::PublishStateL( EFalse );
   123     iEndKeyPressed = EFalse;
   123     iEndKeyPressed = EFalse;
       
   124     iStateChangeRequested = EFalse;
   124     }
   125     }
   125 
   126 
   126 // -----------------------------------------------------------------------------
   127 // -----------------------------------------------------------------------------
   127 // Destructor
   128 // Destructor
   128 // -----------------------------------------------------------------------------
   129 // -----------------------------------------------------------------------------
   239         {
   240         {
   240         // Open navigational state at root level
   241         // Open navigational state at root level
   241         CMPXCollectionPath* newState = CMPXCollectionPath::NewL();
   242         CMPXCollectionPath* newState = CMPXCollectionPath::NewL();
   242         CleanupStack::PushL( newState );
   243         CleanupStack::PushL( newState );
   243         iNavigationalState->NavigateToL( *newState );
   244         iNavigationalState->NavigateToL( *newState );
       
   245         iStateChangeRequested = ETrue;
   244         CleanupStack::PopAndDestroy( newState );
   246         CleanupStack::PopAndDestroy( newState );
   245         }
   247         }
   246 
   248 
   247     if(0 == aTail.CompareC(KNullDesC8))
   249     if(0 == aTail.CompareC(KNullDesC8))
   248         {
   250         {
   270      * In these types of scenarios we don't want a view switch. So ignoring the event. 
   272      * In these types of scenarios we don't want a view switch. So ignoring the event. 
   271      */
   273      */
   272     TApaTaskList taskList( iCoeEnv->WsSession() );
   274     TApaTaskList taskList( iCoeEnv->WsSession() );
   273 	TApaTask task = taskList.FindApp( TUid::Uid( KGlxGalleryApplicationUid ) );
   275 	TApaTask task = taskList.FindApp( TUid::Uid( KGlxGalleryApplicationUid ) );
   274 	TApaTask taskForeGround = taskList.FindByPos(0); // get fopreground app
   276 	TApaTask taskForeGround = taskList.FindByPos(0); // get fopreground app
   275 	if ( task.Exists() && task.ThreadId() != taskForeGround.ThreadId() )
   277 	if (!iStateChangeRequested && task.Exists() && task.ThreadId()
   276 		{
   278             != taskForeGround.ThreadId())
   277 		GLX_LOG_INFO("CGlxAppUi::HandleNavigationalStateChanged: Return ");
   279         {
   278 		return;
   280         GLX_LOG_INFO("* CGlxAppUi::HandleNavigationalStateChanged:Return *");
   279 		}
   281         return;
       
   282         }
   280     HBufC* activationParam = iActivationParam;
   283     HBufC* activationParam = iActivationParam;
   281     iActivationParam = NULL; // release ownership
   284     iActivationParam = NULL; // release ownership
   282     CleanupStack::PushL( activationParam );
   285     CleanupStack::PushL( activationParam );
   283 
   286 
   284     if ( TUid::Null() != iStartupViewUid )
   287     if ( TUid::Null() != iStartupViewUid )
   303     
   306     
   304         CleanupStack::PopAndDestroy( &scoringIds );
   307         CleanupStack::PopAndDestroy( &scoringIds );
   305         }
   308         }
   306 
   309 
   307     CleanupStack::PopAndDestroy( activationParam );
   310     CleanupStack::PopAndDestroy( activationParam );
       
   311     iStateChangeRequested = EFalse;
   308     }
   312     }
   309 
   313 
   310 // ---------------------------------------------------------------------------
   314 // ---------------------------------------------------------------------------
   311 // Populate array with view scoring ids
   315 // Populate array with view scoring ids
   312 // ---------------------------------------------------------------------------
   316 // ---------------------------------------------------------------------------
   317 
   321 
   318     aIds.Reset(); // For maintenance safety
   322     aIds.Reset(); // For maintenance safety
   319 
   323 
   320     // get current navigational state
   324     // get current navigational state
   321     CMPXCollectionPath* naviState = iNavigationalState->StateLC();
   325     CMPXCollectionPath* naviState = iNavigationalState->StateLC();
   322    
   326     if (naviState->Levels() >= 1)
   323       // no if check in needed here ,it makes the aapui aware of the list view depth
   327         {
   324       // to be removed.added by gopa   
   328         if (iNavigationalState->ViewingMode()
   325     if ( naviState->Levels() >= 1)
   329                 == NGlxNavigationalState::EBrowse)
   326         {
       
   327         if (iNavigationalState->ViewingMode() == NGlxNavigationalState::EBrowse) 
       
   328             {
   330             {
   329             // For image viewer collection, goto view mode
   331             aIds.AppendL(TUid::Uid(KGlxViewingModeBrowse));
   330             if (naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid))
   332             }
   331                 {
   333         else
   332                 aIds.AppendL( TUid::Uid(  KGlxViewingModeView ) );
       
   333                 }
       
   334             else
       
   335                 {
       
   336                 aIds.AppendL( TUid::Uid(  KGlxViewingModeBrowse ) );
       
   337                 }
       
   338             } 
       
   339         else 
       
   340             {
   334             {
   341             aIds.AppendL( TUid::Uid(  KGlxViewingModeView ) );
   335             aIds.AppendL(TUid::Uid(KGlxViewingModeView));
   342             }                 
   336             }
   343         }
   337         }
   344 
   338 
   345     if( TUid::Null() != GetViewScoringIdForCollectionPlugin( *naviState ) )
   339     if (TUid::Null() != GetViewScoringIdForCollectionPlugin(*naviState))
   346         {
   340         {
   347         // add scoring id for collection plugin
   341         // add scoring id for collection plugin
   348         aIds.AppendL( GetViewScoringIdForCollectionPlugin( *naviState ) );
   342         aIds.AppendL(GetViewScoringIdForCollectionPlugin(*naviState));
   349         }
   343         }
   350     
   344 
   351     if( TUid::Null() != ViewScoringIdForNaviStateDepth( *naviState ) )
   345     if (TUid::Null() != ViewScoringIdForNaviStateDepth(*naviState))
   352         {
   346         {
   353          // add scoring id for depth in the ui hierarchy
   347         // add scoring id for depth in the ui hierarchy
   354         aIds.AppendL( ViewScoringIdForNaviStateDepth( *naviState ) );
   348         aIds.AppendL(ViewScoringIdForNaviStateDepth(*naviState));
   355         }
   349         }
   356        
   350 
   357      CleanupStack::PopAndDestroy( naviState );
   351     CleanupStack::PopAndDestroy(naviState);
   358     }
   352     }
   359 // ---------------------------------------------------------------------------
   353 // ---------------------------------------------------------------------------
   360 // Handles the foreground events
   354 // Handles the foreground events
   361 // ---------------------------------------------------------------------------
   355 // ---------------------------------------------------------------------------
   362 //
   356 //
   426 
   420 
   427 // ---------------------------------------------------------------------------
   421 // ---------------------------------------------------------------------------
   428 // HandleActivationMessageL
   422 // HandleActivationMessageL
   429 // ---------------------------------------------------------------------------
   423 // ---------------------------------------------------------------------------
   430 //
   424 //
   431 void CGlxAppUi::HandleActivationMessageL(const TApaCommand& aCommand, 
   425 void CGlxAppUi::HandleActivationMessageL(const TApaCommand& /*aCommand*/, 
   432         const TFileName& aDocumentName, const TDesC8& aData)
   426         const TFileName& /*aDocumentName*/, const TDesC8& aData)
   433     {
   427     {
   434     TRACER("void CGlxAppUi::HandleActivationMessageL(const TApaCommand& aCommand, const TFileName& aDocumentName, const TDesC8& aData)");
   428     TRACER("void CGlxAppUi::HandleActivationMessageL("
   435     GLX_LOG_INFO1("Glx-HandleActivationMessageL() aCommand=%d", aCommand);
   429             "const TApaCommand& aCommand, const TFileName& aDocumentName, "
   436     GLX_LOG_INFO1("Glx-HandleActivationMessageL() aDocumentName length=%d",
   430             "const TDesC8& aData)");
   437                                                     aDocumentName.Length());
   431     GLX_LOG_INFO1("Glx-HandleActivationMessageL() aData length=%d",
       
   432             aData.Length());
   438 
   433 
   439     delete iActivationParam;
   434     delete iActivationParam;
   440     iActivationParam = NULL;
   435     iActivationParam = NULL;
   441 
   436 
   442     if (aDocumentName.Length() > 0 && 0 == aData.CompareC(KNullDesC8) )
   437     if (aData.Length() == 0 )
   443         {
   438         {
   444         GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL() Image Viewer!");        
   439         // Open navigational state at root level
   445         CMPXCollectionPath* path = CMPXCollectionPath::NewL();
   440         CMPXCollectionPath* newState = CMPXCollectionPath::NewL();
   446         CleanupStack::PushL(path);
   441         CleanupStack::PushL(newState);
   447         iNavigationalState->SetBackExitStatus( EFalse );
   442         iNavigationalState->NavigateToL(*newState);
   448         path->AppendL( KGlxCollectionPluginImageViewerImplementationUid );
   443         iStateChangeRequested = ETrue;
   449         iNavigationalState->NavigateToL( *path );
   444         CleanupStack::PopAndDestroy(newState);
   450         CleanupStack::PopAndDestroy( path );
       
   451         }
   445         }
   452     else
   446     else
   453         {
   447         {
   454         GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL(aData)");        
   448         GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL(aData)");        
   455         HandleActivationMessageL( aData );
   449         HandleActivationMessageL( aData );
   456         }
       
   457 
       
   458     // Introduced to fix bug EMJN-78GH6N. 
       
   459     if (0 != iEikonEnv->RootWin().OrdinalPosition())
       
   460         {
       
   461         iEikonEnv->RootWin().SetOrdinalPosition(0);
       
   462         }
   450         }
   463     }
   451     }
   464 
   452 
   465 // ---------------------------------------------------------------------------
   453 // ---------------------------------------------------------------------------
   466 // HandleActivationMessageL
   454 // HandleActivationMessageL
   512             User::Leave(KErrNotSupported);
   500             User::Leave(KErrNotSupported);
   513         }
   501         }
   514     CleanupStack::PopAndDestroy(&stream);
   502     CleanupStack::PopAndDestroy(&stream);
   515     iNavigationalState->SetStartingLevel(path->Levels());
   503     iNavigationalState->SetStartingLevel(path->Levels());
   516     iNavigationalState->NavigateToL( *path );
   504     iNavigationalState->NavigateToL( *path );
       
   505     iStateChangeRequested = ETrue;
   517     CleanupStack::PopAndDestroy(path);
   506     CleanupStack::PopAndDestroy(path);
   518     
   507     
   519     // Introduced to fix bug EMJN-78GH6N. 
   508     // Introduced to fix bug EMJN-78GH6N. 
   520     if (0 != iEikonEnv->RootWin().OrdinalPosition())
   509     if (0 != iEikonEnv->RootWin().OrdinalPosition())
   521         {
   510         {