# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1270060263 -10800 # Node ID bcb43dc84c44a4c589bd5007707fc71ab988fed1 # Parent ce1c7ad1f18b45bfacb65f48d68e632c0da3d6f5 Revision: 201011 Kit: 201013 diff -r ce1c7ad1f18b -r bcb43dc84c44 package_definition.xml --- a/package_definition.xml Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/group/ui_metaDataDialog_DoxyFile.txt --- a/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/group/ui_metaDataDialog_DoxyFile.txt Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/group/ui_metaDataDialog_DoxyFile.txt Wed Mar 31 21:31:03 2010 +0300 @@ -2,16 +2,16 @@ # 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 "Eclipse Public License v1.0" +# under the terms of "Eclipse Public License v1.0" # which accompanies this distribution, and is available # at the URL "http://www.eclipse.org/legal/epl-v10.html". -# +# # Initial Contributors: # Nokia Corporation - initial contribution. -# +# # Contributors: # -# Description: +# Description: Project related configuration options to configure Doxygen documentation # # diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/inc/ui_metaDataDialog.h --- a/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/inc/ui_metaDataDialog.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/inc/ui_metaDataDialog.h Wed Mar 31 21:31:03 2010 +0300 @@ -24,11 +24,7 @@ #include #include -// CONSTANTS -//const ?type ?constant_var = ?constant; - // MACROS -//#define ?macro ?macro_def #define TEST_CLASS_VERSION_MAJOR 0 #define TEST_CLASS_VERSION_MINOR 0 #define TEST_CLASS_VERSION_BUILD 0 @@ -39,20 +35,9 @@ _LIT( Kui_metaDataDialogLogFile, "ui_metaDataDialog.txt" ); _LIT( Kui_metaDataDialogLogFileWithTitle, "ui_metaDataDialog_[%S].txt" ); -// FUNCTION PROTOTYPES -//?type ?function_name(?arg_list); - // FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; class Cui_metaDataDialog; -// DATA TYPES -//enum ?declaration -//typedef ?declaration -//extern ?data_type; - -// CLASS DECLARATION - /** * Cui_metaDataDialog test class for STIF Test Framework TestScripter. * ?other_description_lines @@ -74,16 +59,6 @@ */ virtual ~Cui_metaDataDialog(); - public: // New functions - - /** - * ?member_description. - * @since ?Series60_version - * @param ?arg1 ?description - * @return ?description - */ - //?type ?member_function( ?type ?arg1 ); - public: // Functions from base classes /** @@ -94,23 +69,6 @@ */ virtual TInt RunMethodL( CStifItemParser& aItem ); - protected: // New functions - - /** - * ?member_description. - * @since ?Series60_version - * @param ?arg1 ?description - * @return ?description - */ - //?type ?member_function( ?type ?arg1 ); - - protected: // Functions from base classes - - /** - * From ?base_class ?member_description - */ - //?type ?member_function(); - private: /** @@ -123,10 +81,6 @@ */ void ConstructL(); - // Prohibit copy constructor if not deriving from CBase. - // ?classname( const ?classname& ); - // Prohibit assigment operator if not deriving from CBase. - // ?classname& operator=( const ?classname& ); /** * Frees all resources allocated from test methods. @@ -150,33 +104,6 @@ * Method used to log version of test class */ void SendTestClassVersion(); - - //ADD NEW METHOD DEC HERE - //[TestMethods] - Do not remove - - public: // Data - // ?one_line_short_description_of_data - //?data_declaration; - - protected: // Data - // ?one_line_short_description_of_data - //?data_declaration; - - private: // Data - - // ?one_line_short_description_of_data - //?data_declaration; - - // Reserved pointer for future extension - //TAny* iReserved; - - public: // Friend classes - //?friend_class_declaration; - protected: // Friend classes - //?friend_class_declaration; - private: // Friend classes - //?friend_class_declaration; - }; #endif // UI_METADATADIALOG_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialog.cpp --- a/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialog.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialog.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -20,54 +20,6 @@ #include "ui_metaDataDialog.h" #include -// EXTERNAL DATA STRUCTURES -//extern ?external_data; - -// EXTERNAL FUNCTION PROTOTYPES -//extern ?external_function( ?arg_type,?arg_type ); - -// CONSTANTS -//const ?type ?constant_var = ?constant; - -// MACROS -//#define ?macro ?macro_def - -// LOCAL CONSTANTS AND MACROS -//const ?type ?constant_var = ?constant; -//#define ?macro_name ?macro_def - -// MODULE DATA STRUCTURES -//enum ?declaration -//typedef ?declaration - -// LOCAL FUNCTION PROTOTYPES -//?type ?function_name( ?arg_type, ?arg_type ); - -// FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// ?function_name ?description. -// ?description -// Returns: ?value_1: ?description -// ?value_n: ?description_line1 -// ?description_line2 -// ----------------------------------------------------------------------------- -// -/* -?type ?function_name( - ?arg_type arg, // ?description - ?arg_type arg) // ?description - { - - ?code // ?comment - - // ?comment - ?code - } -*/ // ============================ MEMBER FUNCTIONS =============================== @@ -143,7 +95,7 @@ CleanupStack::PushL( self ); self->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; @@ -195,5 +147,4 @@ } - // End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialogBlocks.cpp --- a/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialogBlocks.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialogBlocks.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -22,55 +22,6 @@ #include "glxmetadataviewutility.h" #include "ui_metaDataDialog.h" -// EXTERNAL DATA STRUCTURES -//extern ?external_data; - -// EXTERNAL FUNCTION PROTOTYPES -//extern ?external_function( ?arg_type,?arg_type ); - -// CONSTANTS -//const ?type ?constant_var = ?constant; - -// MACROS -//#define ?macro ?macro_def - -// LOCAL CONSTANTS AND MACROS -//const ?type ?constant_var = ?constant; -//#define ?macro_name ?macro_def - -// MODULE DATA STRUCTURES -//enum ?declaration -//typedef ?declaration - -// LOCAL FUNCTION PROTOTYPES -//?type ?function_name( ?arg_type, ?arg_type ); - -// FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// ?function_name ?description. -// ?description -// Returns: ?value_1: ?description -// ?value_n: ?description_line1 -// ?description_line2 -// ----------------------------------------------------------------------------- -// -/* -?type ?function_name( - ?arg_type arg, // ?description - ?arg_type arg) // ?description - { - - ?code // ?comment - - // ?comment - ?code - } -*/ - // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -128,23 +79,4 @@ } -// ----------------------------------------------------------------------------- -// Cui_metaDataDialog::?member_function -// ?implementation_description -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -/* -TInt Cui_metaDataDialog::?member_function( - CItemParser& aItem ) - { - - ?code - - } -*/ - -// ========================== OTHER EXPORTED FUNCTIONS ========================= -// None - // [End of File] - Do not remove diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/group/ut_collectioninfo_DoxyFile.txt --- a/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/group/ut_collectioninfo_DoxyFile.txt Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/group/ut_collectioninfo_DoxyFile.txt Wed Mar 31 21:31:03 2010 +0300 @@ -2,16 +2,16 @@ # 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 "Eclipse Public License v1.0" +# under the terms of "Eclipse Public License v1.0" # which accompanies this distribution, and is available # at the URL "http://www.eclipse.org/legal/epl-v10.html". -# +# # Initial Contributors: # Nokia Corporation - initial contribution. -# +# # Contributors: # -# Description: +# Description: Project related configuration options to configure Doxygen documentation # # diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/inc/ut_collectioninfo.h --- a/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/inc/ut_collectioninfo.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/inc/ut_collectioninfo.h Wed Mar 31 21:31:03 2010 +0300 @@ -26,11 +26,7 @@ #include #include -// CONSTANTS -//const ?type ?constant_var = ?constant; - // MACROS -//#define ?macro ?macro_def #define TEST_CLASS_VERSION_MAJOR 0 #define TEST_CLASS_VERSION_MINOR 0 #define TEST_CLASS_VERSION_BUILD 0 @@ -41,18 +37,9 @@ _LIT( Kut_collectioninfoLogFile, "ut_collectioninfo.txt" ); _LIT( Kut_collectioninfoLogFileWithTitle, "ut_collectioninfo_[%S].txt" ); -// FUNCTION PROTOTYPES -//?type ?function_name(?arg_list); - // FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; class Cut_collectioninfo; -// DATA TYPES -//enum ?declaration -//typedef ?declaration -//extern ?data_type; - // CLASS DECLARATION /** @@ -76,16 +63,6 @@ */ virtual ~Cut_collectioninfo(); - public: // New functions - - /** - * ?member_description. - * @since ?Series60_version - * @param ?arg1 ?description - * @return ?description - */ - //?type ?member_function( ?type ?arg1 ); - public: // Functions from base classes /** @@ -96,23 +73,6 @@ */ virtual TInt RunMethodL( CStifItemParser& aItem ); - protected: // New functions - - /** - * ?member_description. - * @since ?Series60_version - * @param ?arg1 ?description - * @return ?description - */ - //?type ?member_function( ?type ?arg1 ); - - protected: // Functions from base classes - - /** - * From ?base_class ?member_description - */ - //?type ?member_function(); - private: /** @@ -125,11 +85,6 @@ */ void ConstructL(); - // Prohibit copy constructor if not deriving from CBase. - // ?classname( const ?classname& ); - // Prohibit assigment operator if not deriving from CBase. - // ?classname& operator=( const ?classname& ); - /** * Frees all resources allocated from test methods. * @since ?Series60_version @@ -159,31 +114,11 @@ //ADD NEW METHOD DEC HERE //[TestMethods] - Do not remove - - public: // Data - // ?one_line_short_description_of_data - //?data_declaration; - - protected: // Data - // ?one_line_short_description_of_data - //?data_declaration; - private: // Data // ?one_line_short_description_of_data //?data_declaration; CGlxCollectionInfo* iCollectionInfo; - - // Reserved pointer for future extension - //TAny* iReserved; - - public: // Friend classes - //?friend_class_declaration; - protected: // Friend classes - //?friend_class_declaration; - private: // Friend classes - //?friend_class_declaration; - }; #endif // UT_COLLECTIONINFO_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfo.cpp --- a/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfo.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfo.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -20,55 +20,6 @@ #include "ut_collectioninfo.h" #include -// EXTERNAL DATA STRUCTURES -//extern ?external_data; - -// EXTERNAL FUNCTION PROTOTYPES -//extern ?external_function( ?arg_type,?arg_type ); - -// CONSTANTS -//const ?type ?constant_var = ?constant; - -// MACROS -//#define ?macro ?macro_def - -// LOCAL CONSTANTS AND MACROS -//const ?type ?constant_var = ?constant; -//#define ?macro_name ?macro_def - -// MODULE DATA STRUCTURES -//enum ?declaration -//typedef ?declaration - -// LOCAL FUNCTION PROTOTYPES -//?type ?function_name( ?arg_type, ?arg_type ); - -// FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// ?function_name ?description. -// ?description -// Returns: ?value_1: ?description -// ?value_n: ?description_line1 -// ?description_line2 -// ----------------------------------------------------------------------------- -// -/* -?type ?function_name( - ?arg_type arg, // ?description - ?arg_type arg) // ?description - { - - ?code // ?comment - - // ?comment - ?code - } -*/ - // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -143,7 +94,7 @@ CleanupStack::PushL( self ); self->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; @@ -195,5 +146,4 @@ } - // End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfoBlocks.cpp --- a/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfoBlocks.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfoBlocks.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -20,59 +20,10 @@ #include #include #include -//#include #include #include #include "ut_collectioninfo.h" -// EXTERNAL DATA STRUCTURES -//extern ?external_data; - -// EXTERNAL FUNCTION PROTOTYPES -//extern ?external_function( ?arg_type,?arg_type ); - -// CONSTANTS -//const ?type ?constant_var = ?constant; - -// MACROS -//#define ?macro ?macro_def - -// LOCAL CONSTANTS AND MACROS -//const ?type ?constant_var = ?constant; -//#define ?macro_name ?macro_def - -// MODULE DATA STRUCTURES -//enum ?declaration -//typedef ?declaration - -// LOCAL FUNCTION PROTOTYPES -//?type ?function_name( ?arg_type, ?arg_type ); - -// FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// ?function_name ?description. -// ?description -// Returns: ?value_1: ?description -// ?value_n: ?description_line1 -// ?description_line2 -// ----------------------------------------------------------------------------- -// -/* -?type ?function_name( - ?arg_type arg, // ?description - ?arg_type arg) // ?description - { - - ?code // ?comment - - // ?comment - ?code - } -*/ // ============================ MEMBER FUNCTIONS =============================== @@ -84,7 +35,6 @@ // void Cut_collectioninfo::Delete() { - } // ----------------------------------------------------------------------------- @@ -119,24 +69,6 @@ } - - -// ----------------------------------------------------------------------------- -// Cut_collectioninfo::?member_function -// ?implementation_description -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -/* -TInt Cut_collectioninfo::?member_function( - CItemParser& aItem ) - { - - ?code - - } -*/ - // ----------------------------------------------------------------------------- // Cut_collectioninfo::Test_NewL // Test for CGlxCollectionInfo::NewL API diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/group/ut_collectionmanager_DoxyFile.txt --- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/group/ut_collectionmanager_DoxyFile.txt Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/group/ut_collectionmanager_DoxyFile.txt Wed Mar 31 21:31:03 2010 +0300 @@ -2,16 +2,16 @@ # 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 "Eclipse Public License v1.0" +# under the terms of "Eclipse Public License v1.0" # which accompanies this distribution, and is available # at the URL "http://www.eclipse.org/legal/epl-v10.html". -# +# # Initial Contributors: # Nokia Corporation - initial contribution. -# +# # Contributors: # -# Description: +# Description: Project related configuration options to configure Doxygen documentation # # diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/inc/ut_collectionmanager.h --- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/inc/ut_collectionmanager.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/inc/ut_collectionmanager.h Wed Mar 31 21:31:03 2010 +0300 @@ -28,11 +28,7 @@ #include "glxcollectionmanagerao.h" -// CONSTANTS -//const ?type ?constant_var = ?constant; - // MACROS -//#define ?macro ?macro_def #define TEST_CLASS_VERSION_MAJOR 0 #define TEST_CLASS_VERSION_MINOR 0 #define TEST_CLASS_VERSION_BUILD 0 @@ -43,21 +39,11 @@ _LIT( Kut_collectionmanagerLogFile, "ut_collectionmanager.txt" ); _LIT( Kut_collectionmanagerLogFileWithTitle, "ut_collectionmanager_[%S].txt" ); -// FUNCTION PROTOTYPES -//?type ?function_name(?arg_list); - // FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; class Cut_collectionmanager; -// DATA TYPES -//enum ?declaration -//typedef ?declaration -//extern ?data_type; - // CLASS DECLARATION - class CGlxCollectionManagerAO ; /** @@ -81,16 +67,6 @@ */ virtual ~Cut_collectionmanager(); - public: // New functions - - /** - * ?member_description. - * @since ?Series60_version - * @param ?arg1 ?description - * @return ?description - */ - //?type ?member_function( ?type ?arg1 ); - public: // Functions from base classes /** @@ -100,23 +76,6 @@ * @return Symbian OS error code */ virtual TInt RunMethodL( CStifItemParser& aItem ); - - protected: // New functions - - /** - * ?member_description. - * @since ?Series60_version - * @param ?arg1 ?description - * @return ?description - */ - //?type ?member_function( ?type ?arg1 ); - - protected: // Functions from base classes - - /** - * From ?base_class ?member_description - */ - //?type ?member_function(); private: @@ -130,11 +89,6 @@ */ void ConstructL(); - // Prohibit copy constructor if not deriving from CBase. - // ?classname( const ?classname& ); - // Prohibit assigment operator if not deriving from CBase. - // ?classname& operator=( const ?classname& ); - /** * Frees all resources allocated from test methods. * @since ?Series60_version @@ -144,7 +98,6 @@ /** * Test methods are listed below. */ - /** * Test case for CollectionManager object creation @@ -180,35 +133,9 @@ virtual TInt TestCollectionInfoL(); virtual TInt TestCancelL(); - public: // Data - // ?one_line_short_description_of_data - //?data_declaration; - - protected: // Data - // ?one_line_short_description_of_data - //?data_declaration; - - private: // Data - - // ?one_line_short_description_of_data - //?data_declaration; - - // CollectionManager Active Object used to create collections of images - - // Reserved pointer for future extension - //TAny* iReserved; - - - public: // Friend classes - //?friend_class_declaration; - - protected: // Friend classes - //?friend_class_declaration; private: // Friend classes - //?friend_class_declaration; - CGlxCollectionManagerAO* iAo ; - CActiveSchedulerWait* iWait ; - + CGlxCollectionManagerAO* iAo; + CActiveSchedulerWait* iWait; }; #endif // UT_COLLECTIONMANAGER_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/glxcollectionmanagerao.cpp --- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/glxcollectionmanagerao.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/glxcollectionmanagerao.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -68,7 +68,7 @@ CGlxCollectionManagerAO* self = new (ELeave) CGlxCollectionManagerAO(aObserver); CleanupStack::PushL( self ); self->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } @@ -113,10 +113,6 @@ void CGlxCollectionManagerAO::RunL() { - /* - if (iStatus.Int() != KErrNone) - User::LeaveIfError(iStatus.Int()); - */ iObserver.RequestComplete(iStatus.Int()); } @@ -177,15 +173,12 @@ iCollectionManager = CGlxCollectionManager::NewL(); } TInt err = KErrNone; - //TRAP(err,iCollectionManager->AddToCollectionL((*fixflat)[0].iData, iCollection, iStatus)); TRAP(err,iCollectionManager->AddToCollectionL(KPath, 1, iStatus)); if( !IsActive() ) SetActive(); } - - /* * CTest_Active::TestCollectionInfoL() * This function checks CollectionInfoL() api. diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanager.cpp --- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanager.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanager.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -20,55 +20,6 @@ #include "ut_collectionmanager.h" #include -// EXTERNAL DATA STRUCTURES -//extern ?external_data; - -// EXTERNAL FUNCTION PROTOTYPES -//extern ?external_function( ?arg_type,?arg_type ); - -// CONSTANTS -//const ?type ?constant_var = ?constant; - -// MACROS -//#define ?macro ?macro_def - -// LOCAL CONSTANTS AND MACROS -//const ?type ?constant_var = ?constant; -//#define ?macro_name ?macro_def - -// MODULE DATA STRUCTURES -//enum ?declaration -//typedef ?declaration - -// LOCAL FUNCTION PROTOTYPES -//?type ?function_name( ?arg_type, ?arg_type ); - -// FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// ?function_name ?description. -// ?description -// Returns: ?value_1: ?description -// ?value_n: ?description_line1 -// ?description_line2 -// ----------------------------------------------------------------------------- -// -/* -?type ?function_name( - ?arg_type arg, // ?description - ?arg_type arg) // ?description - { - - ?code // ?comment - - // ?comment - ?code - } -*/ - // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -146,7 +97,7 @@ CleanupStack::PushL( self ); self->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; @@ -192,8 +143,6 @@ TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod); } - - // ========================== OTHER EXPORTED FUNCTIONS ========================= // ----------------------------------------------------------------------------- @@ -204,10 +153,7 @@ EXPORT_C CScriptBase* LibEntryL( CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework { - return ( CScriptBase* ) Cut_collectionmanager::NewL( aTestModuleIf ); - } - // End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanagerBlocks.cpp --- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanagerBlocks.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanagerBlocks.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -25,55 +25,6 @@ #include "ut_collectionmanager.h" -// EXTERNAL DATA STRUCTURES -//extern ?external_data; - -// EXTERNAL FUNCTION PROTOTYPES -//extern ?external_function( ?arg_type,?arg_type ); - -// CONSTANTS -//const ?type ?constant_var = ?constant; - -// MACROS -//#define ?macro ?macro_def - -// LOCAL CONSTANTS AND MACROS -//const ?type ?constant_var = ?constant; -//#define ?macro_name ?macro_def - -// MODULE DATA STRUCTURES -//enum ?declaration -//typedef ?declaration - -// LOCAL FUNCTION PROTOTYPES -//?type ?function_name( ?arg_type, ?arg_type ); - -// FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// ?function_name ?description. -// ?description -// Returns: ?value_1: ?description -// ?value_n: ?description_line1 -// ?description_line2 -// ----------------------------------------------------------------------------- -// -/* -?type ?function_name( - ?arg_type arg, // ?description - ?arg_type arg) // ?description - { - - ?code // ?comment - - // ?comment - ?code - } -*/ - // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -244,23 +195,5 @@ User::InfoPrint(_L("test case failed")); } } -// ----------------------------------------------------------------------------- -// Cut_collectionmanager::?member_function -// ?implementation_description -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -/* -TInt Cut_collectionmanager::?member_function( - CItemParser& aItem ) - { - - ?code - - } -*/ - -// ========================== OTHER EXPORTED FUNCTIONS ========================= -// None // [End of File] - Do not remove diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/gallery_utilities_api/inc/glxgallery.hrh --- a/photos_plat/gallery_utilities_api/inc/glxgallery.hrh Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/gallery_utilities_api/inc/glxgallery.hrh Wed Mar 31 21:31:03 2010 +0300 @@ -30,41 +30,16 @@ * via CApaCommandLine::SetTailEndL, if Gallery not running */ -/// Show album list view -#define KGlxActivationCmdShowAlbumList 0x200071AB // message id for album - /// Show Camera album full screen, focus last modified item +// @deprecated Use KGlxActivationCmdShowAll #define KGlxActivationCmdShowLastModified 0x200071A9 // message id for last modified -/// Run slide show -#define KGlxActivationCmdRunSlideshow 0x200071AA // message id for slideshow - // show last item (latest captured) in Camera album tile view +// @deprecated Use KGlxActivationCmdShowAll #define KGlxActivationCameraAlbum 0x2000A7B8 // message id for cameraalbum @CR 403-2372, 403-2371 Active Space -// show Gallery and opens Main view -#define KGlxActivationPhotosMenu 0x2000A7B9 // message id for photos menu @CR 403-2372, 403-2371 Active Space -/// Slideshow-specific additional parameters -#define KGlxSlideShowForward 1 -#define KGlxSlideShowBackward 2 - -//Open Captured Grid View from Matrix Menu -#define KGlxActivationCameraView 0x2000a767 // message id for photos Captured View from Matrix Menu - -//Open Months List View from Matrix Menu -#define KGlxActivationMonthsView 0x2000a769 // message id for photos Months View from Matrix Menu - -//Open Albums List View from Matrix Menu -#define KGlxActivationAlbumsView 0x20007197 // message id for photos Albums View from Matrix Menu - -//Open Tags browser View from Matrix Menu -#define KGlxActivationTagsView 0x200071AE // message id for photos Tags View from Matrix Menu - -//Open Downloads Grid View from Matrix Menu -#define KGlxActivationDownloadView 0x2000a76b // message id for photos Download View from Matrix Menu - -//Open All Grid View from Matrix Menu -#define KGlxActivationAllView 0x2000A7C1 // message id for photos All View from Matrix Menu +/// Show all images in grid view +#define KGlxActivationCmdShowAll 0x2000A7C1 // message id for all images #endif // __GLXGALLERY_HRH__ diff -r ce1c7ad1f18b -r bcb43dc84c44 photos_plat/gallery_utilities_api/inc/glxthumbnailattributeinfo.h --- a/photos_plat/gallery_utilities_api/inc/glxthumbnailattributeinfo.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photos_plat/gallery_utilities_api/inc/glxthumbnailattributeinfo.h Wed Mar 31 21:31:03 2010 +0300 @@ -78,7 +78,7 @@ inline void InternalizeL(RReadStream& aStream); public: - /** Pointer to bitmap (not filled in by server side!) */ + /** Pointer to bitmap (not filled in by server side) */ CFbsBitmap* iBitmap; /** Cropping rect within original image dimensions */ TRect iCroppingRect; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdeidlist.h --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdeidlist.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdeidlist.h Wed Mar 31 21:31:03 2010 +0300 @@ -119,11 +119,13 @@ private: void DoHandleListQueryCompletedL(); - void DoMonthListCreationL(CMdEQuery& aQuery, const TGlxFilterProperties& aFilterProperties); + void DoMonthListCreationL(CMdEQuery& aQuery, + const TGlxFilterProperties& aFilterProperties); - void DoPostFilterComplete(const RArray& aIdArray, TInt aErrorCode); + void DoPostFilterComplete(const RArray& aIdArray, TInt aErrorCode); - void PostFilterL(const RArray& aFilteredList, const TGlxFilterProperties& aFilterProperties); + void PostFilterL(const RArray& aFilteredList, + const TGlxFilterProperties& aFilterProperties); }; #endif // GLXDATASOURCETASKMDEIDLIST_H_ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcemde.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcemde.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcemde.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -714,7 +714,7 @@ iTnThumbnailCbId = iTnEngine->GetThumbnailL(*source); iTnRequestInProgress = ETrue; - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy( source ); } TInt CGlxDataSourceMde::CancelFetchThumbnail() diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmde.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmde.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmde.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -240,7 +240,9 @@ // CGlxDataSourceTaskMde::SetQueryConditionsL // ---------------------------------------------------------------------------- // -void CGlxDataSourceTaskMde::SetQueryConditionsL(CMdEQuery& aQuery, const TGlxFilterProperties& aFilterProperties, const TGlxMediaId aContainerId, CMdEObjectDef& aObjectDef) +void CGlxDataSourceTaskMde::SetQueryConditionsL(CMdEQuery& aQuery, + const TGlxFilterProperties& aFilterProperties, + const TGlxMediaId aContainerId, CMdEObjectDef& aObjectDef) { GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::SetQueryConditionsL()"); CMdELogicCondition& rootCondition = aQuery.Conditions(); @@ -341,7 +343,6 @@ if( aFilterProperties.iExcludeAnimation ) { - //__ASSERT_DEBUG((EGlxFilterImage == aFilterProperties.iItemType), Panic(EGlxPanicIllegalArgument)); // Exclude any image with a frame count > 1 const TInt excludeAllImagesAboveOrEqualToThisFrameCount = 2; CMdEPropertyDef* frameCountProperty = DataSource()->ImageDef().GetPropertyDefL(KPropertyDefNameFrameCount); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdeattribute.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdeattribute.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdeattribute.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -308,7 +308,10 @@ container = DataSource()->CameraAlbumId(); objectDef = &DataSource()->AlbumDef(); filterProperties.iItemType = EGlxFilterImage; - QueueObjectQueryL(*objectDef, isContent, EAttributeQuery, EQueryResultModeCount, container, request->Attributes()[i], aEntry, filterProperties); + QueueObjectQueryL(*objectDef, isContent, EAttributeQuery, + EQueryResultModeCount, container, + request->Attributes()[i], aEntry, + filterProperties); break; } default: @@ -334,7 +337,10 @@ container = DataSource()->CameraAlbumId(); objectDef = &DataSource()->AlbumDef(); filterProperties.iItemType = EGlxFilterVideo; - QueueObjectQueryL(*objectDef, isContent, EAttributeQuery, EQueryResultModeCount, container, request->Attributes()[i], aEntry, filterProperties); + QueueObjectQueryL(*objectDef, isContent, EAttributeQuery, + EQueryResultModeCount, container, + request->Attributes()[i], aEntry, + filterProperties); break; } default: @@ -399,7 +405,11 @@ filterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate; filterProperties.iSortDirection = EGlxFilterSortDirectionAscending; - QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeObjectWithoutFreetexts, DataSource()->CameraAlbumId(), KGlxMediaCollectionInternalStartDate, aEntry, filterProperties); + QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, + EAttributeQuery, EQueryResultModeObjectWithoutFreetexts, + DataSource()->CameraAlbumId(), + KGlxMediaCollectionInternalStartDate, aEntry, + filterProperties); } else if ( request->Attributes()[i] == KGlxMediaCollectionInternalEndDate ) { @@ -593,7 +603,11 @@ { TGlxFilterProperties filterProperties = iFilterProperties; AddMonthFilterL(aContainer, filterProperties); - QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties); + QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, + EAttributeQuery, EQueryResultModeCount, + DataSource()->CameraAlbumId(), + request->Attributes()[i], aEntry, + filterProperties); break; } } @@ -642,7 +656,11 @@ TGlxFilterProperties filterProperties = iFilterProperties; AddMonthFilterL(aContainer, filterProperties); filterProperties.iItemType = EGlxFilterImage; - QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties); + QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, + EAttributeQuery, EQueryResultModeCount, + DataSource()->CameraAlbumId(), + request->Attributes()[i], aEntry, + filterProperties); break; } default: @@ -663,7 +681,11 @@ TGlxFilterProperties filterProperties = iFilterProperties; AddMonthFilterL(aContainer, filterProperties); filterProperties.iItemType = EGlxFilterVideo; - QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties); + QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, + EAttributeQuery, EQueryResultModeCount, + DataSource()->CameraAlbumId(), + request->Attributes()[i], aEntry, + filterProperties); break; } default: @@ -710,13 +732,21 @@ case CGlxDataSource::EContainerTypeAlbum: case CGlxDataSource::EContainerTypeTag: { - QueueObjectQueryL(aContainer->Def(), ETrue, EAttributeQuery, EQueryResultModeCount, TGlxMediaId(aContainer->Id()), request->Attributes()[i], aEntry, filterProperties); + QueueObjectQueryL(aContainer->Def(), ETrue, + EAttributeQuery, EQueryResultModeCount, + TGlxMediaId(aContainer->Id()), + request->Attributes()[i], aEntry, + filterProperties); break; } case CGlxDataSource::EContainerTypeMonth: { AddMonthFilterL(aContainer, filterProperties); - QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties); + QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, + EAttributeQuery, EQueryResultModeCount, + DataSource()->CameraAlbumId(), + request->Attributes()[i], aEntry, + filterProperties); break; } } @@ -876,7 +906,7 @@ TInt xDimIndex = aItem->Property(*xDimProperty, xDim); if( KErrNotFound == xDimIndex ) { - //User::Leave(KErrCorrupt); + //Do nothing } else { @@ -888,7 +918,7 @@ TInt yDimIndex = aItem->Property(*yDimProperty, yDim); if( KErrNotFound == yDimIndex ) { - //User::Leave(KErrCorrupt); + //Do nothing } else { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdecommand.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdecommand.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdecommand.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -242,7 +242,6 @@ // Copy files to another drive. // ---------------------------------------------------------------------------- // -/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments void CGlxDataSourceTaskMdeCommand::CopyL(const RArray& aSourceIds, const TDesC& aDrive) { GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::CopyL()"); @@ -253,7 +252,6 @@ // Move files to another drive. // ---------------------------------------------------------------------------- // -/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments void CGlxDataSourceTaskMdeCommand::MoveL(const RArray& aSourceIds, const TDesC& aDrive) { GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::MoveL()"); @@ -335,7 +333,6 @@ // // ---------------------------------------------------------------------------- // -/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments void CGlxDataSourceTaskMdeCommand::RenameL(const TGlxMediaId& aSourceItemId, const TDesC& aTitle) { GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::RenameL()"); @@ -728,7 +725,7 @@ TInt CGlxDataSourceTaskMdeCommand::ContainerObjectDef(CMdEObjectDef*& aContainerObjectDef) { GLX_LOG_ENTRY_EXIT("TInt CGlxDataSourceTaskMdeCommand::ContainerObjectDef(CMdEObjectDef*& aContainerObjectDef)"); - //__ASSERT_DEBUG( (iCollectionUid == TUid::Uid(KGlxTagCollectionPluginImplementationUid) || iCollectionUid == TUid::Uid(KGlxCollectionPluginAlbumsImplementationUid)), Panic(EGlxPanicInvalidCollectionUid)); + TInt err = KErrNone; if (iCollectionUid == TUid::Uid(KGlxTagCollectionPluginImplementationUid)) { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsattribute.h --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsattribute.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsattribute.h Wed Mar 31 21:31:03 2010 +0300 @@ -162,6 +162,11 @@ * Attributes associated with outstanding queries */ RArray< TGlxQueryAttribute > iQueryAttributes; + +#ifdef _DEBUG + TTime iStartTime; + TTime iStopTime; +#endif }; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h Wed Mar 31 21:31:03 2010 +0300 @@ -132,6 +132,10 @@ TRequestStatus* iTnRequestStatus; TBool iTnRequestInProgress; +#ifdef _DEBUG + TTime iStartTime; + TTime iStopTime; +#endif }; #endif // GLXDATASOURCETASKMDSTHUMBNAIL_H_ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -345,6 +345,7 @@ void CGlxDataSourceMde::HandleSessionError(CMdESession& /*aSession*/, TInt aError ) { TRACER("CGlxDataSourceMde::HandleSessionError(CMdESession& /*aSession*/, TInt aError)") + delete iSession; iSession = NULL; GLX_DEBUG2("void CGlxDataSourceMde::HandleSessionError() Session Error = %d", aError); @@ -521,8 +522,18 @@ iSession->AddRelationObserverL(*this); iSession->AddRelationPresentObserverL(*this); - iSession->AddObjectObserverL(*this); - iSession->AddObjectPresentObserverL(*this); + //when setting observing conditions, + //add filters for all images, videos, Albums & Tags + CMdELogicCondition* addCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorOr ); + addCondition->AddObjectConditionL( *iImageDef ); + addCondition->AddObjectConditionL( *iVideoDef ); + addCondition->AddObjectConditionL( *iAlbumDef ); + addCondition->AddObjectConditionL( *iTagDef ); + + iSession->AddObjectObserverL(*this, addCondition ); + iSession->AddObjectPresentObserverL(*this ); + + CleanupStack::PopAndDestroy( addCondition ); } // --------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -485,10 +485,11 @@ { TRACER("CGlxDataSourceTaskMde::MaxQueryResultsCount()"); TInt ret = KMdEQueryDefaultMaxCount; - if (aFilterProperties.iLastCaptureDate) + if (aFilterProperties.iLastCaptureDate || aFilterProperties.iMaxCount == 1) { ret = 1; } + GLX_DEBUG2("CGlxDataSourceTaskMde::MaxQueryResultsCount ret=%d", ret); return ret; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -110,6 +110,9 @@ void CGlxDataSourceTaskMdeAttributeMde::ExecuteRequestL() { TRACER("CGlxDataSourceTaskMdeAttribute::ExecuteRequestL()") +#ifdef _DEBUG + iStartTime.HomeTime(); +#endif CGlxGetRequest* request = static_cast(iRequest); @@ -189,6 +192,11 @@ Panic(EGlxPanicLogicError); break; } +#ifdef _DEBUG + iStopTime.HomeTime(); + GLX_DEBUG2("CGlxDataSourceTaskMdeAttributeMde:DoHandleQueryCompletedL() took %d us", + (TInt)iStopTime.MicroSecondsFrom(iStartTime).Int64()); +#endif } // ---------------------------------------------------------------------------- @@ -399,11 +407,13 @@ } else if ( request->Attributes()[i] == KGlxMediaCollectionInternalStartDate ) { + GLX_DEBUG1("CGlxDataSourceTaskMdeAttributeMde::AddCollectionAttributesL - KGlxMediaCollectionInternalStartDate"); TGlxMediaId container = TGlxMediaId(KGlxCollectionRootId); TGlxFilterProperties filterProperties = iFilterProperties; filterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate; filterProperties.iSortDirection = EGlxFilterSortDirectionAscending; filterProperties.iOrigin = EGlxFilterOriginAll; + filterProperties.iMaxCount = 1 ; QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeItem, container, @@ -411,7 +421,17 @@ } else if ( request->Attributes()[i] == KGlxMediaCollectionInternalEndDate ) { - // not necessary to be requested, returned when StartDate requested + GLX_DEBUG1("CGlxDataSourceTaskMdeAttributeMde::AddCollectionAttributesL - KGlxMediaCollectionInternalEndDate"); + TGlxMediaId container = TGlxMediaId(KGlxCollectionRootId); + TGlxFilterProperties filterProperties = iFilterProperties; + filterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate; + filterProperties.iSortDirection = EGlxFilterSortDirectionDescending; + filterProperties.iOrigin = EGlxFilterOriginAll; + filterProperties.iMaxCount = 1 ; + + QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, + EQueryResultModeItem, container, + KGlxMediaCollectionInternalEndDate, aEntry, filterProperties); } else if ( request->Attributes()[i] == KGlxMediaGeneralSlideshowableContent ) { @@ -960,7 +980,7 @@ TInt xDimIndex = aItem->Property(xDimProperty, xDim); if( KErrNotFound == xDimIndex ) { - //User::Leave(KErrCorrupt); + //Do nothing } else { @@ -973,7 +993,7 @@ TInt yDimIndex = aItem->Property(yDimProperty, yDim); if( KErrNotFound == yDimIndex ) { - //User::Leave(KErrCorrupt); + //Do nothing } else { @@ -1146,7 +1166,8 @@ if( query->ResultMode() == EQueryResultModeItem ) { __ASSERT_DEBUG(( iQueryAttributes[0].iAttribute == - KGlxMediaCollectionInternalStartDate ), Panic(EGlxPanicIllegalState)); + KGlxMediaCollectionInternalStartDate || iQueryAttributes[0].iAttribute == + KGlxMediaCollectionInternalEndDate), Panic(EGlxPanicIllegalState)); CMdEPropertyDef& creationDateDef = DataSource()->ObjectDef().GetPropertyDefL( KPropertyDefNameCreationDate); if (creationDateDef.PropertyType() != EPropertyTime) @@ -1155,29 +1176,45 @@ } TTime startMonth(0); TTime endMonth(0); + GLX_DEBUG2("CGlxDataSourceTaskMdeAttributeMde::DoHandleAttributeQueryCompletedL iQueries[0]->Count()=%d", iQueries[0]->Count()); + TInt timeIndex(0) ; if(iQueries[0]->Count() ) { - CMdEProperty* startTime; - CMdEObject& startObject = (CMdEObject&)query->ResultItem(0); - TInt timeIndex = startObject.Property(creationDateDef, startTime); - if( KErrNotFound == timeIndex ) - { - User::Leave(KErrCorrupt); - } - startMonth = static_cast(startTime)->Value(); - CMdEProperty* endTime; - CMdEObject& endObject = (CMdEObject&)query->ResultItem(query->Count()-1); - timeIndex = endObject.Property(creationDateDef, endTime); - if( KErrNotFound == timeIndex ) - { - User::Leave(KErrCorrupt); - } - endMonth = static_cast(endTime)->Value(); + GLX_DEBUG2("CGlxDataSourceTaskMdeAttributeMde::DoHandleAttributeQueryCompletedL query->Count()=%d", query->Count()); + if(iQueryAttributes[0].iAttribute == KGlxMediaCollectionInternalStartDate) + { + CMdEProperty* startTime; + CMdEObject& startObject = (CMdEObject&)query->ResultItem(0); + TInt timeIndex = startObject.Property(creationDateDef, startTime); + if( KErrNotFound == timeIndex ) + { + User::Leave(KErrCorrupt); + } + startMonth = static_cast(startTime)->Value(); + iQueryAttributes[0].iMedia->SetTObjectValueL( + KGlxMediaCollectionInternalStartDate, startMonth); + } + else if(iQueryAttributes[0].iAttribute == KGlxMediaCollectionInternalEndDate) + { + CMdEProperty* endTime; + CMdEObject& endObject = (CMdEObject&)query->ResultItem(0); + timeIndex = endObject.Property(creationDateDef, endTime); + if( KErrNotFound == timeIndex ) + { + User::Leave(KErrCorrupt); + } + endMonth = static_cast(endTime)->Value(); + iQueryAttributes[0].iMedia->SetTObjectValueL( + KGlxMediaCollectionInternalEndDate, endMonth); + } } - iQueryAttributes[0].iMedia->SetTObjectValueL( - KGlxMediaCollectionInternalStartDate, startMonth); - iQueryAttributes[0].iMedia->SetTObjectValueL( - KGlxMediaCollectionInternalEndDate, endMonth); + else + { + iQueryAttributes[0].iMedia->SetTObjectValueL( + KGlxMediaCollectionInternalStartDate, startMonth); + iQueryAttributes[0].iMedia->SetTObjectValueL( + KGlxMediaCollectionInternalEndDate, endMonth); + } } else if( EQueryResultModeCount == query->ResultMode() ) { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -273,7 +273,6 @@ // Copy files to another drive. // ---------------------------------------------------------------------------- // -/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments void CGlxDataSourceTaskMdeCommand::CopyL(const RArray& aSourceIds, const TDesC& aDrive) { @@ -285,7 +284,6 @@ // Move files to another drive. // ---------------------------------------------------------------------------- // -/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments void CGlxDataSourceTaskMdeCommand::MoveL(const RArray& aSourceIds, const TDesC& aDrive) { @@ -373,7 +371,6 @@ // // ---------------------------------------------------------------------------- // -/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments void CGlxDataSourceTaskMdeCommand::RenameL(const TGlxMediaId& aSourceItemId, const TDesC& aTitle) { @@ -691,16 +688,7 @@ TItemId CGlxDataSourceTaskMdeCommand::ContainerItemId(const TGlxMediaId& aMediaId) { TRACER("TMdEItemId CGlxDataSourceTaskMdeCommand::ContainerItemId()"); - TItemId containerId = aMediaId.Value(); - if (aMediaId == KGlxCollectionRootId) - { - // Check the collection plugin uid - if (iCollectionUid == TUid::Uid(KGlxCollectionPluginCameraImplementationUid)) - { - // containerId = DataSource()->CameraAlbumId().Value(); - } - } - return containerId; + return aMediaId.Value(); } // ---------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -258,6 +258,7 @@ TTime lastMonth; TTime currentMonth; TInt count = aQuery.Count(); + GLX_DEBUG2("CGlxDataSourceTaskMdeIdList::DoMonthListCreationL count=%d", count); for( TInt i = 0 ; i < count ; i++ ) { CMdEObject& object = (CMdEObject&)aQuery.ResultItem(i); @@ -273,9 +274,11 @@ { const TGlxMediaId monthId = DataSource()->GetMonthIdL(currentMonth); monthList.AppendL(monthId); + GLX_DEBUG2("CGlxDataSourceTaskMdeIdList::DoMonthListCreationL monthId=%d", monthId.Value()); lastMonth = currentMonth; } } + GLX_DEBUG2("CGlxDataSourceTaskMdeIdList::DoMonthListCreationL monthList.Count=%d", monthList.Count()); PostFilterL(monthList, aFilterProperties); CleanupStack::PopAndDestroy(&monthList); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -156,6 +156,9 @@ void CGlxDataSourceTaskMdeThumbnail::ExecuteRequestL() { TRACER("CGlxDataSourceTaskMdeThumbnail::ExecuteRequestL()") +#ifdef _DEBUG + iStartTime.HomeTime(); +#endif CGlxThumbnailRequest* request = static_cast(iRequest); TGlxThumbnailRequest tnReq; @@ -243,6 +246,11 @@ __ASSERT_DEBUG(dynamic_cast(iRequest), Panic(EGlxPanicLogicError)); CGlxThumbnailRequest* req = static_cast(iRequest); GLX_DEBUG2("*** CGlxDataSourceTaskMdeThumbnail::HandleThumbnailFetchCompleteL() Id=%d ***", req->ItemId().Value()); +#ifdef _DEBUG + iStopTime.HomeTime(); + GLX_DEBUG2("CGlxDataSourceTaskMdeThumbnail:HandleThumbnailFetchCompleteL() took %d us", + (TInt)iStopTime.MicroSecondsFrom(iStartTime).Int64()); +#endif delete iResponse; iResponse = NULL; iResponse = CMPXMedia::NewL(); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/plugins/glxcollectionpluginimageviewer/src/glxcollectionpluginimageviewer.cpp --- a/photosgallery/collectionframework/plugins/glxcollectionpluginimageviewer/src/glxcollectionpluginimageviewer.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/plugins/glxcollectionpluginimageviewer/src/glxcollectionpluginimageviewer.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -92,8 +92,8 @@ } void CGlxCollectionPluginImageViewer::CpiAttributeAdditionalAttributes( - const TMPXAttribute& aCpiAttribute, - RArray& aAttributeArray) + const TMPXAttribute& /*aCpiAttribute*/, + RArray& /*aAttributeArray*/) { // Nothing to be shared apart from the ones that are commonly loaded. } @@ -146,8 +146,8 @@ } void CGlxCollectionPluginImageViewer::HandleCpiAttributeResponseL( - CMPXMedia* aResponse, TArray aCpiAttributes, - TGlxMediaId aMediaId) + CMPXMedia* /*aResponse*/, TArray aCpiAttributes, + TGlxMediaId /*aMediaId*/) { const TInt attribCount = aCpiAttributes.Count(); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp --- a/photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -121,6 +121,7 @@ TInt attrCount = aAttributeArray.Count(); TBool found = EFalse; TBool startfound = EFalse; + TBool endfound = EFalse; #ifdef GLX_SUB_TITLE_REL8 @@ -180,6 +181,10 @@ { startfound = ETrue; } + else if(aAttributeArray[index] == KGlxMediaCollectionInternalEndDate ) + { + endfound = ETrue; + } } if (!found) @@ -190,6 +195,10 @@ { aAttributeArray.Append(KGlxMediaCollectionInternalStartDate); } + if(!endfound) + { + aAttributeArray.Append(KGlxMediaCollectionInternalEndDate); + } #endif // end date will be returned when start date is requested. } @@ -231,6 +240,7 @@ CleanupStack::PushL(mediaArray); const TInt arrayCount = mediaArray->Count(); + GLX_DEBUG2("CGlxCollectionPluginMonths::HandleCpiAttributeResponseL arrayCount=%d", arrayCount); // Sanity check if (arrayCount != mediaIdCount) @@ -262,6 +272,8 @@ TRACER("CGlxCollectionPluginMonths::HandleCpiAttributeResponseL"); TInt count = aCpiAttributes.Count(); + GLX_DEBUG2("CGlxCollectionPluginMonths::HandleCpiAttributeResponseL count=%d", count); + TLanguage lang; lang = User::Language(); @@ -666,8 +678,10 @@ return filterProperties; } - - +// ---------------------------------------------------------------------------- +// GetMonthNameAsStringLC +// ---------------------------------------------------------------------------- +// HBufC* CGlxCollectionPluginMonths::GetMonthNameAsStringLC( const TMonth& aMonth, const TMonthStringType& aStrType) { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/plugins/tagcollectionplugin/src/glxcollectionplugintags.cpp --- a/photosgallery/collectionframework/plugins/tagcollectionplugin/src/glxcollectionplugintags.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/plugins/tagcollectionplugin/src/glxcollectionplugintags.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -170,8 +170,6 @@ HandleCpiAttributeResponseL((*mediaArray)[index], aCpiAttributes, aMediaIds[index]); } - - /// @todo - Can we reset a value. Does it overwrite the original or does it leak? Must test aResponse->SetCObjectValueL(KMPXMediaArrayContents, mediaArray); CleanupStack::PopAndDestroy(mediaArray); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/thumbnailcreator/src/glxtnfileutility.cpp --- a/photosgallery/collectionframework/thumbnailcreator/src/glxtnfileutility.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/thumbnailcreator/src/glxtnfileutility.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -75,7 +75,7 @@ CleanupStack::PushL(self); self->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/thumbnailcreator/src/glxtnimageutility.cpp --- a/photosgallery/collectionframework/thumbnailcreator/src/glxtnimageutility.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/thumbnailcreator/src/glxtnimageutility.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -116,7 +116,6 @@ //Get Exif Metadata and the orientation tag from the file first TUint16 orientation = GetOrientationL(aFileName); TInt isExtDecoderUsed = 0; - ///iDecoder = GlxtnImageDecoderFactory::NewL( iFs, aFileName ); iDecoder = GlxtnImageDecoderFactory::NewL( iFs, aFileName, isExtDecoderUsed ); iOriginalSize = iDecoder->FrameInfo().iOverallSizeInPixels; //Get the orientation and set rotation on the decoder @@ -218,17 +217,6 @@ // OPTION ARMCC --asm --interleave // Modify optimization for ARM insturcion set and for maximum speed // OPTION_REPLACE ARMCC --arm -Otime -/* aSource->LockHeap(); - TUint16* sourceAddress = (TUint16*)aSource->DataAddress(); - aSource->UnlockHeap(); - aTarget->LockHeap(); - TUint16* targetAddress = (TUint16*)aTarget->DataAddress(); - aTarget->UnlockHeap(); - ScaleColor64K(sourceAddress, aSource->DataStride(), - sourceSize.iWidth, sourceSize.iHeight, 0, 0, sourceSize.iWidth, sourceSize.iHeight, - targetAddress, aTarget->DataStride(), - targetSize.iWidth, targetSize.iHeight); -*/ void CGlxtnImageUtility::FilterImageL(TRequestStatus* aStatus, CFbsBitmap* aSource, CFbsBitmap*& aFilteredSource, CFbsBitmap* aTarget) { @@ -299,20 +287,12 @@ TUint16* targetAddress = (TUint16*)aTarget->DataAddress(); aTarget->UnlockHeap(); ScaleColor64K(sourceAddress, sourceImage->DataStride(), - sourceImage->SizeInPixels().iWidth, sourceImage->SizeInPixels().iHeight, 0, 0, sourceImage->SizeInPixels().iWidth, sourceImage->SizeInPixels().iHeight, - targetAddress, aTarget->DataStride(), - targetSize.iWidth, targetSize.iHeight); + sourceImage->SizeInPixels().iWidth, + sourceImage->SizeInPixels().iHeight, 0, 0, + sourceImage->SizeInPixels().iWidth, + sourceImage->SizeInPixels().iHeight, targetAddress, + aTarget->DataStride(), targetSize.iWidth, targetSize.iHeight); -/* if ( !iBitGc ) - { - iBitGc = CFbsBitGc::NewL(); - } - CFbsBitmapDevice *bitmapDevice = CFbsBitmapDevice::NewL(aTarget); - CleanupStack::PushL(bitmapDevice); - iBitGc->Activate(bitmapDevice); - iBitGc->DrawBitmap(targetRect, sourceImage, sourceRect); - CleanupStack::PopAndDestroy(bitmapDevice); -*/ *aStatus = KRequestPending; User::RequestComplete(aStatus, KErrNone); } @@ -409,11 +389,11 @@ #define mask32gbr655 0x07e0f81f -// Keep below three defs in sync with each other! +// Keep below three defs in sync with each other #define KFIRLen 2 #define KFIRCen (KFIRLen / 2) #define incFIRIndex( i ) i = (i + 1) & (KFIRLen - 1) -// Keep above three defs in sync with each other! +// Keep above three defs in sync with each other void CGlxtnImageUtility::FIRFiltering( TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows ) @@ -429,10 +409,8 @@ p = aDst; for ( row = aDstRows - 1; row >= 0; row-- ) { - // read for cache - //for ( col = aDstCols - 1; col >= 0; col-- ) TInt temp = p[ col ]; // Fill in the FIR first. - // TODO: Fill in with extrapolated values at edges! + // TODO: Fill in with extrapolated values at edges FIRsum = ((KFIRLen / 2)<<21) | ((KFIRLen / 2)<<11) | (KFIRLen / 2); // for correct rounding i = 0; TUint32 mask1 = mask32gbr655; @@ -492,11 +470,11 @@ } } // -// Keep below three defs in sync with each other! +// NOTE: Keep below three defs in sync with each other #define KFIRLen4 4 #define KFIRCen4 (KFIRLen4 / 2) #define incFIRIndex4( i ) i = (i + 1) & (KFIRLen4 - 1) -// Keep above three defs in sync with each other! +// NOTE: Keep above three defs in sync with each other void CGlxtnImageUtility::FIRFiltering4( TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows ) @@ -512,10 +490,8 @@ p = aDst; for ( row = aDstRows - 1; row >= 0; row-- ) { - // read for cache - //for ( col = aDstCols - 1; col >= 0; col-- ) TInt temp = p[ col ]; // Fill in the FIR first. - // TODO: Fill in with extrapolated values at edges! + // TODO: Fill in with extrapolated values at edges FIRsum = ((KFIRLen4 / 2)<<21) | ((KFIRLen4 / 2)<<11) | (KFIRLen4 / 2); // for correct rounding i = 0; TUint32 mask1 = mask32gbr655; @@ -575,11 +551,11 @@ } } -// Keep below three defs in sync with each other! +// Keep below three defs in sync with each other #define KFIRLen8 8 #define KFIRCen8 (KFIRLen8 / 2) #define incFIRIndex8( i ) i = (i + 1) & (KFIRLen8 - 1) -// Keep above three defs in sync with each other! +// Keep above three defs in sync with each other void CGlxtnImageUtility::FIRFiltering8( TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows ) @@ -595,10 +571,8 @@ p = aDst; for ( row = aDstRows - 1; row >= 0; row-- ) { - // read for cache - //for ( col = aDstCols - 1; col >= 0; col-- ) TInt temp = p[ col ]; // Fill in the FIR first. - // TODO: Fill in with extrapolated values at edges! + // TODO: Fill in with extrapolated values at edges FIRsum = ((KFIRLen8 / 2)<<21) | ((KFIRLen8 / 2)<<11) | (KFIRLen8 / 2); // for correct rounding i = 0; TUint32 mask1 = mask32gbr655; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/thumbnailcreator/src/glxtnvolumedatabase.cpp --- a/photosgallery/collectionframework/thumbnailcreator/src/glxtnvolumedatabase.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/thumbnailcreator/src/glxtnvolumedatabase.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -484,7 +484,7 @@ iTable.GetL(); TPtrC filename = iTable.ColDes(KGlxColItemUri); - // does file exist? + // check if file exists TTime time(0); TInt err = iFs.Modified(filename, time); GLX_LOG_INFO1("void CGlxtnVolumeDatabase::CleanupRowL() New Time = %Ld",time.Int64()); @@ -520,7 +520,7 @@ iTable.PutL(); } - // Now delete from Thumbnails + // Now delete from Thumbnails HBufC* sql = HBufC::NewLC(KGlxDeleteThumbnails().Length() + KGlxTIntMaxDigits); sql->Des().Format( KGlxDeleteThumbnails, thumbId ); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.cpp --- a/photosgallery/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -328,7 +328,7 @@ iState = EStateIdle; } - return ETrue ; //( iState == EStateIdle ); + return ETrue ; } #ifdef RD_MDS_2_0 diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/common/bwins/glxcommonu.def --- a/photosgallery/common/bwins/glxcommonu.def Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/common/bwins/glxcommonu.def Wed Mar 31 21:31:03 2010 +0300 @@ -31,8 +31,8 @@ ?CreateCombinedFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@ABVTGlxFilterProperties@@PAV2@H@Z @ 30 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateCombinedFilterL(class TGlxFilterProperties const &, class CMPXMedia *, int) ?RemoveFromContainerCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@VTGlxMediaId@@ABVCMPXCollectionPath@@@Z @ 31 NONAME ; class CMPXMedia * TGlxCommandFactory::RemoveFromContainerCommandLC(class TGlxMediaId, class CMPXCollectionPath const &) ?NewL@CGlxIadUpdate@@SAPAV1@XZ @ 32 NONAME ; class CGlxIadUpdate * CGlxIadUpdate::NewL(void) - ??1CGlxSingletonStore@@UAE@XZ @ 33 NONAME ; CGlxSingletonStore::~CGlxSingletonStore(void) - ?IdsL@TGlxCommandParser@@SAHAAVTUid@@AAKABVCMPXMedia@@@Z @ 34 NONAME ; int TGlxCommandParser::IdsL(class TUid &, unsigned long &, class CMPXMedia const &) + ?IdsL@TGlxCommandParser@@SAHAAVTUid@@AAKABVCMPXMedia@@@Z @ 33 NONAME ; int TGlxCommandParser::IdsL(class TUid &, unsigned long &, class CMPXMedia const &) + ??1CGlxSingletonStore@@UAE@XZ @ 34 NONAME ; CGlxSingletonStore::~CGlxSingletonStore(void) ?CreateModifiedDateFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterSortDirection@@@Z @ 35 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateModifiedDateFilterL(enum TGlxFilterSortDirection) ?AddContainerCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVTDesC16@@H@Z @ 36 NONAME ; class CMPXMedia * TGlxCommandFactory::AddContainerCommandLC(class TDesC16 const &, int) ?DeleteLocationCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVCMPXCollectionPath@@@Z @ 37 NONAME ; class CMPXMedia * TGlxCommandFactory::DeleteLocationCommandLC(class CMPXCollectionPath const &) @@ -45,6 +45,7 @@ ?DeleteCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVCMPXCollectionPath@@@Z @ 44 NONAME ; class CMPXMedia * TGlxCommandFactory::DeleteCommandLC(class CMPXCollectionPath const &) ?CreateSlideShowFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@PAVCMPXCollectionPath@@W4TGlxFilterSortDirection@@W4TGlxFilterSortOrder@@@Z @ 45 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateSlideShowFilterL(class CMPXCollectionPath *, enum TGlxFilterSortDirection, enum TGlxFilterSortOrder) ?Close@CGlxSingletonStore@@SAXPAVCBase@@@Z @ 46 NONAME ; void CGlxSingletonStore::Close(class CBase *) - ?CreateContainerPreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 47 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateContainerPreviewFilterL(void) - ?CreatePreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 48 NONAME ; class CMPXMedia * TGlxFilterFactory::CreatePreviewFilterL(void) + ?CreatePreviewTNFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 47 NONAME ; class CMPXMedia * TGlxFilterFactory::CreatePreviewTNFilterL(void) + ?CreateContainerPreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 48 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateContainerPreviewFilterL(void) + ?CreatePreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 49 NONAME ; class CMPXMedia * TGlxFilterFactory::CreatePreviewFilterL(void) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/common/eabi/glxcommonu.def --- a/photosgallery/common/eabi/glxcommonu.def Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/common/eabi/glxcommonu.def Wed Mar 31 21:31:03 2010 +0300 @@ -51,4 +51,5 @@ _ZN21CGlxResourceUtilities20GetResourceFilenameLER4TBufILi256EER3RFs @ 50 NONAME _ZTI13CGlxIadUpdate @ 51 NONAME _ZTV13CGlxIadUpdate @ 52 NONAME + _ZN17TGlxFilterFactory22CreatePreviewTNFilterLEv @ 53 NONAME diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/common/inc/glxfilterfactory.h --- a/photosgallery/common/inc/glxfilterfactory.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/common/inc/glxfilterfactory.h Wed Mar 31 21:31:03 2010 +0300 @@ -129,6 +129,12 @@ */ IMPORT_C static CMPXFilter* CreatePreviewFilterL(); + /** + * Creates a filter that sets filters for ONE preview thumbnail + * + * @return a filter object with array elements set for previews + */ + IMPORT_C static CMPXFilter* CreatePreviewTNFilterL(); /** * Creates a filter that sets filters for the previews for items which have containers( albums, tags ) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/common/src/glxcommandparser.cpp --- a/photosgallery/common/src/glxcommandparser.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/common/src/glxcommandparser.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -61,10 +61,6 @@ { ArrayValueL(KMPXMediaGeneralContainerId, targetIdArray, aCommand); } - -/// @todo minor: Rowland Cook 12/06/2007 Could this be restrctured to be more efficient? -// IE - Test for invalid combiations before retrieving the data. - if(hasTitle) { if(hasUri || hasSourceIds || hasDrive || hasTargetIds) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/common/src/glxfilterfactory.cpp --- a/photosgallery/common/src/glxfilterfactory.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/common/src/glxfilterfactory.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -154,6 +154,21 @@ return CreateCombinedFilterL(filterProperties); } +// --------------------------------------------------------------------------- +// Creates a preview TN filter object with one thumbnail +// --------------------------------------------------------------------------- +// +EXPORT_C CMPXFilter* TGlxFilterFactory::CreatePreviewTNFilterL() + { + TGlxFilterProperties filterProperties; + // Exclude empty containers + filterProperties.iMinCount = 1; + // If sorting on date, override sort direction to descending + filterProperties.iSortDirection = EGlxFilterSortDirectionOverrideToDescendingIfDate; + // Request only one item + filterProperties.iMaxCount = 1; + return CreateCombinedFilterL(filterProperties); + } // --------------------------------------------------------------------------- // Creates a preview filter object for container items (album, tags) @@ -280,7 +295,11 @@ if( !aOverrideOriginal || ( EGlxFilterSortDirectionNotUsed == aFilterProperties.iSortDirection ) ) { sortDirection = aOriginalFilter->ValueTObjectL(KGlxFilterGeneralSortDirection); - TBool descendIfDate = ( EGlxFilterSortDirectionOverrideToDescendingIfDate == sortDirection ) && ( ( EGlxFilterSortOrderCaptureDate == sortFilter ) || ( EGlxFilterSortOrderModifiedDate == sortFilter ) ); + TBool descendIfDate = + (EGlxFilterSortDirectionOverrideToDescendingIfDate == sortDirection) && + ( (EGlxFilterSortOrderCaptureDate == sortFilter) || + (EGlxFilterSortOrderModifiedDate == sortFilter) + ); if( EGlxFilterSortDirectionReverse == sortDirection ) { if( EGlxFilterSortDirectionDescending == aFilterProperties.iSortDirection ) @@ -356,6 +375,18 @@ filter->SetTObjectValueL(KGlxFilterGeneralMinCount, minCount); } + TInt maxCount = aFilterProperties.iMaxCount; + if( aOriginalFilter->IsSupported(KGlxFilterGeneralMaxCount) ) + { + if( !aOverrideOriginal || ( 0 == aFilterProperties.iMaxCount ) ) + { + maxCount = aOriginalFilter->ValueTObjectL(KGlxFilterGeneralMaxCount); + } + } + if( !(maxCount == 0) ) + { + filter->SetTObjectValueL(KGlxFilterGeneralMaxCount, maxCount); + } TGlxMediaId itemId = aFilterProperties.iContainsItem; if( aOriginalFilter->IsSupported(KGlxFilterGeneralItemId) ) @@ -515,6 +546,10 @@ { filterProperties.iMinCount = aFilter->ValueTObjectL(KGlxFilterGeneralMinCount); } + if (aFilter->IsSupported(KGlxFilterGeneralMaxCount)) + { + filterProperties.iMaxCount = aFilter->ValueTObjectL(KGlxFilterGeneralMaxCount); + } if (aFilter->IsSupported(KGlxFilterGeneralItemId)) { filterProperties.iContainsItem = (TGlxMediaId)(TUint32)aFilter->ValueTObjectL(KGlxFilterGeneralItemId); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/commonui/inc/glxbackservicewrapper.h --- a/photosgallery/commonui/inc/glxbackservicewrapper.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: wrapper for Back Stepping Service -* -*/ - - - - -#ifndef C_GLX_BACKSERVICE_WRAPPER -#define C_GLX_BACKSERVICE_WRAPPER - -#include - -class MLiwInterface; -class CLiwGenericParamList; -class CLiwServiceHandler; - -/** - * BS Service wrapper - * - * @since S60 v3.2 - */ -class CGlxBackServiceWrapper : public CBase - { - -public: - - /** - * Two-phased constructors - * @param aUid client application UID - */ - static CGlxBackServiceWrapper* NewL( const TUid aUid ); - static CGlxBackServiceWrapper* NewLC( const TUid aUid ); - - /** - * Destructor. - */ - virtual ~CGlxBackServiceWrapper(); - - /** - * Forwards activation event - * - * @since S60 v3.2 - * @param aState state of application like view ids - * @param aEnter indicate if it is entry/exit activation - * @return result code retutned by BS Service interface - * @leave leaves from HandleResultL are propagated - */ - IMPORT_C TInt ForwardActivationEventL( const TDesC8& aState, const TBool aEnter ); - - /** - * Handles back command - * - * @since S60 v3.2 - * @param aState state of application like view ids - * @return result code retutned by BS Service interface - * @leave leaves from HandleResultL are propagated - */ - IMPORT_C TInt HandleBackCommandL( const TDesC8& aState, const TBool aCheckOnly = EFalse ); - -private: - - CGlxBackServiceWrapper(); - - /** - * 2nd phase constructor - * @param aUid client application UID - */ - void ConstructL( const TUid aUid ); - - /** - * Initializes BS Service - * @param aUid client application UID - * @leave KErrNotSupported or KErrArgument - * (if arguments passed to BS Service are incorrect - * or could not initialize BS) - * KErrNotFound (if there was no return value) - */ - void InitializeL( const TUid aUid ); - - /** - * Handles the result of a LIW command - * @return result code retutned by BS Service interface - * @leave KErrNotSupported or KErrArgument - * (if arguments passed to BS Service are incorrect) - * KErrNotFound (if there was no return value) - */ - TInt HandleResultL(); - -private: // data - - /** - * Liw Service Handler - * Own. - */ - CLiwServiceHandler* iServiceHandler; - - /** - * BS Service interface returned by LIW - * Own. - */ - MLiwInterface* iBSInterface; - - /** - * In param list - * Not own. - */ - CLiwGenericParamList* iInParamList; - - /** - * Out param list - * Not own. - */ - CLiwGenericParamList* iOutParamList; - - }; - -#endif // C_GLX_BACKSERVICE_WRAPPER diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/commonui/src/glxbackservicewrapper.cpp --- a/photosgallery/commonui/src/glxbackservicewrapper.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,269 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: wrapper for Back Stepping Service -* -*/ - - - - -// from AIW and LIW -#include -#include - -#include -#include - -// parameter names used by BS Service -#include "glxbsserviceconstants.h" - -// for CleanupResetAndDestroyPushL -#include - - -#include "glxbackservicewrapper.h" - -using namespace LIW; - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -CGlxBackServiceWrapper::CGlxBackServiceWrapper() - { - } - - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void CGlxBackServiceWrapper::ConstructL( const TUid aUid ) - { - TRACER( "CGlxBackServiceWrapper::ConstructL" ); - // create Service Handler and keep as long as access to BS Service needed - iServiceHandler = CLiwServiceHandler::NewL(); - // for convinience keep pointers to Service Handler param lists - iInParamList = &iServiceHandler->InParamListL(); - iOutParamList = &iServiceHandler->OutParamListL(); - - RCriteriaArray criteriaArray; - CleanupResetAndDestroyPushL( criteriaArray ); - - // create Liw criteria - CLiwCriteriaItem* criterion = - CLiwCriteriaItem::NewLC( KLiwCmdAsStr, KBSInterface, KBSServiceID ); - criterion->SetServiceClass( TUid::Uid( KLiwClassBase ) ); - - criteriaArray.AppendL( criterion ); - CleanupStack::Pop( criterion ); - - // attach Liw criteria - iServiceHandler->AttachL( criteriaArray ); - // get BS Service interface - iServiceHandler->ExecuteServiceCmdL( *criterion, - *iInParamList, - *iOutParamList ); - - CleanupStack::PopAndDestroy( &criteriaArray ); - - // extract BS interface from output params - TInt pos( 0 ); - iOutParamList->FindFirst( pos, KBSInterface ); - if( pos != KErrNotFound ) - { - iBSInterface = (*iOutParamList)[pos].Value().AsInterface(); - } - - if ( !iBSInterface ) - { - // handle no BS Service - User::Leave( KErrNotFound ); - } - - InitializeL( aUid ); - } - - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C CGlxBackServiceWrapper* CGlxBackServiceWrapper::NewL( - const TUid aUid ) - { - TRACER( "CGlxBackServiceWrapper::NewL" ); - CGlxBackServiceWrapper* self = - CGlxBackServiceWrapper::NewLC( aUid ); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C CGlxBackServiceWrapper* CGlxBackServiceWrapper::NewLC( - const TUid aUid ) - { - TRACER( "CGlxBackServiceWrapper::NewLC" ); - CGlxBackServiceWrapper* self = new( ELeave ) CGlxBackServiceWrapper; - CleanupStack::PushL( self ); - self->ConstructL( aUid ); - return self; - } - - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -CGlxBackServiceWrapper::~CGlxBackServiceWrapper() - { - TRACER( "CGlxBackServiceWrapper::~CGlxBackServiceWrapper" ); - if ( iBSInterface ) - { - iBSInterface->Close(); - } - - delete iServiceHandler; - } - - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CGlxBackServiceWrapper::ForwardActivationEventL( const TDesC8& aState, - const TBool aEnter ) - { - TRACER( "CGlxBackServiceWrapper::ForwardActivationEventL" ); - iInParamList->Reset(); - iOutParamList->Reset(); - - TLiwGenericParam state( KBSInParamState, TLiwVariant( aState ) ); - iInParamList->AppendL( state ); - TLiwGenericParam enter( KBSInParamEnter, TLiwVariant( aEnter ) ); - iInParamList->AppendL( enter ); - - iBSInterface->ExecuteCmdL( KBSCmdForwardActivationEvent, - *iInParamList, - *iOutParamList ); - - TInt result = HandleResultL(); - - iInParamList->Reset(); - iOutParamList->Reset(); - - return result; - } - - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CGlxBackServiceWrapper::HandleBackCommandL( const TDesC8& aState, - const TBool aCheckOnly) - { - TRACER( "CGlxBackServiceWrapper::HandleBackCommandL" ); - iInParamList->Reset(); - iOutParamList->Reset(); - - TLiwGenericParam state( KBSInParamState, TLiwVariant( aState ) ); - iInParamList->AppendL( state ); - TLiwGenericParam checkOnly( KBSInParamCheckOnly, TLiwVariant( aCheckOnly ) ); - iInParamList->AppendL( checkOnly ); - - iBSInterface->ExecuteCmdL( KBSCmdHandleBackCommand, - *iInParamList, - *iOutParamList ); - - TInt result = HandleResultL(); - - iInParamList->Reset(); - iOutParamList->Reset(); - - return result; - } - - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void CGlxBackServiceWrapper::InitializeL( const TUid aUid ) - { - TRACER( "CGlxBackServiceWrapper::InitializeL" ); - iInParamList->Reset(); - iOutParamList->Reset(); - - TLiwGenericParam appUid( KBSInParamAppUid, TLiwVariant( aUid.iUid ) ); - iInParamList->AppendL( appUid ); - - iBSInterface->ExecuteCmdL( KBSCmdInitialize, - *iInParamList, - *iOutParamList ); - - if ( HandleResultL() != 1 ) - { - // Initialize command was not consumed - handle failiure - User::Leave( KErrArgument ); - } - - iInParamList->Reset(); - iOutParamList->Reset(); - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -TInt CGlxBackServiceWrapper::HandleResultL() - { - TRACER( "CGlxBackServiceWrapper::HandleResultL" ); - TInt statusInfo( KErrNotFound ); - - TInt posErr( 0 ); - iOutParamList->FindFirst( posErr, EGenericParamError ); - if( posErr != KErrNotFound ) - { - // error code found - extract and handle - TInt errorCode( KErrNone ); - (*iOutParamList)[posErr].Value().Get( errorCode ); - - User::LeaveIfError( errorCode ); - } - - // if no error returned, carry on - TInt posStat( 0 ); - iOutParamList->FindFirst( posStat, KBSOutParamStatusInfo ); - if( posStat != KErrNotFound ) - { - // status info present - extract and return - (*iOutParamList)[posStat].Value().Get( statusInfo ); - } - else - { - // no return value - // this should not happen - User::Leave( KErrNotFound ); - } - - return statusInfo; - } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/commonui/src/glxnavigationalstate.cpp --- a/photosgallery/commonui/src/glxnavigationalstate.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/commonui/src/glxnavigationalstate.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -250,7 +250,7 @@ void SetToViewMode() { iViewingMode = NGlxNavigationalState::EView; - // inform the observers( only appui!! ) that the mode is view + // inform the observers( only appui ) that the mode is view NotifyObserversOfStateChange(); } @@ -436,7 +436,7 @@ EXPORT_C void CGlxNavigationalState::SetToViewMode() { iImp->SetToViewMode(); - // inform the observers( only appui!! ) that the mode is view + // inform the observers( only appui ) that the mode is view } // ----------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/data/200104DF.rss --- a/photosgallery/contentharvesterplugin/data/200104DF.rss Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2000 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Resource definitions -* -*/ - -// INCLUDES -#include -#include "glxcontentharvesterplugin.hrh" - - -//CONSTANTS -#define KCCHarvesterServerPluginUid 0x10282E5B - - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// REGISTRY_INFO theInfo -// Declares info for the "all" implementation -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO theInfo - { - // UID for the DLL - dll_uid = KGlxCHPluginDllUid; - // Declare array of interface info - interfaces = - { - INTERFACE_INFO - { - // UID of interface that is implemented - interface_uid = KCCHarvesterServerPluginUid; - implementations = - { - // Info for ContentHarvesterPlugin - IMPLEMENTATION_INFO - { - implementation_uid = KGlxCHPluginImplUid; - version_no = 1; - display_name = "photos"; - default_data = "photos"; - opaque_data = "photos"; - } - }; - } - }; - } - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/group/bld.inf --- a/photosgallery/contentharvesterplugin/group/bld.inf Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Build information file for project glxcontentharvesterplugin -* -*/ - - - - -#include -PRJ_PLATFORMS -DEFAULT - -PRJ_MMPFILES -glxcontentharvesterplugin.mmp - -PRJ_EXPORTS -../rom/glxcontentharvesterplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(glxcontentharvesterplugin.iby) - -// End of file - -// End of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/group/glxcontentharvesterplugin.mmp --- a/photosgallery/contentharvesterplugin/group/glxcontentharvesterplugin.mmp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Project definition file for project CHPlugin -* -*/ - - - - -#include - -TARGET glxcontentharvesterplugin.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x200104DF - -#ifndef WINSCW -EPOCALLOWDLLDATA -#endif - -CAPABILITY CAP_ECOM_PLUGIN - -SOURCEPATH ../src - -SOURCE glxcontentharvesterplugin.cpp -SOURCE glxcontentharvesterpluginall.cpp -SOURCE glxcontentharvesterpluginmonths.cpp -SOURCE glxcontentharvesterpluginalbums.cpp -SOURCE glxcontentharvesterpluginbase.cpp -SOURCE glxcontentharvesterplugintags.cpp -SOURCE glxcontentharvesterpluginproxy.cpp - -TARGETPATH resource/apps -START RESOURCE ../data/200104DF.rss -TARGET glxcontentharvesterplugin.rsc -END // RESOURCE - -USERINCLUDE ../inc - -SYSTEMINCLUDE ../../viewframework/medialists/inc -SYSTEMINCLUDE ../../viewframework/inc -SYSTEMINCLUDE ../../common/inc -SYSTEMINCLUDE ../../commonui/inc -SYSTEMINCLUDE ../../collectionframework/thumbnailcreator/inc -SYSTEMINCLUDE ../../inc - -APP_LAYER_SYSTEMINCLUDE - - -LIBRARY cdlengine.lib -LIBRARY ws32.lib -LIBRARY ecom.lib -LIBRARY euser.lib -LIBRARY fbscli.lib -LIBRARY glxlogging.lib -LIBRARY liwservicehandler.lib -LIBRARY mpxcommon.lib // CMPXCollectionPath -LIBRARY glxmedialists.lib // medialist -LIBRARY glxcommon.lib // CMPXmedia -LIBRARY featmgr.lib // For FeatureManager::FeatureSupported -LIBRARY mpxcollectionutility.lib -LIBRARY aknicon.lib -LIBRARY apgrfx.lib -DEBUGLIBRARY flogger.lib - -//end of file - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugin.h --- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugin.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,192 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Publish the content in the photosuite - * - */ - -#ifndef C_GLXCONTENTHARVESTERPLUGIN_H -#define C_GLXCONTENTHARVESTERPLUGIN_H - -// INCLUDES - -#include - -#include // for MGlxMediaListObserver -#include // for TGlxMediaId - -#include -#include - -// FORWARD DECLARATIONS - -class MGlxMediaList; -class CGlxAttributeContext; -class TGlxSequentialIterator; -class MGlxContentHarvesterPluginEntry; -class CGlxDefaultAttributeContext; -class CMPXCollectionPath; -class CLiwGenericParamList; -class CLiwServiceHandler; - - -class MGlxContentHarvesterPlugin - { -public : - virtual void UpdatePlugins(TBool aValue=ETrue)=0; - virtual TBool IsRefreshNeeded()=0; - virtual void SetRefreshNeeded(TBool aRefreshNeed) =0; - virtual TBool SuiteInFocus()=0; - }; - -// CLASS DECLARATION -/** - * CP Content Harvester plugin - * - */ - -class CGlxContentHarvesterPlugin : public CContentHarvesterPlugin, public MGlxMediaListObserver, - public MGlxContentHarvesterPlugin - { -public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CGlxContentHarvesterPlugin* NewL( MLiwInterface* aCPSInterface ); - - /** - * Destructor. - */ - virtual ~CGlxContentHarvesterPlugin(); - - // from base class - - void UpdateL(); - -private: - - /** - * Perform the second phase construction - */ - void ConstructL(); - - /** - * Default constructor. - */ - CGlxContentHarvesterPlugin( MLiwInterface* aCPSInterface ); - - void UpdateDataL(); - - CMPXCollectionPath* CollectionPathLC ( const TGlxMediaId& aPluginId ) const; - - void UpdateDataInCPSL(TInt aCollection); - - void FillInputListWithDataL( - CLiwGenericParamList* aInParamList, - const TDesC& aPublisherId, const TDesC& aContentType, - TInt aCollection ); - - void CreateContextsL(); - - void CreateMedialistL(); - - /*To update the plugins based on the matrix menu is on foreground or background - * @parm: aUpdate :if it is true then update all the plugins - * @parm: aUpdate :if it is false then remove all the observers. - */ - void UpdatePlugins(TBool aUpdate); - - /* - * Sets if the refresh of the collection is required or not - * @parm: aUpdate :if it is true,then plugin has to be updated. - * @parm: aUpdate :if it is false,then plugin need not be updated. - */ - void SetRefreshNeeded(TBool aRefreshNeed); - - /* - * check if refresh needed flag is set - */ - TBool IsRefreshNeeded(); - - void DestroyMedialist(); - - /* - * Check if photossuite is in focus - */ - TBool SuiteInFocus(); - - //Call back from the Media list for any error occured - void HandleError( TInt aError ); - -private: // from MGlxMediaListObserver - - /** - * @ref MGlxMediaListObserver::HandleItemAddedL - */ - void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMediaL - */ - void HandleMediaL( TInt aListIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemRemoved - */ - void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemModifiedL - */ - void HandleItemModifiedL( const RArray& aItemIndexes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleAttributesAvailableL - */ - void HandleAttributesAvailableL( - TInt aItemIndex, const RArray& aAttributes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleFocusChangedL - */ - void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, - TInt aOldIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemSelected - */ - void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMessageL - */ - void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList ); - - -private: // data - - /** - * Instance of CPS interface used for update with CPS. - */ - MLiwInterface* iCPSInterface; - - /// Owned: Media list - MGlxMediaList* iMediaList; - - /// Own: the attribute context - CGlxDefaultAttributeContext* iSubtitleAttributeContext; - - // Owned: array of implementation objects - RPointerArray iEntries; - - // to check if refresh needed for plugins - TBool iIsRefreshNeeded; - - // Collection Indexes array to refresh the screen - RArray iCollectionIndexes; - }; - -#endif // C_GLXCONTENTHARVESTERPLUGIN_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugin.hrh --- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugin.hrh Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Resource headers - * - */ - - - - - -#ifndef GLXCONTENTHARVESTERPLUGIN_HRH -#define GLXCONTENTHARVESTERPLUGIN_HRH - -// CONSTANTS - -#define KGlxCHPluginDllUid 0x200104DF //dll uid -#define KGlxCHPluginImplUid 0x200104E0 //implementation uid - - - -#endif // GLXCONTENTHARVESTERPLUGIN_HRH - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginalbums.h --- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginalbums.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,204 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Publish the albums collection content in the photosuite - * - */ - -#ifndef GLXCONTENTHARVESTERPLUGINALBUMS_H -#define GLXCONTENTHARVESTERPLUGINALBUMS_H - -// INCLUDES -#include - -#include // for TGlxMediaId -#include // for MGlxMediaListObserver -#include // for TGlxSequentialIterator - -#include -#include -#include "glxcontentharvesterplugin.h" -#include "glxcontentharvesterpluginbase.h" - -// FORWARD DECLARATIONS -class MGlxMediaList; -class CLiwGenericParamList; -class CLiwServiceHandler; -class CPeriodic; -class MLiwInterface; -class CGlxAttributeContext; -class CGlxThumbnailContext; - -// CLASS DECLARATION -/** - * CP Content Harvester plugin - * - */ - -class CGlxContentHarvesterPluginAlbums : public CGlxContentHarvesterPluginBase, -public MGlxMediaListObserver, public MLiwNotifyCallback - { -public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CGlxContentHarvesterPluginAlbums* NewLC( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Destructor. - */ - virtual ~CGlxContentHarvesterPluginAlbums(); - - // from base class - - /** - * Here the preview Thumbnails are updated - */ - void UpdateDataL(); - - /** - * This is a call back from the Matrix Menu whenever there is change in focus - */ - TInt HandleNotifyL( - TInt aCmdId, - TInt aEventId, - CLiwGenericParamList& aEventParamList, - const CLiwGenericParamList& aInParamList); - - /** - * updates media list with coressponding context depending on the focus - * to show the thumbnails - */ - void UpdatePreviewThumbnailListL( ); - - /** - * Returns the collection items count - */ - TInt Count(); - -private: - - /** - * Perform the second phase construction - */ - void ConstructL(); - - /** - * Default constructor. - */ - CGlxContentHarvesterPluginAlbums( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Update data in Content Publisher Storage - */ - void UpdateDataInCPSL(TInt aHandle); - - /** - * This retrievs the bitmap handle and updates the index of the - * thumbnail to be shown - */ - TInt UpdateItem(TInt aItemIndex); - - /* - * This Function is called when the collection recives a focus and losses the focus - * @param aOn :True : The collection is in focus - * : False : The collection lost the focus - */ - void ActivateL( TBool aOn ); - - /** - * Delets the medial list created. - */ - void DestroyMedialist(); - - /** - * Creates a media list - */ - void CreateMedialistL(); - - /** - * Adds the context and observers to the media list - */ - void AddContextAndObserverL(); - - /** - * Adds the context and observers to the media list - */ - void RemoveContextAndObserver(); - - //Call back from the Media list for any error occured - void HandleError( TInt /*aError*/ ); - - -private: // from MGlxMediaListObserver - - /** - * @ref MGlxMediaListObserver::HandleItemAddedL - */ - void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMediaL - */ - void HandleMediaL( TInt aListIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemRemoved - */ - void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemModifiedL - */ - void HandleItemModifiedL( const RArray& aItemIndexes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleAttributesAvailableL - */ - void HandleAttributesAvailableL( - TInt aItemIndex, const RArray& aAttributes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleFocusChangedL - */ - void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, - TInt aOldIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemSelected - */ - void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMessageL - */ - void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList ); - -private: // data - - /** - * Instance of CPS interface used for update with CPS. - */ - MLiwInterface* iCPSInterface; - CLiwGenericParamList* iInParamList; - CLiwGenericParamList* iOutParamList; - - /// Owned: Media list - MGlxMediaList* iMediaList; - - /// Own: Attribute Context - CGlxAttributeContext* iUriAttributeContext; - - CGlxAttributeContext* iThumbnailAttributeContext; - - /// Own: Thumbnail Iterator - TGlxSequentialIterator iThumbnailIterator; - - }; - -#endif /*GLXCONTENTHARVESTERPLUGINALBUMS_H*/ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginall.h --- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginall.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,203 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Publish the All collection content in the photosuite - * - */ - -#ifndef GLXCONTENTHARVESTERPLUGINALL_H_ -#define GLXCONTENTHARVESTERPLUGINALL_H_ - - - -// INCLUDES -#include -#include // for TGlxMediaId -#include // for MGlxMediaListObserver -#include // for TGlxSequentialIterator -#include -#include -#include "glxcontentharvesterplugin.h" -#include "glxcontentharvesterpluginbase.h" - -// FORWARD DECLARATIONS -class MGlxMediaList; -class CLiwGenericParamList; -class CLiwServiceHandler; -class CPeriodic; -class MLiwInterface; -class CGlxAttributeContext; -class CGlxThumbnailContext; - -// CLASS DECLARATION -/** - * CP Content Harvester plugin - * - */ - -class CGlxContentHarvesterPluginAll : public CGlxContentHarvesterPluginBase, -public MGlxMediaListObserver, public MLiwNotifyCallback - { -public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CGlxContentHarvesterPluginAll* NewLC( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Destructor. - */ - virtual ~CGlxContentHarvesterPluginAll(); - - // from base class - - /** - * Here the preview Thumbnails are updated - */ - void UpdateDataL(); - - /** - * This is a call back from the Matrix Menu whenever there is change in focus - */ - TInt HandleNotifyL( - TInt aCmdId, - TInt aEventId, - CLiwGenericParamList& aEventParamList, - const CLiwGenericParamList& aInParamList); - - /** - * updates media list with coressponding context depending on the focus - * to show the thumbnails - */ - void UpdatePreviewThumbnailListL( ); - - /** - * Returns the collection items count - */ - TInt Count(); - -private: - - /** - * Perform the second phase construction - */ - void ConstructL(); - - /** - * Default constructor. - */ - CGlxContentHarvesterPluginAll( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Update data in Content Publisher Storage - */ - void UpdateDataInCPSL(TInt aHandle); - - /** - * This retrievs the bitmap handle and updates the index of the - * thumbnail to be shown - */ - TInt UpdateItem(TInt aItemIndex); - - /* - * This Function is called when the collection recives a focus and losses the focus - * @param aOn :True : The collection is in focus - * : False : The collection lost the focus - */ - void ActivateL( TBool aOn ); - - /** - * Delets the medial list created. - */ - void DestroyMedialist(); - - /** - * Creates a media list - */ - void CreateMedialistL(); - - /** - * Adds the context and observers to the media list - */ - void AddContextAndObserverL(); - - /** - * Adds the context and observers to the media list - */ - void RemoveContextAndObserver(); - - //Call back from the Media list for any error occured - void HandleError( TInt /*aError*/ ); - -private: // from MGlxMediaListObserver - - /** - * @ref MGlxMediaListObserver::HandleItemAddedL - */ - void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMediaL - */ - void HandleMediaL( TInt aListIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemRemoved - */ - void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemModifiedL - */ - void HandleItemModifiedL( const RArray& aItemIndexes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleAttributesAvailableL - */ - void HandleAttributesAvailableL( - TInt aItemIndex, const RArray& aAttributes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleFocusChangedL - */ - void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, - TInt aOldIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemSelected - */ - void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMessageL - */ - void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList ); - -private: // data - - /** - * Instance of CPS interface used for update with CPS. - */ - MLiwInterface* iCPSInterface; - CLiwGenericParamList* iInParamList; - CLiwGenericParamList* iOutParamList; - - /// Owned: Media list - MGlxMediaList* iMediaList; - - /// Own: Attribute Context - CGlxAttributeContext* iUriAttributeContext; - - CGlxAttributeContext* iThumbnailAttributeContext; - - /// Own: Thumbnail Iterator - TGlxSequentialIterator iThumbnailIterator; - - }; - -#endif /*GLXCONTENTHARVESTERPLUGINALL_H_*/ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginbase.h --- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginbase.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Base class for publishing all the content -* -*/ - - - - -#ifndef GLXCONTENTHARVESTERPLUGINBASE_H -#define GLXCONTENTHARVESTERPLUGINBASE_H - -//includes - -#include - -//Forward Declarations - -class CLiwGenericParamList; -class CLiwServiceHandler; -class MLiwInterface; -class CGlxContentHarvesterPluginBase; -class CGlxThumbnailContext; -class MGlxMediaList; -class MGlxContentHarvesterPlugin; - -class MGlxContentHarvesterPluginEntry : public MLiwNotifyCallback - { -public: - /** - * Virtual destructor - */ - virtual ~MGlxContentHarvesterPluginEntry() {}; - virtual void ContainerCacheCleanupL(MGlxMediaList* aMediaList)=0; - virtual void UpdatePreviewThumbnailListL()=0; - virtual void RemoveContextAndObserver()=0; - virtual TBool Focused()=0; - virtual TInt Count()=0; - }; - - -class CGlxContentHarvesterPluginBase : public CBase, public MGlxContentHarvesterPluginEntry - { -public: // Constructors and destructor - - /** - * Default constructor. - */ - CGlxContentHarvesterPluginBase( ); - - /** - * Perform the second phase construction - */ - void ConstructL(TInt aDefaultIconId ); - - /** - * Destructor. - */ - virtual ~CGlxContentHarvesterPluginBase(); - - TSize GetGridIconSize(); - - /* Calculate the Grid Icon Size for Grid Widget. It always calculate - * size for Landscape orientation. This is done to avoid saving two - * different thumbnail icons in Thumbnail database. - */ - void SetGridIconSizeL(); - - /** - * Returns the focus status of this photossuite collection - */ - TBool Focused(); - - /*This returns the bitmap handle used to display the - * default thumbnail. - */ - TInt GetBitmapHandle() const; - - - /** - * Updates the focus value of the collection to true or false - * @param aFoucs :True : updates the collection is in focus - * :False : updates the collection is not in focus - * - */ - void SetFocus(TBool aFocus ); - - //To check if the matrix menu is in foreground or not - TBool IsMatrixMenuInForegroundL(); - - /* To register for Liw notifications - */ - void GetInterfaceForNotificationL(); - void RequestCpsNotificationL(TInt aSuiteItem); - void SetupPublisherL(TInt aSuiteItem); - void HandleStateChangeL(TInt aSuiteItem); - - /* Virtual APi which will be implemented in child classes - * Basically gives info if the item in suite has gained focus - * or lost it - */ - virtual void ActivateL(TBool aOn) = 0; - - /* - * Creates Medialist based on the plugin id - */ - MGlxMediaList* CreateMedialistAndAttributeContextL(const TGlxMediaId& aPluginId, - CGlxAttributeContext* aUriAttributeContext, - CGlxAttributeContext* aThumbnailAttributeContext) const; - - /** - * Method to fill input list for CPS add command - */ - void FillInputListWithDataL( - CLiwGenericParamList* aInParamList, - const TDesC& aPublisherId, const TDesC& aContentType, - const TDesC& aContentId, TInt aHandle); - - /* Cleanup medialist cache */ - void ContainerCacheCleanupL(MGlxMediaList* aMediaList); - - /* Set content harvester plugin instance */ - void SetCHPlugin(MGlxContentHarvesterPlugin* aCHplugin); - - /* Get content harvester plugin instance */ - MGlxContentHarvesterPlugin* GetCHPlugin(); - -private: // data - - /** - * Instance of CPS interface used for update with CPS. - */ - TSize iGridIconSize; - CLiwServiceHandler* iServiceHandler; - CLiwGenericParamList* iInParamList; - CLiwGenericParamList* iOutParamList; - - MLiwInterface* iCPSNotificationInterface; - TGlxSequentialIterator iThumbnailIterator; - - // Instance of content harvester plugin - MGlxContentHarvesterPlugin* iCHplugin; - - //This variable holds the value ,whether the collection is in focus or not - TBool iIsFocused; - - //This variable is initialised with the default bitmap. - CFbsBitmap* iBitmap; - }; -#endif /*GLXCONTENTHARVESTERPLUGINBASE_H*/ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugincaptured.h --- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugincaptured.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,217 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Publish the captured collection content in the photosuite - * - */ - -#ifndef GLXCONTENTHARVESTERPLUGINCAPTURED_H_ -#define GLXCONTENTHARVESTERPLUGINCAPTURED_H_ - - -// INCLUDES -#include - -#include // for TGlxMediaId -#include // for MGlxMediaListObserver -#include // for TGlxSequentialIterator - -#include -#include -#include "glxcontentharvesterplugin.h" -#include "glxcontentharvesterpluginbase.h" - -// FORWARD DECLARATIONS -class MGlxMediaList; -class CLiwGenericParamList; -class CLiwServiceHandler; -class CPeriodic; -class MLiwInterface; -class CGlxAttributeContext; -class CGlxThumbnailContext; - -// CLASS DECLARATION -/** - * CP Content Harvester plugin - * - */ - -class CGlxContentHarvesterPluginCaptured : public CGlxContentHarvesterPluginBase, -public MGlxMediaListObserver, public MLiwNotifyCallback - { -public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CGlxContentHarvesterPluginCaptured* NewLC( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Destructor. - */ - virtual ~CGlxContentHarvesterPluginCaptured(); - - // from base class - - /** - * Here the preview Thumbnails are updated - */ - void UpdateDataL(); - - /** - * This is a call back from the Matrix Menu whenever there is change in focus - */ - TInt HandleNotifyL( - TInt aCmdId, - TInt aEventId, - CLiwGenericParamList& aEventParamList, - const CLiwGenericParamList& aInParamList); - - /** - * updates media list with coressponding context depending on the focus - * to show the thumbnails - */ - void UpdatePreviewThumbnailListL( ); - - /** - * Returns the collection items count - */ - TInt Count(); - -private: - - /** - * Perform the second phase construction - */ - void ConstructL(); - - /** - * Default constructor. - */ - CGlxContentHarvesterPluginCaptured( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Update data in Content Publisher Storage - */ - void UpdateDataInCPSL(TInt aHandle); - - /** - * This retrievs the bitmap handle and updates the index of the - * thumbnail to be shown - */ - TInt UpdateItem(TInt aItemIndex); - - /* - * This Updates the thumbnail/Preview list with thumbnails already present - */ - void HandleItemChanged(); - - /* - * This Function is called when the collection recives a focus and losses the focus - * @param aOn :True : The collection is in focus - * : False : The collection lost the focus - */ - void ActivateL( TBool aOn ); - - /** - * Delets the medial list created. - */ - void DestroyMedialist(); - - /** - * Creates a media list - */ - void CreateMedialistL(); - - /** - * Adds the context and observers to the media list - */ - void AddContextAndObserverL(); - - /** - * Adds the context and observers to the media list - */ - void RemoveContextAndObserver(); - - //Call back from the Media list for any error occured - void HandleError( TInt /*aError*/ ); - - -private: // from MGlxMediaListObserver - - /** - * @ref MGlxMediaListObserver::HandleItemAddedL - */ - void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMediaL - */ - void HandleMediaL( TInt aListIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemRemoved - */ - void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemModifiedL - */ - void HandleItemModifiedL( const RArray& aItemIndexes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleAttributesAvailableL - */ - void HandleAttributesAvailableL( - TInt aItemIndex, const RArray& aAttributes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleFocusChangedL - */ - void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, - TInt aOldIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemSelected - */ - void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMessageL - */ - void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList ); - -private: // data - - /** - * Instance of CPS interface used for update with CPS. - */ - MLiwInterface* iCPSInterface; - CLiwGenericParamList* iInParamList; - CLiwGenericParamList* iOutParamList; - CPeriodic* iPeriodic; - - /// Owned: Media list - MGlxMediaList* iMediaList; - - /// Own: Attribute Context - CGlxAttributeContext* iUriAttributeContext; - - CGlxAttributeContext* iThumbnailAttributeContext; - - /// Own: Thumbnail Iterator - TGlxSequentialIterator iThumbnailIterator; - - RArray iPreviewItemCount; - - // Preview thumbnail index - TInt iProgressIndex; - //this variable holds the value ,whether the collection is in focus or not - TBool iIsFocused; - }; - -#endif /*GLXCONTENTHARVESTERPLUGINCAPTURED_H_*/ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugindownloads.h --- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugindownloads.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,219 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Publish the downloads collection content in the photosuite - * - */ - -#ifndef GLXCONTENTHARVESTERPLUGINDOWNLOADS_H_ -#define GLXCONTENTHARVESTERPLUGINDOWNLOADS_H_ - - - -// INCLUDES -#include - -#include // for TGlxMediaId -#include // for MGlxMediaListObserver -#include // for TGlxSequentialIterator - -#include -#include -#include "glxcontentharvesterplugin.h" -#include "glxcontentharvesterpluginbase.h" - -// FORWARD DECLARATIONS -class MGlxMediaList; -class CLiwGenericParamList; -class CLiwServiceHandler; -class CPeriodic; -class MLiwInterface; -class CGlxAttributeContext; -class CGlxThumbnailContext; - -// CLASS DECLARATION -/** - * CP Content Harvester plugin - * - */ - -class CGlxContentHarvesterPluginDownloads : public CGlxContentHarvesterPluginBase, -public MGlxMediaListObserver, public MLiwNotifyCallback - { -public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CGlxContentHarvesterPluginDownloads* NewLC( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Destructor. - */ - virtual ~CGlxContentHarvesterPluginDownloads(); - - // from base class - - /** - * Here the preview Thumbnails are updated - */ - void UpdateDataL(); - - /** - * This is a call back from the Matrix Menu whenever there is change in focus - */ - TInt HandleNotifyL( - TInt aCmdId, - TInt aEventId, - CLiwGenericParamList& aEventParamList, - const CLiwGenericParamList& aInParamList); - - /** - * updates media list with coressponding context depending on the focus - * to show the thumbnails - */ - void UpdatePreviewThumbnailListL( ); - - /** - * Returns the collection items count - */ - TInt Count(); - -private: - - /** - * Perform the second phase construction - */ - void ConstructL(); - - /** - * Default constructor. - */ - CGlxContentHarvesterPluginDownloads( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Update data in Content Publisher Storage - */ - void UpdateDataInCPSL(TInt aHandle); - - /** - * This retrievs the bitmap handle and updates the index of the - * thumbnail to be shown - */ - TInt UpdateItem(TInt aItemIndex); - - /* - * This Updates the thumbnail/Preview list with thumbnails already present - */ - void HandleItemChanged(); - - /* - * This Function is called when the collection recives a focus and losses the focus - * @param aOn :True : The collection is in focus - * : False : The collection lost the focus - */ - void ActivateL( TBool aOn ); - - /** - * Delets the medial list created. - */ - void DestroyMedialist(); - - /** - * Creates a media list - */ - void CreateMedialistL(); - - /** - * Adds the context and observers to the media list - */ - void AddContextAndObserverL(); - - /** - * Adds the context and observers to the media list - */ - void RemoveContextAndObserver(); - - //Call back from the Media list for any error occured - void HandleError( TInt /*aError*/ ); - - -private: // from MGlxMediaListObserver - - /** - * @ref MGlxMediaListObserver::HandleItemAddedL - */ - void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMediaL - */ - void HandleMediaL( TInt aListIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemRemoved - */ - void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemModifiedL - */ - void HandleItemModifiedL( const RArray& aItemIndexes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleAttributesAvailableL - */ - void HandleAttributesAvailableL( - TInt aItemIndex, const RArray& aAttributes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleFocusChangedL - */ - void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, - TInt aOldIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemSelected - */ - void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMessageL - */ - void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList ); - -private: // data - - /** - * Instance of CPS interface used for update with CPS. - */ - MLiwInterface* iCPSInterface; - CLiwGenericParamList* iInParamList; - CLiwGenericParamList* iOutParamList; - CPeriodic* iPeriodic; - - /// Owned: Media list - MGlxMediaList* iMediaList; - - /// Own: Attribute Context - CGlxAttributeContext* iUriAttributeContext; - - CGlxAttributeContext* iThumbnailAttributeContext; - - /// Own: Thumbnail Iterator - TGlxSequentialIterator iThumbnailIterator; - - RArray iPreviewItemCount; - - // Preview thumbnail index - TInt iProgressIndex; - - //this variable holds the value ,whether the collection is in focus or not - TBool iIsFocused; - }; - -#endif /*GLXCONTENTHARVESTERPLUGINDOWNLOADS_H_*/ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginmonths.h --- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginmonths.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,206 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Publish the months collection content in the photosuite - * - */ - -#ifndef GLXCONTENTHARVESTERPLUGINMONTHS_H_ -#define GLXCONTENTHARVESTERPLUGINMONTHS_H_ - - -// INCLUDES -#include - - -#include // for TGlxMediaId -#include // for MGlxMediaListObserver -#include // for TGlxSequentialIterator - -#include -#include -#include "glxcontentharvesterplugin.h" -#include "glxcontentharvesterpluginbase.h" - -// FORWARD DECLARATIONS -class MGlxMediaList; -class CLiwGenericParamList; -class CLiwServiceHandler; -class CPeriodic; -class MLiwInterface; -class CGlxAttributeContext; -class CGlxThumbnailContext; - -// CLASS DECLARATION -/** - * CP Content Harvester plugin - * - */ - -class CGlxContentHarvesterPluginMonths : public CGlxContentHarvesterPluginBase, -public MGlxMediaListObserver, public MLiwNotifyCallback - { -public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CGlxContentHarvesterPluginMonths* NewLC( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Destructor. - */ - virtual ~CGlxContentHarvesterPluginMonths(); - - // from base class - - /** - * Here the preview Thumbnails are updated - */ - void UpdateDataL(); - - /** - * This is a call back from the Matrix Menu whenever there is change in focus - */ - TInt HandleNotifyL( - TInt aCmdId, - TInt aEventId, - CLiwGenericParamList& aEventParamList, - const CLiwGenericParamList& aInParamList); - - /** - * updates media list with coressponding context depending on the focus - * to show the thumbnails - */ - void UpdatePreviewThumbnailListL( ); - - /** - * Returns the collection items count - */ - TInt Count(); - -private: - - /** - * Perform the second phase construction - */ - void ConstructL(); - - /** - * Default constructor. - */ - CGlxContentHarvesterPluginMonths( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin); - - /** - * Update data in Content Publisher Storage - */ - void UpdateDataInCPSL(TInt aHandle); - - /** - * This retrievs the bitmap handle and updates the index of the - * thumbnail to be shown - */ - TInt UpdateItem(TInt aItemIndex); - - /* - * This Function is called when the collection recives a focus and losses the focus - * @param aOn :True : The collection is in focus - * : False : The collection lost the focus - */ - void ActivateL( TBool aOn ); - - /** - * Delets the medial list created. - */ - void DestroyMedialist(); - - /** - * Creates a media list - */ - void CreateMedialistL(); - - /** - * Adds the context and observers to the media list - */ - void AddContextAndObserverL(); - - /** - * Adds the context and observers to the media list - */ - void RemoveContextAndObserver(); - - //Call back from the Media list for any error occured - void HandleError( TInt /*aError*/ ); - - -private: // from MGlxMediaListObserver - - /** - * @ref MGlxMediaListObserver::HandleItemAddedL - */ - void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMediaL - */ - void HandleMediaL( TInt aListIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemRemoved - */ - void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemModifiedL - */ - void HandleItemModifiedL( const RArray& aItemIndexes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleAttributesAvailableL - */ - void HandleAttributesAvailableL( - TInt aItemIndex, const RArray& aAttributes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleFocusChangedL - */ - void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, - TInt aOldIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemSelected - */ - void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMessageL - */ - void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList ); - -private: // data - - /** - * Instance of CPS interface used for update with CPS. - */ - MLiwInterface* iCPSInterface; - CLiwGenericParamList* iInParamList; - CLiwGenericParamList* iOutParamList; - - /// Owned: Media list - MGlxMediaList* iMediaList; - - /// Own: Attribute Context - CGlxAttributeContext* iUriAttributeContext; - - CGlxAttributeContext* iThumbnailAttributeContext; - - /// Own: Thumbnail Iterator - TGlxSequentialIterator iThumbnailIterator; - - }; - -#endif /*GLXCONTENTHARVESTERPLUGINMONTHS_H_*/ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugintags.h --- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugintags.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,204 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Publish the tags collection content in the photosuite - * - */ -#ifndef GLXCONTENTHARVESTERPLUGINTAGS_H_ -#define GLXCONTENTHARVESTERPLUGINTAGS_H_ - - -// INCLUDES -#include - -#include // for TGlxMediaId -#include // for MGlxMediaListObserver -#include // for TGlxSequentialIterator - -#include -#include -#include "glxcontentharvesterplugin.h" -#include "glxcontentharvesterpluginbase.h" - -// FORWARD DECLARATIONS -class MGlxMediaList; -class CLiwGenericParamList; -class CLiwServiceHandler; -class CPeriodic; -class MLiwInterface; -class CGlxAttributeContext; -class CGlxThumbnailContext; - -// CLASS DECLARATION -/** - * CP Content Harvester plugin - * - */ - -class CGlxContentHarvesterPluginTags : public CGlxContentHarvesterPluginBase, -public MGlxMediaListObserver, public MLiwNotifyCallback - { -public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CGlxContentHarvesterPluginTags* NewLC( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Destructor. - */ - virtual ~CGlxContentHarvesterPluginTags(); - - // from base class - - /** - * Here the preview Thumbnails are updated - */ - void UpdateDataL(); - - /** - * This is a call back from the Matrix Menu whenever there is change in focus - */ - TInt HandleNotifyL( - TInt aCmdId, - TInt aEventId, - CLiwGenericParamList& aEventParamList, - const CLiwGenericParamList& aInParamList); - - /** - * updates media list with coressponding context depending on the focus - * to show the thumbnails - */ - void UpdatePreviewThumbnailListL( ); - - /** - * Returns the collection items count - */ - TInt Count(); - -private: - - /** - * Perform the second phase construction - */ - void ConstructL(); - - /** - * Default constructor. - */ - CGlxContentHarvesterPluginTags( MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ); - - /** - * Update data in Content Publisher Storage - */ - void UpdateDataInCPSL(TInt aHandle); - - /** - * This retrievs the bitmap handle and updates the index of the - * thumbnail to be shown - */ - TInt UpdateItem(TInt aItemIndex); - - /* - * This Function is called when the collection recives a focus and losses the focus - * @param aOn :True : The collection is in focus - * : False : The collection lost the focus - */ - void ActivateL( TBool aOn ); - - /** - * Delets the medial list created. - */ - void DestroyMedialist(); - - /** - * Creates a media list - */ - void CreateMedialistL(); - - /** - * Adds the context and observers to the media list - */ - void AddContextAndObserverL(); - - /** - * Adds the context and observers to the media list - */ - void RemoveContextAndObserver(); - - //Call back from the Media list for any error occured - void HandleError( TInt /*aError*/ ); - - -private: // from MGlxMediaListObserver - - /** - * @ref MGlxMediaListObserver::HandleItemAddedL - */ - void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMediaL - */ - void HandleMediaL( TInt aListIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemRemoved - */ - void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemModifiedL - */ - void HandleItemModifiedL( const RArray& aItemIndexes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleAttributesAvailableL - */ - void HandleAttributesAvailableL( - TInt aItemIndex, const RArray& aAttributes, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleFocusChangedL - */ - void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, - TInt aOldIndex, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleItemSelected - */ - void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList ); - /** - * @ref MGlxMediaListObserver::HandleMessageL - */ - void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList ); - -private: // data - - /** - * Instance of CPS interface used for update with CPS. - */ - MLiwInterface* iCPSInterface; - CLiwGenericParamList* iInParamList; - CLiwGenericParamList* iOutParamList; - - /// Owned: Media list - MGlxMediaList* iMediaList; - - /// Own: the Attribte Context - CGlxAttributeContext* iUriAttributeContext; - - CGlxAttributeContext* iThumbnailAttributeContext; - - /// Own: Thumbnail Iterator - TGlxSequentialIterator iThumbnailIterator; - - }; - -#endif /*GLXCONTENTHARVESTERPLUGINTAGS_H_*/ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/inc/glxmapconstants.h --- a/photosgallery/contentharvesterplugin/inc/glxmapconstants.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,190 +0,0 @@ -/* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Global definitions - * -*/ - - - - -#ifndef GLXMAPCONSTANTS_H -#define GLXMAPCONSTANTS_H - -/** Data types for CP content */ -enum TDataTypes - { - ECPHardcodedText = 1, // 0001 - ECPResourceText = 2, // 0010 - ECPFilepathImage = 4, // 0100 - ECPResourceIcon = 8 // 1000 - }; - -enum TCPGetListOrder - { - ECPRecent = 1, // 0001 - ECPPublisher = 2, // 0010 - ECPContent = 4, // 0100 - ECPContentId = 8 // 1000 - }; - -enum TFlag - { - EActivate = 1, // 0001 - }; - -const TInt KNameArgumentsLimit = 5; - -//This variables are used by the Plugins -//Time Interval to show the thumbnail when the collection is in focus -const TInt KTimerInterval( 2000000 ); -//The Thumbnails to shown/fetched when the collection is in focus -const TInt KPreviewThumbnailFetchCount(15); -//The Thumbnails to shown/fetched when the collection is not in focus -const TInt KSinglePreviewThumbnail(1); -// The preview item Index -const TInt KPreviewItemIndex = 0; -//The constants to identify the plugin/collection -const TInt KMaxInt = 0x7fffffff; - -// Bug Fix @ ESLM-7VWF28 :: Change to Display the " ALL " collection folder as the very first collection folder in the Photos Matrix Menu View -const TInt KItemIndexAll = 0; -const TInt KItemIndexMonths = 1; -const TInt KItemIndexAlbums = 2; -const TInt KItemIndexTags = 3; -const TInt KListDataWindowSize = 10; -//Total collection count -const TInt KTotalCollection=4; - -//Written for photos specific usage - START - -_LIT8(KMonthsSubtitle, "MonthsSubtitle"); -_LIT8(KAllSubtitle, "AllcsSubtitle"); -_LIT8(KTagsSubtitle, "TagsSubtitle"); -_LIT8(KAlbumsSubtitle, "AlbumsSubtitle"); - -_LIT(KPublisherTextMonths,"photossuiteMonths"); -_LIT(KPublisherTextAlbums,"photossuiteAlbums"); -_LIT(KPublisherTextTags,"photossuiteTags"); -_LIT(KPublisherTextAll,"photossuiteAllcs"); - -_LIT(KContTypeTextMonths,"months1"); -_LIT(KContTypeTextAlbums,"albums1"); -_LIT(KContTypeTextTags,"tags1"); -_LIT(KContTypeTextAll,"allcs1"); -_LIT(KContId1,"category1"); - -_LIT8(KFirstIcon, "first_icon"); - -_LIT(KSuitePublisher,"photossuite"); -_LIT(KContentActivationMonths,"months"); -_LIT(KContentActivationAlbums,"albums"); -_LIT(KContentActivationTags,"tags"); -_LIT(KContentActivationAll,"allcs"); - -_LIT(KContentDefault,"default"); - -//Written for photos specific usage - END - - -_LIT( KService, "CP Service" ); - -_LIT8( KCPInterface, "IDataSource" ); -_LIT8( KCPContentInterface, "IContentPublishing" ); -_LIT8( KCPService, "Service.ContentPublishing" ); -_LIT8( KCommand, "cmd" ); - -//Supported Commands -_LIT8( KGetList, "GetList" ); -_LIT8( KAdd, "Add" ); -_LIT8( KDelete, "Delete" ); -_LIT8( KRequestNotification, "RequestNotification" ); -_LIT8( KExecuteAction, "ExecuteAction" ); -_LIT8( KCmdCancel, "Cancel" ); -_LIT8( KActivate, "Activate" ); -_LIT8( KActivateTrigger, "activate" ); -_LIT8( KDeactivateTrigger, "deactivate" ); - -// Input arguments -_LIT8( KType, "type" ); -_LIT8( KAction, "action" ); -_LIT8( KItem, "item" ); -_LIT8( KFilter, "filter" ); -_LIT8( KData, "data" ); -_LIT8( KSortOrder, "sort_order" ); -_LIT8( KItemId, "item_id" ); -_LIT8( KByPublisher, "by_publisher" ); -_LIT8( KByEntryIds, "by_entryids" ); -_LIT8( KPublisherId, "publisher" ); -_LIT8( KContentType, "content_type" ); -_LIT8( KContentId, "content_id" ); -_LIT8( KExpirationDate, "expiration_date" ); -_LIT8( KActivatePublisher, "activate" ); -_LIT8( KIds, "ids" ); -_LIT8( KId, "id" ); -_LIT8( KFlag, "flag"); -_LIT8( KAccessList, "ACL" ); -_LIT8( KACLRead, "read"); -_LIT8( KACLWrite, "write"); -_LIT8( KACLDelete, "delete"); -_LIT8( KUIDs, "UID" ); -_LIT8( KCapability, "Capability" ); -_LIT( KAll, "all"); -_LIT( KSortPublisher, "publisher"); -_LIT( KSortContentType, "content_type"); -_LIT( KSortContentId, "content_id"); -_LIT( KSortRecent, "recent"); -_LIT( KOperationAdd, "add" ); -_LIT( KOperationUpdate, "update" ); -_LIT( KOperationDelete, "delete" ); -_LIT( KOperationExecute, "execute" ); -_LIT8( KDataType, "data_type" ); -_LIT8( KOperation, "operation" ); -_LIT8( KActionTrigger, "action_trigger" ); -_LIT8( KHardcodedText, "harcoded_text" ); -_LIT8( KResourceText, "resource_text" ); -_LIT8( KFilepathImage, "filepath_image" ); -_LIT8( KIdMask, "id_mask" ); -_LIT8( KResourceIcon, "resource_icon" ); -_LIT8( KIdIcon, "id_icon" ); -_LIT8( KIdText, "id_text" ); -_LIT( KCpData, "cp_data" ); -_LIT( KPublisher, "publisher" ); -_LIT8( KChangeInfo, "change_info" ); - -_LIT8( KPublisher_Uid, "publisher_Uid" ); - -// Argument in Action -_LIT8( KActionHandlerInterface, "IDataAction" ); -_LIT8( KActionHandlerService, "Service.ActionHandler" ); -_LIT8( KCmdExecute, "Execute" ); -_LIT8( KPluginUid, "plugin_id" ); -_LIT8( KDataForActionHandler, "data" ); - -_LIT8( KLaunchMethod, "launch_method" ); -_LIT8( KApplicationUid, "application_uid" ); -_LIT8( KDocumentName, "document_name" ); -_LIT8( KViewId, "view_id" ); -_LIT8( KMessageUid, "message_uid" ); - -// Output -_LIT8( KResults, "results" ); -_LIT8( KListMap, "list_map" ); -_LIT8( KStatus, "status" ); -_LIT8( KDataMap, "data_map" ); -_LIT8( KActionMap, "action_map" ); -_LIT8( KKey, "key" ); - -_LIT8( KTransactionID, "TransactionID" ); - -#endif /*GLXMAPCONSTANTS_H*/ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/rom/glxcontentharvesterplugin.iby --- a/photosgallery/contentharvesterplugin/rom/glxcontentharvesterplugin.iby Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: iby file for content harvester plugin. -* -*/ - - - - -#ifndef __GLXCONTENTHARVESTERPLUGIN_IBY__ -#define __GLXCONTENTHARVESTERPLUGIN_IBY__ - -ECOM_PLUGIN( glxcontentharvesterplugin.dll, glxcontentharvesterplugin.rsc ) - -#endif // __GLXCONTENTHARVESTERPLUGIN_IBY__ \ No newline at end of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/src/glxcontentharvesterplugin.cpp --- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugin.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,551 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Updates CPS storage - * - */ - -// INCLUDE FILES - -//photo headers - - -#include -#include -#include -#include // for MGlxMediaList -#include -#include // for KGlxGalleryApplicationUid -#include -#include -#include - -#include -#include - -//local headers -#include "glxcontentharvesterplugin.h" -#include "glxcontentharvesterplugin.hrh" -#include "glxmapconstants.h" - -#include "glxcontentharvesterpluginmonths.h" -#include "glxcontentharvesterpluginalbums.h" -#include "glxcontentharvesterplugintags.h" -#include "glxcontentharvesterpluginall.h" - - - - - -// ============================ MEMBER FUNCTIONS ============================== - -// ---------------------------------------------------------------------------- -// Constructor -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPlugin::CGlxContentHarvesterPlugin( MLiwInterface* aCPSInterface ) - { - TRACER( "CGlxContentHarvesterPlugin::CGlxContentHarvesterPlugin" ); - iCPSInterface = aCPSInterface; - } - -// ---------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::ConstructL() - { - TRACER( "CGlxContentHarvesterPlugin::ConstructL" ); - - CreateMedialistL(); - - // Bug Fix @ ESLM-7VWF28 :: " Downloads " collection folder is replaced by " ALL " collection folder - CGlxContentHarvesterPluginAll* allContents = CGlxContentHarvesterPluginAll::NewLC(iCPSInterface,this); - iEntries.AppendL(allContents); - CleanupStack::Pop(allContents); - - CGlxContentHarvesterPluginMonths* monthsContents = CGlxContentHarvesterPluginMonths::NewLC(iCPSInterface,this); - iEntries.AppendL(monthsContents); - CleanupStack::Pop(monthsContents); - - CGlxContentHarvesterPluginAlbums* albumContents = CGlxContentHarvesterPluginAlbums::NewLC(iCPSInterface,this); - iEntries.AppendL(albumContents); - CleanupStack::Pop(albumContents); - - CGlxContentHarvesterPluginTags* tagContents = CGlxContentHarvesterPluginTags::NewLC(iCPSInterface,this); - iEntries.AppendL(tagContents); - CleanupStack::Pop(tagContents); - for(TInt pluginIndex=0; pluginIndex < KTotalCollection; pluginIndex++) - { - iCollectionIndexes.Insert(KErrNotFound, pluginIndex); - } - } - -// ---------------------------------------------------------------------------- -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPlugin* CGlxContentHarvesterPlugin::NewL( MLiwInterface* aCPSInterface ) - { - TRACER( "CGlxContentHarvesterPlugin::NewL" ); - CGlxContentHarvesterPlugin* self = new ( ELeave ) CGlxContentHarvesterPlugin( aCPSInterface ); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxContentHarvesterPlugin::~CGlxContentHarvesterPlugin() - { - TRACER( "CGlxContentHarvesterPlugin::~CGlxContentHarvesterPlugin" ); - // destroy entries - iEntries.ResetAndDestroy(); - DestroyMedialist(); - iCollectionIndexes.Reset(); - } - -// ---------------------------------------------------------------------------- -// This function updates information in CPS storage -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::UpdateL() - { - TRACER( "CGlxContentHarvesterPlugin::UpdateL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::CollectionPathLC( ) -// --------------------------------------------------------------------------- -// -CMPXCollectionPath* CGlxContentHarvesterPlugin::CollectionPathLC( - const TGlxMediaId& aPluginId ) const - { - TRACER( "CGlxContentHarvesterPlugin::CollectionPathLC" ); - // create the collection path - uses the category ID from the constructor - CMPXCollectionPath* path = CMPXCollectionPath::NewL(); - CleanupStack::PushL( path ); - path->AppendL( aPluginId.Value() ); - return path; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::HandleItemAddedL -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, - MGlxMediaList*/* aList*/) - { - // Do Nothing - TRACER( "CGlxContentHarvesterPlugin::HandleItemAddedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::HandleMediaL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::HandleMediaL(TInt /*aListIndex*/, - MGlxMediaList* /*aList*/) - { - // Do nothing - TRACER( "CGlxContentHarvesterPlugin::HandleMediaL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::HandleItemRemovedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::HandleItemRemovedL(TInt /*aStartIndex*/, - TInt /*aEndIndex*/, - MGlxMediaList* /*aList*/) - { - // Do nothing - TRACER( "CGlxContentHarvesterPlugin::HandleItemRemovedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::HandleItemModifiedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::HandleItemModifiedL( - const RArray& aItemIndexes, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPlugin::HandleItemModifiedL" ); - TInt countOfIndexesChanged = aItemIndexes.Count(); - for (TInt i = 0; i < countOfIndexesChanged ; i++ ) - { - UpdateDataInCPSL(i); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::HandleAttributesAvailableL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::HandleAttributesAvailableL(TInt aItemIndex, - const RArray& aAttributes, MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPlugin::HandleAttributesAvailableL" ); - TMPXAttribute subTitleAttrib(KGlxMediaCollectionPluginSpecificSubTitle); - TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match ); - GLX_LOG_INFO1("CGlxContentHarvesterPlugin::HandleAttributesAvailableL,aItemIndex=%d",aItemIndex); - if (KErrNotFound != aAttributes.Find(subTitleAttrib, match)) - { - GLX_LOG_INFO("CGlxContentHarvesterPlugin::HandleAttributesAvailableL,MATCH Found"); - if (aItemIndex < KTotalCollection) - { - TInt mediaCount = iEntries[aItemIndex]->Count(); - GLX_LOG_INFO1("GlxCH: HandleAttributesAvailableL mediaCount(%d)", mediaCount); - if (iCollectionIndexes[aItemIndex] != mediaCount) - { - GLX_LOG_INFO("GlxCH: *** UpdateDataInCPSL ***"); - SetRefreshNeeded(ETrue); - UpdateDataInCPSL(aItemIndex); - iCollectionIndexes[aItemIndex] = mediaCount; - - // Fix for ESLM-7WKJZR :: Sometimes Thumbnails are not updating when - // connecting/disconnecting USB - // If there is a change in media count, when photo suite is in forground, - // Update preview thumbnails of all collections. - if(SuiteInFocus()) - { - GLX_LOG_INFO("CGlxContentHarvesterPlugin : *** SuiteInFocus ***"); - iEntries[aItemIndex]->UpdatePreviewThumbnailListL(); - } - } - } - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::HandleFocusChangedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::HandleFocusChangedL( - NGlxListDefs::TFocusChangeType /*aType*/, - TInt /*aNewIndex*/, - TInt /*aOldIndex*/, - MGlxMediaList* /*aList*/) - { - // Do nothing - TRACER( "CGlxContentHarvesterPlugin::HandleFocusChangedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::HandleItemSelectedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::HandleItemSelectedL(TInt /*aIndex*/, - TBool /*aSelected*/, - MGlxMediaList* /*aList*/) - { - // Do nothing - TRACER( "CGlxContentHarvesterPlugin::HandleItemSelectedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::HandleMessageL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::HandleMessageL(const CMPXMessage& /*aMessage*/, - MGlxMediaList* /*aList*/) - { - // Do nothing - TRACER( "CGlxContentHarvesterPlugin::HandleMessageL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::FillInputListWithDataL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::FillInputListWithDataL( - CLiwGenericParamList* aInParamList, - const TDesC& aPublisherId, const TDesC& aContentType, - TInt aCollection) - { - TRACER( "CGlxContentHarvesterPlugin::FillInputListWithDataL" ); - - if(iMediaList) - { - aInParamList->Reset(); - if (!iCPSInterface) - { - User::Leave( KErrNotFound ); - } - else - { - TLiwGenericParam cptype( KType, TLiwVariant( KCpData )); - aInParamList->AppendL( cptype ); - - CLiwDefaultMap* cpdatamap = CLiwDefaultMap::NewLC(); - CLiwDefaultMap* map = CLiwDefaultMap::NewLC(); - - TBuf8 subTitleTxt; - const TGlxMedia& glxMedia = iMediaList->Item(aCollection); - switch (aCollection) - { - // Bug Fix @ ESLM-7VWF28 :: " Downloads " collection folder is replaced by " ALL " collection folder - case KItemIndexAll: - subTitleTxt.Append(KAllSubtitle); - break; - - case KItemIndexMonths: - subTitleTxt.Append(KMonthsSubtitle); - break; - - case KItemIndexAlbums: - subTitleTxt.Append(KAlbumsSubtitle); - break; - - case KItemIndexTags: - subTitleTxt.Append(KTagsSubtitle); - break; - - default: - break; - } - -#ifdef _DEBUG - TPtrC pStr= glxMedia.SubTitle(); - TBuf buf; - buf.Copy(pStr); - GLX_LOG_INFO1("CGlxContentHarvesterPlugin::FillInputListWithDataL,SUB TITLE=%S", &subTitleTxt); - GLX_LOG_INFO1("CGlxContentHarvesterPlugin::FillInputListWithDataL,SUB TITLE=%S", &buf); -#endif - - map->Remove(subTitleTxt); - map->InsertL( subTitleTxt, TLiwVariant( glxMedia.SubTitle() ) ); - - cpdatamap->InsertL( KPublisherId, TLiwVariant( aPublisherId )); - cpdatamap->InsertL( KContentType, TLiwVariant( aContentType )); - cpdatamap->InsertL( KContentId, TLiwVariant( KContId1 )); - cpdatamap->InsertL( KDataMap, TLiwVariant(map) ); - - TLiwGenericParam item( KItem, TLiwVariant( cpdatamap )); - aInParamList->AppendL( item ); - CleanupStack::PopAndDestroy( map ); - CleanupStack::PopAndDestroy( cpdatamap ); - item.Reset(); - cptype.Reset(); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::UpdateDataInCPSL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::UpdateDataInCPSL(TInt aCollection) - { - TRACER( "CGlxContentHarvesterPlugin::UpdateDataInCPSL" ); - GLX_LOG_INFO1("GlxCH::UpdateDataInCPSL(%d)", aCollection); - - TInt mtpStatus = KErrNotFound; - RProperty::Get(KMtpPSUid, KMtpPSStatus, mtpStatus); - GLX_LOG_INFO1("GlxCH::UpdateDataInCPSL mtpStatus(%d)",mtpStatus); - if ( (mtpStatus != KErrNotFound) && - (mtpStatus != EMtpPSStatusUninitialized) ) - { - if (!SuiteInFocus()) - { - GLX_LOG_INFO("GlxCH: *** MTP ACTIVE & SUITE NOT IN FOCUS ***"); - return; - } - } - - //update data in CPS - CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC(); - CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC(); - TBuf publisherTxt; - TBuf contTypeTxt; - - switch (aCollection) - { - // Bug Fix @ ESLM-7VWF28 :: " Downloads " collection folder is replaced by " ALL " collection folder - case KItemIndexAll: - publisherTxt.Append(KPublisherTextAll); - contTypeTxt.Append(KContTypeTextAll); - break; - - case KItemIndexMonths: - publisherTxt.Append(KPublisherTextMonths); - contTypeTxt.Append(KContTypeTextMonths); - break; - - case KItemIndexAlbums: - publisherTxt.Append(KPublisherTextAlbums); - contTypeTxt.Append(KContTypeTextAlbums); - break; - - case KItemIndexTags: - publisherTxt.Append(KPublisherTextTags); - contTypeTxt.Append(KContTypeTextTags); - break; - - default: - break; - } - - FillInputListWithDataL(inParamList, publisherTxt, contTypeTxt, aCollection); - - iCPSInterface->ExecuteCmdL( KAdd, *inParamList, *outParamList ); - CleanupStack::PopAndDestroy(outParamList); - CleanupStack::PopAndDestroy(inParamList); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::CreateMedialistL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::CreateMedialistL() - { - TRACER( "CGlxContentHarvesterPlugin::CreateMedialistL" ); - if(!iMediaList) - { - CMPXCollectionPath* path = CMPXCollectionPath::NewL(); - CleanupStack::PushL(path); - iMediaList = MGlxMediaList::InstanceL( *path ); - CreateContextsL(); - iMediaList->AddMediaListObserverL( this ); - CleanupStack::PopAndDestroy( path ); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::DestroyMedialist -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::DestroyMedialist() - { - TRACER( "CGlxContentHarvesterPlugin::DestroyMedialist" ); - if( iMediaList ) - { - iMediaList->RemoveMediaListObserver( this ); - iMediaList->RemoveContext(iSubtitleAttributeContext); - delete iSubtitleAttributeContext; - iSubtitleAttributeContext = NULL; - iMediaList->Close(); - iMediaList = NULL; - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::CreateContextsL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::CreateContextsL() - { - TRACER( "CGlxContentHarvesterPlugin::CreateContextsL" ); - iSubtitleAttributeContext = CGlxDefaultAttributeContext::NewL(); - iSubtitleAttributeContext->SetRangeOffsets( KListDataWindowSize, KListDataWindowSize ); - iSubtitleAttributeContext->AddAttributeL( KGlxMediaCollectionPluginSpecificSubTitle ); - iMediaList->AddContextL( iSubtitleAttributeContext, KMaxInt ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::HandleError -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::HandleError(TInt /*aError*/) - { - TRACER( "CGlxContentHarvesterPlugin::HandleError" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::UpdatePlugins -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::UpdatePlugins(TBool aUpdate) - { - TRACER( "CGlxContentHarvesterPlugin::UpdatePlugins" ); - TInt pluginIndex; - if(aUpdate) - { - if(IsRefreshNeeded()) - { - GLX_LOG_INFO1("CGlxContentHarvesterPlugin::UpdatePlugins=%d",iIsRefreshNeeded); - for(pluginIndex=0; pluginIndex < KTotalCollection; pluginIndex++) - { - iEntries[pluginIndex]->UpdatePreviewThumbnailListL(); - } - SetRefreshNeeded(EFalse); - } - } - else - { - //This check is added here,since all the collection are not created on the power - // up of the phone,so we dont need to remove the context at that stage else it will panic. - if(iEntries.Count()== KTotalCollection) - { - for(pluginIndex=0; pluginIndex < KTotalCollection; pluginIndex++) - { - iEntries[pluginIndex]->RemoveContextAndObserver(); - } - //before exiting the matrix menu , need to set this to true - //when again matrix menu is launched,the thumbnails has to be updated - //this use case is when we have not modified any items in the photos - //so refreshneeded will not be set and UpdatePreviewThumbnailListL is not called when - //matrix menu gets the focused,so update the refresh state - SetRefreshNeeded(ETrue); - } - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::IsRefreshNeeded -// --------------------------------------------------------------------------- -// -TBool CGlxContentHarvesterPlugin::IsRefreshNeeded() - { - TRACER( "CGlxContentHarvesterPlugin::IsRefreshNeeded" ); - GLX_LOG_INFO1("CGlxContentHarvesterPlugin::IsRefreshNeeded(%d)", iIsRefreshNeeded); - return iIsRefreshNeeded; - } -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::SetRefreshNeeded -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPlugin::SetRefreshNeeded(TBool aRefreshNeed) - { - TRACER( "CGlxContentHarvesterPlugin::SetRefreshNeeded" ); - GLX_LOG_INFO1("CGlxContentHarvesterPlugin::SetRefreshNeeded(%d)", aRefreshNeed); - iIsRefreshNeeded = aRefreshNeed; - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPlugin::SuiteInFocus -// --------------------------------------------------------------------------- -// -TBool CGlxContentHarvesterPlugin::SuiteInFocus() - { - TRACER( "CGlxContentHarvesterPlugin::SuiteInFocus" ); - TBool focus = EFalse; - for(TInt pluginIndex=0; pluginIndex < KTotalCollection; pluginIndex++) - { - focus = iEntries[pluginIndex]->Focused(); - if (focus) - { - GLX_LOG_INFO1("GlxCH: SuiteInFocus pluginIndex(%d)", pluginIndex); - break; - } - } - GLX_LOG_INFO1("CGlxContentHarvesterPlugin::SuiteInFocus focus(%d)", focus); - return focus; - } - -// End of File - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginalbums.cpp --- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginalbums.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,501 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Updates CPS storage for albums collection - * - */ - -// INCLUDE FILES - -#include -#include - -#include -#include // Glx Icons -#include //for KGlxCollectionPluginAlbumsImplementationUid -#include // for KGlxMediaIdThumbnail -#include -#include -#include //for tracer -#include // for log -#include // for MGlxMediaList -#include -#include // for KGlxGalleryApplicationUid -#include -#include - -#include "glxcontentharvesterpluginalbums.h" -#include "glxcontentharvesterplugin.hrh" -#include "glxmapconstants.h" - - -// ============================ MEMBER FUNCTIONS ============================== - -// ---------------------------------------------------------------------------- -// Constructor -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginAlbums::CGlxContentHarvesterPluginAlbums( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ) - { - TRACER( "CGlxContentHarvesterPluginAlbums::CGlxContentHarvesterPluginAlbums" ); - iCPSInterface = aCPSInterface; - SetCHPlugin(aCHplugin); - } - -// ---------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::ConstructL() - { - TRACER( "CGlxContentHarvesterPluginAlbums::ConstructL" ); - - //Call the base class ConstructL - CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated); - iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - - //Register/Subscribe with matrix menu for the notifications - GetInterfaceForNotificationL(); - SetupPublisherL(KItemIndexAlbums); - RequestCpsNotificationL(KItemIndexAlbums); - HandleStateChangeL(KItemIndexAlbums); - } - -// ---------------------------------------------------------------------------- -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginAlbums* CGlxContentHarvesterPluginAlbums::NewLC( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ) - { - TRACER( "CGlxContentHarvesterPluginAlbums::NewL" ); - CGlxContentHarvesterPluginAlbums* self = new ( ELeave ) CGlxContentHarvesterPluginAlbums( aCPSInterface,aCHplugin ); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginAlbums::~CGlxContentHarvesterPluginAlbums() - { - TRACER( "CGlxContentHarvesterPluginAlbums::~CGlxContentHarvesterPluginAlbums" ); - - DestroyMedialist(); - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::UpdateDataL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::UpdateDataL() - { - TRACER( "CGlxContentHarvesterPluginAlbums::UpdateDataL" ); - - if (!iMediaList) - { - return; - } - - if (iMediaList->Count()) - { - TInt ret = UpdateItem(KPreviewItemIndex); - if (ret != KErrNotFound) - { - //Updates the thumbnail in the collection - UpdateDataInCPSL(ret); - } - } - else - { - // Show previous thumbnail until the new thumbnail is - // fecthed.Added this check to avoid flicker - if (!GetCHPlugin()->IsRefreshNeeded() || (iMediaList->Count() == 0)) - { - //Don't Show the Thumbnail/Show nothing - GLX_LOG_INFO("CGlxContentHarvesterPluginAlbums::UpdateDataL() --O"); - UpdateDataInCPSL(GetBitmapHandle()); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::HandleNotifyL() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginAlbums::HandleNotifyL( - TInt /* aCmdId*/, - TInt/* aEventId */, - CLiwGenericParamList& /*aEventParamList*/, - const CLiwGenericParamList& /*aInParamList*/ ) - { - TRACER( "CGlxContentHarvesterPluginAlbums::HandleNotifyL" ); - HandleStateChangeL(KItemIndexAlbums); - return KErrNone; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::UpdateDataInCPSL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::UpdateDataInCPSL(TInt aHandle) - { - TRACER( "CGlxContentHarvesterPluginAlbums::UpdateDataInCPSL" ); - //update data in CPS - _LIT(KExamplePluginPub,"photossuite"); - _LIT(KContTypeText,"albums"); - _LIT(KContId1,"category1"); - - if(iCPSInterface && iMediaList ) - { - CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC(); - CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC(); - - FillInputListWithDataL(inParamList, KExamplePluginPub, KContTypeText , - KContId1, aHandle); - - iCPSInterface->ExecuteCmdL( KAdd, *inParamList, *outParamList ); - CleanupStack::PopAndDestroy(outParamList); - CleanupStack::PopAndDestroy(inParamList); - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::UpdateItem() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginAlbums::UpdateItem(TInt aItemIndex) - { - TRACER( "CGlxContentHarvesterPluginAlbums::UpdateItem" ); - const TGlxMedia& item = iMediaList->Item(aItemIndex); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::UpdateItem,aItemIndex=%d ",aItemIndex); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - return value->iBitmap->Handle(); - } - return KErrNotFound; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::ActivateL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::ActivateL( TBool aOn ) - { - TRACER( "CGlxContentHarvesterPluginAlbums::ActivateL" ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::ActivateL aOn =%d",aOn); - SetFocus(aOn); - - if (IsMatrixMenuInForegroundL() && aOn ) - { - if(GetCHPlugin()->IsRefreshNeeded()) - { - //Update the rest of all the collections on receving the focus... - GetCHPlugin()->UpdatePlugins(aOn); - } - else - { - //As the collection is not updated by the contentharvester plugin - //to update the thumbnails on the focus , need to call the below function - UpdatePreviewThumbnailListL(); - } - } - else if ( !aOn ) - { - if(!IsMatrixMenuInForegroundL()) - { - //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode... - //Need to destroy all the collection's observers and context - GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::ActivateL !aOn =%d and matrix not in foreground",aOn); - GetCHPlugin()->UpdatePlugins(aOn); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::HandleItemAddedL -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAlbums::HandleItemAddedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::HandleMediaL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::HandleMediaL(TInt /*aListIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAlbums::HandleMediaL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::HandleItemRemovedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::HandleItemRemovedL(TInt /*aStartIndex*/, - TInt /* aEndIndex */, MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAlbums::HandleItemRemovedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::HandleItemModifiedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::HandleItemModifiedL( - const RArray& /*aItemIndexes*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAlbums::HandleItemModifiedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL(TInt aItemIndex, - const RArray& aAttributes, MGlxMediaList* aList) - { - TRACER( "CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL" ); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - - TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL =%d ",aItemIndex); - - if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match )) - { - const TGlxMedia& item = aList->Item( aItemIndex ); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL Thumbnail is present "); - - // Update the preview thumbnail - //remove the observer as client need not listen to the callbacks - GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,one thumbnail fetched"); - UpdateDataInCPSL( value->iBitmap->Handle()); - iMediaList->RemoveMediaListObserver( this ); - }//end of check against value - }//end of attribute match - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::HandleFocusChangedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::HandleFocusChangedL( - NGlxListDefs::TFocusChangeType /*aType*/, - TInt /*aNewIndex*/, - TInt /*aOldIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAlbums::HandleFocusChangedL" ); - } - - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::HandleItemSelectedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::HandleItemSelectedL(TInt /*aIndex*/, - TBool /*aSelected*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAlbums::HandleItemSelectedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::HandleMessageL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::HandleMessageL(const CMPXMessage& /*aMessage*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAlbums::HandleMessageL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::DestroyMedialist -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::DestroyMedialist() - { - TRACER( "CGlxContentHarvesterPluginAlbums::DestroyMedialist" ); - if( iMediaList ) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginAlbums::DestroyMedialist,media list deleted"); - RemoveContextAndObserver(); - - delete iUriAttributeContext; - iUriAttributeContext = NULL; - delete iThumbnailAttributeContext; - iThumbnailAttributeContext = NULL; - - iMediaList->Close(); - iMediaList = NULL; - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::CreateMedialistL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::CreateMedialistL( ) - { - TRACER( "CGlxContentHarvesterPluginAlbums::CreateMedialistL" ); - if(!iMediaList) - { - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - - iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( - KGlxCollectionPluginAlbumsImplementationUid ), - iUriAttributeContext,iThumbnailAttributeContext); - - AddContextAndObserverL(); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::UpdatePreviewThumbnailListL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::UpdatePreviewThumbnailListL( ) - { - TRACER( "CGlxContentHarvesterPluginAlbums::UpdatePreviewThumbnailListL" ); - - //when there is an update of content in the collection - //this function is executed or when the collection recives the focus. - if(!iMediaList) - { - //media list is not created yet,create it. - CreateMedialistL( ); - UpdateDataL(); - } - else - { - if(GetCHPlugin()->IsRefreshNeeded()) - { - ContainerCacheCleanupL(iMediaList); - } - - //1.if the content is deleted,then creating a context doesn't fetch the attributes - //2.if the content is added and the content is not the latest as per the sorted order of the - // media list,then the thumbnails are not fetched. - // so show the first available thumbnail in the media list. - - UpdateDataL(); - - //Adding the context doesn't gaurantee we get a call back for - //Handle attributes available,if the latest item is already fetched. - //and for the content added for this collection,if it is not latest - //we will not recieve the attributes .so show the first available thumbnail - //in the media list.if there is any new latest content added,the thumbnail will be - //fetched and shown. - - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - RemoveContextAndObserver(); - AddContextAndObserverL(); - } - - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::AddContextAndObserverL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::AddContextAndObserverL() - { - TRACER( "CGlxContentHarvesterPluginAlbums::AddRemoveContextAndObserverL" ); - if(iMediaList) - { - iMediaList->AddMediaListObserverL( this ); - iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal); - iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow); - } - } - -// ---------------------------------------------------------------------------c -// CGlxContentHarvesterPluginAlbums::RemoveContextAndObserver -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::RemoveContextAndObserver() - { - TRACER( "CGlxContentHarvesterPluginAlbums::RemoveContextAndObserver" ); - if(iMediaList) - { - iMediaList->RemoveMediaListObserver( this ); - iMediaList->RemoveContext(iUriAttributeContext); - iMediaList->RemoveContext(iThumbnailAttributeContext); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::HandleError -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAlbums::HandleError(TInt /*aError*/) - { - TRACER( "CGlxContentHarvesterPluginAlbums::HandleError" ); - -#ifdef _DEBUG - if(iMediaList) - { - TInt count=iMediaList->Count(); - GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::HandleError,count=%d",count); - for ( TInt i = 0; i < count ; i++ ) - { - const TGlxMedia& item = iMediaList->Item( i ); - TInt thumbnailError = GlxErrorManager::HasAttributeErrorL( - item.Properties(), KGlxMediaIdThumbnail ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::HandleError,Error=%d ",thumbnailError); - - } - } -#endif - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::Count -// --------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginAlbums::Count() - { - TRACER( "CGlxContentHarvesterPluginAlbums::Count" ); - TInt count = KErrNone; - if(iMediaList) - { - count = iMediaList->Count(); - GLX_LOG_INFO1("GlxCHP:Albums::Count(%d)",count); - } - return count; - } -// End of File - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginall.cpp --- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginall.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,499 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Updates CPS storage for all collection - * - */ - -// INCLUDE FILES - -#include -#include - -#include -#include // Glx Icons -#include // for KGlxMediaIdThumbnail -#include -#include -#include //for KGlxCollectionPluginAllImplementationUid -#include //for Traces -#include //for Log -#include // for MGlxMediaList -#include -#include // for KGlxGalleryApplicationUid -#include -#include - -#include "glxcontentharvesterplugin.hrh" -#include "glxcontentharvesterpluginall.h" - -#include "glxmapconstants.h" - - -// ---------------------------------------------------------------------------- -// Constructor -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginAll::CGlxContentHarvesterPluginAll( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin *aCHplugin ) - { - TRACER( "CGlxContentHarvesterPluginAll::CGlxContentHarvesterPluginAll" ); - iCPSInterface = aCPSInterface; - SetCHPlugin(aCHplugin); - } - -// ---------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::ConstructL() - { - TRACER( "CGlxContentHarvesterPluginAll::ConstructL" ); - - //Call the base class ConstructL,to create the default thumbnail - CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated); - - iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - - //Register/Subscribe with matrix menu for the notifications - GetInterfaceForNotificationL(); - SetupPublisherL(KItemIndexAll); - RequestCpsNotificationL(KItemIndexAll); - HandleStateChangeL(KItemIndexAll); - } - -// ---------------------------------------------------------------------------- -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginAll* CGlxContentHarvesterPluginAll::NewLC( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin *aCHplugin ) - { - TRACER( "CGlxContentHarvesterPluginAll::NewL" ); - CGlxContentHarvesterPluginAll* self = new ( ELeave ) CGlxContentHarvesterPluginAll( aCPSInterface,aCHplugin ); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginAll::~CGlxContentHarvesterPluginAll() - { - TRACER( "CGlxContentHarvesterPluginAll::~CGlxContentHarvesterPluginAll" ); - - DestroyMedialist(); - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::UpdateDataL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::UpdateDataL() - { - TRACER( "CGlxContentHarvesterPluginAll::UpdateDataL" ); - - if (!iMediaList) - { - return; - } - - if (iMediaList->Count()) - { - TInt ret = UpdateItem(KPreviewItemIndex); - if (ret != KErrNotFound) - { - //Updates the thumbnail in the collection - UpdateDataInCPSL(ret); - } - } - else - { - // Show previous thumbnail until the new thumbnail is - // fecthed.Added this check to avoid flicker - if (iMediaList->Count() == 0) - { - //Don't Show the Thumbnail/Show nothing - GLX_LOG_INFO("CGlxContentHarvesterPluginAll::UpdateDataL() --O"); - UpdateDataInCPSL(GetBitmapHandle()); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::HandleNotifyL() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginAll::HandleNotifyL( - TInt /* aCmdId*/, - TInt/* aEventId */, - CLiwGenericParamList& /*aEventParamList*/, - const CLiwGenericParamList& /*aInParamList*/ ) - { - TRACER( "CGlxContentHarvesterPluginAll::HandleNotifyL" ); - - // First time when we enter matrix menu from shortcut or app. launcher, set - // IsRefreshNeeded flag to ETrue. so that thumbnail attributes are fetched again - // for all containers. This is to avoid preview thumbnails not getting shown in - // matirix menu under low memory conditions. - GetCHPlugin()->SetRefreshNeeded(ETrue); - - HandleStateChangeL(KItemIndexAll); - return KErrNone; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::UpdateDataInCPSL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::UpdateDataInCPSL(TInt aHandle) - { - TRACER( "CGlxContentHarvesterPluginAll::UpdateDataInCPSL" ); - //update data in CPS - _LIT(KExamplePluginPub,"photossuite"); - _LIT(KContentActivation,"allcs"); - _LIT(KContId1,"category1"); - - if(iCPSInterface && iMediaList ) - { - CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC(); - CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC(); - - //Shows the thumbnail in the matrix view - FillInputListWithDataL(inParamList, KExamplePluginPub, KContentActivation , - KContId1, aHandle); - - iCPSInterface->ExecuteCmdL( KAdd, *inParamList, *outParamList ); - CleanupStack::PopAndDestroy(outParamList); - CleanupStack::PopAndDestroy(inParamList); - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::UpdateItem() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginAll::UpdateItem(TInt aItemIndex) - { - TRACER( "CGlxContentHarvesterPluginAll::UpdateItem" ); - const TGlxMedia& item = iMediaList->Item(aItemIndex); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::UpdateItem,aItemIndex=%d ",aItemIndex); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - return value->iBitmap->Handle(); - } - return KErrNotFound; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::ActivateL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::ActivateL( TBool aOn ) - { - TRACER( "CGlxContentHarvesterPluginAll::ActivateL" ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::ActivateL aOn =%d",aOn); - SetFocus(aOn); - - if (IsMatrixMenuInForegroundL() && aOn ) - { - if(GetCHPlugin()->IsRefreshNeeded()) - { - //Update the rest of all the collections on receving the focus... - GetCHPlugin()->UpdatePlugins(aOn); - } - else - { - //As the collection is not updated by the contentharvester plugin - //to update the thumbnails on the focus , need to call the below function - UpdatePreviewThumbnailListL(); - } - } - else if ( !aOn ) - { - if(!IsMatrixMenuInForegroundL()) - { - //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode... - //Need to destroy all the collection's observers and context - GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::ActivateL !aOn =%d and matrix not in foreground",aOn); - GetCHPlugin()->UpdatePlugins(aOn); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::HandleItemAddedL -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, - MGlxMediaList*/*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAll::HandleItemAddedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::HandleMediaL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::HandleMediaL(TInt /*aListIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAll::HandleMediaL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::HandleItemRemovedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::HandleItemRemovedL(TInt /*aStartIndex*/, - TInt /* aEndIndex */, MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAll::HandleItemRemovedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::HandleItemModifiedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::HandleItemModifiedL( - const RArray& /*aItemIndexes*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAll::HandleItemModifiedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::HandleAttributesAvailableL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::HandleAttributesAvailableL(TInt aItemIndex, - const RArray& aAttributes, MGlxMediaList* aList) - { - TRACER( "CGlxContentHarvesterPluginAll::HandleAttributesAvailableL" ); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - - TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL =%d ",aItemIndex); - if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match )) - { - const TGlxMedia& item = aList->Item( aItemIndex ); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL Thumbnail is present "); - - // Update the preview thumbnail - //remove the observer as client need not listen to the callbacks - GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,one thumbnail fetched"); - UpdateDataInCPSL( value->iBitmap->Handle()); - iMediaList->RemoveMediaListObserver( this ); - }//end of check against value - }//end of attribute match - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::HandleFocusChangedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::HandleFocusChangedL( - NGlxListDefs::TFocusChangeType /*aType*/, - TInt /*aNewIndex*/, - TInt /*aOldIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAll::HandleFocusChangedL" ); - } - - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::HandleItemSelectedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::HandleItemSelectedL(TInt /*aIndex*/, - TBool /*aSelected*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginAll::HandleItemSelectedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::HandleMessageL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::HandleMessageL(const CMPXMessage& /*aMessage*/, - MGlxMediaList* /*aList*/) - { - // Do nothing - TRACER( "CGlxContentHarvesterPluginAll::HandleMessageL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::DestroyMedialistL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::DestroyMedialist() - { - TRACER( "CGlxContentHarvesterPluginAll::DestroyMedialist" ); - if( iMediaList ) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginAll::DestroyMedialist,media list deleted"); - RemoveContextAndObserver(); - - delete iUriAttributeContext; - iUriAttributeContext = NULL; - delete iThumbnailAttributeContext; - iThumbnailAttributeContext = NULL; - - iMediaList->Close(); - iMediaList = NULL; - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::CreateSingleItemMedialist -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::CreateMedialistL( ) - { - TRACER( "CGlxContentHarvesterPluginAll::CreateMedialistL" ); - if(!iMediaList) - { - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - - iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( - KGlxCollectionPluginAllImplementationUid ), - iUriAttributeContext,iThumbnailAttributeContext); - - AddContextAndObserverL(); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::UpdateMedialistContext -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::UpdatePreviewThumbnailListL( ) - { - TRACER( "CGlxContentHarvesterPluginAll::UpdatePreviewThumbnailListL" ); - - //when there is an update of content in the collection - //this function is executed or when the collection recives the focus. - if(!iMediaList) - { - //medis list is not created yet,create it. - CreateMedialistL( ); - UpdateDataL(); - } - else - { - UpdateDataL(); - - //Adding the context doesn't gaurantee we get a call back for - //Handle attributes available,if the latest item is already fetched. - //and for the content added for this collection,if it is not latest - //we will not recieve the attributes .so show the first available thumbnail - //in the media list.if there is any new latest content added,the thumbnail will be - //fetched and shown. - - - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - RemoveContextAndObserver(); - AddContextAndObserverL(); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::AddContextAndObserverL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::AddContextAndObserverL() - { - TRACER( "CGlxContentHarvesterPluginAll::AddRemoveContextAndObserverL" ); - if(iMediaList) - { - iMediaList->AddMediaListObserverL( this ); - iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal); - iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::RemoveContextAndObserver -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::RemoveContextAndObserver() - { - TRACER( "CGlxContentHarvesterPluginAll::RemoveContextAndObserver" ); - if(iMediaList) - { - iMediaList->RemoveMediaListObserver( this ); - iMediaList->RemoveContext(iUriAttributeContext); - iMediaList->RemoveContext(iThumbnailAttributeContext); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::HandleError -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginAll::HandleError(TInt /*aError*/) - { - TRACER( "CGlxContentHarvesterPluginAll::HandleError" ); - -#ifdef _DEBUG - if(iMediaList) - { - TInt count=iMediaList->Count(); - GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleError,count=%d",count); - for ( TInt i = 0; i < count ; i++ ) - { - const TGlxMedia& item = iMediaList->Item( i ); - TInt thumbnailError = GlxErrorManager::HasAttributeErrorL( - item.Properties(), KGlxMediaIdThumbnail ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleError,Error=%d ",thumbnailError); - - } - } -#endif - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAll::Count -// --------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginAll::Count() - { - TRACER( "CGlxContentHarvesterPluginAll::Count" ); - TInt count = KErrNone; - if(iMediaList) - { - count = iMediaList->Count(); - GLX_LOG_INFO1("GlxCHP:All::Count(%d)",count); - } - return count; - } -// End of File - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginbase.cpp --- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginbase.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,578 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Updates CPS storage - * - */ - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include // KGlxFetchontextPriorityNormal and KGlxIconsFilename -#include -#include - -#include -#include -#include -#include // for MGlxMediaList -#include -#include // for KGlxGalleryApplicationUid -#include -#include -#include -#include -#include -#include - -#include "glxcontentharvesterplugin.h" -#include "glxcontentharvesterpluginbase.h" -#include "glxcontentharvesterplugin.hrh" -#include "glxmapconstants.h" -#include "glxcontentharvesterpluginalbums.h" - -// Matrixmenu uid - needed to check if photo suite is in foreground -const TInt KMatrixMenuUid = 0x101F4CD2; - -// ============================ MEMBER FUNCTIONS ============================== - -// ---------------------------------------------------------------------------- -// Constructor -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginBase::CGlxContentHarvesterPluginBase( ) - { - TRACER( "CGlxContentHarvesterPluginBase::CGlxContentHarvesterPluginBase" ); - // No Implementation - } - -// ---------------------------------------------------------------------------- -// Symbian 2nd phase constructor. -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginBase::ConstructL(TInt aDefaultIconId ) - { - SetGridIconSizeL(); - TSize gridIconSize = GetGridIconSize(); - TFileName resFile(KDC_APP_BITMAP_DIR); - resFile.Append(KGlxIconsFilename); - iBitmap = AknIconUtils::CreateIconL(resFile,aDefaultIconId); - AknIconUtils::SetSize(iBitmap, gridIconSize); - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginBase::~CGlxContentHarvesterPluginBase() - { - TRACER( "CGlxContentHarvesterPluginBase::~CGlxContentHarvesterPluginBase" ); - if ( iCPSNotificationInterface ) - { - iCPSNotificationInterface->Close(); - } - - delete iServiceHandler; - - if(iBitmap) - { - delete iBitmap; - iBitmap=NULL; - } - } - -// --------------------------------------------------------------------------- -// SetGridIconSizeL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginBase::SetGridIconSizeL() - { - TRACER("CGlxContentHarvesterPluginBase::SetGridIconSizeL()"); - // Sets up TLS, must be done before FeatureManager is used. - FeatureManager::InitializeLibL(); - - if(FeatureManager::FeatureSupported( KFeatureIdLayout640_360_Touch ) || FeatureManager::FeatureSupported( KFeatureIdLayout360_640_Touch )) - { - iGridIconSize = TSize(111,83); - } - else if(FeatureManager::FeatureSupported(KFeatureIdLayout640_480_Touch) || FeatureManager::FeatureSupported(KFeatureIdLayout480_640_Touch) || - FeatureManager::FeatureSupported(KFeatureIdLayout640_480) || FeatureManager::FeatureSupported(KFeatureIdLayout480_640)) - { - iGridIconSize = TSize(146,110); - } - else - { - iGridIconSize = TSize(146,110); - } - // Frees the TLS. Must be done after FeatureManager is used. - FeatureManager::UnInitializeLib(); - } - -// --------------------------------------------------------------------------- -// GetGridIconSize -// --------------------------------------------------------------------------- -// -TSize CGlxContentHarvesterPluginBase::GetGridIconSize() - { - TRACER("CGlxContentHarvesterPluginBase::GetGridIconSize()"); - return iGridIconSize; - } - -// --------------------------------------------------------------------------- -// GetBitmapHandle -// --------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginBase::GetBitmapHandle() const - { - TRACER("CGlxContentHarvesterPluginBase::GetBitmapHandle"); - return iBitmap->Handle(); - } - -// --------------------------------------------------------------------------- -// GetInterfaceForNotificationL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginBase::GetInterfaceForNotificationL() - { - TRACER( "CGlxContentHarvesterPluginBase::GetInterfaceForNotificationL" ); - // create Service Handler and keep as long as access to Service needed - iServiceHandler = CLiwServiceHandler::NewL(); - //keep for convenience, not owned - iInParamList = &iServiceHandler->InParamListL(); - iOutParamList = &iServiceHandler->OutParamListL(); - - RCriteriaArray criteriaArray; - CleanupResetAndDestroyPushL( criteriaArray ); - - // create Liw criteria - CLiwCriteriaItem* criterion = - CLiwCriteriaItem::NewLC( KLiwCmdAsStr, KCPInterface, KCPService ); - criterion->SetServiceClass( TUid::Uid( KLiwClassBase ) ); - - criteriaArray.AppendL( criterion ); - CleanupStack::Pop( criterion ); - - // attach Liw criteria - iServiceHandler->AttachL( criteriaArray ); - // get Service interface - iServiceHandler->ExecuteServiceCmdL( *criterion, - *iInParamList, - *iOutParamList ); - - CleanupStack::PopAndDestroy( &criteriaArray ); - - // extract interface from output params - TInt pos( 0 ); - iOutParamList->FindFirst( pos, KCPInterface ); - if( pos != KErrNotFound ) - { - iCPSNotificationInterface = - (*iOutParamList)[pos].Value().AsInterface(); - } - - iInParamList->Reset(); - iOutParamList->Reset(); - - if ( !iCPSNotificationInterface ) - { - // handle no Service - User::Leave( KErrNotFound ); - } - } - -// --------------------------------------------------------------------------- -// RequestCpsNotificationL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginBase::RequestCpsNotificationL(TInt aSuiteItem) - { - TRACER( "CGlxContentHarvesterPluginBase::RequestCpsNotificationL" ); - - TLiwGenericParam cptype( KType, TLiwVariant( KPublisherId )); - iInParamList->AppendL( cptype ); - - //create filter - CLiwDefaultMap* filterMap = CLiwDefaultMap::NewLC(); - filterMap->InsertL( KPublisherId, TLiwVariant( KSuitePublisher )); - - switch (aSuiteItem) - { - case KItemIndexMonths: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationMonths ) ); - break; - case KItemIndexAlbums: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAlbums ) ); - break; - case KItemIndexTags: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationTags ) ); - break; - case KItemIndexAll: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAll ) ); - break; - } - - filterMap->InsertL( KContentId, TLiwVariant( KContentDefault ) ); - - //we are only interested in update events - filterMap->InsertL( KOperation, TLiwVariant( KOperationUpdate ) ); - - TLiwGenericParam filter( KFilter, TLiwVariant( filterMap )); - iInParamList->AppendL( filter ); - - iCPSNotificationInterface->ExecuteCmdL( KRequestNotification, - *iInParamList, - *iOutParamList, - KLiwOptASyncronous, - this ); - - CleanupStack::PopAndDestroy( filterMap ); - filter.Reset(); - cptype.Reset(); - - iInParamList->Reset(); - iOutParamList->Reset(); - } - -// --------------------------------------------------------------------------- -// SetupPublisherL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginBase::SetupPublisherL(TInt aSuiteItem) - { - TRACER( "CGlxContentHarvesterPluginBase::SetupPublisherL" ); - - //add mandatory type param - TLiwGenericParam cptype( KType, TLiwVariant( KPublisherId )); - iInParamList->AppendL( cptype ); - - //create publisher definition - CLiwDefaultMap* filterMap = CLiwDefaultMap::NewLC(); - filterMap->InsertL( KPublisherId, TLiwVariant( KSuitePublisher )); - switch (aSuiteItem) - { - case KItemIndexMonths: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationMonths ) ); - break; - case KItemIndexAlbums: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAlbums ) ); - break; - case KItemIndexTags: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationTags ) ); - break; - case KItemIndexAll: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAll ) ); - break; - } - filterMap->InsertL( KContentId, TLiwVariant( KContentDefault ) ); - // initial value for activation flag - filterMap->InsertL( KFlag, TLiwVariant( TUint(0) ) ); - - - // prepare Access Control List for the publisher - CLiwDefaultMap* cpsAclMap = CLiwDefaultMap::NewLC(); - CLiwDefaultMap* cpsAclWriteMap = CLiwDefaultMap::NewLC(); - CLiwDefaultMap* cpsAclReadMap = CLiwDefaultMap::NewLC(); - - // write policy - allow only MatrixMenu, - // Matrix has 2 UIDs: - // - 0x20012474 is used if it is compiled as a standalone application - // - 0x101F4CD2 is used if it should replace AppShell - // add both for convenience - cpsAclWriteMap->InsertL( KUIDs, TLiwVariant( _L("0x101F4CD2:0x20012474") ) ); - - // read policy - allow only the Content Harvester plug-in, - // this plug-in runs inside Content Harvester server - UID 0x10282E5A - cpsAclReadMap->InsertL( KUIDs, TLiwVariant( _L("0x10282E5A") ) ); - - cpsAclMap->InsertL( KACLWrite, TLiwVariant( cpsAclWriteMap ) ); - cpsAclMap->InsertL( KACLRead, TLiwVariant( cpsAclReadMap ) ); - - filterMap->InsertL( KAccessList, TLiwVariant( cpsAclMap ) ); - - // create a dummy data map, - // mandatory for adding publisher data - can be left empty - CLiwDefaultMap* cpsDummyDataMap = CLiwDefaultMap::NewLC(); - filterMap->InsertL( KDataMap, TLiwVariant( cpsDummyDataMap ) ); - - TLiwGenericParam cpsItemParam( KItem, TLiwVariant( filterMap ) ); - iInParamList->AppendL( cpsItemParam ); - - - iCPSNotificationInterface->ExecuteCmdL( KAdd, - *iInParamList, - *iOutParamList, - 0, - NULL ); - CleanupStack::PopAndDestroy( cpsDummyDataMap ); - CleanupStack::PopAndDestroy( cpsAclReadMap ); - CleanupStack::PopAndDestroy( cpsAclWriteMap ); - CleanupStack::PopAndDestroy( cpsAclMap ); - CleanupStack::PopAndDestroy( filterMap ); - cpsItemParam.Reset(); - // filter.Reset(); - cptype.Reset(); - - iInParamList->Reset(); - iOutParamList->Reset(); - } - -// --------------------------------------------------------------------------- -// HandleStateChangeL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginBase::HandleStateChangeL(TInt aSuiteItem) - { - TRACER( "CGlxContentHarvesterPluginBase::HandleStateChangeL" ); - - TLiwGenericParam cptype( KType, TLiwVariant( KPublisher )); - iInParamList->AppendL( cptype ); - - CLiwDefaultMap* filterMap = CLiwDefaultMap::NewLC(); - filterMap->InsertL( KPublisherId, TLiwVariant( KSuitePublisher )); - switch (aSuiteItem) - { - case KItemIndexMonths: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationMonths ) ); - break; - - case KItemIndexAlbums: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAlbums ) ); - break; - - case KItemIndexTags: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationTags ) ); - break; - - case KItemIndexAll: - filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAll ) ); - break; - } - - TLiwGenericParam filter( KFilter, TLiwVariant( filterMap )); - iInParamList->AppendL( filter ); - - - iCPSNotificationInterface->ExecuteCmdL( KGetList, - *iInParamList, - *iOutParamList, - 0, - NULL ); - - CleanupStack::PopAndDestroy( filterMap ); - - filter.Reset(); - cptype.Reset(); - - TInt posStat( 0 ); - iOutParamList->FindFirst( posStat, KResults ); - if( posStat != KErrNotFound ) - { - // status info present - extract and return - CLiwIterable* results = (*iOutParamList)[posStat].Value().AsIterable(); - TLiwVariant cpdata; - if ( results->NextL( cpdata ) ) - { - const CLiwMap* map = cpdata.AsMap(); - TLiwVariant dataMapVar; - if ( map->FindL( _L8("flag"), dataMapVar ) ) - { - ActivateL(dataMapVar.AsTInt32()); - } - dataMapVar.Reset(); - } - cpdata.Reset(); - } - else - { - // no return value - // this will happen if suite was never activated/deactivated before - // handle gracefuly - ignore and wait for action ;] - } - - iInParamList->Reset(); - iOutParamList->Reset(); - - } - - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginBase::FillInputListWithDataL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginBase::FillInputListWithDataL( - CLiwGenericParamList* aInParamList, - const TDesC& aPublisherId, const TDesC& aContentType, - const TDesC& aContentId, TInt aHandle) - { - TRACER( "CGlxContentHarvesterPluginBase::FillInputListWithDataL" ); - - aInParamList->Reset(); - - TLiwGenericParam cptype( KType, TLiwVariant( KCpData )); - aInParamList->AppendL( cptype ); - - CLiwDefaultMap* cpdatamap = CLiwDefaultMap::NewLC(); - CLiwDefaultMap* map = CLiwDefaultMap::NewLC(); - - if(aHandle) - { - map->InsertL( KFirstIcon, TLiwVariant( (TInt32)aHandle) ); - } - - cpdatamap->InsertL( KPublisherId, TLiwVariant( aPublisherId )); - cpdatamap->InsertL( KContentType, TLiwVariant( aContentType )); - cpdatamap->InsertL( KContentId, TLiwVariant( aContentId )); - cpdatamap->InsertL( KDataMap, TLiwVariant(map) ); - - TLiwGenericParam item( KItem, TLiwVariant( cpdatamap )); - aInParamList->AppendL( item ); - CleanupStack::PopAndDestroy( map ); - CleanupStack::PopAndDestroy( cpdatamap ); - item.Reset(); - cptype.Reset(); - - } - -// --------------------------------------------------------------------------- -// CreateMedialistAndAttributeContextL -// --------------------------------------------------------------------------- -// -MGlxMediaList* CGlxContentHarvesterPluginBase::CreateMedialistAndAttributeContextL( - const TGlxMediaId& aPluginId, - CGlxAttributeContext* aUriAttributeContext, - CGlxAttributeContext* aThumbnailAttributeContext) const - { - TRACER( "CGlxContentHarvesterPluginBase::CreateMedialistAndThumbnailContextL" ); - - CMPXCollectionPath* path = CMPXCollectionPath::NewL(); - CleanupStack::PushL( path ); - path->AppendL( aPluginId.Value() ); - - CMPXFilter* filter = NULL; - filter = TGlxFilterFactory::CreatePreviewFilterL(); - CleanupStack::PushL( filter ); - - MGlxMediaList* mediaList = MGlxMediaList::InstanceL( *path, KGlxIdNone , filter); - CleanupStack::PopAndDestroy( filter ); - CleanupStack::PopAndDestroy( path ); - - // Two different contexts are added. One for URI with high priority - // and for Thumbnail with low priority. Because URI attribute should be - // fetched first before placing thumbnail fetch request - - aUriAttributeContext->AddAttributeL(KMPXMediaGeneralUri); - - TMPXAttribute attr( KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId(ETrue, - iGridIconSize.iWidth,iGridIconSize.iHeight) ); - - aThumbnailAttributeContext->SetDefaultSpec(iGridIconSize.iWidth, - iGridIconSize.iHeight); - - aThumbnailAttributeContext->AddAttributeL(attr); - - return mediaList; - } - - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginBase::Focused -// --------------------------------------------------------------------------- -// -TBool CGlxContentHarvesterPluginBase::Focused() - { - TRACER( "CGlxContentHarvesterPluginBase::Focused" ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginBase::Focused(%d)", iIsFocused); - return iIsFocused; - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginBase::SetFocus -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginBase::SetFocus(TBool aFocus ) - { - TRACER( "CGlxContentHarvesterPluginBase::SetFocus" ); - iIsFocused=aFocus; - } - -// --------------------------------------------------------------------------- -// ContainerCacheCleanupL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginBase::ContainerCacheCleanupL(MGlxMediaList* aMediaList) - { - TRACER( "CGlxContentHarvesterPluginBase::ContainerCacheCleanupL" ); - - if ( IsMatrixMenuInForegroundL() ) - { - MGlxCache* cacheManager = MGlxCache::InstanceL(); - for(TInt i=0 ; i< aMediaList->Count();i++) - { - GLX_LOG_INFO1("CGlxContentHarvesterPluginBase::ForceCleanupMedia(%d)", i); - cacheManager->ForceCleanupMedia(aMediaList->IdSpaceId(i), - aMediaList->Item(i).Id()); - } - cacheManager->Close(); - } - } - -// --------------------------------------------------------------------------- -// IsMatrixMenuInForegroundL -// --------------------------------------------------------------------------- -// -TBool CGlxContentHarvesterPluginBase::IsMatrixMenuInForegroundL() - { - TRACER( "CGlxContentHarvesterPluginBase::IsMatrixMenuInForegroundL" ); - - RWsSession wssession; - User::LeaveIfError(wssession.Connect()); - CleanupClosePushL(wssession); - - TApaTaskList taskList( wssession ); - TApaTask task = taskList.FindApp( TUid::Uid( KMatrixMenuUid ) ); - // get fopreground app - TApaTask taskForeGround = taskList.FindByPos(0); - - if ( task.Exists() && task.ThreadId() == taskForeGround.ThreadId() ) - { - CleanupStack::PopAndDestroy( &wssession ); - return ETrue; - } - CleanupStack::PopAndDestroy( &wssession ); - return EFalse; - } - -// --------------------------------------------------------------------------- -// SetCHPlugin -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginBase::SetCHPlugin(MGlxContentHarvesterPlugin* aCHplugin) - { - iCHplugin = aCHplugin; - } - -// --------------------------------------------------------------------------- -// GetCHPlugin -// --------------------------------------------------------------------------- -// -MGlxContentHarvesterPlugin* CGlxContentHarvesterPluginBase::GetCHPlugin() - { - return iCHplugin; - } - -// EOF diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/src/glxcontentharvesterplugincaptured.cpp --- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugincaptured.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,616 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Updates CPS storage for captured collection - * - */ - -// INCLUDE FILES - -#include -#include - -#include -#include // Glx Icons -#include -#include // for KGlxMediaIdThumbnail -#include -#include -#include -#include -#include // for MGlxMediaList -#include -#include // for KGlxGalleryApplicationUid -#include -#include - -#include "glxcontentharvesterplugincaptured.h" -#include "glxcontentharvesterplugin.hrh" -#include "glxmapconstants.h" - - -// ============================ MEMBER FUNCTIONS ============================== -LOCAL_C TInt TimerCallbackL( TAny* aPtr ) - { - TRACER( "CGlxContentHarvesterPluginCaptured::TimerCallbackL" ); - static_cast(aPtr)->UpdateDataL(); - return KErrNone; - } - -// ---------------------------------------------------------------------------- -// Constructor -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginCaptured::CGlxContentHarvesterPluginCaptured( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin *aCHplugin ) - - { - TRACER( "CGlxContentHarvesterPluginCaptured::CGlxContentHarvesterPluginCaptured" ); - iCPSInterface = aCPSInterface; - SetCHPlugin(aCHplugin); - } - -// ---------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::ConstructL() - { - TRACER( "CGlxContentHarvesterPluginCaptured::ConstructL" ); - - //Call the base class ConstructL,to create the default thumbnail - CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated); - - iPeriodic = CPeriodic::NewL( CActive::EPriorityLow ); - - iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - - //Register/Subscribe with matrix menu for the notifications - GetInterfaceForNotificationL(); - SetupPublisherL(KItemIndexCaptured); - RequestCpsNotificationL(KItemIndexCaptured); - HandleStateChangeL(KItemIndexCaptured); - } - -// ---------------------------------------------------------------------------- -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginCaptured* CGlxContentHarvesterPluginCaptured::NewLC( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin *aCHplugin ) - { - TRACER( "CGlxContentHarvesterPluginCaptured::NewL" ); - CGlxContentHarvesterPluginCaptured* self = new ( ELeave ) CGlxContentHarvesterPluginCaptured( aCPSInterface,aCHplugin ); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginCaptured::~CGlxContentHarvesterPluginCaptured() - { - TRACER( "CGlxContentHarvesterPluginCaptured::~CGlxContentHarvesterPluginCaptured" ); - - DestroyMedialist(); - - if ( iPeriodic ) - { - iPeriodic->Cancel(); - } - delete iPeriodic; - - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::UpdateDataL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::UpdateDataL() - { - TRACER( "CGlxContentHarvesterPluginCaptured::UpdateDataL" ); - - if (!iMediaList) - { - return; - } - - if (iMediaList->Count() && iPreviewItemCount.Count()) - { - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::UpdateDataL(),iProgressIndex=%d",iProgressIndex); - TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]); - if (ret != KErrNotFound) - { - //Updates the thumbnail in the collection - UpdateDataInCPSL(ret); - } - else - { - UpdateDataInCPSL(GetBitmapHandle()); - } - } - else - { - // Show previous thumbnail until the new thumbnail is - // fecthed.Added this check to avoid flicker - if (iMediaList->Count() == 0) - { - //Don't Show the Thumbnail/Show nothing - GLX_LOG_INFO("CGlxContentHarvesterPluginCaptured::UpdateDataL() --O"); - UpdateDataInCPSL(GetBitmapHandle()); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleNotifyL() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginCaptured::HandleNotifyL( - TInt /* aCmdId*/, - TInt/* aEventId */, - CLiwGenericParamList& /*aEventParamList*/, - const CLiwGenericParamList& /*aInParamList*/ ) - { - TRACER( "CGlxContentHarvesterPluginCaptured::HandleNotifyL" ); - - HandleStateChangeL(KItemIndexCaptured); - return KErrNone; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleItemChanged() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::HandleItemChanged() - { - TRACER("CGlxContentHarvesterPluginCaptured::HandleItemChanged"); - - iProgressIndex = 0; - iPreviewItemCount.Reset(); - - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - if(iMediaList) - { - TInt count = iMediaList->Count(); - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured:: HandleItemChanged ,count=%d",count); - - TBool inFocus = IsFocused(); - for(TInt aItemIndex = 0; aItemIndex < count ; aItemIndex++) - { - const TGlxMedia& item = iMediaList->Item( aItemIndex ); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - iPreviewItemCount.InsertInOrder(aItemIndex); - if(!inFocus) - { - //if the collection is NOT in Focus,retrive only one thumbnail and break - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleItemChanged,iRange=1,aItemIndex=%d",aItemIndex); - break; - } - else if(iPreviewItemCount.Count() == KPreviewThumbnailFetchCount || - iPreviewItemCount.Count() == count ) - { - //if the collection is not in Focus,retrive 15 thumbnail and break - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleItemChanged,iRange=15,aItemIndex=%d",aItemIndex); - break; - } - - } - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::UpdateDataInCPSL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::UpdateDataInCPSL(TInt aHandle) - { - TRACER( "CGlxContentHarvesterPluginCaptured::UpdateDataInCPSL" ); - //update data in CPS - _LIT(KExamplePluginPub,"photossuite"); - _LIT(KContTypeText,"captured"); - _LIT(KContId1,"category1"); - - if(iCPSInterface && iMediaList ) - { - CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC(); - CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC(); - - FillInputListWithDataL(inParamList, KExamplePluginPub, KContTypeText , - KContId1, aHandle); - - iCPSInterface->ExecuteCmdL( KAdd, *inParamList, *outParamList ); - CleanupStack::PopAndDestroy(outParamList); - CleanupStack::PopAndDestroy(inParamList); - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::UpdateItem() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginCaptured::UpdateItem(TInt aItemIndex) - { - TRACER( "CGlxContentHarvesterPluginCaptured::UpdateItem" ); - const TGlxMedia& item = iMediaList->Item(aItemIndex); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::UpdateItem,aItemIndex=%d ",aItemIndex); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::UpdateItem,iProgressIndex=%d ",iProgressIndex); - iProgressIndex++; - if (iProgressIndex >= KPreviewThumbnailFetchCount || - iProgressIndex >= iPreviewItemCount.Count() || - iProgressIndex >= iMediaList->Count()) - { - iProgressIndex = 0; - } - return value->iBitmap->Handle(); - } - return KErrNotFound; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::ActivateL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::ActivateL( TBool aOn ) - { - TRACER( "CGlxContentHarvesterPluginCaptured::ActivateL" ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::ActivateL aOn =%d",aOn); - SetFocus(aOn); - - if (IsMatrixMenuInForegroundL() && aOn && !iPeriodic->IsActive() ) - { - - if(GetCHPlugin()->IsRefreshNeeded()) - { - //Update the rest of all the collections on receving the focus... - GetCHPlugin()->UpdatePlugins(aOn); - } - else - { - //As the collection is not updated by the contentharvester plugin - //to update the thumbnails on the focus , need to call the below function - UpdatePreviewThumbnailListL(); - } - - iPeriodic->Start( KTimerInterval, - KTimerInterval, - TCallBack( TimerCallbackL, this ) ); - } - else if ( !aOn ) - { - if(!IsMatrixMenuInForegroundL()) - { - //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode... - //Need to destroy all the collection's observers and context - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::ActivateL !aOn =%d and matrix not in foreground",aOn); - GetCHPlugin()->UpdatePlugins(aOn); - } - iPeriodic->Cancel(); - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleItemAddedL -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginCaptured::HandleItemAddedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleMediaL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::HandleMediaL(TInt /*aListIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginCaptured::HandleMediaL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleItemRemovedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::HandleItemRemovedL(TInt /*aStartIndex*/, - TInt /* aEndIndex */, MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginCaptured::HandleItemRemovedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleItemModifiedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::HandleItemModifiedL( - const RArray& /*aItemIndexes*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginCaptured::HandleItemModifiedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL(TInt aItemIndex, - const RArray& aAttributes, MGlxMediaList* aList) - { - TRACER( "CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL" ); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - - TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL =%d ",aItemIndex); - if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match )) - { - const TGlxMedia& item = aList->Item( aItemIndex ); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL Thumbnail is present "); - iPreviewItemCount.InsertInOrder(aItemIndex); - - //if the collection on the matrix menu is not focused,then show only one thumbnail - if(!IsFocused()) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL,one thumbnail fetched"); - UpdateDataInCPSL( value->iBitmap->Handle()); - //if one thumbnail is fetched,it is sufficent when the collection is not in focus. - //remove the observer as client need not listen to the callbacks - iMediaList->RemoveMediaListObserver( this ); - } - else if (iPreviewItemCount.Count() == KPreviewThumbnailFetchCount || - iPreviewItemCount.Count() == aList->Count() ) - { - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL,media list count=%d",aList->Count()); - //if the PreviewItemCount equals 15 or if it is eqaul to the total count - //remove the observer as client need not listen to the callbacks - iMediaList->RemoveMediaListObserver( this ); - } - }//end of check against value - }//end of attribute match - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleFocusChangedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::HandleFocusChangedL( - NGlxListDefs::TFocusChangeType /*aType*/, - TInt /*aNewIndex*/, - TInt /*aOldIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginCaptured::HandleFocusChangedL" ); - } - - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleItemSelectedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::HandleItemSelectedL(TInt /*aIndex*/, - TBool /*aSelected*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginCaptured::HandleItemSelectedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleMessageL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::HandleMessageL(const CMPXMessage& /*aMessage*/, - MGlxMediaList* /*aList*/) - { - // Do nothing - TRACER( "CGlxContentHarvesterPluginCaptured::HandleMessageL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::DestroyMedialist -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::DestroyMedialist() - { - TRACER( "CGlxContentHarvesterPluginCaptured::DestroyMedialist" ); - if( iMediaList ) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginCaptured::DestroyMedialist,media list deleted"); - RemoveContextAndObserver(); - - delete iUriAttributeContext; - iUriAttributeContext = NULL; - delete iThumbnailAttributeContext; - iThumbnailAttributeContext = NULL; - - iMediaList->Close(); - iMediaList = NULL; - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::CreateMedialistL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::CreateMedialistL( ) - { - TRACER( "CGlxContentHarvesterPluginCaptured::CreateMedialistL" ); - if(!iMediaList) - { - //if the collection is in focus then , create media list with context of 15 items else - // with context of single item. - if(IsFocused()) - { - iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); - } - else - { - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - } - - iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( - KGlxCollectionPluginCameraImplementationUid ), - iUriAttributeContext,iThumbnailAttributeContext); - - AddContextAndObserverL(); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::UpdatePreviewThumbnailListL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::UpdatePreviewThumbnailListL( ) - { - TRACER( "CGlxContentHarvesterPluginCaptured::UpdatePreviewThumbnailListL" ); - - //when there is an update of content in the collection - //this function is executed or when the collection recives the focus. - if(!iMediaList) - { - //medis list is not created yet,create it. - CreateMedialistL( ); - //This is called to show the preview thumbnails. If no thumbnails are - //present, display nothing - UpdateDataL(); - } - else if(IsFocused()) - { - //1.This loop is executed,when the collection gets focus - //2.This loop is executed,when the contents are updated for this collection - //and this collection has focus,so 15 thumbnails are fetched. - HandleItemChanged(); - iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); - RemoveContextAndObserver(); - AddContextAndObserverL(); - } - else - { - //1.This loop is executed,when the contents are updated for this collection - //and this collection doesn't have the focus,so only one thumbnail is fetched. - - //here we need to fetch only one item - //1.if the content is deleted,then creating a context doesn't fetch the attributes - //2.if the content is added and the content is not the latest as per the sorted order of the - // media list,then the thumbnails are not fetched. - // so show the first available thumbnail in the media list. - - HandleItemChanged(); - UpdateDataL(); - - //Adding the context doesn't gaurantee we get a call back for - //Handle attributes available,if the latest item is already fetched. - //and for the content added for this collection,if it is not latest - //we will not recieve the attributes .so show the first available thumbnail - //in the media list.if there is any new latest content added,the thumbnail will be - //fetched and shown. - - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - RemoveContextAndObserver(); - AddContextAndObserverL(); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::AddContextAndObserverL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::AddContextAndObserverL() - { - TRACER( "CGlxContentHarvesterPluginCaptured::AddContextAndObserverL" ); - if(iMediaList) - { - iMediaList->AddMediaListObserverL( this ); - iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal); - iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::RemoveContextAndObserver -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::RemoveContextAndObserver() - { - TRACER( "CGlxContentHarvesterPluginCaptured::RemoveContextAndObserver" ); - if(iMediaList) - { - iMediaList->RemoveMediaListObserver( this ); - iMediaList->RemoveContext(iUriAttributeContext); - iMediaList->RemoveContext(iThumbnailAttributeContext); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::HandleError -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginCaptured::HandleError(TInt /*aError*/) - { - TRACER( "CGlxContentHarvesterPluginCaptured::HandleError" ); - -#ifdef _DEBUG - if(iMediaList) - { - TInt count=iMediaList->Count(); - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleError,count=%d",count); - for ( TInt i = 0; i < count ; i++ ) - { - const TGlxMedia& item = iMediaList->Item( i ); - TInt thumbnailError = GlxErrorManager::HasAttributeErrorL( - item.Properties(), KGlxMediaIdThumbnail ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleError,Error=%d ",thumbnailError); - - } - } -#endif - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginCaptured::Count -// --------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginCaptured::Count() - { - TRACER( "CGlxContentHarvesterPluginCaptured::Count" ); - TInt count = KErrNone; - if(iMediaList) - { - count = iMediaList->Count(); - GLX_LOG_INFO1("GlxCHP:Captured::Count(%d)",count); - } - return count; - } -// End of File - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/src/glxcontentharvesterplugindownloads.cpp --- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugindownloads.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,618 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Updates CPS storage for downloads collection - * - */ - -// INCLUDE FILES - -#include -#include - -#include -#include // Glx Icons -#include -#include // for KGlxMediaIdThumbnail -#include -#include -#include -#include // For Log -#include // for MGlxMediaList -#include -#include // for KGlxGalleryApplicationUid -#include -#include - -#include "glxcontentharvesterplugindownloads.h" -#include "glxcontentharvesterplugin.hrh" -#include "glxmapconstants.h" - - - - -// ============================ MEMBER FUNCTIONS ============================== -LOCAL_C TInt TimerCallbackL( TAny* aPtr ) - { - TRACER( "CGlxContentHarvesterPluginDownloads::TimerCallbackL" ); - static_cast(aPtr)->UpdateDataL(); - return KErrNone; - } - -// ---------------------------------------------------------------------------- -// Constructor -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginDownloads::CGlxContentHarvesterPluginDownloads( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin *aCHplugin ) - - { - TRACER( "CGlxContentHarvesterPluginDownloads::CGlxContentHarvesterPluginDownloads" ); - iCPSInterface = aCPSInterface; - SetCHPlugin(aCHplugin); - } - -// ---------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::ConstructL() - { - TRACER( "CGlxContentHarvesterPluginDownloads::ConstructL" ); - - //Call the base class ConstructL,to create the default thumbnail - CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated); - - iPeriodic = CPeriodic::NewL( CActive::EPriorityLow ); - - iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - - //Register/Subscribe with matrix menu for the notifications - GetInterfaceForNotificationL(); - SetupPublisherL(KItemIndexDownloads); - RequestCpsNotificationL(KItemIndexDownloads); - HandleStateChangeL(KItemIndexDownloads); - } - -// ---------------------------------------------------------------------------- -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginDownloads* CGlxContentHarvesterPluginDownloads::NewLC( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin *aCHplugin ) - { - TRACER( "CGlxContentHarvesterPluginDownloads::NewL" ); - CGlxContentHarvesterPluginDownloads* self = new ( ELeave ) CGlxContentHarvesterPluginDownloads( aCPSInterface,aCHplugin ); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginDownloads::~CGlxContentHarvesterPluginDownloads() - { - TRACER( "CGlxContentHarvesterPluginDownloads::~CGlxContentHarvesterPluginDownloads" ); - - DestroyMedialist(); - if ( iPeriodic ) - { - iPeriodic->Cancel(); - } - delete iPeriodic; - - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::UpdateDataL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::UpdateDataL() - { - TRACER( "CGlxContentHarvesterPluginDownloads::UpdateDataL" ); - - if (!iMediaList) - { - return; - } - - if (iMediaList->Count() && iPreviewItemCount.Count()) - { - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::UpdateDataL(),iProgressIndex=%d",iProgressIndex); - TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]); - if(ret != KErrNotFound) - { - //Updates the thumbnail in the collection - UpdateDataInCPSL(ret); - } - else - { - UpdateDataInCPSL(GetBitmapHandle()); - } - } - else - { - // Show previous thumbnail until the new thumbnail is - // fecthed.Added this check to avoid flicker - if(iMediaList->Count() == 0) - { - //Don't Show the Thumbnail/Show nothing - GLX_LOG_INFO("CGlxContentHarvesterPluginDownloads::UpdateDataL() --O"); - UpdateDataInCPSL(GetBitmapHandle()); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleNotifyL() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginDownloads::HandleNotifyL( - TInt /* aCmdId*/, - TInt/* aEventId */, - CLiwGenericParamList& /*aEventParamList*/, - const CLiwGenericParamList& /*aInParamList*/ ) - { - TRACER( "CGlxContentHarvesterPluginDownloads::HandleNotifyL" ); - HandleStateChangeL(KItemIndexDownloads); - return KErrNone; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleItemChanged() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::HandleItemChanged() - { - TRACER("CGlxContentHarvesterPluginDownloads::HandleItemChanged"); - - iProgressIndex = 0; - iPreviewItemCount.Reset(); - - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - if(iMediaList) - { - - TInt count = iMediaList->Count(); - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads:: HandleItemChanged ,count=%d",count); - - TBool inFocus = IsFocused(); - for(TInt aItemIndex = 0; aItemIndex < count; aItemIndex++) - { - const TGlxMedia& item = iMediaList->Item( aItemIndex ); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - iPreviewItemCount.InsertInOrder(aItemIndex); - if(!inFocus) - { - //if the collection is not in Focus,retrive only one thumbnail and break - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleItemChanged,Range=1,aItemIndex=%d",aItemIndex); - break; - } - else if(iPreviewItemCount.Count() == KPreviewThumbnailFetchCount || - iPreviewItemCount.Count() == count ) - { - //if the collection is not in Focus,retrive 15 thumbnail and break - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleItemChanged,Range=15,aItemIndex=%d",aItemIndex); - break; - } - - } - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::UpdateDataInCPSL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::UpdateDataInCPSL(TInt aHandle) - { - TRACER( "CGlxContentHarvesterPluginDownloads::UpdateDataInCPSL" ); - //update data in CPS - _LIT(KExamplePluginPub,"photossuite"); - _LIT(KContentActivation,"downloads"); - _LIT(KContId1,"category1"); - - if(iCPSInterface && iMediaList ) - { - CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC(); - CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC(); - - FillInputListWithDataL(inParamList, KExamplePluginPub, KContentActivation , - KContId1, aHandle); - - iCPSInterface->ExecuteCmdL( KAdd, *inParamList, *outParamList ); - CleanupStack::PopAndDestroy(outParamList); - CleanupStack::PopAndDestroy(inParamList); - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::UpdateItem() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginDownloads::UpdateItem(TInt aItemIndex) - { - TRACER( "CGlxContentHarvesterPluginDownloads::UpdateItem" ); - const TGlxMedia& item = iMediaList->Item(aItemIndex); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::UpdateItem,aItemIndex=%d ",aItemIndex); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::UpdateItem,iProgressIndex=%d ",iProgressIndex); - iProgressIndex++; - if (iProgressIndex >= KPreviewThumbnailFetchCount || - iProgressIndex >= iPreviewItemCount.Count() || - iProgressIndex >= iMediaList->Count()) - { - iProgressIndex = 0; - } - return value->iBitmap->Handle(); - } - return KErrNotFound; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::ActivateL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::ActivateL( TBool aOn ) - { - TRACER( "CGlxContentHarvesterPluginDownloads::ActivateL" ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::ActivateL aOn =%d",aOn); - SetFocus(aOn); - - if (IsMatrixMenuInForegroundL() && aOn && !iPeriodic->IsActive() ) - { - - if(GetCHPlugin()->IsRefreshNeeded()) - { - //Update the rest of all the collections on receving the focus... - GetCHPlugin()->UpdatePlugins(aOn); - } - else - { - //As the collection is not updated by the contentharvester plugin - //to update the thumbnails on the focus , need to call the below function - UpdatePreviewThumbnailListL(); - } - - iPeriodic->Start( KTimerInterval, - KTimerInterval, - TCallBack( TimerCallbackL, this ) ); - } - else if ( !aOn ) - { - if(!IsMatrixMenuInForegroundL()) - { - //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode... - //Need to destroy all the collection's observers and context - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::ActivateL !aOn =%d and matrix not in foreground",aOn); - GetCHPlugin()->UpdatePlugins(aOn); - } - iPeriodic->Cancel(); - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleItemAddedL -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginDownloads::HandleItemAddedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleMediaL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::HandleMediaL(TInt /*aListIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginDownloads::HandleMediaL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleItemRemovedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::HandleItemRemovedL(TInt /*aStartIndex*/, - TInt /* aEndIndex */, MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginDownloads::HandleItemRemovedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleItemModifiedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::HandleItemModifiedL( - const RArray& /*aItemIndexes*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginDownloads::HandleItemModifiedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL(TInt aItemIndex, - const RArray& aAttributes, MGlxMediaList* aList) - { - TRACER( "CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL" ); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - - TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL =%d ",aItemIndex); - if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match )) - { - const TGlxMedia& item = aList->Item( aItemIndex ); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL Thumbnail is present "); - iPreviewItemCount.InsertInOrder(aItemIndex); - - //if the collection on the matrix menu is not focused,then show only one thumbnail - if(!IsFocused()) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL,one thumbnail fetched"); - UpdateDataInCPSL( value->iBitmap->Handle()); - //if one thumbnail is fetched,it is sufficent when the collection is not in focus. - //remove the observer as client need not listen to the callbacks - iMediaList->RemoveMediaListObserver( this ); - } - else if (iPreviewItemCount.Count() == KPreviewThumbnailFetchCount || - iPreviewItemCount.Count() == aList->Count() ) - { - //if the PreviewItemCount equals 15 or if it is eqaul to the total count - //remove the observer as client need not listen to the callbacks - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL,media list count=%d",aList->Count()); - iMediaList->RemoveMediaListObserver( this ); - } - }//end of check against value - }//end of attribute match - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleFocusChangedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::HandleFocusChangedL( - NGlxListDefs::TFocusChangeType /*aType*/, - TInt /*aNewIndex*/, - TInt /*aOldIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginDownloads::HandleFocusChangedL" ); - } - - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleItemSelectedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::HandleItemSelectedL(TInt /*aIndex*/, - TBool /*aSelected*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginDownloads::HandleItemSelectedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleMessageL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::HandleMessageL(const CMPXMessage& /*aMessage*/, - MGlxMediaList* /*aList*/) - { - // Do nothing - TRACER( "CGlxContentHarvesterPluginDownloads::HandleMessageL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::DestroyMedialistL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::DestroyMedialist() - { - TRACER( "CGlxContentHarvesterPluginDownloads::DestroyMedialist" ); - if( iMediaList ) - { - RemoveContextAndObserver(); - - delete iUriAttributeContext; - iUriAttributeContext = NULL; - delete iThumbnailAttributeContext; - iThumbnailAttributeContext = NULL; - - iMediaList->Close(); - iMediaList = NULL; - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::CreateMedialistL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::CreateMedialistL( ) - { - TRACER( "CGlxContentHarvesterPluginDownloads::CreateMedialistL" ); - if(!iMediaList) - { - //if the collection is in focus then , create media list with context of 15 items else - // with context of single item. - if(IsFocused()) - { - iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); - } - else - { - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - } - - iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( - KGlxCollectionPluginDownloadsImplementationUid ), - iUriAttributeContext,iThumbnailAttributeContext); - - AddContextAndObserverL(); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::UpdatePreviewThumbnailListL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::UpdatePreviewThumbnailListL( ) - { - TRACER( "CGlxContentHarvesterPluginDownloads::UpdatePreviewThumbnailListL" ); - - //when there is an update of content in the collection - //this function is executed or when the collection recives the focus. - if(!iMediaList) - { - //medis list is not created yet,create it. - CreateMedialistL( ); - //This is called to show the preview thumbnails. If no thumbnails are - //present, display nothing - UpdateDataL(); - } - else if(IsFocused()) - { - //1.This loop is executed,when the collection gets focus - //2.This loop is executed,when the contents are updated for this collection - //and this collection has focus,so 15 thumbnails are fetched. - HandleItemChanged(); - iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); - RemoveContextAndObserver(); - AddContextAndObserverL(); - } - else - { - //1.This loop is executed,when the contents are updated for this collection - //and this collection doesn't have the focus,so only one thumbnail is fetched. - - //here we need to fetch only one item - //1.if the content is deleted,then creating a context doesn't fetch the attributes - //2.if the content is added and the content is not the latest as per the sorted order of the - // media list,then the thumbnails are not fetched. - // so show the first available thumbnail in the media list. - - HandleItemChanged(); - UpdateDataL(); - - //Adding the context doesn't gaurantee we get a call back for - //Handle attributes available,if the latest item is already fetched. - //and for the content added for this collection,if it is not latest - //we will not recieve the attributes .so show the first available thumbnail - //in the media list.if there is any new latest content added,the thumbnail will be - //fetched and shown. - - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - RemoveContextAndObserver(); - AddContextAndObserverL(); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::AddContextAndObserverL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::AddContextAndObserverL() - { - TRACER( "CGlxContentHarvesterPluginDownloads::AddRemoveContextAndObserverL" ); - if(iMediaList) - { - iMediaList->AddMediaListObserverL( this ); - iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal); - iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::RemoveContextAndObserver -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::RemoveContextAndObserver() - { - TRACER( "CGlxContentHarvesterPluginDownloads::RemoveContextAndObserver" ); - if(iMediaList) - { - iMediaList->RemoveMediaListObserver( this ); - iMediaList->RemoveContext(iUriAttributeContext); - iMediaList->RemoveContext(iThumbnailAttributeContext); - } - } - - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::HandleError -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginDownloads::HandleError(TInt /*aError*/) - { - TRACER( "CGlxContentHarvesterPluginDownloads::HandleError" ); - -#ifdef _DEBUG - if(iMediaList) - { - TInt count=iMediaList->Count(); - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleError,count=%d",count); - for ( TInt i = 0; i < count ; i++ ) - { - const TGlxMedia& item = iMediaList->Item( i ); - TInt thumbnailError = GlxErrorManager::HasAttributeErrorL( - item.Properties(), KGlxMediaIdThumbnail ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleError,Error=%d ",thumbnailError); - - } - } -#endif - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginDownloads::Count -// --------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginDownloads::Count() - { - TRACER( "CGlxContentHarvesterPluginDownloads::Count" ); - TInt count = KErrNone; - if(iMediaList) - { - count = iMediaList->Count(); - GLX_LOG_INFO1("GlxCHP:Downloads::Count(%d)",count); - } - return count; - } -// End of File - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginmonths.cpp --- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginmonths.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,503 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Updates CPS storage for months collection - * - */ - -// INCLUDE FILES - -#include -#include - -#include -#include // Glx Icons -#include -#include // for KGlxMediaIdThumbnail -#include -#include - -#include -#include -#include // for MGlxMediaList -#include -#include // for KGlxGalleryApplicationUid -#include -#include - -#include "glxcontentharvesterpluginmonths.h" -#include "glxcontentharvesterplugin.hrh" -#include "glxmapconstants.h" - - -// ============================ MEMBER FUNCTIONS ============================== - -// ---------------------------------------------------------------------------- -// Constructor -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginMonths::CGlxContentHarvesterPluginMonths( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin *aCHplugin ) - - { - TRACER( "CGlxContentHarvesterPluginMonths::CGlxContentHarvesterPluginMonths" ); - iCPSInterface = aCPSInterface; - SetCHPlugin(aCHplugin); - } - -// ---------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::ConstructL() - { - TRACER( "CGlxContentHarvesterPluginMonths::ConstructL" ); - - //Call the base class ConstructL to create default bitmap - CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated); - - iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - - //Register/Subscribe with matrix menu for the notifications - GetInterfaceForNotificationL(); - SetupPublisherL(KItemIndexMonths); - RequestCpsNotificationL(KItemIndexMonths); - HandleStateChangeL(KItemIndexMonths); - } - -// ---------------------------------------------------------------------------- -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginMonths* CGlxContentHarvesterPluginMonths::NewLC( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin *aCHplugin ) - { - TRACER( "CGlxContentHarvesterPluginMonths::NewL" ); - CGlxContentHarvesterPluginMonths* self = new ( ELeave ) CGlxContentHarvesterPluginMonths( aCPSInterface,aCHplugin ); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginMonths::~CGlxContentHarvesterPluginMonths() - { - TRACER( "CGlxContentHarvesterPluginMonths::~CGlxContentHarvesterPluginMonths" ); - DestroyMedialist(); - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::UpdateDataL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::UpdateDataL() - { - TRACER( "CGlxContentHarvesterPluginMonths::UpdateDataL" ); - - if (!iMediaList) - { - return; - } - - if (iMediaList->Count()) - { - TInt ret = UpdateItem(KPreviewItemIndex); - if(ret != KErrNotFound) - { - //Updates the thumbnail in the collection - UpdateDataInCPSL(ret); - } - } - else - { - // Show previous thumbnail until the new thumbnail is - // fecthed.Added this check to avoid flicker - if(!GetCHPlugin()->IsRefreshNeeded() || (iMediaList->Count() == 0)) - { - //Don't Show the Thumbnail/Show nothing - GLX_LOG_INFO("CGlxContentHarvesterPluginMonths::UpdateDataL() --O"); - UpdateDataInCPSL(GetBitmapHandle()); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::HandleNotifyL() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginMonths::HandleNotifyL( - TInt /* aCmdId*/, - TInt/* aEventId */, - CLiwGenericParamList& /*aEventParamList*/, - const CLiwGenericParamList& /*aInParamList*/ ) - { - TRACER( "CGlxContentHarvesterPluginMonths::HandleNotifyL" ); - HandleStateChangeL(KItemIndexMonths); - return KErrNone; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::UpdateDataInCPSL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::UpdateDataInCPSL(TInt aHandle) - { - TRACER( "CGlxContentHarvesterPluginMonths::UpdateDataInCPSL" ); - //update data in CPS - _LIT(KExamplePluginPub,"photossuite"); - _LIT(KContTypeText,"months"); - _LIT(KContId1,"category1"); - - if(iCPSInterface && iMediaList ) - { - CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC(); - CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC(); - - FillInputListWithDataL(inParamList, KExamplePluginPub, KContTypeText , - KContId1, aHandle); - - iCPSInterface->ExecuteCmdL( KAdd, *inParamList, *outParamList ); - CleanupStack::PopAndDestroy(outParamList); - CleanupStack::PopAndDestroy(inParamList); - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::UpdateItem() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginMonths::UpdateItem(TInt aItemIndex) - { - TRACER( "CGlxContentHarvesterPluginMonths::UpdateItem" ); - const TGlxMedia& item = iMediaList->Item(aItemIndex); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::UpdateItem,aItemIndex=%d ",aItemIndex); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - return value->iBitmap->Handle(); - } - return KErrNotFound; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::ActivateL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::ActivateL( TBool aOn ) - { - TRACER( "CGlxContentHarvesterPluginMonths::ActivateL" ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::ActivateL aOn =%d",aOn); - SetFocus(aOn); - - if (IsMatrixMenuInForegroundL() && aOn ) - { - if(GetCHPlugin()->IsRefreshNeeded()) - { - //Update the rest of all the collections on receving the focus... - GetCHPlugin()->UpdatePlugins(aOn); - } - else - { - //As the collection is not updated by the contentharvester plugin - //to update the thumbnails on the focus , need to call the below function - UpdatePreviewThumbnailListL(); - } - } - else if ( !aOn ) - { - if(!IsMatrixMenuInForegroundL()) - { - //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode... - //Need to destroy all the collection's observers and context - GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::ActivateL !aOn =%d and matrix not in foreground",aOn); - GetCHPlugin()->UpdatePlugins(aOn); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::HandleItemAddedL -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginMonths::HandleItemAddedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::HandleMediaL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::HandleMediaL(TInt /*aListIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginMonths::HandleMediaL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::HandleItemRemovedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::HandleItemRemovedL(TInt /*aStartIndex*/, - TInt /* aEndIndex */, MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginMonths::HandleItemRemovedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::HandleItemModifiedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::HandleItemModifiedL( - const RArray& /*aItemIndexes*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginMonths::HandleItemModifiedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL(TInt aItemIndex, - const RArray& aAttributes, MGlxMediaList* aList) - { - TRACER( "CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL" ); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - - TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL =%d ",aItemIndex); - if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match )) - { - const TGlxMedia& item = aList->Item( aItemIndex ); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL Thumbnail is present "); - - // Update the preview thumbnail - //remove the observer as client need not listen to the callbacks - GLX_LOG_INFO("CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL,one thumbnail fetched"); - UpdateDataInCPSL( value->iBitmap->Handle()); - iMediaList->RemoveMediaListObserver( this ); - }//end of check against value - }//end of attribute match - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::HandleFocusChangedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::HandleFocusChangedL( - NGlxListDefs::TFocusChangeType /*aType*/, - TInt /*aNewIndex*/, - TInt /*aOldIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginMonths::HandleFocusChangedL" ); - } - - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::HandleItemSelectedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::HandleItemSelectedL(TInt /*aIndex*/, - TBool /*aSelected*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginMonths::HandleItemSelectedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::HandleMessageL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::HandleMessageL(const CMPXMessage& /*aMessage*/, - MGlxMediaList* /*aList*/) - { - // Do nothing - TRACER( "CGlxContentHarvesterPluginMonths::HandleMessageL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::DestroyMedialist -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::DestroyMedialist() - { - TRACER( "CGlxContentHarvesterPluginMonths::DestroyMedialist" ); - if( iMediaList ) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginMonths::DestroyMedialist,media list deleted"); - RemoveContextAndObserver(); - - delete iUriAttributeContext; - iUriAttributeContext = NULL; - delete iThumbnailAttributeContext; - iThumbnailAttributeContext = NULL; - - iMediaList->Close(); - iMediaList = NULL; - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::CreateMedialistL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::CreateMedialistL( ) - { - TRACER( "CGlxContentHarvesterPluginMonths::CreateMedialistL" ); - if(!iMediaList) - { - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - - iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( - KGlxCollectionPluginMonthsImplementationUid ), - iUriAttributeContext,iThumbnailAttributeContext); - AddContextAndObserverL(); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::UpdatePreviewThumbnailListL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::UpdatePreviewThumbnailListL( ) - { - TRACER( "CGlxContentHarvesterPluginMonths::UpdatePreviewThumbnailListL" ); - - //when there is an update of content in the collection - //this function is executed or when the collection recives the focus. - if(!iMediaList) - { - //media list is not created yet,create it. - CreateMedialistL( ); - UpdateDataL(); - } - else - { - if(GetCHPlugin()->IsRefreshNeeded()) - { - ContainerCacheCleanupL(iMediaList); - } - - //1.if the content is deleted,then creating a context doesn't fetch the attributes - //2.if the content is added and the content is not the latest as per the sorted order of the - // media list,then the thumbnails are not fetched. - // so show the first available thumbnail in the media list. - - UpdateDataL(); - - //Adding the context doesn't gaurantee we get a call back for - //Handle attributes available,if the latest item is already fetched. - //and for the content added for this collection,if it is not latest - //we will not recieve the attributes .so show the first available thumbnail - //in the media list.if there is any new latest content added,the thumbnail will be - //fetched and shown. - - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - RemoveContextAndObserver(); - AddContextAndObserverL(); - } - - } - - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::AddContextAndObserverL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::AddContextAndObserverL() - { - TRACER( "CGlxContentHarvesterPluginMonths::AddRemoveContextAndObserverL" ); - if(iMediaList) - { - iMediaList->AddMediaListObserverL( this ); - iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal); - iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginAlbums::RemoveContextAndObserver -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::RemoveContextAndObserver() - { - TRACER( "CGlxContentHarvesterPluginMonths::RemoveContextAndObserver" ); - if(iMediaList) - { - iMediaList->RemoveMediaListObserver( this ); - iMediaList->RemoveContext(iUriAttributeContext); - iMediaList->RemoveContext(iThumbnailAttributeContext); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::HandleError -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginMonths::HandleError(TInt /*aError*/) - { - TRACER( "CGlxContentHarvesterPluginMonths::HandleError" ); - -#ifdef _DEBUG - if(iMediaList) - { - TInt count=iMediaList->Count(); - GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::HandleError,count=%d",count); - for ( TInt i = 0; i < count ; i++ ) - { - const TGlxMedia& item = iMediaList->Item( i ); - TInt thumbnailError = GlxErrorManager::HasAttributeErrorL( - item.Properties(), KGlxMediaIdThumbnail ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::HandleError,Error=%d ",thumbnailError); - - } - } -#endif - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginMonths::Count -// --------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginMonths::Count() - { - TRACER( "CGlxContentHarvesterPluginMonths::Count" ); - TInt count = KErrNone; - if(iMediaList) - { - count = iMediaList->Count(); - GLX_LOG_INFO1("GlxCHP:Months::Count(%d)",count); - } - return count; - } -// End of File - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginproxy.cpp --- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginproxy.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: A Proxy file. -* -*/ - - - - -// INCLUDE FILES - -#include - -#include "glxcontentharvesterplugin.h" -#include "glxcontentharvesterplugin.hrh" - - -#if (!defined IMPLEMENTATION_PROXY_ENTRY) - typedef TAny* TProxyNewLPtr; -#define IMPLEMENTATION_PROXY_ENTRY( aUid, aFuncPtr ) - { { aUid },( TProxyNewLPtr )( aFuncPtr ) } -#endif - -// ---------------------------------------------------------------------------- -// Map the interface UIDs to the implementation -// ---------------------------------------------------------------------------- -// -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY( KGlxCHPluginImplUid, CGlxContentHarvesterPlugin::NewL) - }; - -// ---------------------------------------------------------------------------- -// ImplementationGroupProxy -// Exported proxy for instantiation method resolution -// ---------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* -ImplementationGroupProxy(TInt& aTableCount) - { - - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); - - return ImplementationTable; - } - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/contentharvesterplugin/src/glxcontentharvesterplugintags.cpp --- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugintags.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,505 +0,0 @@ -/* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Updates CPS storage for all collection - * - */ - -// INCLUDE FILES - -#include -#include - -#include -#include // Glx Icons -#include -#include // for KGlxMediaIdThumbnail -#include -#include -#include -#include -#include // for MGlxMediaList -#include -#include // for KGlxGalleryApplicationUid -#include -#include - -#include "glxcontentharvesterplugintags.h" -#include "glxcontentharvesterplugin.hrh" -#include "glxmapconstants.h" - - -// ============================ MEMBER FUNCTIONS ============================== - -// ---------------------------------------------------------------------------- -// Constructor -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginTags::CGlxContentHarvesterPluginTags( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ) - - { - TRACER( "CGlxContentHarvesterPluginTags::CGlxContentHarvesterPluginTags" ); - iCPSInterface = aCPSInterface; - SetCHPlugin(aCHplugin); - } - -// ---------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::ConstructL() - { - TRACER( "CGlxContentHarvesterPluginTags::ConstructL" ); - - //Call the base class ConstructL to create default bitmap - CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated); - - iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); - - //Register/Subscribe with matrix menu for the notifications - GetInterfaceForNotificationL(); - SetupPublisherL(KItemIndexTags); - RequestCpsNotificationL(KItemIndexTags); - HandleStateChangeL(KItemIndexTags); - } - -// ---------------------------------------------------------------------------- -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginTags* CGlxContentHarvesterPluginTags::NewLC( - MLiwInterface* aCPSInterface, - MGlxContentHarvesterPlugin* aCHplugin ) - { - TRACER( "CGlxContentHarvesterPluginTags::NewL" ); - CGlxContentHarvesterPluginTags* self = new ( ELeave )CGlxContentHarvesterPluginTags( aCPSInterface,aCHplugin ); - - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxContentHarvesterPluginTags::~CGlxContentHarvesterPluginTags() - { - TRACER( "CGlxContentHarvesterPluginTags::~CGlxContentHarvesterPluginTags" ); - - DestroyMedialist(); - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::UpdateDataL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::UpdateDataL() - { - TRACER( "CGlxContentHarvesterPluginTags::UpdateDataL" ); - - if (!iMediaList) - { - return; - } - - if (iMediaList->Count()) - { - TInt ret = UpdateItem(KPreviewItemIndex); - if (ret != KErrNotFound) - { - //Updates the thumbnail in the collection - UpdateDataInCPSL(ret); - } - } - else - { - // Show previous thumbnail until the new thumbnail is - // fecthed.Added this check to avoid flicker - if (!GetCHPlugin()->IsRefreshNeeded() || (iMediaList->Count() == 0)) - { - //Don't Show the Thumbnail/Show nothing - GLX_LOG_INFO("CGlxContentHarvesterPluginTags::UpdateDataL() --O"); - UpdateDataInCPSL(GetBitmapHandle()); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::HandleNotifyL() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginTags::HandleNotifyL( - TInt /* aCmdId*/, - TInt/* aEventId */, - CLiwGenericParamList& /*aEventParamList*/, - const CLiwGenericParamList& /*aInParamList*/ ) - { - TRACER( "CGlxContentHarvesterPluginTags::HandleNotifyL" ); - HandleStateChangeL(KItemIndexTags); - return KErrNone; - } - - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::UpdateDataInCPSL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::UpdateDataInCPSL(TInt aHandle) - { - TRACER( "CGlxContentHarvesterPluginTags::UpdateDataInCPSL" ); - //update data in CPS - _LIT(KExamplePluginPub,"photossuite"); - _LIT(KContTypeText,"tags"); - _LIT(KContId1,"category1"); - - if(iCPSInterface && iMediaList ) - { - CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC(); - CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC(); - - FillInputListWithDataL(inParamList, KExamplePluginPub, KContTypeText , - KContId1, aHandle); - - iCPSInterface->ExecuteCmdL( KAdd, *inParamList, *outParamList ); - CleanupStack::PopAndDestroy(outParamList); - CleanupStack::PopAndDestroy(inParamList); - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::UpdateItem() -// ---------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginTags::UpdateItem(TInt aItemIndex) - { - TRACER( "CGlxContentHarvesterPluginTags::UpdateItem" ); - const TGlxMedia& item = iMediaList->Item(aItemIndex); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::UpdateItem,aItemIndex=%d ",aItemIndex); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - return value->iBitmap->Handle(); - } - return KErrNotFound; - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::ActivateL() -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::ActivateL( TBool aOn ) - { - TRACER( "CGlxContentHarvesterPluginTags::ActivateL" ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::ActivateL aOn =%d",aOn); - SetFocus(aOn); - - if (IsMatrixMenuInForegroundL() && aOn ) - { - if(GetCHPlugin()->IsRefreshNeeded()) - { - //Update the rest of all the collections on receving the focus... - GetCHPlugin()->UpdatePlugins(aOn); - } - else - { - //As the collection is not updated by the contentharvester plugin - //to update the thumbnails on the focus , need to call the below function - UpdatePreviewThumbnailListL(); - } - } - else if ( !aOn ) - { - if(!IsMatrixMenuInForegroundL()) - { - //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode... - //Need to destroy all the collection's observers and context - GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::ActivateL !aOn =%d and matrix not in foreground",aOn); - GetCHPlugin()->UpdatePlugins(aOn); - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::HandleItemAddedL -// ---------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginTags::HandleItemAddedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::HandleMediaL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::HandleMediaL(TInt /*aListIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginTags::HandleMediaL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::HandleItemRemovedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::HandleItemRemovedL(TInt /*aStartIndex*/, - TInt /* aEndIndex */, MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginTags::HandleItemRemovedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::HandleItemModifiedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::HandleItemModifiedL( - const RArray& /*aItemIndexes*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginTags::HandleItemModifiedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::HandleAttributesAvailableL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::HandleAttributesAvailableL(TInt aItemIndex, - const RArray& aAttributes, MGlxMediaList* aList) - { - TRACER( "CGlxContentHarvesterPluginTags::HandleAttributesAvailableL" ); - TSize gridIconSize = GetGridIconSize(); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, gridIconSize.iWidth, gridIconSize.iHeight ) ); - - TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match ); - - GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::HandleAttributesAvailableL =%d ",aItemIndex); - if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match )) - { - const TGlxMedia& item = aList->Item( aItemIndex ); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); - if (value) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginTags::HandleAttributesAvailableL Thumbnail is present "); - - // Update the preview thumbnail - //remove the observer as client need not listen to the callbacks - GLX_LOG_INFO("CGlxContentHarvesterPluginTags::HandleAttributesAvailableL,one thumbnail fetched"); - UpdateDataInCPSL( value->iBitmap->Handle()); - iMediaList->RemoveMediaListObserver( this ); - }//end of check against value - }//end of attribute match - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::HandleFocusChangedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::HandleFocusChangedL( - NGlxListDefs::TFocusChangeType /*aType*/, - TInt /*aNewIndex*/, - TInt /*aOldIndex*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginTags::HandleFocusChangedL" ); - } - - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::HandleItemSelectedL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::HandleItemSelectedL(TInt /*aIndex*/, - TBool /*aSelected*/, - MGlxMediaList* /*aList*/) - { - TRACER( "CGlxContentHarvesterPluginTags::HandleItemSelectedL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::HandleMessageL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::HandleMessageL(const CMPXMessage& /*aMessage*/, - MGlxMediaList* /*aList*/) - { - // Do nothing - TRACER( "CGlxContentHarvesterPluginTags::HandleMessageL" ); - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::DestroyMedialist -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::DestroyMedialist() - { - TRACER( "CGlxContentHarvesterPluginTags::DestroyMedialist" ); - if( iMediaList ) - { - GLX_LOG_INFO("CGlxContentHarvesterPluginTags::DestroyMedialist,media list deleted"); - RemoveContextAndObserver(); - - delete iUriAttributeContext; - iUriAttributeContext = NULL; - delete iThumbnailAttributeContext; - iThumbnailAttributeContext = NULL; - - iMediaList->Close(); - iMediaList = NULL; - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::CreateMedialistL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::CreateMedialistL( ) - { - TRACER( "CGlxContentHarvesterPluginTags::CreateMedialistL" ); - if(!iMediaList) - { - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - - iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( - KGlxTagCollectionPluginImplementationUid ), - iUriAttributeContext, iThumbnailAttributeContext); - - AddContextAndObserverL(); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::UpdatePreviewThumbnailListL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::UpdatePreviewThumbnailListL( ) - { - TRACER( "CGlxContentHarvesterPluginTags::UpdatePreviewThumbnailListL" ); - - //when there is an update of content in the collection - //this function is executed or when the collection recives the focus. - if(!iMediaList) - { - //media list is not created yet,create it. - CreateMedialistL( ); - UpdateDataL(); - } - else - { - if(GetCHPlugin()->IsRefreshNeeded()) - { - ContainerCacheCleanupL(iMediaList); - } - - //1.if the content is deleted,then creating a context doesn't fetch the attributes - //2.if the content is added and the content is not the latest as per the sorted order of the - // media list,then the thumbnails are not fetched. - // so show the first available thumbnail in the media list. - - UpdateDataL(); - - //Adding the context doesn't gaurantee we get a call back for - //Handle attributes available,if the latest item is already fetched. - //and for the content added for this collection,if it is not latest - //we will not recieve the attributes .so show the first available thumbnail - //in the media list.if there is any new latest content added,the thumbnail will be - //fetched and shown. - - iThumbnailIterator.SetRange( KSinglePreviewThumbnail ); - RemoveContextAndObserver(); - AddContextAndObserverL(); - } - - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::AddContextAndObserverL -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::AddContextAndObserverL() - { - TRACER( "CGlxContentHarvesterPluginTags::AddRemoveContextAndObserverL" ); - if(iMediaList) - { - iMediaList->AddMediaListObserverL( this ); - iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal); - iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::RemoveContextAndObserver -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::RemoveContextAndObserver() - { - TRACER( "CGlxContentHarvesterPluginTags::RemoveContextAndObserver" ); - if(iMediaList) - { - iMediaList->RemoveMediaListObserver( this ); - iMediaList->RemoveContext(iUriAttributeContext); - iMediaList->RemoveContext(iThumbnailAttributeContext); - } - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::HandleError -// --------------------------------------------------------------------------- -// -void CGlxContentHarvesterPluginTags::HandleError(TInt /*aError*/) - { - TRACER( "CGlxContentHarvesterPluginTags::HandleError" ); - -#ifdef _DEBUG - if(iMediaList) - { - TInt count=iMediaList->Count(); - GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::HandleError,count=%d",count); - for ( TInt i = 0; i < count ; i++ ) - { - const TGlxMedia& item = iMediaList->Item( i ); - TInt thumbnailError = GlxErrorManager::HasAttributeErrorL( - item.Properties(), KGlxMediaIdThumbnail ); - GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::HandleError,Error=%d ",thumbnailError); - - } - } -#endif - } - -// --------------------------------------------------------------------------- -// CGlxContentHarvesterPluginTags::Count -// --------------------------------------------------------------------------- -// -TInt CGlxContentHarvesterPluginTags::Count() - { - TRACER( "CGlxContentHarvesterPluginTags::Count" ); - TInt count = KErrNone; - if(iMediaList) - { - count = iMediaList->Count(); - GLX_LOG_INFO1("GlxCHP:Tags::Count(%d)",count); - } - return count; - } -// End of File - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp --- a/photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -400,7 +400,7 @@ TMPXGeneralCategory cat = item.Category(); TBool checkViewRights = (cat==EMPXImage); - if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights)) + if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights)) { iHgGrid->ItemL(aIndex).SetFlags( CHgItem::EHgItemFlagsDrmRightsValid); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/gallery/loc/photos.loc --- a/photosgallery/gallery/loc/photos.loc Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/gallery/loc/photos.loc Wed Mar 31 21:31:03 2010 +0300 @@ -1018,6 +1018,11 @@ // #define qtn_lgal_options_sort "Sort by" +// d:Pop-up displayed when a large amount of images/videos are inserted into the device. +// l:popup_note_wait_window +// r:11.0 +#define qtn_lgal_refreshing_media_note "Refreshing your media" + //----------------------------------------------------------------------------- // single line metapane strings //----------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/gallery/rom/gallery.iby --- a/photosgallery/gallery/rom/gallery.iby Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: (ROM) Image description file for Media gallery -* -*/ - - - - -#ifndef GLX_IBY -#define GLX_IBY - -#include - -S60_APP_EXE( viewer.exe ) -// S60_APP_AIF_ICONS( ?myapp ) -// S60_APP_AIF_RSC( ?myapp ) -// SCALABLE_IMAGE( APP_BITMAP_DIR, APP_BITMAP_DIR, ?myapp ) - -// DLLs -// file=\epoc32\release\armv5\urel\viewer.exe sys\bin\viewer.exe -// ABI_DIR\BUILD_DIR\?myapp_engine_1.dll SHARED_LIB_DIR\?myapp_engine_1.dll -// file=ABI_DIR\BUILD_DIR\?myapp_engine_2.dll SHARED_LIB_DIR\?myapp_engine_2.dll - -// configuration files -// data=\epoc32\data\c\private\?uid3\?inifile.ini private\?uid3\?inifile.ini -// data=\epoc32\data\c\private\?uid3\?datafile.dat private\?uid3\?datafile.dat -// data=DATAZ_\RESOURCE_FILES_DIR\?myapp.rsc RESOURCE_FILES_DIR\?myapp.rsc -data=\epoc32\data\z\private\10003a3f\import\apps\Viewer_reg.rsc private\10003a3f\import\apps\Viewer_reg.rsc -data=DATAZ_\RESOURCE_FILES_DIR\Viewer_loc.Rsc RESOURCE_FILES_DIR\Viewer_loc.Rsc -data=DATAZ_\RESOURCE_FILES_DIR\Viewer.Rsc RESOURCE_FILES_DIR\Viewer.Rsc -//data=\epoc32\data\z\private\10003a3f\import\apps\Viewer_reg.rsc private\10003a3f\import\apps\Viewer_reg.rsc -//data=\epoc32\data\z\resource\apps\Viewer_loc.Rsc resource\apps\Viewer_loc.Rsc -//data=\epoc32\data\z\resource\apps\Viewer.Rsc resource\apps\Viewer.Rsc - -// AUTO-BITMAP must be used and only used for MBM-files for file -// compression. Example: -AUTO-BITMAP=ZSYSTEM\apps\?myapp\?myapp.mbm system\apps\?myapp\?myapp.mbm - -// ECOM plugin -// ECOM_PLUGIN( ?myplugin.dll, ?myplugin.rsc ) -// DLLs that are also part of the plugin -// file=ABI_DIR\BUILD_DIR\?myplugin_dll_1.dll SHARED_LIB_DIR\?myplugin_dll_1.dll -// file=ABI_DIR\BUILD_DIR\?myplugin_dll_2.dll SHARED_LIB_DIR\?myplugin_dll_2.dll - -// STUB_SIS File -data=ZSYSTEM\install\glxgallery_stub.SIS System\Install\glxgallery_stub.SIS -#endif // GLX_IBY diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/gallery/src/glxappui.cpp --- a/photosgallery/gallery/src/glxappui.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/gallery/src/glxappui.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -80,14 +80,6 @@ const TInt KGlxMemoryForOOMFwk = 1048576 ; // 1 MB const TInt KGlxThumbNailRepresentation = 2; // Thumbnail Representation; Could be 3 also -_LIT8( KPhotosCaptured, "Captured" ); -_LIT8( KPhotosMonths, "Months" ); -_LIT8( KPhotosTags, "Tags" ); -_LIT8( KPhotosAlbums, "Albums" ); -_LIT8( KPhotosAllValue,"Allcs"); - -const TInt KCapturedAlbumId = 2 ; - /** * Start Delay for the periodic timer, in microseconds */ @@ -221,27 +213,10 @@ { case KGlxActivationCmdShowLastModified: case KGlxActivationCameraAlbum: + case KGlxActivationCmdShowAll: HandleActivationMessageL(aMessageParameters); break; - case KGlxActivationPhotosMenu: - case KGlxActivationCameraView: - case KGlxActivationMonthsView: - case KGlxActivationAlbumsView: - case KGlxActivationTagsView: - case KGlxActivationAllView: - { - TApaTaskList taskList( iCoeEnv->WsSession() ); - TApaTask task = taskList.FindApp( TUid::Uid( KGlxGalleryApplicationUid ) ); - TApaTask taskForeGround = taskList.FindByPos(0); // get fopreground app - if ( task.Exists() && task.ThreadId() != taskForeGround.ThreadId() ) - { - // No matter which collection is selected, - // Photos is running in background, bring to foreground - iEikonEnv->RootWin().SetOrdinalPosition(0); - } - } - break; default: //To prevent Continues Activation of the Same View; Same is Triggered in ProcessCommandParametersL HandleActivationMessageL(aMessageParameters); @@ -480,7 +455,7 @@ HandleActivationMessageL( aData ); } - // Introduced to fix bug EMJN-78GH6N. Rowland Cook 10/12/2007 + // Introduced to fix bug EMJN-78GH6N. if (0 != iEikonEnv->RootWin().OrdinalPosition()) { iEikonEnv->RootWin().SetOrdinalPosition(0); @@ -520,75 +495,28 @@ switch ( msgUid.iUid ) { case KGlxActivationCmdShowLastModified: - // Go to camera album full screen view - GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: show last modified"); + case KGlxActivationCameraAlbum: + case KGlxActivationCmdShowAll: + { + // Go to All grid view + GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: All Grid View"); // Send the command to reset the view ProcessCommandL(EGlxCmdResetView); - // Not using KGlxCollectionPluginCameraImplementationUid iNavigationalState->SetBackExitStatus(ETrue); - path->AppendL(KGlxCollectionPluginAlbumsImplementationUid); - path->AppendL(KCapturedAlbumId); - SetActivationParamL(KGlxActivationFullScreen); + path->AppendL(KGlxCollectionPluginAllImplementationUid); + } break; - case KGlxActivationCameraAlbum: - // Go to camera album tile view - GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: camera album"); - iNavigationalState->SetBackExitStatus(ETrue); - path->AppendL(KGlxCollectionPluginAlbumsImplementationUid); - path->AppendL(KCapturedAlbumId); - break; - - case KGlxActivationPhotosMenu: - // Open the main view - GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: photos menu"); - break; - - case KGlxActivationAllView: - GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: Show all photos"); - // Send the command to reset the view - ProcessCommandL(EGlxCmdResetView); - path->AppendL(KGlxCollectionPluginAllImplementationUid); - break; - default: GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: unknown command"); - - - if(0 == aData.CompareC(KPhotosCaptured)) - { - path->AppendL(KGlxCollectionPluginAlbumsImplementationUid); - path->AppendL(KCapturedAlbumId); - } - else if(0 == aData.CompareC(KPhotosAllValue)) - { - path->AppendL(KGlxCollectionPluginAllImplementationUid); - } - else if(0 == aData.CompareC(KPhotosMonths)) - { - path->AppendL(KGlxCollectionPluginMonthsImplementationUid); - } - else if(0 == aData.CompareC(KPhotosAlbums)) - { - path->AppendL(KGlxCollectionPluginAlbumsImplementationUid); - } - else if(0 == aData.CompareC(KPhotosTags)) - { - path->AppendL(KGlxTagCollectionPluginImplementationUid); - } - else - { - User::Leave(KErrNotSupported); - } - iNavigationalState->SetBackExitStatus(ETrue); - break; + User::Leave(KErrNotSupported); } CleanupStack::PopAndDestroy(&stream); iNavigationalState->SetStartingLevel(path->Levels()); iNavigationalState->NavigateToL( *path ); CleanupStack::PopAndDestroy(path); - // Introduced to fix bug EMJN-78GH6N. Rowland Cook 10/12/2007 + // Introduced to fix bug EMJN-78GH6N. if (0 != iEikonEnv->RootWin().OrdinalPosition()) { iEikonEnv->RootWin().SetOrdinalPosition(0); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/gallery/src/glxdocument.cpp --- a/photosgallery/gallery/src/glxdocument.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/gallery/src/glxdocument.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -110,7 +110,7 @@ // Reset old data ResetDocument(); iImageViewerInstance->SetImageFileHandleL(aFile); - CleanupStack::PopAndDestroy(); // Close aFile + CleanupStack::PopAndDestroy( &aFile ); } // ---------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/help/inc/lgal.hlp.hrh --- a/photosgallery/help/inc/lgal.hlp.hrh Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/help/inc/lgal.hlp.hrh Wed Mar 31 21:31:03 2010 +0300 @@ -39,5 +39,5 @@ _LIT(KLGAL_HLP_ALL_FULLSCREEN, "LGAL_HLP_ALL_FULLSCREEN"); // _LIT(KLGAL_HLP_ALBUM_FULLSCREEN, "LGAL_HLP_ALBUM_FULLSCREEN"); // _LIT(KLGAL_HLP_TAGS_FULLSCREEN, "LGAL_HLP_TAGS_FULLSCREEN"); // - +_LIT(KLGAL_HLP_IMAGE_VIEWER, "LGAL_HLP_IMAGE_VIEWER"); // #endif \ No newline at end of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/imgvwr/src/glxivwrdocument.cpp --- a/photosgallery/imgvwr/src/glxivwrdocument.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/imgvwr/src/glxivwrdocument.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -115,7 +115,7 @@ // Make sure that aFile is closed in leave situation CleanupClosePushL( aFile ); iImageViewerInstance->SetImageFileHandleL(aFile); - CleanupStack::PopAndDestroy(); // Close aFile + CleanupStack::PopAndDestroy( &aFile ); // Open the viewer static_cast(iAppUi)->HandleOpenFileL(); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/inc/glxfiltergeneraldefs.h --- a/photosgallery/inc/glxfiltergeneraldefs.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/inc/glxfiltergeneraldefs.h Wed Mar 31 21:31:03 2010 +0300 @@ -78,7 +78,7 @@ const TMPXAttributeData KGlxFilterGeneralMinCount = { KGlxFilterIdGeneral, EGlxFilterMinItemCount }; // TInt const TMPXAttributeData KGlxFilterGeneralItemId = { KGlxFilterIdGeneral, EGlxFilterContainsItem }; // TMPXItemId const TMPXAttributeData KGlxFilterGeneralExcludeAnimation = { KGlxFilterIdGeneral, EGlxFilterExcludeAnimation }; // TBool -const TMPXAttributeData KGlxFilterGeneralLastCaptureDate = { KGlxFilterIdGeneral, EGlxFilterLastCaptureDate }; // TBool ? +const TMPXAttributeData KGlxFilterGeneralLastCaptureDate = { KGlxFilterIdGeneral, EGlxFilterLastCaptureDate }; // TBool const TMPXAttributeData KGlxFilterGeneralThumbnailLoadability = { KGlxFilterIdGeneral, EGlxFilterThumbnailLoadability }; // TSize const TMPXAttributeData KGlxFilterGeneralMPXCollectionPath = { KGlxFilterIdGeneral, EGlxFilterMPXCollectionPath }; // CMPXCollectionPath const TMPXAttributeData KGlxFilterGeneralItemType = { KGlxFilterIdGeneral, EGlxFilterItemType }; // TGlxFilterItemType @@ -87,6 +87,7 @@ const TMPXAttributeData KGlxFilterGeneralOrigin = { KGlxFilterIdGeneral, EGlxFilterOrigin }; /// TGlxFilterOrigin const TMPXAttributeData KGlxFilterGeneralNoDRM = { KGlxFilterIdGeneral, EGlxFilterNoDRM }; /// TBool const TMPXAttributeData KGlxFilterGeneralNavigationalStateOnly = { KGlxFilterIdGeneral, 0x4000 }; /// TBool +const TMPXAttributeData KGlxFilterGeneralMaxCount = { KGlxFilterIdGeneral, 0x8000 }; // TInt enum TGlxFilterSortOrder { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/inc/glxfilterproperties.h --- a/photosgallery/inc/glxfilterproperties.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/inc/glxfilterproperties.h Wed Mar 31 21:31:03 2010 +0300 @@ -44,6 +44,7 @@ iContainsItem(0), iExcludeAnimation(EFalse), iLastCaptureDate(EFalse), + iMaxCount(KMaxTUint), iThumbnailLoadability(0,0), iPath(NULL), iItemType(EGlxFilterVideoAndImages), @@ -63,6 +64,7 @@ TGlxMediaId iContainsItem; TBool iExcludeAnimation; TBool iLastCaptureDate; + TInt iMaxCount; TSize iThumbnailLoadability; CMPXCollectionPath* iPath; TGlxFilterItemType iItemType; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/inc/glxlogattribute.h --- a/photosgallery/inc/glxlogattribute.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/inc/glxlogattribute.h Wed Mar 31 21:31:03 2010 +0300 @@ -250,6 +250,10 @@ { attributeName.Append(_L8("KGlxFilterGeneralMinCount")); } + else if (aAttribute == KGlxFilterGeneralMaxCount) + { + attributeName.Append(_L8("KGlxFilterGeneralMaxCount")); + } else if (aAttribute == KGlxFilterGeneralItemId) { attributeName.Append(_L8("KGlxFilterGeneralItemId")); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/inc/photos.hlp.hrh --- a/photosgallery/inc/photos.hlp.hrh Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/inc/photos.hlp.hrh Wed Mar 31 21:31:03 2010 +0300 @@ -42,6 +42,7 @@ _LIT(LGAL_HLP_ALL_FULLSCREEN,"LGAL_HLP_ALL_FULLSCREEN"); _LIT(LGAL_HLP_DETAILS_VIEW,"LGAL_HLP_DETAILS_VIEW"); _LIT(LGAL_HLP_FETCHER,"LGAL_HLP_FETCHER"); +_LIT(LGAL_HLP_IMAGE_VIEWER, "LGAL_HLP_IMAGE_VIEWER"); #endif diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/logging/client/src/glxlogchunk.cpp --- a/photosgallery/logging/client/src/glxlogchunk.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/logging/client/src/glxlogchunk.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -152,7 +152,7 @@ // assign the addres to TInt TUint32 new_value = reinterpret_cast< TUint32 >( aValue ); // ensure we're byte aligned - ARM requires 32 bit alignment to machine word - // boundary!! + // boundary TInt remainder = new_value % KBytesInAWord; if ( remainder > 0 ) { @@ -191,7 +191,7 @@ // assign the addres to TInt TUint32 new_value = reinterpret_cast< TUint32 >( aValue ); // ensure we're byte aligned - ARM requires 32 bit alignment to machine word - // boundary!! + // boundary TInt remainder = new_value % KBytesInAWord; if ( remainder > 0 ) { @@ -240,7 +240,7 @@ // no id set, so reserve this for us and use this chunk iLogUtility.SetId( aId ); } - // check if our id was there? + // check if our id was there else if( id != aId ) { // not our chunk, try second chunk in read-write mode @@ -397,10 +397,10 @@ TPtr8 logEntryPtr( 0, 0 ); TInt logEntrySize = 0; - // what's previously been logged to the file? + // Holds what's previously been logged to the file TUint8* lastLoggedAddress = aUtility.LastLoggedAddress(); - // how much more has been added to the chunk? + // Holds how much more has been added to the chunk TUint8* currentAddress = aUtility.CurrentAddress(); // write each of the chunk's logged entries to the file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/bwins/dummyCu.def --- a/photosgallery/photossuite/bwins/dummyCu.def Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - ?E32Main@@YAHXZ @ 1 NONAME ; int E32Main(void) - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/data/photos_items.xml --- a/photosgallery/photossuite/data/photos_items.xml Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,524 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/data/photossuite.rss --- a/photosgallery/photossuite/data/photossuite.rss Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Resource definitions for Photos Suite -* -*/ - -NAME PHTS - -#include -#include -#include - -RESOURCE RSS_SIGNATURE { } -RESOURCE TBUF { buf=""; } - -// from avkon.loc -RESOURCE TBUF R_OPTIONS_OPEN { buf = qtn_options_open; } -RESOURCE TBUF R_OPTIONS_HELP { buf = qtn_options_help; } - -// photos specific -RESOURCE TBUF R_LGAL_TITLE_MAIN_VIEW { buf = qtn_lgal_title_main_view; } -//RESOURCE TBUF R_LGAL_LIST_TITLE_CAPTURED_NSERIES { buf = qtn_lgal_list_title_captured; } -RESOURCE TBUF R_LGAL_LIST_TITLE_MONTHS_NSERIES { buf = qtn_lgal_list_title_months; } -RESOURCE TBUF R_LGAL_LIST_TITLE_ALBUMS_NSERIES { buf = qtn_lgal_list_title_albums; } -RESOURCE TBUF R_LGAL_LIST_TITLE_TAGS_NSERIES { buf = qtn_lgal_list_title_tags; } -//RESOURCE TBUF R_LGAL_LIST_TITLE_DOWNLOADS_NSERIES { buf = qtn_lgal_list_title_downloads; } -RESOURCE TBUF R_LGAL_LIST_TITLE_ALL_NSERIES { buf = qtn_lgal_list_title_all; } -RESOURCE TBUF R_LGAL_LIST_DETAIL_ONE_ALBUM_NSERIES { buf = qtn_lgal_list_detail_one_alb; } -RESOURCE TBUF R_LGAL_LIST_DETAIL_MULTI_ALBUMS_NSERIES { buf = qtn_lgal_list_detail_multi_alb; } -RESOURCE TBUF R_LGAL_LIST_DETAIL_ONE_TAG_NSERIES { buf = qtn_lgal_list_detail_one_tag; } -RESOURCE TBUF R_LGAL_LIST_DETAIL_MULTI_TAGS_NSERIES { buf = qtn_lgal_list_detail_multi_tag; } -RESOURCE TBUF R_LGAL_LIST_DETAIL_NO_TAGS_NSERIES { buf = qtn_lgal_list_detail_no_tagged_items; } -RESOURCE TBUF R_LGAL_LIST_DETAIL_ONE_ITEM_NSERIES { buf = qtn_lgal_list_detail_one_item; } -RESOURCE TBUF R_LGAL_LIST_DETAIL_MULTI_ITEMS_NSERIES { buf = qtn_lgal_list_detail_multi_item; } -RESOURCE TBUF R_LGAL_LIST_DETAIL_NO_ITEMS_NSERIES { buf = qtn_lgal_list_detail_no_img_vid; } -RESOURCE TBUF R_LGAL_LIST_DETAIL_MULTI_MONTHS_NSERIES { buf = qtn_lgal_list_title_month_year; } - - - -// End of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/data/suite.xml --- a/photosgallery/photossuite/data/suite.xml Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ - - - - - - - - - - - - - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/eabi/dummyCu.def --- a/photosgallery/photossuite/eabi/dummyCu.def Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - _Z7E32Mainv @ 1 NONAME - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/group/bld.inf --- a/photosgallery/photossuite/group/bld.inf Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Build information file Photos Suite -* -*/ - - - - -#include -//#include - -PRJ_EXPORTS -../rom/photossuite.iby CORE_APP_LAYER_IBY_EXPORT_PATH(photossuite.iby) -../rom/photossuite_localization.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(photossuite_localization.iby) - -//SUITE_EXPORT_PATH_WINSCW(../data/suite.xml,photossuite/suite.xml) -//SUITE_EXPORT_PATH_ARMV5(../data/suite.xml,photossuite/suite.xml) -//SUITE_EXPORT_PATH_WINSCW(../data/photos_items.xml,photossuite/photos_items.xml) -//SUITE_EXPORT_PATH_ARMV5(../data/photos_items.xml,photossuite/photos_items.xml) - -../data/suite.xml /epoc32/release/winscw/udeb/z/private/101f4cd2/import/suites/photossuite/suite.xml -../data/photos_items.xml /epoc32/release/winscw/udeb/z/private/101f4cd2/import/suites/photossuite/photos_items.xml - -../data/suite.xml /epoc32/data/z/private/101f4cd2/import/suites/photossuite/suite.xml -../data/photos_items.xml /epoc32/data/z/private/101f4cd2/import/suites/photossuite/photos_items.xml - - -PRJ_MMPFILES -photossuite.mmp -#ifndef SBSV2 -gnumakefile export_photossuite.mk -#endif - - -PRJ_EXTENSIONS -#if defined(SBSV2) && defined(WINSCW) -START EXTENSION general/copyheaderfile -SRCFILE photossuite.rsg -END -#endif - - - - - - - - - - - - - - - - - -// End of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/group/export_photossuite.mk --- a/photosgallery/photossuite/group/export_photossuite.mk Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -# -# Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" -# which accompanies this distribution, and is available -# at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -# Initial Contributors: -# Nokia Corporation - initial contribution. -# -# Contributors: -# -# Description: export makefile for Photos Suite -# - - -ifeq (WINS,$(findstring WINS, $(PLATFORM))) -ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z -else -ZDIR=\epoc32\data\z -endif - - -FINAL : - @echo Exporting .rsg files... - perl -S ecopyfile.pl $(EPOCROOT)epoc32/include/photossuite.rsg $(EPOCROOT)epoc32/release/winscw/udeb/Z/resource/apps/photossuite.rsg - - -MAKMAKE FREEZE LIB CLEANLIB RESOURCE RELEASABLES CLEAN BLD SAVESPACE : diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/group/photossuite.mmp --- a/photosgallery/photossuite/group/photossuite.mmp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Project definition file for Photos Suite -* -*/ - - - - -#include -#include - -TARGET dummyc.dll -TARGETTYPE dll - -UID 0x1000008d 0x200104E1 -CAPABILITY CAP_GENERAL_DLL - -APP_LAYER_SYSTEMINCLUDE - -SOURCEPATH ../src -SOURCE dummy.cpp - -SOURCEPATH . -SYSTEMINCLUDE ../../gallery/loc //Gallery Loc - -START RESOURCE ../data/photossuite.rss -HEADER -TARGETPATH APP_RESOURCE_DIR -LANGUAGE_IDS -END - -// End of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/rom/photossuite.iby --- a/photosgallery/photossuite/rom/photossuite.iby Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Image description file for Photos Suite -* -*/ - -#ifndef photossuiteSUITE_IBY -#define photossuiteSUITE_IBY - - -data=\epoc32\data\Z\private\101F4CD2\import\suites\photossuite\suite.xml private\101F4CD2\import\suites\photossuite\suite.xml -data=\epoc32\data\Z\private\101F4CD2\import\suites\photossuite\photos_items.xml private\101F4CD2\import\suites\photossuite\photos_items.xml - - -#endif // photossuiteSUITE_IBY - -// End of File \ No newline at end of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/rom/photossuite_localization.iby --- a/photosgallery/photossuite/rom/photossuite_localization.iby Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Image description file for Photos Suite -* -*/ - -#ifndef photossuiteSUITE_LOCALIZATION_IBY -#define photossuiteSUITE_LOCALIZATION_IBY - - -data=\epoc32\data\z\resource\apps\photossuite.rsc resource\apps\photossuite.rsc -data=\epoc32\include\photossuite.rsg resource\apps\photossuite.rsg - -#endif // photossuiteSUITE_LOCALIZATION_IBY - -// End of File \ No newline at end of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/photossuite/src/dummy.cpp --- a/photosgallery/photossuite/src/dummy.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: dummy -* -*/ - - - - -#include - -EXPORT_C int E32Main() -{ - return 0; -} diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/rom/glxgallery.iby --- a/photosgallery/rom/glxgallery.iby Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/rom/glxgallery.iby Wed Mar 31 21:31:03 2010 +0300 @@ -72,7 +72,6 @@ ECOM_PLUGIN( glxcollectionpluginmonths.dll, glxcollectionpluginmonths.rsc ) ECOM_PLUGIN( glxcollectionpluginimageviewer.dll, glxcollectionpluginimageviewer.rsc ) -//ECOM_PLUGIN( glxthumbnailcomposerplugin.dll, glxthumbnailcomposerplugin.rsc ) file=ABI_DIR\BUILD_DIR\glxlayouts.dll SHARED_LIB_DIR\glxlayouts.dll file=ABI_DIR\BUILD_DIR\glxmedialists.dll SHARED_LIB_DIR\glxmedialists.dll @@ -94,12 +93,10 @@ file=ABI_DIR\BUILD_DIR\glxlistviewpluginbase.dll SHARED_LIB_DIR\glxlistviewpluginbase.dll ECOM_PLUGIN( glxlistviewplugin.dll, glxlistviewplugin.rsc ) - file=ABI_DIR\BUILD_DIR\glxcommandhandlerbase.dll SHARED_LIB_DIR\glxcommandhandlerbase.dll file=ABI_DIR\BUILD_DIR\glxzoomview.dll SHARED_LIB_DIR\glxzoomview.dll file=ABI_DIR\BUILD_DIR\glxmetadatadialog.dll SHARED_LIB_DIR\glxmetadatadialog.dll data = \epoc32\data\Z\private\10202be9\200009EE.txt private\10202be9\200009EE.txt -data = \epoc32\data\Z\private\10202be9\02000A09.txt private\10202be9\02000A09.txt #endif // __GLXGALLERY_IBY__ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/controlsrc/shweffectcontrol.cpp --- a/photosgallery/slideshow/engine/controlsrc/shweffectcontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/controlsrc/shweffectcontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -189,15 +189,15 @@ // is it start view TShwEventStartView* viewEvent = dynamic_cast( aEvent ); - // start transition? + // is it start transition TShwEventStartTransition* transEvent = dynamic_cast( aEvent ); - // was it a pause or resume event? + // was it a pause or resume event TShwEventPause* pauseEvent = dynamic_cast( aEvent ); TShwEventResume* resumeEvent = dynamic_cast( aEvent ); - // or a navigation event? + // or was it a navigation event TShwEventNextImage* nextImageEvent = dynamic_cast< TShwEventNextImage* >( aEvent ); TShwEventPreviousImage* previousImageEvent = @@ -464,7 +464,7 @@ MShwEffect* currentEffect = iEffectManager.CurrentEffect(); // remove the old layout iSplitter.RemoveLayout( iCurrentVisual ); - // was this thumbnail succesfully loaded? + // check if this thumbnail was succesfully loaded if ( iFailedThumbnailIndex == currentIndex ) { // set the temporary layout for default icon @@ -545,7 +545,7 @@ // remove old layout iSplitter.RemoveLayout( nextVisual ); - // was the next thumbnail succesfully loaded? + // Check if the next thumbnail was succesfully loaded if ( iFailedThumbnailIndex == nextIndex ) { TAlfTimedValue opacity(KMaxOpacity,0); @@ -649,9 +649,8 @@ } CleanupStack::PopAndDestroy( &effects ); - // did user navigate while paused? if( iUserNavigated ) - { + { // user navigated while paused // resume and cancel the transition timer for its next use // if user navigates while pause // we never continue from transition so we need diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/controlsrc/shweventrouter.cpp --- a/photosgallery/slideshow/engine/controlsrc/shweventrouter.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/controlsrc/shweventrouter.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -78,7 +78,7 @@ // close the event array itself, this frees the memory iEvents.Close(); // close the observer array itself, this frees the memory - // NOTE! we did not have ownership of the observers + // NOTE: we did not have ownership of the observers iObservers.Close(); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/controlsrc/shwtimercontrol.cpp --- a/photosgallery/slideshow/engine/controlsrc/shwtimercontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/controlsrc/shwtimercontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -122,10 +122,9 @@ // resume the timer iTimer->Resume(); } - // was it next or previous image? else if ( dynamic_cast< TShwEventNextImage* >( aEvent ) || dynamic_cast< TShwEventPreviousImage* >( aEvent ) ) - { + { // it was next or previous image GLX_LOG_INFO( "CShwTimerControl::NotifyL - TShwEventNext/PreviousImage" ); // cancel the timer as we have moved to another image iTimer->Cancel(); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/controlsrc/shwviewcontrol.cpp --- a/photosgallery/slideshow/engine/controlsrc/shwviewcontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/controlsrc/shwviewcontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -143,10 +143,9 @@ // check if we are ok to go to start transition CheckAndSendStartTransitionL(); } - // was it next or previous image? else if ( dynamic_cast< TShwEventNextImage* >( aEvent ) || dynamic_cast< TShwEventPreviousImage* >( aEvent ) ) - { + {// it was next or previous image // user did navigate, reset the state flags iReadyToAdvanceReceived = EFalse; iReadyToViewReceived = EFalse; @@ -154,19 +153,17 @@ iUserNavigated = ETrue; iUserNavigatedWhilePaused = iPaused; } - // pause event? else if ( dynamic_cast< TShwEventPause* >( aEvent ) ) - { + { // pause event // we are paused iPaused = ETrue; iUserNavigatedWhilePaused = EFalse; } - // resume event? else if ( dynamic_cast< TShwEventResume* >( aEvent ) ) - { + { // resume event // we are not paused iPaused = EFalse; - // did user navigate? + // Check if user did navigate if( iUserNavigatedWhilePaused ) { // reset the flag diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/coresrc/shwplaybackfactory.cpp --- a/photosgallery/slideshow/engine/coresrc/shwplaybackfactory.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/coresrc/shwplaybackfactory.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -358,7 +358,7 @@ TRACER("CShwPlaybackFactory::CShwPlaybackFactoryImpl::CreateEffectsL"); GLX_LOG_INFO( "CShwPlaybackFactoryImpl::CreateEffectsL" ); aEffects.AppendL( CShwZoomAndPanEffect::NewLC() ); - CleanupStack::Pop(); + CleanupStack::Pop(); // CShwZoomAndPanEffect::NewLC() aEffects.AppendL( CShwCrossFadeEffect::NewLC() ); - CleanupStack::Pop(); + CleanupStack::Pop(); // CShwCrossFadeEffect::NewLC() } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/coresrc/shwsettingsmodel.cpp --- a/photosgallery/slideshow/engine/coresrc/shwsettingsmodel.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/coresrc/shwsettingsmodel.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -255,7 +255,7 @@ CShwSettingsModel* self = new(ELeave) CShwSettingsModel(); CleanupStack::PushL(self); self->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/coresrc/shwthumbnailcontext.cpp --- a/photosgallery/slideshow/engine/coresrc/shwthumbnailcontext.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/coresrc/shwthumbnailcontext.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -62,7 +62,7 @@ GLX_LOG_INFO("CShwThumbnailContext::ConstructL"); // Create the high quality / slower context iHighQualityContext = CGlxThumbnailContext::NewL( this ); - // Call both setdefault and add? + // Call both setdefault and add iHighQualityContext->SetDefaultSpec( iSize.iWidth, iSize.iHeight ); iHighQualityContext->AddSpecForItemL( iSize.iWidth, iSize.iHeight, iCurrentIndex ); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/coresrc/shwthumbnailloader.cpp --- a/photosgallery/slideshow/engine/coresrc/shwthumbnailloader.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/coresrc/shwthumbnailloader.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -520,7 +520,7 @@ CShwThumbnailContext* context = FindContext( aItemIndex ); if( context ) { - // was there an error? + // Check if there was an error TInt requestCount = context->RequestCountL( &iMedialist ); if ( requestCount == KErrNone ) { @@ -641,7 +641,7 @@ // browse through all indexes ( count-1 -> 0 ) while ( index-- > 0 ) { - // does the index belong to the array? + // Check if the index belongs to the array CShwThumbnailContext* context = iHighQualityContexts[ index ]; if ( context->Index() == aIndex ) { @@ -735,7 +735,7 @@ { TRACER("CShwThumbnailLoader::CShwThumbnailLoaderImpl::RemoveHighQualityContext"); GLX_LOG_INFO1( "CShwThumbnailLoaderImpl::RemoveHighQualityContext %d", aIndex ); - // Is there a context for this index? + // check if there is a context for this index TInt arrayIndex = Find( aIndex ); if( KErrNotFound != arrayIndex ) { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/coresrc/shwtimer.cpp --- a/photosgallery/slideshow/engine/coresrc/shwtimer.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/coresrc/shwtimer.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -163,7 +163,7 @@ { GLX_LOG_INFO1( "CShwTimer::Resume timeleft %d", iTimeLeft.Int() ); // start again, first for time left and after that with interval - // NOTE! cant use Start as it takes time as milliseconds in a TInt + // NOTE: cant use Start as it takes time as milliseconds in a TInt // Get the current time iTimeTimerExpires.HomeTime(); // Add the delay to determine the expiry time diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/effectsrc/shwcrossfadelayout.cpp --- a/photosgallery/slideshow/engine/effectsrc/shwcrossfadelayout.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/effectsrc/shwcrossfadelayout.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -84,7 +84,7 @@ // ----------------------------------------------------------------------------- // DoSetLayoutValues // ----------------------------------------------------------------------------- -void TShwCrossFadeLayout::DoSetLayoutValues( TGlxLayoutInfo& aInfo ) +void TShwCrossFadeLayout::DoSetLayoutValues( TGlxLayoutInfo& /*aInfo*/ ) { TRACER("TShwCrossFadeLayout::DoSetLayoutValues"); GLX_LOG_INFO("TShwCrossFadeLayout::DoSetLayoutValues"); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp --- a/photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -196,7 +196,7 @@ /// are cloned as needed MShwEffect* clone = effect->CloneLC(); iAvailableEffects.AppendL( clone ); - CleanupStack::Pop(); + CleanupStack::Pop( clone ); iEffects.Append( effect ); iEffects.Append( clone ); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/effectsrc/shwzoomandpanlayout.cpp --- a/photosgallery/slideshow/engine/effectsrc/shwzoomandpanlayout.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/effectsrc/shwzoomandpanlayout.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -201,7 +201,7 @@ // ----------------------------------------------------------------------------- // DoSetLayoutValues // ----------------------------------------------------------------------------- -void TShwZoomAndPanLayout::DoSetLayoutValues( TGlxLayoutInfo& aInfo ) +void TShwZoomAndPanLayout::DoSetLayoutValues( TGlxLayoutInfo& /*aInfo*/ ) { // calculate new x size, current value from zoomedsize TReal32 x_size = iZoomedSize.iWidth.Now(); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshwdefaulteffectmanager/t_cshwdefaulteffectmanager.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshwdefaulteffectmanager/t_cshwdefaulteffectmanager.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshwdefaulteffectmanager/t_cshwdefaulteffectmanager.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -51,8 +51,7 @@ T_CShwDefaultEffectManager* T_CShwDefaultEffectManager::NewL() { T_CShwDefaultEffectManager* self = T_CShwDefaultEffectManager::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -60,9 +59,7 @@ { T_CShwDefaultEffectManager* self = new( ELeave ) T_CShwDefaultEffectManager(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } @@ -122,10 +119,6 @@ iDefaultEffectManager->AddEffectL( effect ); // takes ownership CleanupStack::Pop( effect ); - // TRAP since we expect it to leave - //TRAPD( error, iDefaultEffectManager->CurrentEffect() ); - // EUNIT_ASSERT_EQUALS_DESC( - // NShwEngine::EIncorrectEffectIndex, error, "iEffects was not set"); // get effects info TShwEffectInfo info = effect->EffectInfo(); // set effect order @@ -140,12 +133,6 @@ void T_CShwDefaultEffectManager::TestAddNullEffectL() { iDefaultEffectManager->AddEffectL( NULL ); - - // TRAP since we expect it to leave - //TRAPD( error, iDefaultEffectManager->CurrentEffect() ); - //EUNIT_ASSERT_EQUALS_DESC( - // NShwEngine::EIncorrectEffectIndex, error, "iEffects was not set"); - // create empty effect info TShwEffectInfo info; TInt error ; @@ -189,122 +176,6 @@ EUNIT_ASSERT( effect2 == iDefaultEffectManager->Effect( 2 ) ); } -/* -void T_CShwDefaultEffectManager::TestProgrammedEffectL() - { - // Create two effects - T_MShwTestEffect* effect0 = new(ELeave) T_MShwTestEffect(0); - CleanupStack::PushL(effect0); - T_MShwTestEffect* effect1 = new(ELeave) T_MShwTestEffect(1); - CleanupStack::PushL(effect1); - - // Add the effects - iDefaultEffectManager->AddEffectL(effect0); // takes ownership - iDefaultEffectManager->AddEffectL(effect1); // takes ownership - - CleanupStack::Pop(2, effect0); - - // Specify programmed order - iDefaultEffectManager->SetEffectOrder(MShwEffectManager::EShwEffectOrderProgrammed); - - // Create the programmed order - RArray programme; - CleanupClosePushL(programme); -// CleanupStack::PushL(&programme); - programme.AppendL(effect1); - programme.AppendL(effect0); - programme.AppendL(effect1); - - // Set the order - iDefaultEffectManager->SetProgrammedEffects(programme); - - // - // Check the first effect - MShwEffect* inEffect = static_cast(effect1); - MShwEffect* outEffect = iDefaultEffectManager->CurrentEffect(); - EUNIT_ASSERT_EQUALS(inEffect, outEffect); - - inEffect = static_cast(effect0); - outEffect = iDefaultEffectManager->NextEffect(); - EUNIT_ASSERT_EQUALS(inEffect, outEffect); - - iDefaultEffectManager->ProceedToNextEffect(); - - inEffect = static_cast(effect1); - outEffect = iDefaultEffectManager->NextEffect(); - EUNIT_ASSERT_EQUALS(inEffect, outEffect); - - CleanupStack::PopAndDestroy(&programme); - } - - -void T_CShwDefaultEffectManager::TestMultiProgrammedEffectL() - { - // Create two effects - T_MShwTestEffect* effect0 = new(ELeave) T_MShwTestEffect(0); - CleanupStack::PushL(effect0); - T_MShwTestEffect* effect1 = new(ELeave) T_MShwTestEffect(1); - CleanupStack::PushL(effect1); - T_MShwTestEffect* effect2 = new(ELeave) T_MShwTestEffect(2); - CleanupStack::PushL(effect2); - - // Add the effects - iDefaultEffectManager->AddEffectL(effect0); // takes ownership - iDefaultEffectManager->AddEffectL(effect1); // takes ownership - iDefaultEffectManager->AddEffectL(effect2); // takes ownership - - CleanupStack::Pop(3, effect0); - - // Specify programmed order - iDefaultEffectManager->SetEffectOrder(MShwEffectManager::EShwEffectOrderProgrammed); - - // Create the programmed order - RArray programme; - CleanupClosePushL(programme); -// CleanupStack::PushL(&programme); - programme.AppendL(effect2); - programme.AppendL(effect1); - programme.AppendL(effect0); - programme.AppendL(effect2); - programme.AppendL(effect1); - programme.AppendL(effect0); - - // Set the order - iDefaultEffectManager->SetProgrammedEffects(programme); - - // - // Check the effect order is retrieved as 2, 1, 0 - MShwEffect* inEffect = static_cast(effect2); - MShwEffect* outEffect = iDefaultEffectManager->CurrentEffect(); - EUNIT_ASSERT_EQUALS(inEffect, outEffect); - - inEffect = static_cast(effect1); - outEffect = iDefaultEffectManager->NextEffect(); - EUNIT_ASSERT_EQUALS(inEffect, outEffect); - - iDefaultEffectManager->ProceedToNextEffect(); - - inEffect = static_cast(effect2); - outEffect = iDefaultEffectManager->NextEffect(); - EUNIT_ASSERT_EQUALS(inEffect, outEffect); - - iDefaultEffectManager->ProceedToNextEffect(); - - inEffect = static_cast(effect1); - outEffect = iDefaultEffectManager->NextEffect(); - EUNIT_ASSERT_EQUALS(inEffect, outEffect); - - iDefaultEffectManager->ProceedToNextEffect(); - - inEffect = static_cast(effect0); - outEffect = iDefaultEffectManager->NextEffect(); - EUNIT_ASSERT_EQUALS(inEffect, outEffect); - iDefaultEffectManager->ProceedToNextEffect(); - - CleanupStack::PopAndDestroy(&programme); - } -*/ - // TEST TABLE EUNIT_BEGIN_TEST_TABLE( T_CShwDefaultEffectManager, @@ -338,22 +209,6 @@ "CShwDefaultEffectManager", "FUNCTIONALITY", SetupL, TestNextEffectL, Teardown ) - -/* -EUNIT_TEST( - "Programmed Effect Test", - "CShwDefaultEffectManager", - "CShwDefaultEffectManager", - "FUNCTIONALITY", - SetupL, TestProgrammedEffectL, Teardown ) - -EUNIT_TEST( - "Multi Prog Test", - "CShwDefaultEffectManager", - "CShwDefaultEffectManager", - "FUNCTIONALITY", - SetupL, TestMultiProgrammedEffectL, Teardown ) -*/ EUNIT_END_TEST_TABLE diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshweffectcontrol/t_cshweffectcontrol.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshweffectcontrol/t_cshweffectcontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshweffectcontrol/t_cshweffectcontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -48,6 +48,7 @@ User::Leave( aPanic ); } } + // ----------------------------------------------------------------------------- // <-- Stub for NShwEngine::Panic // ----------------------------------------------------------------------------- @@ -56,8 +57,7 @@ T_CShwEffectControl* T_CShwEffectControl::NewL() { T_CShwEffectControl* self = T_CShwEffectControl::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -132,7 +132,8 @@ { // need to clone the event since the caller goes out of scope TInt error = iEvents.Append( aEvent->CloneLC() ); - CleanupStack::Pop(); + CleanupStack::Pop(); // aEvent->CloneLC() + // check that append succeeded if( error != KErrNone ) { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshweffects/t_cshweffects_dllmain.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshweffects/t_cshweffects_dllmain.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshweffects/t_cshweffects_dllmain.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -32,14 +32,14 @@ { // create the normal zoom and pan MShwEffect* eff = CShwCrossFadeEffect::NewLC(); - CleanupStack::Pop(); + CleanupStack::Pop( eff ); return eff; } MShwEffect* CreateZoomAndPanL() { MShwEffect* eff = CShwZoomAndPanEffect::NewLC(); - CleanupStack::Pop(); + CleanupStack::Pop( eff ); return eff; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshweventrouter/t_cshweventrouter.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshweventrouter/t_cshweventrouter.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshweventrouter/t_cshweventrouter.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -65,7 +65,7 @@ T_CShwEventRouter* T_CShwEventRouter::NewL() { T_CShwEventRouter* self = T_CShwEventRouter::NewLC(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } @@ -195,9 +195,6 @@ void T_CShwEventRouter::TestNestedEventsAndMultipleObserversL() { -// EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT_D( failurecount ); -// EUNIT_PRINT( _L("Memory alloc %d"), failurecount ); - // we want the notify to add 2 events during the notify calls so 3 events overall iSendNewEventCount = 2; // add us as observer twice @@ -207,13 +204,13 @@ observers.AppendL( this ); // add the array of observers iRouter->AddObserversL( observers.Array() ); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy( observers ); // add us as publisher RPointerArray publisher; CleanupClosePushL( publisher ); publisher.AppendL( this ); iRouter->AddProducers( publisher.Array() ); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy( publisher ); T_TestEvent testEvent; // set the event object pointer so that the notify can verify the event object diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshwmusiccontrol/t_cshwmusiccontrol.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshwmusiccontrol/t_cshwmusiccontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshwmusiccontrol/t_cshwmusiccontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -36,8 +36,7 @@ T_CShwMusicControl* T_CShwMusicControl::NewL() { T_CShwMusicControl* self = T_CShwMusicControl::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -45,9 +44,7 @@ { T_CShwMusicControl* self = new( ELeave ) T_CShwMusicControl; CleanupStack::PushL( self ); - self->ConstructL(); - return self; } @@ -80,7 +77,7 @@ void T_CShwMusicControl::SendEventL(MShwEvent* aEvent) { iEvent = aEvent->CloneLC(); - CleanupStack::Pop(); + CleanupStack::Pop( iEvent ); } TBool gMusicOnCalled = EFalse; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshwplaybackfactory/t_cshwplaybackfactory.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshwplaybackfactory/t_cshwplaybackfactory.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshwplaybackfactory/t_cshwplaybackfactory.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -178,8 +178,7 @@ T_CShwPlaybackFactory* T_CShwPlaybackFactory::NewL() { T_CShwPlaybackFactory* self = T_CShwPlaybackFactory::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshwsettingsmodel/t_cshwsettingsmodel.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshwsettingsmodel/t_cshwsettingsmodel.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshwsettingsmodel/t_cshwsettingsmodel.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -35,8 +35,7 @@ T_CShwSettingsModel* T_CShwSettingsModel::NewL() { T_CShwSettingsModel* self = T_CShwSettingsModel::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -44,7 +43,6 @@ { T_CShwSettingsModel* self = new (ELeave) T_CShwSettingsModel(); CleanupStack::PushL(self); - self->ConstructL(); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshwslideshowengine/t_cshwslideshowengine.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshwslideshowengine/t_cshwslideshowengine.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshwslideshowengine/t_cshwslideshowengine.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -276,8 +276,7 @@ T_CShwSlideshowEngine* T_CShwSlideshowEngine::NewL() { T_CShwSlideshowEngine* self = T_CShwSlideshowEngine::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -443,7 +442,7 @@ { // got event so add a copy of it to the list TInt error = iEvents.Append( aEvent->CloneLC() ); - CleanupStack::Pop(); + CleanupStack::Pop(); // aEvent->CloneLC() // check that append succeeded if( error != KErrNone ) { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshwtimercontrol/t_cshwtimercontrol.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshwtimercontrol/t_cshwtimercontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshwtimercontrol/t_cshwtimercontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -33,8 +33,7 @@ T_CShwTimerControl* T_CShwTimerControl::NewL() { T_CShwTimerControl* self = T_CShwTimerControl::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -42,9 +41,7 @@ { T_CShwTimerControl* self = new( ELeave ) T_CShwTimerControl; CleanupStack::PushL( self ); - self->ConstructL(); - return self; } @@ -72,7 +69,7 @@ { // need to clone the event since the caller goes out of scope iEvent = aEvent->CloneLC(); - CleanupStack::Pop(); + CleanupStack::Pop( iEvent ); // stop the scheduler loop if its started if( iWait.IsStarted() ) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshwviewcontrol/t_cshwviewcontrol.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshwviewcontrol/t_cshwviewcontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshwviewcontrol/t_cshwviewcontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -45,8 +45,7 @@ T_CShwViewControl* T_CShwViewControl::NewL() { T_CShwViewControl* self = T_CShwViewControl::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -83,7 +82,7 @@ { // need to clone the event since the caller goes out of scope iEvent = aEvent->CloneLC(); - CleanupStack::Pop(); + CleanupStack::Pop( iEvent ); } const TInt KTestTransitionDuration = 987; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/engine/tsrc/t_cshwzoomandpaneffect/t_cshwzoomandpaneffect.cpp --- a/photosgallery/slideshow/engine/tsrc/t_cshwzoomandpaneffect/t_cshwzoomandpaneffect.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/engine/tsrc/t_cshwzoomandpaneffect/t_cshwzoomandpaneffect.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -104,8 +104,7 @@ T_CShwZoomAndPanEffect* T_CShwZoomAndPanEffect::NewL() { T_CShwZoomAndPanEffect* self = T_CShwZoomAndPanEffect::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -113,9 +112,7 @@ { T_CShwZoomAndPanEffect* self = new( ELeave ) T_CShwZoomAndPanEffect(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/view/group/shwslideshowviewplugin.mmp --- a/photosgallery/slideshow/view/group/shwslideshowviewplugin.mmp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/view/group/shwslideshowviewplugin.mmp Wed Mar 31 21:31:03 2010 +0300 @@ -130,5 +130,5 @@ LIBRARY remconinterfacebase.lib //LIBRARY hgcontextutility.lib // For Teleport LIBRARY glxtvout.lib -LIBRARY harvesterclient.lib + // End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/view/inc/shwslideshowview.h --- a/photosgallery/slideshow/view/inc/shwslideshowview.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/view/inc/shwslideshowview.h Wed Mar 31 21:31:03 2010 +0300 @@ -25,14 +25,13 @@ #include #include #include -#include #include "shwengineobserver.h" #include "shwmusicobserver.h" #include "shwconstants.h" #include "shwtickobserver.h" #include "shwgestureobserver.h" #include "gesturecontrol.h" - +#include "glxmmcnotifier.h" // FORWARD DECLARATIONS class CAlfEnv; class CAlfDisplay; @@ -68,7 +67,7 @@ public MProgressDialogCallback, public MShwTickObserver, public MShwGestureObserver, - public MHarvesterEventObserver + public MStorageNotifierObserver { public: @@ -145,12 +144,6 @@ * @ref CGlxViewBase::DoViewDeactivate */ void DoViewDeactivate(); - public: - // from MHarvesterEventObserver - void HarvestingUpdated( - HarvesterEventObserverType aHEObserverType, - HarvesterEventState aHarvesterEventState, - TInt aItemsLeft ); private: // from MGlxMediaListObserver @@ -320,7 +313,14 @@ * Set the current Item to HDMI. */ void SetItemToHDMIL(); - + /** + * HandleMMCInsertionL. + */ + void HandleMMCInsertionL(); + /** + * HandleMMCRemovalL. + */ + void HandleMMCRemovalL(); public: //to keep in track which of the command set is active/on top enum TShwState @@ -410,7 +410,12 @@ CShwMediaKeyUtility* iMediaKeyHandler; CGlxHdmiController* iHdmiController; TBool iHdmiActive; - RHarvesterClient iHarvesterClient; + CGlxMMCNotifier* iMMCNotifier; + TBool iMMCState; + TBool iIsForegrnd; + //to check if slideshow is paused in BG + //and after that we are bringing to foreground + TBool iPrevNotInBackground; }; #endif // C_SHWSLIDESHOWVIEW_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/view/src/shwgesturecontrol.cpp --- a/photosgallery/slideshow/view/src/shwgesturecontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/view/src/shwgesturecontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -123,7 +123,7 @@ TRACER("CShwGestureControl::HandleGestureL"); GLX_LOG_INFO1( "CShwGestureControl::HandleGestureL(%d)", aEvent.Code( MGestureEvent::EAxisBoth )); - // No one is listening? Do not resolve the events for the listeners! + // No one is listening, Do not resolve the events for the listeners if (iObservers.Count() > 0) { MShwGestureObserver::TShwGestureEventType aType = MShwGestureObserver::ENoEvent; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp --- a/photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -84,14 +84,14 @@ GLX_LOG_ENTRY_EXIT("CShwSlideshowBackLightTimer::ConstructL"); CRepository* lightsRepo = CRepository::NewLC( KCRUidPeripheralSettings ); - // What's the timeout value (in seconds ) for the display light? + // Get display light's timeout value (in seconds ) 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)? + // Get screen saver's timeout value (in seconds) TInt screenSaverTimeout = 0; scrSaverRepo->Get( KSettingsScreenSaverPeriod, screenSaverTimeout ); GLX_LOG_INFO1("CShwSlideshowBackLightTimer, scr saver timeout = %d", @@ -101,7 +101,7 @@ // Take the smaller of the two timeout values iSettingsDelay = Min( iSettingsDelay, screenSaverTimeout ); - // Set the timeout delay to minimum value as it can not be zero! + // Set the timeout delay to minimum value as it can not be zero if (iSettingsDelay == 0) { iSettingsDelay = KMinTimeoutDelay; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/view/src/shwslideshowkeyhandler.cpp --- a/photosgallery/slideshow/view/src/shwslideshowkeyhandler.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/view/src/shwslideshowkeyhandler.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -148,9 +148,9 @@ // match the view id to the active view (e.g. the tile view) //@todo-check //iScreenFurniture.DisableSystemSkinL( iViewId.iUid, - // CGlxScreenFurniture::EGlxSfItemLeftSoftkey, EFalse ); + // CGlxScreenFurniture::EGlxSfItemLeftSoftkey, EFalse ) //iScreenFurniture.DisableSystemSkinL( iViewId.iUid, - // CGlxScreenFurniture::EGlxSfItemRightSoftkey, EFalse ); + // CGlxScreenFurniture::EGlxSfItemRightSoftkey, EFalse ) // Note that in practice it doesn't matter whether we return // EKeyWasConsumed or EKeyWasNotConsumed as the result is // the same (we still get back to the last view). This is due to diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/view/src/shwslideshowview.cpp --- a/photosgallery/slideshow/view/src/shwslideshowview.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/view/src/shwslideshowview.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -35,8 +35,6 @@ #include #include -//Hg -//#include #include #include // for CGlxResourceUtilities #include // for CGlxResolutionUtility @@ -80,7 +78,7 @@ const TInt KShwGestureControlGroupId = 2; const TInt KGestureControlGroupId = 44; //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); + //6 = 5(iterator value in forward or backward direction for fullscreen) + 1(focus index) const TInt KSlideShowIterator = 2; //Constant which says maximum number of fullscreen textures that we have have at a time. //11 = (5(5 fullscreen texture backwards)+1(fucus index texture)+5(5 fullscreen texture forwards)) @@ -124,8 +122,11 @@ { TRACER("CShwSlideshowView::~CShwSlideshowView"); GLX_LOG_INFO( "CShwSlideshowView::~CShwSlideshowView()" ); - iHarvesterClient.Close(); - // delete media list population call back + + delete iMMCNotifier; + iMMCNotifier = NULL; + + // delete media list population call back delete iPopulateListCallBack; // delete engine async starter @@ -314,12 +315,8 @@ // Glx view base construction ViewBaseConstructL(); - TInt err = iHarvesterClient.Connect(); - GLX_LOG_INFO1("iHarvesterClient.Connect() err = %d",err); - if(err == KErrNone) - { - iHarvesterClient.AddHarvesterEventObserver(*this, EHEObserverTypeMMC, 1000); - } + iMMCNotifier = CGlxMMCNotifier::NewL(*this); + // Create async engine starter with standard priority iAsyncCallBack = new( ELeave ) CAsyncCallBack( CActive::EPriorityStandard ); @@ -336,7 +333,7 @@ KShwDefaultDelayMicroSeconds ); // Create a control group for the volume control iVolumeControlGroup = &iEnv->NewControlGroupL( KVolumeControlGroupId ); - // doc says the following takes ownership, but reality is different! + // doc says the following takes ownership, but reality is different iVolumeControlGroup->AppendL( iVolumeControl ); iGestureControlGroup = &iEnv->NewControlGroupL( KShwGestureControlGroupId ); @@ -348,7 +345,7 @@ GestureHelper::CGestureControl* gestureControl = GestureHelper::CGestureControl::NewLC( *iShwGestureControl, *iEnv, *iDisplay, KGestureControlGroupId ); iGestureControl = gestureControl; - CleanupStack::Pop( gestureControl ); // doc says the following takes ownership, but reality is different! + CleanupStack::Pop( gestureControl ); // doc says the following takes ownership, but reality is different iGestureControlGroup->AppendL( iGestureControl ); // Need a mechanism to distinguish when we receive the MusicVolume @@ -384,11 +381,18 @@ { TRACER("CShwSlideshowView::HandleForegroundEventL"); GLX_LOG_INFO( "CShwSlideshowView::HandleForegroundEventL()" ); - + iIsForegrnd = aForeground; if( aForeground ) { // we gained the foreground - iPauseHandler->SwitchToForegroundL(); + if(iMMCState && iPrevNotInBackground) + { + ProcessCommandL(EAknSoftkeyClose); + } + else + { + iPauseHandler->SwitchToForegroundL(); + } } else { @@ -535,8 +539,8 @@ iBackLightTimer->Cancel(); - //Stop the slideshow! - //NOTE! this needs to be done before the list is closed as the + //Stop the slideshow + //NOTE: this needs to be done before the list is closed as the //destructor removes the engine as medialist observer and also //removes the contexts from the list delete iEngine; @@ -1020,7 +1024,7 @@ // nothing selected, so determine which item has focus in the original list focusIndex = iMediaList->FocusIndex(); const TGlxMedia& mediaItem = iMediaList->Item( focusIndex ); - // is this item in the filtered list? + // Check if this item is in the filtered list TGlxIdSpaceId spaceId = iMediaList->IdSpaceId( focusIndex ); focusIndex = iFilteredList->Index( spaceId, mediaItem.Id() ); if ( focusIndex == KErrNotFound ) @@ -1271,8 +1275,7 @@ // then dont SetImageToHDMI :) if( ( KErrNotFound == focusIndex) || (0 == iFilteredList->Count()) - || (NULL == iHdmiController) - || (!iHdmiController->IsHDMIConnected())) + || (NULL == iHdmiController)) { GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - Cant Set Image To HDMI"); return; @@ -1289,17 +1292,13 @@ && (error == KErrNone) ) { GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - Setting the Image"); - TInt frameCount(0); - TSize orignalSize; - item.GetFrameCount(frameCount); - item.GetDimensions(orignalSize); - iHdmiController->SetImageL(item.Uri(), orignalSize, frameCount); + iHdmiController->SetImageL(item.Uri()); } else { GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - Unsupported Item"); //Set the external display to cloning mode if - //the current item is something we wont support (e.g. video, corrupted item); + //the current item is something we wont support (e.g. video, corrupted item) iHdmiController->ItemNotSupported(); } } @@ -1346,18 +1345,30 @@ } // --------------------------------------------------------------------------- -// HarvestingUpdated // +// HandleMMCInsertionL // --------------------------------------------------------------------------- // -void CShwSlideshowView::HarvestingUpdated( - HarvesterEventObserverType HarvestingUpdated, - HarvesterEventState aHarvesterEventState, - TInt aItemsLeft ) +void CShwSlideshowView::HandleMMCInsertionL() { - TRACER("CShwSlideshowView::HarvestingUpdated()"); - if(HarvestingUpdated == EHEObserverTypeMMC) + TRACER("CShwSlideshowView::HandleMMCInsertionL()"); + iMMCState = ETrue; + iPrevNotInBackground = iIsForegrnd; + if(iIsForegrnd) { ProcessCommandL(EAknSoftkeyClose); } } + +// --------------------------------------------------------------------------- +// +// HandleMMCRemovalL +// --------------------------------------------------------------------------- +// +void CShwSlideshowView::HandleMMCRemovalL() + { + TRACER("CShwSlideshowView::HandleMMCRemovalL()"); + ProcessCommandL(EAknSoftkeyExit); + } + + diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/slideshow/view/src/shwslideshowvolumecontrol.cpp --- a/photosgallery/slideshow/view/src/shwslideshowvolumecontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/slideshow/view/src/shwslideshowvolumecontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -296,7 +296,7 @@ // NotifyControlVisibility // --------------------------------------------------------------------------- void CShwSlideshowVolumeControl::NotifyControlVisibility( TBool aIsVisible, - CAlfDisplay& aDisplay ) + CAlfDisplay& /*aDisplay*/ ) { TRACER("CShwSlideshowVolumeControl::NotifyControlVisibility"); GLX_LOG_ENTRY_EXIT diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmedialistcommandhandler.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmedialistcommandhandler.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmedialistcommandhandler.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -177,12 +177,6 @@ if ( IsSupported( item.iCommandId ) ) { TBool isDisabled = IsDisabledL(item.iCommandId, MediaList()); - - if( !isDisabled && - iCurrentViewingState == TCommandInfo::EViewingStateView ) - { - //isDisabled = sf.IsActivePaletteItemVisible( item.iCommandId ); - } // Check visibility of the menu item aMenuPane->SetItemDimmed( item.iCommandId, isDisabled); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -66,14 +66,8 @@ EXPORT_C CGlxMpxCommandCommandHandler::~CGlxMpxCommandCommandHandler() { TRACER("CGlxMpxCommandCommandHandler::~CGlxMpxCommandCommandHandler"); - // cancel command if running - if (iProgressComplete) - { -// MediaList().Cancel(); - } - + delete iProgressDialog; - if ( iResourceOffset ) { CCoeEnv::Static()->DeleteResourceFile(iResourceOffset); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlerbase/tsrc/ut_cglxmedialistcommandhandler/src/ut_cglxmedialistcommandhandler.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/tsrc/ut_cglxmedialistcommandhandler/src/ut_cglxmedialistcommandhandler.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/tsrc/ut_cglxmedialistcommandhandler/src/ut_cglxmedialistcommandhandler.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -244,8 +244,7 @@ UT_CGlxMediaListCommandHandler* UT_CGlxMediaListCommandHandler::NewL() { UT_CGlxMediaListCommandHandler* self = UT_CGlxMediaListCommandHandler::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -253,9 +252,7 @@ { UT_CGlxMediaListCommandHandler* self = new( ELeave ) UT_CGlxMediaListCommandHandler(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } @@ -322,10 +319,10 @@ }; // ----------------------------------------------------------------------------- -// Test: static TInt SelectionLength(MGlxMediaList& aMediaList); +// Test: UT_CGlxMediaListCommandHandler::Test_SelectionLengthL() // ----------------------------------------------------------------------------- // -void UT_CGlxMediaListCommandHandler::Test_SelectionLengthL( ) +void UT_CGlxMediaListCommandHandler::Test_SelectionLengthL() { #if 1 // This unit test needs to be re-wirtten after changes to SelectionLength() method. iML = new (ELeave) _CGlxTestMediaList; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxcommandhandlerdrm.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxcommandhandlerdrm.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxcommandhandlerdrm.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -323,7 +323,7 @@ GLX_LOG_INFO("CGlxCommandHandlerDrm::ConsumeDRMRightsL check rights"); // check if rights have expired - TBool expired = !iDrmUtility->CheckOpenRightsL(uri, (cat == EMPXImage)); + TBool expired = !iDrmUtility->ItemRightsValidityCheckL(uri, (cat == EMPXImage)); if(expired) { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxdrmiconmanager.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxdrmiconmanager.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxdrmiconmanager.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -372,7 +372,7 @@ TBool checkViewRights = (cat==EMPXImage); - if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights)) + if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights)) { GLX_LOG_INFO("CGlxDrmIconManager::CheckDRMRightsL valid rights"); if(aForceIcon ||!ShouldHaveIcon(id, iconType)) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlermarking/src/glxcommandhandlermarking.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlermarking/src/glxcommandhandlermarking.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlermarking/src/glxcommandhandlermarking.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -149,7 +149,7 @@ // EXPORT_C CGlxCommandHandlerMarking::~CGlxCommandHandlerMarking() { - /// if (but do test this assumption!) + /// if (but do test this assumption) if (iResourceOffset) { CCoeEnv::Static()->DeleteResourceFile(iResourceOffset); @@ -436,12 +436,6 @@ if( aKeyEvent.iScanCode==EStdKeyDevice3 ) { TInt focIdx = mediaList.FocusIndex(); - - /// is already in DoExecuteL: - /// Call ExecuteL with EAknCmdMark or EAknCmdUnmark to avoid duplication. - /// Replace with following code with - /// (void) ExecuteL( mlist.IsSelected( mlist.FocusIndex() ) ? - /// EAknCmdUnmark : EAknCmdMark ); if( focIdx != KErrNotFound ) { if ( mediaList.IsSelected( focIdx ) ) @@ -515,7 +509,7 @@ void CGlxCommandHandlerMarking::HandleItemRemovedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, MGlxMediaList* /*aList*/) { - //UpdateMiddleSoftkeyStatus(); + //Do nothing } // --------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxcommandhandlershowviaupnp/src/t_cglxcommandhandlershowviaupnp.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxcommandhandlershowviaupnp/src/t_cglxcommandhandlershowviaupnp.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxcommandhandlershowviaupnp/src/t_cglxcommandhandlershowviaupnp.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -218,7 +218,7 @@ t_cglxcommandhandlershowviaupnp* t_cglxcommandhandlershowviaupnp::NewL() { t_cglxcommandhandlershowviaupnp* self = t_cglxcommandhandlershowviaupnp::NewLC(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } @@ -279,7 +279,6 @@ void t_cglxcommandhandlershowviaupnp::SetupL1( ) { //create the medialist - // MediaList(); iList = new (ELeave) _CGlxTestMediaList; EUNIT_PRINT(_L("SetupL1 :: created Medialist")); iCommandShowUpnp = CGlxCommandHandlerShowViaUpnp :: NewL(this, EFalse); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxthumbnailsaver/src/t_cglxthumbnailsaver.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxthumbnailsaver/src/t_cglxthumbnailsaver.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxthumbnailsaver/src/t_cglxthumbnailsaver.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -35,8 +35,7 @@ t_cglxthumbnailsaver* t_cglxthumbnailsaver::NewL() { t_cglxthumbnailsaver* self = t_cglxthumbnailsaver::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -44,9 +43,7 @@ { t_cglxthumbnailsaver* self = new( ELeave ) t_cglxthumbnailsaver(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } @@ -79,7 +76,6 @@ EUNIT_PRINT(_L("t_cglxthumbnailsaver::GetSession")); User::LeaveIfError(RFbsSession::Connect()); EUNIT_PRINT(_L("t_cglxthumbnailsaver::FbsSession:: Connected")); - // iData->iFbsCreated = ETrue; } iThumbnail = NULL; iThumbnailSaver = NULL; @@ -153,7 +149,6 @@ void t_cglxthumbnailsaver::T_CreateDefaultVideoIconL() { EUNIT_PRINT(_L("Entering t_cglxthumbnailsaver::T_CreateDefaultVideoIconL")); - //iThumbnailSaver->CreateDefaultVideoIconL(); } //From MGlxThumbnailSaveComplete diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxupnprendererimpl/src/t_cglxupnprendererimpl.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxupnprendererimpl/src/t_cglxupnprendererimpl.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxupnprendererimpl/src/t_cglxupnprendererimpl.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -37,8 +37,7 @@ t_cglxupnprendererimpl* t_cglxupnprendererimpl::NewL() { t_cglxupnprendererimpl* self = t_cglxupnprendererimpl::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -46,9 +45,7 @@ { t_cglxupnprendererimpl* self = new( ELeave ) t_cglxupnprendererimpl(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/src/t_glxcmdhndlrcopytohomentwk.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/src/t_glxcmdhndlrcopytohomentwk.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/src/t_glxcmdhndlrcopytohomentwk.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -229,7 +229,7 @@ t_cglxcommandhandlercopytohomenetwork* t_cglxcommandhandlercopytohomenetwork::NewL() { t_cglxcommandhandlercopytohomenetwork* self = t_cglxcommandhandlercopytohomenetwork::NewLC(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } @@ -280,8 +280,6 @@ iList = NULL; iCommandHandlerCopyToHomeNetwork = NULL; //create the medialist - // MediaList(); - // iCommandHandlerCopyToHomeNetwork = CGlxCommandHandlerCopyToHomeNetwork :: NewL(*this); iList = new (ELeave) _CGlxTestMediaList; iCommandHandlerCopyToHomeNetwork = new (ELeave) CGlxCommandHandlerCopyToHomeNetwork(*this); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxupnprenderer/src/t_glxupnprenderer.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxupnprenderer/src/t_glxupnprenderer.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxupnprenderer/src/t_glxupnprenderer.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -33,7 +33,7 @@ t_glxupnprenderer* t_glxupnprenderer::NewL() { t_glxupnprenderer* self = t_glxupnprenderer::NewLC(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/group/glxcommoncommandhandlers.mmp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/group/glxcommoncommandhandlers.mmp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/group/glxcommoncommandhandlers.mmp Wed Mar 31 21:31:03 2010 +0300 @@ -70,7 +70,8 @@ SOURCE glxaiwmedia.cpp SOURCE glxcommandhandlerfilterimagesorvideos.cpp SOURCE glxcommandhandleropen.cpp -SOURCE glxcommandhandleraiwshowonmaphardkey.cpp +SOURCE glxcommandhandleraiwshowonmaphardkey.cpp +SOURCE glxuploadcenrepwatcher.cpp USERINCLUDE ../inc @@ -145,4 +146,5 @@ LIBRARY glxtexturemanager.lib LIBRARY glximageviewermanager.lib LIBRARY mpxplaybackutility.lib // MPX playback utility +LIBRARY thumbnailmanager.lib // End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshowonmaphardkey.h --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshowonmaphardkey.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshowonmaphardkey.h Wed Mar 31 21:31:03 2010 +0300 @@ -80,29 +80,6 @@ * Called when the owning view is deactivated */ void Deactivate(); -// Below methods are commented as they hold implemenatation of dofferent commandhandler -// To check map service providers -// To navigate to the location -//public: // New methods - - /** - * It will return total map service providers. - * @since S60 v9.1 - * @ret total number of map service providers - */ -// TInt MapServiceProvidersL(); - - /** - * It will show location on map - * @since S60 v9.1 - */ -// IMPORT_C void ShowOnMapL( const TCoordinate& aCoordinate ); - - /** - * It will navigate to location - * @since S60 v9.1 - */ -// void NavigateToPlaceL( const TCoordinate& aCoordinate ); private: /** diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h Wed Mar 31 21:31:03 2010 +0300 @@ -106,12 +106,6 @@ CGlxCommandHandlerBack(MGlxMediaListProvider* aMediaListProvider, TInt aPrevViewId ); - // This API to be removed after testing with migration is over - /** - * check if deletion of container need to be checked - */ - // TBool CheckContainerDeletion() const; - public: // From MGlxCommandHandler /** diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdetails.h --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdetails.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdetails.h Wed Mar 31 21:31:03 2010 +0300 @@ -76,6 +76,14 @@ /** @see CGlxMediaListCommandHandler::DoIsDisabled */ TBool DoIsDisabled(TInt aCommandId, MGlxMediaList& aList) const; + + /** + * It checks whether full screen thumbnail for + * focus item is available or not + * @param aList Medialist to use + * @return ETrue if any full screen thumbnail available + */ + TBool IsThumbnailAvailable(MGlxMediaList& aList) const; private: // implementation diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerupload.h --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerupload.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerupload.h Wed Mar 31 21:31:03 2010 +0300 @@ -21,6 +21,9 @@ // EXTERNAL INCLUDES #include "AiwServiceHandler.h" // AIW service handler +#include // for checking the ShareOnline version +#include +#include // INTERNAL INCLUDES #include "glxmedialistcommandhandler.h" // for MediaListCommandHandler @@ -29,6 +32,17 @@ // FORWARD DECLARATIONS class MGlxMediaListProvider; class CGlxDefaultAttributeContext; +class CGlxUploadCenRepWatcher; + +// For upload icon change notification +class MGlxUploadIconObserver + { +public: + /** + * Handle upload icon changes + */ + virtual void HandleUploadIconChangedL( ) = 0; + }; /** * Command handler that launches Upload AIW ShareOnline @@ -38,7 +52,8 @@ // CLASS DECLARATION -NONSHARABLE_CLASS (CGlxCommandHandlerUpload) : public CGlxMediaListCommandHandler +NONSHARABLE_CLASS (CGlxCommandHandlerUpload) : public CGlxMediaListCommandHandler, +public MGlxMediaListObserver, public MThumbnailManagerObserver, public MGlxUploadIconObserver { public: // Constructors and destructor /** @@ -59,6 +74,31 @@ * To set the Help Text for Upload button on toolbar */ void SetToolTipL(); + + +public: // From MGlxMediaListObserver + void HandleItemAddedL(TInt aStartIndex, TInt aEndIndex, + MGlxMediaList* aList); + + void HandleMediaL(TInt aListIndex, MGlxMediaList* aList); + + void HandleItemRemovedL(TInt aStartIndex, TInt aEndIndex, + MGlxMediaList* aList); + void HandleItemModifiedL(const RArray& aItemIndexes, + MGlxMediaList* aList); + void HandleAttributesAvailableL(TInt aItemIndex, + const RArray& aAttributes, MGlxMediaList* aList); + void HandleFocusChangedL(NGlxListDefs::TFocusChangeType aType, + TInt aNewIndex, TInt aOldIndex, MGlxMediaList* aList); + void HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList); + void HandleMessageL(const CMPXMessage& aMessage, MGlxMediaList* aList); + void HandlePopulatedL(MGlxMediaList* aList); + +public: // from MGlxUploadIconObserver + /** + * @ref MGlxUploadIconObserver::HandleUploadIconChangedL + */ + void HandleUploadIconChangedL( ); protected: //@ref From CGlxCommandHandler @@ -104,6 +144,13 @@ * Called when the owning view is deactivated */ void Deactivate(); + +private: // From MThumbnailManagerObserver + + void ThumbnailPreviewReady( MThumbnailData& aThumbnail, + TThumbnailRequestId aId ); + void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail, + TThumbnailRequestId aId ); private: /** @@ -127,8 +174,48 @@ */ void InitializeOneClickUploadL(); + /** + * To check whether its is fullscreen view + */ + TBool IsFullScreenViewL(); + + /** + * Disable/Enable the upload toolbar item + */ + void DisableUploadToolbarItem(TBool aDimmed); + + /** + * Updates the selection count based on the mimetypes + */ + void UpdateSelectionCount(TInt aIndex, TBool aSelected, MGlxMediaList* aList); + + /** + * Gets the Icon path and fileName from the cenrep + */ + void GetIconNameL(TDes& aUplaodIconName); + + /** + * Decodes the Icon using the TNM Manager + */ + void DecodeIconL(const TDes& aUplaodIconNmae); + + + /** + * Updates the Toolbar upload icon based on the current selection + */ + void UpdateFSUploadIconL(); + + + /** + * Sets the decoded upload icon to the toolbar item + */ + void SetDecodedUploadIconL(MThumbnailData& aThumbnail); + private: // data + //Cenrep watcher for monitoring the icon changes + CGlxUploadCenRepWatcher* iUploadCenRepWatcher; + // ID of owning view TInt iViewId; @@ -142,7 +229,29 @@ CGlxUiUtility* iUiUtility; // Owned - AIW Service Handler - CAiwServiceHandler* iServiceHandler; + CAiwServiceHandler* iServiceHandler; + + CThumbnailManager* iTnEngine; // Own + + //Keep the count of no. of images/videos selected + TInt iSelectedImageCount; + TInt iSelectedVideoCount; + + //keep track of current icon used + enum TCenRepMonitors + { + EMonitorNone, + EImageMonitor, + EVideoMonitor, + EImageVideoMonitor + }; + + TCenRepMonitors iCurrentCenRepMonitor; + + //Toolbar instance of current view + CAknToolbar* iToolbar; + + TThumbnailRequestId iTnmRequestID; }; #endif //__GLXCOMMANDHANDLERUPLOAD_H__ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxuploadcenrepwatcher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxuploadcenrepwatcher.h Wed Mar 31 21:31:03 2010 +0300 @@ -0,0 +1,103 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Upload cenrep watcher +* +*/ + +#ifndef __GLXUPLOADCENREPWATCHER_H__ +#define __GLXUPLOADCENREPWATCHER_H__ + + +class CGlxCommandHandlerUpload; + +/** + * CGlxUploadCenRepWatcher + * CGlxCommandHandlerUpload containted class for observing changes in central + * repository values + */ +NONSHARABLE_CLASS( CGlxUploadCenRepWatcher ) : public CActive + { + public: // Constructors and destructor + + /** + * Symbian Constructor. + * @param aObserver obersver - only supplied when the owner is + * interested in changes in key value + * @param aRepositoryUid uid of Central Repository file + * @param aId id of the Central Repository key + * @return contructed object + */ + static CGlxUploadCenRepWatcher* NewL(MGlxUploadIconObserver& aUploadIconObserver, + const TUid& aRepositoryUid, + TUint32 aId ); + /** + * Destructor. + */ + ~CGlxUploadCenRepWatcher(); + + public: // API + + /** + * Get current value as 16 bit descriptor. + * @param return value of the key in the descriptor + */ + void KeyValueL(TDes& aKeyValue) const; + + private: // Implementation + + /** + * C++ constructor. + * @param aObserver obersver + * @param aRepositoryUid uid of CenRep file + * @param aId id of the key + * @return contructed object + */ + CGlxUploadCenRepWatcher(MGlxUploadIconObserver& aUploadIconObserver, + const TUid& aRepositoryUid, TUint32 aId ); + + /** + * 2nd phase constructor + */ + void ConstructL(); + + protected: // from CActive + + /** + * @ref CActive::RunL + */ + void RunL(); + + /** + * @ref CActive::DoCancel + */ + void DoCancel(); + + /** + * @ref CActive::RunError + */ + TInt RunError( TInt aError ); + + private: // Implementation + // Not Owned: the upload icon observer + MGlxUploadIconObserver& iUploadIconObserver; + // Own: the central repository API + CRepository* iRepository; + // the central repository identifier + TUid iRepositoryUid; + // the key id + TUint32 iId; + + }; + +#endif //__GLXUPLOADCENREPWATCHER_H__ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxaiwmedia.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxaiwmedia.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxaiwmedia.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -50,25 +50,6 @@ { if (KErrNotFound == iParamArray.Find(aParam)) { -/* -#ifdef __WINSCW__ - // Big hack! replace "video/MP4V-ES" with "video/mp4" - // Hack to be removed when TSW error: VKAN-77D92E is released - TAiwGenericParam MimeType1( EGenericParamMIMEType, TAiwVariant( _L("video/MP4V-ES") )); - TAiwGenericParam MimeType2( EGenericParamMIMEType, TAiwVariant( _L("video/mp4") )); - - if (aParam == MimeType1) - { - iParamArray.AppendL(MimeType2); - } - else - { - iParamArray.AppendL(aParam); - } -#else - iParamArray.AppendL(aParam); -#endif -*/ iParamArray.AppendL(aParam); return ETrue; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -122,7 +122,7 @@ // DynInitMenuPaneL // ----------------------------------------------------------------------------- // -void CGlxCommandHandlerAiwEdit::DynInitMenuPaneL(TInt aResourceId, +void CGlxCommandHandlerAiwEdit::DynInitMenuPaneL(TInt /*aResourceId*/, CEikMenuPane* aMenuPane) { MGlxMediaList& mediaList = MediaList(); @@ -134,7 +134,7 @@ if (iCommandSingleClick && aMenuPane->MenuItemExists( EGlxCmdAiwSingleClickEdit, pos) - && ((mediaList.SelectionCount() > 1) + && (((!mediaList.Count()) || (mediaList.SelectionCount() > 1)) || (!iFeatManager->IsFeatureSupportedL( KFeatureIdFfImageEditor) && !iFeatManager->IsFeatureSupportedL( diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwprintpreview.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwprintpreview.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwprintpreview.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -136,7 +136,7 @@ // AiwDoDynInitMenuPaneL // ----------------------------------------------------------------------------- // -void CGlxCommandHandlerAiwPrintPreview::AiwDoDynInitMenuPaneL(TInt aResourceId, +void CGlxCommandHandlerAiwPrintPreview::AiwDoDynInitMenuPaneL(TInt /*aResourceId*/, CEikMenuPane* aMenuPane) { TBool fullscreenViewingMode = EFalse; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -151,9 +151,12 @@ aCommandId ); if(EAknSoftkeyClose == aCommandId) { - GLX_LOG_INFO("CGlxCommandHandlerBack::ExecuteL::goto \ + GLX_LOG_INFO("CGlxCommandHandlerBack::ExecuteL::go to \ root in UI hierarchy"); - iNavigationalState->NavigateToParentL(); + CMPXCollectionPath* newState = CMPXCollectionPath::NewL(); + CleanupStack::PushL( newState ); + iNavigationalState->NavigateToL( *newState ); + CleanupStack::PopAndDestroy( newState ); consume = ETrue; } else if ( aCommandId == EAknSoftkeyBack ) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdetails.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdetails.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdetails.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -208,7 +208,8 @@ GLX_DEBUG2("GLX_Property::DoExecuteL::URI:%S:",&uri); iUiUtility->SetViewNavigationDirection(EGlxNavigationForwards); - if (aList.Collection().UidL().iUid == KGlxCollectionPluginImageViewerImplementationUid) + if (aList.Collection().UidL().iUid == + KGlxCollectionPluginImageViewerImplementationUid) { CGlxImgVwrMetadataDialog* dialog = CGlxImgVwrMetadataDialog::NewL( uri); dialog->ExecuteLD(); @@ -282,6 +283,7 @@ TBool CGlxCommandHandlerDetails::DoIsDisabled(TInt aCommandId, MGlxMediaList& aList) const { + TRACER("CGlxCommandHandlerDetails:DoIsDisabled"); TBool fullscreenViewingMode = EFalse; CGlxNavigationalState* aNavigationalState = CGlxNavigationalState::InstanceL(); CMPXCollectionPath* naviState = aNavigationalState->StateLC(); @@ -311,12 +313,40 @@ CleanupStack::PopAndDestroy( naviState ); aNavigationalState->Close(); - if(EGlxCmdDetails==aCommandId && (0 == aList.Count() || 1 != aList.SelectionCount())&& !fullscreenViewingMode ) + // If fullscreen view is there but media item dont have yet + // data to be shown in detail than hide detail option + if(fullscreenViewingMode && !IsThumbnailAvailable(aList)) + { + return ETrue; + } + + if(EGlxCmdDetails==aCommandId && (0 == aList.Count() || 1 != aList.SelectionCount()) + && !fullscreenViewingMode ) { return ETrue; } return EFalse; } +// ----------------------------------------------------------------------------- +// IsThumbnailAvailable +// ----------------------------------------------------------------------------- +// +TBool CGlxCommandHandlerDetails::IsThumbnailAvailable(MGlxMediaList& aList) const + { + TRACER("CGlxCommandHandlerDetails::IsThumbnailAvailable"); + if (0 == aList.Count()) + { + return EFalse; + } + + TMPXAttribute attr; + TSize size = iUiUtility->DisplaySize(); + GLX_LOG_INFO2( + "CGlxCommandHandlerDetails::IsThumbnailAvailable() w(%d) h(%d)", + size.iWidth, size.iHeight); + return aList.Item(aList.FocusIndex()).GetClosestThumbnail(attr, size, + EFalse); + } //End of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -258,7 +258,7 @@ // put to cleanupstack as cleanupstack is emptied before stack objects // are deleted CleanupClosePushL( contextRemover ); - // Yuck - a leave and a return code! + // Yuck - a leave and a return code // EFalse => don't show a progress dialog TInt err = GlxAttributeRetriever::RetrieveL( *context, aList, EFalse ); // Using a distinct error value as "LeaveIfError( FuncL() );" looks bad diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotate.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotate.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotate.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -373,7 +373,6 @@ return finalOrientation; } - //Nitz subst code TInt rotOffset = iRotationAngle/90; TInt isOrientationOdd = aInitialOrientation % 2; TInt initStateIndex = 0; @@ -429,9 +428,6 @@ HBufC8* ModifiedexifData=NULL; //need only first KGlxMaxExifSize bytes of data as exif cannot bypass this size TRAPD(err,ModifiedexifData = iExifWriter->WriteDataL(iExifData->Des())); - //Nitz To-do Write only first KGlxMaxExifSize bytes to the file - //It currently fails in cases of JPEG files without Exif so removing it. - //TPtrC8 exifPtr = ModifiedexifData->Mid(0,KGlxMaxExifSize); if(err == KErrNone) { iFileHandle.Write(0,ModifiedexifData->Des()); @@ -527,7 +523,7 @@ CMPXCommand* command = TGlxCommandFactory::ThumbnailCleanupCommandLC(); command->SetTObjectValueL(KMPXCommandGeneralSessionId, static_cast(this)); - //Nitz To Do Initialize cleanup command Just for the respective Media Items + //To Do Initialize cleanup command Just for the respective Media Items iMediaList->CommandL(*command); CleanupStack::PopAndDestroy(command); iMediaList->RemoveMediaListObserver(this); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -111,7 +111,7 @@ info.iDisallowAnimatedGIFs = ETrue; // Disable DRM protected content info.iDisallowDRM = ETrue; - // Note! cannot just require all to be images as user can also start + // Note: cannot just require all to be images as user can also start // slideshow for a whole album from list view and in that case // selection contains a container // Disable all videos diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -17,12 +17,13 @@ // CLASS HEADER #include "glxcommandhandlerupload.h" +#include "glxuploadcenrepwatcher.h" +#include // EXTERNAL INCLUDES #include // for passing data between applications #include // for getting the button state #include // for accessing currently active toolbar -#include // for checking the ShareOnline version #include // for directory and file names #include // for CnvUtfConverter @@ -36,21 +37,33 @@ #include // for Share AIW interest resource #include // for accessing the media items +#include +#include + +#include +#include + // CONSTANTS AND DEFINITIONS namespace { - // ShareOnline application UID - const TUid KShareOnlineUid = { 0x2000BB53 }; + // ShareOnline application UID + const TUid KShareOnlineUid = { 0x2002CC1F }; // Shareonline Application version - const TUint32 KShareApplicationVersion = 0x01010020; + const TUint32 KShareApplicationVersion = 0x1010020; // Buffer to maintain the ShareOnline version number in use const TInt KPhotosShareOnlineVersionBufLen = 12; // Minimum version required for OneClickUpload to work - const TVersion KShareOnlineMinimumVersion( 4, 3, 0 ); + const TVersion KShareOnlineMinimumVersion( 5, 0, 0 ); // OneClickUpload command const TUid KOpenModeOneClick = { 2 }; // Command to request for the tooltip const TUid KCmdGetOneClickToolTip = { 15 }; + // OneClickUpload default image icon + const TUint32 KUploadImageServiceIconFileName = 0x00000002; + // OneClickUpload default video icon + const TUint32 KUploadVideoServiceIconFileName = 0x00000003; + // OneClickUpload default video and image icon + const TUint32 KUploadImageAndVideoServiceIconFileName = 0x00000004; } // ---------------------------------------------------------------------------- @@ -100,7 +113,20 @@ iUploadSupported = ETrue; } ); + iSelectedImageCount = 0; + iSelectedVideoCount = 0; + iCurrentCenRepMonitor = EMonitorNone; + iTnmRequestID = KErrNotFound; + //Check for fullscreen here since we dont get the activate call in FS. + if(IsFullScreenViewL()) + { + //Giving the viewid as zero, since its not used anywhere. + iToolbar = iAvkonAppUi->CurrentFixedToolbar(); + ActivateL(0); + UpdateFSUploadIconL(); + } + // Add the upload command TCommandInfo info(EGlxCmdUpload); AddCommandL(info); @@ -112,12 +138,14 @@ EXPORT_C CGlxCommandHandlerUpload::~CGlxCommandHandlerUpload() { TRACER("CGlxCommandHandlerUpload::~CGlxCommandHandlerUpload"); + delete iTnEngine; if (iUiUtility) { iUiUtility->Close(); } delete iServiceHandler; + delete iUploadCenRepWatcher; } // InitializeAIWForShareOnlineL @@ -130,7 +158,7 @@ iServiceHandler = CAiwServiceHandler::NewL(); // Attach the AIW Resource defined in uiutilities.rss - iServiceHandler->AttachL( R_AIW_SHARE_BASE_INTEREST ); + iServiceHandler->AttachL( R_GLX_AIW_SHARE_BASE_INTEREST ); } // Check Share Online version @@ -211,6 +239,7 @@ { CAiwGenericParamList& inputParams = iServiceHandler->InParamListL(); + inputParams.Reset(); TAiwVariant variant( KOpenModeOneClick ); //For one click photo upload TAiwGenericParam param( EGenericParamModeActivation, variant ); @@ -234,8 +263,18 @@ void CGlxCommandHandlerUpload::DoActivateL(TInt aViewId) { TRACER("CGlxCommandHandlerUpload::DoActivateL"); - iViewId = aViewId; + iViewId = aViewId; + + // get media list from provider and add observer + + MediaList().AddMediaListObserverL( this ); + //Get the grid toolbar here as it wont be created yet in + //constructor + if(!IsFullScreenViewL()) + { + iToolbar = iUiUtility->GetGridToolBar(); + } } // ---------------------------------------------------------------------------- @@ -244,7 +283,14 @@ void CGlxCommandHandlerUpload::Deactivate() { TRACER("CGlxCommandHandlerUpload::Deactivate"); - + + //Remove the Medialist observer + MediaList().RemoveMediaListObserver( this ); + + //Reset the tracking variables here + iSelectedImageCount = 0; + iSelectedVideoCount = 0; + iCurrentCenRepMonitor = EMonitorNone; } // ---------------------------------------------------------------------------- @@ -319,7 +365,15 @@ void CGlxCommandHandlerUpload::PopulateToolbarL() { TRACER( "CGlxCommandHandlerUpload::PopulateToolbarL" ); - + + //When the Upload is not supported or if we are in grid view + //and none of the item is selected Dim the Upload icon + if(!iUploadSupported || (!IsFullScreenViewL() && + (MediaList().SelectionCount()== 0))) + { + DisableUploadToolbarItem(ETrue); + } + if( iUploadSupported ) { SetToolTipL(); @@ -335,6 +389,7 @@ TRACER("CGlxCommandHandlerUpload::GetToolTipL"); CAiwGenericParamList& inputParams = iServiceHandler->InParamListL(); + inputParams.Reset(); // Insert Command parameter that tells provider that tooltip is required TAiwVariant variant(KCmdGetOneClickToolTip); @@ -343,6 +398,8 @@ //Get a reference to output parameter list CAiwGenericParamList& outputParams = iServiceHandler->OutParamListL(); + outputParams.Reset(); + iServiceHandler->ExecuteServiceCmdL(KAiwCmdUpload, inputParams, outputParams); //Tooltip is returned as a parameter in output list @@ -366,14 +423,13 @@ { TRACER("CGlxCommandHandlerUpload::SetToolTipL"); - CAknToolbar* toolbar = iAvkonAppUi->CurrentFixedToolbar(); - if (!toolbar) + if (!iToolbar) { return; } CAknButton* uploadButton = - static_cast (toolbar->ControlOrNull(EGlxCmdUpload)); + static_cast (iToolbar->ControlOrNull(EGlxCmdUpload)); if (uploadButton && iUploadSupported) { @@ -409,5 +465,406 @@ } // if(uploadButton && iUploadSupported) } + +// ---------------------------------------------------------------------------- +// HandleItemAddedL +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, + MGlxMediaList* /*aList*/) + { + + } + + +// ---------------------------------------------------------------------------- +// HandleMediaL +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::HandleMediaL(TInt /*aListIndex*/, MGlxMediaList* /*aList*/) + { + + } + + +// ---------------------------------------------------------------------------- +// HandleItemRemovedL +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::HandleItemRemovedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, + MGlxMediaList* /*aList*/) + { + + } + + +// ---------------------------------------------------------------------------- +// HandleItemModifiedL +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::HandleItemModifiedL(const RArray& /*aItemIndexes*/, + MGlxMediaList* /*aList*/) + { + + } + + +// ---------------------------------------------------------------------------- +// HandleAttributesAvailableL +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::HandleAttributesAvailableL(TInt /*aItemIndex*/, + const RArray& /*aAttributes*/, MGlxMediaList* /*aList*/) + { + TRACER("CGlxCommandHandlerUpload::HandleAttributesAvailableL"); + } + + +// ---------------------------------------------------------------------------- +// HandleFocusChangedL +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::HandleFocusChangedL(NGlxListDefs::TFocusChangeType /*aType*/, + TInt /*aNewIndex*/, TInt /*aOldIndex*/, MGlxMediaList* /*aList*/) + { + TRACER("CGlxCommandHandlerUpload::HandleFocusChangedL"); + //In Fullscreen change the icons based on current focused icon + if(iUploadSupported && IsFullScreenViewL()) + { + UpdateFSUploadIconL(); + } + } + + +// ---------------------------------------------------------------------------- +// HandleItemSelectedL +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList) + { + TRACER("CGlxCommandHandlerUpload::HandleItemSelectedL"); + //In grid if an item is selected update the toolbar icon based on + //the mime types of items + if(iUploadSupported && !IsFullScreenViewL()) + { + if(aList->SelectionCount() >= 1 ) + { + TFileName uploadIconFileName; + UpdateSelectionCount(aIndex, aSelected, aList); + GetIconNameL(uploadIconFileName); + if(uploadIconFileName.Length()) + { + DecodeIconL(uploadIconFileName); + } + DisableUploadToolbarItem(EFalse); + } + else + { + iSelectedImageCount = 0; + iSelectedVideoCount = 0; + iCurrentCenRepMonitor = EMonitorNone; + delete iUploadCenRepWatcher; + iUploadCenRepWatcher = NULL; + DisableUploadToolbarItem(ETrue); + } + } + } + + +// ---------------------------------------------------------------------------- +// HandleMessageL +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::HandleMessageL(const CMPXMessage& /*aMessage*/, MGlxMediaList* /*aList*/) + { + + } + + +// ---------------------------------------------------------------------------- +// HandlePopulatedL +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::HandlePopulatedL(MGlxMediaList* aList) + { + if(aList && aList->Count() > 0) + { + if(!iUploadSupported || !IsFullScreenViewL()) + { + DisableUploadToolbarItem(ETrue); + } + } + } + +//---------------------------------------------------------------------------- +// Check for current view mode .Grid/fullscreen/imgviewer +//---------------------------------------------------------------------------- +// +TBool CGlxCommandHandlerUpload::IsFullScreenViewL() + { + TRACER("CGlxCommandHandlerUpload::IsFullScreenViewL"); + TBool fullscreenViewingMode = EFalse; + + CGlxNavigationalState* navigationalState = CGlxNavigationalState::InstanceL(); + CleanupClosePushL( *navigationalState ); + CMPXCollectionPath* naviState = navigationalState->StateLC(); + + if ( naviState->Levels() >= 1) + { + if (navigationalState->ViewingMode() == NGlxNavigationalState::EBrowse) + { + // For image viewer collection, goto view mode + if (naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid)) + { + // current view mode is img vwr + fullscreenViewingMode = ETrue; + } + else + { + //current view mode is Grid + fullscreenViewingMode = EFalse; + } + } + else + { + //current view mode is Fullscreen + fullscreenViewingMode = ETrue; + } + } + CleanupStack::PopAndDestroy( naviState ); + CleanupStack::PopAndDestroy( navigationalState ); + return fullscreenViewingMode; + } + +// ---------------------------------------------------------------------------- +// DisableUploadToolbarItem +// ---------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::DisableUploadToolbarItem(TBool aDimmed) + { + TRACER("CGlxCommandHandlerUpload::DisableUploadToolbarItem"); + + if(iToolbar) + { + iToolbar->SetItemDimmed(EGlxCmdUpload, aDimmed, ETrue); + //DrawNow must be called since SetDimmed does not redraw the toolbar + iToolbar->DrawNow(); + } + } + +// ----------------------------------------------------------------------------- +// CGlxCommandHandlerUpload::ThumbnailPreviewReady() +// ----------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::ThumbnailPreviewReady(MThumbnailData& /*aThumbnail*/, + TThumbnailRequestId /*aId*/) + { + TRACER("CGlxCommandHandlerUpload::ThumbnailPreviewReady"); + } + +// ----------------------------------------------------------------------------- +// CGlxCommandHandlerUpload::ThumbnailReady() +// ----------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::ThumbnailReady(TInt aError, + MThumbnailData& aThumbnail, TThumbnailRequestId /*aId*/) + { + TRACER("CGlxCommandHandlerUpload::ThumbnailReady"); + + if(aError == KErrNone) + { + TRAP_IGNORE(SetDecodedUploadIconL(aThumbnail)); + } + } + +// ----------------------------------------------------------------------------- +// CGlxCommandHandlerUpload::SetDecodedUploadIconL() +// ----------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::SetDecodedUploadIconL(MThumbnailData& aThumbnail) + { + CAknButton* uploadButton = + static_cast (iToolbar->ControlOrNull(EGlxCmdUpload)); + + if(uploadButton) + { + CAknButtonState* currentState = uploadButton->State(); + CFbsBitmap* normalBmp = aThumbnail.DetachBitmap(); + CFbsBitmap* pressedBmp = new (ELeave) CFbsBitmap; + pressedBmp->Duplicate(normalBmp->Handle()); + //Ownership of the icon is transferred here + currentState->SetIcon(CGulIcon::NewL(normalBmp)); + currentState->SetPressedIcon(CGulIcon::NewL(pressedBmp)); + iToolbar->DrawNow(); + } + } + +// ----------------------------------------------------------------------------- +// CGlxCommandHandlerUpload::UpdateSelectionCount() +// ----------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::UpdateSelectionCount(TInt aIndex, TBool aSelected, MGlxMediaList* aList) + { + TRACER("CGlxCommandHandlerUpload::UpdateSelectionCount"); + if(!aList) + { + return; + } + + TGlxMedia media = aList->Item(aIndex); + + switch(media.Category()) + { + case EMPXImage: + aSelected?iSelectedImageCount++:iSelectedImageCount--; + break; + case EMPXVideo: + aSelected?iSelectedVideoCount++:iSelectedVideoCount--; + break; + default: + break; + } + } + +// ----------------------------------------------------------------------------- +// CGlxCommandHandlerUpload::GetIconNameL() +// ----------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::GetIconNameL(TDes& aUplaodIconNmae) + { + TRACER("CGlxCommandHandlerUpload::GetIconNameL"); + TUint32 serviceIconId = KErrNone; + + if(iSelectedImageCount && iSelectedVideoCount) + { + if(iCurrentCenRepMonitor != EImageVideoMonitor) + { + serviceIconId = KUploadImageAndVideoServiceIconFileName; + iCurrentCenRepMonitor = EImageVideoMonitor; + } + } + else if(iSelectedImageCount) + { + if(iCurrentCenRepMonitor != EImageMonitor) + { + serviceIconId = KUploadImageServiceIconFileName; + iCurrentCenRepMonitor = EImageMonitor; + } + } + else if(iSelectedVideoCount) + { + if(iCurrentCenRepMonitor != EVideoMonitor) + { + serviceIconId = KUploadVideoServiceIconFileName; + iCurrentCenRepMonitor = EVideoMonitor; + } + } + + if(serviceIconId != KErrNone) + { + delete iUploadCenRepWatcher; + iUploadCenRepWatcher = NULL; + + iUploadCenRepWatcher = CGlxUploadCenRepWatcher::NewL(*this, KShareOnlineUid, + serviceIconId ); + iUploadCenRepWatcher->KeyValueL(aUplaodIconNmae); + } + } + +// ----------------------------------------------------------------------------- +// CGlxCommandHandlerUpload::DecodeIconL() +// ----------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::DecodeIconL(const TDes& aUplaodIconNmae) + { + TRACER("CGlxCommandHandlerUpload::DecodeIconL"); + + if(!iTnEngine) + { + iTnEngine = CThumbnailManager::NewL( *this); + iTnEngine->SetDisplayModeL( EColor16M ); + } + + if(iTnmRequestID != KErrNotFound) + { + //Cancel any outstanding request + iTnEngine->CancelRequest(iTnmRequestID); + } + + iTnEngine->SetFlagsL(CThumbnailManager::EDefaultFlags); + + CAknButton* uploadButton = + static_cast (iToolbar->ControlOrNull(EGlxCmdUpload)); + if(uploadButton) + { + CAknButtonState* currentState = uploadButton->State(); + const CGulIcon *icon = currentState->Icon(); + iTnEngine->SetThumbnailSizeL(icon->Bitmap()->SizeInPixels()); + iTnEngine->SetQualityPreferenceL(CThumbnailManager::EOptimizeForQuality); + CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC(aUplaodIconNmae, 0); + iTnmRequestID = iTnEngine->GetThumbnailL(*source); + CleanupStack::PopAndDestroy(source); + } + } + + +// ----------------------------------------------------------------------------- +// CGlxCommandHandlerUpload::UpdateFSUploadIconL() +// ----------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::UpdateFSUploadIconL() + { + if(!iUploadSupported) + { + return; + } + + // get the media list reference + MGlxMediaList& mediaList = MediaList(); + if(mediaList.Count() ) + { + TGlxMedia media = mediaList.Item(mediaList.FocusIndex()); + iSelectedImageCount = 0; + iSelectedVideoCount = 0; + if(media.Category() == EMPXImage) + { + iSelectedImageCount++; + } + else if(media.Category() == EMPXVideo) + { + iSelectedVideoCount++; + } + + if(iSelectedImageCount || iSelectedVideoCount) + { + TFileName uploadIconFileName; + GetIconNameL(uploadIconFileName); + + if(uploadIconFileName.Length()) + { + DecodeIconL(uploadIconFileName); + } + } + } + } + +//----------------------------------------------------------------------------- +// From class MGlxUploadIconObserver. +// Called when upload icon changes +//----------------------------------------------------------------------------- +// +void CGlxCommandHandlerUpload::HandleUploadIconChangedL( ) + { + TRACER("CGlxCommandHandlerUpload::HandleUploadIconChangedL"); + if(iUploadSupported && iUploadCenRepWatcher) + { + TFileName uploadIconFileName; + iUploadCenRepWatcher->KeyValueL(uploadIconFileName); + if(uploadIconFileName.Length()) + { + DecodeIconL(uploadIconFileName); + } + } + } // End of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlervideoplayback.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlervideoplayback.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlervideoplayback.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -214,7 +214,7 @@ { GLX_LOG_INFO( "CmdHandler VideoPlayback - SelectPlayerL(+)" ); const TUid playbackMode = { 0x200009EE }; // photos UID - iPlaybackUtility = MMPXPlaybackUtility::UtilityL( playbackMode ); + iPlaybackUtility = MMPXPlaybackUtility::UtilityL(EMPXCategoryVideo, playbackMode ); MMPXPlayerManager& manager = iPlaybackUtility->PlayerManager(); manager.SelectPlayerL( KVideoHelixPlaybackPluginUid ); iPlaybackUtility->AddObserverL( *this ); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxuploadcenrepwatcher.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxuploadcenrepwatcher.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Upload cenrep watcher +* +*/ + +// CLASS HEADER +#include // for checking the ShareOnline version +#include "glxcommandhandlerupload.h" +#include "glxuploadcenrepwatcher.h" + +#include // for TRACER logs + + +// ----------------------------------------------------------------------------- +// Two-phased constructor. +// ----------------------------------------------------------------------------- +CGlxUploadCenRepWatcher* CGlxUploadCenRepWatcher::NewL + (MGlxUploadIconObserver& aUploadIconObserver, + const TUid& aRepositoryUid, + TUint32 aId ) + { + TRACER("CGlxUploadCenRepWatcher::NewL"); + + CGlxUploadCenRepWatcher* self = + new(ELeave) CGlxUploadCenRepWatcher(aUploadIconObserver, aRepositoryUid, aId ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// constructor. +// ----------------------------------------------------------------------------- +inline CGlxUploadCenRepWatcher::CGlxUploadCenRepWatcher( + MGlxUploadIconObserver& aUploadIconObserver, + const TUid& aRepositoryUid, TUint32 aId ) + : CActive(EPriorityStandard), + iUploadIconObserver(aUploadIconObserver), + iRepositoryUid(aRepositoryUid), + iId(aId) + { + } + +// ---------------------------------------------------------------------------- +// Symbian 2nd phase constructor +// ---------------------------------------------------------------------------- +void CGlxUploadCenRepWatcher::ConstructL() + { + TRACER("CGlxUploadCenRepWatcher::ConstructL"); + CActiveScheduler::Add( this ); + iRepository = CRepository::NewL(iRepositoryUid); + + //Request notification when the user changes cenrep values + TInt err = iRepository->NotifyRequest( iId, iStatus ); + if (!(KErrNone ==err ||KErrAlreadyExists ==err)) + { + User::Leave(err); + } + + SetActive(); + } + +// ---------------------------------------------------------------------------- +// Destructor +// ---------------------------------------------------------------------------- +CGlxUploadCenRepWatcher::~CGlxUploadCenRepWatcher() + { + TRACER("CGlxUploadCenRepWatcher::~CGlxUploadCenRepWatcher"); + + Cancel(); + delete iRepository; + } + + +// ---------------------------------------------------------------------------- +// CGlxUploadCenRepWatcher::KeyValueL +// ---------------------------------------------------------------------------- +void CGlxUploadCenRepWatcher::KeyValueL(TDes& aKeyValue) const + { + TRACER("CGlxUploadCenRepWatcher::KeyValueL"); + if(iRepository) + { + User::LeaveIfError( iRepository->Get(iId, aKeyValue) ); + } + } + + +// ---------------------------------------------------------------------------- +// CGlxUploadCenRepWatcher::RunL +// ---------------------------------------------------------------------------- +void CGlxUploadCenRepWatcher::RunL() + { + TRACER("CGlxUploadCenRepWatcher::RunL"); + // Check for errors + User::LeaveIfError( iStatus.Int() ); + User::LeaveIfError( iRepository->NotifyRequest( iId, iStatus ) ); + if (!IsActive()) + { + SetActive(); + iUploadIconObserver.HandleUploadIconChangedL( ); + } + } + +// ---------------------------------------------------------------------------- +// CGlxUploadCenRepWatcher::DoCancel +// ---------------------------------------------------------------------------- +void CGlxUploadCenRepWatcher::DoCancel() + { + TRACER("CGlxUploadCenRepWatcher::DoCancel"); + iRepository->NotifyCancel( iId ); + } + +//----------------------------------------------------------------------------- +// CGlxUploadCenRepWatcher::RunError +// From class CActive. +//----------------------------------------------------------------------------- +// +TInt CGlxUploadCenRepWatcher::RunError( TInt /*aError*/ ) + { + TRACER("CGlxUploadCenRepWatcher::RunError()"); + return KErrNone; + } + +// End of file + diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_cglxaiwservicehandler/src/t_cglxaiwservicehandler.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_cglxaiwservicehandler/src/t_cglxaiwservicehandler.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_cglxaiwservicehandler/src/t_cglxaiwservicehandler.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -38,8 +38,7 @@ t_CGlxAiwServiceHandler* t_CGlxAiwServiceHandler::NewL() { t_CGlxAiwServiceHandler* self = t_CGlxAiwServiceHandler::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -47,9 +46,7 @@ { t_CGlxAiwServiceHandler* self = new( ELeave ) t_CGlxAiwServiceHandler(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcmdhndlrfilteritems/src/t_glxcmdhandlerfilteritems.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcmdhndlrfilteritems/src/t_glxcmdhandlerfilteritems.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcmdhndlrfilteritems/src/t_glxcmdhandlerfilteritems.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -40,8 +40,7 @@ T_CGlxCommandHandlerFilterImagesOrVideos* T_CGlxCommandHandlerFilterImagesOrVideos::NewL() { T_CGlxCommandHandlerFilterImagesOrVideos* self = T_CGlxCommandHandlerFilterImagesOrVideos::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -49,9 +48,7 @@ { T_CGlxCommandHandlerFilterImagesOrVideos* self = new( ELeave ) T_CGlxCommandHandlerFilterImagesOrVideos(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcommandhandlerback/Src/t_cglxcommandhandlerback.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcommandhandlerback/Src/t_cglxcommandhandlerback.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcommandhandlerback/Src/t_cglxcommandhandlerback.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -36,8 +36,7 @@ { EUNIT_PRINT(_L("t_cglxcommandhandlerback::NewL()")); t_cglxcommandhandlerback* self = t_cglxcommandhandlerback::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -46,9 +45,7 @@ EUNIT_PRINT(_L("ut_cglxcommandhandlerback::NewLC()")); t_cglxcommandhandlerback* self = new( ELeave ) t_cglxcommandhandlerback(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } @@ -83,10 +80,8 @@ iMediaList = MGlxMediaList::InstanceL(*path); if(iMediaList) { - // Attribute to be used TMPXAttribute attrTitle(KMPXMediaGeneralTitle); - //TMPXAttribute attrCount(KMPXMediaGeneralCount); // add a static items TGlxMediaId testId(12345); @@ -105,7 +100,7 @@ CleanupStack::Pop(newMedia2); } - CleanupStack::PopAndDestroy(); // path + CleanupStack::PopAndDestroy( path ); } MGlxMediaList& t_cglxcommandhandlerback::MediaList() @@ -138,15 +133,12 @@ void t_cglxcommandhandlerback::SetupPreviousNaviViewChWithoutMlL( ) { EUNIT_PRINT(_L("t_cglxcommandhandlerback::SetupPreviousNaviViewChWithoutMlL( )")); - // iCommand = CGlxCommandHandlerBack::NewPreviousNaviViewCommandHandlerL(); } void t_cglxcommandhandlerback::SetupPreviousNaviViewChWithMlL( ) { EUNIT_PRINT(_L("t_cglxcommandhandlerback::SetupPreviousNaviViewChWithMlL( )")); CreateMediaListL(); - - // iCommand = CGlxCommandHandlerBack::NewPreviousNaviViewCommandHandlerL(this); } void t_cglxcommandhandlerback::SetupContainerPreviousViewChWithoutViewId( ) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/ut_propertycommandhandlers/src/ut_propertycommandhandlers.cpp --- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/ut_propertycommandhandlers/src/ut_propertycommandhandlers.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/ut_propertycommandhandlers/src/ut_propertycommandhandlers.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -43,9 +43,6 @@ { // Replace the existing value TValue& value = iValues[i]; - // COMMENTED OUT SINCE NOT EXPORTED - //Delete(value); - value.iValue = ptr; // Takes ownership value.iType = EMPXTypeTObject; } @@ -265,8 +262,7 @@ UT_propertycommandhandlers* UT_propertycommandhandlers::NewL() { UT_propertycommandhandlers* self = UT_propertycommandhandlers::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -274,9 +270,7 @@ { UT_propertycommandhandlers* self = new( ELeave ) UT_propertycommandhandlers(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } @@ -305,9 +299,6 @@ void UT_propertycommandhandlers::SetupL( ) { - //MMPXCollectionUtility* collectionUtility = MMPXCollectionUtility::NewL(NULL, KMcModeDefault); - //CMPXCollectionPath* path ;//= collectionUtility->Collection().PathL(); - //iML = MGlxMediaList::InstanceL(*path,NULL); iMediaList = new (ELeave) _CGlxTestMediaList; iMediaList->AppendL(0, ETrue); iMediaList->AppendL(1, ETrue); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/tsrc/ut__commandhandlermarking/src/t_glxcommandhandlermarking.cpp --- a/photosgallery/viewframework/commandhandlers/tsrc/ut__commandhandlermarking/src/t_glxcommandhandlermarking.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/tsrc/ut__commandhandlermarking/src/t_glxcommandhandlermarking.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -242,7 +242,7 @@ CGlxMarkingCommandHandlerTester* me = new(ELeave)CGlxMarkingCommandHandlerTester(); CleanupStack::PushL(me); me->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( me ); return me; } @@ -306,8 +306,7 @@ ut__commandhandlermarking* ut__commandhandlermarking::NewL() { ut__commandhandlermarking* self = ut__commandhandlermarking::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -315,9 +314,7 @@ { ut__commandhandlermarking* self = new( ELeave ) ut__commandhandlermarking(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxcommandhandlerdrm.cpp --- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxcommandhandlerdrm.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxcommandhandlerdrm.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -121,8 +121,7 @@ T_GlxCommandHandlerDRM* T_GlxCommandHandlerDRM::NewL() { T_GlxCommandHandlerDRM* self = T_GlxCommandHandlerDRM::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -130,9 +129,7 @@ { T_GlxCommandHandlerDRM* self = new( ELeave ) T_GlxCommandHandlerDRM(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummydrmutility.cpp --- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummydrmutility.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummydrmutility.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -31,7 +31,7 @@ delete this; } -TBool CGlxDRMUtility::CheckOpenRightsL( const TDesC& aUri, TBool ) +TBool CGlxDRMUtility::ItemRightsValidityCheckL( const TDesC& aUri, TBool ) { TBool rightsInvalid = ETrue; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummyhuiutility.cpp --- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummyhuiutility.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummyhuiutility.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -21,10 +21,8 @@ // INCLUDE FILES #include -//#include #include #include -//#include #include #include #include @@ -255,7 +253,7 @@ TSize /*aRequestedSize*/) { - CAlfTexture* texture = NULL; //CAlfTexture::NewL(iEnv,0); + CAlfTexture* texture = NULL; return *texture; } @@ -270,7 +268,7 @@ { // Create empty texture (not owned) - CAlfTexture* texture = NULL; //CAlfTexture::NewL(); + CAlfTexture* texture = NULL; return *texture; } @@ -285,7 +283,7 @@ TInt& aTextureId ) { // Create empty texture - CAlfTexture* texture = NULL; //CAlfTexture::NewL(); + CAlfTexture* texture = NULL; return *texture; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlermoreinfo/src/t_glxcommandhandlermoreinfo.cpp --- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlermoreinfo/src/t_glxcommandhandlermoreinfo.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlermoreinfo/src/t_glxcommandhandlermoreinfo.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -95,8 +95,7 @@ t_glxcommandhandlermoreinfo* t_glxcommandhandlermoreinfo::NewL() { t_glxcommandhandlermoreinfo* self = t_glxcommandhandlermoreinfo::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -104,9 +103,7 @@ { t_glxcommandhandlermoreinfo* self = new( ELeave ) t_glxcommandhandlermoreinfo(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/inc/glxattributerequirement.h --- a/photosgallery/viewframework/dataprovider/inc/glxattributerequirement.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/inc/glxattributerequirement.h Wed Mar 31 21:31:03 2010 +0300 @@ -87,7 +87,6 @@ TGlxFromFocusOutwardIterator iFromFocusOutwardIterator; TGlxFromManualIndexBlockyIterator iBlockyIterator; - //RArray iArributeContext; RPointerArray iArributeContext; RPointerArray iThumbnailContext; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/src/glxbinding.cpp --- a/photosgallery/viewframework/dataprovider/src/glxbinding.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/src/glxbinding.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -207,7 +207,6 @@ CGlxSingleTagBinding::~CGlxSingleTagBinding() { TRACER("CGlxSingleTagBinding::~CGlxSingleTagBinding"); - //delete iMulTag; } // ---------------------------------------------------------------------------- @@ -217,7 +216,6 @@ void CGlxSingleTagBinding::BaseConstructL( const Alf::mulvisualitem::TVisualAttribute& aMulTag /*const char* const aMulTag*/ ) { TRACER("CGlxSingleTagBinding::BaseConstructL"); - //iMulTag = new ( ELeave ) UString( aMulTag ); iMulTag = aMulTag ; } @@ -329,7 +327,6 @@ { TRACER("CGlxStringBinding::ConstructL"); BaseConstructL( aMulTag ); - //iString = new ( ELeave ) UString( aString ); } // ---------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/src/glxbindingset.cpp --- a/photosgallery/viewframework/dataprovider/src/glxbindingset.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/src/glxbindingset.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -61,7 +61,6 @@ TRACER("CGlxBindingSet::AddBindingL"); __ASSERT_DEBUG( aBinding, User::Invariant() ); // null binding not accepted iBindings.AppendL( aBinding ); - //CleanupStack ::Pop( aBinding ); aBinding->SetObserver( *this ); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/src/glxcommandbindingutility.cpp --- a/photosgallery/viewframework/dataprovider/src/glxcommandbindingutility.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/src/glxcommandbindingutility.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -25,7 +25,6 @@ #include #include // Client need to use this class to add data in data model -//const char* const KCommandTagName = "cmd"; const int KCommandTagName = 200; // ---------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/src/glxcontainerlistbinding.cpp --- a/photosgallery/viewframework/dataprovider/src/glxcontainerlistbinding.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/src/glxcontainerlistbinding.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -246,8 +246,6 @@ CGlxBinding::TResponse CGlxContainerListBinding::HandleFocusChanged( TBool /*aIsGained*/ ) { - //@todo - Need further implementation - //return aIsGained ? EUpdateRequested : ENoUpdateNeeded ; //need to remove once bug ESPK-7G6GJX is fixed return ENoUpdateNeeded ; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/src/glxdetailsboundcommand.cpp --- a/photosgallery/viewframework/dataprovider/src/glxdetailsboundcommand.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/src/glxdetailsboundcommand.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -523,14 +523,9 @@ TRACER("CGlxLocationBoundCommand::OfferCommandL"); iMedialist = &aMedialist; TBool consumed = EFalse; - //iAppUi = static_cast< CAknAppUi* >( CCoeEnv::Static()->AppUi() ); if ( aCommandId == KGlxEditBoundMenuCommandId ) { iOnNaviKeySelect = ETrue; - //iAppUi->ProcessCommandL( EGlxCmdOptions ); - //iOnNaviKeySelect = EFalse; - - /** Error Id ESWG-7LSE3W **/ //get the media item const TGlxMedia& media = iMedialist->Item( 0 ); // Test to see if the coordinate is present @@ -545,7 +540,6 @@ } else { - /** Error Id EMPY-7MKDHP **/ /** Show menu pane options **/ if(iDialogObserver) { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/src/glxdetailsmulmodelproviderimpl.cpp --- a/photosgallery/viewframework/dataprovider/src/glxdetailsmulmodelproviderimpl.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/src/glxdetailsmulmodelproviderimpl.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -240,7 +240,6 @@ iEntries[ aPreviousFocus ]->HandleFocusChanged( EFalse ) ) { UpdateItems( aPreviousFocus, 1 ); - //UpdateItemL( *iEntries[ aPreviousFocus ], media, aPreviousFocus ); } } @@ -250,7 +249,6 @@ iEntries[ aNewFocus ]->HandleFocusChanged( ETrue ) ) { UpdateItems( aNewFocus, 1 ); - //UpdateItemL( *iEntries[ aNewFocus ], media, aNewFocus ); } } } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/src/glxmedialistmulmodelproviderimpl.cpp --- a/photosgallery/viewframework/dataprovider/src/glxmedialistmulmodelproviderimpl.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/src/glxmedialistmulmodelproviderimpl.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -199,9 +199,6 @@ TInt aEndIndex, MGlxMediaList* /*aList*/ ) { TRACER("CGlxMediaListMulModelProviderImpl::HandleItemRemovedL"); - // hack of making the flag iIsReleventAttribute to Etrue will be removed - // once the bug ESPK-7G6GJX - //iIsReleventAttribute = ETrue; RemoveItems( aStartIndex, aEndIndex - aStartIndex + 1 ); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/src/glxmuliconprovider.cpp --- a/photosgallery/viewframework/dataprovider/src/glxmuliconprovider.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/src/glxmuliconprovider.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -44,7 +44,6 @@ TRACER("CGlxMulIconProvider::ConstructL"); iResFileName.Copy(KDC_APP_BITMAP_DIR); iResFileName.Append(KGlxIconsFilename); - //iResFileName.Copy(resFile); } // ---------------------------------------------------------------------------- @@ -272,7 +271,7 @@ TMPXGeneralCategory cat = aMedia.Category(); TBool checkViewRights = (cat==EMPXImage); - if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights)) + if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights)) { return EMbmGlxiconsQgn_prop_drm_rights_valid_super; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/src/glxpreviewthumbnailbinding.cpp --- a/photosgallery/viewframework/dataprovider/src/glxpreviewthumbnailbinding.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/src/glxpreviewthumbnailbinding.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -282,7 +282,6 @@ // void CGlxPreviewThumbnailBinding::TimerTicked() { - //iTimerTicked = ETrue; TRACER("CGlxPreviewThumbnailBinding::TimerTicked"); iCurrentOrientationLandscape = GlxGeneralUiUtilities::IsLandscape(); @@ -296,12 +295,10 @@ iTimerTicked = ETrue; iProgressIndex++; Update(); - //iTimerTicked = EFalse; } else { iProgressIndex = KErrNotFound; - //iStartedShowingThumbnails = EFalse; } } @@ -504,7 +501,6 @@ void CGlxPreviewThumbnailBinding::HandleFocusChangedL( NGlxListDefs:: TFocusChangeType /*aType*/, TInt /*aNewIndex*/, TInt /*aOldIndex*/, MGlxMediaList* /*aList*/ ) { - // HandleFocusChanged(ETrue); TRACER("CGlxPreviewThumbnailBinding::HandleFocusChangedL"); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp --- a/photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -32,6 +32,7 @@ #include #include #include +#include _LIT(KGlxIconsFilename, "glxicons.mif"); @@ -130,21 +131,22 @@ { GLX_DEBUG1("GlxThumbnailVariantType::CreateThumbnailTextureL"); TMPXGeneralCategory cat = aMedia.Category(); + //Check if media is DRM rights protected if(drm) { - //Fix for ESLM-82WJ59: call 'CheckDisplayRightsL' only for focused item + //call 'DisplayItemRightsCheckL' only for focused item if(aIsFocused) { - expired = !iDrmUtility->CheckDisplayRightsL(uri, (cat == EMPXImage)); + expired = !iDrmUtility->DisplayItemRightsCheckL(uri, (cat == EMPXImage)); } else { - //Fix for ESLM-82WJ59: for validity check of non-focused item - expired = !iDrmUtility->CheckOpenRightsL(uri, (cat == EMPXImage)); + //call 'ItemRightsValidityCheckL' for validity check of non-focused item + expired = !iDrmUtility->ItemRightsValidityCheckL(uri, (cat == EMPXImage)); } - //Fix for ESLM-82WJ59: mush easier to understand. + //Check If DRM rights have expired. if( expired ) { TRAP( err, mTextureId = iUiUtility->GlxTextureManager().CreateIconTextureL( @@ -176,7 +178,8 @@ } else if ( (KErrNone == thumbnailError) || (KErrArgument == thumbnailError) || (KErrDiskFull == thumbnailError) || (KErrNoMemory == thumbnailError) - || ( drm && isValid == EGlxDrmRightsInvalid ) ) + || ( drm && isValid == EGlxDrmRightsInvalid ) + || thumbnailError == KErrCANoRights ) { //Try and see if we can scale and show the grid tnm else show the default TBool isGridTnmShown = EFalse; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/drmutility/bwins/glxdrmutilityu.def --- a/photosgallery/viewframework/drmutility/bwins/glxdrmutilityu.def Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/drmutility/bwins/glxdrmutilityu.def Wed Mar 31 21:31:03 2010 +0300 @@ -1,16 +1,16 @@ EXPORTS ?SetAsAutomatedL@CGlxDRMUtility@@QAEXABVTDesC16@@W4TGlxDrmAutomatedType@@@Z @ 1 NONAME ; void CGlxDRMUtility::SetAsAutomatedL(class TDesC16 const &, enum TGlxDrmAutomatedType) - ?CanSetAsAutomatedL@CGlxDRMUtility@@QAEHABVTDesC16@@W4TGlxDrmAutomatedType@@@Z @ 2 NONAME ; int CGlxDRMUtility::CanSetAsAutomatedL(class TDesC16 const &, enum TGlxDrmAutomatedType) - ?IsForwardLockedL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 3 NONAME ; int CGlxDRMUtility::IsForwardLockedL(class TDesC16 const &) - ?CheckOpenRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 4 NONAME ; int CGlxDRMUtility::CheckOpenRightsL(class TDesC16 const &, int) - ?ConsumeRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 5 NONAME ; int CGlxDRMUtility::ConsumeRightsL(class TDesC16 const &) - ?CheckDisplayRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 6 NONAME ; int CGlxDRMUtility::CheckDisplayRightsL(class TDesC16 const &, int) + ?DisplayItemRightsCheckL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 2 NONAME ; int CGlxDRMUtility::DisplayItemRightsCheckL(class TDesC16 const &, int) + ?CanSetAsAutomatedL@CGlxDRMUtility@@QAEHABVTDesC16@@W4TGlxDrmAutomatedType@@@Z @ 3 NONAME ; int CGlxDRMUtility::CanSetAsAutomatedL(class TDesC16 const &, enum TGlxDrmAutomatedType) + ?IsForwardLockedL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 4 NONAME ; int CGlxDRMUtility::IsForwardLockedL(class TDesC16 const &) + ?ClearLastConsumedItemUriL@CGlxDRMUtility@@QAEXXZ @ 5 NONAME ; void CGlxDRMUtility::ClearLastConsumedItemUriL(void) + ?ConsumeRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 6 NONAME ; int CGlxDRMUtility::ConsumeRightsL(class TDesC16 const &) ?ShowRightsInfoL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 7 NONAME ; void CGlxDRMUtility::ShowRightsInfoL(class TDesC16 const &) ?InstanceL@CGlxDRMUtility@@SAPAV1@XZ @ 8 NONAME ; class CGlxDRMUtility * CGlxDRMUtility::InstanceL(void) - ?ClearLastConsumedItemUri@CGlxDRMUtility@@QAEXXZ @ 9 NONAME ; void CGlxDRMUtility::ClearLastConsumedItemUri(void) + ?ShowInfoOnlineL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 9 NONAME ; void CGlxDRMUtility::ShowInfoOnlineL(class TDesC16 const &) ?ShowDRMDetailsPaneL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 10 NONAME ; void CGlxDRMUtility::ShowDRMDetailsPaneL(class TDesC16 const &) - ?ShowInfoOnlineL@CGlxDRMUtility@@QAEXAAVTDesC16@@@Z @ 11 NONAME ; void CGlxDRMUtility::ShowInfoOnlineL(class TDesC16 &) + ?CanShowInfoOnlineL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 11 NONAME ; int CGlxDRMUtility::CanShowInfoOnlineL(class TDesC16 const &) ?DRMThumbnailSize@CGlxDRMUtility@@QAE?AVTSize@@AAV2@@Z @ 12 NONAME ; class TSize CGlxDRMUtility::DRMThumbnailSize(class TSize &) - ?CanShowInfoOnlineL@CGlxDRMUtility@@QAEHAAVTDesC16@@@Z @ 13 NONAME ; int CGlxDRMUtility::CanShowInfoOnlineL(class TDesC16 &) + ?ItemRightsValidityCheckL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 13 NONAME ; int CGlxDRMUtility::ItemRightsValidityCheckL(class TDesC16 const &, int) ?Close@CGlxDRMUtility@@QAEXXZ @ 14 NONAME ; void CGlxDRMUtility::Close(void) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/drmutility/eabi/glxdrmutilityu.def --- a/photosgallery/viewframework/drmutility/eabi/glxdrmutilityu.def Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/drmutility/eabi/glxdrmutilityu.def Wed Mar 31 21:31:03 2010 +0300 @@ -1,16 +1,16 @@ EXPORTS _ZN14CGlxDRMUtility14ConsumeRightsLERK7TDesC16 @ 1 NONAME _ZN14CGlxDRMUtility15SetAsAutomatedLERK7TDesC1620TGlxDrmAutomatedType @ 2 NONAME - _ZN14CGlxDRMUtility15ShowInfoOnlineLER7TDesC16 @ 3 NONAME + _ZN14CGlxDRMUtility15ShowInfoOnlineLERK7TDesC16 @ 3 NONAME _ZN14CGlxDRMUtility15ShowRightsInfoLERK7TDesC16 @ 4 NONAME - _ZN14CGlxDRMUtility16CheckOpenRightsLERK7TDesC16i @ 5 NONAME - _ZN14CGlxDRMUtility16DRMThumbnailSizeER5TSize @ 6 NONAME - _ZN14CGlxDRMUtility16IsForwardLockedLERK7TDesC16 @ 7 NONAME - _ZN14CGlxDRMUtility18CanSetAsAutomatedLERK7TDesC1620TGlxDrmAutomatedType @ 8 NONAME - _ZN14CGlxDRMUtility18CanShowInfoOnlineLER7TDesC16 @ 9 NONAME - _ZN14CGlxDRMUtility19CheckDisplayRightsLERK7TDesC16i @ 10 NONAME - _ZN14CGlxDRMUtility19ShowDRMDetailsPaneLERK7TDesC16 @ 11 NONAME - _ZN14CGlxDRMUtility24ClearLastConsumedItemUriEv @ 12 NONAME + _ZN14CGlxDRMUtility16DRMThumbnailSizeER5TSize @ 5 NONAME + _ZN14CGlxDRMUtility16IsForwardLockedLERK7TDesC16 @ 6 NONAME + _ZN14CGlxDRMUtility18CanSetAsAutomatedLERK7TDesC1620TGlxDrmAutomatedType @ 7 NONAME + _ZN14CGlxDRMUtility18CanShowInfoOnlineLERK7TDesC16 @ 8 NONAME + _ZN14CGlxDRMUtility19ShowDRMDetailsPaneLERK7TDesC16 @ 9 NONAME + _ZN14CGlxDRMUtility23DisplayItemRightsCheckLERK7TDesC16i @ 10 NONAME + _ZN14CGlxDRMUtility24ItemRightsValidityCheckLERK7TDesC16i @ 11 NONAME + _ZN14CGlxDRMUtility25ClearLastConsumedItemUriLEv @ 12 NONAME _ZN14CGlxDRMUtility5CloseEv @ 13 NONAME _ZN14CGlxDRMUtility9InstanceLEv @ 14 NONAME diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/drmutility/inc/glxdrmutility.h --- a/photosgallery/viewframework/drmutility/inc/glxdrmutility.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/drmutility/inc/glxdrmutility.h Wed Mar 31 21:31:03 2010 +0300 @@ -83,23 +83,25 @@ /** * Check whether DRM rights are valid for specified item - * + * is called before right is consumed and for all items (focused or unfocused). + * * @param aUri URI of the media item. * @param aCheckViewRights, check view rights if true, play if false * @return ETrue if valid rights exist for the media item. */ - IMPORT_C TBool CheckOpenRightsL(const TDesC& aUri, TBool aCheckViewRights); + IMPORT_C TBool ItemRightsValidityCheckL(const TDesC& aUri, TBool aCheckViewRights); /** * Check whether DRM rights are valid for specified item * If the rights were just consumed, then allow to display * Otherwise, obtain current rights - * + * is called after right is consumed and for only focused/displayed item. + * * @param aUri URI of the media item. * @param aCheckViewRights, check view rights if true, play if false * @return ETrue if valid rights exist for the media item. */ - IMPORT_C TBool CheckDisplayRightsL(const TDesC& aUri, TBool aCheckViewRights); + IMPORT_C TBool DisplayItemRightsCheckL(const TDesC& aUri, TBool aCheckViewRights); /** * Consume rights for specified item @@ -111,10 +113,9 @@ IMPORT_C TBool ConsumeRightsL(const TDesC& aUri); /** - * Fix for ESLM-82WJ59: * Clears Last Consumed Uri */ - IMPORT_C void ClearLastConsumedItemUri(); + IMPORT_C void ClearLastConsumedItemUriL(); /** * Test whether a media item is OMA DRM 2.0 protected and has an associated @@ -122,13 +123,13 @@ * @param aUri URI of the media item. * @return ETrue if it does. */ - IMPORT_C TBool CanShowInfoOnlineL(TDesC& aUri); + IMPORT_C TBool CanShowInfoOnlineL(const TDesC& aUri); /** * Open the associated info URL for a media item in the browser. * @param aUri URI of the media item. */ - IMPORT_C void ShowInfoOnlineL(TDesC& aUri); + IMPORT_C void ShowInfoOnlineL(const TDesC& aUri); /** * Test whether a media item can be set as automated content. * diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/drmutility/src/glxdrmutility.cpp --- a/photosgallery/viewframework/drmutility/src/glxdrmutility.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/drmutility/src/glxdrmutility.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -121,17 +121,17 @@ } //============================================================================ -// CheckOpenRightsL -// Fix for ESLM-82WJ59:always call 'CheckOpenRightsL' only for checking DRM -// rights validity for item. +// ItemRightsValidityCheckL +// for checking DRM rights validity for item. +// is called before right is consumed and for all items (focused or unfocused). //============================================================================ -EXPORT_C TBool CGlxDRMUtility::CheckOpenRightsL( const TDesC& aUri, +EXPORT_C TBool CGlxDRMUtility::ItemRightsValidityCheckL( const TDesC& aUri, TBool aCheckViewRights ) { - TRACER("CGlxDRMUtility::CheckOpenRightsL()"); + TRACER("CGlxDRMUtility::ItemRightsValidityCheckL()"); // When checking current rights for a URI - // Fix for ESLM-82WJ59: Allow to Open if rights for a URI was just consumed (i.e. same as stored URI) + //Allow to Open if rights for a URI was just consumed (i.e. same as stored URI) if ( iLastConsumedItemUri->Length() > 0 ) { if ( aUri.CompareF( *iLastConsumedItemUri ) == 0 ) @@ -140,7 +140,7 @@ } } - // Fix for ESLM-82WJ59: Else for uri of non-focused uri, just check validity rights + //Else for uri of non-focused uri, just check validity rights TBool rightsValid = EFalse; TVirtualPathPtr path( aUri, KDefaultContentObject() ); @@ -154,13 +154,13 @@ } //============================================================================ -// CheckDisplayRightsL -// Fix for ESLM-82WJ59:always call 'CheckDisplayRightsL' only for focused item. +// DisplayItemRightsCheckL +// is called after right is consumed and for only focused/displayed item. //============================================================================ -EXPORT_C TBool CGlxDRMUtility::CheckDisplayRightsL( const TDesC& aUri, +EXPORT_C TBool CGlxDRMUtility::DisplayItemRightsCheckL( const TDesC& aUri, TBool aCheckViewRights ) { - TRACER("CGlxDRMUtility::CheckDisplayRightsL()"); + TRACER("CGlxDRMUtility::DisplayItemRightsCheckL()"); // Allow to display if rights for a URI was just consumed (i.e. same as stored URI) if ( iLastConsumedItemUri->Length() > 0 ) @@ -171,11 +171,11 @@ } } - //Fix for ESLM-82WJ59: Clear the stored uri since focus has changed - ClearLastConsumedItemUri(); + //Clear the stored uri since focus has changed + ClearLastConsumedItemUriL(); // Otherwise, check current rights for the URI of newly focused item - return CheckOpenRightsL( aUri, aCheckViewRights ); + return ItemRightsValidityCheckL( aUri, aCheckViewRights ); } //============================================================================ @@ -190,15 +190,15 @@ // Tell the agent we are planning to display the content CData* data = CData::NewLC(path, ContentAccess::EView, EContentShareReadOnly); - //Fix for ESLM-82WJ59: When consuming rights for a URI, clear stored URI - ClearLastConsumedItemUri(); + //When consuming rights for a URI, clear stored URI + ClearLastConsumedItemUriL(); // Execute the intent, tell the agent that we plan to display the content // It is at this point that any stateful rights will be decremented TInt err = data->ExecuteIntent(ContentAccess::EView); if ( err == KErrNone ) { - //Fix for ESLM-82WJ59: Update stored URI + //Update stored URI iLastConsumedItemUri = iLastConsumedItemUri->ReAllocL( aUri.Length() ); TPtr newPtr = iLastConsumedItemUri->Des(); newPtr.Copy( aUri ); @@ -210,14 +210,13 @@ } //============================================================================ -//Fix for ESLM-82WJ59: //Clears Last Consumed Uri //============================================================================ -EXPORT_C void CGlxDRMUtility::ClearLastConsumedItemUri() +EXPORT_C void CGlxDRMUtility::ClearLastConsumedItemUriL() { //clears the stored uri - TPtr aPtr = iLastConsumedItemUri->Des(); - aPtr.Zero(); + TPtr ptr = iLastConsumedItemUri->Des(); + ptr.Zero(); iLastConsumedItemUri = iLastConsumedItemUri->ReAllocL( 0 ); } @@ -225,13 +224,13 @@ // Test whether a media item is OMA DRM 2.0 protected and has an associated // info URL. //============================================================================ -EXPORT_C TBool CGlxDRMUtility::CanShowInfoOnlineL(TDesC& aUri) +EXPORT_C TBool CGlxDRMUtility::CanShowInfoOnlineL(const TDesC& aUri) { TRACER("CGlxDRMUtility::CanShowInfoOnlineL()"); TBool canShowInfoOnline = EFalse; HBufC8* urlBuf = NULL; - canShowInfoOnline = iDrmHelper->HasInfoUrlL(aUri, urlBuf); + canShowInfoOnline = iDrmHelper->HasInfoUrlL( const_cast(aUri) , urlBuf); // discard buf we don't need it delete urlBuf; @@ -242,10 +241,10 @@ //============================================================================ // Open the associated info URL for a media item in the browser. //============================================================================ -EXPORT_C void CGlxDRMUtility::ShowInfoOnlineL(TDesC& aUri) +EXPORT_C void CGlxDRMUtility::ShowInfoOnlineL(const TDesC& aUri) { TRACER("CGlxDRMUtility::ShowInfoOnlineL()"); - iDrmHelper->OpenInfoUrlL(aUri); + iDrmHelper->OpenInfoUrlL( const_cast(aUri) ); } //============================================================================ @@ -305,7 +304,7 @@ { TRACER("CGlxDRMUtility::ShowDRMDetailsPaneL()"); TRAPD( err, iDrmHelper->LaunchDetailsViewEmbeddedL( aUri ) ); - // if no rights ask user to re-activate? + // if no rights ask user to re-activate if( err == KErrCANoRights ) { HBufC* buf = aUri.AllocLC(); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/layouts/inc/glxblendlayout.h --- a/photosgallery/viewframework/layouts/inc/glxblendlayout.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Layout blender -* -*/ - - - - -#ifndef C_GLXBLENDLAYOUTBLEND_H -#define C_GLXBLENDLAYOUTBLEND_H - -#include - -/** - * TGlxBlendLayout - * - * Blender of multiple MGlxLayouts based on coefficients - * - * @lib glxlayouts.lib - */ - -//@TODO : Class wont be used - To be removed -class TGlxBlendLayout : public TGlxLayout - { - public: - - /** - * Constructor, reset the values - */ - IMPORT_C TGlxBlendLayout(); - - /** - * Destructor - */ - IMPORT_C ~TGlxBlendLayout(); - - /** - * Add a layout to be blended - * @param aLayout the layout to add, cannot be NULL - */ - IMPORT_C void AddLayoutL( MGlxLayout* aLayout ); - - /** - * Remove an existing layout - * @param aLayout the layout to remove - */ - IMPORT_C void RemoveLayout( const MGlxLayout* aLayout ); - - /** - * Remove all existing layouts - */ - IMPORT_C void RemoveAllLayouts(); - - protected: // From TGlxLayout - - /// @ref TGlxLayout::DoSetLayoutValues - void DoSetLayoutValues( TGlxLayoutInfo& aInfo ); - /// @ref TGlxLayout::DoChanged - TBool DoChanged() const; - /// @ref TGlxLayout::DoClearChanged - void DoClearChanged(); - - private: - - /** - * Helper struct to store the layout and layout info - */ - struct TLayout - { - /// Ref: the layout - MGlxLayout* iLayout; - /// Own: the layoutinfo for the layout - TGlxLayoutInfoResetter iLayoutInfo; - /** - * Helper to tell whether two TLayout structs match - */ - static TBool Match( const TLayout& aLhs, const TLayout& aRhs ); - }; - /// Own: array of cached layout infos - RArray< TLayout > iLayouts; - - /** - * Changed flag to remember whether any layouts have been added or removed - * since the las call to DoClearChanged - */ - TBool iChanged; - }; - -#endif // C_GLXBLENDLAYOUTBLEND_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/layouts/inc/glxsetcoefficientlayout.h --- a/photosgallery/viewframework/layouts/inc/glxsetcoefficientlayout.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Set coefficient layout -* -*/ - - - - -#ifndef T_GLXSETCOEFFICIENTLAYOUT_H -#define T_GLXSETCOEFFICIENTLAYOUT_H - -#include -#include - -/** - * TGlxSetCoefficientLayout - * - * Resets the coefficient to a defined value. - * The value can be animated. - * - * @lib glxlayouts.lib - */ -class TGlxSetCoefficientLayout : public TGlxLayout - { - public: - - /** - * Constructor. - */ - IMPORT_C TGlxSetCoefficientLayout(); - - /** - * Destructor. - */ - IMPORT_C ~TGlxSetCoefficientLayout(); - - /** - * Set layout type to which the coefficient is set - * @param aType the layout type, see @ref TGlxLayoutInfo::TLayoutType - */ - IMPORT_C void SetType( TGlxLayoutInfo::TLayoutType aType ); - - /** - * SetCoefficient. - * @param aCoefficient the value to set - * @param aMilliseconds the target time for the coefficient value - */ - IMPORT_C void SetCoefficient( TReal32 aCoefficient, TInt aMilliseconds ); - - protected: // From TGlxLayout - - /// @ref TGlxLayout::DoSetLayoutValues - void DoSetLayoutValues( TGlxLayoutInfo& aInfo ); - /// @ref TGlxLayout::DoChanged - TBool DoChanged() const; - /// @ref TGlxLayout::DoClearChanged - void DoClearChanged(); - - private: - - /// Own: the type of the layout - TGlxLayoutInfo::TLayoutType iType; - /// Own: the timed value for the coefficient - TAlfTimedValue iCoefficient; - - }; - -#endif // T_GLXSETCOEFFICIENTLAYOUT_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/layouts/inc/glxzoomlayoutbase.h --- a/photosgallery/viewframework/layouts/inc/glxzoomlayoutbase.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Definition of TGlxZoomLayoutBase -* -*/ - - - - -#ifndef GLXZOOMLAYOUTBASE_H -#define GLXZOOMLAYOUTBASE_H - -// INCLUDES - -#include - -// FORWARD DECLARATIONS - -struct TAlfRealRect; - -// CLASS DECLARATION - -/** -* Abtract base class for zooming layouts. Sets layout values based on -* coordinates provided by the derived class. -* -* @internal reviewed 06/06/2007 by Kimmo Hoikka -*/ -class TGlxZoomLayoutBase : public TGlxLayout - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - IMPORT_C TGlxZoomLayoutBase(); - - /** - * Destructor. - */ - IMPORT_C ~TGlxZoomLayoutBase(); - - public: // New functions - - /** - * Set the image dimensions. - * @param aDimensions Dimensions of the image being zoomed (in pixels) - */ - IMPORT_C void SetImageDimensions(const TSize& aDimensions); - /** - * Get the image dimensions. - * @return const TSize& Dimensions of the image being zoomed (in pixels) - */ - IMPORT_C const TSize& ImageDimensions() const; - - /** - * Get current zoom and pan values. The returned rectangle is relative - * to the screen, ie. if the width is 2, the visual should be twice the - * width of the screen, and if the centre of the rectangle is (0, 0) the - * visual should be centred on the screen. If the rectangle is - * (-0.5, -0.5) - (0.5, 0.5) then the visual should exactly fill the - * screen. - * @param aRect Reference to rect in which to return coords. - */ - virtual void GetCurrentCoords(TAlfRealRect& aRect) = 0; - /** - * Get "predicted" zoom and pan values. These are the values that would - * eventually be reached if the user released all zoom/pan keys now. - * @param aRect Reference to rect in which to return coords. - */ - virtual void GetPredictedCoords(TAlfRealRect& aRect) = 0; - - protected: // From TGlxLayout - - /** See @ref TGlxLayout::DoSetLayoutValues */ - IMPORT_C void DoSetLayoutValues(TGlxLayoutInfo& aInfo); - /** See @ref TGlxLayout::DoChanged */ - IMPORT_C TBool DoChanged() const; - /** See @ref TGlxLayout::DoClearChanged */ - IMPORT_C void DoClearChanged(); - - protected: // Data - /** Dimensions of the image being zoomed (in pixels) */ - TSize iImageDimensions; - - private: // Data - /** Whether the layout has changed since last refresh */ - TBool iChanged; - }; - -#endif // GLXZOOMLAYOUTBASE_H - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/layouts/src/glxblendlayout.cpp --- a/photosgallery/viewframework/layouts/src/glxblendlayout.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,265 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Layout blender -* -*/ - - - - -#include "glxblendlayout.h" -#include // Panic codes - -// LOCAL METHODS -namespace - { - // helper method to calculate coefficiency for given field - TReal32 GetCoefficiency( - TGlxLayoutInfo& aBaseInfo, - TGlxLayoutInfo& aDeltaInfo, - TGlxLayoutInfo::TLayoutType aType, - TInt aIndex ) - { - /* - // position, get coefficients - //TReal32 new_coeff = aDeltaInfo.Coefficient( aType ); - //TReal32 combined_coeff = aBaseInfo.Coefficient( aType ); - // check if this is the first layout chain in the blender - // and full coefficiency has not been yet reached - if( aIndex == 0 && combined_coeff < 1.0 ) - { - // increase the coefficient to reach 1.0 - new_coeff = 1.0 - combined_coeff; - aBaseInfo.SetCoefficient( aType, 1.0 ); - } - // if the coefficient was bigger than zero - // and full coefficiency has not been yet reached - else if( new_coeff > 0.0 && combined_coeff < 1.0 ) - { - // dont allow coefficient to exceed 1.0 - if( new_coeff > ( 1.0 - combined_coeff ) ) - { - new_coeff = 1.0 - combined_coeff; - } - // increase the coefficient - aBaseInfo.SetCoefficient( aType, combined_coeff + new_coeff ); - } - else - { - // coefficient over or underflow - new_coeff = 0; - } - return new_coeff;*/ - } - } - -// ----------------------------------------------------------------------------- -// Constructor -// ----------------------------------------------------------------------------- -EXPORT_C TGlxBlendLayout::TGlxBlendLayout() - : iChanged( EFalse ) // blender not is changed by default - { - __DEBUG_ONLY( _iName = _L( "TGlxBlendLayout" ) ); - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -EXPORT_C TGlxBlendLayout::~TGlxBlendLayout () - { - iLayouts.Close(); - } - -// ----------------------------------------------------------------------------- -// AddLayoutL -// ----------------------------------------------------------------------------- -EXPORT_C void TGlxBlendLayout::AddLayoutL( MGlxLayout* aLayout ) - { - // layout must not be null - __ASSERT_DEBUG( aLayout, Panic( EGlxPanicNullLayout ) ); - // create layout struct - TLayout cache; - cache.iLayout = aLayout; - __ASSERT_DEBUG( - iLayouts.Find( cache, TLayout::Match ) == KErrNotFound, - Panic( EGlxPanicAlreadyAdded ) ); - - // cant set anything sane to layout info at this point - iLayouts.AppendL( cache ); - iChanged = ETrue; - } - -// ----------------------------------------------------------------------------- -// RemoveLayout -// ----------------------------------------------------------------------------- -EXPORT_C void TGlxBlendLayout::RemoveLayout( const MGlxLayout* aLayout ) - { - TInt count = iLayouts.Count(); - for( TInt i = 0; i < count; i++ ) - { - if( iLayouts[ i ].iLayout == aLayout ) - { - // Found it, remove - iLayouts.Remove( i ); - iChanged = ETrue; - return; - } - } - // its ok to remove a layout that was already gone, no harm done there - } - -// ----------------------------------------------------------------------------- -// RemoveAllLayouts -// ----------------------------------------------------------------------------- -EXPORT_C void TGlxBlendLayout::RemoveAllLayouts() - { - iLayouts.Close(); - } - -// ----------------------------------------------------------------------------- -// MapValue -// ----------------------------------------------------------------------------- -void TGlxBlendLayout::DoSetLayoutValues( TGlxLayoutInfo& aInfo ) - { - /* - TInt count = iLayouts.Count(); - // first set each layouts info fields correctly - for( TInt i = 0; i < count; i++ ) - { - // reset the values for the layout info - //iLayouts[ i ].iLayoutInfo.Reset( aInfo.Index() ); - //iLayouts[ i ].iLayoutInfo.SetVisual( aInfo.Visual() ); - //iLayouts[ i ].iLayoutInfo.SetScreenInfo( aInfo.ScreenInfo() ); - } - - // process each layout - for( TInt i = 0; i < count; i++ ) - { - // call the layout (chain) to perform the processing for their own info - iLayouts[ i ].iLayout->SetLayoutValues( iLayouts[ i ].iLayoutInfo ); - } - - // reset completely the aInfo fields and its coefficients - // we use the coefficient fields to know when we have enough values for - // certain field (coefficient reaches 1.0) - // we need to reset the base values as the cached values in layout chains - // had default values (which may not ne 0 for all fields) - aInfo.iPosition.iX = 0; - aInfo.iPosition.iY = 0; - aInfo.SetCoefficient( TGlxLayoutInfo::EPosition, 0 ); - aInfo.iSize.iX = 0; - aInfo.iSize.iY = 0; - aInfo.SetCoefficient( TGlxLayoutInfo::ESize, 0 ); - aInfo.iOpacity = 0; - aInfo.SetCoefficient( TGlxLayoutInfo::EOpacity, 0 ); - aInfo.iRotation = 0; - aInfo.SetCoefficient( TGlxLayoutInfo::ERotation, 0 ); - - // then merge the values according to coefficients - // need to process in reverse order since layout in index 0 - // has the strongest effect - for( TInt i = count - 1; i >= 0; i-- ) - { - // position, get coefficient - TReal32 new_coeff = GetCoefficiency( - aInfo, iLayouts[ i ].iLayoutInfo, - TGlxLayoutInfo::EPosition, i ); - // if the coefficient was bigger than zero - if( new_coeff > 0.0 ) - { - // add new position, multiplied with the coefficient - aInfo.iPosition.iX += - iLayouts[ i ].iLayoutInfo.iPosition.iX * new_coeff; - aInfo.iPosition.iY += - iLayouts[ i ].iLayoutInfo.iPosition.iY * new_coeff; - } - - // size, get coefficient - new_coeff = GetCoefficiency( - aInfo, iLayouts[ i ].iLayoutInfo, - TGlxLayoutInfo::ESize, i ); - // if the coefficient was bigger than zero - if( new_coeff > 0.0 ) - { - // add new size, multiplied with the coefficient - aInfo.iSize.iX += - iLayouts[ i ].iLayoutInfo.iSize.iX * new_coeff; - aInfo.iSize.iY += - iLayouts[ i ].iLayoutInfo.iSize.iY * new_coeff; - } - - // opacity, get coefficient - new_coeff = GetCoefficiency( - aInfo, iLayouts[ i ].iLayoutInfo, - TGlxLayoutInfo::EOpacity, i ); - if( new_coeff > 0.0 ) - { - // add new opacity, multiplied with the coefficient - aInfo.iOpacity += - iLayouts[ i ].iLayoutInfo.iOpacity * new_coeff; - } - - // rotation, get coefficient - new_coeff = GetCoefficiency( - aInfo, iLayouts[ i ].iLayoutInfo, - TGlxLayoutInfo::ERotation, i ); - if( new_coeff > 0.0 ) - { - // add new rotation, multiplied with the coefficient - aInfo.iRotation += - iLayouts[ i ].iLayoutInfo.iRotation * new_coeff; - } - } */ - } - -// ----------------------------------------------------------------------------- -// DoChanged -// ----------------------------------------------------------------------------- -TBool TGlxBlendLayout::DoChanged() const - { - // See if even one layout has changed - /// @todo consider adding the index of current visual to the Changed call -/* TInt count = iLayouts.Count(); - for( TInt i = 0; i < count; i++ ) - { - if( iLayouts[ i ].iLayout->Changed() ) - { - return ETrue; - } - } - - return iChanged; -*/ } - -// ----------------------------------------------------------------------------- -// DoClearChanged -// ----------------------------------------------------------------------------- -void TGlxBlendLayout::DoClearChanged() - { - TInt count = iLayouts.Count(); - for( TInt i = 0; i < count; i++ ) - { -// iLayouts[ i ].iLayout->ClearChanged(); - } - - iChanged = EFalse; - } - -// ----------------------------------------------------------------------------- -// TLayout::Match -// ----------------------------------------------------------------------------- -TBool TGlxBlendLayout::TLayout::Match( const TLayout& aLhs, const TLayout& aRhs ) - { - return aLhs.iLayout == aRhs.iLayout; - } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/layouts/src/glxlayoutsplitter.cpp --- a/photosgallery/viewframework/layouts/src/glxlayoutsplitter.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/layouts/src/glxlayoutsplitter.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -62,8 +62,6 @@ { // Call SetVisualListL first __ASSERT_DEBUG( iVisualList, Panic( EGlxPanicNullVisualList ) ); - // to replace EGlxPanicNullCHuiVisual - //__ASSERT_DEBUG( aVisual && aLayout, Panic( EGlxPanicNullCAlfVisual ) ); // search if there already is a layout for this visual __DEBUG_ONLY( TLayout temp;temp.iVisual = aVisual; ); __ASSERT_DEBUG( @@ -89,7 +87,7 @@ { iLayouts.Remove( index ); } - // NOTE! it is ok to try to remove a layout from visual when there was none + // NOTE: it is ok to try to remove a layout from visual when there was none } // ----------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/layouts/src/glxsetcoefficientlayout.cpp --- a/photosgallery/viewframework/layouts/src/glxsetcoefficientlayout.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Set coefficient layout -* -*/ - - - - -#include "glxsetcoefficientlayout.h" - -// ----------------------------------------------------------------------------- -// Constructor -// ----------------------------------------------------------------------------- -EXPORT_C TGlxSetCoefficientLayout::TGlxSetCoefficientLayout() - { - __DEBUG_ONLY( _iName = _L( "TGlxSetCoefficientLayout" ) ); - - // by default set all coefficients - iType = TGlxLayoutInfo::ELastEnum; - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -EXPORT_C TGlxSetCoefficientLayout::~TGlxSetCoefficientLayout() - { - // Do nothing - } - -// ----------------------------------------------------------------------------- -// SetType -// ----------------------------------------------------------------------------- -EXPORT_C void TGlxSetCoefficientLayout::SetType( TGlxLayoutInfo::TLayoutType aType ) - { - iType = aType; - } - -// ----------------------------------------------------------------------------- -// SetCoefficient -// ----------------------------------------------------------------------------- -EXPORT_C void TGlxSetCoefficientLayout::SetCoefficient( - TReal32 aCoefficient, TInt aMilliseconds) - { -// iCoefficient.Set( aCoefficient, aMilliseconds ); - } - -// ----------------------------------------------------------------------------- -// DoMapValue -// ----------------------------------------------------------------------------- -void TGlxSetCoefficientLayout::DoSetLayoutValues( TGlxLayoutInfo& aInfo ) - { - // set coefficient - if( iType == TGlxLayoutInfo::ELastEnum ) - { - // set them all - for( TInt i = 0; i < TGlxLayoutInfo::ELastEnum; i++ ) - { - // need to cast the index to enum type for the compiler to be happy -// aInfo.SetCoefficient( -// (TGlxLayoutInfo::TLayoutType)i, iCoefficient.Now() ); - } - } - else - { - // just set the one specified -// aInfo.SetCoefficient( iType, iCoefficient.Now() ); - } - } - -// ----------------------------------------------------------------------------- -// DoChanged -// ----------------------------------------------------------------------------- -TBool TGlxSetCoefficientLayout::DoChanged() const - { -// return iCoefficient.Changed(); - } - -// ----------------------------------------------------------------------------- -// DoClearChanged -// ----------------------------------------------------------------------------- -void TGlxSetCoefficientLayout::DoClearChanged() - { -// iCoefficient.ClearChanged(); - } - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/layouts/src/glxzoomlayoutbase.cpp --- a/photosgallery/viewframework/layouts/src/glxzoomlayoutbase.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Implementation of TGlxZoomLayoutBase -* -*/ - - - - -// INCLUDE FILES - -#include "glxzoomlayoutbase.h" - -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C TGlxZoomLayoutBase::TGlxZoomLayoutBase() - { - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -EXPORT_C TGlxZoomLayoutBase::~TGlxZoomLayoutBase() - { - } - -// ----------------------------------------------------------------------------- -// SetImageDimensions -// ----------------------------------------------------------------------------- -// -EXPORT_C void TGlxZoomLayoutBase::SetImageDimensions(const TSize& aDimensions) - { - iImageDimensions = aDimensions; - iChanged = ETrue; - } - -// ----------------------------------------------------------------------------- -// ImageDimensions -// ----------------------------------------------------------------------------- -// -EXPORT_C const TSize& TGlxZoomLayoutBase::ImageDimensions() const - { - return iImageDimensions; - } - -// ----------------------------------------------------------------------------- -// DoSetLayoutValues -// ----------------------------------------------------------------------------- -// -EXPORT_C void TGlxZoomLayoutBase::DoSetLayoutValues(TGlxLayoutInfo& aInfo) - { - TAlfRealRect rect; - GetCurrentCoords(rect); - - // These checks on iImageDimensions width/height must occur after GetCurrentCoords, - /* // since they may be changed as a result of the call to GetCurrentCoords - if ( iImageDimensions.iWidth > 0 && iImageDimensions.iHeight > 0 ) - { - // The previous layout in the chain has set the position and size for - // the visual to fill the screen, so we base the values on that. - - // Now adjust according to zoom coordinates - TAlfRealPoint centre = rect.Center(); - TReal32 width = aInfo.iScreenSize.iX * rect.Width(); - TReal32 height = aInfo.iScreenSize.iY * rect.Height(); - - // Adjust size according to proportion of screen that image fills - // Account for TGlxRotationLayout swapping width and height - TAlfRealSize imageSize(iImageDimensions); - TAlfRealSize screenSize(aInfo.ScreenInfo()->iWidth, - aInfo.ScreenInfo()->iHeight); - if ( screenSize.iHeight * imageSize.iWidth - < imageSize.iHeight * screenSize.iWidth ) - { - // Screen has wider aspect than image - TReal32 sizeRatioX = (screenSize.iHeight * imageSize.iWidth) - / (screenSize.iWidth * imageSize.iHeight); - if ( aInfo.iRotation ) - { - // Rotated - height *= sizeRatioX; - } - else - { - // Normal - width *= sizeRatioX; - } - } - else - { - // Screen has taller aspect than image - TReal32 sizeRatioY = (screenSize.iWidth * imageSize.iHeight) - / (screenSize.iHeight * imageSize.iWidth); - if ( aInfo.iRotation ) - { - // Rotated - width *= sizeRatioY; - } - else - { - // Normal - height *= sizeRatioY; - } - } - - aInfo.iPosition.iX += centre.iX * aInfo.iSize.iX; - aInfo.iPosition.iY += centre.iY * aInfo.iSize.iY; - aInfo.iSize.iX = width; - aInfo.iSize.iY = height; - } -*/ - } - - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/inc/glxcachemanager.h --- a/photosgallery/viewframework/medialists/inc/glxcachemanager.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/inc/glxcachemanager.h Wed Mar 31 21:31:03 2010 +0300 @@ -55,8 +55,7 @@ */ class CGlxCacheManager : public CBase, public MGlxCache, - public MGlxMediaPool, - public MImageReadyCallBack + public MGlxMediaPool #ifdef USE_S60_TNM , public MThumbnailManagerObserver #endif @@ -184,9 +183,6 @@ //OOM void ForceCleanupMedia(TGlxIdSpaceId aSpaceId,TGlxMediaId aId); -public: - void ImageSizeReady(TInt aError, const TSize aSz); - private: /** * Constructor @@ -370,17 +366,16 @@ CAsyncCallBack* iMaintainCacheCallback; RArray iRequestedItemIndexes; + CGlxImageReader* iReader; - TSize iImgSz; - /** - * Active scheduler wait object. (Owned) - */ - CActiveSchedulerWait* iSchedulerWait; + // For image viewer, not own - CGlxImageViewerManager* iImageViewerInstance; + CGlxImageViewerManager* iImageViewerInstance; + #ifdef USE_S60_TNM CThumbnailManager* iTnEngine; // Own - CMPXMedia* iMPXMedia; + + CMPXMedia* iMPXMedia; // Loading information class TLoadingTN diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/inc/glximagereader.h --- a/photosgallery/viewframework/medialists/inc/glximagereader.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/inc/glximagereader.h Wed Mar 31 21:31:03 2010 +0300 @@ -24,51 +24,29 @@ class CFbsBitmap; /** - * Image Size observer. - * - * Callback interface for getting size information of a given image. - */ -class MImageReadyCallBack - { -public: - /** - * Getting image size information is complete. - * - * @param aError Error code. - * @param aSz Size of the image. - */ - virtual void ImageSizeReady(TInt aError, const TSize aSz) = 0; - }; - -/** * CGlxImageReader * * Image Attributes Reader * * @lib glxmedialists.lib */ -class CGlxImageReader : public CActive +class CGlxImageReader : public CBase { private: - static CGlxImageReader* NewLC(MImageReadyCallBack& aNotify); - CGlxImageReader(MImageReadyCallBack& aNotify); + static CGlxImageReader* NewLC(); + CGlxImageReader(); void ConstructL(); void GetFileTypeL(TDataType aMimeType); -protected: - void DoCancel(); - void RunL(); - public: - static CGlxImageReader* NewL(MImageReadyCallBack& aNotify); + static CGlxImageReader* NewL(); ~CGlxImageReader(); TInt GetDRMRightsL(TInt aAttribute); TInt GetFrameCount(); + TSize GetDimensions(); private: - MImageReadyCallBack& iNotify; CImageDecoder* iImageDecoder; - CFbsBitmap* iFrame; CGlxImageViewerManager* iImgViewerMgr; }; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/inc/glxmedialist.h --- a/photosgallery/viewframework/medialists/inc/glxmedialist.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/inc/glxmedialist.h Wed Mar 31 21:31:03 2010 +0300 @@ -99,7 +99,10 @@ * @param aAttributes attributes to request for the items * @param aDetailedSpecs attribute specifications */ - void AttributeRequestL(RArray& aItemIndexes, RArray& aItemIds, RArray& aAttributes, CMPXAttributeSpecs*& aDetailedSpecs) const; + void AttributeRequestL(RArray& aItemIndexes, + RArray& aItemIds, + RArray& aAttributes, + CMPXAttributeSpecs*& aDetailedSpecs) const; /** * Ordering function for attributes diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/inc/mglxmedialist.h --- a/photosgallery/viewframework/medialists/inc/mglxmedialist.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/inc/mglxmedialist.h Wed Mar 31 21:31:03 2010 +0300 @@ -159,17 +159,6 @@ virtual void RemoveContext(const MGlxFetchContext* aContext) = 0; /** - * Sets the specified contexts as highest priority contexts. Other - * contexts will retain their relative priority order, but will have - * less priority than the specified contexts. - * - * @param aContextIds Ids of the contexts to be set as highest priority. - * Id at index 0 in the array is set to be the highest priority, - * Id at index 1, the second highest, etc. - */ -// virtual void SetContextAsHighestPriority(RArray aContextIds) = 0; - - /** * @returns the MPX collection utility that is bound to this list */ virtual MMPXCollection& Collection() const = 0; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/src/glxcache.cpp --- a/photosgallery/viewframework/medialists/src/glxcache.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/src/glxcache.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -136,7 +136,12 @@ if (aMedia.IsSupported(KMPXMediaArrayContents)) { - CMPXMediaArray* mediaArray = aMedia.ValueCObjectL(KMPXMediaArrayContents); +#ifdef _DEBUG + TTime startTime; + startTime.HomeTime(); +#endif + CMPXMediaArray* mediaArray = aMedia.ValueCObjectL ( + KMPXMediaArrayContents); CleanupStack::PushL(mediaArray); TInt arrayCount = mediaArray->Count(); @@ -147,6 +152,12 @@ } CleanupStack::PopAndDestroy(mediaArray); +#ifdef _DEBUG + TTime stopTime; + stopTime.HomeTime(); + GLX_DEBUG2("=>CGlxCache::MediaUpdatedL() took <%d> us", + (TInt)stopTime.MicroSecondsFrom(startTime).Int64()); +#endif } else { @@ -191,7 +202,7 @@ CopyNewAndModifiedL(*item, aMedia, newAttributes); } - // Broadcast the new attributes to all observers of the item and the cache + // Broadcast the new attributes to all observers of the item if (newAttributes.Count() > 0) { TInt count = item->UserCount(); @@ -199,9 +210,6 @@ { item->User( i ).HandleAttributesAvailableL( item->IndexInUser( i ), newAttributes ); } - - // Broadcast to cache observers - // iCacheManager->BroadcastAttributesAvailableL(iIdSpaceId, id, newAttributes, item); } CleanupStack::PopAndDestroy(&newAttributes); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/src/glxcachemanager.cpp --- a/photosgallery/viewframework/medialists/src/glxcachemanager.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/src/glxcachemanager.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -55,8 +55,8 @@ /// @todo Find optimal value for this const TInt KGlxTemporaryErrorRecheckPeriodInSeconds = 5; -const TInt KGlxLowerMemoryLimitForCleanUp = 15000000; -const TInt KGlxUpperMemoryLimitForCleanUp = 25000000; +const TInt KGlxLowerMemoryLimitForCleanUp = 31500000; // 30 MB +const TInt KGlxUpperMemoryLimitForCleanUp = 52500000; // 50 MB const TInt KGlxNoOfPagesToFlushInCriticalLowMemory = 4; // ----------------------------------------------------------------------------- // InstanceL @@ -115,7 +115,6 @@ iGarbageCollector = CGlxGarbageCollector::NewL( iCaches ); iTempErrorTimer = CPeriodic::NewL(CActive::EPriorityStandard); - iSchedulerWait = new (ELeave) CActiveSchedulerWait(); iMaintainCacheCallback = new ( ELeave ) CAsyncCallBack( TCallBack( MaintainCacheL, this ), CActive::EPriorityStandard ); @@ -133,7 +132,6 @@ { TRACER("CGlxCacheManager::Destructor"); - delete iSchedulerWait; iObserverList.ResetAndDestroy(); iCaches.ResetAndDestroy(); delete iTempThumbnail; @@ -179,13 +177,8 @@ void CGlxCacheManager::HandleWindowChangedL(CGlxMediaList* /*aList*/) { TRACER("CGlxCacheManager::HandleWindowChangedL"); - GLX_LOG_INFO("---- MGallery - CGlxCacheManager::HandleWindowChangedL()---- "); - iMaintainCacheCallback->CallBack(); - // Its Better if we are not Cleaning Cache here; Instaed Can Do inside MainTainCache - //MaintainCacheL(); - //iGarbageCollector->Cleanup(); } // ----------------------------------------------------------------------------- @@ -572,7 +565,7 @@ #ifdef USE_S60_TNM if (iRequestedItemIndexes.Count()) { - // Cancel Clean-up is needed here; + // Cancel Clean-up is needed here HandleGarbageCollectionL(EFalse); TSize tnSize; @@ -675,7 +668,7 @@ attrSpecs->SetTObjectValueL(thHandleAttrSpec, iTempThumbnail->Handle()); } - // Cancel Clean-up is needed here; + // Cancel Clean-up is needed here // This is Going to Highly Used Call // Can Think about an Ulternative. HandleGarbageCollectionL(EFalse); @@ -785,11 +778,7 @@ if(!iReader) { - TRAP(errInImage,iReader = CGlxImageReader::NewL(*this)); - if(errInImage == KErrNone) - { - iSchedulerWait->Start(); - } + TRAP(errInImage, iReader = CGlxImageReader::NewL()); } for ( TInt i = 0; i < iRequestedAttrs.Count(); i++ ) @@ -931,15 +920,15 @@ } else if ( iRequestedAttrs[i] == KGlxMediaGeneralDimensions ) { + TSize dimensions = TSize(); if(errInImage == KErrNone) { //need to fetch the original file dimensions - TSize dimensions(iImgSz.iWidth,iImgSz.iHeight); + dimensions = iReader->GetDimensions(); iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions); } else { - TSize dimensions(0,0); iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions); } } @@ -1033,7 +1022,7 @@ TMPXAttribute thHandleAttrSpec(KGlxMediaIdThumbnail, KGlxAttribSpecThumbnailBitmapHandle); attrSpecs->SetTObjectValueL(thHandleAttrSpec, iTempThumbnail->Handle()); } - // Cancel Clean-up is needed here; + // Cancel Clean-up is needed here // This is Going to Highly Used Call // Can Think about an Ulternative. HandleGarbageCollectionL(EFalse); @@ -1295,7 +1284,6 @@ { if ( KErrNoMemory == err ) { - //iGarbageCollector->Cleanup(); HandleGarbageCollectionL(ETrue); } @@ -1541,28 +1529,29 @@ User::LeaveIfError( session.Connect() ); CleanupClosePushL( session ); - TUid uid; - User::LeaveIfError( session.AppForDocument( aFileName, uid, aMimeType ) ); - CleanupStack::PopAndDestroy(&session); - } + if (iImageViewerInstance->IsPrivate()) + { + TDataRecognitionResult result; + TInt err = session.RecognizeData(iImageViewerInstance->ImageFileHandle(), result); + GLX_DEBUG2("CGlxCacheManager::GetMimeTypeL(FileHandle) err=%d", err); + if (err == KErrNone) + { + aMimeType = result.iDataType; + } + } + else + { + TUid uid; + TDataType dataType; + TInt err = session.AppForDocument(aFileName, uid, dataType); + GLX_DEBUG2("CGlxCacheManager::GetMimeTypeL(FileName) err=%d", err); -// ----------------------------------------------------------------------------- -// ImageSizeReady() -// ----------------------------------------------------------------------------- -// -void CGlxCacheManager::ImageSizeReady(TInt aError, const TSize aSz) - { - TRACER("CGlxCacheManager::ImageSizeReady"); - GLX_DEBUG2("CGlxCacheManager::ImageSizeReady aError=%d", aError); - iImgSz = TSize(); - if(iSchedulerWait) - { - iSchedulerWait->AsyncStop(); - } - - iImgSz = aSz; - GLX_DEBUG3("CGlxCacheManager::ImageSizeReady() iImgSz w(%d) h(%d)", - iImgSz.iWidth, iImgSz.iHeight); + if (err == KErrNone) + { + aMimeType = dataType; + } + } + CleanupStack::PopAndDestroy(&session); } // ----------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/src/glxgarbagecollector.cpp --- a/photosgallery/viewframework/medialists/src/glxgarbagecollector.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/src/glxgarbagecollector.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -135,7 +135,6 @@ if (iPeriodic->IsActive()) { iPeriodic->Cancel(); - // Consideration of Restarting the timer is there; } } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/src/glximagereader.cpp --- a/photosgallery/viewframework/medialists/src/glximagereader.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/src/glximagereader.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -34,11 +34,11 @@ // CGlxImageReader::NewL // --------------------------------------------------------- // -CGlxImageReader* CGlxImageReader::NewL(MImageReadyCallBack& aNotify) +CGlxImageReader* CGlxImageReader::NewL() { TRACER("CGlxImageReader::NewL"); - CGlxImageReader* self = CGlxImageReader::NewLC( aNotify); + CGlxImageReader* self = CGlxImageReader::NewLC(); CleanupStack::Pop(self); return self; } @@ -47,11 +47,11 @@ // CGlxImageReader::NewLC // --------------------------------------------------------- // -CGlxImageReader* CGlxImageReader::NewLC(MImageReadyCallBack& aNotify) +CGlxImageReader* CGlxImageReader::NewLC() { TRACER("CGlxImageReader::NewLC"); - CGlxImageReader* self = new(ELeave) CGlxImageReader(aNotify); + CGlxImageReader* self = new(ELeave) CGlxImageReader(); CleanupStack::PushL(self); self->ConstructL(); return self; @@ -61,10 +61,9 @@ // CGlxImageReader::CGlxImageReader // --------------------------------------------------------- // -CGlxImageReader::CGlxImageReader(MImageReadyCallBack& aNotify) -:CActive(0),iNotify(aNotify) - { - } +CGlxImageReader::CGlxImageReader() + { + } // --------------------------------------------------------- // CGlxImageReader::~CGlxImageReader @@ -75,15 +74,9 @@ TRACER("CGlxImageReader::~"); if(iImageDecoder) { - Cancel(); delete iImageDecoder; } - if(iFrame) - { - delete iFrame; - } - if(iImgViewerMgr) { iImgViewerMgr->DeleteInstance(); @@ -98,8 +91,6 @@ { TRACER("CGlxImageReader::ConstructL"); - CActiveScheduler::Add(this); - iImgViewerMgr = CGlxImageViewerManager::InstanceL(); if (!iImgViewerMgr) { @@ -121,48 +112,11 @@ TRAP(errInImage,iImageDecoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(), iImgViewerMgr->ImageUri()->Des())); } } + if (errInImage != KErrNone) { User::Leave(errInImage); } - - if ( iImageDecoder ) - { - iFrame = new (ELeave) CFbsBitmap(); - User::LeaveIfError(iFrame->Create( - iImageDecoder->FrameInfo(0).iOverallSizeInPixels, - iImageDecoder->FrameInfo(0).iFrameDisplayMode)); - iImageDecoder->Convert(&iStatus, *iFrame, 0); - SetActive(); - } - } - -// --------------------------------------------------------- -// CGlxImageReader::DoCancel -// --------------------------------------------------------- -// -void CGlxImageReader::DoCancel() - { - TRACER("CGlxImageReader::DoCancel"); - iImageDecoder->Cancel(); - } - -// --------------------------------------------------------- -// CGlxImageReader::RunL -// --------------------------------------------------------- -// -void CGlxImageReader::RunL() - { - TRACER("CGlxImageReader::RunL"); - - TSize size = TSize(); - TInt reqStatus = iStatus.Int(); - if (reqStatus == KErrNone && iFrame) - { - size = iFrame->SizeInPixels(); - } - GLX_DEBUG2("CGlxImageReader::RunL() reqStatus=%d", reqStatus); - iNotify.ImageSizeReady(reqStatus, size); } // --------------------------------------------------------- @@ -223,5 +177,23 @@ { frameCount = iImageDecoder->FrameCount(); } + GLX_DEBUG2("CGlxImageReader::GetFrameCount frameCount=%d", frameCount); return frameCount; } + +// --------------------------------------------------------- +// CGlxImageReader::GetDimensions +// --------------------------------------------------------- +// +TSize CGlxImageReader::GetDimensions() + { + TRACER("CGlxImageReader::GetDimensions"); + TSize size = TSize(); + if (iImageDecoder) + { + size = iImageDecoder->FrameInfo().iOverallSizeInPixels; + } + GLX_DEBUG3("CGlxImageReader::GetImageSize() size w(%d) h(%d)", + size.iWidth, size.iHeight); + return size; + } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/src/glxlistwindow.cpp --- a/photosgallery/viewframework/medialists/src/glxlistwindow.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/src/glxlistwindow.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -445,9 +445,8 @@ // Focus should stay on the same item if possible. If not, it should // go to the first previous item still existing. If none, it should go to // first (=first next) item. - - // @todo: Do not maintain focus index in this class!!! This is broken - + + // @todo: Do not maintain focus index in this class, This is broken // Update focus if the removal point was before the focus if (aFirstRemovedIndex <= newFocusIndex) { @@ -658,7 +657,7 @@ TRACER("CGlxListWindow::Range"); TRange range; - range.iLength = iRearOffset - iFrontOffset + 1; // Add 1 for focus; + range.iLength = iRearOffset - iFrontOffset + 1; // Add 1 for focus // Start index is always zero if the whole list fits into the window if ( range.iLength >= aChange.iNewTotalSize ) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/src/glxmedia.cpp --- a/photosgallery/viewframework/medialists/src/glxmedia.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/src/glxmedia.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -675,8 +675,6 @@ return KNullDesC; } - // __ASSERT_DEBUG(EMPXTypeText == iValues[i].iType, - // Panic(EGlxPanicWrongAttributeType)); if(EMPXTypeText == iValues[i].iType) { ptr = reinterpret_cast(iValues[i].iValue); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/src/glxmedialist.cpp --- a/photosgallery/viewframework/medialists/src/glxmedialist.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/src/glxmedialist.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -680,9 +680,6 @@ TInt index = iItemListObservers.Find(aObserver); - // Make sure the observer is in the array - // LOG THIS! __ASSERT_DEBUG(index != -1, Panic(EGlxPanicIllegalArgument)); // No such observer - if (index != KErrNotFound) { iItemListObservers.Remove(index); @@ -1738,8 +1735,12 @@ inline void CGlxMediaList::UpdateMedia() { TRACER("CGlxMediaList::UpdateMedia"); - +#ifdef _DEBUG + TTime startTime; + startTime.HomeTime(); +#endif TInt count = iItemList->Count(); + GLX_DEBUG2("CGlxMediaList::UpdateMedia() count=%d", count); for (TInt i = 0; i < count; ++i) { TGlxMedia& item = iItemList->Item( i ); @@ -1751,6 +1752,12 @@ UpdateMediaInvalidateAttributesChangedByCounts(item); } } +#ifdef _DEBUG + TTime stopTime; + stopTime.HomeTime(); + GLX_DEBUG2("=>CGlxMediaList::UpdateMedia() took <%d> us", + (TInt)stopTime.MicroSecondsFrom(startTime).Int64()); +#endif } // ----------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/src/glxmedialistiterator.cpp --- a/photosgallery/viewframework/medialists/src/glxmedialistiterator.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/src/glxmedialistiterator.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -30,8 +30,8 @@ // Default granularity of items to request for const TUint KGlxBlockyIteratorDefaultGranularity = 15; -const TInt KGlxLowerMemoryLimitForCacheSize = 15000000; -const TInt KGlxUpperMemoryLimitForCacheSize = 25000000; +const TInt KGlxLowerMemoryLimitForCacheSize = 31500000; // 30 MB +const TInt KGlxUpperMemoryLimitForCacheSize = 52500000; // 50 MB const TInt KMaxLowMemOffsetValue = 3; const TInt KMinLowMemOffsetValue = 1; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/src/glxnavigablelist.cpp --- a/photosgallery/viewframework/medialists/src/glxnavigablelist.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/src/glxnavigablelist.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -689,14 +689,6 @@ // remove from array of selected items iSelectedItemIndices.Remove( selectionArrayIndex ); - // free unused memory from selected item indexes array - // (this call may be a performance bottleneck if executing unmark all - // in a list of many thousands of items when most of them are marked. - // if it is proved to be a performance bottleneck, it may be sensible - // to count how many times Deselect has been called, an only - // compress every x times.) - //iSelectedItemIndices.Compress(); - // selection has changed, notify observer iObserver.HandleItemSelected( aIndex, EFalse ); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/src/glxthumbnailcontext.cpp --- a/photosgallery/viewframework/medialists/src/glxthumbnailcontext.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/src/glxthumbnailcontext.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -159,7 +159,7 @@ spec.iPossHeight = iResolutionUtility->PixelsToPoss( height ); spec.iFocusOffset = aFocusOffset; - // Has this focus index has already been added? + // Checf if this focus index has already been added #ifdef _DEBUG TIdentityRelation match (&TAssignedFetchSpec::Match); #endif @@ -589,7 +589,7 @@ const TDesC& uri = item.Uri(); if ( uri.Length() && cat != EMPXNoCategory ) { - valid = iDrmUtility->CheckOpenRightsL( uri, ( cat == EMPXImage ) ); + valid = iDrmUtility->ItemRightsValidityCheckL( uri, ( cat == EMPXImage ) ); CGlxMedia* properties = const_cast(item.Properties()); if( valid ) { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/src/glxlisttestbase.h --- a/photosgallery/viewframework/medialists/tsrc/src/glxlisttestbase.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/src/glxlisttestbase.h Wed Mar 31 21:31:03 2010 +0300 @@ -90,12 +90,6 @@ * and 'f' indicates "no, is not linked" */ TBool IsLinkedToMedia( const TDesC8& aAnswers ) const; - /** - * Creates a media object in pool, and offers to list. - * @param aAnswers See IsLinkedToMedia - * @param aShouldAccept ETrue if list should accept the offer - */ - //TBool TryOfferMedia( TChar aId, const TDesC8& aAnswers, TBool aShouldAccept ); /** * Tries to remove reference of list from media diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/t_cglxcache/t_cglxcache.cpp --- a/photosgallery/viewframework/medialists/tsrc/t_cglxcache/t_cglxcache.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/t_cglxcache/t_cglxcache.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -53,8 +53,7 @@ T_CGlxCache* T_CGlxCache::NewL() { T_CGlxCache* self = T_CGlxCache::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -62,9 +61,7 @@ { T_CGlxCache* self = new( ELeave ) T_CGlxCache(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } @@ -480,7 +477,6 @@ void T_CGlxCache::T_CGlxCache_ReserveUsersLL( ) { - // iCGlxCache->ReserveUsersL( ); EUNIT_ASSERT_DESC( EFalse, "Generated assert, replace with real"); } @@ -512,7 +508,7 @@ CGlxCacheObserverTest* self = new (ELeave) CGlxCacheObserverTest(); CleanupStack::PushL(self); self->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } @@ -599,7 +595,7 @@ CGlxMediaUserTest* self = new (ELeave) CGlxMediaUserTest(); CleanupStack::PushL(self); self->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/t_cglxfetcherrorarray/t_cglxfetcherrorarray.cpp --- a/photosgallery/viewframework/medialists/tsrc/t_cglxfetcherrorarray/t_cglxfetcherrorarray.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/t_cglxfetcherrorarray/t_cglxfetcherrorarray.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -39,8 +39,7 @@ T_CGlxFetchErrorArray* T_CGlxFetchErrorArray::NewL() { T_CGlxFetchErrorArray* self = T_CGlxFetchErrorArray::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -48,9 +47,7 @@ { T_CGlxFetchErrorArray* self = new( ELeave ) T_CGlxFetchErrorArray(); CleanupStack::PushL( self ); - self->ConstructL(); - return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/t_cglxgarbagecollector/t_cglxgarbagecollector.cpp --- a/photosgallery/viewframework/medialists/tsrc/t_cglxgarbagecollector/t_cglxgarbagecollector.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/t_cglxgarbagecollector/t_cglxgarbagecollector.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -60,12 +60,8 @@ const TInt KCache3Media7Id = 7; _LIT(KCache1Media1Title, "Captured"); -//_LIT(KCache1Media2Title, "Albums"); -//_LIT(KCache1Media3Title, "All"); _LIT(KCache1Media1SubTitle, "0 items"); -//_LIT(KCache1Media2SubTitle, "0 albums"); -//_LIT(KCache1Media3SubTitle, "7 items"); _LIT(KCache2Media1Title, "Favourites"); _LIT(KCache2Media2Title, "Print later"); @@ -74,24 +70,16 @@ _LIT(KCache2Media2SubTitle, "0 items"); _LIT(KCache3Media1Title, "Spring"); -//_LIT(KCache3Media2Title, "Summer"); _LIT(KCache3Media3Title, "Autumn"); _LIT(KCache3Media4Title, "Winter"); _LIT(KCache3Media5Title, "Sun"); -//_LIT(KCache3Media6Title, "Moon"); -//_LIT(KCache3Media7Title, "Stars"); const TInt KCache3Media1Size = 8; const TInt KCache3Media2Size = 16; const TInt KCache3Media3Size = 32; -//const TInt KCache3Media4Size = 64; -//const TInt KCache3Media5Size = 128; -//const TInt KCache3Media6Size = 256; -//const TInt KCache3Media7Size = 512; // This value must be the same as in the garbage collector const TInt KItemsScannedPerGCRound = 10; - const TInt KErrorExpiryPeriod = 30; const TInt KTimerCallbackPeriod1 = 5; const TInt KTimerCallbackPeriod2 = 35; @@ -107,8 +95,7 @@ T_CGlxGarbageCollector* T_CGlxGarbageCollector::NewL() { T_CGlxGarbageCollector* self = T_CGlxGarbageCollector::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -1170,7 +1157,6 @@ // Cleanup media1 in cache1 EUNIT_PRINT(_L("Cleanup media1 in cache1")); CGlxMedia* media1Cache1 = cache1Helper.ItemPool()[0]; - //CGlxMedia& media = cache1->Media(0); iCGlxGarbageCollector->CleanupMediaL(*cache1,*media1Cache1); EUNIT_PRINT(_L("Check remaining attributes for media1 in cache1")); @@ -2247,7 +2233,7 @@ CGlxMediaUserTest* self = new (ELeave) CGlxMediaUserTest(aGarbageCollector); CleanupStack::PushL(self); self->ConstructL(aAttributes); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } @@ -2296,7 +2282,7 @@ CTimerTest* self = new (ELeave) CTimerTest(aTestGarbageCollector); CleanupStack::PushL(self); self->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/t_cglxmedia/t_cglxmedia.cpp --- a/photosgallery/viewframework/medialists/tsrc/t_cglxmedia/t_cglxmedia.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/t_cglxmedia/t_cglxmedia.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -42,8 +42,7 @@ T_CGlxMedia* T_CGlxMedia::NewL() { T_CGlxMedia* self = T_CGlxMedia::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/t_glxfromfocusoutwarditerator/t_glxfromfocusoutwarditerator.cpp --- a/photosgallery/viewframework/medialists/tsrc/t_glxfromfocusoutwarditerator/t_glxfromfocusoutwarditerator.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/t_glxfromfocusoutwarditerator/t_glxfromfocusoutwarditerator.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -29,7 +29,7 @@ T_CGlxFromFocusOutwardIterator* T_CGlxFromFocusOutwardIterator::NewL() { T_CGlxFromFocusOutwardIterator* self = T_CGlxFromFocusOutwardIterator::NewLC(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/t_glxlistwindow/t_glxlistwindow.cpp --- a/photosgallery/viewframework/medialists/tsrc/t_glxlistwindow/t_glxlistwindow.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/t_glxlistwindow/t_glxlistwindow.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -35,8 +35,7 @@ t_CGlxListWindow* t_CGlxListWindow::NewL() { t_CGlxListWindow* self = t_CGlxListWindow::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/t_tglxexclusioniterator/t_tglxexclusioniterator.cpp --- a/photosgallery/viewframework/medialists/tsrc/t_tglxexclusioniterator/t_tglxexclusioniterator.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/t_tglxexclusioniterator/t_tglxexclusioniterator.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -32,8 +32,7 @@ t_tglxexclusioniterator* t_tglxexclusioniterator::NewL() { t_tglxexclusioniterator* self = t_tglxexclusioniterator::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.cpp --- a/photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -46,7 +46,7 @@ delete this; } -TBool CGlxDRMUtility::CheckOpenRightsL(const TDesC&, TBool) +TBool CGlxDRMUtility::ItemRightsValidityCheckL(const TDesC&, TBool) { return ETrue; } @@ -76,8 +76,7 @@ UT_CGlxAttributeContext* UT_CGlxAttributeContext::NewL() { UT_CGlxAttributeContext* self = UT_CGlxAttributeContext::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -200,13 +199,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop( attributes ); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop( itemIndices ); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy( mediaList ); } void UT_CGlxAttributeContext::FetchOneItem_IndexZeroL() @@ -241,13 +240,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchOneItem_IndexOneL() @@ -282,13 +281,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchOneItem_IndexTwoL() @@ -323,13 +322,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchOneItem_IndexThreeL() @@ -364,13 +363,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchOneItem_IndexFourL() @@ -405,13 +404,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexZeroL() @@ -446,13 +445,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexOneL() @@ -487,13 +486,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemindices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexTwoL() @@ -528,13 +527,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexThreeL() @@ -569,13 +568,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexFourL() @@ -610,13 +609,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexFiveL() @@ -651,13 +650,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } void UT_CGlxAttributeContext::FetchItems_GranularityGreaterThanRangeL() @@ -692,13 +691,13 @@ delete attributeSpecs; attributeSpecs = NULL; - CleanupStack::Pop(); + CleanupStack::Pop(attributes); attributes.Close(); - CleanupStack::Pop(); + CleanupStack::Pop(itemIndices); itemIndices.Close(); - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(mediaList); } TBool UT_CGlxAttributeContext::FindAttribute(RArray& aAttributes, const TMPXAttribute& aAttribute) @@ -718,7 +717,7 @@ CGlxMediaListTest* self = new (ELeave) CGlxMediaListTest(); CleanupStack::PushL(self); self->ConstructL(aNumberOfMedia); - CleanupStack::Pop(); + CleanupStack::Pop(self); return self; } @@ -777,7 +776,7 @@ } iMedias.AppendL(cGlxMedia); - CleanupStack::Pop(); + CleanupStack::Pop(cGlxMedia); } TGlxMedia tGlxMedia(id, cGlxMedia); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/ut_cglxitemlist/ut_cglxitemlist.cpp --- a/photosgallery/viewframework/medialists/tsrc/ut_cglxitemlist/ut_cglxitemlist.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxitemlist/ut_cglxitemlist.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -60,8 +60,7 @@ ut_CGlxItemList* ut_CGlxItemList::NewL() { ut_CGlxItemList* self = ut_CGlxItemList::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/ut_cglxmedialist/ut_cglxmedialist.cpp --- a/photosgallery/viewframework/medialists/tsrc/ut_cglxmedialist/ut_cglxmedialist.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxmedialist/ut_cglxmedialist.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -52,7 +52,7 @@ delete this; } -TBool CGlxDRMUtility::CheckOpenRightsL(const TDesC&, TBool) +TBool CGlxDRMUtility::ItemRightsValidityCheckL(const TDesC&, TBool) { return ETrue; } @@ -82,8 +82,7 @@ UT_CGlxMediaList* UT_CGlxMediaList::NewL() { UT_CGlxMediaList* self = UT_CGlxMediaList::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -136,7 +135,7 @@ path->AppendL(KFavouritesAlbumId); iCGlxMediaList = CGlxMediaList::InstanceL(*path, NULL); - CleanupStack::PopAndDestroy(); // path + CleanupStack::PopAndDestroy( path ); iCGlxMediaList->AddMediaListObserverL(this); @@ -698,7 +697,7 @@ EUNIT_ASSERT(titleAvailable && (*title == KTitle())); delete title; - CleanupStack::PopAndDestroy(); // addContainerCommand + CleanupStack::PopAndDestroy( addContainerCommand ); } void UT_CGlxMediaList::UT_CGlxMediaList_CancelCommandL( ) @@ -783,7 +782,7 @@ iCGlxMediaList->HandleCollectionMessageL(*message); } - CleanupStack::PopAndDestroy(); // message + CleanupStack::PopAndDestroy( message ); // message // Check correct notification was observed const TInt messageCount = mediaListObserver->MessageCount(); @@ -840,7 +839,7 @@ iCGlxMediaList->RemoveMediaListObserver(mediaListObserver); - CleanupStack::PopAndDestroy(); // mediaListObserver + CleanupStack::PopAndDestroy( mediaListObserver ); } void UT_CGlxMediaList::SetupFocusTestL() @@ -912,7 +911,7 @@ iCGlxMediaList->RemoveMediaListObserver(mediaListObserver); - CleanupStack::PopAndDestroy(); // mediaListObserver + CleanupStack::PopAndDestroy( mediaListObserver ); } void UT_CGlxMediaList::MoveFocusAbsoluteLessThanCurrentFocusL() @@ -950,7 +949,7 @@ iCGlxMediaList->RemoveMediaListObserver(mediaListObserver); - CleanupStack::PopAndDestroy(); // mediaListObserver + CleanupStack::PopAndDestroy( mediaListObserver ); } void UT_CGlxMediaList::MoveFocusRelativeForwardL() @@ -988,7 +987,7 @@ iCGlxMediaList->RemoveMediaListObserver(mediaListObserver); - CleanupStack::PopAndDestroy(); // mediaListObserver + CleanupStack::PopAndDestroy( mediaListObserver ); } void UT_CGlxMediaList::MoveFocusRelativeBackwardL() @@ -1026,7 +1025,7 @@ iCGlxMediaList->RemoveMediaListObserver(mediaListObserver); - CleanupStack::PopAndDestroy(); // mediaListObserver + CleanupStack::PopAndDestroy( mediaListObserver ); } void UT_CGlxMediaList::MoveFocusRelativeForwardGreaterThanListCountL() @@ -1065,7 +1064,7 @@ iCGlxMediaList->RemoveMediaListObserver(mediaListObserver); - CleanupStack::PopAndDestroy(); // mediaListObserver + CleanupStack::PopAndDestroy( mediaListObserver ); } void UT_CGlxMediaList::MoveFocusRelativeBackwardLessThanZeroL() @@ -1104,7 +1103,7 @@ iCGlxMediaList->RemoveMediaListObserver(mediaListObserver); - CleanupStack::PopAndDestroy(); // mediaListObserver + CleanupStack::PopAndDestroy( mediaListObserver ); } void UT_CGlxMediaList::ReceiveMessageItemChangedItemModifiedL() @@ -1127,7 +1126,6 @@ // Send item modified notification for item not in list EUNIT_PRINT(_L("Send item modified notification for item not in list")); TMPXCollectionMessage message1(TMPXCollectionMessage::EItemChanged, EMcItemModified, KFavouritesAlbumId); -// iCGlxMediaList->HandleCollectionMessageL(message1); // Check no notification was observed TInt messageCount = mediaListObserver->MessageCount(); @@ -1138,7 +1136,6 @@ // Send item modified notification for item in list EUNIT_PRINT(_L("Send item modified notification for item in list")); TMPXCollectionMessage message2(TMPXCollectionMessage::EItemChanged, EMcItemModified, KFavouritesAlbumFirstItemId); -// iCGlxMediaList->HandleCollectionMessageL(message2); // Check correct notification was observed messageCount = mediaListObserver->MessageCount(); @@ -1177,7 +1174,7 @@ CGlxMediaListObserverTest* self = new (ELeave) CGlxMediaListObserverTest(); CleanupStack::PushL(self); self->ConstructL(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/ut_cglxnavigablelist/ut_cglxnavigablelist.cpp --- a/photosgallery/viewframework/medialists/tsrc/ut_cglxnavigablelist/ut_cglxnavigablelist.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxnavigablelist/ut_cglxnavigablelist.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -111,8 +111,7 @@ ut_CGlxNavigableList* ut_CGlxNavigableList::NewL() { ut_CGlxNavigableList* self = ut_CGlxNavigableList::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/ut_cglxstaticitemlist/ut_cglxstaticitemlist.cpp --- a/photosgallery/viewframework/medialists/tsrc/ut_cglxstaticitemlist/ut_cglxstaticitemlist.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxstaticitemlist/ut_cglxstaticitemlist.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -88,8 +88,7 @@ ut_CGlxStaticItemList* ut_CGlxStaticItemList::NewL() { ut_CGlxStaticItemList* self = ut_CGlxStaticItemList::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/ut_glxerrormanager/ut_glxerrormanager.cpp --- a/photosgallery/viewframework/medialists/tsrc/ut_glxerrormanager/ut_glxerrormanager.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/ut_glxerrormanager/ut_glxerrormanager.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -48,7 +48,7 @@ delete this; } -TBool CGlxDRMUtility::CheckOpenRightsL(const TDesC&, TBool) +TBool CGlxDRMUtility::ItemRightsValidityCheckL(const TDesC&, TBool) { return ETrue; } @@ -79,8 +79,7 @@ ut_glxerrormanager* ut_glxerrormanager::NewL() { ut_glxerrormanager* self = ut_glxerrormanager::NewLC(); - CleanupStack::Pop(); - + CleanupStack::Pop( self ); return self; } @@ -88,7 +87,6 @@ { ut_glxerrormanager* self = new( ELeave ) ut_glxerrormanager(); CleanupStack::PushL( self ); - self->ConstructL(); return self; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/medialists/tsrc/ut_tglxselectioniterator/ut_tglxselectioniterator.cpp --- a/photosgallery/viewframework/medialists/tsrc/ut_tglxselectioniterator/ut_tglxselectioniterator.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/medialists/tsrc/ut_tglxselectioniterator/ut_tglxselectioniterator.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -29,7 +29,7 @@ T_CGlxSelectionIterator* T_CGlxSelectionIterator::NewL() { T_CGlxSelectionIterator* self = T_CGlxSelectionIterator::NewLC(); - CleanupStack::Pop(); + CleanupStack::Pop( self ); return self; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/fullscreenviewplugin/src/glximageviewerfullscreenviewplugin.cpp --- a/photosgallery/viewframework/plugins/fullscreenviewplugin/src/glximageviewerfullscreenviewplugin.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/plugins/fullscreenviewplugin/src/glximageviewerfullscreenviewplugin.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -44,7 +44,7 @@ #include #include #include - +#include #include #include // icons @@ -121,7 +121,7 @@ CGlxFullScreenViewPluginBase::AddCommandHandlersL(); TGlxHelpContext helpInfo; - helpInfo.iBrowseContext = LGAL_HLP_DOWNLOADS_FULLSCREEN; + helpInfo.iBrowseContext = LGAL_HLP_IMAGE_VIEWER; iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo)); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp --- a/photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -95,12 +95,7 @@ // TInt CGlxFullScreenViewPluginBase::PeriodicCallback(TAny* aPtr ) { - //GLX_ASSERT_DEBUG( aPtr != NULL, Panic( EGlxPanicLogicError ), - // "Received null pointer for garbage collector" ); - - // get "this" pointer static_cast< CGlxFullScreenViewPluginBase* >( aPtr )->PeriodicCallback(); - return KErrNone; } @@ -137,7 +132,6 @@ iFullScreenView = fullScreenView; - //AddCommandHandlersL(); GLX_LOG_INFO("Adding CGlxCommandHandlerBack"); iFullScreenView->AddCommandHandlerL( CGlxCommandHandlerBack::NewPreviousViewCommandHandlerL()); @@ -181,10 +175,6 @@ iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerDetails:: NewL(iFullScreenView)); -// GLX_LOG_INFO("Adding CGlxCommandHandlerRotate"); -// iFullScreenView->AddCommandHandlerL( -// CGlxCommandHandlerRotate::NewL( iFullScreenView ) ); - GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer"); iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAddToContainer:: NewAddToAlbumCommandHandlerL(iFullScreenView, EFalse)); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/gridviewpluginbase/src/glxgridviewpluginbase.cpp --- a/photosgallery/viewframework/plugins/gridviewpluginbase/src/glxgridviewpluginbase.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/plugins/gridviewpluginbase/src/glxgridviewpluginbase.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -198,8 +198,6 @@ GLX_LOG_INFO("Adding CGlxCommandHandlerCopyToHomeNetwork"); iGridView->AddCommandHandlerL(CGlxCommandHandlerCopyToHomeNetwork::NewL(*iGridView)); - //GLX_LOG_INFO("Adding CGlxCommandHandlerMarking"); - //iGridView->AddCommandHandlerL( CGlxCommandHandlerMarking::NewL(iGridView/*, *iGridView, ETrue*/ ) ); GLX_LOG_INFO("Adding CGlxCommandHandlerUpload"); iGridView->AddCommandHandlerL(CGlxCommandHandlerUpload::NewL(iGridView, ETrue)); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/metadataviewplugin/data/200071af.rss --- a/photosgallery/viewframework/plugins/metadataviewplugin/data/200071af.rss Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description : Resource Definitions -* -*/ - - - -// INCLUDES -#include -#include -#include "glxmetadataviewplugin.hrh" - - -// RESOURCE DEFINITIONS - -/** - * The opaque_data syntax is made up of three parts: - * a list of Uids for resolving the view plugin, feature flags, priority. - * - *

uid1;uid2;uid3

- * uid*: uid of the supported Playback/Collection plugin. - * E.g. if the view plugin supports Local Playback plugin, the list of - * uids will be: 0x101FFC06 - * - * uid - * uid: plugin type uid. - * E.g. if the view plugin supports playback type, uid will be: 0x101FFCA0 - * - * flags [optional] - * flags: sum of the required feature flags that listed in mpxviewplugin.hrh. - * E.g. if the view plugin needs to be pre-loaded and it's user-selectable, - * then flags = KMPXVpFeaturePreLoaded + KMPXVpFeatureUserSelectable = 0x0003. - * - * priority [optional] - * priority: a value of type TMPXViewPluginPriorities. This value determines - * which view plugin will be resolved when several plugins can support the - * same set of Uids. - * Default value of this field is EMPXViewPluginPriorityNormal. - */ -RESOURCE REGISTRY_INFO theInfo - { - dll_uid = 0x200071AF; - - interfaces = - { - INTERFACE_INFO - { - interface_uid = KMPXViewPluginInterfaceUid; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = KGlxMetadataViewImplementationId; - version_no = 1 ; - display_name = "Metadata view"; - default_data = ""; - opaque_data = "

0x2000A7C1

" - "0x200071B0" - "0x0002" - ""EMPXViewPluginPriorityLowest""; - } - }; - } - }; - } - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/metadataviewplugin/group/bld.inf --- a/photosgallery/viewframework/plugins/metadataviewplugin/group/bld.inf Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description : Project build file -* -*/ - - - -PRJ_EXPORTS - -//../rom/glxmetadataviewplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(glxmetadataviewplugin.iby) - -PRJ_MMPFILES - -//glxmetadataviewplugin.mmp - -//End of file - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/metadataviewplugin/group/glxmetadataviewplugin.mmp --- a/photosgallery/viewframework/plugins/metadataviewplugin/group/glxmetadataviewplugin.mmp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Project definition file -* -*/ - - - -#include - -#include "../../../../group/glxbuildcommon.mmh" -#include "../../../../inc/glxalfhelper.mmh" - -TARGET glxunifiedmetadataviewplugin.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x200071AF - -#ifndef WINSCW -EPOCALLOWDLLDATA -#endif -CAPABILITY CAP_ECOM_PLUGIN - -SOURCEPATH ../src -SOURCE glxmetadataviewpluginproxy.cpp -SOURCE glxmetadataviewplugin.cpp - -START RESOURCE ../data/200071AF.rss -//TARGET 200071AF.rsc -TARGET glxunifiedmetadataviewplugin.rsc -END // RESOURCE - -USERINCLUDE ../inc -SYSTEMINCLUDE ../../../views/viewbase/inc -SYSTEMINCLUDE ../../../medialists/inc -SYSTEMINCLUDE ../../../../inc -SYSTEMINCLUDE ../../../inc -SYSTEMINCLUDE ../../../uiutilities/inc -SYSTEMINCLUDE ../../../commandhandlers/commandhandlerbase/inc -SYSTEMINCLUDE ../../../commandhandlers/commoncommandhandlers/inc -SYSTEMINCLUDE ../../../commandhandlers/inc -SYSTEMINCLUDE ../../../views/metadataview/inc - -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib // for RAllocator -LIBRARY mpxviewplugin.lib // for CMPXViewPlugin -LIBRARY glxunifiedmetadataview.lib // for CGlxMetadataView -LIBRARY glxviewbase.lib // for CGlxViewBase -LIBRARY glxcommoncommandhandlers.lib - - -//EXPORTUNFROZEN - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/metadataviewplugin/inc/glxmetadataviewplugin.h --- a/photosgallery/viewframework/plugins/metadataviewplugin/inc/glxmetadataviewplugin.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description : Metadata view plugin definition. -* -*/ - - -#ifndef C_GLXMETADATAVIEWPLUGIN_H -#define C_GLXMETADATAVIEWPLUGIN_H - - -// INCLUDES -#include - -#include "glxmedialistfactory.h" - -// CLASS DECLARATION - -/** - * MPX Collection view plugin definition. - * - * @lib glxunifiedmetadataviewplugin.lib - */ -NONSHARABLE_CLASS( CGlxMetadataViewPlugin ) : public CMPXAknViewPlugin - { -public: - - /** - * Two-phased constructor. - * - * @return Pointer to newly created object. - */ - static CGlxMetadataViewPlugin* NewL(); - - /** - * Destructor. - */ - virtual ~CGlxMetadataViewPlugin(); - -private: - - /** - * From CMPXAknViewPlugin - * Construct Avkon view. - * - * @return Pointer to a newly created Avkon view. - */ - CAknView* ConstructViewLC(); - -private: - - /** - * C++ default constructor. - */ - CGlxMetadataViewPlugin(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - }; - -#endif // C_GLXMETADATAVIEWPLUGIN_H - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/metadataviewplugin/inc/glxmetadataviewplugin.hrh --- a/photosgallery/viewframework/plugins/metadataviewplugin/inc/glxmetadataviewplugin.hrh Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description : Resource header -* -*/ - - - -#ifndef GLXMETADATAVIEWPLUGIN_HRH -#define GLXMETADATAVIEWPLUGIN_HRH - -// CONSTANTS - -#define KGlxMetadataViewImplementationId 0x200071B0 - -#endif // GLXMETADATAVIEWPLUGIN_HRH - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/metadataviewplugin/rom/glxmetadataviewplugin.iby --- a/photosgallery/viewframework/plugins/metadataviewplugin/rom/glxmetadataviewplugin.iby Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description : Metadata View Plugin iby file. -* -*/ - - - -#ifndef __GLXMETADATAVIEWPLUGIN_IBY__ -#define __GLXMETADATAVIEWPLUGIN_IBY__ - -ECOM_PLUGIN( glxunifiedmetadataviewplugin.dll, glxunifiedmetadataviewplugin.rsc ) - -#endif // __GLXMETADATAVIEWPLUGIN_IBY__ \ No newline at end of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/metadataviewplugin/src/glxmetadataviewplugin.cpp --- a/photosgallery/viewframework/plugins/metadataviewplugin/src/glxmetadataviewplugin.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description : Implementation of metadata view plugin -* -*/ - - - -// INCLUDE FILES - -#include "glxmetadataviewplugin.h" - -#include // For CGlxCommandHandlerBack -#include -#include -#include - -#include "glxmetadataview.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------- -// -CGlxMetadataViewPlugin::CGlxMetadataViewPlugin() - { - // Do nothing - } - -// --------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------- -// -void CGlxMetadataViewPlugin::ConstructL() - { - // Do nothing - } - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CGlxMetadataViewPlugin* CGlxMetadataViewPlugin::NewL() - { - CGlxMetadataViewPlugin* self = new ( ELeave ) CGlxMetadataViewPlugin(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxMetadataViewPlugin::~CGlxMetadataViewPlugin() - { - // Do nothing - } - -// --------------------------------------------------------------------------- -// From CMPXAknViewPlugin -// Construct Avkon view. -// --------------------------------------------------------------------------- -// -CAknView* CGlxMetadataViewPlugin::ConstructViewLC() - { - /*Create view it self medialist provider ? */ - CGlxMetadataView* view = CGlxMetadataView::NewLC(NULL); - - // add command handlers - view->AddCommandHandlerL(CGlxCommandHandlerBack::NewPreviousViewCommandHandlerL(view)); - - TGlxHelpContext helpInfo; - helpInfo.iBrowseContext = LGAL_HLP_DETAILS_VIEW; - view->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo)); - - return view; - } - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/metadataviewplugin/src/glxmetadataviewpluginproxy.cpp --- a/photosgallery/viewframework/plugins/metadataviewplugin/src/glxmetadataviewpluginproxy.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description : Standard proxy of the ECOM plugin -* -*/ - - -// INCLUDE FILES -#include -#include "glxmetadataviewplugin.hrh" -#include "glxmetadataviewplugin.h" - -#if ( !defined IMPLEMENTATION_PROXY_ENTRY ) -typedef TAny* TProxyNewLPtr; -#define IMPLEMENTATION_PROXY_ENTRY( aUid,aFuncPtr ) { { aUid }, ( TProxyNewLPtr )( aFuncPtr ) } -#endif - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// The list of implementations -// --------------------------------------------------------------------------- -// -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY( - KGlxMetadataViewImplementationId, - CGlxMetadataViewPlugin::NewL ) - }; - -// --------------------------------------------------------------------------- -// The proxy of implementations -// --------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) - { - aTableCount = - sizeof( ImplementationTable ) / sizeof( TImplementationProxy ); - return ImplementationTable; - } - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/plugins/tagsbrowserviewplugin/data/glxtagsbrowserview.rss --- a/photosgallery/viewframework/plugins/tagsbrowserviewplugin/data/glxtagsbrowserview.rss Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/plugins/tagsbrowserviewplugin/data/glxtagsbrowserview.rss Wed Mar 31 21:31:03 2010 +0300 @@ -70,7 +70,7 @@ MENU_ITEM { command=EGlxStopShowing; txt=qtn_lgal_options_stop_show; }, MENU_ITEM { command=EAknCmdHelp; - txt=qtn_clipb_litxt_help; }, + txt=qtn_options_help; }, MENU_ITEM { command=EAknCmdExit; txt=qtn_options_exit; } }; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/texturemanager/inc/glxtexturemanagerimpl.h --- a/photosgallery/viewframework/texturemanager/inc/glxtexturemanagerimpl.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/texturemanager/inc/glxtexturemanagerimpl.h Wed Mar 31 21:31:03 2010 +0300 @@ -359,8 +359,6 @@ */ TInt NextTextureId(); - // void DoHandleResolutionChangedL(TInt aIconIndex); - /** * Scales the grid Thumbnail bitmap to the fullscreen keeping the aspect * ratio. diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/texturemanager/src/glxbitmapdecoderwrapper.cpp --- a/photosgallery/viewframework/texturemanager/src/glxbitmapdecoderwrapper.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/texturemanager/src/glxbitmapdecoderwrapper.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -101,7 +101,7 @@ { TRACER("CGlxBitmapDecoderWrapper:: DoDecodeImageL "); iThumbnailIndex = aIndex; - //Variable used to get the decoder type used; + //Variable used to get the decoder type used TBool isExtDecoderUsed = ETrue; #ifdef _DEBUG diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp --- a/photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -892,45 +892,6 @@ } // ----------------------------------------------------------------------------- -// DoHandleResolutionChangedL -// ----------------------------------------------------------------------------- -// -//To-do -/*void CGlxTextureManagerImpl::DoHandleResolutionChangedL(TInt aIconIndex) - { - TGlxIcon& icon = iIconList[aIconIndex]; - CAlfTexture* texture = icon.iTexture; - // Clear previous content - //texture->SetSegmentCountL(0); - - // Get new bitmaps - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - ProvideBitmapL(icon.iTextureId, bitmap, mask); - // Upload to texture - if(bitmap) - { - CleanupStack::PushL(bitmap); - texture->SetSize(bitmap->SizeInPixels()); - if(mask) - { - CleanupStack::PushL(mask); - texture->UploadL( *bitmap, mask, - EAlfTextureUploadFlagDefault ); - CleanupStack::PopAndDestroy(mask); - } - else - { - texture->UploadL( *bitmap, NULL, - EAlfTextureUploadFlagDefault ); - - } - CleanupStack::PopAndDestroy(bitmap); - } - }*/ - - -// ----------------------------------------------------------------------------- // ProvideBitmapL // ----------------------------------------------------------------------------- // @@ -1108,9 +1069,9 @@ // check if rights have expired TBool checkViewRights = (cat==EMPXImage); - //Fix for ESLM-82WJ59: Since uri can be either focused or unfocused item - //better call CheckOpenRightsL which doesn't modify lastconsumedUri. - drmInvalid = !iDrmUtility->CheckOpenRightsL(uri, checkViewRights); + //Since uri can be either focused or unfocused item + //better call ItemRightsValidityCheckL which doesn't modify lastconsumedUri. + drmInvalid = !iDrmUtility->ItemRightsValidityCheckL(uri, checkViewRights); CGlxMedia* properties = const_cast(aMedia.Properties()); if( !drmInvalid ) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/tvout/bwins/glxtvoutu.def --- a/photosgallery/viewframework/tvout/bwins/glxtvoutu.def Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/tvout/bwins/glxtvoutu.def Wed Mar 31 21:31:03 2010 +0300 @@ -3,15 +3,15 @@ ?ScreenSizeL@CGlxTv@@QBE?AVTSize@@XZ @ 2 NONAME ; class TSize CGlxTv::ScreenSizeL(void) const ??1CGlxTv@@UAE@XZ @ 3 NONAME ; CGlxTv::~CGlxTv(void) ??1CGlxHdmiController@@UAE@XZ @ 4 NONAME ; CGlxHdmiController::~CGlxHdmiController(void) - ?SetImageL@CGlxHdmiController@@QAEXABVTDesC16@@VTSize@@HH@Z @ 5 NONAME ; void CGlxHdmiController::SetImageL(class TDesC16 const &, class TSize, int, int) + ?NewL@CGlxHdmiController@@SAPAV1@XZ @ 5 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(void) ?IsWidescreen@CGlxTv@@QBEHXZ @ 6 NONAME ; int CGlxTv::IsWidescreen(void) const ?IsHDMIConnected@CGlxHdmiController@@QAEHXZ @ 7 NONAME ; int CGlxHdmiController::IsHDMIConnected(void) ?ShiftToPostingMode@CGlxHdmiController@@QAEXXZ @ 8 NONAME ; void CGlxHdmiController::ShiftToPostingMode(void) ?ShiftToCloningMode@CGlxHdmiController@@QAEXXZ @ 9 NONAME ; void CGlxHdmiController::ShiftToCloningMode(void) - ?IsConnected@CGlxTv@@QBEHXZ @ 10 NONAME ; int CGlxTv::IsConnected(void) const - ?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 11 NONAME ; void CGlxHdmiController::ItemNotSupported(void) - ?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 12 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &) - ?NewL@CGlxHdmiController@@SAPAV1@ABVTDesC16@@@Z @ 13 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(class TDesC16 const &) + ?SetImageL@CGlxHdmiController@@QAEXABVTDesC16@@H@Z @ 10 NONAME ; void CGlxHdmiController::SetImageL(class TDesC16 const &, int) + ?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 11 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &) + ?IsConnected@CGlxTv@@QBEHXZ @ 12 NONAME ; int CGlxTv::IsConnected(void) const + ?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 13 NONAME ; void CGlxHdmiController::ItemNotSupported(void) ?IsHDMIConnected@CGlxTv@@QBEHXZ @ 14 NONAME ; int CGlxTv::IsHDMIConnected(void) const ?DeactivateZoom@CGlxHdmiController@@QAEXXZ @ 15 NONAME ; void CGlxHdmiController::DeactivateZoom(void) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/tvout/eabi/glxtvoutu.def --- a/photosgallery/viewframework/tvout/eabi/glxtvoutu.def Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/tvout/eabi/glxtvoutu.def Wed Mar 31 21:31:03 2010 +0300 @@ -5,8 +5,8 @@ _ZN18CGlxHdmiController16ItemNotSupportedEv @ 4 NONAME _ZN18CGlxHdmiController18ShiftToCloningModeEv @ 5 NONAME _ZN18CGlxHdmiController18ShiftToPostingModeEv @ 6 NONAME - _ZN18CGlxHdmiController4NewLERK7TDesC16 @ 7 NONAME - _ZN18CGlxHdmiController9SetImageLERK7TDesC165TSizeii @ 8 NONAME + _ZN18CGlxHdmiController4NewLEv @ 7 NONAME + _ZN18CGlxHdmiController9SetImageLERK7TDesC16i @ 8 NONAME _ZN18CGlxHdmiControllerD0Ev @ 9 NONAME _ZN18CGlxHdmiControllerD1Ev @ 10 NONAME _ZN18CGlxHdmiControllerD2Ev @ 11 NONAME diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/tvout/inc/glxactivedecoder.h --- a/photosgallery/viewframework/tvout/inc/glxactivedecoder.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/tvout/inc/glxactivedecoder.h Wed Mar 31 21:31:03 2010 +0300 @@ -33,10 +33,8 @@ /* * NewL() * @Param1 CGlxHdmiSurfaceUpdater - * @param2 framecount */ - static CGlxHdmiDecoderAO* NewL(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater, - TInt aFrameCount); + static CGlxHdmiDecoderAO* NewL(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater); /* * Destructor @@ -47,28 +45,24 @@ * ConvertImageL() * This calls the asyncronous service request to ICL convert * @param1 - Destination Bitmap - * @param2 - Framecount - * @param3 - Image decoder + * @param2 - Image decoder */ - void ConvertImageL(CFbsBitmap& iBitmap, TInt aFrameNum,CImageDecoder* aDecoder); - -// void SetActive() { CActive::SetActive();}; + void ConvertImageL(CFbsBitmap& iBitmap,CImageDecoder* aDecoder); protected: // from CActive void RunL(); void DoCancel(); + private: /* * Constructor */ - CGlxHdmiDecoderAO(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater,TInt aFrameCount); + CGlxHdmiDecoderAO(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater); private: CGlxHdmiSurfaceUpdater* iHdmiSurfaceUpdater; // not owned CImageDecoder* iDecoder; - TInt iFrameCount; - TInt iDecodeCount; }; #endif /* GLXACTIVEDECODER_H_ */ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/tvout/inc/glxhdmicontroller.h --- a/photosgallery/viewframework/tvout/inc/glxhdmicontroller.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/tvout/inc/glxhdmicontroller.h Wed Mar 31 21:31:03 2010 +0300 @@ -36,7 +36,7 @@ * NewLC * @param1 - Image file path default to NULL */ - IMPORT_C static CGlxHdmiController* NewL(const TDesC& aImageFile = KNullDesC ); + IMPORT_C static CGlxHdmiController* NewL(); /* * Destructor @@ -46,11 +46,8 @@ /* * Update Image * @param1 - Image file path - * @param2 - Image dimensions - * @param3 - frame count */ - IMPORT_C void SetImageL(const TDesC& aImageFile,TSize aImageDimensions, - TInt aFrameCount = 1, TBool aStore = ETrue); + IMPORT_C void SetImageL(const TDesC& aImageFile, TBool aStore = ETrue); /* * To intimate that the item is not supported. @@ -88,7 +85,7 @@ /* * Constructor */ - CGlxHdmiController(const TDesC& aImageFile); + CGlxHdmiController(); /* * ConstructL @@ -102,12 +99,9 @@ /* * Create surface updater and update background surface - * @param1 - Image file - * @param2 - Image dimensions - * @param3 - framecount + * @param1 - Image file */ - void CreateSurfaceUpdaterL(const TDesC& aImageFile, TSize aImageDimensions, - TInt aFrameCount); + void CreateSurfaceUpdaterL(const TDesC& aImageFile); /* * To Destroy the surface updater if present @@ -120,21 +114,19 @@ void DestroyContainer(); /* - * + * Stores the Image File name + * @param1 - Image file */ - void StoreImageInfoL(const TDesC& aImageFile, - TSize aImageDimensions, TInt aFrameCount); + void StoreImageInfoL(const TDesC& aImageFile); private: - const TDesC& iImagePath; // Image path HBufC* iStoredImagePath; - TSize iImageDimensions; - TInt iFrameCount; - + CGlxHdmiContainer* iHdmiContainer; CGlxHdmiSurfaceUpdater* iSurfaceUpdater; CGlxTv* iGlxTvOut; - TBool iImageSupported; + TBool iIsImageSupported; + TBool iIsPostingMode; }; #endif /* GLXHDMICONTROLLER_H_ */ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h --- a/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h Wed Mar 31 21:31:03 2010 +0300 @@ -42,12 +42,13 @@ * */ static CGlxHdmiSurfaceUpdater* NewL(RWindow* aWindow, const TDesC& aImageFile, - TSize aImageDimensions, TInt aFrameCount, MGlxGenCallback* aCallBack); + MGlxGenCallback* aCallBack); /* * destructor */ ~CGlxHdmiSurfaceUpdater(); + public: /* * This is to cancel the active object from decoding @@ -57,8 +58,7 @@ /* * This updates the new image. */ - void UpdateNewImageL(const TDesC& aImageFile, - TInt aFrameCount,TSize aImageDimensions); + void UpdateNewImageL(const TDesC& aImageFile); /* * Activate Zoom @@ -88,12 +88,12 @@ * Ctor */ CGlxHdmiSurfaceUpdater(RWindow* aWindow, const TDesC& aImageFile, - TSize aOrigImageDimensions, TInt aFrameCount, MGlxGenCallback* aCallBack); + MGlxGenCallback* aCallBack); /* * ConstructL() */ - void ConstructL(TSize aImageDimensions); + void ConstructL(); /* * Create a New surface with given size @@ -147,8 +147,6 @@ private: RWindow* iWindow; const TDesC& iImagePath; - TSize iOrigImageDimensions; - TInt iFrameCount; MGlxGenCallback* iCallBack; // GCE Surface @@ -168,7 +166,6 @@ //ICL CGlxHdmiDecoderAO* iGlxDecoderAO; // Internal Image decoder AO CImageDecoder* iImageDecoder; // Image Decoder - TInt iAnimCount; // animation count RFs iFsSession; // RFs TPoint iLeftCornerForZoom; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/tvout/src/glxactivedecoder.cpp --- a/photosgallery/viewframework/tvout/src/glxactivedecoder.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/tvout/src/glxactivedecoder.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -22,24 +22,20 @@ // ----------------------------------------------------------------------------- // NewL // ----------------------------------------------------------------------------- -CGlxHdmiDecoderAO* CGlxHdmiDecoderAO::NewL(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater, - TInt aFrameCount) +CGlxHdmiDecoderAO* CGlxHdmiDecoderAO::NewL(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater) { TRACER("CGlxHdmiDecoderAO::NewL()"); - CGlxHdmiDecoderAO* self = new (ELeave) CGlxHdmiDecoderAO(aHdmiSurfaceUpdater, - aFrameCount); + CGlxHdmiDecoderAO* self = new (ELeave) CGlxHdmiDecoderAO(aHdmiSurfaceUpdater); return self; } // ----------------------------------------------------------------------------- // CGlxHdmiDecoderAO() // ----------------------------------------------------------------------------- -CGlxHdmiDecoderAO::CGlxHdmiDecoderAO(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater, - TInt aFrameCount):CActive(CActive::EPriorityStandard-1), - iHdmiSurfaceUpdater(aHdmiSurfaceUpdater), iFrameCount(aFrameCount) +CGlxHdmiDecoderAO::CGlxHdmiDecoderAO(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater): + CActive(CActive::EPriorityStandard-1),iHdmiSurfaceUpdater(aHdmiSurfaceUpdater) { TRACER("CGlxHdmiDecoderAO::CGlxHdmiDecoderAO()"); - iDecodeCount = 0; CActiveScheduler::Add(this); } @@ -81,12 +77,12 @@ // ----------------------------------------------------------------------------- // ConvertImageL // ----------------------------------------------------------------------------- -void CGlxHdmiDecoderAO::ConvertImageL(CFbsBitmap& aBitmap, TInt aFrameNum, - CImageDecoder* aDecoder) +void CGlxHdmiDecoderAO::ConvertImageL(CFbsBitmap& aBitmap, + CImageDecoder* aDecoder) { TRACER("CGlxHdmiDecoderAO::ConvertImageL()"); iDecoder = aDecoder; - iDecoder->Convert(&iStatus,aBitmap, aFrameNum); + iDecoder->Convert(&iStatus,aBitmap); SetActive(); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp --- a/photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -29,10 +29,10 @@ // ----------------------------------------------------------------------------- // NewLC // ----------------------------------------------------------------------------- -EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL(const TDesC& aImageFile) +EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL() { TRACER("CGlxHdmiController* CGlxHdmiController::NewL()"); - CGlxHdmiController* self = new (ELeave) CGlxHdmiController(aImageFile); + CGlxHdmiController* self = new (ELeave) CGlxHdmiController(); CleanupStack::PushL(self); self->ConstructL(); CleanupStack::Pop(self); @@ -59,19 +59,20 @@ // Setting an Image Path // ----------------------------------------------------------------------------- EXPORT_C void CGlxHdmiController::SetImageL(const TDesC& aImageFile, - TSize aImageDimensions, TInt aFrameCount, TBool aStore) + TBool aStore) { TRACER("CGlxHdmiController::SetImageL()"); if (aStore) { - iImageSupported = ETrue; - StoreImageInfoL(aImageFile, aImageDimensions, aFrameCount); + iIsImageSupported = ETrue; + StoreImageInfoL(aImageFile); } if (iGlxTvOut->IsHDMIConnected()) { + iIsPostingMode = ETrue; GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 2"); // do not close the surface , use the same surface instead. - // Call a function to pass imagefile, imagedimension, framecount + // Call a function to pass imagefile if (!iHdmiContainer) { CreateHdmiContainerL(); @@ -80,12 +81,12 @@ { // This case would come when surface updater is not created at the first instance and also // it satisfies the 720p condition - CreateSurfaceUpdaterL(aImageFile, aImageDimensions, aFrameCount); + CreateSurfaceUpdaterL(aImageFile); } else { GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 3"); - iSurfaceUpdater->UpdateNewImageL(aImageFile, aFrameCount,aImageDimensions); + iSurfaceUpdater->UpdateNewImageL(aImageFile); } iHdmiContainer->DrawNow(); } @@ -97,7 +98,7 @@ EXPORT_C void CGlxHdmiController::ItemNotSupported() { TRACER("CGlxHdmiController::IsVideo()"); - iImageSupported = EFalse; + iIsImageSupported = EFalse; if (iGlxTvOut->IsHDMIConnected()) { DestroySurfaceUpdater(); @@ -135,6 +136,7 @@ EXPORT_C void CGlxHdmiController::ShiftToCloningMode() { TRACER("CGlxHdmiController::ShiftToCloningMode()"); + iIsPostingMode = EFalse; if (iGlxTvOut->IsHDMIConnected() && iSurfaceUpdater) { iSurfaceUpdater->ShiftToCloningMode(); @@ -147,6 +149,7 @@ EXPORT_C void CGlxHdmiController::ShiftToPostingMode() { TRACER("CGlxHdmiController::ShiftToPostingMode()"); + iIsPostingMode = ETrue; if (iGlxTvOut->IsHDMIConnected() && iSurfaceUpdater) { iSurfaceUpdater->ShiftToPostingMode(); @@ -156,8 +159,8 @@ // ----------------------------------------------------------------------------- // Constructor // ----------------------------------------------------------------------------- -CGlxHdmiController::CGlxHdmiController(const TDesC& aImageFile): - iImagePath(aImageFile) +CGlxHdmiController::CGlxHdmiController(): + iIsPostingMode(EFalse) { TRACER("CGlxHdmiController::CGlxHdmiController()"); // Implement nothing here @@ -213,21 +216,19 @@ // ----------------------------------------------------------------------------- // CreateSurfaceUpdaterL // ----------------------------------------------------------------------------- -void CGlxHdmiController::CreateSurfaceUpdaterL(const TDesC& aImageFile, - TSize aImageDimensions, TInt aFrameCount) +void CGlxHdmiController::CreateSurfaceUpdaterL(const TDesC& aImageFile) { TRACER("CGlxHdmiController::CreateSurfaceUpdater()"); RWindow* window = iHdmiContainer->GetWindow(); - iSurfaceUpdater = CGlxHdmiSurfaceUpdater::NewL(window, aImageFile, aImageDimensions, - aFrameCount, iHdmiContainer); + iSurfaceUpdater = CGlxHdmiSurfaceUpdater::NewL(window, aImageFile, + iHdmiContainer); iHdmiContainer->DrawNow(); } // ----------------------------------------------------------------------------- // StoreImageInfoL // ----------------------------------------------------------------------------- -void CGlxHdmiController::StoreImageInfoL(const TDesC& aImageFile, - TSize aImageDimensions, TInt aFrameCount) +void CGlxHdmiController::StoreImageInfoL(const TDesC& aImageFile) { TRACER("CGlxHdmiController::StoreImageInfoL()"); if(iStoredImagePath) @@ -236,8 +237,6 @@ iStoredImagePath = NULL; } iStoredImagePath = aImageFile.AllocL(); - iImageDimensions = aImageDimensions; - iFrameCount = aFrameCount; } // ----------------------------------------------------------------------------- @@ -248,11 +247,11 @@ TRACER("CGlxHdmiController::HandleTvStatusChangedL()"); if ( aChangeType == ETvConnectionChanged ) { - if ( iGlxTvOut->IsHDMIConnected() && iImageSupported) + if ( iGlxTvOut->IsHDMIConnected() && iIsImageSupported && iIsPostingMode) { GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI Connected"); // Calling SetImageL() with appropriate parameters - SetImageL(iStoredImagePath->Des(), iImageDimensions, iFrameCount, EFalse); + SetImageL(iStoredImagePath->Des(), EFalse); } else { diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp --- a/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -42,13 +42,13 @@ // NewLC // ----------------------------------------------------------------------------- CGlxHdmiSurfaceUpdater* CGlxHdmiSurfaceUpdater::NewL(RWindow* aWindow, const TDesC& aImageFile, - TSize aImageDimensions, TInt aFrameCount, MGlxGenCallback* aCallBack) + MGlxGenCallback* aCallBack) { TRACER("CGlxHdmiSurfaceUpdater* CGlxHdmiSurfaceUpdater::NewL()"); CGlxHdmiSurfaceUpdater* self = new (ELeave) CGlxHdmiSurfaceUpdater(aWindow, aImageFile, - aImageDimensions, aFrameCount, aCallBack); + aCallBack); CleanupStack::PushL(self); - self->ConstructL(aImageDimensions); + self->ConstructL(); CleanupStack::Pop(self); return self; } @@ -134,10 +134,10 @@ // ----------------------------------------------------------------------------- // CTor // ----------------------------------------------------------------------------- -CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater(RWindow* aWindow, const TDesC& aImageFile, - TSize aOrigImageDimensions, TInt aFrameCount, MGlxGenCallback* aCallBack): - iWindow(aWindow), iImagePath(aImageFile), iOrigImageDimensions(aOrigImageDimensions), - iFrameCount(aFrameCount ),iCallBack(aCallBack) +CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater(RWindow* aWindow, + const TDesC& aImageFile, MGlxGenCallback* aCallBack): + iWindow(aWindow), iImagePath(aImageFile), + iCallBack(aCallBack) { TRACER("CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater()"); // Implement nothing here @@ -146,7 +146,7 @@ // ----------------------------------------------------------------------------- // ConstructL // ----------------------------------------------------------------------------- -void CGlxHdmiSurfaceUpdater::ConstructL(TSize /*aImageDimensions*/) +void CGlxHdmiSurfaceUpdater::ConstructL() { TRACER("CGlxHdmiSurfaceUpdater::ConstructL()"); TInt error = iFsSession.Connect (); @@ -155,7 +155,7 @@ iBitmapReady = EFalse; // Create the active object - iGlxDecoderAO = CGlxHdmiDecoderAO::NewL(this, iFrameCount); + iGlxDecoderAO = CGlxHdmiDecoderAO::NewL(this); CreateImageDecoderL(iImagePath); CreateBitmapL(); CreateHdmiL(); @@ -168,7 +168,7 @@ iStartTime.HomeTime(); #endif //start decoding the image - iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,0,iImageDecoder); + iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,iImageDecoder); iLeftCornerForZoom.iX = 0; iLeftCornerForZoom.iY = 0; @@ -179,8 +179,7 @@ // ----------------------------------------------------------------------------- // UpdateNewImageL // ----------------------------------------------------------------------------- -void CGlxHdmiSurfaceUpdater::UpdateNewImageL(const TDesC& aImageFile, - TInt /*aFrameCount*/,TSize aImageDimensions) +void CGlxHdmiSurfaceUpdater::UpdateNewImageL(const TDesC& aImageFile) { TRACER("CGlxHdmiSurfaceUpdater::UpdateNewImageL()"); //Cancel the zoom timers if any @@ -189,7 +188,7 @@ GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::UpdateNewImageL() - Cancel Timer"); iTimer->Cancel(); } - iOrigImageDimensions = aImageDimensions; + iBitmapReady = EFalse; iLeftCornerForZoom.iX = 0; iLeftCornerForZoom.iY = 0; @@ -201,7 +200,7 @@ iStartTime.HomeTime(); #endif //start decoding the image - iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,0,iImageDecoder); + iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,iImageDecoder); } // ----------------------------------------------------------------------------- @@ -355,22 +354,23 @@ TRACER("CGlxHdmiSurfaceUpdater::StartImageDecodeL()"); TSize scrnSize = iWindow->Size(); TSize targetBitmapSize; - GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - bitmapsize=%d, %d",iOrigImageDimensions.iWidth,iOrigImageDimensions.iHeight); + TSize imageSize = iImageDecoder->FrameInfo().iOverallSizeInPixels; + GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - bitmapsize=%d, %d",imageSize.iWidth,imageSize.iHeight); TReal32 scaleFactor = 0.0f; - if (scrnSize.iWidth * iOrigImageDimensions.iHeight > scrnSize.iHeight - * iOrigImageDimensions.iWidth) + if (scrnSize.iWidth * imageSize.iHeight > scrnSize.iHeight + * imageSize.iWidth) { scaleFactor = (TReal32) scrnSize.iHeight - / (TReal32) iOrigImageDimensions.iHeight; + / (TReal32) imageSize.iHeight; } else { scaleFactor = (TReal32) scrnSize.iWidth - / (TReal32) iOrigImageDimensions.iWidth; + / (TReal32) imageSize.iWidth; } GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - scaleFactor=%f",scaleFactor); - targetBitmapSize.iHeight = iOrigImageDimensions.iHeight * scaleFactor; - targetBitmapSize.iWidth = iOrigImageDimensions.iWidth * scaleFactor; + targetBitmapSize.iHeight = imageSize.iHeight * scaleFactor; + targetBitmapSize.iWidth = imageSize.iWidth * scaleFactor; GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - targetBitmapSize=%d, %d",targetBitmapSize.iWidth,targetBitmapSize.iHeight); //create the bitmap for the required size diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/tvout/src/glxtv.cpp --- a/photosgallery/viewframework/tvout/src/glxtv.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/tvout/src/glxtv.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -165,17 +165,6 @@ #else iSettingsTVAspectRatio = 0; #endif - // Commenting out code for request notification as these doesnt work fine, - // would be soon updated with latest api's to support aspectration chnages. - // Request notification when the user changes cenrep values -// TInt err = iRepository.NotifyRequest( iSettingsTVAspectRatio, iStatus ); -// if (!(KErrNone ==err ||KErrAlreadyExists ==err)) -// { -// RDebug::Printf("## Error code in CGlxTv::CGlxTvOutCenRepMonitor::ConstructL() is %d",err); -// User::Leave(err); -// } - -// SetActive(); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/bwins/glxuiutilitiesu.def --- a/photosgallery/viewframework/uiutilities/bwins/glxuiutilitiesu.def Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/bwins/glxuiutilitiesu.def Wed Mar 31 21:31:03 2010 +0300 @@ -60,4 +60,7 @@ ?StartTNMDaemonL@CGlxUiUtility@@QAEXXZ @ 59 NONAME ; void CGlxUiUtility::StartTNMDaemonL(void) ?NewL@CGlxProgressIndicator@@SAPAV1@AAVMDialogDismisedObserver@@@Z @ 60 NONAME ; class CGlxProgressIndicator * CGlxProgressIndicator::NewL(class MDialogDismisedObserver &) ?StopTNMDaemonL@CGlxUiUtility@@QAEXXZ @ 61 NONAME ; void CGlxUiUtility::StopTNMDaemonL(void) + ?NewL@CGlxMMCNotifier@@SAPAV1@AAVMStorageNotifierObserver@@@Z @ 62 NONAME ; class CGlxMMCNotifier * CGlxMMCNotifier::NewL(class MStorageNotifierObserver &) + ?SetGridToolBar@CGlxUiUtility@@QAEXPAVCAknToolbar@@@Z @ 63 NONAME ; void CGlxUiUtility::SetGridToolBar(class CAknToolbar *) + ?GetGridToolBar@CGlxUiUtility@@QAEPAVCAknToolbar@@XZ @ 64 NONAME ; class CAknToolbar * CGlxUiUtility::GetGridToolBar(void) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/data/glxuiutilities.rss --- a/photosgallery/viewframework/uiutilities/data/glxuiutilities.rss Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/data/glxuiutilities.rss Wed Mar 31 21:31:03 2010 +0300 @@ -615,17 +615,16 @@ // // ----------------------------------------------------------------------------- // -RESOURCE AIW_INTEREST r_aiw_share_base_interest +RESOURCE AIW_INTEREST r_glx_aiw_share_base_interest { items= { AIW_CRITERIA_ITEM { - id = EGlxCmdUpload;// 1006; + id = EGlxCmdUpload; serviceCmd = KAiwCmdUpload; - contentType = "*"; serviceClass = KAiwClassBase; - maxProviders = 1; + contentType = "image/*"; } }; } @@ -833,15 +832,24 @@ buf = "#Removed from Favourites"; } +RESOURCE CBA r_glx_progressbar_softkey_hide + { + buttons = + { + CBA_BUTTON { txt = text_softkey_empty; }, + CBA_BUTTON { id = EAknSoftkeyHide; txt = qtn_softkey_hide; }, + CBA_BUTTON { txt = text_softkey_empty; } + }; + } //resource for waiting dialog RESOURCE TBUF r_glx_main_list_view_processing_dialog { - buf = qtn_lgal_note_wait_processing; + buf = qtn_lgal_refreshing_media_note; } RESOURCE DIALOG r_progress_note { flags = EAknProgressNoteFlags; - buttons = R_AVKON_SOFTKEYS_CANCEL; + buttons = r_glx_progressbar_softkey_hide; items = { DLG_LINE @@ -851,7 +859,7 @@ control = AVKON_NOTE { layout = EProgressLayout; - singular_label =qtn_lgal_note_wait_processing; + singular_label =qtn_lgal_refreshing_media_note; }; } }; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/eabi/glxuiutilitiesu.def --- a/photosgallery/viewframework/uiutilities/eabi/glxuiutilitiesu.def Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/eabi/glxuiutilitiesu.def Wed Mar 31 21:31:03 2010 +0300 @@ -79,4 +79,9 @@ _ZTI21CGlxProgressIndicator @ 78 NONAME _ZTV21CGlxProgressIndicator @ 79 NONAME _ZN13CGlxUiUtility14StopTNMDaemonLEv @ 80 NONAME + _ZN15CGlxMMCNotifier4NewLER24MStorageNotifierObserver @ 81 NONAME + _ZTI15CGlxMMCNotifier @ 82 NONAME + _ZTV15CGlxMMCNotifier @ 83 NONAME + _ZN13CGlxUiUtility14GetGridToolBarEv @ 84 NONAME + _ZN13CGlxUiUtility14SetGridToolBarEP11CAknToolbar @ 85 NONAME diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/group/glxuiutilities.mmp --- a/photosgallery/viewframework/uiutilities/group/glxuiutilities.mmp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/group/glxuiutilities.mmp Wed Mar 31 21:31:03 2010 +0300 @@ -49,6 +49,7 @@ SOURCE mglxactivemedialistresolver.cpp SOURCE glxskinchangemonitor.cpp SOURCE glxprogressindicator.cpp +SOURCE glxmmcnotifier.cpp // System includes from epoc32/include APP_LAYER_SYSTEMINCLUDE diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/inc/glxmmcnotifier.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/viewframework/uiutilities/inc/glxmmcnotifier.h Wed Mar 31 21:31:03 2010 +0300 @@ -0,0 +1,95 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: MMC Notifier +* +*/ + +#ifndef GLXMMCNOTIFIER_H_ +#define GLXMMCNOTIFIER_H_ + +#include + +//observer class to notify events +class MStorageNotifierObserver + { +public: + virtual void HandleMMCInsertionL() =0; + virtual void HandleMMCRemovalL() =0; + }; +/** + * states for MMC card + */ +enum TGlxMMCState + { + EMMCStateReset, + EMMCStateInsert + }; +/** + * class declaration + */ +class CGlxMMCNotifier : public CActive + { +public: + /** + * Two-phased constructor. + */ + IMPORT_C static CGlxMMCNotifier* NewL(MStorageNotifierObserver& aNotify); + + /** + * Two-phased constructor. + */ + static CGlxMMCNotifier* NewLC(MStorageNotifierObserver& aNotify); + /** + * Destructor + */ + ~CGlxMMCNotifier (); + +private: + /** + * Default constructor + */ + CGlxMMCNotifier (MStorageNotifierObserver& aNotify); + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + +private: + /** + * active object's default implelemtaions + */ + void RunL(); + void DoCancel(); + + /** + * IssueRequest + */ + void IssueRequest(); + +private: + /** + * file session + */ + RFs iFs; + /** + * reference of observer + */ + MStorageNotifierObserver& iNotify; + /** + * MMC state + */ + TGlxMMCState istate; + }; + +#endif /* GLXMMCNOTIFIER_H_ */ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/inc/glxuiutility.h --- a/photosgallery/viewframework/uiutilities/inc/glxuiutility.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/inc/glxuiutility.h Wed Mar 31 21:31:03 2010 +0300 @@ -171,23 +171,16 @@ IMPORT_C CGlxScreenFurniture* ScreenFurniture(); /** - * CHgContextUtility - * @return pointer to CHgContextUtility - */ - //IMPORT_C CHgContextUtility* ContextUtility(); - - /** * This method can be used to check whether pen support is enabled. * @return ETrue if pen support is enabled, otherwise EFalse. */ IMPORT_C TBool IsPenSupported(); - //Nitz Review Added + /** * This method can be used to set the image size required for Rotation. * @param aRotatedImageSize the image size to be set. */ IMPORT_C void SetRotatedImageSize(TSize aRotatedImageSize); - //Nitz Review Added end /** * This method can be used to Get the image size required for Rotation. @@ -229,6 +222,17 @@ */ IMPORT_C TInt VisibleItemsInPageGranularityL(); + /** + * @return The current Grid toolbar being used + */ + IMPORT_C CAknToolbar* GetGridToolBar(); + + /** + * Set the current Grid toolbar being used + * @param aToolbar Current Toolbar + */ + IMPORT_C void SetGridToolBar(CAknToolbar* aToolbar); + public: // from class MGlxTvObserver /** @@ -350,8 +354,9 @@ TBool iIsExiting; //Added to give the Image size to the Coverflow Widget for Rotation TSize iRotatedImageSize; - -// CHgContextUtility* iContextUtility; + + //current Toolbar being used + CAknToolbar* iToolbar; }; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/src/glxanimationimageloading.cpp --- a/photosgallery/viewframework/uiutilities/src/glxanimationimageloading.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/src/glxanimationimageloading.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -77,8 +77,6 @@ iImageBrush->SetLayer(EAlfBrushLayerForeground); iImageBrush->SetBorders(1,1,1,1); - /// @todo check is this is correct? Rowland 30/10/07 SetClipToVisual is no longer defined - //iImageBrush->SetClipToVisual(ETrue); iImageBrush->SetScaleMode(CAlfImageVisual::EScaleFit); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/src/glxanimationtimed.cpp --- a/photosgallery/viewframework/uiutilities/src/glxanimationtimed.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/src/glxanimationtimed.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -99,8 +99,7 @@ { iObserver->AnimationComplete( this ); } - // IMPORTANT! - // No code after this! Client may delete the animation! + // IMPORTANT: No code after this, Client may delete the animation. } } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/src/glxanimationview.cpp --- a/photosgallery/viewframework/uiutilities/src/glxanimationview.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/src/glxanimationview.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -139,7 +139,6 @@ // Find out the screen size CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); CleanupClosePushL( *uiUtility ); - //TSize dispSize = uiUtility->ScreenFurniture().CentralScreenRect().Size();// tobe implemented by sf CleanupStack::PopAndDestroy( uiUtility ); // Animate each of the control groups @@ -155,10 +154,7 @@ // Set up control group transformations iControlGroups[cg]->EnableTransformationL(); CAlfTransformation& trans = iControlGroups[cg]->Transformation(); - - //trans.Translate(dispSize.iWidth/2, dispSize.iHeight/2);//tobe implemented by sf trans.Scale( scale, scale ); - // trans.Translate(-dispSize.iWidth/2, -dispSize.iHeight/2);//tobe implemented by sf // Set opacity of all toplevel visuals in all controls in this group TInt controlCount = iControlGroups[cg]->Count(); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/src/glxattributeretriever.cpp --- a/photosgallery/viewframework/uiutilities/src/glxattributeretriever.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/src/glxattributeretriever.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -304,7 +304,7 @@ * or a CGlxSynchronousAttributeRetriever and the object 'retriever' is of * class MGlxBlockingAttributeRetriever */ - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(); // retriever return err; } @@ -489,7 +489,7 @@ // void CGlxAttributeRetriever::HandleError(TInt /* aError */) { - // An error has been reported. But is it ours? + // An error has been reported. But need to check if it is ours // If the request is not complete then the error is not ours iRequestCount = 0; TRAP_IGNORE(NotifyObserverIfCompleteL()); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/src/glxmmcnotifier.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/viewframework/uiutilities/src/glxmmcnotifier.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -0,0 +1,141 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: MMC Notifier +* +*/ + + +#include +#include + +#include "glxmmcnotifier.h" + +// --------------------------------------------------------- +// CGlxMMCNotifier::NewL +// --------------------------------------------------------- +// +EXPORT_C CGlxMMCNotifier* CGlxMMCNotifier::NewL(MStorageNotifierObserver& aNotify) + { + TRACER("CGlxMMCNotifier::NewL()"); + CGlxMMCNotifier* self = CGlxMMCNotifier::NewLC(aNotify); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------- +// CGlxMMCNotifier::NewLC +// --------------------------------------------------------- +// +CGlxMMCNotifier* CGlxMMCNotifier::NewLC(MStorageNotifierObserver& aNotify) + { + TRACER("CGlxMMCNotifier::NewLC()"); + CGlxMMCNotifier* self = new (ELeave) CGlxMMCNotifier(aNotify); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------- +// CGlxMMCNotifier::CGlxMMCNotifier +// --------------------------------------------------------- +// +CGlxMMCNotifier::CGlxMMCNotifier(MStorageNotifierObserver& aNotify) + : CActive( CActive::EPriorityStandard ),iNotify(aNotify) + { + TRACER("CGlxMMCNotifier::CGlxMMCNotifier()"); + CActiveScheduler::Add( this ); + } + +// --------------------------------------------------------- +// CGlxMMCNotifier::~CGlxMMCNotifier() +// --------------------------------------------------------- +// +CGlxMMCNotifier::~CGlxMMCNotifier() + { + TRACER("CGlxMMCNotifier::~CGlxMMCNotifier()"); + Cancel(); + iFs.Close(); + } + +// --------------------------------------------------------- +// CGlxMMCNotifier::IssueRequest() +// --------------------------------------------------------- +// +void CGlxMMCNotifier::IssueRequest() + { + TRACER("CGlxMMCNotifier::IssueRequest()"); + if ( !IsActive() ) + { + // Request to get notified of MMC insertion/removal events + iFs.NotifyChange( ENotifyDisk, iStatus ); + SetActive(); + } + } + +// --------------------------------------------------------- +// CGlxMMCNotifier::ConstructL() +// --------------------------------------------------------- +// +void CGlxMMCNotifier::ConstructL() + { + TRACER("CGlxMMCNotifier::ConstructL()"); + TInt err = iFs.Connect(); + GLX_LOG_INFO1("CGlxMMCNotifier::ConstructL iFs.Connect err %d",err ); + IssueRequest(); + } + +// --------------------------------------------------------- +// CGlxMMCNotifier::DoCancel() +// --------------------------------------------------------- +// +void CGlxMMCNotifier::DoCancel() + { + TRACER("CGlxMMCNotifier::DoCancel()"); + iFs.NotifyChangeCancel(); + } + +// --------------------------------------------------------- +// CGlxMMCNotifier::RunL +// --------------------------------------------------------- +// +void CGlxMMCNotifier::RunL() + { + TRACER("CGlxMMCNotifier::RunL()"); + TDriveInfo driveInfo; + // Get the drive info for memory card + TInt err = iFs.Drive( driveInfo, EDriveF ); + GLX_LOG_INFO1("CGlxMMCNotifier::RunL err %d",err ); + if( err == KErrNone ) + { + switch( driveInfo.iType ) + { + case EMediaNotPresent: + { + //MMC removed don't do anything + iNotify.HandleMMCRemovalL(); + break; + } + default: + { + iNotify.HandleMMCInsertionL(); + //MMC inserted + break; + } + } + } + // Issue request for next event notification + IssueRequest(); + } + + diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp --- a/photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -33,6 +33,7 @@ EXPORT_C CGlxProgressIndicator* CGlxProgressIndicator::NewL (MDialogDismisedObserver& aGlxGridViewNotifyObserver) { + TRACER("CGlxProgressIndicator::NewL()"); CGlxProgressIndicator* self = CGlxProgressIndicator::NewLC (aGlxGridViewNotifyObserver); CleanupStack::Pop(self); @@ -46,7 +47,7 @@ CGlxProgressIndicator* CGlxProgressIndicator::NewLC (MDialogDismisedObserver& aGlxGridViewNotifyObserver) { - + TRACER("CGlxProgressIndicator::NewLC()"); CGlxProgressIndicator* self = new(ELeave) CGlxProgressIndicator(aGlxGridViewNotifyObserver); CleanupStack::PushL(self); @@ -70,6 +71,7 @@ // CGlxProgressIndicator::~CGlxProgressIndicator() { + TRACER("CGlxProgressIndicator::~CGlxProgressIndicator()"); if (iProgressbarTicker && iProgressbarTicker->IsActive()) { iProgressbarTicker->Cancel(); @@ -96,6 +98,7 @@ // void CGlxProgressIndicator::ConstructL() { + TRACER("CGlxProgressIndicator::ConstructL()"); CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); CleanupClosePushL(*uiUtility); TRAPD(err,uiUtility->StartTNMDaemonL()); @@ -200,6 +203,7 @@ else { iProgressDialog->ProcessFinishedL(); + iGlxGridViewNotifyObserver.HandleDialogDismissedL(); if(iProgressDialog) { iProgressDialog = NULL; @@ -243,15 +247,9 @@ if(iProgressbarTicker) { iProgressbarTicker->Cancel(); - delete iProgressbarTicker; iProgressbarTicker = NULL; } - if (aButtonId == EAknSoftkeyCancel) - { - // cancel any process in here - iGlxGridViewNotifyObserver.HandleDialogDismissedL(); - } if(iProgressDialog) { iProgressDialog = NULL; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/src/glxscreenfurniture.cpp --- a/photosgallery/viewframework/uiutilities/src/glxscreenfurniture.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/src/glxscreenfurniture.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -154,20 +154,10 @@ // SetVisibility // ----------------------------------------------------------------------------- // -EXPORT_C void CGlxScreenFurniture::SetToolbarVisibility( TBool aVisible ) +EXPORT_C void CGlxScreenFurniture::SetToolbarVisibility( TBool /*aVisible*/ ) { TRACER("CGlxScreenFurniture::SetToolbarVisibility()"); - - if( aVisible ) - { - // @TODO: Abhijit : Uncomment the following lines after the Avkon fix in week 02 MCL - // iToolbar->SetFocus( ETrue, EDrawNow ); - // iToolbar->SetToolbarVisibility( aVisible, ETrue ); - } - else - { - // iToolbar->SetToolbarVisibility( aVisible, EFalse ); - } + // Do Nothing } // ----------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/src/glxskinchangemonitor.cpp --- a/photosgallery/viewframework/uiutilities/src/glxskinchangemonitor.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/src/glxskinchangemonitor.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -40,7 +40,6 @@ //----------------------------------------------------------------------------- CGlxSkinChangeMonitor::~CGlxSkinChangeMonitor() { - //ResetAndDestroy()??? iSkinChangeObservers.Close(); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/uiutilities/src/glxuiutility.cpp --- a/photosgallery/viewframework/uiutilities/src/glxuiutility.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/uiutilities/src/glxuiutility.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -123,23 +123,11 @@ TRACER("CGlxUiUtility::ConstructL()"); iSettingsModel = CGlxSettingsModel::InstanceL(); - - // Always start in default orientation - //SetAppOrientationL(EGlxOrientationDefault); - - iOrientation = EGlxOrientationDefault; - // in emulator use bitgdi as open GL does not support changing orientation - - // Ferhan (28/06/07) : commenting out usage of opengl because causing drawing problems when using - // the preview list (gldrawelements method in opengl seems to hang) - // iEnv = CHuiEnv::Static(); - //@ Fix for error id EABI-7RJA8C + iOrientation = EGlxOrientationDefault; // Always start in default orientation iEnv = CAlfEnv::Static(); if (!iEnv) { iEnv = CAlfEnv::NewL(); - // change to this on hw that supports opengl - // iEnv = CHuiEnv::NewL( EHuiRendererGles10 ); } else { @@ -163,9 +151,6 @@ iEnv->AddActionObserverL (this); - // Use the Avkon skin background as the display background. - //iAlfDisplay->SetClearBackgroundL(CAlfDisplay::EClearWithSkinBackground); - // create the resoltuion manager - needs to be informed when screen size // changes iGlxResolutionManager = CGlxResolutionManager::NewL(); @@ -177,9 +162,6 @@ HandleTvStatusChangedL( ETvConnectionChanged ); iScreenFurniture = CGlxScreenFurniture::NewL(*this); - -// iContextUtility = CHgContextUtility::NewL(); -// iContextUtility->RePublishWhenFgL( ETrue ); } // ----------------------------------------------------------------------------- @@ -191,12 +173,6 @@ TRACER("CGlxUiUtility::~CGlxUiUtility()"); GLX_LOG_INFO("~CGlxUiUtility"); delete iScreenFurniture; -/* if (iContextUtility) - { - delete iContextUtility; - iContextUtility = NULL; - } -*/ // Destroy TV Out related objects delete iGlxTvOut; delete iGlxResolutionManager; @@ -325,7 +301,6 @@ EXPORT_C TSize CGlxUiUtility::DisplaySize() const { TRACER("CGlxUiUtility::DisplaySize()"); - //return Env()->PrimaryDisplay().Size(); const TRect& rect = Env()->PrimaryDisplay().VisibleArea(); return rect.Size(); } @@ -450,6 +425,31 @@ TRACER("CGlxUiUtility::GetGridIconSize()"); return iGridIconSize; } + +// ----------------------------------------------------------------------------- +// SetGridToolBar +// ----------------------------------------------------------------------------- +// +EXPORT_C void CGlxUiUtility::SetGridToolBar(CAknToolbar* aToolbar) + { + TRACER("CGlxUiUtility::SetGridToolBar()"); + iToolbar = aToolbar; + } + +// ----------------------------------------------------------------------------- +// GetGridToolBar +// ----------------------------------------------------------------------------- +// +EXPORT_C CAknToolbar* CGlxUiUtility::GetGridToolBar() + { + TRACER("CGlxUiUtility::GetGridToolBar()"); + if(iToolbar) + { + return iToolbar; + } + return NULL; + } + // ----------------------------------------------------------------------------- // HandleTvStatusChangedL // ----------------------------------------------------------------------------- @@ -544,9 +544,9 @@ { delete iTvDisplay; iTvDisplay = NULL; - // Remove Primary Window Refresh observer - //Display()->iRefreshObservers.Remove( *this ); + iEnv->PauseRefresh(); + // Disable Primary Window Visibility events CCoeControl* contl = (CCoeControl*)iEnv->PrimaryDisplay().ObjectProvider(); contl->DrawableWindow()->DisableVisibilityChangeEvents(); @@ -576,27 +576,6 @@ / phoneDisplaySz.iHeight, tvOutDisplaySz.iHeight ); const TRect tvOutDisplayBuffer( tvOutDisplaySz ); - // Commenting out Creation of second display as it goes into posting surface, - // Right now, only cloning is going to be the funcationality and posting would be done - // only for specific views (FS , Zoom and Slideshow) -// if (!iTvDisplay) -// { -// iTvDisplay = &iEnv->NewDisplayL( tvOutDisplayBuffer, -// CAlfEnv::ENewDisplayAsCoeControl, -// iGlxTvOut->IsWidescreen() ? CAlfDisplay::EDisplayTvOutWide : -// CAlfDisplay::EDisplayTvOut ); -// -// if (iTvDisplay) -// { -// // Use the Avkon skin background as the display background. -// iTvDisplay->SetClearBackgroundL( -// CAlfDisplay::EClearWithSkinBackground ); -// //Todo -// // Primary Window Refresh observer -// iEnv->SetRefreshMode(EAlfRefreshModeAutomatic); -// } -// } - // Set the TV screen size iGlxResolutionManager->SetScreenSizeL( tvOutDisplaySz ); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/cloudview/group/glxcloudview.mmp --- a/photosgallery/viewframework/views/cloudview/group/glxcloudview.mmp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/cloudview/group/glxcloudview.mmp Wed Mar 31 21:31:03 2010 +0300 @@ -83,5 +83,5 @@ LIBRARY gdi.lib LIBRARY charconv.lib // For UtfConverter LIBRARY commonengine.lib -LIBRARY harvesterclient.lib +LIBRARY gfxtrans.lib // End of File \ No newline at end of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/cloudview/inc/glxcloudviewimp.h --- a/photosgallery/viewframework/views/cloudview/inc/glxcloudviewimp.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/cloudview/inc/glxcloudviewimp.h Wed Mar 31 21:31:03 2010 +0300 @@ -24,7 +24,6 @@ // INCLUDES #include #include -#include #include "mglxcloudviewmskobserver.h" #include "mglxenterkeyeventobserver.h" @@ -32,6 +31,7 @@ #include "mglxcloudviewlayoutobserver.h" #include "glxtagscontextmenucontrol.h" // MGlxItemMenuObserver +#include "glxmmcnotifier.h" // FORWARD DECLARATIONS class CGlxCloudViewControl; @@ -54,7 +54,7 @@ public MGlxEnterKeyEventObserver, public MGlxCloudViewLayoutObserver, public MGlxItemMenuObserver, - public MHarvesterEventObserver + public MStorageNotifierObserver { public: @@ -120,6 +120,8 @@ * @param aCommand command to be handled */ void HandleGridMenuListL(TInt aCommand); +public: + void HandleForegroundEventL(TBool aForeground); public: /** @@ -128,17 +130,6 @@ * @param aMenuPane The menu pane to edit */ void ViewDynInitMenuPaneL(TInt aResourceId, CEikMenuPane *aMenuPane); -public: - /** - * HarvestingUpdated - * @param aHEObserverType - * @param aHarvesterEventState - * @param aItemsLeft - */ - void HarvestingUpdated( - HarvesterEventObserverType aHEObserverType, - HarvesterEventState aHarvesterEventState, - TInt aItemsLeft ); protected: // From CGlxViewBase @@ -216,6 +207,15 @@ //set the rect for scrollbar void SetScrollBarRect(); +private: + /** + * handle mmc insertion event + */ + void HandleMMCInsertionL(); + /** + * handle mmc removal event + */ + void HandleMMCRemovalL(); private: // Data @@ -254,7 +254,10 @@ //anchor layout from the view widget CAlfAnchorLayout* iAnchorlayout; - RHarvesterClient iHarvesterClient; + //mmc notifier + CGlxMMCNotifier* iMMCNotifier; + + TBool iMMCState; }; } #endif // C_GLXTESTTILEVIEWIMP_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/cloudview/src/glxbubbletimer.cpp --- a/photosgallery/viewframework/views/cloudview/src/glxbubbletimer.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/cloudview/src/glxbubbletimer.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -33,11 +33,7 @@ CGlxBubbleTimer::~CGlxBubbleTimer() { TRACER("GLX_CLOUD::CGlxBubbleTimer::~CGlxBubbleTimer"); - //if (iTimer) - // { - //iTimer.Cancel (); iTimer.Close (); - //} if ( iNotifier) { iNotifier =NULL; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp --- a/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -44,6 +44,11 @@ #include // For resources #include "glxcloudviewcontrol.h"//cloud view control + +// For transition effects +#include +#include +#include "glxgfxtranseffect.h" // For transition effects const TInt KViewId = 0x200071B7; @@ -103,12 +108,7 @@ { TRACER("GLX_CLOUD::CGlxCloudViewImp::ConstructL"); - TInt err = iHarvesterClient.Connect(); - GLX_LOG_INFO1("iHarvesterClient.Connect() err = %d",err); - if(err == KErrNone) - { - iHarvesterClient.AddHarvesterEventObserver(*this, EHEObserverTypeMMC, 1000); - } + TFileName resourceFile(KDC_APP_RESOURCE_DIR); resourceFile.Append (aFileName); CGlxResourceUtilities::GetResourceFilenameL (resourceFile); @@ -128,7 +128,6 @@ { toolbar->DisableToolbarL(ETrue); } -// SetSoftkeysFromResourceIdL (iSoftkeyMskDisabledId); //initially load empty msk } // --------------------------------------------------------------------------- @@ -138,7 +137,10 @@ CGlxCloudViewImp::~CGlxCloudViewImp() { TRACER("GLX_CLOUD::CGlxCloudViewImp::~CGlxCloudViewImp"); - iHarvesterClient.Close(); + + delete iMMCNotifier; + iMMCNotifier = NULL; + CleanupVisuals (); delete iEmptyListText; if ( iResourceOffset ) @@ -199,12 +201,25 @@ TUid /* aCustomMessageId */, const TDesC8 & /* aCustomMessage */) { TRACER("GLX_CLOUD::CGlxCloudViewImp::DoMLViewActivateL"); + + TUint transitionID = (iUiUtility->ViewNavigationDirection()== + EGlxNavigationForwards)?KActivateTransitionId:KDeActivateTransitionId; + + GfxTransEffect::BeginFullScreen( transitionID, TRect(), + AknTransEffect::EParameterType, + AknTransEffect::GfxTransParam( KPhotosUid, + AknTransEffect::TParameter::EEnableEffects) ); + + if(StatusPane()) { StatusPane()->MakeVisible(ETrue); } ConstructCloudControlL(); GLX_LOG_INFO("CGlxCloudViewImp::DoMLViewActivateL Cloud View Control Created" ); + + GfxTransEffect::EndFullScreen(); + // set app state to tag-browser view GlxSetAppState::SetState (EGlxInTagBrowserView); } @@ -235,7 +250,6 @@ TRACER("GLX_CLOUD ::CGlxCloudViewImp::HandleMskChangedL"); GLX_LOG_INFO1("GLX_CLOUD ::GLX_CLOUD ::CGlxCloudViewImp::HandleMskChangedL MSk State %d ", aMskEnabled); - //iViewWidget->setRect( ClientRect() ); } // --------------------------------------------------------------------------- @@ -277,14 +291,10 @@ } if( iUiUtility ) { - IAlfWidgetFactory& widgetFactory = AlfWidgetEnvExtension::widgetFactory(*(iUiUtility->Env ())); widgetFactory.destroyWidget(iViewWidget); - } iViewWidget = NULL; - // delete iCloudControl; - // iCloudControl = NULL; iScrollbarDefaultBaseElement = NULL; } @@ -358,6 +368,8 @@ //acquire the focus so as to get events to your control instead of widgets iCloudControl->AcquireFocus(); + + iMMCNotifier = CGlxMMCNotifier::NewL(*this); } // --------------------------------------------------------------------------- // SetScrollBarRect() @@ -430,19 +442,39 @@ iCloudControl->ShowContextItemMenu(EFalse); } } + // --------------------------------------------------------------------------- -// HarvestingUpdated +// HandleMMCInsertionL // // --------------------------------------------------------------------------- +void CGlxCloudViewImp::HandleMMCInsertionL() + { + TRACER("CGlxCloudViewImp::HandleMMCInsertionL()"); + iMMCState = ETrue; + ProcessCommandL(EAknSoftkeyClose); + } + +// --------------------------------------------------------------------------- +// HandleMMCRemovalL +// +// --------------------------------------------------------------------------- +void CGlxCloudViewImp::HandleMMCRemovalL() + { + TRACER("CGlxCloudViewImp::HandleMMCRemovalL()"); + ProcessCommandL(EAknSoftkeyExit); + } + +// --------------------------------------------------------------------------- +// Foreground event handling function. +// --------------------------------------------------------------------------- // -void CGlxCloudViewImp::HarvestingUpdated( - HarvesterEventObserverType HarvestingUpdated, - HarvesterEventState /*aHarvesterEventState*/, - TInt /*aItemsLeft*/ ) +void CGlxCloudViewImp::HandleForegroundEventL(TBool aForeground) { - TRACER("CGlxCloudViewImp::HarvestingUpdated()"); - if(HarvestingUpdated == EHEObserverTypeMMC) + TRACER("CGlxCloudViewImp::HandleForegroundEventL"); + CAknView::HandleForegroundEventL(aForeground); + if(iMMCState) { + iMMCState = EFalse; ProcessCommandL(EAknSoftkeyClose); } } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/cloudview/src/glxcontainerinfobubble.cpp --- a/photosgallery/viewframework/views/cloudview/src/glxcontainerinfobubble.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/cloudview/src/glxcontainerinfobubble.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -358,7 +358,6 @@ void CGlxContainerInfoBubble::SetFocus(TPoint aPos) { TRACER("GLX_CLOUD::CGlxContainerInfoBubble::SetFocus"); - //iFocusindex = iMediaList->FocusIndex (); //get the medialist focus index DisappearBubble (); if ( iTexture ) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/cloudview/src/glxinfobubble.cpp --- a/photosgallery/viewframework/views/cloudview/src/glxinfobubble.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/cloudview/src/glxinfobubble.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -123,22 +123,15 @@ (iTypefaceSecondaryStyleId); styleSecondary->SetTextSizeInPixels (14, 0); stylePrimary->SetTextSizeInPixels (21, 0); - iBubbleTextTitle->SetTextStyle (iTypefacePrimaryStyleId); TAlfTimedValue opacity; opacity.SetTarget(1, 500); iBubbleTextTitle->SetOpacity(opacity); - -// iBubbleTextTitle->iOpacity.Set (1); iBubbleTextTitle->SetColor (KRgbBlack); - iBubbleTextSubTitle->SetTextStyle (iTypefaceSecondaryStyleId); - opacity.SetTarget(1, 500); iBubbleTextSubTitle->SetOpacity(opacity); - -// iBubbleTextSubTitle->iOpacity.Set (1); iBubbleTextSubTitle->SetColor (KRgbBlack); } @@ -390,8 +383,6 @@ //assign the params //setting the texts value and image brush boundary iBubbleTextTitle->SetTextL(aTitle); - //to-check - //iBubbleTextTitle->SetChanged(); iBubbleTextSubTitle->SetTextL(aSubTitle); _LIT(KNullDesc,""); iTempTitleText->SetTextL(KNullDesc()); @@ -399,8 +390,6 @@ //loading the texture for thumbanil image UpdateTextureL(aTexture); - //to-check - //iInfoDeck->Changed(); TRect rect; AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect); iScreenWidth = rect.Width(); @@ -446,7 +435,6 @@ DrawBubbleFourthQuadL(aPos); } //to-check -// iInfoBubble->SetChanged(); //all texture loaded //now find the width of bubblle and create layout based on these visuals. @@ -488,34 +476,18 @@ TAlfTimedValue opacity; opacity.SetTarget(0.9, 500); iInfoBubble->SetOpacity(opacity); - - //iInfoBubble->iOpacity.Set(0.9, 1000); iInfoDeck->SetPos(iBubbleRectDrawPoint); CreateItemContainerLayoutL(); //Setting properies for Layouts iInfoDeck->MoveToFront(); - -// TAlfTimedValue opacity; opacity.SetTarget(0, 500); iInfoDeck->SetOpacity(opacity); - -// iInfoDeck->iOpacity.Set(0); - opacity.SetTarget(1.0, 800); iInfoDeck->SetOpacity(opacity); - //iInfoDeck->iOpacity.Set(1.0,800); - opacity.SetTarget(1.0, 500); iInfoBubble->SetOpacity(opacity); - //iInfoBubble->iOpacity.Set(1.0); - iInfoBubbleContainer->MoveToFront(); - //to-check - // iInfoDeck->SetChanged(); - - /// @todo would need to reposition the tail as well somehow!!! - } void CGlxInfoBubble::DrawBubbleFirstQuadL(TPoint aReferencepos) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp --- a/photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp Wed Mar 31 21:31:03 2010 +0300 @@ -98,6 +98,7 @@ LIBRARY glxcommon.lib // for filter facotory LIBRARY glxcommonui.lib LIBRARY glxtvout.lib -LIBRARY harvesterclient.lib +LIBRARY gfxtrans.lib +LIBRARY akntransitionutils.lib // EOF diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h --- a/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h Wed Mar 31 21:31:03 2010 +0300 @@ -26,7 +26,8 @@ #include "glxfullscreenview.h" #include "glxfullscreenbindingsetfactory.h" #include "glxfullscreenview.hrh" -#include +#include "glxmmcnotifier.h" + //Gesture Helper namespace namespace GestureHelper { @@ -77,7 +78,7 @@ NONSHARABLE_CLASS (CGlxFullScreenViewImp): public CGlxFullScreenView, public IAlfWidgetEventHandler, public MGlxUiCommandHandler, - public MHarvesterEventObserver + public MStorageNotifierObserver { public: /** @@ -144,12 +145,6 @@ AlfEventHandlerExecutionPhase eventExecutionPhase() ; -public: - // from MHarvesterEventObserver - void HarvestingUpdated( - HarvesterEventObserverType aHEObserverType, - HarvesterEventState aHarvesterEventState, - TInt aItemsLeft ); private: /* @@ -270,11 +265,24 @@ /** * Consume DRM rights */ - void ConsumeDRMRightsL( const TDesC& uri ); + void ConsumeDRMRightsL(const TGlxMedia& aMedia); /** * Set the image to external display - HDMI */ void SetItemToHDMIL(); + /** + * handle MMC insertion + */ + void HandleMMCInsertionL(); + /** + * handle MMC removal + */ + void HandleMMCRemovalL(); + + /** + * navigate to main list + */ + void NavigateToMainListL(); private: /** Softkey resource id's */ TFullScreenViewResourceIds iResourceIds; @@ -312,8 +320,6 @@ CGlxCommandHandlerAiwShowMapHardKey* iShowOnMapHardKeyhandler; CGlxScreenFurniture* iScreenFurniture; - //CGlxSingleLineMetaPane* iSingleLineMetaPane; -// CHgContextUtility* iContextUtility; CGlxHdmiController* iHdmiController; CGlxDRMUtility* iDrmUtility; @@ -328,7 +334,8 @@ //Previous focused index TInt iOldFocusIndex; TBool iImgViewerMode; - RHarvesterClient iHarvesterClient; + CGlxMMCNotifier* iMMCNotifier; + TBool iMMCState; }; #endif diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/fullscreenview/src/glxfullscreenbindingsetfactory.cpp --- a/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenbindingsetfactory.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenbindingsetfactory.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -86,9 +86,7 @@ */ void TGlxMulFSMPTitleBindingSetFactory::AddBindingsL() const { - //AddIconBindingL( Alf::mulvisualitem::KMulIcon1 /*CGlxMulStaticIconProvider::NewL(resource ID)*/ );//@todo the resource file from which this to be read AddMpxAttributeBindingL( Alf::mulvisualitem::KMulTitle1 , KMPXMediaGeneralTitle ); - //AddIconBindingL( Alf::mulvisualitem::KMulIcon1, CGlxMulStaticIconProvider::NewL(EMbmGlxiconsQgn_lgal_icon_tag_list)); AddTemplateBindingL(Alf::mulwidget::KTemplate5); } @@ -114,7 +112,6 @@ */ void TGlxMulFSMPDateBindingSetFactory::AddBindingsL() const { - //AddThumbnailBindingL( Alf::mulvisualitem::KMulIcon1 ); AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralDate, R_QTN_DATE_USUAL_WITH_ZERO ); AddTemplateBindingL(Alf::mulwidget::KTemplate3); @@ -199,8 +196,6 @@ */ void TGlxMulFSMPAlbumBindingSetFactory::AddBindingsL() const { -// AddIconBindingL( Alf::mulvisualitem::KMulIcon1 /*CGlxMulStaticIconProvider::NewL(resource ID)//qgn_lgal_fullscr_meta_album - //AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralTitle ); AddTemplateBindingL(Alf::mulwidget::KTemplate4); } @@ -227,7 +222,6 @@ */ void TGlxMulFSMPLocationBindingSetFactory::AddBindingsL() const { -// AddIconBindingL( Alf::mulvisualitem::KMulIcon1, KGlxMediaGeneralLocation );//qgn_lgal_metapane_location AddIconBindingL( Alf::mulvisualitem::KMulIcon1, CGlxMulLocationIconProvider::NewL(), KDefaultIconSize ); AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KGlxMediaGeneralLocation );//@todo @@ -259,8 +253,6 @@ */ void TGlxMulFSMPTagsBindingSetFactory::AddBindingsL() const { -// AddIconBindingL( Alf::mulvisualitem::KMulIcon1 /*CGlxMulStaticIconProvider::NewL(resource ID)//QTN_LGAL_FULLSCR_METAPANE_TAGS //@todo - //AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralTitle );//@todo AddTemplateBindingL(Alf::mulwidget::KTemplate4); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp --- a/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -25,6 +25,11 @@ #include #include // String Loader +//For animation Effects +#include +#include +#include + // Alf Headers #include // widget factory #include // To get CAlfControl from CAlfWidgetControl @@ -68,6 +73,7 @@ #include #include #include "glxfullscreenbusyicon.h" + using namespace Alf; const TInt KGlxScreenTimeout =10000000; @@ -87,12 +93,14 @@ 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); +//6 = 5(iterator value in forward or backward direction for fullscreen) + 1(focus index) const TInt KFullScreenIterator = 3; //Constant which says maximum number of fullscreen textures that we have have at a time. //11 = (5(5 fullscreen texture backwards)+1(fucus index texture)+5(5 fullscreen texture forwards)) const TInt KFullScreenTextureOffset = 5; +_LIT( KTfxResourceActivateFullScreen, "z:\\resource\\effects\\photos_fullscreen_open.fxml" ); + // ======== MEMBER FUNCTIONS ======== // --------------------------------------------------------------------------- @@ -195,12 +203,7 @@ // Get object that stores the active media list registry iActiveMediaListRegistry = CGlxActiveMediaListRegistry::InstanceL(); - TInt err = iHarvesterClient.Connect(); - GLX_LOG_INFO1("iHarvesterClient.Connect() err = %d",err); - if(err == KErrNone) - { - iHarvesterClient.AddHarvesterEventObserver(*this, EHEObserverTypeMMC, 1000); - } + iMMCNotifier = CGlxMMCNotifier::NewL(*this); if(!iPeriodic) { iPeriodic = CPeriodic::NewL(CActive::EPriorityStandard); @@ -214,7 +217,10 @@ CGlxFullScreenViewImp::~CGlxFullScreenViewImp() { TRACER("CGlxFullScreenViewImp::~CGlxFullScreenViewImp"); - iHarvesterClient.Close(); + + delete iMMCNotifier; + iMMCNotifier = NULL; + delete iMediaListMulModelProvider; if(iTimer->IsActive()) { @@ -342,9 +348,6 @@ SetItemToHDMIL(); } iScreenFurniture->SetActiveView(iViewUid); - - // create the screen furniture for touch devices - CreateScreenFurnitureL(); //set the ui state to off,when the Fullscreen launches SetUiSate(NGlxNFullScreenUIState::EUiOff); @@ -354,6 +357,9 @@ // create the coverflow CreateCoverflowWidgetL(); + // create the screen furniture for touch devices + CreateScreenFurnitureL(); + CreateSliderWidgetL(); iBusyIcon = CGlxFullScreenBusyIcon::NewL(*iMediaList,*iUiUtility); @@ -366,11 +372,32 @@ // Set active media list pointer, so that UPnP renderer knows about this list iActiveMediaListRegistry->RegisterActiveMediaList(iMediaList); - if ( !iPeriodic->IsActive() ) - { + if ( !iPeriodic->IsActive() ) + { iPeriodic->Start(KPeriodicStartDelay, KPeriodicIntervalDelay, TCallBack(&PeriodicCallback, static_cast (this))); - } + } + + //Set the animation effect for the coverflow widget since the animation + //does not work for both avkon and alf together. This can be done since the + //UI Screen furnitures are disabled by default while going to fullscreen. + //Check if the transitions are enabled from themes + if (CAknTransitionUtils::TransitionsEnabled( + AknTransEffect::EFullScreenTransitionsOff)) + { + const_cast (iCoverFlowWidget->ContainerLayout()).SetEffectL( + KTfxResourceActivateFullScreen); + } + + //Disable the status pane here as it causes flicker while animating + CAknViewAppUi* appui = AppUi(); + if ( appui ) + { + appui->StatusPane()->MakeVisible(EFalse); + appui->Cba()->MakeVisible(EFalse); + } + + iViewWidget->show(true); } @@ -400,7 +427,6 @@ iViewWidget->enableControlPane(EFalse); iViewWidget->enableStatusPane(EFalse); iViewWidget->setRect(TRect(TPoint(0, 0), AlfUtil::ScreenSize())); - iViewWidget->show(true); // create coverflow widget iCoverFlowWidget = widgetFactory.createWidget ( KWidgetName, KCoverflowWidget, *iViewWidget, NULL); @@ -409,14 +435,6 @@ // Widget takes the ownership iCoverFlowWidget->AddEventHandler(*this); - CAknViewAppUi* appui = AppUi(); - if ( appui ) - { - appui->StatusPane()->MakeVisible(EFalse); - appui->Cba()->MakeVisible(EFalse); - } - - iCoverFlowWidget->ShowWidget(ETrue); iCoverFlowWidget->control()->AcquireFocus(); iMediaListMulModelProvider = CGlxMediaListMulModelProvider::NewL( *iEnv, *iCoverFlowWidget, *iMediaList, iFullScreenBindingSet, @@ -481,8 +499,9 @@ TBool isDrmRightsValid = ETrue; if(item.IsDrmProtected()) { - //Fix for ESLM-82WJ59: Since it is always for the focused item - use DisplayRightsL instead of openrightsL - isDrmRightsValid = iDrmUtility->CheckDisplayRightsL(item.Uri(), (item.Category() == EMPXImage)); + //Since it is always for the focused item - use DisplayItemRightsCheckL instead of ItemRightsValidityCheckL + isDrmRightsValid = iDrmUtility->DisplayItemRightsCheckL(item.Uri(), + (item.Category() == EMPXImage)); } // Display slider only for non corrupted images and items with valid DRM license @@ -556,8 +575,6 @@ // hide the softkeys Cba()->MakeVisible( EFalse ); Cba()->DrawNow(); - // Hide the metapane - //iSingleLineMetaPane->ShowMetaPane(EFalse); // set the ui state to On SetUiSate(NGlxNFullScreenUIState::EUiOff); @@ -574,9 +591,6 @@ CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current(); CleanupStack::PushL( cba ); cba->SetCommandSetL(R_GLX_FULLSCREEN_SOFTKEYS); - // hide the softkeys - cba->MakeVisible( EFalse ); - cba->DrawNow(); CleanupStack::Pop(cba); } @@ -684,8 +698,9 @@ TBool isDrmRightsValid = ETrue; if(item.IsDrmProtected()) { - //Fix for ESLM-82WJ59: DRM Rights validity check for displayed item - isDrmRightsValid = iDrmUtility->CheckDisplayRightsL(item.Uri(), (item.Category() == EMPXImage)); + //DRM Rights validity check for displayed item + isDrmRightsValid = iDrmUtility->DisplayItemRightsCheckL(item.Uri(), + (item.Category() == EMPXImage)); } // Activate Zoom if the item is an image and its DRM rights is not expired if(KErrNone == error && (EMPXImage == item.Category()) && isDrmRightsValid) @@ -756,10 +771,10 @@ void CGlxFullScreenViewImp::DoMLViewDeactivate() { TRACER("CGlxFullScreenViewImp::DoMLViewDeactivate"); - //Fix for ESLM-82WJ59: Clear the last uri for which DRM Rights were consumed before going back to grid view + //Clear the last uri for which DRM Rights were consumed before going back to grid view //since the GridView::Activate() and FullScreen::DeActivate() can be called in any order, //this call is being made to be on safer side - iDrmUtility->ClearLastConsumedItemUri(); + iDrmUtility->ClearLastConsumedItemUriL(); iScreenFurniture->ViewDeactivated(iViewUid); iImgViewerMode = EFalse; if (iHdmiController) @@ -800,8 +815,12 @@ { TRACER("CGlxFullScreenViewImp::HandleForegroundEventL"); CAknView::HandleForegroundEventL(aForeground); + if(iMMCState) + { + iMMCState =EFalse; + NavigateToMainListL(); + } - if(iZoomControl && iZoomControl->Activated()) { iZoomControl->HandleZoomForegroundEvent(aForeground); @@ -1267,29 +1286,28 @@ } // --------------------------------------------------------------------------- -// -// Shows expiry note/dialog for expired DRM files, can leave +// Shows expiry note / Consumes DRM rights for expired DRM files // --------------------------------------------------------------------------- // void CGlxFullScreenViewImp::ShowDrmExpiaryNoteL() { - TRACER("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL"); - if(iMediaList->Count()>0) - { + TRACER("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL"); + if (iMediaList->Count() > 0) + { const TGlxMedia& media = iMediaList->Item(iMediaList->FocusIndex()); 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 (media.IsDrmProtected()) + { + GLX_LOG_INFO("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()" + "- ConsumeDRMRightsL()"); + ConsumeDRMRightsL(media); + } - if (qtyTn) + if (tnError == KErrNone) { if (iPeriodic->IsActive()) { @@ -1297,15 +1315,10 @@ } } - if (tnError == KErrNone && qtyTn && media.IsDrmProtected()) - { - GLX_LOG_INFO("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()" - "- ConsumeDRMRightsL()"); - const TDesC& uri = media.Uri(); - ConsumeDRMRightsL(uri); - } - - if (tnError != KErrNone) + TMPXGeneralCategory cat = media.Category(); + TBool checkViewRights = (cat == EMPXImage); + if (iDrmUtility->ItemRightsValidityCheckL(media.Uri(), + checkViewRights) && tnError != KErrNone) { if (iPeriodic->IsActive()) { @@ -1326,29 +1339,55 @@ CleanupStack::PopAndDestroy(naviState); CleanupStack::PopAndDestroy(navigationalState); } - } - } + } + } // --------------------------------------------------------------------------- -// -// consumes DRM rights for DRM files, can leave +// Consumes DRM rights / Shows DRM rights (if expired) information +// for DRM files // --------------------------------------------------------------------------- // -void CGlxFullScreenViewImp::ConsumeDRMRightsL( const TDesC& uri ) +void CGlxFullScreenViewImp::ConsumeDRMRightsL(const TGlxMedia& aMedia) { TRACER("CGlxFullScreenViewImp::ConsumeDRMRightsL"); - if( uri.Length() > 0 ) + const TDesC& uri = aMedia.Uri(); + if (uri.Length() > 0) { // check if rights have expired - TBool expired = !iDrmUtility->CheckOpenRightsL(uri,ETrue); - if(expired) + TBool expired = !iDrmUtility->ItemRightsValidityCheckL(uri, ETrue); + if (expired) { - iBusyIcon->ShowBusyIconL(EFalse); + if (iPeriodic->IsActive()) + { + iPeriodic->Cancel(); + } + iBusyIcon->ShowBusyIconL(EFalse); iDrmUtility->ShowRightsInfoL(uri); return; } - iDrmUtility->ConsumeRightsL(uri); - } + + TSize tnSize = iUiUtility->DisplaySize(); + TMPXAttribute qtyTnAttrib = TMPXAttribute(KGlxMediaIdThumbnail, + GlxFullThumbnailAttributeId(ETrue, tnSize.iWidth, + tnSize.iHeight)); + const CGlxThumbnailAttribute* qtyTn = aMedia.ThumbnailAttribute( + qtyTnAttrib); + + TInt tnError = GlxErrorManager::HasAttributeErrorL( + aMedia.Properties(), KGlxMediaIdThumbnail); + GLX_LOG_INFO1("CGlxFullScreenViewImp::ConsumeDRMRightsL()" + " tnError=%d ", tnError); + if (qtyTn && tnError == KErrNone) + { + if (iPeriodic->IsActive()) + { + iPeriodic->Cancel(); + } + GLX_LOG_INFO("CGlxFullScreenViewImp::ConsumeDRMRightsL()" + "- ConsumeRights"); + iDrmUtility->ConsumeRightsL(uri); + } + } } // --------------------------------------------------------------------------- @@ -1381,6 +1420,7 @@ return swipedirection; } + // --------------------------------------------------------------------------- // // Gets the index of the item for which the texture has to be removed @@ -1413,6 +1453,7 @@ GLX_LOG_INFO1("CGlxFullScreenViewImp::GetIndexToBeRemoved index tobe removed %d",indextoberemoved ); return indextoberemoved; } + // --------------------------------------------------------------------------- // // Remove the texture on every swipe while HDMI is connected. @@ -1444,8 +1485,7 @@ // then dont SetImageToHDMI :) if( ( KErrNotFound == focusIndex) || (0 == iMediaList->Count()) - || (NULL == iHdmiController) - || (!iHdmiController->IsHDMIConnected())) + || (NULL == iHdmiController)) { GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - Cant Set Image To HDMI"); return; @@ -1460,38 +1500,45 @@ // and it has valid DRM Viewing rights // and it has no attribute error if ( (item.Category() != EMPXVideo) - && iDrmUtility->CheckOpenRightsL(item.Uri(), ETrue) + && iDrmUtility->ItemRightsValidityCheckL(item.Uri(), ETrue) && (error == KErrNone) ) { GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Setting the Image"); - TInt frameCount(0); - TSize orignalSize; - item.GetFrameCount(frameCount); - item.GetDimensions(orignalSize); - iHdmiController->SetImageL(item.Uri(), orignalSize, frameCount); + iHdmiController->SetImageL(item.Uri()); } else { GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - Unsupported Item"); //Set the external display to cloning mode if //the current item is something we dont support - //(e.g. video, corrupted item, item with invalid DRM); + //(e.g. video, corrupted item, item with invalid DRM) iHdmiController->ItemNotSupported(); } iOldFocusIndex = iMediaList->FocusIndex(); } + // --------------------------------------------------------------------------- -// HarvestingUpdated +// HandleMMCInsertionL // // --------------------------------------------------------------------------- -// -void CGlxFullScreenViewImp::HarvestingUpdated( - HarvesterEventObserverType HarvestingUpdated, - HarvesterEventState aHarvesterEventState, - TInt aItemsLeft ) +void CGlxFullScreenViewImp::HandleMMCInsertionL() { - TRACER("CGlxFullScreenViewImp::HarvestingUpdated()"); - if(HarvestingUpdated == EHEObserverTypeMMC) + TRACER("CGlxFullScreenViewImp::HandleMMCInsertionL()"); + iMMCState = ETrue; + NavigateToMainListL(); + } + +// --------------------------------------------------------------------------- +// NavigateToMainListL +// +// --------------------------------------------------------------------------- +void CGlxFullScreenViewImp::NavigateToMainListL() + { + TRACER("CGlxFullScreenViewImp::NavigateToMainListL()"); + CGlxNavigationalState* navigationalState = CGlxNavigationalState::InstanceL(); + CleanupClosePushL( *navigationalState ); + CMPXCollectionPath* naviState = navigationalState->StateLC(); + if (naviState->Id() != TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid)) { if(iZoomControl && iZoomControl->Activated()) { @@ -1500,4 +1547,21 @@ } ProcessCommandL(EAknSoftkeyClose); } + CleanupStack::PopAndDestroy(naviState); + CleanupStack::PopAndDestroy(navigationalState); } + +// --------------------------------------------------------------------------- +// HandleMMCInsertionL +// +// --------------------------------------------------------------------------- +void CGlxFullScreenViewImp::HandleMMCRemovalL() + { + TRACER("CGlxFullScreenViewImp::HandleMMCRemovalL()"); + if(iZoomControl && iZoomControl->Activated()) + { + SetSliderLevel(); + DeactivateZoomControlL(); + } + ProcessCommandL(EAknSoftkeyExit); + } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/gridview/group/glxgridview.mmp --- a/photosgallery/viewframework/views/gridview/group/glxgridview.mmp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/gridview/group/glxgridview.mmp Wed Mar 31 21:31:03 2010 +0300 @@ -77,5 +77,6 @@ LIBRARY aknskins.lib LIBRARY featmgr.lib // FeatureManager LIBRARY harvesterclient.lib +LIBRARY gfxtrans.lib // End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h --- a/photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h Wed Mar 31 21:31:03 2010 +0300 @@ -35,9 +35,9 @@ #include #include #include -#include #include "glxgridvieweventobserver.h" +#include "glxmmcnotifier.h" class CHgGrid; class CGlxUiUtility; @@ -54,7 +54,7 @@ public MHgScrollBufferObserver, public MHgSelectionObserver, public MHgMarkingObserver, - public MHarvesterEventObserver + public MStorageNotifierObserver { public: /** @@ -97,12 +97,6 @@ //handle orientaion realted changes void HandleResourceChange(TInt aType); -public: - // from MHarvesterEventObserver - void HarvestingUpdated( - HarvesterEventObserverType aHEObserverType, - HarvesterEventState aHarvesterEventState, - TInt aItemsLeft ); private: /** @@ -158,6 +152,14 @@ * Required as the tool bar is dynamically created. */ TRect GetHgGridRect(); + /** + * handle mmc insertion event + */ + void HandleMMCInsertionL(); + /** + * handle mmc removal event + */ + void HandleMMCRemovalL(); private: //medialist @@ -219,7 +221,7 @@ //toolbar - created dynamically. CAknToolbar* iToolbar; CGlxProgressIndicator* iProgressIndicator; - RHarvesterClient iHarvesterClient; + CGlxMMCNotifier* iMMCNotifier; }; #endif // CGLXGRIDVIEWCONTROL_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/gridview/inc/glxgridviewimp.h --- a/photosgallery/viewframework/views/gridview/inc/glxgridviewimp.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/gridview/inc/glxgridviewimp.h Wed Mar 31 21:31:03 2010 +0300 @@ -124,6 +124,7 @@ CGlxGridViewContainer* iGlxGridViewContainer; //toolbar - created dynamically. CAknToolbar* iToolbar; + TBool iMMCState; }; #endif // C_GLXGRIDLVIEWIMP_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h --- a/photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h Wed Mar 31 21:31:03 2010 +0300 @@ -103,10 +103,10 @@ void UpdateItemsL (TInt aItemIndex,const RArray& aAttributes); /** - * DisplayErrorNote - Show an error note based on input parameter + * DisplayErrorNoteL - Show an error note based on input parameter * @param aError The error based on which the error note is to be shown. */ - void DisplayErrorNote(TInt aError); + void DisplayErrorNoteL(TInt aError); private: @@ -123,15 +123,13 @@ //No of visible items in a page/view TInt iItemsPerPage; - // Has the error in disk (e.g disk error) been shown to the user? + // Variable to check if the error in disk (e.g disk error) has been shown to the user. // If a disk is full the user should not be intimated everytime over and over again. TInt iDiskErrorIntimated; // Modified Indexes array to refresh the screen RArray iModifiedIndexes; -// CHgContextUtility* iContextUtility; - //Grid Thumbnail Attribs TMPXAttribute iQualityTnAttrib; TMPXAttribute iSpeedTnAttrib; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp --- a/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -85,7 +85,10 @@ CGlxGridViewContainer::~CGlxGridViewContainer() { TRACER("CGlxGridViewContainer::~CGlxGridViewContainer"); - iHarvesterClient.Close(); + + delete iMMCNotifier; + iMMCNotifier = NULL; + if(iBgContext) { delete iBgContext; @@ -161,10 +164,10 @@ // For DRM Utility iDRMUtility = CGlxDRMUtility::InstanceL(); - //Fix for ESLM-82WJ59: Clear the last uri for which DRM Rights were consumed - //since the GridView::Activate() and FullScreen::DeActivate() can be called in any order, - //this call is being made to be on safer side - iDRMUtility->ClearLastConsumedItemUri(); + //Clear the last uri for which DRM Rights were consumed + //since the GridView::Activate() and FullScreen::DeActivate() + //can be called in any order, this call is being made to be on safer side + iDRMUtility->ClearLastConsumedItemUriL(); // background Skin Context for the skin support TRect apRect = iEikonEnv->EikAppUi()->ApplicationRect(); @@ -180,12 +183,7 @@ iGridIconSize.iHeight ) ); CreateGridL(); - TInt err = iHarvesterClient.Connect(); - GLX_LOG_INFO1("iHarvesterClient.Connect() err = %d",err); - if(err == KErrNone) - { - iHarvesterClient.AddHarvesterEventObserver(*this, EHEObserverTypeMMC, 1000); - } + iMMCNotifier = CGlxMMCNotifier::NewL(*this); } // --------------------------------------------------------------------------- @@ -495,7 +493,10 @@ void CGlxGridViewContainer::CreateGridAfterFSDeactivatedL() { TRACER("CGlxGridViewContainer::CreateGridAfterFSDeactivatedL()"); - if (iBackwardActivation) + TInt focusIndex = iMediaList->FocusIndex(); + GLX_LOG_INFO1("CreateGridAfterFSDeactivatedL() focusIndex=%d", focusIndex); + + if (iBackwardActivation) { TInt mlCount = iMediaList->Count(); GLX_LOG_INFO1("CreateGridAfterFSDeactivatedL() mlCount=%d", mlCount); @@ -512,7 +513,6 @@ iHgGrid->DrawNow(); } - TInt focusIndex = iMediaList->FocusIndex(); TSize setSize = CHgGrid::PreferredImageSize(); TFileName resFile(KDC_APP_BITMAP_DIR); resFile.Append(KGlxIconsFilename); @@ -521,10 +521,13 @@ { SetIconsL(index); } - - iHgGrid->SetSelectedIndex(focusIndex); - iHgGrid->RefreshScreen(focusIndex); } + + if (focusIndex != KErrNotFound) + { + iHgGrid->SetSelectedIndex(focusIndex); + iHgGrid->RefreshScreen(focusIndex); + } iBackwardActivation = EFalse; } @@ -607,7 +610,7 @@ TMPXGeneralCategory cat = item.Category(); TBool checkViewRights = (cat==EMPXImage); - if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights)) + if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights)) { iHgGrid->ItemL(index).SetFlags(CHgItem::EHgItemFlagsDrmRightsValid); } @@ -621,7 +624,7 @@ TMPXGeneralCategory cat = item.Category(); TBool checkViewRights = (cat==EMPXImage); - if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights)) + if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights)) { iHgGrid->ItemL(index).SetFlags(CHgItem::EHgItemFlagsDrmRightsValid); } @@ -731,8 +734,8 @@ { iIsFSVideoViewActivating = ETrue; iFullscreenViewActivated = ETrue; + iGlxGridViewObserver.HandleGridEventsL(EGlxCmdPlay) ; iIsFSVideoViewActivating = EFalse; - iGlxGridViewObserver.HandleGridEventsL(EGlxCmdPlay) ; } } else @@ -931,22 +934,22 @@ } // --------------------------------------------------------------------------- -// HarvestingUpdated +// HandleMMCInsertionL // // --------------------------------------------------------------------------- -// -void CGlxGridViewContainer::HarvestingUpdated( - HarvesterEventObserverType HarvestingUpdated, - HarvesterEventState aHarvesterEventState, - TInt aItemsLeft ) +void CGlxGridViewContainer::HandleMMCInsertionL() { - TRACER("CGlxGridViewContainer::HarvestingUpdated()"); - GLX_LOG_INFO1("HarvestingUpdated = %d",HarvestingUpdated); - GLX_LOG_INFO1("aHarvesterEventState = %d",aHarvesterEventState); - GLX_LOG_INFO1("aItemsLeft = %d",aItemsLeft); - if(HarvestingUpdated == EHEObserverTypeMMC) - { - iGlxGridViewObserver.HandleGridEventsL(EAknSoftkeyClose); - } + TRACER("CGlxGridViewContainer::HandleMMCInsertionL()"); + iGlxGridViewObserver.HandleGridEventsL(EAknSoftkeyClose); + } + +// --------------------------------------------------------------------------- +// HandleMMCRemovalL +// +// --------------------------------------------------------------------------- +void CGlxGridViewContainer::HandleMMCRemovalL() + { + TRACER("CGlxGridViewContainer::HandleMMCRemovalL()"); + iGlxGridViewObserver.HandleGridEventsL(EAknSoftkeyExit); } //end of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp --- a/photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -39,6 +39,11 @@ #include "glxgridviewmlobserver.h" // medialist observer for Hg Grid #include "glxgridviewcontainer.h" +// For transition effects +#include +#include +#include "glxgfxtranseffect.h" // For transition effects + const TInt KGlxToolbarButtonUnLatched = 0; // Toolbar mark button's unlatched state defined in the rss file // ======== MEMBER FUNCTIONS ======== @@ -129,6 +134,15 @@ { TRACER("CGlxGridViewImp::DoMLViewActivateL()"); + TUint transitionID = (iUiUtility->ViewNavigationDirection()== + EGlxNavigationForwards)?KActivateTransitionId:KFSDeActivateTransitionId; + + GfxTransEffect::BeginFullScreen( transitionID, TRect(), + AknTransEffect::EParameterType, + AknTransEffect::GfxTransParam( KPhotosUid, + AknTransEffect::TParameter::EEnableEffects) ); + GfxTransEffect::EndFullScreen(); + if(StatusPane()) { StatusPane()->MakeVisible(ETrue); @@ -261,6 +275,11 @@ void CGlxGridViewImp::HandleForegroundEventL(TBool aForeground) { TRACER("CGlxGridViewImp::HandleForegroundEventL()"); + if(iMMCState) + { + iMMCState = EFalse; + ProcessCommandL(EAknSoftkeyClose); + } CAknView::HandleForegroundEventL(aForeground); } @@ -274,6 +293,10 @@ { TRACER("CGlxGridViewImp::HandleGridEventsL()"); //do processcmd related event handling + if(EAknSoftkeyClose == aCmd) + { + iMMCState = ETrue; + } ProcessCommandL(aCmd); } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp --- a/photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -21,7 +21,6 @@ // Ganes Headers #include #include //Hg Grid Widget -//#include #include //Photos Headers @@ -91,8 +90,6 @@ CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); iGridIconSize = uiUtility->GetGridIconSize(); - //Get the HgContextUtility instance -// iContextUtility = uiUtility->ContextUtility(); iItemsPerPage = uiUtility->VisibleItemsInPageGranularityL(); uiUtility->Close() ; @@ -209,17 +206,14 @@ return; } - TInt mediaCount = iMediaList.Count(); - const TGlxMedia& item = iMediaList.Item( aItemIndex ); TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match ); - if (KErrNotFound != aAttributes.Find( iQualityTnAttrib, match ) || KErrNotFound != aAttributes.Find( iSpeedTnAttrib, match )) { + const TGlxMedia& item = iMediaList.Item( aItemIndex ); TFileName resFile(KDC_APP_BITMAP_DIR); resFile.Append(KGlxIconsFilename); TSize setSize = CHgGrid::PreferredImageSize(); - TIconInfo icon; const CGlxThumbnailAttribute* qualityTn = item.ThumbnailAttribute( iQualityTnAttrib ); @@ -229,12 +223,13 @@ TInt tnError = GlxErrorManager::HasAttributeErrorL( item.Properties(), KGlxMediaIdThumbnail ); + GLX_DEBUG4("GlxGridMLObs::HandleAttributesAvailableL() tnError(%d)" + "qualityTn(%x) and speedTn(%x)", qualityTn, speedTn, tnError); if (qualityTn) { CFbsBitmap* bitmap = new (ELeave) CFbsBitmap; - bitmap->Duplicate( qualityTn->iBitmap->Handle()); - AknIconUtils::SetSize(bitmap, setSize); + bitmap->Duplicate(qualityTn->iBitmap->Handle()); iHgGrid->ItemL(aItemIndex).SetIcon(CGulIcon::NewL(bitmap)); GLX_LOG_INFO1("### CGlxGridViewMLObserver::HandleAttributesAvailableL" " qualityTn-Index is %d",aItemIndex); @@ -242,8 +237,7 @@ else if (speedTn) { CFbsBitmap* bitmap = new (ELeave) CFbsBitmap; - bitmap->Duplicate( speedTn->iBitmap->Handle()); - AknIconUtils::SetSize(bitmap, setSize); + bitmap->Duplicate(speedTn->iBitmap->Handle()); iHgGrid->ItemL(aItemIndex).SetIcon(CGulIcon::NewL(bitmap)); GLX_LOG_INFO1("### CGlxGridViewMLObserver::HandleAttributesAvailableL" " speedTn-Index is %d",aItemIndex); @@ -344,7 +338,7 @@ flags = CHgItem::EHgItemFlagsNone ; if (!iDiskErrorIntimated) { - DisplayErrorNote(KErrDiskFull); + DisplayErrorNoteL(KErrDiskFull); } break; default: @@ -498,6 +492,7 @@ } } } + if (iModifiedIndexes.Count() > 0) { for(TInt index = 0;indexCheckOpenRightsL(uri, checkViewRights)) + if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights)) { iHgGrid->ItemL(aItemIndex).SetFlags( CHgItem::EHgItemFlagsDrmRightsValid); @@ -560,7 +555,7 @@ TMPXGeneralCategory cat = item.Category(); TBool checkViewRights = (cat==EMPXImage); - if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights)) + if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights)) { iHgGrid->ItemL(aItemIndex).SetFlags( CHgItem::EHgItemFlagsDrmRightsValid); @@ -593,17 +588,16 @@ } } - // ---------------------------------------------------------------------------- -// DisplayErrorNote +// DisplayErrorNoteL // ---------------------------------------------------------------------------- // -void CGlxGridViewMLObserver::DisplayErrorNote(TInt aError) +void CGlxGridViewMLObserver::DisplayErrorNoteL(TInt aError) { - TRACER("CGlxGridViewMLObserver::DisplayErrorNote()"); - GLX_LOG_INFO1("CGlxGridViewMLObserver::DisplayErrorNote Error note " - "displayed corresponging to [d]", aError); + TRACER("CGlxGridViewMLObserver::DisplayErrorNoteL()"); + GLX_LOG_INFO1("CGlxGridViewMLObserver::DisplayErrorNoteL() " + " aError(%d)", aError); GlxGeneralUiUtilities::ShowErrorNoteL(aError); iDiskErrorIntimated = ETrue; - return ; + return; } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/listview/group/glxlistview.mmp --- a/photosgallery/viewframework/views/listview/group/glxlistview.mmp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/listview/group/glxlistview.mmp Wed Mar 31 21:31:03 2010 +0300 @@ -53,7 +53,6 @@ SYSTEMINCLUDE ../../../commandhandlers/inc SYSTEMINCLUDE ../../../dataprovider/inc SYSTEMINCLUDE ../../../medialists/inc //glxmedialistiterator -SYSTEMINCLUDE ../../../uiutilities/inc LIBRARY euser.lib LIBRARY cone.lib @@ -78,3 +77,4 @@ LIBRARY egul.lib LIBRARY aknskins.lib LIBRARY bitgdi.lib +LIBRARY gfxtrans.lib diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/listview/inc/glxlistviewimp.h --- a/photosgallery/viewframework/views/listview/inc/glxlistviewimp.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/listview/inc/glxlistviewimp.h Wed Mar 31 21:31:03 2010 +0300 @@ -26,9 +26,9 @@ // INCLUDES #include "glxlistview.h" #include "glxpreviewthumbnailbinding.h" - +#include "glxmmcnotifier.h" #include // Interface for going through items in - +#include #include #include @@ -41,7 +41,7 @@ class CHgDoubleGraphicListFlat; class CAknsBasicBackgroundControlContext; - +class CGlxNavigationalState; //NOT: This enum is based on TGlxCollectionPluginPriority. If any //change happen regarding priority order in that, need to change @@ -73,7 +73,9 @@ public MHgScrollBufferObserver, public MHgSelectionObserver, public MPreviewTNObserver, - public MDialogDismisedObserver + public MDialogDismisedObserver, + public MStorageNotifierObserver, + public MGlxNavigationalStateObserver { public: /** @@ -160,7 +162,7 @@ void DestroyListViewWidget(); protected: - void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aPopulateList); + void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask); protected: void Request(TInt aRequestStart, TInt aRequestEnd, THgScrollDirection aDirection); @@ -174,7 +176,11 @@ private: void CreateListL(); void SetDefaultThumbnailL(TInt aIndex); - + void NavigateToMainListL(); + void HandleMMCInsertionL(); + void HandleMMCRemovalL(); + void HandleNavigationalStateChangedL(){}; + public: // from MGlxMediaListObserver void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); @@ -191,7 +197,7 @@ void HandleItemModifiedL( const RArray& aItemIndexes, MGlxMediaList* aList ); void HandlePopulatedL( MGlxMediaList* aList ); void HandleDialogDismissedL(); // from MDialogDismisedObserver - + void HandleForegroundEventL(TBool aForeground); private: // Data CAknsBasicBackgroundControlContext* iBgContext; //Own @@ -239,6 +245,14 @@ //Check for TN generation TBool isTnGenerationComplete; + + CActiveSchedulerWait* iSchedulerWait; + + CGlxMMCNotifier* iMMCNotifier; + + CGlxNavigationalState* iNavigationalState; + + TBool iMMCState; }; #endif // C_GLXLISTVIEWIMP_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h --- a/photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h Wed Mar 31 21:31:03 2010 +0300 @@ -34,7 +34,7 @@ class MPreviewTNObserver { public: - virtual void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aPopulateList) = 0; + virtual void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask) = 0; }; // CLASS DECLARATION @@ -88,7 +88,7 @@ public: void HandleItemChangedL(const CMPXCollectionPath& aPath,TBool aPopulateListTNs, TBool aIsRefreshNeeded, TBool aBackwardNavigation); - void StartTimer(TBool aPopulateListTNs); + void StartTimer(); void StopTimer(); // From MGlxMediaListObserver @@ -132,10 +132,7 @@ // for thumbnail context TGlxSequentialIterator iThumbnailIterator; - - // Preview thumbnail index - TInt iProgressIndex; - + // flag that says whether timer has expired TBool iTimerTicked; @@ -144,17 +141,12 @@ TBool iPopulateListTNs; TBool iIsRefreshNeeded; - - //it holds the initial number of thumbnail to be displayed - RArray iPreviewItemCount; TSize iGridIconSize; // Holds the numbers of trials count,after which PreviewTNReady callback // has to be called TInt iTrialCount; - - TInt iTrial; CMPXFilter* iPreviewFilter; }; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp --- a/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -44,10 +44,16 @@ #include #include #include +#include + +#include // For transition effects +#include // For transition effects +#include "glxgfxtranseffect.h" // For transition effects const TInt KListDataWindowSize(25); const TInt KNoOfPages(2); const TInt KBufferTresholdSize(6); +const TInt KGlxCollectionRootLevel = 1; // ======== MEMBER FUNCTIONS ======== @@ -56,13 +62,13 @@ // C++ default constructor can NOT contain any code that might leave. // --------------------------------------------------------------------------- // -CGlxListViewImp::CGlxListViewImp(TInt aViewUid, const TListViewResourceIds& aResourceIds): - iViewUid(aViewUid), - iResourceIds(aResourceIds) +CGlxListViewImp::CGlxListViewImp(TInt aViewUid, + const TListViewResourceIds& aResourceIds) : + iViewUid(aViewUid), iResourceIds(aResourceIds), iIsRefreshNeeded(EFalse), + iBackwardNavigation(EFalse), isTnGenerationComplete(ETrue) { } - // --------------------------------------------------------------------------- // Two-phased constructor. // --------------------------------------------------------------------------- @@ -109,6 +115,11 @@ BaseConstructL(iResourceIds.iViewId); ViewBaseConstructL(); MLViewBaseConstructL(aMediaListFactory, aTitle); + + // Create navigational state + iNavigationalState = CGlxNavigationalState::InstanceL(); + iNavigationalState->AddObserverL( *this ); + CAknToolbar* toolbar = Toolbar(); if(toolbar) { @@ -117,9 +128,7 @@ //Register the view to recieve toolbar events. ViewBase handles the events SetToolbarObserver(this); - iBackwardNavigation = EFalse; - iIsRefreshNeeded = EFalse; - isTnGenerationComplete = ETrue; + iMMCNotifier = CGlxMMCNotifier::NewL(*this); } // --------------------------------------------------------------------------- @@ -129,6 +138,15 @@ CGlxListViewImp::~CGlxListViewImp() { TRACER("CGlxListViewImp::~CGlxListViewImp"); + delete iMMCNotifier; + iMMCNotifier = NULL; + + if ( iNavigationalState ) + { + iNavigationalState->RemoveObserver(*this); + iNavigationalState->Close(); + } + delete iTitletext; } @@ -162,6 +180,16 @@ TUid /* aCustomMessageId */, const TDesC8& /* aCustomMessage */) { TRACER("CGlxListViewImp::DoMLViewActivateL"); + + TUint transitionID = (iUiUtility->ViewNavigationDirection()== + EGlxNavigationForwards)?KActivateTransitionId:KDeActivateTransitionId; + + GfxTransEffect::BeginFullScreen( transitionID, TRect(), + AknTransEffect::EParameterType, + AknTransEffect::GfxTransParam( KPhotosUid, + AknTransEffect::TParameter::EEnableEffects) ); + GfxTransEffect::EndFullScreen(); + iNextViewActivationEnabled = ETrue; if(StatusPane()) { @@ -213,16 +241,18 @@ iPreviewTNBinding = CGlxPreviewThumbnailBinding::NewL(*this); CreateListL(); - if (iPreviewTNBinding) + if (iPreviewTNBinding && iBackwardNavigation && iMediaList->FocusIndex() + == 0) { - iPopulateListTNs = ETrue; - CMPXCollectionPath* path = iMediaList->PathLC( - NGlxListDefs::EPathFocusOrSelection ); - iPreviewTNBinding->HandleItemChangedL(*path, - iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation); - CleanupStack::PopAndDestroy( path ); + GLX_LOG_INFO("CGlxListViewImp::DoMLViewActivateL() - HandleItemChangedL()"); + iPopulateListTNs = ETrue; + CMPXCollectionPath* path = iMediaList->PathLC( + NGlxListDefs::EPathFocusOrSelection); + iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs, + iIsRefreshNeeded, iBackwardNavigation); + CleanupStack::PopAndDestroy(path); } - + iProgressIndicator = CGlxProgressIndicator::NewL(*this); } // --------------------------------------------------------------------------- @@ -445,10 +475,17 @@ iProgressIndicator = NULL; } iProgressIndicator = CGlxProgressIndicator::NewL(*this); + if(iSchedulerWait) + { + delete iSchedulerWait; + iSchedulerWait = NULL; + } + iSchedulerWait = new (ELeave) CActiveSchedulerWait(); + iSchedulerWait->Start(); } #endif if( iNextViewActivationEnabled && ( aIndex >= 0 && aIndex < - iMediaList->Count()) && isTnGenerationComplete) + iMediaList->Count()) && isTnGenerationComplete ) { //Delete the PreviewTNMBinding as in forward navigation //we do not get the medialist callback. @@ -469,24 +506,50 @@ } void CGlxListViewImp::PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* - /*aMask*/, TBool aPopulateList) + /*aMask*/) { TRACER("CGlxListViewImp::PreviewTNReadyL"); + if (!iPopulateListTNs) + { + GLX_LOG_INFO("CGlxListViewImp::PreviewTNReadyL()- Ignore!"); + return; + } iPreviewTNBinding->StopTimer(); TInt focusIndex = iMediaList->FocusIndex(); TInt mediaCount = iMediaList->Count(); - iPopulateListTNs = aPopulateList; + GLX_LOG_INFO1("CGlxListViewImp::PreviewTNReadyL() focusIndex(%d)", + focusIndex); + TGlxIdSpaceId id = iMediaList->IdSpaceId(0); if (aBitmap) - { - iList->ItemL(focusIndex).SetIcon(CGulIcon::NewL(aBitmap)); - } + { + iList->ItemL(focusIndex).SetIcon(CGulIcon::NewL(aBitmap)); + if (id == KGlxIdSpaceIdRoot && focusIndex == EGlxListItemAll) + { + CFbsBitmap* bitmap = new (ELeave) CFbsBitmap; + bitmap->Duplicate(aBitmap->Handle()); + iList->ItemL(EGlxListItemMonth).SetIcon(CGulIcon::NewL(bitmap)); + } + else if (iBackwardNavigation && id == KGlxIdSpaceIdRoot && focusIndex + == EGlxListItemMonth) + { + CFbsBitmap* bitmap = new (ELeave) CFbsBitmap; + bitmap->Duplicate(aBitmap->Handle()); + iList->ItemL(EGlxListItemAll).SetIcon(CGulIcon::NewL(bitmap)); + } + } else { + // In main list view, default thumbnails will be set according + // to the list items. //Displays default thumbnail if aBitmap is NULL SetDefaultThumbnailL(focusIndex); + if(id == KGlxIdSpaceIdRoot && focusIndex == EGlxListItemAll) + { + SetDefaultThumbnailL(EGlxListItemMonth); + } } TInt firstIndex = iList->FirstIndexOnScreen(); @@ -497,12 +560,9 @@ lastOnScreen = mediaCount; } - if (!iPopulateListTNs || focusIndex == lastOnScreen) - { - GLX_DEBUG2("CGlxListViewImp::PreviewTNReadyL()" - " RefreshScreen - focusIndex(%d)", focusIndex); - iList->RefreshScreen(focusIndex); - } + GLX_DEBUG2("CGlxListViewImp::PreviewTNReadyL()" + " RefreshScreen - focusIndex(%d)", focusIndex); + iList->RefreshScreen(focusIndex); if (iPopulateListTNs) { @@ -514,10 +574,15 @@ TInt count = iMediaList->Count(); if(count) { - TInt focus = (focusIndex+1)%count; + TInt focus = (focusIndex + 1) % count; + if (!iBackwardNavigation && id == KGlxIdSpaceIdRoot && focus + == EGlxListItemMonth) + { + focus += 1; + } if (focus != iStartIndex) { - iMediaList->SetFocusL(NGlxListDefs::EAbsolute, focus); + iMediaList->SetFocusL(NGlxListDefs::EAbsolute, focus); } else { @@ -547,6 +612,7 @@ { CMPXCollectionPath* path = iMediaList->PathLC( NGlxListDefs::EPathFocusOrSelection ); + GLX_LOG_INFO("CGlxListViewImp::PreviewTNReadyL() - HandleItemChangedL()"); iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation); CleanupStack::PopAndDestroy( path ); @@ -564,7 +630,6 @@ { TRACER("CGlxListViewImp::CreateListL"); - iPopulateListTNs = ETrue; iStartIndex = KErrNotFound; TInt mediaCount = iMediaList->Count(); GLX_DEBUG2("CGlxListViewImp::CreateListL() mediaCount=%d", mediaCount); @@ -629,7 +694,7 @@ { for (TInt i = 0; i < mediaCount; i++) { - SetDefaultThumbnailL(i); + SetDefaultThumbnailL(i); } } // Set the scrollbar type for albums list @@ -723,7 +788,7 @@ // ---------------------------------------------------------------------------- // void CGlxListViewImp::HandleAttributesAvailableL( TInt aItemIndex, - const RArray& aAttributes, MGlxMediaList* /*aList*/ ) + const RArray& aAttributes, MGlxMediaList* aList) { TRACER("CGlxListViewImp::HandleAttributesAvailableL"); @@ -751,17 +816,18 @@ == EGlxNavigationBackwards) { iIsRefreshNeeded = ETrue; - iPopulateListTNs = EFalse; } // Set iPopulateListTNs to ETrue and refresh all the items in // list view if subtitle is updated - if (iPreviewTNBinding && !iPopulateListTNs) - { + if (iPreviewTNBinding && ((!iPopulateListTNs && aItemIndex + == aList->Count() - 1) || (iIsRefreshNeeded))) + { iPopulateListTNs = ETrue; iStartIndex = KErrNotFound; CMPXCollectionPath* path = iMediaList->PathLC( NGlxListDefs::EPathFocusOrSelection); + GLX_LOG_INFO("CGlxListViewImp::HandleAttributesAvailableL() - HandleItemChangedL()"); iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation); CleanupStack::PopAndDestroy(path); @@ -779,14 +845,21 @@ { TRACER( "CGlxListViewImp::HandleFocusChangedL"); - if (iPreviewTNBinding) + if (iPreviewTNBinding && iPopulateListTNs) { - CMPXCollectionPath* path = iMediaList->PathLC( - NGlxListDefs::EPathFocusOrSelection ); - iPreviewTNBinding->HandleItemChangedL(*path, - iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation); - CleanupStack::PopAndDestroy( path ); - } + CMPXCollectionPath* path = iMediaList->PathLC( + NGlxListDefs::EPathFocusOrSelection); + if (!iBackwardNavigation && path->Levels() == KGlxCollectionRootLevel + && path->Id(0) == KGlxCollectionPluginMonthsImplementationUid) + { + CleanupStack::PopAndDestroy(path); + return; + } + GLX_LOG_INFO("CGlxListViewImp::HandleFocusChangedL() - HandleItemChangedL()"); + iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs, + iIsRefreshNeeded, iBackwardNavigation); + CleanupStack::PopAndDestroy(path); + } } // ---------------------------------------------------------------------------- @@ -961,5 +1034,64 @@ { TRACER("CGlxListViewImp::HandleDialogDismissedL()"); isTnGenerationComplete = ETrue; + if(iSchedulerWait) + { + iSchedulerWait->AsyncStop(); + delete iSchedulerWait; + iSchedulerWait = NULL; + } + } + +// --------------------------------------------------------------------------- +// HandleMMCInsertionL +// +// --------------------------------------------------------------------------- +void CGlxListViewImp::HandleMMCInsertionL() + { + TRACER("CGlxListViewImp::HandleMMCInsertionL()"); + iMMCState = ETrue; + NavigateToMainListL(); + + } + +// --------------------------------------------------------------------------- +// HandleMMCRemovalL +// +// --------------------------------------------------------------------------- +void CGlxListViewImp::HandleMMCRemovalL() + { + TRACER("CGlxListViewImp::HandleMMCRemovalL()"); + ProcessCommandL(EAknSoftkeyExit); + } + +// --------------------------------------------------------------------------- +// HandleForegroundEventL +// +// --------------------------------------------------------------------------- +void CGlxListViewImp::HandleForegroundEventL(TBool aForeground) + { + TRACER("CGlxListViewImp::HandleForegroundEventL()"); + CAknView::HandleForegroundEventL(aForeground); + if(iMMCState) + { + iMMCState = EFalse; + NavigateToMainListL(); + } + } + +// --------------------------------------------------------------------------- +// NavigateToMainListL +// +// --------------------------------------------------------------------------- +void CGlxListViewImp::NavigateToMainListL() + { + TRACER("CGlxListViewImp::NavigateToMainListL()"); + CMPXCollectionPath* naviState = iNavigationalState->StateLC(); + GLX_LOG_INFO1("From listview level = %d",naviState->Levels()); +// if ( naviState->Levels() >= 1) + { + ProcessCommandL(EAknSoftkeyClose); + } + CleanupStack::PopAndDestroy(naviState); } // End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp --- a/photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -20,25 +20,23 @@ #include #include // For TGlxFilterFactory #include -#include "glxpreviewthumbnailbinding.h" -#include "glxgeneraluiutilities.h" #include // For UiUtility instance - +#include #include #include - +#include // For CGlxErrormanager #include // Fetch context priority def'ns #include #include +#include "glxpreviewthumbnailbinding.h" +#include "glxgeneraluiutilities.h" -const TInt KInitialThumbnailsTimeDelay(100000); -const TInt KWaitCount(10); -const TInt KThumbnailStartTimeDelay(250000); +const TInt KThumbnailsTimeTimeDelay(50000); +const TInt KWaitCount(30); const TInt KPreviewThumbnailFetchCount(1); - // ---------------------------------------------------------------------------- // NewL // ---------------------------------------------------------------------------- @@ -85,11 +83,12 @@ TRACER("CGlxPreviewThumbnailBinding::ConstructL"); iTimer = CPeriodic::NewL( CActive::EPriorityStandard ); CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); + CleanupClosePushL(*uiUtility); iGridIconSize = uiUtility->GetGridIconSize(); - uiUtility->Close() ; + CleanupStack::PopAndDestroy(uiUtility); // Filter that filters out any GIF, corrupted images - iPreviewFilter = TGlxFilterFactory::CreatePreviewFilterL(); + iPreviewFilter = TGlxFilterFactory::CreatePreviewTNFilterL(); iThumbnailIterator.SetRange(KPreviewThumbnailFetchCount); iThumbnailContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); TMPXAttribute tnAttr( KGlxMediaIdThumbnail, @@ -123,8 +122,7 @@ iTimer->Cancel(); } delete iTimer; - iTimer = NULL; - iPreviewItemCount.Close(); + iTimer = NULL; } // ---------------------------------------------------------------------------- @@ -135,70 +133,55 @@ void CGlxPreviewThumbnailBinding::TimerTickedL() { TRACER("CGlxPreviewThumbnailBinding::TimerTickedL"); - - if(iMediaList && iMediaList->Count() && iPreviewItemCount.Count() ) - { - TInt thumbnailIndex = iPreviewItemCount[iProgressIndex]; - if(thumbnailIndex < iMediaList->Count()) - { - const TGlxMedia& item = iMediaList->Item(thumbnailIndex); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, iGridIconSize.iWidth, - iGridIconSize.iHeight ) ); - + + if (!iMediaList) + { + GLX_LOG_INFO("TimerTickedL() iMediaList == NULL!"); + return; + } + + if (iMediaList->IsPopulated()) + { + if (iMediaList->Count()) + { + const TGlxMedia& item = iMediaList->Item(0); + TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, + GlxFullThumbnailAttributeId(ETrue, iGridIconSize.iWidth, + iGridIconSize.iHeight)); + const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( - thumbnailAttribute ); + thumbnailAttribute); if (value) { CFbsBitmap* bitmap = new (ELeave) CFbsBitmap; ScaleBitmapToListSizeL(value->iBitmap, bitmap); - GLX_LOG_INFO1("iObserver.PreviewTNReadyL() iTrial=%d", iTrial); - iObserver.PreviewTNReadyL(bitmap, NULL,iPopulateListTNs); + GLX_LOG_INFO1("iObserver.PreviewTNReadyL() iTrialCount=%d", iTrialCount); + iObserver.PreviewTNReadyL(bitmap, NULL); } - } - } - else if (iPopulateListTNs && iMediaList && iMediaList->Count() == 0) - { - if (iTrial == KWaitCount) - { - iObserver.PreviewTNReadyL(NULL, NULL, iPopulateListTNs); - iTrial=0; - return; - } - iTrial++; - } - else if(iMediaList && iMediaList->Count() ) - { - if(iProgressIndex > iMediaList->Count()-1 ) - { - iProgressIndex = 0; - } - const TGlxMedia& item = iMediaList->Item(iProgressIndex); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue, iGridIconSize.iWidth, - iGridIconSize.iHeight ) ); - - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( - thumbnailAttribute ); - if (value) - { - CFbsBitmap* bitmap = new (ELeave) CFbsBitmap; - 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, iPopulateListTNs); - iTrialCount=0; - return; - } - iTrialCount++; - } - } + else + { + TInt tnError = GlxErrorManager::HasAttributeErrorL( + item.Properties(), KGlxMediaIdThumbnail); + if (tnError != KErrNone || iTrialCount == KWaitCount) + { + GLX_LOG_INFO1("TimerTickedL() tnError(%d) / Max Trialcount reached", tnError); + iObserver.PreviewTNReadyL(NULL, NULL); + iTrialCount = 0; + return; + } + iTrialCount++; + } + } + else + { + // Media count is zero, + // Notify immedialtely to jump to the next item in the list + GLX_LOG_INFO("TimerTickedL() iMediaList->Count() = 0"); + iObserver.PreviewTNReadyL(NULL, NULL); + } + } } + // ---------------------------------------------------------------------------- // IsTimeL callback function invoked when timer expires // ---------------------------------------------------------------------------- @@ -229,16 +212,16 @@ TBool aPopulateListTNs, TBool aIsRefreshNeeded, TBool aBackwardNavigation) { TRACER("CGlxPreviewThumbnailBinding::HandleItemChangedL"); + GLX_LOG_INFO("CGlxPreviewThumbnailBinding::HandleItemChangedL()"); + iTimerTicked = EFalse; iPopulateListTNs = aPopulateListTNs; - iProgressIndex = KErrNone; iIsRefreshNeeded = aIsRefreshNeeded; // remove and close old medialist if( iMediaList ) { - // Reset the trial and the trialCount to 0 while deleting the medialist - iTrial = 0; + // Reset the trialCount to 0 while deleting the medialist iTrialCount = 0; iMediaList->RemoveMediaListObserver( this ); iMediaList->RemoveContext(iThumbnailContext); @@ -255,7 +238,7 @@ { //On backward navigation start the timer manually, since we do not //get the attribute callback. - StartTimer(iPopulateListTNs); + StartTimer(); } } @@ -265,12 +248,10 @@ // are populated. // ---------------------------------------------------------------------------- // -void CGlxPreviewThumbnailBinding::StartTimer(TBool aPopulateListTNs) +void CGlxPreviewThumbnailBinding::StartTimer() { TRACER("CGlxPreviewThumbnailBinding::StartTimer"); - iPopulateListTNs = aPopulateListTNs; - if (iTimer) { iTimer->Cancel(); @@ -278,8 +259,8 @@ if (iPopulateListTNs) { - iTimer->Start(KThumbnailStartTimeDelay, - KInitialThumbnailsTimeDelay, TCallBack(IsTimeL,this)); + iTimer->Start(KThumbnailsTimeTimeDelay, KThumbnailsTimeTimeDelay, + TCallBack(IsTimeL, this)); } } @@ -342,13 +323,13 @@ thumbnailAttribute ); if (value) { - iPreviewItemCount.AppendL( aItemIndex ); + GLX_LOG_INFO("CGlxPreviewThumbnailBinding::HandleAttributesAvailableL()"); // sometimes we get HandleAttributesAvailableL callback after some delay // when we do cache cleanup. if(!iPopulateListTNs) { iPopulateListTNs = ETrue; - StartTimer(iPopulateListTNs); + StartTimer(); } } } @@ -433,6 +414,7 @@ void CGlxPreviewThumbnailBinding::HandlePopulatedL( MGlxMediaList* /*aList*/ ) { TRACER("CGlxPreviewThumbnailBinding::HandlePopulatedL()"); + GLX_LOG_INFO("CGlxPreviewThumbnailBinding::HandlePopulatedL()"); // Do cache cleanup. If iIsRefreshNeeded is set, // then clean up the item at 0th index @@ -448,7 +430,7 @@ } } //Start the timer - StartTimer(iPopulateListTNs); + StartTimer(); } // ---------------------------------------------------------------------------- diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadatadialog/data/glxmetadatadialog.rss --- a/photosgallery/viewframework/views/metadatadialog/data/glxmetadatadialog.rss Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/metadatadialog/data/glxmetadatadialog.rss Wed Mar 31 21:31:03 2010 +0300 @@ -218,7 +218,6 @@ { items= { - //MENU_ITEM { command = KGlxEditBoundMenuCommandId; txt = qtn_lgal_options_edit; }, MENU_ITEM { command = KGlxViewBoundMenuCommandId; txt = qtn_lgal_options_view; }, MENU_ITEM { command = EGlxCmdAiwShowMap; txt = qtn_lgal_option_show_on_map;}, MENU_ITEM { command = KGlxDeleteBoundMenuCommandId; txt = qtn_lgal_options_delete;flags = EEikMenuItemSpecific; }, @@ -411,46 +410,12 @@ buf = qtn_lgal_note_no_location; } -//==============================================================================// -//===========================start of Imageviewer details Dialog================// -//==============================================================================// - -RESOURCE EIK_APP_INFO - { - menubar = r_imgvwr_metadata_menubar; - cba = R_AVKON_SOFTKEYS_OPTIONS_BACK; - } - // ----------------------------------------------------------------------------- -// reource for menubar -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_BAR r_imgvwr_metadata_menubar - { - titles= - { - MENU_TITLE { menu_pane = r_imgvwr_metadata_menu; txt = qtn_lgal_title_details; } - }; - } - - -// ----------------------------------------------------------------------------- -// reource for menupane -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_imgvwr_metadata_menu - { - items= - { - MENU_ITEM { command = EAknCmdHelp; txt = qtn_options_help; } - }; - } - // ----------------------------------------------------------------------------- // Metadata Dialog // ----------------------------------------------------------------------------- RESOURCE DIALOG r_img_viewer_metadata_dialog { - buttons = R_AVKON_SOFTKEYS_OPTIONS_BACK; + buttons = R_AVKON_SOFTKEYS_BACK; flags = EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect | EEikDialogFlagCbaButtons | EEikDialogFlagWait;// |EEikDialogFlagNoBackgroundFade |EEikDialogFlagNoBorder; items = diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatacontainer.cpp --- a/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatacontainer.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatacontainer.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -63,7 +63,6 @@ const TInt KMarqueeScrollAmount = 20; const TInt KMarqueeScrollDelay = 1000000; const TInt KMarqueeScrollInterval = 200000; -_LIT( KGlxTextSetter, ""); // ============================ MEMBER FUNCTIONS =============================== @@ -158,7 +157,7 @@ { TRACER("CGlxImgVwrMetadataContainer::CreateSettingItemL"); CAknSettingItem* settingItem = NULL; // No need to push onto cleanup stack - iTextSetter.Copy(KGlxTextSetter); + iTextSetter.Zero(); //Creating a empty Settings list box which will be populated with metadata in handleattributeavailable switch(aResourceId) @@ -305,6 +304,7 @@ for(TInt index = 0; index <= EImgVwrlicenseItem; index++) { HBufC* string = NULL; + iTextSetter.Zero(); if(index == EImgVwrSizeItem) { @@ -344,7 +344,7 @@ } if(string) { - iTextSetter.Copy(KGlxTextSetter); + iTextSetter.Zero(); iTextSetter.Append(*string); } CleanupStack::PushL( string ); @@ -374,8 +374,8 @@ // HandleCommandCompleteL // ---------------------------------------------------------------------------- // -void CGlxImgVwrMetadataContainer::HandleCommandCompleteL(TAny* aSessionId, - CMPXCommand* /*aCommandResult*/, TInt aError, MGlxMediaList* aList) +void CGlxImgVwrMetadataContainer::HandleCommandCompleteL(TAny* /*aSessionId*/, + CMPXCommand* /*aCommandResult*/, TInt /*aError*/, MGlxMediaList* /*aList*/) { TRACER("CGlxImgVwrMetadataContainer::HandleCommandCompleteL()"); } @@ -574,7 +574,7 @@ //get the settings item based on the attribute and set the text. if ( string ) { - iTextSetter.Copy(KGlxTextSetter); + iTextSetter.Zero(); iTextSetter.Append(*string); if(attribute == KMPXMediaGeneralSize) { @@ -665,6 +665,7 @@ if(0 != (titleText.Compare(*textBuf))) { //Modify the MDS and setting list only if the entry is different from previous Item value + iTextSetter.Zero(); iTextSetter.Copy(*textBuf); EditItemL(aItem,EFalse); if( iItemMediaList->Count() > 0 ) diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatadialog.cpp --- a/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatadialog.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatadialog.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -112,9 +112,6 @@ iUiUtility = CGlxUiUtility::UtilityL(); - // Call the base class' two-phased constructor - CAknDialog::ConstructL( R_IMGVWR_METADATA_MENUBAR ); - } // ----------------------------------------------------------------------------- @@ -188,34 +185,9 @@ // void CGlxImgVwrMetadataDialog::ProcessCommandL( TInt aCommandId ) { - TRACER("CGlxImgVwrMetadataDialog::ProcessCommandL"); // hide menu bar iMenuBar->StopDisplayingMenuBar(); - switch( aCommandId ) - { - /// @todo need to put the proper help file.for the time being it will not do any thing. - /* - case EAknCmdHelp: - { - TCoeHelpContext helpContext; - helpContext.iMajor = TUid::Uid( KGlxGalleryApplicationUid ); - helpContext.iContext.Copy( LGAL_HLP_DETAILS_VIEW ); - const TInt KListSz = 1; - CArrayFix* contextList = - new (ELeave) CArrayFixFlat( KListSz ); - CleanupStack::PushL(contextList); - contextList->AppendL(helpContext); - HlpLauncher::LaunchHelpApplicationL( - iEikonEnv->WsSession(), contextList ); - CleanupStack::Pop( contextList ); - break; - }*/ - - default: - break; - } - } //----------------------------------------------------------------------------- // CGlxImgVwrMetadataDialog::CreateCustomControlL diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp --- a/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -217,7 +217,7 @@ { TRACER("CGlxMetadataContainer::CreateSettingItemL"); CAknSettingItem* settingItem = NULL; // No need to push onto cleanup stack - iTextSetter.Copy(KGlxTextSetter); + iTextSetter.Zero(); //Creating a empty Settings list box which will be populated with metadata in handleattributeavailable @@ -733,7 +733,7 @@ //get the settings item based on the attribute and set the text. if ( string ) { - iTextSetter.Copy(KGlxTextSetter); + iTextSetter.Zero(); iTextSetter.Append(*string); if(attribute == KMPXMediaGeneralSize) { @@ -821,6 +821,7 @@ else { //Modify the MDS and setting list only if the entry is different from previous Item value + iTextSetter.Zero(); iTextSetter.Copy(*textBuf); EditItemL(aItem,EFalse); iItemMediaList->SetFocusL(NGlxListDefs::EAbsolute,0);//set focus to first item @@ -1017,6 +1018,7 @@ for(TInt index = 0; index <= ElicenseItem ; index++) { HBufC* string = NULL; + iTextSetter.Zero(); if(index == ESizeItem) { @@ -1127,7 +1129,7 @@ iModifiedUri = NULL; } iModifiedUri = fileName.AllocL(); - iTextSetter.Copy(KGlxTextSetter); + iTextSetter.Zero(); TInt error = manager->RenameFile(media.Uri(), iModifiedUri->Des()); if(error == KErrNone) { @@ -1149,7 +1151,7 @@ iLocationinfo = EFalse; if ( aError == KErrNone ) { - iTextSetter.Copy(KGlxTextSetter); + iTextSetter.Zero(); EditItemL(ELocationItem,EFalse); } } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/bwins/glxunifiedmetadataviewu.def --- a/photosgallery/viewframework/views/metadataview/bwins/glxunifiedmetadataviewu.def Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -EXPORTS - ??0TGlxMulAlbumsDetailsBindingSetFactory@@QAE@XZ @ 1 NONAME ; TGlxMulAlbumsDetailsBindingSetFactory::TGlxMulAlbumsDetailsBindingSetFactory(void) - ??0TGlxMulDateAndTimeDetailsBindingSetFactory@@QAE@XZ @ 2 NONAME ; TGlxMulDateAndTimeDetailsBindingSetFactory::TGlxMulDateAndTimeDetailsBindingSetFactory(void) - ??0TGlxMulDescriptionDetailsBindingSetFactory@@QAE@XZ @ 3 NONAME ; TGlxMulDescriptionDetailsBindingSetFactory::TGlxMulDescriptionDetailsBindingSetFactory(void) - ??0TGlxMulDurationDetailsBindingSetFactory@@QAE@XZ @ 4 NONAME ; TGlxMulDurationDetailsBindingSetFactory::TGlxMulDurationDetailsBindingSetFactory(void) - ??0TGlxMulFileSizeDetailsBindingSetFactory@@QAE@XZ @ 5 NONAME ; TGlxMulFileSizeDetailsBindingSetFactory::TGlxMulFileSizeDetailsBindingSetFactory(void) - ??0TGlxMulLocationDetailsBindingSetFactory@@QAE@XZ @ 6 NONAME ; TGlxMulLocationDetailsBindingSetFactory::TGlxMulLocationDetailsBindingSetFactory(void) - ??0TGlxMulResolutionDetailsBindingSetFactory@@QAE@XZ @ 7 NONAME ; TGlxMulResolutionDetailsBindingSetFactory::TGlxMulResolutionDetailsBindingSetFactory(void) - ??0TGlxMulTagsDetailsBindingSetFactory@@QAE@XZ @ 8 NONAME ; TGlxMulTagsDetailsBindingSetFactory::TGlxMulTagsDetailsBindingSetFactory(void) - ??0TGlxMulTitleDetailsBindingSetFactory@@QAE@XZ @ 9 NONAME ; TGlxMulTitleDetailsBindingSetFactory::TGlxMulTitleDetailsBindingSetFactory(void) - ??0TGlxMulUsageRightsDetailsBindingSetFactory@@QAE@XZ @ 10 NONAME ; TGlxMulUsageRightsDetailsBindingSetFactory::TGlxMulUsageRightsDetailsBindingSetFactory(void) - ??1TGlxMulAlbumsDetailsBindingSetFactory@@UAE@XZ @ 11 NONAME ; TGlxMulAlbumsDetailsBindingSetFactory::~TGlxMulAlbumsDetailsBindingSetFactory(void) - ??1TGlxMulDateAndTimeDetailsBindingSetFactory@@UAE@XZ @ 12 NONAME ; TGlxMulDateAndTimeDetailsBindingSetFactory::~TGlxMulDateAndTimeDetailsBindingSetFactory(void) - ??1TGlxMulDescriptionDetailsBindingSetFactory@@UAE@XZ @ 13 NONAME ; TGlxMulDescriptionDetailsBindingSetFactory::~TGlxMulDescriptionDetailsBindingSetFactory(void) - ??1TGlxMulDurationDetailsBindingSetFactory@@UAE@XZ @ 14 NONAME ; TGlxMulDurationDetailsBindingSetFactory::~TGlxMulDurationDetailsBindingSetFactory(void) - ??1TGlxMulFileSizeDetailsBindingSetFactory@@UAE@XZ @ 15 NONAME ; TGlxMulFileSizeDetailsBindingSetFactory::~TGlxMulFileSizeDetailsBindingSetFactory(void) - ??1TGlxMulLocationDetailsBindingSetFactory@@UAE@XZ @ 16 NONAME ; TGlxMulLocationDetailsBindingSetFactory::~TGlxMulLocationDetailsBindingSetFactory(void) - ??1TGlxMulResolutionDetailsBindingSetFactory@@UAE@XZ @ 17 NONAME ; TGlxMulResolutionDetailsBindingSetFactory::~TGlxMulResolutionDetailsBindingSetFactory(void) - ??1TGlxMulTagsDetailsBindingSetFactory@@UAE@XZ @ 18 NONAME ; TGlxMulTagsDetailsBindingSetFactory::~TGlxMulTagsDetailsBindingSetFactory(void) - ??1TGlxMulTitleDetailsBindingSetFactory@@UAE@XZ @ 19 NONAME ; TGlxMulTitleDetailsBindingSetFactory::~TGlxMulTitleDetailsBindingSetFactory(void) - ??1TGlxMulUsageRightsDetailsBindingSetFactory@@UAE@XZ @ 20 NONAME ; TGlxMulUsageRightsDetailsBindingSetFactory::~TGlxMulUsageRightsDetailsBindingSetFactory(void) - ?NewL@CGlxMetadataView@@SAPAV1@PAVMGlxMediaListFactory@@@Z @ 21 NONAME ; class CGlxMetadataView * CGlxMetadataView::NewL(class MGlxMediaListFactory *) - ?NewLC@CGlxMetadataView@@SAPAV1@PAVMGlxMediaListFactory@@@Z @ 22 NONAME ; class CGlxMetadataView * CGlxMetadataView::NewLC(class MGlxMediaListFactory *) - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/data/glxmetadataview.rss --- a/photosgallery/viewframework/views/metadataview/data/glxmetadataview.rss Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,298 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Resource definitions for Metadata View -* -*/ - - -//RESOURCE IDENTIFIER - -NAME MGMV - -//INCLUDES - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -//RESOURCE DEFINITIONS - -RESOURCE RSS_SIGNATURE { } - -RESOURCE TBUF { buf="MGMV"; } - -// ----------------------------------------------------------------------------- -// reource for view -// ----------------------------------------------------------------------------- -// -RESOURCE AVKON_VIEW r_glx_metadata_view - { - menubar = r_metadata_menubar; - cba = R_AVKON_SOFTKEYS_OPTIONS_BACK; - } - -// ----------------------------------------------------------------------------- -// reource for menubar -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_BAR r_metadata_menubar - { - titles= - { - MENU_TITLE { menu_pane=r_metadata_menu; txt = qtn_lgal_title_details; } - }; - } - -// ----------------------------------------------------------------------------- -// reource for menupane -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_metadata_menu - { - items= - { - MENU_ITEM { command = KGlxEditBoundMenuCommandId; txt = qtn_lgal_options_edit; }, - MENU_ITEM { command = KGlxViewBoundMenuCommandId; txt = qtn_lgal_options_view; }, - MENU_ITEM { command = EGlxCmdAiwShowMap; txt = qtn_lgal_option_show_on_map;}, - MENU_ITEM { command = KGlxDeleteBoundMenuCommandId; txt = qtn_lgal_options_delete;flags = EEikMenuItemSpecific; }, - MENU_ITEM { command = EAknCmdHelp; txt = qtn_options_help; } - }; - } - - -// ----------------------------------------------------------------------------- -// -// metadata view custom resource -// -// ----------------------------------------------------------------------------- -// - -// ----------------------------------------------------------------------------- -// reource for CEikEdwin control -// ----------------------------------------------------------------------------- -// -RESOURCE EDWIN r_glx_edwin - { - flags = EAknEditorFlagDefault - | EEikEdwinNoAutoSelection - | EEikEdwinAvkonDisableCursor ; - width = 10; - lines= 1; - maxlength = 512; // Max number of characters - allowed_input_modes = EAknEditorTextInputMode; - default_input_mode = EAknEditorTextInputMode; - } - -// ----------------------------------------------------------------------------- -// reource for CAknQueryControl control -// ----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_glx_data_query - { - flags = EGeneralQueryFlags; - buttons = R_AVKON_SOFTKEYS_OK_CANCEL; - items = - { - DLG_LINE - { - type = EAknCtQuery; - id = EGeneralQuery; - control = AVKON_DATA_QUERY - { - layout = EDataLayout; - label = " "; // prompt text - control = EDWIN - { - width = 5; - lines = 1; - maxlength = 50; - }; - }; - } - }; - } - -// ----------------------------------------------------------------------------- -// reource for view title -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_title - { - buf = qtn_lgal_title_details; // CHANGED FROM qtn_lgal_view_title_properties; - } - -// ----------------------------------------------------------------------------- -// reource for options edit -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_options_edit - { - buf = qtn_lgal_options_edit; - } - -// ----------------------------------------------------------------------------- -// reource for options delete -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_options_delete - { - buf = qtn_lgal_options_delete; - } - -// ----------------------------------------------------------------------------- -// reource for options view -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_options_view - { - buf = qtn_lgal_options_view; - } - -// ----------------------------------------------------------------------------- -// reource for options show on map -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_show_on_map_options_view - { - buf = qtn_lgal_option_show_on_map; - } - -// ----------------------------------------------------------------------------- -// reource for view title -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_title_details - { - buf = qtn_lgal_title_details; - } - -// ----------------------------------------------------------------------------- -// reource for metadata view title pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_title_nseries - { - buf = qtn_lgal_details_title; - } - -// ----------------------------------------------------------------------------- -// reource for metadata view description pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_description_nseries - { - buf = qtn_lgal_details_description; - } - -// ----------------------------------------------------------------------------- -// reource for metadata view tags pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_tags_nseries - { - buf = qtn_lgal_details_tags; - } -// ----------------------------------------------------------------------------- -// reource for metadata view albums pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_albums_nseries - { - buf = qtn_lgal_details_albums; - } -// ----------------------------------------------------------------------------- -// reource for metadata view location pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_location_nseries - { - buf = qtn_lgal_details_location; - } -// ----------------------------------------------------------------------------- -// reource for metadata view resolution pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_resolution_nseries - { - buf = qtn_lgal_details_resolution_title; - } -// ----------------------------------------------------------------------------- -// reource for metadata view duration pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_duration_nseries - { - buf = qtn_lgal_details_duration; - } -// ----------------------------------------------------------------------------- -// reource for metadata view drm pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_drm_nseries - { - buf = qtn_lgal_detail_drm; - } -// ----------------------------------------------------------------------------- -// reource for metadata view date and time pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_date_time_nseries - { - buf = qtn_lgal_details_date_time; - } -// ----------------------------------------------------------------------------- -// reource for metadata view file size pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_file_size_nseries - { - buf = qtn_lgal_details_file_size; - } -// ----------------------------------------------------------------------------- -// reource for metadata view file size pane -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_view_resolution_detail_nseries - { - buf = qtn_lgal_details_resolution_detail; - } - -// ----------------------------------------------------------------------------- -// reource for delete location confirmation note -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_note_delete_location - { - buf = qtn_lgal_note_delete_location; - } - -// ----------------------------------------------------------------------------- -// reource for no location info note -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_glx_metadata_note_info_no_location - { - buf = qtn_lgal_note_no_location; - } - -//End of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/eabi/glxunifiedmetadataviewu.def --- a/photosgallery/viewframework/views/metadataview/eabi/glxunifiedmetadataviewu.def Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -EXPORTS - _ZN16CGlxMetadataView4NewLEP20MGlxMediaListFactory @ 1 NONAME - _ZN16CGlxMetadataView5NewLCEP20MGlxMediaListFactory @ 2 NONAME - _ZN35TGlxMulTagsDetailsBindingSetFactoryC1Ev @ 3 NONAME - _ZN35TGlxMulTagsDetailsBindingSetFactoryC2Ev @ 4 NONAME - _ZN35TGlxMulTagsDetailsBindingSetFactoryD0Ev @ 5 NONAME - _ZN35TGlxMulTagsDetailsBindingSetFactoryD1Ev @ 6 NONAME - _ZN35TGlxMulTagsDetailsBindingSetFactoryD2Ev @ 7 NONAME - _ZN36TGlxMulTitleDetailsBindingSetFactoryC1Ev @ 8 NONAME - _ZN36TGlxMulTitleDetailsBindingSetFactoryC2Ev @ 9 NONAME - _ZN36TGlxMulTitleDetailsBindingSetFactoryD0Ev @ 10 NONAME - _ZN36TGlxMulTitleDetailsBindingSetFactoryD1Ev @ 11 NONAME - _ZN36TGlxMulTitleDetailsBindingSetFactoryD2Ev @ 12 NONAME - _ZN37TGlxMulAlbumsDetailsBindingSetFactoryC1Ev @ 13 NONAME - _ZN37TGlxMulAlbumsDetailsBindingSetFactoryC2Ev @ 14 NONAME - _ZN37TGlxMulAlbumsDetailsBindingSetFactoryD0Ev @ 15 NONAME - _ZN37TGlxMulAlbumsDetailsBindingSetFactoryD1Ev @ 16 NONAME - _ZN37TGlxMulAlbumsDetailsBindingSetFactoryD2Ev @ 17 NONAME - _ZN39TGlxMulDurationDetailsBindingSetFactoryC1Ev @ 18 NONAME - _ZN39TGlxMulDurationDetailsBindingSetFactoryC2Ev @ 19 NONAME - _ZN39TGlxMulDurationDetailsBindingSetFactoryD0Ev @ 20 NONAME - _ZN39TGlxMulDurationDetailsBindingSetFactoryD1Ev @ 21 NONAME - _ZN39TGlxMulDurationDetailsBindingSetFactoryD2Ev @ 22 NONAME - _ZN39TGlxMulFileSizeDetailsBindingSetFactoryC1Ev @ 23 NONAME - _ZN39TGlxMulFileSizeDetailsBindingSetFactoryC2Ev @ 24 NONAME - _ZN39TGlxMulFileSizeDetailsBindingSetFactoryD0Ev @ 25 NONAME - _ZN39TGlxMulFileSizeDetailsBindingSetFactoryD1Ev @ 26 NONAME - _ZN39TGlxMulFileSizeDetailsBindingSetFactoryD2Ev @ 27 NONAME - _ZN39TGlxMulLocationDetailsBindingSetFactoryC1Ev @ 28 NONAME - _ZN39TGlxMulLocationDetailsBindingSetFactoryC2Ev @ 29 NONAME - _ZN39TGlxMulLocationDetailsBindingSetFactoryD0Ev @ 30 NONAME - _ZN39TGlxMulLocationDetailsBindingSetFactoryD1Ev @ 31 NONAME - _ZN39TGlxMulLocationDetailsBindingSetFactoryD2Ev @ 32 NONAME - _ZN41TGlxMulResolutionDetailsBindingSetFactoryC1Ev @ 33 NONAME - _ZN41TGlxMulResolutionDetailsBindingSetFactoryC2Ev @ 34 NONAME - _ZN41TGlxMulResolutionDetailsBindingSetFactoryD0Ev @ 35 NONAME - _ZN41TGlxMulResolutionDetailsBindingSetFactoryD1Ev @ 36 NONAME - _ZN41TGlxMulResolutionDetailsBindingSetFactoryD2Ev @ 37 NONAME - _ZN42TGlxMulDateAndTimeDetailsBindingSetFactoryC1Ev @ 38 NONAME - _ZN42TGlxMulDateAndTimeDetailsBindingSetFactoryC2Ev @ 39 NONAME - _ZN42TGlxMulDateAndTimeDetailsBindingSetFactoryD0Ev @ 40 NONAME - _ZN42TGlxMulDateAndTimeDetailsBindingSetFactoryD1Ev @ 41 NONAME - _ZN42TGlxMulDateAndTimeDetailsBindingSetFactoryD2Ev @ 42 NONAME - _ZN42TGlxMulDescriptionDetailsBindingSetFactoryC1Ev @ 43 NONAME - _ZN42TGlxMulDescriptionDetailsBindingSetFactoryC2Ev @ 44 NONAME - _ZN42TGlxMulDescriptionDetailsBindingSetFactoryD0Ev @ 45 NONAME - _ZN42TGlxMulDescriptionDetailsBindingSetFactoryD1Ev @ 46 NONAME - _ZN42TGlxMulDescriptionDetailsBindingSetFactoryD2Ev @ 47 NONAME - _ZN42TGlxMulUsageRightsDetailsBindingSetFactoryC1Ev @ 48 NONAME - _ZN42TGlxMulUsageRightsDetailsBindingSetFactoryC2Ev @ 49 NONAME - _ZN42TGlxMulUsageRightsDetailsBindingSetFactoryD0Ev @ 50 NONAME - _ZN42TGlxMulUsageRightsDetailsBindingSetFactoryD1Ev @ 51 NONAME - _ZN42TGlxMulUsageRightsDetailsBindingSetFactoryD2Ev @ 52 NONAME - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/group/bld.inf --- a/photosgallery/viewframework/views/metadataview/group/bld.inf Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Project build file -* -*/ - - - -PRJ_EXPORTS - -//../rom/glxmetadataview.iby CORE_APP_LAYER_IBY_EXPORT_PATH(glxmetadataview.iby) - -PRJ_MMPFILES - -//glxmetadataview.mmp - -//End of files - - - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/group/glxmetadataview.mmp --- a/photosgallery/viewframework/views/metadataview/group/glxmetadataview.mmp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Project definition file -* -*/ - - - -#include - -#include "../../../../group/glxbuildcommon.mmh" -#include "../../../../inc/glxalfhelper.mmh" - -TARGET glxunifiedmetadataview.dll -TARGETTYPE dll -UID 0x1000008D 0x200104E2 - -#ifndef WINSCW -EPOCALLOWDLLDATA -#endif -CAPABILITY CAP_GENERAL_DLL - -SOURCEPATH ../src -SOURCE glxmetadataviewimp.cpp -SOURCE glxmetadataview.cpp -SOURCE glxmetadatabindingsetfactory.cpp - -START RESOURCE ../data/glxmetadataview.rss -HEADER -TARGETPATH resource/apps -LANGUAGE_IDS -END - -SYSTEMINCLUDE ../inc -SYSTEMINCLUDE ../../viewbase/inc -SYSTEMINCLUDE ../../../inc -SYSTEMINCLUDE ../../../dataprovider/inc -SYSTEMINCLUDE ../../../medialists/inc -SYSTEMINCLUDE ../../../uiutilities/inc //for attribute retrival -SYSTEMINCLUDE ../../../drmutility/inc //for drm utility -SYSTEMINCLUDE ../../../commandhandlers/inc -SYSTEMINCLUDE ../../../../inc -SYSTEMINCLUDE ../../../../common/inc // for CGlxResourceUtilities -SYSTEMINCLUDE ../../../commandhandlers/commandhandlerbase/inc -SYSTEMINCLUDE ../../../commandhandlers/commoncommandhandlers/inc - -// System includes from epoc32/include -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY avkon.lib //for Avkon conrols -LIBRARY eikcoctl.lib //for eik controls -LIBRARY eikcore.lib //for eik controls -LIBRARY cone.lib //for CCoeEnv -LIBRARY efsrv.lib //for TParse -LIBRARY glxmedialists.lib //for CGlxMedia -LIBRARY glxviewbase.lib //for CGlxViewBase -LIBRARY mpxcommon.lib //for TMPXAttribute -LIBRARY glxcommon.lib //for filter factory, CResourceUtilities -LIBRARY glxuiutilities.lib //for ui utility -LIBRARY glxcommoncommandhandlers.lib //for show on map -LIBRARY flogger.lib - -// Uiaccelerator related libraries -LIBRARY osncore.lib // CAlfString -LIBRARY alfclient.lib // MAlfWidgetFactory -LIBRARY alfwidgetmodel.lib - -// MUL related libraries -LIBRARY libstdcpp.lib //for STL code -LIBRARY glxdataprovider.lib //data provider - - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/inc/glxmetadatabindingsetfactory.h --- a/photosgallery/viewframework/views/metadataview/inc/glxmetadatabindingsetfactory.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Implementation of Metadata view -* -*/ - - - -#ifndef _GLXMETADATABINDINGSETFACTORY_H_ -#define _GLXMETADATABINDINGSETFACTORY_H_ - - -#include -#include -#include "glxmulbindingsetfactory.h" - -NONSHARABLE_CLASS( TGlxMulTitleDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory - { -public: - IMPORT_C TGlxMulTitleDetailsBindingSetFactory(); - IMPORT_C ~TGlxMulTitleDetailsBindingSetFactory(); -private: - /** - * Add different types of binding to the Binding set - * @param aCommand command associated with option menu item/items - */ - void AddBindingsL() const; - }; - -NONSHARABLE_CLASS( TGlxMulDateAndTimeDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory - { -public: - IMPORT_C TGlxMulDateAndTimeDetailsBindingSetFactory(); - IMPORT_C ~TGlxMulDateAndTimeDetailsBindingSetFactory(); -private: - /** - * Add different types of binding to the Binding set - * @param aCommand command associated with option menu item/items - */ - void AddBindingsL() const; - }; - -NONSHARABLE_CLASS( TGlxMulDescriptionDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory - { -public: - IMPORT_C TGlxMulDescriptionDetailsBindingSetFactory(); - IMPORT_C ~TGlxMulDescriptionDetailsBindingSetFactory(); -private: - /** - * Add different types of binding to the Binding set - * @param aCommand command associated with option menu item/items - */ - void AddBindingsL() const; - }; - -NONSHARABLE_CLASS( TGlxMulTagsDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory - { -public: - IMPORT_C TGlxMulTagsDetailsBindingSetFactory(); - IMPORT_C ~TGlxMulTagsDetailsBindingSetFactory(); -private: - /** - * Add different types of binding to the Binding set - * @param aCommand command associated with option menu item/items - */ - void AddBindingsL() const; - }; - -NONSHARABLE_CLASS( TGlxMulAlbumsDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory - { -public: - IMPORT_C TGlxMulAlbumsDetailsBindingSetFactory(); - IMPORT_C ~TGlxMulAlbumsDetailsBindingSetFactory(); -private: - /** - * Add different types of binding to the Binding set - * @param aCommand command associated with option menu item/items - */ - void AddBindingsL() const; - }; - -NONSHARABLE_CLASS( TGlxMulLocationDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory - { -public: - IMPORT_C TGlxMulLocationDetailsBindingSetFactory(); - IMPORT_C ~TGlxMulLocationDetailsBindingSetFactory(); -private: - /** - * Add different types of binding to the Binding set - * @param aCommand command associated with option menu item/items - */ - void AddBindingsL() const; - }; - -NONSHARABLE_CLASS( TGlxMulFileSizeDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory - { -public: - IMPORT_C TGlxMulFileSizeDetailsBindingSetFactory(); - IMPORT_C ~TGlxMulFileSizeDetailsBindingSetFactory(); -private: - /** - * Add different types of binding to the Binding set - * @param aCommand command associated with option menu item/items - */ - void AddBindingsL() const; - }; - - -NONSHARABLE_CLASS( TGlxMulResolutionDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory - { -public: - IMPORT_C TGlxMulResolutionDetailsBindingSetFactory(); - IMPORT_C ~TGlxMulResolutionDetailsBindingSetFactory(); -private: - /** - * Add different types of binding to the Binding set - * @param aCommand command associated with option menu item/items - */ - void AddBindingsL() const; - }; - -NONSHARABLE_CLASS( TGlxMulDurationDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory - { -public: - IMPORT_C TGlxMulDurationDetailsBindingSetFactory(); - IMPORT_C ~TGlxMulDurationDetailsBindingSetFactory(); -private: - /** - * Add different types of binding to the Binding set - * @param aCommand command associated with option menu item/items - */ - void AddBindingsL() const; - }; - -NONSHARABLE_CLASS( TGlxMulUsageRightsDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory - { -public: - IMPORT_C TGlxMulUsageRightsDetailsBindingSetFactory(); - IMPORT_C ~TGlxMulUsageRightsDetailsBindingSetFactory(); -private: - /** - * Add different types of binding to the Binding set - * @param aCommand command associated with option menu item/items - */ - void AddBindingsL() const; - }; - -#endif // _GLXMETADATABINDINGSETFACTORY_H_ \ No newline at end of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/inc/glxmetadataview.h --- a/photosgallery/viewframework/views/metadataview/inc/glxmetadataview.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Metadata view implementation -* -*/ - - -#ifndef C_GLXMETADATAVIEW_H -#define C_GLXMETADATAVIEW_H - - -// INCLUDES -#include - -// CLASS DECLARATION - -/** - * Metadata view - * - */ -NONSHARABLE_CLASS(CGlxMetadataView) :public CGlxMediaListViewBase - { -public: - - /** - * Two-phased constructor. - * - * @return Pointer to newly created object. - */ - IMPORT_C static CGlxMetadataView* NewL( MGlxMediaListFactory* aMediaListFactory ); - - /** - * Two-phased constructor. - * - * @return Pointer to newly created object. - */ - IMPORT_C static CGlxMetadataView* NewLC( MGlxMediaListFactory* aMediaListFactory ); - - /** - * Destructor. - */ - virtual ~CGlxMetadataView(); - - }; - -#endif // C_GLXMETADATAVIEW_H - -// End of File - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/inc/glxmetadataviewimp.h --- a/photosgallery/viewframework/views/metadataview/inc/glxmetadataviewimp.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Metadata view implementation - * -*/ - - -#ifndef C_GLXMETADATAVIEWIMP_H__ -#define C_GLXMETADATAVIEWIMP_H__ - -// INCLUDES -#include - -#include "glxmetadataview.h" - -// FORWARD DECLARATIONS -class MGlxMediaList; -class CGlxDetailsMulModelProvider; - -// CLASS DECLARATION -/** - * CGlxMetadataViewImp - * - * Metadata view implementation. - */ -NONSHARABLE_CLASS( CGlxMetadataViewImp ) : public CGlxMetadataView, public IAlfWidgetEventHandler - { -public: - /** - * Two-phased constructor. - * - * @return Pointer to newly created object. - */ - static CGlxMetadataViewImp* NewL( MGlxMediaListFactory* aMediaListFactory ); - - /** - * Two-phased constructor. - * - * @return Pointer to newly created object. - */ - static CGlxMetadataViewImp* NewLC( MGlxMediaListFactory* aMediaListFactory ); - - /** - * Destructor. - */ - virtual ~CGlxMetadataViewImp(); - -private: - - /** - * C++ default constructor. - */ - CGlxMetadataViewImp(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( MGlxMediaListFactory* aMediaListFactory ); - - // From MEikMenuObserver - void ViewDynInitMenuPaneL( TInt /*aResourceId*/, CEikMenuPane *aMenuPane ); - -public: // From CGlxMediaListViewBase - - virtual TBool HandleViewCommandL( TInt aCommand ); - - virtual TInt MenuResourceId(); - - MGlxMediaList& MediaList(); - -private: // from base class CGlxMediaListViewBase - - TUid Id() const; - - void DoMLViewActivateL( const TVwsViewId& /*aPrevViewId*/, - TUid /*aCustomMessageId*/, - const TDesC8& aCustomMessage ); - - void DoMLViewDeactivate(); - - -public: // ialfwidgeteventhandler - - bool accept( CAlfWidgetControl& /*aControl*/, const TAlfEvent& /*aEvent*/ ) const; - - void setActiveStates( unsigned int /*aStates*/ ); - - AlfEventStatus offerEvent( CAlfWidgetControl& aControl, const TAlfEvent& aEvent ); - - IAlfInterfaceBase* makeInterface( const IfId& /*aType*/ ); - - void setEventHandlerData( const AlfWidgetEventHandlerInitData& /*aData*/ ); - - AlfWidgetEventHandlerInitData* eventHandlerData(); - - AlfEventHandlerType eventHandlerType() ; - - AlfEventHandlerExecutionPhase eventExecutionPhase() ; - -private : //new method - - /** - * Create media list with URI filter - * - * @param aURI uri or file name of item - */ - void CreateMediaListL( const TDesC8& aURI ); - - /** - * Sets the default text for the List View when empty - */ - void CreateEmptyText(); - - /** - * Constructs the Alf Environment and display - */ - void ConstructAlfEnvL(); - - /** - * Constructs the list widget - */ - void ConstructInitialViewL(); - - /** - * Destroys the view Widget - */ - void DestroyListViewWidget(); - - /** - * Send factory instance for the items to be shown in the list - */ - void AddListEntryL(); - -private: // Data - - MGlxMediaList* iItemMediaList;//own - TInt iResourceOffset; - HBufC* iItemURI; - - //Alf environment (not owned) - CAlfEnv* iEnv; - - //Alf display (not owned) - CAlfDisplay* iDisp; - - // Owns the list widget (not owned) - IMulListWidget* iListWidget; - IAlfViewWidget* iViewWidget; - - //Owns DetailsMulModelProvider - CGlxDetailsMulModelProvider* iDetailsMulModelProvider; - - - //Control gorup id - TInt iControlGroupId; - - TBool iIsVideo; - - TBool iIsDrm; - - }; - -#endif // C_GLXMETADATAVIEWIMP_H__ - -// End of File - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/rom/glxmetadataview.iby --- a/photosgallery/viewframework/views/metadataview/rom/glxmetadataview.iby Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Metadataview iby file. -* -*/ - - - -#ifndef __GLXMETADATAVIEW_IBY__ -#define __GLXMETADATAVIEW_IBY__ - -file=ABI_DIR\BUILD_DIR\glxunifiedmetadataview.dll SHARED_LIB_DIR\glxunifiedmetadataview.dll -data=DATAZ_\app_resource_dir\glxmetadataview.rsc RESOURCE_FILES_DIR\glxmetadataview.rsc - -#endif // __GLXMETADATAVIEW_IBY__ - -// End of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/src/glxmetadatabindingsetfactory.cpp --- a/photosgallery/viewframework/views/metadataview/src/glxmetadatabindingsetfactory.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,375 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Implementation of Metadata view -* -*/ - - -#include "glxmetadatabindingsetfactory.h" -#include "glxmuliconprovider.h" -#include "glxdetailsboundcommand.h" -#include "glxuiutility.h" -#include -#include -#include -#include -#include -#include // tag collection plugin uid -#include // album collection plugin uid -#include - -//----------------------------------------------------------------------------- -// TGlxMulTitleDetailsBindingSetFactory -//----------------------------------------------------------------------------- - - /** - * Constructor - */ -EXPORT_C TGlxMulTitleDetailsBindingSetFactory::TGlxMulTitleDetailsBindingSetFactory() - { - } - -/** - * Destructor - */ -EXPORT_C TGlxMulTitleDetailsBindingSetFactory::~TGlxMulTitleDetailsBindingSetFactory() - { - } - - /** - * AddBindingsL - */ -void TGlxMulTitleDetailsBindingSetFactory::AddBindingsL() const - { - TRACER("TGlxMulTitleDetailsBindingSetFactory::AddBindingsL"); - - AddTemplateBindingL(Alf::mulwidget::KTemplate6, Alf::mulwidget::KTemplate6); - AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_TITLE_NSERIES ); - AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralTitle ); - - CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL(); - CleanupClosePushL( *uiUtility ); - AddThumbnailBindingL( Alf::mulvisualitem::KMulIcon1, uiUtility->GetGridIconSize() ); - CleanupStack::PopAndDestroy( uiUtility ); - -// AddThumbnailBindingL( Alf::mulvisualitem::KMulIndicator1 );//qgn_lgal_details_editable_item - AddCommandBindingL(CGlxTitleBoundCommand::NewL()); - } - -//----------------------------------------------------------------------------- -// TGlxMulDateAndTimeDetailsBindingSetFactory -//----------------------------------------------------------------------------- - - /** - * Constructor - */ -EXPORT_C TGlxMulDateAndTimeDetailsBindingSetFactory::TGlxMulDateAndTimeDetailsBindingSetFactory() - { - } - -/** - * Destructor - */ -EXPORT_C TGlxMulDateAndTimeDetailsBindingSetFactory::~TGlxMulDateAndTimeDetailsBindingSetFactory() - { - } - - /** - * AddBindingsL - */ -void TGlxMulDateAndTimeDetailsBindingSetFactory::AddBindingsL() const - { - TRACER("TGlxMulDateAndTimeDetailsBindingSetFactory::AddBindingsL"); - - AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5); - AddStringBindingL( Alf::mulvisualitem::KMulTitle,R_GLX_METADATA_VIEW_DATE_TIME_NSERIES ); - AddCommandBindingL(CGlxDateAndTimeBoundCommand::NewL()); - AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , - KMPXMediaGeneralDate, R_QTN_DATE_USUAL_WITH_ZERO ); - } - -//----------------------------------------------------------------------------- -// TGlxMulDescriptionDetailsBindingSetFactory -//----------------------------------------------------------------------------- - - /** - * Constructor - */ -EXPORT_C TGlxMulDescriptionDetailsBindingSetFactory::TGlxMulDescriptionDetailsBindingSetFactory() - { - } - -/** - * Destructor - */ -EXPORT_C TGlxMulDescriptionDetailsBindingSetFactory::~TGlxMulDescriptionDetailsBindingSetFactory() - { - } - - /** - * AddBindingsL - */ -void TGlxMulDescriptionDetailsBindingSetFactory::AddBindingsL() const - { - TRACER("TGlxMulDescriptionDetailsBindingSetFactory::AddBindingsL"); - - AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5); - AddStringBindingL( Alf::mulvisualitem::KMulTitle,R_GLX_METADATA_VIEW_DESCRIPTION_NSERIES ); - AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralComment ); -// AddThumbnailBindingL( Alf::mulvisualitem::KMulIndicator1 );//qgn_lgal_details_editable_item - AddCommandBindingL(CGlxDescriptionBoundCommand::NewL()); - } - -//----------------------------------------------------------------------------- -// TGlxMulTagsDetailsBindingSetFactory -//----------------------------------------------------------------------------- - - /** - * Constructor - */ -EXPORT_C TGlxMulTagsDetailsBindingSetFactory::TGlxMulTagsDetailsBindingSetFactory() - { - } - -/** - * Destructor - */ -EXPORT_C TGlxMulTagsDetailsBindingSetFactory::~TGlxMulTagsDetailsBindingSetFactory() - { - } - - /** - * AddBindingsL - */ -void TGlxMulTagsDetailsBindingSetFactory::AddBindingsL() const - { - TRACER("TGlxMulTagsDetailsBindingSetFactory::AddBindingsL"); - - AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5); - AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_TAGS_NSERIES ); - - CMPXCollectionPath* path = CMPXCollectionPath::NewL(); - CleanupStack::PushL( path ); - path->AppendL( KGlxTagCollectionPluginImplementationUid ); - AddContainerListBindingL( Alf::mulvisualitem::KMulDetail, *path ); - CleanupStack::PopAndDestroy( path ); - -// AddThumbnailBindingL( Alf::mulvisualitem::KMulIndicator1 );//qgn_lgal_details_editable_item - AddCommandBindingL(CGlxTagsBoundCommand::NewL()); - } - -//----------------------------------------------------------------------------- -// TGlxMulAlbumsDetailsBindingSetFactory -//----------------------------------------------------------------------------- - - /** - * Constructor - */ -EXPORT_C TGlxMulAlbumsDetailsBindingSetFactory::TGlxMulAlbumsDetailsBindingSetFactory() - { - } - -/** - * Destructor - */ -EXPORT_C TGlxMulAlbumsDetailsBindingSetFactory::~TGlxMulAlbumsDetailsBindingSetFactory() - { - } - - /** - * AddBindingsL - */ -void TGlxMulAlbumsDetailsBindingSetFactory::AddBindingsL() const - { - TRACER("TGlxMulAlbumsDetailsBindingSetFactory::AddBindingsL"); - - AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5); - AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_ALBUMS_NSERIES ); - - CMPXCollectionPath* path = CMPXCollectionPath::NewL(); - CleanupStack::PushL( path ); - path->AppendL( KGlxCollectionPluginAlbumsImplementationUid ); - AddContainerListBindingL( Alf::mulvisualitem::KMulDetail, *path ); - CleanupStack::PopAndDestroy( path ); - - //AddThumbnailBindingL( Alf::mulvisualitem::KMulIndicator1 );//qgn_lgal_details_editable_item - AddCommandBindingL(CGlxAlbumsBoundCommand::NewL()); - - } - -//----------------------------------------------------------------------------- -// TGlxMulLocationDetailsBindingSetFactory -//----------------------------------------------------------------------------- - - /** - * Constructor - */ -EXPORT_C TGlxMulLocationDetailsBindingSetFactory::TGlxMulLocationDetailsBindingSetFactory() - { - } - -/** - * Destructor - */ -EXPORT_C TGlxMulLocationDetailsBindingSetFactory::~TGlxMulLocationDetailsBindingSetFactory() - { - } - - /** - * AddBindingsL - */ -void TGlxMulLocationDetailsBindingSetFactory::AddBindingsL() const - { - TRACER("TGlxMulLocationDetailsBindingSetFactory::AddBindingsL"); - - AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5); - AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_LOCATION_NSERIES ); - AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KGlxMediaGeneralLocation ) ;//@todo -// AddThumbnailBindingL( Alf::mulvisualitem::KMulIndicator1 );//qgn_lgal_details_editable_item - AddCommandBindingL(CGlxLocationBoundCommand::NewL()); - } - -//----------------------------------------------------------------------------- -// TGlxMulFileSizeDetailsBindingSetFactory -//----------------------------------------------------------------------------- - - /** - * Constructor - */ -EXPORT_C TGlxMulFileSizeDetailsBindingSetFactory::TGlxMulFileSizeDetailsBindingSetFactory() - { - } - -/** - * Destructor - */ -EXPORT_C TGlxMulFileSizeDetailsBindingSetFactory::~TGlxMulFileSizeDetailsBindingSetFactory() - { - } - - /** - * AddBindingsL - */ -void TGlxMulFileSizeDetailsBindingSetFactory::AddBindingsL() const - { - TRACER("TGlxMulFileSizeDetailsBindingSetFactory::AddBindingsL"); - - AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5); - AddStringBindingL( Alf::mulvisualitem::KMulTitle,R_GLX_METADATA_VIEW_FILE_SIZE_NSERIES ); - AddCommandBindingL(CGlxFileSizeBoundCommand::NewL()); - AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralSize ); - } - -//----------------------------------------------------------------------------- -// TGlxMulResolutionDetailsBindingSetFactory -//----------------------------------------------------------------------------- - - /** - * Constructor - */ -EXPORT_C TGlxMulResolutionDetailsBindingSetFactory::TGlxMulResolutionDetailsBindingSetFactory() - { - } - -/** - * Destructor - */ -EXPORT_C TGlxMulResolutionDetailsBindingSetFactory::~TGlxMulResolutionDetailsBindingSetFactory() - { - } - - /** - * AddBindingsL - */ -void TGlxMulResolutionDetailsBindingSetFactory::AddBindingsL() const - { - TRACER("TGlxMulResolutionDetailsBindingSetFactory::AddBindingsL"); - - AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5); - AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_RESOLUTION_NSERIES ); - AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KGlxMediaGeneralDimensions ); - AddCommandBindingL(CGlxResolutionBoundCommand::NewL()); - } - -//----------------------------------------------------------------------------- -// TGlxMulDurationDetailsBindingSetFactory -//----------------------------------------------------------------------------- - - /** - * Constructor - */ -EXPORT_C TGlxMulDurationDetailsBindingSetFactory::TGlxMulDurationDetailsBindingSetFactory() - { - } - -/** - * Destructor - */ -EXPORT_C TGlxMulDurationDetailsBindingSetFactory::~TGlxMulDurationDetailsBindingSetFactory() - { - } - - /** - * AddBindingsL - */ -void TGlxMulDurationDetailsBindingSetFactory::AddBindingsL() const - { - TRACER("TGlxMulDurationDetailsBindingSetFactory::AddBindingsL"); - - AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5); - AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_DURATION_NSERIES); - AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralDuration ); - AddCommandBindingL(CGlxDurationBoundCommand::NewL()); - } - - -//----------------------------------------------------------------------------- -// TGlxMulUsageRightsDetailsBindingSetFactory -//----------------------------------------------------------------------------- - -/** -* Constructor -*/ -EXPORT_C TGlxMulUsageRightsDetailsBindingSetFactory::TGlxMulUsageRightsDetailsBindingSetFactory() - { - } - -/** -* Destructor -*/ -EXPORT_C TGlxMulUsageRightsDetailsBindingSetFactory::~TGlxMulUsageRightsDetailsBindingSetFactory() - { - } - -/** -* AddBindingsL -*/ -void TGlxMulUsageRightsDetailsBindingSetFactory::AddBindingsL() const - { - TRACER("TGlxMulUsageRightsDetailsBindingSetFactory::AddBindingsL"); - - AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5); - AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_DRM_NSERIES ); - //AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaNullAttribute );//@todo - AddCommandBindingL(CGlxUsageRightsBoundCommand::NewL()); - } - - - - - - - - - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/src/glxmetadataview.cpp --- a/photosgallery/viewframework/views/metadataview/src/glxmetadataview.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Implementation of Metadata view -* -*/ - - -// INCLUDE FILES -#include "glxmetadataview.h" -#include "glxmetadataviewimp.h" - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -EXPORT_C CGlxMetadataView* CGlxMetadataView::NewL( MGlxMediaListFactory* aMediaListFactory ) - { - return CGlxMetadataViewImp::NewL( aMediaListFactory ); - } - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -EXPORT_C CGlxMetadataView* CGlxMetadataView::NewLC( MGlxMediaListFactory* aMediaListFactory ) - { - return CGlxMetadataViewImp::NewLC( aMediaListFactory ); - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxMetadataView::~CGlxMetadataView() - { - // Do nothing - } - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/metadataview/src/glxmetadataviewimp.cpp --- a/photosgallery/viewframework/views/metadataview/src/glxmetadataviewimp.cpp Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,537 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Implementation of Metadataview -* -*/ - - -// INCLUDE FILES - -#include "glxmetadataviewimp.h" - -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include // for CGlxResourceUtilities -#include // set app state in PCFW key - -#include // for TGlxFilterFactory -#include //Details data provider -#include "glxmetadatabindingsetfactory.h" //for Binding list entries -#include - -#include "glxmetadataview.h" -#include - -#include - -#include - -//CONSTANTS -const TInt KViewId = 0x200071B0; -const TInt KMainMediaListId = 0x2000D248; -const TInt KDetialsDataWindowSize = 5; -_LIT( KGlxStrETrue, "\x0001"); - -// ============================== MEMBER FUNCTIONS =========================== - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CGlxMetadataViewImp* CGlxMetadataViewImp::NewL - ( MGlxMediaListFactory* aMediaListFactory ) - { - TRACER("CGlxMetadataViewImp::NewL"); - - CGlxMetadataViewImp* self = CGlxMetadataViewImp::NewLC( aMediaListFactory ); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CGlxMetadataViewImp* CGlxMetadataViewImp::NewLC - ( MGlxMediaListFactory* aMediaListFactory ) - { - TRACER("CGlxMetadataViewImp::NewLC"); - - CGlxMetadataViewImp* self = new (ELeave) CGlxMetadataViewImp(); - CleanupStack::PushL(self); - self->ConstructL( aMediaListFactory ); - return self; - } - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------- -// -CGlxMetadataViewImp::CGlxMetadataViewImp() - { - //No implementation - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CGlxMetadataViewImp::~CGlxMetadataViewImp() - { - TRACER("CGlxMetadataViewImp::~CGlxMetadataViewImp"); - - - if ( iResourceOffset ) - { - CCoeEnv::Static()->DeleteResourceFile( iResourceOffset ); - } - } - -// --------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------- -// -void CGlxMetadataViewImp::ConstructL( MGlxMediaListFactory* /*aMediaListFactory*/ ) - { - TRACER("CGlxMetadataViewImp::ConstructL"); - - _LIT(KGlxMetadataViewResource,"glxmetadataview.rsc"); - - //add resource file - TParse parse; - parse.Set(KGlxMetadataViewResource, &KDC_APP_RESOURCE_DIR, NULL); - TFileName resourceFile; - resourceFile.Append(parse.FullName()); - CGlxResourceUtilities::GetResourceFilenameL(resourceFile); - iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile); - - //call base class's consructor - BaseConstructL(R_GLX_METADATA_VIEW); - ViewBaseConstructL(); - - HBufC* title = iEikonEnv->AllocReadResourceLC(R_GLX_METADATA_VIEW_TITLE_DETAILS); - MLViewBaseConstructL(NULL,*title); - CleanupStack::PopAndDestroy(title); - - // ShowMap commandhandler - GLX_LOG_INFO("Adding CGlxCommandHandlerAiwShowMap"); - this->AddCommandHandlerL(CGlxCommandHandlerAiwShowMap:: - NewL(this, R_METADATA_MENU)); - - // Creating the Alf Environment - ConstructAlfEnvL(); - } - -// --------------------------------------------------------------------------- -// DynInitMenuPaneL -// --------------------------------------------------------------------------- -// -void CGlxMetadataViewImp::ViewDynInitMenuPaneL(TInt /*aResourceId*/, CEikMenuPane *aMenuPane) - { - TRACER("CGlxMetadataViewImp::DynInitMenuPaneL"); - - iDetailsMulModelProvider->InitMenuL(*aMenuPane); - } - -// --------------------------------------------------------------------------- -// HandleViewCommandL -// --------------------------------------------------------------------------- -// -TBool CGlxMetadataViewImp::HandleViewCommandL(TInt aCommand) - { - TRACER("CGlxMetadataViewImp::HandleViewCommandL"); - - if( aCommand ) - { - return iDetailsMulModelProvider->OfferCommandL( aCommand ); - } - return EFalse; - } - -// --------------------------------------------------------------------------- -// From CGlxViewBase -// return menuresource id -// --------------------------------------------------------------------------- -// -TInt CGlxMetadataViewImp::MenuResourceId() - { - return R_METADATA_MENU; - } - -// --------------------------------------------------------------------------- -// From CAknView -// Returns views id. -// --------------------------------------------------------------------------- -// -TUid CGlxMetadataViewImp::Id() const - { - return TUid::Uid(KViewId); - } - -// --------------------------------------------------------------------------- -// From CAknView -// Handles a view activation. -// --------------------------------------------------------------------------- -// -void CGlxMetadataViewImp::DoMLViewActivateL( const TVwsViewId& /* aPrevViewId */, - TUid /* aCustomMessageId */, const TDesC8& aCustomMessage ) - { - TRACER("CGlxMetadataViewImp::DoMLViewActivateL"); - CreateMediaListL( aCustomMessage ); - - StatusPane()->MakeVisible(ETrue); - - // Construct the application's default view i.e., listview widget - ConstructInitialViewL(); - GlxSetAppState::SetState( EGlxInListView ); - } - -// --------------------------------------------------------------------------- -// From CAknView -// View deactivation function. -// --------------------------------------------------------------------------- -// -void CGlxMetadataViewImp::DoMLViewDeactivate() - { - TRACER("CGlxMetadataViewImp::DoMLViewDeactivate"); - - - - DestroyListViewWidget(); - if( iItemMediaList ) - { - iItemMediaList->Close(); - iItemMediaList = NULL; - } - if( iItemURI ) - { - delete iItemURI; - iItemURI = NULL; - } - } - -// --------------------------------------------------------------------------- -// ConstructAlfEnvL -// --------------------------------------------------------------------------- -// -void CGlxMetadataViewImp::ConstructAlfEnvL() - { - TRACER("CGlxMetadataViewImp::ConstructAlfEnvL"); - - - // Creating the Alf Environment - // Should be the first thing to be done before widgets can be created - iEnv = iUiUtility->Env(); - - // Creating the Alf display - // display is need to show anything related to Alf - // Avkon perceives the Alf display as one CoeControl, - // it can't see widgets inside the display - iDisp = iUiUtility->Display(); - - // Use the Avkon skin background as the display background. - iDisp->SetClearBackgroundL (CAlfDisplay::EClearWithSkinBackground); - } - -// --------------------------------------------------------------------------- -// ConstructInitialViewL -// --------------------------------------------------------------------------- -// -void CGlxMetadataViewImp::ConstructInitialViewL() - { - TRACER("CGlxMetadataViewImp::ConstructInitialViewL"); - - const char* KLoadName("mullistwidget"); - const char* KWidgetLoadName("ListWidget"); - - iControlGroupId = reinterpret_cast < TInt > (this); - - try - { - // Get widget factory from CAlfEnv - // Factory is then used to create the individual widgets & data model - - IAlfWidgetFactory& widgetFactory = AlfWidgetEnvExtension::widgetFactory(*iEnv); - - - iViewWidget = widgetFactory.createViewWidget("detaillistviewwidget", iControlGroupId); - - //Enable status pane - iViewWidget->enableStatusPane(true); - iViewWidget->setRect( ClientRect() ); - iViewWidget->show(true); - - // Create List widget. CAlfEnv owns widget - iListWidget = widgetFactory.createWidget( KLoadName, - KWidgetLoadName, *iViewWidget, NULL); - - // Disable marking for list, need to remove this flag when widget - // construction has no marking flag set by default - iListWidget->ClearFlags( IMulMultiItemWidget::EMulWidgetMarkingMode ); - - //Sets the default text for the List View when empty - CreateEmptyText(); - - if ( iListWidget ) - { - // Widget takes the ownership - iListWidget->AddEventHandler (*this); - iListWidget->ShowWidget(true); - iListWidget->control()->AcquireFocus(); - } - - AddListEntryL(); - - } - catch(...) - { - User::Leave(KErrGeneral); - } - } - -// --------------------------------------------------------------------------- -// Destroys the Widget -// --------------------------------------------------------------------------- -// -void CGlxMetadataViewImp::DestroyListViewWidget() - { - if( iDetailsMulModelProvider ) - { - delete iDetailsMulModelProvider; - iDetailsMulModelProvider = NULL; - } - if( iListWidget ) - { - iListWidget->RemoveEventHandler (*this); - iListWidget->ShowWidget(false); - iViewWidget->show(false); - } - - IAlfWidgetFactory& widgetFactory = AlfWidgetEnvExtension::widgetFactory(*iEnv); - widgetFactory.destroyWidget(iViewWidget); - - iListWidget = NULL; - iViewWidget = NULL; - } - -// --------------------------------------------------------------------------- -// From AddListEntryL -// --------------------------------------------------------------------------- -// -void CGlxMetadataViewImp::AddListEntryL() - { - TRACER("CGlxMetadataViewImp::AddListEntryL"); - - iDetailsMulModelProvider = CGlxDetailsMulModelProvider::NewL( *iEnv, - *iListWidget, - *iItemMediaList, - mulwidget::KTemplate5, KDetialsDataWindowSize ); - - iDetailsMulModelProvider->AddEntryL(TGlxMulTitleDetailsBindingSetFactory() ); - iDetailsMulModelProvider->AddEntryL(TGlxMulDateAndTimeDetailsBindingSetFactory() ); - iDetailsMulModelProvider->AddEntryL(TGlxMulDescriptionDetailsBindingSetFactory() ); - iDetailsMulModelProvider->AddEntryL(TGlxMulTagsDetailsBindingSetFactory() ); - iDetailsMulModelProvider->AddEntryL(TGlxMulAlbumsDetailsBindingSetFactory() ); - iDetailsMulModelProvider->AddEntryL(TGlxMulLocationDetailsBindingSetFactory() ); - iDetailsMulModelProvider->AddEntryL(TGlxMulFileSizeDetailsBindingSetFactory() ); - iDetailsMulModelProvider->AddEntryL(TGlxMulResolutionDetailsBindingSetFactory() ); - if( iIsVideo) - { - iDetailsMulModelProvider->AddEntryL(TGlxMulDurationDetailsBindingSetFactory() ); - } - if( iIsDrm ) - { - iDetailsMulModelProvider->AddEntryL(TGlxMulUsageRightsDetailsBindingSetFactory() ); - } - } - -// --------------------------------------------------------- -// CreateEmptyText -// --------------------------------------------------------- -// -void CGlxMetadataViewImp::CreateEmptyText() - { - TRACER("CGlxMetadataViewImp::CreateEmptyText"); - - // The listwidget can set an empty text on the display - // If there are no data items in the associated data model, - // then the empty text is shown on the widget - // If the empty text is not set, then widget won't shown any text by default - UString* defaultText = new UString("No Items Present"); - iListWidget->SetEmptyText (*defaultText); // Widget takes the ownership - delete defaultText; - } - -// --------------------------------------------------------------------------- -// CreateMediaListL -// --------------------------------------------------------------------------- -// -void CGlxMetadataViewImp::CreateMediaListL( const TDesC8& aURI ) - { - TRACER("CGlxMetadataViewImp::CreateMediaListL"); - - CMPXCollectionPath* path = CMPXCollectionPath::NewL(); - CleanupStack::PushL( path ); - - path->AppendL(KGlxCollectionPluginAllImplementationUid); - - //convert uri from 8 bit to unicode - iItemURI = HBufC::NewL( aURI.Length() ); - iItemURI->Des().Copy( aURI ); - - //Get last two characters for checking drm or video and reset the length for uri - TPtr uriPtr (iItemURI->Des()); - - TPtr isVideo = uriPtr.MidTPtr(uriPtr.Length()-1,1); - if( !isVideo.Compare(KGlxStrETrue )) - { - iIsVideo = ETrue; - } - - TPtr isDrm = uriPtr.MidTPtr(uriPtr.Length()-2,1); - if( !isDrm.Compare(KGlxStrETrue)) - { - iIsDrm = ETrue; - } - - uriPtr.SetLength(uriPtr.Length()-2); - - CMPXFilter* filter = TGlxFilterFactory::CreateURIFilterL( *iItemURI ); - CleanupStack::PushL( filter ); - - //@TODO remove magic no - allocate uid from uid list - iItemMediaList = MGlxMediaList::InstanceL(*path, TGlxHierarchyId(KMainMediaListId), filter); - - CleanupStack::PopAndDestroy( filter ); - CleanupStack::PopAndDestroy( path ); - } - -// --------------------------------------------------------------------------- -// MediaList. -// --------------------------------------------------------------------------- -// -MGlxMediaList& CGlxMetadataViewImp::MediaList() - { - return *iItemMediaList; - } - -// --------------------------------------------------------- -// offerEvent -// --------------------------------------------------------- -// -AlfEventStatus CGlxMetadataViewImp::offerEvent( CAlfWidgetControl& /*aControl*/, const TAlfEvent& aEvent ) - { - - //Check if its a Custom Event else return - if(!aEvent.IsCustomEvent()) - { - GLX_LOG_INFO("Event Not Handled"); - return EEventNotHandled; - } - TInt eventId = aEvent.CustomParameter(); - switch(eventId) - { - case KAlfActionIdDeviceLayoutChanged: - { - iViewWidget->setRect( ClientRect() ); - return EEventNotHandled; - } - case ETypeSelect: - { - TRAP_IGNORE(HandleViewCommandL((TInt)KGlxEditBoundMenuCommandId)); - } - } - - return EEventConsumed; - } - -//---------------------------------------------------------------------------------- -// eventHandlerType -//---------------------------------------------------------------------------------- -// -IAlfWidgetEventHandler::AlfEventHandlerType CGlxMetadataViewImp::eventHandlerType() - { - return IAlfWidgetEventHandler::EPresentationEventHandler; - } - -//---------------------------------------------------------------------------------- -// eventExecutionPhase -//---------------------------------------------------------------------------------- -// -IAlfWidgetEventHandler::AlfEventHandlerExecutionPhase CGlxMetadataViewImp::eventExecutionPhase() - { - return EBubblingPhaseEventHandler; - } -// --------------------------------------------------------- -// accept -// --------------------------------------------------------- -// - -bool CGlxMetadataViewImp::accept( CAlfWidgetControl& /*aControl*/, const TAlfEvent& /*aEvent*/ ) const - { - return ETrue; - } - -// --------------------------------------------------------- -// setActiveStates -// --------------------------------------------------------- -// - - void CGlxMetadataViewImp::setActiveStates( unsigned int /*aStates*/ ) - { - - } - -// --------------------------------------------------------- -// makeInterface -// --------------------------------------------------------- -// - -IAlfInterfaceBase* CGlxMetadataViewImp::makeInterface( const IfId& /*aType*/ ) - { - return NULL; - } - -// --------------------------------------------------------- -// setEventHandlerData -// --------------------------------------------------------- -// - -void CGlxMetadataViewImp::setEventHandlerData(const AlfWidgetEventHandlerInitData& /*aData*/ ) - { - - } - -// --------------------------------------------------------- -// eventHandlerData -// --------------------------------------------------------- -// - -AlfWidgetEventHandlerInitData* CGlxMetadataViewImp::eventHandlerData() - { - return NULL; - } - -// End of File diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/viewbase/inc/glxgfxtranseffect.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/viewframework/views/viewbase/inc/glxgfxtranseffect.h Wed Mar 31 21:31:03 2010 +0300 @@ -0,0 +1,35 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Transition Effects Header +* +*/ + +#ifndef GLXGFXTRANSEFFECT_H_ +#define GLXGFXTRANSEFFECT_H_ + +#include + +//Photos uid +const TUid KPhotosUid = TUid::Uid(KGlxGalleryApplicationUid); + +//Transition id for view activation for grid, list and cloud views +const TUint KActivateTransitionId (1000); + +//Transition id for view De-activation for grid, list and cloud views +const TUint KDeActivateTransitionId (1001); + +//Transition id for view De-activation for fullscreen view +const TUint KFSDeActivateTransitionId (1003); + +#endif /* GLXGFXTRANSEFFECT_H_ */ diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h --- a/photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h Wed Mar 31 21:31:03 2010 +0300 @@ -90,11 +90,7 @@ * aLatched ETrue if the command button needs to be latched. */ void EnableLatch( TInt aCommandId, TInt aLatched ); - - /* - * check the current view - */ - TBool IsFullScreenView(); + private: CAknToolbar* iToolbar; TBool iAttributeAvailable; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp --- a/photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -203,24 +203,6 @@ { EnableLatch( EGlxCmdStartMultipleMarking, ETrue ); } - /* single clk chngs - * check the current view status. - * need to disable upload button in toolbar for grid by default - */ - if(!IsFullScreenView()) - { - if(aList->SelectionCount() >= 1 ) - { - iToolbar->SetItemDimmed(EGlxCmdUpload,EFalse , ETrue); - } - else - { - iToolbar->SetItemDimmed(EGlxCmdUpload,ETrue , ETrue); - } - } - - //DrawNow must be called since SetDimmed does not redraw the toolbar - iToolbar->DrawNow(); } //---------------------------------------------------------------------------- @@ -293,13 +275,6 @@ iToolbar->SetItemDimmed( EGlxCmdRename, EFalse, ETrue ); } } - /* single clk chngs - * enable/disable upload button as per selection count, only in grid view - */ - if(aList->SelectionCount()== 0 && !IsFullScreenView()) - { - iToolbar->SetItemDimmed(EGlxCmdUpload,ETrue , ETrue); - } //DrawNow must be called since SetDimmed does not redraw the toolbar iToolbar->DrawNow(); @@ -326,42 +301,5 @@ } } } -//---------------------------------------------------------------------------- -// Check for current view mode .Grid/fullscreen/imgviewer -//---------------------------------------------------------------------------- -// -TBool CGlxToolbarController::IsFullScreenView() - { - TBool fullscreenViewingMode = EFalse; - - CGlxNavigationalState* aNavigationalState = CGlxNavigationalState::InstanceL(); - CMPXCollectionPath* naviState = aNavigationalState->StateLC(); - - if ( naviState->Levels() >= 1) - { - if (aNavigationalState->ViewingMode() == NGlxNavigationalState::EBrowse) - { - // For image viewer collection, goto view mode - if (naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid)) - { - // current view mode is img vwr - fullscreenViewingMode = ETrue; - } - else - { - //current view mode is Grid - fullscreenViewingMode = EFalse; - } - } - else - { - //current view mode is Fullscreen - fullscreenViewingMode = ETrue; - } - } - CleanupStack::PopAndDestroy( naviState ); - aNavigationalState->Close(); - return fullscreenViewingMode; - } -//end os file +//end of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp --- a/photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -41,6 +41,8 @@ #include #include "glxcommandhandler.h" +#include // for getting the button state + _LIT(KGlxViewBaseResource, "glxviewbase.rsc"); /// Length of time a view-switch animation should take @@ -247,7 +249,6 @@ { iTitlePane->SetTextL(aTitleText); } - //StatusPane()->MakeVisible(ETrue); } // ----------------------------------------------------------------------------- @@ -257,7 +258,6 @@ EXPORT_C void CGlxViewBase::DisableTitle() { TRACER( "CGlxViewBase::DisableTitle" ); - //StatusPane()->MakeVisible(EFalse); } // DoActivateL @@ -474,6 +474,7 @@ { TRACER("CGlxViewBase::SetGridToolBar()"); iToolbar = aToolbar; + iUiUtility->SetGridToolBar(aToolbar); } // ----------------------------------------------------------------------------- // GetToolBar @@ -538,6 +539,21 @@ CAknToolbar* toolbar = GetToolBar(); if(toolbar) { + //Here after the toolbar cmd is processed it is enabled + //back. For share the toolbar state should be same as it was + //earlier, so we take the current state and reset back after + //the command is processed. + CAknButton* uploadButton = + static_cast (toolbar->ControlOrNull(EGlxCmdUpload)); + TBool dimmed = EFalse; + + if(uploadButton) + { + // Get current button state + CAknButtonState* currentState = uploadButton->State(); + dimmed = uploadButton->IsDimmed(); + } + // Deactivate the toolbar. Don't accept the toolbar input when the command // execution is already in progress. toolbar->SetDimmed(ETrue); @@ -549,6 +565,11 @@ // Activate back the toolbar and set it's state properly // after command execution. SetToolbarStateL(); + + if(dimmed || (aCommand == EGlxCmdStartMultipleMarking)) + { + toolbar->SetItemDimmed(EGlxCmdUpload, ETrue, ETrue); + } } } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp --- a/photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -272,7 +272,7 @@ // ActivateL:Activates the Zoom Control,set the image visual ,do the initial setup // ----------------------------------------------------------------------------- // -EXPORT_C void CGlxZoomControl::ActivateL(TInt aInitialZoomRatio, TZoomStartMode aStartMode, +EXPORT_C void CGlxZoomControl::ActivateL(TInt /*aInitialZoomRatio*/, TZoomStartMode aStartMode, TInt aFocusIndex, TGlxMedia& aItem, TPoint* aZoomFocus,TBool aViewingMode) { TRACER("CGlxZoomControl::ActivateL()"); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/zoomview/src/glxzoomeventhandler.cpp --- a/photosgallery/viewframework/views/zoomview/src/glxzoomeventhandler.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/zoomview/src/glxzoomeventhandler.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -135,7 +135,7 @@ //---------------------------------------------------------------------------------- // // Todo: Combine logics of setting up animated zoom and pan. -void CGlxZoomPanEventHandler::SetupAnimatedZoom(TZoomMode aZoomMode, TPoint* aZoomFocus) +void CGlxZoomPanEventHandler::SetupAnimatedZoom(TZoomMode aZoomMode, TPoint* /*aZoomFocus*/) { TRACER("CGlxZoomPanEventHandler::SetupAnimatedZoom"); @@ -606,7 +606,7 @@ // HandleGestureReleased // ----------------------------------------------------------------------------- // -void CGlxZoomPanEventHandler::HandleGestureReleased(const GestureHelper::MGestureEvent& aEvent ) +void CGlxZoomPanEventHandler::HandleGestureReleased(const GestureHelper::MGestureEvent& /*aEvent*/ ) { TRACER("CGlxZoomPanEventHandler::HandleGestureReleasedEvent(const GestureHelper::MGestureEvent& )"); @@ -710,7 +710,7 @@ // HandleDoubleTap // ----------------------------------------------------------------------------- // -void CGlxZoomPanEventHandler::HandleDoubleTap(const GestureHelper::MGestureEvent& aEvent ) +void CGlxZoomPanEventHandler::HandleDoubleTap(const GestureHelper::MGestureEvent& /*aEvent*/ ) { TRACER("CGlxZoomControl::HandleDoubleTap(GestureHelper::MGestureEvent&)"); @@ -727,7 +727,7 @@ // HandleSingleTap // ----------------------------------------------------------------------------- // -void CGlxZoomPanEventHandler::HandleSingleTap(const GestureHelper::MGestureEvent& aEvent ) +void CGlxZoomPanEventHandler::HandleSingleTap(const GestureHelper::MGestureEvent& /*aEvent*/ ) { TRACER("CGlxZoomControl::HandleSingleTap(GestureHelper::MGestureEvent&)"); @@ -1151,6 +1151,5 @@ void CGlxZoomPanEventHandler::HandleMultiTouchReleased() { TRACER("CGlxZoomPanEventHandler::HandleMultiTouchReleased"); - -// ShowScreenFurniture(KGlxScreenTimeout); + //Do nothing } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/views/zoomview/src/glxzoommathsengine.cpp --- a/photosgallery/viewframework/views/zoomview/src/glxzoommathsengine.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/views/zoomview/src/glxzoommathsengine.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -47,7 +47,7 @@ void TGlxZoomAndPanMathsEngine::Initialize(TPoint& aCenter, TSize& aScreenSize, TSize& aImageSize, - TSize& aOriginalZoomedDimensions, + TSize& /*aOriginalZoomedDimensions*/, TUint8 aInitialZoomRatio) { TRACER("void TGlxZoomAndPanMathsEngine::Initialize()"); @@ -233,8 +233,8 @@ imageDimension.iWidth = (imageDimension.iWidth * newZoomRatio)/100; imageDimension.iHeight = (imageDimension.iHeight * newZoomRatio)/100; - // Is image size bigger than screen size AND image is panned to such an extent that - // the an edge of the image comes within the screen rectange? If so go ahead, + // Check if image size is bigger than screen size AND image is panned to such an extent that + // the an edge of the image comes within the screen rectange. If so go ahead, // for everything else there is mastercard. I mean the else condition below. // [TODO] The master card however needs more simplification. if( @@ -392,7 +392,7 @@ // UpdatePanFactor: Calculates the Pan Factor based on time the key was pressed //------------------------------------------------------------------------------------- // -void TGlxZoomAndPanMathsEngine::UpdatePanFactor(TTime& aPanTime) +void TGlxZoomAndPanMathsEngine::UpdatePanFactor(TTime& /*aPanTime*/) { TRACER("void TGlxZoomAndPanMathsEngine::UpdatePanFactor()"); diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/visuallistmanager/inc/glxitemvisual.h --- a/photosgallery/viewframework/visuallistmanager/inc/glxitemvisual.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/visuallistmanager/inc/glxitemvisual.h Wed Mar 31 21:31:03 2010 +0300 @@ -57,7 +57,7 @@ #include "glxiconmgrdefs.h" class MGlxVisualObjectStatusObserver; -class MGlxVisualObjectLayoutRefreshObserver; + /** * MGlxVisualObjectParameterFactory * Interface for the CGlxVisualObject @@ -255,16 +255,6 @@ TBool SetObserver( MGlxVisualObjectStatusObserver& aObserver ); - /** - * Set observer to be notified when the thumbnail texture gains or - * loses content. - * @param aObserver Observer for the thumbnail status. - * @return Whether the thumbnail texture currently has content. - */ - void AddObserver( MGlxVisualObjectLayoutRefreshObserver* aObserver ); - - void RemoveObserver( MGlxVisualObjectLayoutRefreshObserver* aObserver ); - void Reset(); void ResetLayout( CAlfVisual& aVisual ); @@ -476,10 +466,6 @@ // The id of the zoom texture from the texture manager TInt iZoomTextureId; - - /** Array of observers (owned) */ - RPointerArray iObservers; - }; #endif // C_GLXITEMVISUAL_H diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/visuallistmanager/inc/glxvisuallistcontrol.h --- a/photosgallery/viewframework/visuallistmanager/inc/glxvisuallistcontrol.h Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/visuallistmanager/inc/glxvisuallistcontrol.h Wed Mar 31 21:31:03 2010 +0300 @@ -35,12 +35,9 @@ #include "mglxmedialistobserver.h" #include "mglxmedialist.h" #include "glxlistwindow.h" -#include "glxblendlayout.h" -#include "mglxvisualobjectlayoutrefreshobserver.h" #include "mglxvisuallist.h" class CGlxVisualListWindow; -//class MGlxLayout; class MGlxVisualListObserver; class CAlfBorderBrush; class CGlxUiUtility; @@ -56,7 +53,7 @@ * @author Aki Vanhatalo */ class CGlxVisualListControl : public CAlfControl, public MGlxVisualList, - public MGlxMediaListObserver//, public MGlxVisualObjectLayoutRefreshObserver + public MGlxMediaListObserver { friend class CGlxVisualListWindow; public: @@ -136,12 +133,7 @@ void HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList); void HandleMessageL(const CMPXMessage& aMessage, MGlxMediaList* aList); -// From MHuiDisplayRefreshObserver -// void NotifyDisplayRefreshStarted( CHuiDisplay &aDisplay ); - //From - - void VisualObjectLayoutRefreshed(TInt aListIndex ,TSize aScreenSize ); /** * @return The thumbnail scale mode of list */ @@ -191,10 +183,11 @@ void VisualLayoutUpdated( CAlfVisual& aVisual ); private: - /** The media list (not owned) */ - MGlxMediaList& iMediaList; - /** The alf env (not owned) */ - CAlfEnv& iEnv; + /** The media list (not owned) */ + MGlxMediaList& iMediaList; + /** The alf env (not owned) */ + CAlfEnv& iEnv; + /** * Structure to hold information about a view context. */ @@ -222,17 +215,14 @@ TInt iControlGroupId; /** Parent layout for the visuals (owned by HUI) */ - CAlfAnchorLayout* iParentLayout; + CAlfAnchorLayout* iParentLayout; /** Current Size of the Parent Layout */ TSize iCurrentLayoutSize; - // TGlxBlendLayout iLayoutBlender; + /** Ref: UI utility */ CGlxUiUtility* iUiUtility; - /** Blender of multiple MGlxLayouts */ - //MGlxLayout* iLayout; - /** Array of view contexts (owned) */ RArray iContexts; diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/visuallistmanager/inc/mglxvisualobjectlayoutrefreshobserver.h --- a/photosgallery/viewframework/visuallistmanager/inc/mglxvisualobjectlayoutrefreshobserver.h Mon Mar 15 12:40:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Item visual container -* -*/ - - - - - - -//NONSHARABLE_CLASS ( MGlxVisualObjectLayoutRefreshObserver ) -// { -// public: -// virtual void VisualObjectLayoutRefreshed(TInt aListIndex ,TSize aScreenSize )=0; -// }; \ No newline at end of file diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/visuallistmanager/src/glxiconmanager.cpp --- a/photosgallery/viewframework/visuallistmanager/src/glxiconmanager.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/visuallistmanager/src/glxiconmanager.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -62,11 +62,11 @@ { TRACER("CGlxIconManager::~CGlxIconManager"); GLX_LOG_INFO("CGlxIconManager::~CGlxIconManager"); + if(iUiUtility) { iUiUtility->Close(); } - // remove brushes we've added to visuals in visual list TInt mcount = iMediaList.Count(); @@ -142,11 +142,7 @@ CleanupStack::PushL(imageBrush); imageBrush->SetLayer(EAlfBrushLayerForeground); - - /// @todo Remove these 2 lines when Hui fixes the image brush rendering bug imageBrush->SetBorders(-1,-1,-1,-1); - // imageBrush->SetClipToVisual(ETrue); - iImageBrushArray.AppendL(imageBrush); CleanupStack::Pop(imageBrush); } @@ -168,10 +164,7 @@ CleanupStack::PushL(imageBrush); imageBrush->SetLayer( EAlfBrushLayerForeground ); - - /// @todo Remove these 2 lines when Hui fixes the image brush rendering bug imageBrush->SetBorders(-1,-1,-1,-1); - // imageBrush->SetClipToVisual(ETrue); TAlfTimedValue opacity( aParams.iOpacity, 0 ); imageBrush->SetOpacity( opacity ); @@ -208,7 +201,6 @@ aVisual->EnableBrushesL(); aVisual->Brushes()->AppendL(iImageBrushArray[aBrushIndex], EAlfDoesNotHaveOwnership ); - // aVisual->SetChanged(); } } } @@ -246,7 +238,6 @@ if(brush==iImageBrushArray[aIconIndex]) { brushArray->Remove(i); - // aVisual->SetChanged(); break; } } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/visuallistmanager/src/glxitemvisual.cpp --- a/photosgallery/viewframework/visuallistmanager/src/glxitemvisual.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/visuallistmanager/src/glxitemvisual.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -49,10 +49,8 @@ #include #include #include "mglxvisualobjectstatusobserver.h" -#include "mglxvisualobjectlayoutrefreshobserver.h" const TInt KGlxOpacityFadeDuration = 400; - const TInt KGlxForegroundAnchorOrdinal = 2; // ----------------------------------------------------------------------------- @@ -107,7 +105,6 @@ { iUiUtility->Close(); } - iObservers.Close(); } // ----------------------------------------------------------------------------- @@ -137,7 +134,6 @@ // create the child image visual iImageVisual = CAlfImageVisual::AddNewL( aFactory.VisualOwner(), iMainVisual ); - //iImageVisual->SetScaleMode( aFactory.ThumbnailScaleMode() ); iImageVisual->SetScaleMode(CAlfImageVisual::EScaleNormal); // Turn on clipping only if cover-mode has been chosen iImageVisual->SetClipping(ETrue); @@ -286,7 +282,7 @@ // void CGlxVisualObject::HandleAttributesAvailableL( const TGlxIdSpaceId& aIdSpaceId, const TGlxMedia& aItem, - const RArray& aAttributes) + const RArray& /*aAttributes*/) { TRACER("CGlxVisualObject::HandleAttributesAvailableL"); TBool animate = ( EHasDefaultIcon == Status() ); @@ -500,8 +496,8 @@ // --------------------------------------------------------------------------- // TInt CGlxVisualObject::AddZoomTileL( - const TGlxMedia& aItem, const TMPXAttribute& aAttribute, - TGlxIdSpaceId aIdSpaceId, const TRect& aCroppingRect ) + const TGlxMedia& /*aItem*/, const TMPXAttribute& aAttribute, + TGlxIdSpaceId /*aIdSpaceId*/, const TRect& aCroppingRect ) { TRACER("CGlxVisualObject::AddZoomTileL"); // Reserve space for new tile @@ -1041,24 +1037,4 @@ TRACER("CGlxVisualObject::Match"); return ( aIcon1.iTexture == aIcon2.iTexture ); } - -void CGlxVisualObject::AddObserver( MGlxVisualObjectLayoutRefreshObserver* aObserver ) - { - TRACER("CGlxVisualObject::AddObserver"); - __ASSERT_DEBUG(iObservers.Find(aObserver) == KErrNotFound, - Panic(EGlxPanicIllegalArgument)); // Already exists - iObservers.Append(aObserver); - } - -void CGlxVisualObject::RemoveObserver( MGlxVisualObjectLayoutRefreshObserver* aObserver ) - { - TRACER("CGlxVisualObject::RemoveObserver"); - TInt i = iObservers.Find(aObserver); - if (i != KErrNotFound) - { - iObservers.Remove(i); - } - } - - - + diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/visuallistmanager/src/glxvisualiconmanager.cpp --- a/photosgallery/viewframework/visuallistmanager/src/glxvisualiconmanager.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/visuallistmanager/src/glxvisualiconmanager.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -108,8 +108,8 @@ // HandleVisualAddedL // --------------------------------------------------------------------------- // -void CGlxVisualIconManager::HandleVisualAddedL( CAlfVisual* aVisual, - TInt aIndex, MGlxVisualList* aList ) +void CGlxVisualIconManager::HandleVisualAddedL( CAlfVisual* /*aVisual*/, + TInt aIndex, MGlxVisualList* /*aList*/ ) { TRACER("CGlxVisualIconManager::HandleVisualAddedL"); GLX_LOG_INFO("CGlxVisualIconManager::HandleVisualAddedL"); @@ -190,9 +190,6 @@ GLX_LOG_INFO("CGlxVisualIconManager::ConstructL"); BaseConstructL(); - //iWhiteTexture = - // &( iTextureManager.CreateFlatColourTextureL( KRgbWhite ) ); - // create 'default' icon TFileName resFile(KDC_APP_BITMAP_DIR); resFile.Append(KGlxIconsFilename); @@ -283,9 +280,6 @@ { iconTexture = iIconTextureArray[pos]; } - // add to visual - //@Migration info: Required? - //visItem->SetImage( THuiImage( *iconTexture ) ); } else { @@ -301,7 +295,6 @@ // add to visual visItem->AddIconL( *iconTexture, NGlxIconMgrDefs::EGlxIconCentred, ETrue, EFalse, 0, 1.0, 1.0 ); - // } } } } diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/visuallistmanager/src/glxvisuallistcontrol.cpp --- a/photosgallery/viewframework/visuallistmanager/src/glxvisuallistcontrol.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/visuallistmanager/src/glxvisuallistcontrol.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -122,8 +122,6 @@ // create the visual list window iVisualWindow = CGlxVisualListWindow::NewL(this,&iMediaList, iUiUtility, iScaleMode); - //@todo below method not found - //iVisualWindow->SetOwnsObjects( ETrue ); iControlGroupId = reinterpret_cast((void*)this); // @todo: Temp, have better logic for control group ids iControlGroup = &Env().NewControlGroupL(iControlGroupId); iControlGroup->AppendL(this); @@ -416,8 +414,7 @@ // void CGlxVisualListControl::AddLayoutL(MGlxLayout* /*aLayout*/) { - // add the layout to the blender - //iLayoutBlender.AddLayoutL( aLayout ); + // No implementation } // ----------------------------------------------------------------------------- @@ -426,8 +423,7 @@ // void CGlxVisualListControl::RemoveLayout(const MGlxLayout* /*aLayout*/) { - // remove layout - //iLayoutBlender.RemoveLayout( aLayout ); + // No implementation } // BringVisualsToFront @@ -562,7 +558,6 @@ { indexesMoved += ItemCount(); } - //speed = indexesMoved / elapsed; } TInt count = iObservers.Count(); @@ -666,7 +661,6 @@ { TRACER("CGlxVisualListControl::HandleVisualAddedL"); GLX_LOG_INFO("CGlxVisualListControl::HandleVisualAddedL"); - //iVisualWindow->ObjectByIndex(aIndex)->AddObserver(this); TInt count = iObservers.Count(); for (TInt i = 0; i < count; i++) { @@ -685,7 +679,6 @@ CGlxVisualObject* visualObject = iVisualWindow->ObjectByIndex( aIndex ); if ( visualObject ) { - //iVisualWindow->ObjectByIndex(aIndex)->RemoveObserver(this); if( aAnimate ) { visualObject->TryAnimateL( iMediaList.Item( aIndex ) ); @@ -789,14 +782,3 @@ } } -// ----------------------------------------------------------------------------- -// VisualObjectLayoutRefreshed -// ----------------------------------------------------------------------------- -// -void CGlxVisualListControl::VisualObjectLayoutRefreshed(TInt aListIndex ,TSize /*aScreensize*/) - { - TRACER("CGlxVisualListControl::VisualObjectLayoutRefreshed"); - GLX_LOG_INFO("CGlxVisualListControl::VisualObjectLayoutRefreshed"); - iLayoutObserver->UpdateLayout( * ( Visual ( aListIndex ) ) ); - } - diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/viewframework/visuallistmanager/src/glxvisuallistwindow.cpp --- a/photosgallery/viewframework/visuallistmanager/src/glxvisuallistwindow.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/viewframework/visuallistmanager/src/glxvisuallistwindow.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -109,9 +109,6 @@ // No easy way to get rid of this trap. Would be possible to do // multiple objects within the same trap by modifying the CGlxListWindowBase // but would be surprising if this TRAP is a actually a performance problem - - // create texture from thumbnail - //TSize visSize = object.Visual()->Size().ValueNow().AsSize(); TSize visSize =iUiUtility->DisplaySize(); CAlfTexture* texture = NULL; @@ -138,11 +135,16 @@ iMediaList->Item( aIndex ).GetDimensions(imageSize); // Set scale mode to EScaleFitInside if the Image is bigger then screen // or to scale the grid size thumbnails if full thumbnail is not available while fast swipe - if ( imageSize.iWidth >= visSize.iWidth || imageSize.iHeight >= visSize.iHeight + if ( (imageSize.iWidth >= visSize.iWidth || imageSize.iHeight >= visSize.iHeight) ||(texture->Size().iHeight < imageSize.iHeight && texture->Size().iWidth < imageSize.iWidth )) { object.SetScaleMode(CAlfImageVisual::EScaleFitInside); } + //this will keep the image back to its normal size if the condition is not satsified. + else + { + object.SetScaleMode(CAlfImageVisual::EScaleNormal); + } // show the object. do this before notifying control, to show // at the image if control leaves @@ -152,7 +154,7 @@ iControl->HandleVisualAddedL( object.Visual(), aIndex ); } - void CGlxVisualListWindow::CleanupObject(TInt aListIndex, CBase& aObject) + void CGlxVisualListWindow::CleanupObject(TInt /*aListIndex*/, CBase& aObject) { TRACER("CGlxVisualListWindow::CleanupObject"); GLX_LOG_INFO("CGlxVisualListWindow::CleanupObject"); @@ -193,23 +195,8 @@ // ----------------------------------------------------------------------------- // PostObjectsAdded // ----------------------------------------------------------------------------- -void CGlxVisualListWindow::PostObjectsAdded( RArray& aAddedAtListIndexes ) +void CGlxVisualListWindow::PostObjectsAdded( RArray& /*aAddedAtListIndexes*/ ) { - /* - TInt count = aAddedAtListIndexes.Count(); - // step through array and notify our observers - // cant leave so need to just ignore the error - TRAP_IGNORE( - { - for(TInt i = 0; i < count; i++ ) - { - TInt listIdx = aAddedAtListIndexes[i]; - //TInt idx = ListIndexToWindowIndex( listIdx ); - //CGlxVisualObject* item = ObjectByIndex( idx); - //iControl->HandleVisualAddedL( item->Visual(), listIdx ); - } - }); - */ } // -----------------------------------------------------------------------------