# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1271249844 -10800 # Node ID 2dac0fdba72b98266bb39cce77e76e8cadb8c3e6 # Parent bcb43dc84c44a4c589bd5007707fc71ab988fed1 Revision: 201013 Kit: 201015 diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/collectionframework/plugins/tagcollectionplugin/src/glxcollectionplugintags.cpp --- a/photosgallery/collectionframework/plugins/tagcollectionplugin/src/glxcollectionplugintags.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/collectionframework/plugins/tagcollectionplugin/src/glxcollectionplugintags.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -340,10 +340,8 @@ case KGlxCollectionRootLevel: case KGlxCollectionTagLevel: { - filterProperties.iMinCount = 1; filterProperties.iSortOrder = EGlxFilterSortOrderAlphabetical; filterProperties.iItemType = EGlxFilterTag; - break; } case KGlxCollectionTagContentsLevel: diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/common/group/bld.inf --- a/photosgallery/common/group/bld.inf Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/common/group/bld.inf Wed Apr 14 15:57:24 2010 +0300 @@ -10,6 +10,7 @@ * Nokia Corporation - initial contribution. * * Contributors: +* NTT DOCOMO, INC - BUG 2361 * * Description: Project definition file for project glxdatasourcemanager. * @@ -31,10 +32,7 @@ // flags for setting the orientation - // for device - ../cenrep/200009EE.txt /epoc32/data/z/private/10202be9/200009ee.txt - // for emulator - ../cenrep/200009EE.txt /epoc32/release/winscw/udeb/z/private/10202be9/200009ee.txt +../cenrep/200009EE.txt z:/private/10202be9/200009ee.txt // Generic configuration interface for component cenrep settings ../../conf/gallery.confml CONFML_EXPORT_PATH(gallery.confml,customsw) diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/controllers/fetcher/inc/glxfetcherdialog.h --- a/photosgallery/controllers/fetcher/inc/glxfetcherdialog.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/controllers/fetcher/inc/glxfetcherdialog.h Wed Apr 14 15:57:24 2010 +0300 @@ -28,6 +28,7 @@ #include #include "mglxeventobserver.h" +#include "glxmmcnotifier.h" // Forward Declerations class CGlxFetcherContainer; @@ -39,7 +40,8 @@ // INTERNAL INCLUDES NONSHARABLE_CLASS (CGlxFetcherDialog) : public CAknDialog , - public MGlxEventObserver + public MGlxEventObserver, + public MStorageNotifierObserver { public: // Constructors and destructor /** @@ -134,6 +136,15 @@ public:// to exit the fetcher dialog void CallCancelFetcherL(TInt aCommandId); + /** + * handle MMC insertion + */ + void HandleMMCInsertionL(){}; + /** + * handle MMC removal + */ + void HandleMMCRemovalL(); + private: CGlxFetcherContainer* iFetcherContainer ; //Container Object @@ -157,6 +168,9 @@ TBool iMarkStarted; TBool iFetchUri; // This is to check if uri is being fetcher or not + + //mmc notifier + CGlxMMCNotifier* iMMCNotifier; }; #endif /*GLXFETCHERDIALOG_H_*/ diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp --- a/photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -256,16 +256,26 @@ iUiUtility->GetGridIconSize().iHeight -(2*KPadding)); TFileName resFile(KDC_APP_BITMAP_DIR); resFile.Append(KGlxIconsFilename); - CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_image_notcreated); - AknIconUtils::SetSize(bitmap, iconSize); + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, + bitmap, mask, resFile, EMbmGlxiconsQgn_prop_image_notcreated, + EMbmGlxiconsQgn_prop_image_notcreated_mask); + __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer)); + __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer)); + + AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + AknIconUtils::SetSize(mask, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); // Create Hg grid object - iHgGrid = CHgGrid::NewL ( - rect, - iMediaList->Count(), - CGulIcon::NewL(bitmap) ); + iHgGrid = CHgGrid::NewL(rect, iMediaList->Count(), CGulIcon::NewL( + bitmap, mask)); + CleanupStack::Pop(mask); + CleanupStack::Pop(bitmap); } + iHgGrid->SetSelectedIndex(iMediaList->FocusIndex()); // Setting to MopParent to update background skin iHgGrid->SetMopParent(this); @@ -310,21 +320,20 @@ TInt mediaCount = iMediaList->Count(); aRequestStart = (aRequestStart<0 ? 0 : aRequestStart) ; - aRequestEnd = (aRequestEnd>=mediaCount? mediaCount : aRequestEnd); + aRequestEnd = (aRequestEnd>=mediaCount? (mediaCount -1): aRequestEnd); if (aRequestEnd - aRequestStart) { TInt visIndex = iHgGrid->FirstIndexOnScreen(); - if (visIndex < 0) + if(visIndex >= mediaCount ) + { + visIndex = mediaCount-1; + } + if(visIndex<0 || mediaCount<=0) { visIndex = 0; } - - else if (visIndex >= mediaCount) - { - visIndex = mediaCount-1; - } - + GLX_LOG_INFO1("CGlxGridViewImp::Request - SetVisibleWindowIndex " "visIndex(%d)", visIndex); iMediaList->SetVisibleWindowIndexL(visIndex); @@ -370,19 +379,46 @@ else if (item.GetIconInfo(icon)) { GLX_LOG_INFO1("CGlxGridViewImp::Request - icon(%d)", aIndex); - CFbsBitmap* bitmap = AknIconUtils::CreateIconL(icon.bmpfile, icon.bitmapId); - AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize()); - iHgGrid->ItemL(aIndex).SetIcon(CGulIcon::NewL(bitmap)); - GLX_LOG_INFO1("### CGlxGridViewImp::Request GetIconInfo-Index is %d",aIndex); + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, + bitmap, mask, icon.bmpfile, icon.bitmapId, icon.maskId); + __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer)); + __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer)); + + AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + AknIconUtils::SetSize(mask, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + + iHgGrid->ItemL(aIndex).SetIcon(CGulIcon::NewL(bitmap, mask)); + CleanupStack::Pop(mask); + CleanupStack::Pop(bitmap); + GLX_LOG_INFO1("### CGlxGridViewImp::Request GetIconInfo-Index is %d", + aIndex); } - else if ( KErrNone != tnError && KErrNotSupported != tnError ) + else if (KErrNone != tnError && KErrNotSupported != tnError) { - GLX_LOG_INFO2("CGlxGridViewImp::Request - image_corrupted tnError(%d), " - "i(%d)", tnError, aIndex); - CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_image_corrupted); - AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize()); - iHgGrid->ItemL(aIndex).SetIcon(CGulIcon::NewL(bitmap)); + GLX_LOG_INFO2( + "CGlxGridViewImp::Request - image_corrupted tnError(%d), " + "i(%d)", tnError, aIndex); + + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, + bitmap, mask, resFile, EMbmGlxiconsQgn_prop_image_corrupted, + EMbmGlxiconsQgn_prop_image_corrupted_mask); + __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer)); + __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer)); + + AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + AknIconUtils::SetSize(mask, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + + iHgGrid->ItemL(aIndex).SetIcon(CGulIcon::NewL(bitmap, mask)); + CleanupStack::Pop(mask); + CleanupStack::Pop(bitmap); } if (item.IsDrmProtected()) diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp --- a/photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -88,6 +88,11 @@ CGlxFetcherDialog::~CGlxFetcherDialog() { TRACER("CGlxFetcherDialog::~CGlxFetcherDialog"); + if(iMMCNotifier) + { + delete iMMCNotifier; + iMMCNotifier = NULL; + } if(iFetcherContainer) { // Restore the Toolbar as it was in the Calling application @@ -123,6 +128,7 @@ iUiUtility = CGlxUiUtility::UtilityL(); iEnv = iUiUtility->Env(); iFetchUri = EFalse; + iMMCNotifier = CGlxMMCNotifier::NewL(*this); } //----------------------------------------------------------------------------- @@ -449,4 +455,20 @@ TRACER("CGlxFetcherDialog::CallCancelFetcherL"); TryExitL(aCommandId); } + +//----------------------------------------------------------------------------- +// CGlxFetcherDialog::HandleMMCRemovalL +// This function will be called when MMC is removed +// This will ensure exit of fetcher dialog. +//----------------------------------------------------------------------------- +void CGlxFetcherDialog::HandleMMCRemovalL() + { + TRACER("CGlxFetcherDialog::HandleMMCRemovalL"); + /* + * need to delay the destruction of dialog. + */ + Extension()->iPublicFlags.Set(CEikDialogExtension::EDelayedExit); + ProcessCommandL(EAknSoftkeyCancel); + Extension()->iPublicFlags.Clear(CEikDialogExtension::EDelayedExit); + } // End of File diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/gallery/inc/glxappui.h --- a/photosgallery/gallery/inc/glxappui.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/gallery/inc/glxappui.h Wed Apr 14 15:57:24 2010 +0300 @@ -212,6 +212,11 @@ *Timer to check for IAD updates 30 seconds after application startup. */ CPeriodic* iPeriodic ; + + /** + * Flag to filter any spurious EPathChanged event from MPX Collection f/w. + */ + TBool iStateChangeRequested; } ; diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/gallery/src/glxappui.cpp --- a/photosgallery/gallery/src/glxappui.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/gallery/src/glxappui.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -121,6 +121,7 @@ // publish zoom context, no zoom keys for now NGlxZoomStatePublisher::PublishStateL( EFalse ); iEndKeyPressed = EFalse; + iStateChangeRequested = EFalse; } // ----------------------------------------------------------------------------- @@ -241,6 +242,7 @@ CMPXCollectionPath* newState = CMPXCollectionPath::NewL(); CleanupStack::PushL( newState ); iNavigationalState->NavigateToL( *newState ); + iStateChangeRequested = ETrue; CleanupStack::PopAndDestroy( newState ); } @@ -272,11 +274,12 @@ TApaTaskList taskList( iCoeEnv->WsSession() ); TApaTask task = taskList.FindApp( TUid::Uid( KGlxGalleryApplicationUid ) ); TApaTask taskForeGround = taskList.FindByPos(0); // get fopreground app - if ( task.Exists() && task.ThreadId() != taskForeGround.ThreadId() ) - { - GLX_LOG_INFO("CGlxAppUi::HandleNavigationalStateChanged: Return "); - return; - } + if (!iStateChangeRequested && task.Exists() && task.ThreadId() + != taskForeGround.ThreadId()) + { + GLX_LOG_INFO("* CGlxAppUi::HandleNavigationalStateChanged:Return *"); + return; + } HBufC* activationParam = iActivationParam; iActivationParam = NULL; // release ownership CleanupStack::PushL( activationParam ); @@ -305,6 +308,7 @@ } CleanupStack::PopAndDestroy( activationParam ); + iStateChangeRequested = EFalse; } // --------------------------------------------------------------------------- @@ -319,42 +323,32 @@ // get current navigational state CMPXCollectionPath* naviState = iNavigationalState->StateLC(); - - // no if check in needed here ,it makes the aapui aware of the list view depth - // to be removed.added by gopa - if ( naviState->Levels() >= 1) + if (naviState->Levels() >= 1) { - if (iNavigationalState->ViewingMode() == NGlxNavigationalState::EBrowse) + if (iNavigationalState->ViewingMode() + == NGlxNavigationalState::EBrowse) { - // For image viewer collection, goto view mode - if (naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid)) - { - aIds.AppendL( TUid::Uid( KGlxViewingModeView ) ); - } - else - { - aIds.AppendL( TUid::Uid( KGlxViewingModeBrowse ) ); - } - } - else + aIds.AppendL(TUid::Uid(KGlxViewingModeBrowse)); + } + else { - aIds.AppendL( TUid::Uid( KGlxViewingModeView ) ); - } + aIds.AppendL(TUid::Uid(KGlxViewingModeView)); + } } - if( TUid::Null() != GetViewScoringIdForCollectionPlugin( *naviState ) ) + if (TUid::Null() != GetViewScoringIdForCollectionPlugin(*naviState)) { // add scoring id for collection plugin - aIds.AppendL( GetViewScoringIdForCollectionPlugin( *naviState ) ); + aIds.AppendL(GetViewScoringIdForCollectionPlugin(*naviState)); } - - if( TUid::Null() != ViewScoringIdForNaviStateDepth( *naviState ) ) + + if (TUid::Null() != ViewScoringIdForNaviStateDepth(*naviState)) { - // add scoring id for depth in the ui hierarchy - aIds.AppendL( ViewScoringIdForNaviStateDepth( *naviState ) ); + // add scoring id for depth in the ui hierarchy + aIds.AppendL(ViewScoringIdForNaviStateDepth(*naviState)); } - - CleanupStack::PopAndDestroy( naviState ); + + CleanupStack::PopAndDestroy(naviState); } // --------------------------------------------------------------------------- // Handles the foreground events @@ -428,38 +422,32 @@ // HandleActivationMessageL // --------------------------------------------------------------------------- // -void CGlxAppUi::HandleActivationMessageL(const TApaCommand& aCommand, - const TFileName& aDocumentName, const TDesC8& aData) +void CGlxAppUi::HandleActivationMessageL(const TApaCommand& /*aCommand*/, + const TFileName& /*aDocumentName*/, const TDesC8& aData) { - TRACER("void CGlxAppUi::HandleActivationMessageL(const TApaCommand& aCommand, const TFileName& aDocumentName, const TDesC8& aData)"); - GLX_LOG_INFO1("Glx-HandleActivationMessageL() aCommand=%d", aCommand); - GLX_LOG_INFO1("Glx-HandleActivationMessageL() aDocumentName length=%d", - aDocumentName.Length()); + TRACER("void CGlxAppUi::HandleActivationMessageL(" + "const TApaCommand& aCommand, const TFileName& aDocumentName, " + "const TDesC8& aData)"); + GLX_LOG_INFO1("Glx-HandleActivationMessageL() aData length=%d", + aData.Length()); delete iActivationParam; iActivationParam = NULL; - if (aDocumentName.Length() > 0 && 0 == aData.CompareC(KNullDesC8) ) + if (aData.Length() == 0 ) { - GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL() Image Viewer!"); - CMPXCollectionPath* path = CMPXCollectionPath::NewL(); - CleanupStack::PushL(path); - iNavigationalState->SetBackExitStatus( EFalse ); - path->AppendL( KGlxCollectionPluginImageViewerImplementationUid ); - iNavigationalState->NavigateToL( *path ); - CleanupStack::PopAndDestroy( path ); + // Open navigational state at root level + CMPXCollectionPath* newState = CMPXCollectionPath::NewL(); + CleanupStack::PushL(newState); + iNavigationalState->NavigateToL(*newState); + iStateChangeRequested = ETrue; + CleanupStack::PopAndDestroy(newState); } else { GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL(aData)"); HandleActivationMessageL( aData ); } - - // Introduced to fix bug EMJN-78GH6N. - if (0 != iEikonEnv->RootWin().OrdinalPosition()) - { - iEikonEnv->RootWin().SetOrdinalPosition(0); - } } // --------------------------------------------------------------------------- @@ -514,6 +502,7 @@ CleanupStack::PopAndDestroy(&stream); iNavigationalState->SetStartingLevel(path->Levels()); iNavigationalState->NavigateToL( *path ); + iStateChangeRequested = ETrue; CleanupStack::PopAndDestroy(path); // Introduced to fix bug EMJN-78GH6N. diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp --- a/photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -196,7 +196,13 @@ /// are cloned as needed MShwEffect* clone = effect->CloneLC(); iAvailableEffects.AppendL( clone ); - CleanupStack::Pop( clone ); + + // This will cause a code scanner warning, but it is not possible to do + // CleanupStack::Pop(clone) because the pointer pushed + // onto the cleanup stack was either of class CShwZoomAndPanEffect + // or a CShwCrossFadeEffect and the object 'clone' is of + // class MShwEffect + CleanupStack::Pop(); //clone iEffects.Append( effect ); iEffects.Append( clone ); diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/slideshow/engine/group/bld.inf --- a/photosgallery/slideshow/engine/group/bld.inf Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/slideshow/engine/group/bld.inf Wed Apr 14 15:57:24 2010 +0300 @@ -10,6 +10,7 @@ * Nokia Corporation - initial contribution. * * Contributors: +* NTT DOCOMO, INC - BUG 2361 * * Description: Slideshow INF component * @@ -41,8 +42,7 @@ * -rd S:/mgallery/slideshow/engine/cenrep\ * */ -../cenrep/200071D3.txt /epoc32/data/z/private/10202be9/200071d3.txt -../cenrep/200071D3.txt /epoc32/release/winscw/udeb/z/private/10202be9/200071d3.txt +../cenrep/200071D3.txt z:/private/10202be9/200071d3.txt // Generic configuration interface for component cenrep settings ../../../conf/slideshow.confml CONFML_EXPORT_PATH(slideshow.confml,customsw) diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/slideshow/engine/tsrc/t_cshweventrouter/t_cshweventrouter.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshweventrouter/t_cshweventrouter.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/slideshow/engine/tsrc/t_cshweventrouter/t_cshweventrouter.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -204,13 +204,13 @@ observers.AppendL( this ); // add the array of observers iRouter->AddObserversL( observers.Array() ); - CleanupStack::PopAndDestroy( observers ); + CleanupStack::PopAndDestroy( &observers ); // add us as publisher RPointerArray publisher; CleanupClosePushL( publisher ); publisher.AppendL( this ); iRouter->AddProducers( publisher.Array() ); - CleanupStack::PopAndDestroy( publisher ); + CleanupStack::PopAndDestroy( &publisher ); T_TestEvent testEvent; // set the event object pointer so that the notify can verify the event object diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/commandhandlers/commandhandlermarking/src/glxcommandhandlermarking.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlermarking/src/glxcommandhandlermarking.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/commandhandlers/commandhandlermarking/src/glxcommandhandlermarking.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -488,9 +488,13 @@ // HandleItemAddedL // --------------------------------------------------------------------------- void CGlxCommandHandlerMarking::HandleItemAddedL(TInt /*aStartIndex*/, - TInt /*aEndIndex*/, MGlxMediaList* /*aList*/) + TInt /*aEndIndex*/, MGlxMediaList* aList) { - // No Implementation + if (aList->Count() > 0 && iUiUtility->GetGridToolBar()) + { + iUiUtility->GetGridToolBar()->SetItemDimmed( + EGlxCmdStartMultipleMarking, EFalse, ETrue); + } } @@ -507,9 +511,13 @@ // HandleItemRemoved // --------------------------------------------------------------------------- void CGlxCommandHandlerMarking::HandleItemRemovedL(TInt /*aStartIndex*/, - TInt /*aEndIndex*/, MGlxMediaList* /*aList*/) + TInt /*aEndIndex*/, MGlxMediaList* aList) { - //Do nothing + if (aList->Count() == 0 && iUiUtility->GetGridToolBar()) + { + iUiUtility->GetGridToolBar()->SetItemDimmed( + EGlxCmdStartMultipleMarking, ETrue, ETrue); + } } // --------------------------------------------------------------------------- diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerslideshow.h --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerslideshow.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerslideshow.h Wed Apr 14 15:57:24 2010 +0300 @@ -84,6 +84,7 @@ TInt aOldIndex, MGlxMediaList* aList); void HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList); void HandleMessageL(const CMPXMessage& aMessage, MGlxMediaList* aList); + void HandlePopulatedL( MGlxMediaList* aList ); private: /** Second phase constructor */ diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerupload.h --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerupload.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerupload.h Wed Apr 14 15:57:24 2010 +0300 @@ -252,6 +252,9 @@ CAknToolbar* iToolbar; TThumbnailRequestId iTnmRequestID; + + //To check if we are in fullscreen + TBool iIsFullScreenView; }; #endif //__GLXCOMMANDHANDLERUPLOAD_H__ diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -234,8 +234,6 @@ enableMultipleSelection = ETrue; enablePopup = ETrue; targetCollection->AppendL(KGlxTagCollectionPluginImplementationUid); - filter = TGlxFilterFactory::CreateIncludeEmptyContainersFilterL(); - CleanupStack::PushL(filter); break; } } diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -339,10 +339,14 @@ // ---------------------------------------------------------------------------- void CGlxCommandHandlerSlideshow::HandleFocusChangedL( NGlxListDefs::TFocusChangeType /*aType*/, - TInt /*aNewIndex*/, TInt /*aOldIndex*/, MGlxMediaList* /*aList*/ ) + TInt /*aNewIndex*/, TInt /*aOldIndex*/, MGlxMediaList* aList) { TRACER("CGlxCommandHandlerSlideshow::HandleFocusChangedL"); - + if (aList->Count() <= 0 && iUiUtility->GetGridToolBar()) + { + iUiUtility->GetGridToolBar()->SetItemDimmed( + EGlxCmdStartMultipleMarking, ETrue, ETrue); + } } // --------------------------------------------------------------------------- @@ -350,8 +354,13 @@ // --------------------------------------------------------------------------- // void CGlxCommandHandlerSlideshow::HandleItemAddedL(TInt /*aStartIndex*/, - TInt /*aEndIndex*/, MGlxMediaList* /*aList*/) + TInt /*aEndIndex*/, MGlxMediaList* aList) { + if (aList->Count() > 0 && iUiUtility->GetGridToolBar()) + { + iUiUtility->GetGridToolBar()->SetItemDimmed(EGlxCmdSlideshowPlay, + EFalse, ETrue); + } } // --------------------------------------------------------------------------- @@ -368,8 +377,13 @@ // --------------------------------------------------------------------------- // void CGlxCommandHandlerSlideshow::HandleItemRemovedL(TInt /*aStartIndex*/, - TInt /*aEndIndex*/, MGlxMediaList* /*aList*/) + TInt /*aEndIndex*/, MGlxMediaList* aList) { + if (aList->Count() <= 0 && iUiUtility->GetGridToolBar()) + { + iUiUtility->GetGridToolBar()->SetItemDimmed(EGlxCmdSlideshowPlay, + ETrue, ETrue); + } } // --------------------------------------------------------------------------- @@ -509,6 +523,19 @@ EGlxCmdSlideshowPlay, visible ); } +// ---------------------------------------------------------------------------- +// HandlePopulatedL +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerSlideshow::HandlePopulatedL( MGlxMediaList* aList ) + { + TRACER("CGlxCommandHandlerSlideshow::HandlePopulatedL()"); + if (aList->Count() == 0 && iUiUtility->GetGridToolBar()) + { + iUiUtility->GetGridToolBar()->SetItemDimmed( + EGlxCmdSlideshowPlay, ETrue, ETrue); + } + } // --------------------------------------------------------------------------- // PopulateToolbar @@ -517,7 +544,8 @@ void CGlxCommandHandlerSlideshow::PopulateToolbarL() { TRACER("CGlxCommandHandlerSlideshow::PopulateToolbarL"); - iUiUtility->ScreenFurniture()->SetTooltipL( EGlxCmdSlideshowPlay, CAknButton::EPositionLeft ); + iUiUtility->ScreenFurniture()->SetTooltipL(EGlxCmdSlideshowPlay, + CAknButton::EPositionLeft); } // End of File diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -118,8 +118,10 @@ iCurrentCenRepMonitor = EMonitorNone; iTnmRequestID = KErrNotFound; + iIsFullScreenView = IsFullScreenViewL(); + //Check for fullscreen here since we dont get the activate call in FS. - if(IsFullScreenViewL()) + if(iIsFullScreenView) { //Giving the viewid as zero, since its not used anywhere. iToolbar = iAvkonAppUi->CurrentFixedToolbar(); @@ -271,7 +273,7 @@ //Get the grid toolbar here as it wont be created yet in //constructor - if(!IsFullScreenViewL()) + if(!iIsFullScreenView) { iToolbar = iUiUtility->GetGridToolBar(); } @@ -368,7 +370,7 @@ //When the Upload is not supported or if we are in grid view //and none of the item is selected Dim the Upload icon - if(!iUploadSupported || (!IsFullScreenViewL() && + if(!iUploadSupported || (!iIsFullScreenView && (MediaList().SelectionCount()== 0))) { DisableUploadToolbarItem(ETrue); @@ -529,7 +531,7 @@ { TRACER("CGlxCommandHandlerUpload::HandleFocusChangedL"); //In Fullscreen change the icons based on current focused icon - if(iUploadSupported && IsFullScreenViewL()) + if(iUploadSupported && iIsFullScreenView) { UpdateFSUploadIconL(); } @@ -545,7 +547,7 @@ TRACER("CGlxCommandHandlerUpload::HandleItemSelectedL"); //In grid if an item is selected update the toolbar icon based on //the mime types of items - if(iUploadSupported && !IsFullScreenViewL()) + if(iUploadSupported && !iIsFullScreenView) { if(aList->SelectionCount() >= 1 ) { @@ -556,7 +558,11 @@ { DecodeIconL(uploadIconFileName); } - DisableUploadToolbarItem(EFalse); + //Enable the toolbar only once to avoid performance prb + if(aList->SelectionCount() == 1 ) + { + DisableUploadToolbarItem(EFalse); + } } else { @@ -589,7 +595,7 @@ { if(aList && aList->Count() > 0) { - if(!iUploadSupported || !IsFullScreenViewL()) + if(!iUploadSupported || !iIsFullScreenView) { DisableUploadToolbarItem(ETrue); } diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummydrmutility.cpp --- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummydrmutility.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummydrmutility.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -48,7 +48,7 @@ return ETrue; } -TBool CGlxDRMUtility::CanShowInfoOnlineL(TDesC& aUri) +TBool CGlxDRMUtility::CanShowInfoOnlineL(const TDesC& aUri) { TBool hasInfo = EFalse; @@ -60,7 +60,7 @@ return hasInfo; } -void CGlxDRMUtility::ShowInfoOnlineL(TDesC& /*aUri*/) +void CGlxDRMUtility::ShowInfoOnlineL(const TDesC& /*aUri*/) { } diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/medialists/src/glxcachemanager.cpp --- a/photosgallery/viewframework/medialists/src/glxcachemanager.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/medialists/src/glxcachemanager.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -330,22 +330,19 @@ RPointerArray< MGlxMediaUser > users; CleanupClosePushL( users ); - // Record the error on all requested attributes TInt idCount = iRequestedItemIds.Count(); - - for( TInt idIndex = 0; idIndex < idCount; idIndex++ ) - { - CGlxMedia* item = MediaForceCreateL(aIdSpaceId, iRequestedItemIds[idIndex]); - GlxErrorManager::SetAttributeErrorL(item, iRequestedAttrs, aError); - - // Keep track of media lists to notify later - TInt userCount = item->UserCount(); - for ( TInt userIndex = 0; userIndex < userCount; userIndex++ ) - { - users.InsertInAddressOrder( &item->User( userIndex ) ); - } - } - + if(idCount) + { + CGlxMedia* item = MediaForceCreateL(aIdSpaceId, iRequestedItemIds[0]); + GlxErrorManager::SetAttributeErrorL(item, iRequestedAttrs, aError); + + // Keep track of media lists to notify later + TInt userCount = item->UserCount(); + for ( TInt userIndex = 0; userIndex < userCount; userIndex++ ) + { + users.InsertInAddressOrder( &item->User( userIndex ) ); + } + } // Notify all affected users of error TInt userCount = users.Count(); for ( TInt i = 0; i < userCount; i++ ) diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.cpp --- a/photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -199,13 +199,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop( attributes ); + CleanupStack::Pop( &attributes ); attributes.Close(); - CleanupStack::Pop( itemIndices ); + CleanupStack::Pop( &itemIndices ); itemIndices.Close(); - CleanupStack::PopAndDestroy( mediaList ); + CleanupStack::PopAndDestroy( &mediaList ); } void UT_CGlxAttributeContext::FetchOneItem_IndexZeroL() @@ -240,13 +240,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchOneItem_IndexOneL() @@ -281,13 +281,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchOneItem_IndexTwoL() @@ -322,13 +322,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchOneItem_IndexThreeL() @@ -363,13 +363,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchOneItem_IndexFourL() @@ -404,13 +404,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexZeroL() @@ -445,13 +445,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexOneL() @@ -486,13 +486,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemindices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexTwoL() @@ -527,13 +527,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexThreeL() @@ -568,13 +568,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexFourL() @@ -609,13 +609,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexFiveL() @@ -650,13 +650,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityGreaterThanRangeL() @@ -691,13 +691,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(attributes); + CleanupStack::Pop(&attributes); attributes.Close(); - CleanupStack::Pop(itemIndices); + CleanupStack::Pop(&itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(mediaList); + CleanupStack::PopAndDestroy(&mediaList); } TBool UT_CGlxAttributeContext::FindAttribute(RArray& aAttributes, const TMPXAttribute& aAttribute) diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.h --- a/photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.h Wed Apr 14 15:57:24 2010 +0300 @@ -149,7 +149,7 @@ virtual void SetFocusInitialPosition(NGlxListDefs::TFocusInitialPosition /*aFocusInitialPosition*/) { }; virtual void ResetFocus(){ }; virtual void SetVisibleWindowIndexL( TInt /*aIndex*/) { }; - virtual TInt VisibleWindowIndex() const { }; + virtual TInt VisibleWindowIndex() const { return iFocusIndex;}; virtual void CancelPreviousRequests() {}; private: CGlxMediaListTest(); diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/tvout/group/glxtvout.mmp --- a/photosgallery/viewframework/tvout/group/glxtvout.mmp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/tvout/group/glxtvout.mmp Wed Apr 14 15:57:24 2010 +0300 @@ -73,6 +73,7 @@ LIBRARY surfacemanager.lib // surface manager LIBRARY imageconversion.lib // ICL LIBRARY efsrv.lib +LIBRARY glxuiutilities.lib // for GlxGeneralUiUtilities // Other Dependency Libraries #ifdef __MARM LIBRARY GSServerEngine.lib // FOr AspectRatio diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h --- a/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h Wed Apr 14 15:57:24 2010 +0300 @@ -174,6 +174,7 @@ TBool iBitmapReady; TBool iAutoZoomOut; TBool iSurfSessionConnected; + TBool iShiftToCloning; #ifdef _DEBUG TTime iStartTime; TTime iStopTime; diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp --- a/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -24,6 +24,7 @@ #include #include #include +#include #include "glxactivecallback.h" #include "glxhdmisurfaceupdater.h" @@ -64,7 +65,7 @@ { iWindow->RemoveBackgroundSurface(ETrue); } - if(iTimer->IsActive()) + if(iTimer && iTimer->IsActive()) // Check for a CPeriodic Instance { iTimer->Cancel(); } @@ -154,22 +155,25 @@ User::LeaveIfError(error); iBitmapReady = EFalse; + iShiftToCloning = EFalse; // Create the active object iGlxDecoderAO = CGlxHdmiDecoderAO::NewL(this); CreateImageDecoderL(iImagePath); CreateBitmapL(); - CreateHdmiL(); - error = iSurfUpdateSession.Connect(); - GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ConstructL() Surface update Session Connect error = %d", error); - User::LeaveIfError(error); - iSurfSessionConnected = ETrue; - + TRAP_IGNORE(CreateHdmiL()); + if(iSurfManager) + { + error = iSurfUpdateSession.Connect(); + GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ConstructL() Surface update Session Connect error = %d", error); + User::LeaveIfError(error); + iSurfSessionConnected = ETrue; + #ifdef _DEBUG - iStartTime.HomeTime(); + iStartTime.HomeTime(); #endif - //start decoding the image - iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,iImageDecoder); - + //start decoding the image + iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,iImageDecoder); + } iLeftCornerForZoom.iX = 0; iLeftCornerForZoom.iY = 0; iTimer = CPeriodic::NewL( CActive::EPriorityStandard ); @@ -195,12 +199,22 @@ ReleaseContent(); CreateImageDecoderL(aImageFile); CreateBitmapL(); - CreateHdmiL(EFalse); + if(iSurfManager) + { + CreateHdmiL(EFalse); + } + else + { + TRAP_IGNORE(CreateHdmiL(ETrue)); + } #ifdef _DEBUG iStartTime.HomeTime(); #endif - //start decoding the image - iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,iImageDecoder); + if(iSurfManager) + { + //start decoding the image + iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,iImageDecoder); + } } // ----------------------------------------------------------------------------- @@ -249,6 +263,19 @@ error = iSurfManager->CreateSurface(attributes, iSurfId); GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::CreateSurfaceL, Creating surface error : %d",error); + if(error == KErrNoMemory) + { + GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::CreateSurfaceL(). iSurfManager->Close()"); + iSurfManager->Close(); + delete iSurfManager; + iSurfManager = NULL; + if(iShiftToCloning == EFalse) + { + GlxGeneralUiUtilities::ShowErrorNoteL(error); // Show Low Memory Popup Once before shifting to Cloning Mode + iShiftToCloning = ETrue; + } + ShiftToCloningMode(); // Shift from Posting Mode to Cloning Mode + } User::LeaveIfError(error); //Map the surface and stride the surface info @@ -397,7 +424,7 @@ GLX_LOG_INFO("HandleRunL - Convert failed"); ShiftToCloningMode(); } - else + else if(iSurfManager) { iZoomRectSz = iDecodedBitmap->SizeInPixels(); if (iSurfBufferAO->iStatus != KRequestPending @@ -593,14 +620,18 @@ void CGlxHdmiSurfaceUpdater::ShiftToPostingMode() { TRACER("CGlxHdmiSurfaceUpdater::ShiftToPostingMode()"); + if(iSurfManager) + { #ifdef _DEBUG - TRect ex, vp; - iConfig.GetExtent(ex); - iConfig.GetViewport(vp); - GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ShiftToPostingMode() - vp - TL=%d, %d",vp.iTl.iX,vp.iTl.iY); - GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ShiftToPostingMode() - vp - BR=%d, %d",vp.iBr.iX,vp.iBr.iY); - GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ShiftToPostingMode() - ex - TL=%d, %d",ex.iTl.iX,ex.iTl.iY); - GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ShiftToPostingMode() - ex - BR=%d, %d",ex.iBr.iX,ex.iBr.iY); + TRect ex, vp; + iConfig.GetExtent(ex); + iConfig.GetViewport(vp); + GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ShiftToPostingMode() - vp - TL=%d, %d",vp.iTl.iX,vp.iTl.iY); + GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ShiftToPostingMode() - vp - BR=%d, %d",vp.iBr.iX,vp.iBr.iY); + GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ShiftToPostingMode() - ex - TL=%d, %d",ex.iTl.iX,ex.iTl.iY); + GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ShiftToPostingMode() - ex - BR=%d, %d",ex.iBr.iX,ex.iBr.iY); #endif - iWindow->SetBackgroundSurface(iConfig, ETrue); + iWindow->SetBackgroundSurface(iConfig, ETrue); + iShiftToCloning = EFalse; + } } diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/uiutilities/bwins/glxuiutilitiesu.def --- a/photosgallery/viewframework/uiutilities/bwins/glxuiutilitiesu.def Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/uiutilities/bwins/glxuiutilitiesu.def Wed Apr 14 15:57:24 2010 +0300 @@ -2,65 +2,66 @@ ?VisibleItemsInPageGranularityL@CGlxUiUtility@@QAEHXZ @ 1 NONAME ; int CGlxUiUtility::VisibleItemsInPageGranularityL(void) ?ViewNavigationDirection@CGlxUiUtility@@QAE?AW4TGlxNavigationDirection@@XZ @ 2 NONAME ; enum TGlxNavigationDirection CGlxUiUtility::ViewNavigationDirection(void) ?SetRotatedImageSize@CGlxUiUtility@@QAEXVTSize@@@Z @ 3 NONAME ; void CGlxUiUtility::SetRotatedImageSize(class TSize) - ?NewL@CGlxScreenFurniture@@SAPAV1@AAVCGlxUiUtility@@@Z @ 4 NONAME ; class CGlxScreenFurniture * CGlxScreenFurniture::NewL(class CGlxUiUtility &) - ?SetExitingState@CGlxUiUtility@@QAEXH@Z @ 5 NONAME ; void CGlxUiUtility::SetExitingState(int) - ?GlxTextureManager@CGlxUiUtility@@QAEAAVCGlxTextureManager@@XZ @ 6 NONAME ; class CGlxTextureManager & CGlxUiUtility::GlxTextureManager(void) - ?ExecuteLD@CGlxTextEntryPopup@@QAEHXZ @ 7 NONAME ; int CGlxTextEntryPopup::ExecuteLD(void) - ?ShowErrorNoteL@GlxGeneralUiUtilities@@SAXH@Z @ 8 NONAME ; void GlxGeneralUiUtilities::ShowErrorNoteL(int) - ?RegisterActiveMediaList@CGlxActiveMediaListRegistry@@QAEXPAVMGlxMediaList@@@Z @ 9 NONAME ; void CGlxActiveMediaListRegistry::RegisterActiveMediaList(class MGlxMediaList *) - ?FormatString@GlxGeneralUiUtilities@@SAXAAVTDes16@@ABVTDesC16@@HHH@Z @ 10 NONAME ; void GlxGeneralUiUtilities::FormatString(class TDes16 &, class TDesC16 const &, int, int, int) - ?AppOrientation@CGlxUiUtility@@QBE?AW4TGlxOrientation@@XZ @ 11 NONAME ; enum TGlxOrientation CGlxUiUtility::AppOrientation(void) const - ?NewLC@CGlxScreenFurniture@@SAPAV1@AAVCGlxUiUtility@@@Z @ 12 NONAME ; class CGlxScreenFurniture * CGlxScreenFurniture::NewLC(class CGlxUiUtility &) - ?ShowAlfDisplayL@CGlxUiUtility@@SAXXZ @ 13 NONAME ; void CGlxUiUtility::ShowAlfDisplayL(void) - ?LayoutIsMirrored@GlxGeneralUiUtilities@@SAHXZ @ 14 NONAME ; int GlxGeneralUiUtilities::LayoutIsMirrored(void) - ?IsLandscape@GlxGeneralUiUtilities@@SAHXZ @ 15 NONAME ; int GlxGeneralUiUtilities::IsLandscape(void) - ?SetToolbarPosition@CGlxScreenFurniture@@QAEXXZ @ 16 NONAME ; void CGlxScreenFurniture::SetToolbarPosition(void) - ?HandleTvStatusChangedL@CGlxUiUtility@@UAEXW4TTvChangeType@@@Z @ 17 NONAME ; void CGlxUiUtility::HandleTvStatusChangedL(enum TTvChangeType) - ?ModifySoftkeyIdL@CGlxScreenFurniture@@QAEXW4TCommandPosition@CEikButtonGroupContainer@@HHABVTDesC16@@@Z @ 18 NONAME ; void CGlxScreenFurniture::ModifySoftkeyIdL(enum CEikButtonGroupContainer::TCommandPosition, int, int, class TDesC16 const &) - ?Close@CGlxUiUtility@@QAEXXZ @ 19 NONAME ; void CGlxUiUtility::Close(void) - ?ViewDeactivated@CGlxScreenFurniture@@QAEXH@Z @ 20 NONAME ; void CGlxScreenFurniture::ViewDeactivated(int) - ?CreateViewAnimationL@GlxAnimationFactory@@SAPAVMGlxAnimation@@W4TGlxViewswitchAnimation@@W4TGlxNavigationDirection@@AAV?$RPointerArray@VCAlfControlGroup@@@@@Z @ 21 NONAME ; class MGlxAnimation * GlxAnimationFactory::CreateViewAnimationL(enum TGlxViewswitchAnimation, enum TGlxNavigationDirection, class RPointerArray &) - ?AppState@GlxSetAppState@@SA?AW4TGlxAppState@@XZ @ 22 NONAME ; enum TGlxAppState GlxSetAppState::AppState(void) - ?ShowInfoNoteL@GlxGeneralUiUtilities@@SAXABVTDesC16@@H@Z @ 23 NONAME ; void GlxGeneralUiUtilities::ShowInfoNoteL(class TDesC16 const &, int) - ?RemoveSkinChangeObserver@CGlxUiUtility@@QAEXAAVMGlxSkinChangeObserver@@@Z @ 24 NONAME ; void CGlxUiUtility::RemoveSkinChangeObserver(class MGlxSkinChangeObserver &) - ?UtilityL@CGlxUiUtility@@SAPAV1@XZ @ 25 NONAME ; class CGlxUiUtility * CGlxUiUtility::UtilityL(void) - ?HideAlfDisplayL@CGlxUiUtility@@SAXXZ @ 26 NONAME ; void CGlxUiUtility::HideAlfDisplayL(void) - ?DisplaySize@CGlxUiUtility@@QBE?AVTSize@@XZ @ 27 NONAME ; class TSize CGlxUiUtility::DisplaySize(void) const - ?ShowErrorNoteL@GlxGeneralUiUtilities@@SAXABVTDesC16@@H@Z @ 28 NONAME ; void GlxGeneralUiUtilities::ShowErrorNoteL(class TDesC16 const &, int) - ?SetActiveView@CGlxScreenFurniture@@QAEXH@Z @ 29 NONAME ; void CGlxScreenFurniture::SetActiveView(int) - ?SetState@GlxSetAppState@@SAXW4TGlxAppState@@@Z @ 30 NONAME ; void GlxSetAppState::SetState(enum TGlxAppState) - ?SetLeftSoftKeyL@CGlxTextEntryPopup@@QAEXH@Z @ 31 NONAME ; void CGlxTextEntryPopup::SetLeftSoftKeyL(int) - ?SetToolbarItemVisibility@CGlxScreenFurniture@@QAEXHH@Z @ 32 NONAME ; void CGlxScreenFurniture::SetToolbarItemVisibility(int, int) - ?AddSkinChangeObserverL@CGlxUiUtility@@QAEXAAVMGlxSkinChangeObserver@@@Z @ 33 NONAME ; void CGlxUiUtility::AddSkinChangeObserverL(class MGlxSkinChangeObserver &) - ?SetTooltipL@CGlxScreenFurniture@@QAEXHW4TTooltipPosition@CAknButton@@ABVTDesC16@@@Z @ 34 NONAME ; void CGlxScreenFurniture::SetTooltipL(int, enum CAknButton::TTooltipPosition, class TDesC16 const &) - ?GetRotatedImageSize@CGlxUiUtility@@QAE?AVTSize@@XZ @ 35 NONAME ; class TSize CGlxUiUtility::GetRotatedImageSize(void) - ?SetToolbarVisibility@CGlxScreenFurniture@@QAEXH@Z @ 36 NONAME ; void CGlxScreenFurniture::SetToolbarVisibility(int) - ?IsPenSupported@CGlxUiUtility@@QAEHXZ @ 37 NONAME ; int CGlxUiUtility::IsPenSupported(void) - ?IsExitingState@CGlxUiUtility@@QAEHXZ @ 38 NONAME ; int CGlxUiUtility::IsExitingState(void) - ?RetrieveL@GlxAttributeRetriever@@SAHABVMGlxFetchContext@@AAVMGlxMediaList@@H@Z @ 39 NONAME ; int GlxAttributeRetriever::RetrieveL(class MGlxFetchContext const &, class MGlxMediaList &, int) - ?TextStyleIdL@CGlxUiUtility@@QAEHHH@Z @ 40 NONAME ; int CGlxUiUtility::TextStyleIdL(int, int) - ?InstanceL@CGlxActiveMediaListRegistry@@SAPAV1@PAVMGlxActiveMediaListChangeObserver@@@Z @ 41 NONAME ; class CGlxActiveMediaListRegistry * CGlxActiveMediaListRegistry::InstanceL(class MGlxActiveMediaListChangeObserver *) - ?DeregisterActiveMediaList@CGlxActiveMediaListRegistry@@QAEXPAVMGlxMediaList@@@Z @ 42 NONAME ; void CGlxActiveMediaListRegistry::DeregisterActiveMediaList(class MGlxMediaList *) - ?CreateImageLoadingAnimationL@GlxAnimationFactory@@SAPAVMGlxAnimation@@AAVCAlfVisual@@AAVCAlfTexture@@@Z @ 43 NONAME ; class MGlxAnimation * GlxAnimationFactory::CreateImageLoadingAnimationL(class CAlfVisual &, class CAlfTexture &) - ?SetAppOrientationL@CGlxUiUtility@@QAEXW4TGlxOrientation@@@Z @ 44 NONAME ; void CGlxUiUtility::SetAppOrientationL(enum TGlxOrientation) - ?ConfirmQueryL@GlxGeneralUiUtilities@@SAHABVTDesC16@@@Z @ 45 NONAME ; int GlxGeneralUiUtilities::ConfirmQueryL(class TDesC16 const &) - ?SetToolbarItemDimmed@CGlxScreenFurniture@@QAEXHH@Z @ 46 NONAME ; void CGlxScreenFurniture::SetToolbarItemDimmed(int, int) - ?NewL@CGlxTextEntryPopup@@SAPAV1@ABVTDesC16@@AAVTDes16@@@Z @ 47 NONAME ; class CGlxTextEntryPopup * CGlxTextEntryPopup::NewL(class TDesC16 const &, class TDes16 &) - ?Display@CGlxUiUtility@@QBEPAVCAlfDisplay@@XZ @ 48 NONAME ; class CAlfDisplay * CGlxUiUtility::Display(void) const - ?CreateViewAnimationL@GlxAnimationFactory@@SAPAVMGlxAnimation@@W4TGlxViewswitchAnimation@@W4TGlxNavigationDirection@@PAVCAlfControlGroup@@@Z @ 49 NONAME ; class MGlxAnimation * GlxAnimationFactory::CreateViewAnimationL(enum TGlxViewswitchAnimation, enum TGlxNavigationDirection, class CAlfControlGroup *) - ?Env@CGlxUiUtility@@QBEPAVCAlfEnv@@XZ @ 50 NONAME ; class CAlfEnv * CGlxUiUtility::Env(void) const - ?SetViewNavigationDirection@CGlxUiUtility@@QAEXW4TGlxNavigationDirection@@@Z @ 51 NONAME ; void CGlxUiUtility::SetViewNavigationDirection(enum TGlxNavigationDirection) - ?ShowConfirmationNoteL@GlxGeneralUiUtilities@@SAXABVTDesC16@@H@Z @ 52 NONAME ; void GlxGeneralUiUtilities::ShowConfirmationNoteL(class TDesC16 const &, int) - ?ScreenFurniture@CGlxUiUtility@@QAEPAVCGlxScreenFurniture@@XZ @ 53 NONAME ; class CGlxScreenFurniture * CGlxUiUtility::ScreenFurniture(void) - ?ConfirmQueryL@GlxGeneralUiUtilities@@SAHHABVTDesC16@@@Z @ 54 NONAME ; int GlxGeneralUiUtilities::ConfirmQueryL(int, class TDesC16 const &) - ?SetFocusL@CGlxScreenFurniture@@QAEXH@Z @ 55 NONAME ; void CGlxScreenFurniture::SetFocusL(int) - ?GetGridIconSize@CGlxUiUtility@@QAE?AVTSize@@XZ @ 56 NONAME ; class TSize CGlxUiUtility::GetGridIconSize(void) - ?InstanceL@MGlxActiveMediaListResolver@@SAPAV1@PAVMGlxActiveMediaListChangeObserver@@@Z @ 57 NONAME ; class MGlxActiveMediaListResolver * MGlxActiveMediaListResolver::InstanceL(class MGlxActiveMediaListChangeObserver *) - ?GetItemsLeftCountL@CGlxUiUtility@@QAEHXZ @ 58 NONAME ; int CGlxUiUtility::GetItemsLeftCountL(void) - ?StartTNMDaemonL@CGlxUiUtility@@QAEXXZ @ 59 NONAME ; void CGlxUiUtility::StartTNMDaemonL(void) - ?NewL@CGlxProgressIndicator@@SAPAV1@AAVMDialogDismisedObserver@@@Z @ 60 NONAME ; class CGlxProgressIndicator * CGlxProgressIndicator::NewL(class MDialogDismisedObserver &) - ?StopTNMDaemonL@CGlxUiUtility@@QAEXXZ @ 61 NONAME ; void CGlxUiUtility::StopTNMDaemonL(void) - ?NewL@CGlxMMCNotifier@@SAPAV1@AAVMStorageNotifierObserver@@@Z @ 62 NONAME ; class CGlxMMCNotifier * CGlxMMCNotifier::NewL(class MStorageNotifierObserver &) - ?SetGridToolBar@CGlxUiUtility@@QAEXPAVCAknToolbar@@@Z @ 63 NONAME ; void CGlxUiUtility::SetGridToolBar(class CAknToolbar *) - ?GetGridToolBar@CGlxUiUtility@@QAEPAVCAknToolbar@@XZ @ 64 NONAME ; class CAknToolbar * CGlxUiUtility::GetGridToolBar(void) + ?NewL@CGlxMMCNotifier@@SAPAV1@AAVMStorageNotifierObserver@@@Z @ 4 NONAME ; class CGlxMMCNotifier * CGlxMMCNotifier::NewL(class MStorageNotifierObserver &) + ?NewL@CGlxScreenFurniture@@SAPAV1@AAVCGlxUiUtility@@@Z @ 5 NONAME ; class CGlxScreenFurniture * CGlxScreenFurniture::NewL(class CGlxUiUtility &) + ?SetExitingState@CGlxUiUtility@@QAEXH@Z @ 6 NONAME ; void CGlxUiUtility::SetExitingState(int) + ?GlxTextureManager@CGlxUiUtility@@QAEAAVCGlxTextureManager@@XZ @ 7 NONAME ; class CGlxTextureManager & CGlxUiUtility::GlxTextureManager(void) + ?ExecuteLD@CGlxTextEntryPopup@@QAEHXZ @ 8 NONAME ; int CGlxTextEntryPopup::ExecuteLD(void) + ?ShowErrorNoteL@GlxGeneralUiUtilities@@SAXH@Z @ 9 NONAME ; void GlxGeneralUiUtilities::ShowErrorNoteL(int) + ?RegisterActiveMediaList@CGlxActiveMediaListRegistry@@QAEXPAVMGlxMediaList@@@Z @ 10 NONAME ; void CGlxActiveMediaListRegistry::RegisterActiveMediaList(class MGlxMediaList *) + ?FormatString@GlxGeneralUiUtilities@@SAXAAVTDes16@@ABVTDesC16@@HHH@Z @ 11 NONAME ; void GlxGeneralUiUtilities::FormatString(class TDes16 &, class TDesC16 const &, int, int, int) + ?AppOrientation@CGlxUiUtility@@QBE?AW4TGlxOrientation@@XZ @ 12 NONAME ; enum TGlxOrientation CGlxUiUtility::AppOrientation(void) const + ?StopTNMDaemon@CGlxUiUtility@@QAEHXZ @ 13 NONAME ; int CGlxUiUtility::StopTNMDaemon(void) + ?NewLC@CGlxScreenFurniture@@SAPAV1@AAVCGlxUiUtility@@@Z @ 14 NONAME ; class CGlxScreenFurniture * CGlxScreenFurniture::NewLC(class CGlxUiUtility &) + ?ShowAlfDisplayL@CGlxUiUtility@@SAXXZ @ 15 NONAME ; void CGlxUiUtility::ShowAlfDisplayL(void) + ?LayoutIsMirrored@GlxGeneralUiUtilities@@SAHXZ @ 16 NONAME ; int GlxGeneralUiUtilities::LayoutIsMirrored(void) + ?IsLandscape@GlxGeneralUiUtilities@@SAHXZ @ 17 NONAME ; int GlxGeneralUiUtilities::IsLandscape(void) + ?SetToolbarPosition@CGlxScreenFurniture@@QAEXXZ @ 18 NONAME ; void CGlxScreenFurniture::SetToolbarPosition(void) + ?HandleTvStatusChangedL@CGlxUiUtility@@UAEXW4TTvChangeType@@@Z @ 19 NONAME ; void CGlxUiUtility::HandleTvStatusChangedL(enum TTvChangeType) + ?ModifySoftkeyIdL@CGlxScreenFurniture@@QAEXW4TCommandPosition@CEikButtonGroupContainer@@HHABVTDesC16@@@Z @ 20 NONAME ; void CGlxScreenFurniture::ModifySoftkeyIdL(enum CEikButtonGroupContainer::TCommandPosition, int, int, class TDesC16 const &) + ?Close@CGlxUiUtility@@QAEXXZ @ 21 NONAME ; void CGlxUiUtility::Close(void) + ?ViewDeactivated@CGlxScreenFurniture@@QAEXH@Z @ 22 NONAME ; void CGlxScreenFurniture::ViewDeactivated(int) + ?GetItemsLeftCount@CGlxUiUtility@@QAEHXZ @ 23 NONAME ; int CGlxUiUtility::GetItemsLeftCount(void) + ?CreateViewAnimationL@GlxAnimationFactory@@SAPAVMGlxAnimation@@W4TGlxViewswitchAnimation@@W4TGlxNavigationDirection@@AAV?$RPointerArray@VCAlfControlGroup@@@@@Z @ 24 NONAME ; class MGlxAnimation * GlxAnimationFactory::CreateViewAnimationL(enum TGlxViewswitchAnimation, enum TGlxNavigationDirection, class RPointerArray &) + ?ShowProgressbarL@CGlxProgressIndicator@@QAEXXZ @ 25 NONAME ; void CGlxProgressIndicator::ShowProgressbarL(void) + ?SetGridToolBar@CGlxUiUtility@@QAEXPAVCAknToolbar@@@Z @ 26 NONAME ; void CGlxUiUtility::SetGridToolBar(class CAknToolbar *) + ?AppState@GlxSetAppState@@SA?AW4TGlxAppState@@XZ @ 27 NONAME ; enum TGlxAppState GlxSetAppState::AppState(void) + ?ShowInfoNoteL@GlxGeneralUiUtilities@@SAXABVTDesC16@@H@Z @ 28 NONAME ; void GlxGeneralUiUtilities::ShowInfoNoteL(class TDesC16 const &, int) + ?RemoveSkinChangeObserver@CGlxUiUtility@@QAEXAAVMGlxSkinChangeObserver@@@Z @ 29 NONAME ; void CGlxUiUtility::RemoveSkinChangeObserver(class MGlxSkinChangeObserver &) + ?UtilityL@CGlxUiUtility@@SAPAV1@XZ @ 30 NONAME ; class CGlxUiUtility * CGlxUiUtility::UtilityL(void) + ?StartTNMDaemon@CGlxUiUtility@@QAEHXZ @ 31 NONAME ; int CGlxUiUtility::StartTNMDaemon(void) + ?HideAlfDisplayL@CGlxUiUtility@@SAXXZ @ 32 NONAME ; void CGlxUiUtility::HideAlfDisplayL(void) + ?DisplaySize@CGlxUiUtility@@QBE?AVTSize@@XZ @ 33 NONAME ; class TSize CGlxUiUtility::DisplaySize(void) const + ?ShowErrorNoteL@GlxGeneralUiUtilities@@SAXABVTDesC16@@H@Z @ 34 NONAME ; void GlxGeneralUiUtilities::ShowErrorNoteL(class TDesC16 const &, int) + ?SetActiveView@CGlxScreenFurniture@@QAEXH@Z @ 35 NONAME ; void CGlxScreenFurniture::SetActiveView(int) + ?SetState@GlxSetAppState@@SAXW4TGlxAppState@@@Z @ 36 NONAME ; void GlxSetAppState::SetState(enum TGlxAppState) + ?SetLeftSoftKeyL@CGlxTextEntryPopup@@QAEXH@Z @ 37 NONAME ; void CGlxTextEntryPopup::SetLeftSoftKeyL(int) + ?GetGridToolBar@CGlxUiUtility@@QAEPAVCAknToolbar@@XZ @ 38 NONAME ; class CAknToolbar * CGlxUiUtility::GetGridToolBar(void) + ?SetToolbarItemVisibility@CGlxScreenFurniture@@QAEXHH@Z @ 39 NONAME ; void CGlxScreenFurniture::SetToolbarItemVisibility(int, int) + ?AddSkinChangeObserverL@CGlxUiUtility@@QAEXAAVMGlxSkinChangeObserver@@@Z @ 40 NONAME ; void CGlxUiUtility::AddSkinChangeObserverL(class MGlxSkinChangeObserver &) + ?SetTooltipL@CGlxScreenFurniture@@QAEXHW4TTooltipPosition@CAknButton@@ABVTDesC16@@@Z @ 41 NONAME ; void CGlxScreenFurniture::SetTooltipL(int, enum CAknButton::TTooltipPosition, class TDesC16 const &) + ?GetRotatedImageSize@CGlxUiUtility@@QAE?AVTSize@@XZ @ 42 NONAME ; class TSize CGlxUiUtility::GetRotatedImageSize(void) + ?SetToolbarVisibility@CGlxScreenFurniture@@QAEXH@Z @ 43 NONAME ; void CGlxScreenFurniture::SetToolbarVisibility(int) + ?IsPenSupported@CGlxUiUtility@@QAEHXZ @ 44 NONAME ; int CGlxUiUtility::IsPenSupported(void) + ?IsExitingState@CGlxUiUtility@@QAEHXZ @ 45 NONAME ; int CGlxUiUtility::IsExitingState(void) + ?RetrieveL@GlxAttributeRetriever@@SAHABVMGlxFetchContext@@AAVMGlxMediaList@@H@Z @ 46 NONAME ; int GlxAttributeRetriever::RetrieveL(class MGlxFetchContext const &, class MGlxMediaList &, int) + ?TextStyleIdL@CGlxUiUtility@@QAEHHH@Z @ 47 NONAME ; int CGlxUiUtility::TextStyleIdL(int, int) + ?InstanceL@CGlxActiveMediaListRegistry@@SAPAV1@PAVMGlxActiveMediaListChangeObserver@@@Z @ 48 NONAME ; class CGlxActiveMediaListRegistry * CGlxActiveMediaListRegistry::InstanceL(class MGlxActiveMediaListChangeObserver *) + ?DeregisterActiveMediaList@CGlxActiveMediaListRegistry@@QAEXPAVMGlxMediaList@@@Z @ 49 NONAME ; void CGlxActiveMediaListRegistry::DeregisterActiveMediaList(class MGlxMediaList *) + ?CreateImageLoadingAnimationL@GlxAnimationFactory@@SAPAVMGlxAnimation@@AAVCAlfVisual@@AAVCAlfTexture@@@Z @ 50 NONAME ; class MGlxAnimation * GlxAnimationFactory::CreateImageLoadingAnimationL(class CAlfVisual &, class CAlfTexture &) + ?SetAppOrientationL@CGlxUiUtility@@QAEXW4TGlxOrientation@@@Z @ 51 NONAME ; void CGlxUiUtility::SetAppOrientationL(enum TGlxOrientation) + ?ConfirmQueryL@GlxGeneralUiUtilities@@SAHABVTDesC16@@@Z @ 52 NONAME ; int GlxGeneralUiUtilities::ConfirmQueryL(class TDesC16 const &) + ?SetToolbarItemDimmed@CGlxScreenFurniture@@QAEXHH@Z @ 53 NONAME ; void CGlxScreenFurniture::SetToolbarItemDimmed(int, int) + ?NewL@CGlxTextEntryPopup@@SAPAV1@ABVTDesC16@@AAVTDes16@@@Z @ 54 NONAME ; class CGlxTextEntryPopup * CGlxTextEntryPopup::NewL(class TDesC16 const &, class TDes16 &) + ?Display@CGlxUiUtility@@QBEPAVCAlfDisplay@@XZ @ 55 NONAME ; class CAlfDisplay * CGlxUiUtility::Display(void) const + ?CreateViewAnimationL@GlxAnimationFactory@@SAPAVMGlxAnimation@@W4TGlxViewswitchAnimation@@W4TGlxNavigationDirection@@PAVCAlfControlGroup@@@Z @ 56 NONAME ; class MGlxAnimation * GlxAnimationFactory::CreateViewAnimationL(enum TGlxViewswitchAnimation, enum TGlxNavigationDirection, class CAlfControlGroup *) + ?Env@CGlxUiUtility@@QBEPAVCAlfEnv@@XZ @ 57 NONAME ; class CAlfEnv * CGlxUiUtility::Env(void) const + ?NewL@CGlxProgressIndicator@@SAPAV1@AAVMDialogDismisedObserver@@@Z @ 58 NONAME ; class CGlxProgressIndicator * CGlxProgressIndicator::NewL(class MDialogDismisedObserver &) + ?SetViewNavigationDirection@CGlxUiUtility@@QAEXW4TGlxNavigationDirection@@@Z @ 59 NONAME ; void CGlxUiUtility::SetViewNavigationDirection(enum TGlxNavigationDirection) + ?ShowConfirmationNoteL@GlxGeneralUiUtilities@@SAXABVTDesC16@@H@Z @ 60 NONAME ; void GlxGeneralUiUtilities::ShowConfirmationNoteL(class TDesC16 const &, int) + ?ScreenFurniture@CGlxUiUtility@@QAEPAVCGlxScreenFurniture@@XZ @ 61 NONAME ; class CGlxScreenFurniture * CGlxUiUtility::ScreenFurniture(void) + ?ConfirmQueryL@GlxGeneralUiUtilities@@SAHHABVTDesC16@@@Z @ 62 NONAME ; int GlxGeneralUiUtilities::ConfirmQueryL(int, class TDesC16 const &) + ?SetFocusL@CGlxScreenFurniture@@QAEXH@Z @ 63 NONAME ; void CGlxScreenFurniture::SetFocusL(int) + ?GetGridIconSize@CGlxUiUtility@@QAE?AVTSize@@XZ @ 64 NONAME ; class TSize CGlxUiUtility::GetGridIconSize(void) + ?InstanceL@MGlxActiveMediaListResolver@@SAPAV1@PAVMGlxActiveMediaListChangeObserver@@@Z @ 65 NONAME ; class MGlxActiveMediaListResolver * MGlxActiveMediaListResolver::InstanceL(class MGlxActiveMediaListChangeObserver *) diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/uiutilities/eabi/glxuiutilitiesu.def --- a/photosgallery/viewframework/uiutilities/eabi/glxuiutilitiesu.def Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/uiutilities/eabi/glxuiutilitiesu.def Wed Apr 14 15:57:24 2010 +0300 @@ -1,87 +1,88 @@ EXPORTS _ZN13CGlxUiUtility12TextStyleIdLEii @ 1 NONAME - _ZN13CGlxUiUtility14IsExitingStateEv @ 2 NONAME - _ZN13CGlxUiUtility14IsPenSupportedEv @ 3 NONAME - _ZN13CGlxUiUtility15GetGridIconSizeEv @ 4 NONAME - _ZN13CGlxUiUtility15HideAlfDisplayLEv @ 5 NONAME - _ZN13CGlxUiUtility15ScreenFurnitureEv @ 6 NONAME - _ZN13CGlxUiUtility15SetExitingStateEi @ 7 NONAME - _ZN13CGlxUiUtility15ShowAlfDisplayLEv @ 8 NONAME - _ZN13CGlxUiUtility17GlxTextureManagerEv @ 9 NONAME - _ZN13CGlxUiUtility18SetAppOrientationLE15TGlxOrientation @ 10 NONAME - _ZN13CGlxUiUtility19GetRotatedImageSizeEv @ 11 NONAME - _ZN13CGlxUiUtility19SetRotatedImageSizeE5TSize @ 12 NONAME - _ZN13CGlxUiUtility22AddSkinChangeObserverLER22MGlxSkinChangeObserver @ 13 NONAME - _ZN13CGlxUiUtility22HandleTvStatusChangedLE13TTvChangeType @ 14 NONAME - _ZN13CGlxUiUtility23ViewNavigationDirectionEv @ 15 NONAME - _ZN13CGlxUiUtility24RemoveSkinChangeObserverER22MGlxSkinChangeObserver @ 16 NONAME - _ZN13CGlxUiUtility26SetViewNavigationDirectionE23TGlxNavigationDirection @ 17 NONAME - _ZN13CGlxUiUtility30VisibleItemsInPageGranularityLEv @ 18 NONAME - _ZN13CGlxUiUtility5CloseEv @ 19 NONAME - _ZN13CGlxUiUtility8UtilityLEv @ 20 NONAME - _ZN14GlxSetAppState8AppStateEv @ 21 NONAME - _ZN14GlxSetAppState8SetStateE12TGlxAppState @ 22 NONAME - _ZN18CGlxTextEntryPopup15SetLeftSoftKeyLEi @ 23 NONAME - _ZN18CGlxTextEntryPopup4NewLERK7TDesC16R6TDes16 @ 24 NONAME - _ZN18CGlxTextEntryPopup9ExecuteLDEv @ 25 NONAME - _ZN19CGlxScreenFurniture11SetTooltipLEiN10CAknButton16TTooltipPositionERK7TDesC16 @ 26 NONAME - _ZN19CGlxScreenFurniture13SetActiveViewEi @ 27 NONAME - _ZN19CGlxScreenFurniture15ViewDeactivatedEi @ 28 NONAME - _ZN19CGlxScreenFurniture16ModifySoftkeyIdLEN24CEikButtonGroupContainer16TCommandPositionEiiRK7TDesC16 @ 29 NONAME - _ZN19CGlxScreenFurniture18SetToolbarPositionEv @ 30 NONAME - _ZN19CGlxScreenFurniture20SetToolbarItemDimmedEii @ 31 NONAME - _ZN19CGlxScreenFurniture20SetToolbarVisibilityEi @ 32 NONAME - _ZN19CGlxScreenFurniture24SetToolbarItemVisibilityEii @ 33 NONAME - _ZN19CGlxScreenFurniture4NewLER13CGlxUiUtility @ 34 NONAME - _ZN19CGlxScreenFurniture5NewLCER13CGlxUiUtility @ 35 NONAME - _ZN19CGlxScreenFurniture9SetFocusLEi @ 36 NONAME - _ZN19GlxAnimationFactory20CreateViewAnimationLE23TGlxViewswitchAnimation23TGlxNavigationDirectionP16CAlfControlGroup @ 37 NONAME - _ZN19GlxAnimationFactory20CreateViewAnimationLE23TGlxViewswitchAnimation23TGlxNavigationDirectionR13RPointerArrayI16CAlfControlGroupE @ 38 NONAME - _ZN19GlxAnimationFactory28CreateImageLoadingAnimationLER10CAlfVisualR11CAlfTexture @ 39 NONAME - _ZN21GlxAttributeRetriever9RetrieveLERK16MGlxFetchContextR13MGlxMediaListi @ 40 NONAME - _ZN21GlxGeneralUiUtilities11IsLandscapeEv @ 41 NONAME - _ZN21GlxGeneralUiUtilities12FormatStringER6TDes16RK7TDesC16iii @ 42 NONAME - _ZN21GlxGeneralUiUtilities13ConfirmQueryLERK7TDesC16 @ 43 NONAME - _ZN21GlxGeneralUiUtilities13ConfirmQueryLEiRK7TDesC16 @ 44 NONAME - _ZN21GlxGeneralUiUtilities13ShowInfoNoteLERK7TDesC16i @ 45 NONAME - _ZN21GlxGeneralUiUtilities14ShowErrorNoteLERK7TDesC16i @ 46 NONAME - _ZN21GlxGeneralUiUtilities14ShowErrorNoteLEi @ 47 NONAME - _ZN21GlxGeneralUiUtilities16LayoutIsMirroredEv @ 48 NONAME - _ZN21GlxGeneralUiUtilities21ShowConfirmationNoteLERK7TDesC16i @ 49 NONAME - _ZN27CGlxActiveMediaListRegistry23RegisterActiveMediaListEP13MGlxMediaList @ 50 NONAME - _ZN27CGlxActiveMediaListRegistry25DeregisterActiveMediaListEP13MGlxMediaList @ 51 NONAME - _ZN27CGlxActiveMediaListRegistry9InstanceLEP33MGlxActiveMediaListChangeObserver @ 52 NONAME - _ZN27MGlxActiveMediaListResolver9InstanceLEP33MGlxActiveMediaListChangeObserver @ 53 NONAME - _ZNK13CGlxUiUtility11DisplaySizeEv @ 54 NONAME - _ZNK13CGlxUiUtility14AppOrientationEv @ 55 NONAME - _ZNK13CGlxUiUtility3EnvEv @ 56 NONAME - _ZNK13CGlxUiUtility7DisplayEv @ 57 NONAME - _ZTI13CGlxUiUtility @ 58 NONAME - _ZTI17CGlxAnimationView @ 59 NONAME - _ZTI18CGlxAnimationTimed @ 60 NONAME - _ZTI18CGlxTextEntryPopup @ 61 NONAME - _ZTI21CGlxSkinChangeMonitor @ 62 NONAME - _ZTI25CGlxAnimationImageLoading @ 63 NONAME - _ZTI32CGlxWaitDialogAttributeRetriever @ 64 NONAME - _ZTI33CGlxSynchronousAttributeRetriever @ 65 NONAME - _ZTV13CGlxUiUtility @ 66 NONAME - _ZTV17CGlxAnimationView @ 67 NONAME - _ZTV18CGlxAnimationTimed @ 68 NONAME - _ZTV18CGlxTextEntryPopup @ 69 NONAME - _ZTV21CGlxSkinChangeMonitor @ 70 NONAME - _ZTV25CGlxAnimationImageLoading @ 71 NONAME - _ZTV32CGlxWaitDialogAttributeRetriever @ 72 NONAME - _ZTV33CGlxSynchronousAttributeRetriever @ 73 NONAME - _ZThn4_N13CGlxUiUtility22HandleTvStatusChangedLE13TTvChangeType @ 74 NONAME - _ZN13CGlxUiUtility15StartTNMDaemonLEv @ 75 NONAME - _ZN13CGlxUiUtility18GetItemsLeftCountLEv @ 76 NONAME - _ZN21CGlxProgressIndicator4NewLER23MDialogDismisedObserver @ 77 NONAME - _ZTI21CGlxProgressIndicator @ 78 NONAME - _ZTV21CGlxProgressIndicator @ 79 NONAME - _ZN13CGlxUiUtility14StopTNMDaemonLEv @ 80 NONAME - _ZN15CGlxMMCNotifier4NewLER24MStorageNotifierObserver @ 81 NONAME - _ZTI15CGlxMMCNotifier @ 82 NONAME - _ZTV15CGlxMMCNotifier @ 83 NONAME - _ZN13CGlxUiUtility14GetGridToolBarEv @ 84 NONAME - _ZN13CGlxUiUtility14SetGridToolBarEP11CAknToolbar @ 85 NONAME + _ZN13CGlxUiUtility13StopTNMDaemonEv @ 2 NONAME + _ZN13CGlxUiUtility14GetGridToolBarEv @ 3 NONAME + _ZN13CGlxUiUtility14IsExitingStateEv @ 4 NONAME + _ZN13CGlxUiUtility14IsPenSupportedEv @ 5 NONAME + _ZN13CGlxUiUtility14SetGridToolBarEP11CAknToolbar @ 6 NONAME + _ZN13CGlxUiUtility14StartTNMDaemonEv @ 7 NONAME + _ZN13CGlxUiUtility15GetGridIconSizeEv @ 8 NONAME + _ZN13CGlxUiUtility15HideAlfDisplayLEv @ 9 NONAME + _ZN13CGlxUiUtility15ScreenFurnitureEv @ 10 NONAME + _ZN13CGlxUiUtility15SetExitingStateEi @ 11 NONAME + _ZN13CGlxUiUtility15ShowAlfDisplayLEv @ 12 NONAME + _ZN13CGlxUiUtility17GetItemsLeftCountEv @ 13 NONAME + _ZN13CGlxUiUtility17GlxTextureManagerEv @ 14 NONAME + _ZN13CGlxUiUtility18SetAppOrientationLE15TGlxOrientation @ 15 NONAME + _ZN13CGlxUiUtility19GetRotatedImageSizeEv @ 16 NONAME + _ZN13CGlxUiUtility19SetRotatedImageSizeE5TSize @ 17 NONAME + _ZN13CGlxUiUtility22AddSkinChangeObserverLER22MGlxSkinChangeObserver @ 18 NONAME + _ZN13CGlxUiUtility22HandleTvStatusChangedLE13TTvChangeType @ 19 NONAME + _ZN13CGlxUiUtility23ViewNavigationDirectionEv @ 20 NONAME + _ZN13CGlxUiUtility24RemoveSkinChangeObserverER22MGlxSkinChangeObserver @ 21 NONAME + _ZN13CGlxUiUtility26SetViewNavigationDirectionE23TGlxNavigationDirection @ 22 NONAME + _ZN13CGlxUiUtility30VisibleItemsInPageGranularityLEv @ 23 NONAME + _ZN13CGlxUiUtility5CloseEv @ 24 NONAME + _ZN13CGlxUiUtility8UtilityLEv @ 25 NONAME + _ZN14GlxSetAppState8AppStateEv @ 26 NONAME + _ZN14GlxSetAppState8SetStateE12TGlxAppState @ 27 NONAME + _ZN15CGlxMMCNotifier4NewLER24MStorageNotifierObserver @ 28 NONAME + _ZN18CGlxTextEntryPopup15SetLeftSoftKeyLEi @ 29 NONAME + _ZN18CGlxTextEntryPopup4NewLERK7TDesC16R6TDes16 @ 30 NONAME + _ZN18CGlxTextEntryPopup9ExecuteLDEv @ 31 NONAME + _ZN19CGlxScreenFurniture11SetTooltipLEiN10CAknButton16TTooltipPositionERK7TDesC16 @ 32 NONAME + _ZN19CGlxScreenFurniture13SetActiveViewEi @ 33 NONAME + _ZN19CGlxScreenFurniture15ViewDeactivatedEi @ 34 NONAME + _ZN19CGlxScreenFurniture16ModifySoftkeyIdLEN24CEikButtonGroupContainer16TCommandPositionEiiRK7TDesC16 @ 35 NONAME + _ZN19CGlxScreenFurniture18SetToolbarPositionEv @ 36 NONAME + _ZN19CGlxScreenFurniture20SetToolbarItemDimmedEii @ 37 NONAME + _ZN19CGlxScreenFurniture20SetToolbarVisibilityEi @ 38 NONAME + _ZN19CGlxScreenFurniture24SetToolbarItemVisibilityEii @ 39 NONAME + _ZN19CGlxScreenFurniture4NewLER13CGlxUiUtility @ 40 NONAME + _ZN19CGlxScreenFurniture5NewLCER13CGlxUiUtility @ 41 NONAME + _ZN19CGlxScreenFurniture9SetFocusLEi @ 42 NONAME + _ZN19GlxAnimationFactory20CreateViewAnimationLE23TGlxViewswitchAnimation23TGlxNavigationDirectionP16CAlfControlGroup @ 43 NONAME + _ZN19GlxAnimationFactory20CreateViewAnimationLE23TGlxViewswitchAnimation23TGlxNavigationDirectionR13RPointerArrayI16CAlfControlGroupE @ 44 NONAME + _ZN19GlxAnimationFactory28CreateImageLoadingAnimationLER10CAlfVisualR11CAlfTexture @ 45 NONAME + _ZN21CGlxProgressIndicator16ShowProgressbarLEv @ 46 NONAME + _ZN21CGlxProgressIndicator4NewLER23MDialogDismisedObserver @ 47 NONAME + _ZN21GlxAttributeRetriever9RetrieveLERK16MGlxFetchContextR13MGlxMediaListi @ 48 NONAME + _ZN21GlxGeneralUiUtilities11IsLandscapeEv @ 49 NONAME + _ZN21GlxGeneralUiUtilities12FormatStringER6TDes16RK7TDesC16iii @ 50 NONAME + _ZN21GlxGeneralUiUtilities13ConfirmQueryLERK7TDesC16 @ 51 NONAME + _ZN21GlxGeneralUiUtilities13ConfirmQueryLEiRK7TDesC16 @ 52 NONAME + _ZN21GlxGeneralUiUtilities13ShowInfoNoteLERK7TDesC16i @ 53 NONAME + _ZN21GlxGeneralUiUtilities14ShowErrorNoteLERK7TDesC16i @ 54 NONAME + _ZN21GlxGeneralUiUtilities14ShowErrorNoteLEi @ 55 NONAME + _ZN21GlxGeneralUiUtilities16LayoutIsMirroredEv @ 56 NONAME + _ZN21GlxGeneralUiUtilities21ShowConfirmationNoteLERK7TDesC16i @ 57 NONAME + _ZN27CGlxActiveMediaListRegistry23RegisterActiveMediaListEP13MGlxMediaList @ 58 NONAME + _ZN27CGlxActiveMediaListRegistry25DeregisterActiveMediaListEP13MGlxMediaList @ 59 NONAME + _ZN27CGlxActiveMediaListRegistry9InstanceLEP33MGlxActiveMediaListChangeObserver @ 60 NONAME + _ZN27MGlxActiveMediaListResolver9InstanceLEP33MGlxActiveMediaListChangeObserver @ 61 NONAME + _ZNK13CGlxUiUtility11DisplaySizeEv @ 62 NONAME + _ZNK13CGlxUiUtility14AppOrientationEv @ 63 NONAME + _ZNK13CGlxUiUtility3EnvEv @ 64 NONAME + _ZNK13CGlxUiUtility7DisplayEv @ 65 NONAME + _ZTI13CGlxUiUtility @ 66 NONAME + _ZTI15CGlxMMCNotifier @ 67 NONAME + _ZTI17CGlxAnimationView @ 68 NONAME + _ZTI18CGlxAnimationTimed @ 69 NONAME + _ZTI18CGlxTextEntryPopup @ 70 NONAME + _ZTI21CGlxProgressIndicator @ 71 NONAME + _ZTI21CGlxSkinChangeMonitor @ 72 NONAME + _ZTI25CGlxAnimationImageLoading @ 73 NONAME + _ZTI32CGlxWaitDialogAttributeRetriever @ 74 NONAME + _ZTI33CGlxSynchronousAttributeRetriever @ 75 NONAME + _ZTV13CGlxUiUtility @ 76 NONAME + _ZTV15CGlxMMCNotifier @ 77 NONAME + _ZTV17CGlxAnimationView @ 78 NONAME + _ZTV18CGlxAnimationTimed @ 79 NONAME + _ZTV18CGlxTextEntryPopup @ 80 NONAME + _ZTV21CGlxProgressIndicator @ 81 NONAME + _ZTV21CGlxSkinChangeMonitor @ 82 NONAME + _ZTV25CGlxAnimationImageLoading @ 83 NONAME + _ZTV32CGlxWaitDialogAttributeRetriever @ 84 NONAME + _ZTV33CGlxSynchronousAttributeRetriever @ 85 NONAME + _ZThn4_N13CGlxUiUtility22HandleTvStatusChangedLE13TTvChangeType @ 86 NONAME diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/uiutilities/inc/glxprogressindicator.h --- a/photosgallery/viewframework/uiutilities/inc/glxprogressindicator.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/uiutilities/inc/glxprogressindicator.h Wed Apr 14 15:57:24 2010 +0300 @@ -19,10 +19,11 @@ #define GLXPROGRESSINDICATOR_H_ #include -#include +#include class CAknProgressDialog; class CEikProgressInfo; +class CGlxUiUtility; class MDialogDismisedObserver { @@ -57,13 +58,17 @@ * calculates how much increment to be done in progress bar * @return increment value */ - TInt CalculateDisplayBarIncrementL(); + TInt CalculateDisplayBarIncrement(); public: // Callback for periodic timer, static, static TInt PeriodicCallbackL( TAny* aPtr ); //nonstatic func called from periodic timer void DisplayProgressBarL(); + + //show progress bar + IMPORT_C void ShowProgressbarL(); + protected://MProgressDialogCallback void DialogDismissedL (TInt aButtonId); @@ -80,6 +85,7 @@ //final count to set in progress bar TInt iFinalCount; MDialogDismisedObserver& iGlxGridViewNotifyObserver; + CGlxUiUtility* iUiUtility; }; #endif /* GLXPROGRESSINDICATOR_H_ */ diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/uiutilities/inc/glxuiutility.h --- a/photosgallery/viewframework/uiutilities/inc/glxuiutility.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/uiutilities/inc/glxuiutility.h Wed Apr 14 15:57:24 2010 +0300 @@ -199,22 +199,22 @@ /** * Forcibly start the Thumbnail Manager daemon process * @param none - * @return none + * @return TInt */ - IMPORT_C void StartTNMDaemonL(); + IMPORT_C TInt StartTNMDaemon(); /** * To stop the Thumbnail Manager daemon process so as to stop force generation of thumbnails * @param none - * @return none + * @return TInt */ - IMPORT_C void StopTNMDaemonL(); + IMPORT_C TInt StopTNMDaemon(); /** * Get the number of items left for Thumbnail generation * @return TInt number of items left for TN generation */ - IMPORT_C TInt GetItemsLeftCountL(); + IMPORT_C TInt GetItemsLeftCount(); /** * Returns Visible items granularity based on feature * layout (i.e., qHD, VGA) diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp --- a/photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -72,7 +72,7 @@ CGlxProgressIndicator::~CGlxProgressIndicator() { TRACER("CGlxProgressIndicator::~CGlxProgressIndicator()"); - if (iProgressbarTicker && iProgressbarTicker->IsActive()) + if (iProgressbarTicker) { iProgressbarTicker->Cancel(); delete iProgressbarTicker; @@ -83,13 +83,11 @@ } // Stop force generation of thumbnails when progress dialog is dismissed - CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); - CleanupClosePushL(*uiUtility); - if ( uiUtility ) - { - uiUtility->StopTNMDaemonL(); - } - CleanupStack::PopAndDestroy(uiUtility); + if (iUiUtility) + { + iUiUtility->StopTNMDaemon(); + iUiUtility->Close(); + } } // --------------------------------------------------------- @@ -99,39 +97,16 @@ void CGlxProgressIndicator::ConstructL() { TRACER("CGlxProgressIndicator::ConstructL()"); - CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); - CleanupClosePushL(*uiUtility); - TRAPD(err,uiUtility->StartTNMDaemonL()); + iUiUtility->StartTNMDaemon(); - if(err != KErrNone) - { - GLX_LOG_INFO1("CGlxProgressIndicator RProperty::Set errorcode %d",err); - //need to check what to do in fail cases - } if(!iProgressbarTicker) { iProgressbarTicker = CPeriodic::NewL(CActive::EPriorityStandard); } - iFinalCount = uiUtility->GetItemsLeftCountL(); + iFinalCount = iUiUtility->GetItemsLeftCount(); GLX_LOG_INFO1("final count in viewactivate = %d",iFinalCount); - - if(iFinalCount) - { - StartProgressNoteL(iFinalCount,ETrue); - if ( !iProgressbarTicker->IsActive()) - { - iProgressbarTicker->Start( KPeriodicStartDelay, KPeriodicStartDelay, TCallBack( - &PeriodicCallbackL, static_cast( this ) ) ); - } - } - else - { - GLX_LOG_INFO("Reset the RProperty flag to EFalse"); - uiUtility->StopTNMDaemonL(); - } - CleanupStack::PopAndDestroy(uiUtility); } @@ -153,16 +128,10 @@ inline void CGlxProgressIndicator::DisplayProgressBarL() { TRACER("CGlxProgressIndicator::DisplayProgressBarL"); - CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); - CleanupClosePushL(*uiUtility); - TInt itemsLeft = uiUtility->GetItemsLeftCountL(); - CleanupStack::PopAndDestroy(uiUtility); + TInt itemsLeft = iUiUtility->GetItemsLeftCount(); GLX_LOG_INFO1("itemsLeft in DisplayProgressBarL = %d",iFinalCount); - if(itemsLeft) - { - UpdateProgressBar(); - } - else + UpdateProgressBar(); + if(!itemsLeft) { if(iProgressbarTicker->IsActive()) { @@ -179,12 +148,14 @@ void CGlxProgressIndicator::StartProgressNoteL(TInt aFinalValue,TBool aShow) { TRACER("CGlxProgressIndicator::StartProgressNoteL()"); - + TInt itemsLeft = iUiUtility->GetItemsLeftCount(); if(aShow) { if(!iProgressDialog) { - iProgressDialog = new (ELeave)CAknProgressDialog((reinterpret_cast (&iProgressDialog)),ETrue); + iProgressDialog = new (ELeave) CAknProgressDialog( + (reinterpret_cast (&iProgressDialog)), + ETrue); } iProgressDialog->PrepareLC(R_PROGRESS_NOTE); @@ -197,7 +168,7 @@ iProgressDialog->SetTextL(*processingInfo); CleanupStack::PopAndDestroy(processingInfo ); iProgressInfo->SetFinalValue(aFinalValue); - + iProgressInfo->SetAndDraw(iFinalCount-itemsLeft); iProgressDialog->RunLD(); } else @@ -229,7 +200,7 @@ * GlxGeneralUiUtilities::FormatString(text,*processingInfo,-1,count,ETrue); * CleanupStack::PopAndDestroy(processingInfo); */ - iProgressInfo->SetAndDraw(CalculateDisplayBarIncrementL()); + iProgressInfo->SetAndDraw(CalculateDisplayBarIncrement()); } } @@ -240,10 +211,6 @@ void CGlxProgressIndicator::DialogDismissedL(TInt aButtonId) { TRACER("CGlxProgressIndicator::DialogDismissedL()"); - CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); - CleanupClosePushL(*uiUtility); - uiUtility->StopTNMDaemonL(); - CleanupStack::PopAndDestroy(uiUtility); if(iProgressbarTicker) { iProgressbarTicker->Cancel(); @@ -254,27 +221,65 @@ { iProgressDialog = NULL; iProgressInfo = NULL; - } + } + } + +// ----------------------------------------------------------------------------- +// CalculateDisplayBarIncrement +// ----------------------------------------------------------------------------- +// +TInt CGlxProgressIndicator::CalculateDisplayBarIncrement() + { + TRACER("CGlxProgressIndicator::CalculateDisplayBarIncrement()"); + + TInt itemsLeft = iUiUtility->GetItemsLeftCount(); + + if (iFinalCount < itemsLeft) + { + iProgressInfo->SetFinalValue(itemsLeft); + iFinalCount = itemsLeft; + } + + GLX_LOG_INFO1("CalculateDisplayBarIncrement = %d ",(iFinalCount - itemsLeft)); + return (iFinalCount - itemsLeft); } // ----------------------------------------------------------------------------- -// CalculateDisplayBarIncrementL +// ShowProgressbar // ----------------------------------------------------------------------------- -// -TInt CGlxProgressIndicator::CalculateDisplayBarIncrementL() +// +void EXPORT_C CGlxProgressIndicator::ShowProgressbarL() { - TRACER("CGlxProgressIndicator::CalculateDisplayBarIncrement()"); - CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); - CleanupClosePushL(*uiUtility); - TInt itemsLeft = uiUtility->GetItemsLeftCountL(); - CleanupStack::PopAndDestroy(uiUtility); - GLX_LOG_INFO1("CalculateDisplayBarIncrement = %d ",(iFinalCount - itemsLeft)); - - if(iFinalCount < itemsLeft) + TRACER("CGlxProgressIndicator::ShowProgressbarL"); + iUiUtility->StartTNMDaemon(); + TInt itemsLeft = iUiUtility->GetItemsLeftCount(); + + GLX_LOG_INFO1("ShowProgressbar itemsLeft = %d ",itemsLeft); + GLX_LOG_INFO1("ShowProgressbar iFinalCount = %d ",iFinalCount); + if (iFinalCount < itemsLeft) { - iProgressInfo->SetFinalValue( itemsLeft ); + /* + *if user is in List view and inserts the MMC,update the total count + */ iFinalCount = itemsLeft; } - - return (iFinalCount - itemsLeft); + if (iFinalCount) + { + StartProgressNoteL(iFinalCount, ETrue); + if (!iProgressbarTicker) + { + iProgressbarTicker = CPeriodic::NewL(CActive::EPriorityStandard); + } + if (!iProgressbarTicker->IsActive()) + { + iProgressbarTicker->Start(KPeriodicStartDelay, + KPeriodicStartDelay, TCallBack(&PeriodicCallbackL, + static_cast (this))); + } + } + else + { + GLX_LOG_INFO("Reset the RProperty flag to EFalse"); + iUiUtility->StopTNMDaemon(); + } } diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/uiutilities/src/glxuiutility.cpp --- a/photosgallery/viewframework/uiutilities/src/glxuiutility.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/uiutilities/src/glxuiutility.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -239,8 +239,9 @@ // make it visible as well CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); - CCoeControl* contl = (CCoeControl*)uiUtility->Display()->ObjectProvider(); - contl->MakeVisible (ETrue); + CCoeControl* contl = + (CCoeControl*) uiUtility->Display()->ObjectProvider(); + contl->MakeVisible(ETrue); uiUtility->Close(); // no need to do anything else, the coecontrol handles the visibility @@ -255,13 +256,14 @@ // make it invisible as well (this might be all that is needed) CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); - CCoeControl* contl = (CCoeControl*)uiUtility->Display()->ObjectProvider(); + CCoeControl* contl = + (CCoeControl*) uiUtility->Display()->ObjectProvider(); contl->MakeVisible (EFalse); uiUtility->Close(); // no need to do anything else, the coecontrol handles the visibility } - + // ----------------------------------------------------------------------------- // GlxTextureManager // ----------------------------------------------------------------------------- @@ -282,13 +284,13 @@ TRACER("CGlxUiUtility::ViewNavigationDirection()"); return iNavigationDirection; } - // ----------------------------------------------------------------------------- // SetViewNavigationDirection // ----------------------------------------------------------------------------- // -EXPORT_C void CGlxUiUtility::SetViewNavigationDirection(TGlxNavigationDirection aDirection) +EXPORT_C void CGlxUiUtility::SetViewNavigationDirection( + TGlxNavigationDirection aDirection) { TRACER("CGlxUiUtility::SetViewNavigationDirection()"); iNavigationDirection = aDirection; @@ -458,20 +460,20 @@ { TRACER("CGlxUiUtility::HandleTvStatusChangedL()"); - if ( aChangeType == ETvDisplayNotVisible ) // Visibility event + if (aChangeType == ETvDisplayNotVisible) // Visibility event { iEnv->Release(); return; // don't redraw the display } - else if ( aChangeType == ETvDisplayIsVisible ) // Visibility event + else if (aChangeType == ETvDisplayIsVisible) // Visibility event { iEnv->RestoreL(); } - else // TV Connection event + else // TV Connection event { - GLX_ASSERT_DEBUG( (aChangeType == ETvConnectionChanged), - Panic( EGlxPanicLogicError ), - "Expected TV Connection Changed" ); + GLX_ASSERT_DEBUG( (aChangeType == ETvConnectionChanged), + Panic( EGlxPanicLogicError ), + "Expected TV Connection Changed" ); if ( iGlxTvOut->IsConnected() ) { @@ -523,7 +525,7 @@ { // The primary (phone) display has changed orientation DestroyTvOutDisplay(); - CreateTvOutDisplayL(); //@ will generate false positive in codescanner + CreateTvOutDisplayL(); //@ will generate false positive in codescanner } else { @@ -548,7 +550,8 @@ iEnv->PauseRefresh(); // Disable Primary Window Visibility events - CCoeControl* contl = (CCoeControl*)iEnv->PrimaryDisplay().ObjectProvider(); + CCoeControl* contl = + (CCoeControl*) iEnv->PrimaryDisplay().ObjectProvider(); contl->DrawableWindow()->DisableVisibilityChangeEvents(); } } @@ -584,18 +587,20 @@ // AddSkinChangeObserverL // ----------------------------------------------------------------------------- // -EXPORT_C void CGlxUiUtility::AddSkinChangeObserverL(MGlxSkinChangeObserver& aObserver) +EXPORT_C void CGlxUiUtility::AddSkinChangeObserverL( + MGlxSkinChangeObserver& aObserver) { TRACER("CGlxUiUtility::AddSkinChangeObserverL()"); iGlxSkinChangeMonitor->AddSkinChangeObserverL( aObserver ); } - + // ----------------------------------------------------------------------------- // RemoveSkinChangeObserver // ----------------------------------------------------------------------------- // -EXPORT_C void CGlxUiUtility::RemoveSkinChangeObserver(MGlxSkinChangeObserver& aObserver) - { +EXPORT_C void CGlxUiUtility::RemoveSkinChangeObserver( + MGlxSkinChangeObserver& aObserver) + { TRACER("CGlxUiUtility::RemoveSkinChangeObserver()"); iGlxSkinChangeMonitor->RemoveSkinChangeObserver( aObserver ); } @@ -634,27 +639,30 @@ // ----------------------------------------------------------------------------- // void CGlxUiUtility::GridIconSizeL() - { - TRACER("CGlxUiUtility::GridIconSize()"); - // Sets up TLS, must be done before FeatureManager is used. - FeatureManager::InitializeLibL(); - - if(FeatureManager::FeatureSupported( KFeatureIdLayout640_360_Touch ) || FeatureManager::FeatureSupported( KFeatureIdLayout360_640_Touch )) - { - iGridIconSize = TSize(111,83); - } - else if(FeatureManager::FeatureSupported(KFeatureIdLayout640_480_Touch) || FeatureManager::FeatureSupported(KFeatureIdLayout480_640_Touch) || - FeatureManager::FeatureSupported(KFeatureIdLayout640_480) || FeatureManager::FeatureSupported(KFeatureIdLayout480_640)) - { - iGridIconSize = TSize(146,110); - } - else - { - iGridIconSize = TSize(146,110); - } - // Frees the TLS. Must be done after FeatureManager is used. - FeatureManager::UnInitializeLib(); - } + { + TRACER("CGlxUiUtility::GridIconSize()"); + // Sets up TLS, must be done before FeatureManager is used. + FeatureManager::InitializeLibL(); + + if (FeatureManager::FeatureSupported(KFeatureIdLayout640_360_Touch) + || FeatureManager::FeatureSupported(KFeatureIdLayout360_640_Touch)) + { + iGridIconSize = TSize(111, 83); + } + else if (FeatureManager::FeatureSupported(KFeatureIdLayout640_480_Touch) + || FeatureManager::FeatureSupported(KFeatureIdLayout480_640_Touch) + || FeatureManager::FeatureSupported(KFeatureIdLayout640_480) + || FeatureManager::FeatureSupported(KFeatureIdLayout480_640)) + { + iGridIconSize = TSize(146, 110); + } + else + { + iGridIconSize = TSize(146, 110); + } + // Frees the TLS. Must be done after FeatureManager is used. + FeatureManager::UnInitializeLib(); + } @@ -678,7 +686,7 @@ EXPORT_C TInt CGlxUiUtility::VisibleItemsInPageGranularityL() { TRACER("CGlxUiUtility::VisibleItemsInPageGranularityL"); - + //TBD: In MCL 9.1/Corolla env currently the feature flags //KFeatureIdLayout640_480 and KFeatureIdLayout480_640 are not defined. //so making the default granularity as 21 instead of 15. @@ -686,71 +694,60 @@ //getting the feature flag. TInt ret = KGlxVGAVisibleItemsGranularity; FeatureManager::InitializeLibL(); - - if (FeatureManager::FeatureSupported( KFeatureIdLayout640_360_Touch ) || - FeatureManager::FeatureSupported( KFeatureIdLayout360_640_Touch )) - { - ret = KGlxQHDVisibleItemsGranularity; - } - else if(FeatureManager::FeatureSupported(KFeatureIdLayout640_480_Touch) || - FeatureManager::FeatureSupported(KFeatureIdLayout480_640_Touch) || - FeatureManager::FeatureSupported(KFeatureIdLayout640_480) || - FeatureManager::FeatureSupported(KFeatureIdLayout480_640)) - { - ret = KGlxVGAVisibleItemsGranularity; - } - FeatureManager::UnInitializeLib(); + + if (FeatureManager::FeatureSupported(KFeatureIdLayout640_360_Touch) + || FeatureManager::FeatureSupported(KFeatureIdLayout360_640_Touch)) + { + ret = KGlxQHDVisibleItemsGranularity; + } + else if (FeatureManager::FeatureSupported(KFeatureIdLayout640_480_Touch) + || FeatureManager::FeatureSupported(KFeatureIdLayout480_640_Touch) + || FeatureManager::FeatureSupported(KFeatureIdLayout640_480) + || FeatureManager::FeatureSupported(KFeatureIdLayout480_640)) + { + ret = KGlxVGAVisibleItemsGranularity; + } + FeatureManager::UnInitializeLib(); return ret; } // ----------------------------------------------------------------------------- -// StartTNMDaemonL +// StartTNMDaemon // ----------------------------------------------------------------------------- // -EXPORT_C void CGlxUiUtility::StartTNMDaemonL() +EXPORT_C TInt CGlxUiUtility::StartTNMDaemon() { - TRACER("CGlxUiUtility::StartTNMDaemonL"); - TInt err = RProperty::Set(KTAGDPSNotification, KForceBackgroundGeneration, ETrue); - if(err != KErrNone) - { - GLX_LOG_INFO1("GetItemsLeftCountL: RProperty::Set errorcode %d",err); - //need to check what to do in fail cases - User::Leave(err); - } - } - -// ----------------------------------------------------------------------------- -// StopTNMDaemonL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CGlxUiUtility::StopTNMDaemonL() - { - TRACER("CGlxUiUtility:: StopTNMDaemonL "); - TInt err = RProperty::Set(KTAGDPSNotification, KForceBackgroundGeneration, EFalse); - GLX_LOG_INFO1("CGlxUiUtility::StopTNMDaemonL err = %d",err); - if(err != KErrNone) - { - GLX_LOG_INFO1("StopTNMDaemonL: RProperty::Set errorcode %d",err); - //need to check what to do in fail cases - User::Leave(err); - } + TRACER("CGlxUiUtility::StartTNMDaemon"); + return RProperty::Set(KTAGDPSNotification, KForceBackgroundGeneration, + ETrue); } // ----------------------------------------------------------------------------- -// GetItemsLeftCountL +// StopTNMDaemon // ----------------------------------------------------------------------------- // -EXPORT_C TInt CGlxUiUtility::GetItemsLeftCountL() +EXPORT_C TInt CGlxUiUtility::StopTNMDaemon() { - TRACER("CGlxUiUtility::GetItemsLeftCountL"); + TRACER("CGlxUiUtility:: StopTNMDaemon"); + return RProperty::Set(KTAGDPSNotification, KForceBackgroundGeneration, + EFalse); + } + +// ----------------------------------------------------------------------------- +// GetItemsLeftCount +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CGlxUiUtility::GetItemsLeftCount() + { + TRACER("CGlxUiUtility::GetItemsLeftCount"); TInt leftVariable = 0; TInt err = RProperty::Get(KTAGDPSNotification, KItemsleft, leftVariable); - GLX_LOG_INFO1("GetItemsLeftCountL: GetItemsLeftCountL %d",leftVariable); - if(err != KErrNone) + GLX_LOG_INFO1("GetItemsLeftCount: GetItemsLeftCount %d", leftVariable); + if (err != KErrNone) { - GLX_LOG_INFO1("GetItemsLeftCountL: RProperty::Get errorcode %d",err); - User::Leave(err); + GLX_LOG_INFO1("GetItemsLeftCount: RProperty::Get errorcode %d", err); + leftVariable = 0; } - return leftVariable; + return leftVariable; } // End of file diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/cloudview/inc/glxtagscontextmenucontrol.h --- a/photosgallery/viewframework/views/cloudview/inc/glxtagscontextmenucontrol.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/cloudview/inc/glxtagscontextmenucontrol.h Wed Apr 14 15:57:24 2010 +0300 @@ -25,7 +25,7 @@ //Forward Declaration class CAlfGridLayout; -class CGlxUiUtility; +class CAlfEnv; /** *MGlxItemMenuObserver is a class to handle the menu items in grid layout @@ -114,6 +114,10 @@ */ void CreateMenuListL(TInt aFontId); + /** + * Calculates the maximum text width of menu items + */ + void CalculateMaxWidth(); /** * Perform the two phase construction * @param aEvent - key Event to handle @@ -123,15 +127,14 @@ TBool OfferEventL(const TAlfEvent& aEvent); private: - - //Ui Utility, not owning, only close - CGlxUiUtility* iUiUtility; //Observer to handle the menu items in grid layout MGlxItemMenuObserver& iItemMenuObserver; //Grid layout, not owning CAlfGridLayout* iGrid; + /** The Alf environment*/ + CAlfEnv* iAlfEnv; //Slideshow text, not owning CAlfTextVisual* iSlideshowTextVisual; @@ -153,6 +156,8 @@ //flag for stylus menu visibility TBool iItemMenuVisibility; + //Maximum text width of a menu item + TInt iMaxTextWidth; }; #endif /* GLXTAGSCONTEXTMENUCONTROL_H_ */ diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/cloudview/src/glxcloudviewcontrol.cpp --- a/photosgallery/viewframework/views/cloudview/src/glxcloudviewcontrol.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/cloudview/src/glxcloudviewcontrol.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -63,7 +63,7 @@ const TInt KLeftMargin = 10; const TInt KNumMinRowSpace = 2; const TInt KColSpace = 20; -const TInt KRightmargin = 20; +const TInt KRightmargin = 10;//Aligning Right margin const TInt KMinTagSize = 77; const TInt KTagScreenHeight = 460; const TReal KBoundaryMargin = 0.1; //10% = 10/100 = 0.1 @@ -156,7 +156,7 @@ AknLayoutUtils::LayoutMetricsRect (AknLayoutUtils::EMainPane, rect); iScreenHeight = rect.Height (); iParentLayout = CAlfLayout::AddNewL(*this, aAnchorLayout); - iTagScreenWidth = rect.Width() - iScrollPaneHandle.iW - KRightmargin; + iTagScreenWidth = rect.Width() - KRightmargin; if(IsLandscape()) { @@ -230,7 +230,7 @@ } TRect rect; AknLayoutUtils::LayoutMetricsRect (AknLayoutUtils::EMainPane, rect); - if ((rect.Width() != (iTagScreenWidth + iScrollPaneHandle.iW + KRightmargin)) || (rect.Height() != iScreenHeight)) + if ((rect.Width() != (iTagScreenWidth + KRightmargin)) || (rect.Height() != iScreenHeight)) { //set the new screen dimensions TRAP_IGNORE(UpdateLayoutL()); @@ -1849,10 +1849,14 @@ if( iScrollEventData.mSpan ) { scrollbarbaselement->setThumbOpacity(1.0); + //make scroll bar visible + scrollbarbaselement->setOpacity(1.0); } else { scrollbarbaselement->setThumbOpacity(0.0); + //make scroll bar invisible + scrollbarbaselement->setOpacity(0.0); } } } @@ -1865,11 +1869,11 @@ { TRect rect; AknLayoutUtils::LayoutMetricsRect (AknLayoutUtils::EMainPane, rect); - if ((rect.Width() != (iTagScreenWidth + iScrollPaneHandle.iW + KRightmargin)) || (rect.Height() != iScreenHeight)) + if ((rect.Width() != (iTagScreenWidth + KRightmargin)) || (rect.Height() != iScreenHeight)) { //set the new screen dimensions iScreenHeight=rect.Height(); - iTagScreenWidth = rect.Width()- iScrollPaneHandle.iW - KRightmargin; + iTagScreenWidth = rect.Width()- KRightmargin; if(IsLandscape()) { iTagScreenHeight = rect.Height(); @@ -1996,6 +2000,10 @@ void CGlxCloudViewControl::ShowContextItemMenu(TBool aShow) { iTagsContextMenuControl->ShowItemMenu(aShow); + if(!aShow) + { + iViewPortLayout->UpdateChildrenLayout(0); + } } //End of file diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp --- a/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -46,8 +46,8 @@ #include "glxcloudviewcontrol.h"//cloud view control // For transition effects -#include -#include +#include +#include #include "glxgfxtranseffect.h" // For transition effects const TInt KViewId = 0x200071B7; diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/cloudview/src/glxtagscontextmenucontrol.cpp --- a/photosgallery/viewframework/views/cloudview/src/glxtagscontextmenucontrol.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/cloudview/src/glxtagscontextmenucontrol.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -51,8 +51,6 @@ const TInt KMinimalGap = 5; //Height of each menu item const TInt KReqHeightPerMenuItem = 47; -//Minimum width for control -const TInt KReqWidth = 113; //Number of menu items present in stylus menu const TInt KNumofMenuItems = 3; //Number of columns present in grid control showing menu @@ -72,7 +70,8 @@ const TInt KShrinkXCoord = 5; //Y shrink factor for stylus menu border to be drawn/visible const TInt KShrinkYCoord = 5; - +//Padding value for Minimum width for control +const TInt KWidthPadding = 20; //For Tagging the visuals _LIT8(KTagSlideshow, "SS"); _LIT8(KTagRename, "Ren"); @@ -86,7 +85,8 @@ MGlxItemMenuObserver& aItemMenuObserver) { TRACER("GLX_CLOUD::CGlxTagsContextMenuControl::NewL"); - CGlxTagsContextMenuControl* self = CGlxTagsContextMenuControl::NewLC( aItemMenuObserver); + CGlxTagsContextMenuControl* self = CGlxTagsContextMenuControl::NewLC( + aItemMenuObserver); CleanupStack::Pop(self); return self; } @@ -98,7 +98,8 @@ MGlxItemMenuObserver& aItemMenuObserver ) { TRACER("GLX_CLOUD::CGlxTagsContextMenuControl::NewLC"); - CGlxTagsContextMenuControl* self = new (ELeave) CGlxTagsContextMenuControl( aItemMenuObserver); + CGlxTagsContextMenuControl* self = + new (ELeave) CGlxTagsContextMenuControl(aItemMenuObserver); CleanupStack::PushL( self ); self->ConstructL(); return self; @@ -107,8 +108,9 @@ // CGlxTagsContextMenuControl() // --------------------------------------------------------------------------- // -CGlxTagsContextMenuControl::CGlxTagsContextMenuControl(MGlxItemMenuObserver& aItemMenuObserver) - : iItemMenuObserver(aItemMenuObserver) +CGlxTagsContextMenuControl::CGlxTagsContextMenuControl( + MGlxItemMenuObserver& aItemMenuObserver) : + iItemMenuObserver(aItemMenuObserver) { TRACER("GLX_CLOUD::CGlxTagsContextMenuControl::CGlxTagsContextMenuControl"); //Nothing more to do for now @@ -120,35 +122,40 @@ void CGlxTagsContextMenuControl::ConstructL() { TRACER("GLX_CLOUD::CGlxTagsContextMenuControl::ConstructL"); - iUiUtility = CGlxUiUtility::UtilityL (); - CAlfControl::ConstructL(*(iUiUtility->Env()) ); + CGlxUiUtility* utility = CGlxUiUtility::UtilityL(); + CleanupClosePushL( *utility ); + iAlfEnv = utility->Env(); + CleanupStack::PopAndDestroy( utility ); + CAlfControl::ConstructL(*iAlfEnv); iTimer = CGlxBubbleTimer::NewL(this); iMainVisual = CAlfAnchorLayout::AddNewL(*this); iMainVisual->SetFlag(EAlfVisualFlagManualLayout); - iMainVisual->SetSize(TSize(KReqWidth, KGridHeight)); iMainVisual->SetPos(TAlfRealPoint(KDummyPoint)); - - iMainVisual->EnableBrushesL(ETrue); - - TRect outerRect(TRect(TPoint(KDummyPoint),TSize(KReqWidth, KGridHeight))); - TRect innerRect(outerRect); - innerRect.Shrink(KShrinkXCoord,KShrinkYCoord); - - CAlfFrameBrush* frameBrush = CAlfFrameBrush::NewLC(*(iUiUtility->Env()), - KAknsIIDQsnFrPopupSub ); - frameBrush->SetFrameRectsL(innerRect, outerRect); - - iMainVisual->Brushes()->AppendL(frameBrush,EAlfHasOwnership); - CleanupStack::Pop(frameBrush); - // Create a new 3x1 grid layout visual. - iGrid = CAlfGridLayout::AddNewL(*this, KNoOfColumns, KNumofMenuItems , - iMainVisual);//columns, rows + iGrid = CAlfGridLayout::AddNewL(*this, KNoOfColumns, KNumofMenuItems, + iMainVisual);//columns, rows //Finally create the menu list that will appear in screen CreateMenuListL(CreateFontL()); + CalculateMaxWidth(); + iMainVisual->SetSize(TSize(KWidthPadding + iMaxTextWidth, KGridHeight)); + + iMainVisual->EnableBrushesL(ETrue); + + TRect outerRect(TRect(TPoint(KDummyPoint), + TSize(KWidthPadding + iMaxTextWidth, KGridHeight))); + TRect innerRect(outerRect); + innerRect.Shrink(KShrinkXCoord, KShrinkYCoord); + + CAlfFrameBrush* frameBrush = CAlfFrameBrush::NewLC(*iAlfEnv, + KAknsIIDQsnFrPopupSub); + frameBrush->SetFrameRectsL(innerRect, outerRect); + + iMainVisual->Brushes()->AppendL(frameBrush, EAlfHasOwnership); + CleanupStack::Pop(frameBrush); + ShowItemMenu(EFalse); } // --------------------------------------------------------------------------- @@ -169,12 +176,6 @@ delete iTimer; iTimer = NULL; } - - if (iUiUtility) - { - iUiUtility->Close(); - iUiUtility = NULL; - } } // --------------------------------------------------------------------------- // CreateFont() @@ -185,7 +186,7 @@ TRACER("GLX_CLOUD::CGlxTagsContextMenuControl::CreateFont"); // Create a new style based on the required font - CAlfTextStyleManager& styleMan = iUiUtility->Env()->TextStyleManager(); + CAlfTextStyleManager& styleMan = iAlfEnv->TextStyleManager(); // remember its id for return later TInt id = styleMan.CreatePlatformTextStyleL(EAlfTextStyleNormal); @@ -210,8 +211,8 @@ TRgb color; //Gets the color of the text specific to skin - AknsUtils::GetCachedColor(AknsUtils::SkinInstance(), - color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG20 ); + AknsUtils::GetCachedColor(AknsUtils::SkinInstance(), color, + KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG20); //Loading the strings from rss HBufC* renameTitle = StringLoader::LoadLC( R_GLX_TAGS_RENAME_TITLE ); @@ -267,9 +268,9 @@ TInt rightDisplayableWidth = iViewableRect.iBr.iY - XPos; //always draw above - if(rightDisplayableWidth < KReqWidth) + if(rightDisplayableWidth < iMaxTextWidth) { - XPos = aPoint.iX - KReqWidth; + XPos = aPoint.iX - iMaxTextWidth; } if(upperDisplayableHeight < KGridHeight) { @@ -369,3 +370,23 @@ iViewableRect.SetRect(aRect.iTl.iX, aRect.iTl.iY, aRect.iBr.iX, aRect.iBr.iY); } +// --------------------------------------------------------------------------- +// CalculateMaxWidth() +// --------------------------------------------------------------------------- +// +void CGlxTagsContextMenuControl::CalculateMaxWidth() + { + TRACER("GLX_CLOUD::CGlxTagsContextMenuControl::CalculateMaxWidth"); + + iMaxTextWidth + = (iSlideshowTextVisual->TextExtents().iWidth + > iRenameTextVisual->TextExtents().iWidth + ? iSlideshowTextVisual->TextExtents().iWidth + : iRenameTextVisual->TextExtents().iWidth); + + iMaxTextWidth + = (iMaxTextWidth > iDeleteTextVisual->TextExtents().iWidth + ? iMaxTextWidth + : iDeleteTextVisual->TextExtents().iWidth); + + } diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp --- a/photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp Wed Apr 14 15:57:24 2010 +0300 @@ -100,5 +100,6 @@ LIBRARY glxtvout.lib LIBRARY gfxtrans.lib LIBRARY akntransitionutils.lib +LIBRARY ws32.lib // for RWsSession // EOF diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenbusyicon.h --- a/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenbusyicon.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenbusyicon.h Wed Apr 14 15:57:24 2010 +0300 @@ -18,7 +18,7 @@ #ifndef GLXFULLSCREENBUSYICON_H_ #define GLXFULLSCREENBUSYICON_H_ -#include +#include #include // Forward decleartion class CAlfEnv; diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h --- a/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h Wed Apr 14 15:57:24 2010 +0300 @@ -220,11 +220,6 @@ NGlxNFullScreenUIState::TUiState GetUiSate(); /* - * returns the Ui state - */ - void CreateScreenFurnitureL(); - - /* * Call back function for the CPeriodic */ static TInt TimeOut(TAny* aSelf); @@ -283,6 +278,12 @@ * navigate to main list */ void NavigateToMainListL(); + + /** + * Disable/enable the fullscreen toolbar + */ + void EnableFSToolbarL(TBool aEnable); + private: /** Softkey resource id's */ TFullScreenViewResourceIds iResourceIds; diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/fullscreenview/src/glxfullscreenbusyicon.cpp --- a/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenbusyicon.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenbusyicon.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -15,7 +15,7 @@ * */ -#include +#include #include // KDC_APP_RESOURCE_DIR #include #include // Glx logs diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp --- 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); + } + } + diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp --- a/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -388,11 +388,25 @@ tnSize.iWidth, tnSize.iHeight); TFileName resFile(KDC_APP_BITMAP_DIR); resFile.Append(KGlxIconsFilename); - CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_image_notcreated); - AknIconUtils::SetSize(bitmap, tnSize); - // Create Hg grid object - iHgGrid = CHgGrid::NewL (GetHgGridRect(),mediaCount,CGulIcon::NewL(bitmap)); + + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, + bitmap, mask, resFile, EMbmGlxiconsQgn_prop_image_notcreated, + EMbmGlxiconsQgn_prop_image_notcreated_mask); + __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer)); + __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer)); + + AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + AknIconUtils::SetSize(mask, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + + // Create Hg grid object + iHgGrid = CHgGrid::NewL(GetHgGridRect(), mediaCount, CGulIcon::NewL( + bitmap, mask)); + CleanupStack::Pop(mask); + CleanupStack::Pop(bitmap); } // Setting to MopParent to update background skin @@ -580,22 +594,45 @@ */ GLX_LOG_INFO2("CGlxGridViewContainer::SetIconsL - image_defaultthumbnail tnError(%d), i(%d)", tnError, index); - CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_image_notcreated); - AknIconUtils::SetSize(bitmap, setSize); - iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap)); + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, + bitmap, mask, resFile, EMbmGlxiconsQgn_prop_image_notcreated, + EMbmGlxiconsQgn_prop_image_notcreated_mask); + __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer)); + __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer)); + + AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + AknIconUtils::SetSize(mask, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + + iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap, mask)); + CleanupStack::Pop(mask); + CleanupStack::Pop(bitmap); } else if(KErrNone != tnError) { GLX_LOG_INFO2("CGlxGridViewContainer::SetIconsL - image_corrupted tnError(%d), i(%d)", tnError, index); - CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_image_corrupted); - AknIconUtils::SetSize(bitmap, setSize); - iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap)); + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, + bitmap, mask, resFile, EMbmGlxiconsQgn_prop_image_corrupted, + EMbmGlxiconsQgn_prop_image_corrupted_mask); + __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer)); + __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer)); + + AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + AknIconUtils::SetSize(mask, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + + iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap, mask)); + CleanupStack::Pop(mask); + CleanupStack::Pop(bitmap); } - if (item.IsDrmProtected()) { const TDesC& uri = item.Uri(); diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp --- a/photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -40,8 +40,8 @@ #include "glxgridviewcontainer.h" // For transition effects -#include -#include +#include +#include #include "glxgfxtranseffect.h" // For transition effects const TInt KGlxToolbarButtonUnLatched = 0; // Toolbar mark button's unlatched state defined in the rss file diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp --- a/photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -245,10 +245,23 @@ else if ( KErrNone != tnError && KErrNotSupported != tnError && KErrArgument != tnError ) { - CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_image_corrupted); - AknIconUtils::SetSize(bitmap, setSize); - iHgGrid->ItemL(aItemIndex).SetIcon(CGulIcon::NewL(bitmap)); + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, + bitmap, mask, resFile, + EMbmGlxiconsQgn_prop_image_corrupted, + EMbmGlxiconsQgn_prop_image_corrupted_mask); + __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer)); + __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer)); + + AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + AknIconUtils::SetSize(mask, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + + iHgGrid->ItemL(aItemIndex).SetIcon(CGulIcon::NewL(bitmap, mask)); + CleanupStack::Pop(mask); + CleanupStack::Pop(bitmap); } } @@ -316,7 +329,8 @@ { TRACER("CGlxGridViewMLObserver::HandleErrorL()"); - TInt bitmapId = EMbmGlxiconsQgn_prop_image_notcreated; + TInt bitmapId = EMbmGlxiconsQgn_prop_image_corrupted; + TInt maskId = EMbmGlxiconsQgn_prop_image_corrupted_mask; TInt flags = CHgItem::EHgItemFlagsNone ; for ( TInt i = 0; i < iMediaList.Count(); i++ ) @@ -331,10 +345,12 @@ { case KErrCANoRights:; // Err id = -17452 bitmapId = EMbmGlxiconsQgn_prop_image_notcreated; + maskId = EMbmGlxiconsQgn_prop_image_notcreated_mask; flags = CHgItem::EHgItemFlagsDrmRightsExpired; break; case KErrDiskFull: bitmapId = EMbmGlxiconsQgn_prop_image_notcreated; + maskId = EMbmGlxiconsQgn_prop_image_notcreated_mask; flags = CHgItem::EHgItemFlagsNone ; if (!iDiskErrorIntimated) { @@ -343,6 +359,7 @@ break; default: bitmapId = EMbmGlxiconsQgn_prop_image_corrupted; + maskId = EMbmGlxiconsQgn_prop_image_corrupted_mask; flags = CHgItem::EHgItemFlagsNone ; break; } @@ -350,14 +367,26 @@ TFileName resFile(KDC_APP_BITMAP_DIR); resFile.Append(KGlxIconsFilename); - CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, bitmapId); - AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize() ); + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, + bitmap, mask, resFile, bitmapId, maskId); + __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer)); + __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer)); - iHgGrid->ItemL(i).SetIcon(CGulIcon::NewL(bitmap), flags); + AknIconUtils::SetSize(bitmap, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + AknIconUtils::SetSize(mask, CHgGrid::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + + iHgGrid->ItemL(i).SetIcon(CGulIcon::NewL(bitmap, mask), flags); + CleanupStack::Pop(mask); + CleanupStack::Pop(bitmap); } } iHgGrid->RefreshScreen(iHgGrid->FirstIndexOnScreen()); } + // ---------------------------------------------------------------------------- // HandleCommandCompleteL // ---------------------------------------------------------------------------- diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/listview/inc/glxlistviewimp.h --- a/photosgallery/viewframework/views/listview/inc/glxlistviewimp.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/listview/inc/glxlistviewimp.h Wed Apr 14 15:57:24 2010 +0300 @@ -180,6 +180,20 @@ void HandleMMCInsertionL(); void HandleMMCRemovalL(); void HandleNavigationalStateChangedL(){}; + /** + * Cleans Up the cache for list view + */ + void CleanUpL(); + /** + * Updates the preview thumbnail + * @param aIndex index to be updated + */ + void UpdatePreviewL(TInt aIndex); + /** + * Helper function used by HandleError + * @param aError the error code to handle. + */ + void DoHandleErrorL( TInt /*aError*/ ); public: // from MGlxMediaListObserver void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); @@ -208,14 +222,16 @@ CGlxPreviewThumbnailBinding* iPreviewTNBinding; //Own - // Fetch context for retrieving title attribute - CGlxDefaultAttributeContext* iTitleAttributeContext; + // Fetch context for retrieving title attribute + CGlxAttributeContext* iTitleAttributeContext; // Fetch context for retrieving subtitle - CGlxDefaultAttributeContext* iSubtitleAttributeContext; + CGlxAttributeContext* iSubtitleAttributeContext; - // for thumbnail context - TGlxSequentialIterator iThumbnailIterator; + TGlxFromFocusOutwardIterator iThumbnailIterator; + + // Thumbnail Attrib context + CGlxAttributeContext* iThumbnailContext; /** Unique ID of this Avkon view */ TInt iViewUid; @@ -243,9 +259,6 @@ CGlxProgressIndicator* iProgressIndicator; - //Check for TN generation - TBool isTnGenerationComplete; - CActiveSchedulerWait* iSchedulerWait; CGlxMMCNotifier* iMMCNotifier; @@ -253,6 +266,8 @@ CGlxNavigationalState* iNavigationalState; TBool iMMCState; + + TSize iGridIconSize; }; #endif // C_GLXLISTVIEWIMP_H diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h --- a/photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h Wed Apr 14 15:57:24 2010 +0300 @@ -78,14 +78,16 @@ */ void ConstructL(); + +public: + /** * Scale the source bitmap to list size * aSrcBitmap - Source bitmap * aDestBitmap - Scaled destination bitmap */ void ScaleBitmapToListSizeL(CFbsBitmap* aSrcBitmap, CFbsBitmap* aDestBitmap); - -public: + void HandleItemChangedL(const CMPXCollectionPath& aPath,TBool aPopulateListTNs, TBool aIsRefreshNeeded, TBool aBackwardNavigation); void StartTimer(); diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp --- a/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -40,19 +40,21 @@ #include #include //StringLoader #include +#include +#include // For CGlxErrormanager +#include #include #include #include #include #include -#include // For transition effects -#include // For transition effects +#include // For transition effects +#include // For transition effects #include "glxgfxtranseffect.h" // For transition effects -const TInt KListDataWindowSize(25); -const TInt KNoOfPages(2); -const TInt KBufferTresholdSize(6); +const TInt KListDataWindowSize(16); +const TInt KNoOfPages(4); const TInt KGlxCollectionRootLevel = 1; @@ -65,7 +67,7 @@ CGlxListViewImp::CGlxListViewImp(TInt aViewUid, const TListViewResourceIds& aResourceIds) : iViewUid(aViewUid), iResourceIds(aResourceIds), iIsRefreshNeeded(EFalse), - iBackwardNavigation(EFalse), isTnGenerationComplete(ETrue) + iBackwardNavigation(EFalse) { } @@ -125,7 +127,10 @@ { toolbar->DisableToolbarL(ETrue); } - + CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); + CleanupClosePushL(*uiUtility); + iGridIconSize = uiUtility->GetGridIconSize(); + CleanupStack::PopAndDestroy(uiUtility); //Register the view to recieve toolbar events. ViewBase handles the events SetToolbarObserver(this); iMMCNotifier = CGlxMMCNotifier::NewL(*this); @@ -215,21 +220,34 @@ GlxSetAppState::SetState(EGlxInListView); // Separate contexts so that some attributes are loaded before others - iTitleAttributeContext = CGlxDefaultAttributeContext::NewL(); - iTitleAttributeContext->SetRangeOffsets( KListDataWindowSize, - KListDataWindowSize ); - iTitleAttributeContext->AddAttributeL( KMPXMediaGeneralTitle ); + iThumbnailIterator.SetRangeOffsets(KListDataWindowSize, + KListDataWindowSize); + iTitleAttributeContext = new (ELeave) CGlxAttributeContext( + &iThumbnailIterator); + iTitleAttributeContext->AddAttributeL(KMPXMediaGeneralTitle); + + iSubtitleAttributeContext = new (ELeave) CGlxAttributeContext( + &iThumbnailIterator); + iSubtitleAttributeContext->AddAttributeL( + KGlxMediaCollectionPluginSpecificSubTitle); - iSubtitleAttributeContext = CGlxDefaultAttributeContext::NewL(); - iSubtitleAttributeContext->SetRangeOffsets( KListDataWindowSize, - KListDataWindowSize ); - iSubtitleAttributeContext->AddAttributeL( - KGlxMediaCollectionPluginSpecificSubTitle ); + iMediaList->AddContextL(iTitleAttributeContext, KMaxTInt); + iMediaList->AddContextL(iSubtitleAttributeContext, KMaxTInt); + if (iMediaList->IdSpaceId(0) != KGlxIdSpaceIdRoot) + { + iThumbnailContext = new (ELeave) CGlxAttributeContext( + &iThumbnailIterator); + TMPXAttribute tnAttr(KGlxMediaIdThumbnail, + GlxFullThumbnailAttributeId(ETrue, iGridIconSize.iWidth, + iGridIconSize.iHeight)); + iThumbnailContext->SetDefaultSpec(iGridIconSize.iWidth, + iGridIconSize.iHeight); + iThumbnailContext->AddAttributeL(tnAttr); + iMediaList->AddContextL(iThumbnailContext, + KGlxFetchContextPriorityNormal); + } - iMediaList->AddContextL( iTitleAttributeContext, KMaxTInt ); - iMediaList->AddContextL( iSubtitleAttributeContext, KMaxTInt ); - - iMediaList->AddMediaListObserverL(this); + iMediaList->AddMediaListObserverL(this); TRect apRect = iEikonEnv->EikAppUi()->ApplicationRect(); iBgContext = CAknsBasicBackgroundControlContext::NewL( KAknsIIDQsnBgScreen,apRect,ETrue); @@ -241,18 +259,19 @@ iPreviewTNBinding = CGlxPreviewThumbnailBinding::NewL(*this); CreateListL(); - if (iPreviewTNBinding && iBackwardNavigation && iMediaList->FocusIndex() - == 0) - { - GLX_LOG_INFO("CGlxListViewImp::DoMLViewActivateL() - HandleItemChangedL()"); - iPopulateListTNs = ETrue; - CMPXCollectionPath* path = iMediaList->PathLC( - NGlxListDefs::EPathFocusOrSelection); - iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs, - iIsRefreshNeeded, iBackwardNavigation); - CleanupStack::PopAndDestroy(path); - } + if (iMediaList->IdSpaceId(0) == KGlxIdSpaceIdRoot && iPreviewTNBinding + && iBackwardNavigation && iMediaList->FocusIndex() == 0) + { + GLX_LOG_INFO("CGlxListViewImp::DoMLViewActivateL() - HandleItemChangedL()"); + iPopulateListTNs = ETrue; + CMPXCollectionPath* path = iMediaList->PathLC( + NGlxListDefs::EPathFocusOrSelection); + iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs, + iIsRefreshNeeded, iBackwardNavigation); + CleanupStack::PopAndDestroy(path); + } iProgressIndicator = CGlxProgressIndicator::NewL(*this); + iProgressIndicator->ShowProgressbarL(); } // --------------------------------------------------------------------------- @@ -266,10 +285,10 @@ if(StatusPane()) { if(iTitletext) - { - delete iTitletext; - iTitletext = NULL; - } + { + delete iTitletext; + iTitletext = NULL; + } CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane(); TRAP_IGNORE(CAknTitlePane* titlePane = ( CAknTitlePane* )statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle )); @@ -283,18 +302,21 @@ iMediaList->RemoveContext( iSubtitleAttributeContext ); delete iSubtitleAttributeContext; iSubtitleAttributeContext = NULL; - + if (iMediaList->IdSpaceId(0) != KGlxIdSpaceIdRoot) + { + iMediaList->RemoveContext(iThumbnailContext); + delete iThumbnailContext; + iThumbnailContext = NULL; + } iMediaList->RemoveMediaListObserver( this ); delete iPreviewTNBinding; iPreviewTNBinding = NULL; DestroyListViewWidget(); -#ifndef __WINSCW__ if(iProgressIndicator) { delete iProgressIndicator; iProgressIndicator = NULL; } -#endif } // --------------------------------------------------------------------------- @@ -421,18 +443,26 @@ const TGlxMedia& item = iMediaList->Item(i); iList->ItemL(i).SetTitleL(item.Title()); iList->ItemL(i).SetTextL(item.SubTitle()); + UpdatePreviewL(i); + iList->RefreshScreen(i); } iList->RefreshScreen(visIndex); - - if ( visIndex != iLastFocusedIndex && !iPopulateListTNs) + if(iMediaList->IdSpaceId(0) == KGlxIdSpaceIdRoot) { - GLX_LOG_INFO1("CGlxListViewImp::RequestL - SetFocusL()" - " iPopulateListTNs(%d)", iPopulateListTNs); - GLX_LOG_INFO1("CGlxListViewImp::RequestL - SetFocusL()" - " visIndex(%d)", visIndex); - iPopulateListTNs = ETrue; - iStartIndex = KErrNotFound; + if ( visIndex != iLastFocusedIndex && !iPopulateListTNs) + { + GLX_LOG_INFO1("CGlxListViewImp::RequestL - SetFocusL()" + " iPopulateListTNs(%d)", iPopulateListTNs); + GLX_LOG_INFO1("CGlxListViewImp::RequestL - SetFocusL()" + " visIndex(%d)", visIndex); + iPopulateListTNs = ETrue; + iStartIndex = KErrNotFound; + iMediaList->SetFocusL(NGlxListDefs::EAbsolute, visIndex); + } + } + else + { iMediaList->SetFocusL(NGlxListDefs::EAbsolute, visIndex); } } @@ -458,23 +488,15 @@ TRACER("CGlxListViewImp::HandleOpenL"); #ifndef __WINSCW__ - TInt leftVariable = 0; - TRAPD(err,leftVariable = iUiUtility->GetItemsLeftCountL()); - GLX_LOG_INFO1("CGlxListViewImp RProperty::Get leftVariable %d",leftVariable); - isTnGenerationComplete = (leftVariable)?EFalse:ETrue; - GLX_LOG_INFO1("CGlxListViewImp isTnGenerationComplete %d",isTnGenerationComplete); - if(err != KErrNone) + GLX_LOG_INFO1("CGlxListViewImp RProperty::Get leftVariable %d",(iUiUtility->GetItemsLeftCount())); + + if (iUiUtility->GetItemsLeftCount()) { - GLX_LOG_INFO1("CGlxListViewImp RProperty::Get errorcode %d",err); - } - if(!isTnGenerationComplete) - { - if(iProgressIndicator) + if(!iProgressIndicator) { - delete iProgressIndicator; - iProgressIndicator = NULL; + iProgressIndicator = CGlxProgressIndicator::NewL(*this); } - iProgressIndicator = CGlxProgressIndicator::NewL(*this); + iProgressIndicator->ShowProgressbarL(); if(iSchedulerWait) { delete iSchedulerWait; @@ -484,11 +506,11 @@ iSchedulerWait->Start(); } #endif - if( iNextViewActivationEnabled && ( aIndex >= 0 && aIndex < - iMediaList->Count()) && isTnGenerationComplete ) - { - //Delete the PreviewTNMBinding as in forward navigation - //we do not get the medialist callback. + if (iNextViewActivationEnabled && (aIndex >= 0 && aIndex + < iMediaList->Count()) && (iUiUtility->GetItemsLeftCount() == 0)) + { + //Delete the PreviewTNMBinding as in forward navigation + //we do not get the medialist callback. delete iPreviewTNBinding; iPreviewTNBinding = NULL; @@ -497,11 +519,10 @@ iNextViewActivationEnabled = EFalse; iUiUtility->SetViewNavigationDirection(EGlxNavigationForwards); //Navigate to the next view - CMPXCollectionPath* path = - iMediaList->PathLC( NGlxListDefs::EPathFocusOrSelection ); + CMPXCollectionPath* path = iMediaList->PathLC( + NGlxListDefs::EPathFocusOrSelection); iCollectionUtility->Collection().OpenL(*path); CleanupStack::PopAndDestroy(path); - } } @@ -608,14 +629,17 @@ * The callback is not given because the setfocus index is same as the focused index * in medialist. */ - if(count==1) - { - CMPXCollectionPath* path = iMediaList->PathLC( - NGlxListDefs::EPathFocusOrSelection ); - GLX_LOG_INFO("CGlxListViewImp::PreviewTNReadyL() - HandleItemChangedL()"); - iPreviewTNBinding->HandleItemChangedL(*path, - iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation); - CleanupStack::PopAndDestroy( path ); + if(count==1 ) + { + if(id == KGlxIdSpaceIdRoot ) + { + CMPXCollectionPath* path = iMediaList->PathLC( + NGlxListDefs::EPathFocusOrSelection ); + GLX_LOG_INFO("CGlxListViewImp::PreviewTNReadyL() - HandleItemChangedL()"); + iPreviewTNBinding->HandleItemChangedL(*path, + iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation); + CleanupStack::PopAndDestroy( path ); + } } } } @@ -639,43 +663,52 @@ TFileName resFile(KDC_APP_BITMAP_DIR); resFile.Append(KGlxIconsFilename); - CFbsBitmap* bitmap; - CMPXCollectionPath* path = iMediaList->PathLC( NGlxListDefs::EPathParent ); + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + TInt bitmapId = 0; + TInt maskId = 0; + CMPXCollectionPath* path = iMediaList->PathLC( + NGlxListDefs::EPathParent); if (path->Id() == KGlxCollectionPluginAlbumsImplementationUid) { - bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_photo_album_large); - AknIconUtils::SetSize(bitmap, - CHgDoubleGraphicListFlat::PreferredImageSize()); + bitmapId = EMbmGlxiconsQgn_prop_photo_album_large; + maskId = EMbmGlxiconsQgn_prop_photo_album_large_mask; } else if (path->Id() == KGlxCollectionPluginMonthsImplementationUid) { - bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_photo_calendar_large); - AknIconUtils::SetSize(bitmap, - CHgDoubleGraphicListFlat::PreferredImageSize()); + bitmapId = EMbmGlxiconsQgn_prop_photo_calendar_large; + maskId = EMbmGlxiconsQgn_prop_photo_calendar_large_mask; } else { - bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_image_notcreated); - AknIconUtils::SetSize(bitmap, - CHgDoubleGraphicListFlat::PreferredImageSize()); + bitmapId = EMbmGlxiconsQgn_prop_image_notcreated; + maskId = EMbmGlxiconsQgn_prop_image_notcreated_mask; } - - iList = CHgDoubleGraphicListFlat::NewL( - ClientRect(), - mediaCount, - CGulIcon::NewL(bitmap) ); + + AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, + bitmap, mask, resFile, bitmapId, maskId); + __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer)); + __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer)); + AknIconUtils::SetSize(bitmap, + CHgDoubleGraphicListFlat::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + AknIconUtils::SetSize(mask, + CHgDoubleGraphicListFlat::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + + iList = CHgDoubleGraphicListFlat::NewL(ClientRect(), mediaCount, + CGulIcon::NewL(bitmap, mask)); + CleanupStack::Pop(mask); + CleanupStack::Pop(bitmap); iList->SetMopParent(this); iList->SetSelectionObserver(*this); - // Enable Buffer support - iList->EnableScrollBufferL(*this, (KNoOfPages * KBufferTresholdSize), - KBufferTresholdSize); - + TInt items = iList->ItemsOnScreen(); + // Enable Buffer support + iList->EnableScrollBufferL(*this, KNoOfPages * items, items); + if (iUiUtility->ViewNavigationDirection() == EGlxNavigationBackwards) { GLX_DEBUG1("CGlxListViewImp::CreateListL() - SetEmptyTextL()"); @@ -816,23 +849,41 @@ == EGlxNavigationBackwards) { iIsRefreshNeeded = ETrue; + if(iMediaList->IdSpaceId(0) != KGlxIdSpaceIdRoot) + { + CleanUpL(); + } } - + if(iMediaList->IdSpaceId(0) != KGlxIdSpaceIdRoot) + { + UpdatePreviewL(aItemIndex); + } // Set iPopulateListTNs to ETrue and refresh all the items in // list view if subtitle is updated - if (iPreviewTNBinding && ((!iPopulateListTNs && aItemIndex + else if (iPreviewTNBinding && ((!iPopulateListTNs && aItemIndex == aList->Count() - 1) || (iIsRefreshNeeded))) { iPopulateListTNs = ETrue; iStartIndex = KErrNotFound; CMPXCollectionPath* path = iMediaList->PathLC( NGlxListDefs::EPathFocusOrSelection); - GLX_LOG_INFO("CGlxListViewImp::HandleAttributesAvailableL() - HandleItemChangedL()"); + GLX_LOG_INFO("CGlxListViewImp::HandleAttributesAvailableL() - HandleItemChangedL()"); iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation); - CleanupStack::PopAndDestroy(path); + CleanupStack::PopAndDestroy(path); } } + TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, + GlxFullThumbnailAttributeId(ETrue, iGridIconSize.iWidth, + iGridIconSize.iHeight)); + if (KErrNotFound != aAttributes.Find(thumbnailAttribute, match)) + { + if (iMediaList->IdSpaceId(0) != KGlxIdSpaceIdRoot) + { + UpdatePreviewL(aItemIndex); + iIsRefreshNeeded = EFalse; + } + } } // ---------------------------------------------------------------------------- @@ -843,22 +894,24 @@ TFocusChangeType /*aType*/, TInt /*aNewIndex*/, TInt /*aOldIndex*/, MGlxMediaList* /*aList*/ ) { - TRACER( "CGlxListViewImp::HandleFocusChangedL"); - + TRACER( "CGlxListViewImp::HandleFocusChangedL"); if (iPreviewTNBinding && iPopulateListTNs) { - CMPXCollectionPath* path = iMediaList->PathLC( - NGlxListDefs::EPathFocusOrSelection); - if (!iBackwardNavigation && path->Levels() == KGlxCollectionRootLevel - && path->Id(0) == KGlxCollectionPluginMonthsImplementationUid) - { - CleanupStack::PopAndDestroy(path); - return; - } - GLX_LOG_INFO("CGlxListViewImp::HandleFocusChangedL() - HandleItemChangedL()"); - iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs, - iIsRefreshNeeded, iBackwardNavigation); - CleanupStack::PopAndDestroy(path); + if(iMediaList->IdSpaceId(0) == KGlxIdSpaceIdRoot) + { + CMPXCollectionPath* path = iMediaList->PathLC( + NGlxListDefs::EPathFocusOrSelection); + if (!iBackwardNavigation && path->Levels() == KGlxCollectionRootLevel + && path->Id(0) == KGlxCollectionPluginMonthsImplementationUid) + { + CleanupStack::PopAndDestroy(path); + return; + } + GLX_LOG_INFO("CGlxListViewImp::HandleFocusChangedL() - HandleItemChangedL()"); + iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs, + iIsRefreshNeeded, iBackwardNavigation); + CleanupStack::PopAndDestroy(path); + } } } @@ -885,9 +938,29 @@ // HandleError // ---------------------------------------------------------------------------- // -void CGlxListViewImp::HandleError( TInt /*aError*/ ) +void CGlxListViewImp::HandleError( TInt aError ) + { + TRACER( "CGlxListViewImp::HandleError"); + TRAP_IGNORE( DoHandleErrorL( aError ) ); + } + +// ---------------------------------------------------------------------------- +// DoHandleErrorL +// ---------------------------------------------------------------------------- +// +void CGlxListViewImp::DoHandleErrorL(TInt /*aError*/) { - + TRACER( "CGlxListViewImp::DoHandleErrorL"); + for (TInt i = 0; i < iMediaList->Count(); i++) + { + const TGlxMedia& item = iMediaList->Item(i); + TInt tnError = GlxErrorManager::HasAttributeErrorL(item.Properties(), + KGlxMediaIdThumbnail); + if (tnError != KErrNone) + { + SetDefaultThumbnailL(i); + } + } } // ---------------------------------------------------------------------------- @@ -950,7 +1023,10 @@ void CGlxListViewImp::SetDefaultThumbnailL(TInt aIndex) { TRACER("CGlxListViewImp::SetDefaultThumbnail"); - CFbsBitmap* defaultBitmap = NULL; + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + TInt bitmapId = 0; + TInt maskId = 0; TFileName resFile(KDC_APP_BITMAP_DIR); resFile.Append(KGlxIconsFilename); @@ -967,28 +1043,28 @@ switch(aIndex) { case EGlxListItemAll: - defaultBitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_photo_all_large); - AknIconUtils::SetSize(defaultBitmap, - CHgDoubleGraphicListFlat::PreferredImageSize()); + { + bitmapId = EMbmGlxiconsQgn_prop_photo_all_large; + maskId = EMbmGlxiconsQgn_prop_photo_all_large_mask; + } break; case EGlxListItemMonth: - defaultBitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_photo_calendar_large); - AknIconUtils::SetSize(defaultBitmap, - CHgDoubleGraphicListFlat::PreferredImageSize()); + { + bitmapId = EMbmGlxiconsQgn_prop_photo_calendar_large; + maskId = EMbmGlxiconsQgn_prop_photo_calendar_large_mask; + } break; case EGlxListItemAlbum: - defaultBitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_photo_album_large); - AknIconUtils::SetSize(defaultBitmap, - CHgDoubleGraphicListFlat::PreferredImageSize()); + { + bitmapId = EMbmGlxiconsQgn_prop_photo_album_large; + maskId = EMbmGlxiconsQgn_prop_photo_album_large_mask; + } break; case EGlxLIstItemTag: - defaultBitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_photo_tag_large); - AknIconUtils::SetSize(defaultBitmap, - CHgDoubleGraphicListFlat::PreferredImageSize()); + { + bitmapId = EMbmGlxiconsQgn_prop_photo_tag_large; + maskId = EMbmGlxiconsQgn_prop_photo_tag_large_mask; + } break; default: break; @@ -998,34 +1074,43 @@ { GLX_LOG_INFO1("CGlxListViewImp::SetDefaultThumbnail - For other list view " "aIndex %d",aIndex); - CMPXCollectionPath* path = iMediaList->PathLC( NGlxListDefs::EPathParent ); + CMPXCollectionPath* path = iMediaList->PathLC( + NGlxListDefs::EPathParent); if(path->Id(0) == KGlxCollectionPluginAlbumsImplementationUid) { - defaultBitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_photo_album_large); - AknIconUtils::SetSize(defaultBitmap, - CHgDoubleGraphicListFlat::PreferredImageSize()); + bitmapId = EMbmGlxiconsQgn_prop_photo_album_large; + maskId = EMbmGlxiconsQgn_prop_photo_album_large_mask; } else if(path->Id(0) == KGlxCollectionPluginMonthsImplementationUid) { - defaultBitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_photo_calendar_large); - AknIconUtils::SetSize(defaultBitmap, - CHgDoubleGraphicListFlat::PreferredImageSize()); + bitmapId = EMbmGlxiconsQgn_prop_photo_calendar_large; + maskId = EMbmGlxiconsQgn_prop_photo_calendar_large_mask; } else { - defaultBitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_image_notcreated); - AknIconUtils::SetSize(defaultBitmap, - CHgDoubleGraphicListFlat::PreferredImageSize()); + bitmapId = EMbmGlxiconsQgn_prop_image_notcreated; + maskId = EMbmGlxiconsQgn_prop_image_notcreated_mask; } CleanupStack::PopAndDestroy(path); } - iList->ItemL(aIndex).SetIcon(CGulIcon::NewL(defaultBitmap)); + + AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, bitmap, + mask, resFile, bitmapId, maskId); + __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer)); + __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer)); + + AknIconUtils::SetSize(bitmap, + CHgDoubleGraphicListFlat::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + AknIconUtils::SetSize(mask, + CHgDoubleGraphicListFlat::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved); + + iList->ItemL(aIndex).SetIcon(CGulIcon::NewL(bitmap, mask)); + CleanupStack::Pop(mask); + CleanupStack::Pop(bitmap); } - // ---------------------------------------------------------------------------- // HandleDialogDismissedL // ---------------------------------------------------------------------------- @@ -1033,7 +1118,6 @@ void CGlxListViewImp::HandleDialogDismissedL() { TRACER("CGlxListViewImp::HandleDialogDismissedL()"); - isTnGenerationComplete = ETrue; if(iSchedulerWait) { iSchedulerWait->AsyncStop(); @@ -1086,12 +1170,50 @@ void CGlxListViewImp::NavigateToMainListL() { TRACER("CGlxListViewImp::NavigateToMainListL()"); - CMPXCollectionPath* naviState = iNavigationalState->StateLC(); - GLX_LOG_INFO1("From listview level = %d",naviState->Levels()); -// if ( naviState->Levels() >= 1) + ProcessCommandL(EAknSoftkeyClose); + } +// ---------------------------------------------------------------------------- +// CleanUpL +// ---------------------------------------------------------------------------- +// +void CGlxListViewImp::CleanUpL() + { + GLX_LOG_INFO("CGlxListViewImp::CleanUpL()"); + MGlxCache* cacheManager = MGlxCache::InstanceL(); + for (TInt i = 0; i < iMediaList->Count(); i++) { - ProcessCommandL(EAknSoftkeyClose); + cacheManager->ForceCleanupMedia(iMediaList->IdSpaceId(0), + iMediaList->Item(i).Id()); } - CleanupStack::PopAndDestroy(naviState); + cacheManager->Close(); } + +// ---------------------------------------------------------------------------- +// UpdatePreviewL +// ---------------------------------------------------------------------------- +// +void CGlxListViewImp::UpdatePreviewL(TInt aIndex) + { + TRACER("CGlxListViewImp::UpdatePreviewL()"); + if (aIndex >= 0 && aIndex < iMediaList->Count()) + { + TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, + GlxFullThumbnailAttributeId(ETrue, iGridIconSize.iWidth, + iGridIconSize.iHeight)); + GLX_LOG_INFO1("CGlxListViewImp::UpdatePreviewL(aIndex = %d)", aIndex); + const TGlxMedia& item = iMediaList->Item(aIndex); + const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( + thumbnailAttribute); + if (value) + { + CFbsBitmap* bitmap = new (ELeave) CFbsBitmap; + CleanupStack::PushL(bitmap); + iPreviewTNBinding->ScaleBitmapToListSizeL(value->iBitmap, bitmap); + iList->ItemL(aIndex).SetIcon(CGulIcon::NewL(bitmap)); + iList->RefreshScreen(aIndex); + CleanupStack::Pop(bitmap); + } + } + } + // End of File diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp --- a/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -347,6 +347,7 @@ //----------------------------------------------------------------------------- void CGlxMetadataContainer::HandleListboxChangesL() { + TRACER("CGlxMetadataContainer::HandleListboxChangesL"); if(iItemMediaList->Count() == 0) { return; @@ -1109,14 +1110,13 @@ // ---------------------------------------------------------------------------- // void CGlxMetadataContainer::HandleCommandCompleteL(TAny* aSessionId, - CMPXCommand* /*aCommandResult*/, TInt aError, MGlxMediaList* aList) + CMPXCommand* aCommandResult, TInt aError, MGlxMediaList* aList) { TRACER("CGlxMetadataContainer::HandleCommandCompleteL()"); //To rename the uri in File System if(aError == KErrNone) { - TInt index = ListBox()->CurrentItemIndex(); - if(aList == iItemMediaList && index == ENameItem) + if(aList == iItemMediaList && aCommandResult->IsSupported(KMPXMediaGeneralTitle)) { iItemMediaList->SetFocusL(NGlxListDefs::EAbsolute,0); const TGlxMedia& media = iItemMediaList->Item(0); diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h --- a/photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h Wed Apr 14 15:57:24 2010 +0300 @@ -77,6 +77,7 @@ TInt aOldIndex, MGlxMediaList* aList); void HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList); void HandleMessageL(const CMPXMessage& aMessage, MGlxMediaList* aList); + void HandlePopulatedL( MGlxMediaList* aList ); private: /* @@ -90,6 +91,12 @@ * aLatched ETrue if the command button needs to be latched. */ void EnableLatch( TInt aCommandId, TInt aLatched ); + + /* + * Set toolbar items dimmed. + * @param aDimmed Flag for the toolbar items to be dimmed. + */ + void SetToolbarItemsDimmed(TBool aDimmed); private: CAknToolbar* iToolbar; diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/viewbase/inc/glxviewbase.h --- a/photosgallery/viewframework/views/viewbase/inc/glxviewbase.h Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/viewbase/inc/glxviewbase.h Wed Apr 14 15:57:24 2010 +0300 @@ -230,6 +230,12 @@ */ CAknTitlePane* GetTitlePaneL(); + /* + * Set toolbar items dimmed. + * @param aDimmed Flag for the toolbar items to be dimmed. + */ + void SetToolbarItemsDimmed(TBool aDimmed); + protected: /** * Optionally implemented by sub-classes to prepare command handlers. diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp --- a/photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -23,6 +23,7 @@ #include // For Toolbar #include // For Command ids #include // For Logs +#include // For Logs #include #include @@ -63,8 +64,6 @@ iToolbar = aToolbar; iAttributeAvailable = EFalse; - iToolbar->SetDimmed(ETrue); - iToolbar->DrawNow(); aList.AddMediaListObserverL ( this ); } @@ -116,8 +115,7 @@ if( aList->Count() <= 0 ) { - iToolbar->SetDimmed(ETrue); - iToolbar->DrawNow(); + SetToolbarItemsDimmed(ETrue); } } @@ -153,40 +151,15 @@ // HandleFocusChangedL //---------------------------------------------------------------------------- // -void CGlxToolbarController::HandleFocusChangedL(NGlxListDefs::TFocusChangeType /*aType*/, - TInt aNewIndex, TInt /*aOldIndex*/, - MGlxMediaList* aList) +void CGlxToolbarController::HandleFocusChangedL( + NGlxListDefs::TFocusChangeType /*aType*/, TInt /*aNewIndex*/, + TInt /*aOldIndex*/, MGlxMediaList* aList) { TRACER("CGlxToolbarController::HandleFocusChangedL"); - - // If new index is not equal to -1 (i.e., if there are some items present), - // then check the media item - if( (aNewIndex == aList->FocusIndex()) && (KErrNotFound != aNewIndex) ) + if (aList->Count() <= 0) { - //Get the current media item from medialist - const TGlxMedia& mediaItem = aList->Item(aList->FocusIndex()); - //Check whether media item is a system item, for example Favourites album - TBool isSystemItem = EFalse; - mediaItem.GetSystemItem(isSystemItem); - if( mediaItem.IsStatic() ) - { - iToolbar->SetDimmed(ETrue); - } - else if( iToolbar->IsDimmed() ) - { - iToolbar->SetDimmed(EFalse); - } - if( isSystemItem ) - { - iToolbar->SetItemDimmed( EGlxCmdRename, ETrue, ETrue ); - } - else - { - iToolbar->SetItemDimmed( EGlxCmdRename, EFalse, ETrue ); - } + SetToolbarItemsDimmed(ETrue); } - //DrawNow must be called since SetDimmed does not redraw the toolbar - iToolbar->DrawNow(); } //---------------------------------------------------------------------------- @@ -232,16 +205,17 @@ // void CGlxToolbarController::SetStatusOnViewActivationL( MGlxMediaList* aList ) { - TRACER("CGlxToolbarController::SetStatusOnViewActivationL"); - - // 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. - if( !iAttributeAvailable && (aList->Count(NGlxListDefs::ECountNonStatic) > 0)) - { - SetStatusL(aList); - } - } + TRACER("CGlxToolbarController::SetStatusOnViewActivationL"); + GLX_LOG_INFO1("CGlxToolbarController::SetStatusOnViewActivationL(%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. + if (!iAttributeAvailable) + { + SetStatusL(aList); + } + } //---------------------------------------------------------------------------- //SetStatusL @@ -249,36 +223,25 @@ // void CGlxToolbarController::SetStatusL(MGlxMediaList* aList) { - TRACER("CGlxToolbarController::SetStatusL"); - if(KErrNotFound != aList->FocusIndex()) - { - //Get the current media item from medialist - const TGlxMedia& mediaItem = aList->Item(aList->FocusIndex()); - - //Check whether media item is a system item, for example Favourites album - TBool isSystemItem = EFalse; - mediaItem.GetSystemItem(isSystemItem); + TRACER("CGlxToolbarController::SetStatusL"); - if(!mediaItem.IsStatic() && iToolbar->IsDimmed()) - { - //Activate (Undim) the toolbar if item in focus is not static - iToolbar->SetDimmed(EFalse); - } - - - if( isSystemItem ) - { - iToolbar->SetItemDimmed( EGlxCmdRename, ETrue, ETrue ); - } - else - { - iToolbar->SetItemDimmed( EGlxCmdRename, EFalse, ETrue ); - } - } - - //DrawNow must be called since SetDimmed does not redraw the toolbar - iToolbar->DrawNow(); - } + 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); + } + CleanupStack::PopAndDestroy(navigationalState); + } + } //---------------------------------------------------------------------------- // EnableLatch @@ -301,5 +264,52 @@ } } } + +// ---------------------------------------------------------------------------- +// HandlePopulatedL +// ---------------------------------------------------------------------------- +// +void CGlxToolbarController::HandlePopulatedL( MGlxMediaList* aList ) + { + TRACER("CGlxToolbarController::HandlePopulatedL()"); + if (aList->Count() <= 0) + { + SetToolbarItemsDimmed(ETrue); + } + } + +// ---------------------------------------------------------------------------- +// SetToolbarItemsDimmed +// ---------------------------------------------------------------------------- +// +void CGlxToolbarController::SetToolbarItemsDimmed(TBool aDimmed) + { + TRACER("CGlxToolbarController::SetToolbarItemsDimmed()"); + if (iToolbar) + { + iToolbar->SetItemDimmed(EGlxCmdSlideshowPlay, aDimmed, ETrue); + iToolbar->SetItemDimmed(EGlxCmdStartMultipleMarking, aDimmed, ETrue); + + if (!aDimmed) + { + CAknButton* uploadButton = + static_cast (iToolbar->ControlOrNull( + EGlxCmdUpload)); + TBool dimmed = EFalse; + if (uploadButton) + { + // Get current button state + CAknButtonState* currentState = uploadButton->State(); + dimmed = uploadButton->IsDimmed(); + iToolbar->SetItemDimmed(EGlxCmdUpload, dimmed, ETrue); + } + } + else + { + iToolbar->SetItemDimmed(EGlxCmdUpload, aDimmed, ETrue); + } + } + } + //end of file diff -r bcb43dc84c44 -r 2dac0fdba72b photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp --- a/photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp Wed Mar 31 21:31:03 2010 +0300 +++ b/photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp Wed Apr 14 15:57:24 2010 +0300 @@ -289,8 +289,7 @@ else { // Deactivate the toolbar untill the view gets activated properly. - toolbar->SetDimmed(ETrue); - toolbar->DrawNow(); + SetToolbarItemsDimmed(ETrue); } toolbar->SetToolbarVisibility(ETrue); @@ -539,25 +538,46 @@ CAknToolbar* toolbar = GetToolBar(); if(toolbar) { - //Here after the toolbar cmd is processed it is enabled - //back. For share the toolbar state should be same as it was - //earlier, so we take the current state and reset back after - //the command is processed. + CAknButton* slideshowButton = + static_cast (toolbar->ControlOrNull(EGlxCmdSlideshow)); + TBool slideshowdimmed = EFalse; + + //Here after the toolbar cmd is processed it is enabled + //back. For share the toolbar state should be same as it was + //earlier, so we take the current state and reset back after + //the command is processed. CAknButton* uploadButton = static_cast (toolbar->ControlOrNull(EGlxCmdUpload)); - TBool dimmed = EFalse; + TBool uploaddimmed = EFalse; + + CAknButton* markButton = + static_cast (toolbar->ControlOrNull(EGlxCmdStartMultipleMarking)); + TBool markButtondimmed = EFalse; + + if(slideshowButton) + { + // Get current button state + CAknButtonState* currentState = slideshowButton->State(); + slideshowdimmed = slideshowButton->IsDimmed(); + } + + if(markButton) + { + // Get current button state + CAknButtonState* currentState = markButton->State(); + markButtondimmed = markButton->IsDimmed(); + } if(uploadButton) { // Get current button state CAknButtonState* currentState = uploadButton->State(); - dimmed = uploadButton->IsDimmed(); + uploaddimmed = uploadButton->IsDimmed(); } - + // Deactivate the toolbar. Don't accept the toolbar input when the command // execution is already in progress. - toolbar->SetDimmed(ETrue); - toolbar->DrawNow(); + SetToolbarItemsDimmed(ETrue); // Execute the command recieved. ProcessCommandL(aCommand); @@ -565,8 +585,18 @@ // Activate back the toolbar and set it's state properly // after command execution. SetToolbarStateL(); + + if(!markButtondimmed) + { + toolbar->SetItemDimmed(EGlxCmdStartMultipleMarking, EFalse, ETrue); + } + + if(!slideshowdimmed) + { + toolbar->SetItemDimmed(EGlxCmdSlideshowPlay, EFalse, ETrue); + } - if(dimmed || (aCommand == EGlxCmdStartMultipleMarking)) + if(uploaddimmed || (aCommand == EGlxCmdStartMultipleMarking)) { toolbar->SetItemDimmed(EGlxCmdUpload, ETrue, ETrue); } @@ -675,5 +705,20 @@ InitAnimationL(EGlxViewAnimationEntry); } +// ---------------------------------------------------------------------------- +// SetToolbarItemsDimmed +// ---------------------------------------------------------------------------- +// +void CGlxViewBase::SetToolbarItemsDimmed(TBool aDimmed) + { + TRACER("CGlxViewBase::SetToolbarItemsDimmed()"); + CAknToolbar* toolbar = GetToolBar(); + if (toolbar) + { + toolbar->SetItemDimmed(EGlxCmdSlideshowPlay, aDimmed, ETrue); + toolbar->SetItemDimmed(EGlxCmdStartMultipleMarking, aDimmed, ETrue); + toolbar->SetItemDimmed(EGlxCmdUpload, aDimmed, ETrue); + } + }