--- a/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/group/ui_metaDataDialog_DoxyFile.txt Fri Feb 19 22:51:01 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/group/ui_metaDataDialog_DoxyFile.txt Fri Mar 12 15:42:44 2010 +0200
@@ -2,9 +2,9 @@
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
-# under the terms of the License "Symbian Foundation License v1.0"
+# under the terms of the License "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
-# at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Nokia Corporation - initial contribution.
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/group/ut_collectioninfo_DoxyFile.txt Fri Feb 19 22:51:01 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/group/ut_collectioninfo_DoxyFile.txt Fri Mar 12 15:42:44 2010 +0200
@@ -2,9 +2,9 @@
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
-# under the terms of the License "Symbian Foundation License v1.0"
+# under the terms of the License "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
-# at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Nokia Corporation - initial contribution.
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/group/ut_collectionmanager_DoxyFile.txt Fri Feb 19 22:51:01 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/group/ut_collectionmanager_DoxyFile.txt Fri Mar 12 15:42:44 2010 +0200
@@ -2,9 +2,9 @@
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
-# under the terms of the License "Symbian Foundation License v1.0"
+# under the terms of the License "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
-# at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Nokia Corporation - initial contribution.
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -291,8 +291,7 @@
#ifdef USE_S60_TNM
iTnEngine = CThumbnailManager::NewL( *this);
- iTnEngine->SetDisplayModeL( EColor16MU );
-
+ iTnEngine->SetDisplayModeL( EColor16M );
iTnRequestInProgress = EFalse;
#else
iThumbnailCreator = CGlxtnThumbnailCreator::InstanceL();
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -92,8 +92,8 @@
_LIT(KFileNameFormatString, "(%+02u)");
// Items to be deleted from File server at a time before calling scheduler wait
-const TInt KDeletedItemCount = 50;
-const TInt KDeleteOperationInterval = 200000;
+const TInt KDeletedItemCount = 10;
+const TInt KDeleteOperationInterval = 1000;
// ----------------------------------------------------------------------------
// Destructor
--- a/photosgallery/commonui/bwins/glxcommonuiu.def Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/commonui/bwins/glxcommonuiu.def Fri Mar 12 15:42:44 2010 +0200
@@ -2,34 +2,30 @@
?PostError@CGlxErrorPoster@@QAEXH@Z @ 1 NONAME ; void CGlxErrorPoster::PostError(int)
?InstanceL@CGlxErrorPoster@@SAPAV1@XZ @ 2 NONAME ; class CGlxErrorPoster * CGlxErrorPoster::InstanceL(void)
?ActivatePreviousViewL@CGlxNavigationalState@@QAEXXZ @ 3 NONAME ; void CGlxNavigationalState::ActivatePreviousViewL(void)
- ?PossToPixels@CGlxResolutionUtility@@QBEMABM@Z @ 4 NONAME ; float CGlxResolutionUtility::PossToPixels(float const &) const
- ?Close@CGlxResolutionUtility@@QAEXXZ @ 5 NONAME ; void CGlxResolutionUtility::Close(void)
- ?SetStartingLevel@CGlxNavigationalState@@QAEXH@Z @ 6 NONAME ; void CGlxNavigationalState::SetStartingLevel(int)
- ??1CGlxResolutionManager@@UAE@XZ @ 7 NONAME ; CGlxResolutionManager::~CGlxResolutionManager(void)
- ?RemoveObserver@CGlxResolutionUtility@@QAEXAAVMGlxResolutionChangeObserver@@@Z @ 8 NONAME ; void CGlxResolutionUtility::RemoveObserver(class MGlxResolutionChangeObserver &)
- ?PixelsToPoss@CGlxResolutionUtility@@QBEMABM@Z @ 9 NONAME ; float CGlxResolutionUtility::PixelsToPoss(float const &) const
- ?PublishStateL@NGlxZoomStatePublisher@@YAXH@Z @ 10 NONAME ; void NGlxZoomStatePublisher::PublishStateL(int)
- ?BackExitStatus@CGlxNavigationalState@@QAEHXZ @ 11 NONAME ; int CGlxNavigationalState::BackExitStatus(void)
- ?SetToViewMode@CGlxNavigationalState@@QAEXXZ @ 12 NONAME ; void CGlxNavigationalState::SetToViewMode(void)
- ?ForwardActivationEventL@CGlxBackServiceWrapper@@QAEHABVTDesC8@@H@Z @ 13 NONAME ; int CGlxBackServiceWrapper::ForwardActivationEventL(class TDesC8 const &, int)
- ?SetScreenSizeL@CGlxResolutionManager@@QAEXVTSize@@@Z @ 14 NONAME ; void CGlxResolutionManager::SetScreenSizeL(class TSize)
- ?RemoveObserver@CGlxNavigationalState@@QAEXAAVMGlxNavigationalStateObserver@@@Z @ 15 NONAME ; void CGlxNavigationalState::RemoveObserver(class MGlxNavigationalStateObserver &)
- ?Close@CGlxNavigationalState@@QAEXXZ @ 16 NONAME ; void CGlxNavigationalState::Close(void)
- ?AddObserverL@CGlxNavigationalState@@QAEXAAVMGlxNavigationalStateObserver@@@Z @ 17 NONAME ; void CGlxNavigationalState::AddObserverL(class MGlxNavigationalStateObserver &)
- ?StartingLevel@CGlxNavigationalState@@QAEHXZ @ 18 NONAME ; int CGlxNavigationalState::StartingLevel(void)
- ?NavigateToL@CGlxNavigationalState@@QAEXABVCMPXCollectionPath@@@Z @ 19 NONAME ; void CGlxNavigationalState::NavigateToL(class CMPXCollectionPath const &)
- ?NavigateToParentL@CGlxNavigationalState@@QAEXXZ @ 20 NONAME ; void CGlxNavigationalState::NavigateToParentL(void)
- ?NavigateToChildL@CGlxNavigationalState@@QAEXABVTGlxMediaId@@@Z @ 21 NONAME ; void CGlxNavigationalState::NavigateToChildL(class TGlxMediaId const &)
- ?NewL@CGlxResolutionManager@@SAPAV1@XZ @ 22 NONAME ; class CGlxResolutionManager * CGlxResolutionManager::NewL(void)
- ?NewLC@CGlxBackServiceWrapper@@SAPAV1@VTUid@@@Z @ 23 NONAME ; class CGlxBackServiceWrapper * CGlxBackServiceWrapper::NewLC(class TUid)
- ?ViewingMode@CGlxNavigationalState@@QAE?AW4TViewingMode@NGlxNavigationalState@@XZ @ 24 NONAME ; enum NGlxNavigationalState::TViewingMode CGlxNavigationalState::ViewingMode(void)
- ?Close@CGlxErrorPoster@@QAEXXZ @ 25 NONAME ; void CGlxErrorPoster::Close(void)
- ?AddObserverL@CGlxResolutionUtility@@QAEXAAVMGlxResolutionChangeObserver@@@Z @ 26 NONAME ; void CGlxResolutionUtility::AddObserverL(class MGlxResolutionChangeObserver &)
- ?SetBackExitStatus@CGlxNavigationalState@@QAEXH@Z @ 27 NONAME ; void CGlxNavigationalState::SetBackExitStatus(int)
- ?HandleBackCommandL@CGlxBackServiceWrapper@@QAEHABVTDesC8@@H@Z @ 28 NONAME ; int CGlxBackServiceWrapper::HandleBackCommandL(class TDesC8 const &, int)
- ?StateLC@CGlxNavigationalState@@QBEPAVCMPXCollectionPath@@XZ @ 29 NONAME ; class CMPXCollectionPath * CGlxNavigationalState::StateLC(void) const
- ?InstanceL@CGlxNavigationalState@@SAPAV1@XZ @ 30 NONAME ; class CGlxNavigationalState * CGlxNavigationalState::InstanceL(void)
- ?NewL@CGlxBackServiceWrapper@@SAPAV1@VTUid@@@Z @ 31 NONAME ; class CGlxBackServiceWrapper * CGlxBackServiceWrapper::NewL(class TUid)
- ?InstanceL@CGlxResolutionUtility@@SAPAV1@XZ @ 32 NONAME ; class CGlxResolutionUtility * CGlxResolutionUtility::InstanceL(void)
- ?ScreenSize@CGlxResolutionUtility@@QBE?AVTSize@@XZ @ 33 NONAME ; class TSize CGlxResolutionUtility::ScreenSize(void) const
+ ?RemoveObserver@CGlxNavigationalState@@QAEXAAVMGlxNavigationalStateObserver@@@Z @ 4 NONAME ; void CGlxNavigationalState::RemoveObserver(class MGlxNavigationalStateObserver &)
+ ?PossToPixels@CGlxResolutionUtility@@QBEMABM@Z @ 5 NONAME ; float CGlxResolutionUtility::PossToPixels(float const &) const
+ ?Close@CGlxNavigationalState@@QAEXXZ @ 6 NONAME ; void CGlxNavigationalState::Close(void)
+ ?AddObserverL@CGlxNavigationalState@@QAEXAAVMGlxNavigationalStateObserver@@@Z @ 7 NONAME ; void CGlxNavigationalState::AddObserverL(class MGlxNavigationalStateObserver &)
+ ?Close@CGlxResolutionUtility@@QAEXXZ @ 8 NONAME ; void CGlxResolutionUtility::Close(void)
+ ?StartingLevel@CGlxNavigationalState@@QAEHXZ @ 9 NONAME ; int CGlxNavigationalState::StartingLevel(void)
+ ?NavigateToL@CGlxNavigationalState@@QAEXABVCMPXCollectionPath@@@Z @ 10 NONAME ; void CGlxNavigationalState::NavigateToL(class CMPXCollectionPath const &)
+ ?NavigateToParentL@CGlxNavigationalState@@QAEXXZ @ 11 NONAME ; void CGlxNavigationalState::NavigateToParentL(void)
+ ?NavigateToChildL@CGlxNavigationalState@@QAEXABVTGlxMediaId@@@Z @ 12 NONAME ; void CGlxNavigationalState::NavigateToChildL(class TGlxMediaId const &)
+ ?NewL@CGlxResolutionManager@@SAPAV1@XZ @ 13 NONAME ; class CGlxResolutionManager * CGlxResolutionManager::NewL(void)
+ ?SetStartingLevel@CGlxNavigationalState@@QAEXH@Z @ 14 NONAME ; void CGlxNavigationalState::SetStartingLevel(int)
+ ??1CGlxResolutionManager@@UAE@XZ @ 15 NONAME ; CGlxResolutionManager::~CGlxResolutionManager(void)
+ ?ViewingMode@CGlxNavigationalState@@QAE?AW4TViewingMode@NGlxNavigationalState@@XZ @ 16 NONAME ; enum NGlxNavigationalState::TViewingMode CGlxNavigationalState::ViewingMode(void)
+ ?SetBackExitStatus@CGlxNavigationalState@@QAEXH@Z @ 17 NONAME ; void CGlxNavigationalState::SetBackExitStatus(int)
+ ?AddObserverL@CGlxResolutionUtility@@QAEXAAVMGlxResolutionChangeObserver@@@Z @ 18 NONAME ; void CGlxResolutionUtility::AddObserverL(class MGlxResolutionChangeObserver &)
+ ?Close@CGlxErrorPoster@@QAEXXZ @ 19 NONAME ; void CGlxErrorPoster::Close(void)
+ ?RemoveObserver@CGlxResolutionUtility@@QAEXAAVMGlxResolutionChangeObserver@@@Z @ 20 NONAME ; void CGlxResolutionUtility::RemoveObserver(class MGlxResolutionChangeObserver &)
+ ?PixelsToPoss@CGlxResolutionUtility@@QBEMABM@Z @ 21 NONAME ; float CGlxResolutionUtility::PixelsToPoss(float const &) const
+ ?BackExitStatus@CGlxNavigationalState@@QAEHXZ @ 22 NONAME ; int CGlxNavigationalState::BackExitStatus(void)
+ ?PublishStateL@NGlxZoomStatePublisher@@YAXH@Z @ 23 NONAME ; void NGlxZoomStatePublisher::PublishStateL(int)
+ ?StateLC@CGlxNavigationalState@@QBEPAVCMPXCollectionPath@@XZ @ 24 NONAME ; class CMPXCollectionPath * CGlxNavigationalState::StateLC(void) const
+ ?SetToViewMode@CGlxNavigationalState@@QAEXXZ @ 25 NONAME ; void CGlxNavigationalState::SetToViewMode(void)
+ ?InstanceL@CGlxNavigationalState@@SAPAV1@XZ @ 26 NONAME ; class CGlxNavigationalState * CGlxNavigationalState::InstanceL(void)
+ ?ScreenSize@CGlxResolutionUtility@@QBE?AVTSize@@XZ @ 27 NONAME ; class TSize CGlxResolutionUtility::ScreenSize(void) const
+ ?InstanceL@CGlxResolutionUtility@@SAPAV1@XZ @ 28 NONAME ; class CGlxResolutionUtility * CGlxResolutionUtility::InstanceL(void)
+ ?SetScreenSizeL@CGlxResolutionManager@@QAEXVTSize@@@Z @ 29 NONAME ; void CGlxResolutionManager::SetScreenSizeL(class TSize)
--- a/photosgallery/commonui/eabi/glxcommonuiu.def Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/commonui/eabi/glxcommonuiu.def Fri Mar 12 15:42:44 2010 +0200
@@ -25,17 +25,11 @@
_ZN21CGlxResolutionUtility14RemoveObserverER28MGlxResolutionChangeObserver @ 24 NONAME
_ZN21CGlxResolutionUtility5CloseEv @ 25 NONAME
_ZN21CGlxResolutionUtility9InstanceLEv @ 26 NONAME
- _ZN22CGlxBackServiceWrapper18HandleBackCommandLERK6TDesC8i @ 27 NONAME
- _ZN22CGlxBackServiceWrapper23ForwardActivationEventLERK6TDesC8i @ 28 NONAME
- _ZN22CGlxBackServiceWrapper4NewLE4TUid @ 29 NONAME
- _ZN22CGlxBackServiceWrapper5NewLCE4TUid @ 30 NONAME
- _ZN22NGlxZoomStatePublisher13PublishStateLEi @ 31 NONAME
- _ZNK21CGlxNavigationalState7StateLCEv @ 32 NONAME
- _ZNK21CGlxResolutionUtility10ScreenSizeEv @ 33 NONAME
- _ZNK21CGlxResolutionUtility12PixelsToPossERKf @ 34 NONAME
- _ZNK21CGlxResolutionUtility12PossToPixelsERKf @ 35 NONAME
- _ZTI21CGlxNavigationalState @ 36 NONAME
- _ZTI22CGlxBackServiceWrapper @ 37 NONAME
- _ZTV21CGlxNavigationalState @ 38 NONAME
- _ZTV22CGlxBackServiceWrapper @ 39 NONAME
+ _ZN22NGlxZoomStatePublisher13PublishStateLEi @ 27 NONAME
+ _ZNK21CGlxNavigationalState7StateLCEv @ 28 NONAME
+ _ZNK21CGlxResolutionUtility10ScreenSizeEv @ 29 NONAME
+ _ZNK21CGlxResolutionUtility12PixelsToPossERKf @ 30 NONAME
+ _ZNK21CGlxResolutionUtility12PossToPixelsERKf @ 31 NONAME
+ _ZTI21CGlxNavigationalState @ 32 NONAME
+ _ZTV21CGlxNavigationalState @ 33 NONAME
--- a/photosgallery/commonui/group/glxcommonui.mmp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/commonui/group/glxcommonui.mmp Fri Mar 12 15:42:44 2010 +0200
@@ -49,8 +49,6 @@
SOURCE glxzoomstatepublisher.cpp
SOURCE glxnavigationalstate.cpp
-SOURCE glxbackservicewrapper.cpp
-
LIBRARY bafl.lib
LIBRARY efsrv.lib
@@ -63,9 +61,6 @@
LIBRARY mpxcollectionutility.lib //for MMPXCollectionUtility
LIBRARY mpxcommon.lib // CMPXCollectionPath
LIBRARY mpxviewutility.lib //for MMPXViewUtility
-
-LIBRARY liwservicehandler.lib //CLiwVariant
-
LIBRARY flogger.lib
// if photos need to publish zooming state, include the context framework
#ifdef GLX_PUBLISH_ZOOMING_STATE
@@ -73,6 +68,4 @@
LIBRARY cfservices.lib // for CCFContextObject
#endif
-//EXPORTUNFROZEN
-
// End of file
--- a/photosgallery/controllers/fetcher/data/glxfetcherdialog.rss Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/controllers/fetcher/data/glxfetcherdialog.rss Fri Mar 12 15:42:44 2010 +0200
@@ -199,8 +199,7 @@
flags=EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect |
EEikDialogFlagCbaButtons | EEikDialogFlagWait |
EEikDialogFlagNoBackgroundFade |EEikDialogFlagNoBorder;
- // softkeys: left select, middle select, right cancel
- buttons = R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT;
+ buttons = R_AVKON_SOFTKEYS_CANCEL;
// Do not add any items
}
@@ -210,8 +209,7 @@
flags=EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect |
EEikDialogFlagCbaButtons | EEikDialogFlagWait |
EEikDialogFlagNoBackgroundFade |EEikDialogFlagNoBorder;
- // softkeys: left options, middle select, right cancel
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL__MARK;
+ buttons = R_AVKON_SOFTKEYS_CANCEL;
// Do not add any items
}
--- a/photosgallery/controllers/fetcher/inc/glxfetcherdialog.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/controllers/fetcher/inc/glxfetcherdialog.h Fri Mar 12 15:42:44 2010 +0200
@@ -130,6 +130,7 @@
private:// From MGlxEventObserver
virtual void HandleDoubleTapEventL(TInt aCommandId);
+ virtual void HandleMarkEventL();
public:// to exit the fetcher dialog
void CallCancelFetcherL(TInt aCommandId);
--- a/photosgallery/controllers/fetcher/inc/mglxeventobserver.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/controllers/fetcher/inc/mglxeventobserver.h Fri Mar 12 15:42:44 2010 +0200
@@ -34,6 +34,11 @@
virtual void HandleDoubleTapEventL(TInt aCommandId) = 0;
/**
+ * Called from container to pass Mark/Unmark events to Dialog.
+ */
+ virtual void HandleMarkEventL() = 0;
+
+ /**
* Destructor. Dont allow deleting objects through this interface.
*/
virtual ~MGlxEventObserver() {};
--- a/photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -298,7 +298,7 @@
THgScrollDirection /*aDirection*/)
{
TRACER("CGlxFetcherContainer::Request()");
- RequestL(aRequestStart, aRequestEnd);
+ TRAP_IGNORE(RequestL( aRequestStart, aRequestEnd ));
}
// ---------------------------------------------------------------------------
// RequestL
@@ -477,6 +477,7 @@
{
TRACER("CGlxGridViewImp::HandleMarkingL()");
HandleMultipleMarkingL(aIndex);
+ iEventObserver.HandleMarkEventL();
}
// ---------------------------------------------------------------------------
--- a/photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -342,6 +342,21 @@
{
TRACER("CGlxFetcherDialog::PostLayoutDynInitL");
+ if (!iUiUtility->IsPenSupported())
+ {
+ CEikButtonGroupContainer& cbaContainer = ButtonGroupContainer();
+ if (iMultiSelectionEnabled)
+ {
+ cbaContainer.SetCommandSetL(R_AVKON_SOFTKEYS_OK_CANCEL__MARK);
+ }
+ else
+ {
+ cbaContainer.SetCommandSetL(
+ R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT);
+ }
+ cbaContainer.DrawNow();
+ }
+
// Create and Display Grid widget
iFetcherContainer->CreateAndDisplayGridL();
}
@@ -401,6 +416,29 @@
}
//-----------------------------------------------------------------------------
+// CGlxFetcherDialog::HandleMarkEventL
+// Callback from the container to process the mark/unmark events.
+//-----------------------------------------------------------------------------
+void CGlxFetcherDialog::HandleMarkEventL()
+ {
+ TRACER("CGlxFetcherDialog::HandleMarkEventL");
+ if ( iUiUtility->IsPenSupported() )
+ {
+ MGlxMediaList& mediaList = iFetcherContainer->MediaList();
+ CEikButtonGroupContainer& cbaContainer = ButtonGroupContainer();
+ if (mediaList.SelectionCount())
+ {
+ cbaContainer.SetCommandSetL(R_AVKON_SOFTKEYS_OK_CANCEL__MARK);
+ }
+ else
+ {
+ cbaContainer.SetCommandSetL(R_AVKON_SOFTKEYS_CANCEL);
+ }
+ cbaContainer.DrawNow();
+ }
+ }
+
+//-----------------------------------------------------------------------------
// CGlxFetcherDialog::CallCancelFetcherL
// This function will be called from CGlxFetcher::CancelFetcherL
// This will ensure exit of fetcher dialog & fetcher app
--- a/photosgallery/gallery/group/glx.mmp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/gallery/group/glx.mmp Fri Mar 12 15:42:44 2010 +0200
@@ -86,9 +86,6 @@
LIBRARY glxmedialists.lib // to get the cache manager handle
LIBRARY apgrfx.lib
LIBRARY glximageviewermanager.lib
-
-
-LIBRARY liwservicehandler.lib //CLiwVariant
LIBRARY glxcommon.lib
LIBRARY efsrv.lib // for RFile
@@ -99,7 +96,6 @@
START MARM
END
-// DEFFILE ?filename
START RESOURCE glx_loc.rss
HEADER
@@ -119,4 +115,3 @@
LIBRARY aknnotify.lib
LIBRARY hal.lib // HAL, HALData
LIBRARY commonengine.lib // for StringLoader
-// MACRO ?macro_name
--- a/photosgallery/gallery/inc/glxappui.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/gallery/inc/glxappui.h Fri Mar 12 15:42:44 2010 +0200
@@ -34,8 +34,6 @@
class CGlxNavigationalState;
class CAknGlobalNote;
-class CGlxBackServiceWrapper;
-
/**
* CGlxAppUi
*
@@ -165,12 +163,6 @@
*Invoked by the OOM framwork when photos app needs to free memory for other applications.
*/
void StopCleanupL();
- /**
- * To move back to the app which started photossuite when done options->exit from
- * within the app.
- * @param aMessage exit action from photossuite
- */
- void LaunchMmViewL(const TDesC8& aMessage);
/**
* Check for updates via IAD.
@@ -206,7 +198,6 @@
/// Central repository entry for app (owned)
CRepository* iRepository;
- CGlxBackServiceWrapper* iBSWrapper;
/**
* IAD updater class
*/
--- a/photosgallery/gallery/sis/glxgallery.pkg Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/gallery/sis/glxgallery.pkg Fri Mar 12 15:42:44 2010 +0200
@@ -143,18 +143,6 @@
; Glx logging client
"\epoc32\release\armv5\urel\glxlogging.dll"-"!:\sys\bin\glxlogging.dll"
-; For contentharvester plugin component
-"\epoc32\release\armv5\urel\glxcontentharvesterplugin.dll" -"!:\sys\bin\glxcontentharvesterplugin.dll"
-"\epoc32\data\Z\resource\plugins\glxcontentharvesterplugin.rsc" -"!:\resource\plugins\glxcontentharvesterplugin.rsc"
-
-; For photossuite component
-
-
-"\epoc32\data\z\resource\apps\photossuite.rsc" -"!:\resource\apps\photossuite.rsc"
-"\epoc32\include\photossuite.rsg" -"!:\resource\apps\photossuite.rsg"
-"\epoc32\data\Z\private\101F4CD2\import\suites\photossuite\suite.xml" -"!:\private\101F4CD2\import\suites\photossuite\suite.xml"
-"\epoc32\data\Z\private\101F4CD2\import\suites\photossuite\photos_items.xml" -"!:\private\101F4CD2\import\suites\photossuite\photos_items.xml"
-
"\epoc32\data\Z\resource\xhtml\01\0x200009EE\contents.zip" -"!:\resource\xhtml\01\0x200009EE\contents.zip"
"\epoc32\data\Z\resource\xhtml\01\0x200009EE\index.xml" -"!:\resource\xhtml\01\0x200009EE\index.xml"
--- a/photosgallery/gallery/sis/glxgallery_stub.pkg Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/gallery/sis/glxgallery_stub.pkg Fri Mar 12 15:42:44 2010 +0200
@@ -158,16 +158,7 @@
""-"z:\sys\bin\glxuitilities.dll"
""-"z:\sys\bin\glxaddtoalbumhandler.dll"
-; For contentharvester plugin component
-""-"z:\sys\bin\glxcontentharvesterplugin.dll"
-
-
""-"z:\resource\xhtml\01\0x200009EE\contents.zip"
""-"z:\resource\xhtml\01\0x200009EE\index.xml"
""-"z:\resource\xhtml\01\0x200009EE\keywords.xml"
""-"z:\resource\xhtml\01\0x200009EE\meta.xml"
-
-; For photossuite component
-""-"z:\resource\apps\photossuite.rsc"
-""-"z:\private\101F4CD2\import\suites\photossuite\suite.xml"
-""-"z:\private\101F4CD2\import\suites\photossuite\photos_items.xml"
--- a/photosgallery/gallery/src/glxappui.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/gallery/src/glxappui.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -19,6 +19,8 @@
#include "glxappui.h"
+#include "glxcachemanager.h"
+#include "glxiadupdate.h"
#include <avkon.hrh>
#include <StringLoader.h>
@@ -59,21 +61,12 @@
#include <hal_data.h>
#include <oommonitorsession.h>
#include <glxtracer.h>
-#include "glxcachemanager.h"//OOM
-//OOM
-
-#include <oommonitorplugin.h>
-#include <oommonitorsession.h>
//OOM
-
-
-#include <glxbackservicewrapper.h>
-
-
+#include <oommonitorplugin.h>
+#include <oommonitorsession.h>
#include <glxuistd.h>
#include <apgcli.h>
-#include "glxiadupdate.h"
//constants
const TInt KGlxGridThumbnailPages = 9 ; // 4 page Down + 4 page Up + 1 Visible page = 9 page
@@ -87,17 +80,12 @@
const TInt KGlxMemoryForOOMFwk = 1048576 ; // 1 MB
const TInt KGlxThumbNailRepresentation = 2; // Thumbnail Representation; Could be 3 also
-_LIT8( KPhotosSuiteNavigation, "SuiteNavigation" );
_LIT8( KPhotosCaptured, "Captured" );
_LIT8( KPhotosMonths, "Months" );
_LIT8( KPhotosTags, "Tags" );
_LIT8( KPhotosAlbums, "Albums" );
_LIT8( KPhotosAllValue,"Allcs");
-_LIT8( KPhotosSuiteExitMessage, "mm://photossuite?action=exit" );
-
-// Matrix uid, needed for activating the suite view.
-const TInt KMatrixUid = 0x101F4CD2;
const TInt KCapturedAlbumId = 2 ;
/**
@@ -127,8 +115,6 @@
iNavigationalState->AddObserverL( *this );
- // Create Back Stepping Service wrapper
- iBSWrapper = CGlxBackServiceWrapper::NewL( TUid::Uid( KGlxGalleryApplicationUid ) );
iNavigationalState->SetBackExitStatus(EFalse);
iFocusLostLowMemory = EFalse;
@@ -171,10 +157,6 @@
iUiUtility->Close();
}
- if( iBSWrapper )
- {
- delete iBSWrapper;
- }
if (iPeriodic)
{
iPeriodic->Cancel();
@@ -199,16 +181,6 @@
{
case EEikCmdExit:
{
- // Send message to Menu and exit.
- /**
- * In case of exit is pressed from options menu of photos grid, this flag will be
- * false. so it will launch matrix menu. If we don't call LaunchMmViewL, in the above
- * scenario, photos will exit,but photosuite will come. This is misleading to user.
- */
- if(!iEndKeyPressed)
- {
- LaunchMmViewL( KPhotosSuiteExitMessage );
- }
iUiUtility->SetExitingState(ETrue);
Exit();
}
@@ -609,10 +581,6 @@
User::Leave(KErrNotSupported);
}
iNavigationalState->SetBackExitStatus(ETrue);
- TBuf8<15> buf;
- buf.Append( KPhotosSuiteNavigation );
- TRAP_IGNORE(iBSWrapper->ForwardActivationEventL( buf, ETrue ))
-
break;
}
CleanupStack::PopAndDestroy(&stream);
@@ -855,42 +823,6 @@
#endif
}
-// ---------------------------------------------------------------------------
-// LaunchMmViewL
-//
-// ---------------------------------------------------------------------------
-//
-void CGlxAppUi::LaunchMmViewL( const TDesC8& aMessage )
- {
- TRACER("CGlxNsAppUi::LaunchMmViewL()");
- TApaTaskList taskList( iCoeEnv->WsSession() );
- TApaTask task = taskList.FindApp( TUid::Uid( KMatrixUid ) );
-
- if ( task.Exists() )
- {
- task.SendMessage( TUid::Uid( KUidApaMessageSwitchOpenFileValue ),aMessage );
- }
- else
- { // app not yet running
- RApaLsSession appArcSession;
- CleanupClosePushL( appArcSession );
- User::LeaveIfError( appArcSession.Connect() );
- TApaAppInfo appInfo;
- TInt err = appArcSession.GetAppInfo( appInfo,
- TUid::Uid( KMatrixUid ) );
- if( err == KErrNone )
- {
- CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
- cmdLine->SetExecutableNameL( appInfo.iFullName );
- cmdLine->SetCommandL( EApaCommandRun );
- cmdLine->SetTailEndL( aMessage );
- appArcSession.StartApp( *cmdLine );
- CleanupStack::PopAndDestroy( cmdLine );
- }
- CleanupStack::PopAndDestroy( &appArcSession );
- }
- }
-
// -----------------------------------------------------------------------------
// ClosePhotosL
// -----------------------------------------------------------------------------
--- a/photosgallery/group/bld.inf Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/group/bld.inf Fri Mar 12 15:42:44 2010 +0200
@@ -70,10 +70,6 @@
// include the slideshow build
#include "../slideshow/group/bld.inf"
-
-#include "../contentharvesterplugin/group/bld.inf"
-#include "../photossuite/group/bld.inf"
-
//include photos memory plug-in
#include "../memoryplugin/group/bld.inf"
--- a/photosgallery/imgvwr/group/glxivwr.mmp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/imgvwr/group/glxivwr.mmp Fri Mar 12 15:42:44 2010 +0200
@@ -102,6 +102,7 @@
END // RESOURCE
+LIBRARY oommonitor.lib
LIBRARY aknnotify.lib
LIBRARY hal.lib // HAL, HALData
LIBRARY commonengine.lib // for StringLoader
--- a/photosgallery/imgvwr/inc/glxivwrappui.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/imgvwr/inc/glxivwrappui.h Fri Mar 12 15:42:44 2010 +0200
@@ -33,8 +33,6 @@
class CGlxNavigationalState;
class CAknGlobalNote;
-class CGlxBackServiceWrapper;
-
/**
* CGlxIVwrAppUi
*
@@ -76,6 +74,11 @@
void HandleForegroundEventL( TBool aForeground );
private:
+ enum TEntryType
+ {
+ EEntryTypeStartUp = 0,
+ EEntryTypeFocusGained
+ };
/**
* Get view scoring ids based on current navigational state
* (using Get in the name since the function does not return anything)
@@ -98,6 +101,32 @@
TUid ViewScoringIdForNaviStateDepth( const CMPXCollectionPath& aNaviState ) const;
/**
+ * Requesting OOM to Free Some Memory, so that photos image viewer can start
+ * @return Error if Memory Cannot be freed else Error None
+ */
+ TInt OOMRequestFreeMemoryL( TInt aBytesRequested) ;
+
+ /**
+ * Finds Current Memory Availability And Decides to Send a Request for freeing the memory
+ * @param aCriticalMemoryRequired Bare Minimum to start photos image viewer
+ * @return Error Code from OOM
+ */
+ TInt ReserveMemoryL(TInt aCriticalMemoryRequired);
+
+ /**
+ * Finds Current Minimum Required memory to start photos image viewer
+ * @param Type of application invokation
+ * @return Required Critical Memory
+ */
+ TInt RamRequiredInBytesL(TEntryType aType);
+
+ /**
+ * Reserve critical memory qequired to start photos image viewer
+ * @param Type of application invokation
+ */
+ void ReserveMemoryL(TEntryType aType);
+
+ /**
* close photos app.
*/
void CloseImgVwr();
@@ -113,8 +142,6 @@
///Ui utility
CGlxUiUtility* iUiUtility;
-
- CGlxBackServiceWrapper* iBSWrapper;
};
--- a/photosgallery/imgvwr/src/glxivwrappui.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/imgvwr/src/glxivwrappui.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -49,14 +49,24 @@
#include <glxfullscreenviewplugin.hrh>
#include <glxivwr.rsg>
#include <AknGlobalNote.h>
+#include <hal.h>
+#include <hal_data.h>
+#include <oommonitorsession.h>
#include <glxtracer.h>
-
-
-#include <glxbackservicewrapper.h>
-
#include <glxuistd.h>
#include <apgcli.h>
+//constants
+const TInt KGlxFullThumbnailCount = 1 ; // 1 visible thumnail
+#ifdef __MARM
+const TInt KGlxMaxMegaPixelsSupportedByCamera = 5242880 ; // 5 MB
+#else
+const TInt KGlxMaxMegaPixelsSupportedByCamera = 2097152 ; // 2 MB
+#endif
+const TInt KGlxMaxMemoryToDecodeCapturedPicture = 2 * KGlxMaxMegaPixelsSupportedByCamera ;
+const TInt KGlxMemoryForOOMFwk = 1048576 ; // 1 MB
+const TInt KGlxThumbNailRepresentation = 4; // Thumbnail Representation; Could be 3 also
+
// -----------------------------------------------------------------------------
// Constructor
// -----------------------------------------------------------------------------
@@ -80,8 +90,6 @@
iNavigationalState->AddObserverL( *this );
- // Create Back Stepping Service wrapper
- iBSWrapper = CGlxBackServiceWrapper::NewL( TUid::Uid( KGlxGalleryApplicationUid ) );
iNavigationalState->SetBackExitStatus(EFalse);
// Get an instance of view utility
@@ -90,6 +98,7 @@
iUiUtility = CGlxUiUtility::UtilityL();
// Always start in default orientation
iUiUtility->SetAppOrientationL(EGlxOrientationDefault);
+ ReserveMemoryL(EEntryTypeStartUp);
// publish zoom context, no zoom keys for now
NGlxZoomStatePublisher::PublishStateL( EFalse );
}
@@ -116,11 +125,6 @@
{
iUiUtility->Close();
}
-
- if( iBSWrapper )
- {
- delete iBSWrapper;
- }
}
// -----------------------------------------------------------------------------
@@ -359,6 +363,103 @@
}
// ---------------------------------------------------------------------------
+// OOMRequestFreeMemoryL
+// ---------------------------------------------------------------------------
+//
+TInt CGlxIVwrAppUi::OOMRequestFreeMemoryL( TInt aBytesRequested)
+ {
+ TRACER("TInt CGlxIVwrAppUi::OOMRequestFreeMemoryL( TInt aBytesRequested)");
+ GLX_LOG_INFO1("CGlxIVwrAppUi::OOMRequestFreeMemoryL() aBytesRequested=%d",
+ aBytesRequested);
+
+ ROomMonitorSession oomMonitor;
+ User::LeaveIfError( oomMonitor.Connect() );
+ // No leaving code after this point, so no need to use cleanup stack
+ // for oomMonitor
+ TInt errorCode = oomMonitor.RequestFreeMemory( aBytesRequested );
+ GLX_LOG_INFO1("CGlxIVwrAppUi::OOMRequestFreeMemoryL(1) errorCode=%d",errorCode);
+ if ( errorCode != KErrNone )
+ {
+ // try one more time
+ errorCode = oomMonitor.RequestFreeMemory( aBytesRequested );
+ GLX_LOG_INFO1("CGlxIVwrAppUi::OOMRequestFreeMemoryL(2) errorCode=%d",errorCode);
+ }
+ oomMonitor.Close();
+ return errorCode;
+ }
+
+// ---------------------------------------------------------------------------
+// ReserveMemoryL
+// ---------------------------------------------------------------------------
+//
+TInt CGlxIVwrAppUi::ReserveMemoryL(TInt aCriticalMemoryRequired)
+ {
+ TRACER("void CGlxIVwrAppUi::ReserveMemoryL(TInt aCriticalMemoryRequired)");
+
+ TInt memoryLeft = 0;
+ TInt error = KErrNone ;
+ HAL::Get( HALData::EMemoryRAMFree, memoryLeft );
+ GLX_LOG_INFO2("CGlxIVwrAppUi::ReserveMemoryL() - aCriticalMemoryRequired=%d, memoryLeft=%d",
+ aCriticalMemoryRequired, memoryLeft);
+ if ( aCriticalMemoryRequired > memoryLeft )
+ {
+ // Request for critical memory required
+ error = OOMRequestFreeMemoryL( aCriticalMemoryRequired);
+ GLX_LOG_INFO1("CGlxIVwrAppUi::ReserveMemoryL() - OOMRequestFreeMemoryL() error=%d", error);
+ }
+ return error;
+ }
+
+// ---------------------------------------------------------------------------
+// RamRequiredInBytesL
+// ---------------------------------------------------------------------------
+//
+TInt CGlxIVwrAppUi::RamRequiredInBytesL(TEntryType aType)
+ {
+ TRACER("TInt CGlxIVwrAppUi::RamRequiredInBytesL(TEntryType aType)");
+ TInt criticalRamMemory = 0 ;
+ TSize displaySize = iUiUtility->DisplaySize();
+ if(EEntryTypeStartUp == aType)
+ {
+ // This is Bare Minimum Required Memory for Photos to start
+ // For Framework to work and to do the on-the-fly decoding
+ // for the just captured picture = KGlxMemoryForOOMFwk + KGlxMaxMemoryToDecodeCapturedPicture
+ // For FullScreen to Work Number of Thumbnail(s) * Width * Height * Representation
+ criticalRamMemory = KGlxMemoryForOOMFwk + KGlxMaxMemoryToDecodeCapturedPicture +
+ (KGlxFullThumbnailCount *
+ displaySize.iWidth * displaySize.iHeight *
+ KGlxThumbNailRepresentation );
+
+ GLX_LOG_INFO1("CGlxIVwrAppUi::RamRequiredInBytesL(EEntryTypeStartUp): criticalRamMemory=%d",
+ criticalRamMemory);
+ }
+ else
+ {
+ GLX_LOG_INFO("CGlxIVwrAppUi::RamRequiredInBytesL(): Photos Already Running");
+ }
+
+ return criticalRamMemory;
+ }
+
+// ---------------------------------------------------------------------------
+// ReserveMemoryL
+// ---------------------------------------------------------------------------
+//
+void CGlxIVwrAppUi::ReserveMemoryL(TEntryType aType)
+ {
+ TRACER("TInt CGlxIVwrAppUi::ReserveMemoryL(TEntryType aType)");
+
+ TInt error = ReserveMemoryL(RamRequiredInBytesL(aType));
+ GLX_LOG_INFO1("CGlxIVwrAppUi::ReserveMemoryL() error=%d", error);
+
+ if (KErrNoMemory == error)
+ {
+ GLX_LOG_INFO("CGlxIVwrAppUi::ReserveMemoryL(): LEAVE with KErrNoMemory ");
+ User::Leave(KErrNoMemory);
+ }
+ }
+
+// ---------------------------------------------------------------------------
// HandleApplicationSpecificEventL
//
// ---------------------------------------------------------------------------
--- a/photosgallery/slideshow/engine/tsrc/t_cshwslideshowengine/t_cshwslideshowengine.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwslideshowengine/t_cshwslideshowengine.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -296,7 +296,10 @@
{
// remove our scheduler
// replace old with our new
- iScheduler->Replace( iOldScheduler );
+ if ( iScheduler )
+ {
+ iScheduler->Replace(iOldScheduler);
+ }
delete iScheduler;
delete iTimer;
--- a/photosgallery/slideshow/view/inc/shwslideshowview.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/slideshow/view/inc/shwslideshowview.h Fri Mar 12 15:42:44 2010 +0200
@@ -301,7 +301,7 @@
* returns the index of item for which texture can be removed for cleanup
* The index will be out the iterator offsets w.r.t focssed index.
*/
- void SetImage();
+ void SetImageL();
TInt GetIndexToBeRemoved();
/**
* Remove the fullscreen texture.
--- a/photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -83,18 +83,20 @@
TRACER("CShwSlideshowBackLightTimer::ConstructL");
GLX_LOG_ENTRY_EXIT("CShwSlideshowBackLightTimer::ConstructL");
- CRepository* repository = CRepository::NewLC( KCRUidPeripheralSettings );
+ CRepository* lightsRepo = CRepository::NewLC( KCRUidPeripheralSettings );
// What's the timeout value (in seconds ) for the display light?
- repository->Get( KSettingsDisplayLightsTimeout, iSettingsDelay );
+ lightsRepo->Get( KSettingsDisplayLightsTimeout, iSettingsDelay );
GLX_LOG_INFO1("CShwSlideshowBackLightTimer, lights timeout = %d",
iSettingsDelay );
+ CleanupStack::PopAndDestroy( lightsRepo );
+ CRepository* scrSaverRepo = CRepository::NewLC( KCRUidPersonalizationSettings );
// What's the screen saver's timeout value (in seconds)?
TInt screenSaverTimeout = 0;
- repository->Get( KSettingsScreenSaverPeriod, screenSaverTimeout );
+ scrSaverRepo->Get( KSettingsScreenSaverPeriod, screenSaverTimeout );
GLX_LOG_INFO1("CShwSlideshowBackLightTimer, scr saver timeout = %d",
screenSaverTimeout );
- CleanupStack::PopAndDestroy( repository );
+ CleanupStack::PopAndDestroy( scrSaverRepo );
// Take the smaller of the two timeout values
iSettingsDelay = Min( iSettingsDelay, screenSaverTimeout );
--- a/photosgallery/slideshow/view/src/shwslideshowview.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/slideshow/view/src/shwslideshowview.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -67,6 +67,8 @@
#include "shwviewtimer.h"
#include "shwmediakeyshandler.h"
#include <glxtexturemanager.h>
+#include <glxerrormanager.h>
+#include <glxthumbnailattributeinfo.h>
namespace
{
_LIT(KShwSlideshowViewResource,"shwslideshowview.rsc");
@@ -647,7 +649,7 @@
{
RemoveTexture();
}
- SetImage();
+ SetImageL();
}
}
}
@@ -725,7 +727,7 @@
iWaitDialog->ProcessFinishedL();
}
iShwState = EShwPlay;
- SetImage();
+ SetImageL();
iHdmiActive = ETrue;
ReplaceCommandSetL(R_SHW_SOFTKEYS_END_PAUSE,R_SHW_SOFTKEYS_END_PAUSE);
ShowShwFurnitureL();
@@ -1252,20 +1254,32 @@
}
CGlxViewBase::ProcessCommandL(aCommandId);
}
-// -----------------------------------------------------------------------------
-// SetImage.
-// To set Image to external display if HDmi connected
+// -----------------------------------------------------------------------------
+// Set the image to external display - HDMI
// -----------------------------------------------------------------------------
//
-void CShwSlideshowView::SetImage()
+void CShwSlideshowView::SetImageL()
{
- TRACER("CShwSlideshowView::SetImage");
- TGlxMedia item = iFilteredList->Item( iFilteredList->FocusIndex() );
+ TRACER("CShwSlideshowView::SetImageL() - CGlxHDMI");
+ TGlxMedia item = iFilteredList->Item(iFilteredList->FocusIndex());
TInt frameCount(0);
TSize orignalSize;
- TBool aFramesPresent = item.GetFrameCount(frameCount);
- TBool adimension = item.GetDimensions(orignalSize);
- iHdmiController->SetImageL(item.Uri(), orignalSize, frameCount);
+ TBool aFramesPresent = item.GetFrameCount(frameCount);
+ TBool adimension = item.GetDimensions(orignalSize);
+ TInt error = GlxErrorManager::HasAttributeErrorL(item.Properties(),
+ KGlxMediaIdThumbnail);
+ if (error == KErrNone)
+ {
+ GLX_LOG_INFO("CShwSlideshowView::SetImageL() - CGlxHDMI call SetImageL");
+ iHdmiController->SetImageL(item.Uri(), orignalSize, frameCount);
+ }
+ else
+ {
+ GLX_LOG_INFO1("CShwSlideshowView::SetImageL() - CGlxHDMI IsVideo , err=%d",error);
+ //Set the external display to cloning mode.
+ //If the current item is a video, corruted thumbnail
+ iHdmiController->IsVideo();
+ }
}
// ---------------------------------------------------------------------------
//
--- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxthumbnailsaver/src/t_cglxthumbnailsaver.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxthumbnailsaver/src/t_cglxthumbnailsaver.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -98,12 +98,14 @@
if(iThumbnail)
{
EUNIT_PRINT(_L("t_cglxthumbnailsaver::iThumbnail"));
- delete iThumbnail;
+ delete iThumbnail;
+ iThumbnail = NULL;
}
if(iThumbnailSaver)
{
EUNIT_PRINT(_L("t_cglxthumbnailsaver::iThumbnailSaver"));
delete iThumbnailSaver;
+ iThumbnailSaver = NULL;
}
EUNIT_PRINT(_L("Exiting t_cglxthumbnailsaver::Teardown"));
}
--- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/src/t_glxcmdhndlrcopytohomentwk.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/src/t_glxcmdhndlrcopytohomentwk.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -291,11 +291,13 @@
{
EUNIT_PRINT(_L("before teardown"));
- delete iCommandHandlerCopyToHomeNetwork;
+ delete iCommandHandlerCopyToHomeNetwork;
+ iCommandHandlerCopyToHomeNetwork = NULL;
if(iList)
{
- delete iList;
+ delete iList;
+ iList = NULL;
}
EUNIT_PRINT(_L("After teardown"));
}
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h Fri Mar 12 15:42:44 2010 +0200
@@ -31,11 +31,8 @@
class MMPXCollectionUtility;
class MMPXViewUtility;
class CGlxNavigationalState;
+class CAknAppUi;
-
-class CGlxBackServiceWrapper;
-
-class CAknAppUi;
/**
* @class CGlxCommandHandlerBack
*
@@ -181,10 +178,6 @@
// Navigational state is stored here
CGlxNavigationalState* iNavigationalState;
- CGlxBackServiceWrapper* iBSWrapper;
-
- //MMPXCollectionUtility* iCollectionUtility;
-
/**
* Check for the view activation and avoid previous view activation
* till the view activation is called on back
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersend.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersend.h Fri Mar 12 15:42:44 2010 +0200
@@ -29,7 +29,6 @@
// INTERNAL INCLUDES
#include "glxmedialistcommandhandler.h"
-
// FORWARD DECLARATIONS
class MGlxMediaListProvider;
class CGlxUiUtility;
@@ -202,27 +201,26 @@
private: // data
- // Not owned - Provider of media list
+ /// Not owned - Provider of media list
MGlxMediaListProvider* iMediaListProvider;
- // ID of owning view
+ /// ID of owning view
TInt iViewId;
- // Not owned - HUI utility
+ /// Not owned - HUI utility
CGlxUiUtility* iUiUtility;
- // Not owned - Attribute context
+ /// Not owned - Attribute context
CGlxDefaultAttributeContext* iAttributeContext;
- // Owned - the Send pop-up list, message creation and sending services
+ /// Owned - the Send pop-up list, message creation and sending services
CSendUi* iSendUi;
- // Array of Send Plugins uids that should not be used
+ /// Array of Send Plugins uids that should not be used
TBool iFilterOutPlugin;
- // The resource file offset
+ /// The resource file offset
TInt iResourceOffset;
-
};
#endif //__GLXCOMMANDHANDLERUPLSEND_H__
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -42,7 +42,6 @@
#include <glxcollectionpluginmonths.hrh>
#include <glxcollectionplugintags.hrh>
#include <glxcollectionpluginimageviewer.hrh>
-#include <glxbackservicewrapper.h>
#include <glxgallery.hrh>
#include "glxmediaselectionpopup.h"
@@ -125,9 +124,7 @@
iNavigationalState = CGlxNavigationalState::InstanceL();
iIsViewActivated = EFalse;
- iBSWrapper = CGlxBackServiceWrapper::NewL( TUid::Uid( KGlxGalleryApplicationUid ) );
iAppUi = static_cast< CAknAppUi* >( CCoeEnv::Static()->AppUi() );
-
}
// ---------------------------------------------------------------------------
@@ -139,12 +136,6 @@
TRACER( "CGlxCommandHandlerBack::~CGlxCommandHandlerBack" );
iNavigationalState->Close();
-
- if( iBSWrapper )
- {
- delete iBSWrapper;
- }
-
}
// -----------------------------------------------------------------------------
@@ -154,7 +145,6 @@
TBool CGlxCommandHandlerBack::ExecuteL( TInt aCommandId )
{
TRACER("CGlxCommandHandlerBack::ExecuteL");
- _LIT8( KPhotosSuiteNavigation, "SuiteNavigation" );
TBool consume(EFalse);
GLX_LOG_INFO1( "CGlxCommandHandlerBack::ExecuteL::Command Id (%d)",
@@ -179,7 +169,6 @@
iNavigationalState->StartingLevel() == navigationalState->Levels()-1)
&& iNavigationalState->BackExitStatus())
{
- iBSWrapper->HandleBackCommandL( KPhotosSuiteNavigation );
if(iAppUi)
{
iAppUi->ProcessCommandL(EAknSoftkeyExit);
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -21,7 +21,6 @@
// CLASS HEADER
#include "glxcommandhandlersend.h"
-
// EXTERNAL INCLUDES
#include <utf.h> // for CnvUtfConverter
#include <sendui.h> // for CSendui
@@ -47,6 +46,7 @@
#include <glxfetchcontextremover.h> // for TGlxFetchContextRemover
#include <glxresourceutilities.h> // for CGlxResourceUtilities
#include <glxicons.mbg>
+#include <glximageviewermanager.h> // for CGlxImageViewerManager
// LOCAL FUNCTIONS AND CONSTANTS
namespace
@@ -243,17 +243,17 @@
// retrieve the file name and path
CGlxDefaultAttributeContext* attributeContext =
CGlxDefaultAttributeContext::NewL();
- CleanupStack::PushL(attributeContext);
- attributeContext->AddAttributeL(TMPXAttribute(KMPXMediaGeneralUri));
- mediaList.AddContextL(attributeContext, KGlxFetchContextPriorityBlocking);
+ CleanupStack::PushL( attributeContext );
+ attributeContext->AddAttributeL( TMPXAttribute( KMPXMediaGeneralUri ) );
+ mediaList.AddContextL( attributeContext, KGlxFetchContextPriorityBlocking );
// TGlxContextRemover will remove the context when it goes out of scope
// Used here to avoid a trap and still have safe cleanup
- TGlxFetchContextRemover contextRemover (attributeContext, mediaList);
+ TGlxFetchContextRemover contextRemover( attributeContext, mediaList );
CleanupClosePushL( contextRemover );
- User::LeaveIfError(GlxAttributeRetriever::RetrieveL(*attributeContext,
- mediaList, ETrue));
+ User::LeaveIfError(GlxAttributeRetriever::RetrieveL(*attributeContext,
+ mediaList, ETrue));
// context off the list
CleanupStack::PopAndDestroy( &contextRemover );
@@ -263,31 +263,42 @@
// extract the filename from selected items in the media list and add it
// to the messageData to be returned
TGlxSelectionIterator iterator;
- iterator.SetToFirst(&mediaList);
+ iterator.SetToFirst( &mediaList );
TInt index = KErrNotFound;
- while ((index = iterator++) != KErrNotFound)
+ while ( (index = iterator++) != KErrNotFound )
{
- // does not return ownership.
- const CGlxMedia* media = mediaList.Item(index).Properties();
- if(media)
- {
- if(media->IsSupported(KMPXMediaGeneralUri) && IsValidTypeL(*media))
- {
- messageData->AppendAttachmentL(
- media->ValueText(KMPXMediaGeneralUri));
- }
- }
- else
- {
- User::Leave(KErrNotReady);
- }
- }
+ // does not return ownership.
+ const CGlxMedia* media = mediaList.Item( index ).Properties();
+ if (media)
+ {
+ if ( media->IsSupported( KMPXMediaGeneralUri ) &&
+ IsValidTypeL( *media ) )
+ {
+ CGlxImageViewerManager* viewerInst =
+ CGlxImageViewerManager::InstanceL();
+ if ( viewerInst && viewerInst->IsPrivate() )
+ {
+ messageData->AppendAttachmentHandleL(
+ viewerInst->ImageFileHandle() );
+ }
+ else
+ {
+ messageData->AppendAttachmentL(
+ media->ValueText( KMPXMediaGeneralUri ) );
+ }
+ viewerInst->DeleteInstance();
+ }
+ }
+ else
+ {
+ User::Leave( KErrNotReady );
+ }
+ }
- CleanupStack::PopAndDestroy(attributeContext);
+ CleanupStack::PopAndDestroy( attributeContext );
return messageData;
- }// contextRemover goes out of scope and removes the context from media list
-
+ }
// ----------------------------------------------------------------------------
// IsValidTypeL
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -35,6 +35,7 @@
#include <glxmedia.h> // for TGlxMedia
#include <StringLoader.h> // for stringloader
#include <glxlog.h>
+#include <glxtracer.h>
#include "shwslideshowviewplugin.hrh" // for the slideshow view's UID
#include "shwslideshowsettingsplugin_UID.hrh"// for slideshow setting dlg UID
@@ -57,7 +58,7 @@
EXPORT_C CGlxCommandHandlerSlideshow* CGlxCommandHandlerSlideshow::NewL(
MGlxMediaListProvider* aMediaListProvider, TBool aStepBack, TBool aHasToolbarItem )
{
- GLX_LOG_INFO( "CGlxCommandHandlerSlideshow::NewL" );
+ TRACER( "CGlxCommandHandlerSlideshow::NewL" );
CGlxCommandHandlerSlideshow* self = new ( ELeave )
CGlxCommandHandlerSlideshow(aMediaListProvider, aStepBack, aHasToolbarItem);
CleanupStack::PushL( self );
@@ -84,7 +85,7 @@
//
void CGlxCommandHandlerSlideshow::ConstructL()
{
- GLX_LOG_INFO( "CGlxCommandHandlerSlideshow::ConstructL" );
+ TRACER( "CGlxCommandHandlerSlideshow::ConstructL" );
// Get a handle
iUiUtility = CGlxUiUtility::UtilityL();
@@ -152,7 +153,7 @@
//
EXPORT_C CGlxCommandHandlerSlideshow::~CGlxCommandHandlerSlideshow()
{
- GLX_LOG_INFO( "CGlxCommandHandlerSlideshow::~CGlxCommandHandlerSlideshow" );
+ TRACER( "CGlxCommandHandlerSlideshow::~CGlxCommandHandlerSlideshow" );
if ( iResourceOffset )
{
CCoeEnv::Static()->DeleteResourceFile(iResourceOffset);
@@ -173,7 +174,7 @@
//
void CGlxCommandHandlerSlideshow::DoActivateL(TInt aViewId)
{
- GLX_LOG_INFO( "CGlxCommandHandlerSlideshow::DoActivateL" );
+ TRACER( "CGlxCommandHandlerSlideshow::DoActivateL" );
iViewId = aViewId;
// for media list item "focus changed" notification
@@ -187,7 +188,7 @@
// ----------------------------------------------------------------------------
void CGlxCommandHandlerSlideshow::Deactivate()
{
- GLX_LOG_INFO( "CGlxCommandHandlerSlideshow::Deactivate" );
+ TRACER( "CGlxCommandHandlerSlideshow::Deactivate" );
MGlxMediaList& mediaList( MediaList() );
mediaList.RemoveMediaListObserver( this );
@@ -200,6 +201,7 @@
TBool CGlxCommandHandlerSlideshow::IsSlideshowNotPlayableOnFocusedContainer
(TInt aCommandId, MGlxMediaList& aList)
{
+ TRACER("CGlxCommandHandlerSlideshow::IsSlideshowNotPlayableOnFocusedContainer");
TBool slideshowDisabled = EFalse;
// get the media item
@@ -229,7 +231,7 @@
TBool CGlxCommandHandlerSlideshow::DoExecuteL(TInt aCommandId,
MGlxMediaList& aList )
{
- GLX_LOG_INFO( "CGlxCommandHandlerSlideshow::DoExecuteL" );
+ TRACER( "CGlxCommandHandlerSlideshow::DoExecuteL" );
TBool handledCommand = ETrue;
switch (aCommandId)
@@ -239,7 +241,7 @@
// This check has to be done again here since Slideshow can be
// activated from toolbar even when there are non-slideshow playable
// items in a container and when that container is focused.
- if( IsSlideshowNotPlayableOnFocusedContainer( aCommandId, aList ) )
+ if( aList.Count() <= 0 || IsSlideshowNotPlayableOnFocusedContainer( aCommandId, aList ) )
{
HBufC* popupText = NULL;
@@ -321,6 +323,7 @@
TBool CGlxCommandHandlerSlideshow::DoIsDisabled(
TInt /*aCommandId*/, MGlxMediaList& /*aList*/) const
{
+ TRACER("CGlxCommandHandlerSlideshow::DoIsDisabled");
// Disable if UPnP is active
return ( GlxUpnpRenderer::Status() == NGlxUpnpRenderer::EActive );
}
@@ -331,6 +334,7 @@
//
TBool CGlxCommandHandlerSlideshow::BypassFiltersForExecute() const
{
+ TRACER("CGlxCommandHandlerSlideshow::BypassFiltersForExecute");
// Always bypass filters to minimise the time spent by the base class
// when it initialises the slideshow menu item.
return ETrue;
@@ -343,7 +347,7 @@
NGlxListDefs::TFocusChangeType /*aType*/,
TInt /*aNewIndex*/, TInt /*aOldIndex*/, MGlxMediaList* /*aList*/ )
{
- GLX_FUNC("CGlxCommandHandlerSlideshow::HandleFocusChangedL");
+ TRACER("CGlxCommandHandlerSlideshow::HandleFocusChangedL");
}
@@ -391,6 +395,7 @@
TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes,
MGlxMediaList* /*aList*/ )
{
+ TRACER("CGlxCommandHandlerSlideshow::HandleAttributesAvailableL");
if ( iShowInToolbar && MediaList().FocusIndex() == aItemIndex )
{
TIdentityRelation<TMPXAttribute> match( TMPXAttribute::MatchContentId );
@@ -429,7 +434,7 @@
void CGlxCommandHandlerSlideshow::ActivateViewL( NShwSlideshow::TPlayDirection
aPlaybackDirection )
{
- GLX_LOG_INFO( "CGlxCommandHandlerSlideshow::ActivateViewL" );
+ TRACER( "CGlxCommandHandlerSlideshow::ActivateViewL" );
// Determine the path from the media list
CMPXCollectionPath* path = MediaList().PathLC();
@@ -482,6 +487,7 @@
//
void CGlxCommandHandlerSlideshow::UpdateToolbar()
{
+ TRACER("CGlxCommandHandlerSlideshow::UpdateToolbar");
TBool visible = EFalse;
if ( GlxUpnpRenderer::Status() != NGlxUpnpRenderer::EActive )
@@ -516,7 +522,7 @@
//
void CGlxCommandHandlerSlideshow::PopulateToolbarL()
{
-
+ TRACER("CGlxCommandHandlerSlideshow::PopulateToolbarL");
iUiUtility->ScreenFurniture()->SetTooltipL( EGlxCmdSlideshowPlay, CAknButton::EPositionLeft );
}
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/ut_propertycommandhandlers/src/ut_propertycommandhandlers.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/ut_propertycommandhandlers/src/ut_propertycommandhandlers.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -324,9 +324,11 @@
{
delete iTagManagerCommand;
+ iTagManagerCommand = NULL;
delete iMetadataCommand;
-
+ iMetadataCommand = NULL;
delete iMediaList;
+ iMediaList = NULL;
}
void UT_propertycommandhandlers::PropertyCommandHandlerNewL( )
--- a/photosgallery/viewframework/commandhandlers/inc/glxcommandhandlers.hrh Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/inc/glxcommandhandlers.hrh Fri Mar 12 15:42:44 2010 +0200
@@ -97,6 +97,7 @@
EGlxCmdSingleClickSend,
EGlxCmdAiwSingleClickEdit,
EGlxCmdSingleClickRemoveFrom,
+ EGlxCmdRenameCompleted,
EGlxCmdAiwBase = 0x6000
};
--- a/photosgallery/viewframework/commandhandlers/tsrc/ut__commandhandlermarking/src/t_glxcommandhandlermarking.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/tsrc/ut__commandhandlermarking/src/t_glxcommandhandlermarking.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -248,8 +248,11 @@
CGlxMarkingCommandHandlerTester::~CGlxMarkingCommandHandlerTester()
{
- iMarker->Deactivate();
-
+ if (iMarker)
+ {
+ iMarker->Deactivate();
+ }
+
iCommandHandlerList.ResetAndDestroy();
iCommandHandlerList.Close();
--- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxcommandhandlerdrm.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxcommandhandlerdrm.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -24,18 +24,12 @@
// EXTERNAL INCLUDES
#include <EUnitMacros.h>
#include <EUnitDecorators.h>
-
#include "glxcommandhandlerdrm.h"
#include "ut_glxdummymedialist.h"
-
#include <glxcommandhandlers.hrh>
-
#include <mpxmediadrmdefs.h>
#include <mpxmediageneraldefs.h>
#include <glxmediageneraldefs.h>
-
-#include "glxdummyvlm.h"
-
#include <Ecom/ECom.h>
// INTERNAL INCLUDES
@@ -51,7 +45,10 @@
CGlxCommandHandlerDRMTester::~CGlxCommandHandlerDRMTester()
{
- iDRMHandler->Deactivate();
+ if ( iDRMHandler )
+ {
+ iDRMHandler->Deactivate();
+ }
iCommandHandlerList.ResetAndDestroy();
iCommandHandlerList.Close();
@@ -172,6 +169,7 @@
void T_GlxCommandHandlerDRM::Teardown( )
{
delete iDRMHandlerTester;
+ iDRMHandlerTester = NULL;
REComSession::FinalClose();
}
--- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlermoreinfo/src/t_glxcommandhandlermoreinfo.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlermoreinfo/src/t_glxcommandhandlermoreinfo.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -43,7 +43,10 @@
CGlxCommandHandlerMoreInfoTester::~CGlxCommandHandlerMoreInfoTester()
{
- iMoreInfoHandler->Deactivate();
+ if ( iMoreInfoHandler )
+ {
+ iMoreInfoHandler->Deactivate();
+ }
iCommandHandlerList.ResetAndDestroy();
iCommandHandlerList.Close();
--- a/photosgallery/viewframework/dataprovider/inc/glxdetailsboundcommand.hrh Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/inc/glxdetailsboundcommand.hrh Fri Mar 12 15:42:44 2010 +0200
@@ -35,24 +35,29 @@
#define EMetaControlIdSettingList KAknCtLastControlId + 1
#define EMetaDataDialogListBox KAknCtLastControlId + 2
-#define ENameItem 0
-#define EDescriptionItem 1
-#define EAlbumsItem 2
-#define ETagsItem 3
-#define EDateAndTimeItem 4
-#define ELocationItem 5
-#define ESizeItem 6
-#define EResolutionItem 7
-#define EDurationItem 8
-#define ElicenseItem 9
+enum TDetailsFields
+ {
+ ENameItem,
+ EDescriptionItem,
+ EAlbumsItem,
+ ETagsItem,
+ EDateAndTimeItem,
+ ELocationItem,
+ ESizeItem,
+ EResolutionItem,
+ EDurationItem,
+ ElicenseItem
+ };
-
-#define EImgVwrNameItem 0
-#define EImgVwrDescriptionItem 1
-#define EImgVwrDateAndTimeItem 2
-#define EImgVwrSizeItem 3
-#define EImgVwrResolutionItem 4
-#define EImgVwrlicenseItem 5
+enum TImageVwrDetailsFields
+ {
+ EImgVwrNameItem,
+ EImgVwrDescriptionItem,
+ EImgVwrDateAndTimeItem,
+ EImgVwrSizeItem,
+ EImgVwrResolutionItem,
+ EImgVwrlicenseItem
+ };
#define EShwCmdSettingsChange 0x6000
#define EShwCmdHelp 0x6001
--- a/photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -161,7 +161,8 @@
icon.bitmapId, resFile, defaultSize ).Id() );
}
else if ( (KErrNone == thumbnailError) || (KErrArgument == thumbnailError)
- || (KErrDiskFull == thumbnailError) || ( drm && isValid == EGlxDrmRightsInvalid ) )
+ || (KErrDiskFull == thumbnailError) || (KErrNoMemory == thumbnailError)
+ || ( drm && isValid == EGlxDrmRightsInvalid ) )
{
//Try and see if we can scale and show the grid tnm else show the default
TBool isGridTnmShown = EFalse;
--- a/photosgallery/viewframework/medialists/src/glxcachemanager.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxcachemanager.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -121,7 +121,7 @@
#ifdef USE_S60_TNM
iTnEngine = CThumbnailManager::NewL( *this);
- iTnEngine->SetDisplayModeL( EColor16MU );
+ iTnEngine->SetDisplayModeL( EColor16M );
#endif
}
@@ -764,7 +764,7 @@
iRequestOwner = list;
CleanupStack::PopAndDestroy(attrSpecs);
TGlxIdSpaceId spaceId = list->IdSpaceId(iRequestedItemIndexes[0]);
- HandleCollectionMediaL(spaceId, *iMPXMedia, KErrArgument);
+ HandleCollectionMediaL(spaceId, *iMPXMedia, errInImage);
DeleteImageViewerInstance();
return;
}
--- a/photosgallery/viewframework/medialists/src/glxgarbagecollector.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxgarbagecollector.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -163,6 +163,7 @@
//
void CGlxGarbageCollector::FlushPagesL(TInt aCount)
{
+ TRACER("CGlxGarbageCollector::FlushPagesL");
TBool reachedEnd = CleanupCaches(aCount);
if ( reachedEnd )
--- a/photosgallery/viewframework/medialists/src/glximagereader.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glximagereader.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -128,8 +128,9 @@
if ( iImageDecoder )
{
iFrame = new (ELeave) CFbsBitmap();
- iFrame->Create(iImageDecoder->FrameInfo(0).iOverallSizeInPixels,
- iImageDecoder->FrameInfo(0).iFrameDisplayMode);
+ User::LeaveIfError(iFrame->Create(
+ iImageDecoder->FrameInfo(0).iOverallSizeInPixels,
+ iImageDecoder->FrameInfo(0).iFrameDisplayMode));
iImageDecoder->Convert(&iStatus, *iFrame, 0);
SetActive();
}
--- a/photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -372,7 +372,7 @@
CFbsBitmap* picture = new (ELeave) CFbsBitmap;
CleanupStack::PushL(picture);
User::LeaveIfError(picture->Create(TSize(KGlxFlatTextureSize,
- KGlxFlatTextureSize), EColor16MU ) );
+ KGlxFlatTextureSize), EColor16M ) );
CFbsBitmapDevice* drawBufDevice = CFbsBitmapDevice::NewL(picture);
CleanupStack::PushL(drawBufDevice);
--- a/photosgallery/viewframework/tvout/inc/glxhdmicontroller.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/tvout/inc/glxhdmicontroller.h Fri Mar 12 15:42:44 2010 +0200
@@ -129,6 +129,7 @@
CGlxHdmiContainer* iHdmiContainer;
CGlxHdmiSurfaceUpdater* iSurfaceUpdater;
CGlxTv* iGlxTvOut;
+ TBool iImageSupported;
};
#endif /* GLXHDMICONTROLLER_H_ */
--- a/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h Fri Mar 12 15:42:44 2010 +0200
@@ -52,13 +52,13 @@
/*
* This is to cancel the active object from decoding
*/
- void HandleRunL();
+ void HandleRunL(TRequestStatus& aStatus);
/*
* This updates the new image.
*/
void UpdateNewImageL(const TDesC& aImageFile,
- TInt aFrameCount);
+ TInt aFrameCount,TSize aImageDimensions);
/*
* Activate Zoom
@@ -97,11 +97,9 @@
/*
* Create a New surface with given size
- * @param1 size
*/
- void CreateSurfaceL(TSize aSize);
+ void CreateSurfaceL();
/*
- * Create surface manager with given size
* @param1 size
*/
void MapSurfaceL();
@@ -141,6 +139,11 @@
void CreateHdmiL(TBool aCreateSurface = ETrue);
static TInt TimeOut(TAny* aSelf);
+
+ /*
+ * ModifySurface positions of the surface to be displayed on screen
+ */
+ void ModifySurfacePostion();
private:
RWindow* iWindow;
const TDesC& iImagePath;
@@ -168,7 +171,6 @@
TInt iAnimCount; // animation count
RFs iFsSession; // RFs
- TBool iFirstTime;
TPoint iLeftCornerForZoom;
CPeriodic* iTimer;
TBool iZoom;
--- a/photosgallery/viewframework/tvout/src/glxactivedecoder.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/tvout/src/glxactivedecoder.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -59,7 +59,14 @@
void CGlxHdmiDecoderAO::RunL()
{
TRACER("CGlxHdmiDecoderAO::RunL()");
- iHdmiSurfaceUpdater->HandleRunL();
+ if(iStatus == KErrUnderflow)
+ {
+ iDecoder->ContinueConvert(&iStatus);
+ }
+ else
+ {
+ iHdmiSurfaceUpdater->HandleRunL(iStatus);
+ }
}
// -----------------------------------------------------------------------------
--- a/photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -26,10 +26,6 @@
#include "glxhdmicontroller.h"
-// 720p image size
-const TInt KHdTvWidth = 1280;
-const TInt KHdTvHeight = 720;
-
// -----------------------------------------------------------------------------
// NewLC
// -----------------------------------------------------------------------------
@@ -67,23 +63,12 @@
{
TRACER("CGlxHdmiController::SetImageL()");
if (aStore)
+ {
+ iImageSupported = ETrue;
StoreImageInfoL(aImageFile, aImageDimensions, aFrameCount);
-
+ }
if (iGlxTvOut->IsHDMIConnected())
{
- if(aImageDimensions.iHeight<=KHdTvHeight &&
- aImageDimensions.iWidth<= KHdTvWidth && aFrameCount > 0)
- {
- GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 1");
- DestroySurfaceUpdater();
- if (!iHdmiContainer)
- {
- CreateHdmiContainerL();
- }
- CreateSurfaceUpdaterL(aImageFile, aImageDimensions, aFrameCount);
- }
- else
- {
GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 2");
// do not close the surface , use the same surface instead.
// Call a function to pass imagefile, imagedimension, framecount
@@ -99,11 +84,10 @@
}
else
{
- GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 3");
- iSurfaceUpdater->UpdateNewImageL(aImageFile, aFrameCount);
- }
- iHdmiContainer->DrawNow();
+ GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 3");
+ iSurfaceUpdater->UpdateNewImageL(aImageFile, aFrameCount,aImageDimensions);
}
+ iHdmiContainer->DrawNow();
}
}
@@ -113,6 +97,7 @@
EXPORT_C void CGlxHdmiController::IsVideo()
{
TRACER("CGlxHdmiController::IsVideo()");
+ iImageSupported = EFalse;
if (iGlxTvOut->IsHDMIConnected())
{
DestroySurfaceUpdater();
@@ -263,7 +248,7 @@
TRACER("CGlxHdmiController::HandleTvStatusChangedL()");
if ( aChangeType == ETvConnectionChanged )
{
- if ( iGlxTvOut->IsHDMIConnected() )
+ if ( iGlxTvOut->IsHDMIConnected() && iImageSupported)
{
GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI Connected");
// Calling SetImageL() with appropriate parameters
--- a/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -100,18 +100,20 @@
void CGlxHdmiSurfaceUpdater::ReleaseContent()
{
TRACER("void CGlxHdmiSurfaceUpdater::ReleaseContent()");
-
- iGlxDecoderAO->Cancel();
- if(iDecodedBitmap)
+ if ( iGlxDecoderAO )
+ {
+ iGlxDecoderAO->Cancel();
+ }
+ if ( iDecodedBitmap )
{
delete iDecodedBitmap;
iDecodedBitmap= NULL;
}
- if (iSurfBufferAO->IsActive())
+ if ( iSurfBufferAO->IsActive() )
{
iSurfBufferAO->Cancel();
}
- if(iImageDecoder)
+ if ( iImageDecoder )
{
delete iImageDecoder;
iImageDecoder = NULL;
@@ -152,8 +154,6 @@
#ifdef _DEBUG
iStartTime.HomeTime();
#endif
- //to refresh the HD screen for the first time.
- iFirstTime = ETrue;
//start decoding the image
iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,0,iImageDecoder);
@@ -172,9 +172,10 @@
// UpdateNewImageL
// -----------------------------------------------------------------------------
void CGlxHdmiSurfaceUpdater::UpdateNewImageL(const TDesC& aImageFile,
- TInt /*aFrameCount*/)
+ TInt /*aFrameCount*/,TSize aImageDimensions)
{
TRACER("CGlxHdmiSurfaceUpdater::UpdateNewImageL()");
+ iOrigImageDimensions = aImageDimensions;
iBitmapReady = EFalse;
ReleaseContent();
CreateImageDecoderL(aImageFile);
@@ -196,9 +197,8 @@
if (aCreateSurface)
{
- TSize rectSz = iDecodedBitmap->SizeInPixels(); // For animation
- GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::CreateHdmiL() Size height = %d and width = %d", rectSz.iHeight, rectSz.iWidth);
- CreateSurfaceL(rectSz);
+ GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::CreateHdmiL() Create Surface");
+ CreateSurfaceL();
}
// Active objects for double buffered draw signalling
@@ -208,16 +208,15 @@
CActive::EPriorityStandard-1);
CActiveScheduler::Add(iSurfBufferAO);
}
-
}
// -----------------------------------------------------------------------------
// CreateSurfaceL
// -----------------------------------------------------------------------------
-void CGlxHdmiSurfaceUpdater::CreateSurfaceL(TSize aSize)
+void CGlxHdmiSurfaceUpdater::CreateSurfaceL()
{
TRACER("CGlxHdmiSurfaceUpdater::CreateSurfaceL()");
-
+ TSize surfaceSize = iWindow->Size(); // create surface of the screen size, i.e 1280x720
iSurfManager = new(ELeave) RSurfaceManager();
TInt error = iSurfManager->Open();
if (error != KErrNone)
@@ -227,10 +226,10 @@
}
RSurfaceManager::TSurfaceCreationAttributesBuf attributes;
attributes().iPixelFormat = EUidPixelFormatARGB_8888;// EUidPixelFormatYUV_420Planar;
- attributes().iSize = aSize;
+ attributes().iSize = surfaceSize;
attributes().iBuffers = 1;
- attributes().iStride = aSize.iWidth * KMulFactorToCreateBitmap;
+ attributes().iStride = surfaceSize.iWidth * KMulFactorToCreateBitmap;
attributes().iAlignment = KMulFactorToCreateBitmap;
attributes().iContiguous = EFalse;
attributes().iMappable = ETrue;
@@ -243,9 +242,8 @@
}
//Map the surface and stride the surface info
MapSurfaceL();
- //Set the background Surface
- iWindow->SetBackgroundSurface(iSurfId);
-
+ // Set the Configuration to the surface ID when creating a surface
+ iConfig.SetSurfaceId(iSurfId);
}
// -----------------------------------------------------------------------------
@@ -274,6 +272,7 @@
iSurfManager->GetBufferOffset( iSurfId, 0,offset);
iSurfBuffer = iSurfChunk->Base()+offset;
}
+
// -----------------------------------------------------------------------------
// SurfBuffer0Ready
// -----------------------------------------------------------------------------
@@ -289,14 +288,12 @@
void CGlxHdmiSurfaceUpdater::Refresh()
{
TRACER("CGlxHdmiSurfaceUpdater::Refresh()");
+ // copy the decoded bitmap on to the surface
SwapBuffers();
+ // Modify the surface position with respect to the buffer size
+ ModifySurfacePostion();
+ // refresh the window
iCallBack->DoGenCallback();
- if(iFirstTime)
- {
- iFirstTime = EFalse;
- iWindow->RemoveBackgroundSurface(ETrue);
- iWindow->SetBackgroundSurface(iSurfId);
- }
}
// -----------------------------------------------------------------------------
@@ -344,25 +341,37 @@
void CGlxHdmiSurfaceUpdater::CreateBitmapL()
{
TRACER("CGlxHdmiSurfaceUpdater::StartImageDecodeL()");
- TSize decodeSize;
- decodeSize.iHeight = (iOrigImageDimensions.iHeight>KHdTvHeight? KHdTvHeight:
- iOrigImageDimensions.iHeight);
- decodeSize.iWidth = (iOrigImageDimensions.iWidth>KHdTvWidth? KHdTvWidth:
- iOrigImageDimensions.iWidth);
- GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - decodeSize width = %d and height %d",
- decodeSize.iWidth, decodeSize.iHeight );
-
+ TSize scrnSize = iWindow->Size();
+ TSize targetBitmapSize;
+ GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - bitmapsize=%d, %d",iOrigImageDimensions.iWidth,iOrigImageDimensions.iHeight);
+ TReal32 scaleFactor = 0.0f;
+ if (scrnSize.iWidth * iOrigImageDimensions.iHeight > scrnSize.iHeight
+ * iOrigImageDimensions.iWidth)
+ {
+ scaleFactor = (TReal32) scrnSize.iHeight
+ / (TReal32) iOrigImageDimensions.iHeight;
+ }
+ else
+ {
+ scaleFactor = (TReal32) scrnSize.iWidth
+ / (TReal32) iOrigImageDimensions.iWidth;
+ }
+ GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - scaleFactor=%f",scaleFactor);
+ targetBitmapSize.iHeight = iOrigImageDimensions.iHeight * scaleFactor;
+ targetBitmapSize.iWidth = iOrigImageDimensions.iWidth * scaleFactor;
+
+ GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - targetBitmapSize=%d, %d",targetBitmapSize.iWidth,targetBitmapSize.iHeight);
//create the bitmap for the required size
- iDecodedBitmap = new(ELeave) CFbsBitmap();
-
- TInt err = iDecodedBitmap->Create(decodeSize,EColor16MU );
+ iDecodedBitmap = new (ELeave) CFbsBitmap();
+
+ TInt err = iDecodedBitmap->Create(targetBitmapSize, EColor16MU);
User::LeaveIfNull(iDecodedBitmap);
}
// -----------------------------------------------------------------------------
// HandleRunL
// -----------------------------------------------------------------------------
-void CGlxHdmiSurfaceUpdater::HandleRunL()
+void CGlxHdmiSurfaceUpdater::HandleRunL(TRequestStatus& aStatus)
{
TRACER("CGlxHdmiSurfaceUpdater::HandleRunL()");
@@ -371,15 +380,24 @@
GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::HandleRunL() ConvertImageL took"
" <%d> us", (TInt)iStopTime.MicroSecondsFrom(iStartTime).Int64());
#endif
- iBitmapReady = ETrue;
- iZoomRectSz = iDecodedBitmap->SizeInPixels();
- if (iSurfBufferAO->iStatus != KRequestPending && !iSurfBufferAO->IsActive())
+ if(aStatus.Int() !=KErrNone)
+ {
+ GLX_LOG_INFO("HandleRunL - Convert failed");
+ ShiftToCloningMode();
+ }
+ else
{
- Refresh();
- iSurfBufferAO->iStatus = KRequestPending;
- iSurfBufferAO->SetActive();
- iSurfUpdateSession.NotifyWhenAvailable(iSurfBufferAO->iStatus);
- TInt err = iSurfUpdateSession.SubmitUpdate(1, iSurfId, 0, NULL);
+ iBitmapReady = ETrue;
+ iZoomRectSz = iDecodedBitmap->SizeInPixels();
+ if (iSurfBufferAO->iStatus != KRequestPending
+ && !iSurfBufferAO->IsActive())
+ {
+ Refresh();
+ iSurfBufferAO->iStatus = KRequestPending;
+ iSurfBufferAO->SetActive();
+ iSurfUpdateSession.NotifyWhenAvailable(iSurfBufferAO->iStatus);
+ TInt err = iSurfUpdateSession.SubmitUpdate(1, iSurfId, 0, NULL);
+ }
}
//release imagedecoder after the conversion is over
if(iImageDecoder)
@@ -403,19 +421,20 @@
User::Leave(error);
}
}
+
// -----------------------------------------------------------------------------
// ActivateZoom
// -----------------------------------------------------------------------------
void CGlxHdmiSurfaceUpdater::ActivateZoom()
{
TRACER("CGlxHdmiSurfaceUpdater::ActivateZoom()");
- iConfig.SetSurfaceId(iSurfId);
iZoom = ETrue;
if(!iTimer->IsActive() && iBitmapReady)
{
iTimer->Start(KZoomDelay,KZoomDelay,TCallBack( TimeOut,this ));
}
}
+
// -----------------------------------------------------------------------------
// DeactivateZoom
// -----------------------------------------------------------------------------
@@ -429,8 +448,8 @@
iConfig.SetExtent(TRect(0,0,bitmapsize.iWidth,bitmapsize.iHeight));
iWindow->SetBackgroundSurface(iConfig, ETrue);
}
-
}
+
// ---------------------------------------------------------------------------
// TimeOut
// ---------------------------------------------------------------------------
@@ -448,6 +467,7 @@
}
return KErrNone;
}
+
// -----------------------------------------------------------------------------
// Zoom
// -----------------------------------------------------------------------------
@@ -465,7 +485,8 @@
iLeftCornerForZoom.iX =iLeftCornerForZoom.iX+KSingleStepForZoom/2;
iLeftCornerForZoom.iY =iLeftCornerForZoom.iY+KSingleStepForZoom/2;
GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::Zoom()--- 2,iZoomRectSz.iWidth = %d, iZoomRectSz.iHeight = %d", iZoomRectSz.iWidth,iZoomRectSz.iHeight);
- iConfig.SetViewport(TRect(iLeftCornerForZoom.iX,iLeftCornerForZoom.iY,iZoomRectSz.iWidth,iZoomRectSz.iHeight));
+ iConfig.SetViewport(TRect(iLeftCornerForZoom.iX,iLeftCornerForZoom.iY,
+ iZoomRectSz.iWidth,iZoomRectSz.iHeight));
}
else
{
@@ -479,9 +500,45 @@
iZoom = ETrue;
}
GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::Zoom()--- 4,iZoomRectSz.iWidth = %d, iZoomRectSz.iHeight = %d", iZoomRectSz.iWidth,iZoomRectSz.iHeight);
- iConfig.SetViewport(TRect(iLeftCornerForZoom.iX,iLeftCornerForZoom.iY,iZoomRectSz.iWidth,iZoomRectSz.iHeight));
+ iConfig.SetViewport(TRect(iLeftCornerForZoom.iX,iLeftCornerForZoom.iY,
+ iZoomRectSz.iWidth,iZoomRectSz.iHeight));
}
- iConfig.SetExtent(TRect(0,0,KHdTvWidth,KHdTvHeight));
+ iWindow->SetBackgroundSurface(iConfig, ETrue);
+ }
+
+// -----------------------------------------------------------------------------
+// ModifySurfacePostion
+// -----------------------------------------------------------------------------
+void CGlxHdmiSurfaceUpdater::ModifySurfacePostion()
+ {
+ TRACER("CGlxHdmiSurfaceUpdater::ModifySurfacePostion()");
+ TSize bitmapSize = iDecodedBitmap->SizeInPixels();
+ TPoint startPoint(0,0);
+ if (bitmapSize.iWidth <KHdTvWidth)
+ {
+ startPoint.iX = (KHdTvWidth - bitmapSize.iWidth)/2;
+ }
+ if (bitmapSize.iHeight <KHdTvHeight)
+ {
+ startPoint.iY = (KHdTvHeight - bitmapSize.iHeight)/2;
+ }
+ GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - target bitmapsize=%d, %d",bitmapSize.iWidth,bitmapSize.iHeight);
+ GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - startPoint =%d, %d",startPoint.iX,startPoint.iY);
+
+ // target
+ iConfig.SetExtent(TRect(startPoint.iX,startPoint.iY,(KHdTvWidth-startPoint.iX),
+ (KHdTvHeight-startPoint.iY)));
+ // source
+ iConfig.SetViewport(TRect(TPoint(0,0),TSize(bitmapSize.iWidth,bitmapSize.iHeight)));
+#ifdef _DEBUG
+ TRect ex, vp;
+ iConfig.GetExtent(ex);
+ iConfig.GetViewport(vp);
+ GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - vp - TL=%d, %d",vp.iTl.iX,vp.iTl.iY);
+ GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - vp - BR=%d, %d",vp.iBr.iX,vp.iBr.iY);
+ GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - ex - TL=%d, %d",ex.iTl.iX,ex.iTl.iY);
+ GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - ex - BR=%d, %d",ex.iBr.iX,ex.iBr.iY);
+#endif
iWindow->SetBackgroundSurface(iConfig, ETrue);
}
@@ -500,5 +557,14 @@
void CGlxHdmiSurfaceUpdater::ShiftToPostingMode()
{
TRACER("CGlxHdmiSurfaceUpdater::ShiftToPostingMode()");
- iWindow->SetBackgroundSurface(iSurfId);
+#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);
+#endif
+ iWindow->SetBackgroundSurface(iConfig, ETrue);
}
--- a/photosgallery/viewframework/uiutilities/data/glxuiutilities.rss Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/data/glxuiutilities.rss Fri Mar 12 15:42:44 2010 +0200
@@ -464,7 +464,7 @@
{
id = EGlxCmdAiwAssign;
serviceCmd = KAiwCmdAssign;
- contentType = "ArcsoftEditor/*";
+ contentType = "MediaEditor/*";
serviceClass = KAiwClassMenu;
}
};
--- a/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -192,19 +192,7 @@
void CGlxCloudViewImp::DoMLViewActivateL(const TVwsViewId & /* aPrevViewId */,
TUid /* aCustomMessageId */, const TDesC8 & /* aCustomMessage */)
{
- TRACER("GLX_CLOUD::CGlxCloudViewImp::DoMLViewActivateL");
- if(StatusPane())
- {
- StatusPane()->MakeVisible(ETrue);
- CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane();
- CAknTitlePane* titlePane = ( CAknTitlePane* )statusPane->ControlL(
- TUid::Uid( EEikStatusPaneUidTitle ));
- if( iTitletext )
- {
- // Set the required Title
- titlePane->SetTextL( *iTitletext );
- }
- }
+ TRACER("GLX_CLOUD::CGlxCloudViewImp::DoMLViewActivateL");
ConstructCloudControlL();
GLX_LOG_INFO("CGlxCloudViewImp::DoMLViewActivateL Cloud View Control Created" );
// set app state to tag-browser view
--- a/photosgallery/viewframework/views/cloudview/src/glxtagscontextmenucontrol.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/src/glxtagscontextmenucontrol.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -34,7 +34,7 @@
#include <alf/alfdisplay.h>
#include <aknnotewrappers.h>
-#include <FBS.H>
+#include <fbs.h>
#include <StringLoader.h>
#include "utf.h" // UtfConverter
--- a/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h Fri Mar 12 15:42:44 2010 +0200
@@ -262,7 +262,10 @@
* Consume DRM rights
*/
void ConsumeDRMRightsL( const TDesC& uri );
-
+ /**
+ * Set the image to external display - HDMI
+ */
+ void SetImageL();
private:
/** Softkey resource id's */
TFullScreenViewResourceIds iResourceIds;
--- a/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -85,6 +85,11 @@
* Start Delay for the periodic timer, in microseconds
*/
const TInt KPeriodicStartDelay = 250000;
+/**
+ * Interval delay for the periodic timer, in microseconds
+ */
+const TInt KPeriodicIntervalDelay = 100000;
+
//This constant is used to calculate the index of the item for which texture has to removed.
//6 = 5(iterator value in forward or backward direction for fullscreen) + 1(focus index);
const TInt KFullScreenIterator = 3;
@@ -307,6 +312,16 @@
//Fix For EPKA-7U5DT7-slideshow launched from FullScreen and connect USB in mass storage mode results in Photos crash
navigationalState->ActivatePreviousViewL();
}
+ else
+ {
+ //fix for ESLM-7YYDXC: When in FullScreen View, view mode must be 'EView'
+ //While coming back from SlideShow to FullScreen view, need to set view mode.
+ if(navigationalState->ViewingMode() != NGlxNavigationalState::EView)
+ {
+ navigationalState->SetToViewMode();
+ }
+ }
+
if(naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid))
{
@@ -321,22 +336,9 @@
if(!iImgViewerMode && iMediaList->Count())
{
iHdmiController = CGlxHdmiController::NewL();
- iOldFocusIndex = iMediaList->FocusIndex();
- TGlxMedia item = iMediaList->Item( iMediaList->FocusIndex() );
- GLX_LOG_INFO("CGlxHdmi - CGlxFullScreenViewImp Create HdmiController");
-
- //check if the content is not video && has proper DRM rights
- //then only call setimage in HDMI
- if (item.Category() != EMPXVideo && iDrmUtility->CheckOpenRightsL(item.Uri(),ETrue))
- {
- TInt frameCount(0);
- TSize orignalSize;
- TBool aFramesPresent = item.GetFrameCount(frameCount);
- TBool adimension = item.GetDimensions(orignalSize);
- iHdmiController->SetImageL(item.Uri(), orignalSize, frameCount);
- }
+ iOldFocusIndex = iMediaList->FocusIndex();
+ SetImageL();
}
-
iScreenFurniture->SetActiveView(iViewUid);
// create the screen furniture for touch devices
@@ -375,8 +377,8 @@
// iContextUtility->PublishPhotoContextL(item.Uri());
if ( !iPeriodic->IsActive() )
{
- iPeriodic->Start( KPeriodicStartDelay, KMaxTInt, TCallBack(
- &PeriodicCallback, static_cast<TAny*>( this ) ) );
+ iPeriodic->Start(KPeriodicStartDelay, KPeriodicIntervalDelay,
+ TCallBack(&PeriodicCallback, static_cast<TAny*> (this)));
}
}
@@ -992,7 +994,16 @@
MulDoubleTapData* DoubleTapData = (MulDoubleTapData*)(aEvent.CustomEventData());
TPoint doubleTapPoint = DoubleTapData->mDoubleTapPoint;
SetSliderLevel();
- TRAP_IGNORE( ActivateZoomControlL(EZoomStartDoubleTap, &doubleTapPoint) );
+ TRAP_IGNORE( ActivateZoomControlL(EZoomStartDoubleTap, &doubleTapPoint) );
+ return EEventConsumed;
+ }
+ case ETypeItemRemoved:
+ {
+ if(iHdmiController)
+ {
+ SetImageL();
+ }
+ iOldFocusIndex = iMediaList->FocusIndex();
return EEventConsumed;
}
case ETypeHighlight:
@@ -1006,25 +1017,9 @@
{
RemoveTexture();
}
- TGlxMedia item1 = iMediaList->Item( iMediaList->FocusIndex() );
- TInt frameCount(0);
- TSize orignalSize;
- TBool aFramesPresent = item1.GetFrameCount(frameCount);
- TBool adimension = item1.GetDimensions(orignalSize);
-
- //check if the content is not video && has proper DRM rights
- //then only call next image in HDMI
if(iHdmiController)
{
- if (item1.Category() != EMPXVideo && iDrmUtility->CheckOpenRightsL(item1.Uri(),ETrue))
- {
- GLX_LOG_INFO("CGlxHdmi - FullscreenView - SetImageL");
- iHdmiController->SetImageL(item1.Uri(), orignalSize, frameCount);
- }
- else
- {
- iHdmiController->IsVideo();
- }
+ SetImageL();
}
iOldFocusIndex = iMediaList->FocusIndex();
if ( NGlxNFullScreenUIState::EUiOn == GetUiSate() )
@@ -1103,6 +1098,15 @@
DeactivateZoomControlL();
consumed = ETrue;
break;
+ case EGlxCmdRenameCompleted:
+ {
+ if (iHdmiController)
+ {
+ SetImageL();
+ }
+ consumed = ETrue;
+ break;
+ }
// case EGlxCmdRotateLeft:
// iCoverFlowWidget->RotateImage(IMulWidget::ERotateLeft,size,KGlxRotationDelay);
// consumed = ETrue;
@@ -1139,15 +1143,6 @@
{
TRACER("CGlxFullScreenViewImp::HandleResourceChangeL");
HandleResourceChangeL ( aType);
- switch (aType)
- {
- case KEikDynamicLayoutVariantSwitch:
- {
- //if resolution changed
-// iSliderWidget->control()->Display()->SetVisibleArea( ClientRect() );
- break;
- }
- }
}
//----------------------------------------------------------------------------------
@@ -1277,13 +1272,6 @@
inline void CGlxFullScreenViewImp::CallPeriodicCallback()
{
TRACER("CGlxFullScreenViewImp::CallPeriodicCallback");
- if(iPeriodic->IsActive())
- {
- iPeriodic->Cancel();
- }
- /*
- * function can leave
- */
TRAP_IGNORE(ShowDrmExpiaryNoteL());
}
@@ -1298,11 +1286,55 @@
if(iMediaList->Count()>0)
{
const TGlxMedia& media = iMediaList->Item(iMediaList->FocusIndex());
- if (media.IsDrmProtected())
+ TInt tnError = GlxErrorManager::HasAttributeErrorL(
+ media.Properties(), KGlxMediaIdThumbnail);
+ GLX_LOG_INFO1("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()"
+ " tnError=%d ", tnError);
+
+ TSize tnSize = iUiUtility->DisplaySize();
+ TMPXAttribute qtyTnAttrib = TMPXAttribute(KGlxMediaIdThumbnail,
+ GlxFullThumbnailAttributeId(ETrue, tnSize.iWidth,
+ tnSize.iHeight));
+ const CGlxThumbnailAttribute* qtyTn = media.ThumbnailAttribute(
+ qtyTnAttrib);
+
+ if (qtyTn)
{
+ if (iPeriodic->IsActive())
+ {
+ iPeriodic->Cancel();
+ }
+ }
+
+ if (tnError == KErrNone && qtyTn && media.IsDrmProtected())
+ {
+ GLX_LOG_INFO("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()"
+ "- ConsumeDRMRightsL()");
const TDesC& uri = media.Uri();
ConsumeDRMRightsL(uri);
}
+
+ if (tnError != KErrNone)
+ {
+ if (iPeriodic->IsActive())
+ {
+ iPeriodic->Cancel();
+ }
+
+ CGlxNavigationalState* navigationalState =
+ CGlxNavigationalState::InstanceL();
+ CleanupClosePushL(*navigationalState);
+ CMPXCollectionPath* naviState = navigationalState->StateLC();
+ if (naviState->Id() == TMPXItemId(
+ KGlxCollectionPluginImageViewerImplementationUid))
+ {
+ GLX_LOG_INFO("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()"
+ "- ShowErrorNoteL()");
+ GlxGeneralUiUtilities::ShowErrorNoteL(tnError);
+ }
+ CleanupStack::PopAndDestroy(naviState);
+ CleanupStack::PopAndDestroy(navigationalState);
+ }
}
}
@@ -1398,3 +1430,32 @@
const TGlxMedia& item = iMediaList->Item(GetIndexToBeRemoved());
iUiUtility->GlxTextureManager().RemoveTexture(item.Id(),EFalse);
}
+// ---------------------------------------------------------------------------
+//
+// Set the image to external display - HDMI
+// ---------------------------------------------------------------------------
+//
+void CGlxFullScreenViewImp::SetImageL()
+ {
+ TRACER("CGlxFullScreenViewImp::SetImageL - CGlxHdmi");
+ TGlxMedia item = iMediaList->Item(iMediaList->FocusIndex());
+ TInt error = GlxErrorManager::HasAttributeErrorL(item.Properties(),
+ KGlxMediaIdThumbnail);
+ if (item.Category() != EMPXVideo && iDrmUtility->CheckOpenRightsL(
+ item.Uri(), ETrue) && (error == KErrNone))
+ {
+ TInt frameCount(0);
+ TSize orignalSize;
+ TBool aFramesPresent = item.GetFrameCount(frameCount);
+ TBool adimension = item.GetDimensions(orignalSize);
+ iHdmiController->SetImageL(item.Uri(), orignalSize, frameCount);
+ GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageL - CGlxHdmi - calling SetImage");
+ }
+ else
+ {
+ GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageL - CGlxHdmi - calling IsVideo");
+ //Set the external display to cloning mode.
+ //If the current item is a video, corruted thumbnail
+ iHdmiController->IsVideo();
+ }
+ }
--- a/photosgallery/viewframework/views/listview/eabi/glxlistviewu.def Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/listview/eabi/glxlistviewu.def Fri Mar 12 15:42:44 2010 +0200
@@ -2,7 +2,5 @@
_ZN12CGlxListView4NewLEP20MGlxMediaListFactoryiR20TListViewResourceIdsRK7TDesC16 @ 1 NONAME
_ZN12CGlxListView5NewLCEP20MGlxMediaListFactoryiR20TListViewResourceIdsRK7TDesC16 @ 2 NONAME
_ZTI12CGlxListView @ 3 NONAME
- _ZTI17CGlxWaitScheduler @ 4 NONAME
- _ZTV12CGlxListView @ 5 NONAME
- _ZTV17CGlxWaitScheduler @ 6 NONAME
+ _ZTV12CGlxListView @ 4 NONAME
--- a/photosgallery/viewframework/views/listview/group/glxlistview.mmp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/listview/group/glxlistview.mmp Fri Mar 12 15:42:44 2010 +0200
@@ -76,4 +76,4 @@
LIBRARY aknicon.lib
LIBRARY egul.lib
LIBRARY aknskins.lib
-LIBRARY bitmaptransforms.lib
+LIBRARY bitgdi.lib
--- a/photosgallery/viewframework/views/listview/inc/glxlistviewimp.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/listview/inc/glxlistviewimp.h Fri Mar 12 15:42:44 2010 +0200
@@ -144,7 +144,7 @@
void DestroyListViewWidget();
protected:
- void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TInt aIndex);
+ void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aPopulateList);
protected:
void Request(TInt aRequestStart, TInt aRequestEnd, THgScrollDirection aDirection);
@@ -204,6 +204,9 @@
TBool iPopulateListTNs;
+ // Flag to check if all the items in list view need to be refreshed
+ TBool iIsRefreshNeeded;
+
TBool iBackwardNavigation;
TInt iStartIndex;
--- a/photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h Fri Mar 12 15:42:44 2010 +0200
@@ -24,7 +24,6 @@
#include "glxmedialistiterator.h" // Interface for going through items in the list in a non-sequential order
#include "mglxmedialistobserver.h" // Observes for changes in media list
#include <memory>
-#include <bitmaptransforms.h>
class GlxThumbnailVariantType;
class CGlxThumbnailContext; // Fetch context to retrieve thumbnails
@@ -35,7 +34,7 @@
class MPreviewTNObserver
{
public:
- virtual void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TInt aIndex) = 0;
+ virtual void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aPopulateList) = 0;
};
// CLASS DECLARATION
@@ -87,8 +86,8 @@
void ScaleBitmapToListSizeL(CFbsBitmap* aSrcBitmap, CFbsBitmap* aDestBitmap);
public:
- void HandleItemChangedL(const CMPXCollectionPath& aPath,
- TBool aPopulateListTNs, TBool aBackwardNavigation);
+ void HandleItemChangedL(const CMPXCollectionPath& aPath,TBool aPopulateListTNs,
+ TBool aIsRefreshNeeded, TBool aBackwardNavigation);
void StartTimer(TBool aPopulateListTNs);
void StopTimer();
@@ -143,6 +142,8 @@
//flag will be true, when initially the first thumbnails for all the
//items in the list are populated.
TBool iPopulateListTNs;
+
+ TBool iIsRefreshNeeded;
//it holds the initial number of thumbnail to be displayed
RArray<TInt> iPreviewItemCount;
@@ -155,31 +156,7 @@
TInt iTrial;
- TBool iBackwardNavigation;
-
CMPXFilter* iPreviewFilter;
-
- CBitmapScaler* iBitmapScaler;
};
- // ----------------------------------------------------------------------------
- // CWaitScheduler - Active object to scale the bitmap to the desired size.
- // ----------------------------------------------------------------------------
- class CGlxWaitScheduler : public CActive
- {
- public:
- static CGlxWaitScheduler* NewL();
- void WaitForRequest();
-
- private:
- CGlxWaitScheduler();
- void ConstructL();
- virtual ~CGlxWaitScheduler();
- void RunL();
- void DoCancel();
-
- private:
- CActiveSchedulerWait iScheduler;
- };
-
#endif //_GLXPREVIEWTHUMBNAILBINDING_H_
--- a/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -37,7 +37,6 @@
#include <glxtracer.h>
#include <glxlog.h> //Glx Logs
#include <glxlistviewplugin.rsg>
-#include <glxmedialistmulmodelprovider.h> //CGlxMediaListMulModelProvider
#include <aknViewAppUi.h>
#include <StringLoader.h> //StringLoader
#include <glxsetappstate.h>
@@ -116,8 +115,8 @@
//Register the view to recieve toolbar events. ViewBase handles the events
SetToolbarObserver(this);
-
iBackwardNavigation = EFalse;
+ iIsRefreshNeeded = EFalse;
}
// ---------------------------------------------------------------------------
@@ -217,7 +216,7 @@
CMPXCollectionPath* path = iMediaList->PathLC(
NGlxListDefs::EPathFocusOrSelection );
iPreviewTNBinding->HandleItemChangedL(*path,
- iPopulateListTNs, iBackwardNavigation);
+ iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation);
CleanupStack::PopAndDestroy( path );
}
@@ -420,6 +419,11 @@
if( iNextViewActivationEnabled && ( aIndex >= 0 && aIndex <
iMediaList->Count()))
{
+ //Delete the PreviewTNMBinding as in forward navigation
+ //we do not get the medialist callback.
+ delete iPreviewTNBinding;
+ iPreviewTNBinding = NULL;
+
iMediaList->SetFocusL(NGlxListDefs::EAbsolute,aIndex);
iLastFocusedIndex = iMediaList->FocusIndex();
iNextViewActivationEnabled = EFalse;
@@ -429,11 +433,12 @@
iMediaList->PathLC( NGlxListDefs::EPathFocusOrSelection );
iCollectionUtility->Collection().OpenL(*path);
CleanupStack::PopAndDestroy(path);
+
}
}
void CGlxListViewImp::PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap*
- /*aMask*/, TInt /*aIndex*/)
+ /*aMask*/, TBool aPopulateList)
{
TRACER("CGlxListViewImp::PreviewTNReadyL");
@@ -441,6 +446,7 @@
TInt focusIndex = iMediaList->FocusIndex();
TInt mediaCount = iMediaList->Count();
+ iPopulateListTNs = aPopulateList;
if (aBitmap)
{
@@ -493,6 +499,7 @@
else
{
iPopulateListTNs = EFalse;
+ iIsRefreshNeeded = EFalse;
// iStartIndex holds the focus index of the item.
// If the focus is not on 0th index and if USB is Connected/Disconnected
@@ -518,7 +525,7 @@
CMPXCollectionPath* path = iMediaList->PathLC(
NGlxListDefs::EPathFocusOrSelection );
iPreviewTNBinding->HandleItemChangedL(*path,
- iPopulateListTNs, iBackwardNavigation);
+ iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation);
CleanupStack::PopAndDestroy( path );
}
}
@@ -592,7 +599,12 @@
iList->ItemL(i).SetTitleL(item.Title());
iList->ItemL(i).SetTextL(item.SubTitle());
}
-
+ GLX_DEBUG3("CGlxListViewImp::CreateListL() Medialist Count = %d, "
+ "iLastFocusIndex %d",mediaCount,iLastFocusedIndex);
+ if(iLastFocusedIndex >= mediaCount)
+ {
+ iLastFocusedIndex = (mediaCount - 1);
+ }
iMediaList->SetFocusL(NGlxListDefs::EAbsolute, iLastFocusedIndex);
iList->SetSelectedIndex(iLastFocusedIndex);
iList->RefreshScreen(iLastFocusedIndex);
@@ -662,37 +674,47 @@
const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* /*aList*/ )
{
TRACER("CGlxListViewImp::HandleAttributesAvailableL");
-
+
TMPXAttribute titleAttrib(KMPXMediaGeneralTitle);
TMPXAttribute subTitleAttrib(KGlxMediaCollectionPluginSpecificSubTitle);
- TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
-
- const TGlxMedia& item = iMediaList->Item(aItemIndex);
+ TIdentityRelation<TMPXAttribute> match(&TMPXAttribute::Match);
- if (KErrNotFound != aAttributes.Find(titleAttrib, match))
- {
+ const TGlxMedia& item = iMediaList->Item(aItemIndex);
+
+ if (KErrNotFound != aAttributes.Find(titleAttrib, match))
+ {
iList->ItemL(aItemIndex).SetTitleL(item.Title());
iList->RefreshScreen(aItemIndex);
- }
+ }
+
+ if (KErrNotFound != aAttributes.Find(subTitleAttrib, match))
+ {
+ iList->ItemL(aItemIndex).SetTextL(item.SubTitle());
+ iList->RefreshScreen(aItemIndex);
- if (KErrNotFound != aAttributes.Find(subTitleAttrib, match))
- {
- iList->ItemL(aItemIndex).SetTextL(item.SubTitle());
- iList->RefreshScreen(aItemIndex);
-
+ // If there is some modified in grid/fullscreen view,
+ // HandleAttributesAvailableL will get called. Here we are setting
+ // iIsRefreshNeeded flag to ETrue
+ if (!iIsRefreshNeeded && iUiUtility->ViewNavigationDirection()
+ == EGlxNavigationBackwards)
+ {
+ iIsRefreshNeeded = ETrue;
+ iPopulateListTNs = EFalse;
+ }
+
// Set iPopulateListTNs to ETrue and refresh all the items in
// list view if subtitle is updated
if (iPreviewTNBinding && !iPopulateListTNs)
{
iPopulateListTNs = ETrue;
iStartIndex = KErrNotFound;
- CMPXCollectionPath* path = iMediaList->PathLC(
- NGlxListDefs::EPathFocusOrSelection );
- iPreviewTNBinding->HandleItemChangedL(*path,
- iPopulateListTNs, iBackwardNavigation);
- CleanupStack::PopAndDestroy( path );
+ CMPXCollectionPath* path = iMediaList->PathLC(
+ NGlxListDefs::EPathFocusOrSelection);
+ iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs,
+ iIsRefreshNeeded, iBackwardNavigation);
+ CleanupStack::PopAndDestroy(path);
}
- }
+ }
}
// ----------------------------------------------------------------------------
@@ -710,7 +732,7 @@
CMPXCollectionPath* path = iMediaList->PathLC(
NGlxListDefs::EPathFocusOrSelection );
iPreviewTNBinding->HandleItemChangedL(*path,
- iPopulateListTNs, iBackwardNavigation);
+ iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation);
CleanupStack::PopAndDestroy( path );
}
}
--- a/photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -28,66 +28,16 @@
#include <glxlog.h>
#include <glxuistd.h> // Fetch context priority def'ns
-
+#include <mglxcache.h>
#include <ganes/HgDoubleGraphicList.h>
const TInt KInitialThumbnailsTimeDelay(100000);
-const TInt KWaitCount(5);
+const TInt KWaitCount(10);
const TInt KThumbnailStartTimeDelay(250000);
-const TInt KThumbnailIntervalTimeDelay(50000);
const TInt KPreviewThumbnailFetchCount(1);
-// ----------------------------------------------------------------------------
-// CWaitScheduler::NewL()
-// ----------------------------------------------------------------------------
-CGlxWaitScheduler* CGlxWaitScheduler::NewL()
- {
- TRACER("CGlxWaitScheduler::NewL()");
- CGlxWaitScheduler* self = new( ELeave ) CGlxWaitScheduler();
- CleanupStack::PushL( self );
- self->ConstructL( );
- CleanupStack::Pop( self );
- return self;
- }
-CGlxWaitScheduler::CGlxWaitScheduler()
-: CActive( EPriorityStandard )
- {
- TRACER("CGlxWaitScheduler::CGlxWaitScheduler()");
- CActiveScheduler::Add( this );
- }
-
-void CGlxWaitScheduler::ConstructL()
- {
- TRACER("CGlxWaitScheduler::ConstructL()");
- // Do nothing
- }
-
-CGlxWaitScheduler::~CGlxWaitScheduler()
- {
- TRACER("CGlxWaitScheduler::~CGlxWaitScheduler()");
- Cancel();
- }
-
-void CGlxWaitScheduler::WaitForRequest()
- {
- TRACER("CGlxWaitScheduler::WaitForRequest()");
- SetActive();
- iScheduler.Start();
- }
-
-void CGlxWaitScheduler::RunL()
- {
- TRACER("CGlxWaitScheduler::RunL()");
- iScheduler.AsyncStop();
- }
-
-void CGlxWaitScheduler::DoCancel()
- {
- TRACER("CGlxWaitScheduler::DoCancel()");
- //Do nothing
- }
// ----------------------------------------------------------------------------
// NewL
@@ -148,7 +98,6 @@
iThumbnailContext->SetDefaultSpec(iGridIconSize.iWidth,
iGridIconSize.iHeight);
iThumbnailContext->AddAttributeL(tnAttr);
- iBitmapScaler = CBitmapScaler::NewL();
}
// ----------------------------------------------------------------------------
@@ -175,13 +124,7 @@
}
delete iTimer;
iTimer = NULL;
- iPreviewItemCount.Close();
-
- if(iBitmapScaler)
- {
- delete iBitmapScaler;
- iBitmapScaler = NULL;
- }
+ iPreviewItemCount.Close();
}
// ----------------------------------------------------------------------------
@@ -208,9 +151,9 @@
if (value)
{
CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
- bitmap->Duplicate( value->iBitmap->Handle());
- //ScaleBitmapToListSizeL(value->iBitmap, bitmap);
- iObserver.PreviewTNReadyL(bitmap, NULL,iProgressIndex);
+ ScaleBitmapToListSizeL(value->iBitmap, bitmap);
+ GLX_LOG_INFO1("iObserver.PreviewTNReadyL() iTrial=%d", iTrial);
+ iObserver.PreviewTNReadyL(bitmap, NULL,iPopulateListTNs);
}
}
}
@@ -218,7 +161,7 @@
{
if (iTrial == KWaitCount)
{
- iObserver.PreviewTNReadyL(NULL, NULL, KErrNotFound);
+ iObserver.PreviewTNReadyL(NULL, NULL, iPopulateListTNs);
iTrial=0;
return;
}
@@ -240,15 +183,15 @@
if (value)
{
CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
- bitmap->Duplicate( value->iBitmap->Handle());
- //ScaleBitmapToListSizeL(value->iBitmap, bitmap);
- iObserver.PreviewTNReadyL(bitmap, NULL,iProgressIndex);
+ ScaleBitmapToListSizeL(value->iBitmap, bitmap);
+ GLX_LOG_INFO1("iObserver.PreviewTNReadyL() iTrialCount=%d", iTrialCount);
+ iObserver.PreviewTNReadyL(bitmap, NULL,iPopulateListTNs);
}
else
{
if (iTrialCount == KWaitCount)
{
- iObserver.PreviewTNReadyL(NULL, NULL, KErrNotFound);
+ iObserver.PreviewTNReadyL(NULL, NULL, iPopulateListTNs);
iTrialCount=0;
return;
}
@@ -283,13 +226,13 @@
// ----------------------------------------------------------------------------
//
void CGlxPreviewThumbnailBinding::HandleItemChangedL(const CMPXCollectionPath& aPath,
- TBool aPopulateListTNs, TBool aBackwardNavigation)
+ TBool aPopulateListTNs, TBool aIsRefreshNeeded, TBool aBackwardNavigation)
{
TRACER("CGlxPreviewThumbnailBinding::HandleItemChangedL");
iTimerTicked = EFalse;
iPopulateListTNs = aPopulateListTNs;
- iBackwardNavigation = aBackwardNavigation;
iProgressIndex = KErrNone;
+ iIsRefreshNeeded = aIsRefreshNeeded;
// remove and close old medialist
if( iMediaList )
@@ -307,6 +250,13 @@
iMediaList->AddContextL(iThumbnailContext, KGlxFetchContextPriorityNormal);
// adding the medialist to observ any changes or updates done
iMediaList->AddMediaListObserverL(this);
+
+ if(aBackwardNavigation)
+ {
+ //On backward navigation start the timer manually, since we do not
+ //get the attribute callback.
+ StartTimer(iPopulateListTNs);
+ }
}
// ----------------------------------------------------------------------------
@@ -328,16 +278,8 @@
if (iPopulateListTNs)
{
- if (iBackwardNavigation)
- {
- iTimer->Start(KThumbnailIntervalTimeDelay, KThumbnailIntervalTimeDelay/KWaitCount,
- TCallBack(IsTimeL,this));
- }
- else
- {
- iTimer->Start(KThumbnailStartTimeDelay,
+ iTimer->Start(KThumbnailStartTimeDelay,
KInitialThumbnailsTimeDelay, TCallBack(IsTimeL,this));
- }
}
}
@@ -401,6 +343,13 @@
if (value)
{
iPreviewItemCount.AppendL( aItemIndex );
+ // sometimes we get HandleAttributesAvailableL callback after some delay
+ // when we do cache cleanup.
+ if(!iPopulateListTNs)
+ {
+ iPopulateListTNs = ETrue;
+ StartTimer(iPopulateListTNs);
+ }
}
}
}
@@ -483,29 +432,54 @@
//
void CGlxPreviewThumbnailBinding::HandlePopulatedL( MGlxMediaList* /*aList*/ )
{
- TRACER("CGlxPreviewThumbnailBinding::HandlePopulatedL()");
- //Start the timer
- StartTimer(iPopulateListTNs);
- }
+ TRACER("CGlxPreviewThumbnailBinding::HandlePopulatedL()");
+
+ // Do cache cleanup. If iIsRefreshNeeded is set,
+ // then clean up the item at 0th index
+ if (iPopulateListTNs && iIsRefreshNeeded)
+ {
+ if (iMediaList && iMediaList->Count() > 0)
+ {
+ GLX_LOG_INFO("**** Cache Cleanup ****");
+ MGlxCache* cacheManager = MGlxCache::InstanceL();
+ cacheManager->ForceCleanupMedia(iMediaList->IdSpaceId(0),
+ iMediaList->Item(0).Id());
+ cacheManager->Close();
+ }
+ }
+ //Start the timer
+ StartTimer(iPopulateListTNs);
+ }
// ----------------------------------------------------------------------------
// ScaleBitmapToListSizeL
// ----------------------------------------------------------------------------
//
void CGlxPreviewThumbnailBinding::ScaleBitmapToListSizeL(
- CFbsBitmap* aSrcBitmap, CFbsBitmap* aDestBitmap)
- {
- TRACER("CGlxPreviewThumbnailBinding::ScaleBitmapToListSizeL()");
-
- // Create the bitmap with the list preferred size
- aDestBitmap->Create(CHgDoubleGraphicList::PreferredImageSize(), EColor16MU);
-
- CGlxWaitScheduler* waitScheduler = CGlxWaitScheduler::NewL();
- CleanupStack::PushL( waitScheduler );
-
- iBitmapScaler->Scale(&waitScheduler->iStatus, *aSrcBitmap,
- *aDestBitmap, ETrue);
- waitScheduler->WaitForRequest();
-
- CleanupStack::PopAndDestroy( waitScheduler );
+ CFbsBitmap* aSrcBitmap, CFbsBitmap* aDestBitmap)
+ {
+ TRACER("CGlxPreviewThumbnailBinding::ScaleBitmapToListSizeL()");
+ TSize destSize = CHgDoubleGraphicList::PreferredImageSize();
+ TSize srcSize = aSrcBitmap->SizeInPixels();
+ if (destSize.iHeight * srcSize.iWidth < destSize.iWidth * srcSize.iHeight)
+ {
+ // Source has taller aspect than target so reduce target width
+ destSize.iWidth = ((destSize.iHeight * srcSize.iWidth)
+ / (srcSize.iHeight));
+ }
+ else
+ {
+ // Source has wider aspect than target so reduce target height
+ destSize.iHeight = (destSize.iWidth * srcSize.iHeight)
+ / srcSize.iWidth;
+ }
+ aDestBitmap->Create(destSize, aSrcBitmap->DisplayMode());
+ CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL(aDestBitmap);
+ CleanupStack::PushL(bitmapDevice);
+ CFbsBitGc* bitmapGc = CFbsBitGc::NewL();
+ CleanupStack::PushL(bitmapGc);
+ bitmapGc->Activate(bitmapDevice);
+ bitmapGc->DrawBitmap(TRect(destSize), aSrcBitmap);
+ CleanupStack::PopAndDestroy(bitmapGc);
+ CleanupStack::PopAndDestroy(bitmapDevice);
}
--- a/photosgallery/viewframework/views/metadatadialog/inc/glxmetadatacontainer.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/metadatadialog/inc/glxmetadatacontainer.h Fri Mar 12 15:42:44 2010 +0200
@@ -213,6 +213,7 @@
//since iUri is const type.
HBufC* iModifiedUri;
CGlxMetadataAsyncUpdate* iAsyncRequest;
+ TBool iRenameCompleted;
};
/**
--- a/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatacontainer.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatacontainer.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -224,7 +224,7 @@
GLX_LOG_INFO("CGlxImgVwrMetadataContainer::HandleListBoxEventL");
if ((aEventType == EEventEnterKeyPressed) ||
(aEventType == EEventEditingStarted) ||
- (aEventType == EEventItemDoubleClicked))
+ (aEventType == EEventItemSingleClicked))
{
//handle edit functionality if items when useer selects via touch
HandleListboxChangesL();
@@ -323,7 +323,7 @@
TGlxMedia item = iItemMediaList->Item(0);
CGlxUStringConverter* stringConverter = CGlxUStringConverter::NewL();
CleanupStack::PushL(stringConverter );
- for(TInt index = 0; index <= 4; index++)
+ for(TInt index = 0; index <= EImgVwrlicenseItem; index++)
{
HBufC* string = NULL;
@@ -353,6 +353,12 @@
stringConverter->AsStringL(item,
KGlxMediaGeneralDimensions,0, string );
}
+ else if(index == EImgVwrlicenseItem)
+ {
+ // If an item is DRM protected, License field in details
+ // should display "View Details"
+ string = StringLoader::LoadL(R_GLX_METADATA_VIEW_OPTIONS_VIEW);
+ }
else
{
//no implementation
@@ -362,9 +368,9 @@
iTextSetter.Copy(KGlxTextSetter);
iTextSetter.Append(*string);
}
- EditItemL(index,EFalse);
- delete string;
- string = NULL;
+ CleanupStack::PushL( string );
+ EditItemL(index,EFalse);
+ CleanupStack::PopAndDestroy(string );
}
CleanupStack::PopAndDestroy(stringConverter );
}
--- a/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -136,6 +136,9 @@
//Initializing to NULL
iModifiedUri = NULL;
+
+ //Flag to check if rename is completed successfully.
+ iRenameCompleted = EFalse;
}
// ---------------------------------------------------------
@@ -309,18 +312,19 @@
TBool CGlxMetadataContainer::IsLocationItem()
{
//if its location item - enable the delete option
- if(ListBox()->CurrentItemIndex()== ELocationItem)
+ if (iItemMediaList->Count() && ListBox()->CurrentItemIndex()
+ == ELocationItem)
{
const TGlxMedia& item = iItemMediaList->Item(0);
TCoordinate coordinate;
- if(item.GetCoordinate(coordinate))
- {
- return EFalse;
- }
- return ETrue;
+ if (item.GetCoordinate(coordinate))
+ {
+ return EFalse;
+ }
+ return ETrue;
}
//return ETrue to dim the item
- return ETrue;
+ return ETrue;
}
//-----------------------------------------------------------------------------
@@ -943,12 +947,17 @@
//generic medialist for the item for all the attributes required other than tags and albums.
if(aList == iItemMediaList)
{
- // Loop untill it checks for all the avialable attributes
- for (TInt i = aAttributes.Count() - 1; i >= 0 ; i--)
- {
- //set attributes to the items in the container
- SetAttributesL(aAttributes[i]);
- }
+ // Loop untill it checks for all the avialable attributes
+ for (TInt i = aAttributes.Count() - 1; i >= 0; i--)
+ {
+ //set attributes to the items in the container
+ SetAttributesL(aAttributes[i]);
+ }
+ if (iRenameCompleted)
+ {
+ iRenameCompleted = EFalse;
+ iAvkonAppUi->ProcessCommandL(EGlxCmdRenameCompleted);
+ }
}
//updation of tags and albums list based on the medialist callback.
if(aList == iTagMediaList || aList == iAlbumMediaList)
@@ -1013,7 +1022,7 @@
TGlxMedia item = iItemMediaList->Item(0);
CGlxUStringConverter* stringConverter = CGlxUStringConverter::NewL();
CleanupStack::PushL(stringConverter );
- for(TInt index = 0; index <= 9; index++)
+ for(TInt index = 0; index <= ElicenseItem ; index++)
{
HBufC* string = NULL;
@@ -1053,6 +1062,12 @@
stringConverter->AsStringL(item,
KGlxMediaGeneralDimensions,0, string );
}
+ else if(index == ElicenseItem)
+ {
+ // If an item is DRM protected, License field in details
+ // should display "View Details"
+ string = StringLoader::LoadL(R_GLX_METADATA_VIEW_OPTIONS_VIEW);
+ }
else
{
//no implementation
@@ -1061,10 +1076,10 @@
{
iTextSetter.Copy(KGlxTextSetter);
iTextSetter.Append(*string);
- }
- EditItemL(index,EFalse);
- delete string;
- string = NULL;
+ }
+ CleanupStack::PushL( string );
+ EditItemL(index,EFalse);
+ CleanupStack::PopAndDestroy(string );
}
CleanupStack::PopAndDestroy(stringConverter );
}
@@ -1082,18 +1097,6 @@
ListBox()->ItemDrawer()->ColumnData()->SetMarqueeParams (KMarqueeLoopCount,
KMarqueeScrollAmount, KMarqueeScrollDelay, KMarqueeScrollInterval);
ListBox()->ItemDrawer()->ColumnData()->EnableMarqueeL(ETrue);
-
- //Fetch the current item index
- TInt index = ListBox()->CurrentItemIndex();
-
- //Reset the disable marquee flag, so that marquee effect can continue (this is normally reset by
- //base class of glxmetaDatadialog::HandlePointerEventL()
- ListBox()->ItemDrawer()->ClearFlags(CListItemDrawer::EDisableMarquee);
-
- //This is the function which actually starts marquee effect. It is anyway being called from base
- //implementation of OfferKeyEventL(), but for pointer event, we have to call
- //this function
- ListBox()->DrawItem(index);
}
// ----------------------------------------------------------------------------
// HandleCommandCompleteL
@@ -1297,21 +1300,22 @@
// ---------------------------------------------------------------------------
void CGlxMetadataContainer::RefreshMediaListL()
{
- TRACER("CGlxMetadataContainer::RefreshMediaList()");
- if(iItemMediaList)
- {
- iItemMediaList->RemoveContext(iMainListAttributecontext);
- iItemMediaList->RemoveMediaListObserver(this);
- iItemMediaList->Close();
- iItemMediaList = NULL;
- if( iMainListAttributecontext )
- {
- delete iMainListAttributecontext;
- iMainListAttributecontext = NULL;
- }
- CreateMediaListForSelectedItemL(ETrue);
- }
- }
+ TRACER("CGlxMetadataContainer::RefreshMediaList()");
+ if (iItemMediaList)
+ {
+ iItemMediaList->RemoveContext(iMainListAttributecontext);
+ iItemMediaList->RemoveMediaListObserver(this);
+ iItemMediaList->Close();
+ iItemMediaList = NULL;
+ if (iMainListAttributecontext)
+ {
+ delete iMainListAttributecontext;
+ iMainListAttributecontext = NULL;
+ }
+ CreateMediaListForSelectedItemL(ETrue);
+ }
+ iRenameCompleted = ETrue;
+ }
// ---------------------------------------------------------------------------
// Completes the active object causing a call from the active scheduler to RunL()
--- a/photosgallery/viewframework/views/metadatadialog/src/glxmetadatadialog.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/metadatadialog/src/glxmetadatadialog.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -470,20 +470,7 @@
const TPointerEvent& aPointerEvent)
{
TRACER("CGlxMetadataDialog::HandlePointerEventL");
-
- //This has to be called first, as base class implementation sets the flag of settings dialog with EDisableMarquee
CCoeControl::HandlePointerEventL( aPointerEvent );
-
- //After the above call we can call our implementation to reset the marque flag and start marqueeing if needed
- if(aPointerEvent.iType == TPointerEvent::EButton1Down
- || aPointerEvent.iType == TPointerEvent::EButton2Down
- || aPointerEvent.iType == TPointerEvent::EButton3Down
- || aPointerEvent.iType == TPointerEvent::EDrag)
- {
- //This has to done at every above mentioned event, since the disable marquee flag is set by base implementation,
- //forcing us the need to reset it everytime.
- iContainer->EnableMarqueingL();
- }
}
// ---------------------------------------------------------------------------
--- a/photosgallery/viewframework/views/viewbase/inc/glxviewbase.h Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/viewbase/inc/glxviewbase.h Fri Mar 12 15:42:44 2010 +0200
@@ -57,7 +57,7 @@
/**
* Constructor
*/
- IMPORT_C CGlxViewBase(TBool aSyncActivation = EFalse);
+ IMPORT_C CGlxViewBase(TBool aSyncActivation = ETrue);
/**
* Destructor.
--- a/photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp Fri Mar 12 15:42:44 2010 +0200
@@ -832,26 +832,26 @@
GLX_LOG_INFO1("_PHOTOS_LOG_: void CGlxZoomControl::HandleGestureL Code : %d", code);
// Todo: This switch should go into the event handler.
- switch (code)
- {
- case EGestureDrag:
- iEventHandler->HandleDragEvent(aEvent);
- break;
- case EGestureTap:
- iEventHandler->HandleSingleTap(aEvent);
- break;
- case EGesturePinch:
- iEventHandler->HandlePinchEventL(aEvent);
- break;
- case EGestureDoubleTap:
- iEventHandler->HandleDoubleTap(aEvent);
- break;
- case EGestureReleased:
- iEventHandler->HandleGestureReleased(aEvent);
- break;
- default :
- break;
- }
+ switch (code)
+ {
+ case EGestureDrag:
+ iEventHandler->HandleDragEvent(aEvent);
+ break;
+ case EGestureTap:
+ iEventHandler->HandleSingleTap(aEvent);
+ break;
+ case EGesturePinch:
+ iEventHandler->HandlePinchEventL(aEvent);
+ break;
+ case EGestureDoubleTap:
+ iEventHandler->HandleDoubleTap(aEvent);
+ break;
+ case EGestureReleased:
+ iEventHandler->HandleGestureReleased(aEvent);
+ break;
+ default :
+ break;
+ }
iEventHandler->SetPreviousEventCode(code);
}