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 { |