--- a/deviceencryption/DevEncDmAdapter/data/DevEncUiDmAdapter.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
-* Copyright (c) 2005 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: Registery info for the Camera Control DM Adapter.
-*
-*/
-
-// INCLUDES
-#include <ecom/registryinfo.rh>
-#include "DevEncUids.hrh"
-//#include <smldmadapter.h> // for KSmlDMInterfaceUid
-
-// CONSTANTS
-
-// MACROS
-
-// RESOURCE DEFINITIONS
-
-//-----------------------------------------------------------------------------
-//
-// theInfo
-// -
-//
-//-----------------------------------------------------------------------------
-//
-RESOURCE REGISTRY_INFO theRegistryInfo
- {
- dll_uid = KDevEncOmaDmPluginUid; // The DLL's 3rd UID.
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = 0x102018B4; //KSmlDMInterfaceUid
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KDevEncOmaDmPluginImplUid;
- version_no = 1;
- display_name = "Device Encryption DM Adapter";
- default_data = "";
- opaque_data = "";
- }
- };
- }
- };
- }
-
-// End Of File
--- a/deviceencryption/DevEncDmAdapter/group/DevEncUiDmAdapter.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2005 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:
-*
-*/
-#include <platform_paths.hrh>
-#include "../inc/DevEncUids.hrh"
-
-
-TARGET devencuidmadapter.dll
-TARGETTYPE PLUGIN
-CAPABILITY CAP_ECOM_PLUGIN CAP_GENERAL_DLL
-UID 0x10009D8D KDevEncOmaDmPluginUid
-VENDORID VID_DEFAULT
-LANG SC
-
-SOURCEPATH ../../common
-SOURCE DevEncLog.cpp
-SOURCEPATH ../src
-SOURCE DevEncAdapter.cpp
-SOURCE DevEncAdapterImp.cpp
-
-USERINCLUDE ../inc
-USERINCLUDE ../../common
-
-APP_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE /epoc32/include/swi
-SYSTEMINCLUDE /epoc32/include/ecom
-
-START RESOURCE ../data/DevEncUiDmAdapter.rss
-TARGET devencuidmadapter.rsc
-END
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY centralrepository.lib
-LIBRARY dmutil.lib
-STATICLIBRARY dmutils.lib
-LIBRARY charconv.lib
-LIBRARY devenccommonutils.lib
-DEBUGLIBRARY flogger.lib
-
-
-// End Of File
-
-
--- a/deviceencryption/DevEncDmAdapter/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-* Copyright (c) 2004 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: Provides the information required for building DevEncDmAdapter.
-*
-*/
-//#ifdef FF_NATIVE_FILE_ENCRYPTION
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-// ROM files
-
-// Exported headers
-
-// Central repository files
-
-PRJ_MMPFILES
-DevEncUiDmAdapter.mmp
-
-//#endif
-
-// End of file
--- a/deviceencryption/DevEncDmAdapter/inc/DevEncAdapter.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,450 +0,0 @@
-/*
-* Copyright (c) 2005 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: Camera Control DM Adapter.
-*
-*/
-#ifndef __DEVENCADAPTER_H
-#define __DEVENCADAPTER_H
-
-// INCLUDES
-#include <e32base.h>
-#include <smldmadapter.h>
-#include <centralrepository.h>
-#include <featurecontrol.h>
-#include <DevEncEngineConstants.h>
-#include <DevEncDiskUtils.h>
-#include <DevEncKeyUtils.h>
-#include <DevEncSession.h>
-
-enum TDevEncCommand
- {
- EDmDecrypt = 0,
- EDmEncryptDefault,
- EDmEncryptBackup,
- EDmEncryptRestore
- };
-
-
-// CLASS DECLARATION
-
-/**
-* Adapter class
-* Provides DM adapter interface
-*/
-class CDevEncAdapter : public CSmlDmAdapter
- {
-
- public: // Constructors, destructor
- /**
- * Create instance of CDevEncAdapter
- * @param aDmCallBack
- * @return Instance of CDevEncAdapter
- */
- static CDevEncAdapter* NewL( MSmlDmCallback* aDmCallback );
-
- /**
- * Create instance of CDevEncAdapter
- * @param aDmCallBack
- * @return Instance of CDevEncAdapter
- */
- static CDevEncAdapter* NewLC( MSmlDmCallback* aDmCallback );
-
- /**
- * C++ Destructor
- */
- virtual ~CDevEncAdapter();
-
- public:
- /**
- * The function returns current version of the DDF.
- * By asking current DDF versions from adapters DM Module can control
- * possible changes in the data structure and send the changed DDF
- * description to a management server.
- * This function is always called after DDFStructureL.
- * @param aVersion DDF version of the adapter. (filled by the adapter)
- * @publishedPartner
- * @prototype
- */
- void DDFVersionL( CBufBase& aVersion );
-
- /**
- * The function for filling the DDF structure of the adapter
- * This function is only called once, immediately after the adapter is created.
- * @param aDDFObject Reference to root object. A DM adapter starts filling
- the data structure by calling AddChildObjectL to the root object and
- so describes the DDF of the adapter.
- * @publishedPartner
- * @prototype
- */
- void DDFStructureL( MSmlDmDDFObject& aDDF );
-
- /**
- * The function creates new leaf objects, or replaces data in existing leaf
- * objects. The information about the success of the command should be
- * returned by calling SetStatusL function of MSmlDmCallback callback
- * interface. This makes it possible to buffer the commands. However, all
- * the status codes for buffered commands must be returned at the latest when
- * the adapter's CompleteOutstandingCmdsL() is called.
- * @param aURI URI of the object
- * @param aLUID LUID of the object (if the adapter has earlier returned a
- LUID to the DM Module). For new objects, this is the LUID
- inherited through the parent node.
- * @param aObject Data of the object.
- * @param aType MIME type of the object
- * @param aStatusRef Reference to correct command, i.e. this reference
- must be used when calling the SetStatusL of this command
- * @publishedPartner
- * @prototype
- */
- void UpdateLeafObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aObject,
- const TDesC8& aType,
- TInt aStatusRef
- );
-
- /**
- * The function creates new leaf objects, or replaces data in existing leaf
- * objects, in the case where data is large enough to be streamed. The
- * information about the success of the command should be returned by calling
- * SetStatusL function of MSmlDmCallback callback interface. This makes it
- * possible to buffer the commands. However, all the status codes for buffered
- * commands must be returned at the latest when the CompleteOutstandingCmdsL()
- * of adapter is called.
- * @param aURI URI of the object
- * @param aLUID LUID of the object (if the adapter has earlier returned a
- LUID to the DM Module). For new objects, this is the LUID
- inherited through the parent node.
- * @param aStream Data of the object. Adapter should create write stream
- and return, when data is written to stream by DM agent,
- StreamCommittedL() is called by DM engine
- * @param aType MIME type of the object
- * @param aStatusRef Reference to correct command, i.e. this reference
- must be used when calling the SetStatusL of this
- command.
- * @publishedPartner
- * @prototype
- */
- void UpdateLeafObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- RWriteStream*& aStream,
- const TDesC8& aType,
- TInt aStatusRef
- );
-
- /**
- * The function deletes an object and its child objects. The SetStatusL
- * should be used as described in UpdateLeafObjectL()
- * @param aURI URI of the object
- * @param aLUID LUID of the object (if the adapter have earlier returned
- LUID to the DM Module).
- * @param aStatusRef Reference to correct command, i.e. this reference must
- be used when calling the SetStatusL of this command.
- * @publishedPartner
- * @prototype
- */
- void DeleteObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- TInt aStatusRef
- );
-
- /**
- * The function fetches data of a leaf object. The SetStatusL should be used
- * as described in UpdateLeafObjectL(). The data is returned by using the
- * SetResultsL function of MSmlCallback callback interface, and may be streamed.
- * @param aURI URI of the object
- * @param aLUID LUID of the object (if the adapter have earlier
- returned LUID to the DM Module).
- * @param aType MIME type of the object
- * @param aResultsRef Reference to correct results, i.e. this reference
- must be used when returning the result by calling
- the SetResultsL.
- * @param aStatusRef Reference to correct command, i.e. this reference
- must be used when calling the SetStatusL of this
- command.
- * @publishedPartner
- * @prototype
- */
- void FetchLeafObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aType,
- TInt aResultsRef,
- TInt aStatusRef
- );
-
- /**
- * The function fetches the size of the data of a leaf object. The size is
- * in bytes, and must reflect the number of bytes that will be transferred
- * when the framework calls FetchLeafObjectL. The SetStatusL should be used
- * as described in FetchLeafObjectL(). The size value is returned by using
- * the SetResultsL function of MSmlCallback callback interface, and must be
- * a decimal integer expressed as a string, eg. "1234".
- * Results from this call MUST NOT be streamed.
- * @param aURI URI of the object
- * @param aLUID LUID of the object (if the adapter have earlier
- returned LUID to the DM Module).
- * @param aType MIME type of the object
- * @param aResultsRef Reference to correct results, i.e. this reference
- must be used when returning the result by calling
- the SetResultsL.
- * @param aStatusRef Reference to correct command, i.e. this reference
- must be used when calling the SetStatusL of this
- command.
- * @publishedPartner
- * @prototype
- */
- void FetchLeafObjectSizeL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aType,
- TInt aResultsRef,
- TInt aStatusRef
- );
- /**
- * The function fetches URI list. An adapter returns the list of URI segments
- * under the given URI be separated by slash ("/"). The URI segment names for
- * new objects must be given by the adapter.
- * The list is returned by calling the SetResultsL function of MSmlCallback
- * callback interface. Results from this call MUST NOT be streamed.
- * @param aParentURI URI of the parent object
- * @param aParentLUID LUID of the parent object (if the
- adapter have earlier returned LUID to
- the DM Module).
- * @param aPreviousURISegmentList URI list with mapping LUID information,
- which is known by DM engine. An adapter
- can use this information when verifying
- if old objects still exists. An adapter
- also knows what objects are new to DM
- engine and can provide LUID mapping for
- them. aPreviousURISegmentList parameter
- (see above) helps to recognise new
- objects.
- * @param aResultsRef Reference to correct results, i.e. this
- reference must be used when returning
- the result by calling the SetResultsL.
- * @param aStatusRef Reference to correct command, i.e. this
- reference must be used when calling the
- SetStatusL of this command.
- * @publishedPartner
- * @prototype
- */
- void ChildURIListL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
- TInt aResultsRef,
- TInt aStatusRef
- );
-
- /**
- * The function adds node object. In some cases an implementation of the
- * function may be empty function, if the node object does not need concrete
- * database update. Still this function may be helpful to an adapter, i.e. in
- * passing mapping LUID of the node to DM Module. The SetStatusL should be
- * used as described in UpdateLeafObjectL()
- * @param aURI URI of the object
- * @param aParentLUID LUID of the parent object (if the adapter have
- earlier returned LUID to the DM Module).
- * @param aStatusRef Reference to correct command, i.e. this reference
- must be used when calling the SetStatusL of this
- command.
- * @publishedPartner
- * @prototype
- */
- void AddNodeObjectL( const TDesC8& aURI,
- const TDesC8& aParentLUID,
- TInt aStatusRef
- );
-
- /**
- * The function implements execute command. The information about the success
- * of the command should be returned by calling SetStatusL function of
- * MSmlDmCallback callback interface. This makes it possible to buffer the
- * commands.
- * However, all the status codes for buffered commands must be returned at
- * the latest when the CompleteOutstandingCmdsL() of adapter is called.
- * @param aURI URI of the command
- * @param aLUID LUID of the object (if the adapter have earlier
- returned LUID to the DM Module).
- * @param aArgument Argument for the command
- * @param aType MIME type of the object
- * @param aStatusRef Reference to correct command, i.e. this reference
- must be used when calling the SetStatusL of this
- command.
- * @publishedPartner
- * @prototype
- */
- void ExecuteCommandL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aArgument,
- const TDesC8& aType,
- TInt aStatusRef
- );
-
- /**
- * The function implements execute command. The information about the
- * success of the command should be returned by calling SetStatusL function
- * of MSmlDmCallback callback interface. This makes it possible to buffer the
- * commands.
- * However, all the status codes for buffered commands must be returned at
- * the latest when the CompleteOutstandingCmdsL() of adapter is called.
- * @param aURI URI of the command
- * @param aLUID LUID of the object (if the adapter have earlier
- returned LUID to the DM Module).
- * @param aStream Argument for the command. Adapter should create
- write stream and return, when data is written to
- stream by DM agent, StreamCommittedL() is called by
- DM engine
- * @param aType MIME type of the object
- * @param aStatusRef Reference to correct command, i.e. this reference
- must be used when calling the SetStatusL of this
- command.
- * @publishedPartner
- * @prototype
- */
- void ExecuteCommandL( const TDesC8& aURI,
- const TDesC8& aLUID,
- RWriteStream*& aStream,
- const TDesC8& aType,
- TInt aStatusRef
- );
-
- /**
- * The function implements copy command. The information about the success of
- * the command should be returned by calling SetStatusL function of
- * MSmlDmCallback callback interface. This makes it possible to buffer the
- * commands.
- * However, all the status codes for buffered commands must be returned at
- * the latest when the CompleteOutstandingCmdsL() of adapter is called.
- * @param aTargetURI Target URI for the command
- * @param aSourceLUID LUID of the target object (if one exists, and if the adapter
- has earlier returned a LUID to the DM Module).
- * @param aSourceURI Source URI for the command
- * @param aSourceLUID LUID of the source object (if the adapter has
- earlier returned a LUID to the DM Module).
- * @param aType MIME type of the objects
- * @param aStatusRef Reference to correct command, i.e. this reference
- must be used when calling the SetStatusL of this
- command.
- * @publishedPartner
- * @prototype
- */
- void CopyCommandL( const TDesC8& aTargetURI,
- const TDesC8& aTargetLUID,
- const TDesC8& aSourceURI,
- const TDesC8& aSourceLUID,
- const TDesC8& aType,
- TInt aStatusRef
- );
-
- /**
- * The function indicates start of Atomic command.
- * @publishedPartner
- * @prototype
- */
- void StartAtomicL();
-
- /**
- * The function indicates successful end of Atomic command. The adapter
- * should commit all changes issued between StartAtomicL() and
- * CommitAtomicL()
- * @publishedPartner
- * @prototype
- */
- void CommitAtomicL();
-
- /**
- * The function indicates unsuccessful end of Atomic command. The adapter
- * should rollback all changes issued between StartAtomicL() and
- * RollbackAtomicL(). If rollback fails for a command, adapter should use
- * SetStatusL() to indicate it.
- * @publishedPartner
- * @prototype
- */
- void RollbackAtomicL();
-
- /**
- * Returns ETrue if adapter supports streaming otherwise EFalse.
- * @param aItemSize size limit for stream usage
- * @return TBool ETrue for streaming support
- * @publishedPartner
- * @prototype
- */
- TBool StreamingSupport( TInt& aItemSize );
-
- /**
- * Called when stream returned from UpdateLeafObjectL or ExecuteCommandL has
- * been written to and committed. Not called when fetching item.
- * @publishedPartner
- * @prototype
- */
- void StreamCommittedL();
-
- /**
- * The function tells the adapter that all the commands of the message that
- * can be passed to the adapter have now been passed. This indicates that
- * the adapter must supply status codes and results to any buffered commands.
- * This must be done at latest by the time this function returns.
- * This function is used at the end of SyncML messages, and during processing
- * of Atomic. In the case of Atomic processing, the function will be
- * followed by a call to CommitAtomicL or RollbackAtomicL.
- * @publishedPartner
- * @prototype
- */
- void CompleteOutstandingCmdsL();
-
- private: // New methods
- void FillNodeInfoL( MSmlDmDDFObject& aDDFObject,
- TSmlDmAccessTypes& aAccessTypes,
- MSmlDmDDFObject::TScope aScope,
- MSmlDmDDFObject::TDFFormat aFormat,
- MSmlDmDDFObject::TOccurence aOccurence,
- const TDesC8& aDescription,
- const TDesC8& aMIMEType );
-
- TPtrC8 CDevEncAdapter::LastURISeg( const TDesC8& aURI );
-
- HBufC8* CDevEncAdapter::AskPassWordL();
-
- TBool CheckBatteryL();
-
- private: // Constructor
- /**
- * Symbian 2nd phase constructor
- */
- void ConstructL();
-
- /**
- * C++ Constructor
- */
- CDevEncAdapter( TAny* aEcomArguments );
-
- private: // Data
- CDevEncDiskUtils* iDiskUtils;
- CDevEncKeyUtils* iKeyUtils;
- CDevEncSession* iPhoneMemorySession;
- CDevEncSession* iMemoryCardSession;
- TInt iStatusRef;
- TInt iResultRef;
- HBufC8* iPkcs5Key;
- CRepository* iUiCenRep;
- TBool iPhoneMemOpPending;
- TBool iMemCardOpPending;
- TInt iPendingCommand;
- RTimer iTimer;
-
- };
-
-#endif // __CDevEncAdapter_H
-
-// End Of File
-
--- a/deviceencryption/DevEncDmAdapter/inc/DevEncUids.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-* Copyright (c) 2005 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: Uids of components related to Device Encryption.
-*
-*/
-#ifndef DEVENCUIUIDS_HRH
-#define DEVENCUIUIDS_HRH
-
-#define KDevEncUiUid 0x2000259A
-#define KDevEncStarterUid 0x2000259B
-#define KDevEncOmaDmPluginUid 0x200025B5
-#define KDevEncOmaDmPluginImplUid 0x200025BB
-#define KDevEncRfsPluginUid 0x200025B6
-#define KDevEncRfsPluginImplUid 0x200025BC
-#define KDevEncCommonUtilsUid 0x200025B7
-#define KDevEncNotifPluginUid 0x20002672
-#define KDevEncNotifPluginImplUid 0x20002673
-#define KDevEncPasswdDlgUid 0x20002674
-
-#define KDevEncNokiaVID 0x70000001
-
-#endif // DEVENCUIUIDS_HRH
-
-// End of file
--- a/deviceencryption/DevEncDmAdapter/sis/DevEncDmAdapter.pkg Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-;
-; 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 "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:
-;
-; DevEncDmAdapter.pkg
-;
-;Language - standard language definitions
-&EN
-
-;Standard SIS file header (use UI application UID)
-#{"DevEncUiDmAdapter"},(0x200025B5),1,0,0
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-;Supports Series 60 v 3.0
-[0x101F7961], 0, 0, 0, {"Series60ProductID"}
-
-;Files to install
-
-;----------------------------------------------------------------------------
-; Device Encryption Device Management Adapter
-;----------------------------------------------------------------------------
-"\epoc32\release\armv5\urel\DevEncUiDmAdapter.dll" -"!:\sys\bin\DevEncUiDmAdapter.dll"
-"\epoc32\data\z\resource\plugins\DevEncUiDmAdapter.rsc" -"!:\resource\plugins\DevEncUiDmAdapter.rsc"
--- a/deviceencryption/DevEncDmAdapter/src/DevEncAdapter.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1084 +0,0 @@
-/*
-* Copyright (c) 2005 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: SW Installer DM Adapter.
-*
-*/
-
-// INCLUDE
-#include <implementationproxy.h>
-#include <smldmadapter.h>
-#include <data_caging_path_literals.hrh>
-#include <centralrepository.h>
-#include <hwrmpowerstatesdkpskeys.h> // For power state
-#include <DevEncExternalCRKeys.h>
-#include <DevEncDef.h>
-#include "DevEncLog.h"
-#include "DevEncAdapter.h"
-#include "DevEncUids.hrh"
-
-
-// CONSTANTS
-_LIT8( KIntType,"int" ); // Leaf inputs
-_LIT8( KTextType,"text/plain" ); // Leaf inputs
-_LIT8( KDevEncAdapterVersion, "1.0" ); // Adapter version
-_LIT8( KDevEncRootNode, "DevEnc" ); // root URI
-_LIT8( KPhoneMemoryCmdNode, "PhoneMemoryCmd" ); // URI postfix
-_LIT8( KMemoryCardCmdNode, "MemoryCardCmd" ); // URI postfix
-_LIT8( KPhoneMemoryStatusNode, "PhoneMemoryStatus" ); // URI postfix
-_LIT8( KMemoryCardStatusNode, "MemoryCardStatus" ); // URI postfix
-_LIT8( KMemoryCardEncKeyNode, "MemoryCardEncKey" ); // URI postfix
-_LIT8( KUIStateNode, "UIState" ); // URI postfix
-_LIT8( KPhoneMemoryProgNode, "PhoneMemoryProgress" ); // URI postfix
-_LIT8( KMemoryCardProgNode, "MemoryCardProgress" ); // URI postfix
-_LIT8( KPhoneMemoryCmdDescription, "Phone memory encryption command" ); // Description
-_LIT8( KMemoryCardCmdDescription, "Memory card encryption command" ); // Description
-_LIT8( KPhoneMemoryStatusDescription, "Phone memory encryption status" ); // Description
-_LIT8( KMemoryCardStatusDescription, "Memory card encryption status" ); // Description
-_LIT8( KMemoryCardEncKeyDescription, "Memory card encryption key" ); // Description
-_LIT8( KUIStateDescription, "State of encryption settings" ); // Description
-_LIT8( KPhoneMemoryProgDescription, "En/Decryption progress in percents (phone)" ); // Description
-_LIT8( KMemoryCardProgDescription, "En/Decryption progress in percents (memory card)" ); // Description
-_LIT8( KSeparator, "/" );
-
-static const TUint32 KSizeOfSettingId = 16; // Contanst size declaration
-static const TInt KBufGranularity = 8;
-static const TDriveNumber KPhoneMemoryDriveNum = EDriveC;
-static const TDriveNumber KMemoryCardDriveNum = EDriveF;
-static const TUid KPSCategory = { 0x101F9A02 }; // DM client SID
-static const TInt KPkcs5PSKey = KDevEncOmaDmPluginImplUid;
-
-// ============================= MEMBER FUNCTIONS =============================
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::NewL
-// Symbian 1st phase contructor
-// (static, may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-CDevEncAdapter* CDevEncAdapter::NewL( MSmlDmCallback* aCallback )
- {
- CDevEncAdapter* self = NewLC( aCallback );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::NewLC
-// Symbian 1st phase contructor. Push object to cleanup-stack
-// (static, may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-CDevEncAdapter* CDevEncAdapter::NewLC( MSmlDmCallback* aCallback )
- {
- CDevEncAdapter* self = new ( ELeave ) CDevEncAdapter( aCallback );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::CDevEncAdapter()
-// C++ Constructor
-// Status : Draft
-// ----------------------------------------------------------------------------
-CDevEncAdapter::CDevEncAdapter( TAny* aEcomArguments )
- : CSmlDmAdapter::CSmlDmAdapter( aEcomArguments ),
- iPhoneMemOpPending( EFalse ),
- iMemCardOpPending( EFalse )
- {
- DFLOG( "CDevEncAdapter Constructor" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::ConstructL
-// 2nd phase contructor
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::ConstructL()
- {
- DFLOG( "CDevEncAdapter::ConstructL Begin" );
- iDiskUtils = new (ELeave) CDevEncDiskUtils();
- iKeyUtils = new (ELeave) CDevEncKeyUtils();
- iPhoneMemorySession = new (ELeave) CDevEncSession( KPhoneMemoryDriveNum );
- iMemoryCardSession = new (ELeave) CDevEncSession( KMemoryCardDriveNum );
- User::LeaveIfError(iPhoneMemorySession->Connect());
- User::LeaveIfError(iMemoryCardSession->Connect());
- iTimer.CreateLocal();
- iUiCenRep = CRepository::NewL( TUid::Uid( KCRDevEncUiSettings ) );
- DFLOG( "CDevEncAdapter::ConstructL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::~CDevEncAdapter()
-// C++ Destructor
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-CDevEncAdapter::~CDevEncAdapter()
- {
- DFLOG( "CDevEncAdapter Destructor Begin" );
- if (iDiskUtils)
- {
- delete iDiskUtils;
- iDiskUtils = NULL;
- }
-
- if (iKeyUtils)
- {
- delete iKeyUtils;
- iKeyUtils = NULL;
- }
-
- if (iPhoneMemorySession)
- {
- iPhoneMemorySession->Close();
- delete iPhoneMemorySession;
- iPhoneMemorySession = NULL;
- }
-
- if (iMemoryCardSession)
- {
- iMemoryCardSession->Close();
- delete iMemoryCardSession;
- iMemoryCardSession = NULL;
- }
-
- if ( iPkcs5Key )
- {
- delete iPkcs5Key;
- iPkcs5Key = NULL;
- }
- if (iTimer.Handle())
- iTimer.Close();
-
- if (iUiCenRep)
- {
- delete iUiCenRep;
- iUiCenRep = NULL;
- }
- DFLOG( "CDevEncAdapter Destructor End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::DDFVersionL
-// Return DM plug-in version
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::DDFVersionL( CBufBase& aDDFVersion )
- {
- // Insert version information
- DFLOG( "CDevEncAdapter::DDFVersionL Begin" );
- aDDFVersion.InsertL( 0, KDevEncAdapterVersion );
- DFLOG( "CDevEncAdapter::DDFVersionL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::DDFStructureL
-// Return DM plug-in structure
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
- {
- // Declare accesses
- DFLOG( "CDevEncAdapter::DDFStructureL Begin" );
- TSmlDmAccessTypes accessTypes;
- accessTypes.SetGet();
-
- // Create root node
- MSmlDmDDFObject& root = aDDF.AddChildObjectL( KDevEncRootNode );
- FillNodeInfoL( root,
- accessTypes,
- MSmlDmDDFObject::EPermanent,
- MSmlDmDDFObject::ENode,
- MSmlDmDDFObject::EOne,
- KNullDesC8(),
- KNullDesC8() );
-
- // Create leaf nodes
-
- accessTypes.Reset();
- accessTypes.SetReplace(); // Command nodes are write-only
-
- MSmlDmDDFObject& node1 = root.AddChildObjectL( KPhoneMemoryCmdNode );
- FillNodeInfoL( node1,
- accessTypes,
- MSmlDmDDFObject::EPermanent,
- MSmlDmDDFObject::EInt,
- MSmlDmDDFObject::EOne,
- KPhoneMemoryCmdDescription,
- KIntType );
-
- MSmlDmDDFObject& node2 = root.AddChildObjectL( KMemoryCardCmdNode );
- FillNodeInfoL( node2,
- accessTypes,
- MSmlDmDDFObject::EPermanent,
- MSmlDmDDFObject::EInt,
- MSmlDmDDFObject::EOne,
- KMemoryCardCmdDescription,
- KIntType );
-
- accessTypes.Reset();
- accessTypes.SetGet(); // Status nodes are read-only
-
- MSmlDmDDFObject& node3 = root.AddChildObjectL( KPhoneMemoryStatusNode );
- FillNodeInfoL( node3,
- accessTypes,
- MSmlDmDDFObject::EPermanent,
- MSmlDmDDFObject::EInt,
- MSmlDmDDFObject::EOne,
- KPhoneMemoryStatusDescription,
- KIntType );
-
- MSmlDmDDFObject& node4 = root.AddChildObjectL( KMemoryCardStatusNode );
- FillNodeInfoL( node4,
- accessTypes,
- MSmlDmDDFObject::EPermanent,
- MSmlDmDDFObject::EInt,
- MSmlDmDDFObject::EOne,
- KMemoryCardStatusDescription,
- KIntType );
-
- accessTypes.SetReplace();
-
- MSmlDmDDFObject& node5 = root.AddChildObjectL( KMemoryCardEncKeyNode );
- FillNodeInfoL( node5,
- accessTypes,
- MSmlDmDDFObject::EPermanent,
- MSmlDmDDFObject::EB64,
- MSmlDmDDFObject::EOne,
- KMemoryCardEncKeyDescription,
- KTextType );
-
- MSmlDmDDFObject& node6 = root.AddChildObjectL( KUIStateNode );
- FillNodeInfoL( node6,
- accessTypes,
- MSmlDmDDFObject::EPermanent,
- MSmlDmDDFObject::EInt,
- MSmlDmDDFObject::EOne,
- KUIStateDescription,
- KIntType );
-
- accessTypes.Reset();
- accessTypes.SetGet(); // Progress nodes are read-only
-
- MSmlDmDDFObject& node7 = root.AddChildObjectL( KPhoneMemoryProgNode );
- FillNodeInfoL( node7,
- accessTypes,
- MSmlDmDDFObject::EPermanent,
- MSmlDmDDFObject::EInt,
- MSmlDmDDFObject::EOne,
- KPhoneMemoryProgDescription,
- KIntType );
-
- MSmlDmDDFObject& node8 = root.AddChildObjectL( KMemoryCardProgNode );
- FillNodeInfoL( node8,
- accessTypes,
- MSmlDmDDFObject::EPermanent,
- MSmlDmDDFObject::EInt,
- MSmlDmDDFObject::EOne,
- KMemoryCardProgDescription,
- KIntType );
- DFLOG( "CDevEncAdapter::DDFStructureL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::StreamingSupport
-// Return streaming support status, set supported item size
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-TBool CDevEncAdapter::StreamingSupport( TInt& /* aItemSize */ )
- {
- // Not supported
- DFLOG( "CDevEncAdapter::StreamingSupport" );
- return EFalse;
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::StreamCommittedL
-// Commit stream buffer
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::StreamCommittedL()
- {
- DFLOG( "CDevEncAdapter::StreamCommitted" );
- // Intentionally left empty
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::CompleteOutstandingCmdsL
-// Complete outstanding commands
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::CompleteOutstandingCmdsL()
- {
- DFLOG( "CDevEncAdapter::CompleteOutstandingCmdsL Begin" );
- MSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
- TInt status;
-
- TRequestStatus reqStatus;
- TBool pending = ( iPhoneMemOpPending || iMemCardOpPending );
- DFLOG2( "CDevEncAdapter: pending %d", ( pending ? 1 : 0 ) );
-
- if ( iPhoneMemOpPending )
- {
- iPhoneMemOpPending = EFalse;
- DFLOG2( "CDevEncAdapter: iPendingCommand %d", iPendingCommand );
- switch ( iPendingCommand )
- {
- case EDmDecrypt:
- iPhoneMemorySession->DiskStatus( status );
- if ( status == EEncrypted )
- {
- DFLOG( "CDevEncAdapter: phone memory decrypt" );
- iPhoneMemorySession->StartDiskDecrypt();
- }
- else
- {
- DFLOG2( "CDevEncAdapter: Cannot decrypt, phone mem status %d",
- status );
- retValue = CSmlDmAdapter::EError;
- }
- break;
- case EDmEncryptDefault:
- iPhoneMemorySession->DiskStatus( status );
- if ( status == EDecrypted )
- {
- // if FOTA couldn't be disabled then the encryption cannot be performed
- if( retValue != CSmlDmAdapter::EError )
- {
- DFLOG( "CDevEncAdapter: phone memory encrypt" );
- iPhoneMemorySession->StartDiskEncrypt();
- }
- }
- else
- {
- DFLOG2( "CDevEncAdapter: Cannot encrypt, phone mem status %d",
- status );
- retValue = CSmlDmAdapter::EError;
- }
- break;
- default:
- // Unknown or not valid command for phone memory
- DFLOG2( "CDevEncAdapter: Invalid command %d",
- iPendingCommand );
- retValue = CSmlDmAdapter::EInvalidObject;
- break;
- }
- }
-
- if ( iMemCardOpPending )
- {
- iMemCardOpPending = EFalse;
- switch ( iPendingCommand )
- {
- case EDmDecrypt:
- iMemoryCardSession->DiskStatus( status );
- if ( status == EEncrypted )
- {
- DFLOG( "CDevEncAdapter: memory card decrypt" );
- TInt opStatus = iMemoryCardSession->StartDiskDecrypt();
- }
- else
- {
- DFLOG2( "CDevEncAdapter: Cannot decrypt, card status %d",
- status );
- retValue = CSmlDmAdapter::EError;
- }
- break;
- case EDmEncryptRestore:
- case EDmEncryptBackup:
- iMemoryCardSession->DiskStatus( status );
- if ( status == EDecrypted )
- {
- HBufC8* passwd = AskPassWordL();
- if ( iPendingCommand == EDmEncryptBackup )
- {
- DFLOG( "CDevEncAdapter: memory card backup" );
- _LIT_SECURITY_POLICY_S0( KPSSecurityPolicy, KPSCategory.iUid );
-
- RProperty::Define( KPkcs5PSKey,
- RProperty::EByteArray,
- KPSSecurityPolicy,
- KPSSecurityPolicy );
- iKeyUtils->CreateSetKey( reqStatus,
- iPkcs5Key,
- *passwd,
- KEncryptionKeyLength );
- User::WaitForRequest( reqStatus );
- User::LeaveIfError( reqStatus.Int() );
- TInt ret = RProperty::Set( KPSCategory,
- KPkcs5PSKey,
- *iPkcs5Key );
- if ( ret != KErrNone )
- {
- DFLOG2( "CDevEncAdapter: Error storing key: %d", ret );
- User::Leave( ret );
- }
- }
- else if ( iPendingCommand == EDmEncryptRestore )
- {
- DFLOG( "CDevEncAdapter: memory card restore" );
- iKeyUtils->SetKey( reqStatus, *iPkcs5Key, *passwd );
- User::WaitForRequest( reqStatus );
- DFLOG2( "CDevEncAdapter::CompleteOutstandingCmdsL: \
- SetKey: %d", reqStatus.Int() );
- User::LeaveIfError( reqStatus.Int() );
- }
- DFLOG( "CDevEncAdapter: memory card encrypt" );
- TInt opStatus = iMemoryCardSession->StartDiskEncrypt();
- delete passwd;
- passwd = NULL;
- }
- else
- {
- DFLOG2( "CDevEncAdapter: Cannot encrypt, card status %d",
- status );
- retValue = CSmlDmAdapter::EError;
- }
- break;
- case EDmEncryptDefault:
- iMemoryCardSession->DiskStatus( status );
- if ( status == EDecrypted )
- {
- DFLOG( "CDevEncAdapter: memory card encrypt" );
- TInt opStatus = iMemoryCardSession->StartDiskEncrypt();
- }
- else
- {
- DFLOG2( "CDevEncAdapter: Cannot encrypt, card status %d",
- status );
- retValue = CSmlDmAdapter::EError;
- }
- break;
- default:
- // Unknown or not valid command for memory card
- DFLOG2( "CDevEncAdapter: Invalid command %d",
- iPendingCommand );
- retValue = CSmlDmAdapter::EInvalidObject;
- break;
- }
- }
-
- if ( pending )
- {
- Callback().SetStatusL( iStatusRef, retValue );
- }
- DFLOG( "CDevEncAdapter::CompleteOutstandingCmdsL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::FillNodeInfoL
-// Fill node info
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::FillNodeInfoL( MSmlDmDDFObject& aDDFObject,
- TSmlDmAccessTypes& aAccessTypes,
- MSmlDmDDFObject::TScope aScope,
- MSmlDmDDFObject::TDFFormat aFormat,
- MSmlDmDDFObject::TOccurence aOccurence,
- const TDesC8& aDescription,
- const TDesC8& aMIMEType )
- {
- DFLOG( "CDevEncAdapter::FillNodeInfoL Begin" );
- aDDFObject.SetAccessTypesL( aAccessTypes );
- aDDFObject.SetScopeL( aScope );
- aDDFObject.SetOccurenceL( aOccurence );
- aDDFObject.SetDFFormatL( aFormat );
- aDDFObject.SetDescriptionL( aDescription );
- if ( aFormat != MSmlDmDDFObject::ENode )
- {
- aDDFObject.AddDFTypeMimeTypeL( aMIMEType );
- }
- DFLOG( "CDevEncAdapter::FillNodeInfoL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::CopyCommandL
-// Copy object
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/,
- const TDesC8& /*aTargetLUID*/,
- const TDesC8& /*aSourceURI*/,
- const TDesC8& /*aSourceLUID*/,
- const TDesC8& /*aType*/,
- TInt aStatusRef )
- {
- // Not supported
- DFLOG( "CDevEncAdapter::CopyCommandL Begin" );
- Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- DFLOG( "CDevEncAdapter::CopyCommandL End" );
- }
-
-// ----------------------------------------------------------------------------
-// DeleteObjectL
-// Delete object
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::DeleteObjectL( const TDesC8& /* aURI */,
- const TDesC8& /* aLUID */,
- TInt aStatusRef )
-
- {
- // Not supported
- DFLOG( "CDevEncAdapter::DeleteObjectL Begin" );
- Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- DFLOG( "CDevEncAdapter::DeleteObjectL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::FetchLeafObjectL
-// Fetch leaf
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::FetchLeafObjectL( const TDesC8& aURI,
- const TDesC8& /* aLUID */,
- const TDesC8& aType,
- TInt aResultsRef,
- TInt aStatusRef )
- {
- DFLOG( "CDevEncAdapter::FetchLeafObjectL Begin" );
-
- MSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
- CBufFlat* result = CBufFlat::NewL( KBufGranularity );
- CleanupStack::PushL( result );
-
- if ( aURI.Compare( KDevEncRootNode ) >= 0 )
- {
- TPtrC8 leaf = LastURISeg( aURI );
- TBuf8<KSizeOfSettingId> buf;
-
- if ( leaf == KPhoneMemoryStatusNode )
- {
- TInt status;
- iPhoneMemorySession->DiskStatus( status );
- buf.Num( status );
- result->InsertL( 0, buf );
- }
- else if ( leaf == KMemoryCardStatusNode )
- {
- TInt status;
- iMemoryCardSession->DiskStatus( status );
- buf.Num( status );
- result->InsertL( 0, buf );
- }
- else if ( leaf == KMemoryCardEncKeyNode )
- {
- iPkcs5Key = HBufC8::NewL( RProperty::KMaxPropertySize );
- TPtr8 keyPtr = iPkcs5Key->Des();
- keyPtr.FillZ( RProperty::KMaxPropertySize );
- TInt ret = RProperty::Get( KPSCategory,
- KPkcs5PSKey,
- keyPtr );
- if ( ret != KErrNone )
- {
- DFLOG2( "CDevEncAdapter::FetchLeafObjectL: Error reading key: %d", ret );
- User::Leave( ret );
- }
- result->InsertL( 0, *iPkcs5Key );
- }
- else if ( leaf == KUIStateNode )
- {
- TInt status;
- iUiCenRep->Get( KDevEncUiDmControl, status );
- buf.Num( status );
- result->InsertL( 0, buf );
- }
- else if ( leaf == KPhoneMemoryProgNode )
- {
- TInt progress = -1;
- iPhoneMemorySession->Progress( progress );
- buf.Num( progress );
- result->InsertL( 0, buf );
- }
- else if ( leaf == KMemoryCardProgNode )
- {
- TInt progress = -1;
- iMemoryCardSession->Progress( progress );
- buf.Num( progress );
- result->InsertL( 0, buf );
- }
- else
- {
- retValue = CSmlDmAdapter::ENotFound;
- }
- }
- else
- {
- retValue = CSmlDmAdapter::ENotFound;
- }
-
- if ( retValue == CSmlDmAdapter::EOk )
- {
- result->Compress();
- Callback().SetResultsL( aResultsRef, *result, aType );
- }
-
- CleanupStack::PopAndDestroy( result );
- // Respond
- Callback().SetStatusL( aStatusRef, retValue );
- DFLOG( "CDevEncAdapter::FetchLeafObjectL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::FetchLeafObjectSizeL
-// Calculate leaf object size
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::FetchLeafObjectSizeL( const TDesC8& aURI,
- const TDesC8& /* aLUID */,
- const TDesC8& /* aType */,
- TInt aResultsRef,
- TInt aStatusRef )
- {
- DFLOG( "CDevEncAdapter::FetchLeafObjectSizeL Begin" );
-
- MSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
- CBufFlat* result = CBufFlat::NewL( KBufGranularity );
- CleanupStack::PushL( result );
-
- if ( aURI.Compare( KDevEncRootNode ) >= 0 )
- {
- TPtrC8 leaf = LastURISeg( aURI );
- TBuf8<KSizeOfSettingId> buf;
-
- if ( leaf == KPhoneMemoryStatusNode )
- {
- buf.AppendNum( sizeof(TInt) );
- result->InsertL( 0, buf );
- }
- else if ( leaf == KMemoryCardStatusNode )
- {
- buf.AppendNum( sizeof(TInt) );
- result->InsertL( 0, buf );
- }
- else if ( leaf == KMemoryCardEncKeyNode )
- {
- buf.AppendNum( KEncryptionKeyLength );
- result->InsertL( 0, buf );
- }
- else if ( leaf == KUIStateNode )
- {
- buf.AppendNum( sizeof(TInt) );
- result->InsertL( 0, buf );
- }
- else if ( leaf == KPhoneMemoryProgNode )
- {
- buf.AppendNum( sizeof(TInt) );
- result->InsertL( 0, buf );
- }
- else if ( leaf == KMemoryCardProgNode )
- {
- buf.AppendNum( sizeof(TInt) );
- result->InsertL( 0, buf );
- }
- else
- {
- retValue = CSmlDmAdapter::ENotFound;
- }
- }
- else
- {
- retValue = CSmlDmAdapter::ENotFound;
- }
-
- if ( retValue == CSmlDmAdapter::EOk )
- {
- result->Compress();
- Callback().SetResultsL( aResultsRef, *result, KIntType );
- }
-
- CleanupStack::PopAndDestroy( result );
- // Respond
- Callback().SetStatusL( aStatusRef, retValue );
- DFLOG( "CDevEncAdapter::FetchLeafObjectSizeL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::ChildURIListL
-// Create child URI list
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::ChildURIListL( const TDesC8& aURI,
- const TDesC8& /* aLUID */,
- const CArrayFix<TSmlDmMappingInfo>& /* aPreviousURISegmentList */,
- TInt aResultsRef,
- TInt aStatusRef )
- {
- DFLOG( "CDevEncAdapter::ChildURIListL Begin" );
- MSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
-
- if ( aURI.Compare( KDevEncRootNode ) == 0 )
- {
- CBufFlat* buf = CBufFlat::NewL( KBufGranularity );
- CleanupStack::PushL( buf );
- buf->InsertL( 0, KPhoneMemoryCmdNode );
- buf->InsertL( buf->Size(), KSeparator );
- buf->InsertL( buf->Size(), KMemoryCardCmdNode );
- buf->InsertL( buf->Size(), KSeparator );
- buf->InsertL( buf->Size(), KPhoneMemoryStatusNode );
- buf->InsertL( buf->Size(), KSeparator );
- buf->InsertL( buf->Size(), KMemoryCardStatusNode );
- buf->InsertL( buf->Size(), KSeparator );
- buf->InsertL( buf->Size(), KMemoryCardEncKeyNode );
- buf->InsertL( buf->Size(), KSeparator );
- buf->InsertL( buf->Size(), KUIStateNode );
- buf->InsertL( buf->Size(), KSeparator );
- buf->InsertL( buf->Size(), KPhoneMemoryProgNode );
- buf->InsertL( buf->Size(), KSeparator );
- buf->InsertL( buf->Size(), KMemoryCardProgNode );
-
- buf->Compress();
- Callback().SetResultsL( aResultsRef, *buf, KNullDesC8 );
- CleanupStack::PopAndDestroy( buf );
- }
- else
- {
- retValue = CSmlDmAdapter::ENotFound;
- }
-
- // Respond
- Callback().SetStatusL( aStatusRef, retValue );
- DFLOG( "CDevEncAdapter::ChildURIListL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::AddNodeObjectL
-// Add node
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::AddNodeObjectL( const TDesC8& /* aURI */,
- const TDesC8& /* aParentLUID */,
- TInt aStatusRef )
- {
- // Not supported
- DFLOG( "CDevEncAdapter::AddNodeObjectL Begin" );
- Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- DFLOG( "CDevEncAdapter::AddNodeObjectL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::ExecuteCommandL
-// Execute command
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::ExecuteCommandL( const TDesC8& /* aURI */,
- const TDesC8& /* aLUID */,
- const TDesC8& /* aArgument */,
- const TDesC8& /* aType */,
- TInt aStatusRef )
- {
- // Not supported
- DFLOG( "CDevEncAdapter::ExecuteCommandL Begin" );
- Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- DFLOG( "CDevEncAdapter::ExecuteCommandL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::ExecuteCommandL
-// Execute command, streaming enabled
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::ExecuteCommandL( const TDesC8& /* aURI */,
- const TDesC8& /* aLUID */,
- RWriteStream*& /* aStream */,
- const TDesC8& /* aType */,
- TInt aStatusRef )
- {
- // Not supported
- DFLOG( "CDevEncAdapter::ExecuteCommandL Begin" );
- Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- DFLOG( "CDevEncAdapter::ExecuteCommandL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::UpdateLeafObjectL
-// Update leaf object
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::UpdateLeafObjectL( const TDesC8& aURI,
- const TDesC8& /* aLUID */,
- const TDesC8& aObject,
- const TDesC8& /* aType */,
- TInt aStatusRef )
- {
- DFLOG( "CDevEncAdapter::UpdateLeafObjectL Begin" );
- MSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
- DFLOG2( "CDevEncAdapter: Object: %S", &aObject );
-
- if ( aURI.Compare( KDevEncRootNode ) >= 0 )
- {
- TPtrC8 leaf = LastURISeg( aURI );
- TLex8 lex;
-
- if ( leaf == KPhoneMemoryCmdNode )
- {
- DFLOG( "CDevEncAdapter: leaf: KPhoneMemoryCmdNode" );
- DFLOG2( "CDevEncAdapter: iMemCardOpPending %d", ( iMemCardOpPending ? 1 : 0 ) );
- if ( iMemCardOpPending )
- {
- retValue = CSmlDmAdapter::EObjectInUse;
- }
- else
- {
- if( !CheckBatteryL() )
- {
- retValue = CSmlDmAdapter::EError;
- }
- else
- {
- lex.Assign( aObject );
- lex.Val( iPendingCommand );
- iPhoneMemOpPending = ETrue;
- iStatusRef = aStatusRef;
- return; // Completed in CompleteOutstandingCmdsL
- }
- }
- }
- else if ( leaf == KMemoryCardCmdNode )
- {
- DFLOG( "CDevEncAdapter: leaf: KMemoryCardCmdNode" );
- DFLOG2( "CDevEncAdapter: iPhoneMemOpPending %d", ( iPhoneMemOpPending ? 1 : 0 ) );
- if ( iPhoneMemOpPending )
- {
- retValue = CSmlDmAdapter::EObjectInUse;
- }
- else
- {
- if( !CheckBatteryL() )
- {
- retValue = CSmlDmAdapter::EError;
- }
- else
- {
- lex.Assign( aObject );
- lex.Val( iPendingCommand );
- iMemCardOpPending = ETrue;
- iStatusRef = aStatusRef;
- return; // Completed in CompleteOutstandingCmdsL
- }
- }
- }
- else if ( leaf == KMemoryCardEncKeyNode )
- {
- DFLOG( "CDevEncAdapter: leaf: KMemoryCardEncKeyNode" );
- iPkcs5Key = aObject.AllocL();
- }
- else if ( leaf == KUIStateNode )
- {
- DFLOG( "CDevEncAdapter: leaf: KUIStateNode" );
- lex.Assign( aObject );
- TInt value;
- lex.Val( value );
- iUiCenRep->Set( KDevEncUiDmControl, value );
- }
- else
- {
- retValue = CSmlDmAdapter::ENotFound;
- DFLOG( "CDevEncAdapter: Not Found" );
- }
- }
- else
- {
- retValue = CSmlDmAdapter::ENotFound;
- DFLOG( "CDevEncAdapter: Not Found" );
- }
- Callback().SetStatusL( aStatusRef, retValue );
- DFLOG( "CDevEncAdapter::UpdateLeafObjectL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::UpdateLeafObjectL
-// Update leaf object, streaming enabled
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::UpdateLeafObjectL( const TDesC8& /* aURI */,
- const TDesC8& /* aLUID */,
- RWriteStream*& /* aStream */,
- const TDesC8& /* aType */,
- TInt aStatusRef )
- {
- // Not supported
- DFLOG( "CDevEncAdapter::UpdateLeafObjectL Begin" );
- Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- DFLOG( "CDevEncAdapter::UpdateLeafObjectL End" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::StartAtomicL
-// Start atomic
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::StartAtomicL()
- {
- DFLOG( "CDevEncAdapter::StartAtomicL" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::CommitAtomicL
-// Commit atomic commands
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::CommitAtomicL()
- {
- DFLOG( "CDevEncAdapter::CommitAtomicL" );
- }
-
-// ----------------------------------------------------------------------------
-// CDevEncAdapter::RollbackAtomicL
-// Lose all modifications after 'StartAtomicL' command
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDevEncAdapter::RollbackAtomicL()
- {
- DFLOG( "CDevEncAdapter::RollbackAtomicL" );
- }
-
-TPtrC8 CDevEncAdapter::LastURISeg( const TDesC8& aURI )
- {
- DFLOG( "CDevEncAdapter::LastURISeg Begin" );
- TInt i;
- for ( i = aURI.Length()-1; i >= 0; i-- )
- {
- if ( aURI[i] == '/' )
- {
- break;
- }
- }
- DFLOG( "CDevEncAdapter::LastURISeg End" );
- return aURI.Mid( i+1 );
- }
-
-HBufC8* CDevEncAdapter::AskPassWordL()
- {
- DFLOG( "CDevEncAdapter::AskPassWordL Begin" );
- RNotifier notif;
- TInt err = notif.Connect();
- DFLOG2( "CDevEncAdapter::AskPassWordL notif.Connect(): %d", err );
- User::LeaveIfError( err );
- TBuf8<KMaxPasswordLength> passwd;
- passwd.SetLength(KMaxPasswordLength);
- TRequestStatus status = KRequestPending;
- DFLOG( "CDevEncAdapter::AskPassWordL StartNotifierAndGetResponse" );
- notif.StartNotifierAndGetResponse(
- status,
- TUid::Uid( KDevEncPasswdDlgUid ),
- KNullDesC8,
- passwd );
- User::WaitForRequest( status );
- notif.Close();
- err = status.Int();
- DFLOG2( "CDevEncAdapter::AskPassWordL status.Int(): %d", err );
- User::LeaveIfError( err );
- HBufC8* passwdBuf = passwd.AllocL();
- DFLOG( "CDevEncAdapter::AskPassWordL End" );
- return passwdBuf;
- }
-
-// ---------------------------------------------------------------------------
-// CDevEncAdapter::CheckBatteryL()
-// Checks if there's enough battery power to update
-// ---------------------------------------------------------------------------
-//
-TBool CDevEncAdapter::CheckBatteryL()
- {
-#ifdef __WINS__
-
- // In the emulator, the battery level is always 0 and the charger is never
- // connected, so just return ETrue.
- return ETrue;
-
-#else // __WINS__
-
- // Running on target. Check the real battery and charger status
-
- TInt chargingstatus( EChargingStatusError );
- TInt batterylevel( 1 );
- TBool enoughPower( EFalse );
-
- // Read battery
- DFLOG( "CDevEncAdapter::CheckBatteryL" );
- RProperty pw;
- User::LeaveIfError( pw.Attach( KPSUidHWRMPowerState, KHWRMBatteryLevel ) );
- User::LeaveIfError( pw.Get( batterylevel ) );
- pw.Close();
-
- User::LeaveIfError( pw.Attach( KPSUidHWRMPowerState, KHWRMChargingStatus ) );
- User::LeaveIfError( pw.Get( chargingstatus ));
- pw.Close();
-
- // Too low battery, power insufficient
- if ( batterylevel >= EBatteryLevelLevel4 )
- {
- enoughPower = ETrue;
- }
- // But charger is connected, power sufficient
- if ( ( chargingstatus != EChargingStatusError ) &&
- ( chargingstatus != EChargingStatusNotConnected ) )
- {
- enoughPower = ETrue;
- }
-
- DFLOG3( "CDevEncAdapter: Battery level: %d (0..7), chargingstatus %d",
- batterylevel, chargingstatus );
- DFLOG2( "CDevEncAdapter: CheckBatteryL %d", ( enoughPower ? 1 : 0 ) );
- return enoughPower;
-
-#endif // __WINS__
- }
-
-// ========================= OTHER EXPORTED FUNCTIONS =========================
-
-// End of File
--- a/deviceencryption/DevEncDmAdapter/src/DevEncAdapterImp.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2005 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: Printing Framework DM Adapter.
-*
-*/
-
-// INCLUDE
-#include <implementationproxy.h>
-#include "DevEncAdapter.h"
-#include "DevEncUids.hrh"
-
-// ----------------------------------------------------------------------------
-// ImplementationTable
-// Ecom plug-in implementation table
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-const TImplementationProxy ImplementationTable[] =
- {
-#ifdef __EABI__
- IMPLEMENTATION_PROXY_ENTRY( KDevEncOmaDmPluginImplUid, CDevEncAdapter::NewL )
-#else // !__EABI__
- { { KDevEncOmaDmPluginImplUid }, CDevEncAdapter::NewL }
-#endif // __EABI__
- };
-
-// ----------------------------------------------------------------------------
-// ImplementationGroupProxy
-// Instance of implementation proxy
-// (exported)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
- {
- aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
-
- return ImplementationTable;
- }
-
-// End Of File
-
-
--- a/deviceencryption/DevEncGsPlugin/data/200255CF.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* Copyright (c) 2005 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: ECOM plugin resource file for GSConfigPlugin.
-*
-*/
-
-#include <registryinfo.rh>
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = 0x200255CF; // dll UID
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = 0x10207236; // common UID for all GS plugins
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = 0x200255CF;
- version_no = 1;
- display_name = "Device Encryption Plugin";
- default_data = "0x1020743A"; // Parent UID
- opaque_data = "20"; // Order number
- }
- };
- }
- };
- }
-
--- a/deviceencryption/DevEncGsPlugin/data/devencgspluginrsc.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2005 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 file for DE Plugin.
-*
-*/
-
-
-// RESOURCE IDENTIFIER
-NAME GSDP // 4 letter ID
-
-// INCLUDES
-
-
-#include <data_caging_paths_strings.hrh>
-#include <devencgsplugin.loc>
-
-
-#include <uikon.rh>
-
-// CONSTANTS
-
-// RESOURCE DEFINITIONS
-
-//----------------------------------------------------
-//
-//
-// Needed or loading the resource fails!
-//
-//----------------------------------------------------
-//
-RESOURCE RSS_SIGNATURE
- {
- }
-
-//----------------------------------------------------
-//
-// r_gs_config_plugin_caption
-// Configuration Contexts Plugin caption.
-//
-//----------------------------------------------------
-//
-RESOURCE TBUF r_gs_de_plugin_caption
- {
- buf = qtn_cp_folder_de;
- }
-
-
-
-//End of File
--- a/deviceencryption/DevEncGsPlugin/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2005 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: Information required for building GSConfigPlugin.
-*
-*/
-
-// To get the APP_LAYER_LOC_EXPORT_PATH-definition
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-#include "devencgspluginexports.inc"
-
-PRJ_EXTENSIONS
-START EXTENSION s60/mifconv
- OPTION TARGETFILE gsprofilesplugin.mif
- OPTION HEADERFILE gsprofilesplugin.mbg
- OPTION SOURCES -c8,8 qgn_prop_cp_perso_prof
-END
-
-PRJ_EXTENSIONS
-START EXTENSION s60/mifconv
- OPTION TARGETFILE devencgsplugin.mif
- OPTION HEADERFILE devencgsplugin.mbg
-
- OPTION SOURCES \
- -c8,8 qgn_prop_cp_devenc.svg
-END
-
-PRJ_MMPFILES
-//gnumakefile devencgspluginicons.mk
-devencgsplugin.mmp
-
-PRJ_TESTMMPFILES
-
-// End of File
--- a/deviceencryption/DevEncGsPlugin/group/devencgsplugin.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 2005 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 specification file for deviceencryptiongsplugin.
-*
-*/
-
-
-#include <data_caging_paths.hrh> //this is needed for RESOURCE_FILES_DIR
-#include <platform_paths.hrh>
-
-CAPABILITY CAP_ECOM_PLUGIN
-TARGET devencgsplugin.dll
-TARGETTYPE PLUGIN
-UID 0x10009D8D 0x200255CF // dll uid is 0x200255CF
-VENDORID VID_DEFAULT
-
-SOURCEPATH ../src
-SOURCE devencgsplugin.cpp
-SOURCE devencgspluginImplementationTable.cpp
-
-USERINCLUDE ../data
-USERINCLUDE ../inc
-
-SYSTEMINCLUDE .
-SYSTEMINCLUDE /epoc32/include/ecom
-
-// Default system include paths for application layer modules.
-APP_LAYER_SYSTEMINCLUDE
-
-SOURCEPATH ../data
-
-//ECOM resource definition
-START RESOURCE 200255CF.rss
- TARGET devencgsplugin.rsc
- TARGETPATH ECOM_RESOURCE_DIR
-END
-
-// Gsplugin caption
-START RESOURCE devencgspluginrsc.rss
-HEADER
-TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
-END // Gsplugin caption
-
-
-LIBRARY apparc.lib
-LIBRARY avkon.lib
-LIBRARY bafl.lib
-LIBRARY commonengine.lib // RConeResourceLoader
-LIBRARY cone.lib
-LIBRARY ecom.lib
-LIBRARY efsrv.lib
-LIBRARY egul.lib
-LIBRARY eikcoctl.lib
-LIBRARY eikcore.lib
-LIBRARY euser.lib
-LIBRARY featmgr.lib
-LIBRARY gsecomplugin.lib
-LIBRARY gsframework.lib // Base classes
-LIBRARY ws32.lib
-LIBRARY aknskins.lib // AknsUtils.h
-LIBRARY apgrfx.lib // RApaLsSession
-LIBRARY servicehandler.lib // For AIW
-
-DEBUGLIBRARY flogger.lib
-
-// End of File
--- a/deviceencryption/DevEncGsPlugin/group/devencgspluginexports.inc Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-
-// To get the APP_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-
-#ifndef DEVENCGSPLUGINEXPORTS_INC
-#define DEVENCGSPLUGINEXPORTS_INC
-
-../loc/devencgsplugin.loc APP_LAYER_LOC_EXPORT_PATH(devencgsplugin.loc)
-
-#endif // DEVENCGSPLUGINEXPORTS_INC
-
-// End of File
--- a/deviceencryption/DevEncGsPlugin/group/qgn_prop_cp_devenc.svg Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg version="1.1" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="44" height="44" viewBox="0 0 44 44"
- overflow="visible" enable-background="new 0 0 44 44" xml:space="preserve">
-<rect fill="none" width="44" height="44"/>
-<g>
- <path d="M10.21,2.25c-1.654,0-3,1.346-3,3v26c0,1.654,1.346,3,3,3h14c1.654,0,3-1.346,3-3v-26c0-1.654-1.346-3-3-3H10.21z"/>
- <path fill="#625C52" d="M26.21,31.25c0,1.102-0.9,2-2,2h-14c-1.1,0-2-0.898-2-2v-26c0-1.1,0.9-2,2-2h14c1.1,0,2,0.9,2,2V31.25z"/>
- <path fill="#B2A99F" d="M24.21,3.25h-14c-1.1,0-2,0.9-2,2v4.432l1-0.063V5.25h16v7.381l1-0.5V5.25
- C26.21,4.15,25.31,3.25,24.21,3.25z"/>
- <rect x="10.21" y="6.25" fill="#ACA49C" width="14" height="18"/>
- <polygon fill="#FFFFFF" points="23.21,13.648 23.21,7.25 11.21,7.25 11.21,19.648 "/>
- <path fill="#4C4642" d="M19.21,32.25c0.553,0,1-0.449,1-1v-4c0-0.551-0.447-1-1-1h-4c-0.553,0-1,0.449-1,1v4c0,0.551,0.447,1,1,1
- H8.489c0.348,0.594,0.986,1,1.721,1h14c0.734,0,1.373-0.406,1.721-1H19.21z"/>
- <rect x="15.21" y="27.25" fill="#FFFFFF" width="4" height="4"/>
-</g>
-<g>
- <g>
- <path d="M37.214,36.25l-5.586,4H20.214c-1.1,0-2-0.9-2-2v-15c0-1.1,0.9-2,2-2h15c1.1,0,2,0.9,2,2V36.25z"/>
- <path fill="#2C5190" d="M20.214,22.25c-0.265,0-0.516,0.104-0.705,0.295c-0.19,0.189-0.295,0.44-0.295,0.705v15
- c0,0.265,0.104,0.516,0.295,0.705c0.189,0.19,0.44,0.295,0.705,0.295c0,0,10.224,0,11,0c0.463-0.464,4.537-2.951,5-3.414
- c0-0.776,0-12.586,0-12.586c0-0.552-0.448-1-1-1H20.214z"/>
- <path fill="#708ACE" d="M20.214,22.25c-0.265,0-0.516,0.104-0.705,0.295c-0.19,0.189-0.295,0.44-0.295,0.705v12l17-8.5v-3.5
- c0-0.552-0.448-1-1-1H20.214z"/>
- <rect x="32.214" y="25.25" fill="#E4C787" width="4" height="2"/>
- <rect x="32.214" y="29.25" fill="#E4C787" width="4" height="2"/>
- <rect x="32.214" y="33.25" fill="#E4C787" width="4" height="2"/>
- <path d="M30.214,28.776c0-1.395-1.132-2.526-2.526-2.526c-1.396,0-2.527,1.132-2.527,2.526c0,0.933,0.51,1.739,1.264,2.177
- l-2,3.562l-0.242,1.048l6.033-0.048l-1.265-4.562C29.7,30.516,30.214,29.709,30.214,28.776z"/>
- </g>
- <path fill="#FFFFFF" d="M29.214,28.776c0-1.395-1.132-2.526-2.526-2.526c-1.396,0-2.527,1.132-2.527,2.526
- c0,0.933,0.51,1.739,1.264,2.177l-1,3.562h4.526l-1-3.562C28.7,30.516,29.214,29.709,29.214,28.776z"/>
-</g>
-<g>
- <path d="M13.553,13.502c-1.413,0-1.537-1.207-1.537-2.37c0-1.052,0.174-2.26,1.562-2.26c1.369,0,1.512,1.195,1.512,2.26
- C15.09,12.308,14.953,13.502,13.553,13.502z M13.553,9.444c-0.492,0-0.523,0.691-0.523,1.688c0,1.163,0.05,1.798,0.523,1.798
- c0.466,0,0.517-0.635,0.517-1.798C14.07,10.129,14.039,9.444,13.553,9.444z"/>
- <path d="M18.706,13.452h-2.863v-0.535h0.959V9.656l-0.959,0.206V9.326l1.419-0.441h0.541v4.032h0.903V13.452z"/>
- <path d="M20.872,13.502c-1.413,0-1.537-1.207-1.537-2.37c0-1.052,0.174-2.26,1.562-2.26c1.369,0,1.513,1.195,1.513,2.26
- C22.409,12.308,22.272,13.502,20.872,13.502z M20.872,9.444c-0.492,0-0.523,0.691-0.523,1.688c0,1.163,0.05,1.798,0.523,1.798
- c0.466,0,0.517-0.635,0.517-1.798C21.389,10.129,21.357,9.444,20.872,9.444z"/>
- <path d="M15.047,19.493h-2.863v-0.535h0.959v-3.261l-0.959,0.205v-0.535l1.419-0.441h0.542v4.032h0.902V19.493z"/>
- <path d="M17.213,19.543c-1.413,0-1.537-1.208-1.537-2.371c0-1.052,0.174-2.259,1.562-2.259c1.369,0,1.513,1.194,1.513,2.259
- C18.75,18.348,18.613,19.543,17.213,19.543z M17.213,15.485c-0.492,0-0.523,0.69-0.523,1.687c0,1.163,0.05,1.799,0.523,1.799
- c0.466,0,0.516-0.636,0.516-1.799C17.729,16.17,17.697,15.485,17.213,15.485z"/>
- <path d="M22.365,19.493h-2.862v-0.535h0.958v-3.261l-0.958,0.205v-0.535l1.419-0.441h0.541v4.032h0.902V19.493z"/>
-</g>
-</svg>
--- a/deviceencryption/DevEncGsPlugin/inc/devencgsplugin.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/*
-* Copyright (c) 2005 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: DeviceEncryptionGsPlugin implementation.
-*
-*/
-
-#ifndef DEVENCGSPLUGIN_H
-#define DEVENCGSPLUGIN_H
-
-// User includes
-#include <../../common/DevEncUids.hrh>
-
-// System includes
-#include <gsplugininterface.h>
-#include <ConeResLoader.h>
-#include <AknServerApp.h>
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <eikdgfty.h>
-#include <eiklibry.h>
-#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
-
-// Classes referenced
-class CAknNullService;
-class CRepository;
-
-// Constants
-const TUid KDeviceEncryptionGsPluginUID = { KDevEncGsPluginUid }; // dll uid
-const TUid KDeviceEncryptionGsPluginImplUID = { KDevEncGsPluginImplUid }; // dll impl uid
-const TUid KDeviceEncryptionAppUid = { KDevEncUiUid }; // UI uid
-
-_LIT( KDeviceEncryptionApp, "z:\\sys\\bin\\DevEncUi.exe" );
-_LIT( KDeviceEncryptionGsPluginResourceFileName, "z:devencGsPluginRsc.rsc" );
-_LIT( KDeviceEncryptionGsPluginIconDirAndName, "z:devencgsplugin.mbm"); // Use KDC_BITMAP_DIR
-
-// CLASS DECLARATION
-
-//For embedding CC in CS
-class TAppInfo
- {
- public:
- TAppInfo( TUid aUid, const TDesC& aFile )
- : iUid( aUid ), iFile( aFile )
- {}
- TUid iUid;
- TFileName iFile;
- };
-
-
-/**
-* CDeviceEncryptionGsPlugin.
-*
-* This class handles state and application logic of CDeviceEncryptionGsPlugin.
-* The plugin is a type of EGSItemTypeSettingDialog and therefore the GS FW will
-* call HandleSelection() instead of DoActivate(). No CAknView functionality is
-* supported even though the base class is CAknView derived via
-* CGSPluginInterface.
-*
-*/
-class CDeviceEncryptionGsPlugin : public CGSPluginInterface,
- public MAknServerAppExitObserver // Embedding
- {
- public: // Constructors and destructor
-
- /**
- * Symbian OS two-phased constructor
- * @return
- */
- static CDeviceEncryptionGsPlugin* NewL( TAny* aInitParams );
-
- /**
- * Destructor.
- */
- ~CDeviceEncryptionGsPlugin();
-
- public: // From CAknView
-
- /**
- * See base class.
- */
- TUid Id() const;
-
- public: // From CGSPluginInterface
-
- /**
- * See base class.
- */
- void GetCaptionL( TDes& aCaption ) const;
-
- /**
- * See base class.
- */
- TInt PluginProviderCategory() const;
-
- /**
- * See base class.
- */
- TGSListboxItemTypes ItemType();
-
- /**
- * See base class.
- */
- void GetValue( const TGSPluginValueKeys aKey,
- TDes& aValue );
-
- /**
- * See base class.
- */
- void HandleSelection( const TGSSelectionTypes aSelectionType );
-
- /**
- * See base class.
- */
- CGulIcon* CreateIconL( const TUid aIconType );
-
- protected: // New
-
- /**
- * C++ default constructor.
- */
- CDeviceEncryptionGsPlugin();
-
- /**
- * Symbian OS default constructor.
- */
- void ConstructL();
-
- protected: // From CAknView
-
- /**
- * This implementation is empty because this class, being just a dialog,
- * does not implement the CAknView finctionality.
- */
- void DoActivateL( const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- /**
- * This implementation is empty because this class, being just a dialog,
- * does not implement the CAknView finctionality.
- */
- void DoDeactivate();
-
- private:
-
- /**
- * Opens localized resource file.
- */
- void OpenLocalizedResourceFileL(
- const TDesC& aResourceFileName,
- RConeResourceLoader& aResourceLoader );
-
- /**
- * Launches provisioning application.
- */
- void LaunchDEAppL();
-
- /**
- * Launches application as embedded.
- */
- void EmbedAppL( const TAppInfo& aApp );
-
- protected:
-
- //Resource loader.
- RConeResourceLoader iResources;
-
- CAknNullService* iNullService;
-
- CApaDocument* iEmbedded;
- };
-
-#endif // DEVENCGSPLUGIN_H
-// End of File
--- a/deviceencryption/DevEncGsPlugin/loc/devencgsplugin.loc Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2007 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: Localization strings for .
-*
-*/
-
-
-// LOCALISATION STRINGS
-
-// **CAPTIONS
-
-//d:Text of a list item in main view list
-//d:Used by
-//l:list_single_large_graphic_pane_t1
-//w:
-//r: 5.0
-#define qtn_cp_folder_de "Device Encryption"
-
-// End of File
--- a/deviceencryption/DevEncGsPlugin/src/devencgsplugin.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,300 +0,0 @@
-/*
-* Copyright (c) 2005 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: GSProfilesPlugin implementation.
-*
-*/
-
-
-// User includes
-#include "devencgsplugin.h"
-#include <gsparentplugin.h>
-#include <gscommon.hrh>
-#include <devencgspluginrsc.rsg> // GUI Resource
-#include <devencgsplugin.mbg>
-#include <gsprivatepluginproviderids.h>
-#include <hwrmvibrasdkcrkeys.h>
-#include <AknLaunchAppService.h>
-#include <AiwCommon.h>
-// System includes
-#include <AknNullService.h>
-#include <bautils.h>
-#include <StringLoader.h>
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::CDeviceEncryptionGsPlugin
-//
-// ---------------------------------------------------------------------------
-//
-CDeviceEncryptionGsPlugin::CDeviceEncryptionGsPlugin()
- : iResources( *iCoeEnv ), iNullService(NULL)
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::~CDeviceEncryptionGsPlugin
-//
-// ---------------------------------------------------------------------------
-//
-CDeviceEncryptionGsPlugin::~CDeviceEncryptionGsPlugin()
- {
- iResources.Close();
-
- if ( iNullService )
- {
- delete iNullService;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::ConstructL
-//
-// ---------------------------------------------------------------------------
-//
-void CDeviceEncryptionGsPlugin::ConstructL()
- {
- OpenLocalizedResourceFileL( KDeviceEncryptionGsPluginResourceFileName, iResources );
- }
-
-
-// ---------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::NewL
-//
-// ---------------------------------------------------------------------------
-//
-CDeviceEncryptionGsPlugin* CDeviceEncryptionGsPlugin::NewL( TAny* /*aInitParams*/ )
- {
- CDeviceEncryptionGsPlugin* self = new ( ELeave ) CDeviceEncryptionGsPlugin();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::Id (from CGSPluginInterface)
-//
-// -----------------------------------------------------------------------------
-//
-TUid CDeviceEncryptionGsPlugin::Id() const
- {
- return KDeviceEncryptionGsPluginImplUID;
- }
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::DoActivateL (from CGSPluginInterface)
-//
-// -----------------------------------------------------------------------------
-//
-void CDeviceEncryptionGsPlugin::DoActivateL( const TVwsViewId& /*aPrevViewId*/,
- TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/ )
- {
- }
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::DoDeactivate (from CGSPluginInterface)
-//
-// -----------------------------------------------------------------------------
-//
-void CDeviceEncryptionGsPlugin::DoDeactivate()
- {
- }
-
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::GetCaptionL (from CGSPluginInterface)
-//
-// -----------------------------------------------------------------------------
-//
-void CDeviceEncryptionGsPlugin::GetCaptionL( TDes& aCaption ) const
- {
-// HBufC* result = iEikonEnv->AllocReadResourceAsDes16L( R_GS_DE_PLUGIN_CAPTION );
- HBufC* result = StringLoader::LoadL( R_GS_DE_PLUGIN_CAPTION );
-
- if (result->Des().Length() < aCaption.MaxLength())
- {
- aCaption.Copy( *result );
- }
- else
- {
- aCaption = KNullDesC;
- }
-
- delete result;
-// aCaption.Copy( _L("Device Encryption") );
- }
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::PluginProviderCategory (from CGSPluginInterface)
-//
-// -----------------------------------------------------------------------------
-//
-TInt CDeviceEncryptionGsPlugin::PluginProviderCategory() const
- {
- return KGSPluginProviderInternal;
- }
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::ItemType (from CGSPluginInterface)
-//
-// -----------------------------------------------------------------------------
-//
-TGSListboxItemTypes CDeviceEncryptionGsPlugin::ItemType()
- {
- return EGSItemTypeSettingDialog;
- }
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::GetValue (from CGSPluginInterface)
-//
-// -----------------------------------------------------------------------------
-//
-void CDeviceEncryptionGsPlugin::GetValue( const TGSPluginValueKeys /*aKey*/,
- TDes& /*aValue*/ )
- {
- }
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::HandleSelection (from CGSPluginInterface)
-//
-// -----------------------------------------------------------------------------
-//
-void CDeviceEncryptionGsPlugin::HandleSelection(
- const TGSSelectionTypes /*aSelectionType*/ )
- {
- //TRAP_IGNORE( LaunchDEAppL() );
- LaunchDEAppL();
- }
-
-// ---------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::CreateIconL (from CGSPluginInterface)
-//
-// ---------------------------------------------------------------------------
-//
-
-CGulIcon* CDeviceEncryptionGsPlugin::CreateIconL( const TUid aIconType )
- {
- CGulIcon* icon;
- TParse* fp = new ( ELeave ) TParse();
- CleanupStack::PushL( fp );
- fp->Set( KDeviceEncryptionGsPluginIconDirAndName, &KDC_BITMAP_DIR, NULL );
-
- if ( aIconType == KGSIconTypeLbxItem )
- {
- icon = AknsUtils::CreateGulIconL(
- AknsUtils::SkinInstance(),
- KAknsIIDQgnPropCpPersoProf,
- //KAknsIIDQgnPropCpDevenc,
- fp->FullName(),
- EMbmDevencgspluginQgn_prop_cp_devenc,
- EMbmDevencgspluginQgn_prop_cp_devenc_mask );
- }
- else
- {
- icon = CGSPluginInterface::CreateIconL( aIconType );
- }
-
- CleanupStack::PopAndDestroy( fp );
-
- return icon;
- }
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::OpenLocalizedResourceFileL
-//
-// -----------------------------------------------------------------------------
-
-void CDeviceEncryptionGsPlugin::OpenLocalizedResourceFileL(
- const TDesC& aResourceFileName,
- RConeResourceLoader& aResourceLoader )
- {
- RFs fsSession;
- User::LeaveIfError( fsSession.Connect() );
- CleanupClosePushL(fsSession);
-
- // Find the resource file:
- TParse parse;
- parse.Set( aResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL );
- TFileName fileName( parse.FullName() );
-
- // Get language of resource file:
- BaflUtils::NearestLanguageFile( fsSession, fileName );
-
- // Open resource file:
- aResourceLoader.OpenL( fileName );
-
- CleanupStack::PopAndDestroy(&fsSession);
- }
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::LaunchProfilesAppL
-//
-// -----------------------------------------------------------------------------
-//
-void CDeviceEncryptionGsPlugin::LaunchDEAppL()
- {
- // Get the correct application data
- RWsSession ws;
- User::LeaveIfError(ws.Connect());
- CleanupClosePushL(ws);
-
- // Find the task with uid
- TApaTaskList taskList(ws);
- TApaTask task = taskList.FindApp( KDeviceEncryptionAppUid );
-
- if ( task.Exists() )
- {
- task.BringToForeground();
- }
- else
- {
- //Launch application as embedded
- TAppInfo app( KDeviceEncryptionAppUid, KDeviceEncryptionApp );
- iEmbedded=NULL;
- EmbedAppL( app );
- }
- CleanupStack::PopAndDestroy(&ws);
- }
-
-
-// -----------------------------------------------------------------------------
-// CDeviceEncryptionGsPlugin::EmbedAppL
-//
-// -----------------------------------------------------------------------------
-//
-void CDeviceEncryptionGsPlugin::EmbedAppL( const TAppInfo& aApp )
- {
- if ( iNullService )
- {
- delete iNullService;
- iNullService = NULL;
- }
- iNullService = CAknNullService::NewL( aApp.iUid, this );
- }
-
-// End of file
--- a/deviceencryption/DevEncGsPlugin/src/devencgspluginImplementationTable.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2005 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: ECOM proxy table for GSProfilesPlugin.
-*
-*/
-
-
-// User includes
-#include "devencgsplugin.h"
-
-// System includes
-#include <e32std.h>
-#include <implementationproxy.h>
-
-
-// Constants
-const TImplementationProxy KDeviceEncryptionGsPluginImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY( 0x200255CF, CDeviceEncryptionGsPlugin::NewL ),
- };
-
-
-// ---------------------------------------------------------------------------
-// ImplementationGroupProxy
-// Gate/factory function
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
- TInt& aTableCount )
- {
- aTableCount = sizeof( KDeviceEncryptionGsPluginImplementationTable )
- / sizeof( TImplementationProxy );
- return KDeviceEncryptionGsPluginImplementationTable;
- }
-
-
-// End of File
--- a/deviceencryption/DevEncNotifPlugin/data/20002672.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 2005 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: This file specifies the interface and implementation
-* information for USBUINotif Ecom Plugins.
-*
-*/
-
-#include "registryinfo.rh"
-#include "uikon.hrh"
-#include "DevEncUids.hrh"
-
-RESOURCE REGISTRY_INFO theInfo
-{
- dll_uid = KDevEncNotifPluginUid;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KUikonUidPluginInterfaceNotifiers;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KDevEncNotifPluginImplUid;
- version_no = 1;
- display_name = "TTNOTIFY2V2 Plugin 1";
- default_data = "TTNOTIFY2V2";
- opaque_data = "0";
- }
- };
- }
- };
-}
--- a/deviceencryption/DevEncNotifPlugin/data/DevEncNotifPlugin.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2005 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 file for DE Plugin.
-*
-*/
-
-NAME DENP
-
-#include <eikon.rsg>
-#include <eikon.rh>
-
-#include <avkon.rsg>
-#include <avkon.rh>
-#include <avkon.mbg>
-#include <avkon.loc>
-
-#include <devenc.loc>
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF { buf=""; }
-
-// === QUERIES ================================================================
-
-RESOURCE DIALOG r_devenc_passwd_query
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items=
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control = AVKON_DATA_QUERY
- {
- layout = ECodeLayout;
- label = qtn_encryption_passphrase_ask;
- control = SECRETED
- {
- };
- };
- }
- };
- }
-
-RESOURCE TBUF r_devenc_invalid_passwd_string
- {
- buf = qtn_encryption_note_invalid_password;
- }
--- a/deviceencryption/DevEncNotifPlugin/group/DevEncNotifPlugin.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
-* Copyright (c) 2005 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: OMA DM adapter for controlling camera.
-*
-*/
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh> //this is needed for RESOURCE_FILES_DIR
-#include "../../common/DevEncUids.hrh"
-
-TARGET devencnotifplugin.dll
-TARGETTYPE plugin
-UID 0x10009D8D KDevEncNotifPluginUid
-TARGETPATH SHARED_LIB_DIR
-CAPABILITY CAP_ECOM_PLUGIN
-VENDORID VID_DEFAULT
-
-SOURCEPATH ../../common
-SOURCE DevEncLog.cpp
-SOURCEPATH ../src
-SOURCE DevEncPasswdDlg.cpp
-SOURCE DevEncNotifPluginImp.cpp
-
-USERINCLUDE ../inc
-USERINCLUDE ../../common
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE /epoc32/include/platform/mw/uikon
-SYSTEMINCLUDE /epoc32/include/ecom
-
-// Notifier resource file
-START RESOURCE ../data/DevEncNotifPlugin.rss
-HEADER
-TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
-END
-
-// ECom resource file
-START RESOURCE ../data/20002672.rss
-//#ifdef SYMBIAN_SECURE_ECOM
-TARGET devencnotifplugin.rsc
-//#endif
-END
-
-LIBRARY euser.lib cone.lib
-LIBRARY ecom.lib eiksrv.lib
-LIBRARY commonengine.lib
-LIBRARY avkon.lib bafl.lib
-LIBRARY charconv.lib
-LIBRARY eiksrvui.lib
-DEBUGLIBRARY flogger.lib
-
-// End Of File
-
-
--- a/deviceencryption/DevEncNotifPlugin/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2005 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: Device Encryption OMA DM Adapter.
-*
-*/
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-// ROM files
-
-// Exported headers
-
-// Central repository files
-
-PRJ_MMPFILES
-DevEncNotifPlugin.mmp
-
-// End of file
--- a/deviceencryption/DevEncNotifPlugin/inc/DevEncPasswdDlg.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/*
-* Copyright (c) 2005 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: CCDevEncPasswdDlg declaration.
-*
-*/
-
-#ifndef CDEVENCPASSWDDLG_H
-#define CDEVENCPASSWDDLG_H
-
-#include <e32base.h> // For CActive, link against: euser.lib
-#include <e32std.h> // For RTimer, link against: euser.lib
-#include <eiknotapi.h>
-#include <AknQueryDialog.h>
-#include <aknnotewrappers.h>
-
-class CDevEncPasswdDlg : public CActive,
- public MEikSrvNotifierBase2
- {
- public:
- // Cancel and destroy
- ~CDevEncPasswdDlg();
-
- // Two-phased constructor.
- static CDevEncPasswdDlg* NewL();
-
- // Two-phased constructor.
- static CDevEncPasswdDlg* NewLC();
-
- public: // Functions from MEikSrvNotifierBase2
- /** Frees all resources owned by this notifier.
-
- This function is called by the notifier framework when all resources allocated
- by notifiers should be freed. As a minimum, this function should delete this
- object (i.e. delete this;).
-
- Note that it is important to implement this function correctly to avoid memory
- leaks. */
- virtual void Release();
- /** Performs any initialisation that this notifier may require.
-
- The function is called when the notifier is loaded (when the plug-in DLL is
- loaded). It is called only once.
-
- As a minimum, the function should return a TNotifierInfo instance describing
- the notifier parameters. A good implementation would be to set this into a
- data member, and then to return it. This is because the same information is
- returned by Info().
-
- The function is safe to leave from, so it is possible, although rarely necessary,
- to allocate objects as you would normally do in a ConstructL() function as
- part of two-phase construction.
-
- @return Describes the parameters of the notifier. */
- virtual TNotifierInfo RegisterL();
- /** Gets the notifier parameters.
-
- This is usually the same information as returned by RegisterL() but can be
- varied at run time.
-
- @return Describes the parameters of the notifier. */
- virtual TNotifierInfo Info() const;
- /** Starts the notifier.
-
- This is called as a result of a client-side call to RNotifier::StartNotifier(),
- which the client uses to start a notifier from which it does not expect a
- response.
-
- The function is synchronous, but it should be implemented so that it completes
- as soon as possible, allowing the notifier framework to enforce its priority
- mechanism.
-
- It is not possible to to wait for a notifier to complete before returning
- from this function unless the notifier is likely to finish implementing its
- functionality immediately.
-
- @param aBuffer Data that can be passed from the client-side. The format and
- meaning of any data is implementation dependent.
- @return A pointer descriptor representing data that may be returned. The format
- and meaning of any data is implementation dependent. */
- virtual TPtrC8 StartL(const TDesC8& aBuffer);
- /** Starts the notifier.
-
- This is called as a result of a client-side call to the asynchronous function
- RNotifier::StartNotifierAndGetResponse(). This means that the client is waiting,
- asynchronously, for the notifier to tell the client that it has finished its
- work.
-
- It is important to return from this function as soon as possible, and derived
- classes may find it useful to take a copy of the reply-slot number and
- the RMessage object.
-
- The implementation of a derived class must make sure that Complete() is called
- on the RMessage object when the notifier is deactivated.
-
- This function may be called multiple times if more than one client starts
- the notifier.
-
- @param aBuffer Data that can be passed from the client-side. The format and
- meaning of any data is implementation dependent.
- @param aReplySlot Identifies which message argument to use for the reply.
- This message argument will refer to a modifiable descriptor, a TDes8 type,
- into which data can be returned. The format and meaning of any returned data
- is implementation dependent.
- @param aMessage Encapsulates a client request. */
- virtual void StartL(const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage);
-
- /** Cancels an active notifier.
-
- This is called as a result of a client-side call to RNotifier::CancelNotifier().
-
- An implementation should free any relevant resources and complete any outstanding
- messages, if relevant. */
- virtual void Cancel();
- /** Updates a currently active notifier with new data.
-
- This is called as a result of a client-side call to RNotifier::UpdateNotifier().
-
- @param aBuffer Data that can be passed from the client-side. The format and
- meaning of any data is implementation dependent.
- @return A pointer descriptor representing data that may be returned. The format
- and meaning of any data is implementation dependent. */
- virtual TPtrC8 UpdateL(const TDesC8& aBuffer);
- private:
- // C++ constructor
- CDevEncPasswdDlg();
-
- // Second-phase constructor
- void ConstructL();
-
- private: // From CActive
- // Handle completion
- void RunL();
-
- // How to cancel me
- void DoCancel();
-
- // Override to handle leaves from RunL(). Default implementation causes
- // the active scheduler to panic.
- TInt RunError( TInt aError );
-
- private:
- TNotifierInfo iInfo;
- CAknTextQueryDialog* iDlg;
- CAknErrorNote* iNote;
- RMessagePtr2 iMessage; // Received message
- TInt iReplySlot; // Reply slot
- TBool iNeedToCompleteMessage; // Flag for releasing messages
- TInt iResourceFileFlag; // Flag for eikon env.
- CEikonEnv* iEikEnv; // Local eikonenv
- RTimer iTimer;
- };
-
-#endif // CDEVENCPASSWDDLG_H
--- a/deviceencryption/DevEncNotifPlugin/src/DevEncNotifPluginImp.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
-* Copyright (c) 2005 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: Printing Framework DM Adapter.
-*
-*/
-
-// INCLUDE FILES
-
-#include <eikenv.h>
-#include <implementationproxy.h>
-
-#include "DevEncUids.hrh"
-#include "DevEncPasswdDlg.h"
-#include "DevEncLog.h"
-
-// CONSTANTS
-
-
-
-// ================= EXPORTED FUNCTIONS =======================================
-
-// ----------------------------------------------------------------------------
-//
-// Instantiate notifiers
-//
-// ----------------------------------------------------------------------------
-
-LOCAL_C void CreateNotifiersL( CArrayPtrFlat<MEikSrvNotifierBase2>* aNotifiers )
- {
- CDevEncPasswdDlg* passWdDlg = CDevEncPasswdDlg::NewLC();
- aNotifiers->AppendL( passWdDlg );
- CleanupStack::Pop( passWdDlg );
- }
-
-// ----------------------------------------------------------------------------
-//
-// Lib main entry point: Creates a notifiers array.
-//
-// ----------------------------------------------------------------------------
-
-EXPORT_C CArrayPtr<MEikSrvNotifierBase2>* NotifierArray()
- {
- CArrayPtrFlat<MEikSrvNotifierBase2>* notifiers = NULL;
-
- TRAPD( err, notifiers = new (ELeave)CArrayPtrFlat<MEikSrvNotifierBase2>( 1 ));
-
- if ( err == KErrNone )
- {
- if( notifiers )
- {
- TRAPD( err, CreateNotifiersL( notifiers ));
- if( err )
- {
- TInt count = notifiers->Count();
- while(count--)
- {
- (*notifiers)[count]->Release();
- }
- delete notifiers;
- notifiers = NULL;
- }
- }
- }
- else
- {
- DFLOG( "NotifierArray: CArrayPtrFlat: error" );
- }
-
- return notifiers;
- }
-
-// ----------------------------------------------------------------------------
-//
-// DLL entry point
-//
-// ----------------------------------------------------------------------------
-#ifndef EKA2
-GLDEF_C TInt E32Dll( TDllReason /* aReason */)
- {
- return( KErrNone );
- }
-#endif
-
-// ----------------------------------------------------------------------------
-//
-// ECOM
-//
-// ----------------------------------------------------------------------------
-
-const TImplementationProxy ImplementationTable[] =
- {
-#ifdef __EABI__
- {{KDevEncNotifPluginImplUid},(TFuncPtr)NotifierArray},
-#else
- IMPLEMENTATION_PROXY_ENTRY( KDevEncNotifPluginImplUid, NotifierArray ),
-#endif
- };
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
- {
- aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
- return ImplementationTable;
- }
-
-// End of file
-
--- a/deviceencryption/DevEncNotifPlugin/src/DevEncPasswdDlg.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/*
-* Copyright (c) 2005 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: CDevEncPasswdDlg implementation.
-*
-*/
-
-#include "DevEncPasswdDlg.h"
-#include "DevEncUids.hrh"
-#include "DevEncDef.h"
-#include <eiksrvui.h>
-#include <devencnotifplugin.rsg>
-#include <StringLoader.h>
-#include <bautils.h> // BAFL utils (for language file)
-#include <data_caging_path_literals.hrh>
-#include <utf.h>
-#include "DevEncLog.h"
-
-#define KErrorNoteTimeout 2000000
-_LIT(KFileDrive,"z:");
-_LIT(KResourceFileName, "DevEncNotifPlugin.rsc");
-
-CDevEncPasswdDlg::CDevEncPasswdDlg() :
- CActive( EPriorityStandard ), // Standard priority
- iNeedToCompleteMessage( EFalse )
- {
- }
-
-CDevEncPasswdDlg* CDevEncPasswdDlg::NewLC()
- {
- CDevEncPasswdDlg* self = new ( ELeave ) CDevEncPasswdDlg();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-CDevEncPasswdDlg* CDevEncPasswdDlg::NewL()
- {
- CDevEncPasswdDlg* self = CDevEncPasswdDlg::NewLC();
- CleanupStack::Pop(); // self;
- return self;
- }
-
-void CDevEncPasswdDlg::ConstructL()
- {
- DFLOG( "CDevEncPasswdDlg::ConstructL Begin" );
- CActiveScheduler::Add( this ); // Add to scheduler
-
- iEikEnv = CEikonEnv::Static();
- iTimer.CreateLocal();
- TFileName filename;
- filename += KFileDrive;
- filename += KDC_RESOURCE_FILES_DIR; // From data_caging_path_literals.hrh
- filename += KResourceFileName;
- BaflUtils::NearestLanguageFile( iEikEnv->FsSession(), filename );
- iResourceFileFlag = iEikEnv->AddResourceFileL( filename );
- DFLOG( "CDevEncPasswdDlg::ConstructL End" );
- }
-
-CDevEncPasswdDlg::~CDevEncPasswdDlg()
- {
- DFLOG( "CDevEncPasswdDlg::~CDevEncPasswdDlg Begin" );
- Cancel();
- iEikEnv->DeleteResourceFile( iResourceFileFlag );
- if ( iNeedToCompleteMessage )
- {
- iMessage.Complete( KErrDied );
- }
- iTimer.Close();
- DFLOG( "CDevEncPasswdDlg::~CDevEncPasswdDlg End" );
- }
-
-void CDevEncPasswdDlg::DoCancel()
- {
-
- }
-
-void CDevEncPasswdDlg::Release()
- {
- delete this;
- }
-
-CDevEncPasswdDlg::TNotifierInfo CDevEncPasswdDlg::RegisterL()
- {
- DFLOG( "CDevEncPasswdDlg::RegisterL Begin" );
- iInfo.iUid = TUid::Uid( KDevEncPasswdDlgUid );
- iInfo.iChannel = TUid::Uid( KDevEncPasswdDlgUid );
- iInfo.iPriority = ENotifierPriorityVHigh;
- DFLOG( "CDevEncPasswdDlg::RegisterL End" );
- return iInfo;
- }
-
-CDevEncPasswdDlg::TNotifierInfo CDevEncPasswdDlg::Info() const
- {
- return iInfo;
- }
-
-TPtrC8 CDevEncPasswdDlg::StartL(const TDesC8& /*aBuffer*/)
- {
- return TPtrC8();
- }
-
-void CDevEncPasswdDlg::StartL(const TDesC8& /*aBuffer*/, TInt aReplySlot, const RMessagePtr2& aMessage)
- {
- DFLOG( "CDevEncPasswdDlg::StartL Begin" );
- iMessage = aMessage;
- iReplySlot = aReplySlot;
- iNeedToCompleteMessage = ETrue;
-
- SetActive();
- iStatus = KRequestPending;
- TRequestStatus* stat = &iStatus;
- User::RequestComplete( stat, KErrNone );
- DFLOG( "CDevEncPasswdDlg::StartL End" );
- }
-
-void CDevEncPasswdDlg::Cancel()
- {
- CActive::Cancel();
- }
-
-TPtrC8 CDevEncPasswdDlg::UpdateL(const TDesC8& /*aBuffer*/)
- {
- return TPtrC8();
- }
-
-
-void CDevEncPasswdDlg::RunL()
- {
- DFLOG( "CDevEncPasswdDlg::RunL Begin" );
- TBuf<KMaxPasswordLength> passwdIn;
- TBuf8<KMaxPasswordLength> passwdOut;
-
- STATIC_CAST( CEikServAppUi*, iEikEnv->AppUi())->
- SuppressAppSwitching( ETrue );
-
- iDlg = CAknTextQueryDialog::NewL( passwdIn );
- iDlg->SetMaxLength( KMaxPasswordLength );
- DFLOG( "CDevEncPasswdDlg: PasswdDlg: ExecuteLD" );
- TInt resp = iDlg->ExecuteLD( R_DEVENC_PASSWD_QUERY );
- iDlg = NULL;
-
- if ( resp == EEikBidCancel )
- {
- iMessage.Complete( KErrCancel );
- iNeedToCompleteMessage = EFalse;
- }
- else
- {
- if ( CnvUtfConverter::ConvertFromUnicodeToUtf8( passwdOut, passwdIn ) )
- {
- iNote = new (ELeave) CAknErrorNote();
- HBufC* prompt = StringLoader::LoadLC( R_DEVENC_INVALID_PASSWD_STRING );
- iNote->ExecuteLD( *prompt );
- iNote = NULL;
- CleanupStack::PopAndDestroy( prompt );
-
- iTimer.After( iStatus, KErrorNoteTimeout );
- SetActive();
- return;
- }
- else
- {
- iMessage.WriteL( iReplySlot, passwdOut );
- iMessage.Complete( KErrNone );
- iNeedToCompleteMessage = EFalse;
- }
- }
- STATIC_CAST( CEikServAppUi*, iEikEnv->AppUi())->
- SuppressAppSwitching( EFalse );
- DFLOG( "CDevEncPasswdDlg::RunL End" );
- }
-
-TInt CDevEncPasswdDlg::RunError( TInt aError )
- {
- if( iNeedToCompleteMessage )
- {
- iMessage.Complete( aError );
- }
-
- iNeedToCompleteMessage = EFalse;
- iReplySlot = NULL;
- STATIC_CAST( CEikServAppUi*, iEikEnv->AppUi())->
- SuppressAppSwitching( EFalse );
-
- return aError;
- }
-
-// End of file
-
--- a/deviceencryption/DevEncUi/aif/DevEncUi_aif.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2005 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: RSS for creating the aif file for Device Encryption UI.
-*
-*/
-
-#include <aiftool.rh>
-#include <DevEncUids.hrh>
-
-RESOURCE AIF_DATA
- {
- app_uid=ESSYSAPP_APP_UID;
- hidden = KAppIsHidden;
- num_icons = 2;
- embeddability = KAppNotEmbeddable;
- newfile = KAppDoesNotSupportNewFile;
- }
-
-// End of File
--- a/deviceencryption/DevEncUi/data/DevEncUi.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,857 +0,0 @@
-/*
-* Copyright (c) 2005 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: Application resource file.
-*
-*/
-
-// RESOURCE IDENTIFIER
-NAME DENC // 4 letter ID
-
-// INCLUDES
-#include <appinfo.rh>
-#include <avkon.loc>
-#include <avkon.mbg> // For wait note
-#include <avkon.rh>
-#include <avkon.rsg>
-#include <eikon.rh>
-#include <devenc.loc>
-#include "DevEnc.hrh"
-#include "DevEncUiDef.h"
-
-
-// RESOURCE DEFINITIONS
-
-// -----------------------------------------------------------------------------
-//
-// Define the resource file signature
-// This resource should be empty.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE RSS_SIGNATURE
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-// Default Document Name
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_default_document_name
- {
- buf = "DevEncUi";
- }
-
-// -----------------------------------------------------------------------------
-//
-// Define default menu and CBA key.
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE EIK_APP_INFO
- {
- cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT;
- }
-
-// -----------------------------------------------------------------------------
-//
-// Localizable application information
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE LOCALISABLE_APP_INFO r_devencui_localisable_app_info
- {
- short_caption = qtn_apps_encryption_grid;
- caption_and_icon = CAPTION_AND_ICON_INFO
- {
- caption = qtn_encryption_title;
-
- // TBD: Is this valid?
- number_of_icons = 1;
- icon_file = "\\resource\\apps\\DevEncUi_aif.mif";
- };
- }
-
-// ---------------------------------------------------------
-//
-// r_devencui_mainview
-// Define main view
-//
-// ---------------------------------------------------------
-//
-RESOURCE AVKON_VIEW r_devencui_mainview
- {
- menubar = r_devencui_menubar_main;
- cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT;
- }
-
-// ---------------------------------------------------------
-//
-// r_devencui_encrview
-// Define encryption view
-//
-// ---------------------------------------------------------
-//
-RESOURCE AVKON_VIEW r_devencui_encrview
- {
- menubar = r_devencui_menubar_encr;
- cba = R_AVKON_SOFTKEYS_OPTIONS_BACK;
- }
-
-// ---------------------------------------------------------
-//
-// r_devencui_decrview
-// Define decryption view
-//
-// ---------------------------------------------------------
-//
-RESOURCE AVKON_VIEW r_devencui_decrview
- {
- menubar = r_devencui_menubar_decr;
- cba = R_AVKON_SOFTKEYS_OPTIONS_BACK;
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_devencui_menubar_encr
-// Menubar for NFEUI example
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_BAR r_devencui_menubar_encr
- {
- titles =
- {
- MENU_TITLE { menu_pane = r_devencui_menu_encr; }
- };
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_devencui_menubar_decr
-// Menubar for NFEUI example
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_BAR r_devencui_menubar_decr
- {
- titles =
- {
- MENU_TITLE { menu_pane = r_devencui_menu_decr; }
- };
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_devencui_menubar
-// Menubar for NFEUI example
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_BAR r_devencui_menubar_main
- {
- titles =
- {
- MENU_TITLE { menu_pane = r_devencui_menu_main; }
- };
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_devencui_menu_main
-// Main menu options
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_devencui_menu_main
- {
- items =
- {
- MENU_ITEM
- {
- command = EDevEncUiCommandChange;
- txt = qtn_options_change;
- flags = EEikMenuItemAction;
- },
- MENU_ITEM
- {
- command = EDevEncUiCommandHelp;
- txt = qtn_options_help;
- },
- MENU_ITEM
- {
- command = EAknSoftkeyExit;
- txt = qtn_options_exit;
- }
- };
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_devencui_menu_encr
-// Encryption menu options
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_devencui_menu_encr
- {
- items =
- {
- MENU_ITEM
- {
- command = EDevEncUiCommandHelp;
- txt = qtn_options_help;
- },
- MENU_ITEM
- {
- command = EAknSoftkeyExit;
- txt = qtn_options_exit;
- }
- };
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_devencui_menu_decr
-// Decryption menu options
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_devencui_menu_decr
- {
- items =
- {
- MENU_ITEM
- {
- command = EDevEncUiCommandHelp;
- txt = qtn_options_help;
- },
- MENU_ITEM
- {
- command = EAknSoftkeyExit;
- txt = qtn_options_exit;
- }
- };
- }
-
-//----------------------------------------------------
-//
-// r_settingslist_setting_item_list
-// settings item list for the application
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_SETTING_ITEM_LIST r_devencui_setting_item_list
- {
- items =
- {
- AVKON_SETTING_ITEM
- {
- identifier = EPhoneEncryptionSettingItem;
- setting_page_resource = r_settingslist_phonememory_setting_page;
- associated_resource = r_settingslist_phonememory_popup_setting_texts;
- name = qtn_encryption_phonememory;
- },
- AVKON_SETTING_ITEM
- {
- identifier = EMemoryCardEncryptionSettingItem;
- setting_page_resource = r_settingslist_memorycard_setting_page;
- associated_resource = r_settingslist_memorycard_popup_setting_texts;
- name = qtn_encryption_memorycard;
- }
- };
- }
-
-//----------------------------------------------------
-//
-// r_settingslist_phonememory_setting_page
-// hints setting page for the setting list
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_SETTING_PAGE r_settingslist_phonememory_setting_page
- {
- label = qtn_encryption_phonememory_setting_title;
- type = EAknCtPopupSettingList;
- editor_resource_id = r_settingslist_phonememory_popup_setting_list;
- }
-
-//----------------------------------------------------
-//
-// r_settingslist_phonememory_encryption_setting_page
-// hints setting page for the setting list
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_SETTING_PAGE r_settingslist_memorycard_setting_page
- {
- label = qtn_encryption_memorycard_setting_title;
- type = EAknCtPopupSettingList;
- editor_resource_id = r_settingslist_memorycard_popup_setting_list;
- }
-
-//----------------------------------------------------
-//
-// r_settingslist_phonememory_popup_setting_texts
-// popup setting list for the hint item of the
-// setting list
-//
-//----------------------------------------------------
-//
-RESOURCE POPUP_SETTING_LIST r_settingslist_phonememory_popup_setting_list
- {
- }
-
-//----------------------------------------------------
-//
-// r_settingslist_phonememory_popup_setting_texts
-// popup setting list for the hint item of the
-// setting list
-//
-//----------------------------------------------------
-//
-RESOURCE POPUP_SETTING_LIST r_settingslist_memorycard_popup_setting_list
- {
- }
-
-//----------------------------------------------------
-//
-// r_settingslist_hints_popup_setting_texts
-// popped up and non-popped up texts for the hint
-// item of the setting list
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_settingslist_phonememory_popup_setting_texts
- {
- setting_texts_resource = r_settingslist_encryption_state_texts;
- popped_up_texts_resource = r_settingslist_hints_popup_texts;
- }
-
-//----------------------------------------------------
-//
-// r_settingslist_hints_popup_setting_texts
-// popped up and non-popped up texts for the hint
-// item of the setting list
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_settingslist_memorycard_popup_setting_texts
- {
- setting_texts_resource = r_settingslist_encryption_state_texts;
- popped_up_texts_resource = r_settingslist_hints_popup_texts;
- }
-
-//----------------------------------------------------
-//
-// r_settingslist_hints_texts
-// non-popped up texts for the hint
-// item of the setting list
-//
-//----------------------------------------------------
-//
-RESOURCE ARRAY r_settingslist_encryption_state_texts
- {
- items =
- {
- AVKON_ENUMERATED_TEXT
- {
- value = 1;
- text = qtn_encryption_phonememory_setting_on;
- },
- AVKON_ENUMERATED_TEXT
- {
- value = 0;
- text = qtn_encryption_phonememory_setting_off;
- }
-
- };
- }
-
-//----------------------------------------------------
-//
-// r_settingslist_hints_popup_texts
-// popped up texts for the hint
-// item of the setting list
-//
-//----------------------------------------------------
-//
-RESOURCE ARRAY r_settingslist_hints_popup_texts
- {
- items =
- {
- LBUF
- {
- txt = qtn_encryption_phonememory_setting_on;
- },
- LBUF
- {
- txt = qtn_encryption_phonememory_setting_off;
- }
- };
- }
-
-//----------------------------------------------------
-//
-// r_devencui_confirmation_query
-// confirmation query for the application
-//
-//----------------------------------------------------
-//
-RESOURCE DIALOG r_devencui_confirmation_query
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EDevEncUiDlgCIdConfirmationQuery;
- control = AVKON_CONFIRMATION_QUERY
- {
- layout = EConfirmationQueryLayout;
- label = qtn_encryption_note_lock;
- };
- }
- };
- }
-
-// ---------------------------------------------------------
-//
-// r_devencui_encrypt_confirmation_query_dialog
-// About dialog - show version and copyright info etc.
-//
-// ---------------------------------------------------------
-//
-
-RESOURCE DIALOG r_devencui_encrypt_confirmation_query_dialog
- {
- flags = EGeneralQueryFlags | EEikDialogFlagNoBorder | EEikDialogFlagNoShadow;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items=
- {
- DLG_LINE
- {
- type = EAknCtPopupHeadingPane;
- id = EAknMessageQueryHeaderId;
- control = AVKON_HEADING
- {
- label = qtn_encryption_note_header;
- headinglayout = R_AVKON_WML_SIGN_QUERY_HEADING_PANE;
- };
- },
- DLG_LINE
- {
- type = EAknCtMessageQuery;
- id = EAknMessageQueryContentId;
- control = AVKON_MESSAGE_QUERY
- {
- message = qtn_encryption_note_lock;
- };
- }
- };
- }
-
-//----------------------------------------------------
-//
-// r_devencui_data_query
-// data query for the application
-//
-//----------------------------------------------------
-RESOURCE DIALOG r_devencui_data_query
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EDevEncUiDlgCIdDataQuery;
- control = AVKON_DATA_QUERY
- {
- layout = EDataLayout;
- control =
- EDWIN
- {
- width = KMaxFileNameLength;
- lines = 1;
- maxlength = KMaxFileNameLength;
- };
- };
- }
- };
- }
-
-//----------------------------------------------------
-//
-// r_devencui_code_query
-// secret data query for the application
-//
-//----------------------------------------------------
-RESOURCE DIALOG r_devencui_code_query
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EDevEncUiSecretCodeQueryId;
- control = AVKON_DATA_QUERY
- {
- layout = ECodeLayout;
- label = qtn_encryption_passphrase_ask;
- control = SECRETED
- {
- num_letters = KMaxPasswordLength;
- };
- };
- }
- };
- }
-
-//----------------------------------------------------
-//
-// r_devencui_list_query
-// list query for the application
-//
-//----------------------------------------------------
-//
-//RESOURCE AVKON_LIST_QUERY r_devencui_list_query
-// {
-// items =
-// {
-// AVKON_LIST_QUERY_DLG_LINE
-// {
-// control = AVKON_LIST_QUERY_CONTROL
-// {
-// listtype = EAknCtSinglePopupMenuListBox;
-// heading = qtn_encryption_selectkey;
-// listbox = AVKON_LIST_QUERY_LIST
-// {
-// // array of items will be defined dynamically
-// };
-// };
-// }
-// };
-// }
-RESOURCE DIALOG r_devencui_list_query
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtListQueryControl;
- id = EListQueryControl;
- control = AVKON_LIST_QUERY_CONTROL
- {
- listtype = EAknCtSinglePopupMenuListBox;
- heading = qtn_encryption_selectkey;
- listbox = AVKON_LIST_QUERY_LIST
- {
- };
- };
- }
- };
- }
-
-// ---------------------------------------------------------
-// r_devencui_encryption_listbox
-//
-//
-// ---------------------------------------------------------
-//
-RESOURCE LISTBOX r_devencui_encryption_listbox
- {
- array_id = r_devencui_encryption_listbox_items;
- flags = EAknListBoxSelectionList;
- }
-
-// ---------------------------------------------------------
-// r_devencui_encryption_listbox_items
-//
-//
-// ---------------------------------------------------------
-//
-RESOURCE ARRAY r_devencui_encryption_listbox_items
- {
- items =
- {
- LBUF
- {
- txt = "\t"qtn_encryption_encrypt"\t\t";
- },
- LBUF
- {
- txt = "\t"qtn_encryption_encryptsave"\t\t";
- },
- LBUF
- {
- txt = "\t"qtn_encryption_encryptload"\t\t";
- }
- };
- }
-
-// ---------------------------------------------------------
-// r_devencui_decryption_listbox
-//
-//
-// ---------------------------------------------------------
-//
-RESOURCE LISTBOX r_devencui_decryption_listbox
- {
- array_id = r_devencui_decryption_listbox_items;
- flags = EAknListBoxSelectionList;
- }
-
-// ---------------------------------------------------------
-// r_devencui_decryption_listbox_items
-//
-//
-// ---------------------------------------------------------
-//
-RESOURCE ARRAY r_devencui_decryption_listbox_items
- {
- items =
- {
- LBUF
- {
- txt = "\t"qtn_encryption_decrypt"\t\t";
- },
- LBUF
- {
- txt = "\t"qtn_encryption_decryptturnoff"\t\t";
- }
- };
- }
-
-RESOURCE DIALOG r_devencui_creating_key_waitnote
- {
- flags = EAknWaitNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EDevEncUiWaitNoteId;
- control = AVKON_NOTE
- {
- layout = EWaitLayout;
- singular_label = qtn_encryption_note_wait;
- //imagefile = "z:\\system\data\avkon.mbm";
- imagefile = "z:\\resource\apps\avkon2.mbm";
- imageid = EMbmAvkonQgn_note_progress;
- imagemask = EMbmAvkonQgn_note_progress_mask;
- animation = R_QGN_GRAF_WAIT_BAR_ANIM;
- };
- }
- };
- }
-
-// -----------------------------------------------------------------------------
-//
-// Resources for messages.
-//
-// -----------------------------------------------------------------------------
-
-RESOURCE TBUF r_devencui_text_encryption_on { buf =
- qtn_encryption_phonememory_setting_on; }
-
-RESOURCE TBUF r_devencui_text_encryption_off { buf =
- qtn_encryption_phonememory_setting_off; }
-
-RESOURCE TBUF r_devencui_text_apps_grid { buf =
- qtn_apps_encryption_grid; }
-
-RESOURCE TBUF r_devencui_text_title { buf =
- qtn_encryption_title; }
-
-RESOURCE TBUF r_devencui_text_phonememory { buf =
- qtn_encryption_phonememory; }
-
-RESOURCE TBUF r_devencui_text_memorycard { buf =
- qtn_encryption_memorycard; }
-
-RESOURCE TBUF r_devencui_text_note_lock { buf =
- qtn_encryption_note_lock; }
-
-RESOURCE TBUF r_devencui_text_note_encrypting { buf =
- qtn_encryption_note_encrypting; }
-
-RESOURCE TBUF r_devencui_text_note_phone_decrypting { buf =
- qtn_encryption_note_phone_decrypting; }
-
-RESOURCE TBUF r_devencui_text_encrypt { buf =
- qtn_encryption_encrypt; }
-
-RESOURCE TBUF r_devencui_text_encryptsave { buf =
- qtn_encryption_encryptsave; }
-
-RESOURCE TBUF r_devencui_text_encryptload { buf =
- qtn_encryption_encryptload; }
-
-RESOURCE TBUF r_devencui_text_note_wait { buf =
- qtn_encryption_note_wait; }
-
-RESOURCE TBUF r_devencui_text_passphrase_protect { buf =
- qtn_encryption_passphrase_protect; }
-
-RESOURCE TBUF r_devencui_text_filename { buf =
- qtn_encryption_filename; }
-
-RESOURCE TBUF r_devencui_text_note_saveinfo { buf =
- qtn_encryption_note_saveinfo; }
-
-RESOURCE TBUF r_devencui_text_selectkey { buf =
- qtn_encryption_selectkey; }
-
-RESOURCE TBUF r_devencui_text_passphrase_ask { buf =
- qtn_encryption_passphrase_ask; }
-
-RESOURCE TBUF r_devencui_text_note_memorycard_encrypted { buf =
- qtn_encryption_note_memorycard_encrypted; }
-
-RESOURCE TBUF r_devencui_text_decrypt { buf =
- qtn_encryption_decrypt; }
-
-RESOURCE TBUF r_devencui_text_decryptturnoff { buf =
- qtn_encryption_decryptturnoff; }
-
-RESOURCE TBUF r_devencui_text_note_decrypting { buf =
- qtn_encryption_note_decrypting; }
-
-RESOURCE TBUF r_devencui_text_note_decryptingdestroy { buf =
- qtn_encryption_note_decryptingdestroy; }
-
-RESOURCE TBUF r_devencui_text_note_decrypt_loadkey { buf =
- qtn_encryption_note_decrypt_loadkey; }
-
-RESOURCE TBUF r_devencui_text_note_insertunencrypted { buf =
- qtn_encryption_note_insertunencrypted; }
-
-RESOURCE TBUF r_devencui_text_note_decrypt_nomemrycard { buf =
- qtn_encryption_note_decrypt_nomemrycard; }
-
-RESOURCE TBUF r_devencui_text_note_memorycard_unencrypted { buf =
- qtn_encryption_note_memorycard_unencrypted; }
-
-RESOURCE TBUF r_devencui_text_note_insertencrypted { buf =
- qtn_encryption_note_insertencrypted; }
-
-RESOURCE TBUF r_devencui_text_note_encryptioninterrupt { buf =
- qtn_encryption_note_encryptioninterrupt; }
-
-RESOURCE TBUF r_devencui_text_phonememory_setting_title { buf =
- qtn_encryption_phonememory_setting_title; }
-
-RESOURCE TBUF r_devencui_text_memorycard_setting_title { buf =
- qtn_encryption_memorycard_setting_title; }
-
-RESOURCE TBUF r_devencui_text_note_wrongkeyfile { buf =
- qtn_encryption_note_wrongkeyfile; }
-
-RESOURCE TBUF r_devencui_text_note_unusedmemorycard { buf =
- qtn_encryption_note_unusedmemorycard; }
-
-RESOURCE TBUF r_devencui_text_encrypt_process { buf =
- qtn_encryption_encrypt_process; }
-
-RESOURCE TBUF r_devencui_text_decrypt_process { buf =
- qtn_encryption_decrypt_process; }
-
-RESOURCE TBUF r_devencui_text_note_insertoff_unusedmemorycard { buf =
- qtn_encryption_note_insertoff_unusedmemorycard; }
-
-RESOURCE TBUF r_devencui_text_note_inserton_unusedmemorycard { buf =
- qtn_encryption_note_inserton_unusedmemorycard; }
-
-RESOURCE TBUF r_devencui_text_phonememory_setting_on { buf =
- qtn_encryption_phonememory_setting_on; }
-
-RESOURCE TBUF r_devencui_text_phonememory_setting_off { buf =
- qtn_encryption_phonememory_setting_off; }
-
-RESOURCE TBUF r_devencui_text_memorycard_setting_on { buf =
- qtn_encryption_memorycard_setting_on; }
-
-RESOURCE TBUF r_devencui_text_memorycard_setting_off { buf =
- qtn_encryption_memorycard_setting_off; }
-
-RESOURCE TBUF r_devencui_text_apps_list { buf =
- qtn_apps_encryption_list; }
-
-RESOURCE TBUF r_devencui_note_header { buf =
- qtn_encryption_note_header; }
-
-RESOURCE TBUF r_devencui_note_admin_control { buf =
- qtn_encryption_note_admin_control; }
-
-// Own text buffers
-
-RESOURCE TBUF r_devencui_text_corrupted { buf =
- qtn_encryption_corrupted; }
-
-RESOURCE TBUF r_devencui_text_battery_low { buf =
- qtn_encryption_battery_low; }
-
-RESOURCE TBUF r_devencui_text_no_keys_found { buf =
- qtn_encryption_note_no_keys_found; }
-
-RESOURCE TBUF r_devencui_text_invalid_password { buf =
- qtn_encryption_note_invalid_password; }
-
-RESOURCE TBUF r_devencui_text_key_error { buf =
- qtn_encryption_note_key_error; }
-
-RESOURCE TBUF r_devencui_text_bad_name { buf =
- qtn_encryption_note_bad_name; }
-
-RESOURCE TBUF r_devencui_text_file_exists { buf =
- qtn_encryption_note_file_exists; }
-
-RESOURCE TBUF r_devencui_fota_not_poss { buf =
- qtn_conf_encr_not_poss; }
-
-//----------------------------------------------------
-//
-// r_devencui_confirmation_query_ok_empty
-//
-//----------------------------------------------------
-//
-RESOURCE DIALOG r_devencui_confirmation_query_ok_empty
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
- items=
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control = AVKON_CONFIRMATION_QUERY
- {
- layout = EConfirmationLayout;
- };
- }
- };
- }
-
-// END OF FILE
--- a/deviceencryption/DevEncUi/data/DevEncUi_reg.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2005 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: Application registration resource file.
-*
-*/
-
-#include <appinfo.rh>
-#include <data_caging_paths_strings.hrh>
-#include <devencui.rsg>
-#include <devenc.loc>
-#include "DevEncUids.hrh"
-
-UID2 KUidAppRegistrationResourceFile
-UID3 KDevEncUiUid
-
-RESOURCE APP_REGISTRATION_INFO
- {
- app_file = "DevEncUi";
- localisable_resource_file = APP_RESOURCE_DIR"\\DevEncUi";
- localisable_resource_id = R_DEVENCUI_LOCALISABLE_APP_INFO;
- embeddability = KAppEmbeddable;
- hidden = KAppIsHidden;
- newfile = KAppDoesNotSupportNewFile;
- datatype_list =
- {
- DATATYPE
- {
- priority = EDataTypePriorityHigh;
- type = "application/vnd.nokia.pk5";
- }
- };
- }
--- a/deviceencryption/DevEncUi/group/DevEncUi.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
-* Copyright (c) 2005 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 specification file for DevEncUi.
-*
-*/
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-#include "../../common/DevEncUids.hrh"
-
-TARGET devencui.exe
-TARGETTYPE exe
-UID 0x0 KDevEncUiUid
-//EPOCSTACKSIZE 0x5000
-
-VENDORID KDevEncNokiaVID
-CAPABILITY CAP_GENERAL_DLL CAP_APPLICATION WriteDeviceData DiskAdmin -DRM
-
-SOURCEPATH ../src
-SOURCE DevEncUi.cpp
-SOURCE DevEncUiApplication.cpp
-SOURCE DevEncUiAppui.cpp
-SOURCE DevEncUiCreateKeyProcess.cpp
-SOURCE DevEncUiDecrView.cpp
-SOURCE DevEncUiDecrViewContainer.cpp
-SOURCE DevEncUiDocument.cpp
-SOURCE DevEncUiEncrView.cpp
-SOURCE DevEncUiEncrViewContainer.cpp
-SOURCE DevEncUiEncryptionOperator.cpp
-SOURCE DevEncUiFileManager.cpp
-SOURCE DevEncUiMainView.cpp
-SOURCE DevEncUiMainViewContainer.cpp
-SOURCE DevEncUiMemoryEntity.cpp
-SOURCE DevEncUiSecretMinMaxCodeQuery.cpp
-SOURCE DevEncUiSettingItemList.cpp
-SOURCE DevEncUiTimer.cpp
-
-SOURCEPATH ../../common
-SOURCE DevEncLog.cpp
-
-SOURCEPATH ../data
-
-START RESOURCE DevEncUi.rss
-HEADER
-TARGETPATH APP_RESOURCE_DIR
-LANGUAGE_IDS
-END //RESOURCE
-
-START RESOURCE DevEncUi_reg.rss
-DEPENDS devencui.rsg
-HEADER
-TARGETPATH /private/10003a3f/apps
-END //RESOURCE
-
-USERINCLUDE ../inc
-USERINCLUDE ../../common
-
-APP_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE /epoc32/include/platform/mw/uikon
-
-LIBRARY aknicon.lib
-LIBRARY aknnotify.lib
-LIBRARY aknskins.lib
-LIBRARY aknskinsrv.lib
-LIBRARY aknswallpaperutils.lib
-LIBRARY apparc.lib
-LIBRARY avkon.lib
-LIBRARY bafl.lib
-LIBRARY centralrepository.lib
-LIBRARY charconv.lib
-LIBRARY commonengine.lib
-LIBRARY cone.lib
-LIBRARY devenccommonutils.lib
-LIBRARY efsrv.lib
-LIBRARY egul.lib
-LIBRARY eikcoctl.lib
-LIBRARY eikcore.lib
-LIBRARY eikctl.lib
-LIBRARY eikdlg.lib
-LIBRARY eiksrv.lib
-LIBRARY estor.lib
-LIBRARY euser.lib
-LIBRARY hlplch.lib // Help launcher
-LIBRARY platformenv.lib // for system path literals
-LIBRARY secui.lib
-LIBRARY ws32.lib
-LIBRARY terminalcontrol.lib
-DEBUGLIBRARY flogger.lib
-
-// End of File
--- a/deviceencryption/DevEncUi/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2005 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: Provides the information required for building DevEncUi.
-*
-*/
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-// Exported headers
-../loc/devenc.loc APP_LAYER_LOC_EXPORT_PATH(devenc.loc)
-
-//../inc/encryption.hlp.hrh /epoc32/include/cshelp/encryption.hlp.hrh
-
-PRJ_EXTENSIONS
-START EXTENSION s60/mifconv
- OPTION TARGETFILE DevEncUi_aif.mif
- OPTION SOURCES \
- -c8,8 qgn_menu_encryption.svg
-END
-
-PRJ_MMPFILES
-DevEncUi.mmp
-
-//gnumakefile Icons_aif_scalable_dc.mk
-
-// End of file
--- a/deviceencryption/DevEncUi/group/qgn_menu_encryption.svg Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
- <!ENTITY ns_svg "http://www.w3.org/2000/svg">
- <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg version="1.1" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="44" height="44" viewBox="0 0 44 44"
- overflow="visible" enable-background="new 0 0 44 44" xml:space="preserve">
-<rect fill="none" width="44" height="44"/>
-<g>
- <path d="M10.21,2.25c-1.654,0-3,1.346-3,3v26c0,1.654,1.346,3,3,3h14c1.654,0,3-1.346,3-3v-26c0-1.654-1.346-3-3-3H10.21z"/>
- <path fill="#625C52" d="M26.21,31.25c0,1.102-0.9,2-2,2h-14c-1.1,0-2-0.898-2-2v-26c0-1.1,0.9-2,2-2h14c1.1,0,2,0.9,2,2V31.25z"/>
- <path fill="#B2A99F" d="M24.21,3.25h-14c-1.1,0-2,0.9-2,2v4.432l1-0.063V5.25h16v7.381l1-0.5V5.25
- C26.21,4.15,25.31,3.25,24.21,3.25z"/>
- <rect x="10.21" y="6.25" fill="#ACA49C" width="14" height="18"/>
- <polygon fill="#FFFFFF" points="23.21,13.648 23.21,7.25 11.21,7.25 11.21,19.648 "/>
- <path fill="#4C4642" d="M19.21,32.25c0.553,0,1-0.449,1-1v-4c0-0.551-0.447-1-1-1h-4c-0.553,0-1,0.449-1,1v4c0,0.551,0.447,1,1,1
- H8.489c0.348,0.594,0.986,1,1.721,1h14c0.734,0,1.373-0.406,1.721-1H19.21z"/>
- <rect x="15.21" y="27.25" fill="#FFFFFF" width="4" height="4"/>
-</g>
-<g>
- <g>
- <path d="M37.214,36.25l-5.586,4H20.214c-1.1,0-2-0.9-2-2v-15c0-1.1,0.9-2,2-2h15c1.1,0,2,0.9,2,2V36.25z"/>
- <path fill="#2C5190" d="M20.214,22.25c-0.265,0-0.516,0.104-0.705,0.295c-0.19,0.189-0.295,0.44-0.295,0.705v15
- c0,0.265,0.104,0.516,0.295,0.705c0.189,0.19,0.44,0.295,0.705,0.295c0,0,10.224,0,11,0c0.463-0.464,4.537-2.951,5-3.414
- c0-0.776,0-12.586,0-12.586c0-0.552-0.448-1-1-1H20.214z"/>
- <path fill="#708ACE" d="M20.214,22.25c-0.265,0-0.516,0.104-0.705,0.295c-0.19,0.189-0.295,0.44-0.295,0.705v12l17-8.5v-3.5
- c0-0.552-0.448-1-1-1H20.214z"/>
- <rect x="32.214" y="25.25" fill="#E4C787" width="4" height="2"/>
- <rect x="32.214" y="29.25" fill="#E4C787" width="4" height="2"/>
- <rect x="32.214" y="33.25" fill="#E4C787" width="4" height="2"/>
- <path d="M30.214,28.776c0-1.395-1.132-2.526-2.526-2.526c-1.396,0-2.527,1.132-2.527,2.526c0,0.933,0.51,1.739,1.264,2.177
- l-2,3.562l-0.242,1.048l6.033-0.048l-1.265-4.562C29.7,30.516,30.214,29.709,30.214,28.776z"/>
- </g>
- <path fill="#FFFFFF" d="M29.214,28.776c0-1.395-1.132-2.526-2.526-2.526c-1.396,0-2.527,1.132-2.527,2.526
- c0,0.933,0.51,1.739,1.264,2.177l-1,3.562h4.526l-1-3.562C28.7,30.516,29.214,29.709,29.214,28.776z"/>
-</g>
-<g>
- <path d="M13.553,13.502c-1.413,0-1.537-1.207-1.537-2.37c0-1.052,0.174-2.26,1.562-2.26c1.369,0,1.512,1.195,1.512,2.26
- C15.09,12.308,14.953,13.502,13.553,13.502z M13.553,9.444c-0.492,0-0.523,0.691-0.523,1.688c0,1.163,0.05,1.798,0.523,1.798
- c0.466,0,0.517-0.635,0.517-1.798C14.07,10.129,14.039,9.444,13.553,9.444z"/>
- <path d="M18.706,13.452h-2.863v-0.535h0.959V9.656l-0.959,0.206V9.326l1.419-0.441h0.541v4.032h0.903V13.452z"/>
- <path d="M20.872,13.502c-1.413,0-1.537-1.207-1.537-2.37c0-1.052,0.174-2.26,1.562-2.26c1.369,0,1.513,1.195,1.513,2.26
- C22.409,12.308,22.272,13.502,20.872,13.502z M20.872,9.444c-0.492,0-0.523,0.691-0.523,1.688c0,1.163,0.05,1.798,0.523,1.798
- c0.466,0,0.517-0.635,0.517-1.798C21.389,10.129,21.357,9.444,20.872,9.444z"/>
- <path d="M15.047,19.493h-2.863v-0.535h0.959v-3.261l-0.959,0.205v-0.535l1.419-0.441h0.542v4.032h0.902V19.493z"/>
- <path d="M17.213,19.543c-1.413,0-1.537-1.208-1.537-2.371c0-1.052,0.174-2.259,1.562-2.259c1.369,0,1.513,1.194,1.513,2.259
- C18.75,18.348,18.613,19.543,17.213,19.543z M17.213,15.485c-0.492,0-0.523,0.69-0.523,1.687c0,1.163,0.05,1.799,0.523,1.799
- c0.466,0,0.516-0.636,0.516-1.799C17.729,16.17,17.697,15.485,17.213,15.485z"/>
- <path d="M22.365,19.493h-2.862v-0.535h0.958v-3.261l-0.958,0.205v-0.535l1.419-0.441h0.541v4.032h0.902V19.493z"/>
-</g>
-</svg>
--- a/deviceencryption/DevEncUi/inc/DevEncUi.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-* Copyright (c) 2005 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: Enumerations used in the application UI.
-*
-*/
-
-#ifndef __DEVENCUI_HRH__
-#define __DEVENCUI_HRH__
-
-// DevEncUi enumerate command codes
-enum TDevEncUiCommandIds
- {
- EDevEncUiCommandChange = 4242, // start value must not be 0
- EDevEncUiCommandHelp,
-
- // These MMC-related commands are used in the Encryption view.
- EDevEncUiCommandEncryptWithoutSavingKey,
- EDevEncUiCommandEncryptAndSaveKey,
- EDevEncUiCommandEncryptWithRestoredKey,
-
- // These MMC-related commands are used in the Decryption view.
- EDevEncUiCommandDecrypt,
- EDevEncUiCommandDecryptAndTurnOffEncryption,
-
- EDevEncUiInternalCommandEncrypt,
- EDevEncUiInternalCommandDecrypt,
-
- // ID's of some UI items
- EPhoneEncryptionSettingItem,
- EMemoryCardEncryptionSettingItem,
- EDevEncUiDlgCIdConfirmationQuery,
- EDevEncUiDlgCIdDataQuery,
- EDevEncUiWaitNoteId,
- EDevEncUiSecretCodeQueryId
- };
-
-enum TDevEncUiMemoryType
- {
- EPhoneMemory,
- EMemoryCard
- };
-
-enum TDevEncUiMemoryEntityState
- {
- EMemStateUnknown,
- EMemDecrypted,
- EMemEncrypting,
- EMemEncrypted,
- EMemDecrypting,
- EMemCorrupted
- };
-
-enum TDevEncUiViewIds
- {
- EDevEncUiMainViewId = 1,
- EDevEncUiEncrViewId,
- EDevEncUiDecrViewId,
- EDevEncUiNumberOfViews
- };
-
-#endif // __DEVENCUI_HRH__
--- a/deviceencryption/DevEncUi/inc/DevEncUi.pan Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2005 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: Application panic codes.
-*
-*/
-
-#ifndef __DEVENCUI_PAN__
-#define __DEVENCUI_PAN__
-
-/** DevEncUi application panic codes */
-enum TDevEncUiPanics
- {
- EDevEncUi = 1
- // add further panics here
- };
-
-inline void Panic( TDevEncUiPanics aReason )
- {
- _LIT(applicationName,"DevEncUi");
- User::Panic(applicationName, aReason);
- }
-
-#endif // __DEVENCUI_PAN__
--- a/deviceencryption/DevEncUi/inc/DevEncUiApplication.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 2005 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: Application entry point.
-*
-*/
-
-#ifndef __DEVENCUIAPPLICATION_H__
-#define __DEVENCUIAPPLICATION_H__
-
-// INCLUDES
-#include <aknapp.h>
-
-// CLASS DECLARATION
-
-/**
-* CDevEncUiApplication application class.
-* Provides factory to create concrete document object.
-* An instance of CDevEncUiApplication is the application part of the
-* AVKON application framework for the DEVENCUI example application.
-*/
-class CDevEncUiApplication : public CAknApplication
- {
- public: // Functions from base classes
-
- /**
- * From CApaApplication, AppDllUid.
- * @return Application's UID (KUidDEVENCUIApp).
- */
- TUid AppDllUid() const;
-
- protected: // Functions from base classes
-
- /**
- * From CApaApplication, CreateDocumentL.
- * Creates CDevEncUiDocument document object. The returned
- * pointer in not owned by the CDevEncUiApplication object.
- * @return A pointer to the created document object.
- */
- CApaDocument* CreateDocumentL();
- };
-
-#endif // __DEVENCUIAPPLICATION_H__
-
-// End of File
--- a/deviceencryption/DevEncUi/inc/DevEncUiAppui.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
-* Copyright (c) 2005 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: AppUi class of the application.
-*
-*/
-
-#ifndef __DEVENCUIAPPUI_H__
-#define __DEVENCUIAPPUI_H__
-
-// INCLUDES
-#include <aknViewAppUi.h>
-#include <AknQueryDialog.h>
-#include <DevEncMmcObserver.h>
-#include "DevEncUiMemInfoObserver.h"
-#include "DevEncUiTimer.h"
-
-// FORWARD DECLARATIONS
-class CDevEncUiEncrView;
-class CDevEncUiEncryptionOperator;
-class CDevEncUiDecrView;
-class CDevEncUiMainView;
-class CDevEncUiMemoryEntity;
-class CRepository;
-
-// CLASS DECLARATION
-/**
-* CDevEncUiAppUi application UI class.
-* Interacts with the user through the UI and request message processing
-* from the handler class
-*/
-class CDevEncUiAppUi : public CAknViewAppUi,
- public MMemoryCardObserver,
- public MDevEncUiMemInfoObserver,
- public MDevEncUiTimerCallback
- {
- public: // Constructors and destructor
-
- /**
- * ConstructL.
- * 2nd phase constructor.
- */
- void ConstructL();
-
- /**
- * CDevEncUiAppUi.
- * C++ default constructor. This needs to be public due to
- * the way the framework constructs the AppUi
- */
- CDevEncUiAppUi();
-
- /**
- * Virtual Destructor.
- */
- virtual ~CDevEncUiAppUi();
-
- /**
- * Dynamically initialises a menu pane.
- * The Uikon framework calls this function, if it is implemented in a
- * menu's observer, immediately before the menu pane is activated.
- */
- void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
-
- /**
- * From MMemoryCardObserver.
- */
- void MMCStatusChangedL();
-
- /**
- * From MDevEncUiMemInfoObserver.
- */
- void UpdateInfo( TDevEncUiMemoryType aType,
- TUint aState,
- TUint aProgress );
-
- /**
- * From MDevEncUiTimerCallback
- */
- void Timeout();
-
- protected:
- /**
- * From CAknViewAppUi. Handles changes in keyboard focus when an
- * application switches to foreground.
- */
- void HandleForegroundEventL( TBool aForeground );
-
- private: // Functions from base classes
-
- /**
- * From CEikAppUi, HandleCommandL.
- * Takes care of command handling.
- * @param aCommand Command to be handled.
- */
- void HandleCommandL( TInt aCommand );
-
- /**
- * Displays the context-sensitive help.
- */
- void DisplayHelpL();
-
- void DoUpdateInfoL( TDevEncUiMemoryType aType,
- TUint aState );
-
- /**
- * From CEikAppUi.
- * Command line processing.
- *
- * When DocumentHandler wants to launch NpdViewer as a standalone
- * application, it use RApaLsSession::StartDocument(filename, ...).
- *
- * CEikonEnv::ConstructAppFromCommandLineL(...), at first, pass
- * the filename information to ProcessCommandParametersL
- * correctly. But default CEikAppUi::ProcessCommandParametersL
- * overwrite it's reference parameter (TFileName& aDocumentName) to
- * application's defualt document name such as "NpdViewer.ini".
- * (In EikAppUi.cpp,
- * Application()->GetDefaultDocumentFileName(aDocumentName);
- * do this).
- * So, when CEikonEnv::ConstructAppFromCommandLineL(...) calls
- * CApaDocument::OpenFileL(...), the filename information from
- * Document Handler had been lost.
- *
- * On the other hand, when DocumentHandler wants to launch NpdViewer
- * as a embeded application, it use CApaDocument::OpenFileL() directly
- * and never call ProcessCommandParametersL.
- *
- * So, in order to pass a correct filename information to OpenFileL
- * in both case, we decide to override this function.
- *
- * @param aCommand command. (ignored)
- * @param aDocumentName Filename.
- * @param aTail optional command line parampeter. (ignored)
- * @return ETrue if aDocumentName file exists.
- */
- TBool ProcessCommandParametersL(
- TApaCommand aCommand,
- TFileName& aDocumentName,
- const TDesC8& aTail);
-
- /**
- * From CEikAppUi.
- * Start fileviewer with specified filename.
- * Both standalone and embeded case, this function is really called
- *
- * @param aFilename Filename to view.
- */
- void OpenFileL(const TDesC& aFilename);
-
- /**
- * Copy a file to a new path (Others folder)
- **/
- void CopyL(const TDesC &anOld, const TDesC &aNew);
-
- public:
-
- /**
- * Start fileviewer with specified file handle.
- * Both standalone and embeded case, this function is really called
- *
- * @param aFile File handle.
- */
- void OpenFileL(RFile& aFile);
-
- private: // Data
-
- /** Created by this class, ownership transferred to CAknAppUi */
- CDevEncUiMainView* iMainView;
-
- /** Created by this class, ownership transferred to CAknAppUi */
- CDevEncUiEncrView* iEncryptionView;
-
- /** Created by this class, ownership transferred to CAknAppUi */
- CDevEncUiDecrView* iDecryptionView;
-
- /** Owned */
- CDevEncUiEncryptionOperator* iEncOperator;
-
- /** Owned */
- RArray<CDevEncUiMemoryEntity*> iMemEntities;
-
- /** Owned */
- CRepository* iCrSettings;
-
- /** Owned */
- CMmcObserver* iObserver;
-
- /** Owned */
- RFs iFs;
-
- /** Holds the current MMC mount status (from file server) */
- TInt iMmcStatus;
-
- /** Hold the current MMC encryption status (from NFE) */
- TInt iMmcEncState;
-
- /** ETrue if a Mmc status update is ongoing (to prevent re-entry) */
- TBool iStatusUpdateOngoing;
-
- /** Owned */
- CDevEncUiTimer* iTimer;
-
- /** ETrue if the application is foreground */
- TBool iForeground;
-
- /** ETrue if the application hasn't completed yet the construction phase */
- TBool iConstructionOnGoing;
- };
-
-#endif // __DEVENCUIAPPUI_H__
-
-// End of File
--- a/deviceencryption/DevEncUi/inc/DevEncUiConfig.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 2005 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:
-*
-*/
-
-#ifndef __DEVENCUI_CONFIG_H__
-#define __DEVENCUI_CONFIG_H__
-
-// Comment this out to disable logs
-#define DEVENCUI_LOG
-
-#endif // __DEVENCUI_CONFIG_H__
-// End of File
--- a/deviceencryption/DevEncUi/inc/DevEncUiContainerEventCallback.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2005 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: Mixin class for notifying observers about user selections.
-*
-*/
-
-#ifndef DEVENCUI_CONTAINEREVENTCALLBACK_H_
-#define DEVENCUI_CONTAINEREVENTCALLBACK_H_
-
-#include "DevEnc.hrh"
-
-class MContainerEventCallback
- {
- public:
- virtual void EncryptionStatusChangeReq(
- TDevEncUiMemoryType aType ) = 0;
- };
-
-#endif /*DEVENCUI_CONTAINEREVENTCALLBACK_H_*/
--- a/deviceencryption/DevEncUi/inc/DevEncUiCreateKeyProcess.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2005 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: Shows a progress notification during the creation of keys.
-*
-*/
-
-#ifndef DEVENCUI_CREATEKEYPROCESS_H_
-#define DEVENCUI_CREATEKEYPROCESS_H_
-
-#include <AknWaitNoteWrapper.h>
-#include <e32base.h>
-
-class CDevEncUiCreateKeyProcess : public CBase,
- public MAknBackgroundProcess
-
- {
- public:
- virtual ~CDevEncUiCreateKeyProcess();
- static TBool RunLD();
-
- private:
- CDevEncUiCreateKeyProcess();
- void ProcessFinished();
- void DialogDismissedL( TInt aButtonId );
- TBool IsProcessDone() const;
- void StepL();
-
- // Data
- TInt iCount;
- };
-
-#endif /*DEVENCUI_CREATEKEYPROCESS_H_*/
--- a/deviceencryption/DevEncUi/inc/DevEncUiDecrView.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-/*
-* Copyright (c) 2005 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: Decryption view.
-*
-*/
-
-#ifndef __DEVENCUI_DECRVIEW_H__
-#define __DEVENCUI_DECRVIEW_H__
-
-//INCLUDES
-
-// System includes
-#include <aknview.h>
-
-//User Includes
-#include "DevEncUiDocument.h"
-
-// FORWARD DECLARATIONS
-class CDevEncUiDecrViewContainer;
-class CDevEncUiMemoryEntity;
-
-class CDevEncUiDecrView: public CAknView
- {
- public: // constructors and destructor
-
- /**
- * Symbian OS 2 phase constructor.
- * Constructs the CDevEncUiDecrView using the NewLC method, popping
- * the constructed object from the CleanupStack before returning it.
- *
- * @param aRect The rectangle for this window
- * @return The newly constructed CDevEncUiDecrView
- */
- static CDevEncUiDecrView* NewL( RArray<CDevEncUiMemoryEntity*>& aMemEntities );
-
- /**
- * Symbian OS 2 phase constructor.
- * Constructs the CDevEncUiDecrView using the constructor and ConstructL
- * method, leaving the constructed object on the CleanupStack before returning it.
- *
- * @param aRect The rectangle for this window
- * @return The newly constructed CDevEncUiDecrView
- */
- static CDevEncUiDecrView* NewLC( RArray<CDevEncUiMemoryEntity*>& aMemEntities );
- CDevEncUiDecrViewContainer* Container();
-
- /**
- * Destructor. Frees up memory.
- */
- ~CDevEncUiDecrView();
- CDevEncUiAppUi& GetAppUi();
-
- protected:
- /**
- * HandleStatusPaneSizeChange.
- * Called by the framework when the application status pane
- * size is changed.
- */
- void HandleStatusPaneSizeChange();
-
- void HandleResourceChangeL( TInt aType );
-
- private: // from CAknView
-
- /**
- * Called by the framework
- * @return The Uid for this view
- */
- TUid Id() const;
-
- /**
- * From CEikAppUi, takes care of command handling for this view.
- * @param aCommand command to be handled
- */
- void HandleCommandL( TInt aCommand );
-
- CDevEncUiDecrView( RArray<CDevEncUiMemoryEntity*>& aMemEntities );
-
- /**
- * Called by the framework when the view is activated. Constructs the
- * container if necessary, setting this view as its MOP parent, and
- * adding it to the control stack.
- */
- void DoActivateL( const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- /**
- * Called by the framework when the view is deactivated.
- * Removes the container from the control stack and deletes it.
- */
- void DoDeactivate();
-
- private: // constructors
-
- /**
- * Symbian OS 2nd phase constructor.
- * Uses the superclass constructor to construct the view using the
- * R_EMCCVIEWSWITCHED_VIEW1 resource.
- */
- void ConstructL();
-
- private: // data
- /** Owned. What this view will display */
- CDevEncUiDecrViewContainer* iContainer;
- TUid iId;
-
- /** Not owned */
- RArray<CDevEncUiMemoryEntity*>& iMemEntities;
-
- };
-
-#endif // __DEVENCUI_DECRVIEW_H__
-
-// End of File
--- a/deviceencryption/DevEncUi/inc/DevEncUiDecrViewContainer.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
-* Copyright (c) 2005 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: Container for the decryption view.
-*
-*/
-
-#ifndef __DEVENCUI_GRAPHIC_VIEW_CONTAINER_H__
-#define __DEVENCUI_GRAPHIC_VIEW_CONTAINER_H__
-
-//INCLUDES
-
-//System Includes
-#include <coecntrl.h>
-#include <aknview.h>
-#include <eiklbo.h>
-
-//User Includes
-
-//FORWARD DECLARATIONS
-class CAknDoubleStyle2ListBox;
-
-class CDevEncUiDecrViewContainer : public CCoeControl,
- public MEikListBoxObserver
- {
-public:
- /**
- * @function NewLC
- * @abstract Creates a CDevEncUiEncrViewContainer object, which will
- * draw itself to aRect
- * @param aRect A rectangle that defines the size and location of the
- * displayable area for the view
- * @param aDocument the document
- **/
- static CDevEncUiDecrViewContainer* NewL(const TRect& aRect, CAknView& aOwningView);
- /**
- * @function NewL
- * @abstract Creates a CDevEncUiEncrViewContainer object, which will draw
- * itself to aRect
- * @param aRect A rectangle that defines the size and location of the
- * displayable area for the view
- * @param aDocument the document
- **/
- static CDevEncUiDecrViewContainer* NewLC(const TRect& aRect, CAknView& aOwningView);
-
- /**
- * Destructor.
- **/
- ~CDevEncUiDecrViewContainer();
-
- // from MEikListBoxObserver
- void HandleListBoxEventL( CEikListBox* aListBox,
- TListBoxEvent aEventType );
-
- /**
- * From CCoeControl. Called by the framework in compound controls
- * @return The number of controls in this CSimpleListContainer
- */
- TInt CountComponentControls() const;
-
- /**
- * From CCoeControl. Called by the framework in compound controls
- * @param The index of the control to return
- * @return The control for aIndex
- */
- CCoeControl* ComponentControl( TInt aIndex ) const;
-
- /**
- * Called by the framework to draw this control. Clears the area in
- * aRect.
- * @param aRect in which to draw
- */
- void Draw( const TRect& aRect ) const;
-
- /**
- * Called by the framework whenever a key event occurs.
- * @param aKeyEvent the Key event which occured, e.g. select key pressed
- * @param aType the type of Key event which occurred, e.g. key up, key down
- * @return TKeyResponse EKeyWasNotConsumed if the key was not processed,
- * EKeyWasConsumed if it was
- */
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType );
- /**
- * Called by framework when the view size is changed. Resizes the
- * iLabel accordingly.
- */
- void SizeChanged();
-
-private:
- /**
- * @function CDevEncUiEncrViewContainer
- * @abstract Performs the first stage construction
- * @param aOwningView the view that owns this container
- **/
- CDevEncUiDecrViewContainer(CAknView& aOwningView/*CDevEncUiDocument* aDocument*/);
-
- /**
- * @function ConstructL
- * @abstract Performs the second phase construction, setting the bounding
- * rectangle to aRect
- * @param aRect the display area for the view
- **/
- void ConstructL(const TRect& aRect);
-
- /**
- * Constructs the iListBox, setting its window.
- */
- void CreateListL();
-
-private:
- CAknView& iOwningView;
- CAknDoubleStyle2ListBox* iListBox;
-};
-
-
-#endif // __DEVENCUI_GRAPHIC_VIEW_CONTAINER_H__
--- a/deviceencryption/DevEncUi/inc/DevEncUiDef.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2005 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: Common definitions for the application.
-*
-*/
-
-#ifndef DEVENCUIDEF_H_
-#define DEVENCUIDEF_H_
-
-enum TDevEncUiDefinitions
- {
- KMinPasswordLength = 4, // Same as for security code
- KMaxPasswordLength = 50,
- KMaxKeyNameLength = 50,
- KMaxFilenameLength = 100
- };
-
-#endif /*DEVENCUIDEF_H_*/
--- a/deviceencryption/DevEncUi/inc/DevEncUiDocument.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* Copyright (c) 2005 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: Document class of the application.
-*
-*/
-
-#ifndef __DEVENCUIDOCUMENT_H__
-#define __DEVENCUIDOCUMENT_H__
-
-// INCLUDES
-#include <AknDoc.h>
-
-// FORWARD DECLARATIONS
-class CDevEncUiAppUi;
-class CEikApplication;
-
-
-// CLASS DECLARATION
-
-/**
-* CDevEncUiDocument application class.
-* An instance of class CDevEncUiDocument is the Document part of the
-* AVKON application framework for the DEVENCUI example application.
-*/
-class CDevEncUiDocument : public CAknDocument
- {
- public: // Constructors and destructor
-
- /**
- * NewL.
- * Two-phased constructor.
- * Construct a CDevEncUiDocument for the AVKON application aApp
- * using two phase construction, and return a pointer
- * to the created object.
- * @param aApp Application creating this document.
- * @return A pointer to the created instance of CDevEncUiDocument.
- */
- static CDevEncUiDocument* NewL( CEikApplication& aApp );
-
- /**
- * NewLC.
- * Two-phased constructor.
- * Construct a CDevEncUiDocument for the AVKON application aApp
- * using two phase construction, and return a pointer
- * to the created object.
- * @param aApp Application creating this document.
- * @return A pointer to the created instance of CDevEncUiDocument.
- */
- static CDevEncUiDocument* NewLC( CEikApplication& aApp );
-
- /**
- * ~CDevEncUiDocument
- * Virtual Destructor.
- */
- virtual ~CDevEncUiDocument();
-
- public: // Functions from base classes
-
- /**
- * CreateAppUiL
- * From CEikDocument, CreateAppUiL.
- * Create a CDevEncUiAppUi object and return a pointer to it.
- * The object returned is owned by the Uikon framework.
- * @return Pointer to created instance of AppUi.
- */
- CEikAppUi* CreateAppUiL();
-
- private: // Constructors
-
- /**
- * ConstructL
- * 2nd phase constructor.
- */
- void ConstructL();
-
- /**
- * CDevEncUiDocument.
- * C++ default constructor.
- * @param aApp Application creating this document.
- */
- CDevEncUiDocument( CEikApplication& aApp );
-
- /**
- * From CEikDocument.
- * Always return NULL, so as not to create a INI file.
- *
- * @param aDoOpen ETrue if file exists. (ignored)
- * @param aFilename file to view.
- * @param aFs FileServerSession. (ignored)
- * @return file store. (always NULL)
- */
- CFileStore* OpenFileL(
- TBool /*aDoOpen*/,
- const TDesC& aFilename,
- RFs& /*aFs*/);
-
- /**
- * From CEikDocument.
- *
- * @param aFileStore. (ignored)
- * @param aFile.
- */
- void OpenFileL(
- CFileStore*& /*aFileStore*/,
- RFile& aFile);
-
- };
-
-#endif // __DEVENCUIDOCUMENT_H__
-
-// End of File
--- a/deviceencryption/DevEncUi/inc/DevEncUiEncrView.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
-* Copyright (c) 2005 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: Encryption view.
-*
-*/
-
-#ifndef __DEVENCUI_ENCRVIEW_H__
-#define __DEVENCUI_ENCRVIEW_H__
-
-//INCLUDES
-
-// System includes
-#include <aknview.h>
-
-//User Includes
-#include "DevEncUiDocument.h"
-
-// FORWARD DECLARATIONS
-class CDevEncUiEncrViewContainer;
-class CDevEncUiEncryptionOperator;
-class CDevEncUiMemoryEntity;
-
-class CDevEncUiEncrView: public CAknView
- {
- public: // constructors and destructor
- static CDevEncUiEncrView* NewL( RArray<CDevEncUiMemoryEntity*>& aMemEntities );
- static CDevEncUiEncrView* NewLC( RArray<CDevEncUiMemoryEntity*>& aMemEntities );
- CDevEncUiEncrViewContainer* Container();
- ~CDevEncUiEncrView();
- CDevEncUiAppUi& GetAppUi();
-
- private: // from CAknView
- TUid Id() const;
- void HandleCommandL( TInt aCommand );
- CDevEncUiEncrView( RArray<CDevEncUiMemoryEntity*>& aMemEntities );
-
- void DoActivateL( const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- void DoDeactivate();
-
- private: // constructors
- void ConstructL();
-
- protected:
- /**
- * HandleStatusPaneSizeChange.
- * Called by the framework when the application status pane
- * size is changed.
- */
- void HandleStatusPaneSizeChange();
-
- private: // data
- /** Owned. What this view will display */
- CDevEncUiEncrViewContainer* iContainer;
- TUid iId;
-
- /** Not owned */
- RArray<CDevEncUiMemoryEntity*>& iMemEntities;
- };
-
-#endif // __DEVENCUI_ENCRVIEW_H__
-
-// End of File
--- a/deviceencryption/DevEncUi/inc/DevEncUiEncrViewContainer.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/*
-* Copyright (c) 2005 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: Container for the encryption view.
-*
-*/
-
-#ifndef __DEVENCUI_GRAPHIC_VIEW_CONTAINER_H__
-#define __DEVENCUI_GRAPHIC_VIEW_CONTAINER_H__
-
-//INCLUDES
-
-//System Includes
-#include <coecntrl.h>
-#include <aknview.h>
-#include <eiklbo.h>
-
-//User Includes
-
-//FORWARD DECLARATIONS
-class CAknDoubleStyle2ListBox;
-
-class CDevEncUiEncrViewContainer : public CCoeControl,
- public MEikListBoxObserver
- {
-public:
- /**
- * @function NewLC
- * @abstract Creates a CDevEncUiEncrViewContainer object, which will
- * draw itself to aRect
- * @param aRect A rectangle that defines the size and location of the
- * displayable area for the view
- * @param aDocument the document
- **/
- static CDevEncUiEncrViewContainer* NewL(const TRect& aRect, CAknView& aOwningView);
-
- /**
- * @function NewL
- * @abstract Creates a CDevEncUiEncrViewContainer object, which will draw
- * itself to aRect
- * @param aRect A rectangle that defines the size and location of the
- * displayable area for the view
- * @param aDocument the document
- **/
- static CDevEncUiEncrViewContainer* NewLC( const TRect& aRect,
- CAknView& aOwningView );
-
- /**
- * Destructor.
- **/
- ~CDevEncUiEncrViewContainer();
-
- // from MEikListBoxObserver
- void HandleListBoxEventL( CEikListBox* aListBox,
- TListBoxEvent aEventType );
-
- /**
- * From CCoeControl. Called by the framework in compound controls
- * @return The number of controls in this CSimpleListContainer
- */
- TInt CountComponentControls() const;
-
- /**
- * From CCoeControl. Called by the framework in compound controls
- * @param The index of the control to return
- * @return The control for aIndex
- */
- CCoeControl* ComponentControl( TInt aIndex ) const;
-
- /**
- * Called by the framework to draw this control. Clears the area in
- * aRect.
- * @param aRect in which to draw
- */
- void Draw( const TRect& aRect ) const;
-
- /**
- * Called by the framework whenever a key event occurs.
- * @param aKeyEvent the Key event which occured, e.g. select key pressed
- * @param aType the type of Key event which occurred, e.g. key up, key down
- * @return TKeyResponse EKeyWasNotConsumed if the key was not processed,
- * EKeyWasConsumed if it was
- */
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType );
- /**
- * Called by framework when the view size is changed. Resizes the
- * iLabel accordingly.
- */
- void SizeChanged();
-
-private:
- /**
- * @function CDevEncUiEncrViewContainer
- * @abstract Performs the first stage construction
- * @param aOwningView the view that owns this container
- **/
- CDevEncUiEncrViewContainer( CAknView& aOwningView/*CDevEncUiDocument* aDocument*/);
-
- /**
- * @function ConstructL
- * @abstract Performs the second phase construction, setting the bounding
- * rectangle to aRect
- * @param aRect the display area for the view
- **/
- void ConstructL( const TRect& aRect );
-
- /**
- * Constructs the iListBox, setting its window.
- */
- void CreateListL();
-
-private:
- CAknView& iOwningView;
- CAknDoubleStyle2ListBox* iListBox;
-};
-
-
-#endif // __DEVENCUI_GRAPHIC_VIEW_CONTAINER_H__
--- a/deviceencryption/DevEncUi/inc/DevEncUiEncryptionOperator.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-/*
-* Copyright (c) 2005 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: Performs required preparations before encryption
-* operations can place.
-*
-*/
-
-#ifndef DEVENCUI_ENCRYPTIONOPERATOR_H_
-#define DEVENCUI_ENCRYPTIONOPERATOR_H_
-
-//INCLUDES
-
-//System includes
-#include <avkon.rsg>
-#include <e32base.h>
-#include <badesca.h> // for CDesCArrayFlat
-
-//User Includes
-
-// FORWARD DECLARATIONS
-class CDevEncUiMemoryEntity;
-class CEikonEnv;
-class CAknViewAppUi;
-class CRepository;
-
-class CDevEncUiEncryptionOperator: public CBase
- {
- public:
- // Constructors and destructor
- static CDevEncUiEncryptionOperator* NewL( CEikonEnv& aEikonEnv,
- CAknViewAppUi& aAppUi,
- CRepository*& aCrSettings );
- static CDevEncUiEncryptionOperator* NewLC( CEikonEnv& aEikonEnv,
- CAknViewAppUi& aAppUi,
- CRepository*& aCrSettings );
- ~CDevEncUiEncryptionOperator();
-
- // Functions related to encryption
- void HandlePhoneMemEncryptRequestL( CDevEncUiMemoryEntity* aMem, CDevEncUiMemoryEntity* aPrimaryMem = NULL );
-
- void HandleMmcEncryptRequestL( CDevEncUiMemoryEntity* aMem,
- TInt aCommand );
-
- void HandleMmcDecryptRequestL( CDevEncUiMemoryEntity* aMem,
- TInt aCommand );
-
- void DestroyKeyQueryL( TBool aShowMmcNote );
-
- void BatteryStatusCallback();
-
- void SuggestMmcEncryptionL( CDevEncUiMemoryEntity* aMem );
-
- void SuggestMmcDecryptionL( CDevEncUiMemoryEntity* aMem );
-
- void SuggestMmcImportKeyL( CDevEncUiMemoryEntity* aMem,
- TBool aFirstAttempt );
-
- void ShowWrongKeyNoteL();
-
- /**
- * Displays an error note.
- * @param aResourceId the error text to display
- */
- void ErrorNoteL( TInt aResourceId,
- TBool aWaitingNote = ETrue );
-
- /**
- * Displays an information note.
- * @param aResourceId the text to display
- */
- void InfoNoteL( TInt aResourceId,
- TBool aWaitingNote = EFalse );
-
- private:
- CDevEncUiEncryptionOperator( CEikonEnv& aEikonEnv,
- CAknViewAppUi& aAppUi,
- CRepository*& aCrSettings );
-
- // Second-phase constructor
- void ConstructL();
-
- TBool PrepareEncryptionL();
-
- TBool PrepareDecryptionL();
-
- void SetPowerMenuStatusL( TBool aOpen );
-
- TBool MessageQueryL( TInt aResourceId,
- TInt aSoftKeysId = R_AVKON_SOFTKEYS_OK_CANCEL );
-
- TBool QueryDialogL( TInt aResourceId,
- TInt aSoftKeysId = R_AVKON_SOFTKEYS_OK_CANCEL );
-
- TBool DataQueryDialogL( TDes& aResult,
- TInt aPromptResourceId,
- TInt aMaxLength );
-
- /**
- * Displays a query dialog to let the user enter a password.
- * @param aPromptResourceId the prompt text to display
- * @param aPassword On return, contains the password
- * @return ETrue if the user entered a password, EFalse if
- * the dialog was cancelled.
- */
- TBool PasswordQueryL( TInt aPromptResourceId,
- TDes8& aPassword );
-
- /**
- * Checks if there's enough battery power to update.
- * @return ETrue if battery OK or charger connected
- */
- TBool CheckBatteryL();
-
- /**
- * Prompts the user for a key name and password, then creates
- * a pkcs#5 encrypted key using the common utility component.
- * @return ETrue if the key was created and saved successfully
- */
- TBool CreateAndSaveKeyL();
-
- /**
- * Lets the user select a key and enter a password, then loads
- * the specified key and takes it in use using the common utility
- * component.
- * @return ETrue if the key was loaded and set successfully
- */
- TBool LoadAndSetKeyL();
-
- /**
- * Creates a random key and sets it in the security driver.
- * @return ETrue if the key was created and set successfully
- */
- TBool CreateKeyL();
-
- /**
- * Resets the key in the security driver (fills with null chars).
- * Before destroying the key, a confirmation query is shown to
- * the user.
- */
- void DestroyKeyL();
-
- void RemountMmcL();
-
- TInt CheckMMCStatus();
-
- // For testing, remove
- void CheckNotesL();
- void CheckNotesWithHeaderL();
-
-
- // data
- /** Not owned */
- CEikonEnv& iEikEnv;
-
- /** Not owned */
- CAknViewAppUi& iAppUi;
-
- /** Owned */
- CDesCArrayFlat* iListQueryItemArray;
-
- /** Not owned */
- CRepository*& iCrSettings;
- };
-
-#endif /* DEVENCUI_ENCRYPTIONOPERATOR_H_ */
-
-// END OF FILE
--- a/deviceencryption/DevEncUi/inc/DevEncUiFileManager.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2005 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: AppUi class of the application.
-*
-*/
-
-#ifndef CDEVENCUIFILEMANAGER_H_
-#define CDEVENCUIFILEMANAGER_H_
-
-#include <e32base.h>
-#include <f32file.h>
-
-class CDir;
-class CFileStore;
-//class RFs;
-
-class CDevEncUiFileManager : public CBase
- {
- public:
- virtual ~CDevEncUiFileManager();
- void ConstructL();
-
- void InteractiveKeySaveL( const TDesC8& aPkcs5Key );
- void InteractiveKeyLoadL( HBufC8*& aPkcs5Key );
-
- TInt OpenFileStore( const TDesC& aFilename,
- CFileStore*& aStore );
-
- void SaveKeyL( CFileStore* aStore,
- const TDesC8& aPkcs5Key ) const;
-
- void LoadKeyL( const TFileName& aFileName,
- HBufC8*& aPkcs5Key );
-
- void GetKeyListL( CDir*& aList );
-
- TInt DriveToChar( TInt aDrive, TChar &aChar );
-
- TInt KeyFolder( TDes& aResult );
-
- TInt RemountMmc();
-
- private:
- RFs iFs;
- };
-
-#endif /*CDEVENCUIFILEMANAGER_H_*/
--- a/deviceencryption/DevEncUi/inc/DevEncUiLog.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* Copyright (c) 2005 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: Debug logging functionality.
-*
-*/
-
-#ifndef __DEVENCUI_LOG_H__
-#define __DEVENCUI_LOG_H__
-
-#include "DevEncUiConfig.hrh"
-
-#if defined( _DEBUG ) && defined ( DEVENCUI_LOG )
-
-#include <e32base.h>
-#include <e32cmn.h>
-#include <e32debug.h>
-
-class CFileLog : public CBase
- {
- public:
- static void Printf( TRefByValue<const TDesC> aFmt, ... );
- };
-
-// Debug trace to stdout
-#define DLOG( aText ) \
- { \
- _LIT( KText, aText ); \
- RDebug::Print( KText ); \
- }
-
-// Debug trace to stdout
-#define DLOG2( aText, aParam ) \
- { \
- _LIT( KText, aText ); \
- RDebug::Print( KText, aParam ); \
- }
-
-// Debug trace to stdout
-#define DLOG3( aText, aParam1, aParam2 ) \
- { \
- _LIT( KText, aText ); \
- RDebug::Print( KText, aParam1, aParam2 ); \
- }
-
-// Debug trace to file
-#define FLOG( aText ) \
- { \
- _LIT( KLogText, aText ); \
- CFileLog::Printf( KLogText ); \
- }
-
-// Debug trace to file
-#define FLOG2( aText, b ) \
- { \
- _LIT( KLogText, aText ); \
- CFileLog::Printf( KLogText, b ); \
- }
-
-// Debug trace to file
-#define FLOG3( aText, b, c ) \
- { \
- _LIT( KLogText, aText ); \
- CFileLog::Printf( KLogText, b, c ); \
- }
-
-// Debug trace to stdout and file
-#define DFLOG( aText ) \
- { \
- DLOG( aText ); \
- FLOG( aText ); \
- }
-
-// Debug trace to stdout and file
-#define DFLOG2( aText, aParam ) \
- { \
- DLOG2( aText, aParam ); \
- FLOG2( aText, aParam ); \
- }
-
-// Debug trace to stdout and file
-#define DFLOG3( aText, aParam1, aParam2 ) \
- { \
- DLOG3( aText, aParam1, aParam2 ); \
- FLOG3( aText, aParam1, aParam2 ); \
- }
-
-// Debug trace a string literal to file
-#define FLOGBUF( aText ) \
- { \
- CFileLog::Printf( aText ); \
- }
-
-#else // _DEBUG not defined, no logging code will be included at all
-
-#define DLOG( a )
-#define DLOG2( a, b )
-#define DLOG3( a, b, c )
-#define FLOG( a )
-#define FLOG2( a, b )
-#define FLOG3( a, b, c )
-#define DFLOG( a )
-#define DFLOG2( a, b )
-#define DFLOG3( a, b, c )
-#define FLOGBUF( a )
-
-#endif // _DEBUG
-
-#endif // __DEVENCUI_LOG_H__
-
-// End of File
-
--- a/deviceencryption/DevEncUi/inc/DevEncUiMainView.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
-* Copyright (c) 2005 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: Main view of the application.
-*
-*/
-
-#ifndef __DEVENCUI_MAINVIEW_H__
-#define __DEVENCUI_MAINVIEW_H__
-
-//INCLUDES
-
-//System includes
-#include <aknview.h> // CAknView
-#include <centralrepository.h>
-
-//User Includes
-#include "DevEncUiContainerEventCallback.h"
-#include "DevEncUiDocument.h"
-
-// FORWARD DECLARATIONS
-class CDevEncUiEncryptionOperator;
-class CDevEncUiMainViewContainer;
-class CDevEncUiMemoryEntity;
-
-class CDevEncUiMainView: public CAknView,
- public MContainerEventCallback
- {
- public:
- // constructors and destructor
- static CDevEncUiMainView* NewL( RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- CRepository*& aSettings,
- TInt& aMmcStatus );
- static CDevEncUiMainView* NewLC( RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- CRepository*& aSettings,
- TInt& aMmcStatus );
- ~CDevEncUiMainView();
- CDevEncUiAppUi& GetAppUi();
-
- // from MContainerEventCallback
- void EncryptionStatusChangeReq( TDevEncUiMemoryType aType );
-
- protected:
- void DynInitMenuPaneL( TInt aResourceId,
- CEikMenuPane* aMenuPane );
-
- /**
- * HandleStatusPaneSizeChange.
- * Called by the framework when the application status pane
- * size is changed.
- */
- void HandleStatusPaneSizeChange();
-
- private:
- // from CAknView
- TUid Id() const;
- void HandleCommandL( TInt aCommand );
- CDevEncUiMainView( RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- CRepository*& aSettings,
- TInt& aMmcStatus );
-
- void DoActivateL( const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- void DoDeactivate();
-
- // constructors
- void ConstructL();
-
- void HandleMemoryCardEncryptRequestL( CDevEncUiMemoryEntity* aMem );
-
- void DoEncryptionStatusChangeReqL( TDevEncUiMemoryType aType );
-
- TBool DmControlsMemory( TDevEncUiMemoryType aType,
- TInt aDmControlSetting );
-
- void ErrorNoteL( TInt aResourceId );
-
- // data
- /** ID of this view */
- TUid iId;
-
- /** Owned */
- CDevEncUiMainViewContainer* iContainer;
-
- /** Not owned */
- RArray<CDevEncUiMemoryEntity*>& iMemEntities;
-
- /** Owned */
- CDevEncUiEncryptionOperator* iEncOperator;
-
- /** Not owned */
- CRepository*& iCrSettings;
-
- /** Not owned */
- TInt& iMmcStatus;
- };
-
-#endif // __DEVENCUI_MAINVIEW_H__
-
-// End of File
--- a/deviceencryption/DevEncUi/inc/DevEncUiMainViewContainer.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-/*
-* Copyright (c) 2005 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: Container for the main view.
-*
-*/
-
-#ifndef __DEVENCUI_MAINVIEW_CONTAINER_H__
-#define __DEVENCUI_MAINVIEW_CONTAINER_H__
-
-//INCLUDES
-
-//System Includes
-#include <coecntrl.h>
-#include <aknlists.h>
-#include <aknview.h>
-#include <DevEncExternalCRKeys.h>
-
-//User Includes
-
-#include "DevEnc.hrh"
-#include "DevEncUiContainerEventCallback.h"
-#include "DevEncUiMemInfoObserver.h"
-
-//FORWARD DECLARATIONS
-class CDevEncUiDocument;
-class CDevEncUiSettingItemList;
-class CRepository;
-class CDevEncUiMemoryEntity;
-
-class CDevEncUiMainViewContainer : public CCoeControl,
- public MDevEncUiMemInfoObserver
- {
- public:
- virtual TInt CountComponentControls() const;
- /**
- * @function NewL
- * @abstract Creates a CDevEncUiMainViewContainer object, which will draw itself to aRect
- * @param aRect A rectangle that defines the size and location of the displayable area
- * for the view
- * @param aDocument the document
- **/
- static CDevEncUiMainViewContainer* NewL( const TRect& aRect,
- RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- MContainerEventCallback& aCallback,
- CRepository*& aCrSettings,
- TInt& aMmcStatus );
-
- /**
- * @function NewLC
- * @abstract Creates a CDevEncUiMainViewContainer object, which will draw itself to aRect
- * @param aRect A rectangle that defines the size and location of the displayable area
- * for the view
- * @param aDocument the document
- **/
- static CDevEncUiMainViewContainer* NewLC( const TRect& aRect,
- RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- MContainerEventCallback& aCallback,
- CRepository*& aCrSettings,
- TInt& aMmcStatus );
- ~CDevEncUiMainViewContainer();
-
- /**
- * From CCoeControl. Called by the framework whenever a key event occurs.
- * Passes the key event to the settings list if it is not null, otherwise returns
- * EKeyWasNotConsumed
- * @param aKeyEvent the Key event which occured, e.g. select key pressed
- * @param aType the type of Key event which occurred, e.g. key up, key down
- * @return TKeyResponse EKeyWasNotConsumed if the key was not processed,
- * EKeyWasConsumed if it was
- */
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
-
- /**
- * @function ConstructL
- * @abstract Performs the second phase construction, setting the bounding
- * rectangle to aRect
- * @param aRect the display area for the view
- **/
- void ConstructL(const TRect& aRect);
-
- TInt SelectedItem();
-
- /**
- * Shows a popup dialog to let user set the state of the selected item.
- * @return ETrue if desired state of the selected item was changed
- */
- TBool ChangeSelectedItemL();
-
- /**
- * From MDevEncUiMemInfoObserver
- * */
- void UpdateInfo( TDevEncUiMemoryType aType,
- TUint aState,
- TUint aProgress = 0 );
-
- protected:
- virtual CCoeControl* ComponentControl(TInt aIndex) const;
-
- /**
- * From CCoeControl
- * */
- void SizeChanged();
-
- /**
- * From CCoeControl
- * */
- void HandleResourceChange(TInt aType);
-
- private:
- CDevEncUiMainViewContainer( RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- MContainerEventCallback& aCallback,
- CRepository*& aCrSettings,
- TInt& aMmcStatus );
- void DoUpdateInfoL( TDevEncUiMemoryType aType,
- TUint aState,
- TUint aProgress /*= 0*/ );
-
- private:
- /** Owned */
- MContainerEventCallback& iCallback;
-
- /** Owned */
- CDevEncUiSettingItemList* iSettingItemList;
-
- /** Not owned */
- RArray<CDevEncUiMemoryEntity*>& iMemEntities;
-
- /** Not owned */
- CRepository*& iCrSettings;
-
- /** Not owned */
- TInt& iMmcStatus;
-};
-
-
-#endif // __DEVENCUI_MAINVIEW_CONTAINER_H__
-
-//End of File
--- a/deviceencryption/DevEncUi/inc/DevEncUiMemInfoObserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2005 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: Mixin class for passing memory status updates to observers.
-*
-*/
-
-
-#ifndef __DEVENCUI_MEMINFOOBSERVER_H__
-#define __DEVENCUI_MEMINFOOBSERVER_H__
-
-#include "DevEnc.hrh"
-#include <DevEncEngineConstants.h>
-
-class MDevEncUiMemInfoObserver
- {
- public:
- virtual void UpdateInfo( TDevEncUiMemoryType aType,
- TUint aState,
- TUint aProgress = 0 ) = 0;
- };
-
-#endif // __DEVENCUI_MEMINFOOBSERVER_H__
--- a/deviceencryption/DevEncUi/inc/DevEncUiMemoryEntity.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-/*
-* Copyright (c) 2005 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: Class for managing different types of memory on a
-* very abstract level.
-*
-*/
-
-#ifndef DEVENCUI_MEMORYENTITY_H
-#define DEVENCUI_MEMORYENTITY_H
-
-#include <e32base.h>
-#include <eikenv.h>
-
-#include "DevEnc.hrh"
-#include "DevEncUiMemInfoObserver.h"
-#include "DevEncDiskStatusObserver.h"
-
-class CDevEncSession;
-class CDevEncUiInfoObserver;
-
-class CDevEncUiMemoryEntity : public CBase,
- public MDiskStatusObserver
- {
- public:
- /**
- * Constructs the CDevEncUiMemoryEntity using the NewLC method, popping
- * the constructed object from the CleanupStack before returning it.
- *
- * @return The newly constructed CDevEncUiMemoryEntity
- */
- static CDevEncUiMemoryEntity* NewL( CEikonEnv* aEikonEnv,
- TDevEncUiMemoryType aType );
-
- /**
- * Constructs the CDevEncUiMemoryEntity using the constructor and ConstructL
- * method, leaving the constructed object on the CleanupStack before returning it.
- *
- * @return The newly constructed CDevEncUiMemoryEntity
- */
- static CDevEncUiMemoryEntity* NewLC( CEikonEnv* aEikonEnv,
- TDevEncUiMemoryType aType );
-
- /**
- * Adds an observer to this object's list of observers.
- * @param aInfoObserver The observer to add
- * @leave Symbian error code
- */
- void AddObserverL( MDevEncUiMemInfoObserver* aInfoObserver );
-
- /**
- * Removes an observer from this object's list of observers.
- * Any errors are ignored.
- * @param aInfoObserver The observer to remove
- */
- void RemoveObserver( MDevEncUiMemInfoObserver* aInfoObserver );
-
- /**
- * Called periodically. Not intended for use by other classes.
- * @param aPtr Pointer to an instance of this class.
- */
- static TInt ProgressTick( TAny* aPtr );
-
- /**
- * Called periodically. Not intended for use by other classes.
- * @param aPtr Pointer to an instance of this class.
- */
- static TInt PollTick( TAny* aPtr );
-
- /**
- * Destructor.
- */
- virtual ~CDevEncUiMemoryEntity();
-
- /**
- * Starts the encryption of this memory.
- */
- void StartEncryptionL();
-
- /**
- * Starts the decryption of this memory.
- */
- void StartDecryptionL();
-
- void Cancel();
-
- /**
- * Gets the state of this memory entity.
- * @return the current state
- */
- TUint State() const;
-
- /**
- * Sends the current memory state information to all observers.
- * @return none
- */
- virtual void UpdateMemoryInfo();
-
- /*
- * From MDiskStatusObserver
- */
- void DiskStatusChangedL( TInt aStatus );
-
- private:
- // functions
-
- /**
- * C++ Constructor
- **/
- CDevEncUiMemoryEntity( CEikonEnv* aEikonEnv, TDevEncUiMemoryType aType );
-
- /**
- * Second-phase constructor
- **/
- virtual void ConstructL();
-
- /**
- * Sets the internal state and calls UpdateMemoryInfo()
- * @param aState the new state
- **/
- virtual void SetState( TUint aState );
-
- /**
- * Starts a timer to periodically update the memory state in the UI.
- * @param aInterval the polling interval
- **/
- void StartPolling( TTimeIntervalMicroSeconds32 aInterval );
-
- /**
- * Helper function, called by StartPolling.
- * Starts a timer to periodically update the memory state in the UI.
- * @param aInterval the polling interval
- **/
- void DoStartPollingL( TTimeIntervalMicroSeconds32 aInterval );
-
- /**
- * Fetches the encryption state and progress. Called periodically.
- **/
- virtual void CheckProgress();
-
- /**
- * Performs periodical processing of timeouts. Calls CheckProgress().
- **/
- virtual void DoProgressTick();
-
- /**
- * Performs periodical processing of timeouts.
- * Checks if the encryption status has changed.
- **/
- virtual void DoPollTickL();
-
- void RestoreAutolockSettings();
-
- // Data
- /** Not owned */
- CEikonEnv* iEikEnv;
-
- /** Owned */
- CDiskStatusObserver* iDiskStatusObserver;
-
- /** Owned */
- CPeriodic* iPeriodic;
-
- /** Owned */
- RArray<MDevEncUiMemInfoObserver*> iObservers;
-
- /** Owned */
- CDevEncSession* iSession;
-
- TUint iState;
- TUint iPrevState;
- const TDevEncUiMemoryType iType;
- TInt iPercentDone;
- TInt iPrevPercentDone;
- };
-
-#endif // DEVENCUI_MEMORYENTITY_H
--- a/deviceencryption/DevEncUi/inc/DevEncUiSecretMinMaxCodeQuery.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* Copyright (c) 2005 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:
-*
-*/
-
-#ifndef DEVENCUISECRETMINMAXCODEQUERY_H_
-#define DEVENCUISECRETMINMAXCODEQUERY_H_
-
-#include <AknQueryDialog.h>
-#include <aknnotedialog.h>
-#include "DevEnc.hrh"
-
-class CDevEncUiSecretMinMaxCodeQuery : public CAknTextQueryDialog
- {
- public://construction and destruction
- /**
- * C++ Constructor.
- * @param aDataText TDes& (code which is entered in query)
- * @param aMinLength TInt (code min length)
- * @param aMaxLength TInt (code max length)
- */
- CDevEncUiSecretMinMaxCodeQuery( TDes& aDataText,
- TInt aMinLength,
- TInt aMaxLength );
- /**
- * Destructor.
- */
- ~CDevEncUiSecretMinMaxCodeQuery();
-
- protected://from CAknTextQueryDialog
- /**
- * From CAknTextQueryDialog. This function is called by the UIKON
- * dialog framework just before the dialog is activated, after it has
- * called PreLayoutDynInitL() and the dialog has been sized.
- */
- void PreLayoutDynInitL();
-
- /**
- * From CAknTextQueryDialog. This function is called by the UIKON
- * framework if the user activates a button in the button panel.
- * It is not called if the Cancel button is activated,
- * unless the EEikDialogFlagNotifyEsc flag is set.
- * @param aButtonId The ID of the button that was activated
- * @return Should return ETrue if the dialog should exit,
- * and EFalse if it should not.
- */
- TBool OkToExitL( TInt aButtonId );
-
- /**
- * From CAknTextQueryDialog. This function is called by the UIKON
- * dialog framework just after a key is pressed
- * @param aKeyEvent TKeyEvent&
- * @param aType TEventCode
- */
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType );
-
- /**
- * From MAknQueryControlObeserver. Overrides the default
- * implementation in CAknQueryDialog. Gets called by framework when
- * text in editor is edited.
- */
- void UpdateLeftSoftKeyL();
-
- private: // Data
- TInt iMinLength;
- TInt iMaxLength;
- };
-
-#endif /*DEVENCUISECRETMINMAXCODEQUERY_H_*/
--- a/deviceencryption/DevEncUi/inc/DevEncUiSettingItemList.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
-* Copyright (c) 2005 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: Device Encryption UI settings item list.
-*
-*/
-
-#ifndef DEVENCUI_SETTINGITEMLIST_H
-#define DEVENCUI_SETTINGITEMLIST_H
-
-// INCLUDES
-
-// System includes
-#include <aknsettingitemlist.h> // CAknSettingItemList
-
-// User includes
-#include "DevEnc.hrh"
-
-// CLASS DECLARATION
-
-class CDevEncUiSettingItemList : public CAknSettingItemList
- {
- public: // Constructors and destructor
- CDevEncUiSettingItemList();
- ~CDevEncUiSettingItemList();
-
- // From CAknSettingItemList
- /**
- * Creates the actual setting items for the list, passing
- * ownership of them to the calling class. Each setting
- * item has a piece of member data which it sets values in.
- */
- CAknSettingItem* CreateSettingItemL( TInt identifier );
-
- // From CAknSettingItemList
- virtual void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
-
- /**
- * Called by the framework whenever an item is selected.
- * Causes the edit page for the currently selected setting item to
- * be displayed and stores any changes made.
- * @param aIndex the index of the item to change
- * @param aCalledFromMenu If ETrue, opens a popup window to let the
- * user select the state of this item. Otherwise the item state
- * is just changed.
- */
- void EditItemL ( TInt aIndex, TBool aCalledFromMenu );
-
- // Members
- /**
- * Gets the index of the currently selected item.
- * @return the index
- */
- TInt SelectedItem();
-
- /**
- * Opens a popup window to let the user select the state of this item
- */
- void ChangeSelectedItemL();
-
- /**
- * Sets the text of a list item. Does not change the state.
- * @param aIndex the index of the item to change
- * @param aNewText the new text
- */
- void SetItemTextL( TInt aIndex, const TDesC& aNewText );
-
- /**
- * Sets the state of a list item.
- * @param aIndex the index of the item to change
- * @param aSetting the new state
- */
- void SetItemStateL( TInt aIndex, TBool aSetting );
-
- /**
- * Gets the state of a list item.
- * @param aIndex the index of the item to change
- * @param aSetting Contains the current setting when finished.
- */
- void ItemState( TInt aIndex, TBool& aSetting );
-
- /**
- * From CAknSettingItemList
- *
- * Handles a change to the control's resources of type aType
- * which are shared across the environment, e.g. colors or fonts.
- *
- * @since 2.0
- * @param aType Reason for the "resource" change, usually an system event UID
- */
- void HandleResourceChange( TInt aType );
-
- private:
- // From CAknSettingItemList
- /**
- * Called by framework when the view size is changed. Resizes the
- * setting list accordingly.
- */
- void SizeChanged();
-
- // Member data
- /* Holds the UI representation of the current state of the phone
- * memory encryption. This does not always correlate to the real memory
- * state, as this variable often contains a new setting that has not
- * been validated yet. */
- TBool iPhoneMemSetting;
-
- /* Holds the UI representation of the current state of the memory
- * card encryption. This does not always correlate to the real memory
- * state, as this variable often contains a new setting that has not
- * been validated yet. */
- TBool iMmcSetting;
-
- /** Owned. Holds the current state text of the phone memory */
- HBufC* iPhoneMemStateText;
-
- /** Owned. Holds the current state text of the memory card */
- HBufC* iMmcStateText;
- };
-
-#endif // #ifndef DEVENCUI_SETTINGITEMLIST_H
-
-// End of File
--- a/deviceencryption/DevEncUi/inc/DevEncUiTimer.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2005 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:
-*
-*/
-
-#ifndef DEVENCUITIMER_H_
-#define DEVENCUITIMER_H_
-
-// INCLUDES
-#include <e32base.h>
-
-// FORWARD DECLARATIONS
-
-class MDevEncUiTimerCallback
- {
- public:
- virtual void Timeout()=0;
- };
-
-class CDevEncUiTimer : public CTimer
- {
- public:
- static CDevEncUiTimer* NewL( MDevEncUiTimerCallback* aCallback );
- ~CDevEncUiTimer();
-
- void StartAppL( const TUint32& aUid );
-
- protected:
- // from CActive
- void RunL();
- void DoCancel();
- TInt RunError( TInt aError );
-
- private:
- // Functions
- CDevEncUiTimer( MDevEncUiTimerCallback* aCallback );
-
- void ConstructL();
-
- // Data
- MDevEncUiTimerCallback* iCallback; // parent
- };
-
-#endif /*DEVENCUITIMER_H_*/
--- a/deviceencryption/DevEncUi/inc/DevEncUiUids.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
-* Copyright (c) 2005 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: DevEncUi ids, that can be used both in cpp and rss files.
-*
-*/
-
-#ifndef DEVENCUIUIDS_HRH
-#define DEVENCUIUIDS_HRH
-
-#define KDevEncUiUid 0x2000259A
-
-#endif // DEVENCUIUIDS_HRH
-
--- a/deviceencryption/DevEncUi/loc/devenc.loc Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,354 +0,0 @@
-/*
-* Copyright (c) 2005 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: String localization file.
-*
-*/
-
-// LOCALISATION STRINGS
-
-
-// d:Application name in menu grid view.
-// l:cell_app_pane_t1
-// r:3.1
-//
-#define qtn_apps_encryption_grid "Encryption"
-
-// d:Application name displayed in title.
-// l:title_pane_t1
-// r:3.1
-//
-#define qtn_encryption_title "Encryption"
-
-// d:Setting list item for phone memory encryption.
-// d:Possible values are "On" and "Off".
-// l:list_setting_pane_t1
-// r:3.1
-//
-#define qtn_encryption_phonememory "Phone memory"
-
-// d:Setting list item for memory card encryption.
-// d:Possible values are "On" and "Off"
-// l:list_setting_pane_t1
-// r:3.1
-//
-#define qtn_encryption_memorycard "Memory card"
-
-// d:Information note, scrollable. Displayed after user has selected to start memory encryption and Autolock period setting is "None".
-// d:softkeys are OK and Cancel.
-// d:Keep translation consistent with "Autolock period" (qtn_set_autolock) and "Phone and SIM card" (qtn_set_dev_sim_security).
-// l:popup_info_list_pane_t1_6_rows
-// r:3.1
-//
-#define qtn_encryption_note_lock "To encrypt phone memory, it is highly recommended to enable 'Autolock' and set lock code in 'Phone and SIM card' settings to prevent unauthorised data access."
-
-// d:Information note, scrollable. Displayed after user has selected to start memory encryption.
-// d:Softkeys are OK and Cancel.
-// l:popup_info_list_pane_t1
-// r:3.1
-//
-#define qtn_encryption_note_encrypting "Encryption process is long. Power-off button is disabled. Please do not remove the battery during the process."
-
-// d:Information note, scrollable. Displayed after user has selected to start memory decryption.
-// l:popup_info_list_pane_t1
-// r:3.1
-//
-#define qtn_encryption_note_phone_decrypting "This will decrypt the phone memory. Decryption process is long. Power-off button is disabled. Please do not remove the battery during the process. After decryption, encryption key is destroyed."
-
-// d:Displayed when user is about to start Memory card encryption.
-// d:Memory card will be encrypted without saving the key.
-// l:list_setting_pane_t1
-// r:3.1
-//
-#define qtn_encryption_encrypt "Encrypt witht sav. key"
-
-// d:Displayed when user is about to start Memory card encryption.
-// d:Memory card will be encrypted and key will be saved.
-// l:list_setting_pane_t1
-// r:3.1
-//
-#define qtn_encryption_encryptsave "Encrypt and save key"
-
-// d:Displayed when user is about to start Memory card encryption.
-// d:Memory card will be encrypted with the restored key.
-// l:list_setting_pane_t1
-// r:3.1
-//
-#define qtn_encryption_encryptload "Encrypt / restored key"
-
-// d:Wait note. Displayed while encryption key is being created.
-// d:Displayed after user has selected to start encrypting Memory card.
-// l:popup_note_wait_window
-// r:3.1
-//
-#define qtn_encryption_note_wait "Creating encryption key"
-
-// d:Data query text. User is asked to enter passphrase to protect the encryption key.
-// l:popup_query_data_window
-// r:3.1
-//
-#define qtn_encryption_passphrase_protect "Enter key's passphrase to protect the key:"
-
-// d:Data query. User is asked to enter name for the encryption key.
-// d:Displayed after user has selected "Encrypt and save the key" (qtn_encryption_encryptsave).
-// l:popup_query_data_window
-// r:3.1
-//
-#define qtn_encryption_filename "Save key as:"
-
-// d:Confirmation note. Displayed after kkey is saved successfully.
-// d:Keep the localisation of Other consistent with string qtn_fmgr_def_fldr_others.
-// l:popup_note_window
-// r:3.1
-//
-#define qtn_encryption_note_saveinfo "Key saved succesfully in Other folder"
-
-// d:Heading in list query. User is asked to select key file.
-// l:heading_pane_t1
-// r:3.1
-//
-#define qtn_encryption_selectkey "Select key file:"
-
-// d:Data query. User is asked to enter key's phassphrase.
-// l:popup_query_data_window
-// r:3.1
-//
-#define qtn_encryption_passphrase_ask "Enter key's passphrase:"
-
-// d:Information note. Inform the user that the memory card is encrypted.
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_memorycard_encrypted "Encrypted memory card"
-
-// d:Displayed when user is about to start Memory card decryption.
-// d:Memory card will be decrypted.
-// l:list_setting_pane_t1
-// r:3.1
-//
-#define qtn_encryption_decrypt "Decrypt"
-
-// d:Displayed when user is about to start Memory card decryption.
-// d:Memory card will be decrypted and encryption will be set off.
-// l:list_setting_pane_t1
-// r:3.1
-//
-#define qtn_encryption_decryptturnoff "Decrypt / turn off encr."
-
-// d:Information note, scrollable. Displayed after user has selected to start memory decryption.
-// d:Softkeys are OK and Cancel.
-// l:popup_info_list_pane_t1
-// r:3.1
-//
-#define qtn_encryption_note_decrypting "The decryption process is long. The power off button is disabled. Please don't remove the battery during the process."
-
-// d:Information note, scrollable. Displayed after user has selected to start memory decryption.
-// d:Softkeys are OK and Cancel.
-// l:popup_info_list_pane_t1
-// r:3.1
-//
-#define qtn_encryption_note_decryptingdestroy "Decryption process is long. Power-off button is disabled. Please do not remove the battery during the process. After decryption, encryption key is destroyed."
-
-// d:Information note, scrollable. Displayed after user has selected to start memory encryption.
-// d:Softkeys are Yes and No.
-// l:popup_info_list_pane_t1
-// r:3.1
-//
-#define qtn_encryption_note_decrypt_loadkey "Memory card encrypted with another key. To decrypt it, import its key. Importing the new key will destroy the current key in driver. Continue?"
-
-// d:Confirmation query. Displayed in case insert an unencrypted memory card in the phone and encryption is on.
-// d:Softkeys are Yes and No.
-// l:popup_note_window
-// r:3.1
-//
-#define qtn_encryption_note_insertunencrypted "Memory card encryption setting is 'On'. Encrypt this memory card?"
-
-// d:Confirmation query. Displayed in case user select to turn off the encryption when no memory card is inside phone.
-// d:Softkeys are Yes and No.
-// l:popup_note_window
-// r:3.1
-//
-#define qtn_encryption_note_decrypt_nomemrycard "Turning off memory card encryption will destroy the current key in driver. Continue?"
-
-// d:Information note. Informs the user that the memory card is not an encrypted one.
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_memorycard_unencrypted "Unencrypted memory card"
-
-// d:Confirmation query. Displayed in case user inserts encrypted memory card in the phone and encryption is off.
-// l:popup_note_window
-// r:3.1
-//
-#define qtn_encryption_note_insertencrypted "This memory card is encrypted but the phone encryption is off. Decrypt this memory card?"
-
-// d:Information note. Displayed when the encryption is interrupted and cancelled.
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_encryptioninterrupt "Memory card encryption cancelled"
-
-// d:Setting list item, static. Possible values are On (qtn_encryption_phonememory_setting_on) and Off (qtn_encryption_phonememory_setting_off).
-// l:list_setting_pane_t1
-// r:3.1
-//
-#define qtn_encryption_phonememory_setting_title "Phone mem. encrypt.:"
-
-// d:Setting list item, static. Possible values are On (qtn_encryption_memorycard_setting_on) and Off (qtn_encryption_memorycard_setting_off).
-// l:list_setting_pane_t1
-// r:3.1
-//
-#define qtn_encryption_memorycard_setting_title "Mem. card encryption:"
-
-// d:Information note. Inform the user that the key file is wrong.
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_wrongkeyfile "Incorrect key file"
-
-// d:Information note. Inform the user that the inserted memory card cannot be used.
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_unusedmemorycard "Memory card cannot be used"
-
-// d:Text displayed after setting Phone memory or Memory card encryption On.
-// d:Indicates the process of memory encryption. %N is replaced with the percentage of how much of the memory is encrypted.
-// l:list_set_graphic_pane_t1
-// r:3.1
-//
-#define qtn_encryption_encrypt_process "Encrypting, %N%"
-
-// d:Text displayed after setting Phone memory or Memory card encryption Off.
-// d:Indicates the process of memory decryption. %N is replaced with the percentage of how much of the memory is decrypted.
-// l:list_set_graphic_pane_t1
-// r:3.1
-//
-#define qtn_encryption_decrypt_process "Decrypting, %N%"
-
-// d:Confirmation query, one softkey OK. Displayed in case memory card cannot be used unless encryption is set on.
-// l:popup_note_window
-// r:3.1
-//
-#define qtn_encryption_note_insertoff_unusedmemorycard "This memory card cannot be used. To use it, turn on memory card encryption."
-
-// d:Confirmation query, one softkey OK. Displayed in case memory cannot be used because key does not match to the memory card.
-// l:popup_note_window
-// r:3.1
-//
-#define qtn_encryption_note_inserton_unusedmemorycard "Key not matched to this memory card. Memory card cannot be used."
-
-// d:Setting list item, dynamic. Setting the phone memory encryption on.
-// l:list_set_graphic_pane_t1
-// r:3.1
-//
-#define qtn_encryption_phonememory_setting_on "On"
-
-// d:Setting list item, dynamic. Setting the phone memory encryption off.
-// l:list_set_graphic_pane_t1
-// r:3.1
-//
-#define qtn_encryption_phonememory_setting_off "Off"
-
-// d:Setting list item, dynamic. Setting the memory card encryption on.
-// l:list_set_graphic_pane_t1
-// r:3.1
-//
-#define qtn_encryption_memorycard_setting_on "On"
-
-// d:Setting list item, dynamic. Setting the memory card encryption off.
-// l:list_set_graphic_pane_t1
-// r:3.1
-//
-#define qtn_encryption_memorycard_setting_off "Off"
-
-// d:Application name in menu list view.
-// l:list_single_large_graphic_pane_t1
-// r:3.1
-//
-#define qtn_apps_encryption_list "Encryption"
-
-// d:Header text.
-// d:Displayed as a header for several scrollable notes (e.g qtn_encryption_note_lock, qtn_encryption_note_encrypting)
-// l:heading_pane_t1
-// r:3.1
-//
-#define qtn_encryption_note_header "Note:"
-
-
-/************* Own defines *****************************************/
-
-
-// d:Information note. memory card is corrupted.
-// d:
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_corrupted "Corrupted"
-
-// d:Information note. Informs that the battery is low.
-// d: User is asked to change battery or connect a charger.
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_battery_low "Battery low. Change battery or connect charger."
-
-// d:Information note. Informs that no keys were found.
-// d:
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_no_keys_found "No keys found"
-
-// d:Information note. Informs that password is invalid.
-// d:
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_invalid_password "Invalid password"
-
-// d:Information note. Informs about key error.
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_key_error "Key error"
-
-// d:Information note. Informs that encryption is controlled by admin.
-// d:
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_admin_control "Encryption controlled by admin"
-
-// d:Information note. Informs about invalid name and asks user to enter name again.
-// d:
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_bad_name "Invalid name. Try again."
-
-// d:Information note. Informs that the file already exists.
-// d:
-// l:popup_note_window/opt2
-// r:3.1
-//
-#define qtn_encryption_note_file_exists "File already exists"
-
-// d:Confirmation query. Informs that phone memory cannot be encrypted while
-// d:firmware update process is ongoing.
-// l:popup_note_window
-// r:3.2
-//
-#define qtn_conf_encr_not_poss "Device encryption cannot be activated when an update over the air is ongoing. Wait for the update to stop and try again."
-
-// End of File
--- a/deviceencryption/DevEncUi/rom/DevEncUi.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2005 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: Contains information about binary files and their locations.
-*
-*/
-
-#ifndef __DEVENCUI_IBY__
-#define __DEVENCUI_IBY__
-
-S60_APP_EXE( DevEncUi )
-//S60_APP_BITMAP( essysapp )
-S60_APP_AIF_ICONS( DevEncUi )
-S60_APP_AIF_RSC( DevEncUi )
-data=DATAZ_\private\10003a3f\apps\DevEncUi_reg.rsc private\10003a3f\import\apps\DevEncUi_reg.rsc
-data=DATAZ_\resource\apps\DevEncUi.rsc resource\apps\DevEncUi.rsc
-
-#endif // __DEVENCUI_IBY__
-
-// End of file
--- a/deviceencryption/DevEncUi/sis/DevEncUi.pkg Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-;
-; 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 "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:
-;
-; DevEncUi.pkg
-;
-;Language - standard language definitions
-&EN
-
-;Standard SIS file header
-#{"DevEncUi"},(0x2000259A),1,0,0
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-;Supports Series 60 v 3.0
-[0x101F7961], 0, 0, 0, {"Series60ProductID"}
-
-;Files to install
-"\epoc32\release\armv5\urel\DevEncUi.exe" -"!:\sys\bin\DevEncUi.exe"
-"\epoc32\data\z\resource\apps\DevEncUi.rsc" -"!:\resource\apps\DevEncUi.rsc"
-;"\epoc32\data\z\resource\apps\DevEncUi.mif" -"!:\resource\apps\DevEncUi.mif"
-"\epoc32\data\z\private\10003a3f\apps\DevEncUi_reg.rsc" -"!:\private\10003a3f\import\apps\DevEncUi_reg.rsc"
--- a/deviceencryption/DevEncUi/src/DevEncUi.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
-* Copyright (c) 2005 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 application entry point functions.
-*
-*/
-
-// INCLUDE FILES
-#include <eikstart.h>
-#include "DevEncUiApplication.h"
-
-
-// -----------------------------------------------------------------------------
-// NewApplication()
-//
-// -----------------------------------------------------------------------------
-//
-LOCAL_C CApaApplication* NewApplication()
- {
- return new CDevEncUiApplication;
- }
-
-// -----------------------------------------------------------------------------
-// E32Main()
-//
-// -----------------------------------------------------------------------------
-//
-GLDEF_C TInt E32Main()
- {
- return EikStart::RunApplication( NewApplication );
- }
--- a/deviceencryption/DevEncUi/src/DevEncUiApplication.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiApplication.
-*
-*/
-
-// INCLUDE FILES
-#include "DevEncLog.h"
-#include "DevEncUiDocument.h"
-#include "DevEncUiApplication.h"
-#include "DevEncUids.hrh"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// UID for the application
-// this should correspond to the uid defined in the mmp file
-const TUid KUidDevEncUIApp = { KDevEncUiUid };
-
-// --------------------------------------------------------------------------
-// CDevEncUiApplication::AppDllUid()
-// Returns application UID
-// --------------------------------------------------------------------------
-//
-TUid CDevEncUiApplication::AppDllUid() const
- {
- // Return the UID for the DevEncUI application
- return KUidDevEncUIApp;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiApplication::CreateDocumentL()
-// Creates CApaDocument object
-// --------------------------------------------------------------------------
-//
-CApaDocument* CDevEncUiApplication::CreateDocumentL()
- {
- DFLOG( "CDevEncUiApplication::CreateDocumentL" );
- // Create an DevEncUI document, and return a pointer to it
- return ( static_cast<CApaDocument*>
- ( CDevEncUiDocument::NewL( *this ) ) );
- }
-
-// End of File
--- a/deviceencryption/DevEncUi/src/DevEncUiAppui.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,565 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiAppUi.
-*
-*/
-
-// INCLUDE FILES
-#include <avkon.hrh>
-#include <centralrepository.h>
-#include <devencui.rsg>
-#include <csxhelp/devenc.hlp.hrh>
-#include <e32event.h>
-#include <hlplch.h> // Help launcher
-#include <StringLoader.h> // TBD: Needed?
-#include <w32std.h>
-#include <DevEncExternalCRKeys.h>
-
-#include "DevEncLog.h"
-#include "DevEnc.hrh"
-#include "DevEncUi.pan"
-#include "DevEncUiAppui.h"
-#include "DevEncUiEncrView.h"
-#include "DevEncUiEncryptionOperator.h"
-#include "DevEncUiDecrView.h"
-
-#include "DevEncUiMainView.h"
-#include "DevEncUiMemoryEntity.h"
-#include "DevEncUids.hrh"
-
-#include <AknGlobalNote.h>
-
-//Local definitions
-const TInt KDevEncUiConstructionDelay( 1000000 );
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// --------------------------------------------------------------------------
-// CDevEncUiAppUi::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// --------------------------------------------------------------------------
-//
-void CDevEncUiAppUi::ConstructL()
- {
- // Initialise app UI with standard value.
- BaseConstructL( EAknEnableSkin | EAknSingleClickCompatible );
-
- DFLOG( ">>CDevEncUiAppUi::ConstructL" );
-
- User::LeaveIfError( iFs.Connect() );
-
- DFLOG( "CDevEncUiAppUi::ConstructL => Create drive path" );
- // Create private folder. TBD: Needed?
- TInt error = iFs.CreatePrivatePath( EDriveC );
- if ( error == KErrAlreadyExists )
- {
- error = KErrNone;
- }
- DFLOG( "CDevEncUiAppUi::ConstructL => Leave ?" );
- User::LeaveIfError( error );
- DFLOG( "CDevEncUiAppUi::ConstructL => No, constructing CR" );
-
- // Central repository settings
- iCrSettings = CRepository::NewL( TUid::Uid( KCRDevEncUiSettings ) );
- DFLOG( "CDevEncUiAppUi::ConstructL => Adding observer" );
-
- // Create MMC observer
- iObserver = CMmcObserver::NewL( this, &iFs );
- iObserver->StartObserver();
-
- // Call the MMC callback function once to get the initial card status
- MMCStatusChangedL();
-
- DFLOG( "CDevEncUiAppUi::ConstructL => constructing mass memory" );
-
- CDevEncUiMemoryEntity* massMemory = CDevEncUiMemoryEntity::NewLC( iEikonEnv,
- EPhoneMemory );
-
- DFLOG( "CDevEncUiAppUi::ConstructL => adding to mem entities" );
- iMemEntities.AppendL( massMemory );
- CleanupStack::Pop( massMemory );
-
- DFLOG( "CDevEncUiAppUi::ConstructL => constructing memory card" );
-
- CDevEncUiMemoryEntity* memoryCard = CDevEncUiMemoryEntity::NewLC( iEikonEnv,
- EMemoryCard );
-
- DFLOG( "CDevEncUiAppUi::ConstructL => adding to mem entities" );
- iMemEntities.AppendL( memoryCard );
- CleanupStack::Pop( memoryCard );
-
- DFLOG( "CDevEncUiAppUi::ConstructL => constructing phone memory" );
-
- CDevEncUiMemoryEntity* phoneMemory = CDevEncUiMemoryEntity::NewLC( iEikonEnv,
- EPrimaryPhoneMemory );
-
- DFLOG( "CDevEncUiAppUi::ConstructL => adding to mem entities" );
- iMemEntities.AppendL( phoneMemory );
- CleanupStack::Pop( phoneMemory );
-
- DFLOG( "CDevEncUiAppUi::ConstructL() => Create enc operator" );
-
- // Create encryption operator
- iEncOperator = CDevEncUiEncryptionOperator::NewL( *iEikonEnv,
- *this,
- iCrSettings );
-
- DFLOG( "CDevEncUiAppUi::ConstructL() => Create views" );
-
- // Create views
- iMainView = CDevEncUiMainView::NewL( iMemEntities,
- iCrSettings,
- iMmcStatus );
-
- AddViewL( iMainView ); // transfer ownership
-
- iEncryptionView = CDevEncUiEncrView::NewL( iMemEntities );
- AddViewL( iEncryptionView ); // transfer ownership
-
- iDecryptionView = CDevEncUiDecrView::NewL( iMemEntities );
- AddViewL( iDecryptionView ); // transfer ownership
-
- SetDefaultViewL( *iMainView );
-
- DFLOG( "ConstructL 6" );
-
- iConstructionOnGoing = ETrue;
-
- iTimer = CDevEncUiTimer::NewL( this );
- iTimer->After( KDevEncUiConstructionDelay );
-
- DFLOG( "<<CDevEncUiAppUi::ConstructL" );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiAppUi::CDevEncUiAppUi()
-// C++ default constructor can NOT contain any code, that might leave.
-// --------------------------------------------------------------------------
-//
-CDevEncUiAppUi::CDevEncUiAppUi()
- {
- // No implementation required
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiAppUi::~CDevEncUiAppUi()
-// Destructor.
-// --------------------------------------------------------------------------
-//
-CDevEncUiAppUi::~CDevEncUiAppUi()
- {
- DFLOG( ">>CDevEncUiAppUi::~CDevEncUiAppUi" );
- delete iObserver;
- iFs.Close();
- delete iEncOperator;
- if (iMemEntities.Count())
- iMemEntities[ EMemoryCard ]->RemoveObserver( this );
- for ( TInt i = 0; i < iMemEntities.Count(); i++ )
- {
- delete iMemEntities[i];
- }
- iMemEntities.Close();
- delete iCrSettings;
- delete iTimer;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiAppUi::HandleCommandL()
-// Takes care of command handling.
-// --------------------------------------------------------------------------
-//
-void CDevEncUiAppUi::HandleCommandL( TInt aCommand )
- {
- DFLOG( ">>CDevEncUiAppUi::HandleCommandL" );
-
- switch( aCommand )
- {
- // These commands are specific to the memory card
- case EDevEncUiCommandEncryptWithoutSavingKey: // fall through
- case EDevEncUiCommandEncryptAndSaveKey:
- case EDevEncUiCommandEncryptWithRestoredKey:
- {
- // Pass the MMC memory entity to the operator, along with the command
- iEncOperator->HandleMmcEncryptRequestL( iMemEntities[ EMemoryCard ],
- aCommand );
- break;
- }
-
- case EDevEncUiCommandDecrypt: // fall through
- case EDevEncUiCommandDecryptAndTurnOffEncryption:
- {
- // Pass the MMC memory entity to the operator, along with the command
- iEncOperator->HandleMmcDecryptRequestL( iMemEntities[ EMemoryCard ],
- aCommand );
- break;
- }
-
- case EDevEncUiCommandHelp:
- {
- DisplayHelpL();
- break;
- }
-
- case EAknSoftkeyBack:
- {
- // Get the current view
- TVwsViewId wsViewId;
- TInt err = GetActiveViewId( wsViewId );
- if ( ( err != KErrNone ) ||
- ( wsViewId.iAppUid.iUid != KDevEncUiUid ) )
- {
- User::Leave( err );
- }
-
- // Go to the main view from the encryption and decryption views
- if ( wsViewId.iViewUid.iUid == EDevEncUiEncrViewId ||
- wsViewId.iViewUid.iUid == EDevEncUiDecrViewId )
- {
- ActivateLocalViewL( TUid::Uid( EDevEncUiMainViewId ) );
- }
- if ( wsViewId.iViewUid.iUid == EDevEncUiMainViewId )
- {
- Exit();
- }
- break;
- }
-
- case EEikCmdExit: // fall through
- case EAknSoftkeyExit:
- {
- Exit();
- break;
- }
-
- default:
- Panic( EDevEncUi );
- break;
- }
- }
-
-// --------------------------------------------------------------------------
-// Called by the framework when the app is moved to or from foreground.
-//
-// --------------------------------------------------------------------------
-//
-void CDevEncUiAppUi::HandleForegroundEventL( TBool aForeground )
- {
- DFLOG( "CDevEncUiAppUi::HandleForegroundEventL" );
- DFLOG2( "CDevEncUiAppUi::HandleForegroundEventL => aForeground = %d ", aForeground );
- CAknAppUi::HandleForegroundEventL( aForeground );
-
- iForeground = aForeground;
-
- if( iConstructionOnGoing )
- {
- DFLOG( "CDevEncUiAppUi::HandleForegroundEventL => Construction on going" );
- if( iTimer )
- {
- iTimer->Cancel();
- }
- iTimer->After( KDevEncUiConstructionDelay );
- }
- }
-
-// --------------------------------------------------------------------------
-// Called by the framework before the options menu is shown.
-// Sets the correct menu items.
-// --------------------------------------------------------------------------
-//
-void CDevEncUiAppUi::DynInitMenuPaneL( TInt /*aResourceId*/,
- CEikMenuPane* /*aMenuPane*/ )
- {
- }
-
-// --------------------------------------------------------------------------
-// Called by the framework before the context-sensitive help is shown.
-// Sets the correct menu items.
-// --------------------------------------------------------------------------
-//
-//CArrayFix<TCoeHelpContext>* CDevEncUiAppUi::HelpContextL()
-// {
-// TCoeHelpContext& aContext
-// }
-
-// --------------------------------------------------------------------------
-// Called by the framework before the context-sensitive help is shown.
-// Sets the correct menu items.
-// --------------------------------------------------------------------------
-void CDevEncUiAppUi::DisplayHelpL()
- {
- CArrayFix<TCoeHelpContext>* contexts =
- new ( ELeave ) CArrayFixFlat<TCoeHelpContext>( 1 );
- CleanupStack::PushL( contexts );
- TCoeHelpContext context;
- context.iMajor = TUid::Uid( KDevEncUiUid );
-
- // Get the currently active view
- TVwsViewId wsViewId;
- TInt err = GetActiveViewId( wsViewId );
- if ( ( err != KErrNone ) ||
- ( wsViewId.iAppUid.iUid != KDevEncUiUid ) )
- {
- User::Leave( err );
- }
-
- // Set the help context for the current view
- switch ( wsViewId.iViewUid.iUid )
- {
- case EDevEncUiEncrViewId:
- {
- context.iContext = KES_HLP_ENCRYPTION_ENCRYPT;
- }
- break;
- case EDevEncUiDecrViewId:
- {
- context.iContext = KES_HLP_ENCRYPTION_DECRYPT;
- }
- break;
- default: // Main view
- {
- context.iContext = KES_HLP_ENCRYPTION_MAIN;
- }
- break;
- }
-
- contexts->AppendL( context );
- CleanupStack::Pop( contexts );
- HlpLauncher::LaunchHelpApplicationL( iCoeEnv->WsSession(), contexts );
- }
-
-// --------------------------------------------------------------------------
-// Called by CDevEncMmcObserver when MMC status changes.
-//
-// --------------------------------------------------------------------------
-void CDevEncUiAppUi::MMCStatusChangedL()
- {
- DFLOG( "CDevEncUiAppUi::MMCStatusChangedL" );
- TVolumeInfo volInfo;
-
- TInt err = iFs.Volume( volInfo, /*EDriveE*/EDriveF );
- switch ( err )
- {
- case KErrNone:
- {
- // Readable MMC inserted
- DFLOG( "MMC inserted" );
- iMmcStatus = EMmcOk;
- break;
- }
-
- case KErrNotReady:
- {
- // MMC ejected
- DFLOG( "MMC ejected" );
- iMmcStatus = EMmcNotPresent;
- break;
- }
-
- case KErrCorrupt:
- {
- // Corrupt or unformatted MMC, or wrong key
- DFLOG( "MMC corrupt, unformatted or encrypted with other key" );
- iMmcStatus = EMmcNotReadable;
- break;
- }
-
- default:
- {
- DFLOG2( "RFs::Volume returned error %d", err );
- break;
- }
- } // switch
- }
-
-// --------------------------------------------------------------------------
-// Called by memory entity when memory status changes.
-//
-// --------------------------------------------------------------------------
-void CDevEncUiAppUi::UpdateInfo( TDevEncUiMemoryType aType,
- TUint aState,
- TUint /*aProgress*/ )
- {
- DFLOG( "CDevEncUiAppUi::UpdateInfo" );
- TInt error( KErrNone );
- TRAP( error, DoUpdateInfoL( aType, aState ) );
- DFLOG2( "CDevEncUiAppUi::DoUpdateInfo returned %d", error );
- }
-
-// --------------------------------------------------------------------------
-// Helper function called by UpdateInfo when memory status changes.
-//
-// --------------------------------------------------------------------------
-void CDevEncUiAppUi::DoUpdateInfoL( TDevEncUiMemoryType aType,
- TUint aState )
- {
- DFLOG( ">>CDevEncUiAppUi::DoUpdateInfoL" );
- if ( aType != EMemoryCard )
- {
- return;
- }
-
- // Prevent re-entry
- if ( iStatusUpdateOngoing )
- {
- return;
- }
- iStatusUpdateOngoing = ETrue;
-
- DFLOG3( "CDevEncUiAppUi::DoUpdateInfoL, type %d, state %d",
- aType, aState );
- DFLOG2( "Mmc state %d", iMmcStatus );
- DFLOG2( "Enc state %d", iMmcEncState );
-
- // Check encryption key status
- TInt mmcKeyInDriver( 0 );
- iCrSettings->Get( KDevEncUserSettingMemoryCard, mmcKeyInDriver );
-
- if ( ( iMmcStatus == EMmcOk ) &&
- ( iMmcEncState == EUnmounted ) &&
- ( aState == EDecrypted ) )
- {
- // A readable memory card has just been inserted
-
- if ( mmcKeyInDriver )
- {
- // We have a valid encryption key, but the newly inserted
- // card is decrypted. Ask if the user wants to encrypt.
- // (see UI spec 2.13)
- iEncOperator->SuggestMmcEncryptionL(
- iMemEntities[ EMemoryCard ] );
- }
- }
-
- if ( ( iMmcStatus == EMmcNotReadable ) &&
- ( iMmcEncState == EUnmounted ) &&
- ( aState == ECorrupted ) )
- {
- // An unreadable memory card has just been inserted
-
- if ( mmcKeyInDriver )
- {
- // We seem to have the wrong encryption key in the driver.
- // Inform the user that the card cannot be used.
- // (see UI spec 2.16)
- iEncOperator->ErrorNoteL(
- R_DEVENCUI_TEXT_NOTE_INSERTON_UNUSEDMEMORYCARD );
- }
- else
- {
- DFLOG( "CDevEncUiAppUi::DoUpdateInfoL => SuggestMmcDecryption" );
- // We have no encryption key in the driver.
- // Ask if the user wants to import a key and decrypt.
- // (see UI spec 2.17)
- iEncOperator->SuggestMmcDecryptionL(
- iMemEntities[ EMemoryCard ] );
- }
- }
-
- iMmcEncState = aState;
- iStatusUpdateOngoing = EFalse;
- DFLOG( "<<CDevEncUiAppUi::DoUpdateInfoL" );
- }
-
-// --------------------------------------------------------------------------
-// Called by the CDevEncUiTimer when the event is generated.
-//
-// --------------------------------------------------------------------------
-void CDevEncUiAppUi::Timeout()
- {
- DFLOG( "CDevEncUiAppUi::Timeout()" );
-
- if( iForeground )
- {
- DFLOG( "CDevEncUiAppUi::Timeout() => Construction completed" );
- //the construction is completed now
- iConstructionOnGoing = EFalse;
- // This class needs to observe memory card status changes.
- // (This call results in a call to UpdateInfo, hence we need to be fully
- // constructed before this.)
- TRAP_IGNORE(iMemEntities[ EMemoryCard ]->AddObserverL( this ));
-
- }
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiAppUi::ProcessCommandParametersL
-// From CEikAppUi
-// -----------------------------------------------------------------------------
-//
-TBool CDevEncUiAppUi::ProcessCommandParametersL(
- TApaCommand /*aCommand*/,
- TFileName& /*aDocumentName*/,
- const TDesC8& /*aTail*/ )
- {
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiAppUi::OpenFileL
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiAppUi::OpenFileL(const TDesC& /*aFilename*/)
- {
- DFLOG("CDevEncUiAppUi::OpenFileL");
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiAppUi::OpenFileL()
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiAppUi::OpenFileL(RFile& aFile)
- {
- _LIT(KTargetDir,"c:\\data\\others\\");
- TBuf16<100> destinationPath;
- destinationPath.Copy( KTargetDir );
- TBuf16<250> sourcePath;
- aFile.FullName( sourcePath );
-
- // if the paths are the same, the copy operation will not be executed
- if ( sourcePath.Left( destinationPath.Length() ).CompareF( destinationPath ) )
- {
- // copy the file to Others folder
- TRAPD(err, CopyL( sourcePath, destinationPath ));
-
- if( err == KErrNone )
- {
- iEncOperator->InfoNoteL( R_DEVENCUI_TEXT_NOTE_SAVEINFO, ETrue );
- ActivateLocalViewL( TUid::Uid( EDevEncUiMainViewId ) );
- }
- else
- {
- Exit();
- }
- }
- else
- {
- ActivateLocalViewL( TUid::Uid( EDevEncUiMainViewId ) );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiAppUi::Copy()
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiAppUi::CopyL(const TDesC &anOld, const TDesC &aNew)
- {
- CFileMan* fileMan=CFileMan::NewL( iFs );
- CleanupStack::PushL( fileMan );
-
- User::LeaveIfError(fileMan->Copy( anOld, aNew ));
-
- CleanupStack::PopAndDestroy( fileMan );
- }
-
-// End of File
--- a/deviceencryption/DevEncUi/src/DevEncUiCreateKeyProcess.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiCreateKeyProcess.
-*
-*/
-
-#include "DevEncLog.h"
-#include "DevEncUiCreateKeyProcess.h"
-#include <devencui.rsg>
-
-CDevEncUiCreateKeyProcess::CDevEncUiCreateKeyProcess()
- {
- iCount = 0;
- }
-
-CDevEncUiCreateKeyProcess::~CDevEncUiCreateKeyProcess()
- {
- }
-
-void CDevEncUiCreateKeyProcess::ProcessFinished()
- {
- }
-
-void CDevEncUiCreateKeyProcess::DialogDismissedL( TInt /*aButtonId*/ )
- {
- }
-
-//TInt CDevEncUiCreateKeyProcess::CycleError( TInt aError )
-// {
-// return aError;
-// }
-
-TBool CDevEncUiCreateKeyProcess::IsProcessDone() const
- {
- return ( iCount == 3 );
- }
-
-void CDevEncUiCreateKeyProcess::StepL()
- {
- // Simulate processing
- User::After( 1000000 );
- iCount++;
- }
-
-TBool CDevEncUiCreateKeyProcess::RunLD()
- {
- TBool returnvalue = EFalse;
-
- CDevEncUiCreateKeyProcess* process = new ( ELeave ) CDevEncUiCreateKeyProcess();
- CleanupStack::PushL( process );
-
- CAknWaitNoteWrapper* waitNoteWrapper =
- CAknWaitNoteWrapper::NewL();
-
- CleanupStack::PushL( reinterpret_cast<CBase*>( waitNoteWrapper ) );
-
- if ( waitNoteWrapper->ExecuteL( R_DEVENCUI_CREATING_KEY_WAITNOTE,
- *process,
- ETrue ) )
- {
- returnvalue = ETrue;
- }
- else //note was cancelled
- {
- returnvalue = EFalse;
- }
-
- CleanupStack::PopAndDestroy( waitNoteWrapper );
- CleanupStack::PopAndDestroy( process );
- return returnvalue;
- }
--- a/deviceencryption/DevEncUi/src/DevEncUiDecrView.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiDecrView.
-*
-*/
-
-// INCLUDE FILES
-// Class includes
-#include "DevEncUiDecrView.h"
-
-// System includes
-#include <aknViewAppUi.h> // CAknViewAppUi
-#include <devencui.rsg>
-
-// User includes
-#include "DevEncLog.h"
-#include "DevEnc.hrh"
-#include "DevEncUiDecrViewContainer.h"
-#include "DevEncUiMemoryEntity.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::CDevEncUiDecrView
-//
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDecrView::~CDevEncUiDecrView()
- {
- delete iContainer;
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDecrView* CDevEncUiDecrView::NewL( RArray<CDevEncUiMemoryEntity*>& aMemEntities )
- {
- CDevEncUiDecrView* self = CDevEncUiDecrView::NewLC( aMemEntities );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::NewLC
-//
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDecrView* CDevEncUiDecrView::NewLC( RArray<CDevEncUiMemoryEntity*>& aMemEntities )
- {
- CDevEncUiDecrView* self = new ( ELeave ) CDevEncUiDecrView( aMemEntities );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::CDevEncUiDecrView
-//
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDecrView::CDevEncUiDecrView( RArray<CDevEncUiMemoryEntity*>& aMemEntities )
- : iMemEntities( aMemEntities )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::Container
-//
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDecrViewContainer* CDevEncUiDecrView::Container()
- {
- return iContainer;
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::GetAppUi
-//
-// -----------------------------------------------------------------------------
-//
-CDevEncUiAppUi& CDevEncUiDecrView::GetAppUi()
- {
- CAknViewAppUi* aknViewAppUi = AppUi();
- CDevEncUiAppUi* appUi = reinterpret_cast<CDevEncUiAppUi*>( aknViewAppUi );
- return ( *appUi );
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiDecrView::ConstructL()
- {
- BaseConstructL( R_DEVENCUI_DECRVIEW );
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::Id
-//
-// -----------------------------------------------------------------------------
-//
-TUid CDevEncUiDecrView::Id() const
- {
- return TUid::Uid( EDevEncUiDecrViewId );
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::DoActivateL
-//
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiDecrView::DoActivateL( const TVwsViewId& /*aPrevViewId*/,
- TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/ )
- {
- if ( !iContainer )
- {
- iContainer = CDevEncUiDecrViewContainer::NewL( AppUi()->ClientRect(),
- *this );
- iContainer->SetMopParent( this );
- AppUi()->AddToStackL( *this, iContainer );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::DoDeactivate
-//
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiDecrView::DoDeactivate()
- {
- if (iContainer)
- {
- AppUi()->RemoveFromStack( iContainer );
- delete iContainer;
- iContainer = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrView::HandleCommandL
-//
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiDecrView::HandleCommandL( TInt aCommand )
- {
-
- switch ( aCommand )
- {
-
- case EAknSoftkeyBack:
- {
- AppUi()->HandleCommandL( EAknSoftkeyBack );
- break;
- }
- default:
- {
- AppUi()->HandleCommandL( aCommand );
- }
- }
- }
-
-// --------------------------------------------------------------------------
-// Called by the framework when the application status pane
-// size is changed. Passes the new client rectangle to the container.
-// --------------------------------------------------------------------------
-void CDevEncUiDecrView::HandleStatusPaneSizeChange()
- {
- if ( iContainer )
- {
- iContainer->SetRect( ClientRect() );
- }
- }
-
-void CDevEncUiDecrView::HandleResourceChangeL( TInt aType )
- {
- if ( aType == KEikDynamicLayoutVariantSwitch )
- {
- // do re-layout
- if ( iContainer )
- {
- iContainer->SetRect( ClientRect() );
- iContainer->HandleResourceChange( aType );
- }
- }
- }
-
-
-// End of File
--- a/deviceencryption/DevEncUi/src/DevEncUiDecrViewContainer.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiDecrViewContainer.
-*
-*/
-
-// INCLUDE FILES
-
-// Class includes
-#include "DevEncUiDecrViewContainer.h"
-
-// System Includes
-#include <aknlists.h>
-#include <barsread.h>
-#include <coemain.h>
-#include <devencui.rsg>
-#include <eikenv.h>
-
-// User Includes
-#include "DevEncLog.h"
-#include "DevEnc.hrh"
-#include "DevEncUi.pan"
-#include "DevEncUiAppui.h"
-#include "DevEncUiDocument.h"
-#include "DevEncUiDecrView.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::NewLC
-//
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDecrViewContainer* CDevEncUiDecrViewContainer::NewLC( const TRect& aRect,
- CAknView& aOwningView )
- {
- CDevEncUiDecrViewContainer* self =
- new ( ELeave ) CDevEncUiDecrViewContainer( aOwningView );
- CleanupStack::PushL( self );
- self->ConstructL( aRect );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDecrViewContainer* CDevEncUiDecrViewContainer::NewL( const TRect& aRect,
- CAknView& aOwningView )
- {
- CDevEncUiDecrViewContainer* self = NewLC( aRect, aOwningView );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiDecrViewContainer::ConstructL( const TRect& aRect )
- {
- // Create a window for this application view
- CreateWindowL();
-
- CreateListL();
-
- // Set the windows size
- SetRect( aRect );
-
- // Activate the window, which makes it ready to be drawn
- ActivateL();
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::CreateListL
-//
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiDecrViewContainer::CreateListL()
- {
- // First phase construction
- iListBox = new ( ELeave ) CAknDoubleStyle2ListBox;
- iListBox->SetContainerWindowL( *this );
-
- // Second Phase Construction
- TResourceReader reader;
- iEikonEnv->CreateResourceReaderLC( reader, R_DEVENCUI_DECRYPTION_LISTBOX );
- iListBox->ConstructFromResourceL( reader );
- CleanupStack::PopAndDestroy(); // reader (Can't pass T-classes as parameter)
-
- iListBox->SetListBoxObserver( this );
- iListBox->CreateScrollBarFrameL( ETrue );
- iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::CDevEncUiDecrViewContainer
-//
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDecrViewContainer::CDevEncUiDecrViewContainer( CAknView& aOwningView )
- : iOwningView( aOwningView )
- {
- // No implementation required
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::CDevEncUiDecrViewContainer
-//
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDecrViewContainer::~CDevEncUiDecrViewContainer()
- {
- delete iListBox;
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::HandleListBoxEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiDecrViewContainer::HandleListBoxEventL( CEikListBox* /*aListBox*/,
- TListBoxEvent aEventType )
- {
- switch ( aEventType )
- {
- case EEventItemSingleClicked: // FALLTHROUGH
- case EEventEnterKeyPressed:
- {
- if ( iListBox->CurrentItemIndex() == 0 )
- {
- iOwningView.HandleCommandL( EDevEncUiCommandDecrypt );
- }
- if ( iListBox->CurrentItemIndex() == 1 )
- {
- iOwningView.HandleCommandL( EDevEncUiCommandDecryptAndTurnOffEncryption );
- }
- }
- break;
- default:
- break;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::CountComponentControls
-// Return number of controls inside this container
-// -----------------------------------------------------------------------------
-//
-TInt CDevEncUiDecrViewContainer::CountComponentControls() const
- {
- return 1;
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::ComponentControl
-//
-// -----------------------------------------------------------------------------
-//
-CCoeControl* CDevEncUiDecrViewContainer::ComponentControl( TInt aIndex ) const
- {
- switch ( aIndex )
- {
- case 0:
- return iListBox;
- default:
- return NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::Draw
-//
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiDecrViewContainer::Draw( const TRect& aRect ) const
- {
- CWindowGc& gc = SystemGc();
- gc.Clear( aRect );
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::OfferKeyEventL
-//
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CDevEncUiDecrViewContainer::OfferKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- if ( !iListBox )
- {
- return EKeyWasNotConsumed;
- }
- if ( aKeyEvent.iCode == EKeyDevice3 /* OK key */ )
- {
- if ( iListBox->CurrentItemIndex() < 0 )
- {
- return EKeyWasConsumed;
- }
- // User selected a list item. Notify the callback instance.
- if ( iListBox->CurrentItemIndex() == 0 )
- {
- iOwningView.HandleCommandL( EDevEncUiCommandDecrypt );
- }
- if ( iListBox->CurrentItemIndex() == 1 )
- {
- iOwningView.HandleCommandL( EDevEncUiCommandDecryptAndTurnOffEncryption );
- }
- return EKeyWasConsumed;
- }
- return iListBox->OfferKeyEventL( aKeyEvent, aType );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiDecrViewContainer::SizeChanged()
-//
-// --------------------------------------------------------------------------
-//
- void CDevEncUiDecrViewContainer::SizeChanged()
- {
- if ( iListBox )
- {
- iListBox->SetExtent( TPoint( 0, 0 ), iListBox->MinimumSize() );
- }
- }
-
-//End Of File
-
-
--- a/deviceencryption/DevEncUi/src/DevEncUiDocument.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiDocument.
-*
-*/
-
-// INCLUDE FILES
-#include "DevEncLog.h"
-#include "DevEncUiAppui.h"
-#include "DevEncUiDocument.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDocument::NewL()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDocument* CDevEncUiDocument::NewL( CEikApplication&
- aApp )
- {
- CDevEncUiDocument* self = NewLC( aApp );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDocument::NewLC()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDocument* CDevEncUiDocument::NewLC( CEikApplication&
- aApp )
- {
- CDevEncUiDocument* self =
- new ( ELeave ) CDevEncUiDocument( aApp );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDocument::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiDocument::ConstructL()
- {
- // No implementation required
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDocument::CDevEncUiDocument()
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CDevEncUiDocument::CDevEncUiDocument( CEikApplication& aApp )
- : CAknDocument( aApp )
- {
- // No implementation required
- }
-
-// ---------------------------------------------------------------------------
-// CDevEncUiDocument::~CDevEncUiDocument()
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CDevEncUiDocument::~CDevEncUiDocument()
- {
- // No implementation required
- }
-
-// ---------------------------------------------------------------------------
-// CDevEncUiDocument::CreateAppUiL()
-// Constructs CreateAppUi.
-// ---------------------------------------------------------------------------
-//
-CEikAppUi* CDevEncUiDocument::CreateAppUiL()
- {
- DFLOG( "CDevEncUiDocument::CreateAppUiL" );
- // Create the application user interface, and return a pointer to it
- // the framework takes ownership of this object
- return ( static_cast <CEikAppUi*> ( new ( ELeave )
- CDevEncUiAppUi ) );
- }
-
-// -----------------------------------------------------------------------------
-// CDevEncUiDocument::OpenFileL
-// -----------------------------------------------------------------------------
-//
-CFileStore* CDevEncUiDocument::OpenFileL(
- TBool /*aDoOpen*/,
- const TDesC& aFilename,
- RFs& /*aFs*/)
- {
- iAppUi->OpenFileL(aFilename);
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// void CDevEncUiDocument::OpenFileL()
-// -----------------------------------------------------------------------------
-//
-void CDevEncUiDocument::OpenFileL(
- CFileStore*& /*aFileStore*/,
- RFile& aFile)
- {
- ((CDevEncUiAppUi*) iAppUi)->OpenFileL(aFile);
- }
-
-// End of File
--- a/deviceencryption/DevEncUi/src/DevEncUiEncrView.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiEncrView.
-*
-*/
-
-// INCLUDE FILES
-// Class includes
-#include "DevEncUiEncrView.h"
-
-// System includes
-#include <aknViewAppUi.h> // CAknViewAppUi
-#include <devencui.rsg>
-
-// User includes
-#include "DevEncLog.h"
-#include "DevEnc.hrh"
-#include "DevEncUiEncrViewContainer.h"
-#include "DevEncUiMemoryEntity.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-/**
-* Destructor. Frees up memory for the iLabel.
-*/
-CDevEncUiEncrView::~CDevEncUiEncrView()
- {
- delete iContainer;
- }
-
-/**
-* Symbian OS 2 phase constructor.
-* Constructs the CDevEncUiEncrView using the NewLC method, popping
-* the constructed object from the CleanupStack before returning it.
-*
-* @param aRect The rectangle for this window
-* @return The newly constructed CDevEncUiEncrView
-*/
-CDevEncUiEncrView* CDevEncUiEncrView::NewL( RArray<CDevEncUiMemoryEntity*>& aMemEntities )
- {
- CDevEncUiEncrView* self = CDevEncUiEncrView::NewLC( aMemEntities );
- CleanupStack::Pop( self );
- return self;
- }
-
-/**
-* Symbian OS 2 phase constructor.
-* Constructs the CDevEncUiEncrView using the constructor and ConstructL
-* method, leaving the constructed object on the CleanupStack before returning it.
-*
-* @param aRect The rectangle for this window
-* @return The newly constructed CDevEncUiEncrView
-*/
-CDevEncUiEncrView* CDevEncUiEncrView::NewLC( RArray<CDevEncUiMemoryEntity*>& aMemEntities )
- {
- CDevEncUiEncrView* self = new ( ELeave ) CDevEncUiEncrView( aMemEntities );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-CDevEncUiEncrView::CDevEncUiEncrView( RArray<CDevEncUiMemoryEntity*>& aMemEntities )
- : iMemEntities( aMemEntities )
- {
- }
-
-CDevEncUiEncrViewContainer* CDevEncUiEncrView::Container()
- {
- return iContainer;
- }
-
-CDevEncUiAppUi& CDevEncUiEncrView::GetAppUi()
- {
- CAknViewAppUi* aknViewAppUi = AppUi();
- CDevEncUiAppUi* appUi = reinterpret_cast<CDevEncUiAppUi*>( aknViewAppUi );
- return ( *appUi );
- }
-
-/**
-* Symbian OS 2nd phase constructor.
-* Uses the superclass constructor to construct the view using the
-* R_EMCCVIEWSWITCHED_VIEW1 resource.
-*/
-void CDevEncUiEncrView::ConstructL()
- {
- BaseConstructL( R_DEVENCUI_ENCRVIEW );
- }
-
-/**
-* Called by the framework
-* @return The Uid for this view
-*/
-TUid CDevEncUiEncrView::Id() const
- {
- return TUid::Uid( EDevEncUiEncrViewId );
- }
-
-/**
-* Called by the framework when the view is activated. Constructs the
-* container if necessary, setting this view as its MOP parent, and
-* adding it to the control stack.
-*/
-void CDevEncUiEncrView::DoActivateL( const TVwsViewId& /*aPrevViewId*/ ,
- TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/ )
- {
- if ( ! iContainer )
- {
- iContainer = CDevEncUiEncrViewContainer::NewL( AppUi()->ClientRect(),
- *this );
- iContainer->SetMopParent( this );
- AppUi()->AddToStackL( *this, iContainer );
- }
- }
-
-/**
-* Called by the framework when the view is deactivated.
-* Removes the container from the control stack and deletes it.
-*/
-void CDevEncUiEncrView::DoDeactivate()
- {
- if ( iContainer )
- {
- AppUi()->RemoveFromStack( iContainer );
- delete iContainer;
- iContainer = NULL;
- }
- }
-
-/**
-* From CEikAppUi, takes care of command handling for this view.
-*
-* @param aCommand command to be handled
-*/
-void CDevEncUiEncrView::HandleCommandL( TInt aCommand )
- {
- DFLOG2( "CDevEncUiEncrView::HandleCommandL %d", aCommand );
-
- switch ( aCommand )
- {
- case EAknSoftkeyBack:
- {
- AppUi()->HandleCommandL( EAknSoftkeyBack );
- break;
- }
- default:
- {
- AppUi()->HandleCommandL( aCommand );
- }
- }
- }
-
-// --------------------------------------------------------------------------
-// Called by the framework when the application status pane
-// size is changed. Passes the new client rectangle to the container.
-// --------------------------------------------------------------------------
-void CDevEncUiEncrView::HandleStatusPaneSizeChange()
- {
- if ( iContainer )
- {
- iContainer->SetRect( ClientRect() );
- }
- }
-
-// End of File
--- a/deviceencryption/DevEncUi/src/DevEncUiEncrViewContainer.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiEncrViewContainer.
-*
-*/
-
-// INCLUDE FILES
-
-// Class includes
-#include "DevEncUiEncrViewContainer.h"
-
-// System Includes
-#include <aknlists.h>
-#include <barsread.h>
-#include <coemain.h>
-#include <devencui.rsg>
-#include <eikenv.h>
-
-// User Includes
-#include "DevEncLog.h"
-#include "DevEnc.hrh"
-#include "DevEncUi.pan"
-#include "DevEncUiAppui.h"
-#include "DevEncUiDocument.h"
-#include "DevEncUiEncrView.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-// -----------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::NewLC
-//
-// --------------------------------------------------------------------------
-//
-CDevEncUiEncrViewContainer* CDevEncUiEncrViewContainer::NewLC( const TRect& aRect,
- CAknView& aOwningView )
- {
- CDevEncUiEncrViewContainer* self =
- new ( ELeave ) CDevEncUiEncrViewContainer( aOwningView );
- CleanupStack::PushL( self );
- self->ConstructL( aRect );
- return self;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::NewL
-//
-// --------------------------------------------------------------------------
-//
-CDevEncUiEncrViewContainer* CDevEncUiEncrViewContainer::NewL(
- const TRect& aRect,
- CAknView& aOwningView )
- {
- CDevEncUiEncrViewContainer* self = NewLC( aRect, aOwningView );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::ConstructL
-//
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncrViewContainer::ConstructL( const TRect& aRect )
- {
- // Create a window for this application view
- CreateWindowL();
-
- CreateListL();
-
- // Set the windows size
- SetRect( aRect );
-
- // Activate the window, which makes it ready to be drawn
- ActivateL();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::CreateListL
-//
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncrViewContainer::CreateListL()
- {
- // First phase construction
- iListBox = new ( ELeave ) CAknDoubleStyle2ListBox;
- iListBox->SetContainerWindowL( *this );
-
- // Second Phase Construction
- TResourceReader reader;
- iEikonEnv->CreateResourceReaderLC( reader, R_DEVENCUI_ENCRYPTION_LISTBOX );
- iListBox->ConstructFromResourceL( reader );
- CleanupStack::PopAndDestroy(); // reader (Can't pass T-classes as parameter)
-
- iListBox->SetListBoxObserver( this );
- iListBox->CreateScrollBarFrameL( ETrue );
- iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::CDevEncUiEncrViewContainer
-//
-// --------------------------------------------------------------------------
-//
-CDevEncUiEncrViewContainer::CDevEncUiEncrViewContainer(
- CAknView& aOwningView )
- : iOwningView( aOwningView )
- {
- // No implementation required
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::CDevEncUiEncrViewContainer
-//
-// --------------------------------------------------------------------------
-//
-CDevEncUiEncrViewContainer::~CDevEncUiEncrViewContainer()
- {
- delete iListBox;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::HandleListBoxEventL
-//
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncrViewContainer::HandleListBoxEventL( CEikListBox* /*aListBox*/,
- TListBoxEvent aEventType )
- {
- switch ( aEventType )
- {
- case EEventItemSingleClicked: // FALLTHROUGH
- case EEventEnterKeyPressed:
- {
- if ( iListBox->CurrentItemIndex() == 0 )
- {
- iOwningView.HandleCommandL( EDevEncUiCommandEncryptWithoutSavingKey );
- }
- if ( iListBox->CurrentItemIndex() == 1 )
- {
- iOwningView.HandleCommandL( EDevEncUiCommandEncryptAndSaveKey );
- }
- if ( iListBox->CurrentItemIndex() == 2 )
- {
- iOwningView.HandleCommandL( EDevEncUiCommandEncryptWithRestoredKey );
- }
- }
- break;
- default:
- break;
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::CountComponentControls
-// Return number of controls inside this container
-// --------------------------------------------------------------------------
-//
-TInt CDevEncUiEncrViewContainer::CountComponentControls() const
- {
- return 1;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::ComponentControl
-//
-// --------------------------------------------------------------------------
-//
-CCoeControl* CDevEncUiEncrViewContainer::ComponentControl( TInt aIndex ) const
- {
- switch ( aIndex )
- {
- case 0:
- return iListBox;
- default:
- return NULL;
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::Draw
-//
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncrViewContainer::Draw( const TRect& aRect ) const
- {
- CWindowGc& gc = SystemGc();
- gc.Clear( aRect );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::OfferKeyEventL
-//
-// --------------------------------------------------------------------------
-//
-TKeyResponse CDevEncUiEncrViewContainer::OfferKeyEventL(
- const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- if ( !iListBox )
- {
- return EKeyWasNotConsumed;
- }
- if ( aKeyEvent.iCode == EKeyDevice3 /* OK key */ )
- {
- if ( iListBox->CurrentItemIndex() == 0 )
- {
- iOwningView.HandleCommandL( EDevEncUiCommandEncryptWithoutSavingKey );
- }
- if ( iListBox->CurrentItemIndex() == 1 )
- {
- iOwningView.HandleCommandL( EDevEncUiCommandEncryptAndSaveKey );
- }
- if ( iListBox->CurrentItemIndex() == 2 )
- {
- iOwningView.HandleCommandL( EDevEncUiCommandEncryptWithRestoredKey );
- }
- return EKeyWasConsumed;
- }
- return iListBox->OfferKeyEventL( aKeyEvent, aType );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncrViewContainer::SizeChanged()
-//
-// --------------------------------------------------------------------------
-//
- void CDevEncUiEncrViewContainer::SizeChanged()
- {
- if ( iListBox )
- {
- iListBox->SetExtent( TPoint( 0, 0 ), iListBox->MinimumSize() );
- }
- }
-
-//End Of File
-
-
--- a/deviceencryption/DevEncUi/src/DevEncUiEncryptionOperator.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1349 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiEncryptionOperator.
-*
-*/
-
-// INCLUDE FILES
-#include <DevEncExternalCRKeys.h>
-// Class includes
-#include "DevEncLog.h"
-#include "DevEncUids.hrh"
-#include "DevEncUiEncryptionOperator.h"
-
-#include "DevEncUiFileManager.h"
-
-//System includes
-#include <aknmessagequerydialog.h>
-#include <aknViewAppUi.h>
-#include <AknWaitNoteWrapper.h>
-#include <aknnotewrappers.h> // for CAknErrorNote
-#include <bautils.h> // For BAFL, localized resource files
-#include <centralrepository.h>
-#include <coemain.h>
-#include <data_caging_path_literals.hrh> // for resource files dir
-#include <devencui.rsg>
-#include <eikenv.h>
-#include <e32property.h>
-#include <etelmm.h>
-#include <f32file.h>
-#include <gsfwviewuids.h> // For general settings view UIDs (autolock)
-#include <hwrmpowerstatesdkpskeys.h> // For power state
-#include <secuisecuritysettings.h> // for autolock
-#include <settingsinternalcrkeys.h>
-#include <StringLoader.h>
-#include <utf.h> // For character conversion
-#include <TerminalControl3rdPartyAPI.h>
-
-#include <DevEncKeyUtils.h>
-
-//User includes
-#include "DevEncLog.h"
-#include "DevEnc.hrh"
-#include "DevEncUiCreateKeyProcess.h"
-#include "DevEncDef.h"
-#include "DevEncUiMemoryEntity.h"
-#include "DevEncUiSecretMinMaxCodeQuery.h"
-//for KMaxAutolockPeriod = 20;
-#include "DevEncSession.h"
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::~CDevEncUiEncryptionOperator
-//
-// --------------------------------------------------------------------------
-//
-CDevEncUiEncryptionOperator::~CDevEncUiEncryptionOperator()
- {
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::NewL
-//
-// --------------------------------------------------------------------------
-//
-CDevEncUiEncryptionOperator* CDevEncUiEncryptionOperator::NewL( CEikonEnv& aEikonEnv,
- CAknViewAppUi& aAppUi,
- CRepository*& aCrSettings )
- {
- CDevEncUiEncryptionOperator* self =
- CDevEncUiEncryptionOperator::NewLC( aEikonEnv,
- aAppUi,
- aCrSettings );
- CleanupStack::Pop( self );
- return self;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::NewLC
-//
-// --------------------------------------------------------------------------
-//
-CDevEncUiEncryptionOperator* CDevEncUiEncryptionOperator::NewLC( CEikonEnv& aEikonEnv,
- CAknViewAppUi& aAppUi,
- CRepository*& aCrSettings )
- {
- CDevEncUiEncryptionOperator* self =
- new ( ELeave ) CDevEncUiEncryptionOperator( aEikonEnv,
- aAppUi,
- aCrSettings );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::CDevEncUiEncryptionOperator
-//
-// --------------------------------------------------------------------------
-//
-CDevEncUiEncryptionOperator::CDevEncUiEncryptionOperator( CEikonEnv& aEikonEnv,
- CAknViewAppUi& aAppUi,
- CRepository*& aCrSettings )
- : iEikEnv( aEikonEnv ),
- iAppUi( aAppUi ),
- iCrSettings( aCrSettings )
- {
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::ConstructL
-//
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncryptionOperator::ConstructL()
- {
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::HandlePhoneMemEncryptRequestL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncryptionOperator::HandlePhoneMemEncryptRequestL( CDevEncUiMemoryEntity* aMem, CDevEncUiMemoryEntity* aPrimaryMem )
- {
- // Check the battery level first
- if ( ! CheckBatteryL() )
- {
- // The battery level is too low and no charger is connected.
- // Show a note to the user.
- ErrorNoteL( R_DEVENCUI_TEXT_BATTERY_LOW );
- User::Leave( KErrNotReady );
- }
-
- if ( (aMem->State() == EDecrypted) || (aPrimaryMem && (aPrimaryMem->State() == EDecrypted)) )
- {
- // Encryption is off -> encrypt
- if ( PrepareEncryptionL() )
- {
- if ( aMem->State() == EDecrypted )
- {
- DFLOG( "Starting Mass Storage encryption" );
- aMem->StartEncryptionL();
- }
- if( aPrimaryMem && (aPrimaryMem->State() == EDecrypted) )
- {
- DFLOG( "Starting phone memory encryption" );
- aPrimaryMem->StartEncryptionL();
- }
- }
- else
- {
- DFLOG( "Encryption cancelled" );
- }
- }
- else if ( (aMem->State() == EEncrypted) || (aPrimaryMem && (aPrimaryMem->State() == EEncrypted)) )
- {
- if ( PrepareDecryptionL() )
- {
- if ( aMem->State() == EEncrypted )
- {
- DFLOG( "Starting Mass Storage decryption" );
- aMem->StartDecryptionL();
- }
- if( aPrimaryMem && (aPrimaryMem->State() == EEncrypted) )
- {
- DFLOG( "Starting phone memory decryption" );
- aPrimaryMem->StartDecryptionL();
- }
- }
- else
- {
- DFLOG( "Decryption cancelled" );
- }
- }
- else
- {
- DFLOG2( "Phone memory busy, state = %d, no action", aMem->State() );
- }
-
- // Depending on the user's selection, the memory may be in the same
- // state as before or in a new state. This call will let all observers
- // know what state the memory ended up in.
- aMem->UpdateMemoryInfo();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::PrepareEncryptionL()
-// --------------------------------------------------------------------------
-//
-TBool CDevEncUiEncryptionOperator::PrepareEncryptionL()
- {
- TBool result( EFalse );
-
- // Show the confirmation query about autolock
- CAknMessageQueryDialog* yesNoQuery = new ( ELeave ) CAknMessageQueryDialog;
- if ( ! yesNoQuery->ExecuteLD( R_DEVENCUI_ENCRYPT_CONFIRMATION_QUERY_DIALOG ) )
- {
- // User answered no. Do nothing
- DFLOG( "User cancelled after autolock warning. No action." );
- return result;
- }
-
- // Autolock must be on before encryption can be enabled.
- // Get the current autolock status and the current max autolock period
- TInt lockTime = 0;
- TBuf8<21> autoLockPeriodBuf;
-
- RTerminalControl terminalCtrl;
- TInt ctrlConnect = terminalCtrl.Connect();
- DFLOG2( "DEVENC: terminal control connected %d", ctrlConnect );
-
- RTerminalControl3rdPartySession session;
- TInt retValue = session.Open( terminalCtrl );
- DFLOG2( "DEVENC: terminal control session open %d", retValue );
-
- TInt err2 = session.GetDeviceLockParameter( RTerminalControl3rdPartySession::ETimeout, autoLockPeriodBuf );
- DFLOG2( "DEVENC: max value get returned value %d", err2 );
-
- TLex8 lexAutolock( autoLockPeriodBuf );
- lexAutolock.Val( lockTime );
- DFLOG2( "lockTime = %d", lockTime );
-
- //Get current max autolock period
- TBuf8<21> oldMaxPeriodBuf;
- TInt maxperioderr = session.GetDeviceLockParameter( RTerminalControl3rdPartySession::EMaxTimeout, oldMaxPeriodBuf );
- DFLOG2( "DEVENC: max value set returned value %d", maxperioderr );
-
-#ifndef __WINS__
- // Setting the autolock works only in target
-
- if ( lockTime == 0 )
- {
- // Autolock disabled. Go to the autolock settings
- DFLOG( "Autolock currently disabled, going to settings" );
-
- // Create the filename of the SecUi resource file
- _LIT( KFileDrive, "z:" );
- _LIT( KSecUiResourceFileName, "SecUi.rsc" );
- TFileName filename;
- filename += KFileDrive;
- filename += KDC_RESOURCE_FILES_DIR;
- filename += KSecUiResourceFileName;
-
- // Convert to a localized resource filename if possible
- RFs fs;
- User::LeaveIfError( fs.Connect() );
- BaflUtils::NearestLanguageFile( fs, filename );
-
- // Load the SecUi resource file
- TInt rfileOffset( 0 );
- TRAPD( err, rfileOffset = iEikEnv.AddResourceFileL( filename ) );
- if ( err )
- {
- DFLOG2( "Add resource file error %d", err );
- }
- User::LeaveIfError( err );
-
- // Set maximum autolock period
-
- TBuf8<21> maxPeriodBuf;
- maxPeriodBuf.AppendNum( KMaxAutolockPeriod );
- TInt err3 = session.SetDeviceLockParameter( RTerminalControl3rdPartySession::EMaxTimeout, maxPeriodBuf );
- DFLOG2( "DEVENC: max value set returned value %d", err3 );
-
- // Let the user set an autolock period
- CSecuritySettings* secSett = CSecuritySettings::NewL();
- CleanupStack::PushL( secSett );
- TInt newLockTime = secSett->ChangeAutoLockPeriodL( lockTime );
- CleanupStack::PopAndDestroy( secSett );
-
- iEikEnv.DeleteResourceFile( rfileOffset );
-
- if ( newLockTime == 0 )
- {
- // User cancelled or set autolock off -> do nothing
- DFLOG( "User selected not to enable autolock. No action." );
-
- //restore the old maximum period value
- TInt err3 = session.SetDeviceLockParameter( RTerminalControl3rdPartySession::EMaxTimeout, oldMaxPeriodBuf );
- DFLOG2( "DEVENC: max value set returned value %d", err3 );
-
- //the autolock period is now at KMaxAutolockPeriod( =20 ) so we have to set it as it was previously
- err3 = session.SetDeviceLockParameter( RTerminalControl3rdPartySession::ETimeout, autoLockPeriodBuf );
- DFLOG2( "DEVENC: max value set returned value %d", err3 );
-
- session.Close();
- terminalCtrl.Close();
- return result;
- }
-
- TBuf8<21> newLockTimeBuf;
- newLockTimeBuf.AppendNum( newLockTime );
-
- TInt setResult = session.SetDeviceLockParameter( RTerminalControl3rdPartySession::ETimeout, newLockTimeBuf );
- if ( setResult )
- {
- // TBI: Log the failure and leave with error
- DFLOG2( "ERROR: session.SetDeviceLockParameter( RTerminalControl3rdPartySession::ETimeout, .. ) returned %d", setResult );
- session.Close();
- terminalCtrl.Close();
- return result;
- }
- lockTime = newLockTime;
- }
- else
- {
- DFLOG( "Autolock already enabled. Set only the current maximum period" );
-
- //By setting the max autolock period the autolock period is set to max if it was greater than that
- TBuf8<21> maxPeriodBuf;
- maxPeriodBuf.AppendNum( KMaxAutolockPeriod );
- TInt err3 = session.SetDeviceLockParameter( RTerminalControl3rdPartySession::EMaxTimeout, maxPeriodBuf );
- DFLOG2( "DEVENC: max value set returned value %d", err3 );
- }
-#endif // __WINS__
-
- DFLOG2( "Autolock time is %d", lockTime );
-
- // Autolock is now enabled, so we can proceed with the encryption
- // Warn the user about the long encryption process
- if ( MessageQueryL( R_DEVENCUI_TEXT_NOTE_ENCRYPTING ) )
- {
- result = ETrue;
- DFLOG( "Starting encryption" );
- }
- else
- {
- DFLOG( "Encryption cancelled" );
- //the encryption was cancelled. Let's set the old autolock values
- //restore the old maximum period value
- TInt err3 = session.SetDeviceLockParameter( RTerminalControl3rdPartySession::EMaxTimeout, oldMaxPeriodBuf );
- DFLOG2( "DEVENC: max value set returned value %d", err3 );
-
- //the autolock period is now at KMaxAutolockPeriod( =20 ) so we have to set it as it was previously
- err3 = session.SetDeviceLockParameter( RTerminalControl3rdPartySession::ETimeout, autoLockPeriodBuf );
- DFLOG2( "DEVENC: max value set returned value %d", err3 );
- }
-
- session.Close();
- terminalCtrl.Close();
-
- return result;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::PrepareDecryptionL()
-// --------------------------------------------------------------------------
-//
-TBool CDevEncUiEncryptionOperator::PrepareDecryptionL()
- {
- // Warn the user about the long decryption process
- return MessageQueryL( R_DEVENCUI_TEXT_NOTE_PHONE_DECRYPTING );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::MessageQueryL()
-// --------------------------------------------------------------------------
-//
-TBool CDevEncUiEncryptionOperator::MessageQueryL( TInt aResourceId,
- TInt aSoftKeysId )
- {
- TBool result( EFalse );
-
- // Show a message query with OK and Cancel buttons and the specified text
- CAknMessageQueryDialog* query =
- new ( ELeave ) CAknMessageQueryDialog;
- query->PrepareLC( R_DEVENCUI_ENCRYPT_CONFIRMATION_QUERY_DIALOG );
- query->ButtonGroupContainer().SetCommandSetL( aSoftKeysId );
- HBufC* prompt = StringLoader::LoadLC( aResourceId, &iEikEnv );
- query->SetMessageTextL( *prompt );
- CleanupStack::PopAndDestroy( prompt );
- if ( query->RunLD() )
- {
- result = ETrue;
- }
- return result;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::QueryDialog()
-// --------------------------------------------------------------------------
-//
-TBool CDevEncUiEncryptionOperator::QueryDialogL( TInt aResourceId,
- TInt aSoftKeysId )
- {
- TBool result( EFalse );
- CAknQueryDialog* query = CAknQueryDialog::NewL();
- query->PrepareLC( R_DEVENCUI_CONFIRMATION_QUERY ); // CleanupStack OK
- HBufC* prompt = StringLoader::LoadLC( aResourceId, &iEikEnv );
- query->SetPromptL( *prompt );
- query->ButtonGroupContainer().SetCommandSetL( aSoftKeysId );
-
- CleanupStack::PopAndDestroy( prompt );
- if ( query->RunLD() )
- {
- result = ETrue;
- }
- return result;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::DataQueryDialogL()
-// --------------------------------------------------------------------------
-//
-TBool CDevEncUiEncryptionOperator::DataQueryDialogL( TDes& aResult,
- TInt aPromptResourceId,
- TInt aMaxLength )
- {
- // The descriptor contained the prompt text for the query. The prompt
- // text can also be defined in the resource structure of the query
- HBufC* prompt = StringLoader::LoadLC( aPromptResourceId, &iEikEnv );
-
- // create dialog instance
- CAknTextQueryDialog* dlg =
- new( ELeave ) CAknTextQueryDialog( aResult, *prompt );
-
- CleanupStack::PopAndDestroy( prompt );
-
- // Sets the maximum length of the text editor
- dlg->SetMaxLength( aMaxLength );
-
- // Prepares the dialog, constructing it from the specified resource
- dlg->PrepareLC( R_DEVENCUI_DATA_QUERY );
-
- // Launch the dialog
- return dlg->RunLD();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::HandleMmcEncryptRequestL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncryptionOperator::HandleMmcEncryptRequestL( CDevEncUiMemoryEntity* aMem,
- TInt aCommand )
- {
- // Check the battery level first
- if ( ! CheckBatteryL() )
- {
- // The battery level is too low and no charger is connected.
- // Show a note to the user.
- ErrorNoteL( R_DEVENCUI_TEXT_BATTERY_LOW );
- User::Leave( KErrNotReady );
- }
-
- TBool proceed( EFalse );
- switch ( aCommand )
- {
- case EDevEncUiCommandEncryptWithRestoredKey:
- {
- DFLOG( "Encrypt with restored key selected" );
- proceed = LoadAndSetKeyL(); // No cleanup stack needed
- break;
- }
-
- case EDevEncUiCommandEncryptAndSaveKey:
- {
- DFLOG( "Encrypt and save key selected" );
- proceed = CreateAndSaveKeyL(); // No cleanup stack needed
- if( proceed )
- {
- InfoNoteL( R_DEVENCUI_TEXT_NOTE_SAVEINFO, ETrue );
- DFLOG( "Key saved succesfully" );
- }
- break;
- }
-
- case EDevEncUiCommandEncryptWithoutSavingKey:
- {
- DFLOG( "Encrypt without saving key selected" );
- // Create an encryption key and take it in use
- // The key will remain in the driver until the next key is set,
- // and it can not be retrieved.
- proceed = CreateKeyL(); // No cleanup stack needed
- break;
- }
-
- case EDevEncUiCommandEncryptWithCurrentKey:
- {
- DFLOG( "Encrypt with current key selected" );
- proceed = ETrue;
- }
-
- default:
- {
- DFLOG( "Invalid command" );
- break;
- }
- }
-
- if ( aMem->State() == EUnmounted )
- {
- if( !proceed )
- {
- // The encryption operation was cancelled, just go back to encryption view
- DFLOG( "No Mmc present and operation was cancelled -> no encryption" );
- }
- else
- {
- // The encryption operation was succesfull, go back to main view
- iAppUi.ActivateLocalViewL( TUid::Uid( EDevEncUiMainViewId ) );
- proceed = EFalse;
- DFLOG( "No Mmc present -> no encryption" );
- }
- }
-
- if ( aMem->State() == ECorrupted )
- {
- if( !proceed )
- {
- DFLOG( "Mmc probably enc with another key -> wait for remount" );
- }
- else
- {
- // Mmc was probably encrypted with another key. We have just set a
- // new key, so now we have to wait until the state changes and hope
- // that the card is readable. If it is, a note will be shown to the
- // user. (See UI spec 2.7)
- InfoNoteL( R_DEVENCUI_TEXT_NOTE_MEMORYCARD_ENCRYPTED, ETrue );
- iAppUi.ActivateLocalViewL( TUid::Uid( EDevEncUiMainViewId ) );
- proceed = EFalse;
- DFLOG( "Mmc probably enc with another key -> wait for remount" );
- RemountMmcL();
- }
- }
-
- if ( proceed )
- {
- TInt encrypt( 0 );
-
- // Check DM admin status
- TInt dmControlSetting( 0 );
- iCrSettings->Get( KDevEncUiDmControl, dmControlSetting );
-
- if( ( dmControlSetting & KDmControlsMemoryCard ) && ( aCommand == EDevEncUiCommandEncryptWithCurrentKey ) )
- {
- //if the DM admin is controlling the encryption, encrypt straight away
- encrypt = ETrue;
- }
- else
- {
- encrypt = MessageQueryL( R_DEVENCUI_TEXT_NOTE_ENCRYPTING );
- }
-
- // Warn the user about the long encryption process
- if ( encrypt )
- {
- // Start the encryption
- DFLOG( "Starting encryption" );
- aMem->StartEncryptionL();
- // Go back to main view
- iAppUi.ActivateLocalViewL( TUid::Uid( EDevEncUiMainViewId ) );
- }
- else
- {
- DFLOG( "Encryption cancelled" );
- // Stay in the Encryption view
- // Show a note to the user about that the new key is in use,
- // but the card is still decrypted (UI spec 2.3)
- InfoNoteL( R_DEVENCUI_TEXT_NOTE_ENCRYPTIONINTERRUPT, ETrue );
- iAppUi.ActivateLocalViewL( TUid::Uid( EDevEncUiMainViewId ) );
- }
- }
-
- // Depending on the user's selection, the memory may be in the same
- // state as before or in a new state. This call will let all observers
- // know what state the memory ended up in.
- aMem->UpdateMemoryInfo();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::CreateKeyL()
-// --------------------------------------------------------------------------
-//
-TBool CDevEncUiEncryptionOperator::CreateKeyL()
- {
- TBool proceed( EFalse );
- CDevEncKeyUtils* utils = new ( ELeave ) CDevEncKeyUtils;
- CleanupStack::PushL( utils );
-// User::LeaveIfError(utils->Connect());
- TRequestStatus status;
- utils->CreateSetKey( status, KEncryptionKeyLength );
- User::WaitForRequest( status );
-// utils->Close();
- CleanupStack::PopAndDestroy( utils );
- if ( ! status.Int() )
- {
- // Save the Mmc encryption key status
- User::LeaveIfError( iCrSettings->Set( KDevEncUserSettingMemoryCard,
- ETrue ) );
- proceed = ETrue;
- }
- return proceed;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::CreateAndSaveKeyL()
-// --------------------------------------------------------------------------
-//
-TBool CDevEncUiEncryptionOperator::CreateAndSaveKeyL()
- {
- TBool proceed( EFalse );
-
- TBool passwordOk( EFalse );
- TBool keyFileNameOk( EFalse );
- TBool keyCreated( EFalse );
- TBool keySaved( EFalse );
- CFileStore* file( NULL );
- HBufC* keyFileName = HBufC::NewLC( KMaxFilenameLength );
-
- // Get the key password from the user
- HBufC8* password = HBufC8::NewLC( KMaxPasswordLength );
- TPtr8 passwordPtr = password->Des();
- passwordOk = PasswordQueryL( R_DEVENCUI_TEXT_PASSPHRASE_PROTECT,
- passwordPtr );
-
- CDevEncUiFileManager* fm = new ( ELeave ) CDevEncUiFileManager;
- CleanupStack::PushL( fm );
- fm->ConstructL();
-
- HBufC8* pkcs5Key( NULL );
-
- if ( passwordOk )
- {
- DFLOG( "Password entered" );
- // The user entered the correct password
-
- // Construct file path
- _LIT( KDevEncKeyFileExtension, ".pk5");
- TBuf<KMaxFileName> filePath;
- User::LeaveIfError( fm->KeyFolder( filePath ) );
- TInt pathLen( filePath.Length() );
-
- // Get the key file name from the user
- TBool filenameEntered( EFalse );
- TBool cancelPressed( EFalse );
- TPtr16 keyFileNamePtr = keyFileName->Des();
- while ( ( ! cancelPressed ) && ( ! file ) )
- {
- filenameEntered = DataQueryDialogL( keyFileNamePtr,
- R_DEVENCUI_TEXT_FILENAME,
- KMaxFilenameLength );
- if ( !filenameEntered )
- {
- // User pressed cancel, stop here
- cancelPressed = ETrue;
- }
- else
- {
- // User entered a file name. Try to open a file store
- filePath.Append( keyFileNamePtr );
- filePath.Append( KDevEncKeyFileExtension );
- TInt openError = fm->OpenFileStore( filePath,
- file );
- if ( openError )
- {
- DFLOG2( "Error opening file: %d", openError );
-
- // Notify the user that something went wrong
- if ( openError == KErrAlreadyExists )
- {
- ErrorNoteL( R_DEVENCUI_TEXT_FILE_EXISTS );
- }
- else
- {
- ErrorNoteL( R_DEVENCUI_TEXT_BAD_NAME );
- }
-
- // Remove the file name from the path and try again
- filePath.Delete( pathLen, filePath.Length() - pathLen );
- }
- else
- {
- DFLOG( "File opened:" );
- DFLOGBUF( filePath );
- keyFileNameOk = ETrue;
- CleanupStack::PushL( file );
- }
- }
- } // end of while
- }
- else
- {
- DFLOG( "Password incorrect" );
- }
-
- if ( keyFileNameOk )
- {
- // Create the encryption key
- CDevEncKeyUtils* utils = new ( ELeave ) CDevEncKeyUtils;
- CleanupStack::PushL( utils );
-// User::LeaveIfError(utils->Connect());
-
- TRequestStatus status;
- utils->CreateSetKey( status, pkcs5Key, *password, KEncryptionKeyLength );
- User::WaitForRequest( status );
-// utils->Close();
- CleanupStack::PopAndDestroy( utils );
-
- if ( status.Int() )
- {
- DFLOG2( "Error creating key: %d", status.Int() );
- }
- else
- {
- keyCreated = ETrue;
- CleanupStack::PushL( pkcs5Key );
- // Save the Mmc encryption key status
- User::LeaveIfError( iCrSettings->Set( KDevEncUserSettingMemoryCard,
- ETrue ) );
- }
- }
-
- if ( keyCreated )
- {
- // Save the key
- fm->SaveKeyL( file, *pkcs5Key );
- CleanupStack::PopAndDestroy( pkcs5Key );
- keySaved = ETrue;
- }
-
- if ( keySaved )
- {
- // Finally, start the encryption
- proceed = ETrue;
- }
-
- // Cleanup on demand
- if ( file )
- {
- CleanupStack::PopAndDestroy( file );
- }
- if ( fm )
- {
- CleanupStack::PopAndDestroy( fm );
- }
- if ( password )
- {
- CleanupStack::PopAndDestroy( password );
- }
- if ( keyFileName )
- {
- CleanupStack::PopAndDestroy( keyFileName );
- }
-
- return proceed;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::LoadAndSetKeyL()
-// --------------------------------------------------------------------------
-//
-TBool CDevEncUiEncryptionOperator::LoadAndSetKeyL()
- {
- TBool proceed( EFalse );
-
- TBool keySelected( EFalse );
- TBool passwordOk( EFalse );
- TBool askPassword( ETrue );
- HBufC8* pkcs5Key( NULL );
- TBuf8<KMaxPasswordLength> password8;
-
- // Get a list of existing keys in the private directory
- CDevEncUiFileManager* fm = new ( ELeave ) CDevEncUiFileManager;
- CleanupStack::PushL( fm );
- fm->ConstructL();
- CDir* dir( NULL );
- fm->GetKeyListL( dir );
-
- DFLOG2( "Found %d keys", dir->Count() );
-
- if ( dir->Count() <= 0 )
- {
- ErrorNoteL( R_DEVENCUI_TEXT_NO_KEYS_FOUND );
- User::Leave( KErrNotReady );
- }
-
- // Create a list for the query
- iListQueryItemArray = new ( ELeave ) CDesCArrayFlat( dir->Count() );
- for ( TInt i = 0; i < dir->Count(); i++ )
- {
- TEntry entry( (*dir)[i] );
- HBufC* tmpFileName = entry.iName.AllocLC();
- iListQueryItemArray->AppendL( entry.iName );
- CleanupStack::PopAndDestroy( tmpFileName );
- }
-
- // Let the user select which key to load
- TInt index( 0 ); // the index of the selected item
- CAknListQueryDialog* query =
- new ( ELeave ) CAknListQueryDialog( &index );
- query->PrepareLC( R_DEVENCUI_LIST_QUERY );
- query->ButtonGroupContainer().SetCommandSetL( R_AVKON_SOFTKEYS_OK_BACK );
- query->SetItemTextArray( iListQueryItemArray );
- // Keep ownership of the item array
- query->SetOwnershipType( ELbmDoesNotOwnItemArray );
- if ( query->RunLD() )
- {
- DFLOG2( "User selected key %d", index );
- DFLOGBUF( ( *dir )[index].iName );
- // Load the key file.
-
- // Construct file path
- TBuf<KMaxFileName> filePath;
- DFLOG("Start find key folder");
- User::LeaveIfError( fm->KeyFolder( filePath ) );
- DFLOG("Stop find key folder");
-
- TFileName filename;
- filename.Append( filePath );
- filename.Append( ( *dir )[index].iName );
- fm->LoadKeyL( filename,
- pkcs5Key );
- CleanupStack::PushL( pkcs5Key );
- keySelected = ETrue;
- DFLOG( "Key loaded" );
- }
- else
- {
- // User cancelled the query
- DFLOG( "Key file query cancelled by user, stopping here" );
- }
-
- while ( askPassword )
- {
- if ( keySelected )
- {
- // Get the key password from the user
- passwordOk = PasswordQueryL( R_DEVENCUI_TEXT_PASSPHRASE_ASK,
- password8 );
- }
- else
- {
- //The user pressed back. Do not ask the password
- askPassword = EFalse;
- }
-
- if ( passwordOk )
- {
- DFLOG( "Password ok, setting key" );
- CDevEncKeyUtils* utils = new ( ELeave ) CDevEncKeyUtils;
- CleanupStack::PushL( utils );
-// User::LeaveIfError(utils->Connect());
-
- TRequestStatus status;
- utils->SetKey( status, *pkcs5Key, password8 );
- User::WaitForRequest( status );
-// utils->Close();
- CleanupStack::PopAndDestroy( utils );
- if ( status.Int() )
- {
- const TInt KErrBadPassphrase( -11000 );
- DFLOG2( "Error taking key in use: %d", status.Int() );
- if ( status.Int() == KErrBadPassphrase )
- {
- DFLOG( "Invalid password" );
- ErrorNoteL( R_DEVENCUI_TEXT_INVALID_PASSWORD );
- }
- else
- {
- DFLOG2( "Key read error %d", status.Int() );
- ErrorNoteL( R_DEVENCUI_TEXT_KEY_ERROR );
- askPassword = EFalse;
- }
- }
- else
- {
- DFLOG( "New key is now in use" );
- // Save the Mmc encryption key status
- User::LeaveIfError( iCrSettings->Set( KDevEncUserSettingMemoryCard,
- ETrue ) );
- proceed = ETrue;
- askPassword = EFalse;
- }
- }
- else
- {
- askPassword = EFalse;
- }
- }
- // Cleanup on demand
- if ( pkcs5Key )
- {
- CleanupStack::PopAndDestroy( pkcs5Key );
- }
- if ( fm )
- {
- CleanupStack::PopAndDestroy( fm );
- }
-
- return proceed;
- }
-
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::PasswordQueryL()
-// --------------------------------------------------------------------------
-//
-TBool CDevEncUiEncryptionOperator::PasswordQueryL( TInt aPromptResourceId,
- TDes8& aResult )
- {
- TBool passwordOk( EFalse );
- TBuf<KMaxPasswordLength> password;
- TBuf8<KMaxPasswordLength> password8;
- CDevEncUiSecretMinMaxCodeQuery* query =
- new ( ELeave ) CDevEncUiSecretMinMaxCodeQuery( password,
- KMinPasswordLength,
- KMaxPasswordLength );
-
- HBufC* prompt = StringLoader::LoadLC( aPromptResourceId, &iEikEnv );
- query->SetPromptL( *prompt );
- CleanupStack::PopAndDestroy( prompt );
-
- // Prompt the user for the key password
- if ( ( query->ExecuteLD( R_DEVENCUI_CODE_QUERY ) ) )
- {
- // This indicates that the user filled in some password and
- // pressed OK.
- passwordOk = ETrue;
- }
- else
- {
- DFLOG( "Key password dialog cancelled" );
- }
-
- if ( passwordOk )
- {
- // Convert the password to UTF-8
- if ( CnvUtfConverter::ConvertFromUnicodeToUtf8( password8,
- password ) )
- {
- DFLOG( "Password conversion failed" );
- passwordOk = EFalse;
- }
- else
- {
- aResult.Copy( password8 );
- }
- }
-
- return passwordOk;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::HandleMmcDecryptRequestL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncryptionOperator::HandleMmcDecryptRequestL( CDevEncUiMemoryEntity* aMem,
- TInt aCommand )
- {
- // Check the battery level first
- if ( ! CheckBatteryL() )
- {
- // The battery level is too low and no charger is connected.
- // Show a note to the user.
- ErrorNoteL( R_DEVENCUI_TEXT_BATTERY_LOW );
- User::Leave( KErrNotReady );
- }
-
- TBool proceed( EFalse );
- switch ( aCommand )
- {
- case EDevEncUiCommandDecrypt:
- {
- DFLOG( "Decrypt selected" );
- // Warn the user about the long decryption process
- proceed = MessageQueryL( R_DEVENCUI_TEXT_NOTE_DECRYPTING );
- break;
- }
- case EDevEncUiCommandDecryptAndTurnOffEncryption:
- {
- DFLOG( "Decrypt and turn off selected" );
- // Warn the user about the long decryption process,
- // and that the key will be destroyed
- proceed = MessageQueryL( R_DEVENCUI_TEXT_NOTE_DECRYPTINGDESTROY );
- // Save the Mmc encryption key status
- User::LeaveIfError( iCrSettings->Set( KDevEncUserSettingMemoryCard,
- EFalse ) );
- // The key will actually be destroyed in the DevEncStarter
- // component, because the user may exit from the UI at any time.
- // By saving the encryption key status in the central repository,
- // we ensure that the Starter knows that it's supposed to destroy
- // the key when the operation is complete
- // TBI: Destroy the key in Starter after decryption is complete.
- break;
- }
- default:
- {
- break;
- }
- }
-
- if ( aMem->State() == EUnmounted )
- {
- // Just go back to main view, no decryption operation
- iAppUi.ActivateLocalViewL( TUid::Uid( EDevEncUiMainViewId ) );
- proceed = EFalse;
- DFLOG( "No Mmc present -> no decryption" );
- }
-
- if ( proceed )
- {
- // Start the decryption
- DFLOG( "Starting decryption" );
- aMem->StartDecryptionL();
- // Go back to main view
- iAppUi.ActivateLocalViewL( TUid::Uid( EDevEncUiMainViewId ) );
- }
- else
- {
- DFLOG( "Decryption cancelled" );
- // Stay in the decryption view
- }
-
- // Depending on the user's selection, the memory may be in the same
- // state as before or in a new state. This call will let all observers
- // know what state the memory ended up in.
- aMem->UpdateMemoryInfo();
- }
-
-// ---------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::CheckBatteryL()
-// Checks if there's enough battery power to update
-// ---------------------------------------------------------------------------
-//
-TBool CDevEncUiEncryptionOperator::CheckBatteryL()
- {
-#ifdef __WINS__
-
- // In the emulator, the battery level is always 0 and the charger is never
- // connected, so just return ETrue.
- return ETrue;
-
-#else // __WINS__
-
- // Running on target. Check the real battery and charger status
-
- TInt chargingstatus( EChargingStatusError );
- TInt batterylevel( 1 );
- TBool enoughPower( EFalse );
-
- // Read battery
- DFLOG( "CDevEncUiEncryptionOperator::CheckBatteryL" );
- RProperty pw;
- User::LeaveIfError( pw.Attach( KPSUidHWRMPowerState, KHWRMBatteryLevel ) );
- User::LeaveIfError( pw.Get( batterylevel ) );
- pw.Close();
-
- User::LeaveIfError( pw.Attach( KPSUidHWRMPowerState, KHWRMChargingStatus ) );
- User::LeaveIfError( pw.Get( chargingstatus ));
- pw.Close();
-
- // Too low battery, power insufficient
- if ( batterylevel >= EBatteryLevelLevel4 )
- {
- enoughPower = ETrue;
- }
- // But charger is connected, power sufficient
- if ( ( chargingstatus != EChargingStatusError ) &&
- ( chargingstatus != EChargingStatusNotConnected ) )
- {
- enoughPower = ETrue;
- }
-
- DFLOG3( "Battery level: %d (0..7), chargingstatus %d",
- batterylevel, chargingstatus );
- DFLOG2( "CheckBatteryL %d", ( enoughPower ? 1 : 0 ) );
- return enoughPower;
-
-#endif // __WINS__
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::ErrorNoteL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncryptionOperator::ErrorNoteL( TInt aResourceId,
- TBool aWaitingNote )
- {
- HBufC* message = StringLoader::LoadLC( aResourceId );
- CAknErrorNote* errorNote = new ( ELeave ) CAknErrorNote( aWaitingNote );
- errorNote->ExecuteLD( *message );
- CleanupStack::PopAndDestroy( message );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::InfoNoteL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncryptionOperator::InfoNoteL( TInt aResourceId,
- TBool aWaitingNote )
- {
- HBufC* message = StringLoader::LoadLC( aResourceId );
- CAknInformationNote* note = new ( ELeave ) CAknInformationNote( aWaitingNote );
- note->ExecuteLD( *message );
- CleanupStack::PopAndDestroy( message );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::DestroyKeyQueryL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiEncryptionOperator::DestroyKeyQueryL( TBool aShowMmcNote )
- {
- TBool destroy = QueryDialogL( R_DEVENCUI_TEXT_NOTE_DECRYPT_NOMEMRYCARD, R_AVKON_SOFTKEYS_YES_NO );
- if ( destroy )
- {
- DestroyKeyL();
- if ( aShowMmcNote )
- {
- InfoNoteL( R_DEVENCUI_TEXT_NOTE_MEMORYCARD_UNENCRYPTED );
- }
- }
- else
- {
- DFLOG( "User cancelled destroy key query" );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::DestroyKeyL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiEncryptionOperator::DestroyKeyL()
- {
- DFLOG( "CDevEncUiEncryptionOperator::DestroyKeyL" );
- CDevEncKeyUtils* utils = new ( ELeave ) CDevEncKeyUtils;
- CleanupStack::PushL( utils );
-// User::LeaveIfError(utils->Connect());
-
- TRequestStatus status;
- utils->ResetKey( status );
- User::WaitForRequest( status );
-// utils->Close();
- CleanupStack::PopAndDestroy( utils );
- if ( status.Int() )
- {
- DFLOG2( "DestroyKeyL error %d", status.Int() );
- }
- else
- {
- DFLOG( "DestroyKeyL done" );
- // We no longer have a key in the driver. Update the user setting.
- iCrSettings->Set( KDevEncUserSettingMemoryCard, 0 );
- }
- User::LeaveIfError( status.Int() );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::SuggestMmcEncryptionL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiEncryptionOperator::SuggestMmcEncryptionL(
- CDevEncUiMemoryEntity* aMem )
- {
- TInt encrypt( 0 );
-
- // Check DM admin status
- TInt dmControlSetting( 0 );
- iCrSettings->Get( KDevEncUiDmControl, dmControlSetting );
-
- if( dmControlSetting & KDmControlsMemoryCard )
- {
- //The admin is controlling the encryption, encrypt straight away without questions
- encrypt = ETrue;
- }
- else
- {
- encrypt = MessageQueryL( R_DEVENCUI_TEXT_NOTE_INSERTUNENCRYPTED,
- R_AVKON_SOFTKEYS_YES_NO );
- }
-
- if ( encrypt )
- {
- HandleMmcEncryptRequestL( aMem,
- EDevEncUiCommandEncryptWithCurrentKey );
- }
- else
- {
- DFLOG( "User selected not to encrypt the card" );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::SuggestMmcDecryptionL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiEncryptionOperator::SuggestMmcDecryptionL( CDevEncUiMemoryEntity* aMem )
- {
- TBool decrypt = MessageQueryL( R_DEVENCUI_TEXT_NOTE_INSERTENCRYPTED,
- R_AVKON_SOFTKEYS_YES_NO );
- if ( decrypt )
- {
- SuggestMmcImportKeyL( aMem, ETrue );
- }
- else
- {
- ErrorNoteL( R_DEVENCUI_TEXT_NOTE_INSERTOFF_UNUSEDMEMORYCARD );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::SuggestMmcImportKeyL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiEncryptionOperator::SuggestMmcImportKeyL(
- CDevEncUiMemoryEntity* /*aMem*/,
- TBool aFirstAttempt )
- {
- DFLOG( "CDevEncUiEncryptionOperator::SuggestMmcImportKeyL" );
- TBool import( ETrue );
- if ( aFirstAttempt )
- {
- DFLOG( "CDevEncUiEncryptionOperator::SuggestMmcImportKeyL => firstAttempt" );
- import = MessageQueryL( R_DEVENCUI_TEXT_NOTE_DECRYPT_LOADKEY,
- R_AVKON_SOFTKEYS_YES_NO );
- }
-
- if ( import )
- {
- TBool reloadKey = ETrue;
- // Loop while user chooses correct key or cancels operation
- while ( reloadKey )
- {
- TBool keySet = LoadAndSetKeyL();
- if ( !keySet )
- {
- ErrorNoteL( R_DEVENCUI_TEXT_NOTE_UNUSEDMEMORYCARD );
- reloadKey = EFalse;
- }
- else
- {
- // New key is in use, now we need to remount the mmc
- RemountMmcL();
-
- // Check that key is valid
- TInt err = CheckMMCStatus();
-
- if( err == KErrCorrupt )
- {
- ErrorNoteL( R_DEVENCUI_TEXT_NOTE_WRONGKEYFILE );
- reloadKey = ETrue;
- }
- else
- {
- reloadKey = EFalse;
- }
- }
- }
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::CheckMMCStatus()
-//
-// --------------------------------------------------------------------------
-TInt CDevEncUiEncryptionOperator::CheckMMCStatus()
- {
- TVolumeInfo volInfo;
- RFs fs;
- TInt err = fs.Connect();
- if (err == KErrNone)
- {
- fs.Volume( volInfo, EDriveF );
- fs.Close();
- }
- return err;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::RemountMmc()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiEncryptionOperator::RemountMmcL()
- {
- CDevEncUiFileManager* fm = new ( ELeave ) CDevEncUiFileManager;
- CleanupStack::PushL( fm );
- fm->ConstructL();
- TInt error = fm->RemountMmc();
- CleanupStack::PopAndDestroy( fm );
- if ( error )
- {
- DFLOG2( "Mmc remount failed, error %d", error );
- User::Leave( error );
- }
- else
- {
- DFLOG( "Mmc remounted" );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::ShowWrongKeyNoteL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiEncryptionOperator::ShowWrongKeyNoteL()
- {
- ErrorNoteL( R_DEVENCUI_TEXT_NOTE_INSERTON_UNUSEDMEMORYCARD );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::CheckNotesWithHeaderL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiEncryptionOperator::CheckNotesWithHeaderL()
- {
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_DECRYPT_LOADKEY );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_DECRYPT_NOMEMRYCARD );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_DECRYPTING );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_DECRYPTINGDESTROY );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_ENCRYPTING );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_ENCRYPTIONINTERRUPT );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_INSERTENCRYPTED );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_INSERTOFF_UNUSEDMEMORYCARD );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_INSERTON_UNUSEDMEMORYCARD );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_INSERTUNENCRYPTED );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_LOCK );
- MessageQueryL( R_DEVENCUI_TEXT_NOTE_PHONE_DECRYPTING );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiEncryptionOperator::CheckNotesL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiEncryptionOperator::CheckNotesL()
- {
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_DECRYPT_LOADKEY );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_DECRYPT_NOMEMRYCARD );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_DECRYPTING );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_DECRYPTINGDESTROY );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_ENCRYPTING );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_ENCRYPTIONINTERRUPT );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_INSERTENCRYPTED );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_INSERTOFF_UNUSEDMEMORYCARD );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_INSERTON_UNUSEDMEMORYCARD );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_INSERTUNENCRYPTED );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_LOCK );
- QueryDialogL( R_DEVENCUI_TEXT_NOTE_PHONE_DECRYPTING );
- }
-
-// END OF FILE
--- a/deviceencryption/DevEncUi/src/DevEncUiFileManager.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiFileManager.
-*
-*/
-
-#include "DevEncLog.h"
-#include "DevEncUids.hrh"
-#include "DevEncUiFileManager.h"
-
-#include <pathinfo.h>
-#include <s32file.h>
-#include <s32std.h>
-
-// --------------------------------------------------------------------------
-// CDevEncUiFileManager::CDevEncUiFileManager()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiFileManager::ConstructL()
- {
- User::LeaveIfError( iFs.Connect() );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiFileManager::CDevEncUiFileManager()
-//
-// --------------------------------------------------------------------------
-CDevEncUiFileManager::~CDevEncUiFileManager()
- {
- iFs.Close();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiFileManager::SaveKeyL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiFileManager::SaveKeyL( CFileStore* aStore,
- const TDesC8& aPkcs5Key ) const
- {
- RStoreWriteStream write;
-
- aStore->SetTypeL( aStore->Layout() );
-
- //write the encryption key to a new stream
- write.CreateLC( *aStore );
- write << aPkcs5Key;
- write.CommitL();
- CleanupStack::PopAndDestroy(); //CreateLC()
-
- aStore->Commit();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiFileManager::LoadKeyL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiFileManager::LoadKeyL( const TFileName& aFileName,
- HBufC8*& aPkcs5Key )
- {
- DFLOG2( "CDevEncUiFileManager::LoadKeyL Filename %S", &aFileName );
- //prepare to read the streams back in, creating a new TPBEncryptionData
- RStoreReadStream read;
-
- // open the next PFS
- CFileStore *store = CPermanentFileStore::OpenLC( iFs,
- aFileName,
- EFileRead );
-
- DFLOG("CPermanentFileStore::OpenLC passed");
-
- TStreamId dataStreamId( 1 ); // we know it was the first stream written
- read.OpenLC( *store, dataStreamId );
- DFLOG("RStoreReadStream::OpenLC passed");
- //read in Encryption key
- aPkcs5Key = HBufC8::NewL( read, KMaxTInt );
- DFLOG("HBufC8::NewL passed");
- CleanupStack::Pop(); // read
- read.Close();
- CleanupStack::PopAndDestroy( store );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiFileManager::OpenFileStore()
-//
-// --------------------------------------------------------------------------
-TInt CDevEncUiFileManager::OpenFileStore( const TDesC& aFilename,
- CFileStore*& aStore )
- {
- // Leaves with KErrAlreadyExists if file exists from before
- TInt error( KErrNone );
- CFileStore* store( NULL );
- TRAP( error, store = CPermanentFileStore::CreateL( iFs,
- aFilename,
- EFileRead | EFileWrite ) );
- if ( !error )
- {
- aStore = store;
- }
- return error;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiFileManager::GetKeyListL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiFileManager::GetKeyListL( CDir*& aList )
- {
- // Construct file path
- _LIT( KAsterisk, "*" );
- _LIT( KDevEncKeyFileExtension, ".pk5");
-
- TBuf<KMaxFileName> filePath;
- User::LeaveIfError( KeyFolder( filePath ) );
- filePath.Append( KAsterisk );
- filePath.Append( KDevEncKeyFileExtension );
-
- TInt error = iFs.GetDir( filePath,
- KEntryAttNormal, // Any file, not hidden and system files
- ESortByName,
- aList );
- if ( error )
- {
- DFLOG2( "Could not get dir listing, error %d", error );
- User::Leave( error );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiFileManager::DriveToChar()
-//
-// --------------------------------------------------------------------------
-TInt CDevEncUiFileManager::DriveToChar( TInt aDrive, TChar &aChar )
- {
- return iFs.DriveToChar( aDrive, aChar );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiFileManager::KeyFolder()
-//
-// --------------------------------------------------------------------------
-TInt CDevEncUiFileManager::KeyFolder( TDes& aResult )
- {
- DFLOG("KeyFolder()");
- TInt result( KErrNone );
- if ( !result )
- {
- DFLOG("1st Append");
- aResult.Append( PathInfo::PhoneMemoryRootPath() );
- DFLOG("2nd Append");
- aResult.Append( PathInfo::OthersPath() );
- }
- DFLOG2( "CDevEncUiFileManager::KeyFolder %S", &aResult );
- return result;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiFileManager::RemountMmc()
-//
-// --------------------------------------------------------------------------
-TInt CDevEncUiFileManager::RemountMmc()
- {
- return iFs.RemountDrive( /*EDriveE*/EDriveF );
- }
-
-// End of file
--- a/deviceencryption/DevEncUi/src/DevEncUiLog.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2005 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 CFileLog.
-*
-*/
-
-#include "DevEncUiLog.h"
-#include <flogger.h>
-
-#if defined( _DEBUG ) && defined ( DEVENCUI_LOG )
-
-_LIT( KDevEncUiLogDir, "DevEnc");
-_LIT( KDevEncUiLogFile, "DevEncUi.log");
-
-void CFileLog::Printf( TRefByValue<const TDesC> aFmt, ... )
- {
- VA_LIST list;
- VA_START( list, aFmt );
- RFileLogger::WriteFormat( KDevEncUiLogDir,
- KDevEncUiLogFile,
- EFileLoggingModeAppend,
- aFmt,
- list );
- }
-
-#endif
-
-// End of File
--- a/deviceencryption/DevEncUi/src/DevEncUiMainView.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiMainView.
-*
-*/
-
-// INCLUDES
-
-// Class include
-#include "DevEncUiMainView.h"
-
-// System includes
-#include <aknnotewrappers.h>
-#include <aknViewAppUi.h> // CAknViewAppUi
-#include <devencui.rsg>
-#include <e32cmn.h>
-#include <StringLoader.h>
-#include <DevEncExternalCRKeys.h>
-
-// User includes
-#include "DevEncLog.h"
-#include "DevEnc.hrh"
-#include "DevEncUiEncryptionOperator.h"
-
-#include "DevEncUiMainViewContainer.h"
-#include "DevEncUiMemoryEntity.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-/**
-* Destructor. Frees up memory for the iLabel.
-*/
-CDevEncUiMainView::~CDevEncUiMainView()
- {
- for ( TInt i = 0; i < iMemEntities.Count(); i++ )
- {
- iMemEntities[i]->RemoveObserver( iContainer );
- }
- delete iContainer;
- delete iEncOperator;
- }
-
-/**
-* Symbian OS 2 phase constructor.
-* Constructs the CDevEncUiMainView using the NewLC method, popping
-* the constructed object from the CleanupStack before returning it.
-*
-* @param aRect The rectangle for this window
-* @return The newly constructed CDevEncUiMainView
-*/
-CDevEncUiMainView* CDevEncUiMainView::NewL(
- RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- CRepository*& aCrSettings,
- TInt& aMmcStatus )
- {
- CDevEncUiMainView* self = CDevEncUiMainView::NewLC( aMemEntities,
- aCrSettings,
- aMmcStatus );
- CleanupStack::Pop( self );
- return self;
- }
-
-/**
-* Symbian OS 2 phase constructor.
-* Constructs the CDevEncUiMainView using the constructor and ConstructL
-* method, leaving the constructed object on the CleanupStack before returning it.
-*
-* @param aRect The rectangle for this window
-* @return The newly constructed CDevEncUiMainView
-*/
-CDevEncUiMainView* CDevEncUiMainView::NewLC(
- RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- CRepository*& aCrSettings,
- TInt& aMmcStatus )
- {
- CDevEncUiMainView* self =
- new ( ELeave ) CDevEncUiMainView( aMemEntities,
- aCrSettings,
- aMmcStatus );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-CDevEncUiMainView::CDevEncUiMainView( RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- CRepository*& aCrSettings,
- TInt& aMmcStatus )
- : iMemEntities( aMemEntities ),
- iCrSettings( aCrSettings ),
- iMmcStatus( aMmcStatus )
- {
- }
-
-/**
-* Symbian OS 2nd phase constructor.
-* Uses the superclass constructor to construct the view
-*/
-void CDevEncUiMainView::ConstructL()
- {
- BaseConstructL( R_DEVENCUI_MAINVIEW );
-
- iContainer = CDevEncUiMainViewContainer::NewL( AppUi()->ClientRect(),
- iMemEntities,
- *this,
- iCrSettings,
- iMmcStatus );
- iContainer->SetMopParent( this );
-
- for ( TInt i = 0; i < iMemEntities.Count(); i++ )
- {
- iMemEntities[i]->AddObserverL( iContainer );
- }
- }
-
-/**
-* Called by the framework
-* @return The Uid for this view
-*/
-TUid CDevEncUiMainView::Id() const
- {
- return TUid::Uid( EDevEncUiMainViewId );
- }
-
-/**
-* Called by the framework when the view is activated.
-* Adds the container to the control stack.
-*/
-void CDevEncUiMainView::DoActivateL( const TVwsViewId& /*aPrevViewId*/,
- TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/)
- {
- AppUi()->AddToStackL( *this, iContainer );
-
- if ( iEikonEnv->StartedAsServerApp() )
- {
- CEikButtonGroupContainer* cba = Cba();
- cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK );
- }
- }
-
-/**
-* Called by the framework when the view is deactivated.
-* Removes the container from the control stack.
-*/
-void CDevEncUiMainView::DoDeactivate()
- {
- if ( iContainer )
- {
- AppUi()->RemoveFromStack( iContainer );
- }
- }
-
-/**
-* From CEikAppUi, takes care of command handling for this view.
-*
-* @param aCommand command to be handled
-*/
-void CDevEncUiMainView::HandleCommandL( TInt aCommand )
- {
-
- switch ( aCommand )
- {
- case EDevEncUiCommandChange:
- {
- // Show the toggle popup
- if ( iContainer->ChangeSelectedItemL() )
- {
- // The user made a new selection
- TDevEncUiMemoryType memoryType =
- static_cast<TDevEncUiMemoryType>( iContainer->SelectedItem() );
- EncryptionStatusChangeReq( memoryType );
- }
- break;
- }
- default:
- {
- AppUi()->HandleCommandL( aCommand );
- break;
- }
- }
- }
-
-void CDevEncUiMainView::DynInitMenuPaneL( TInt aResourceId,
- CEikMenuPane* aMenuPane )
- {
- if ( ! iContainer ||
- iMemEntities.Count() == 0 )
- {
- return;
- }
-
- // Disable the "Change" menu item if an encryption operation is ongoing
- if ( aResourceId == R_DEVENCUI_MENU_MAIN )
- {
- TBool proceed( ETrue );
- TInt dmControl( 0 );
- TInt err = iCrSettings->Get( KDevEncUiDmControl, dmControl );
- if ( err )
- {
- DFLOG2( "Cenrep error %d", err );
- User::Leave( err );
- }
-
- // Check if phone memory encryption is controlled by dev management
- if ( ( dmControl & KDmControlsPhoneMemory ) &&
- ( iContainer->SelectedItem() == EPhoneMemory ) )
- {
- // Selected memory is controlled by DM -> disable "Change"
- aMenuPane->SetItemDimmed( EDevEncUiCommandChange, ETrue );
- proceed = EFalse;
- }
-
- // Check if memory card encryption is controlled by dev management
- if ( ( dmControl & KDmControlsMemoryCard ) &&
- ( iContainer->SelectedItem() == EMemoryCard ) )
- {
- // Selected memory is controlled by DM -> disable "Change"
- aMenuPane->SetItemDimmed( EDevEncUiCommandChange, ETrue );
- proceed = EFalse;
- }
-
- if ( !proceed )
- {
- DFLOG( "Hiding Change, item is controlled by DM" );
- return;
- }
-
- // Show the "Change" item if encryption status can be changed
- TBool allowChange( EFalse );
- if ( ( iMemEntities[ EMemoryCard ]->State() == EUnmounted ||
- iMemEntities[ EMemoryCard ]->State() == EDecrypted ||
- iMemEntities[ EMemoryCard ]->State() == EEncrypted ) &&
- ( iMemEntities[ EPhoneMemory ]->State() == EDecrypted ||
- iMemEntities[ EPhoneMemory ]->State() == EEncrypted ) )
- {
- allowChange = ETrue;
- }
-
- if ( allowChange )
- {
- aMenuPane->SetItemDimmed( EDevEncUiCommandChange, EFalse );
- }
- else
- {
- aMenuPane->SetItemDimmed( EDevEncUiCommandChange, ETrue );
- }
- }
- }
-
-
-
-CDevEncUiAppUi& CDevEncUiMainView::GetAppUi()
- {
- CAknViewAppUi* aknViewAppUi = AppUi();
- CDevEncUiAppUi* appUi = reinterpret_cast<CDevEncUiAppUi*>( aknViewAppUi );
- return ( *appUi );
- }
-
-void CDevEncUiMainView::EncryptionStatusChangeReq( TDevEncUiMemoryType aType )
- {
- // Can't do anything about errors here
- TInt error( KErrNone );
- TRAP( error, DoEncryptionStatusChangeReqL( aType ) );
- if ( error )
- {
- DFLOG2( "DoEncryptionStatusChangeReqL error %d", error );
- }
- }
-
-// TBI: Async this function and create a subfunction with -L
-void CDevEncUiMainView::DoEncryptionStatusChangeReqL( TDevEncUiMemoryType aType )
- {
- DFLOG( "CDevEncUiMainView::DoEncryptionStatusChangeReqL" );
-
- // Check if we are allowed to start an encryption operation
- TInt dmControl( 0 );
- TInt err = iCrSettings->Get( KDevEncUiDmControl, dmControl );
- if ( err )
- {
- DFLOG2( "Cenrep error %d", err );
- User::Leave( err );
- }
- if ( DmControlsMemory( aType, dmControl ) )
- {
- // Encryption controlled by admin
- ErrorNoteL( R_DEVENCUI_NOTE_ADMIN_CONTROL );
- return;
- }
-
- // Create the encryption operator if necessary
- if ( ! iEncOperator )
- {
- iEncOperator = CDevEncUiEncryptionOperator::NewL( *iEikonEnv,
- *AppUi(),
- iCrSettings );
- }
-
- // Get the currently highlighted memory type
- CDevEncUiMemoryEntity* mem = iMemEntities[ aType ];
-
- DFLOG3( "Mem type: %d, state: %d", aType, mem->State() );
-
- if ( aType == EPhoneMemory )
- {
- CDevEncUiMemoryEntity* phoneMemory = iMemEntities[ EPrimaryPhoneMemory];
- iEncOperator->HandlePhoneMemEncryptRequestL( mem, phoneMemory );
- }
- else // aType = EMemoryCard
- {
- HandleMemoryCardEncryptRequestL( mem );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainView::ErrorNoteL()
-// TBI: Create base class and move this there
-// --------------------------------------------------------------------------
-//
-void CDevEncUiMainView::ErrorNoteL( TInt aResourceId )
- {
- HBufC* message = StringLoader::LoadLC( aResourceId );
- CAknErrorNote* errorNote = new ( ELeave ) CAknErrorNote;
- errorNote->ExecuteLD( *message );
- CleanupStack::PopAndDestroy( message );
- }
-
-// TBI: Create base class and move this there
-TBool CDevEncUiMainView::DmControlsMemory( TDevEncUiMemoryType aType,
- TInt aDmControlSetting )
- {
- TBool result( EFalse );
- if ( ( aType == EPhoneMemory ) &&
- ( aDmControlSetting & KDmControlsPhoneMemory ) )
- {
- result = ETrue;
- }
- if ( ( aType == EMemoryCard ) &&
- ( aDmControlSetting & KDmControlsMemoryCard ) )
- {
- result = ETrue;
- }
- return result;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainView::HandleMemoryCardEncryptRequestL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiMainView::HandleMemoryCardEncryptRequestL( CDevEncUiMemoryEntity* aMem )
- {
- // Check if the driver has a known encryption key
- TInt mmcEncrOn( 0 );
- iCrSettings->Get( KDevEncUserSettingMemoryCard, mmcEncrOn );
-
- if ( aMem->State() == EDecrypted ||
- aMem->State() == EUnmounted )
- {
- if ( mmcEncrOn )
- {
- // Mmc decrypted or ejected but encryption is on ->
- // suggest destruction of key
- DFLOG( "Mmc decrypted, encryption key set -> destroy key?" );
- if ( aMem->State() == EDecrypted )
- {
- // Mmc inserted -> indicate that it is decrypted
- // (see UI spec 2.12)
- iEncOperator->DestroyKeyQueryL( ETrue );
- }
- else
- {
- // Mmc ejected -> no need to show note
- // (see UI spec 2.11)
- iEncOperator->DestroyKeyQueryL( EFalse );
- }
- }
- else
- {
- // Mmc decrypted and encryption is off -> show encryption menu
- DFLOG( "Mmc decrypted, encryption key not set -> enc menu" );
- AppUi()->ActivateLocalViewL( TUid::Uid( EDevEncUiEncrViewId ) );
- }
- }
- else if ( aMem->State() == EEncrypted )
- {
- // Encryption is on -> show decryption menu
- DFLOG( "Mmc encrypted -> decr menu" );
- AppUi()->ActivateLocalViewL( TUid::Uid( EDevEncUiDecrViewId ) );
- }
- else if ( aMem->State() == ECorrupted )
- {
- if ( mmcEncrOn )
- {
- // Mmc seems to be encrypted with another key.
- // Ask if the user wants to import another key.
- // (See UI spec 2.10)
- DFLOG( "CDevEncUiMainView::HandleMemoryCardEncryptRequestL => Mmc encrypted with another key, enc on -> import key" );
- iEncOperator->SuggestMmcImportKeyL( aMem, ETrue );
- }
- else
- {
- // Mmc is probably encrypted with another key -> show encryption
- // menu to let user choose a key
- DFLOG( "Mmc encrypted, encryption key not set -> enc menu" );
- AppUi()->ActivateLocalViewL( TUid::Uid( EDevEncUiEncrViewId ) );
- }
- }
- else
- {
- DFLOG2( "Mmc busy, state = %d, no action", aMem->State() );
- }
- // Depending on the user's selection, the memory may be in the same
- // state as before or in a new state. This call will let all observers
- // know what state the memory ended up in.
- aMem->UpdateMemoryInfo();
-
- }
-
-// --------------------------------------------------------------------------
-// Called by the framework when the application status pane
-// size is changed. Passes the new client rectangle to the container.
-// --------------------------------------------------------------------------
-void CDevEncUiMainView::HandleStatusPaneSizeChange()
- {
- if ( iContainer )
- {
- iContainer->SetRect( ClientRect() );
- }
- }
-
-// End of File
--- a/deviceencryption/DevEncUi/src/DevEncUiMainViewContainer.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,564 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiMainViewContainer.
-*
-*/
-
-
-// INCLUDE FILES
-
-// Class includes
-#include "DevEncUiMainViewContainer.h"
-
-//System includes
-#include <centralrepository.h>
-#include <coemain.h>
-#include <eikenv.h>
-#include <DevEncEngineConstants.h>
-#include <StringLoader.h>
-#include <devencui.rsg>
-
-//User includes
-#include "DevEncLog.h"
-#include "DevEncUi.pan"
-#include "DevEncUiAppui.h"
-#include "DevEncUiDocument.h"
-#include "DevEncUiMainView.h"
-#include "DevEncUiSettingItemList.h"
-#include "DevEncUiMemoryEntity.h"
-
-// Local definitions
-const TInt KPercent100( 100 );
-
-// ================= MEMBER FUNCTIONS =======================
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::NewLC()
-// --------------------------------------------------------------------------
-//
-CDevEncUiMainViewContainer* CDevEncUiMainViewContainer::NewLC(
- const TRect& aRect,
- RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- MContainerEventCallback& aCallback,
- CRepository*& aCrSettings,
- TInt& aMmcStatus )
- {
- CDevEncUiMainViewContainer* self =
- new ( ELeave ) CDevEncUiMainViewContainer( aMemEntities,
- aCallback,
- aCrSettings,
- aMmcStatus );
-
- CleanupStack::PushL( self );
- self->ConstructL(aRect);
- return self;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::NewL()
-// --------------------------------------------------------------------------
-//
-CDevEncUiMainViewContainer* CDevEncUiMainViewContainer::NewL(
- const TRect& aRect,
- RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- MContainerEventCallback& aCallback,
- CRepository*& aCrSettings,
- TInt& aMmcStatus )
- {
- CDevEncUiMainViewContainer* self = NewLC( aRect,
- aMemEntities,
- aCallback,
- aCrSettings,
- aMmcStatus );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::ConstructL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiMainViewContainer::ConstructL(const TRect& aRect)
- {
- // Create a window for this application view
- CreateWindowL();
- // TBD: Give the list some settings
- iSettingItemList = new ( ELeave ) CDevEncUiSettingItemList();
- iSettingItemList->SetMopParent( this );
- iSettingItemList->ConstructFromResourceL( R_DEVENCUI_SETTING_ITEM_LIST );
- SetRect( aRect );
- ActivateL();
- }
-
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::CDevEncUiMainViewContainer()
-// --------------------------------------------------------------------------
-//
-CDevEncUiMainViewContainer::CDevEncUiMainViewContainer(
- RArray<CDevEncUiMemoryEntity*>& aMemEntities,
- MContainerEventCallback& aCallback,
- CRepository*& aCrSettings,
- TInt& aMmcStatus )
- : iMemEntities( aMemEntities ),
- iCallback( aCallback ),
- iCrSettings( aCrSettings ),
- iMmcStatus( aMmcStatus )
- {
- // No implementation required
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::CDevEncUiMainViewContainer()
-// --------------------------------------------------------------------------
-//
-CDevEncUiMainViewContainer::~CDevEncUiMainViewContainer()
- {
- delete iSettingItemList;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::CountComponentControls()
-// --------------------------------------------------------------------------
-//
-TInt CDevEncUiMainViewContainer::CountComponentControls() const
- {
- return 1;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::ComponentControl()
-// --------------------------------------------------------------------------
-//
-CCoeControl* CDevEncUiMainViewContainer::ComponentControl( TInt aIndex ) const
- {
- CCoeControl* returnedItem( NULL );
- switch (aIndex)
- {
- case 0:
- returnedItem = iSettingItemList;
- break;
- default:
- break;
- }
- return returnedItem;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::SizeChanged()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiMainViewContainer::SizeChanged()
- {
- if ( iSettingItemList )
- {
- TRect mainPaneRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane,
- mainPaneRect );
- iSettingItemList->SetRect( mainPaneRect );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::HandleResourceChange()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiMainViewContainer::HandleResourceChange( TInt aType )
- {
- if ( aType == KEikDynamicLayoutVariantSwitch )
- {
- if ( iSettingItemList )
- {
- TRect mainPaneRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane,
- mainPaneRect );
- iSettingItemList->SetRect( mainPaneRect );
- iSettingItemList->HandleResourceChange( aType );
- }
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::OfferKeyEventL()
-// --------------------------------------------------------------------------
-//
-TKeyResponse CDevEncUiMainViewContainer::OfferKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- if ( aKeyEvent.iCode == EKeyDevice3 /* OK key */ ||
- aKeyEvent.iCode == EKeyEnter /* Enter key*/ )
- {
- // User selected a list item. Proceed to toggle the status
- TInt selectedItem = iSettingItemList->SelectedItem();
- if ( selectedItem < 0 )
- {
- return EKeyWasConsumed;
- }
- TDevEncUiMemoryType type = static_cast<TDevEncUiMemoryType>( selectedItem );
- iCallback.EncryptionStatusChangeReq( type );
- return EKeyWasConsumed;
- }
- else
- {
- if ( iSettingItemList )
- return iSettingItemList->OfferKeyEventL( aKeyEvent, aType );
- else
- return EKeyWasNotConsumed;
- }
- }
-
- // --------------------------------------------------------------------------
- // CDevEncUiMainViewContainer::SelectedItem()
- // --------------------------------------------------------------------------
- //
-TInt CDevEncUiMainViewContainer::SelectedItem()
- {
- if ( !iSettingItemList )
- {
- return -1;
- }
- return iSettingItemList->SelectedItem();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::ChangeSelectedItemL()
-// --------------------------------------------------------------------------
-//
-TBool CDevEncUiMainViewContainer::ChangeSelectedItemL()
- {
- TBool itemChanged( EFalse );
- if ( !iSettingItemList )
- {
- return itemChanged;
- }
- // Get index of currently selected item
- TInt selectedItem = iSettingItemList->SelectedItem();
- if ( selectedItem < 0 )
- {
- User::Leave( KErrNotFound );
- }
-
- // Fetch the current setting for later comparison
- TBool currentSetting( EFalse );
- iSettingItemList->ItemState( selectedItem, currentSetting );
-
- // Let the user change the value (synchronously during this call)
- iSettingItemList->ChangeSelectedItemL();
-
- // Compare the new setting for changes
- TBool newSetting( EFalse );
- iSettingItemList->ItemState( selectedItem, newSetting );
-
- // Notify our callback observer if the setting was changed. This always
- // eventually results in a call to UpdateInfo, which means that if the
- // user decides to interrupt the operation, the values in the setting
- // item list are updated accordingly.
- if ( newSetting != currentSetting )
- {
- itemChanged = ETrue;
- }
- return itemChanged;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::UpdateInfo()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiMainViewContainer::UpdateInfo( TDevEncUiMemoryType aType,
- TUint aState,
- TUint aProgress /* = 0*/ )
- {
- DFLOG( ">>CDevEncUiMainViewContainer::UpdateInfoL" );
- TInt err( KErrNone );
- TRAP( err, DoUpdateInfoL( aType, aState, aProgress ) );
- if ( err )
- {
- DFLOG2( "CDevEncUiMainViewContainer::UpdateInfoL => error is %d", err );
- // TBI: Log the error
- }
- DFLOG( "<<CDevEncUiMainViewContainer::UpdateInfoL" );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMainViewContainer::DoUpdateInfoL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiMainViewContainer::DoUpdateInfoL( TDevEncUiMemoryType aType,
- TUint aState,
- TUint aProgress /*= 0*/ )
- {
- DFLOG( ">>CDevEncUiMainViewContainer::DoUpdateInfoL" );
- DFLOG2( "CDevEncUiMainViewContainer::DoUpdateInfoL, type %d", aType );
- DFLOG3( "New state %d, new progress %d", aState, aProgress );
-
- if ( aType > EPrimaryPhoneMemory )
- {
- // Unknown memory type
- User::Leave( KErrUnknown );
- }
- if ( aState > ECorrupted )
- {
- // Unknown state
- User::Leave( KErrCorrupt );
- }
- if ( aProgress > KPercent100 )
- {
- // Invalid progress value
- User::Leave( KErrOverflow );
- }
-
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => Passed first area of error ");
-
- HBufC* stateText( NULL );
-
- switch ( aState )
- {
- case EDecrypted:
- {
- if ( ( aType == EMemoryCard ) && ( iMmcStatus == EMmcOk ) )
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => Memory card OK ");
- // The Mmc is readable and decrypted, but there may be a key
- // in the driver. In that case, we need to show "On" even
- // though the card itself is not encrypted.
- TBool mmcEncKeyInDriver( EFalse );
- User::LeaveIfError(
- iCrSettings->Get( KDevEncUserSettingMemoryCard,
- mmcEncKeyInDriver ) );
- if ( mmcEncKeyInDriver )
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => MMCKey in driver ");
- // "On"
- stateText = StringLoader::LoadLC(
- R_DEVENCUI_TEXT_ENCRYPTION_ON,
- iEikonEnv );
- // Update the On/Off popup settings
- iSettingItemList->SetItemStateL( aType, ETrue );
- }
- else
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => MMCKey NOT in driver ");
- // "Off"
- stateText = StringLoader::LoadLC(
- R_DEVENCUI_TEXT_ENCRYPTION_OFF,
- iEikonEnv );
- // Update the On/Off popup settings
- iSettingItemList->SetItemStateL( aType, EFalse );
- }
- }
- else if (aType == EMemoryCard)
- {
- stateText = StringLoader::LoadLC( R_DEVENCUI_TEXT_ENCRYPTION_OFF, iEikonEnv );
- iSettingItemList->SetItemStateL( aType, EFalse );
- }
- else
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => Phone Memory or Mass Storage ");
- if (aType == EPhoneMemory) // Mass Storage
- {
- if ( iMemEntities.Count() > EPrimaryPhoneMemory )
- {
- TUint phoneMemState = iMemEntities[EPrimaryPhoneMemory]->State();
- DFLOG2( "CDevEncUiMainViewContainer::DoUpdateInfoL, Now Mass Storage, need Phone Memory State: %d", phoneMemState);
- if (phoneMemState == ECorrupted)
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_CORRUPTED, iEikonEnv);
- }
- else
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_OFF, iEikonEnv);
- }
- }
- else
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL, Now Mass Storage, no Phone Memory");
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_OFF, iEikonEnv);
- }
- }
- else // aType == EPrimaryPhoneMemory, means Phone Memory
- {
- if ( iMemEntities.Count() > EPhoneMemory )
- {
- TUint massStoreState = iMemEntities[EPhoneMemory]->State();
- DFLOG2( "CDevEncUiMainViewContainer::DoUpdateInfoL, Now Phone Memory, need Mass Storage State: %d", massStoreState);
- if (massStoreState == ECorrupted)
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_CORRUPTED, iEikonEnv);
- }
- else
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_OFF, iEikonEnv);
- }
- }
- else
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL, Now Phone Memory, no Mass Storage");
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_OFF, iEikonEnv);
- }
- }
-
- // Update the On/Off popup settings
- iSettingItemList->SetItemStateL( EPhoneMemory, EFalse );
- }
- break;
- }
- case EEncrypting:
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => EEncrypting ");
- stateText = StringLoader::LoadLC(
- R_DEVENCUI_TEXT_ENCRYPT_PROCESS,
- //R_DEVENCUI_TEXT_DECRYPT,
- aProgress,
- iEikonEnv );
- break;
- }
- case EEncrypted:
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => Phone Memory or Mass Storage ");
- if (aType == EPhoneMemory) // Mass Storage
- {
- if ( iMemEntities.Count() > EPrimaryPhoneMemory )
- {
- TUint phoneMemState = iMemEntities[EPrimaryPhoneMemory]->State();
- DFLOG2( "CDevEncUiMainViewContainer::DoUpdateInfoL, Now Mass Storage, need Phone Memory State: %d", phoneMemState);
- if (phoneMemState == ECorrupted)
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_CORRUPTED, iEikonEnv);
- }
- else if (phoneMemState == EDecrypted)
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_OFF, iEikonEnv);
- }
- else
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_ON, iEikonEnv);
- }
- }
- else
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL, Now Mass Storage, no Phone Memory");
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_ON, iEikonEnv);
- }
- }
- else if (aType == EPrimaryPhoneMemory)// Phone Memory
- {
- if ( iMemEntities.Count() > EPhoneMemory )
- {
- TUint massStoreState = iMemEntities[EPhoneMemory]->State();
- DFLOG2( "CDevEncUiMainViewContainer::DoUpdateInfoL, Now Phone Memory, need Mass Storage State: %d", massStoreState);
- if (massStoreState == ECorrupted)
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_CORRUPTED, iEikonEnv);
- }
- else if (massStoreState == EDecrypted)
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_OFF, iEikonEnv);
- }
- else
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_ON, iEikonEnv);
- }
- }
- else
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL, Now Phone Memory, no Mass Storage");
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_ON, iEikonEnv);
- }
- }
- else // Memory Card
- {
- stateText = StringLoader::LoadLC(R_DEVENCUI_TEXT_ENCRYPTION_ON, iEikonEnv);
- }
- // Update the On/Off popup settings
- if ( aType != EPrimaryPhoneMemory )
- {
- iSettingItemList->SetItemStateL( aType, ETrue );
- }
- else
- {
- iSettingItemList->SetItemStateL( EPhoneMemory, ETrue );
- }
- break;
- }
- case EDecrypting:
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => EDecrypting ");
- stateText = StringLoader::LoadLC(
- R_DEVENCUI_TEXT_DECRYPT_PROCESS,
- aProgress,
- iEikonEnv );
- break;
- }
- case ECorrupted: // fall through
- case EUnmounted:
- default:
- {
- if ( aType == EMemoryCard )
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => MMC Corrupted ");
- // Mmc is a) not inserted, b) corrupted or c) encrypted with
- // another key. Check the user setting, and show "On" if any
- // key is in the driver.
- TBool mmcEncKeyInDriver( EFalse );
- User::LeaveIfError(
- iCrSettings->Get( KDevEncUserSettingMemoryCard,
- mmcEncKeyInDriver ) );
- if ( mmcEncKeyInDriver )
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => MMC On ");
- // "On"
- stateText = StringLoader::LoadLC(
- R_DEVENCUI_TEXT_ENCRYPTION_ON,
- iEikonEnv );
- // Update the On/Off popup settings
- iSettingItemList->SetItemStateL( aType, ETrue );
- }
- else
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => MMC Off ");
- // "Off"
- stateText = StringLoader::LoadLC(
- R_DEVENCUI_TEXT_ENCRYPTION_OFF,
- iEikonEnv );
- // Update the On/Off popup settings
- iSettingItemList->SetItemStateL( aType, EFalse );
- }
- }
- else
- {
- DFLOG( "CDevEncUiMainViewContainer::DoUpdateInfoL => NON OF THE PREVIOUS");
- stateText = StringLoader::LoadLC(
- R_DEVENCUI_TEXT_CORRUPTED,
- iEikonEnv );
- }
- break;
- }
- } // End of switch
-
- if (aType != EPrimaryPhoneMemory)
- {
- iSettingItemList->SetItemTextL( aType, *stateText );
- }
- else
- {
- iSettingItemList->SetItemTextL( EPhoneMemory, *stateText );
- }
- CleanupStack::PopAndDestroy( stateText );
-
- DFLOG( ">>CDevEncUiMainViewContainer::DoUpdateInfoL" );
- }
-
-
-//End of File
--- a/deviceencryption/DevEncUi/src/DevEncUiMemoryEntity.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,535 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiMemoryEntity.
-*
-*/
-
-#include "DevEncLog.h"
-#include "DevEncUiMemoryEntity.h"
-#include "DevEncUiMemInfoObserver.h"
-
-#include "DevEncDiskUtils.h"
-#include "DevEncSession.h"
-#include <f32file.h> // for TDriveNumer
-#include <DevEncEngineConstants.h>
-#include <TerminalControl3rdPartyAPI.h>
-
-// Local definitions
-const TInt KPercent100( 100 );
-const TTimeIntervalMicroSeconds32 KProgressInterval( 500000 ); // ms, 0.5 seconds
-const TTimeIntervalMicroSeconds32 KPollInterval( 2000000 ); // ms, 2 seconds
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::CDevEncUiMemoryEntity()
-//
-// --------------------------------------------------------------------------
-CDevEncUiMemoryEntity::CDevEncUiMemoryEntity(
- CEikonEnv* aEikonEnv,
- TDevEncUiMemoryType aType )
- : iEikEnv( aEikonEnv ),
- iType( aType )
- {
- // TBI: Get the real states from the underlying SW levels
- iState = EDecrypted;
- }
-
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::~CDevEncUiMemoryEntity()
-//
-// --------------------------------------------------------------------------
-CDevEncUiMemoryEntity::~CDevEncUiMemoryEntity()
- {
- if ( iPeriodic )
- {
- iPeriodic->Cancel();
- delete iPeriodic;
- }
- iObservers.Close();
- if ( iSession )
- {
- iSession->Close();
- delete iSession;
- }
- delete iDiskStatusObserver;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::NewL()
-//
-// --------------------------------------------------------------------------
-CDevEncUiMemoryEntity* CDevEncUiMemoryEntity::NewL(
- CEikonEnv* aEikonEnv,
- TDevEncUiMemoryType aType )
- {
- CDevEncUiMemoryEntity* self =
- CDevEncUiMemoryEntity::NewLC( aEikonEnv, aType );
- CleanupStack::Pop( self );
- return self;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::NewLC()
-//
-// --------------------------------------------------------------------------
-CDevEncUiMemoryEntity* CDevEncUiMemoryEntity::NewLC(
- CEikonEnv* aEikonEnv,
- TDevEncUiMemoryType aType )
- {
- CDevEncUiMemoryEntity* self =
- new ( ELeave ) CDevEncUiMemoryEntity( aEikonEnv, aType );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::ConstructL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::ConstructL()
- {
- DFLOG2( ">>CDevEncUiMemoryEntity::ConstructL, drive = %d", iType );
-
- switch( iType )
- {
- case EPhoneMemory: iSession = new ( ELeave ) CDevEncSession( /*EDriveC*/EDriveE );
- iDiskStatusObserver = CDiskStatusObserver::NewL( this, /*EDriveC*/EDriveE );
- break;
-
- case EPrimaryPhoneMemory: iSession = new ( ELeave ) CDevEncSession( EDriveC );
- iDiskStatusObserver = CDiskStatusObserver::NewL( this, EDriveC );
- break;
-
- case EMemoryCard: iSession = new ( ELeave ) CDevEncSession( /*EDriveE*/EDriveF );
- iDiskStatusObserver = CDiskStatusObserver::NewL( this, /*EDriveE*/EDriveF );
- break;
- }
-
- // Get initial memory state
- TInt nfeDiskStatus( EUnmounted );
-#ifndef __WINS__
- User::LeaveIfError( iSession->Connect() );
- TInt err = iSession->DiskStatus( nfeDiskStatus );
- if ( err )
- {
- DFLOG2( "Could not get disk status, error %d", err );
- nfeDiskStatus = EDecrypted;
- //User::Leave( err );
- }
-#else
- nfeDiskStatus = EDecrypted;
-#endif
- SetState( nfeDiskStatus );
-
- if ( ( iState == EEncrypting ) ||
- ( iState == EDecrypting ) )
- {
- // If the app was started in the middle of an ongoing operation,
- // start polling the progress
- StartPolling( KProgressInterval );
- }
- else
- {
- // Otherwise poll every once in a while to see if the status changes
- //StartPolling( KPollInterval );
- }
-
- DFLOG( "<<CDevEncUiMemoryEntity::ConstructL" );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::AddObserverL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::AddObserverL( MDevEncUiMemInfoObserver* aInfoObserver )
- {
- DFLOG( "CDevEncUiMemoryEntity::AddObserverL" );
- if ( !aInfoObserver )
- {
- User::Leave( KErrArgument );
- }
- iObservers.AppendL( aInfoObserver );
-
- // The new observer probably wants to know the current states
- UpdateMemoryInfo();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::RemoveObserver()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::RemoveObserver( MDevEncUiMemInfoObserver* aInfoObserver )
- {
- if ( !aInfoObserver )
- {
- return;
- }
- TInt index( iObservers.Find( aInfoObserver ) );
- if ( index != KErrNotFound )
- {
- iObservers.Remove( index );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::StartEncryptionL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::StartEncryptionL()
- {
- DFLOG( ">>CDevEncUiMemoryEntity::StartEncryptionL" );
-
-#ifndef __WINS__
-
- if ( ! iSession->Connected() )
- {
- User::LeaveIfError( iSession->Connect() );
- DFLOG( "Connected" );
- }
-
- // Make sure the memory is decrypted
- TInt nfeDiskStatus( EUnmounted );
- TInt err = iSession->DiskStatus( nfeDiskStatus );
- if ( err )
- {
- DFLOG2( "Could not get disk status, error %d", err );
- User::Leave( err );
- }
- if ( nfeDiskStatus != EDecrypted )
- {
- DFLOG2( "Memory is in wrong state (%d), leaving", nfeDiskStatus );
- User::Leave( KErrNotReady );
- }
-
- // Launch the encryption process
- err = iSession->StartDiskEncrypt();
- if ( err )
- {
- DFLOG2( "Could not start encryption, error %d", err );
- User::Leave( err );
- }
-
- // Set our internal state and update UI
- iPercentDone = 0;
- SetState( EEncrypting );
-
- // Start a timer to periodically update the memory state in the UI
- StartPolling( KProgressInterval );
-
-#endif // __WINS__
-
- DFLOG( "<<CDevEncUiMemoryEntity::StartEncryptionL" );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::StartPolling()
-// Starts a timer to periodically update the memory state in the UI
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::StartPolling(
- TTimeIntervalMicroSeconds32 aInterval )
- {
- TInt error( KErrNone );
- TRAP( error, DoStartPollingL( aInterval ) );
- DFLOG2( "CDevEncUiMemoryEntity::StartPolling result %d", error );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::DoStartPollingL()
-// Starts a timer to periodically update the memory state in the UI
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::DoStartPollingL(
- TTimeIntervalMicroSeconds32 aInterval )
- {
- TCallBack pollCallBack( PollTick, static_cast<TAny*>( this ) );
- TCallBack progressCallBack( ProgressTick, static_cast<TAny*>( this ) );
-
- if ( !iPeriodic )
- {
- iPeriodic = CPeriodic::NewL( EPriorityNormal );
- }
- iPeriodic->Cancel();
-
- if ( aInterval == KProgressInterval )
- {
- iPeriodic->Start( 0, aInterval, progressCallBack );
- }
- else
- {
- iPeriodic->Start( 0, aInterval, pollCallBack );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::StartDecryptionL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::StartDecryptionL()
- {
- DFLOG( ">>CDevEncUiMemoryEntity::StartDecryptionL" );
-
-#ifndef __WINS__
-
- if ( ! iSession->Connected() )
- {
- User::LeaveIfError( iSession->Connect() );
- DFLOG( "Connected " );
- }
-
- // Make sure the memory is encrypted
- TInt nfeDiskStatus( EUnmounted );
- TInt err = iSession->DiskStatus( nfeDiskStatus );
- if ( err )
- {
- DFLOG2( "Could not get disk status, error %d", err );
- //User::Leave( err );
- }
- if ( nfeDiskStatus != EEncrypted )
- {
- DFLOG2( "Memory is in wrong state (%d), leaving", nfeDiskStatus );
- User::Leave( KErrNotReady );
- }
-
- // Launch the decryption process
- err = iSession->StartDiskDecrypt();
- if ( err )
- {
- DFLOG2( "Could not start decryption, error %d", err );
- User::Leave( err );
- }
-
- // Set our internal state and update UI
- iPercentDone = 0;
- SetState( EDecrypting );
-
- // Start a timer to periodically update the memory state in the UI
- StartPolling( KProgressInterval );
-
-#endif // __WINS__
-
- DFLOG( "<<CDevEncUiMemoryEntity::StartDecryptionL" );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::ProgressTick()
-//
-// --------------------------------------------------------------------------
-TInt CDevEncUiMemoryEntity::ProgressTick( TAny* aPtr )
- {
- CDevEncUiMemoryEntity* self = static_cast<CDevEncUiMemoryEntity*>( aPtr );
- self->DoProgressTick();
- return 0;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::DoProgressTick()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::DoProgressTick()
- {
- CheckProgress();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::PollTick()
-//
-// --------------------------------------------------------------------------
-TInt CDevEncUiMemoryEntity::PollTick( TAny* aPtr )
- {
- CDevEncUiMemoryEntity* self = static_cast<CDevEncUiMemoryEntity*>( aPtr );
- TInt error( KErrNone );
- TRAP( error, self->DoPollTickL() );
- DFLOG2( "CDevEncUiMemoryEntity::PollTick result %d", error );
- return 0;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::DoPollTickL()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::DoPollTickL()
- {
- DFLOG( "CDevEncUiMemoryEntity::DoPollTickL" );
- TInt nfeDiskStatus( EUnmounted );
- TInt err = iSession->DiskStatus( nfeDiskStatus );
- if ( err )
- {
- DFLOG2( "Could not get disk status, error %d", err );
- // Ignore error
- return;
- }
- if ( ( nfeDiskStatus == EEncrypting ) ||
- ( nfeDiskStatus == EDecrypting ) )
- {
- // Some other component has started an encryption operation.
- // Indicate this to the UI and start polling the progress.
- DFLOG2( "CDevEncUiMemoryEntity::DoPollTick: New operation %d",
- nfeDiskStatus );
- SetState( nfeDiskStatus );
- StartPolling( KProgressInterval );
- }
- else
- {
- if ( iState != nfeDiskStatus )
- {
- DFLOG( "CDevEncUiMemoryEntity::DoPollTickL => SetState" );
- // The Mmc status has changed, but we are not in the middle of
- // any operation. Just set the new state.
- SetState( nfeDiskStatus );
- }
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::SetState()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::SetState( TUint aState )
- {
- DFLOG3( "CDevEncUiMemoryEntity::SetState, prev %d, new %d",
- iState, aState );
- iState = aState;
- UpdateMemoryInfo();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::CheckProgress()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::CheckProgress()
- {
- ASSERT( iSession );
- ASSERT( iSession->Connected() );
-
- TInt err = iSession->Progress( iPercentDone );
-
- if ( err )
- {
- DFLOG( "Could not get progress" );
- iPeriodic->Cancel();
- }
- else if ( iPercentDone >= KPercent100 )
- {
- DFLOG( "Operation complete" );
- iPeriodic->Cancel();
- iPercentDone = 0;
-
- // The disk needs to be finalized, but the finalization is done in
- // the starter component.
-
- DFLOG2( "CDevEncUiMemoryEntity::CheckProgress => iSession->DriveNumber() = %d", iSession->DriveNumber() );
-
- if ( iState == EDecrypted && iSession->DriveNumber() == EDriveC )
- {
- DFLOG( "CDevEncUiMemoryEntity::CheckProgress => RestoreAutolockSettings" );
- RestoreAutolockSettings();
- }
- // Restart the polling at a slower pace
- // StartPolling( KPollInterval );
- }
- else // Not yet finished...
- {
- UpdateMemoryInfo();
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::RestoreAutolockSettings()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::RestoreAutolockSettings()
- {
-#ifndef __WINS__
- //the user chose to decrypt the phone memory. restore the previuos autolock settings
- RTerminalControl terminalCtrl;
- TInt ctrlConnect = terminalCtrl.Connect();
- DFLOG2( "DEVENC: terminal control connected %d", ctrlConnect );
-
- RTerminalControl3rdPartySession session;
- TInt retValue = session.Open( terminalCtrl );
- DFLOG2( "DEVENC: terminal control session open %d", retValue );
-
- //read the current autolock period
- TBuf8<21> autoLockPeriodBuf;
- TInt err2 = session.GetDeviceLockParameter( RTerminalControl3rdPartySession::ETimeout, autoLockPeriodBuf );
- DFLOG2( "DEVENC: max value get returned value %d", err2 );
-
- //this is set to 0 because the Tarm control prevent the autolock from being disabled otherwise.
- TBuf8<21> oldMaxPeriodBuf;
- oldMaxPeriodBuf.AppendNum( 0 );
- TInt err = session.SetDeviceLockParameter( RTerminalControl3rdPartySession::EMaxTimeout, oldMaxPeriodBuf );
- DFLOG2( "DEVENC: max value set returned value %d", err );
-
- //set the autolock period as it was previously
- err = session.SetDeviceLockParameter( RTerminalControl3rdPartySession::ETimeout, autoLockPeriodBuf );
- DFLOG2( "DEVENC: max value set returned value %d", err );
-
- session.Close();
- terminalCtrl.Close();
-#endif
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::UpdateMemoryInfo()
-//
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::UpdateMemoryInfo()
- {
- DFLOG( "CDevEncUiMemoryEntity::UpdateMemoryInfo" );
- for ( TInt i = 0; i < iObservers.Count(); i++ )
- {
- iObservers[i]->UpdateInfo( iType, iState, iPercentDone );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::State()
-//
-// --------------------------------------------------------------------------
-TUint CDevEncUiMemoryEntity::State() const
- {
- return iState;
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiMemoryEntity::DiskStatusChangedL()
-// From MDiskStatusObserver
-// --------------------------------------------------------------------------
-void CDevEncUiMemoryEntity::DiskStatusChangedL( TInt aNfeStatus )
- {
- if ( ( aNfeStatus == EEncrypting ) ||
- ( aNfeStatus == EDecrypting ) )
- {
- // Some other component has started an encryption operation.
- // Indicate this to the UI and start polling the progress.
- DFLOG2( "CDevEncStarterMemoryEntity::DoPollTick: New operation %d",
- aNfeStatus );
- SetState( aNfeStatus );
- StartPolling( KProgressInterval );
- }
- else
- {
- if ( iState != aNfeStatus )
- {
- // The Mmc status has changed, but we are not in the middle of
- // any operation. Just set the new state.
- SetState( aNfeStatus );
- }
- }
- }
-
-// End of File
-
-
-
--- a/deviceencryption/DevEncUi/src/DevEncUiSecretMinMaxCodeQuery.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/*
-* Copyright (c) 2005 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:
-*
-*/
-
-#include <aknappui.h>
-#include <aknQueryControl.h>
-#include <AknQueryDialog.h>
-#include <aknsoundsystem.h>
-#include <devencui.rsg>
-#include <eikseced.h>
-
-#include "DevEncLog.h"
-#include "DevEnc.hrh"
-#include "DevEncUiSecretMinMaxCodeQuery.h"
-
-// ================= MEMBER FUNCTIONS =======================
-//
-// ----------------------------------------------------------
-// CCodeQueryDialog::CCodeQueryDialog()
-// C++ constructor
-// ----------------------------------------------------------
-//
-CDevEncUiSecretMinMaxCodeQuery::CDevEncUiSecretMinMaxCodeQuery(
- TDes& aDataText,
- TInt aMinLength,
- TInt aMaxLength )
- : CAknTextQueryDialog( aDataText, ENoTone ),
- iMinLength( aMinLength ),
- iMaxLength( aMaxLength )
- {
- }
-//
-// ----------------------------------------------------------
-// CDevEncUiSecretMinMaxCodeQuery::~CodeQueryDialog()
-// Destructor
-// ----------------------------------------------------------
-//
-CDevEncUiSecretMinMaxCodeQuery::~CDevEncUiSecretMinMaxCodeQuery()
- {
- }
-//
-// ----------------------------------------------------------
-// CDevEncUiSecretMinMaxCodeQuery::PreLayoutDynInitL()
-// Called by framework before dialog is shown
-// ----------------------------------------------------------
-//
-void CDevEncUiSecretMinMaxCodeQuery::PreLayoutDynInitL()
- {
- CAknTextQueryDialog::PreLayoutDynInitL();
- SetMaxLength( iMaxLength );
- }
-//
-// ---------------------------------------------------------
-// CDevEncUiSecretMinMaxCodeQuery::OfferKeyEventL
-// called by framework when any key is pressed
-// ---------------------------------------------------------
-//
-TKeyResponse CDevEncUiSecretMinMaxCodeQuery::OfferKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- // '#' key
- if ( aKeyEvent.iScanCode == EStdKeyHash && aType == EEventKeyUp )
- {
- TryExitL( EEikBidOk );
- return EKeyWasConsumed;
- }
-
- // '*' key
- if ( aKeyEvent.iCode == '*' )
- {
- return EKeyWasConsumed;
- }
-
- // end key
- if ( aKeyEvent.iCode == EKeyPhoneEnd )
- {
- TryExitL( EAknSoftkeyCancel );
- return EKeyWasConsumed;
- }
-
- return CAknTextQueryDialog::OfferKeyEventL( aKeyEvent,aType );
- }
-
-// ---------------------------------------------------------
-// CDevEncUiSecretMinMaxCodeQuery::OkToExitL()
-// Called by framework when the softkey is pressed
-// ---------------------------------------------------------
-TBool CDevEncUiSecretMinMaxCodeQuery::OkToExitL( TInt aButtonId )
- {
- TInt length = 0;
- TBool returnvalue( EFalse );
-
- switch( aButtonId )
- {
- case EAknSoftkeyOk:
- {
- CAknQueryControl* control = QueryControl();
- if ( control )
- {
- length = control->GetTextLength();
- }
- if ( length < iMinLength )
- {
- returnvalue = EFalse;
- }
- else
- {
- returnvalue = CAknTextQueryDialog::OkToExitL( aButtonId );
- }
- }
- break;
-
- case EEikBidCancel: //Also includes EAknSoftkeyCancel as they have the same numerical value
- {
- returnvalue = ETrue;
- break;
- }
- default:
- break;
- }
- return returnvalue;
- }
-
-void CDevEncUiSecretMinMaxCodeQuery::UpdateLeftSoftKeyL()
- {
- CAknQueryControl* control = QueryControl();
- if ( control )
- {
- TBool makeVisible( control->GetTextLength() >= iMinLength );
- MakeLeftSoftkeyVisible( makeVisible );
- }
- }
-
-// End of file
--- a/deviceencryption/DevEncUi/src/DevEncUiSettingItemList.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,241 +0,0 @@
-/*
-* Copyright (c) 2005 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 CDevEncUiSettingItemList.
-*
-*/
-
-// INCLUDE FILES
-
-// Class include
-#include "DevEncUiSettingItemList.h"
-
-// System include
-#include <StringLoader.h>
-#include <devencui.rsg>
-
-// User include
-
-// Constants
-const TInt KOffTextIndex( 0 );
-const TInt KOnTextIndex( 1 );
-const TInt KOffEnumerationValue( 0 );
-const TInt KOnEnumerationValue( 1 );
-
-// ================= MEMBER FUNCTIONS =======================
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::CDevEncUiSettingItemList()
-// --------------------------------------------------------------------------
-//
-CDevEncUiSettingItemList::CDevEncUiSettingItemList()
- {
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::~CDevEncUiSettingItemList()
-// --------------------------------------------------------------------------
-//
-CDevEncUiSettingItemList::~CDevEncUiSettingItemList()
- {
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::SizeChanged()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiSettingItemList::SizeChanged()
- {
- if ( ListBox() )
- {
- ListBox()->SetRect( Rect() );
- ListBox()->HandleResourceChange( KEikDynamicLayoutVariantSwitch );
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::HandleResourceChange()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiSettingItemList::HandleResourceChange( TInt aType )
- {
- if ( aType == KEikDynamicLayoutVariantSwitch )
- {
- // do re-layout
- if ( ListBox() )
- {
- ListBox()->SetRect( Rect() );
- ListBox()->HandleResourceChange( aType );
- }
- }
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::CreateSettingItemL()
-// --------------------------------------------------------------------------
-//
-CAknSettingItem* CDevEncUiSettingItemList::CreateSettingItemL( TInt aIdentifier )
- {
- CAknSettingItem* settingItem = NULL;
-
- switch ( aIdentifier )
- {
- case EPhoneEncryptionSettingItem:
- settingItem =
- new ( ELeave ) CAknBinaryPopupSettingItem( aIdentifier,
- iPhoneMemSetting );
- break;
- case EMemoryCardEncryptionSettingItem:
- settingItem =
- new ( ELeave ) CAknBinaryPopupSettingItem( aIdentifier,
- iMmcSetting );
- break;
- }
- return settingItem; // passing ownership
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::HandleListBoxEventL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiSettingItemList::HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType)
- {
- if ( aEventType == EEventItemSingleClicked )
- {
- TKeyEvent event;
- event.iCode = EKeyEnter;
- event.iScanCode = EStdKeyEnter;
- event.iRepeats = 0;
- iCoeEnv->SimulateKeyEventL( event, EEventKey );
- return;
- }
- CAknSettingItemList::HandleListBoxEventL(aListBox, aEventType);
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::ChangeSelectedItemL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiSettingItemList::ChangeSelectedItemL()
- {
- if ( ! ListBox() )
- {
- User::Leave( KErrNotFound );
- }
- EditItemL( ListBox()->CurrentItemIndex(), ETrue );
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::SelectedItem()
-// --------------------------------------------------------------------------
-//
-TInt CDevEncUiSettingItemList::SelectedItem()
- {
- if ( ! ListBox() )
- {
- return -1;
- }
- return ListBox()->CurrentItemIndex();
- }
-
-
- // --------------------------------------------------------------------------
- // CDevEncUiSettingItemList::EditItemL()
- // --------------------------------------------------------------------------
- //
-void CDevEncUiSettingItemList::EditItemL( TInt aIndex, TBool aCalledFromMenu )
- {
- CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu );
- (*SettingItemArray())[aIndex]->StoreL();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::SetItemTextL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiSettingItemList::SetItemTextL( TInt aIndex, const TDesC& aNewText )
- {
- // Sanity check
- if ( aIndex > ( SettingItemArray()->Count() - 1 ) )
- {
- User::Leave( KErrOverflow );
- }
- // Get hold of the existing texts for the selected item
- // The binary popup setting item has two texts, one for each setting.
- // Just to be sure, we set them both.
- CAknBinaryPopupSettingItem* settingItem =
- reinterpret_cast<CAknBinaryPopupSettingItem*>
- ( ( *SettingItemArray() )[aIndex] );
- CArrayPtr<CAknEnumeratedText>* textArray =
- settingItem->EnumeratedTextArray();
- CAknEnumeratedText* enumTextOn = textArray->At( KOnTextIndex );
- CAknEnumeratedText* enumTextOff = textArray->At( KOffTextIndex );
-
- // Delete the previous texts thoroughly
- HBufC* prevTextOn = enumTextOn->Value();
- HBufC* prevTextOff = enumTextOff->Value();
- textArray->Delete( KOnTextIndex );
- textArray->Delete( KOffTextIndex );
- delete prevTextOn;
- delete prevTextOff;
-
- // Set the new enumeration values (matching the ones in the rss file)
- enumTextOn->SetEnumerationValue( KOnEnumerationValue );
- enumTextOff->SetEnumerationValue( KOffEnumerationValue );
-
- // Set the new texts
- enumTextOn->SetValue( aNewText.AllocL() ); // Ownership transferred to array
- enumTextOff->SetValue( aNewText.AllocL() ); // Ownership transferred to array
- textArray->AppendL( enumTextOn );
- textArray->AppendL( enumTextOff );
-
- // The list updates itself
- HandleChangeInItemArrayOrVisibilityL();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::SetItemStateL()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiSettingItemList::SetItemStateL( TInt aIndex, TBool aSetting )
- {
- if ( aIndex == EPhoneMemory )
- {
- iPhoneMemSetting = aSetting;
- }
- else
- {
- iMmcSetting = aSetting;
- }
- // Load the new value to the framework's internal data
- ( *SettingItemArray() )[ aIndex ]->LoadL();
- }
-
-// --------------------------------------------------------------------------
-// CDevEncUiSettingItemList::ItemState()
-// --------------------------------------------------------------------------
-//
-void CDevEncUiSettingItemList::ItemState( TInt aIndex, TBool& aSetting )
- {
- // Fetch the current value from the framework's internal data
- if ( aIndex == EPhoneMemory )
- {
- aSetting = iPhoneMemSetting;
- }
- else
- {
- aSetting = iMmcSetting;
- }
- }
-
-// END OF FILE
--- a/deviceencryption/DevEncUi/src/DevEncUiTimer.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
-* Copyright (c) 2005 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:
-*
-*/
-
-#include "DevEncUiTimer.h"
-#include "DevEncLog.h"
-
-// ================= MEMBER FUNCTIONS =======================
-//
-// ----------------------------------------------------------
-// CDevEncUiTimer::NewL
-// Instancies CDevEncUiTimer object
-// ----------------------------------------------------------
-//
-CDevEncUiTimer* CDevEncUiTimer::NewL( MDevEncUiTimerCallback* aCallback )
- {
- CDevEncUiTimer* self = new ( ELeave ) CDevEncUiTimer( aCallback );
- CleanupStack::PushL ( self );
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-// ----------------------------------------------------------
-// CDevEncUiTimer::ConstructL()
-// Initializes data objects
-// ----------------------------------------------------------
-//
-void CDevEncUiTimer::ConstructL()
- {
- CTimer::ConstructL();
- }
-
-// ----------------------------------------------------------
-// CDevEncUiTimer::CDevEncUiTimer()
-// Constructor
-// ----------------------------------------------------------
-//
-CDevEncUiTimer::CDevEncUiTimer( MDevEncUiTimerCallback* aCallback )
- : CTimer( EPriorityStandard ),
- iCallback( aCallback )
- {
- CActiveScheduler::Add( this );
- }
-
-// ----------------------------------------------------------
-// CDevEncUiTimer::CDevEncUiTimer()
-// Destructor
-// ----------------------------------------------------------
-//
-CDevEncUiTimer::~CDevEncUiTimer()
- {
- Cancel();
- }
-
-// ----------------------------------------------------------
-// CDevEncUiTimer::RunError()
-// CActive Object method
-// ----------------------------------------------------------
-//
-TInt CDevEncUiTimer::RunError( TInt aError )
- {
- return aError;
- }
-
-// ----------------------------------------------------------
-// CDevEncUiTimer::RunL()
-// CActive Object method
-// ----------------------------------------------------------
-//
-void CDevEncUiTimer::RunL()
- {
- DFLOG2( "CDevEncUiTimer::RunL, status %d", iStatus.Int() );
- if ( iStatus == KErrNone )
- {
- iCallback->Timeout();
- }
- }
-
-// ----------------------------------------------------------
-// CDevEncUiTimer::DoCancel()
-// CActive Object method
-// ----------------------------------------------------------
-//
-void CDevEncUiTimer::DoCancel()
- {
- }
-
-// End of file
--- a/deviceencryption/common/DevEnc.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
-* Copyright (c) 2005 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: Enumerations used in the application UI.
-*
-*/
-
-#ifndef __DEVENCUI_HRH__
-#define __DEVENCUI_HRH__
-
-// DevEncUi enumerate command codes
-enum TDevEncUiCommandIds
- {
- EDevEncUiCommandChange = 4242, // start value must not be 0
- EDevEncUiCommandHelp,
-
- // These MMC-related commands are used in the Encryption view.
- EDevEncUiCommandEncryptWithoutSavingKey,
- EDevEncUiCommandEncryptAndSaveKey,
- EDevEncUiCommandEncryptWithRestoredKey,
-
- // This MMC-related command is not shown to the user. It is used
- // when the encryption key is in the security driver and the user
- // inserts an unencrypted card.
- EDevEncUiCommandEncryptWithCurrentKey,
-
- // These MMC-related commands are used in the Decryption view.
- EDevEncUiCommandDecrypt,
- EDevEncUiCommandDecryptAndTurnOffEncryption,
-
- EDevEncUiInternalCommandEncrypt,
- EDevEncUiInternalCommandDecrypt,
-
- // ID's of some UI items
- EPhoneEncryptionSettingItem,
- EMemoryCardEncryptionSettingItem,
- EDevEncUiDlgCIdConfirmationQuery,
- EDevEncUiDlgCIdDataQuery,
- EDevEncUiWaitNoteId,
- EDevEncUiSecretCodeQueryId
- };
-
-enum TDevEncUiMemoryType
- {
- EPhoneMemory,
- EMemoryCard,
- EPrimaryPhoneMemory
- };
-
-enum TDevEncUiMemoryEntityState
- {
- EMemStateUnknown = 0,
- EMemDecrypted = 1,
- EMemEncrypting = 2,
- EMemEncrypted = 3,
- EMemDecrypting = 4,
- EMemCorrupted = 5
- };
-
-enum TDevEncUiViewIds
- {
- EDevEncUiMainViewId = 1,
- EDevEncUiEncrViewId,
- EDevEncUiDecrViewId,
- EDevEncUiNumberOfViews
- };
-
-enum TDevEncUiMmcStatus
- {
- EMmcNotPresent = 0,
- EMmcNotReadable = 1,
- EMmcOk = 2
- };
-
-#endif // __DEVENCUI_HRH__
--- a/deviceencryption/common/DevEncConfig.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 2005 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: Common build configuration of Device Encryption components.
-*
-*/
-
-#ifndef __DEVENCUI_CONFIG_H__
-#define __DEVENCUI_CONFIG_H__
-
-// Comment this out to disable logs
-#define DEVENC_LOG
-
-#endif // __DEVENCUI_CONFIG_H__
-// End of File
--- a/deviceencryption/common/DevEncDef.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2005 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: Common definitions for the application.
-*
-*/
-
-#ifndef DEVENCDEF_H_
-#define DEVENCDEF_H_
-
-enum
- {
- KMinPasswordLength = 4, // Same as for security code
- KMaxPasswordLength = 50,
- KMaxKeyNameLength = 50,
- KMaxFilenameLength = 100,
- KEncryptionKeyLength = 32
- };
-#endif /*DEVENCDEF_H_*/
--- a/deviceencryption/common/DevEncLog.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2005 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 CFileLog.
-*
-*/
-
-#include "DevEncLog.h"
-#include <flogger.h>
-
-#if defined( _DEBUG ) && defined ( DEVENC_LOG )
-
-_LIT( KDevEncLogDir, "DevEnc");
-_LIT( KDevEncLogFile, "DevEnc.log");
-
-void CFileLog::Printf( TRefByValue<const TDesC> aFmt, ... )
- {
- VA_LIST list;
- VA_START( list, aFmt );
- RFileLogger::WriteFormat( KDevEncLogDir,
- KDevEncLogFile,
- EFileLoggingModeAppend,
- aFmt,
- list );
- }
-
-#endif
-
-// End of File
--- a/deviceencryption/common/DevEncLog.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-/*
-* Copyright (c) 2005 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: Debug logging functionality.
-*
-*/
-
-#ifndef __DEVENC_LOG_H__
-#define __DEVENC_LOG_H__
-
-#include "DevEncConfig.hrh"
-
-#if defined( _DEBUG ) && defined ( DEVENC_LOG )
-
-#include <e32base.h>
-#include <e32cmn.h>
-#include <e32debug.h>
-
-class CFileLog : public CBase
- {
- public:
- static void Printf( TRefByValue<const TDesC> aFmt, ... );
- };
-
-// Debug trace to stdout
-#define DLOG( aText ) \
- { \
- _LIT( KText, aText ); \
- RDebug::Print( KText ); \
- }
-
-// Debug trace to stdout
-#define DLOG2( aText, aParam ) \
- { \
- _LIT( KText, aText ); \
- RDebug::Print( KText, aParam ); \
- }
-
-// Debug trace to stdout
-#define DLOG3( aText, aParam1, aParam2 ) \
- { \
- _LIT( KText, aText ); \
- RDebug::Print( KText, aParam1, aParam2 ); \
- }
-
-// Debug trace to file
-#define FLOG( aText ) \
- { \
- _LIT( KLogText, aText ); \
- CFileLog::Printf( KLogText ); \
- }
-
-// Debug trace to file
-#define FLOG2( aText, b ) \
- { \
- _LIT( KLogText, aText ); \
- CFileLog::Printf( KLogText, b ); \
- }
-
-// Debug trace to file
-#define FLOG3( aText, b, c ) \
- { \
- _LIT( KLogText, aText ); \
- CFileLog::Printf( KLogText, b, c ); \
- }
-
-// Debug trace to stdout and file
-#define DFLOG( aText ) \
- { \
- DLOG( aText ); \
- FLOG( aText ); \
- }
-
-// Debug trace to stdout and file
-#define DFLOG2( aText, aParam ) \
- { \
- DLOG2( aText, aParam ); \
- FLOG2( aText, aParam ); \
- }
-
-// Debug trace to stdout and file
-#define DFLOG3( aText, aParam1, aParam2 ) \
- { \
- DLOG3( aText, aParam1, aParam2 ); \
- FLOG3( aText, aParam1, aParam2 ); \
- }
-
-// Debug trace a string literal to file
-#define FLOGBUF( aText ) \
- { \
- CFileLog::Printf( aText ); \
- }
-
-// Debug trace a string literal
-#define DLOGBUF( aText ) \
- { \
- RDebug::Print( aText ); \
- }
-
-// Debug trace a string literal to file and stdout
-#define DFLOGBUF( aText ) \
- { \
- DLOGBUF( aText ); \
- FLOGBUF( aText ); \
- }
-
-#else // _DEBUG not defined, no logging code will be included at all
-
-#define DLOG( a )
-#define DLOG2( a, b )
-#define DLOG3( a, b, c )
-#define FLOG( a )
-#define FLOG2( a, b )
-#define FLOG3( a, b, c )
-#define DFLOG( a )
-#define DFLOG2( a, b )
-#define DFLOG3( a, b, c )
-#define FLOGBUF( a )
-#define DFLOGBUF( a )
-
-#endif // _DEBUG
-
-#endif // __DEVENC_LOG_H__
-
-// End of File
-
--- a/deviceencryption/common/DevEncUids.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* Copyright (c) 2005 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: Uids of components related to Device Encryption.
-*
-*/
-
-#ifndef DEVENCUIUIDS_HRH
-#define DEVENCUIUIDS_HRH
-
-#define KDevEncUiUid 0x2000259A
-#define KDevEncStarterUid 0x2000259B
-#define KDevEncOmaDmPluginUid 0x200025B5
-#define KDevEncOmaDmPluginImplUid 0x200025BB
-#define KDevEncRfsPluginUid 0x200025B6
-#define KDevEncRfsPluginImplUid 0x200025BC
-#define KDevEncCommonUtilsUid 0x200025B7
-#define KDevEncNotifPluginUid 0x20002672
-#define KDevEncNotifPluginImplUid 0x20002673
-#define KDevEncPasswdDlgUid 0x20002674
-#define KDevEncGsPluginUid 0x200255CF
-#define KDevEncGsPluginImplUid 0x200255D0
-
-#define KDevEncNokiaVID 0x70000001
-
-#endif // DEVENCUIUIDS_HRH
-
-// End of file
--- a/deviceencryption/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2005 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: Provides the information required for building all
-* Device Encryption components.
-*
-*/
-
-#include <ProductVariant.hrh>
-#include <platform_paths.hrh>
-
-PRJ_EXPORTS
-
-// ROM files
-../rom/DevEnc.iby CORE_APP_LAYER_IBY_EXPORT_PATH(DevEncryption.iby)
-../rom/DevEncResources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(DevEncResources.iby)
-
-// Exported headers
-../common/DevEncDef.h APP_LAYER_PLATFORM_EXPORT_PATH(DevEncDef.h)
-
-PRJ_MMPFILES
-
-#include "../DevEncNotifPlugin/group/bld.inf"
-#include "../DevEncUi/group/bld.inf"
-#include "../DevEncDmAdapter/group/bld.inf"
-#include "../DevEncGsPlugin/group/bld.inf"
-#include "../help/group/bld.inf"
-
-
-// End of file
Binary file deviceencryption/help/data/xhtml.zip has changed
--- a/deviceencryption/help/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* 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 "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 help related files.
-*
-*/
-
-#include <platform_paths.hrh>
-PRJ_EXPORTS
-:zip ../data/xhtml.zip /epoc32/data/z/resource/ overwrite
-:zip ../data/xhtml.zip /epoc32/winscw/c/resource/ overwrite
-
-../inc/devenc.hlp.hrh MW_LAYER_PLATFORM_EXPORT_PATH(csxhelp/devenc.hlp.hrh)
-../rom/deviceencryptionhelps_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(deviceencryptionhelps_variant.iby)
--- a/deviceencryption/help/inc/devenc.hlp.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* 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 "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:
-*
-*/
-
-//
-// devenc.hlp.hrh generated by CSXHelp Utilities.
-//
-
-#ifndef __DEVENC_HLP_HRH__
-#define __DEVENC_HLP_HRH__
-
-_LIT(KES_HLP_ENCRYPTION_DECRYPT, "ES_HLP_ENCRYPTION_DECRYPT"); //
-_LIT(KES_HLP_ENCRYPTION_ENCRYPT, "ES_HLP_ENCRYPTION_ENCRYPT"); //
-_LIT(KES_HLP_ENCRYPTION_MAIN, "ES_HLP_ENCRYPTION_MAIN"); //
-
-#endif
\ No newline at end of file
--- a/deviceencryption/help/rom/deviceencryptionhelps_variant.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* 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 "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:
-*
-*/
-
-#ifndef __DEVICEENCRPTIONHELPS_VARIANT_IBY__
-#define __DEVICEENCRPTIONHELPS_VARIANT_IBY__
-
-#if defined(FF_S60_HELPS_IN_USE)
- data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x2000259A\contents.zip, RESOURCE_FILES_DIR\xhtml\%02d\0x2000259A\contents.zip)
- data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x2000259A\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x2000259A\index.xml)
- data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x2000259A\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x2000259A\keywords.xml)
- data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x2000259A\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x2000259A\meta.xml)
-#endif
-
-#endif
\ No newline at end of file
--- a/deviceencryption/layers.sysdef.xml Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
- <!ENTITY layer_real_source_path "sf/app/files/deviceencryption" >
-]>
-
-<SystemDefinition name="DeviceEncryption" schema="1.4.0">
- <systemModel>
- <layer name="app_layer">
- <module name="DeviceEncryption">
- <unit unitID="ES.DeviceEncryption" mrp="" bldFile="&layer_real_source_path;/group" name="DeviceEncryption" />
- </module>
- </layer>
- </systemModel>
-</SystemDefinition>
\ No newline at end of file
--- a/deviceencryption/rom/DevEnc.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2005 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: Contains information about binary files and their locations.
-*
-*/
-
-#ifndef __DEVENC0_IBY__
-#define __DEVENC0_IBY__
-#ifdef FF_DEVICE_ENCRYPTION_FEATURE
-
-//---------------------------------------------------------------------------
-// Device Encryption UI
-//---------------------------------------------------------------------------
-
-S60_APP_EXE( DevEncUi )
-S60_APP_BITMAP( DevEncUi )
-SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,DevEncUi)
-S60_APP_AIF_ICONS( DevEncUi )
-S60_APP_AIF_RSC( DevEncUi )
-
-//---------------------------------------------------------------------------
-// Device Encryption OMA DM Adapter
-//---------------------------------------------------------------------------
-ECOM_PLUGIN(DevEncUiDmAdapter.dll,DevEncUiDmAdapter.rsc)
-
-//---------------------------------------------------------------------------
-// Device Encryption Notifier plugin
-//---------------------------------------------------------------------------
-ECOM_PLUGIN(devencnotifplugin.dll,devencnotifplugin.rsc)
-//---------------------------------------------------------------------------
-// Device Encryption GS Plugin
-//---------------------------------------------------------------------------
-ECOM_PLUGIN(devencgsplugin.dll,200255CF.rsc)
-data=DATAZ_\BITMAP_DIR\devencgsplugin.mif BITMAP_DIR\devencgsplugin.mif
-
-#endif // FF_DEVICE_ENCRYPTION_FEATURE
-#endif // __DEVENC0_IBY__
-
-// End of file
--- a/deviceencryption/rom/DevEncResources.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-* Copyright (c) 2005 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: Contains information about binary files and their locations.
-*
-*/
-
-#ifndef __DEVENCRESOURCES_IBY__
-#define __DEVENCRESOURCES_IBY__
-#ifdef FF_DEVICE_ENCRYPTION_FEATURE
-
-// Device Encryption UI
-//data=DATAZ_\resource\apps\DevEncUi.rsc resource\apps\DevEncUi.rsc
-S60_APP_RESOURCE (DevEncUi)
-
-//DevEnc Notification plugin
-data=DATAZ_\RESOURCE_FILES_DIR\devencnotifplugin.rsc RESOURCE_FILES_DIR\devencnotifplugin.rsc
-
-// Device Encryption GS Plugin
-data=DATAZ_\resource\devencGsPluginRsc.rsc resource\devencGsPluginRsc.rsc
-
-#endif // FF_DEVICE_ENCRYPTION_FEATURE
-
-#endif // __DEVENCRESOURCES_IBY__
-// End of file
--- a/deviceencryption/sis/DevEnc.pkg Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-;
-; 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 "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:
-;
-; DevEnc.pkg
-;
-;Language - standard language definitions
-&EN
-
-;Standard SIS file header (use UI application UID)
-#{"DevEncUi"},(0x2000259A),1,0,0
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-;Supports Series 60 v 3.0
-[0x101F7961], 0, 0, 0, {"Series60ProductID"}
-
-;Files to install
-
-;----------------------------------------------------------------------------
-; Device Encryption UI
-;----------------------------------------------------------------------------
-"\epoc32\release\armv5\urel\DevEncUi.exe" -"!:\sys\bin\DevEncUi.exe"
-"\epoc32\data\z\resource\apps\DevEncUi.rsc" -"!:\resource\apps\DevEncUi.rsc"
-"\epoc32\data\z\private\10003a3f\apps\DevEncUi_reg.rsc" -"!:\private\10003a3f\import\apps\DevEncUi_reg.rsc"
-;"\epoc32\data\z\private\10202be9\200025A6.txt" -"!:\private\10202be9\200025A6.txt"
-;"\epoc32\data\z\resource\apps\DevEncUi.mif" -"!:\resource\apps\DevEncUi.mif"
-
-;----------------------------------------------------------------------------
-; Device Encryption Common Utilities
-;----------------------------------------------------------------------------
-"\epoc32\release\armv5\urel\devenccommonutils.dll" -"!:\sys\bin\devenccommonutils.dll"
-
-;----------------------------------------------------------------------------
-; Device Encryption Device Management Adapter
-;----------------------------------------------------------------------------
-"\epoc32\release\armv5\urel\DevEncUiDmAdapter.dll" -"!:\sys\bin\DevEncUiDmAdapter.dll"
-"\epoc32\data\z\resource\plugins\DevEncUiDmAdapter.rsc" -"!:\resource\plugins\DevEncUiDmAdapter.rsc"
-
-;----------------------------------------------------------------------------
-; Device Encryption Notifier Plugin
-;----------------------------------------------------------------------------
-"\epoc32\release\armv5\urel\DevEncNotifPlugin.dll" -"!:\sys\bin\DevEncNotifPlugin.dll"
-;"\epoc32\release\armv5\urel\DevEncNotifWrapper.dll" -"!:\sys\bin\DevEncNotifWrapper.dll"
-"\epoc32\data\z\resource\plugins\DevEncNotifPlugin.rsc" -"!:\resource\plugins\DevEncNotifPlugin.rsc"
-"\epoc32\data\z\resource\devencnotifplugin.rsc" -"!:\resource\devencnotifplugin.rsc"
-
--- a/deviceencryption/sysdef_1_4_0.dtd Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
- <!ELEMENT SystemDefinition (systemModel?, build?)>
- <!ATTLIST SystemDefinition
- name CDATA #REQUIRED
- schema CDATA #REQUIRED>
- <!ELEMENT systemModel (layer+)>
- <!ELEMENT layer (logicalset* | module*)*>
- <!ATTLIST layer
- name CDATA #REQUIRED
- levels CDATA #IMPLIED
- span CDATA #IMPLIED>
- <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalset name CDATA #REQUIRED>
- <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalsubset name CDATA #REQUIRED>
- <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
- <!ATTLIST module
- name CDATA #REQUIRED
- level CDATA #IMPLIED>
- <!ELEMENT component (unit* | package* | prebuilt*)*>
- <!ATTLIST component name CDATA #REQUIRED>
- <!ELEMENT unit EMPTY>
- <!ATTLIST unit
- unitID ID #REQUIRED
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- bldFile CDATA #REQUIRED
- priority CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT package EMPTY>
- <!ATTLIST package
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT prebuilt EMPTY>
- <!ATTLIST prebuilt
- name CDATA #REQUIRED
- version CDATA #REQUIRED
- late (Y|N) #IMPLIED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
- <!ELEMENT unitList (unitRef+)>
- <!ATTLIST unitList
- name ID #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT unitRef EMPTY>
- <!ATTLIST unitRef unit IDREF #REQUIRED>
- <!ELEMENT targetList EMPTY>
- <!ATTLIST targetList
- name ID #REQUIRED
- description CDATA #REQUIRED
- target IDREFS #REQUIRED>
- <!ELEMENT target EMPTY>
- <!ATTLIST target
- name ID #REQUIRED
- abldTarget CDATA #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT option EMPTY>
- <!ATTLIST option
- name ID #REQUIRED
- abldOption CDATA #REQUIRED
- description CDATA #REQUIRED
- enable (Y | N | y | n) #REQUIRED>
- <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
- <!ATTLIST configuration
- name ID #REQUIRED
- description CDATA #REQUIRED
- filter CDATA #REQUIRED>
- <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
- <!ELEMENT unitListRef EMPTY>
- <!ATTLIST unitListRef unitList IDREF #REQUIRED>
- <!ELEMENT layerRef EMPTY>
- <!ATTLIST layerRef layerName CDATA #REQUIRED>
- <!ELEMENT buildLayer EMPTY>
- <!ATTLIST buildLayer
- command CDATA #REQUIRED
- targetList IDREFS #IMPLIED
- unitParallel (Y | N | y | n) #REQUIRED
- targetParallel (Y | N | y | n) #IMPLIED>
- <!ELEMENT specialInstructions EMPTY>
- <!ATTLIST specialInstructions
- name CDATA #REQUIRED
- cwd CDATA #REQUIRED
- command CDATA #REQUIRED>
--- a/filemanager/Aif/FileManageraif.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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 project FileManager
-*
-*/
-
-
-#include <aiftool.rh>
-
-RESOURCE AIF_DATA
-{
- app_uid = 0x101f84eb;
- num_icons = 2;
- embeddability = KAppNotEmbeddable;
- hidden = KAppNotHidden;
- newfile = KAppDoesNotSupportNewFile;
-}
-
-// End of File
Binary file filemanager/Aif/icon44.bmp has changed
Binary file filemanager/Aif/icon44m.bmp has changed
--- a/filemanager/App/data/FileManager.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1519 +0,0 @@
-/*
-* Copyright (c) 2002-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: Resource definitions for project FileManager
-*
-*/
-
-
-// RESOURCE IDENTIFIER
-NAME FMGR // 4 letter ID
-
-// INCLUDES
-#include <bldvariant.hrh>
-#include <eikon.rh>
-#include <eikon.rsg>
-#include <avkon.rsg>
-#include <avkon.rh>
-#include <avkon.mbg>
-#include <avkon.loc>
-#include <pathconfiguration.hrh>
-#include <aknsconstants.hrh>
-#include <data_caging_paths_strings.hrh>
-#include <CommonDialogs.rh>
-#include <filemanager.mbg>
-#include <drmcommon.loc>
-#include <activeidle3.loc>
-#include <errorres.loc>
-#include <filemanager.loc>
-#include "FileManagerEngine.hrh" // filemanager_mbm_file_location
-#include "FileManager.hrh"
-
-
-// RESOURCE DEFINITIONS
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF { buf = qtn_fmgr_main_title; }
-
-RESOURCE EIK_APP_INFO
-{
- status_pane = r_filemanager_status_pane;
-}
-
-/**
- * STATUS_PANE_APP_MODEL
- * FileManager default status pane
- */
-RESOURCE STATUS_PANE_APP_MODEL r_filemanager_status_pane
- {
- layout = R_AVKON_STATUS_PANE_LAYOUT_USUAL;
- panes =
- {
- SPANE_PANE
- {
- id = EEikStatusPaneUidTitle;
- type = EAknCtTitlePane;
- resource = r_filemanager_title_pane;
- }
- };
- }
-
-/**
- * TITLE_PANE
- * FileManager default title pane text
- */
-RESOURCE TITLE_PANE r_filemanager_title_pane
- {
- txt = qtn_fmgr_main_title;
- }
-
-#include <appinfo.rh>
-
-RESOURCE LOCALISABLE_APP_INFO r_filemanager_localisable_app_info
- {
- short_caption = qtn_apps_fmgr_grid;
- caption_and_icon =
- CAPTION_AND_ICON_INFO
- {
- caption = qtn_apps_fmgr_list;
-#ifdef __SCALABLE_ICONS
- number_of_icons = 1;
- icon_file = APP_BITMAP_DIR"\\FileManager_aif.mif";
-#else
- number_of_icons = 2;
- icon_file = APP_BITMAP_DIR"\\FileManager_aif.mbm";
-#endif
- };
- }
-
-/**
-* AVKON_VIEW
-* General view
-*/
-RESOURCE AVKON_VIEW r_filemanager_main_view
- {
- cba = r_filemanager_softkeys_options_exit__open;
- menubar = r_filemanager_main_menubar;
- }
-/**
-* AVKON_VIEW
-* General view (embedded)
-*/
-RESOURCE AVKON_VIEW r_filemanager_main_view_embedded
- {
- cba = r_filemanager_softkeys_options_exit__open_embedded;
- menubar = r_filemanager_main_menubar;
- }
-
-/**
-* AVKON_VIEW
-* Folders view
-*/
-RESOURCE AVKON_VIEW r_filemanager_folders_view
- {
- cba = r_filemanager_softkeys_options_back__open;
- menubar = r_filemanager_memory_store_menubar;
- }
-
-/**
-* AVKON_VIEW
-* Search results view
-*/
-/*
-RESOURCE AVKON_VIEW r_filemanager_search_results_view
- {
- cba = r_filemanager_softkeys_options_back__open;
- menubar = r_filemanager_search_results_menubar;
- }
-*/
-/**
-* MENU_BAR
-* Phone memory menu bar
-*/
-RESOURCE MENU_BAR r_filemanager_main_menubar
- {
- titles =
- {
- MENU_TITLE
- {
- menu_pane = r_filemanager_main_view_menu;
- }
- };
- }
-
-/**
-* MENU_BAR
-* Memory store menu bar
-*/
-RESOURCE MENU_BAR r_filemanager_memory_store_menubar
- {
- titles =
- {
- MENU_TITLE
- {
- menu_pane = r_filemanager_memory_store_view_menu;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_main_view_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerOpen;
- txt = qtn_fldr_open;
- flags = EEikMenuItemAction;
- },
- MENU_ITEM
- {
- command = EFileManagerConnectRemoveDrive;
- txt = qtn_rd_opt_connect;
- flags = EEikMenuItemDimmed;
- },
- MENU_ITEM
- {
- command = EFileManagerDisconnectRemoveDrive;
- txt = qtn_rd_opt_disconnect;
- flags = EEikMenuItemDimmed;
- },
- MENU_ITEM
- {
- command = EFileManagerEject;
- txt = qtn_fmgr_options_eject;
- flags = EEikMenuItemSpecific;
- },
-#ifndef RD_FILE_MANAGER_BACKUP
- MENU_ITEM
- {
- command = EFileManagerBackup;
- txt = qtn_memc_options_backup;
- },
- MENU_ITEM
- {
- command = EFileManagerRestore;
- txt = qtn_memc_options_restore;
- },
-#endif // !RD_FILE_MANAGER_BACKUP
- MENU_ITEM
- {
- command = EFileManagerFindFile;
- txt = qtn_fmgr_options_find_file;
- },
- MENU_ITEM
- {
- command = EFileManagerMemoryStorage;
- cascade = r_filemanager_memory_storage_menu;
- txt = qtn_fmgr_options_memory_sub;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerRemoveDrives;
- cascade = r_filemanager_remote_drives_menu;
- txt = qtn_fmgr_opt_remote_drives;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerRemoveDrivesMapDrive;
- txt = qtn_fmgr_opt_rd_new_drive;
- },
- MENU_ITEM
- {
- command = EAknCmdHelp;
- txt = qtn_options_help;
- },
- MENU_ITEM
- {
- command = EAknSoftkeyExit;
- txt = qtn_options_exit;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_memory_store_view_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerOpen;
- txt = qtn_fldr_open;
- flags = EEikMenuItemAction;
- },
- MENU_ITEM
- {
- command = EFileManagerConnectRemoveDrive;
- txt = qtn_rd_opt_connect;
- },
- MENU_ITEM
- {
- command = EFileManagerDisconnectRemoveDrive;
- txt = qtn_rd_opt_disconnect;
- },
- MENU_ITEM
- {
- command = EFileManagerRefreshRemoteDrive;
- txt = qtn_fmgr_rd_opt_refresh;
- },
- MENU_ITEM
- {
- command = EFileManagerDelete;
- txt = qtn_fldr_delete;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerOrganise;
- cascade = r_filemanager_organise_menu;
- txt = qtn_fmgr_options_organise;
- },
- MENU_ITEM
- {
- command = EFileManagerMoveToFolder;
- txt = qtn_options_org_move_to_folder;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerCopyToFolder;
- txt = qtn_options_org_copy_to;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerMark;
- cascade = r_filemanager_mark_unmark_menu;
- txt = qtn_options_list;
- },
- MENU_ITEM
- {
- command = EFileManagerRename;
- txt = qtn_fldr_rename;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerFindFile;
- txt = qtn_fmgr_options_find_file;
- },
- MENU_ITEM
- {
- command = EFileManagerSort;
- cascade = r_filemanager_sort_menu;
- txt = qtn_fmgr_options_sort_submenu;
- },
- MENU_ITEM
- {
- command = EFileManagerSearchSort;
- cascade = r_filemanager_search_sort_menu;
- txt = qtn_fmgr_options_sort_submenu;
- },
- MENU_ITEM
- {
- command = EFileManagerReceiveViaIR;
- txt = qtn_album_cmd_receive_via_ir;
- },
- MENU_ITEM
- {
- command = EFileManagerDetails;
- cascade = r_filemanager_details_menu;
- txt = qtn_fmgr_options_memory_storage_details;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerUnlockMemoryCard;
- txt = qtn_memc_options_unlock;
- flags = EEikMenuItemSpecific;
- },
-#ifdef RD_MULTIPLE_DRIVE
- MENU_ITEM
- {
- command = EFileManagerFormatMassStorage;
- txt = qtn_fmgr_options_format_mass;
- },
-#endif // RD_MULTIPLE_DRIVE
-// MENU_ITEM
-// {
-// command = EFileManagerMemoryCardPassword;
-// cascade = r_filemanager_memory_card_password_menu;
-// txt = qtn_fmgr_options_card_password;
-// },
-// MENU_ITEM
-// {
-// command = EFileManagerUnlockMemoryCard;
-// txt = qtn_memc_options_unlock;
-// },
- MENU_ITEM
- {
- command = EAknCmdHelp;
- txt = qtn_options_help;
- },
- MENU_ITEM
- {
- command = EAknSoftkeyExit;
- txt = qtn_options_exit;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_memory_storage_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerMemoryStorageUnlock;
- txt = qtn_fmgr_unlock_memory;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerMemoryStorageDetails;
- txt = qtn_fmgr_options_memory_storage_details;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerMemoryStorageName;
- txt = qtn_fmgr_options_card_name;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerMemoryStorageRename;
- txt = qtn_fmgr_options_card_rename;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerMemoryStorageSetPassword;
- txt = qtn_fmgr_options_set_memc_passwd;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerMemoryStorageChangePassword;
- txt = qtn_fmgr_options_change_memc_passwd;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerMemoryStorageRemovePassword;
- txt = qtn_fmgr_options_remove_memc_passwd;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerMemoryStorageFormat;
- txt = qtn_fmgr_options_card_format;
- flags = EEikMenuItemSpecific;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_organise_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerNewFolder;
- txt = qtn_options_org_new_folder;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_sort_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerSortByName;
- txt = qtn_fmgr_options_sort_by_name;
- flags = EEikMenuItemRadioStart;
- },
- MENU_ITEM
- {
- command = EFileManagerSortByType;
- txt = qtn_fmgr_options_sort_by_type;
- flags = EEikMenuItemRadioMiddle;
- },
- MENU_ITEM
- {
- command = EFileManagerSortMostRecentFirst;
- txt = qtn_fmgr_options_sort_recent_first;
- flags = EEikMenuItemRadioMiddle;
- },
- MENU_ITEM
- {
- command = EFileManagerSortLargestFirst;
- txt = qtn_fmgr_options_sort_largest_first;
- flags = EEikMenuItemRadioEnd;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_search_sort_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerSortByMatch;
- txt = qtn_fmgr_options_sort_by_match;
- flags = EEikMenuItemRadioStart;
- },
- MENU_ITEM
- {
- command = EFileManagerSortByName;
- txt = qtn_fmgr_options_sort_by_name;
- flags = EEikMenuItemRadioMiddle;
- },
- MENU_ITEM
- {
- command = EFileManagerSortByType;
- txt = qtn_fmgr_options_sort_by_type;
- flags = EEikMenuItemRadioMiddle;
- },
- MENU_ITEM
- {
- command = EFileManagerSortMostRecentFirst;
- txt = qtn_fmgr_options_sort_recent_first;
- flags = EEikMenuItemRadioMiddle;
- },
- MENU_ITEM
- {
- command = EFileManagerSortLargestFirst;
- txt = qtn_fmgr_options_sort_largest_first;
- flags = EEikMenuItemRadioEnd;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_remote_drives_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerRemoveDrivesSettings;
- txt = qtn_fmgr_opt_rd_settings;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerRemoveDrivesDelete;
- txt = qtn_fmgr_opt_rd_delete_drive;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerConnectRemoveDrive;
- txt = qtn_rd_opt_connect;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerDisconnectRemoveDrive;
- txt = qtn_rd_opt_disconnect;
- flags = EEikMenuItemSpecific;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_details_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerFileDetails;
- txt = qtn_fmgr_options_details;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerFolderDetails;
- txt = qtn_fmgr_options_details;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerMoreInfoOnline;
- txt = qtn_drm_options_more_info;
- flags = EEikMenuItemSpecific;
- }
-// MENU_ITEM
-// {
-// command = EFileManagerMemoryCardDetails;
-// txt = qtn_fmgr_options_card_details;
-// },
-// MENU_ITEM
-// {
-// command = EFileManagerMemoryState;
-// txt = qtn_fmgr_options_memory_details;
-// }
- };
- }
-
-//RESOURCE MENU_PANE r_filemanager_memory_card_menu
-// {
-// items =
-// {
-// MENU_ITEM
-// {
-// command = EFileManagerMemoryCardName;
-// txt = qtn_fmgr_options_card_name;
-// },
-// MENU_ITEM
-// {
-// command = EFileManagerMemoryCardRename;
-// txt = qtn_fmgr_options_card_rename;
-// },
-// MENU_ITEM
-// {
-// command = EFileManagerMemoryCardFormat;
-// txt = qtn_fmgr_options_card_format;
-// }
-// };
-// }
-//
-//RESOURCE MENU_PANE r_filemanager_memory_card_password_menu
-// {
-// items =
-// {
-// MENU_ITEM
-// {
-// command = EFileManagerMemoryCardPasswordSet;
-// txt = qtn_fmgr_options_set_password;
-// },
-// MENU_ITEM
-// {
-// command = EFileManagerMemoryCardPasswordChange;
-// txt = qtn_fmgr_options_change_passwd;
-// },
-// MENU_ITEM
-// {
-// command = EFileManagerMemoryCardPasswordRemove;
-// txt = qtn_fmgr_options_remove_passwd;
-// }
-// };
-// }
-
-RESOURCE MENU_BAR r_filemanager_context_sensitive_menubar
- {
- titles =
- {
- MENU_TITLE
- {
- menu_pane = r_filemanager_context_sensitive_menu;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_context_sensitive_menu
- {
- items=
- {
- MENU_ITEM
- {
- command = EFileManagerOrganise;
- cascade = r_filemanager_organise_context_sensitive_menu;
- txt = qtn_fmgr_options_organise;
- },
- MENU_ITEM
- {
- command = EFileManagerDelete;
- txt = qtn_fldr_delete;
- },
- MENU_ITEM
- {
- command = EFileManagerMark;
- cascade = r_filemanager_context_sensitive_mark_unmark_menu;
- txt = qtn_options_list;
- },
- MENU_ITEM
- {
- command = EFileManagerUnlockMemoryCard;
- txt = qtn_memc_options_unlock;
- },
- MENU_ITEM
- {
- command = EFileManagerMemoryStorageFormat;
- txt = qtn_fmgr_options_card_format;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_organise_context_sensitive_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerMoveToFolder;
- txt = qtn_options_org_move_to_folder;
- },
- MENU_ITEM
- {
- command = EFileManagerCopyToFolder;
- txt = qtn_options_org_copy_to;
- }
- };
- }
-
-#ifdef RD_FILE_MANAGER_BACKUP
-/**
-* AVKON_VIEW
-* Backup view
-*/
-RESOURCE AVKON_VIEW r_filemanager_backup_view
- {
- cba = r_filemanager_softkeys_options_back__change;
- menubar = r_filemanager_backup_menubar;
- }
-
-/**
-* MENU_BAR
-* Backup menu bar
-*/
-RESOURCE MENU_BAR r_filemanager_backup_menubar
- {
- titles =
- {
- MENU_TITLE
- {
- menu_pane = r_filemanager_backup_view_menu;
- }
- };
- }
-
-RESOURCE MENU_PANE r_filemanager_backup_view_menu
- {
- items =
- {
- MENU_ITEM
- { command = EFileManagerOpen; txt = qtn_options_change; },
- MENU_ITEM
- { command = EFileManagerBackup; txt = qtn_fmgr_options_backup_now; },
- MENU_ITEM
- { command = EFileManagerRestore; txt = qtn_fmgr_options_restore; },
- MENU_ITEM
- { command = EFileManagerDeleteBackup; txt = qtn_fmgr_options_delete_backup; },
- MENU_ITEM
- { command = EAknCmdHelp; txt = qtn_options_help; },
- MENU_ITEM
- { command = EAknSoftkeyExit; txt = qtn_options_exit; }
- };
- }
-
-RESOURCE AVKON_VIEW r_filemanager_restore_view
- {
- cba = R_AVKON_SOFTKEYS_OK_CANCEL__MARK;
- menubar = R_AVKON_MENUPANE_EMPTY;
- }
-
-RESOURCE AVKON_VIEW r_filemanager_scheduled_backup_view
- {
- cba = R_AVKON_SOFTKEYS_EMPTY;
- menubar = R_AVKON_MENUPANE_EMPTY;
- }
-
-RESOURCE ARRAY r_filemanager_backup_contents_texts
- {
- items =
- {
- LBUF { txt = qtn_fmgr_backup_content_all; },
- LBUF { txt = qtn_fmgr_backup_content_settings; },
- LBUF { txt = qtn_fmgr_backup_content_messages; },
- LBUF { txt = qtn_fmgr_backup_content_contacts; },
- LBUF { txt = qtn_fmgr_backup_content_calendar; },
- LBUF { txt = qtn_fmgr_backup_content_bookmarks; },
- LBUF { txt = qtn_fmgr_backup_content_userfiles; }
- };
- }
-
-RESOURCE ARRAY r_filemanager_backup_weekday_texts
- {
- items =
- {
- LBUF { txt = qtn_week_long_monday; },
- LBUF { txt = qtn_week_long_tuesday; },
- LBUF { txt = qtn_week_long_wednesday; },
- LBUF { txt = qtn_week_long_thursday; },
- LBUF { txt = qtn_week_long_friday; },
- LBUF { txt = qtn_week_long_saturday; },
- LBUF { txt = qtn_week_long_sunday; }
- };
- }
-
-RESOURCE ARRAY r_filemanager_backup_scheduling_texts
- {
- items =
- {
- LBUF { txt = qtn_fmgr_backup_no_scheduling; },
- LBUF { txt = qtn_fmgr_backup_daily; },
- LBUF { txt = qtn_fmgr_backup_weekly; }
- };
- }
-
-#endif // RD_FILE_MANAGER_BACKUP
-
-RESOURCE MENU_PANE r_filemanager_mark_unmark_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerMarkOne;
- txt = qtn_options_list_mark_one;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerUnmarkOne;
- txt = qtn_options_list_unmark_one;
- flags = EEikMenuItemSpecific;
- },
- MENU_ITEM
- {
- command = EFileManagerMarkAll;
- txt = qtn_options_list_mark_all;
- },
- MENU_ITEM
- {
- command = EFileManagerUnmarkAll;
- txt = qtn_options_list_unmark_all;
- }
- };
- }
-RESOURCE MENU_PANE r_filemanager_context_sensitive_mark_unmark_menu
- {
- items =
- {
- MENU_ITEM
- {
- command = EFileManagerMarkOne;
- txt = qtn_options_list_mark_one;
- },
- MENU_ITEM
- {
- command = EFileManagerUnmarkOne;
- txt = qtn_options_list_unmark_one;
- },
- MENU_ITEM
- {
- command = EFileManagerMarkAll;
- txt = qtn_options_list_mark_all;
- },
- MENU_ITEM
- {
- command = EFileManagerUnmarkAll;
- txt = qtn_options_list_unmark_all;
- }
- };
- }
-
-RESOURCE MEMORYSELECTIONDIALOG r_filemanager_copy_memory_selectiondialog
- {
- softkey_1 = text_softkey_ok;
- locations =
- {
- LOCATION { root_path = text_phone_memory_root_path; },
- LOCATION { root_path = text_memory_card_root_path; }
- };
- }
-
-RESOURCE MEMORYSELECTIONDIALOG r_filemanager_move_memory_selectiondialog
- {
- softkey_1 = text_softkey_ok;
- locations =
- {
- LOCATION { root_path = text_phone_memory_root_path; },
- LOCATION { root_path = text_memory_card_root_path; }
- };
- }
-
-RESOURCE MEMORYSELECTIONDIALOG r_filemanager_find_memory_selectiondialog
- {
- title = qtn_fmgr_find_prtx;
- softkey_1 = text_softkey_ok;
- locations =
- {
- LOCATION { root_path = text_phone_memory_root_path; },
- LOCATION { root_path = text_memory_card_root_path; }
- };
- }
-
-RESOURCE FILESELECTIONDIALOG r_filemanager_find_folder_selectiondialog
- {
- title = qtn_fmgr_find_prtx;
- softkey_1_file = text_softkey_select;
- softkey_1_folder = text_softkey_open;
- softkey_2_root_level = text_softkey_cancel;
- softkey_2_subfolder = text_softkey_back;
- }
-
-RESOURCE CBA r_filemanager_softkeys_search_cancel__search
- {
- buttons =
- {
- CBA_BUTTON { id = EAknSoftkeyOk; txt = text_softkey_search; },
- CBA_BUTTON { id = EAknSoftkeyCancel; txt = text_softkey_cancel; },
- CBA_BUTTON { id = EAknSoftkeyOk; txt = text_softkey_search; }
- };
- }
-
-RESOURCE DIALOG r_filemanager_search_query
- {
- flags = EGeneralQueryFlags;
- buttons = r_filemanager_softkeys_search_cancel__search;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control = AVKON_DATA_QUERY
- {
- layout = EDataLayout;
- label = qtn_fldr_name_prmpt;
- control = EDWIN
- {
- flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
- //width = 35;
- lines = 1;
- maxlength = 35;
- };
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_find_wait_dialog
- {
- flags = EAknWaitNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items=
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EGeneralQuery;
- control= AVKON_NOTE
- {
- layout = EWaitLayout;
- singular_label = qtn_fmgr_wnote_search;
- animation = R_QGN_GRAF_WAIT_BAR_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_delete_wait_dialog
- {
- flags = EAknWaitNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items=
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EGeneralQuery;
- control= AVKON_NOTE
- {
- layout = EWaitLayout;
- singular_label = qtn_fldr_deleting_wait_note;
- imagefile = AVKON_BITMAP_FILE; // bitmap file
- imageid = EMbmAvkonQgn_note_erased;
- imagemask = EMbmAvkonQgn_note_erased_mask;
- animation = R_QGN_GRAF_WAIT_BAR_ANIM;
- };
- }
- };
- }
-//-----------------------------------------------------------------------------
-//
-// r_aknexnote_progress_note
-// For progress note.
-//
-//-----------------------------------------------------------------------------
-//
-RESOURCE DIALOG r_filemanager_progress_note_copy
- {
- flags = EAknProgressNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control = AVKON_NOTE
- {
- layout = EProgressLayout;
- singular_label = qtn_gen_note_copying;
- plural_label = qtn_gen_note_copying;
- imagefile = avkon_mbm_file_location;
- imageid = EMbmAvkonQgn_note_progress;
- imagemask = EMbmAvkonQgn_note_progress_mask;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_wait_note_copy
- {
- flags = EAknWaitNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control= AVKON_NOTE
- {
- layout = EWaitLayout;
- singular_label = qtn_gen_note_copying;
- animation = R_QGN_GRAF_WAIT_BAR_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_progress_note_move
- {
- flags = EAknProgressNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control = AVKON_NOTE
- {
- layout = EProgressLayout;
- singular_label = qtn_fldr_moving_wait_note;
- plural_label = qtn_fldr_moving_wait_note;
- imagefile = avkon_mbm_file_location;
- imageid = EMbmAvkonQgn_note_progress;
- imagemask = EMbmAvkonQgn_note_progress_mask;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_wait_note_move
- {
- flags = EAknWaitNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control= AVKON_NOTE
- {
- layout = EWaitLayout;
- singular_label = qtn_fldr_moving_wait_note;
- animation = R_QGN_GRAF_WAIT_BAR_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_wait_note_open
- {
- flags = EAknWaitNoteFlags;
- buttons = R_AVKON_SOFTKEYS_EMPTY;
- items =
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control= AVKON_NOTE
- {
- layout = EWaitLayout;
- singular_label = qtn_gen_note_opening;
- animation = R_QGN_GRAF_WAIT_BAR_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_wait_note_open_with_cancel
- {
- flags = EAknWaitNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control= AVKON_NOTE
- {
- layout = EWaitLayout;
- singular_label = qtn_gen_note_opening;
- animation = R_QGN_GRAF_WAIT_BAR_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_eject_confirm_query
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control = AVKON_CONFIRMATION_QUERY
- {
- layout = EConfirmationQueryLayout;
- bmpfile = AVKON_ICON_FILE;
- bmpid = EMbmAvkonQgn_note_info;
- bmpmask = EMbmAvkonQgn_note_info_mask;
- animation = R_QGN_NOTE_INFO_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_wait_note_process
- {
- flags = EAknWaitNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control= AVKON_NOTE
- {
- layout = EWaitLayout;
- singular_label = qtn_gen_note_processing;
- animation = R_QGN_GRAF_WAIT_BAR_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_file_receive_dialog
- {
- flags = EAknProgressNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items=
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control= AVKON_NOTE
- {
- layout = EProgressLayout;
- singular_label = qtn_ir_connecting;
- plural_label = "";
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_progress_note_with_cancel
- {
- flags = EAknProgressNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items=
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control= AVKON_NOTE
- {
- layout = EProgressLayout;
- imagefile = AVKON_ICON_FILE;
- imageid = EMbmAvkonQgn_note_progress;
- imagemask = EMbmAvkonQgn_note_progress_mask;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_progress_note
- {
- flags = EAknProgressNoteFlags;
- buttons = R_AVKON_SOFTKEYS_EMPTY;
- items=
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control= AVKON_NOTE
- {
- layout = EProgressLayout;
- imagefile = AVKON_ICON_FILE;
- imageid = EMbmAvkonQgn_note_progress;
- imagemask = EMbmAvkonQgn_note_progress_mask;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_wait_note
- {
- flags = EAknWaitNoteFlags;
- buttons = R_AVKON_SOFTKEYS_EMPTY;
- items=
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EAknNoteProgressBar;
- control= AVKON_NOTE
- {
- layout = EWaitLayout;
- imagefile = AVKON_ICON_FILE;
- imageid = EMbmAvkonQgn_note_progress;
- imagemask = EMbmAvkonQgn_note_progress_mask;
- animation = R_QGN_GRAF_WAIT_BAR_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_drive_name_query
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control= AVKON_DATA_QUERY
- {
- layout = EDataLayoutAllowEmptyInput;
- //label = qtn_memc_name_prompt;
- label = qtn_fmgr_memory_name_prompt;
- control = EDWIN
- {
- flags = EEikEdwinNoHorizScrolling|EEikEdwinOnlyASCIIChars;
- avkon_flags = EAknEditorFlagLatinInputModesOnly;
- maxlength = 11; // FAT limitation for volume name
- };
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_drive_name_query_non_western
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control= AVKON_DATA_QUERY
- {
- layout = EDataLayoutAllowEmptyInput;
- //label = qtn_memc_name_prompt;
- label = qtn_fmgr_memory_name_prompt;
- control = EDWIN
- {
- flags = EEikEdwinNoHorizScrolling;
- // Unicode chars take 2 bytes, only 5 chars fit to the name
- maxlength = 5;
- };
- };
- }
- };
- }
-
-RESOURCE CBA r_filemanager_softkeys_options_exit__open
- {
- buttons =
- {
- CBA_BUTTON { id = EAknSoftkeyOptions; txt = text_softkey_option; },
- CBA_BUTTON { id = EAknSoftkeyExit; txt = text_softkey_exit; },
- CBA_BUTTON { id = EFileManagerSelectionKey; txt = qtn_msk_open; }
- };
- }
-
-RESOURCE CBA r_filemanager_softkeys_options_exit__open_embedded
- {
- buttons =
- {
- CBA_BUTTON { id = EAknSoftkeyOptions; txt = text_softkey_option; },
- CBA_BUTTON { id = EAknSoftkeyExit; txt = text_softkey_back; },
- CBA_BUTTON { id = EFileManagerSelectionKey; txt = qtn_msk_open; }
- };
- }
-
-RESOURCE CBA r_filemanager_softkeys_options_back__open
- {
- buttons =
- {
- CBA_BUTTON { id = EAknSoftkeyOptions; txt = text_softkey_option; },
- CBA_BUTTON { id = EAknSoftkeyBack; txt = text_softkey_back; },
- CBA_BUTTON { id = EFileManagerSelectionKey; txt = qtn_msk_open; }
- };
- }
-
-RESOURCE CBA r_filemanager_softkeys_options_back__empty
- {
- buttons =
- {
- CBA_BUTTON { id = EAknSoftkeyOptions; txt = text_softkey_option; },
- CBA_BUTTON { id = EAknSoftkeyBack; txt = text_softkey_back; },
- CBA_BUTTON { id = EAknSoftkeyEmpty; txt = text_softkey_empty; }
- };
- }
-
-RESOURCE CBA r_filemanager_softkeys_context_options_back__options
- {
- buttons =
- {
- CBA_BUTTON { id = EAknSoftkeyOptions; txt = text_softkey_option;},
- CBA_BUTTON { id = EAknSoftkeyBack; txt = text_softkey_back; },
- CBA_BUTTON { id = EAknSoftkeyContextOptions; txt = text_softkey_option; }
- };
- }
-
-RESOURCE CBA r_filemanager_softkeys_options_back__change
- {
- buttons =
- {
- CBA_BUTTON { id = EAknSoftkeyOptions; txt = text_softkey_option; },
- CBA_BUTTON { id = EAknSoftkeyBack; txt = text_softkey_back; },
- CBA_BUTTON { id = EFileManagerSelectionKey; txt = qtn_msk_change; }
- };
- }
-
-
-RESOURCE TBUF r_qtn_fmgr_search_not_found { buf = qtn_fmgr_search_not_found; }
-RESOURCE TBUF r_qtn_selec_empty_list { buf = qtn_selec_empty_list; }
-RESOURCE TBUF r_qtn_query_common_conf_delete { buf = qtn_query_common_conf_delete; }
-RESOURCE TBUF r_qtn_fldr_del_items_query { buf = qtn_fldr_del_items_query; }
-RESOURCE TBUF r_qtn_fldr_del_full_fldrs_query { buf = qtn_fldr_del_full_fldrs_query; }
-RESOURCE TBUF r_qtn_fmgr_error_unsupport { buf = qtn_fmgr_error_unsupport; }
-RESOURCE TBUF r_qtn_fmgr_error_cant_open { buf = qtn_fmgr_error_cant_open; }
-RESOURCE TBUF r_qtn_fmgr_error_del_def_fldr { buf = qtn_fmgr_error_del_def_fldr; }
-RESOURCE TBUF r_qtn_fmgr_error_delete_file_open { buf = qtn_fmgr_error_delete_file_open; }
-RESOURCE TBUF r_qtn_fmgr_find_dataq_prtx { buf = qtn_fmgr_find_dataq_prtx; }
-RESOURCE TBUF r_qtn_memc_mainpage_error1 { buf = qtn_memc_mainpage_error1; }
-RESOURCE TBUF r_qtn_memc_mainpage_error2 { buf = qtn_memc_mainpage_error2; }
-RESOURCE TBUF r_qtn_memc_mainpage_error3 { buf = qtn_memc_mainpage_error3; }
-RESOURCE TBUF r_qtn_memc_mainpage_error4 { buf = qtn_memc_mainpage_error4; }
-RESOURCE TBUF r_qtn_fldr_overwrite_query { buf = qtn_fldr_overwrite_query; }
-RESOURCE TBUF r_qtn_fldr_rename_query { buf = qtn_fldr_rename_query; }
-
-RESOURCE TBUF r_qtn_ir_connecting { buf = qtn_ir_connecting; }
-RESOURCE TBUF r_qtn_fmgr_note_receive_ir { buf = qtn_fmgr_note_receive_ir; }
-RESOURCE TBUF r_qtn_fmgr_mstate_heading { buf = qtn_fmgr_mstate_heading; }
-RESOURCE TBUF r_qtn_fmgr_error_del_fldr_open_1 { buf = qtn_fmgr_error_del_fldr_open_1; }
-RESOURCE TBUF r_qtn_fmgr_error_del_fldr_open_se { buf = qtn_fmgr_error_del_fldr_open_se; }
-RESOURCE TBUF r_qtn_fldr_cant_delete_fldr_open { buf = qtn_fldr_cant_delete_fldr_open; }
-RESOURCE TBUF r_qtn_options_send_via { buf = qtn_options_send_via; }
-RESOURCE TBUF r_qtn_fldr_item_cannot_be_moved { buf = qtn_fldr_item_cannot_be_moved; }
-RESOURCE TBUF r_qtn_fmgr_find_prtx { buf = qtn_fmgr_find_prtx; }
-RESOURCE TBUF r_text_softkey_back { buf = text_softkey_back; }
-RESOURCE TBUF r_qtn_fldr_cant_rename_item { buf = qtn_fldr_cant_rename_item; }
-RESOURCE TBUF r_qtn_fldr_item_cannot_be_copied { buf = qtn_fldr_item_cannot_be_copied; }
-RESOURCE TBUF r_qtn_fldr_cant_delete_item { buf = qtn_fldr_cant_delete_item; }
-RESOURCE TBUF r_qtn_drm_mos_deleted { buf = qtn_drm_mos_deleted; }
-RESOURCE TBUF r_qtn_drm_mo_deleted { buf = qtn_drm_mo_deleted; }
-RESOURCE TBUF r_qtn_memc_memorycard_read_only { buf = qtn_memc_memorycard_read_only; }
-
-#ifdef __KEEP_DRM_CONTENT_ON_PHONE
-RESOURCE TBUF r_qtn_drm_info_move_one_forbid { buf = qtn_drm_info_move_one_forbid; }
-RESOURCE TBUF r_qtn_drm_info_move_many_forbid { buf = qtn_drm_info_move_many_forbid; }
-RESOURCE TBUF r_qtn_drm_info_copy_one_forbid { buf = qtn_drm_info_copy_one_forbid; }
-RESOURCE TBUF r_qtn_drm_info_copy_many_forbid { buf = qtn_drm_info_copy_many_forbid; }
-RESOURCE TBUF r_qtn_drm_info_move_folder_forbid { buf = qtn_drm_info_move_folder_forbid; }
-RESOURCE TBUF r_qtn_drm_info_copy_folder_forbid { buf = qtn_drm_info_copy_folder_forbid; }
-RESOURCE TBUF r_qtn_drm_query_copy_forbidden { buf = qtn_drm_query_copy_forbidden; }
-RESOURCE TBUF r_qtn_drm_query_move_forbidden { buf = qtn_drm_query_move_forbidden; }
-#endif
-
-// Eject texts
-RESOURCE TBUF r_qtn_conf_eject { buf = qtn_memc_conf_eject; }
-RESOURCE TBUF r_qtn_wait_eject { buf = qtn_memc_wait_eject; }
-RESOURCE TBUF r_qtn_info_eject { buf = qtn_memc_info_eject; }
-// Rename texts
-RESOURCE TBUF r_qtn_mmc_default_name { buf = qtn_memc_mmc_default_label; }
-RESOURCE TBUF r_qtn_invalid_drive_name { buf = qtn_memc_name_note1; }
-RESOURCE TBUF r_qtn_drive_name_changed { buf = qtn_memc_name_note2; }
-// Completed texts
-RESOURCE TBUF r_qtn_backup_completed { buf = qtn_memc_backup_completed; }
-RESOURCE TBUF r_qtn_restore_completed { buf = qtn_memc_restore_completed; }
-RESOURCE TBUF r_qtn_format_completed { buf = qtn_memc_format_completed; }
-// Confirm texts
-RESOURCE TBUF r_qtn_confirm_backup_text { buf = qtn_memc_backup_query1; }
-RESOURCE TBUF r_qtn_confirm_backup_text2 { buf = qtn_memc_backup_query2; }
-RESOURCE TBUF r_qtn_confirm_restore_text { buf = qtn_memc_restore_query1; }
-RESOURCE TBUF r_qtn_confirm_format_text { buf = qtn_memc_format_query1; }
-RESOURCE TBUF r_qtn_confirm_backup_level1 { buf = qtn_memc_backup_query3; }
-RESOURCE TBUF r_qtn_confirm_format_text2 { buf = qtn_memc_format_query2; }
-// Error texts
-RESOURCE TBUF r_qtn_files_not_backupped { buf = qtn_memc_backup_info1; }
-RESOURCE TBUF r_qtn_one_file_not_backupped { buf = qtn_memc_backup_info2; }
-RESOURCE TBUF r_qtn_files_not_restored { buf = qtn_memc_restore_info1; }
-RESOURCE TBUF r_qtn_one_file_not_restored { buf = qtn_memc_restore_info2; }
-RESOURCE TBUF r_qtn_backup_no_space { buf = qtn_memc_backup_enoughspace; }
-RESOURCE TBUF r_qtn_restore_no_space { buf = qtn_memc_restore_enoughspace; }
-RESOURCE TBUF r_qtn_corrupt { buf = qtn_memc_memorycard_error; }
-RESOURCE TBUF r_qtn_memorycard_readonly { buf = qtn_memc_memorycard_read_only; }
-RESOURCE TBUF r_qtn_critical_error { buf = qtn_memc_gen_error; }
-RESOURCE TBUF r_qtn_format_files_in_use { buf = qtn_memc_format_card_used; }
-// Password texts
-RESOURCE TBUF r_qtn_passwords_wrong_text { buf = qtn_memc_change_pwd_error1; }
-RESOURCE TBUF r_qtn_unlock_pwd_wrong_text { buf = qtn_memc_unlock_pwd_error; }
-RESOURCE TBUF r_qtn_password_set_text { buf = qtn_memc_set_password_info; }
-RESOURCE TBUF r_qtn_password_changed_text { buf = qtn_memc_change_pwd_info; }
-RESOURCE TBUF r_qtn_password_text { buf = qtn_memc_remove_pwd_prompt; }
-RESOURCE TBUF r_qtn_unlock_password_text { buf = qtn_memc_unlock_pwd_prompt; }
-RESOURCE TBUF r_qtn_password_old_text { buf = qtn_memc_change_pwd_prompt1; }
-RESOURCE TBUF r_qtn_password_remove_text { buf = qtn_memc_remove_pwd_query; }
-RESOURCE TBUF r_qtn_password_removed_text { buf = qtn_memc_remove_pwd_info; }
-// Progress texts
-RESOURCE TBUF r_qtn_format_inprogress { buf = qtn_memc_format_inprogress; }
-RESOURCE TBUF r_qtn_backup_inprogress { buf = qtn_memc_backup_inprogress; }
-RESOURCE TBUF r_qtn_restore_inprogress { buf = qtn_memc_restore_inprogress; }
-// Remote storage error texts
-RESOURCE TBUF r_qtn_rd_query_delete_drive { buf = qtn_rd_query_delete_drive; }
-RESOURCE TBUF r_qtn_fmgr_empty_remote_drive { buf = qtn_fmgr_empty_remote_drive; }
-RESOURCE TBUF r_qtn_fmgr_infonote_unable_open_remotely
- { buf = qtn_fmgr_infonote_unable_open_remotely; }
-RESOURCE TBUF r_qtn_rd_error_max_drives { buf = qtn_rd_error_max_drives; }
-
-#ifdef RD_FILE_MANAGER_BACKUP
-RESOURCE TBUF r_qtn_fmgr_backup_title { buf = qtn_fmgr_backup_title; }
-RESOURCE TBUF r_qtn_fmgr_backup_contents { buf = qtn_fmgr_backup_contents; }
-RESOURCE TBUF r_qtn_fmgr_backup_scheduling { buf = qtn_fmgr_backup_scheduling; }
-RESOURCE TBUF r_qtn_fmgr_backup_weekday { buf = qtn_fmgr_backup_weekday; }
-RESOURCE TBUF r_qtn_fmgr_backup_time { buf = qtn_fmgr_backup_time; }
-
-RESOURCE TBUF r_qtn_fmgr_backup_content_all { buf = qtn_fmgr_backup_content_all; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_selected { buf = qtn_fmgr_backup_content_selected; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_settings { buf = qtn_fmgr_backup_content_settings; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_messages { buf = qtn_fmgr_backup_content_messages; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_contacts { buf = qtn_fmgr_backup_content_contacts; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_calendar { buf = qtn_fmgr_backup_content_calendar; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_bookmarks { buf = qtn_fmgr_backup_content_bookmarks; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_userfiles { buf = qtn_fmgr_backup_content_userfiles; }
-
-RESOURCE TBUF r_qtn_fmgr_restore_title { buf = qtn_fmgr_restore_title; }
-RESOURCE TBUF r_qtn_fmgr_restore_settings { buf = qtn_fmgr_restore_settings; }
-RESOURCE TBUF r_qtn_fmgr_restore_messages { buf = qtn_fmgr_restore_messages; }
-RESOURCE TBUF r_qtn_fmgr_restore_contacts { buf = qtn_fmgr_restore_contacts; }
-RESOURCE TBUF r_qtn_fmgr_restore_calendar { buf = qtn_fmgr_restore_calendar; }
-RESOURCE TBUF r_qtn_fmgr_restore_bookmarks { buf = qtn_fmgr_restore_bookmarks; }
-RESOURCE TBUF r_qtn_fmgr_restore_userfiles { buf = qtn_fmgr_restore_userfiles; }
-
-RESOURCE TBUF r_qtn_fmgr_backup_no_scheduling { buf = qtn_fmgr_backup_no_scheduling; }
-RESOURCE TBUF r_qtn_fmgr_backup_daily { buf = qtn_fmgr_backup_daily; }
-RESOURCE TBUF r_qtn_fmgr_backup_weekly { buf = qtn_fmgr_backup_weekly; }
-
-RESOURCE TBUF r_qtn_fmgr_restore_no_backups { buf = qtn_fmgr_restore_no_backups; }
-RESOURCE TBUF r_qtn_fmgr_restore_space_error { buf = qtn_fmgr_restore_space_error; }
-
-RESOURCE TBUF r_qtn_fmgr_scheduled_backup_query { buf = qtn_fmgr_scheduled_backup_query; }
-RESOURCE TBUF r_qtn_fmgr_scheduled_backup_progress { buf = qtn_fmgr_scheduled_backup_progress; }
-RESOURCE TBUF r_qtn_fmgr_backup_tight_memory { buf = qtn_fmgr_backup_tight_memory; }
-RESOURCE TBUF r_qtn_fmgr_backup_destination_full { buf = qtn_fmgr_backup_destination_full; }
-RESOURCE TBUF r_qtn_fmgr_select_backup_destination { buf = qtn_fmgr_select_backup_destination; }
-RESOURCE TBUF r_qtn_fmgr_scheduled_backup_error { buf = qtn_fmgr_scheduled_backup_error; }
-RESOURCE TBUF r_qtn_fmgr_backup_query_exists { buf = qtn_fmgr_backup_query_exists; }
-RESOURCE TBUF r_qtn_fmgr_progress_preparing_backup { buf = qtn_fmgr_progress_preparing_backup; }
-RESOURCE TBUF r_qtn_fmgr_backup_query { buf = qtn_fmgr_backup_query; }
-RESOURCE TBUF r_qtn_fmgr_restore_query { buf = qtn_fmgr_restore_query; }
-
-RESOURCE TBUF r_qtn_fmgr_progress_preparing_restore { buf = qtn_fmgr_progress_preparing_restore; }
-RESOURCE TBUF r_qtn_fmgr_error_corrupted_backup_file
- { buf = qtn_fmgr_error_corrupted_backup_file; }
-RESOURCE TBUF r_qtn_fmgr_error_backup_memorycard_not_available
- { buf = qtn_fmgr_error_backup_memorycard_not_available; }
-
-#endif // RD_FILE_MANAGER_BACKUP
-
-RESOURCE TBUF r_qtn_fldr_name_prmpt { buf = qtn_fldr_name_prmpt; }
-RESOURCE TBUF r_qtn_fldr_item_name_prmpt { buf = qtn_fldr_item_name_prmpt; }
-
-#ifdef RD_MULTIPLE_DRIVE
-RESOURCE TBUF r_qtn_memc_mass_storage_corrupted { buf = qtn_memc_mass_storage_corrupted; }
-RESOURCE TBUF r_qtn_memc_mass_storage_in_use { buf = qtn_memc_mass_storage_in_use; }
-RESOURCE TBUF r_qtn_memc_not_available { buf = qtn_memc_not_available; }
-
-RESOURCE TBUF r_qtn_memc_conf_eject_multiple { buf = qtn_memc_conf_eject_multiple; }
-RESOURCE TBUF r_qtn_memc_conf_eject_multiple_defaultname { buf = qtn_memc_conf_eject_multiple_defaultname; }
-
-RESOURCE TBUF r_qtn_memc_info_eject_multiple { buf = qtn_memc_info_eject_multiple; }
-RESOURCE TBUF r_qtn_memc_info_eject_multiple_defaultname { buf = qtn_memc_info_eject_multiple_defaultname; }
-
-RESOURCE TBUF r_qtn_memc_unlock_password_multiple { buf = qtn_memc_unlock_password_multiple; }
-RESOURCE TBUF r_qtn_memc_unlock_password_multiple_defaultname { buf = qtn_memc_unlock_password_multiple_defaultname; }
-
-RESOURCE TBUF r_qtn_memc_multiple_memc_read_only { buf = qtn_memc_multiple_memc_read_only; }
-RESOURCE TBUF r_qtn_memc_memory_card_corrupted_multiple { buf = qtn_memc_memory_card_corrupted_multiple; }
-
-RESOURCE TBUF r_qtn_fmgr_format_mass_query1 { buf = qtn_fmgr_format_mass_query1; }
-RESOURCE TBUF r_qtn_fmgr_mass_format_inprogress { buf = qtn_fmgr_mass_format_inprogress; }
-RESOURCE TBUF r_qtn_fmgr_mass_format_completed { buf = qtn_fmgr_mass_format_completed; }
-RESOURCE TBUF r_qtn_fmgr_format_mass_query2 { buf = qtn_fmgr_format_mass_query2; }
-#endif // RD_MULTIPLE_DRIVE
-
-RESOURCE TBUF r_qtn_fmgr_scheduled_backup_cancelled_ps { buf = qtn_fmgr_scheduled_backup_cancelled_ps; }
-
-RESOURCE TBUF r_qtn_fmgr_free_memory_var_units { buf = qtn_fmgr_free_memory_var_units; }
-RESOURCE TBUF r_qtn_fmgr_units_byte { buf = qtn_fmgr_units_byte; }
-RESOURCE TBUF r_qtn_fmgr_units_kilobyte { buf = qtn_fmgr_units_kilobyte; }
-RESOURCE TBUF r_qtn_fmgr_units_megabyte { buf = qtn_fmgr_units_megabyte; }
-RESOURCE TBUF r_qtn_fmgr_units_gigabyte { buf = qtn_fmgr_units_gigabyte; }
-
-RESOURCE TBUF r_qtn_memlo_not_enough_memory_card_name { buf = qtn_memlo_not_enough_memory_card_name; }
-RESOURCE TBUF r_qtn_memlo_not_enough_memory_card_defaultname { buf = qtn_memlo_not_enough_memory_card_defaultname; }
-RESOURCE TBUF r_qtn_memlo_not_enough_mass_memory { buf = qtn_memlo_not_enough_mass_memory; }
-RESOURCE TBUF r_qtn_memlo_not_enough_device_memory { buf = qtn_memlo_not_enough_device_memory; }
-
-RESOURCE TBUF r_qtn_fmgr_confirm_memory_name_changed { buf = qtn_fmgr_confirm_memory_name_changed; }
-RESOURCE TBUF r_qtn_fmgr_usb_memory_format_query { buf = qtn_fmgr_usb_memory_format_query; }
-RESOURCE TBUF r_qtn_fmgr_formatting_memory_progress { buf = qtn_fmgr_formatting_memory_progress; }
-RESOURCE TBUF r_qtn_fmgr_memory_in_use_format { buf = qtn_fmgr_memory_in_use_format; }
-RESOURCE TBUF r_qtn_fmgr_delete_backup_title { buf = qtn_fmgr_delete_backup_title; }
-RESOURCE TBUF r_qtn_fmgr_delete_backup_query { buf = qtn_fmgr_delete_backup_query; }
-RESOURCE TBUF r_qtn_fmgr_usb_memory_default_name { buf = qtn_fmgr_usb_memory_default_name; }
-
-RESOURCE TBUF r_qtn_fmgr_system_not_ready { buf = qtn_hs_operation_failed_no_disk ; }
-RESOURCE TBUF r_qtn_fmgr_file_size_too_large { buf = qtn_http_err_413; }
-
-// End of File
--- a/filemanager/App/data/FileManager_reg.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2004-2006 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 project FileManager
-*
-*/
-
-
-#include <appinfo.rh>
-#include <data_caging_paths_strings.hrh>
-#include <filemanager.rsg>
-#include "FileManagerUID.h"
-
-UID2 KUidAppRegistrationResourceFile
-UID3 KFileManagerUID3
-
-RESOURCE APP_REGISTRATION_INFO
- {
- app_file = "FileManager";
- localisable_resource_file = APP_RESOURCE_DIR"\\FileManager";
- localisable_resource_id = R_FILEMANAGER_LOCALISABLE_APP_INFO;
- }
-
-// End of File
--- a/filemanager/App/data/filemanager_caption.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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 project FileManager
-*
-*/
-
-
-// RESOURCE IDENTIFIER
-NAME FMGC // 4 letter ID
-
-// INCLUDES
-#include <apcaptionfile.rh>
-#include <filemanager.loc>
-
-
-// RESOURCE DEFINITIONS
-// ---------------------------------------------------------
-//
-// CAPTION_DATA
-// Long and short caption for File Mgr app.
-//
-// ---------------------------------------------------------
-//
-RESOURCE CAPTION_DATA
- {
- caption = qtn_apps_fmgr_list;
- shortcaption = qtn_apps_fmgr_grid;
- }
-
-// End of File
--- a/filemanager/App/inc/CFileManagerAppUi.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,422 +0,0 @@
-/*
-* Copyright (c) 2002-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: File Manager application UI class
-*
-*/
-
-
-
-#ifndef CFILEMANAGERAPPUI_H
-#define CFILEMANAGERAPPUI_H
-
-// INCLUDES
-#include <aknViewAppUi.h> // CAknViewAppUi
-#include <TFileManagerDriveInfo.h>
-#include <ssm/ssmstateawaresession.h>
-
-#include "MFileManagerSchBackupObserver.h"
-
-// FORWARD DECLARATIONS
-class CAknNavigationControlContainer;
-class CAknTitlePane;
-class CAknNavigationDecorator;
-class CSendUi;
-class CAiwGenericParamList;
-class CFileManagerIRReceiver;
-class MFileManagerProcessObserver;
-class CFileManagerTaskScheduler;
-class CFileManagerSchBackupHandler;
-
-
-// CLASS DECLARATION
-/**
- * FileManager application UI class.
- * An object of this class is created by the Symbian OS framework by a call to
- * CFileManagerDocument::CreateAppUiL(). The application UI object creates
- * and owns the application's views and handles system commands selected
- * from the menu.
- */
-class CFileManagerAppUi : public CAknViewAppUi,
- public MCoeForegroundObserver,
- public MFileManagerSchBackupObserver
- {
- public: // Constants and types
- static const TUid KFileManagerMainViewId;
- static const TUid KFileManagerMemoryStoreViewId;
- static const TUid KFileManagerFoldersViewId;
- static const TUid KFileManagerSearchResultsViewId;
- static const TUid KFileManagerBackupViewId;
- static const TUid KFileManagerRestoreViewId;
-
- public: // Constructors and destructor
- /**
- * Standard C++ constructor.
- */
- CFileManagerAppUi();
-
- /**
- * Destructor.
- */
- ~CFileManagerAppUi();
-
- /**
- * Constructs the CFileManagerAppUi class.
- */
- void ConstructL();
-
- public:
- /**
- * Activates folders view if it is not already
- * activated.
- * @since 2.0
- * @return ETrue if activated
- * EFalse if view already activated
- */
- TBool ActivateFoldersViewL();
-
- /**
- * Closes folders view and goes back to view in which the
- * application was before folders view was activated.
- * @since 2.0
- */
- void CloseFoldersViewL();
-
- /**
- * Activates search results view if it is not already
- * activated.
- * @since 2.0
- */
- void ActivateSearchResultsViewL();
-
- /**
- * Closes search results view and goes back to view in which
- * the application was before search results view was
- * activated
- * @since 2.0
- */
- void CloseSearchResultsViewL();
-
- /**
- * Restores the default title of application to title pane.
- * @since 2.0
- */
- void RestoreDefaultTitleL();
- /**
- * Returns the CSendUi2 of this application.
- *
- * @since 3.0
- * @return The CSendUi2 of this application.
- */
- CSendUi& SendUiL();
- /**
- * This is called if resource is changed. Needed for skin feature
- *
- * @since 2.0
- */
- void HandleResourceChangeL(TInt aType);
-
- /**
- * Is application foreground
- *
- * @since 2.0
- * @return ETrue if application is foreground
- * EFalse if application is not foreground
- */
- TBool IsFmgrForeGround();
-
- /**
- * Activates main view
- * activated.
- * @since 3.1
- */
- void ActivateMainViewL();
-
- /**
- * Activates memory store view
- * activated.
- * @since 3.1
- */
- void ActivateMemoryStoreViewL();
-
- /**
- * Closes memory store view and goes back to main view
- * @since 3.1
- */
- void CloseMemoryStoreViewL();
-
- /**
- * Gets reference to drive info
- * @since 3.1
- */
- TFileManagerDriveInfo& DriveInfo();
-
- /**
- * Activates remote drive settings view
- * @since 3.1
- */
- void ActivateRemoteDriveSettingsViewL(
- const TDesC& aDriveName = KNullDesC );
-
-#ifdef RD_FILE_MANAGER_BACKUP
- /**
- * Activates backup view if not already active
- * @since 3.1
- */
- void ActivateBackupViewL();
-
- /**
- * Closes backup view and goes back to main view
- * @since 3.1
- */
- void CloseBackupViewL();
-
- /**
- * Activates restore view if not already active
- *
- * @since 3.1
- * @param aDeleteBackup Indicates if delete backup selection is used.
- */
- void ActivateRestoreViewL( TBool aDeleteBackup = EFalse );
-
- /**
- * Closes restore view and goes back to backup view
- * @since 3.1
- */
- void CloseRestoreViewL();
-
- /**
- * Starts scheduled backup
- */
- void StartSchBackupL();
-
- /**
- * Gets task scheduler
- */
- CFileManagerTaskScheduler& TaskSchedulerL();
-
- /**
- * Gets scheduled backup handler
- */
- CFileManagerSchBackupHandler& SchBackupHandlerL();
-#endif // RD_FILE_MANAGER_BACKUP
-
- /**
- * Activates IR receive
- * @since 3.1
- */
- void StartIRReceiveL( MFileManagerProcessObserver& aObserver );
-
- /**
- * Stops IR receive
- * @since 3.1
- */
- void StopIRReceive();
-
- /**
- * Sets title
- * @since 3.1
- */
- void SetTitleL( const TDesC& aTitle );
-
- /**
- * Sets title
- * @since 3.1
- */
- void SetTitleL( const TInt aTitle );
-
- /**
- * Checks if view is file manager based view
- * @since 3.1
- */
- TBool IsFileManagerView( const TUid aViewUid );
-
- /**
- * Informs active view to update its cba
- * @since 3.2
- */
- void NotifyCbaUpdate();
-
- /**
- * Processes AIW input parameters
- * @since 5.0
- */
- void ProcessAiwParamListL( const CAiwGenericParamList& aInParams );
-
- /**
- * Indicates are all required input params received
- * @since 5.0
- */
- TBool WaitingForInputParams() const;
-
- /**
- * Exits the embedded open application if needed
- * @since 5.0
- */
- void ExitEmbeddedAppIfNeededL();
-
- /**
- * Checks is search view open
- * @since 5.0
- */
- TBool IsSearchViewOpen() const;
-
- /**
- * Save the time when backup/restore started.
- * @since 5.0
- */
- void BackupOrRestoreStarted();
-
- /**
- * Save the time when backup/restore ended.
- * @since 5.0
- */
- void BackupOrRestoreEnded();
-
- /**
- * Returns the time when backup/restore started.
- * @since 5.0
- */
- TTime BackupOrRestoreStartTime() const;
-
- /**
- * Returns the time when backup/restore ended.
- * @since 5.0
- */
- TTime BackupOrRestoreEndTime() const;
-
- /**
- * Resets the time when backup/restore start and end times.
- * @since 5.0
- */
- void ResetBackupOrRestoreEndTime();
-
- /**
- * after startup finish, the system state will get normal, backup/restore need check the status before get started.
- * @since 5.2
- * @return ETrue if system state is normal, EFalse if not
- */
- TBool IsSystemStateNormal() const;
-
- public: // MCoeForegroundObserver
-
- /** Handles the application coming to the foreground. */
- void HandleGainingForeground();
- /** Handles the application going into the background. */
- void HandleLosingForeground();
-
- public: // From CAknViewAppUi
- /**
- * @see CAknViewAppUi
- */
- void HandleViewDeactivation( const TVwsViewId &aViewIdToBeDeactivated,
- const TVwsViewId &aNewlyActivatedViewId );
-
- /**
- * @see CAknViewAppUi
- */
- void HandleCommandL( TInt aCommand );
-
- /**
- * From CAknViewAppUi, called when screen layout changes
- */
- void HandleScreenDeviceChangedL();
-
- /**
- * @see CAknViewAppUi
- */
- TErrorHandlerResponse HandleError( TInt aError,
- const SExtendedError& aExtErr, TDes& aErrorText, TDes& aContextText );
-
- /**
- * @see CAknViewAppUi
- */
- TBool ProcessCommandParametersL(
- TApaCommand aCommand,
- TFileName& aDocumentName,
- const TDesC8& aTail );
-
-#ifdef RD_FILE_MANAGER_BACKUP
- /**
- * @see CAknViewAppUi
- */
- void ProcessMessageL( TUid aUid, const TDesC8& aParams );
-#endif // RD_FILE_MANAGER_BACKUP
-
- public: // From MFileManagerSchBackupObserver
- /**
- * @see MFileManagerSchBackupObserver
- */
- void SchBackupFinishedL( TInt aError );
-
- private:
- /** Deletes IR receive after timeout. */
- static TInt DeleteIRReceiveCB( TAny* aPtr );
-
- /** Informs active view when screen device has changed. */
- void NotifyViewScreenDeviceChanged();
-
- void SetFolderToOpenAtStartup(
- const TDesC& aFullPath, TInt aSortMode );
-
- void OpenFolderViewAtStartupL();
-
- void CreateAndActivateLocalViewL(
- TUid aViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage );
-
- void CreateAndActivateLocalViewL( TUid aViewId );
-
- private: // Data
- /// Ref: Title pane of the application
- CAknTitlePane* iTitlePane;
- // Own: CSendAppUi for send menu item and sending files
- CSendUi* iSendUi;
- /// Uid of currently active view
- TUid iActiveView;
- /// Flag to indicate if search view is open
- TBool iSearchViewOpen;
- // For some reason IsForeGround() does not return correct state of the application
- // so own boolean is updated according MCoeForegroundObserver callbacks.
- TBool iForeGround;
- // Own: Infrared receiver for receive via IR functionality
- CFileManagerIRReceiver* iIRReceiver;
- // Own: Callback to delete CFileManagerIrReceiver
- CAsyncCallBack* iIRDeleteCB;
- // Own: Drive info
- TFileManagerDriveInfo iDriveInfo;
- // Task scheduler
- CFileManagerTaskScheduler* iTaskScheduler;
- // Handler for scheduled backup
- CFileManagerSchBackupHandler* iSchBackupHandler;
- // Flag to indicate if started for scheduled backup only
- TBool iSchBackupStandalone;
- // Indicates the folder to be opened at startup
- TFileName iFolderToOpenAtStartup;
- // Indicates the folder level at startup when the app is embedded
- TInt iInitialFolderLevel;
- // Indicates the parameter ready status
- TBool iWaitingForParams;
-
- // Own: Stores the start time
- TTime iManualBackupOrRestoreStarted;
- // Own: Stores the end time
- TTime iManualBackupOrRestoreEnded;
-
- // State aware session.
- RSsmStateAwareSession iSAS;
-
- };
-
-#endif // CFILEMANAGERAPPUI_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerApplication.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: File Manager application class
-*
-*/
-
-
-#ifndef CFILEMANAGERAPP_H
-#define CFILEMANAGERAPP_H
-
-// INCLUDES
-#include <aknapp.h> // CAknApplication
-
-// CLASS DECLARATION
-
-/**
- * FileManager application class.
- * This class is created by the Symbian OS framework by a call to
- * NewApplication() function when the application is started. The
- * main purpose of the application class is to create the
- * application-specific document object (CFileManagerDocument in
- * this case) via a call to virtual CreateDocumentL().
- */
-class CFileManagerApplication : public CAknApplication
- {
- public: // Constructors and destructor
-
- /**
- * Standard C++ constructor.
- */
- CFileManagerApplication();
-
- /**
- * Destructor.
- */
- ~CFileManagerApplication();
-
- public: // From CAknApplication
- /**
- * Creates the FileManager document object (CFileManagerDocument).
- * Called by the application framework.
- *
- * @return New FileManager document object (CFileManagerDocument).
- */
- CApaDocument* CreateDocumentL();
-
- /**
- * @return the UID of this application.
- */
- TUid AppDllUid() const;
-
- };
-
-#endif // CFILEMANAGERAPP_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerBackupView.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: View for backup settings
-*
-*/
-
-
-
-#ifndef C_FILEMANAGERBACKUPVIEW_H
-#define C_FILEMANAGERBACKUPVIEW_H
-
-
-// INCLUDES
-#include <aknview.h>
-#include "CFileManagerViewBase.h"
-
-
-// CLASS DECLARATION
-/**
- * This class is used for backup settings view
- *
- * @since S60 3.1
- */
-class CFileManagerBackupView : public CFileManagerViewBase
- {
-
-public: // Constructors and destructor
- /**
- * Two-phased constructor.Leaves created view
- * to cleanup stack.
- *
- * @return Newly constructed view
- */
- static CFileManagerBackupView* NewLC();
-
- /**
- * Destructor.
- */
- ~CFileManagerBackupView();
-
-public: // From CFileManagerViewBase
- /**
- * @see CFileManagerViewBase
- */
- void DirectoryChangedL();
-
- /**
- * @see CFileManagerViewBase
- */
- CFileManagerContainerBase* CreateContainerL();
-
- /**
- * @see CFileManagerViewBase
- */
- void NotifyForegroundStatusChange( TBool aForeground );
-
-private: // From CAknView
- /**
- * @see CAknView
- */
- void DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- /**
- * @see CAknView
- */
- void DoDeactivate();
-
- /**
- * @see CAknView
- */
- TUid Id() const;
-
- /**
- * @see CAknView
- */
- void HandleCommandL( TInt aCommand );
-
- /**
- * @see CAknView
- */
- void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
-
-private: // New functions
- /**
- * Handles change command
- */
- void CmdChangeL();
-
- /**
- * Handles backup command
- */
- void CmdBackupL();
-
- /**
- * Handles restore command
- */
- void CmdRestoreL();
-
- /**
- * Changes backup contents
- */
- void ChangeContentsL();
-
- /**
- * Changes backup scheduling
- */
- void ChangeSchedulingL();
-
- /**
- * Changes backup weekday
- */
- void ChangeWeekdayL();
-
- /**
- * Changes backup time
- */
- void ChangeTimeL();
-
- /**
- * Changes backup target drive
- */
- void ChangeTargetDriveL();
-
- /**
- * Handles command back
- */
- void CmdBackL();
-
- /**
- * Updates schedule state
- */
- void UpdateScheduleL();
-
- /**
- * Refreshes all settings
- */
- void RefreshSettingsL();
-
- /**
- * Handles delete backup command
- */
- void CmdDeleteBackupL();
-
- /**
- * Filters backup menu items.
- *
- * @param aMenuPane Menu instance to be filtered.
- */
- void BackupMenuFilteringL( CEikMenuPane& aMenuPane );
-
-private:
- /**
- * C++ default constructor.
- */
- CFileManagerBackupView();
-
-private: // Data
-
- };
-
-#endif // C_FILEMANAGERBACKUPVIEW_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerContainerBase.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,275 +0,0 @@
-/*
-* Copyright (c) 2006 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 all file manager containers
-*
-*/
-
-
-#ifndef CFILEMANAGERCONTAINERBASE_H
-#define CFILEMANAGERCONTAINERBASE_H
-
-
-// INCLUDES
-#include <coecntrl.h>
-#include <badesca.h>
-#include <eiklbo.h>
-#include <eikcmobs.h>
-
-
-// FORWARD DECLARATIONS
-class CEikTextListBox;
-
-
-// CLASS DECLARATION
-/**
- * Base class for all containers in File Manager
- */
-class CFileManagerContainerBase : public CCoeControl,
- public MEikListBoxObserver,
- public MCoeControlObserver,
- public MEikCommandObserver,
- public MListBoxSelectionObserver
- {
- public: // destructor
- /**
- * Destructor.
- */
- ~CFileManagerContainerBase();
-
- protected: // MEikListBoxObserver
- void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType );
-
- protected: // MCoeControlObserver
- void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
-
- protected: // From CCoeControl
- /**
- * @see CCoeControl
- */
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
-
- /**
- * @see CCoeControl
- */
- void SizeChanged();
-
- /**
- * @see CCoeControl
- */
- TInt CountComponentControls() const;
-
- /**
- * @see CCoeControl
- */
- CCoeControl* ComponentControl( TInt aIndex ) const;
-
- /**
- * @see CCoeControl
- */
- void FocusChanged( TDrawNow aDrawNow );
-
- /**
- * @see CCoeControl
- */
- void GetHelpContext( TCoeHelpContext& aContext ) const;
-
- public: // From MEikCommandObserver
- /**
- * @see MEikCommandObserver
- */
- void ProcessCommandL( TInt aCommandId );
-
- public: // New functions
- /**
- * Sets list empty and removes empty text until refreshed.
- */
- virtual void SetListEmptyL();
-
- /**
- * Stores the focus, so when control is reseted, focus can
- * be set back to current position.
- *
- * @param aFocusedIndex index to be stored
- */
- void SetIndex( TInt aFocusedIndex );
-
- /**
- * Sets text array.
- */
- void SetTextArray( MDesCArray* aArray );
-
- /**
- * Sets help context.
- */
- void SetHelpContext( const TDesC& aHelpContext );
-
- /**
- * Sets empty text.
- */
- void SetEmptyTextL( TInt aTextId );
-
- /**
- * Refreshes the container.
- * @param aFocusedIndex Index of the item that will be focused
- * after refresh.
- */
- virtual void RefreshListL( TInt aFocusedIndex );
-
- /**
- * Gets selection mode status
- */
- TBool SelectionModeEnabled() const;
-
- /**
- * Updates cba
- */
- virtual void UpdateCba();
-
- /**
- * Gets index of current list item
- * @return Index of current list item or KErrNotFound if list is empty.
- */
- virtual TInt ListBoxCurrentItemIndex();
-
- /**
- * Gets number of list items
- * @return Number of list items.
- */
- virtual TInt ListBoxNumberOfItems();
-
- /**
- * Gets indexes of selection
- * @return Array of selected indexes. Ownership is not transferred.
- */
- virtual const CArrayFix< TInt >* ListBoxSelectionIndexes();
-
- /**
- * Gets number of selected list items
- * @return Number of selected list items.
- */
- virtual TInt ListBoxSelectionIndexesCount();
-
- /**
- * Toggles list item selection status
- * @param aIndex Index of list item.
- */
- virtual void ListBoxToggleItemL( TInt aIndex );
-
- /**
- * Checks list item selection status
- * @param aIndex Index of list item.
- * @return ETrue if item is selected. Otherwise EFalse.
- */
- virtual TBool ListBoxIsItemSelected( TInt aIndex );
-
- /**
- * Selects all list items
- */
- virtual void ListBoxSelectAllL();
-
- /**
- * Clears list selection
- */
- virtual void ListBoxClearSelection();
-
- /**
- * Sets text showm in empty list view.
- * @param aText Text to be shown
- */
- virtual void ListBoxSetTextL( const TDesC& aText );
-
- /**
- * Checks is search field visible
- * @return ETrue if search field is visible. Otherwise EFalse.
- */
- virtual TBool IsSearchFieldVisible() const;
-
- /**
- * Enables and disables the search field.
- * @param aEnable New status of search field.
- * @param aSearchText Text to search
- */
- virtual void EnableSearchFieldL(
- TBool aEnable, const TDesC& aSearchText = KNullDesC );
-
- /**
- * Sets current item index after search
- * @param aIndex Current item index.
- */
- virtual void SetCurrentItemIndexAfterSearch( TInt aIndex );
-
- /**
- * Selects list item
- * @param aIndex Index of list item.
- */
- virtual void ListBoxSelectItemL( TInt aIndex );
-
- /**
- * Deselects list item
- * @param aIndex Index of list item.
- */
- virtual void ListBoxDeselectItem( TInt aIndex );
-
- /**
- *
- *
- */
- virtual void ListBoxSetSelectionIndexesL(const CArrayFixFlat<TInt>*
- aSelectionIndexes);
- /**
- * search filed index to listbox index
- * @param aIndex index in search filed
- * @return index in listbox
- */
- virtual TInt SearchFieldToListBoxIndex( TInt aIndex );
- protected:
- /**
- * Standard C++ constructor.
- */
- CFileManagerContainerBase();
-
- virtual void ConstructL(
- const TRect& aRect,
- const TInt aFocusedIndex );
-
- virtual CEikTextListBox* CreateListBoxL() = 0;
-
- TBool ListBoxExists() const;
-
- CEikListBox& ListBox();
-
- private: // From MListBoxSelectionObserver
- void SelectionModeChanged(
- CEikListBox* aListBox, TBool aSelectionModeEnabled );
-
- private:
- void SetEmptyArrayL();
-
- private: // Data
- // Own: Pointer to listbox
- CEikTextListBox* iListBox;
- // Own: Help context name
- TCoeContextName iHelpContext;
- // Own: Empty text
- HBufC* iEmptyText;
- // Ref: Pointer to text array
- MDesCArray* iArray;
- // Own: Stores selection mode status
- TBool iSelectionModeEnabled;
-
- };
-
-#endif // CFILEMANAGERCONTAINERBASE_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerDocument.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*
-* Copyright (c) 2002-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: Document class of the file manager
-*
-*/
-
-
-
-#ifndef CFILEMANAGERDOCUMENT_H
-#define CFILEMANAGERDOCUMENT_H
-
-// INCLUDES
-#include <GenericParamConsumer.h>
-#include <ConeResLoader.h> // RConeResourceLoader
-#include <badesca.h>
-
-
-// FORWARD DECLARATIONS
-class CFileManagerIconArray;
-class CFileManagerEngine;
-class CFileManagerStringCache;
-
-
-// CLASS DECLARATION
-/**
- * FileManager application document class.
- * An object of this class is created by the Symbian OS framework by a call to
- * CFileManagerApplication::CreateDocumentL().
- * The application framework creates the FileManager application UI object
- * (CFileManagerAppUi) by a call to the virtual function CreateAppUiL().
- */
-class CFileManagerDocument : public CAiwGenericParamConsumer
- {
-
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerDocument* NewL( CEikApplication& aApp );
-
- /**
- * Destructor.
- */
- ~CFileManagerDocument();
-
- public: // From CAiwGenericParamConsumer
- CEikAppUi* CreateAppUiL();
-
- void UpdateTaskNameL( CApaWindowGroupName* aWgName );
-
- CFileStore* OpenFileL( TBool aDoOpen, const TDesC& aFilename, RFs& aFs );
-
- public: // New methods
- /**
- * Returns the icon array of this application.
- *
- * @return The icon array of this application.
- */
- CFileManagerIconArray* IconArray() const;
-
- /**
- * Returns reference to engine of this application
- *
- * @return Reference to engine of this application
- */
- CFileManagerEngine& Engine() const;
-
- /**
- * Returns the model for listbox
- * @return Return MDesCArray to current filelist
- */
- MDesCArray* FileList() const;
-
- /**
- * Clears the string cache
- */
- void ClearStringCache();
-
- /**
- * Gets last error
- */
- TInt LastError() const;
-
- /**
- * Checks is app was launched for scheduled backup
- */
- TBool IsScheduledBackup();
-
- /**
- * Stores ECOM plugins to be deleted with document
- */
- void StorePluginL( const TUid& aUid );
-
- private:
-
- /**
- * Standard C++ constructor.
- *
- * @param aApp Application which this document belongs to.
- */
- CFileManagerDocument( CEikApplication& aApp );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- /**
- * Deletes stored ECOM plugins
- */
- void DeletePlugins();
-
- private: // Data
- /// Own: Engine of the application
- CFileManagerEngine* iEngine;
- /// Own: Icon array that contains all the icons used in listboxes.
- CFileManagerIconArray* iIconArray;
- /// Resource loader for view resources
- RConeResourceLoader iViewResourceLoader;
- /// Resource loader for engine resources
- RConeResourceLoader iEngineResourceLoader;
- // Own: For caching listbox strings
- CFileManagerStringCache* iStringCache;
- // Own: Stores loaded ECom plugin ids
- RArray< TUid > iPluginArray;
-
- };
-
-#endif // CFILEMANAGERDOCUMENT_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerFileListContainer.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/*
-* Copyright (c) 2006-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: File list container in file manager
-*
-*/
-
-
-#ifndef CFILEMANAGERFILELISTCONTAINER_H
-#define CFILEMANAGERFILELISTCONTAINER_H
-
-// INCLUDES
-#include "CFileManagerContainerBase.h"
-
-// FORWARD DECLARATIONS
-class CFileManagerDocument;
-class CFileManagerAppUi;
-class CAknSearchField;
-
-
-// CLASS DECLARATION
-/**
- * File list container in File Manager.
- * Replaces old phone memory, memory card, folder and search specific
- * containers.
- */
-class CFileManagerFileListContainer : public CFileManagerContainerBase,
- public MCoeFocusObserver
- {
- public:
- enum TListType
- {
- EListMain = 0, // Main layout
- EListMemoryStore, // Memory store (Phone memory etc) layout
- EListFolder // Folder layout
- };
-
- static CFileManagerFileListContainer*
- CFileManagerFileListContainer::NewL(
- const TRect& aRect,
- const TInt aFocusedIndex,
- const TListType aType,
- const TInt aEmptyText,
- const TDesC& aHelpContext );
-
- /**
- * Destructor.
- */
- ~CFileManagerFileListContainer();
-
- private: // MCoeControlObserver
- void HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType);
-
- private: // From CCoeControl
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,TEventCode aType );
-
- void HandlePointerEventL( const TPointerEvent &aPointerEvent );
-
- void SizeChanged();
-
- TInt CountComponentControls() const;
-
- CCoeControl* ComponentControl( TInt aIndex ) const;
-
- public: // From CFileManagerContainerBase
- void SetListEmptyL();
-
- void RefreshListL( TInt aFocusedIndex );
-
- CEikTextListBox* CreateListBoxL();
-
- void UpdateCba();
-
- TInt ListBoxCurrentItemIndex();
-
- TInt ListBoxNumberOfItems();
-
- const CArrayFix< TInt >* ListBoxSelectionIndexes();
-
- TInt ListBoxSelectionIndexesCount();
-
- void ListBoxToggleItemL( TInt aIndex );
-
- TBool ListBoxIsItemSelected( TInt aIndex );
-
- void ListBoxSetTextL( const TDesC& aText );
-
- TBool IsSearchFieldVisible() const;
-
- void EnableSearchFieldL(
- TBool aEnable, const TDesC& aSearchText = KNullDesC );
-
- void SetCurrentItemIndexAfterSearch( TInt aIndex );
-
- void ListBoxSelectItemL( TInt aIndex );
-
- void ListBoxDeselectItem( TInt aIndex );
-
- TInt SearchFieldToListBoxIndex(TInt aIndex );
-
- private: // From MCoeFocusObserver
- void HandleChangeInFocus();
-
- void HandleDestructionOfFocusedItem();
-
- private:
- /**
- * Standard C++ constructor.
- */
- CFileManagerFileListContainer(
- const TListType aType );
-
- void ConstructL(
- const TRect& aRect,
- const TInt aFocusedIndex,
- const TInt aEmptyText,
- const TDesC& aHelpContext );
-
- TInt SearchFieldToListIndex( TInt aIndex );
-
- TInt ListToSearchFieldIndex( TInt aIndex );
-
- void PageScrollL( TBool aUp );
-
- TKeyResponse OfferSearchKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType );
-
- private:
- /**
- * Custom item drawer, to support the "no-folders-marked" feature.
- */
- class CItemDrawer : public CColumnListBoxItemDrawer
- {
- public:
- CItemDrawer(
- CTextListBoxModel* aTextListBoxModel,
- const CFont* aFont,
- CColumnListBoxData* aColumnData,
- CFileManagerFileListContainer& aContainer );
- public: // From CColumnListBoxItemDrawer
- TListItemProperties Properties( TInt aItemIndex ) const;
- private: // Data
- CFileManagerFileListContainer& iContainer;
- };
-
- /**
- * Custom listbox, to support the "no-folders-marked" feature.
- */
- class CListBox : public CAknSingleGraphicStyleListBox
- {
- public:
- CListBox( CFileManagerFileListContainer& aContainer );
-
- protected: // From CAknSingleGraphicStyleListBox
- void CreateItemDrawerL();
-
- private: // Data
- CFileManagerFileListContainer& iContainer;
- };
-
- private: // Data
- // Ref: Document of this application
- CFileManagerDocument* iDocument;
- // Ref: AppUi of this application
- CFileManagerAppUi* iAppUi;
- // List type bits
- TUint iType;
- // Indicates if the navigation is supported
- TBool iRightLeftNaviSupported;
- // Indicates if dragging is on
- TBool iDragging;
- // Stores dragging start point
- TPoint iDragStartPoint;
- // Own: Search field
- CAknSearchField* iSearchField;
- // Buffer for search text
- TFileName iSearchText;
- // Indicates if search field is enabled after refresh
- TBool iSearchFieldAfterRefresh;
- // Stores the list index to be restored after search ends
- TInt iIndexAfterSearch;
- // Stores search field enabled status
- TBool iSearchFieldEnabled;
- // Stores fast scroll disbaled status
- TBool iOwnFastScrollDisabled;
- };
-
-#endif // CFILEMANAGERFILELISTCONTAINER_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerFileSelectionFilter.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Filters PlatSec dirs from file selection
-*
-*/
-
-
-
-#ifndef CFILEMANAGERFILESELECTIONFILTER_H
-#define CFILEMANAGERFILESELECTIONFILTER_H
-
-// INCLUDES
-#include <e32base.h>
-#include <MAknFileFilter.h>
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-
-// CLASS DECLARATION
-/**
- *
- */
-class CFileManagerFileSelectionFilter : public CBase,
- public MAknFileFilter
- {
- public:
- CFileManagerFileSelectionFilter( CFileManagerEngine& aEngine );
-
- public: // From MAknFileFilter
- TBool Accept( const TDesC& aDriveAndPath, const TEntry& aEntry ) const;
-
- private: // Data
- /// Ref: Reference to engine of the application.
- CFileManagerEngine& iEngine;
- };
-
-#endif // CFILEMANAGERFILESELECTIONFILTER_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerFoldersView.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: View for folder
-*
-*/
-
-
-
-#ifndef CFILEMANAGERFOLDERSVIEW_H
-#define CFILEMANAGERFOLDERSVIEW_H
-
-// INCLUDES
-#include "CFileManagerViewBase.h"
-#include <MFileManagerFolderNaviObserver.h>
-
-// FORWARD DECLARATIONS
-class CAknNavigationControlContainer;
-class CAknNavigationDecorator;
-class CFileManagerFolderNavigationPane;
-class CAknInfoPopupNoteController;
-
-// CLASS DECLARATION
-/**
- * Folders view of the application.
- */
-class CFileManagerFoldersView : public CFileManagerViewBase,
- public MFileManagerFolderNaviObserver
- {
- public: // Custom Message IDs
- /// custom message for opening from results view
- static const TUid KOpenFromSearchResultsView;
-
- // For custom message use
- enum TMessage
- {
- EOpenFromSearchResultsView = 1
- };
-
- public: // Constructors and destructor
- /**
- * Two-phased constructor. Leaves created view
- * to cleanup stack.
- *
- * @return Newly constructed view
- */
- static CFileManagerFoldersView* NewLC();
-
- /**
- * Destructor.
- */
- ~CFileManagerFoldersView();
-
- public: // New declarations
-
- /**
- * Forwards Resource change events to view
- * @since 2.0
- * @param aType type of change
- */
- void HandleResourceChangeL( TInt aType );
-
- /**
- * Forwards DirectoryChange information to active view
- * @since 2.0
- */
- void DirectoryChangedL();
-
- private: // From CAknView
- /**
- * @see CAknView
- */
- TUid Id() const;
-
- /**
- * @see CAknView
- */
- void HandleCommandL( TInt aCommand );
-
- /**
- * @see CAknView
- */
- TKeyResponse OfferKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType );
-
- /**
- * @see CAknView
- */
- void DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage);
-
- /**
- * @see CAknView
- */
- void DoDeactivate();
-
- private: // From CFileManagerViewBase
- /**
- * @see CFileManagerViewBase
- */
- CFileManagerContainerBase* CreateContainerL();
-
- /**
- * @see CFileManagerViewBase
- */
- void UpdateCbaL();
-
- private: // From MFileManagerFolderNaviObserver
- /**
- * @see MFileManagerFolderNaviObserver
- */
- void HandleFolderNaviEventL( TNaviEvent aEvent, TInt aValue );
-
- private:
- /**
- * Refreshes title to contain name of the
- * current folder.
- */
- void RefreshTitleL();
-
- /**
- * Standard C++ constructor.
- */
- CFileManagerFoldersView();
-
- /**
- * 2nd phase constructor.
- */
- void ConstructL();
-
- /**
- * Handles backstepping from the current folder.
- * @since 3.1
- * @param aBacksteps Number of backsteps to do
- */
- void BackstepL( TInt aBacksteps = 1 );
-
- /**
- * Gets folder name from specified folder level
- * @since 3.1
- * @param aFolderLevel Folder level
- * @return Folder name
- */
- TPtrC FolderName( const TInt aFolderLevel );
-
- private: // Data
- /// Ref: Navi pane of the view
- CAknNavigationControlContainer* iNaviPane;
- /// Own: Navigation decorator for navi pane
- CAknNavigationDecorator* iNaviDecorator;
- /*
- * Ref: Navi control that draws folders in the navi pane.
- * Ownership is given to navi pane after creation.
- */
- CFileManagerFolderNavigationPane* iNaviControl;
-
- // Current depth, with this folder view knows when
- // user has gone up or down in folder tree
- TInt iFolderDepth;
-
- // Own: Initial folder depth.
- // View is closed after stepped back below this level.
- TInt iInitialFolderDepth;
-
- // Own: For showing info popups
- CAknInfoPopupNoteController* iPopupController;
-
- };
-
-#endif // CFILEMANAGERFOLDERSVIEW_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerMainView.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-/*
-* Copyright (c) 2006-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: Main view
-*
-*/
-
-
-
-#ifndef C_FILEMANAGERMAINVIEW_H
-#define C_FILEMANAGERMAINVIEW_H
-
-
-// INCLUDES
-#include <aknview.h>
-#include "CFileManagerViewBase.h"
-
-
-// CLASS DECLARATION
-/**
- * This class implements main view of the application.
- *
- * @since S60 3.1
- */
-class CFileManagerMainView : public CFileManagerViewBase
- {
-
-public: // Constructors and destructor
- /**
- * Two-phased constructor.Leaves created view
- * to cleanup stack.
- *
- * @return Newly constructed view
- */
- static CFileManagerMainView* NewLC();
-
- /**
- * Destructor.
- */
- ~CFileManagerMainView();
-
-public: // From CFileManagerViewBase
- /**
- * @see CFileManagerViewBase
- */
- void DirectoryChangedL();
-
- /**
- * @see CFileManagerViewBase
- */
- CFileManagerContainerBase* CreateContainerL();
-
-private: // From CAknView
- /**
- * @see CAknView
- */
- void DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- /**
- * @see CAknView
- */
- void DoDeactivate();
-
- /**
- * @see CAknView
- */
- TUid Id() const;
-
- /**
- * @see CAknView
- */
- void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
-
- /**
- * @see CAknView
- */
- void HandleCommandL( TInt aCommand );
-
-private: // From MFileManagerProcessObserver
- /**
- * @see MFileManagerProcessObserver
- */
- TInt NotifyL( TFileManagerNotify aType, TInt aData, const TDesC& aName );
-
-private: // New functions
- /**
- * Filters main menu in aMenuPane.
- */
- void MainMenuFilteringL( CEikMenuPane& aMenuPane );
-
- /**
- * Filters remote drives menu in aMenuPane.
- */
- void RemoteDrivesMenuFilteringL( CEikMenuPane& aMenuPane );
-
- /**
- * Handles memory store open command
- */
- void CmdOpenMemoryStoreL();
-
- /**
- * Handles eject command
- */
- void CmdEjectL();
-
-#ifndef RD_FILE_MANAGER_BACKUP
- /**
- * Handles legacy backup command
- */
- void CmdBackupL();
-
- /**
- * Handles legacy restore command
- */
- void CmdRestoreL();
-#endif // RD_FILE_MANAGER_BACKUP
-
- /**
- * Handles map remote drive command
- */
- void CmdMapRemoteDriveL();
-
- /**
- * Handles remote drive settings command
- */
- void CmdRemoteDriveSettingsL();
-
- /**
- * Handles remote drive delete command
- */
- void CmdRemoteDriveDeleteL();
-
- /**
- * Filters memory storage menu items.
- *
- * @param aMenuPane Menu instance to be filtered.
- */
- void MemoryStorageMenuFilteringL( CEikMenuPane& aMenuPane );
-
- /**
- * Handles memory storage details command.
- */
- void CmdMemoryStorageDetailsL();
-
- /**
- * Handles drive rename command.
- */
- void CmdRenameDriveL();
-
- /**
- * Handles drive password set command.
- */
- void CmdSetDrivePasswordL();
-
- /**
- * Handles drive password change command.
- */
- void CmdChangeDrivePasswordL();
-
- /**
- * Handles drive password remove command.
- */
- void CmdRemoveDrivePasswordL();
-
- /**
- * Gets drive at current position.
- *
- * @return Drive identifier or KErrNotFound.
- */
- TInt DriveAtCurrentPosL();
-
-private:
- /**
- * C++ default constructor.
- */
- CFileManagerMainView();
-
- void ConstructL();
-
- };
-
-#endif // C_FILEMANAGERMAINVIEW_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerMemoryStoreView.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-/*
-* Copyright (c) 2006 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: Memory store view
-*
-*/
-
-
-
-#ifndef C_FILEMANAGERMEMORYSTOREVIEW_H
-#define C_FILEMANAGERMEMORYSTOREVIEW_H
-
-
-// INCLUDES
-#include <aknview.h>
-#include "CFileManagerViewBase.h"
-
-
-// CLASS DECLARATION
-/**
- * This class implements memory store view.
- *
- * @since S60 3.1
- */
-class CFileManagerMemoryStoreView : public CFileManagerViewBase
- {
-
-public: // Constructors and destructor
- /**
- * Two-phased constructor.Leaves created view
- * to cleanup stack.
- *
- * @return Newly constructed view
- */
- static CFileManagerMemoryStoreView* NewLC();
-
- /**
- * Destructor.
- */
- ~CFileManagerMemoryStoreView();
-
-public: // From CFileManagerViewBase
- /**
- * @see CFileManagerViewBase
- */
- void DirectoryChangedL();
-
- /**
- * @see CFileManagerViewBase
- */
- CFileManagerContainerBase* CreateContainerL();
-
- /**
- * @see CFileManagerViewBase
- */
- void UpdateCbaL();
-
-private: // From CAknView
- /**
- * @see CAknView
- */
- void DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- /**
- * @see CAknView
- */
- void DoDeactivate();
-
- /**
- * @see CAknView
- */
- TUid Id() const;
-
- /**
- * @see CAknView
- */
- void HandleCommandL( TInt aCommand );
-
-private: // New functions
- /**
- * Checks memory store available
- */
- TBool DriveAvailableL( TBool aShowRemoteNotConnected );
-
- /**
- * Refreshes memory store title
- */
- void RefreshTitleL();
-
- /**
- * Handles open memory store command
- */
- void CmdOpenL();
-
- /**
- * Handles back command
- */
- void CmdBackL();
-
-private:
- /**
- * C++ default constructor.
- */
- CFileManagerMemoryStoreView();
-
-private:
-
- };
-
-#endif // C_FILEMANAGERMEMORYSTOREVIEW_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerRestoreView.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-/*
-* Copyright (c) 2006-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: View for restore settings
-*
-*/
-
-
-
-#ifndef C_FILEMANAGERRESTOREVIEW_H
-#define C_FILEMANAGERRESTOREVIEW_H
-
-
-// INCLUDES
-#include <aknview.h>
-#include "CFileManagerViewBase.h"
-
-
-// CLASS DECLARATION
-/**
- * This class is used for restore settings view
- *
- * @since S60 3.1
- */
-class CFileManagerRestoreView : public CFileManagerViewBase
- {
-
-public: // Custom Message IDs
- // Custom message for deleting backups
- static const TUid KDeleteBackups;
-
- // For custom messages
- enum TMessage
- {
- EDeleteBackups = 1
- };
-
-public: // Constructors and destructor
- /**
- * Two-phased constructor.Leaves created view
- * to cleanup stack.
- *
- * @return Newly constructed view
- */
- static CFileManagerRestoreView* NewLC();
-
- /**
- * Destructor.
- */
- ~CFileManagerRestoreView();
-
-public: // From CFileManagerViewBase
- /**
- * @see CFileManagerViewBase
- */
- void DirectoryChangedL();
-
- /**
- * @see CFileManagerViewBase
- */
- CFileManagerContainerBase* CreateContainerL();
-
- /**
- * @see CFileManagerViewBase
- */
- void NotifyForegroundStatusChange( TBool aForeground );
-
- /**
- * Updates cba
- */
- virtual void UpdateCbaL();
-
-private: // From CAknView
- /**
- * @see CAknView
- */
- void DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- /**
- * @see CAknView
- */
- void DoDeactivate();
-
- /**
- * @see CAknView
- */
- TUid Id() const;
-
- /**
- * @see CAknView
- */
- void HandleCommandL( TInt aCommand );
-
-public: // From MFileManagerProcessObserver
- /**
- * @see MFileManagerProcessObserver
- */
- void ProcessFinishedL( TInt aError, const TDesC& aName = KNullDesC );
-
-private: // New functions
- /**
- * Handles ok command
- */
- void CmdOkL();
-
- /**
- * Handles cancel command
- */
- void CmdCancelL();
-
- /**
- * Handles select command
- */
- void CmdSelectL();
-
- /**
- * Handles check mark command
- */
- void CmdCheckMarkL();
-
- /**
- * Refreshes all settings
- */
- void RefreshSettingsL();
-
- /**
- * Restores list selection after refresh
- */
- void RestoreSelectionL();
-
- /**
- * Updates cba according to list selection
- */
- void UpdateCbaFromSelectionL();
-
-private:
- /**
- * C++ default constructor.
- */
- CFileManagerRestoreView();
-
-private: // Data
- // Indicates if view is started into delete backup mode
- TBool iDeleteBackups;
-
- /**
- * For storing list selection during refresh
- */
- TUint64 iSelection;
-
- };
-
-#endif // C_FILEMANAGERRESTOREVIEW_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerSchBackupHandler.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*
-* Copyright (c) 2006 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: Handler for scheduled backup
-*
-*/
-
-
-#ifndef C_FILEMANAGERSCHBACKUPHANDLER_H
-#define C_FILEMANAGERSCHBACKUPHANDLER_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <MFileManagerGlobalDlgObserver.h>
-
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-class CFileManagerGlobalDlg;
-class MFileManagerSchBackupObserver;
-class CRepository;
-
-
-// CLASS DECLARATION
-/**
- * This class handles scheduled backup
- *
- * @since S60 3.1
- */
-class CFileManagerSchBackupHandler :
- public CBase,
- public MFileManagerGlobalDlgObserver
- {
-
-public:
- /**
- * Two-phased constructor.
- */
- static CFileManagerSchBackupHandler* NewL(
- CFileManagerEngine& aEngine );
-
- /**
- * Destructor.
- */
- ~CFileManagerSchBackupHandler();
-
- /**
- * Starts backup with confirm note.
- */
- void StartBackupWithConfirm();
-
- /**
- * Sets backup observer
- * @param aObserver Pointer to observer or NULL.
- * Ownership is not transferred.
- */
- void SetObserver(
- MFileManagerSchBackupObserver* aObserver );
-
- /**
- * Informs process finished
- * @param aError System wide error code
- * @param aName Error related descriptor
- */
- void ProcessFinishedL( TInt aError, const TDesC& aName );
-
- /**
- * Informs process advance
- * @param aValue Current progress value
- */
- void ProcessAdvanceL( TInt aValue );
-
- /**
- * Informs process started
- * @param aFinalValue Final progress value
- */
- void ProcessStartedL( TInt aFinalValue );
-
- /**
- * Cancels scheduled backup launcher
- */
- void CancelBackupStarter();
-
-private: // From MFileManagerGlobalDialogObserver
- /**
- * @see MFileManagerGlobalDialogObserver
- */
- void HandleGlobalDlgResult(
- TInt aDialogType,
- TInt aDialogResult );
-
-private:
- CFileManagerSchBackupHandler(
- CFileManagerEngine& aEngine );
-
- void ConstructL();
-
- void StartBackupWithConfirmL();
-
- void StartBackupL();
-
- void StartBackup();
-
- void InformObserver( const TInt aValue );
-
- TBool IsPowerSavingModeOnL();
-
- TBool IsTargetDriveAvailableL( const TFileManagerDriveInfo& aDrvInfo );
-
-private: // Data
- /**
- * Reference to file manager engine
- * Not own.
- */
- CFileManagerEngine& iEngine;
-
- /**
- * For global dialog handling
- * Own.
- */
- CFileManagerGlobalDlg* iGlobalDlg;
-
- /**
- * Pointer to scheduled backup observer
- * Not own.
- */
- MFileManagerSchBackupObserver* iObserver;
-
- /**
- * To indicate is backup ongoing
- */
- TBool iBackupOngoing;
-
- /**
- * Pointer to CenRep
- * Own.
- */
- CRepository* iCenRep;
- };
-
-#endif // C_FILEMANAGERSCHBACKUPHANDLER_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerSettingListContainer.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* Copyright (c) 2006 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: Setting list container in file manager
-*
-*/
-
-
-
-#ifndef CFILEMANAGERSETTINGLISTCONTAINER_H
-#define CFILEMANAGERSETTINGLISTCONTAINER_H
-
-// INCLUDES
-#include "CFileManagerContainerBase.h"
-
-
-// CLASS DECLARATION
-/**
- * Container for backup view.
- */
-class CFileManagerSettingListContainer : public CFileManagerContainerBase
- {
- public: // Constructors and destructor
- enum TListType
- {
- EListBackup = 0, // Backup settings layout
- EListRestore // Restore selection layout
- };
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerSettingListContainer* NewL(
- const TRect& aRect,
- const TInt aFocusedIndex,
- const TListType aType,
- MDesCArray* aArray,
- const TDesC& aHelpContext = KNullDesC );
-
- /**
- * Destructor.
- */
- ~CFileManagerSettingListContainer();
-
- private: // From CFileManagerContainerBase
- CEikTextListBox* CreateListBoxL();
-
- TKeyResponse OfferKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType );
-
- void HandleControlEventL(
- CCoeControl* aControl, TCoeEvent aEventType );
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerSettingListContainer( const TListType aType );
-
- void ConstructL(
- const TRect& aRect,
- const TInt aFocusedIndex,
- MDesCArray* aArray,
- const TDesC& aHelpContext );
-
- CEikTextListBox* CreateBackupListBoxL();
-
- CEikTextListBox* CreateRestoreListBoxL();
-
- private: // Data
- // Setting list type
- TListType iType;
-
- };
-
-#endif // CFILEMANAGERSETTINGLISTCONTAINER_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerStringCache.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: This class caches strings
-*
-*/
-
-
-
-#ifndef CFILEMANAGERSTRINGCACHE_H
-#define CFILEMANAGERSTRINGCACHE_H
-
-// INCLUDES
-#include <e32base.h>
-#include <f32file.h>
-#include <badesca.h>
-
-// CONSTANTS
-const TInt KNumStringCacheItems = 16;
-const TInt KFormatStringLen = KMaxFileName * 2;
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-class CFileManagerIconArray;
-
-
-// CLASS DECLARATION
-/**
-* This class caches strings
-*
-* @since 2.7
-*/
-class CFileManagerStringCache : public CBase, public MDesCArray
- {
- public:
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerStringCache* NewL(
- CFileManagerEngine& aEngine,
- CFileManagerIconArray& aIconArray );
-
- void Clear() const;
-
- /**
- * Destructor.
- */
- ~CFileManagerStringCache();
-
- /**
- * Gets last error
- */
- TInt LastError() const;
-
- public: // From MDesCArray
-
- TInt MdcaCount() const;
- TPtrC MdcaPoint(TInt aIndex) const;
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerStringCache(
- CFileManagerEngine& aEngine,
- CFileManagerIconArray& aIconArray );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- /**
- * Sets last error
- */
- void SetError( TInt aError ) const;
-
- private:
-
- /**
- * Searches index from cache and return cache index
- * so it can be retrieve with FormattedString
- */
- TInt FormattedStringFound( TInt aIndex ) const;
-
- /**
- * Retrieve string from cache with FormattedStringFound()
- * given index
- */
- TPtrC FormattedString( TInt aIndex ) const;
-
- /**
- * Stores string in iFormatted string with given
- * listbox index. Checks the fartest position
- * and stores there.
- */
- void StoreFormattedStringL( TInt aIndex ) const;
-
- /**
- * Clears cache item
- * given index
- */
- void Clear( TInt aIndex ) const;
-
- private: // Data
- class TCacheItem
- {
- public:
- HBufC* iString;
- TInt iIndex;
- };
-
- // Ref: To get item details
- CFileManagerEngine& iEngine;
-
- // Ref: To resolve icons
- CFileManagerIconArray& iIconArray;
-
- // Own: array of formatted listbox items
- TFixedArray< TCacheItem, KNumStringCacheItems > mutable
- iFormattedItems;
-
- // Own: String buffer for formatting string
- TBuf< KFormatStringLen > mutable iFormatString;
-
- // Own: Last error
- TInt mutable iError;
-
- };
-
-#endif // CFILEMANAGERSTRINGCACHE_H
-
-// End of File
-
--- a/filemanager/App/inc/CFileManagerTaskScheduler.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2006 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: Wraps task scheduler functionality
-*
-*/
-
-
-
-#ifndef C_FILEMANAGERTASKSCHEDULER_H
-#define C_FILEMANAGERTASKSCHEDULER_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <csch_cli.h>
-
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-
-
-// CLASS DECLARATION
-/**
- * This class wraps task scheduler functionality
- *
- * @since S60 3.1
- */
-class CFileManagerTaskScheduler : public CBase
- {
-
-public: // New functions
- /**
- * Two-phased constructor.
- */
- static CFileManagerTaskScheduler* NewL(
- CFileManagerEngine& aEngine );
-
- /**
- * Destructor.
- */
- ~CFileManagerTaskScheduler();
-
- /**
- * Enables and disables backup schedule
- */
- void EnableBackupScheduleL( const TBool aEnable );
-
-private:
- CFileManagerTaskScheduler(
- CFileManagerEngine& aEngine );
-
- void ConstructL();
-
- void CreateScheduleL();
-
- void DeleteScheduleL();
-
-private: // Data
- /**
- * Reference to file manager engine
- * Not own.
- */
- CFileManagerEngine& iEngine;
-
- /**
- * Handle to task scheduler
- */
- RScheduler iScheduler;
-
- /**
- * Handle to schedule
- */
- TInt iScheduleHandle;
-
- };
-
-#endif // C_FILEMANAGERBACKUPSCHEDULER_H
-
-// End of File
--- a/filemanager/App/inc/CFileManagerViewBase.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,706 +0,0 @@
-/*
-* Copyright (c) 2002-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: Base class for all file manager views
-*
-*/
-
-
-
-#ifndef CFILEMANAGERVIEWBASE_H
-#define CFILEMANAGERVIEWBASE_H
-
-
-// INCLUDES
-#include <aknview.h>
-#include <AknServerApp.h>
-#include <AknWaitDialog.h>
-#include <apparc.h>
-#include <MFileManagerProcessObserver.h>
-#include <TFileManagerDriveInfo.h>
-
-
-// FORWARD DECLARATIONS
-class CFileManagerContainerBase;
-class CFileManagerEngine;
-class CFileManagerActiveExecute;
-class CEikMenuBar;
-class CFileManagerActiveDelete;
-class CFileManagerItemProperties;
-class CAknQueryDialog;
-class CAknWaitNoteWrapper;
-class CFileManagerFeatureManager;
-class MAknServerAppExitObserver;
-
-
-// Defines maximum media password length in Unicode
-const TUint KFmgrMaxMediaPassword = KMaxMediaPassword / 2; // Because of Unicode
-// CLASS DECLARATION
-/**
- * Base class for all views in File Manager applicaiton
- */
-class CFileManagerViewBase : public CAknView,
- public MProgressDialogCallback,
- public MFileManagerProcessObserver,
- public MAknServerAppExitObserver
- {
- protected:
- /**
- * Return value enumeration for CmdOpenL to indicate what
- * kind of item was opened or if there was an error during
- * opening.
- */
- enum TFileManagerOpenResult
- {
- EFolderOpened,
- EFileOpened,
- EOpenError
- };
- public: // Constructors and destructor
- /**
- * Two-phased constructor.
- */
- static CFileManagerViewBase* NewLC();
-
- /**
- * Timer calls this in order to update the progress bar.
- * @param aPtr pointer to object where is function to be call
- * when timer expires.
- * @return positive number if timer needs to be activated again
- * 0 if timer is not needed any more.
- */
- static TInt UpdateProgressBar( TAny* aPtr );
-
- /**
- * Timer calls this in order to start refresh progress dialog.
- * @param aPtr pointer to object where is function to be call
- * when timer expires.
- * @return positive number if timer needs to be activated again
- * 0 if timer is not needed any more.
- */
- static TInt RefreshProgressDelayedStart( TAny* aPtr );
-
- /**
- * Stores current index
- * @return ETrue if storing successfull
- * EFalse if storing not succesfull
- */
- TBool StoreIndex();
-
- /**
- * Nulls everything which is related to progress bar
- */
- void ClearProgressBarL();
-
- /**
- * @return Current process in app
- */
- MFileManagerProcessObserver::TFileManagerProcess CurrentProcess();
-
- /**
- * Destructor.
- */
- virtual ~CFileManagerViewBase();
-
- public: // From MProgressDialogCallback
- void DialogDismissedL( TInt aButtonId );
-
- public://MAknServerAppExitObserver
- /**
- * @see MAknServerAppExitObserver
- */
- void HandleServerAppExit( TInt aReason );
-
- public: // From MFileManagerProcessObserver
- /**
- * @see MFileManagerProcessObserver
- */
- void ProcessFinishedL( TInt aError, const TDesC& aName );
-
- /**
- * @see MFileManagerProcessObserver
- */
- void ProcessAdvanceL( TInt aValue );
-
- /**
- * @see MFileManagerProcessObserver
- */
- void ProcessStartedL(
- MFileManagerProcessObserver::TFileManagerProcess aProcess,
- TInt aFinalValue );
-
- /**
- * @see MFileManagerProcessObserver
- */
- TBool ProcessQueryOverWriteL(
- const TDesC& aOldName,
- TDes& aNewName,
- TFileManagerProcess aProcess );
-
- /**
- * @see MFileManagerProcessObserver
- */
- TBool ProcessQueryRenameL(
- const TDesC& aOldName,
- TDes& aNewName,
- TFileManagerProcess aProcess );
-
- /**
- * @see MFileManagerProcessObserver
- */
- void RefreshStartedL();
-
- /**
- * @see MFileManagerProcessObserver
- */
- void RefreshStoppedL();
-
- /**
- * @see MFileManagerProcessObserver
- */
- void ShowWaitDialogL( MAknBackgroundProcess& aProcess);
-
- /**
- * @see MFileManagerProcessObserver
- */
- void Error( TInt aError );
-
- /**
- * @see MFileManagerProcessObserver
- */
- TInt NotifyL( TFileManagerNotify aType, TInt aData, const TDesC& aName );
-
- public:
-
- /*
- * When view needs refresh, this is called.
- */
- virtual void DirectoryChangedL() = 0;
-
- /*
- * Checks if refresh is in progress
- */
- TBool IsRefreshInProgress();
-
- /**
- * Handles errors caused by file or folder deletion outside
- * file manager while file manager is in foreground.
- * @param aError Error code.
- * @return ETrue if error was handled. Otherwise EFalse.
- */
- TBool HandleFileNotFoundL( TInt aError );
-
- /**
- * Handles screen layout changes
- */
- virtual void ScreenDeviceChanged();
-
-#ifdef RD_FILE_MANAGER_BACKUP
- void StartSchBackupL();
-
- void SchBackupFinishedL();
-#endif // RD_FILE_MANAGER_BACKUP
-
- /**
- * Updates cba
- */
- virtual void UpdateCbaL();
-
- /**
- * Notifies foreground status change
- */
- virtual void NotifyForegroundStatusChange( TBool aForeground );
-
- protected: // From CAknView
- /**
- * @see CAknView
- */
- void DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage);
-
- /**
- * @see CAknView
- */
- void DoDeactivate();
-
- /**
- * @see CAknView
- */
- void HandleCommandL( TInt aCommand );
-
- /**
- * @see CAknView
- */
- void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
-
- /**
- * @see CAknView
- */
- void ProcessCommandL( TInt aCommand );
-
- protected: // New methods
-
- /**
- * Returns a container class that is derived from
- * CFileManagerContainerBase. This is provided for derived
- * classes to create their own type of containers.
- * @return Newly created container.
- */
- virtual CFileManagerContainerBase* CreateContainerL() = 0;
-
- /**
- * Executes open command. Opens currently selected item in
- * list.
- * @return Code that tells if opened item was folder or
- * file. EOpenError is returned if there was an
- * error during open.
- */
- TFileManagerOpenResult CmdOpenL();
-
- /**
- * Executes delete command to delete current item
- * or if there are marked items, all of them are deleted.
- */
- void CmdDeleteL();
-
- /**
- * Marks all markable items in list.
- */
- void CmdMarkAllL();
-
- /**
- * Unmarks all marked items in list.
- */
- void CmdUnmarkAllL();
-
- /**
- * Changes mark status of currently focused item.
- */
- void CmdToggleMarkL();
-
- /**
- * Creates new folder to currently active directory.
- */
- void CmdNewFolderL();
-
- /**
- * Renames currently active item.
- */
- void CmdRenameL();
-
- /**
- * Moves current item to folder that is queried using
- * Common File Dialogs. If there are marked items, all of
- * them are moved.
- */
- void CmdMoveToFolderL();
-
- /**
- * Copies current item to folder that is queried using
- * Common File Dialogs. If there are marked items, all of
- * them are copied.
- */
- void CmdCopyToFolderL();
-
- /**
- * Shows info popup dialog that contains information
- * about currently active item.
- */
- void CmdViewInfoL();
-
- /**
- * Shows memory status popup dialog that contains
- * information about current memory status of the
- * active memory.
- */
- void CmdMemoryStateL();
-
- /**
- * Executes find command.
- */
- void CmdFindL();
-
- /**
- * Receives file via infrared to currently active
- * folder.
- */
- void CmdReceiveViaIRL();
-
- /**
- * Runs move or copy operation. Parameter aToFolder is the destination
- * of operation.
- * @param aOperation Operation to execute.
- * @param aToFolder Destination folder of the operation.
- */
- void RunOperationL(
- MFileManagerProcessObserver::TFileManagerProcess aOperation,
- const TDesC& aToFolder );
-
- /**
- * Gets reference to drive info.
- */
- TFileManagerDriveInfo& DriveInfo() const;
-
- /**
- * Refreshes drive info.
- */
- void RefreshDriveInfoL();
-
- void StartProcessL(
- MFileManagerProcessObserver::TFileManagerProcess aProcess,
- TInt aValue = KErrNotFound );
-
- void CmdUnlockDriveL();
-
- void CmdFormatDriveL();
-
-// void CmdRenameDriveL();
-//
-// void CmdSetDrivePasswordL();
-//
-// void CmdChangeDrivePasswordL();
-//
-// void CmdRemoveDrivePasswordL();
-//
-// void CmdMemoryCardDetailsL();
-
- TInt UpdatePassword(
- TInt aDrive, const TDesC& aOldPwd, const TDesC& aPwd );
-
- TInt UnlockRemovePasswordL( TInt aDrive, TBool aRemove );
-
- /**
- * Sets remote drive connection state.
- *
- * @param aState ETrue to connect, EFalse to disconnect.
- */
- void SetRemoteDriveConnectionStateL( TBool aState );
-
- /**
- * Opens remote drive setting view.
- *
- * @param aDriveName Name of the remote drive.
- */
- void OpenRemoteDriveSettingsL(
- const TDesC& aDriveName = KNullDesC );
-
- /**
- * Checks if item is on disconnected remote drive.
- *
- * @param aProp Item properties.
- * @return ETrue if item is on disconnect drive. Otherwise EFalse.
- */
- TBool IsDisconnectedRemoteDrive(
- CFileManagerItemProperties& aProp );
-
- /**
- * Performs remote drive menu filtering.
- *
- * @param aMenuPane Menu instance to be filtered.
- */
- void RemoteDriveCommonFilteringL( CEikMenuPane& aMenuPane );
-
- /**
- * Renames current drive.
- *
- * @param aForceDefaultName ETrue to offer the default name by force.
- */
- void RenameDriveL( TBool aForceDefaultName );
-
- /**
- * Handles refresh directory command.
- */
- void CmdRefreshDirectoryL();
-
- /**
- * Shows eject query.
- */
- void ShowEjectQueryL();
-
- /**
- * Launches progress dialog with given final and initial values.
- * aOperation parameter is used to determine what resource
- * should be used when displaying dialog.
- * @param aFinalValue Final value of the created progress dialog.
- * @param aInitialValue Initial value of the created progress dialog.
- * @param aOperation Operation that this progress dialog represents
- * @param aImmediatelyVisible Dialog is immediately visible if ETrue
- */
- void LaunchProgressDialogL(
- TInt64 aFinalValue,
- TInt64 aInitialValue,
- MFileManagerProcessObserver::TFileManagerProcess aOperation,
- TBool aImmediatelyVisible = EFalse );
-
- TBool AskPathL( TDes& aPath, TInt aTextId );
-
- void SetCbaMskTextL( const TInt aTextId );
-
- void UpdateCommonCbaL();
-
- TBool IsDriveAvailable( const TDesC& aPath ) const;
-
- TBool IsDriveAvailable( const TInt aDrive ) const;
-
- TBool DriveReadOnlyMmcL( const TInt aDrive ) const;
-
- TBool DriveReadOnlyMmcL( const TDesC& aFullPath ) const;
-
- TBool CheckPhoneState() const;
-
- TBool StopProgressDialogAndStoreValues();
-
- void CmdSortL( TInt aCommand );
-
- CFileManagerFeatureManager& FeatureManager() const;
-
- void ShowDiskSpaceErrorL( const TDesC& aFolder );
-
- /**
- * Sets given media password string to empty and zero fills it.
- *
- * @param aPwd Media password to clean up.
- */
- static void EmptyPwd( TDes& aPwd );
-
- /**
- * Converts chars to media password.
- *
- * @param aWord Password to convert in Unicode.
- * @param aConverted Converted password.
- */
- static void ConvertCharsToPwd( const TDesC& aWord, TDes8& aConverted );
-
- /**
- * Gets drive information at current position.
- *
- * @param aInfo Stores drive information.
- * @return Drive identifier or KErrNotFound.
- */
- TInt DriveInfoAtCurrentPosL( TFileManagerDriveInfo& aInfo );
-
- protected:
-
- /**
- * C++ default constructor.
- */
- CFileManagerViewBase();
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- virtual void ConstructL( TInt aResId );
-
- private: // New methods
- /**
- * Constructs an array that contains the indices
- * of marked items.
- * @return Array of marked items.
- */
- CArrayFixFlat<TInt>* MarkedArrayLC();
-
- /**
- * Gets paths of marked sendable files
- * @param Reference to get size of the sendable files
- * @return Array of sendable file items
- */
- CArrayFixFlat<TInt>* GetSendFilesLC( TInt& aSize );
-
- /**
- * Filters Edit menu in aMenuPane.
- */
- void MarkMenuFilteringL( CEikMenuPane& aMenuPane );
-
- /**
- * Creates a send ui query
- */
- void SendUiQueryL();
-
- /**
- * Timer calls this for updating the progress bar.
- */
- void DoUpdateProgressBar();
-
- /**
- * Returns true if all or any focused item or marked items are protected.
- *
- * The 'all' or 'any' mode of operation is controlled by the aMode parameter.
- *
- * @param aMode controls the 'all' or 'any' mode. ETrue = 'all'.
- * @return ETrue all chosen items are protected
- * EFalse at least one of the items are not protected
- */
- TBool AreChosenFilesProtectedL( TBool aMode );
-
- /**
- * Creates and displayes the Context sensitive menu
- */
- void ShowContextSensitiveMenuL();
-
- /**
- * Adds SendUi option to option menu
- */
- void AddSendOptionL(
- CEikMenuPane& aMenuPane,
- const TInt aCommandIdAfter );
-
- /**
- * Check is delete condition ok for given item
- */
- TBool DeleteStatusNotOkL(
- CFileManagerItemProperties& aProp,
- TInt aSelectionCount ) const;
-
- /**
- * Deletes focused or marked items from current listbox
- */
- void DeleteItemsL( TInt aIndex );
-
- /**
- * Checks if given index has InfoUrl.
- * @param aIndex given index
- * @return ETrue if given index has InfoUrl,
- * EFalse otherwise.
- */
- TBool HasInfoUrlL( TInt aIndex );
-
- /**
- * Opens InfoUrl of given index in browser.
- * @param aIndex given index
- */
- void OpenInfoUrlL( TInt aIndex );
-
- /**
- * Checks file rights and shows note if expired.
- * @param aFullPath File to check
- * @return ETrue if rights are valid
- * EFalse if rights are expired
- */
- TBool CheckFileRightsAndInformIfExpiredL( const TDesC& aFullPath );
-
- /**
- * Filters memory store menu in aMenuPane.
- */
- void MemoryStoreMenuFilteringL( CEikMenuPane& aMenuPane );
-
- /**
- * Filters organise menu in aMenuPane.
- */
- void OrganiseMenuFilteringL( CEikMenuPane& aMenuPane );
-
- /**
- * Filters details menu in aMenuPane.
- */
- void DetailsMenuFilteringL( CEikMenuPane& aMenuPane );
-//
-// /**
-// * Filters memory card menu in aMenuPane.
-// */
-// void MemoryCardMenuFilteringL( CEikMenuPane& aMenuPane );
-//
-// /**
-// * Filters memory card password menu in aMenuPane.
-// */
-// void MemoryCardPasswordMenuFilteringL( CEikMenuPane& aMenuPane );
-
- /**
- * Filters context sensitive menu in aMenuPane.
- */
- void ContextSensitiveMenuFilteringL( CEikMenuPane& aMenuPane );
-
- /**
- * Launches progress bar
- */
- void LaunchProgressBarL(
- TInt aDialogId,
- TInt aTextId,
- TInt64 aFinalValue,
- TInt64 aInitialValue,
- TBool aPeriodic,
- TBool aImmediatelyVisible );
-
- /**
- * Starts refresh progress dialog
- */
- void RefreshProgressDelayedStartL();
-
- void CheckPostponedDirectoryRefresh();
-
- void DenyDirectoryRefresh( TBool aDeny );
-
- void SortMenuFilteringL( CEikMenuPane& aMenuPane );
-
- void DoProcessFinishedL( TInt aError, const TDesC& aName );
-
- void DoLaunchProgressDialogAsync();
-
- static TInt LaunchProgressDialogAsync( TAny* aPtr );
-
- TInt FilesCountInSearchField();
-
- protected: // Data
- /// Own: Container that this view handles.
- CFileManagerContainerBase* iContainer;
- /// Ref: Reference to File Manager engine.
- CFileManagerEngine& iEngine;
- /// Own: Progress dialog for iActiveExec
- CAknProgressDialog* iProgressDialog;
- /// Own: Progress dialog for iActiveExec
- CAknProgressDialog* iProgressDialogRefresh;
- /// Ref: Progress info of iProgressDialog
- CEikProgressInfo* iProgressInfo;
- /// Own: Active object that executes copy and move operations
- CFileManagerActiveExecute* iActiveExec;
- /// Own: Array of marked items in listbox
- CArrayFixFlat<TInt>* iMarkedArray;
- /// Currently active process
- MFileManagerProcessObserver::TFileManagerProcess iActiveProcess;
- /// Own: Popup menu for showing context sensitive menu
- CEikMenuBar* iPopupMenu;
- /// Own: This is used to update the progress bar
- CPeriodic* iPeriodic;
- // This is for progress bar
- TInt64 iTotalTransferredBytes;
- // This is for progress bar(in order to support over 2Gb files)
- // Own: for wait note wrapper, delete items
- CFileManagerActiveDelete* iActiveDelete;
- // current listbox index
- TInt iIndex;
- // Own: Timer object to start refresh progress dialog
- CPeriodic* iRefreshProgressDelayedStart;
- // Own: Indicates that scheduled backup is pending
- TBool iSchBackupPending;
- // Own: Eject query dialog
- CAknQueryDialog* iEjectQueryDialog;
- // Own: Indicates if eject has been done
- TBool iEjectDone;
- // Own: Stores current progress value
- TInt64 iProgressCurrentValue;
- // Own: Stores final progress value
- TInt64 iProgressFinalValue;
- // Own: Denies directory refresh during query until selected operation gets started
- TBool iDirectoryRefreshDenied;
- // Own: Indicates postponed directory refresh
- TBool iDirectoryRefreshPostponed;
- // Own: For wait note stepping
- CAknWaitNoteWrapper* iWaitNoteWrapper;
- // Own: Indicates if there's a SendUi popup query dialog
- TBool iSendUiPopupOpened;
-
- };
-
-#endif // CFILEMANAGERVIEWBASE_H
-
-// End of File
--- a/filemanager/App/inc/Cfilemanagersearchresultsview.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: View for search results
-*
-*/
-
-
-#ifndef CFILEMANAGERSEARCHRESULTSVIEW_H
-#define CFILEMANAGERSEARCHRESULTSVIEW_H
-
-// INCLUDES
-#include "CFileManagerViewBase.h"
-
-// CONSTANTS
-_LIT8( KFileManagerSearchViewRefreshMsg, "FmgrRefresh" );
-
-// FORWARD DECLARATIONS
-class CFileManagerSearchFileArray;
-class CAknNavigationControlContainer;
-class CAknNavigationDecorator;
-// CLASS DECLARATION
-/**
- * Search results view of the application.
- */
-class CFileManagerSearchResultsView : public CFileManagerViewBase
- {
- public: // Constructors and destructor
- /**
- * Two-phased constructor.Leaves created view
- * to cleanup stack.
- *
- * @return Newly constructed view
- */
- static CFileManagerSearchResultsView* NewLC();
-
- /**
- * Destructor.
- */
- ~CFileManagerSearchResultsView();
-
- public:
-
- /**
- * Forwards DirectoryChange information to active view
- * @since 2.0
- */
- void DirectoryChangedL();
-
- private: // From CAknView
- /**
- * @see CAknView
- */
- void HandleCommandL( TInt aCommand );
-
- /**
- * @see CAknView
- */
- void DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );
-
- /**
- * @see CAknView
- */
- void DoDeactivate();
-
- /**
- * @see CAknView
- */
- TUid Id() const;
-
- private: // From CFileManagerViewBase
- /**
- * @see CFileManagerViewBase
- */
- CFileManagerContainerBase* CreateContainerL();
-
- /**
- * @see CFileManagerViewBase
- */
- void UpdateCbaL();
-
- private:
- /**
- * Standard C++ constructor.
- */
- CFileManagerSearchResultsView();
-
- /**
- * 2nd phase constructor.
- */
- void ConstructL();
-
- void CmdBackL();
-
- void RefreshTitleL();
-
- private: // Data
- /// Ref: Navi pane of the view
- CAknNavigationControlContainer* iNaviPane;
-
- /// Ref: Pointer to empty navidecorator, needed for popping up correct decorator
- CAknNavigationDecorator* iNaviDecorator;
-
- };
-
-#endif // CFILEMANAGERSEARCHRESULTSVIEW_H
-
-// End of File
--- a/filemanager/App/inc/FileManager.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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 for project FileManager
-*
-*/
-
-
-#ifndef FILEMANAGER_HRH
-#define FILEMANAGER_HRH
-
-/**
- * View IDs of File Manager
- *
- */
-enum TFileManagerViewIds
- {
- EFileManagerMainViewId = 1,
- EFileManagerMemoryStoreViewId,
- EFileManagerFoldersViewId,
- EFileManagerSearchResultsViewId,
- EFileManagerBackupViewId,
- EFileManagerRestoreViewId
- };
-
-/**
- * Command IDs of FileManager
- */
-enum TFileManagerCommands
- {
- EFileManagerOpen = 1,
- EFileManagerSend,
- EFileManagerDelete,
- EFileManagerMoveToFolder,
- EFileManagerCopyToFolder,
- EFileManagerNewFolder,
- EFileManagerMark,
- EFileManagerRename,
- EFileManagerFindFile,
- EFileManagerReceiveViaIR,
- EFileManagerViewInfo,
- EFileManagerMemoryState,
- EFileManagerFileDetails,
- EFileManagerFolderDetails,
- // Mark / Unmark subcommands
- EFileManagerMarkOne,
- EFileManagerUnmarkOne,
- EFileManagerToggleMark,
- EFileManagerMarkAll,
- EFileManagerUnmarkAll,
- EFileManagerCheckMark,
- // Selection key
- EFileManagerSelectionKey,
- EFileManagerMoreInfoOnline,
- EFileManagerBackup,
- EFileManagerRestore,
- EFileManagerEject,
- EFileManagerDetails,
- EFileManagerMemoryCardDetails,
- EFileManagerOrganise,
- EFileManagerConnectRemoveDrive,
- EFileManagerDisconnectRemoveDrive,
- EFileManagerRefreshRemoteDrive,
- EFileManagerRemoveDrives, // Remove drives subcommands
- EFileManagerRemoveDrivesSettings,
- EFileManagerRemoveDrivesMapDrive,
- EFileManagerRemoveDrivesDelete,
- EFileManagerMemoryCard, // Memory card subcommands
- EFileManagerMemoryCardName,
- EFileManagerMemoryCardRename,
- EFileManagerMemoryCardFormat,
- EFileManagerMemoryCardPassword, // Memory card password subcommands
- EFileManagerMemoryCardPasswordSet,
- EFileManagerMemoryCardPasswordChange,
- EFileManagerMemoryCardPasswordRemove,
- EFileManagerUnlockMemoryCard,
- EFileManagerFormatMassStorage,
- EFileManagerSort,
- EFileManagerSortByName,
- EFileManagerSortByType,
- EFileManagerSortMostRecentFirst,
- EFileManagerSortLargestFirst,
- EFileManagerSortByMatch,
- EFileManagerSearchSort,
- EFileManagerMemoryStorage, // Memory storage subcommands
- EFileManagerMemoryStorageDetails,
- EFileManagerMemoryStorageName,
- EFileManagerMemoryStorageRename,
- EFileManagerMemoryStorageSetPassword,
- EFileManagerMemoryStorageChangePassword,
- EFileManagerMemoryStorageRemovePassword,
- EFileManagerMemoryStorageFormat,
- EFileManagerMemoryStorageUnlock,
- EFileManagerDeleteBackup
- };
-
-#endif // FILEMANAGER_HRH
-
-// End of File
--- a/filemanager/App/inc/MFileManagerSchBackupObserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2006 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: Scheduled backup result observer
-*
-*/
-
-
-
-#ifndef M_FILEMANAGERSCHBACKUPOBSERVER_H
-#define M_FILEMANAGERSCHBACKUPOBSERVER_H
-
-
-// INCLUDES
-#include <e32base.h>
-
-
-// CLASS DECLARATION
-/**
- * This class observes global scheduled backup notifications
- *
- * @since S60 3.1
- */
-class MFileManagerSchBackupObserver
- {
-
-public:
- /**
- * Handles scheduled backup finished notification
- *
- * @since S60 3.1
- * @param aError Finished backup status
- */
- virtual void SchBackupFinishedL( TInt aError ) = 0;
-
- };
-
-#endif // M_FILEMANAGERSCHBACKUPOBSERVER_H
-
-// End of File
--- a/filemanager/App/src/CFileManagerAppUi.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1317 +0,0 @@
-/*
-* Copyright (c) 2002-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: File Manager application UI class.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <akntitle.h> // CAknTitlePane
-#include <aknnavi.h> // CAknNavigationControlContainer
-#include <aknnavide.h> // CAknNavigationDecorator
-#include <sendui.h> // CSendAppUi
-#include <sendnorm.rsg>
-#include <avkon.rsg>
-#include <barsread.h>
-#include <hlplch.h> // HlpLauncher
-#include <eikapp.h>
-#include <AknDef.h> // For layout change event definitions
-#include <utf.h>
-#include <StringLoader.h>
-#include <AknsUtils.h>
-#include <centralrepository.h>
-#include <AiwCommon.h>
-#include <bautils.h>
-#include <pathinfo.h>
-#include <driveinfo.h>
-#include <ssm/ssmstate.h>
-#include <ssm/ssmdomaindefs.h>
-
-#include <CFileManagerEngine.h>
-#include <CFileManagerIRReceiver.h>
-#include <filemanager.rsg>
-#include <filemanagerview.rsg>
-#include <FileManagerDebug.h>
-#include <FileManagerUID.h>
-#include <CFileManagerFeatureManager.h>
-#include <CFileManagerUtils.h>
-#include "CFileManagerAppUi.h"
-#include "CFileManagerDocument.h"
-#include "CFileManagerMainView.h"
-#include "CFileManagerMemoryStoreView.h"
-#ifdef RD_FILE_MANAGER_BACKUP
- #include <FileManagerSchDefinitions.h>
- #include "CFileManagerBackupView.h"
- #include "CFileManagerRestoreView.h"
- #include "CFileManagerTaskScheduler.h"
- #include "CFileManagerSchBackupHandler.h"
-#endif // RD_FILE_MANAGER_BACKUP
-#include "CFileManagerFoldersView.h"
-#include "Cfilemanagersearchresultsview.h"
-#include "CFileManagerIconArray.h"
-#include "FileManager.hrh"
-
-
-// CONSTANTS
-const TUid CFileManagerAppUi::KFileManagerMainViewId =
- { EFileManagerMainViewId };
-const TUid CFileManagerAppUi::KFileManagerMemoryStoreViewId =
- { EFileManagerMemoryStoreViewId };
-const TUid CFileManagerAppUi::KFileManagerFoldersViewId =
- { EFileManagerFoldersViewId };
-const TUid CFileManagerAppUi::KFileManagerSearchResultsViewId =
- { EFileManagerSearchResultsViewId };
-const TUid CFileManagerAppUi::KFileManagerBackupViewId =
- { EFileManagerBackupViewId };
-const TUid CFileManagerAppUi::KFileManagerRestoreViewId =
- { EFileManagerRestoreViewId };
-
-const TUid KUidFileManager = { KFileManagerUID3 };
-const TUid KUidGsRsfwPlugin = { 0x101F9778 };
-const TUid KUidGsRsFwSettingsViewId = { 11 };
-
-
-// ============================ LOCAL FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// ProcessExists
-// ---------------------------------------------------------------------------
-//
-static TBool ProcessExists( const TSecureId& aSecureId )
- {
- _LIT( KFindPattern, "*" );
- TFindProcess finder( KFindPattern );
- TFullName processName;
- while( finder.Next( processName ) == KErrNone )
- {
- RProcess process;
- if ( process.Open( processName ) == KErrNone )
- {
- TSecureId processId( process.SecureId() );
- process.Close();
- if( processId == aSecureId )
- {
- return ETrue;
- }
- }
- }
- return EFalse;
- }
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::CFileManagerAppUi
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerAppUi::CFileManagerAppUi() :
- iInitialFolderLevel( KErrNotFound )
- {
- FUNC_LOG
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::~CFileManagerAppUi
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerAppUi::~CFileManagerAppUi()
- {
- FUNC_LOG
-
- iCoeEnv->RemoveForegroundObserver( *this );
- delete iIRReceiver;
- delete iIRDeleteCB;
- delete iSendUi;
-#ifdef RD_FILE_MANAGER_BACKUP
- delete iTaskScheduler;
- delete iSchBackupHandler;
-#endif // RD_FILE_MANAGER_BACKUP
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
- engine.SetObserver( NULL );
- iSAS.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ConstructL()
- {
- FUNC_LOG
-
- // Construct only must have stuff required for app start here.
- // Other stuff is constructed later to decrease app start time.
- INFO_LOG( "CFileManagerAppUi::ConstructL()-BaseConstructL" )
- BaseConstructL( EAknEnableSkin | EAknEnableMSK | EAknSingleClickCompatible );
-
- INFO_LOG( "CFileManagerAppUi::ConstructL()-Setup panes" )
- CEikStatusPane* sp = StatusPane();
- iTitlePane = static_cast< CAknTitlePane* >
- ( sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
-
- INFO_LOG( "CFileManagerAppUi::ConstructL()-Create main view" )
- CAknView* view = CFileManagerMainView::NewLC();
- AddViewL( view ); // Takes ownership
- CleanupStack::Pop( view );
- SetDefaultViewL( *view );
- iActiveView = view->Id();
-
- User::LeaveIfError( iSAS.Connect( KSM2GenMiddlewareDomain3 ) );
-
-#ifdef RD_FILE_MANAGER_BACKUP
- CFileManagerDocument* doc =
- static_cast< CFileManagerDocument* >( Document() );
- iSchBackupStandalone = doc->IsScheduledBackup();
- if ( iSchBackupStandalone )
- {
- // Do standalone scheduled backup startup
- INFO_LOG( "CFileManagerAppUi::ConstructL-Launch scheduled backup" )
- iEikonEnv->WsSession().ComputeMode( RWsSession::EPriorityControlDisabled );
- RThread().SetProcessPriority( EPriorityForeground );
- sp->MakeVisible( EFalse );
- sp->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_EMPTY );
- StartSchBackupL();
- }
- else
- {
-#endif // RD_FILE_MANAGER_BACKUP
-
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
- iWaitingForParams = engine.FeatureManager().IsEmbedded();
-
- // Do normal application startup
- INFO_LOG( "CFileManagerAppUi::ConstructL()-Add foreground observer" )
- iCoeEnv->AddForegroundObserverL( *this );
-
-#ifdef RD_FILE_MANAGER_BACKUP
- }
-#endif // RD_FILE_MANAGER_BACKUP
-
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::HandleCommandL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::HandleCommandL( TInt aCommand )
- {
- switch( aCommand )
- {
- case EEikCmdExit: // FALLTHROUGH
- case EAknSoftkeyExit:
- {
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
- engine.CancelRefresh();
- Exit();
- break;
- }
- case EAknCmdHelp:
- {
- HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
- AppHelpContextL());
- break;
- }
- default:
- break;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::HandleViewDeactivation
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::HandleViewDeactivation(
- const TVwsViewId& aViewIdToBeDeactivated,
- const TVwsViewId& aNewlyActivatedViewId )
- {
- if ( aNewlyActivatedViewId.iAppUid == Application()->AppDllUid() )
- {
- if ( IsFileManagerView( aNewlyActivatedViewId.iViewUid ) &&
- View( aNewlyActivatedViewId.iViewUid ) )
- {
- iActiveView = aNewlyActivatedViewId.iViewUid;
- }
- }
- CAknViewAppUi::HandleViewDeactivation(
- aViewIdToBeDeactivated, aNewlyActivatedViewId );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::ActivateFoldersViewL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerAppUi::ActivateFoldersViewL()
- {
- if ( iActiveView != KFileManagerFoldersViewId )
- {
- if ( iSearchViewOpen )
- {
- CreateAndActivateLocalViewL( KFileManagerFoldersViewId,
- CFileManagerFoldersView::KOpenFromSearchResultsView,
- KNullDesC8 );
- }
- else
- {
- CreateAndActivateLocalViewL( KFileManagerFoldersViewId );
- }
- return ETrue;
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::CloseFoldersViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::CloseFoldersViewL()
- {
- if ( iSearchViewOpen )
- {
- CreateAndActivateLocalViewL( KFileManagerSearchResultsViewId );
- iActiveView = KFileManagerSearchResultsViewId;
- }
- else
- {
- ExitEmbeddedAppIfNeededL();
- ActivateMemoryStoreViewL();
- iActiveView = KFileManagerMemoryStoreViewId;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::ActivateSearchResultsViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ActivateSearchResultsViewL()
- {
- if ( iActiveView != KFileManagerSearchResultsViewId )
- {
- // Activate with refresh
- CreateAndActivateLocalViewL(
- KFileManagerSearchResultsViewId,
- KNullUid,
- KFileManagerSearchViewRefreshMsg );
- iSearchViewOpen = ETrue;
- }
-
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
- SetTitleL( engine.SearchString() );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::CloseSearchResultsViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::CloseSearchResultsViewL()
- {
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
- TInt level( engine.FolderLevel() );
-
- // If embedded, then ensure that the return folder is not below given level
- // or on different drive
- if ( engine.FeatureManager().IsEmbedded() )
- {
- TPtrC dir( engine.CurrentDirectory().Left(
- iFolderToOpenAtStartup.Length() ) );
- if ( engine.FolderLevel() < iInitialFolderLevel ||
- dir.CompareF( iFolderToOpenAtStartup ) )
- {
- engine.SetDirectoryWithBackstepsL( iFolderToOpenAtStartup );
- level = iInitialFolderLevel;
- }
- }
-
- if ( level > 0 )
- {
- CreateAndActivateLocalViewL( KFileManagerFoldersViewId );
- iActiveView = KFileManagerFoldersViewId;
- }
- else if ( !level )
- {
- CreateAndActivateLocalViewL( KFileManagerMemoryStoreViewId );
- iActiveView = KFileManagerMemoryStoreViewId;
- }
- else
- {
- CreateAndActivateLocalViewL( KFileManagerMainViewId );
- iActiveView = KFileManagerMainViewId;
- }
- iSearchViewOpen = EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::RestoreDefaultTitleL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::RestoreDefaultTitleL()
- {
- TResourceReader reader;
- iCoeEnv->CreateResourceReaderLC( reader, R_FILEMANAGER_TITLE_PANE );
- iTitlePane->SetFromResourceL( reader ); // restore title pane
- CleanupStack::PopAndDestroy(); // reader
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::SendUiL
-//
-// -----------------------------------------------------------------------------
-//
-CSendUi& CFileManagerAppUi::SendUiL()
- {
- if ( !iSendUi )
- {
- iSendUi = CSendUi::NewL();
- }
- return *iSendUi;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::HandleResourceChangeL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::HandleResourceChangeL( TInt aType )
- {
- if( aType == KAknsMessageSkinChange ||
- aType == KEikDynamicLayoutVariantSwitch )
- {
- CEikStatusPane* sp = StatusPane();
- sp->HandleResourceChange( aType );
- CFileManagerDocument* doc =
- static_cast< CFileManagerDocument* >( Document() );
- doc->ClearStringCache();
- doc->IconArray()->UpdateIconsL();
-
- if ( iActiveView == KFileManagerFoldersViewId )
- {
- CFileManagerFoldersView* view =
- static_cast< CFileManagerFoldersView* >(
- View( KFileManagerFoldersViewId ) );
- view->HandleResourceChangeL( KAknsMessageSkinChange );
- }
- NotifyViewScreenDeviceChanged();
- }
-
- CAknViewAppUi::HandleResourceChangeL( aType );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::HandleGainingForeground
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::HandleGainingForeground()
- {
- if ( !iForeGround )
- {
- iForeGround = ETrue;
-
- CFileManagerViewBase* view =
- static_cast< CFileManagerViewBase* >( View( iActiveView ) );
-
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
-
- engine.SetObserver( view );
- view->NotifyForegroundStatusChange( iForeGround );
-
- if ( view->CurrentProcess() ==
- MFileManagerProcessObserver::ENoProcess )
- {
- engine.FileSystemEvent( EFalse );
- }
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::HandleLosingForeground
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::HandleLosingForeground()
- {
- iForeGround = EFalse;
-
- CFileManagerViewBase* view =
- static_cast< CFileManagerViewBase* >( View( iActiveView ) );
-
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
-
- engine.SetObserver( view );
- view->StoreIndex();
- view->NotifyForegroundStatusChange( iForeGround );
-
- if ( view->CurrentProcess() ==
- MFileManagerProcessObserver::ENoProcess )
- {
- engine.FileSystemEvent( ETrue );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::IsFmgrForeGround
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerAppUi::IsFmgrForeGround()
- {
- return iForeGround;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::HandleScreenDeviceChangedL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::HandleScreenDeviceChangedL()
- {
- CAknViewAppUi::HandleScreenDeviceChangedL();
- NotifyViewScreenDeviceChanged();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::HandleError()
-//
-// -----------------------------------------------------------------------------
-//
-TErrorHandlerResponse CFileManagerAppUi::HandleError( TInt aError,
- const SExtendedError& aExtErr, TDes& aErrorText, TDes& aContextText )
- {
- ERROR_LOG1( "CFileManagerAppUi::HandleError()-aError=%d", aError )
- switch ( aError )
- {
- case KErrCancel: // FALLTHROUGH
- case KErrNotReady:
- {
- // Suppress notes for canceled operations.
- // Suppress notes for not ready when caused by hotswap.
- if ( View( iActiveView ) )
- {
- return ENoDisplay;
- }
- break;
- }
- case KErrNotFound: // Fall through
- case KErrPathNotFound:
- {
- CFileManagerViewBase* view =
- static_cast< CFileManagerViewBase* >( View( iActiveView ) );
- TBool handled( EFalse );
- TRAPD( err, handled = view->HandleFileNotFoundL( aError ) );
- if ( err == KErrNone && handled )
- {
- // Suppress not found when handled by refresh.
- return ENoDisplay;
- }
- break;
- }
- default:
- {
- break;
- }
- }
- return CAknViewAppUi::HandleError(
- aError, aExtErr, aErrorText, aContextText );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi:ActivateMainViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ActivateMainViewL()
- {
- if ( iActiveView != KFileManagerMainViewId )
- {
- CreateAndActivateLocalViewL( KFileManagerMainViewId );
- iSearchViewOpen = EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi:ActivateMemoryStoreViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ActivateMemoryStoreViewL()
- {
- if ( iActiveView != KFileManagerMemoryStoreViewId )
- {
- CreateAndActivateLocalViewL( KFileManagerMemoryStoreViewId );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::CloseMemoryStoreViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::CloseMemoryStoreViewL()
- {
- if ( iSearchViewOpen )
- {
- CreateAndActivateLocalViewL( KFileManagerSearchResultsViewId );
- }
- else
- {
- ExitEmbeddedAppIfNeededL();
- CreateAndActivateLocalViewL( KFileManagerMainViewId );
- iActiveView = KFileManagerMainViewId;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::DriveInfo
-//
-// -----------------------------------------------------------------------------
-//
-TFileManagerDriveInfo& CFileManagerAppUi::DriveInfo()
- {
- return iDriveInfo;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::ActivateRemoteDriveSettingsViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ActivateRemoteDriveSettingsViewL( const TDesC& aDriveName )
- {
- CFileManagerDocument* doc =
- static_cast< CFileManagerDocument* >( Document() );
- CFileManagerFeatureManager& featureManager( doc->Engine().FeatureManager() );
-
- if ( !featureManager.IsRemoteStorageFwSupported() )
- {
- return;
- }
-
- if ( !View( KUidGsRsfwPlugin ) )
- {
- TUid plugin_ID_Key;
- TAny* ptr = REComSession::CreateImplementationL(
- KUidGsRsfwPlugin, plugin_ID_Key );
- CAknView* view = reinterpret_cast< CAknView* >( ptr );
-
- TRAPD( err,
- {
- doc->StorePluginL( plugin_ID_Key );
- AddViewL( view ); // Takes ownership
- } );
- if ( err != KErrNone )
- {
- REComSession::DestroyedImplementation( plugin_ID_Key );
- User::Leave( err );
- }
- }
-
- if ( aDriveName.Length() )
- {
- // 16bit Unicode conversion to UTF8 takes max 3 bytes per char
- const TInt KUtf8Factor = 3;
- HBufC8* buffer8 = HBufC8::NewLC( aDriveName.Length() * KUtf8Factor );
- TPtr8 ptr8( buffer8->Des() );
-
- CnvUtfConverter::ConvertFromUnicodeToUtf8( ptr8, aDriveName );
- CreateActivateViewEventL(
- TVwsViewId( KUidFileManager, KUidGsRsfwPlugin ),
- KUidGsRsFwSettingsViewId,
- *buffer8 );
- CleanupStack::PopAndDestroy( buffer8 );
- }
- else
- {
- CreateActivateViewEventL(
- TVwsViewId( KUidFileManager, KUidGsRsfwPlugin ),
- KUidGsRsFwSettingsViewId,
- KNullDesC8() );
- }
- }
-
-#ifdef RD_FILE_MANAGER_BACKUP
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi:ActivateBackupViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ActivateBackupViewL()
- {
- if ( iActiveView != KFileManagerBackupViewId )
- {
- CAknView* view = View( KFileManagerBackupViewId );
- if ( !view )
- {
- view = CFileManagerBackupView::NewLC();
- AddViewL( view ); // Takes ownership
- CleanupStack::Pop( view );
- }
- CreateAndActivateLocalViewL( KFileManagerBackupViewId );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi:CloseBackupViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::CloseBackupViewL()
- {
- CreateAndActivateLocalViewL( KFileManagerMainViewId );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi:ActivateRestoreViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ActivateRestoreViewL( TBool aDeleteBackup )
- {
- if ( iActiveView != KFileManagerRestoreViewId )
- {
- if ( aDeleteBackup )
- {
- CreateAndActivateLocalViewL(
- KFileManagerRestoreViewId,
- CFileManagerRestoreView::KDeleteBackups,
- KNullDesC8 );
- }
- else
- {
- CreateAndActivateLocalViewL( KFileManagerRestoreViewId );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi:CloseRestoreViewL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::CloseRestoreViewL()
- {
- CreateAndActivateLocalViewL( KFileManagerBackupViewId );
- iActiveView = KFileManagerBackupViewId;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::ProcessCommandParametersL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerAppUi::ProcessCommandParametersL(
- TApaCommand aCommand,
- TFileName& aDocumentName,
- const TDesC8& aTail )
- {
- switch( aCommand )
- {
- case EApaCommandOpen:
- {
- TLex8 lex8( aTail );
- TInt32 sortMode( 0 );
- if ( lex8.Val( sortMode, EDecimal ) != KErrNone )
- {
- sortMode = 0; // Use the default on error
- }
- SetFolderToOpenAtStartup( aDocumentName, sortMode );
- break;
- }
- default:
- {
- break;
- }
- }
- aDocumentName.Zero();
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi:ProcessMessageL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ProcessMessageL(
- TUid /*aUid*/, const TDesC8& aParams )
- {
- if ( aParams.Length() )
- {
- // Allow the backup only if scheduled backup starter exists
- const TSecureId KFileManagerSchBkupUid( KFileManagerSchBkupUID3 );
- if( ProcessExists( KFileManagerSchBkupUid ) )
- {
- HBufC* cmd = HBufC::NewLC( aParams.Length() );
- TPtr ptr( cmd->Des() );
- ptr.Copy( aParams );
- if ( !ptr.Compare( KSchBackupTaskName ) )
- {
- StartSchBackupL();
- }
- CleanupStack::PopAndDestroy( cmd );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi:StartSchBackupL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::StartSchBackupL()
- {
- CFileManagerViewBase* view =
- static_cast< CFileManagerViewBase* >( View( iActiveView ) );
- view->StartSchBackupL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::TaskSchedulerL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerTaskScheduler& CFileManagerAppUi::TaskSchedulerL()
- {
- if ( !iTaskScheduler )
- {
- CFileManagerDocument* doc =
- static_cast< CFileManagerDocument* >( Document() );
- iTaskScheduler = CFileManagerTaskScheduler::NewL(
- doc->Engine() );
- }
- return *iTaskScheduler;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::SchBackupHandlerL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerSchBackupHandler& CFileManagerAppUi::SchBackupHandlerL()
- {
- if ( !iSchBackupHandler )
- {
- CFileManagerDocument* doc =
- static_cast< CFileManagerDocument* >( Document() );
- iSchBackupHandler = CFileManagerSchBackupHandler::NewL(
- doc->Engine() );
- iSchBackupHandler->SetObserver( this );
- }
- return *iSchBackupHandler;
- }
-
-#endif // RD_FILE_MANAGER_BACKUP
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::StartIRReceiveL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::StartIRReceiveL(
- MFileManagerProcessObserver& aObserver )
- {
- FUNC_LOG
-
- delete iIRDeleteCB;
- iIRDeleteCB = NULL;
-
- delete iIRReceiver;
- iIRReceiver = NULL;
-
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
- iIRReceiver = CFileManagerIRReceiver::NewL(
- aObserver,
- engine.CurrentDirectory(),
- engine );
- iIRReceiver->ReceiveFileL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerAppUi::StopIRReceive()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerAppUi::StopIRReceive()
- {
- FUNC_LOG
-
- if ( iIRReceiver )
- {
- iIRReceiver->StopReceiving();
-
- delete iIRDeleteCB;
- iIRDeleteCB = NULL;
-
- iIRDeleteCB = new CAsyncCallBack(
- TCallBack( DeleteIRReceiveCB, this ),
- CActive::EPriorityStandard );
- if ( iIRDeleteCB )
- {
- iIRDeleteCB->CallBack();
- }
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::DeleteIRReceiveCB
-//
-// ------------------------------------------------------------------------------
-//
-TInt CFileManagerAppUi::DeleteIRReceiveCB( TAny* aPtr )
- {
- FUNC_LOG
-
- CFileManagerAppUi* self = static_cast< CFileManagerAppUi* >( aPtr );
-
- delete self->iIRReceiver;
- self->iIRReceiver = NULL;
-
- delete self->iIRDeleteCB;
- self->iIRDeleteCB = NULL;
-
- return KErrNone;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::NotifyViewScreenDeviceChanged
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::NotifyViewScreenDeviceChanged()
- {
- CAknView* activeView = View( iActiveView );
- if ( activeView )
- {
- CFileManagerViewBase* view =
- static_cast< CFileManagerViewBase* > ( activeView );
- view->ScreenDeviceChanged();
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::SetTitleL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::SetTitleL( const TDesC& aTitle )
- {
- iTitlePane->SetTextL( aTitle );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::SetTitleL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::SetTitleL( const TInt aTitle )
- {
- HBufC* title = StringLoader::LoadLC( aTitle );
- iTitlePane->SetTextL( *title );
- CleanupStack::PopAndDestroy( title );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::ScheduledBackupFinishedL
-//
-// ------------------------------------------------------------------------------
-//
-#ifdef RD_FILE_MANAGER_BACKUP
-void CFileManagerAppUi::SchBackupFinishedL( TInt /*aError*/ )
- {
- CFileManagerViewBase* view =
- static_cast< CFileManagerViewBase* >( View( iActiveView ) );
- if ( view->CurrentProcess() == MFileManagerProcessObserver::ESchBackupProcess )
- {
- view->SchBackupFinishedL();
- }
- if ( iSchBackupStandalone )
- {
- ProcessCommandL( EAknCmdExit );
- }
- }
-#else // RD_FILE_MANAGER_BACKUP
-void CFileManagerAppUi::SchBackupFinishedL( TInt /*aError*/ )
- {
- }
-#endif // RD_FILE_MANAGER_BACKUP
-
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::IsFileManagerView
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerAppUi::IsFileManagerView( const TUid aViewUid )
- {
- return ( aViewUid == KFileManagerFoldersViewId ||
- aViewUid == KFileManagerSearchResultsViewId ||
- aViewUid == KFileManagerMainViewId ||
- aViewUid == KFileManagerMemoryStoreViewId ||
- aViewUid == KFileManagerBackupViewId ||
- aViewUid == KFileManagerRestoreViewId );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::NotifyCbaUpdate
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::NotifyCbaUpdate()
- {
- CAknView* activeView = View( iActiveView );
- if ( activeView )
- {
- CFileManagerViewBase* view =
- static_cast< CFileManagerViewBase* > ( activeView );
- TRAP_IGNORE( view->UpdateCbaL() );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::SetFolderToOpenAtStartup
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::SetFolderToOpenAtStartup(
- const TDesC& aFullPath, TInt aSortMode )
- {
- FUNC_LOG
-
- INFO_LOG2(
- "CFileManagerAppUi::SetFolderToOpenAtStartup-%S-%d",
- &aFullPath, aSortMode )
-
- // Validate given path
- _LIT( KWild1, "*" );
- _LIT( KWild2, "?" );
- const TInt KWildLen = 1;
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
- RFs& fs( iEikonEnv->FsSession() );
- TInt err( KErrNone );
- if ( !aFullPath.Length() ||
- !aFullPath.Left( KWildLen ).CompareF( KWild1 ) ||
- !aFullPath.Left( KWildLen ).CompareF( KWild2 ) )
- {
- err = KErrBadName; // Ignore bad drives
- }
- else
- {
- TParsePtrC parse( aFullPath );
- if ( !parse.DrivePresent() || !parse.PathPresent() )
- {
- err = KErrBadName; // Ignore bad paths
- }
- TUint driveStatus( 0 );
- if ( err == KErrNone )
- {
- TInt drive = TDriveUnit( aFullPath );
- err = DriveInfo::GetDriveStatus( fs, drive, driveStatus );
- if ( err != KErrNone ||
- !( driveStatus & DriveInfo::EDriveUserVisible ) )
- {
- err = KErrAccessDenied; // Ignore hidden drives
- }
- else
- {
- TFileName rootPath;
- err = PathInfo::GetRootPath( rootPath, drive );
- if ( err == KErrNone &&
- rootPath.CompareF( aFullPath.Left( rootPath.Length() ) ) )
- {
- err = KErrAccessDenied; // Ignore paths below root level
- }
- }
- }
- if ( err == KErrNone &&
- !( driveStatus & DriveInfo::EDriveRemote ) )
- {
- if ( engine.IsSystemFolder( parse.DriveAndPath() ) )
- {
- err = KErrAccessDenied; // Ignore system folders
- }
- else if ( !( driveStatus & DriveInfo::EDriveReadOnly ) )
- {
- TRAP( err, BaflUtils::EnsurePathExistsL(
- fs, parse.DriveAndPath() ) );
- }
- }
- if ( err == KErrNone )
- {
- iFolderToOpenAtStartup.Copy( parse.DriveAndPath() );
- engine.SetSortMethod(
- static_cast< CFileManagerEngine::TSortMethod >( aSortMode ) );
- engine.SetCurrentItemName(parse.NameAndExt());
- TRAP( err, OpenFolderViewAtStartupL() );
- }
- }
- if ( err != KErrNone )
- {
- ERROR_LOG1( "CFileManagerAppUi::SetFolderToOpenAtStartup-err=%d", err )
- iWaitingForParams = EFalse;
-
- // Refresh only if embedded app
- if ( engine.FeatureManager().IsEmbedded() )
- {
- engine.RefreshDirectory();
- }
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::ProcessAiwParamListL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ProcessAiwParamListL(
- const CAiwGenericParamList& aInParams )
- {
- FUNC_LOG
-
- iWaitingForParams = EFalse;
-
- TPtrC folder( KNullDesC );
- TInt folderSortMode( KErrNotFound );
- TInt i( 0 );
- // Get folder path
- const TAiwGenericParam* param = aInParams.FindFirst(
- i, EGenericParamDir, EVariantTypeDesC );
- if ( i != KErrNotFound && param )
- {
- folder.Set( param->Value().AsDes() );
- }
- // Get folder sort mode
- param = aInParams.FindFirst(
- i, EGenericParamDir, EVariantTypeTInt32 );
- if ( i != KErrNotFound && param )
- {
- folderSortMode = param->Value().AsTInt32();
- }
- SetFolderToOpenAtStartup( folder, folderSortMode );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::OpenFolderViewAtStartupL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::OpenFolderViewAtStartupL()
- {
- FUNC_LOG
-
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
- engine.SetDirectoryWithBackstepsL( iFolderToOpenAtStartup );
- if( engine.NavigationLevel() <= 0 )
- {
- ActivateMemoryStoreViewL();
- // Ensure that view change gets updated when used during contruction
- iActiveView = KFileManagerMemoryStoreViewId;
- }
- else
- {
- ActivateFoldersViewL();
- // Ensure that view change gets updated when used during contruction
- iActiveView = KFileManagerFoldersViewId;
- }
- // Store initial folder level when embedded
- if ( engine.FeatureManager().IsEmbedded() )
- {
- iInitialFolderLevel = engine.FolderLevel();
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::ExitEmbeddedAppIfNeededL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ExitEmbeddedAppIfNeededL()
- {
- FUNC_LOG
-
- CFileManagerEngine& engine =
- static_cast< CFileManagerDocument* >( Document() )->Engine();
- // Exit embedded app if the initial folder level is crossed
- if ( engine.FeatureManager().IsEmbedded() &&
- engine.FolderLevel() < iInitialFolderLevel )
- {
- ProcessCommandL( EAknCmdExit );
- User::Leave( KErrCancel ); // To abort current operation
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::WaitingForInputParams
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerAppUi::WaitingForInputParams() const
- {
- return iWaitingForParams;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::CreateAndActivateLocalViewL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::CreateAndActivateLocalViewL(
- TUid aViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage )
- {
- FUNC_LOG
-
- CAknView* view = View( aViewId );
- if ( !view )
- {
- if ( aViewId == KFileManagerMainViewId )
- {
- view = CFileManagerMainView::NewLC();
- }
- else if ( aViewId == KFileManagerMemoryStoreViewId )
- {
- view = CFileManagerMemoryStoreView::NewLC();
- }
- else if ( aViewId == KFileManagerFoldersViewId )
- {
- view = CFileManagerFoldersView::NewLC();
- }
- else if ( aViewId == KFileManagerSearchResultsViewId )
- {
- view = CFileManagerSearchResultsView::NewLC();
- }
- else if ( aViewId == KFileManagerBackupViewId )
- {
- view = CFileManagerBackupView::NewLC();
- }
- else if ( aViewId == KFileManagerRestoreViewId )
- {
- view = CFileManagerRestoreView::NewLC();
- }
- else
- {
- ERROR_LOG1(
- "CFileManagerAppUi::CreateAndActivateLocalViewL-InvalidView=0x%x",
- aViewId.iUid )
- User::Leave( KErrNotFound );
- }
- AddViewL( view ); // Takes ownership
- CleanupStack::Pop( view );
- }
- ActivateLocalViewL( aViewId, aCustomMessageId, aCustomMessage );
- iActiveView = aViewId;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::CreateAndActivateLocalViewL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::CreateAndActivateLocalViewL( TUid aViewId )
- {
- FUNC_LOG
-
- CreateAndActivateLocalViewL( aViewId, KNullUid, KNullDesC8 );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::IsSearchViewOpen
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerAppUi::IsSearchViewOpen() const
- {
- return iSearchViewOpen;
- }
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::BackupOrRestoreStarted
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::BackupOrRestoreStarted()
- {
- iManualBackupOrRestoreStarted.HomeTime();
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::BackupOrRestoreEnded
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::BackupOrRestoreEnded()
- {
- iManualBackupOrRestoreEnded.HomeTime();
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::BackupOrRestoreStartTime
-//
-// ------------------------------------------------------------------------------
-//
-TTime CFileManagerAppUi::BackupOrRestoreStartTime() const
- {
- return iManualBackupOrRestoreStarted;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::BackupOrRestoreEndTime
-//
-// ------------------------------------------------------------------------------
-//
-TTime CFileManagerAppUi::BackupOrRestoreEndTime() const
- {
- return iManualBackupOrRestoreEnded;
- }
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::ResetBackupOrRestoreEndTime
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerAppUi::ResetBackupOrRestoreEndTime()
- {
- iManualBackupOrRestoreStarted = 0;
- iManualBackupOrRestoreEnded = 0;
- }
-
-
-// ------------------------------------------------------------------------------
-// CFileManagerAppUi::IsSystemStateNormal
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerAppUi::IsSystemStateNormal() const
- {
- TSsmState state = iSAS.State();
- return ( state.MainState() == ESsmNormal );
- }
-
-// End of File
-
--- a/filemanager/App/src/CFileManagerApplication.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: File Manager application class.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <eikstart.h>
-#include "CFileManagerApplication.h"
-#include "CFileManagerDocument.h"
-#include "FileManagerUID.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerApplication::CFileManagerApplication
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerApplication::CFileManagerApplication()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerApplication::~CFileManagerApplication
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerApplication::~CFileManagerApplication()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerApplication::CreateDocumentL
-//
-// -----------------------------------------------------------------------------
-//
-CApaDocument* CFileManagerApplication::CreateDocumentL()
- {
- return CFileManagerDocument::NewL( *this );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerApplication::AppDllUid
-//
-// -----------------------------------------------------------------------------
-//
-TUid CFileManagerApplication::AppDllUid() const
- {
- return TUid::Uid( KFileManagerUID3 );
- }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// NewApplication
-// Creates a new FileManager application object (CFileManagerApplication).
-// Called by the application framework.
-// Returns the new application object (CFileManagerApplication).
-// NULL if out of memory.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CApaApplication* NewApplication()
- {
- return new CFileManagerApplication;
- }
-
-// -----------------------------------------------------------------------------
-// E32Main
-// Standard entry point for the application exe (FileManager.exe).
-// Returns standard Symbian OS error code, KErrNone if succesful.
-// -----------------------------------------------------------------------------
-//
-GLDEF_C TInt E32Main()
- {
- return EikStart::RunApplication( NewApplication );
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerBackupView.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,568 +0,0 @@
-/*
-* Copyright (c) 2002-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: View for backup settings
-*
-*/
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <aknlists.h>
-#include <akntitle.h>
-#include <csxhelp/fmgr.hlp.hrh>
-#include <CFileManagerEngine.h>
-#include <filemanager.rsg>
-#include <CFileManagerBackupSettings.h>
-#include <FileManagerPrivateCRKeys.h>
-#include <FileManagerDlgUtils.h>
-#include <CAknMemorySelectionDialog.h>
-#include <CAknMemorySelectionSettingPage.h>
-#ifdef RD_MULTIPLE_DRIVE
-#include <AknCommonDialogsDynMem.h>
-#include <CAknMemorySelectionDialogMultiDrive.h>
-#endif // RD_MULTIPLE_DRIVE
-#include <FileManagerDebug.h>
-#include "CFileManagerBackupView.h"
-#include "CFileManagerTaskScheduler.h"
-#include "CFileManagerSettingListContainer.h"
-#include "CFileManagerAppUi.h"
-#include "FileManager.hrh"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::CFileManagerBackupView
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupView::CFileManagerBackupView()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::NewLC
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupView* CFileManagerBackupView::NewLC()
- {
- CFileManagerBackupView* self = new( ELeave ) CFileManagerBackupView();
- CleanupStack::PushL( self );
- self->ConstructL( R_FILEMANAGER_BACKUP_VIEW );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::~CFileManagerBackupView
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupView::~CFileManagerBackupView()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::DoActivateL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage )
- {
- FUNC_LOG
-
- CFileManagerViewBase::DoActivateL(
- aPrevViewId, aCustomMessageId, aCustomMessage );
-
- static_cast< CFileManagerAppUi* >( AppUi() )->SetTitleL(
- R_QTN_FMGR_BACKUP_TITLE );
-
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- settings.RefreshL();
-
- iContainer->RefreshListL( iIndex );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerBackupView::DoDeactivate
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::DoDeactivate()
- {
- FUNC_LOG
-
- CFileManagerViewBase::DoDeactivate();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::DirectoryChangedL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::DirectoryChangedL()
- {
- FUNC_LOG
-
- TRAP_IGNORE( RefreshSettingsL() );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::Id
-// ----------------------------------------------------------------------------
-//
-TUid CFileManagerBackupView::Id() const
- {
- return CFileManagerAppUi::KFileManagerBackupViewId;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::CreateContainerL
-// ----------------------------------------------------------------------------
-//
-CFileManagerContainerBase* CFileManagerBackupView::CreateContainerL()
- {
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
-
- return CFileManagerSettingListContainer::NewL(
- ClientRect(),
- iIndex,
- CFileManagerSettingListContainer::EListBackup,
- &settings,
- KFMGR_HLP_BACKUP_VIEW );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::HandleCommandL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::HandleCommandL( TInt aCommand )
- {
- switch( aCommand )
- {
- case EFileManagerSelectionKey: // FALLTHROUGH
- case EFileManagerOpen:
- {
- CmdChangeL();
- break;
- }
- case EFileManagerBackup:
- {
- CmdBackupL();
- break;
- }
- case EFileManagerRestore:
- {
- CmdRestoreL();
- break;
- }
- case EFileManagerDeleteBackup:
- {
- CmdDeleteBackupL();
- break;
- }
- case EAknSoftkeyBack:
- {
- CmdBackL();
- break;
- }
- default:
- {
- CFileManagerViewBase::HandleCommandL( aCommand );
- break;
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::CmdChangeL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::CmdChangeL()
- {
- if ( !iContainer )
- {
- return;
- }
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
-
- StoreIndex();
-
- switch ( settings.SettingAt( index ) )
- {
- case CFileManagerBackupSettings::EContents:
- {
- ChangeContentsL();
- break;
- }
- case CFileManagerBackupSettings::EScheduling:
- {
- ChangeSchedulingL();
- break;
- }
- case CFileManagerBackupSettings::EWeekday:
- {
- ChangeWeekdayL();
- break;
- }
- case CFileManagerBackupSettings::ETime:
- {
- ChangeTimeL();
- break;
- }
- case CFileManagerBackupSettings::ETarget:
- {
- ChangeTargetDriveL();
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::CmdBackupL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::CmdBackupL()
- {
- if ( !iContainer )
- {
- return;
- }
-
- TBool isSystemStateNormal = static_cast< CFileManagerAppUi* >( AppUi() )->IsSystemStateNormal();
- if ( !isSystemStateNormal )
- {
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_FMGR_SYSTEM_NOT_READY );
- return;
- }
-
- StoreIndex();
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- TInt drive( settings.TargetDrive() );
- TFileManagerDriveInfo drvInfo;
- if( !IsDriveAvailable( drive ) )
- {
- for( TInt i ( EDriveA ) ; i <= EDriveZ ; i++ )
- {
- iEngine.GetDriveInfoL( i , drvInfo );
- if( ( IsDriveAvailable( i ) ) && ( drvInfo.iState & TFileManagerDriveInfo::EDriveEjectable ) )
- {
- drive = i;
- settings.SetTargetDrive( drive );
- settings.SaveL();
- break;
- }
- }
- }
- RArray< CFileManagerRestoreSettings::TInfo > info;
- CleanupClosePushL( info );
- iEngine.GetRestoreInfoArrayL( info, drive );
- TInt count( info.Count() );
- CleanupStack::PopAndDestroy( &info );
- TPtrC driveName( iEngine.DriveName( drive ) );
- TBool isContinue( true );
-
-
- const TInt64 KBackupLimitSize = 10000000;
-
- //define a protected limit size to avoid not enough space during backup
-
- if( count )
- {
- TInt textId( R_QTN_FMGR_BACKUP_QUERY_EXISTS );
-
- if( !FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- textId, driveName ) )
- {
- isContinue = false;
- }
- }
- if( isContinue )
- {
- if ( !DriveReadOnlyMmcL( drive ) )
- {
- if ( !IsDriveAvailable( drive ) )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_BACKUP_MEMORYCARD_NOT_AVAILABLE );
- }
- else if ( !CheckPhoneState() )
- {
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_CRITICAL_ERROR );
- }
- else if ( !iEngine.EnoughSpaceL(
- TDriveUnit( drive ).Name(), KBackupLimitSize, EBackupProcess ) )
- {
- FileManagerDlgUtils::ShowConfirmQueryWithOkL(
- FileManagerDlgUtils::EErrorIcons,
- R_QTN_FMGR_BACKUP_DESTINATION_FULL,
- driveName );
- }
- else
- {
- StartProcessL( EBackupProcess );
- }
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::CmdRestoreL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::CmdRestoreL()
- {
- StoreIndex();
- static_cast< CFileManagerAppUi* >( AppUi() )->ActivateRestoreViewL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::ChangeContentsL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::ChangeContentsL()
- {
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- TUint32 selection( settings.Content() );
-
- if ( FileManagerDlgUtils::ShowNOfMSettingQueryL(
- R_QTN_FMGR_BACKUP_CONTENTS,
- R_FILEMANAGER_BACKUP_CONTENTS_TEXTS,
- selection,
- 0 ) )
- {
- settings.SetContent( selection );
- settings.SaveL();
- iContainer->RefreshListL( iIndex );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::ChangeSchedulingL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::ChangeSchedulingL()
- {
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- TInt index( settings.Scheduling() );
-
- if ( FileManagerDlgUtils::ShowOOfMSettingQueryL(
- R_QTN_FMGR_BACKUP_SCHEDULING,
- R_FILEMANAGER_BACKUP_SCHEDULING_TEXTS,
- index ) )
- {
- settings.SetScheduling( index );
- settings.SaveL();
- iContainer->RefreshListL( iIndex );
- UpdateScheduleL();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::ChangeWeekdayL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::ChangeWeekdayL()
- {
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- TDay day( static_cast< TDay >( settings.Day() ) );
-
- if ( FileManagerDlgUtils::ShowWeekdayQueryL(
- R_QTN_FMGR_BACKUP_WEEKDAY,
- day ) )
- {
- settings.SetDay( day );
- settings.SaveL();
- iContainer->RefreshListL( iIndex );
- UpdateScheduleL();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::ChangeTargetDriveL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::ChangeTargetDriveL()
- {
-#ifdef RD_MULTIPLE_DRIVE
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
-
- HBufC* title = StringLoader::LoadLC(
- R_QTN_FMGR_SELECT_BACKUP_DESTINATION );
-
- TUint32 drvMask( settings.AllowedDriveAttMatchMask() );
- TInt memType( AknCommonDialogsDynMem::EMemoryTypeMMCExternal );
- if ( drvMask & KDriveAttRemote )
- {
- memType |= AknCommonDialogsDynMem::EMemoryTypeRemote;
- }
-
- CAknMemorySelectionDialogMultiDrive* dlg =
- CAknMemorySelectionDialogMultiDrive::NewL(
- ECFDDialogTypeNormal,
- R_FILEMANAGER_FIND_MEMORY_SELECTIONDIALOG,
- ETrue,
- memType );
- CleanupStack::PushL( dlg );
- dlg->SetTitleL( *title );
- TDriveNumber driveNumber( static_cast< TDriveNumber >(
- settings.TargetDrive() ) );
- TBool ret( dlg->ExecuteL( driveNumber ) );
- CleanupStack::PopAndDestroy( dlg );
- CleanupStack::PopAndDestroy( title );
- if ( ret )
- {
- TInt drive( static_cast< TInt >( driveNumber ) );
- if ( drive != settings.TargetDrive() )
- {
- settings.SetTargetDrive( drive );
- settings.SaveL();
- iContainer->RefreshListL( iIndex );
- }
- }
-#endif // RD_MULTIPLE_DRIVE
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::ChangeTimeL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::ChangeTimeL()
- {
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- TTime time( settings.Time() );
-
- if ( FileManagerDlgUtils::ShowTimeSettingQueryL(
- R_QTN_FMGR_BACKUP_TIME,
- time ) )
- {
- settings.SetTime( time );
- settings.SaveL();
- iContainer->RefreshListL( iIndex );
- UpdateScheduleL();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::CmdBackL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::CmdBackL()
- {
- iIndex = 0;
- static_cast< CFileManagerAppUi* >( AppUi() )->CloseBackupViewL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::UpdateScheduleL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::UpdateScheduleL()
- {
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- CFileManagerTaskScheduler& scheduler( appUi->TaskSchedulerL() );
-
- if ( settings.Scheduling() == EFileManagerBackupScheduleNone )
- {
- scheduler.EnableBackupScheduleL( EFalse );
- }
- else
- {
- scheduler.EnableBackupScheduleL( ETrue );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::NotifyForegroundStatusChange
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::NotifyForegroundStatusChange(
- TBool aForeground )
- {
- FUNC_LOG
-
- if ( aForeground )
- {
- TRAP_IGNORE( RefreshSettingsL() );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::RefreshSettingsL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::RefreshSettingsL()
- {
- FUNC_LOG
-
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- settings.RefreshL();
- if ( iContainer )
- {
- iContainer->RefreshListL( iIndex );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::CmdDeleteBackupL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::CmdDeleteBackupL()
- {
- StoreIndex();
- static_cast< CFileManagerAppUi* >( AppUi() )->ActivateRestoreViewL( ETrue );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::DynInitMenuPaneL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::DynInitMenuPaneL(
- TInt aResourceId, CEikMenuPane* aMenuPane)
- {
- switch( aResourceId )
- {
- case R_FILEMANAGER_BACKUP_VIEW_MENU:
- {
- BackupMenuFilteringL( *aMenuPane );
- break;
- }
- default:
- {
- CFileManagerViewBase::DynInitMenuPaneL( aResourceId, aMenuPane );
- break;
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupView::BackupMenuFilteringL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupView::BackupMenuFilteringL( CEikMenuPane& aMenuPane )
- {
- CFileManagerRestoreSettings& settings( iEngine.RestoreSettingsL() );
- TRAP_IGNORE( settings.RefreshL() );
- if ( !settings.MdcaCount() )
- {
- aMenuPane.SetItemDimmed( EFileManagerDeleteBackup, ETrue );
- }
- aMenuPane.SetItemDimmed( EFileManagerOpen, ETrue );
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerContainerBase.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,591 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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 all file manager containers
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <aknlists.h>
-#include <eikclbd.h>
-#include <StringLoader.h>
-#include <FileManagerUID.h>
-#include "CFileManagerContainerBase.h"
-#include "FileManager.hrh"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::CFileManagerContainerBase
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerContainerBase::CFileManagerContainerBase()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::ConstructL(
- const TRect& aRect,
- const TInt aFocusedIndex )
- {
- CreateWindowL();
- iListBox = CreateListBoxL();
- if ( !iListBox )
- {
- User::Leave( KErrGeneral );
- }
- SetListEmptyL();
- iListBox->CreateScrollBarFrameL( ETrue );
- iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
- iListBox->SetObserver( this );
- iListBox->SetListBoxObserver( this );
- SetIndex( aFocusedIndex );
- iListBox->SetFocus( ETrue );
- iListBox->AddSelectionObserverL( this );
- SetRect( aRect );
- ActivateL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::~CFileManagerContainerBase
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerContainerBase::~CFileManagerContainerBase()
- {
- delete iListBox;
- delete iEmptyText;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SizeChanged
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::SizeChanged()
- {
- if ( iListBox )
- {
- iListBox->SetRect( Rect() );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::CountComponentControls
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerContainerBase::CountComponentControls() const
- {
- return iListBox ? 1 : 0;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ComponentControl
-//
-// -----------------------------------------------------------------------------
-//
-CCoeControl* CFileManagerContainerBase::ComponentControl(
- TInt /* aIndex */ ) const
- {
- return iListBox;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::OfferKeyEventL
-//
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CFileManagerContainerBase::OfferKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType )
- {
- return iListBox->OfferKeyEventL( aKeyEvent, aType );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBox
-//
-// -----------------------------------------------------------------------------
-//
-CEikListBox& CFileManagerContainerBase::ListBox()
- {
- return *iListBox;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::RefreshListL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::RefreshListL( TInt aFocusedIndex )
- {
- if ( !iListBox )
- {
- return;
- }
-
- TBool isEmpty( ETrue );
- if ( iArray )
- {
- if ( iArray->MdcaCount() )
- {
- isEmpty = EFalse;
- iListBox->Model()->SetItemTextArray( iArray );
- // Remove ownership from listbox.
- iListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
- }
- }
- if ( isEmpty )
- {
- SetEmptyArrayL();
- }
-
- iListBox->Reset();
- SetIndex( aFocusedIndex );
- iListBox->UpdateScrollBarsL();
- iListBox->SetFocus( ETrue );
-
- if ( iEmptyText )
- {
- iListBox->View()->SetListEmptyTextL( *iEmptyText );
- }
- else
- {
- iListBox->View()->SetListEmptyTextL( KNullDesC );
- }
- iListBox->DrawDeferred();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SetListEmptyL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::SetListEmptyL()
- {
- if ( !iListBox )
- {
- return;
- }
- SetEmptyArrayL();
- iListBox->View()->SetListEmptyTextL( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SetIndex
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::SetIndex( TInt aFocusedIndex )
- {
- if ( !iListBox )
- {
- return;
- }
- // Check that given index is valid
- if ( aFocusedIndex >= 0 &&
- aFocusedIndex < iListBox->Model()->NumberOfItems() )
- {
- iListBox->SetCurrentItemIndex( aFocusedIndex );
- }
- else
- {
- // if list is empty or value is negative then set focus to 0
- if ( !iListBox->Model()->NumberOfItems() || aFocusedIndex < 0 )
- {
- iListBox->SetCurrentItemIndex( 0 );
- }
- else
- {
- // Something has been deleted in the end of the list
- // set focus to last one so the focus doesn't jump around
- iListBox->SetCurrentItemIndex(
- iListBox->Model()->NumberOfItems() - 1 );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SetTextArray
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::SetTextArray( MDesCArray* aArray )
- {
- iArray = aArray;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SetEmptyTextL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::SetEmptyTextL( TInt aTextId )
- {
- delete iEmptyText;
- iEmptyText = NULL;
-
- if ( aTextId )
- {
- iEmptyText = StringLoader::LoadL( aTextId );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SetHelpContext
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::SetHelpContext(
- const TDesC& aHelpContext )
- {
- iHelpContext = aHelpContext;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::HandleListBoxEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::HandleListBoxEventL(
- CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
- {
- switch ( aEventType )
- {
- case EEventItemSingleClicked: // FALLTHROUGH
- case EEventEnterKeyPressed:
- {
- static_cast< CAknAppUi* >( ControlEnv()->AppUi() )->
- ProcessCommandL( EFileManagerSelectionKey );
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::HandleControlEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::HandleControlEventL(
- CCoeControl* /* aControl*/, TCoeEvent /*aEventType*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::FocusChanged
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::FocusChanged( TDrawNow aDrawNow )
- {
- CCoeControl::FocusChanged( aDrawNow );
-
- if ( iListBox )
- {
- iListBox->SetFocus( IsFocused(), aDrawNow );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::GetHelpContext
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::GetHelpContext(
- TCoeHelpContext& aContext ) const
- {
- if ( iHelpContext.Length() )
- {
- aContext.iMajor = TUid::Uid( KFileManagerUID3 );
- aContext.iContext = iHelpContext;
- }
- else
- {
- CCoeControl::GetHelpContext( aContext );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxExists
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerContainerBase::ListBoxExists() const
- {
- return iListBox ? ETrue : EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SetEmptyArrayL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::SetEmptyArrayL()
- {
- CDesCArray* empty = new( ELeave ) CDesCArrayFlat( 1 );
- iListBox->Model()->SetItemTextArray( empty );
- // Transfer ownership to listbox.
- iListBox->Model()->SetOwnershipType( ELbmOwnsItemArray );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ProcessCommandL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::ProcessCommandL( TInt aCommandId )
- {
- switch ( aCommandId )
- {
- case EAknSoftkeyShiftMSK:
- {
- static_cast< CAknAppUi* >( ControlEnv()->AppUi() )->
- ProcessCommandL( EFileManagerToggleMark );
- break;
- }
-
- default:
- {
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SelectionModeChanged
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::SelectionModeChanged(
- CEikListBox* aListBox, TBool aSelectionModeEnabled )
- {
- if ( iListBox == aListBox &&
- iSelectionModeEnabled != aSelectionModeEnabled )
- {
- iSelectionModeEnabled = aSelectionModeEnabled;
- if ( !iSelectionModeEnabled )
- {
- // Update cba after selection mode gets done
- UpdateCba();
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SelectionModeEnabled
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerContainerBase::SelectionModeEnabled() const
- {
- return iSelectionModeEnabled;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::UpdateCba
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::UpdateCba()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxCurrentItemIndex
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerContainerBase::ListBoxCurrentItemIndex()
- {
- return iListBox->CurrentItemIndex();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxNumberOfItems
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerContainerBase::ListBoxNumberOfItems()
- {
- return iListBox->Model()->NumberOfItems();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxSelectionIndexes
-//
-// -----------------------------------------------------------------------------
-//
-const CArrayFix< TInt >* CFileManagerContainerBase::ListBoxSelectionIndexes()
- {
- return iListBox->SelectionIndexes();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxSelectionIndexesCount
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerContainerBase::ListBoxSelectionIndexesCount()
- {
- return iListBox->SelectionIndexes()->Count();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxToggleItemL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::ListBoxToggleItemL( TInt aIndex )
- {
- iListBox->View()->ToggleItemL( aIndex );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxIsItemSelected
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerContainerBase::ListBoxIsItemSelected( TInt aIndex )
- {
- return iListBox->View()->ItemIsSelected( aIndex );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxSelectAllL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::ListBoxSelectAllL()
- {
- TInt count( ListBoxNumberOfItems() );
- if ( count > 0 )
- {
- CArrayFixFlat<TInt>* array =
- new( ELeave ) CArrayFixFlat< TInt >( count );
- CleanupStack::PushL( array );
- for ( TInt i( 0 ); i < count; ++i )
- {
- array->AppendL( i );
- }
- iListBox->View()->SetSelectionIndexesL( array );
- CleanupStack::PopAndDestroy( array );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxClearSelection
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::ListBoxClearSelection()
- {
- iListBox->View()->ClearSelection();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxSetTextL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::ListBoxSetTextL( const TDesC& aText )
- {
- iListBox->View()->SetListEmptyTextL( aText );
- iListBox->DrawDeferred();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::IsSearchFieldVisible
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerContainerBase::IsSearchFieldVisible() const
- {
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::EnableSearchFieldL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::EnableSearchFieldL(
- TBool /*aEnable*/, const TDesC& /*aSearchText^*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SetCurrentItemIndexAfterSearch
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::SetCurrentItemIndexAfterSearch(
- TInt /*aIndex*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxSelectItemL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::ListBoxSelectItemL( TInt aIndex )
- {
- iListBox->View()->SelectItemL( aIndex );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxDeselectItem
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::ListBoxDeselectItem( TInt aIndex )
- {
- iListBox->View()->DeselectItem( aIndex );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::ListBoxSetSelectionIndexesL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerContainerBase::ListBoxSetSelectionIndexesL(const CArrayFixFlat<TInt>*
- aSelectionIndexes)
- {
- iListBox->View()->SetSelectionIndexesL( aSelectionIndexes );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerContainerBase::SearchFieldToListBoxIndex
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerContainerBase::SearchFieldToListBoxIndex( TInt aIndex )
- {
- return 0;
- }
-// End of File
--- a/filemanager/App/src/CFileManagerDocument.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,262 +0,0 @@
-/*
-* Copyright (c) 2002-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: Document class of the file manager
-*
-*/
-
-
-// INCLUDE FILES
-#include <gulicon.h> // to make iIconArray->ResetAndDestroy work
-#include <coemain.h>
-#include <apgwgnam.h>
-#include <data_caging_path_literals.hrh>
-#include <FileManagerUID.h>
-#include <CFileManagerIconArray.h>
-#include <CFileManagerEngine.h>
-#include <FileManagerDebug.h>
-#include <CFileManagerUtils.h>
-#include "CFileManagerDocument.h"
-#include "CFileManagerAppUi.h"
-#include "CFileManagerStringCache.h"
-
-
-// CONSTANTS
-_LIT( KFileManagerEngineResource, "filemanagerengine.rsc" );
-_LIT( KFileManagerViewResource, "filemanagerview.rsc" );
-_LIT_SECURE_ID( KFileManagerSchBkupSID, KFileManagerSchBkupUID3 );
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::CFileManagerDocument
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerDocument::CFileManagerDocument( CEikApplication& aApp ) :
- CAiwGenericParamConsumer( aApp ),
- iViewResourceLoader( *CCoeEnv::Static() ),
- iEngineResourceLoader( *CCoeEnv::Static() )
- {
- FUNC_LOG
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocument::ConstructL()
- {
- FUNC_LOG
-
- // Get resource drive from exe location
- TFileName exeFileName( RProcess().FileName() );
- TParsePtrC exeParse( exeFileName );
- TPtrC exeDrive( exeParse.Drive() );
-
- TFileName fileName;
- fileName.Copy( exeDrive );
- fileName.Append( KDC_RESOURCE_FILES_DIR );
- CFileManagerUtils::EnsureFinalBackslash( fileName );
- fileName.Append( KFileManagerViewResource );
- iViewResourceLoader.OpenL( fileName );
-
- fileName.Copy( exeDrive );
- fileName.Append( KDC_RESOURCE_FILES_DIR );
- CFileManagerUtils::EnsureFinalBackslash( fileName );
- fileName.Append( KFileManagerEngineResource );
- iEngineResourceLoader.OpenL( fileName );
-
- INFO_LOG( "CFileManagerDocument::ConstructL()-Create engine" )
- RFs& fs( CCoeEnv::Static()->FsSession() );
- User::LeaveIfError( fs.ShareProtected() ); // Make shareable
- iEngine = CFileManagerEngine::NewL( fs );
-
- INFO_LOG( "CFileManagerDocument::ConstructL()-Create icon array" )
- iIconArray = CFileManagerIconArray::NewL();
-
- INFO_LOG( "CFileManagerDocument::ConstructL()-Create string cache" )
- iStringCache = CFileManagerStringCache::NewL( *iEngine, *iIconArray );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerDocument* CFileManagerDocument::NewL( CEikApplication& aApp )
- {
- CFileManagerDocument* self = new( ELeave ) CFileManagerDocument( aApp );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::~CFileManagerDocument
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerDocument::~CFileManagerDocument()
- {
- FUNC_LOG
-
- DeletePlugins();
- iPluginArray.Close();
- REComSession::FinalClose();
- iViewResourceLoader.Close();
- iEngineResourceLoader.Close();
- if ( iIconArray )
- {
- iIconArray->ResetAndDestroy();
- delete iIconArray;
- }
- delete iStringCache;
- delete iEngine;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::CreateAppUiL
-//
-// -----------------------------------------------------------------------------
-//
-CEikAppUi* CFileManagerDocument::CreateAppUiL()
- {
- return new( ELeave ) CFileManagerAppUi;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::IconArray
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerIconArray* CFileManagerDocument::IconArray() const
- {
- return iIconArray;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::Engine
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerEngine& CFileManagerDocument::Engine() const
- {
- return *iEngine;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::ClearStringCache
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocument::ClearStringCache()
- {
- iStringCache->Clear();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::FileList
-//
-// -----------------------------------------------------------------------------
-//
-MDesCArray* CFileManagerDocument::FileList() const
- {
- return iStringCache;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::LastError
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerDocument::LastError() const
- {
- return iStringCache->LastError();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::UpdateTaskNameL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocument::UpdateTaskNameL( CApaWindowGroupName* aWgName )
- {
- CAknDocument::UpdateTaskNameL( aWgName );
-#ifdef RD_FILE_MANAGER_BACKUP
- if ( IsScheduledBackup() )
- {
- aWgName->SetHidden( ETrue );
- }
-#endif // RD_FILE_MANAGER_BACKUP
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::IsScheduledBackup
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerDocument::IsScheduledBackup()
- {
- // Check is started by file manager schedule starter
- return ( User::CreatorSecureId() == KFileManagerSchBkupSID );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::StorePluginL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocument::StorePluginL( const TUid& aUid )
- {
- iPluginArray.AppendL( aUid );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::DeletePlugins
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocument::DeletePlugins()
- {
- TInt count( iPluginArray.Count() );
- for ( TInt i( 0 ); i < count; ++i )
- {
- REComSession::DestroyedImplementation( iPluginArray[ i ] );
- }
- iPluginArray.Reset();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocument::OpenFileL()
-//
-// -----------------------------------------------------------------------------
-CFileStore* CFileManagerDocument::OpenFileL(
- TBool /*aDoOpen*/, const TDesC& /*aFilename*/, RFs& /*aFs*/ )
- {
- const CAiwGenericParamList* inParams = GetInputParameters();
- CFileManagerAppUi* appUi = static_cast< CFileManagerAppUi* >( iAppUi );
- if ( appUi && inParams )
- {
- appUi->ProcessAiwParamListL( *inParams );
- }
- return NULL;
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerFileListContainer.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,892 +0,0 @@
-/*
-* Copyright (c) 2006-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: File list container in file manager
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <filemanager.rsg>
-#include <aknlists.h>
-#include <barsread.h>
-#include <eikclbd.h>
-#include <gulicon.h>
-#include <aknsfld.h>
-#include <CFileManagerEngine.h>
-#include <CFileManagerFeatureManager.h>
-#include <FileManagerPrivateCRKeys.h>
-#include "CFileManagerFileListContainer.h"
-#include "CFileManagerDocument.h"
-#include "CFileManagerAppUi.h"
-#include "FileManager.hrh"
-#include "CFileManagerIconArray.h"
-#include <aknview.h>
-#include <eikmenub.h>
-#include <eikmenup.h> // CEikMenuPane
-// CONSTANTS
-const TInt KTouchGestureThreshold = 30; // Threshold could be stored in CenRep
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::CFileManagerFileListContainer
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileListContainer::CFileManagerFileListContainer(
- const TListType aType ) :
- iType( aType )
- {
- iAppUi = static_cast< CFileManagerAppUi* >( ControlEnv()->AppUi() );
- iDocument = static_cast< CFileManagerDocument* >( iAppUi->Document() );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileListContainer* CFileManagerFileListContainer::NewL(
- const TRect& aRect,
- const TInt aFocusedIndex,
- const TListType aType,
- const TInt aEmptyText,
- const TDesC& aHelpContext )
- {
- CFileManagerFileListContainer* self =
- new ( ELeave ) CFileManagerFileListContainer( aType );
- CleanupStack::PushL( self );
- self->ConstructL(
- aRect,
- aFocusedIndex,
- aEmptyText,
- aHelpContext );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::ConstructL(
- const TRect& aRect,
- const TInt aFocusedIndex,
- const TInt aEmptyText,
- const TDesC& aHelpContext )
- {
- CFileManagerFeatureManager& featureManager(
- iDocument->Engine().FeatureManager() );
- iRightLeftNaviSupported = featureManager.IsFeatureSupported(
- EFileManagerFeatureRightLeftNaviSupported );
- iOwnFastScrollDisabled = featureManager.IsFeatureSupported(
- EFileManagerFeatureOwnFastScrollDisabled );
- CFileManagerContainerBase::ConstructL( aRect, aFocusedIndex );
- SetEmptyTextL( aEmptyText );
- SetHelpContext( aHelpContext );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::CreateListBoxL
-//
-// -----------------------------------------------------------------------------
-//
-CEikTextListBox* CFileManagerFileListContainer::CreateListBoxL()
- {
- switch ( iType )
- {
- case EListMain:
- {
- CAknDoubleLargeStyleListBox* listBox =
- new( ELeave ) CAknDoubleLargeStyleListBox();
- CleanupStack::PushL( listBox );
- listBox->SetContainerWindowL( *this );
- listBox->ConstructL( this, EAknGenericListBoxFlags |
- EAknListBoxMenuList | EAknListBoxLoopScrolling );
- CFormattedCellListBoxData* column = listBox->ItemDrawer()->ColumnData();
- column->SetIconArray( iDocument->IconArray() );
- column->SetSkinEnabledL( ETrue );
- column->EnableMarqueeL( ETrue );
- CleanupStack::Pop( listBox );
- return listBox;
- }
- case EListMemoryStore: // FALLTHROUGH
- case EListFolder:
- {
- CAknColumnListBox* listBox = new( ELeave )
- CFileManagerFileListContainer::CListBox( *this );
- CleanupStack::PushL( listBox );
- listBox->SetContainerWindowL( *this );
- listBox->ConstructL( this, EAknGenericListBoxFlags |
- EAknListBoxMenuList | EAknListBoxLoopScrolling |
- EAknListBoxStylusMarkableList );
- CColumnListBoxData* column = listBox->ItemDrawer()->ColumnData();
- column->SetIconArray( iDocument->IconArray() );
- column->SetSkinEnabledL( ETrue );
- // Disable lists MSK observer because the container will be used
- // as observer
- listBox->EnableMSKObserver( EFalse );
- column->EnableMarqueeL( ETrue );
- // Create search field popup
- iSearchField = CAknSearchField::NewL(
- *this, CAknSearchField::EPopup, NULL, KMaxFileName );
- iSearchField->MakeVisible( EFalse );
- iSearchField->SetSkinEnabledL( ETrue );
- CCoeEnv::Static()->AddFocusObserverL( *this );
- CleanupStack::Pop( listBox );
- return listBox;
- }
- default:
- {
- User::Leave( KErrGeneral );
- break;
- }
- }
-
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::~CFileManagerFileListContainer
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileListContainer::~CFileManagerFileListContainer()
- {
- CCoeEnv::Static()->RemoveFocusObserver( *this );
-
- if ( ListBoxExists() )
- {
- // before we destroy listbox in base class,
- // we have to set icon array to NULL
- // because we want to let document class own the icon array
- if ( iType == EListMain )
- {
- CAknDoubleLargeStyleListBox& listBox =
- static_cast< CAknDoubleLargeStyleListBox& >( ListBox() );
- listBox.ItemDrawer()->ColumnData()->SetIconArray( NULL );
- }
- else
- {
- CAknColumnListBox& listBox =
- static_cast< CAknColumnListBox& >( ListBox() );
- listBox.ItemDrawer()->ColumnData()->SetIconArray( NULL );
- }
- }
- delete iSearchField;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::OfferKeyEventL
-//
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CFileManagerFileListContainer::OfferKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType )
- {
- TKeyResponse response = OfferSearchKeyEventL( aKeyEvent, aType );
- if ( response == EKeyWasConsumed )
- {
- return response;
- }
-
- TVwsViewId enabledViewId = TVwsViewId( KNullUid, KNullUid );
- iAppUi->GetActiveViewId( enabledViewId );
-
- TUid enabledViewUid = enabledViewId.iViewUid;
- CAknView* enabledView = iAppUi->View( enabledViewUid );
- CEikMenuBar* menuBar = NULL;
-
- if ( iAppUi->IsFileManagerView( enabledViewUid ) )
- {
- menuBar = enabledView->MenuBar();
- }
- switch( aKeyEvent.iCode )
- {
- case EKeyEnter: // FALLTHROUH
- case EKeyOK:
- {
- if ( ( menuBar != NULL ) && menuBar->ItemSpecificCommandsEnabled() )
- {
- iAppUi->ProcessCommandL( EFileManagerSelectionKey );
- response = EKeyWasConsumed;
- }
- break;
- }
- case EKeyDelete: // FALLTHROUGH
- case EKeyBackspace:
- {
- if ( ( menuBar != NULL ) && menuBar->ItemSpecificCommandsEnabled() )
- {
- iAppUi->ProcessCommandL( EFileManagerDelete );
- response = EKeyWasConsumed;
- }
- break;
- }
- case EKeyLeftArrow: // FALLTHROUGH
- case EKeyRightArrow:
- {
- if ( iRightLeftNaviSupported )
- {
- // Depth navigation using arrows
- TInt commandId( EAknSoftkeyBack );
- if ( aKeyEvent.iCode == EKeyRightArrow )
- {
- commandId = EFileManagerOpen;
- }
- iAppUi->ProcessCommandL( commandId );
- response = EKeyWasConsumed;
- }
- break;
- }
- case EKeyYes:
- {
- if ( AknLayoutUtils::PenEnabled() )
- {
- // Touch uses just the default functionality
- response = ListBox().OfferKeyEventL( aKeyEvent, aType );
- }
- else
- {
- iAppUi->ProcessCommandL( EFileManagerSend );
- response = EKeyWasConsumed;
- }
- break;
- }
- default:
- {
- response = ListBox().OfferKeyEventL( aKeyEvent, aType );
- break;
- }
- }
- return response;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::SetListEmptyL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::SetListEmptyL()
- {
- if ( IsSearchFieldVisible() )
- {
- iSearchField->GetSearchText( iSearchText );
- iSearchFieldAfterRefresh = ETrue;
- EnableSearchFieldL( EFalse );
- }
- CFileManagerContainerBase::SetListEmptyL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::RefreshListL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::RefreshListL( TInt aFocusedIndex )
- {
- iDocument->ClearStringCache();
- SetTextArray( iDocument->FileList() );
- CFileManagerContainerBase::RefreshListL( aFocusedIndex );
- if ( iSearchFieldAfterRefresh )
- {
- iSearchFieldAfterRefresh = EFalse;
- EnableSearchFieldL( ETrue, iSearchText );
- }
- // Inform user about OOM, suppress other errors
- TInt err( iDocument->LastError() );
- if ( err == KErrNoMemory )
- {
- ControlEnv()->HandleError( KErrNoMemory );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::HandleControlEventL
-// From MCoeControlObserver, called by current listbox
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::HandleControlEventL(
- CCoeControl* /* aControl*/, TCoeEvent aEventType )
- {
- if ( aEventType == EEventStateChanged )
- {
- iAppUi->ProcessCommandL( EFileManagerCheckMark ); // Inform change
- }
- }
-
-//-----------------------------------------------------------------------------
-// CFileManagerFileListContainer::CItemDrawer::CItemDrawer
-//-----------------------------------------------------------------------------
-//
-CFileManagerFileListContainer::CItemDrawer::CItemDrawer(
- CTextListBoxModel* aTextListBoxModel,
- const CFont* aFont,
- CColumnListBoxData* aColumnData,
- CFileManagerFileListContainer& aContainer ) :
- CColumnListBoxItemDrawer(
- aTextListBoxModel, aFont, aColumnData ),
- iContainer( aContainer )
- {
- }
-
-//-----------------------------------------------------------------------------
-// CFileManagerFileListContainer::CItemDrawer::Properties
-//-----------------------------------------------------------------------------
-//
-TListItemProperties CFileManagerFileListContainer::CItemDrawer::Properties(
- TInt aItemIndex ) const
- {
- aItemIndex = iContainer.SearchFieldToListIndex( aItemIndex );
- TListItemProperties prop(
- CColumnListBoxItemDrawer::Properties( aItemIndex ) );
- // Do not allow folder marking
- if ( iContainer.iDocument->Engine().IsFolder( aItemIndex ) )
- {
- prop.SetHiddenSelection( ETrue );
- }
- return prop;
- }
-
-//-----------------------------------------------------------------------------
-// CFileManagerFileListContainer::CListBox::CListBox
-//-----------------------------------------------------------------------------
-//
-CFileManagerFileListContainer::CListBox::CListBox(
- CFileManagerFileListContainer& aContainer ) :
- CAknSingleGraphicStyleListBox(),
- iContainer( aContainer )
- {
- }
-
-//-----------------------------------------------------------------------------
-// CFileManagerFileListContainer::CListBox::CreateItemDrawerL
-//-----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::CListBox::CreateItemDrawerL()
- {
- CColumnListBoxData* data = CColumnListBoxData::NewL();
- CleanupStack::PushL( data );
- iItemDrawer = new ( ELeave ) CFileManagerFileListContainer::CItemDrawer(
- Model(),
- iEikonEnv->NormalFont(),
- data,
- iContainer );
- CleanupStack::Pop( data );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::UpdateCba
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::UpdateCba()
- {
- iAppUi->NotifyCbaUpdate();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::HandlePointerEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::HandlePointerEventL(
- const TPointerEvent &aPointerEvent )
- {
- if ( !iRightLeftNaviSupported )
- {
- CCoeControl::HandlePointerEventL( aPointerEvent );
- return;
- }
- if ( !AknLayoutUtils::PenEnabled() )
- {
- return;
- }
- TBool consumed( EFalse );
- switch ( aPointerEvent.iType )
- {
- case TPointerEvent::EButton1Down:
- {
- iDragStartPoint = aPointerEvent.iPosition;
- iDragging = EFalse;
- break;
- }
- case TPointerEvent::EDrag:
- {
- iDragging = ETrue;
- break;
- }
- case TPointerEvent::EButton1Up:
- {
- if ( iDragging )
- {
- iDragging = EFalse;
- // Solve drag direction and convert touch gesture to key event
- TInt xDelta( iDragStartPoint.iX - aPointerEvent.iPosition.iX );
- TInt keyCode( EKeyNull );
- if ( xDelta < -KTouchGestureThreshold )
- {
- keyCode = EKeyRightArrow;
- }
- else if ( xDelta > KTouchGestureThreshold )
- {
- keyCode = EKeyLeftArrow;
- }
- if ( keyCode != EKeyNull )
- {
- TKeyEvent keyEvent;
- keyEvent.iCode = keyCode;
- keyEvent.iScanCode = EStdKeyNull;
- keyEvent.iModifiers = 0;
- keyEvent.iRepeats = 1;
- OfferKeyEventL( keyEvent, EEventKey );
- consumed = ETrue;
- }
- }
- break;
- }
- default:
- {
- iDragging = EFalse;
- break;
- }
- }
- if ( !consumed )
- {
- CCoeControl::HandlePointerEventL( aPointerEvent );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::SizeChanged
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::SizeChanged()
- {
- if ( iSearchField )
- {
- AknFind::HandlePopupFindSizeChanged( this, &ListBox(), iSearchField );
- }
- else
- {
- CFileManagerContainerBase::SizeChanged();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::CountComponentControls
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFileListContainer::CountComponentControls() const
- {
- TInt ret( CFileManagerContainerBase::CountComponentControls() );
- if ( iSearchField )
- {
- ++ret;
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ComponentControl
-//
-// -----------------------------------------------------------------------------
-//
-CCoeControl* CFileManagerFileListContainer::ComponentControl( TInt aIndex ) const
- {
- if ( aIndex < CFileManagerContainerBase::CountComponentControls() )
- {
- return CFileManagerContainerBase::ComponentControl( aIndex );
- }
- if ( aIndex < CountComponentControls() )
- {
- return iSearchField;
- }
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListBoxCurrentItemIndex
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFileListContainer::ListBoxCurrentItemIndex()
- {
- return SearchFieldToListIndex( ListBox().CurrentItemIndex() );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListBoxNumberOfItems
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFileListContainer::ListBoxNumberOfItems()
- {
- if ( IsSearchFieldVisible() )
- {
- return static_cast< CAknFilteredTextListBoxModel* >(
- ListBox().Model() )->Filter()->FilteredNumberOfItems();
- }
- return CFileManagerContainerBase::ListBoxNumberOfItems();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListBoxSelectionIndexes
-//
-// -----------------------------------------------------------------------------
-//
-const CArrayFix< TInt >* CFileManagerFileListContainer::ListBoxSelectionIndexes()
- {
- if ( IsSearchFieldVisible() )
- {
- CAknListBoxFilterItems* filter =
- static_cast< CAknFilteredTextListBoxModel* >(
- ListBox().Model() )->Filter();
-
- if ( filter )
- {
- TRAPD( err, filter->UpdateSelectionIndexesL() );
- if ( err == KErrNone )
- {
- return filter->SelectionIndexes();
- }
- }
- return NULL;
- }
- return CFileManagerContainerBase::ListBoxSelectionIndexes();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListBoxSelectionIndexesCount
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFileListContainer::ListBoxSelectionIndexesCount()
- {
- if ( IsSearchFieldVisible() )
- {
- CAknListBoxFilterItems* filter =
- static_cast< CAknFilteredTextListBoxModel* >(
- ListBox().Model() )->Filter();
-
- if ( filter )
- {
- TRAPD( err, filter->UpdateSelectionIndexesL() );
- if ( err == KErrNone )
- {
- return filter->SelectionIndexes()->Count();
- }
- }
- return 0;
- }
- return CFileManagerContainerBase::ListBoxSelectionIndexesCount();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListBoxToggleItemL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::ListBoxToggleItemL( TInt aIndex )
- {
- aIndex = ListToSearchFieldIndex( aIndex );
- CFileManagerContainerBase::ListBoxToggleItemL( aIndex );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListBoxIsItemSelected
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFileListContainer::ListBoxIsItemSelected( TInt aIndex )
- {
- aIndex = ListToSearchFieldIndex( aIndex );
- return CFileManagerContainerBase::ListBoxIsItemSelected( aIndex );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::SearchFieldToListIndex
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFileListContainer::SearchFieldToListIndex( TInt aIndex )
- {
- if ( IsSearchFieldVisible() && aIndex >= 0 )
- {
- aIndex = static_cast< CAknFilteredTextListBoxModel* >(
- ListBox().Model() )->Filter()->FilteredItemIndex( aIndex );
- }
- return aIndex;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListToSearchFieldIndex
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFileListContainer::ListToSearchFieldIndex( TInt aIndex )
- {
- if ( IsSearchFieldVisible() && aIndex >= 0 )
- {
- aIndex = static_cast< CAknFilteredTextListBoxModel* >(
- ListBox().Model() )->Filter()->VisibleItemIndex( aIndex );
- }
- return aIndex;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListBoxSetTextL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::ListBoxSetTextL( const TDesC& aText )
- {
- EnableSearchFieldL( EFalse );
- CFileManagerContainerBase::ListBoxSetTextL( aText );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListBoxSetTextL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::PageScrollL( TBool aUp )
- {
- CEikListBox& listBox( ListBox() );
- TInt numItems( listBox.Model()->NumberOfItems() );
-
- if ( numItems > 0 )
- {
- TInt lastIndex( numItems - 1 );
- if ( !aUp && listBox.View()->BottomItemIndex() == lastIndex )
- {
- listBox.SetCurrentItemIndex( lastIndex );
- }
- else
- {
- CListBoxView::TCursorMovement move( aUp ?
- CListBoxView::ECursorPrevScreen :
- CListBoxView::ECursorNextScreen );
- listBox.View()->MoveCursorL( move, CListBoxView::ENoSelection );
- listBox.SetCurrentItemIndex( listBox.CurrentItemIndex() );
- }
- DrawDeferred();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::IsSearchFieldVisible
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFileListContainer::IsSearchFieldVisible() const
- {
- return ( iSearchField && iSearchField->IsVisible() );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::EnableSearchFieldL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::EnableSearchFieldL(
- TBool aEnable, const TDesC& aSearchText )
- {
- if ( !iSearchField )
- {
- return;
- }
-
- CEikListBox& listBox( ListBox() );
- CAknFilteredTextListBoxModel* filteredModel =
- static_cast< CAknFilteredTextListBoxModel* >( listBox.Model() );
-
- if ( aEnable )
- {
- if ( !iSearchField->IsVisible() && listBox.Model()->NumberOfItems() )
- {
- iIndexAfterSearch = listBox.CurrentItemIndex();
- iSearchField->SetSearchTextL( aSearchText );
- if ( !filteredModel->Filter() )
- {
- filteredModel->CreateFilterL( &listBox, iSearchField );
- }
- filteredModel->Filter()->HandleItemArrayChangeL();
- iSearchField->MakeVisible( ETrue );
- iSearchField->SetFocus( ETrue );
- iSearchFieldEnabled = ETrue;
- }
- }
- else
- {
- iSearchFieldEnabled = EFalse;
- iSearchField->SetFocus( EFalse );
- iSearchField->MakeVisible( EFalse );
- iSearchField->ResetL();
- filteredModel->RemoveFilter();
- SetIndex( iIndexAfterSearch );
- }
-
- SizeChanged();
- UpdateCba();
- DrawDeferred();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::SetCurrentItemIndexAfterSearch
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::SetCurrentItemIndexAfterSearch(
- TInt aIndex )
- {
- iIndexAfterSearch = aIndex;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::HandleChangeInFocus
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::HandleChangeInFocus()
- {
- // Update softkeys after search field has been canceled
- if ( ListBoxExists() &&
- IsFocused() &&
- iSearchFieldEnabled &&
- iSearchField &&
- !iSearchField->IsVisible() )
- {
- CAknFilteredTextListBoxModel* filteredModel =
- static_cast< CAknFilteredTextListBoxModel* >( ListBox().Model() );
- iSearchFieldEnabled = EFalse;
- TRAP_IGNORE( iSearchField->ResetL() );
- filteredModel->RemoveFilter();
- SetIndex( iIndexAfterSearch );
- UpdateCba();
- DrawDeferred();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::HandleDestructionOfFocusedItem
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::HandleDestructionOfFocusedItem()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::OfferSearchKeyEventL
-//
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CFileManagerFileListContainer::OfferSearchKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType )
- {
- if ( !iSearchField || aKeyEvent.iScanCode == EStdKeyYes )
- {
- return EKeyWasNotConsumed;
- }
- // Open search field on alpha digit
- TBool isVisible( iSearchField->IsVisible() );
- if ( !isVisible &&
- aType == EEventKeyDown &&
- aKeyEvent.iScanCode )
- {
- TChar ch( aKeyEvent.iScanCode );
- if ( ch.IsAlphaDigit() )
- {
- EnableSearchFieldL( ETrue );
- return EKeyWasConsumed;
- }
- }
- // Close search field on clear-button if it's empty
- else if ( isVisible && aKeyEvent.iCode == EKeyBackspace )
- {
- iSearchField->GetSearchText( iSearchText );
- if ( !iSearchText.Length() )
- {
- EnableSearchFieldL( EFalse );
- return EKeyWasConsumed;
- }
- }
- if ( isVisible )
- {
- TKeyResponse response( iSearchField->OfferKeyEventL( aKeyEvent, aType ) );
- UpdateCba();
- if ( response == EKeyWasConsumed )
- {
- return response;
- }
- }
- if ( !iOwnFastScrollDisabled )
- {
- if ( aKeyEvent.iCode == EKeyUpArrow && aKeyEvent.iRepeats > 0 )
- {
- PageScrollL( ETrue );
- return EKeyWasConsumed;
- }
- if ( aKeyEvent.iCode == EKeyDownArrow && aKeyEvent.iRepeats > 0 )
- {
- PageScrollL( EFalse );
- return EKeyWasConsumed;
- }
- }
- return EKeyWasNotConsumed;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListBoxSelectItemL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::ListBoxSelectItemL( TInt aIndex )
- {
- aIndex = ListToSearchFieldIndex( aIndex );
- CFileManagerContainerBase::ListBoxSelectItemL( aIndex );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::ListBoxDeselectItem
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileListContainer::ListBoxDeselectItem( TInt aIndex )
- {
- aIndex = ListToSearchFieldIndex( aIndex );
- CFileManagerContainerBase::ListBoxDeselectItem( aIndex );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileListContainer::SearchFieldToListBoxIndex
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFileListContainer::SearchFieldToListBoxIndex( TInt aIndex )
- {
- if ( !iSearchField || !iSearchField->IsVisible() )
- {
- return 0;
- }
- return SearchFieldToListIndex( aIndex );
- }
-// End of File
--- a/filemanager/App/src/CFileManagerFileSelectionFilter.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Filters PlatSec dirs from file selection
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <f32file.h>
-#include "CFileManagerFileSelectionFilter.h"
-#include "CFileManagerEngine.h"
-#include "CFileManagerCommonDefinitions.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-// -----------------------------------------------------------------------------
-// CFileManagerFileSelectionFilter::CFileManagerFileSelectionFilter
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileSelectionFilter::CFileManagerFileSelectionFilter(
- CFileManagerEngine& aEngine )
- : iEngine( aEngine )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSelectionFilter::Accept
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFileSelectionFilter::Accept( const TDesC& aDriveAndPath,
- const TEntry& aEntry ) const
- {
- if ( aEntry.IsHidden() || aEntry.IsSystem() )
- {
- return EFalse;
- }
- if ( !aEntry.IsDir() )
- {
- return ETrue;
- }
- HBufC* fullPath = HBufC::New( KMaxPath );
- if ( !fullPath )
- {
- return EFalse;
- }
- TPtr ptr( fullPath->Des() );
- ptr.Copy( aDriveAndPath );
- ptr.Append( aEntry.iName );
- ptr.Append( KFmgrBackslash );
- TBool isVisible( !iEngine.IsSystemFolder( ptr ) );
- delete fullPath;
- return isVisible;
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerFoldersView.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,444 +0,0 @@
-/*
-* Copyright (c) 2002-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: View for folder
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <akntitle.h>
-#include <aknnavi.h>
-#include <aknnavide.h>
-#include <barsread.h>
-#include <aknlists.h>
-#include <AknsConstants.h>
-#include <AknInfoPopupNoteController.h>
-#include <csxhelp/fmgr.hlp.hrh>
-#include <CFileManagerEngine.h>
-#include <filemanager.rsg>
-#include <filemanagerview.rsg>
-#include <TFileManagerDriveInfo.h>
-#include <CFileManagerCommonDefinitions.h>
-#include <FileManagerDebug.h>
-#include "CFileManagerFoldersView.h"
-#include "CFileManagerFileListContainer.h"
-#include "CFileManagerAppUi.h"
-#include "CFileManagerDocument.h"
-#include "Cfilemanagerfoldernavigationpane.h"
-#include "FileManager.hrh"
-#include "FileManagerUID.h"
-
-// CONSTANTS
-const TUid CFileManagerFoldersView::KOpenFromSearchResultsView =
- { EOpenFromSearchResultsView };
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::CFileManagerFoldersView
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFoldersView::CFileManagerFoldersView()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFoldersView::ConstructL()
- {
- CFileManagerViewBase::ConstructL( R_FILEMANAGER_FOLDERS_VIEW );
-
- CEikStatusPane* sp = StatusPane();
-
- iNaviPane = static_cast< CAknNavigationControlContainer* >
- ( sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
-
- iPopupController = CAknInfoPopupNoteController::NewL();
- iPopupController->SetTimeDelayBeforeShow( 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFoldersView* CFileManagerFoldersView::NewLC()
- {
- CFileManagerFoldersView* self = new( ELeave ) CFileManagerFoldersView;
-
- CleanupStack::PushL( self );
- self->ConstructL();
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::~CFileManagerFoldersView
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerFoldersView::~CFileManagerFoldersView()
- {
- delete iPopupController;
- delete iNaviDecorator;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::Id
-//
-// -----------------------------------------------------------------------------
-//
-TUid CFileManagerFoldersView::Id() const
- {
- return CFileManagerAppUi::KFileManagerFoldersViewId;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::CreateContainerL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerContainerBase* CFileManagerFoldersView::CreateContainerL()
- {
- return CFileManagerFileListContainer::NewL(
- ClientRect(),
- iIndex,
- CFileManagerFileListContainer::EListFolder,
- R_QTN_SELEC_EMPTY_LIST,
- KFMGR_HLP_MEM_STORE_VIEW );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::DoActivateL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFoldersView::DoActivateL( const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage )
- {
- FUNC_LOG
-
- if ( aCustomMessageId == KOpenFromSearchResultsView )
- {
- iInitialFolderDepth = iEngine.FolderLevel();
- }
- else
- {
- // Check embedded app exit
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->ExitEmbeddedAppIfNeededL();
-
- iInitialFolderDepth = 1; // First folder view level
- }
-
- CFileManagerViewBase::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
-
- TResourceReader reader;
- iCoeEnv->CreateResourceReaderLC( reader, R_FILEMANAGER_FOLDER_NAVIGATION_PANE );
- iNaviControl = CFileManagerFolderNavigationPane::NewL( iEngine.Memory(), 0, reader );
- CleanupStack::PopAndDestroy(); // reader
-
- iNaviControl->SetObserver( this );
-
- iNaviDecorator = CAknNavigationDecorator::NewL( iNaviPane, iNaviControl );
- iNaviDecorator->SetContainerWindowL( *iNaviPane );
- iNaviPane->PushL( *iNaviDecorator );
-
- RefreshTitleL();
- iEngine.SetState( CFileManagerEngine::ENavigation );
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::DoDeactivate
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFoldersView::DoDeactivate()
- {
- FUNC_LOG
-
- CFileManagerViewBase::DoDeactivate();
-
- iNaviPane->Pop( iNaviDecorator );
- delete iNaviDecorator;
- iNaviDecorator = NULL;
- iNaviControl = NULL; // Not owned and deleted by decorator
-
- iPopupController->HideInfoPopupNote();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::RefreshTitleL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFoldersView::RefreshTitleL()
- {
- static_cast< CFileManagerAppUi* >( AppUi() )->SetTitleL(
- iEngine.LocalizedNameOfCurrentDirectory() );
-
- if ( iNaviControl ) // May be deleted by view deactivation
- {
- iNaviControl->ChangeRootL( iEngine.Memory() );
- iNaviControl->SetFolderDepth( iEngine.FolderLevel() );
- }
-
- iNaviPane->DrawDeferred();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::HandleCommandL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFoldersView::HandleCommandL( TInt aCommand )
- {
- switch( aCommand )
- {
- case EAknSoftkeyBack:
- {
- BackstepL();
- break;
- }
- case EFileManagerOpen:
- {
- iPopupController->HideInfoPopupNote();
- CFileManagerViewBase::CmdOpenL();
- break;
- }
- default:
- {
- CFileManagerViewBase::HandleCommandL( aCommand );
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::DirectoryChangedL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFoldersView::DirectoryChangedL()
- {
- FUNC_LOG
-
- CFileManagerAppUi* appUi = static_cast< CFileManagerAppUi* >( AppUi() );
-
- if ( iEngine.FolderLevel() < iInitialFolderDepth || !iContainer )
- {
- appUi->CloseFoldersViewL();
- }
- else
- {
- if ( !appUi->IsSearchViewOpen() )
- {
- appUi->ExitEmbeddedAppIfNeededL();
- }
- TRAP_IGNORE( RefreshDriveInfoL() );
- TFileManagerDriveInfo& drvInfo( DriveInfo() );
- if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) )
- {
- User::Leave(KErrPathNotFound);
- }
- else
- {
- TInt index( iEngine.CurrentIndex() );
- if ( index != KErrNotFound )
- {
- iContainer->RefreshListL( index );
- }
- else
- {
- iContainer->RefreshListL( iIndex );
- }
- RefreshTitleL();
- }
- iFolderDepth = iEngine.FolderLevel();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFoldersView::HandleResourceChangeL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFoldersView::HandleResourceChangeL( TInt aType )
- {
- if ( iNaviControl ) // May be deleted by view deactivation
- {
- iNaviControl->HandleResourceChangeL( aType );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerFoldersView::UpdateCbaL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerFoldersView::UpdateCbaL()
- {
- UpdateCommonCbaL();
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerFoldersView::BackstepL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerFoldersView::BackstepL(
- TInt aBacksteps )
- {
- if (iActiveProcess != ENoProcess)
- {
- return; // Ignore to avoid container mess up
- }
- iPopupController->HideInfoPopupNote();
- CFileManagerAppUi* appUi = static_cast<CFileManagerAppUi*> (AppUi());
- TInt level(iEngine.FolderLevel());
- while ( aBacksteps > 0 )
- {
- if ( level < iInitialFolderDepth )
- {
- break;
- }
- TRAP_IGNORE( iEngine.BackstepL() );
- --level;
- --aBacksteps;
- }
-
- if ( !appUi->IsSearchViewOpen() )
- {
- appUi->ExitEmbeddedAppIfNeededL();
- }
-
- if (level < iInitialFolderDepth)
- {
- iFolderDepth = 0;
- iIndex = 0;
- appUi->CloseFoldersViewL();
- }
- else
- {
- iEngine.SetObserver(this);
- iEngine.RefreshDirectory();
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerFoldersView::FolderName
-//
-// ------------------------------------------------------------------------------
-//
-TPtrC CFileManagerFoldersView::FolderName( const TInt aLevel )
- {
- if ( !aLevel )
- {
- // Get memory store name
- return iEngine.CurrentDriveName();
- }
-
- // Get folder name
- TPtrC dir( iEngine.CurrentDirectory() );
- TInt drive = TDriveUnit( dir );
- TPtrC root( iEngine.DriveRootDirectory( drive ) );
- TInt count( dir.Length() );
- TInt bsCount( 0 );
-
- for ( TInt i( root.Length() ); i < count; )
- {
- TPtrC ptr( dir.Mid( i ) );
- TInt j( ptr.Locate( KFmgrBackslash()[ 0 ] ) );
- if ( j != KErrNotFound )
- {
- ++bsCount;
- if ( bsCount == aLevel )
- {
- // Use localised folder name if it exists
- TPtrC locName( iEngine.LocalizedName( dir.Left(
- i + j + 1 ) ) );
- if ( locName.Length() )
- {
- return locName;
- }
- return TPtrC( ptr.Left( j ) );
- }
- }
- else
- {
- break;
- }
- i += j + 1;
- }
- return TPtrC( KNullDesC );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerFoldersView::HandleFolderNaviEventL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerFoldersView::HandleFolderNaviEventL(
- TNaviEvent aEvent, TInt aValue )
- {
- switch ( aEvent )
- {
- case ENaviTapDown:
- {
- iPopupController->HideInfoPopupNote();
- break;
- }
- case ENaviTapUp:
- {
- if ( aValue != KErrNotFound )
- {
- TInt level( iEngine.FolderLevel() );
- if ( level > aValue )
- {
- BackstepL( level - aValue );
- }
- }
- break;
- }
- case ENaviLongTap:
- {
- if ( aValue != KErrNotFound )
- {
- TPtrC folder( FolderName( aValue ) );
- if ( folder.Length() )
- {
- iPopupController->SetTextL( folder );
- iPopupController->ShowInfoPopupNote();
- }
- }
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerMainView.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,927 +0,0 @@
-/*
-* Copyright (c) 2006-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: Main view
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <aknlists.h>
-#include <CFileManagerEngine.h>
-#include <CFileManagerItemProperties.h>
-#include <filemanager.rsg>
-#include <csxhelp/fmgr.hlp.hrh>
-#include <FileManagerDlgUtils.h>
-#include <FileManagerDebug.h>
-#include <CFileManagerFeatureManager.h>
-#include <coreapplicationuisdomainpskeys.h>
-#include <StringLoader.h>
-#include <cmemstatepopup.h>
-#include "CFileManagerMainView.h"
-#include "CFileManagerFileListContainer.h"
-#include "CFileManagerAppUi.h"
-#include "CFileManagerDocument.h"
-#include "FileManager.hrh"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::CFileManagerMainView
-// ----------------------------------------------------------------------------
-//
-CFileManagerMainView::CFileManagerMainView()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::NewLC
-// ----------------------------------------------------------------------------
-//
-CFileManagerMainView* CFileManagerMainView::NewLC()
- {
- CFileManagerMainView* self = new( ELeave ) CFileManagerMainView();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::ConstructL()
- {
- CFileManagerViewBase::ConstructL(
- FeatureManager().IsEmbedded() ?
- R_FILEMANAGER_MAIN_VIEW_EMBEDDED :
- R_FILEMANAGER_MAIN_VIEW );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::~CFileManagerMainView
-// ----------------------------------------------------------------------------
-//
-CFileManagerMainView::~CFileManagerMainView()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::DoActivateL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage )
- {
- FUNC_LOG
-
- CFileManagerViewBase::DoActivateL(
- aPrevViewId, aCustomMessageId, aCustomMessage );
-
- // Ensure that no directory is defined
- if ( iEngine.CurrentDirectory().Length() )
- {
- TInt count( iEngine.NavigationLevel() );
- ++count;
- for ( TInt i( 0 ); i < count; i++ )
- {
- TRAP_IGNORE( iEngine.BackstepL() );
- }
- }
-
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->RestoreDefaultTitleL();
- iEngine.SetState( CFileManagerEngine::ENavigation );
- iEngine.SetObserver( this );
- appUi->ExitEmbeddedAppIfNeededL();
- if ( !appUi->WaitingForInputParams() )
- {
- iEngine.RefreshDirectory();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::DoDeactivate
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::DoDeactivate()
- {
- FUNC_LOG
-
- CFileManagerViewBase::DoDeactivate();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::DirectoryChangedL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::DirectoryChangedL()
- {
- FUNC_LOG
-
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
-
- if ( iContainer && !appUi->WaitingForInputParams() )
- {
- iContainer->RefreshListL( iIndex );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::Id
-// ----------------------------------------------------------------------------
-//
-TUid CFileManagerMainView::Id() const
- {
- return CFileManagerAppUi::KFileManagerMainViewId;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::CreateContainerL
-// ----------------------------------------------------------------------------
-//
-CFileManagerContainerBase* CFileManagerMainView::CreateContainerL()
- {
- return CFileManagerFileListContainer::NewL(
- ClientRect(),
- iIndex,
- CFileManagerFileListContainer::EListMain,
- R_QTN_SELEC_EMPTY_LIST,
- KFMGR_HLP_MAIN_VIEW );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::DynInitMenuPaneL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::DynInitMenuPaneL(
- TInt aResourceId,
- CEikMenuPane* aMenuPane)
- {
- switch( aResourceId )
- {
- // These menus are used only by main view
- case R_FILEMANAGER_MAIN_VIEW_MENU:
- {
- MainMenuFilteringL( *aMenuPane );
- break;
- }
- case R_FILEMANAGER_REMOTE_DRIVES_MENU:
- {
- RemoteDrivesMenuFilteringL( *aMenuPane );
- break;
- }
- case R_FILEMANAGER_MEMORY_STORAGE_MENU:
- {
- MemoryStorageMenuFilteringL( *aMenuPane );
- break;
- }
- default:
- {
- CFileManagerViewBase::DynInitMenuPaneL( aResourceId, aMenuPane );
- break;
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::MainMenuFilteringL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::MainMenuFilteringL( CEikMenuPane& aMenuPane )
- {
- RemoteDriveCommonFilteringL( aMenuPane );
-
- if ( !iContainer->ListBoxNumberOfItems() )
- {
- aMenuPane.SetItemDimmed( EFileManagerEject, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerFindFile, ETrue );
-#ifndef RD_FILE_MANAGER_BACKUP
- aMenuPane.SetItemDimmed( EFileManagerBackup, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerRestore, ETrue );
-#endif // RD_FILE_MANAGER_BACKUP
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorage, ETrue );
- return;
- }
-
- CFileManagerItemProperties* prop = iEngine.GetItemInfoLC(
- iContainer->ListBoxCurrentItemIndex() );
- TUint32 drvState( 0 );
- if ( prop->IsDrive() )
- {
- iEngine.DriveState( drvState, prop->FullPath() );
- }
-
- TFileManagerDriveInfo drvInfo;
- if ( DriveInfoAtCurrentPosL( drvInfo ) < 0 )
- {
- // No drive selected
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorage, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerEject, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerRemoveDrives, ETrue );
- }
- else
- {
- if ( !( drvInfo.iState & TFileManagerDriveInfo::EDriveEjectable ) ||
- !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerEject, ETrue );
- }
- if ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable ) &&
- !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorage, ETrue );
- }
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote )
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorage, ETrue );
- }
- if ( !FeatureManager().IsRemoteStorageFwSupported() ||
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerRemoveDrives, ETrue );
- }
- }
-
-#ifndef RD_FILE_MANAGER_BACKUP
- TFileManagerDriveInfo mmcinfo( iEngine.GetMMCInfoL() );
- if ( mmcinfo.iState & ( TFileManagerDriveInfo::EDriveLocked |
- TFileManagerDriveInfo::EDriveCorrupted ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerBackup, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerRestore, ETrue );
- }
- else if ( !( mmcinfo.iState & TFileManagerDriveInfo::EDrivePresent ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerBackup, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerRestore, ETrue );
- }
- else if ( !( mmcinfo.iState & TFileManagerDriveInfo::EDriveBackupped ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerRestore, ETrue );
- }
- if ( FeatureManager().IsEmbedded() )
- {
- // Disable backup in embedded mode, because it messes up
- // backup and restore operations since embedded apps are closed.
- aMenuPane.SetItemDimmed( EFileManagerBackup, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerRestore, ETrue );
- }
-#endif // RD_FILE_MANAGER_BACKUP
-
- if( !iEngine.IsDriverMounted( drvInfo.iDrive ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerEject, ETrue );
- }
- CleanupStack::PopAndDestroy( prop );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::RemoteDrivesMenuFilteringL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::RemoteDrivesMenuFilteringL(
- CEikMenuPane& aMenuPane )
- {
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- CFileManagerItemProperties* prop = iEngine.GetItemInfoLC( index );
- TUint32 drvState( 0 );
- if ( iEngine.DriveState( drvState, prop->FullPath() ) == KErrNone )
- {
- if ( !( drvState & TFileManagerDriveInfo::EDriveRemote ) ||
- ( drvState & TFileManagerDriveInfo::EDriveConnected ) )
- {
- aMenuPane.SetItemDimmed(
- EFileManagerRemoveDrivesSettings, ETrue );
- aMenuPane.SetItemDimmed(
- EFileManagerRemoveDrivesDelete, ETrue );
- }
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerRemoveDrivesSettings, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerRemoveDrivesDelete, ETrue );
- }
- CleanupStack::PopAndDestroy( prop );
- TBool dimAll( EFalse );
- if ( !FeatureManager().IsRemoteStorageFwSupported() )
- {
- dimAll = ETrue;
- }
- else
- {
- if ( drvState & TFileManagerDriveInfo::EDriveRemote )
- {
- if ( drvState & TFileManagerDriveInfo::EDriveConnected )
- {
- aMenuPane.SetItemDimmed( EFileManagerConnectRemoveDrive, ETrue );
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerDisconnectRemoveDrive,ETrue );
- }
- }
- else
- {
- dimAll = ETrue;
- }
- }
-
- if ( dimAll )
- {
- aMenuPane.SetItemDimmed( EFileManagerConnectRemoveDrive, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerDisconnectRemoveDrive, ETrue );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::HandleCommandL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::HandleCommandL( TInt aCommand )
- {
- switch( aCommand )
- {
- case EFileManagerOpen:
- {
- CmdOpenMemoryStoreL();
- break;
- }
- case EFileManagerEject:
- {
- CmdEjectL();
- break;
- }
-#ifndef RD_FILE_MANAGER_BACKUP
- case EFileManagerBackup:
- {
- CmdBackupL();
- break;
- }
- case EFileManagerRestore:
- {
- CmdRestoreL();
- break;
- }
-#endif // RD_FILE_MANAGER_BACKUP
- case EFileManagerRemoveDrivesMapDrive:
- {
- CmdMapRemoteDriveL();
- break;
- }
- case EFileManagerRemoveDrivesSettings:
- {
- CmdRemoteDriveSettingsL();
- break;
- }
- case EFileManagerDelete: // Fall through
- case EFileManagerRemoveDrivesDelete:
- {
- CmdRemoteDriveDeleteL();
- break;
- }
- case EFileManagerSend: // Suppress
- {
- break;
- }
- case EFileManagerMemoryStorageDetails:
- {
- CmdMemoryStorageDetailsL();
- break;
- }
- case EFileManagerMemoryStorageName:
- case EFileManagerMemoryStorageRename: // Fall through
- {
- CmdRenameDriveL();
- break;
- }
- case EFileManagerMemoryStorageFormat:
- {
- CmdFormatDriveL();
- break;
- }
- case EFileManagerMemoryStorageSetPassword:
- {
- CmdSetDrivePasswordL();
- break;
- }
- case EFileManagerMemoryStorageChangePassword:
- {
- CmdChangeDrivePasswordL();
- break;
- }
- case EFileManagerMemoryStorageRemovePassword:
- {
- CmdRemoveDrivePasswordL();
- break;
- }
- case EFileManagerMemoryStorageUnlock:
- {
- CmdUnlockDriveL();
- break;
- }
- default:
- {
- CFileManagerViewBase::HandleCommandL( aCommand );
- break;
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::CmdOpenMemoryStoreL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdOpenMemoryStoreL()
- {
- StoreIndex();
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- if ( index >= 0 )
- {
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- CFileManagerItemProperties* prop = iEngine.GetItemInfoLC( index );
-
- TRAPD( err, iEngine.OpenL( index ) );
- if ( err == KErrNone && prop->FullPath().Length() )
- {
- appUi->ActivateMemoryStoreViewL();
- }
- CleanupStack::PopAndDestroy( prop );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::CmdEjectL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdEjectL()
- {
- StoreIndex();
-
-#ifdef RD_MULTIPLE_DRIVE
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- CFileManagerItemProperties* prop = iEngine.GetItemInfoLC( index );
- TInt drive( prop->DriveId() );
- const TInt KDriveShift = 16;
-
- // Let SysAp handle eject
- RProperty::Set(
- KPSUidCoreApplicationUIs,
- KCoreAppUIsMmcRemovedWithoutEject,
- ECoreAppUIsEjectCommandUsedToDrive | ( drive << KDriveShift )
- );
-
- CleanupStack::PopAndDestroy( prop );
-#else // RD_MULTIPLE_DRIVE
- if ( FileManagerDlgUtils::ShowConfirmQueryWithYesNoL( R_QTN_CONF_EJECT ) )
- {
- StartProcessL( EEjectProcess );
- }
-#endif // RD_MULTIPLE_DRIVE
- }
-
-#ifndef RD_FILE_MANAGER_BACKUP
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::CmdBackupL
-//
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdBackupL()
- {
- StoreIndex();
- TInt textId( R_QTN_CONFIRM_BACKUP_TEXT );
- TFileManagerDriveInfo mmcinfo( iEngine.GetMMCInfoL() );
-
- if( mmcinfo.iState & TFileManagerDriveInfo::EDriveBackupped )
- {
- textId = R_QTN_CONFIRM_BACKUP_TEXT2;
- }
- if( FileManagerDlgUtils::ShowConfirmQueryWithYesNoL( textId ) )
- {
- if ( !DriveReadOnlyMmcL( mmcinfo.iDrive ) )
- {
- if ( !IsDriveAvailable( mmcinfo.iDrive ) ||
- !CheckPhoneState() )
- {
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_CRITICAL_ERROR );
- }
- else
- {
- StartProcessL( EBackupProcess );
- }
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::CmdRestoreL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdRestoreL()
- {
- StoreIndex();
- if( FileManagerDlgUtils::ShowConfirmQueryWithYesNoL( R_QTN_CONFIRM_RESTORE_TEXT ) )
- {
- TFileManagerDriveInfo mmcinfo( iEngine.GetMMCInfoL() );
-
- if ( !IsDriveAvailable( mmcinfo.iDrive ) ||
- !CheckPhoneState() )
- {
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_CRITICAL_ERROR );
- }
- else
- {
- StartProcessL( ERestoreProcess );
- }
- }
- }
-#endif // RD_FILE_MANAGER_BACKUP
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::CmdMapRemoteDriveL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdMapRemoteDriveL()
- {
- StoreIndex();
- const TInt KMaxRemoteDrives = 9;
- RFs& fs( CCoeEnv::Static()->FsSession() );
- TDriveList driveList;
- User::LeaveIfError( fs.DriveList( driveList, KDriveAttRemote ) );
- TInt numRemote( 0 );
- TInt count( driveList.Length() );
- for( TInt i( 0 ); i < count; ++i )
- {
- if ( driveList[ i ] & KDriveAttRemote )
- {
- ++numRemote;
- }
- }
- if ( numRemote < KMaxRemoteDrives )
- {
- OpenRemoteDriveSettingsL();
- }
- else
- {
- FileManagerDlgUtils::ShowConfirmQueryWithOkL(
- FileManagerDlgUtils::EErrorIcons,
- R_QTN_RD_ERROR_MAX_DRIVES );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMainView::CmdRemoteDriveSettingsL
-// ------------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdRemoteDriveSettingsL()
- {
- StoreIndex();
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- CFileManagerItemProperties* prop = iEngine.GetItemInfoLC( index );
- OpenRemoteDriveSettingsL( prop->DriveName() );
- CleanupStack::PopAndDestroy( prop );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerMainView::CmdRemoteDriveDeleteL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdRemoteDriveDeleteL()
- {
- StoreIndex();
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- CFileManagerItemProperties* prop = iEngine.GetItemInfoLC( index );
- if ( IsDisconnectedRemoteDrive( *prop ) )
- {
- if ( FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- R_QTN_RD_QUERY_DELETE_DRIVE, prop->Name() ) )
- {
- TInt drv = TDriveUnit( prop->FullPath() );
- User::LeaveIfError( iEngine.DeleteRemoteDrive( drv ) );
- }
- }
- CleanupStack::PopAndDestroy( prop );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerMainView::NotifyL
-//
-// ------------------------------------------------------------------------------
-//
-TInt CFileManagerMainView::NotifyL(
- TFileManagerNotify aType, TInt aData, const TDesC& aName )
- {
- TInt ret( KErrNone );
- switch ( aType )
- {
-#ifdef RD_FILE_MANAGER_BACKUP
- case ENotifyActionSelected:
- {
- if ( aData == EFileManagerBackupAction )
- {
- StoreIndex();
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->ActivateBackupViewL();
- }
- break;
- }
-#endif // RD_FILE_MANAGER_BACKUP
- default:
- {
- ret = CFileManagerViewBase::NotifyL( aType, aData, aName );
- break;
- }
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerMainView::MemoryStorageMenuFilteringL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerMainView::MemoryStorageMenuFilteringL( CEikMenuPane& aMenuPane )
- {
- TFileManagerDriveInfo drvInfo;
- if( DriveInfoAtCurrentPosL( drvInfo ) < 0 )
- {
- // No drive selected
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageUnlock, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageDetails, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageFormat, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageName, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageRename, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageSetPassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageChangePassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageRemovePassword, ETrue );
- return;
- }
-
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveCorrupted )
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageDetails, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageName, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageRename, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageSetPassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageChangePassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageRemovePassword, ETrue );
- }
- else if ( !( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable ) ||
- ( drvInfo.iState & ( TFileManagerDriveInfo::EDriveLocked |
- TFileManagerDriveInfo::EDriveMassStorage ) ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageName, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageRename, ETrue );
- }
- else if ( drvInfo.iName.Length() > 0 )
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageName, ETrue );
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageRename, ETrue );
- }
- if (!( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent) )
- {
- aMenuPane.SetItemDimmed(EFileManagerMemoryStorageSetPassword, ETrue );
- aMenuPane.SetItemDimmed(EFileManagerMemoryStorageName, ETrue );
- aMenuPane.SetItemDimmed(EFileManagerMemoryStorageRename, ETrue );
- aMenuPane.SetItemDimmed(EFileManagerMemoryStorageDetails, ETrue );
-
- }
-
- if ( FeatureManager().IsEmbedded() ||
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable ) ||
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveFormattable ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageFormat, ETrue );
- }
-
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveLocked )
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageDetails, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageSetPassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageChangePassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageRemovePassword, ETrue );
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageUnlock, ETrue );
- }
-
- if ( !( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable ) ||
- ( drvInfo.iState & ( TFileManagerDriveInfo::EDriveMassStorage |
- TFileManagerDriveInfo::EDriveUsbMemory ) ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageSetPassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageChangePassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageRemovePassword, ETrue );
- }
- else if ( drvInfo.iState & TFileManagerDriveInfo::EDrivePasswordProtected )
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageSetPassword, ETrue );
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageChangePassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageRemovePassword, ETrue );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerMainView::CmdMemoryStorageDetailsL
-// ------------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdMemoryStorageDetailsL()
- {
- StoreIndex();
- TFileManagerDriveInfo drvInfo;
- TInt drive( DriveInfoAtCurrentPosL( drvInfo ) );
- if ( drive < 0 )
- {
- return; // No drive selected
- }
- HBufC* title = StringLoader::LoadLC( R_QTN_FMGR_MSTATE_HEADING );
- CMemStatePopup::RunLD(
- static_cast< TDriveNumber >( drive ), *title );
- CleanupStack::PopAndDestroy( title );
-// TFileManagerDriveInfo drvInfo;
-// iEngine.GetDriveInfoL( iEngine.CurrentDrive(), drvInfo );
-// FileManagerDlgUtils::ShowMemoryStoreInfoPopupL( drvInfo );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerMainView::CmdRenameDriveL
-// ------------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdRenameDriveL()
- {
- StoreIndex();
- TFileManagerDriveInfo drvInfo;
- if ( DriveInfoAtCurrentPosL( drvInfo ) < 0 )
- {
- return; // No drive selected
- }
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveWriteProtected )
- {
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_MEMORYCARD_READONLY );
- return;
- }
- RenameDriveL( EFalse );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerMainView::CmdSetDrivePasswordL
-// ------------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdSetDrivePasswordL()
- {
- StoreIndex();
- TInt drive( DriveAtCurrentPosL() );
- if ( drive < 0 )
- {
- return; // No drive selected
- }
-
- TBuf< KFmgrMaxMediaPassword > pwd;
- if( FileManagerDlgUtils::ShowPasswordQueryL( pwd ) )
- {
- TBuf< KFmgrMaxMediaPassword > nullPwd;
- EmptyPwd( nullPwd );
- if( UpdatePassword( drive, nullPwd, pwd ) == KErrNone )
- {
- FileManagerDlgUtils::ShowConfirmNoteL( R_QTN_PASSWORD_SET_TEXT );
- }
- else
- {
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_CRITICAL_ERROR );
- }
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerMainView::CmdChangeDrivePasswordL
-// ------------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdChangeDrivePasswordL()
- {
- StoreIndex();
- TInt drive( DriveAtCurrentPosL() );
- if ( drive < 0 )
- {
- return; // No drive selected
- }
-
- TBuf< KFmgrMaxMediaPassword > pwd;
- TBuf< KFmgrMaxMediaPassword > oldPwd;
- TBool isDone( EFalse );
- TBool isCanceled( EFalse );
- TInt err( KErrNone );
-
- // Ask for the old password until the correct one is given
- while( !isDone )
- {
- EmptyPwd( oldPwd );
- if( FileManagerDlgUtils::ShowSimplePasswordQueryL(
- R_QTN_PASSWORD_OLD_TEXT, oldPwd ) )
- {
- TInt index(iContainer->ListBoxCurrentItemIndex());
- CFileManagerItemProperties* prop = iEngine.GetItemInfoLC(index);
- TUint32 drvState(0);
- TInt error= iEngine.DriveState(drvState, prop->FullPath());
- if ((error!=KErrNone)||(!(drvState & TFileManagerDriveInfo::EDrivePresent)))
- {
- isDone = ETrue;
- isCanceled = ETrue;
- FileManagerDlgUtils::ShowErrorNoteL(R_QTN_MEMC_NOT_AVAILABLE );
- }
- else
- {
- err = UpdatePassword( drive, oldPwd, oldPwd );
- if( err == KErrNone )
- {
- isDone = ETrue;
- }
- else
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_PASSWORDS_WRONG_TEXT );
- }
- }
- CleanupStack::PopAndDestroy( prop );
- }
- else
- {
- isDone = ETrue;
- isCanceled = ETrue;
- }
- }
-
- // Then query for the new password
- if( !isCanceled )
- {
- if( FileManagerDlgUtils::ShowPasswordQueryL( pwd ) )
- {
- err = UpdatePassword( drive, oldPwd, pwd );
- if( err == KErrNone )
- {
- FileManagerDlgUtils::ShowConfirmNoteL(
- R_QTN_PASSWORD_CHANGED_TEXT );
- }
- else
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_CRITICAL_ERROR );
- }
- }
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerMainView::CmdRemoveDrivePasswordL
-// ------------------------------------------------------------------------------
-//
-void CFileManagerMainView::CmdRemoveDrivePasswordL()
- {
- StoreIndex();
- TInt drive( DriveAtCurrentPosL() );
- if ( drive < 0 )
- {
- return; // No drive selected
- }
-
- if( !UnlockRemovePasswordL( drive, ETrue ) )
- {
- FileManagerDlgUtils::ShowConfirmNoteL( R_QTN_PASSWORD_REMOVED_TEXT );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerMainView::DriveAtCurrentPosL
-// ------------------------------------------------------------------------------
-//
-TInt CFileManagerMainView::DriveAtCurrentPosL()
- {
- TFileManagerDriveInfo dummy;
- return DriveInfoAtCurrentPosL( dummy );
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerMemoryStoreView.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,349 +0,0 @@
-/*
-* Copyright (c) 2006-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: Memory store view
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <aknlists.h>
-#include <akntitle.h>
-#include <CFileManagerEngine.h>
-#include <filemanager.rsg>
-#include <csxhelp/fmgr.hlp.hrh>
-#include <FileManagerDebug.h>
-#include "CFileManagerMemoryStoreView.h"
-#include "CFileManagerFileListContainer.h"
-#include "CFileManagerAppUi.h"
-#include "CFileManagerDocument.h"
-#include "FileManager.hrh"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::CFileManagerMemoryStoreView
-// ----------------------------------------------------------------------------
-//
-CFileManagerMemoryStoreView::CFileManagerMemoryStoreView()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::NewLC
-// ----------------------------------------------------------------------------
-//
-CFileManagerMemoryStoreView* CFileManagerMemoryStoreView::NewLC()
- {
- CFileManagerMemoryStoreView* self =
- new( ELeave ) CFileManagerMemoryStoreView();
-
- CleanupStack::PushL( self );
- self->ConstructL( R_FILEMANAGER_FOLDERS_VIEW );
-
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::~CFileManagerMemoryStoreView
-// ----------------------------------------------------------------------------
-//
-CFileManagerMemoryStoreView::~CFileManagerMemoryStoreView()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::DoActivateL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMemoryStoreView::DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage )
- {
- FUNC_LOG
-
- // Check embedded app exit first
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->ExitEmbeddedAppIfNeededL();
-
- CFileManagerViewBase::DoActivateL(
- aPrevViewId, aCustomMessageId, aCustomMessage );
-
- TBool showRemoteNotConnected( EFalse );
- // Ensure that root directory is defined
- TInt count( iEngine.NavigationLevel() );
- if ( count > 0 )
- {
- iIndex = 0;
- for ( TInt i( 0 ); i < count; i++ )
- {
- TRAP_IGNORE( iEngine.BackstepL() );
- }
- showRemoteNotConnected = ETrue;
- }
-
- TRAP_IGNORE ( RefreshDriveInfoL() );
- RefreshTitleL();
- iEngine.SetState( CFileManagerEngine::ENavigation );
- iEngine.SetObserver( this );
- if ( DriveAvailableL( showRemoteNotConnected ) )
- {
- iEngine.RefreshDirectory();
- }
- else
- {
- UpdateCbaL();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::DoDeactivate
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMemoryStoreView::DoDeactivate()
- {
- FUNC_LOG
-
- CFileManagerViewBase::DoDeactivate();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::DirectoryChangedL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMemoryStoreView::DirectoryChangedL()
- {
- FUNC_LOG
-
- TBool drvAvailable( DriveAvailableL( ETrue ) );
-
- if ( iContainer )
- {
- if ( drvAvailable )
- {
- TInt index = iEngine.CurrentIndex();
- if ( index != KErrNotFound )
- {
- iIndex = index;
- }
- iContainer->RefreshListL( iIndex );
- }
- else
- {
- iIndex = 0;
- }
- RefreshTitleL();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::Id
-// ----------------------------------------------------------------------------
-//
-TUid CFileManagerMemoryStoreView::Id() const
- {
- return CFileManagerAppUi::KFileManagerMemoryStoreViewId;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::CreateContainerL
-// ----------------------------------------------------------------------------
-//
-CFileManagerContainerBase* CFileManagerMemoryStoreView::CreateContainerL()
- {
- return CFileManagerFileListContainer::NewL(
- ClientRect(),
- iIndex,
- CFileManagerFileListContainer::EListMemoryStore,
- R_QTN_SELEC_EMPTY_LIST,
- KFMGR_HLP_MEM_STORE_VIEW );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::HandleCommandL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMemoryStoreView::HandleCommandL( TInt aCommand )
- {
- switch( aCommand )
- {
- case EFileManagerOpen:
- {
- CmdOpenL();
- break;
- }
- case EAknSoftkeyBack:
- {
- CmdBackL();
- break;
- }
- default:
- {
- CFileManagerViewBase::HandleCommandL( aCommand );
- break;
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::DriveAvailableL
-// ----------------------------------------------------------------------------
-//
-TBool CFileManagerMemoryStoreView::DriveAvailableL(
- TBool aShowRemoteNotConnected )
- {
- HBufC* error = NULL;
- TFileManagerDriveInfo& drvInfo( DriveInfo() );
- if ( drvInfo.iState & (
- TFileManagerDriveInfo::EDriveRemovable |
- TFileManagerDriveInfo::EDriveRemote ) )
- {
- TRAP_IGNORE( RefreshDriveInfoL() );
- }
-
- TInt drvNum = drvInfo.iDrive;
- iEngine.GetDriveInfoL(drvNum,drvInfo);
-
- INFO_LOG1( "CFileManagerMemoryStoreView::DriveAvailableL-drvState=%d",
- drvInfo.iState )
-
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote )
- {
- iEngine.SetMemoryL( EFmRemoteDrive );
- }
-#ifdef RD_MULTIPLE_DRIVE
- else if ( drvInfo.iState & TFileManagerDriveInfo::EDriveMassStorage )
- {
- iEngine.SetMemoryL( EFmMassStorage );
- }
-#endif // RD_MULTIPLE_DRIVE
- else if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable )
- {
- iEngine.SetMemoryL( EFmMemoryCard );
- }
- else if ( drvInfo.iState & TFileManagerDriveInfo::EDriveUsbMemory )
- {
- iEngine.SetMemoryL( EFmUsbMemory );
- }
- else
- {
- iEngine.SetMemoryL( EFmPhoneMemory );
- }
-
-#ifdef RD_MULTIPLE_DRIVE
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveMassStorage )
- {
- // Handle mass storage states
- if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) ||
- ( drvInfo.iState & TFileManagerDriveInfo::EDriveInUse ) )
- {
- error = StringLoader::LoadLC( R_QTN_MEMC_MASS_STORAGE_IN_USE );
- }
- else if ( drvInfo.iState & TFileManagerDriveInfo::EDriveCorrupted )
- {
- error = StringLoader::LoadLC( R_QTN_MEMC_MASS_STORAGE_CORRUPTED );
- }
- }
- else
- {
- // Handle other drives
-#endif // RD_MULTIPLE_DRIVE
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveInUse )
- {
- error = StringLoader::LoadLC( R_QTN_MEMC_MAINPAGE_ERROR4 );
- }
- else if ( drvInfo.iState & TFileManagerDriveInfo::EDriveLocked )
- {
- error = StringLoader::LoadLC( R_QTN_MEMC_MAINPAGE_ERROR2 );
- }
- else if ( drvInfo.iState & TFileManagerDriveInfo::EDriveCorrupted )
- {
- error = StringLoader::LoadLC( R_QTN_MEMC_MAINPAGE_ERROR3 );
- }
- else if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) )
- {
- error = StringLoader::LoadLC( R_QTN_MEMC_NOT_AVAILABLE );
- }
- else if ( aShowRemoteNotConnected &&
- ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) &&
- ! ( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) )
- {
- error = StringLoader::LoadLC( R_QTN_FMGR_EMPTY_REMOTE_DRIVE );
- }
-#ifdef RD_MULTIPLE_DRIVE
- }
-#endif // RD_MULTIPLE_DRIVE
- if ( error )
- {
- if ( iContainer )
- {
- iContainer->ListBoxSetTextL( *error );
- }
- CleanupStack::PopAndDestroy( error );
- return EFalse;
- }
- return ETrue;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::RefreshTitleL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMemoryStoreView::RefreshTitleL()
- {
- static_cast< CFileManagerAppUi* >( AppUi() )->SetTitleL(
- iEngine.CurrentDriveName() );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::CmdOpenL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMemoryStoreView::CmdOpenL()
- {
- StoreIndex();
- CFileManagerViewBase::CmdOpenL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::CmdBackL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMemoryStoreView::CmdBackL()
- {
- if ( iActiveProcess != ENoProcess )
- {
- return; // Ignore to avoid container mess up
- }
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- iEngine.BackstepL();
- iIndex = 0;
- appUi->CloseMemoryStoreViewL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerMemoryStoreView::UpdateCbaL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerMemoryStoreView::UpdateCbaL()
- {
- UpdateCommonCbaL();
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerRestoreView.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,435 +0,0 @@
-/*
-* Copyright (c) 2006-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: View for restore settings
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <aknlists.h>
-#include <akntitle.h>
-#include <CFileManagerEngine.h>
-#include <filemanager.rsg>
-#include <FileManagerDlgUtils.h>
-#include <CFileManagerRestoreSettings.h>
-#include <FileManagerDebug.h>
-#include "CFileManagerRestoreView.h"
-#include "CFileManagerSettingListContainer.h"
-#include "CFileManagerDocument.h"
-#include "CFileManagerAppUi.h"
-#include "FileManager.hrh"
-
-// CONSTANTS
-const TUid CFileManagerRestoreView::KDeleteBackups = { EDeleteBackups };
-const TInt KMaxSelection = 64;
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::CFileManagerRestoreView
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreView::CFileManagerRestoreView()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::NewLC
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreView* CFileManagerRestoreView::NewLC()
- {
- CFileManagerRestoreView* self = new( ELeave ) CFileManagerRestoreView();
- CleanupStack::PushL( self );
- self->ConstructL( R_FILEMANAGER_RESTORE_VIEW );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::~CFileManagerRestoreView
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreView::~CFileManagerRestoreView()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::DoActivateL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::DoActivateL(
- const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage )
- {
- FUNC_LOG
-
- iSelection = 0; // Reset stored list selection
- iDeleteBackups = ( aCustomMessageId == KDeleteBackups );
-
- CFileManagerViewBase::DoActivateL(
- aPrevViewId, aCustomMessageId, aCustomMessage );
-
- static_cast< CFileManagerAppUi* >( AppUi() )->SetTitleL(
- iDeleteBackups ?
- R_QTN_FMGR_DELETE_BACKUP_TITLE : R_QTN_FMGR_RESTORE_TITLE );
-
- CFileManagerRestoreSettings& settings( iEngine.RestoreSettingsL() );
- settings.RefreshL();
-
- iContainer->RefreshListL( iIndex );
-
- CEikButtonGroupContainer* cba = Cba();
- cba->SetCommandSetL(R_AVKON_SOFTKEYS_OK_CANCEL__MARK );
- cba->MakeCommandVisible( EAknSoftkeyOk, EFalse );
- cba->MakeCommandVisible( EAknSoftkeyMark, ETrue );
-
- if ( !iContainer->ListBoxNumberOfItems() )
- {
- cba->MakeCommandVisible( EAknSoftkeyMark, EFalse );
- }
- cba->DrawDeferred();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::DoDeactivate
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::DoDeactivate()
- {
- FUNC_LOG
-
- CFileManagerViewBase::DoDeactivate();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::DirectoryChangedL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::DirectoryChangedL()
- {
- FUNC_LOG
-
- if ( iContainer )
- {
- CFileManagerRestoreSettings& settings( iEngine.RestoreSettingsL() );
- settings.RefreshL();
- iContainer->RefreshListL( iIndex );
- RestoreSelectionL();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::Id
-// ----------------------------------------------------------------------------
-//
-TUid CFileManagerRestoreView::Id() const
- {
- return CFileManagerAppUi::KFileManagerRestoreViewId;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::CreateContainerL
-// ----------------------------------------------------------------------------
-//
-CFileManagerContainerBase* CFileManagerRestoreView::CreateContainerL()
- {
- CFileManagerRestoreSettings& settings( iEngine.RestoreSettingsL() );
- CFileManagerContainerBase* container =
- CFileManagerSettingListContainer::NewL(
- ClientRect(),
- iIndex,
- CFileManagerSettingListContainer::EListRestore,
- &settings );
- container->SetEmptyTextL( R_QTN_FMGR_RESTORE_NO_BACKUPS );
- return container;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::HandleCommandL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::HandleCommandL( TInt aCommand )
- {
- switch( aCommand )
- {
- case EAknSoftkeySelect: // FALLTHROUGH
- case EAknSoftkeyMark: // FALLTHROUGH
- case EAknSoftkeyUnmark: // FALLTHROUGH
- case EFileManagerSelectionKey: // FALLTHROUGH
- case EFileManagerToggleMark: // FALLTHROUGH
- case EFileManagerOpen:
- {
- CmdSelectL();
- break;
- }
- case EAknSoftkeyOk:
- {
- CmdOkL();
- break;
- }
- case EAknSoftkeyCancel: // FALLTHROUGH
- case EAknSoftkeyBack:
- {
- CmdCancelL();
- break;
- }
- case EFileManagerCheckMark:
- {
- CmdCheckMarkL();
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::CmdOkL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::CmdOkL()
- {
- if ( !iContainer )
- {
- return;
- }
-
- TBool isSystemStateNormal = static_cast< CFileManagerAppUi* >( AppUi() )->IsSystemStateNormal();
- if ( !isSystemStateNormal )
- {
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_FMGR_SYSTEM_NOT_READY );
- return;
- }
-
- const CArrayFix< TInt >* items = iContainer->ListBoxSelectionIndexes();
-
- TInt count( items->Count() );
-
- if ( count )
- {
- if( FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- iDeleteBackups ?
- R_QTN_FMGR_DELETE_BACKUP_QUERY : R_QTN_FMGR_RESTORE_QUERY ) )
- {
- if ( !CheckPhoneState() )
- {
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_CRITICAL_ERROR );
- }
- else
- {
- TUint64 selection( 0 );
- for ( TInt i( 0 ); i < count; ++i )
- {
- selection |= ( ( TUint64 ) 1 ) << ( ( *items )[ i ] );
- }
-
- CFileManagerRestoreSettings& settings(
- iEngine.RestoreSettingsL() );
- settings.SetSelection( selection );
-
- if ( iDeleteBackups )
- {
- // Delete selected backups and close this view
- iEngine.DeleteBackupsL();
- iIndex = 0;
- static_cast< CFileManagerAppUi* >(
- AppUi() )->CloseRestoreViewL();
- }
- else
- {
- // Start restoring selected backups
- TRAPD( err, StartProcessL( ERestoreProcess ) );
- if ( err == KErrCorrupt )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_CORRUPTED_BACKUP_FILE );
- }
- else
- {
- User::LeaveIfError( err );
- }
- }
- }
- }
- }
- else
- {
- CmdCancelL();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::CmdCancelL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::CmdCancelL()
- {
- iIndex = 0;
- static_cast< CFileManagerAppUi* >( AppUi() )->CloseRestoreViewL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::CmdSelectL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::CmdSelectL()
- {
- if ( !iContainer )
- {
- return;
- }
- if ( !iContainer->ListBoxNumberOfItems() )
- {
- return;
- }
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- iContainer->ListBoxToggleItemL( index );
- iSelection ^= ( ( TUint64 ) 1 ) << index; // Toggle stored list selection
- UpdateCbaFromSelectionL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::CmdCheckMarkL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::CmdCheckMarkL()
- {
- if ( !iContainer )
- {
- return;
- }
- TInt mskTextId( R_QTN_MSK_MARK );
- if ( iContainer->ListBoxIsItemSelected(
- iContainer->ListBoxCurrentItemIndex() ) )
- {
- mskTextId = R_QTN_MSK_UNMARK;
- }
-
- SetCbaMskTextL( mskTextId );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::ProcessFinishedL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::ProcessFinishedL(
- TInt aError, const TDesC& aName )
- {
- TBool isRestore( iActiveProcess == ERestoreProcess );
-
- CFileManagerViewBase::ProcessFinishedL( aError, aName );
-
- // Exit when restore finished
- if ( isRestore )
- {
- CmdCancelL();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::NotifyForegroundStatusChange
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::NotifyForegroundStatusChange(
- TBool aForeground )
- {
- FUNC_LOG
-
- if ( aForeground )
- {
- TRAP_IGNORE( RefreshSettingsL() );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::RefreshSettingsL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::RefreshSettingsL()
- {
- FUNC_LOG
-
- DirectoryChangedL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::RestoreSelectionL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::RestoreSelectionL()
- {
- if ( !iContainer )
- {
- return;
- }
- const CArrayFix< TInt >* items = iContainer->ListBoxSelectionIndexes();
- for ( TInt i( 0 ); i < KMaxSelection; ++i )
- {
- if ( iSelection & ( ( ( TUint64 ) 1 ) << i ) )
- {
- iContainer->ListBoxSelectItemL( i );
- }
- else
- {
- iContainer->ListBoxDeselectItem( i );
- }
- }
- UpdateCbaFromSelectionL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::UpdateCbaFromSelectionL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::UpdateCbaFromSelectionL()
- {
- if ( !iContainer )
- {
- return;
- }
- CmdCheckMarkL();
- CEikButtonGroupContainer* cba = Cba();
- TBool hasItem(iContainer->ListBoxNumberOfItems());
- const CArrayFix< TInt >* items = iContainer->ListBoxSelectionIndexes();
- if ( hasItem && items->Count() )
- {
- cba->MakeCommandVisible( EAknSoftkeyOk, ETrue );
- }
- else
- {
- cba->MakeCommandVisible( EAknSoftkeyOk, EFalse );
- }
- cba->DrawDeferred();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreView::UpdateCbaL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreView::UpdateCbaL()
- {
- CEikButtonGroupContainer* cba = Cba();
- TBool hasItem(iContainer->ListBoxNumberOfItems());
- cba->MakeCommandVisible( EAknSoftkeyMark, hasItem );
- TBool hasSelecttionItem( hasItem && ( iContainer->ListBoxSelectionIndexesCount() ) );
- cba->MakeCommandVisible( EAknSoftkeyOk, hasSelecttionItem );
- cba->DrawDeferred();
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerSchBackupHandler.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,423 +0,0 @@
-/*
-* Copyright (c) 2006 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: Handler for scheduled backup
-*
-*/
-
-
- #define FILE_MANAGER_POWER_SAVING_MODE
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <centralrepository.h>
-#include <avkon.hrh>
-#include <avkon.rsg>
-#include <filemanager.rsg>
-#include <FileManagerDebug.h>
-#include <FileManagerPrivateCRKeys.h>
-#include <CFileManagerEngine.h>
-#include <CFileManagerBackupSettings.h>
-#include <MFileManagerProcessObserver.h>
-#include <CFileManagerGlobalDlg.h>
-#ifdef FILE_MANAGER_POWER_SAVING_MODE
- #include <psmsrvdomaincrkeys.h>
-#endif // FILE_MANAGER_POWER_SAVING_MODE
-#include "CFileManagerSchBackupHandler.h"
-#include "MFileManagerSchBackupObserver.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::CFileManagerSchBackupHandler
-// ----------------------------------------------------------------------------
-//
-CFileManagerSchBackupHandler::CFileManagerSchBackupHandler(
- CFileManagerEngine& aEngine ) :
- iEngine( aEngine )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::NewL
-// ----------------------------------------------------------------------------
-//
-CFileManagerSchBackupHandler* CFileManagerSchBackupHandler::NewL(
- CFileManagerEngine& aEngine )
- {
- CFileManagerSchBackupHandler* self =
- new( ELeave ) CFileManagerSchBackupHandler( aEngine );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::ConstructL()
- {
- FUNC_LOG
-
- iGlobalDlg = CFileManagerGlobalDlg::NewL();
- iGlobalDlg->SetObserver( this );
-
- iCenRep = CRepository::NewL( KCRUidFileManagerSettings );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::~CFileManagerSchBackupHandler
-// ----------------------------------------------------------------------------
-//
-CFileManagerSchBackupHandler::~CFileManagerSchBackupHandler()
- {
- FUNC_LOG
-
- delete iGlobalDlg;
- delete iCenRep;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::HandleGlobalDlgResult
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::HandleGlobalDlgResult(
- TInt aDlgType,
- TInt aDlgResult )
- {
- INFO_LOG2(
- "CFileManagerSchBackupHandler::HandleGlobalDlgResult-aDlgType=%d,aDlgResult=%d",
- aDlgType, aDlgResult )
- TInt err( KErrNone );
- switch ( aDlgType )
- {
- case CFileManagerGlobalDlg::ECountdownQuery:
- {
- if ( aDlgResult == EAknSoftkeyYes )
- {
- // Backup was accepted
- StartBackup();
-
- err = iCenRep->Set(
- KFileManagerLastSchBackupStatus,
- EFileManagerSchBackupStatusInProgress );
- }
- else
- {
- // Backup was rejected
- InformObserver( KErrCancel );
- CancelBackupStarter();
- }
- break;
- }
- case CFileManagerGlobalDlg::EProgressDialog:
- {
- // Backup was canceled
- iEngine.CancelProcess(
- MFileManagerProcessObserver::ESchBackupProcess );
- InformObserver( KErrCancel );
- CancelBackupStarter();
- break;
- }
- default:
- {
- InformObserver( aDlgResult );
- break;
- }
- }
-
- LOG_IF_ERROR1( err,
- "CFileManagerSchBackupHandler::HandleGlobalDlgResult-err=%d", err )
-
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::StartBackupWithConfirmL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::StartBackupWithConfirmL()
- {
- TBool psmOn( EFalse );
- TRAPD( err, psmOn = IsPowerSavingModeOnL() );
- if ( psmOn && err == KErrNone )
- {
- iGlobalDlg->ShowDialogL(
- CFileManagerGlobalDlg::EQueryWithInfoIcon,
- R_QTN_FMGR_SCHEDULED_BACKUP_CANCELLED_PS,
- R_AVKON_SOFTKEYS_OK_EMPTY );
- CancelBackupStarter();
- return;
- }
-
- // Show cancelable global confirm countdown before starting backup.
- // Backup is started only if accepted or countdown has expired.
- iGlobalDlg->ShowDialogL(
- CFileManagerGlobalDlg::ECountdownQuery,
- R_QTN_FMGR_SCHEDULED_BACKUP_QUERY );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::StartBackupL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::StartBackupL()
- {
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- TFileManagerDriveInfo drvInfo;
- iEngine.GetDriveInfoL( settings.TargetDrive(), drvInfo );
- TBool drvAvailable( EFalse );
-
- if( !IsTargetDriveAvailableL(drvInfo ) )
- {
- for( TInt i ( EDriveA ); i <= EDriveZ; i++ )
- {
- iEngine.GetDriveInfoL( i , drvInfo );
- if( ( IsTargetDriveAvailableL( drvInfo ) ) && ( drvInfo.iState & TFileManagerDriveInfo::EDriveEjectable ) )
- {
- settings.SetTargetDrive( i );
- settings.SaveL();
- drvAvailable = ETrue;
- break;
- }
- }
- }
- else
- {
- drvAvailable = ETrue;
- }
- if ( !drvAvailable )
- {
- iGlobalDlg->ShowDialogL(
- CFileManagerGlobalDlg::EQueryWithWarningIcon,
- R_QTN_FMGR_SCHEDULED_BACKUP_ERROR,
- R_AVKON_SOFTKEYS_OK_EMPTY );
- CancelBackupStarter();
- return;
- }
-
- HBufC* text = StringLoader::LoadLC(
- R_QTN_FMGR_SCHEDULED_BACKUP_PROGRESS,
- iEngine.DriveName( settings.TargetDrive() ) );
-
- iGlobalDlg->ShowDialogL(
- CFileManagerGlobalDlg::EProgressDialog,
- *text );
-
- CleanupStack::PopAndDestroy( text );
-
- iEngine.StartBackupProcessL(
- MFileManagerProcessObserver::ESchBackupProcess );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::SetObserver
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::SetObserver(
- MFileManagerSchBackupObserver* aObserver )
- {
- iObserver = aObserver;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::StartBackupWithConfirm
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::StartBackupWithConfirm()
- {
- FUNC_LOG
-
- if ( iBackupOngoing )
- {
- return;
- }
-
- iBackupOngoing = ETrue;
-
- TRAPD( err, StartBackupWithConfirmL() );
- if ( err != KErrNone )
- {
- InformObserver( err );
- }
- else
- {
- // Confirm scheduled backup start state
- TInt err( iCenRep->Set(
- KFileManagerLastSchBackupStatus,
- EFileManagerSchBackupStatusInProgress ) );
-
- LOG_IF_ERROR1( err,
- "CFileManagerSchBackupHandler::StartBackupWithConfirm-err=%d", err )
-
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::StartBackup
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::StartBackup()
- {
- FUNC_LOG
-
- TRAPD( err, StartBackupL() );
- if ( err != KErrNone )
- {
- InformObserver( err );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::InformObserver
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::InformObserver( const TInt aValue )
- {
- INFO_LOG1( "CFileManagerSchBackupHandler::InformObserver-aValue=%d", aValue )
-
- iBackupOngoing = EFalse;
- if ( iObserver )
- {
- TRAP_IGNORE( iObserver->SchBackupFinishedL( aValue ) );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::ProcessFinishedL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::ProcessFinishedL(
- TInt aError, const TDesC& /*aName*/ )
- {
- INFO_LOG1( "CFileManagerSchBackupHandler::ProcessFinishedL-aError=%d",
- aError )
-
- iGlobalDlg->CancelDialog();
- TInt err( KErrNone );
- if ( aError == KErrCancel )
- {
- CancelBackupStarter();
- }
- else if ( aError != KErrNone )
- {
- iGlobalDlg->ShowDialogL(
- CFileManagerGlobalDlg::EErrorNote,
- R_QTN_CRITICAL_ERROR );
-
- err = iCenRep->Set(
- KFileManagerLastSchBackupStatus,
- EFileManagerSchBackupStatusFailed );
- }
- else
- {
- iGlobalDlg->ShowDialogL(
- CFileManagerGlobalDlg::EInfoNote,
- R_QTN_BACKUP_COMPLETED );
-
- err = iCenRep->Set(
- KFileManagerLastSchBackupStatus,
- EFileManagerSchBackupStatusOk );
- }
-
- LOG_IF_ERROR1( err,
- "CFileManagerSchBackupHandler::ProcessFinishedL-err=%d", err )
-
- InformObserver( aError );
-
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::ProcessAdvanceL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::ProcessAdvanceL( TInt aValue )
- {
- iGlobalDlg->UpdateProgressDialog( aValue );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::ProcessStartedL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::ProcessStartedL( TInt aFinalValue )
- {
- FUNC_LOG
-
- iGlobalDlg->UpdateProgressDialog( 0, aFinalValue );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::CancelBackupStarter
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSchBackupHandler::CancelBackupStarter()
- {
- TInt err( iCenRep->Set(
- KFileManagerLastSchBackupStatus,
- EFileManagerSchBackupStatusCanceled ) );
- LOG_IF_ERROR1( err,
- "CFileManagerSchBackupHandler::CancelBackupStarter-err=%d", err )
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::IsPowerSavingModeOnL
-// ----------------------------------------------------------------------------
-//
-TBool CFileManagerSchBackupHandler::IsPowerSavingModeOnL()
- {
- TBool ret( EFalse );
-#ifdef FILE_MANAGER_POWER_SAVING_MODE
- // Check power saving mode before start
- CRepository* psmCenRep = CRepository::NewLC( KCRUidPowerSaveMode );
- TInt psmMode( 0 );
- User::LeaveIfError( psmCenRep->Get( KPsmCurrentMode, psmMode ) );
- if ( psmMode )
- {
- ERROR_LOG1(
- "CFileManagerSchBackupHandler::IsPowerSavingModeOnL-PsmMode=%d",
- psmMode )
- ret = ETrue;
- }
- CleanupStack::PopAndDestroy( psmCenRep );
-#endif // FILE_MANAGER_POWER_SAVING_MODE
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSchBackupHandler::IsTargetDriveAvailableL
-// ----------------------------------------------------------------------------
-//
-TBool CFileManagerSchBackupHandler::IsTargetDriveAvailableL( const TFileManagerDriveInfo& aDrvInfo )
- {
- // Start backup with cancelable global progress dialog
-
- // Check is target drive available
- TBool ret( ETrue );
- if ( !( aDrvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) ||
- ( aDrvInfo.iState &
- ( TFileManagerDriveInfo::EDriveLocked |
- TFileManagerDriveInfo::EDriveCorrupted |
- TFileManagerDriveInfo::EDriveWriteProtected ) ) )
- {
- ERROR_LOG1(
- "CFileManagerSchBackupHandler::IsTargetDriveAvailableL-DrvState=%d",
- aDrvInfo.iState )
- ret = EFalse;
- }
- return ret;
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerSettingListContainer.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,287 +0,0 @@
-/*
-* Copyright (c) 2006-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: Setting list container in file manager
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <filemanager.rsg>
-#include <aknlists.h>
-#include <barsread.h>
-#include <eikclbd.h>
-#include <gulicon.h>
-#include <aknconsts.h>
-#include <AknIconArray.h>
-#include <avkon.mbg>
-#include <filemanager.mbg>
-#include <CFileManagerEngine.h>
-#include <FileManagerEngine.hrh>
-#include "FileManager.hrh"
-#include "CFileManagerDocument.h"
-#include "CFileManagerIconArray.h"
-#include "CFileManagerSettingListContainer.h"
-
-
-// needed because _LIT macro does not expand parameter, which is also macro
-#define _CREATE_LIT(a,b) _LIT(a,b)
-
-// CONSTANTS
-const TInt KRestoreIconListGranularity = 3;
-_CREATE_LIT( KFileManagerBitmapFile, filemanager_mbm_file_location );
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerSettingListContainer::CFileManagerSettingListContainer
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerSettingListContainer::CFileManagerSettingListContainer(
- const TListType aType ) :
- iType( aType )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSettingListContainer::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerSettingListContainer::ConstructL(
- const TRect& aRect,
- const TInt aFocusedIndex,
- MDesCArray* aArray,
- const TDesC& aHelpContext )
- {
- CFileManagerContainerBase::ConstructL( aRect, aFocusedIndex );
- SetTextArray( aArray );
- SetHelpContext( aHelpContext );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSettingListContainer::CreateListBoxL
-//
-// -----------------------------------------------------------------------------
-//
-CEikTextListBox* CFileManagerSettingListContainer::CreateListBoxL()
- {
- CEikTextListBox* listBox = NULL;
-
- switch ( iType )
- {
- case EListBackup:
- {
- listBox = CreateBackupListBoxL();
- break;
- }
- case EListRestore:
- {
- listBox = CreateRestoreListBoxL();
- break;
- }
- default:
- {
- break;
- }
- }
-
- return listBox;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSettingListContainer::CreateBackupListBoxL
-//
-// -----------------------------------------------------------------------------
-//
-CEikTextListBox* CFileManagerSettingListContainer::CreateBackupListBoxL()
- {
- CAknSettingStyleListBox* listBox = new( ELeave ) CAknSettingStyleListBox;
- CleanupStack::PushL( listBox );
- listBox->SetContainerWindowL( *this );
- listBox->ConstructL( this, EAknListBoxSelectionList );
- listBox->ItemDrawer()->ColumnData()->SetSkinEnabledL( ETrue );
- CleanupStack::Pop( listBox );
- return listBox;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSettingListContainer::CreateRestoreListBoxL
-//
-// -----------------------------------------------------------------------------
-//
-CEikTextListBox* CFileManagerSettingListContainer::CreateRestoreListBoxL()
- {
- CAknAppUi* appUi = static_cast< CAknAppUi* >( ControlEnv()->AppUi() );
- CFileManagerDocument* doc =
- static_cast< CFileManagerDocument* >( appUi->Document() );
- CAknDoubleGraphicStyleListBox* listBox =
- new( ELeave ) CAknDoubleGraphicStyleListBox;
- CleanupStack::PushL( listBox );
- listBox->SetContainerWindowL( *this );
- listBox->ConstructL( this, EAknListBoxMultiselectionList );
- listBox->ItemDrawer()->ColumnData()->SetSkinEnabledL( ETrue );
-
- // Create icon array and icons
- CAknIconArray* iconArray = new( ELeave ) CAknIconArray(
- KRestoreIconListGranularity );
- listBox->ItemDrawer()->
- ColumnData()->SetIconArray( iconArray ); // changes ownership
-
- CGulIcon* icon = CFileManagerIconArray::LoadIconL(
- KAvkonBitmapFile,
- EMbmAvkonQgn_indi_checkbox_on,
- EMbmAvkonQgn_indi_checkbox_on_mask,
- KAknsIIDQgnIndiCheckboxOn.iMajor,
- KAknsIIDQgnIndiCheckboxOn.iMinor,
- ETrue );
- CleanupStack::PushL( icon );
- iconArray->AppendL( icon );
- CleanupStack::Pop( icon );
-
- icon = CFileManagerIconArray::LoadIconL(
- KAvkonBitmapFile,
- EMbmAvkonQgn_indi_checkbox_off,
- EMbmAvkonQgn_indi_checkbox_off_mask,
- KAknsIIDQgnIndiCheckboxOff.iMajor,
- KAknsIIDQgnIndiCheckboxOff.iMinor,
- ETrue );
- CleanupStack::PushL( icon );
- iconArray->AppendL( icon );
- CleanupStack::Pop( icon );
-
- icon = CFileManagerIconArray::LoadIconL(
- KFileManagerBitmapFile,
- EMbmFilemanagerQgn_indi_mmc_add,
- EMbmFilemanagerQgn_indi_mmc_add_mask,
- KAknsIIDQgnIndiMmcAdd.iMajor,
- KAknsIIDQgnIndiMmcAdd.iMinor,
- ETrue );
- CleanupStack::PushL( icon );
- iconArray->AppendL( icon );
- CleanupStack::Pop( icon );
-
- icon = CFileManagerIconArray::LoadIconL(
- KFileManagerBitmapFile,
- EMbmFilemanagerQgn_indi_usb_memc,
- EMbmFilemanagerQgn_indi_usb_memc_mask,
- KAknsIIDQgnIndiMmcAdd.iMajor,
- KAknsIIDQgnIndiMmcAdd.iMinor,
- ETrue );
- CleanupStack::PushL( icon );
- iconArray->AppendL( icon );
- CleanupStack::Pop( icon );
-
- // Disable lists MSK observer because the container will be used
- // as observer
- listBox->EnableMSKObserver( EFalse );
- CleanupStack::Pop( listBox );
- return listBox;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSettingListContainer::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerSettingListContainer* CFileManagerSettingListContainer::NewL(
- const TRect& aRect,
- const TInt aFocusedIndex,
- const TListType aType,
- MDesCArray* aArray,
- const TDesC& aHelpContext )
- {
- CFileManagerSettingListContainer* self =
- new( ELeave ) CFileManagerSettingListContainer( aType );
- CleanupStack::PushL( self );
- self->ConstructL( aRect, aFocusedIndex, aArray, aHelpContext );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSettingListContainer::~CFileManagerSettingListContainer
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerSettingListContainer::~CFileManagerSettingListContainer()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSettingListContainer::OfferKeyEventL
-//
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CFileManagerSettingListContainer::OfferKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType )
- {
- TKeyResponse response = EKeyWasNotConsumed;
-
- switch( aKeyEvent.iCode )
- {
- case EKeyEnter: // FALLTHROUGH
- case EKeyOK:
- {
- // Notify restore list about selection change
- if ( iType == EListRestore )
- {
- static_cast< CAknAppUi* >( ControlEnv()->AppUi() )->
- ProcessCommandL( EFileManagerSelectionKey );
- response = EKeyWasConsumed;
- }
- else
- {
- response = ListBox().OfferKeyEventL( aKeyEvent, aType );
- }
- break;
- }
- case EKeyApplicationF:
- {
- // Suppress this from listbox,
- // otherwise empty multiselection list sometimes works badly on exit
- break;
- }
- default:
- {
- response = CFileManagerContainerBase::OfferKeyEventL(
- aKeyEvent, aType );
- }
- }
- return response;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSettingListContainer::HandleControlEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerSettingListContainer::HandleControlEventL(
- CCoeControl* aControl, TCoeEvent aEventType )
- {
- if ( iType == EListRestore &&
- aEventType == EEventStateChanged )
- {
- static_cast< CAknAppUi* >( ControlEnv()->AppUi() )->
- ProcessCommandL( EFileManagerCheckMark );
- }
-
- CFileManagerContainerBase::HandleControlEventL(
- aControl, aEventType );
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerStringCache.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,479 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Cache for strings
-*
-*/
-
-
-// INCLUDES
-#include <AknUtils.h>
-#include <StringLoader.h>
-#include <filemanager.rsg>
-#include <CFileManagerEngine.h>
-#include <CFileManagerItemProperties.h>
-#include <CFileManagerCommonDefinitions.h>
-#include <CFileManagerFeatureManager.h>
-#include "CFileManagerStringCache.h"
-#include "CFileManagerIconArray.h"
-
-// CONSTANTS
-const TInt KFmgrMaximumSizeOfIconIdString = 3;
-_LIT( KIconStr, "%d" );
-const TInt KMaxSizeString = 16;
-const TInt64 KKileByte = 1024;
-const TInt64 KMegaByte = 1048576;
-const TInt64 KGigaByte = 1073741824;
-const TInt64 KKileByteLowLimit = 100; // 100 bytes
-const TInt64 KMegaByteLowLimit = 1048576; // 1MB
-const TInt64 KGigaByteLowLimit = 1073741824; // 1GB
-const TInt KSizeDecimals = 1;
-const TInt KSizeTextArrayLen = 2;
-
-_LIT( KDateFormat1, "%1" );
-_LIT( KDateFormat2, "%2" );
-_LIT( KDateFormat3, "%3" );
-const TUint KSecondSeparator = 1;
-const TUint KThirdSeparator = 2;
-const TInt KDateStrMax = 20;
-
-
-// ============================ LOCAL FUNCTIONS ================================
-
-// -----------------------------------------------------------------------------
-// GetUnitAndFormatSize
-// -----------------------------------------------------------------------------
-//
-static TInt GetUnitAndFormatSize( TDes& aDes, const TInt64& aSize )
- {
- TRealFormat sizeFormat( aDes.MaxLength(), KSizeDecimals );
- sizeFormat.iType |= KDoNotUseTriads;
- TInt ret( R_QTN_FMGR_UNITS_BYTE );
- if ( aSize >= KGigaByteLowLimit )
- {
- // Format in GBs with decimals
- TReal size( I64REAL( aSize ) / I64REAL( KGigaByte ) );
- aDes.AppendNum( size, sizeFormat );
- ret = R_QTN_FMGR_UNITS_GIGABYTE;
- }
- else if ( aSize >= KMegaByteLowLimit )
- {
- // Format in MBs with decimals
- TReal size( I64REAL( aSize ) / I64REAL( KMegaByte ) );
- aDes.AppendNum( size, sizeFormat );
- ret = R_QTN_FMGR_UNITS_MEGABYTE;
- }
- else if ( aSize >= KKileByteLowLimit )
- {
- // Format in kBs with decimals
- TReal size( I64REAL( aSize ) / I64REAL( KKileByte ) );
- aDes.AppendNum( size, sizeFormat );
- ret = R_QTN_FMGR_UNITS_KILOBYTE;
- }
- else
- {
- // Format in bytes
- aDes.AppendNum( aSize );
- }
- AknTextUtils::LanguageSpecificNumberConversion( aDes );
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// GetFreeSpaceStringL
-// -----------------------------------------------------------------------------
-//
-static HBufC* GetFreeSpaceStringL( const TInt64& aSize )
- {
- CDesCArray* sizeTexts = new ( ELeave ) CDesCArrayFlat( KSizeTextArrayLen );
- CleanupStack::PushL( sizeTexts );
- TBuf< KMaxSizeString > size;
- HBufC* unit = StringLoader::LoadLC( GetUnitAndFormatSize( size, aSize ) );
- sizeTexts->AppendL( size );
- sizeTexts->AppendL( *unit );
- CleanupStack::PopAndDestroy( unit );
- HBufC* ret = StringLoader::LoadL( R_QTN_FMGR_FREE_MEMORY_VAR_UNITS,
- *sizeTexts );
- CleanupStack::PopAndDestroy( sizeTexts );
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// DateStringL
-// -----------------------------------------------------------------------------
-//
-static HBufC* DateStringL( const TTime& aTime )
- {
- TBuf< KDateStrMax > dateStr;
- TBuf< KDateStrMax > dateStrFormat;
- TLocale local;
- dateStrFormat.Append( KDateFormat1 );
- dateStrFormat.Append( local.DateSeparator( KSecondSeparator ) );
- dateStrFormat.Append( KDateFormat2 );
- dateStrFormat.Append( local.DateSeparator( KThirdSeparator ) );
- dateStrFormat.Append( KDateFormat3 );
- aTime.FormatL( dateStr, dateStrFormat );
- return dateStr.AllocL();
- }
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::CFileManagerStringCache
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerStringCache::CFileManagerStringCache(
- CFileManagerEngine& aEngine,
- CFileManagerIconArray& aIconArray ) :
- iEngine( aEngine ),
- iIconArray( aIconArray )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerStringCache* CFileManagerStringCache::NewL(
- CFileManagerEngine& aEngine,
- CFileManagerIconArray& aIconArray )
- {
- CFileManagerStringCache* self = new( ELeave )
- CFileManagerStringCache( aEngine, aIconArray );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerStringCache::ConstructL()
- {
- Clear();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::~CFileManagerStringCache
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerStringCache::~CFileManagerStringCache()
- {
- Clear();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::MdcaCount
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerStringCache::MdcaCount() const
- {
- return iEngine.FileList()->MdcaCount();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::MdcaPoint
-//
-// -----------------------------------------------------------------------------
-//
-TPtrC CFileManagerStringCache::MdcaPoint( TInt aIndex ) const
- {
- TInt err( KErrNone );
- TInt index( FormattedStringFound( aIndex ) );
-
- if ( index >= 0 )
- {
- return FormattedString( index );
- }
-
- iFormatString.Zero();
-
- // Get icon
- TInt iconId( EFileManagerOtherFileIcon );
- TRAP( err, iconId = iEngine.IconIdL( aIndex ) );
- if ( err != KErrNone )
- {
- iconId = EFileManagerOtherFileIcon;
- SetError( err );
- }
- // Get name
- CFileManagerItemProperties* prop = NULL;
- TRAP( err, prop = iEngine.GetItemInfoL( aIndex ) );
- if ( err == KErrNone )
- {
- TPtrC ptr( prop->LocalizedName() );
- if ( iconId != EFileManagerFolderIcon &&
- iconId != EFileManagerFolderSubIcon &&
- iconId != EFileManagerFolderEmptyIcon )
- {
- // Append file name with conversion
- HBufC* buffer = NULL;
- TRAP( err, buffer = AknTextUtils::ConvertFileNameL( ptr ) );
- if ( err == KErrNone )
- {
- iFormatString.Append( *buffer );
- }
- else
- {
- // Put file name without any convertion, its better than nothing
- iFormatString.Append( ptr );
- SetError( err );
- }
- delete buffer;
- }
- else
- {
- // Append folder name
- iFormatString.Append( ptr );
- }
- }
- else
- {
- SetError( err );
- }
- // Remove all other possible tabs in string than the icon separator,
- // so that listbox won't get broken
- AknTextUtils::StripCharacters( iFormatString, KFmgrTab );
-
- AknTextUtils::ReplaceCharacters( iFormatString, KFmgrLineFeed, KFmgrSpace()[0] );
- AknTextUtils::ReplaceCharacters( iFormatString, KFmgrParagraphSeparator, KFmgrSpace()[0] );
-
- TInt iconIndex( iIconArray.FindIcon( iconId ) );
- if ( iconIndex >= 0 )
- {
- iFormatString.Insert( 0, KFmgrTab );
- TBuf<KFmgrMaximumSizeOfIconIdString> numBuf;
- numBuf.Copy( KIconStr );
- numBuf.Format( KIconStr, iconIndex );
- iFormatString.Insert( 0, numBuf );
- }
- else
- {
- SetError( iconIndex );
- }
-
- if ( err == KErrNone && prop && prop->IsDrive() )
- {
- TFileManagerDriveInfo drvInfo;
- TRAP( err, iEngine.GetDriveInfoL( prop->DriveId(), drvInfo ) );
- if ( err == KErrNone )
- {
- // Show free space for accessible local drives
- if ( ( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) &&
- !( drvInfo.iState & ( TFileManagerDriveInfo::EDriveRemote |
- TFileManagerDriveInfo::EDriveCorrupted |
- TFileManagerDriveInfo::EDriveLocked |
- TFileManagerDriveInfo::EDriveInUse ) ) )
- {
- HBufC* freeSpace = NULL;
- TRAP( err, freeSpace = GetFreeSpaceStringL( drvInfo.iSpaceFree ) );
- if ( err == KErrNone )
- {
- iFormatString.Append( KFmgrTab );
- iFormatString.Append( *freeSpace );
- }
- else
- {
- SetError( err );
- }
- delete freeSpace;
- }
- // Show connection icon for connected remote drives
- else if ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) &&
- ( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) )
- {
- iconIndex = iIconArray.FindIcon(
- EFileManagerRemoteDriveConnectedIcon );
- if ( iconIndex >= 0 )
- {
- iFormatString.Append( KFmgrTab );
- iFormatString.Append( KFmgrTab );
- iFormatString.AppendNum( iconIndex );
- }
- else if ( iconIndex != KErrNotFound )
- {
- SetError( iconIndex );
- }
- }
- }
- }
- else if ( err == KErrNone && prop && !prop->FullPath().Length() )
- {
- // Show the latest backup date
- TTime time( 0 );
- if( prop->ModifiedLocalDate( time ) == KErrNone )
- {
- HBufC* date = NULL;
- if ( !(time.DateTime().Year()) )
- {
- iFormatString.Append( KFmgrTab );
- iFormatString.Append( KNullDesC );
- }
- else
- {
-
- TRAPD( err2, date = DateStringL( time ) );
- if ( err2 == KErrNone )
- {
- iFormatString.Append( KFmgrTab );
- iFormatString.Append( *date );
- delete date;
- }
- }
- }
- }
-
- delete prop;
-
- TRAP( err, StoreFormattedStringL( aIndex ) );
- if( err != KErrNone )
- {
- Clear();
- SetError( err );
- }
-
- return iFormatString;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::Clear
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerStringCache::Clear() const
- {
- for ( TInt i( 0 ); i < KNumStringCacheItems; i++ )
- {
- Clear( i );
- }
- iError = KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::FormattedStringFound
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerStringCache::FormattedStringFound( TInt aIndex ) const
- {
- for ( TInt i( 0 ); i < KNumStringCacheItems; i++ )
- {
- if ( iFormattedItems[ i ].iIndex == aIndex )
- {
- return i;
- }
- }
- return KErrNotFound;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::FormattedString
-//
-// -----------------------------------------------------------------------------
-//
-TPtrC CFileManagerStringCache::FormattedString( TInt aIndex ) const
- {
- TCacheItem& item = iFormattedItems[ aIndex ];
- if ( item.iString )
- {
- return item.iString->Des();
- }
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::StoreFormattedString
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerStringCache::StoreFormattedStringL( TInt aIndex ) const
- {
- TInt count( MdcaCount() );
- TInt replace( 0 );
- TInt maxDist( 0 );
-
- // Find index to be replaced for cyclic list scroll
- for ( TInt i( 0 ); i < KNumStringCacheItems; i++ )
- {
- TCacheItem& item = iFormattedItems[ i ];
- if ( item.iIndex != KErrNotFound )
- {
- TInt dist( Min( Abs( item.iIndex - aIndex ),
- ( count - aIndex ) + item.iIndex ) );
- if ( dist > maxDist )
- {
- maxDist = dist;
- replace = i;
- }
- }
- else
- {
- replace = i;
- break;
- }
- }
- // Setup new cached item
- Clear( replace );
- TCacheItem& item = iFormattedItems[ replace ];
- item.iString = iFormatString.AllocL();
- item.iIndex = aIndex;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::Clear
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerStringCache::Clear( TInt aIndex ) const
- {
- TCacheItem& item = iFormattedItems[ aIndex ];
- delete item.iString;
- item.iString = NULL;
- item.iIndex = KErrNotFound;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::LastError
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerStringCache::LastError() const
- {
- return iError;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerStringCache::SetError
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerStringCache::SetError( TInt aError ) const
- {
- if ( aError == KErrNoMemory ||
- ( aError != KErrNone && iError == KErrNone ) )
- {
- iError = aError;
- }
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerTaskScheduler.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/*
-* Copyright (c) 2006 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: Wraps task scheduler functionality
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <apacmdln.h>
-#include <FileManagerSchDefinitions.h>
-#include <FileManagerDebug.h>
-#include <CFileManagerEngine.h>
-#include <CFileManagerBackupSettings.h>
-#include <FileManagerPrivateCRKeys.h>
-#include "CFileManagerTaskScheduler.h"
-
-
-// CONSTANTS
-const TInt KSchedulerPriority = 32;
-const TInt KSchedulerGranularity = 1;
-const TInt KSchedulerRepeat = -1; // Repeat until deleted
-const TInt KSchedulerTaskId = 0;
-const TInt KDayNumStringLen = 4;
-const TInt KTaskInterval = 1;
-const TInt KTaskValidity = 1;
-_LIT( KDayNumStr, "%d" );
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerTaskScheduler::CFileManagerTaskScheduler
-// ----------------------------------------------------------------------------
-//
-CFileManagerTaskScheduler::CFileManagerTaskScheduler(
- CFileManagerEngine& aEngine ) :
- iEngine( aEngine ),
- iScheduleHandle( KErrNotFound )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerTaskScheduler::NewL
-// ----------------------------------------------------------------------------
-//
-CFileManagerTaskScheduler* CFileManagerTaskScheduler::NewL(
- CFileManagerEngine& aEngine )
- {
- CFileManagerTaskScheduler* self =
- new( ELeave ) CFileManagerTaskScheduler( aEngine );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerTaskScheduler::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerTaskScheduler::ConstructL()
- {
- FUNC_LOG
-
- User::LeaveIfError( iScheduler.Connect() );
- TFileName name( KSchBackupStarterExe );
- User::LeaveIfError( iScheduler.Register( name, KSchedulerPriority ) );
-
- // Try to get schedule handle of previously made schedule
- CArrayFixFlat< TSchedulerItemRef >* array =
- new( ELeave ) CArrayFixFlat< TSchedulerItemRef >(
- KSchedulerGranularity );
- CleanupStack::PushL( array );
- if ( iScheduler.GetScheduleRefsL( *array, EAllSchedules ) == KErrNone )
- {
- if ( array->Count() )
- {
- iScheduleHandle = array->At( 0 ).iHandle;
- }
- }
- CleanupStack::PopAndDestroy( array );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerTaskScheduler::~CFileManagerTaskScheduler
-// ----------------------------------------------------------------------------
-//
-CFileManagerTaskScheduler::~CFileManagerTaskScheduler()
- {
- FUNC_LOG
-
- iScheduler.Close();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerTaskScheduler::CreateScheduleL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerTaskScheduler::CreateScheduleL()
- {
- FUNC_LOG
-
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
-
- // Create schedule entry and store schedule handle for later use
- CArrayFixFlat< TScheduleEntryInfo2 >* array =
- new ( ELeave ) CArrayFixFlat<
- TScheduleEntryInfo2 >( KSchedulerGranularity );
- CleanupStack::PushL( array );
-
- TTsTime tsTime( settings.Time(), EFalse );
- TScheduleEntryInfo2 entry(
- tsTime, EDaily, KTaskInterval, KTaskValidity );
- array->AppendL( entry );
-
- TSchedulerItemRef ref;
- User::LeaveIfError( iScheduler.CreatePersistentSchedule( ref, *array ) );
- CleanupStack::PopAndDestroy( array );
- iScheduleHandle = ref.iHandle;
-
- // Add weekday to task data if weekly backup
- HBufC* data = HBufC::NewLC( KDayNumStringLen );
- if ( settings.Scheduling() == EFileManagerBackupScheduleWeekly )
- {
- TPtr ptr( data->Des() );
- ptr.Format( KDayNumStr, settings.Day() );
- }
-
- // Create scheduled task entry and enable it
- TTaskInfo taskInfo;
- taskInfo.iName = KSchBackupTaskName;
- taskInfo.iPriority = KSchedulerPriority;
- taskInfo.iTaskId = KSchedulerTaskId;
- taskInfo.iRepeat = KSchedulerRepeat;
- User::LeaveIfError( iScheduler.ScheduleTask(
- taskInfo, *data, iScheduleHandle ) );
- CleanupStack::PopAndDestroy( data );
- User::LeaveIfError( iScheduler.EnableSchedule( iScheduleHandle ) );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerTaskScheduler::DeleteScheduleL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerTaskScheduler::DeleteScheduleL()
- {
- if ( iScheduleHandle != KErrNotFound )
- {
- INFO_LOG( "CFileManagerTaskScheduler::DeleteScheduleL-Delete" )
- iScheduler.DisableSchedule( iScheduleHandle );
- iScheduler.DeleteTask( KSchedulerTaskId );
- iScheduler.DeleteSchedule( iScheduleHandle );
- iScheduleHandle = KErrNotFound;
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerTaskScheduler::EnableBackupScheduleL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerTaskScheduler::EnableBackupScheduleL( const TBool aEnable )
- {
- // Delete old schedule first
- DeleteScheduleL();
-
- if ( aEnable )
- {
- CreateScheduleL();
- }
- }
-
-// End of File
--- a/filemanager/App/src/CFileManagerViewBase.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5194 +0,0 @@
-/*
-* Copyright (c) 2002-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: Base class for all file manager views
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <aknlists.h>
-#include <eikmenup.h> // CEikMenuPane
-#include <eikmenub.h> // CEikMenuBar
-#include <StringLoader.h>
-#include <AknCommonDialogs.h> // Common File Dialogs
-#include <CAknMemorySelectionDialog.h>
-#include <CAknFileSelectionDialog.h>
-#include <sendui.h>
-#include <sendnorm.rsg>
-#include <SenduiMtmUids.h>
-#include <AknProgressDialog.h>
-#include <eikprogi.h>
-#include <AknWaitNoteWrapper.h>
-#include <aknnotewrappers.h>
-#include <AknWaitDialog.h>
-#include <cmemstatepopup.h>
-#include <f32file.h>
-#include <aknmessagequerydialog.h>
-#include <CMessageData.h>
-#include <DRMHelper.h>
-#include <bautils.h>
-#include <AknCommonDialogsDynMem.h>
-#include "CFileManagerViewBase.h"
-#include "CFileManagerContainerBase.h"
-#include "CFileManagerAppUi.h"
-#include "CFileManagerDocument.h"
-#include "CFileManagerFileSelectionFilter.h"
-#include "FileManager.hrh"
-#ifdef RD_FILE_MANAGER_BACKUP
- #include "CFileManagerSchBackupHandler.h"
- #include "CFileManagerBackupSettings.h"
- #include "CFileManagerTaskScheduler.h"
-#endif // RD_FILE_MANAGER_BACKUP
-#include <CFileManagerEngine.h>
-#include <CFileManagerUtils.h>
-#include <CFileManagerCommonDefinitions.h>
-#include <CFileManagerItemProperties.h>
-#include <CFileManagerActiveExecute.h>
-#include <Cfilemanageractivedelete.h>
-#include <filemanager.rsg>
-#include <filemanagerview.rsg>
-#include <FileManagerDebug.h>
-#include <FileManagerDlgUtils.h>
-#include <CFileManagerFeatureManager.h>
-#include <FileManagerPrivateCRKeys.h>
-#include <DataSyncInternalPSKeys.h>
-#include <connect/sbdefs.h>
-#include <e32property.h>
-#include <caf/caf.h>
-#include <drmagents.h>
-
-using namespace conn;
-
-// CONSTANTS
-const TUint KMessageSize = 1024;
-const TUint KMaxPercentage = 100;
-const TUint KProgressBarUpdateInterval = 1000000; // microseconds
-const TUint KDriveLetterSize = 1;
-const TUint KRefreshProgressStartDelay = 1000000; // microseconds
-const TInt KFmgrMSK = 3;
-const TInt KEstimateUpperLimit = 90; // User selectable continuation
-const TInt KEstimateLowerLimit = 10; // Backup will be interrupted
-const TUint32 KDefaultFolderMask = CFileManagerItemProperties::EFolder |
- CFileManagerItemProperties::EDefault;
-const TInt64 KMSecToMicroSecMultiplier = 1000000;
-const TInt64 KMinToMicroSecMultiplier = KMSecToMicroSecMultiplier * 60;
-const TInt64 KHourToMicroSecMultiplier = KMinToMicroSecMultiplier * 60;
-const TUint KProgressBarAsyncStartDelay = 1500000; // microseconds
-const TInt64 KMinificationFactor = 1024; // Used to zoom processbar's proportion
-
-// ============================ LOCAL FUNCTIONS ================================
-
-// -----------------------------------------------------------------------------
-// IsWmDrmFile
-//
-// -----------------------------------------------------------------------------
-//
-static TBool IsWmDrmFile( const TDesC& aFullPath )
- {
- TBool ret( EFalse );
- ContentAccess::CContent* content = NULL;
- TRAPD( err, content = ContentAccess::CContent::CContent::NewL(
- aFullPath, EContentShareReadWrite ) );
- if ( err != KErrNone )
- {
- TRAP( err, content = ContentAccess::CContent::CContent::NewL(
- aFullPath, EContentShareReadOnly ) );
- }
- if ( err == KErrNone )
- {
- TInt isProtected( 0 );
- err = content->GetAttribute( EIsProtected, isProtected );
- if ( err == KErrNone && isProtected )
- {
- TInt fileType( 0 );
- err = content->GetAttribute( DRM::EDrmFileType, fileType );
- ret = ( err == KErrNone && fileType == DRM::EDrmWMFile );
- }
- delete content;
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// Int64ToInt
-//
-// -----------------------------------------------------------------------------
-//
-static TInt Int64ToInt( const TInt64& aInt64 )
- {
- if ( aInt64 > KMaxTInt )
- {
- return KMaxTInt;
- }
- return I64INT( aInt64 );
- }
-
-// -----------------------------------------------------------------------------
-// EmptyPwd
-//
-// -----------------------------------------------------------------------------
-//
-//static void EmptyPwd( TDes& aPwd )
-// {
-// aPwd.FillZ( aPwd.MaxLength( ) );
-// aPwd.Zero();
-// }
-
-// -----------------------------------------------------------------------------
-// ConvertCharsToPwd
-//
-// -----------------------------------------------------------------------------
-//
-//static void ConvertCharsToPwd( const TDesC& aWord, TDes8& aConverted )
-// {
-// // Make sure the target password is empty ( can't use the function here )
-// aConverted.FillZ( aConverted.MaxLength() );
-// aConverted.Zero();
-// TInt size( aWord.Size() );
-// if ( size )
-// {
-// if ( size > aConverted.MaxLength() )
-// {
-// size = aConverted.MaxLength();
-// }
-// aConverted.Copy( (TUint8*)aWord.Ptr(), size );
-// }
-// }
-
-// -----------------------------------------------------------------------------
-// IsSystemProcess
-//
-// -----------------------------------------------------------------------------
-//
-static TBool IsSystemProcess(
- MFileManagerProcessObserver::TFileManagerProcess aProcess )
- {
- switch ( aProcess )
- {
- case MFileManagerProcessObserver::EFormatProcess:
- case MFileManagerProcessObserver::EBackupProcess:
- case MFileManagerProcessObserver::ERestoreProcess:
- case MFileManagerProcessObserver::ESchBackupProcess:
- {
- return ETrue;
- }
- default:
- {
- break;
- }
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// GetDeleteQueryPromptLC
-// Chooses correct string for the delete note
-// -----------------------------------------------------------------------------
-//
-static HBufC* GetDeleteQueryPromptLC( CFileManagerItemProperties& aProp, TInt aCount )
- {
-
- HBufC* prompt = NULL;
- if ( aCount == 0 && aProp.ContainsAnyFilesOrFolders() )
- {
- prompt = StringLoader::LoadLC( R_QTN_FLDR_DEL_FULL_FLDRS_QUERY );
- }
- else if ( aCount <= 1 )
- {
- prompt = StringLoader::LoadLC( R_QTN_QUERY_COMMON_CONF_DELETE, aProp.NameAndExt() );
- }
- else // aCount > 1
- {
- prompt = StringLoader::LoadLC( R_QTN_FLDR_DEL_ITEMS_QUERY, aCount );
- }
-
- return prompt;
- }
-
-// -----------------------------------------------------------------------------
-// MinIndex
-//
-// -----------------------------------------------------------------------------
-//
-static TInt MinIndex( CArrayFixFlat<TInt>& aIndexArray )
- {
- TInt count( aIndexArray.Count() );
- if ( !count )
- {
- return 0;
- }
- // Find min index
- TInt index( 0 );
- TInt i( 0 );
- TInt ret( aIndexArray.At( i ) );
- ++i;
- for( ; i < count; ++i )
- {
- index = aIndexArray.At( i );
- if ( index < ret )
- {
- ret = index;
- }
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// SetCurrentYearMonthAndDay
-//
-// -----------------------------------------------------------------------------
-//
-static TTime SetCurrentYearMonthAndDay( const TTime& aTime )
- {
- TTime timeNow;
- timeNow.HomeTime();
- TDateTime dateTimeNow( timeNow.DateTime() );
- TInt64 ret( timeNow.Int64() );
- // Replace hours, minutes and seconds using given ones.
- ret -= static_cast< TInt64 >( dateTimeNow.Hour() ) * KHourToMicroSecMultiplier;
- ret -= static_cast< TInt64 >( dateTimeNow.Minute() ) * KMinToMicroSecMultiplier;
- ret -= static_cast< TInt64 >( dateTimeNow.Second() ) * KMSecToMicroSecMultiplier;
- ret -= dateTimeNow.MicroSecond();
- TDateTime dateTime( aTime.DateTime() );
- ret += static_cast< TInt64 >( dateTime.Hour() ) * KHourToMicroSecMultiplier;
- ret += static_cast< TInt64 >( dateTime.Minute() ) * KMinToMicroSecMultiplier;
- ret += static_cast< TInt64 >( dateTime.Second() ) * KMSecToMicroSecMultiplier;
- return ret;
- }
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CFileManagerViewBase
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerViewBase::CFileManagerViewBase() :
- iEngine( static_cast< CFileManagerDocument* >( AppUi()->Document() )->Engine() )
- {
- }
-
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::~CFileManagerViewBase
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerViewBase::~CFileManagerViewBase()
- {
- delete iWaitNoteWrapper;
- delete iActiveDelete;
- delete iPeriodic;
- delete iMarkedArray;
- delete iContainer;
- delete iActiveExec;
- delete iRefreshProgressDelayedStart;
- delete iEjectQueryDialog;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::GetSendFilesLC
-//
-// -----------------------------------------------------------------------------
-//
-CArrayFixFlat<TInt>* CFileManagerViewBase::GetSendFilesLC( TInt& aSize )
- {
- // Get index array and remove folders and play lists
- CArrayFixFlat< TInt >* ret = MarkedArrayLC();
- TInt i( ret->Count() );
- while ( i > 0 )
- {
- --i;
- // IconIdL() is slow if the icon is not cached yet.
- // However, it is faster than FileTypeL().
- switch ( iEngine.IconIdL( ret->At( i ) ) )
- {
- case EFileManagerFolderIcon: // FALLTHROUGH
- case EFileManagerFolderSubIcon: // FALLTHROUGH
- case EFileManagerFolderEmptyIcon: // FALLTHROUGH
- case EFileManagerPlaylistFileIcon:
- {
- ret->Delete( i );
- break;
- }
- default:
- {
- break;
- }
- }
- }
- aSize = Int64ToInt( iEngine.GetFileSizesL( *ret ) );
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ConstructL( TInt aResId )
- {
- BaseConstructL( aResId );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::HandleCommandL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::HandleCommandL( TInt aCommand )
- {
- if ( !iContainer ) return;
-
- TBool updateCba( !iContainer->SelectionModeEnabled() );
-
- switch( aCommand )
- {
- case EFileManagerOpen:
- {
- CmdOpenL();
- break;
- }
- case EFileManagerDelete:
- {
- CmdDeleteL();
- break;
- }
- case EFileManagerMoveToFolder:
- {
- CmdMoveToFolderL();
- break;
- }
- case EFileManagerCopyToFolder:
- {
- CmdCopyToFolderL();
- break;
- }
- case EFileManagerNewFolder:
- {
- CmdNewFolderL();
- break;
- }
- case EFileManagerMarkOne: // FALLTHROUGH
- case EFileManagerUnmarkOne: // FALLTHROUGH
- case EFileManagerToggleMark:
- {
- CmdToggleMarkL();
- break;
- }
- case EFileManagerMarkAll:
- {
- CmdMarkAllL();
- break;
- }
- case EFileManagerUnmarkAll:
- {
- CmdUnmarkAllL();
- break;
- }
- case EFileManagerRename:
- {
- CmdRenameL();
- break;
- }
- case EFileManagerFindFile:
- {
- CmdFindL();
- break;
- }
- case EFileManagerFileDetails: // FALLTHROUGH
- case EFileManagerFolderDetails: // FALLTHROUGH
- case EFileManagerViewInfo:
- {
- CmdViewInfoL();
- break;
- }
-// case EFileManagerMemoryState:
-// {
-// CmdMemoryStateL();
-// break;
-// }
- case EFileManagerReceiveViaIR:
- {
- CmdReceiveViaIRL();
- break;
- }
- case EFileManagerCheckMark: // Suppress
- {
- break;
- }
- case EAknSoftkeyContextOptions: // FALLTHROUGH
- case EFileManagerSelectionKey:
- {
- TInt count( iContainer->ListBoxSelectionIndexesCount() );
- if ( !count )
- {
- HandleCommandL( EFileManagerOpen );
- }
- else if ( count > 0 )
- {
- ShowContextSensitiveMenuL();
- }
- break;
- }
- case EFileManagerSend:
- {
- if ( !iSendUiPopupOpened )
- {
- SendUiQueryL();
- }
- break;
- }
- case EFileManagerMoreInfoOnline:
- {
- OpenInfoUrlL( iContainer->ListBoxCurrentItemIndex() );
- break;
- }
- case EFileManagerUnlockMemoryCard:
- {
- CmdUnlockDriveL();
- break;
- }
-// case EFileManagerMemoryCardName:
-// case EFileManagerMemoryCardRename: // Fall through
-// {
-// CmdRenameDriveL();
-// break;
-// }
- //case EFileManagerMemoryCardFormat:
- case EFileManagerMemoryStorageFormat:
- case EFileManagerFormatMassStorage: // Fall through
- {
- CmdFormatDriveL();
- break;
- }
-// case EFileManagerMemoryCardPasswordSet:
-// {
-// CmdSetDrivePasswordL();
-// break;
-// }
-// case EFileManagerMemoryCardPasswordChange:
-// {
-// CmdChangeDrivePasswordL();
-// break;
-// }
-// case EFileManagerMemoryCardPasswordRemove:
-// {
-// CmdRemoveDrivePasswordL();
-// break;
-// }
-// case EFileManagerMemoryCardDetails:
-// {
-// CmdMemoryCardDetailsL();
-// break;
-// }
- case EFileManagerConnectRemoveDrive:
- {
- SetRemoteDriveConnectionStateL( ETrue );
- break;
- }
- case EFileManagerDisconnectRemoveDrive:
- {
- SetRemoteDriveConnectionStateL( EFalse );
- break;
- }
- case EFileManagerRefreshRemoteDrive:
- {
- CmdRefreshDirectoryL();
- break;
- }
- case EFileManagerSortByName:
- case EFileManagerSortByType: // Fall through
- case EFileManagerSortMostRecentFirst: // Fall through
- case EFileManagerSortLargestFirst: // Fall through
- case EFileManagerSortByMatch: // Fall through
- {
- CmdSortL( aCommand );
- break;
- }
- default:
- {
- AppUi()->HandleCommandL( aCommand );
- break;
- }
- }
-
- if ( updateCba )
- {
- UpdateCbaL();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::SendUiQueryL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::SendUiQueryL()
- {
- //iSendUiPopupOpened = ETrue;
-
- CSendUi& sendUi( static_cast< CFileManagerAppUi* >( AppUi() )->SendUiL() );
- CMessageData* msgData = CMessageData::NewL();
- CleanupStack::PushL( msgData );
- TInt msgSize( KMessageSize );
- CArrayFixFlat< TInt >* files = GetSendFilesLC( msgSize );
- TInt count( files->Count() );
- if ( count )
- {
- // Set dimmed services specified for FileManager by Send UI spec
- const TInt KDimmedServices = 4;
- CArrayFixFlat< TUid >* servicesToDim =
- new ( ELeave ) CArrayFixFlat< TUid >( KDimmedServices );
- CleanupStack::PushL( servicesToDim );
-
- servicesToDim->AppendL( KSenduiMtmAudioMessageUid );
- servicesToDim->AppendL( KMmsDirectUpload );
- servicesToDim->AppendL( KMmsIndirectUpload );
- servicesToDim->AppendL( KSenduiMtmPostcardUid );
-
- TSendingCapabilities caps(
- 0, msgSize, TSendingCapabilities::ESupportsAttachments );
- for( TInt i( 0 ); i < count ; i++ )
- {
- HBufC* fullPath = iEngine.IndexToFullPathLC( files->At( i ) );
- msgData->AppendAttachmentL( *fullPath );
- CleanupStack::PopAndDestroy( fullPath );
- }
- // Let SendUi handle protected files, queries and filtering
- TRAPD( err, sendUi.ShowQueryAndSendL( msgData, caps, servicesToDim ) );
- if ( err == KErrTooBig )
- {
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_FMGR_FILE_SIZE_TOO_LARGE );
- }
- else
- {
- User::LeaveIfError( err );
- }
- CleanupStack::PopAndDestroy( servicesToDim );
- }
- CleanupStack::PopAndDestroy( files );
- CleanupStack::PopAndDestroy( msgData );
-
- iSendUiPopupOpened = EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::MarkMenuFilteringL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::MarkMenuFilteringL( CEikMenuPane& aMenuPane )
- {
- TInt index( iContainer->ListBoxCurrentItemIndex() );
-
- if ( iEngine.IsFolder( index ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerMarkOne, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerUnmarkOne, ETrue );
- }
- else
- {
- if ( iContainer->ListBoxIsItemSelected( index ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerMarkOne, ETrue );
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerUnmarkOne, ETrue );
- }
- }
- TInt files( 0 );
- if( iContainer->IsSearchFieldVisible() )
- {
- files = FilesCountInSearchField();
- }
- else
- {
- files = iEngine.FilesInFolderL();
- }
- TInt count( iContainer->ListBoxSelectionIndexesCount() );
- if ( count == files )
- {
- aMenuPane.SetItemDimmed( EFileManagerMarkAll, ETrue );
- }
-
- if ( !count )
- {
- aMenuPane.SetItemDimmed( EFileManagerUnmarkAll, ETrue );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdOpenL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerViewBase::TFileManagerOpenResult CFileManagerViewBase::CmdOpenL()
- {
- if ( !iContainer || iActiveProcess != ENoProcess )
- {
- return EOpenError; // Ignore to avoid mess up
- }
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- TInt err( KErrNone );
-
- if ( index < 0 )
- {
- return EOpenError;
- }
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- TBool isFolder( iEngine.IsFolder( index ) );
- StoreIndex();
- TRAP( err, iEngine.OpenL( index ) );
- if ( err == KErrNone )
- {
- if ( isFolder )
- {
- if ( !appUi->ActivateFoldersViewL() )
- {
- // Folders view is already open
- // Refresh if this view is folders view
- if ( Id() == CFileManagerAppUi::KFileManagerFoldersViewId )
- {
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
- }
- return EFolderOpened;
- }
- return EFileOpened;
- }
- if ( !HandleFileNotFoundL( err ) )
- {
- if ( !isFolder )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_CANT_OPEN );
- }
- }
- return EOpenError;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdDeleteL
-//
-// ----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdDeleteL()
- {
-
- if ( !iContainer->ListBoxNumberOfItems() )
- {
- // List box is empty, nothing to delete
- return;
- }
-
- const TInt selectionCount(iContainer->ListBoxSelectionIndexesCount() );
- TInt index( iContainer->ListBoxCurrentItemIndex() );
-
- if ( selectionCount == 1 )
- {
- // One item marked
- const CArrayFix< TInt >* items = iContainer->ListBoxSelectionIndexes();
- index = items->At( 0 );
- }
-
- CFileManagerItemProperties* prop = iEngine.GetItemInfoL( index );
- CleanupStack::PushL( prop );
-
- if ( DeleteStatusNotOkL( *prop, selectionCount ) )
- {
- // It is not possible to continue delete operation
- CleanupStack::PopAndDestroy( prop );
- return;
- }
-
- HBufC* prompt = GetDeleteQueryPromptLC( *prop, selectionCount );
-
- TBool ret( EFalse );
- DenyDirectoryRefresh( ETrue );
- TRAPD( err, ret = FileManagerDlgUtils::ShowConfirmQueryWithYesNoL( *prompt ) );
- DenyDirectoryRefresh( EFalse );
- User::LeaveIfError( err );
- if ( ret )
- {
- if( IsDriveAvailable( DriveInfo().iDrive ) )
- {
- DeleteItemsL( index );
- }
- else
- {
- FileManagerDlgUtils::ShowInfoNoteL( R_QTN_MEMC_NOT_AVAILABLE );
- CheckPostponedDirectoryRefresh();
- }
- }
- else
- {
- CheckPostponedDirectoryRefresh();
- }
- CleanupStack::PopAndDestroy( prompt );
- CleanupStack::PopAndDestroy( prop );
-
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdMoveToFolderL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdMoveToFolderL()
- {
-
- if ( DriveReadOnlyMmcL( iEngine.CurrentDirectory() ) )
- {
- return;
- }
-
- // double KMaxFileName is needed if both source and target are KMaxFileName
- HBufC* fileName = HBufC::NewLC( KFmgrDoubleMaxFileName );
- TPtr ptrFileName = fileName->Des();
- CFileManagerFileSelectionFilter* filter =
- new( ELeave ) CFileManagerFileSelectionFilter( iEngine );
- CleanupStack::PushL( filter );
-
- TInt memType(
- AknCommonDialogsDynMem::EMemoryTypePhone |
- AknCommonDialogsDynMem::EMemoryTypeMMC );
-
- if ( FeatureManager().IsRemoteStorageFwSupported() )
- {
- memType |= AknCommonDialogsDynMem::EMemoryTypeRemote;
- }
-
- DenyDirectoryRefresh( ETrue );
- TBool ret( AknCommonDialogsDynMem::RunMoveDlgLD(
- memType,
- ptrFileName,
- R_FILEMANAGER_MOVE_MEMORY_SELECTIONDIALOG,
- filter ) );
- DenyDirectoryRefresh( EFalse );
- CleanupStack::PopAndDestroy( filter );
-
- if ( ret && ptrFileName.Length() )
- {
- if ( !DriveReadOnlyMmcL( ptrFileName ) )
- {
- RunOperationL(
- MFileManagerProcessObserver::EMoveProcess, ptrFileName );
- }
- }
- if (!ret )
- {
- CheckPostponedDirectoryRefresh();
- }
-
- CleanupStack::PopAndDestroy( fileName );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdCopyToFolderL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdCopyToFolderL()
- {
- // double KMaxFileName is needed if both source and target are KMaxFileName
- HBufC* fileName = HBufC::NewLC( KFmgrDoubleMaxFileName );
- TPtr ptrFileName = fileName->Des();
- CFileManagerFileSelectionFilter* filter =
- new( ELeave ) CFileManagerFileSelectionFilter( iEngine );
- CleanupStack::PushL( filter );
-
- TInt memType(
- AknCommonDialogsDynMem::EMemoryTypePhone |
- AknCommonDialogsDynMem::EMemoryTypeMMC );
-
- if ( FeatureManager().IsRemoteStorageFwSupported() )
- {
- memType |= AknCommonDialogsDynMem::EMemoryTypeRemote;
- }
-
- DenyDirectoryRefresh( ETrue );
- TBool ret( AknCommonDialogsDynMem::RunCopyDlgLD(
- memType,
- ptrFileName,
- R_FILEMANAGER_COPY_MEMORY_SELECTIONDIALOG,
- filter ) );
- DenyDirectoryRefresh( EFalse );
- CleanupStack::PopAndDestroy( filter );
-
- if ( ret && ptrFileName.Length() )
- {
- if ( !DriveReadOnlyMmcL( ptrFileName ) )
- {
- RunOperationL(
- MFileManagerProcessObserver::ECopyProcess, ptrFileName );
- }
- }
- if (!ret )
- {
- CheckPostponedDirectoryRefresh();
- }
- CleanupStack::PopAndDestroy( fileName );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdNewFolderL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdNewFolderL()
- {
-
- if ( DriveReadOnlyMmcL( iEngine.CurrentDirectory() ) )
- {
- return;
- }
-
- StoreIndex();
-
- if ( !iEngine.EnoughSpaceL(
- iEngine.CurrentDirectory(),
- 0,
- MFileManagerProcessObserver::ENoProcess ) )
- {
- User::Leave( KErrDiskFull );
- }
- HBufC* folderNameBuf = HBufC::NewLC( KMaxFileName );
- TPtr folderName( folderNameBuf->Des() );
-
- if ( FileManagerDlgUtils::ShowFolderNameQueryL(
- R_QTN_FLDR_NAME_PRMPT, folderName, iEngine, ETrue ) )
- {
- TBuf<KMaxPath> fullFolderName( iEngine.CurrentDirectory() );
- fullFolderName.Append( folderName );
- CFileManagerUtils::EnsureFinalBackslash( fullFolderName );
-
- if ( iEngine.IsSystemFolder( fullFolderName ) )
- {
- FileManagerDlgUtils::ShowInfoNoteL( R_QTN_FLDR_NAME_ALREADY_USED, folderName );
- }
- else
- {
- iEngine.NewFolderL( folderName );
- }
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
- else
- {
- if ( iContainer && iContainer->IsSearchFieldVisible() )
- {
- iContainer->DrawDeferred();
- }
- }
- CleanupStack::PopAndDestroy( folderNameBuf );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdToggleMarkL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdToggleMarkL()
- {
- const TInt index( iContainer->ListBoxCurrentItemIndex() );
- if ( iEngine.IsFolder( index ) )
- {
- iContainer->ListBoxDeselectItem( index );
- }
- else
- {
- iContainer->ListBoxToggleItemL( index );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdMarkAllL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdMarkAllL()
- {
- iContainer->ListBoxSelectAllL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdUnmarkAllL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdUnmarkAllL()
- {
- iContainer->ListBoxClearSelection();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdRenameL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdRenameL()
- {
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- if ( index >= 0 )
- {
- StoreIndex();
- CFileManagerItemProperties* prop =
- iEngine.GetItemInfoL( index );
- CleanupStack::PushL( prop );
-
- if ( DriveReadOnlyMmcL( prop->FullPath() ) )
- {
- CleanupStack::PopAndDestroy( prop );
- return;
- }
-
- HBufC* itemNameBuf = HBufC::NewLC( KMaxFileName );
- TPtr itemName( itemNameBuf->Des() );
- itemName.Append( prop->NameAndExt() );
-
- TInt err( KErrNone );
- TBool ret( EFalse );
- if ( prop->TypeL() & CFileManagerItemProperties::EFolder )
- {
- DenyDirectoryRefresh( ETrue );
- TRAP( err, ret = FileManagerDlgUtils::ShowFolderNameQueryL(
- R_QTN_FLDR_ITEM_NAME_PRMPT, itemName, iEngine ) );
- DenyDirectoryRefresh( EFalse );
- User::LeaveIfError( err );
- if ( ret )
- {
- if ( itemName.Length() > 1 )
- {
- if ( itemName[0] == '.' )
- {
- TInt j = 1;
- for ( j; j < itemName.Length(); j++ )
- {
- if ( !( (itemName[j] <= 'Z') && (itemName[j] >= 'A') ) )
- {
- break;
- }
- }
- if ( j == itemName.Length() )
- {
- itemName.Delete(0, 1);
- }
- }
- }
- TRAP( err, iEngine.RenameL( index, itemName ) );
- if ( err == KErrAccessDenied ||
- err == KErrInUse ||
- err == KErrBadName ||
- err == KErrAlreadyExists ||
- err == KErrNotReady )
- {
- err = KErrNone; // Set error as handled
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_FLDR_CANT_RENAME_ITEM,
- prop->NameAndExt() );
- }
- }
- }
- else
- {
- DenyDirectoryRefresh( ETrue );
- TRAP( err, ret = FileManagerDlgUtils::ShowFileNameQueryL(
- R_QTN_FLDR_ITEM_NAME_PRMPT, prop->FullPath(), itemName, iEngine ) );
- DenyDirectoryRefresh( EFalse );
- User::LeaveIfError( err );
- if ( ret )
- {
- TRAP( err, iEngine.RenameL( index, itemName ) );
- if ( err == KErrAccessDenied ||
- err == KErrInUse ||
- err == KErrBadName ||
- err == KErrAlreadyExists ||
- err == KErrNotReady )
- {
- err = KErrNone; // Set error as handled
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_FLDR_CANT_RENAME_ITEM,
- prop->NameAndExt() );
- }
- }
- }
-
- CleanupStack::PopAndDestroy( itemNameBuf );
- CleanupStack::PopAndDestroy( prop );
- User::LeaveIfError( err );
- }
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdFindL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdFindL()
- {
- HBufC* path = HBufC::NewLC( KMaxFileName );
- TPtr ptrPath( path->Des() );
- if( AskPathL( ptrPath, R_QTN_FMGR_FIND_PRTX ) )
- {
- HBufC* searchStringBuf = HBufC::NewLC( KMaxFileName );
- TPtr searchString( searchStringBuf->Des() );
- HBufC* prompt = StringLoader::LoadLC( R_QTN_FMGR_FIND_DATAQ_PRTX );
- CAknTextQueryDialog *textQuery =
- new( ELeave ) CAknTextQueryDialog( searchString, *prompt );
- if ( textQuery->ExecuteLD( R_FILEMANAGER_SEARCH_QUERY ) )
- {
- iEngine.SetSearchStringL( searchString );
- iEngine.SetSearchFolderL( ptrPath );
- if ( Id() == CFileManagerAppUi::KFileManagerSearchResultsViewId )
- {
- // Start new search in the existing view
- iIndex = 0;
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
- else
- {
- // Open search view and start new search
- StoreIndex();
- // Ensure that current directory is set correctly.
- // If current view was opened from previous search results view,
- // backstep stack to current directory may be incomplete.
- iEngine.SetDirectoryWithBackstepsL( iEngine.CurrentDirectory() );
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->ActivateSearchResultsViewL();
- }
- }
- CleanupStack::PopAndDestroy( prompt );
- CleanupStack::PopAndDestroy( searchStringBuf );
- }
- CleanupStack::PopAndDestroy( path );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdViewInfoL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdViewInfoL()
- {
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- if ( index >= 0 )
- {
- CFileManagerItemProperties* prop = iEngine.GetItemInfoL( index );
- CleanupStack::PushL( prop );
- FileManagerDlgUtils::ShowItemInfoPopupL( *prop, FeatureManager() );
- CleanupStack::PopAndDestroy( prop );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdMemoryStateL
-//
-// -----------------------------------------------------------------------------
-//
-//void CFileManagerViewBase::CmdMemoryStateL()
-// {
-// TInt drv( iEngine.CurrentDrive() );
-// if ( drv != KErrNotFound )
-// {
-// HBufC* title = StringLoader::LoadLC( R_QTN_FMGR_MSTATE_HEADING );
-// CMemStatePopup::RunLD(
-// static_cast< TDriveNumber >( drv ), *title );
-// CleanupStack::PopAndDestroy( title );
-// }
-// }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdReceiveViaIR
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdReceiveViaIRL()
- {
-
- if ( DriveReadOnlyMmcL( iEngine.CurrentDirectory() ) )
- {
- return;
- }
-
- iEngine.SetObserver( this );
-
- ClearProgressBarL();
-
- iProgressDialog = new( ELeave ) CAknProgressDialog(
- reinterpret_cast< CEikDialog** >( &iProgressDialog ), ETrue );
- iProgressDialog->PrepareLC( R_FILE_RECEIVE_DIALOG );
- iProgressInfo = iProgressDialog->GetProgressInfoL();
- if ( iProgressInfo )
- {
- // final value is 100 percent
- iProgressInfo->SetFinalValue( KMaxPercentage );
- }
- iProgressDialog->RunLD();
- iProgressDialog->SetCallback( this );
-
- HBufC* label = StringLoader::LoadLC( R_QTN_IR_CONNECTING );
- iProgressDialog->SetTextL( *label );
- CleanupStack::PopAndDestroy( label );
-
- CFileManagerAppUi* appUi = static_cast< CFileManagerAppUi* >( AppUi() );
- TRAPD( err, appUi->StartIRReceiveL( *this ) );
-
- if ( err == KErrNone )
- {
- iActiveProcess = MFileManagerProcessObserver::EIRReceiveProcess;
- }
- else
- {
- ClearProgressBarL();
- User::Leave( err );
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::DynInitMenuPaneL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::DynInitMenuPaneL( TInt aResourceId,
- CEikMenuPane* aMenuPane)
- {
- TBool isHandled( ETrue );
-
- switch( aResourceId )
- {
- // These menus are used by memory store and folders views
- case R_FILEMANAGER_MEMORY_STORE_VIEW_MENU:
- {
- MemoryStoreMenuFilteringL( *aMenuPane );
- break;
- }
- case R_FILEMANAGER_MARK_UNMARK_MENU:
- case R_FILEMANAGER_CONTEXT_SENSITIVE_MARK_UNMARK_MENU:
- {
- MarkMenuFilteringL( *aMenuPane );
- break;
- }
- case R_FILEMANAGER_ORGANISE_MENU:
- {
- OrganiseMenuFilteringL( *aMenuPane );
- break;
- }
- case R_FILEMANAGER_DETAILS_MENU:
- {
- DetailsMenuFilteringL( *aMenuPane );
- break;
- }
-// case R_FILEMANAGER_MEMORY_CARD_MENU:
-// {
-// MemoryCardMenuFilteringL( *aMenuPane );
-// break;
-// }
-// case R_FILEMANAGER_MEMORY_CARD_PASSWORD_MENU:
-// {
-// MemoryCardPasswordMenuFilteringL( *aMenuPane );
-// break;
-// }
- case R_FILEMANAGER_CONTEXT_SENSITIVE_MENU:
- {
- ContextSensitiveMenuFilteringL( *aMenuPane );
- break;
- }
- case R_FILEMANAGER_SORT_MENU:
- case R_FILEMANAGER_SEARCH_SORT_MENU: // Fall through
- {
- SortMenuFilteringL( *aMenuPane );
- break;
- }
- default:
- {
- isHandled = EFalse;
- break;
- }
- }
-
- TBool isContextMenu( aResourceId == R_FILEMANAGER_CONTEXT_SENSITIVE_MENU );
- if ( isHandled || isContextMenu )
- {
- CEikMenuBar* menuBar = MenuBar();
- if ( menuBar )
- {
- if ( isContextMenu )
- {
- menuBar->SetMenuType( CEikMenuBar::EMenuContext );
- }
- else
- {
- menuBar->SetMenuType( CEikMenuBar::EMenuOptions );
- }
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::DoActivateL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::DoActivateL( const TVwsViewId& /*aPrevViewId*/,
- TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/ )
- {
- if ( !iContainer )
- {
- iContainer = CreateContainerL();
- iContainer->SetMopParent( this );
- AppUi()->AddToStackL( *this, iContainer );
- iEngine.SetObserver( this );
- iContainer->ActivateL();
- }
-
- if ( iContainer )
- {
- iContainer->SetListEmptyL();
- }
-
- // Set container to observe MSK commands
- CEikButtonGroupContainer* bgc = Cba();
- if ( bgc )
- {
- CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() );
- cba->SetMSKCommandObserver( iContainer );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::DoDeactivate
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::DoDeactivate()
- {
- if ( iContainer )
- {
- AppUi()->RemoveFromStack( iContainer );
- delete iContainer;
- iContainer = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::MarkedArrayLC
-//
-// -----------------------------------------------------------------------------
-//
-CArrayFixFlat<TInt>* CFileManagerViewBase::MarkedArrayLC()
- {
- TInt count( iContainer->ListBoxSelectionIndexesCount() );
- CArrayFixFlat<TInt>* ret =
- new( ELeave ) CArrayFixFlat<TInt>( count ? count : 1 );
-
- CleanupStack::PushL( ret );
-
- if ( !count )
- {
- if ( iContainer->ListBoxNumberOfItems() > 0)
- {
- ret->AppendL( iContainer->ListBoxCurrentItemIndex() );
- }
- return ret;
- }
-
- const CArrayFix< TInt >* items = iContainer->ListBoxSelectionIndexes();
- for( TInt i( 0 ); i < count; ++i )
- {
- ret->AppendL( items->At( i ) );
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::DialogDismissedL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::DialogDismissedL( TInt aButtonId )
- {
- FUNC_LOG
-
- if ( aButtonId == EAknSoftkeyCancel )
- {
- TBool isHandled( ETrue );
- switch( iActiveProcess )
- {
- case ENoProcess:
- {
- if ( IsRefreshInProgress() )
- {
- // Already freed, just set to NULL
- iProgressDialogRefresh = NULL;
- iEngine.CancelRefresh();
- DirectoryChangedL(); // Ensure that view gets updated
- }
- break;
- }
- case EIRReceiveProcess:
- {
- // Already freed, just set to NULL
- iProgressDialog = NULL;
- iProgressInfo = NULL;
-
- static_cast< CFileManagerAppUi* >( AppUi() )->StopIRReceive();
- break;
- }
- case ECopyProcess: // FALLTHROUGH
- case EMoveProcess:
- {
- // Already freed, just set to NULL
- iProgressDialog = NULL;
- iProgressInfo = NULL;
-
- delete iPeriodic;
- iPeriodic = NULL;
- if ( iActiveExec )
- {
- iActiveExec->CancelExecution();
- }
- break;
- }
- case EFileOpenProcess: // FALLTHROUGH
- case EBackupProcess: // FALLTHROUGH
- case ERestoreProcess:
- {
- // Already freed, just set to NULL
- iProgressDialog = NULL;
- iProgressInfo = NULL;
-
- iEngine.CancelProcess( iActiveProcess );
- if ( iActiveProcess == EBackupProcess ||
- iActiveProcess == ERestoreProcess )
- {
- CFileManagerAppUi* appUi = static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->BackupOrRestoreEnded();
- }
- break;
- }
- case EFormatProcess: // FALLTHROUGH
- case EEjectProcess:
- {
- // Already freed, just set to NULL
- iProgressDialog = NULL;
- iProgressInfo = NULL;
- break;
- }
- default:
- {
- isHandled = EFalse;
- break;
- }
- }
- if ( isHandled )
- {
- iEikonEnv->SetSystem( EFalse );
- iActiveProcess = ENoProcess;
- }
-
-#ifdef RD_FILE_MANAGER_BACKUP
- if ( iSchBackupPending )
- {
- StartSchBackupL();
- }
-#endif // RD_FILE_MANAGER_BACKUP
-
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::ProcessFinishedL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ProcessFinishedL( TInt aError, const TDesC& aName )
- {
- FUNC_LOG
-
- TRAPD( err, DoProcessFinishedL( aError, aName ) );
- if( err != KErrNone )
- {
- // Clean up the active process before forwarding leave
- ERROR_LOG2(
- "CFileManagerViewBase::ProcessFinishedL-iActiveProcess=%d,err=%d",
- iActiveProcess, err )
- iEikonEnv->SetSystem( EFalse );
- iActiveProcess = ENoProcess;
- User::Leave( err );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::DoProcessFinishedL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::DoProcessFinishedL( TInt aError, const TDesC& aName )
- {
- FUNC_LOG
-
- TBool isHandled( ETrue );
- TBool doRefresh( ETrue );
-
- LOG_IF_ERROR2( aError, "CFileManagerViewBase::DoProcessFinishedL-iActiveProcess=%d,aError=%d",
- iActiveProcess, aError )
-
- if ( iPeriodic && iProgressInfo && iTotalTransferredBytes )
- {
- iProgressInfo->SetAndDraw( iTotalTransferredBytes );
- }
- if ( IsSystemProcess( iActiveProcess ) )
- {
- // Remove system status to allow app close from task switcher
- iEikonEnv->SetSystem( EFalse );
- }
-
- ClearProgressBarL();
-
- switch( iActiveProcess )
- {
- case EIRReceiveProcess: // FALLTHROUGH
- {
- static_cast< CFileManagerAppUi* >( AppUi() )->StopIRReceive();
- if ( aError != KErrNone && aError != KErrCancel )
- {
- if ( aError == KErrDiskFull )
- {
- ShowDiskSpaceErrorL( iEngine.CurrentDirectory() );
- }
- else
- {
- // Show general error note
- Error( aError );
- }
- }
- break;
- }
- case ECopyProcess: // FALLTHROUGH
- case EMoveProcess:
- {
- if ( aError != KErrNone && aError != KErrCancel && !aName.Length() )
- {
- // Show general error note if item name is unavailable
- if ( iActiveExec && aError == KErrDiskFull )
- {
- ShowDiskSpaceErrorL( iActiveExec->ToFolder() );
- }
- else
- {
- Error( aError );
- }
- }
- else if ( aError != KErrNone )
- {
- // If the copy process is cancelled, no error notes should be displayed
- if( aError != KErrCancel )
- {
- // Show more informative note first
- if ( iActiveExec && aError == KErrDiskFull )
- {
- ShowDiskSpaceErrorL( iActiveExec->ToFolder() );
- }
- else if ( aError == KErrNoMemory ||
- aError == KErrDiskFull ||
- aError == KErrDirFull )
- {
- Error( aError );
- }
- if ( iActiveProcess == EMoveProcess )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FLDR_ITEM_CANNOT_BE_MOVED, aName );
- }
- else
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FLDR_ITEM_CANNOT_BE_COPIED, aName );
- }
- }
- delete iActiveExec;
- iActiveExec = NULL;
- }
- else if ( iActiveProcess == EMoveProcess && iMarkedArray )
- {
- // Set focus to the item after selection
- TInt newIndex( MinIndex( *iMarkedArray ) );
- if ( iContainer )
- {
- iContainer->SetIndex( newIndex );
- }
- StoreIndex();
- }
-
- break;
- }
- case EFileOpenProcess:
- {
- if ( aError != KErrNone && aError != KErrCancel )
- {
- if ( aError == KErrNoMemory || aError == KErrDiskFull )
- {
- Error( aError );
- }
- else if ( aError == KErrNotSupported )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_UNSUPPORT );
- }
- else if ( aError == KErrFmgrNotSupportedRemotely )
- {
- FileManagerDlgUtils::ShowConfirmQueryWithOkL(
- FileManagerDlgUtils::EInfoIcons,
- R_QTN_FMGR_INFONOTE_UNABLE_OPEN_REMOTELY );
- }
- else if ( !HandleFileNotFoundL( aError ) )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_CANT_OPEN );
- }
- }
- else
- {
- // No refresh needed if open was successful or canceled
- doRefresh = EFalse;
- }
- break;
- }
- case EFormatProcess:
- {
- TFileManagerDriveInfo drvInfo;
- DriveInfoAtCurrentPosL( drvInfo );
- if ( aError == KErrNone )
- {
-#ifdef RD_MULTIPLE_DRIVE
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveMassStorage )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_FMGR_MASS_FORMAT_COMPLETED );
- }
- else
- {
-#endif // RD_MULTIPLE_DRIVE
- FileManagerDlgUtils::ShowInfoNoteL( R_QTN_FORMAT_COMPLETED );
-
- // After formatting a name to the card can be given
- RenameDriveL( ETrue );
-#ifdef RD_MULTIPLE_DRIVE
- }
-#endif // RD_MULTIPLE_DRIVE
- }
- else if ( aError == KErrInUse || aError > 0 )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FORMAT_FILES_IN_USE );
- }
- else if ( aError != KErrCancel )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_CRITICAL_ERROR );
- }
- break;
- }
- case EBackupProcess:
- {
- CFileManagerAppUi* appUi = static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->BackupOrRestoreEnded();
- if ( aError == KErrNone )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_BACKUP_COMPLETED );
- }
- else if ( aError == KErrDiskFull )
- {
-#ifdef RD_FILE_MANAGER_BACKUP
-
- CFileManagerBackupSettings& settings(
- iEngine.BackupSettingsL() );
-
- FileManagerDlgUtils::ShowConfirmQueryWithOkL(
- FileManagerDlgUtils::EErrorIcons,
- R_QTN_FMGR_BACKUP_DESTINATION_FULL,
- iEngine.DriveName( settings.TargetDrive() ) );
-
-#else // RD_FILE_MANAGER_BACKUP
-
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_BACKUP_NO_SPACE );
-
-#endif // RD_FILE_MANAGER_BACKUP
- }
- else if ( aError > 0 )
- {
- // No critical error, but some files not handled
- if ( aError > 1 )
- {
- FileManagerDlgUtils::ShowConfirmQueryWithOkL(
- FileManagerDlgUtils::EInfoIcons,
- R_QTN_FILES_NOT_BACKUPPED,
- aError );
- }
- else
- {
- FileManagerDlgUtils::ShowConfirmQueryWithOkL(
- FileManagerDlgUtils::EInfoIcons,
- R_QTN_ONE_FILE_NOT_BACKUPPED );
- }
- }
- else if ( aError != KErrCancel )
- {
- if ( aError == KErrNoMemory || aError == KErrDirFull )
- {
- // Show more informative note first
- Error( aError );
- }
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_CRITICAL_ERROR );
- }
- break;
- }
- case ERestoreProcess:
- {
- CFileManagerAppUi* appUi = static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->BackupOrRestoreEnded();
- if ( aError == KErrNone )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_RESTORE_COMPLETED );
- }
- else if ( aError == KErrDiskFull )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
-#ifdef RD_FILE_MANAGER_BACKUP
- R_QTN_FMGR_RESTORE_SPACE_ERROR
-#else // RD_FILE_MANAGER_BACKUP
- R_QTN_RESTORE_NO_SPACE
-#endif // RD_FILE_MANAGER_BACKUP
- );
- }
-#ifdef RD_FILE_MANAGER_BACKUP
- else if ( aError == KErrCorrupt )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_CORRUPTED_BACKUP_FILE );
- }
-#endif // RD_FILE_MANAGER_BACKUP
- else if ( aError > 0 )
- {
- // No critical error, but some files not handled
- if ( aError > 1 )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_FILES_NOT_RESTORED, aError );
- }
- else
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_ONE_FILE_NOT_RESTORED );
- }
- }
- else
- {
- if ( aError == KErrNoMemory || aError == KErrDirFull )
- {
- // Show more informative note first
- Error( aError );
- }
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_CRITICAL_ERROR );
- }
- break;
- }
- case EEjectProcess:
- {
- TRAP_IGNORE( ShowEjectQueryL() );
- break;
- }
-#ifdef RD_FILE_MANAGER_BACKUP
- case ESchBackupProcess:
- {
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->SchBackupHandlerL().ProcessFinishedL( aError, aName );
- // No refresh needed, done by view activation
- doRefresh = EFalse;
- break;
- }
-#endif // RD_FILE_MANAGER_BACKUP
- default:
- {
- isHandled = EFalse;
- break;
- }
- }
-
- if ( isHandled )
- {
- iEikonEnv->SetSystem( EFalse );
- iActiveProcess = ENoProcess;
-
- if ( doRefresh )
- {
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
- }
-
-#ifdef RD_FILE_MANAGER_BACKUP
- if ( iSchBackupPending )
- {
- StartSchBackupL();
- }
-#endif // RD_FILE_MANAGER_BACKUP
-
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::ProcessAdvanceL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ProcessAdvanceL( TInt aValue )
- {
- FUNC_LOG
-
- switch( iActiveProcess )
- {
- case EIRReceiveProcess:
- {
- if ( iProgressDialog )
- {
- HBufC* label = StringLoader::LoadLC(
- R_QTN_FMGR_NOTE_RECEIVE_IR, aValue );
- iProgressDialog->SetTextL( *label );
- CleanupStack::PopAndDestroy( label );
- // Incrementing progress of the process:
- if ( iProgressInfo )
- {
- iProgressInfo->SetAndDraw( aValue );
- }
- }
- break;
- }
- case EBackupProcess: // FALLTHROUGH
- case ERestoreProcess: // FALLTHROUGH
- case EFormatProcess:
- {
-#ifdef RD_FILE_MANAGER_BACKUP
- if ( iActiveProcess == EBackupProcess && iProgressDialog )
- {
- HBufC* label = StringLoader::LoadLC(
- R_QTN_BACKUP_INPROGRESS );
- iProgressDialog->SetTextL( *label );
- CleanupStack::PopAndDestroy( label );
-
- iProgressDialog->ButtonGroupContainer().SetCommandSetL(R_AVKON_SOFTKEYS_CANCEL);
- iProgressDialog->ButtonGroupContainer().DrawDeferred();
- }
- else if ( iActiveProcess == ERestoreProcess && iProgressDialog )
- {
- HBufC* label = StringLoader::LoadLC(
- R_QTN_RESTORE_INPROGRESS );
- iProgressDialog->SetTextL( *label );
- CleanupStack::PopAndDestroy( label );
- }
-#endif // RD_FILE_MANAGER_BACKUP
- if ( iProgressInfo )
- {
- iProgressInfo->SetAndDraw( aValue );
- }
- break;
- }
-#ifdef RD_FILE_MANAGER_BACKUP
- case ESchBackupProcess:
- {
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->SchBackupHandlerL().ProcessAdvanceL( aValue );
- break;
- }
-#endif // RD_FILE_MANAGER_BACKUP
- default:
- {
- break;
- }
- }
- iTotalTransferredBytes = static_cast<TUint>(aValue); // to avoid over 2GB files looks likes minus value
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::ProcessStartedL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ProcessStartedL(
- MFileManagerProcessObserver::TFileManagerProcess aProcess,
- TInt aFinalValue )
- {
- FUNC_LOG
-
- // For preventing shutter to close app during system process
- iEikonEnv->SetSystem( IsSystemProcess( aProcess ) );
-
- switch( aProcess )
- {
- case EIRReceiveProcess:
- {
- if ( iProgressDialog )
- {
- HBufC* label = StringLoader::LoadLC(
- R_QTN_FMGR_NOTE_RECEIVE_IR, 0 );
- iProgressDialog->SetTextL( *label );
- CleanupStack::PopAndDestroy( label );
- }
- break;
- }
- case EFileOpenProcess:
- {
- ClearProgressBarL();
- LaunchProgressDialogL( 0, 0, aProcess );
- iActiveProcess = aProcess;
- break;
- }
- case ERestoreProcess:
- {
- CEikButtonGroupContainer* cba = Cba();
- cba->SetCommandSetL( R_AVKON_SOFTKEYS_EMPTY );
- cba->DrawDeferred();
- // FALLTHROUGH
- }
- case EBackupProcess: // FALLTHROUGH
- case EFormatProcess:
- {
- if ( iProgressDialog )
- {
- if ( !iProgressDialog->IsVisible() )
- {
- iProgressDialog->MakeVisible( ETrue );
- }
- }
- if ( iProgressInfo )
- {
- iProgressInfo->SetFinalValue( aFinalValue );
- }
- break;
- }
-#ifdef RD_FILE_MANAGER_BACKUP
- case ESchBackupProcess:
- {
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->SchBackupHandlerL().ProcessStartedL( aFinalValue );
- break;
- }
-#endif // RD_FILE_MANAGER_BACKUP
- default:
- {
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::RunOperationL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::RunOperationL
- ( MFileManagerProcessObserver::TFileManagerProcess aOperation,
- const TDesC& aToFolder )
- {
-
- StoreIndex();
- delete iMarkedArray;
- iMarkedArray = NULL;
- iMarkedArray = MarkedArrayLC();
- CleanupStack::Pop( iMarkedArray );
-
- // Check if marked source and destination folder are available
- if ( !iMarkedArray->Count() || !IsDriveAvailable( aToFolder ) )
- {
- return;
- }
-
- CFileManagerItemProperties* prop =
- iEngine.GetItemInfoLC( iMarkedArray->At( 0 ) );
-
-#ifdef __KEEP_DRM_CONTENT_ON_PHONE
- // When this flag is on all the selected items have to be gone through and checked
- // whether they are protected and the user has to be notified when moving or
- // copying file(s) is impossible. This only applies to processes from phone to MMC.
- TBool process( ETrue );
- if ( CFileManagerUtils::IsFromInternalToRemovableDrive(
- iEikonEnv->FsSession(), iEngine.CurrentDirectory(), aToFolder ) )
- {
- TInt fileAmount (iMarkedArray->Count());
-
- // Only one folder can be selected at a time
- if (iEngine.IsFolder(iMarkedArray->At( 0 )))
- {
- if ( prop->FilesContainedL() == 0 && prop->FoldersContainedL() == 0)
- {
- process = ETrue;
- }
- else if (AreChosenFilesProtectedL( ETrue ))
- {
- if ( aOperation == EMoveProcess )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_DRM_INFO_MOVE_FOLDER_FORBID );
- }
- else
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_DRM_INFO_COPY_FOLDER_FORBID );
- }
- process = EFalse;
- }
- else if (AreChosenFilesProtectedL( EFalse ))
- {
- TInt textId( 0 );
- if ( aOperation == EMoveProcess )
- {
- textId = R_QTN_DRM_QUERY_MOVE_FORBIDDEN;
- }
- else
- {
- textId = R_QTN_DRM_QUERY_COPY_FORBIDDEN;
- }
- if ( FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- textId ) )
- {
- // Engine will not touch protected objects anyway
- process = ETrue;
- }
- else
- {
- process = EFalse;
- }
- }
- }
- else if ( fileAmount == 1 && AreChosenFilesProtectedL( ETrue ))
- {
- if ( aOperation == EMoveProcess )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_DRM_INFO_MOVE_ONE_FORBID );
- }
- else
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_DRM_INFO_COPY_ONE_FORBID );
- }
- process= EFalse;
- }
- else if ( fileAmount > 1 && AreChosenFilesProtectedL( EFalse ))
- {
- if (AreChosenFilesProtectedL( ETrue ))
- {
- if ( aOperation == EMoveProcess )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_DRM_INFO_MOVE_MANY_FORBID );
- }
- else
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_DRM_INFO_COPY_MANY_FORBID );
- }
- process= EFalse;
- }
- else
- {
- TInt textId( 0 );
- if ( aOperation == EMoveProcess )
- {
- textId = R_QTN_DRM_QUERY_MOVE_FORBIDDEN;
- }
- else
- {
- textId = R_QTN_DRM_QUERY_COPY_FORBIDDEN;
- }
- if ( FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- textId ) )
- {
- // Engine will not touch protected objects anyway
- process = ETrue;
- }
- else
- {
- process = EFalse;
- }
- }
- }
- }
- if ( process )
- {
-#endif // __KEEP_DRM_CONTENT_ON_PHONE
-
- TInt64 size( 0 );
- // Skip remote folder size counting because it may last very long time.
- // The content may also change during the operation what makes
- // the counting needless.
- if ( !( prop->IsRemoteDrive() &&
- ( prop->TypeL() & CFileManagerItemProperties::EFolder ) ) )
- {
- size = iEngine.GetFileSizesL( *iMarkedArray ) ;
- }
- if ( size == KErrNotFound )
- {
- // User has cancelled size calculation, do nothing
- }
- else if ( iEngine.EnoughSpaceL( aToFolder, size, aOperation ))
- {
- iTotalTransferredBytes = 0;
- iEngine.SetObserver( this );
- if ( aOperation == EMoveProcess &&
- aToFolder.Left( KDriveLetterSize ) ==
- prop->FullPath().Left( KDriveLetterSize ) )
- {
- // If operation is move and it happens inside drive
- // set size to file amount
- // CFileMan is not calling notify if those conditions apply
- if ( iMarkedArray->Count() > 0 )
- {
- size = iMarkedArray->Count();
- }
- else
- {
- // Folder move time we cannot predict, so setting size to
- // 0 to show wait note, one file moves so fast that it
- // won't show wait note anyway
- size = 0;
- }
- }
-
- if ( prop->IsRemoteDrive() ||
- CFileManagerUtils::IsRemoteDrive(
- iEikonEnv->FsSession(), aToFolder ) )
- {
- // Use wait note for remote drives
- // because real progress information is unavailable
- size = 0;
- }
-
- LaunchProgressDialogL( size, 0, aOperation );
- delete iActiveExec;
- iActiveExec = NULL;
- iActiveExec = CFileManagerActiveExecute::NewL(
- iEngine, aOperation, *this, *iMarkedArray, aToFolder );
- iActiveProcess = aOperation;
- TRAPD( err, iActiveExec->ExecuteL( CFileManagerActiveExecute::ENoOverWrite ) );
- if ( err != KErrNone )
- {
- // Clean up the active process before forwarding leave
- ERROR_LOG2(
- "CFileManagerViewBase::RunOperationL-aOperation=%d,err=%d",
- aOperation, err )
- iActiveProcess = ENoProcess;
- User::Leave( err );
- }
- }
- else
- {
- ShowDiskSpaceErrorL( aToFolder );
- }
-
-#ifdef __KEEP_DRM_CONTENT_ON_PHONE
- }
-#endif // __KEEP_DRM_CONTENT_ON_PHONE
-
- CleanupStack::PopAndDestroy( prop );
-
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::ProcessQueryOverWriteL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::ProcessQueryOverWriteL
- ( const TDesC& aOldName, TDes& aNewName, TFileManagerProcess aOperation )
- {
-
- TParsePtrC name( aOldName );
-
- // Stop progress note before showing the query to be restarted later.
- // Note that progress note may still exist after stop (to fill min time on screen)
- // and it gets deleted later by AVKON. Asynchronous restart is needed to prevent
- // mess up (if note still exists). Otherwise starting and stopping progress note too
- // quickly multiple times leads to mess up in AVKON's note handling.
- StopProgressDialogAndStoreValues();
-
- TBool overWrite( FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- R_QTN_FLDR_OVERWRITE_QUERY, name.NameAndExt() ) );
- if ( !overWrite )
- {
- if ( !FileManagerDlgUtils::ShowFileNameQueryL(
- R_QTN_FLDR_ITEM_NAME_PRMPT, aOldName, aNewName, iEngine ) )
- {
- aNewName.Zero();
- }
- }
-
- if ( iActiveProcess == aOperation &&
- ( aOperation == MFileManagerProcessObserver::ECopyProcess ||
- aOperation == MFileManagerProcessObserver::EMoveProcess ) )
- {
- // Progress note needs asynchronous start because of AVKON's note handling.
- delete iRefreshProgressDelayedStart;
- iRefreshProgressDelayedStart = NULL;
- iRefreshProgressDelayedStart = CPeriodic::NewL( CActive::EPriorityUserInput );
- iRefreshProgressDelayedStart->Start(
- KProgressBarAsyncStartDelay, KProgressBarAsyncStartDelay,
- TCallBack( LaunchProgressDialogAsync, this ) );
- }
-
- return overWrite;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::ProcessQueryRenameL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::ProcessQueryRenameL
- ( const TDesC& aOldName, TDes& aNewName, TFileManagerProcess aOperation )
- {
- TParsePtrC typeCheck( aOldName );
- TParse oldName;
- TBool folderRename( EFalse );
-
- // Check is item file or folder
- if ( !typeCheck.NameOrExtPresent() )
- {
- oldName.Set( aOldName.Left( aOldName.Length() - 1 ), NULL, NULL );
- folderRename = ETrue;
- }
- else
- {
- oldName.Set( aOldName , NULL, NULL );
- }
-
- // Stop progress note before showing the query to be restarted later.
- // Note that progress note may still exist after stop (to fill min time on screen)
- // and it gets deleted later by AVKON. Asynchronous restart is needed to prevent
- // mess up (if note still exists). Otherwise starting and stopping progress note too
- // quickly multiple times leads to mess up in AVKON's note handling.
- StopProgressDialogAndStoreValues();
-
- TBool rename( FileManagerDlgUtils::ShowConfirmQueryWithOkCancelL(
- R_QTN_FLDR_RENAME_QUERY, oldName.NameAndExt() ) );
- if ( rename )
- {
- TBool done( 0 );
- if ( folderRename )
- {
- aNewName.Copy( aOldName );
- done = FileManagerDlgUtils::ShowFolderNameQueryL(
- R_QTN_FLDR_ITEM_NAME_PRMPT, aNewName, iEngine );
- }
- else
- {
- done = FileManagerDlgUtils::ShowFileNameQueryL(
- R_QTN_FLDR_ITEM_NAME_PRMPT, aOldName, aNewName, iEngine );
- }
-
- if ( !done )
- {
- // User cancelled rename
- aNewName.Zero();
- }
- else
- {
- //file server doesn't support the space in the end of the folder/file name
- aNewName.TrimRight();
- }
- }
-
- if ( iActiveProcess == aOperation &&
- ( aOperation == MFileManagerProcessObserver::ECopyProcess ||
- aOperation == MFileManagerProcessObserver::EMoveProcess ) )
- {
- // Progress note needs asynchronous start because of AVKON's note handling.
- delete iRefreshProgressDelayedStart;
- iRefreshProgressDelayedStart = NULL;
- iRefreshProgressDelayedStart = CPeriodic::NewL( CActive::EPriorityUserInput );
- iRefreshProgressDelayedStart->Start(
- KProgressBarAsyncStartDelay, KProgressBarAsyncStartDelay,
- TCallBack( LaunchProgressDialogAsync, this ) );
- }
-
- return rename;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::LaunchProgressDialogL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::LaunchProgressDialogL(
- TInt64 aFinalValue,
- TInt64 aInitialValue,
- MFileManagerProcessObserver::TFileManagerProcess aOperation,
- TBool aImmediatelyVisible )
- {
- TInt dialogId( 0 );
- TInt textId( 0 );
- TBool isPeriodic( EFalse );
- TInt value;
- value=Int64ToInt(aFinalValue);
- switch ( aOperation )
- {
- case ECopyProcess:
- {
- isPeriodic = ( value > 1 );
- if ( isPeriodic )
- {
- dialogId = R_FILEMANAGER_PROGRESS_NOTE_COPY;
- }
- else
- {
- dialogId = R_FILEMANAGER_WAIT_NOTE_COPY;
- }
- break;
- }
- case EMoveProcess:
- {
- isPeriodic = ( value > 1 );
- if ( isPeriodic )
- {
- dialogId = R_FILEMANAGER_PROGRESS_NOTE_MOVE;
- }
- else
- {
- dialogId = R_FILEMANAGER_WAIT_NOTE_MOVE;
- }
- break;
- }
- case EFormatProcess:
- {
- dialogId = R_FILEMANAGER_PROGRESS_NOTE;
- TFileManagerDriveInfo drvInfo;
- DriveInfoAtCurrentPosL( drvInfo );
-#ifdef RD_MULTIPLE_DRIVE
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveMassStorage
- || drvInfo.iState & TFileManagerDriveInfo::EDriveUsbMemory )
- {
- textId = R_QTN_FMGR_MASS_FORMAT_INPROGRESS;
- }
- else
- {
-#endif // RD_MULTIPLE_DRIVE
- textId = R_QTN_FORMAT_INPROGRESS;
-#ifdef RD_MULTIPLE_DRIVE
- }
-#endif // RD_MULTIPLE_DRIVE
- break;
- }
- case EBackupProcess:
- {
- dialogId = R_FILEMANAGER_PROGRESS_NOTE_WITH_CANCEL;
-#ifdef RD_FILE_MANAGER_BACKUP
- textId = R_QTN_FMGR_PROGRESS_PREPARING_BACKUP;
-#else // RD_FILE_MANAGER_BACKUP
- textId = R_QTN_BACKUP_INPROGRESS;
-#endif // RD_FILE_MANAGER_BACKUP
- aImmediatelyVisible = ETrue;
- break;
- }
- case ERestoreProcess:
- {
- dialogId = R_FILEMANAGER_PROGRESS_NOTE;
-#ifdef RD_FILE_MANAGER_BACKUP
- textId = R_QTN_FMGR_PROGRESS_PREPARING_RESTORE;
-#else // RD_FILE_MANAGER_BACKUP
- textId = R_QTN_RESTORE_INPROGRESS;
-#endif // RD_FILE_MANAGER_BACKUP
- break;
- }
- case EEjectProcess:
- {
- dialogId = R_FILEMANAGER_WAIT_NOTE;
- textId = R_QTN_WAIT_EJECT;
- break;
- }
- case EFileOpenProcess:
- {
- dialogId = R_FILEMANAGER_WAIT_NOTE_OPEN_WITH_CANCEL;
- break;
- }
- default:
- {
- dialogId = R_FILEMANAGER_WAIT_NOTE_OPEN;
- break;
- }
- }
- LaunchProgressBarL(
- dialogId, textId, aFinalValue, aInitialValue, isPeriodic, aImmediatelyVisible );
-
-#ifdef RD_FILE_MANAGER_BACKUP
- if ( aOperation == EBackupProcess && iProgressDialog )
- {
- iProgressDialog->ButtonGroupContainer().SetCommandSetL(R_AVKON_SOFTKEYS_EMPTY);
- iProgressDialog->ButtonGroupContainer().DrawDeferred();
- }
-#endif // RD_FILE_MANAGER_BACKUP
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::ShowWaitDialogL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ShowWaitDialogL( MAknBackgroundProcess& aProcess)
- {
- CAknWaitNoteWrapper* waitNoteWrapper = CAknWaitNoteWrapper::NewL();
- CleanupDeletePushL( waitNoteWrapper );
- waitNoteWrapper->ExecuteL( R_FILEMANAGER_WAIT_NOTE_PROCESS, aProcess );
- CleanupStack::PopAndDestroy( waitNoteWrapper );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::DoUpdateProgressBar
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::DoUpdateProgressBar()
- {
- // Update progress indicator
- if ( iProgressDialog && iProgressInfo )
- {
- iProgressInfo->SetAndDraw( iTotalTransferredBytes / KMinificationFactor );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::UpdateProgressBar
-//
-// ------------------------------------------------------------------------------
-//
-TInt CFileManagerViewBase::UpdateProgressBar(TAny* aPtr )
- {
- static_cast< CFileManagerViewBase* >( aPtr )->DoUpdateProgressBar();
- return KErrNone;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::RefreshStartedL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::RefreshStartedL()
- {
- FUNC_LOG
-
- DenyDirectoryRefresh( EFalse );
-
- if ( static_cast< CFileManagerAppUi* >( AppUi() )->IsFmgrForeGround() )
- {
- if ( iContainer )
- {
- iContainer->SetListEmptyL();
- }
-
- ClearProgressBarL();
- if ( Id() == CFileManagerAppUi::KFileManagerSearchResultsViewId )
- {
- // On remote drives local find progress note is sometimes
- // totally blocked if the note is not started directly here.
- iProgressDialogRefresh = new( ELeave ) CAknProgressDialog(
- reinterpret_cast< CEikDialog** >(
- &iProgressDialogRefresh ), EFalse );
- iProgressDialogRefresh->SetCallback( this );
- iProgressDialogRefresh->ExecuteLD( R_FILEMANAGER_FIND_WAIT_DIALOG );
- }
- else
- {
- // Start progress dialog using own timer, otherwise progress dialog
- // burns sometimes quite a lot CPU time even if it is not
- // visible at all.
- iRefreshProgressDelayedStart = CPeriodic::NewL(
- CActive::EPriorityUserInput );
- iRefreshProgressDelayedStart->Start(
- KRefreshProgressStartDelay,
- KRefreshProgressStartDelay,
- TCallBack( RefreshProgressDelayedStart, this ) );
- }
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::RefreshStoppedL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::RefreshStoppedL()
- {
- FUNC_LOG
-
- ClearProgressBarL();
-
- if( iContainer )
- {
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- if ( index > 0 && index < iContainer->ListBoxNumberOfItems() )
- {
- iIndex = index;
- }
- DirectoryChangedL();
- UpdateCbaL();
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::AreChosenFilesProtectedL
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::AreChosenFilesProtectedL( TBool aMode )
- {
- TBool ret = aMode;
- CArrayFixFlat<TInt>* indexArray = MarkedArrayLC();
-
- TInt i( 0 );
-
-#ifdef __KEEP_DRM_CONTENT_ON_PHONE
- TBool protectedFile( EFalse );
-#endif // __KEEP_DRM_CONTENT_ON_PHONE
-
- while( ( ret == aMode ) && i < indexArray->Count() )
- {
- CFileManagerItemProperties* prop = iEngine.GetItemInfoL( indexArray->At( i ));
- CleanupStack::PushL( prop );
-
-#ifdef __KEEP_DRM_CONTENT_ON_PHONE
- // Only one folder can be selected at a time
- if (iEngine.IsFolder(indexArray->At( i )))
- {
-
- CDirScan *dirScan = CDirScan::NewLC( iEikonEnv->FsSession() );
- CDir *currentDir = NULL;
- // Go through the files only
- dirScan->SetScanDataL( prop->FullPath(), KEntryAttNormal, ESortNone );
-
- dirScan->NextL( currentDir );
- while ( ( ret == aMode ) && currentDir )
- {
- CleanupStack::PushL( currentDir ); // currentDir won't be null
- // due to while loop conditional
- TInt j( 0 );
- while ( ( ret == aMode ) && j < currentDir->Count() )
- {
- const TEntry ¤tFile( ( *currentDir )[ j ] );
- TPtrC currentPath (dirScan->FullPath());
- HBufC* currentFilePath = HBufC::NewLC( KMaxFileName );
- TPtr completeFilePath = currentFilePath->Des();
- completeFilePath.Append(currentPath);
- completeFilePath.Append(currentFile.iName);
-
-
- // the following could leave if file is opened in exclusive
- // mode by another app- will cause 'in use' error dialog
- //to be displayed
- User::LeaveIfError( iEngine.IsDistributableFile( completeFilePath,
- protectedFile ));
- if( protectedFile == !aMode )
- {
- ret = !aMode;
- }
- ++j;
- CleanupStack::PopAndDestroy( currentFilePath );
- currentFilePath = NULL;
- }
- CleanupStack::PopAndDestroy( currentDir );
- currentDir=NULL;
- dirScan->NextL( currentDir );
- }
- CleanupStack::PopAndDestroy( dirScan );
- dirScan = NULL;
- }
- else
- {
-
- // the following could leave if file is opened in exclusive
- // mode by another app- will cause 'in use' error dialog
- //to be displayed
- User::LeaveIfError( iEngine.IsDistributableFile( prop->FullPath(),
- protectedFile ));
- if( protectedFile == !aMode )
- {
- ret = !aMode;
- }
- }
-
-#else // __KEEP_DRM_CONTENT_ON_PHONE
- if ( ( (prop->TypeL() & CFileManagerItemProperties::EForwardLocked)
- == CFileManagerItemProperties::EForwardLocked ) == !aMode )
- {
- ret = !aMode;
- }
-#endif // __KEEP_DRM_CONTENT_ON_PHONE
- CleanupStack::PopAndDestroy( prop );
- ++i;
- }
- CleanupStack::PopAndDestroy( indexArray );
- return ret;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::ShowContextSensitiveMenuL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ShowContextSensitiveMenuL()
- {
- CEikMenuBar* menu = MenuBar();
- // set context sensitive menu
- menu->SetMenuTitleResourceId( R_FILEMANAGER_CONTEXT_SENSITIVE_MENUBAR );
- // show context sensitive menu
- TRAPD( err, menu->TryDisplayMenuBarL() );
- menu->SetMenuTitleResourceId( R_FILEMANAGER_MEMORY_STORE_MENUBAR );
- User::LeaveIfError( err );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::ClearProgressBarL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ClearProgressBarL()
- {
- FUNC_LOG
-
- iProgressInfo = NULL;
-
- if ( iProgressDialog )
- {
- iProgressDialog->ProcessFinishedL();
- iProgressDialog = NULL;
- }
- if ( iProgressDialogRefresh )
- {
- iProgressDialogRefresh->ProcessFinishedL();
- iProgressDialogRefresh = NULL;
- }
- delete iPeriodic;
- iPeriodic = NULL;
-
- delete iRefreshProgressDelayedStart;
- iRefreshProgressDelayedStart = NULL;
-
- iTotalTransferredBytes = 0;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::StoreIndex
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::StoreIndex()
- {
- if ( iContainer )
- {
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- if ( index >= 0 &&
- index < iContainer->ListBoxNumberOfItems() )
- {
- iIndex = index; // Store view's internal index
-
- // Store navigation index
- TUid viewId( Id() );
- if ( viewId == CFileManagerAppUi::KFileManagerMemoryStoreViewId ||
- viewId == CFileManagerAppUi::KFileManagerFoldersViewId )
- {
- iEngine.SetCurrentIndex( index );
- }
- }
- }
- else
- {
- return EFalse;
- }
- return ETrue;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::DriveReadOnlyMmcL
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::DriveReadOnlyMmcL( const TInt aDrive ) const
- {
- TBool ret( EFalse );
- TUint32 drvState( 0 );
- TInt err( iEngine.DriveState( drvState, aDrive ) );
- if ( err == KErrNone &&
- ( drvState & TFileManagerDriveInfo::EDriveWriteProtected ) )
- {
- ret = ETrue;
- }
- if ( ret )
- {
-#ifdef RD_MULTIPLE_DRIVE
- HBufC* text = iEngine.GetFormattedDriveNameLC(
- aDrive,
- R_QTN_MEMC_MULTIPLE_MEMC_READ_ONLY );
- FileManagerDlgUtils::ShowErrorNoteL( *text );
- CleanupStack::PopAndDestroy( text );
-#else // RD_MULTIPLE_DRIVE
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_MEMC_MEMORYCARD_READ_ONLY );
-#endif // RD_MULTIPLE_DRIVE
- }
-
- return ret;
- }
-
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::DriveReadOnlyMmcL
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::DriveReadOnlyMmcL( const TDesC& aFullPath ) const
- {
- TBool ret( EFalse );
- if ( aFullPath.Length() )
- {
- TInt drive = TDriveUnit( aFullPath );
- ret = DriveReadOnlyMmcL( drive );
- }
- return ret;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::CurrentProcess
-//
-// ------------------------------------------------------------------------------
-//
-MFileManagerProcessObserver::TFileManagerProcess CFileManagerViewBase::CurrentProcess()
- {
- return iActiveProcess;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::Error
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::Error( TInt aError )
- {
- if ( aError != KErrNone )
- {
- ERROR_LOG1( "CFileManagerViewBase::Error()-aError=%d", aError )
- iEikonEnv->HandleError( aError );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::AddSendOptionL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::AddSendOptionL(
- CEikMenuPane& aMenuPane,
- const TInt aCommandIdAfter )
- {
- CSendUi& sendUi( static_cast< CFileManagerAppUi* >( AppUi() )->SendUiL() );
- TInt pos( 0 );
- aMenuPane.ItemAndPos( aCommandIdAfter, pos );
- CArrayFixFlat< TInt >* indexArray = MarkedArrayLC();
- TInt msgSize( KMessageSize );
- if ( indexArray->Count() == 1 &&
- !iEngine.IsFolder( indexArray->At( 0 ) ) )
- {
- msgSize = Int64ToInt( iEngine.GetFileSizesL( *indexArray ) );
- }
- CleanupStack::PopAndDestroy( indexArray );
- TSendingCapabilities caps(
- 0, msgSize, TSendingCapabilities::ESupportsAttachments );
- sendUi.AddSendMenuItemL( aMenuPane, pos, EFileManagerSend, caps );
- aMenuPane.SetItemSpecific(EFileManagerSend, ETrue);
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::DeleteStatusNotOk
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::DeleteStatusNotOkL(
- CFileManagerItemProperties& aProp, TInt aSelectionCount ) const
- {
- if ( DriveReadOnlyMmcL( aProp.FullPath() ) )
- {
- // Can't delete from read-only MMC card
- return ETrue;
- }
-
- TUint32 itemType( aProp.TypeL() );
- if ( !aSelectionCount &&
- ( itemType & KDefaultFolderMask ) == KDefaultFolderMask )
- {
- // Can't delete default folder
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_DEL_DEF_FLDR );
- return ETrue;
- }
- if ( aSelectionCount <= 1 &&
- ( itemType & CFileManagerItemProperties::EOpen ) )
- {
- // Can't delete open file
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_DELETE_FILE_OPEN );
- return ETrue;
- }
-
- return EFalse;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::DeleteItemsL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::DeleteItemsL( TInt aIndex )
- {
-
- CArrayFixFlat<TInt>* deleteArray = MarkedArrayLC();
- TInt newIndex( MinIndex( *deleteArray ) );
- delete iActiveDelete;
- iActiveDelete = NULL;
- iActiveDelete = iEngine.CreateActiveDeleteL( *deleteArray );
- delete iWaitNoteWrapper;
- iWaitNoteWrapper = NULL;
- iWaitNoteWrapper = CAknWaitNoteWrapper::NewL();
- iActiveProcess = EDeleteProcess;
- TRAPD( err, iWaitNoteWrapper->ExecuteL(
- R_FILEMANAGER_DELETE_WAIT_DIALOG, *iActiveDelete ) );
- iActiveProcess = ENoProcess;
- User::LeaveIfError( err );
-
- HBufC* fileNameBuf = HBufC::NewLC( KMaxFileName );
- TPtr fileName( fileNameBuf->Des() );
-
- err = iActiveDelete->GetError( fileName );
-
- switch ( err )
- {
- case KErrInUse:
- case KErrFmgrSeveralFilesInUse:
- {
- ERROR_LOG1( "CFileManagerViewBase::DeleteItemsL()-err=%d", err )
- if ( iEngine.IsFolder( aIndex ) )
- {
- if ( err == KErrFmgrSeveralFilesInUse )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_DEL_FLDR_OPEN_SE );
- }
- else
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_DEL_FLDR_OPEN_1 );
- }
- }
- else
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FMGR_ERROR_DELETE_FILE_OPEN );
- }
- break;
- }
- case KErrNone:
- {
- if ( iContainer )
- {
- //CEikListBox& listBox( iContainer->ListBox() );
- //AknSelectionService::HandleItemRemovalAndPositionHighlightL(
- // &listBox, listBox.CurrentItemIndex(), *deleteArray);
-
-#ifndef RD_DRM_RIGHTS_MANAGER_REMOVAL
- if ( FeatureManager().IsDrmFullSupported() )
- {
- TInt deletedItems( 0 );
- TInt deletedDrmItems( iActiveDelete->DeletedDrmItems( deletedItems ) );
- if( deletedDrmItems )
- {
- if( deletedDrmItems > 1 )
- {
- FileManagerDlgUtils::ShowInfoQueryL(
- R_QTN_DRM_MOS_DELETED, deletedDrmItems );
- }
- else
- {
- FileManagerDlgUtils::ShowInfoQueryL(
- R_QTN_DRM_MO_DELETED, fileName );
- }
- }
- }
-#endif // RD_DRM_RIGHTS_MANAGER_REMOVAL
-
- // Set focus to the item after selection
- iContainer->SetIndex( newIndex );
- }
- break;
- }
- default:
- {
- ERROR_LOG1( "CFileManagerViewBase::DeleteItemsL()-err=%d", err )
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_FLDR_CANT_DELETE_ITEM, fileName );
- break;
- }
- }
- CleanupStack::PopAndDestroy( fileNameBuf );
- CleanupStack::PopAndDestroy( deleteArray );
- StoreIndex();
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::HasInfoUrlL
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::HasInfoUrlL( TInt aIndex )
- {
- if ( iEngine.IsFolder( aIndex ) )
- {
- return EFalse;
- }
- TBool hasUrl( EFalse );
- HBufC8* url = NULL;
- HBufC* fullPath = iEngine.IndexToFullPathLC( aIndex );
- CDRMHelper* drmHelper = CDRMHelper::NewLC( *iEikonEnv );
-
- TRAPD( err, hasUrl = drmHelper->HasInfoUrlL( *fullPath, url ) );
- if ( hasUrl && url && err == KErrNone )
- {
- hasUrl = url->Length() > 0;
- }
- else
- {
- hasUrl = EFalse;
- }
-
- ERROR_LOG2( "CFileManagerViewBase::HasInfoUrlL()-hasUrl=%d,err=%d", hasUrl, err )
-
- delete url;
- CleanupStack::PopAndDestroy( drmHelper );
- CleanupStack::PopAndDestroy( fullPath );
- return hasUrl;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::OpenInfoUrlL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::OpenInfoUrlL( TInt aIndex )
- {
- if ( iEngine.IsFolder( aIndex ) )
- {
- return;
- }
- HBufC* fullPath = iEngine.IndexToFullPathLC( aIndex );
- CDRMHelper* drmHelper = CDRMHelper::NewLC( *iEikonEnv );
-
- // Call returns after browser has been closed
-#ifdef FILE_MANAGER_ERROR_LOG_ENABLED
- TRAPD( err, drmHelper->OpenInfoUrlL( *fullPath ) );
- ERROR_LOG1( "CFileManagerViewBase::OpenInfoUrlL()-err=%d", err )
-#else // FILE_MANAGER_ERROR_LOG_ENABLED
- TRAP_IGNORE( drmHelper->OpenInfoUrlL( *fullPath ) );
-#endif // FILE_MANAGER_ERROR_LOG_ENABLED
-
- CleanupStack::PopAndDestroy( drmHelper );
- CleanupStack::PopAndDestroy( fullPath );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::CheckFileRightsAndInformIfExpiredL
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::CheckFileRightsAndInformIfExpiredL(
- const TDesC& aFullPath )
- {
- if ( !FeatureManager().IsDrmFullSupported() )
- {
- return ETrue;
- }
- TBool expired( EFalse );
- TBool wmDrm( IsWmDrmFile( aFullPath ) );
- if ( !wmDrm ) // Ignore WM DRM files
- {
- TBool dummy( EFalse );
- CDRMHelperRightsConstraints* dummy2 = NULL;
- CDRMHelperRightsConstraints* dummy3 = NULL;
- CDRMHelperRightsConstraints* dummy4 = NULL;
- CDRMHelperRightsConstraints* dummy5 = NULL;
- CDRMHelper* drmHelper = CDRMHelper::NewLC( *iEikonEnv );
- TRAPD( err, drmHelper->GetRightsDetailsL(
- aFullPath, 0, expired, dummy, dummy2, dummy3, dummy4, dummy5 ) );
- delete dummy2;
- delete dummy3;
- delete dummy4;
- delete dummy5;
- if ( expired )
- {
- err = KErrCANoPermission;
- }
- if ( err == KErrCANoRights || err == KErrCANoPermission )
- {
- // Rights expired or missing, show note or try get silent rights
- expired = ETrue;
- ERROR_LOG1( "CFileManagerViewBase::CheckFileRightsAndInformIfExpiredL-err=%d",
- err )
- HBufC8* previewUri = NULL;
- if ( drmHelper->HandleErrorOrPreviewL( err, aFullPath, previewUri ) == KErrNone )
- {
- expired = EFalse;
- }
- delete previewUri; // Not needed
- }
- CleanupStack::PopAndDestroy( drmHelper );
- }
- ERROR_LOG2(
- "CFileManagerViewBase::CheckFileRightsAndInformIfExpiredL-expired=%d,wmDrm=%d",
- expired, wmDrm )
- return !expired;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::HandleFileNotFoundL
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::HandleFileNotFoundL( TInt aError )
- {
- if ( aError == KErrNotFound )
- {
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- return ETrue;
- }
- if ( aError == KErrPathNotFound )
- {
- TInt count( iEngine.FolderLevel() );
- TBool connectedRemoteDrive( EFalse );
- RefreshDriveInfoL();
-
- TFileManagerDriveInfo& drvInfo( DriveInfo() );
- TBool remoteDrive( EFalse );
- // Check if drive is remote drive and is it connected or not
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote )
- {
- remoteDrive = ETrue;
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected )
- {
- connectedRemoteDrive = ETrue;
- }
- }
- // Check if drive has been disconnected and reconnect canceled
- if ( remoteDrive && !connectedRemoteDrive )
- {
- // Do only root refresh if user is already got back in main view
- if ( Id() == CFileManagerAppUi::KFileManagerMainViewId &&
- iEngine.NavigationLevel() < 0 )
- {
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
- // Open memory store view to show not connected.
- else if ( Id() != CFileManagerAppUi::KFileManagerMemoryStoreViewId )
- {
- iIndex = 0;
- static_cast< CFileManagerAppUi* >( AppUi() )->ActivateMemoryStoreViewL();
- }
- else
- {
- iIndex = 0;
- if ( iContainer )
- {
- iContainer->SetListEmptyL();
- }
- DirectoryChangedL();
- }
- }
- // Check if fetch was canceled in connected memory store view
- else if ( connectedRemoteDrive &&
- Id() == CFileManagerAppUi::KFileManagerMemoryStoreViewId )
- {
- static_cast< CFileManagerAppUi* >( AppUi() )->ActivateMainViewL();
- }
- else if ( count > 0 &&
- ( connectedRemoteDrive ||
- !BaflUtils::PathExists(
- iEikonEnv->FsSession(), iEngine.CurrentDirectory() ) ) )
- {
- // Go back to last valid folder
- CFileManagerAppUi* appUi =
- static_cast< CFileManagerAppUi* >( AppUi() );
- TInt err( KErrNone );
- for ( TInt i( 0 ); i < count; i++ )
- {
- TRAP( err, iEngine.BackstepL() );
- if ( err == KErrNone )
- {
- break;
- }
- }
- if ( iEngine.FolderLevel() ||
- iEngine.State() == CFileManagerEngine::ESearch )
- {
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
- else
- {
- appUi->CloseFoldersViewL();
- }
- }
- else
- {
- // Refresh root folder
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
- return ETrue;
- }
- return EFalse;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::ScreenDeviceChanged
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ScreenDeviceChanged()
- {
- if ( iContainer )
- {
- iContainer->SetRect( ClientRect() );
- iContainer->DrawDeferred();
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::NotifyL
-//
-// ------------------------------------------------------------------------------
-//
-TInt CFileManagerViewBase::NotifyL( TFileManagerNotify aType,
- TInt aData, const TDesC& aName )
- {
- TInt ret( KErrNone );
- switch ( aType )
- {
- case ENotifyDisksChanged:
- {
- if ( iDirectoryRefreshDenied )
- {
- iDirectoryRefreshPostponed = ETrue;
- }
- else if ( iActiveProcess == ENoProcess && !IsRefreshInProgress() )
- {
- StoreIndex();
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
-#ifndef RD_MULTIPLE_DRIVE
- else if ( iActiveProcess == EEjectProcess )
- {
- // Memory card was put back, complete query
- if ( iEngine.AnyEjectableDrivePresent() )
- {
- delete iEjectQueryDialog;
- iEjectQueryDialog = NULL;
- }
- }
-#endif // RD_MULTIPLE_DRIVE
- break;
- }
- case ENotifyBackupMemoryLow:
- {
- if( aData < KEstimateLowerLimit )
- {
- ret = KErrDiskFull;
- }
- else if( aData < KEstimateUpperLimit )
- {
-
-#ifdef RD_FILE_MANAGER_BACKUP
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
-#endif // RD_FILE_MANAGER_BACKUP
-
- if ( !FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
-#ifdef RD_FILE_MANAGER_BACKUP
- R_QTN_FMGR_BACKUP_TIGHT_MEMORY,
- iEngine.DriveName( settings.TargetDrive() )
-#else // RD_FILE_MANAGER_BACKUP
- R_QTN_CONFIRM_BACKUP_LEVEL1
-#endif // RD_FILE_MANAGER_BACKUP
- ) )
- {
- ret = KErrCancel;
- }
- }
- break;
- }
- case ENotifyForcedFormat:
- {
- StopProgressDialogAndStoreValues();
-
- TInt textId( R_QTN_CONFIRM_FORMAT_TEXT2 );
-#ifdef RD_MULTIPLE_DRIVE
- if ( DriveInfo().iState & TFileManagerDriveInfo::EDriveMassStorage )
- {
- textId = R_QTN_FMGR_FORMAT_MASS_QUERY2;
- }
-#endif // RD_MULTIPLE_DRIVE
-
- TBool query( FileManagerDlgUtils::ShowConfirmQueryWithYesNoL( textId ) );
- LaunchProgressDialogL(
- iProgressFinalValue, iProgressCurrentValue, iActiveProcess );
- return query;
- }
- case ENotifyFileOpenDenied:
- {
- TBool launchProgress( StopProgressDialogAndStoreValues() );
-
- ret = !CheckFileRightsAndInformIfExpiredL( aName );
- if ( launchProgress )
- {
- LaunchProgressDialogL(
- iProgressFinalValue, iProgressCurrentValue, iActiveProcess );
- }
- break;
- }
- default:
- {
- break;
- }
- }
- return ret;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::MemoryStoreMenuFilteringL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::MemoryStoreMenuFilteringL(
- CEikMenuPane& aMenuPane )
- {
- TBool isSearchOn( iEngine.State() == CFileManagerEngine::ESearch );
- TRAP_IGNORE ( RefreshDriveInfoL() );
- TFileManagerDriveInfo& drvInfo( DriveInfo() );
- TInt driveNumber = drvInfo.iDrive;
- iEngine.GetDriveInfoL(driveNumber,drvInfo);
-
- // Common remote drive filtering
- RemoteDriveCommonFilteringL( aMenuPane );
- if( iContainer->IsSearchFieldVisible() &&
- !FilesCountInSearchField() )
- {
- aMenuPane.SetItemDimmed( EFileManagerMark, ETrue );
- }
- if ( iContainer->ListBoxNumberOfItems() )
- {
- if ( !iContainer->ListBoxSelectionIndexesCount() )
- {
- TUint32 fileType( iEngine.FileTypeL(
- iContainer->ListBoxCurrentItemIndex() ) );
- if ( ( fileType & KDefaultFolderMask ) == KDefaultFolderMask )
- {
- aMenuPane.SetItemDimmed( EFileManagerMoveToFolder, ETrue );
- }
- }
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerMoveToFolder, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerCopyToFolder, ETrue );
- }
- TInt index(iContainer->ListBoxCurrentItemIndex());
- TUint32 fileType(iEngine.FileTypeL(index));
- if (!(fileType & CFileManagerItemProperties::EFolder))
- {
- aMenuPane.SetItemDimmed(EFileManagerMoveToFolder, ETrue);
- }
- CFileManagerFeatureManager& featureManager( FeatureManager() );
-
-#ifdef RD_MULTIPLE_DRIVE
- // No format item for mass storage in embedded mode dimming
- if ( !( drvInfo.iState & TFileManagerDriveInfo::EDriveFormattable ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
- }
-#endif // RD_MULTIPLE_DRIVE
-
- // Memory store specific remote drive filtering
- if ( !featureManager.IsRemoteStorageFwSupported() ||
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) ||
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) )
- {
- // For disconnected or non remote drive
- aMenuPane.SetItemDimmed( EFileManagerRefreshRemoteDrive, ETrue );
- }
-
- if ( !featureManager.IsHelpSupported() )
- {
- // No help item dimming
- aMenuPane.SetItemDimmed( EAknCmdHelp, ETrue );
- }
- if ( !featureManager.IsIrdaSupported() )
- {
- // No infra red item dimming
- aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
- }
- if ( isSearchOn )
- {
- // Search view item dimming
- aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCard, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
- //aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerRefreshRemoteDrive, ETrue );
-#ifdef RD_MULTIPLE_DRIVE
- aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
-#endif // RD_MULTIPLE_DRIVE
- aMenuPane.SetItemDimmed( EFileManagerSort, ETrue );
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerSearchSort, ETrue );
- }
- //dim the item unconditionally
- aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveWriteProtected )
- {
- // Write protected item dimming
- aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerDelete, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCard, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
-#ifdef RD_MULTIPLE_DRIVE
- aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
-#endif // RD_MULTIPLE_DRIVE
- }
-
-#ifdef RD_MULTIPLE_DRIVE
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveMassStorage )
- {
- // Mass storage item dimming
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCard, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
-
- if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
- }
- }
- else
-#endif // RD_MULTIPLE_DRIVE
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable )
- {
- // Memory card item dimming
- if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) ||
- ( drvInfo.iState & ( TFileManagerDriveInfo::EDriveCorrupted |
- TFileManagerDriveInfo::EDriveLocked ) ) )
- {
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
- }
- if ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveCorrupted ) ||
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveLocked ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
- }
-// if ( !( drvInfo.iState & TFileManagerDriveInfo::EDriveLockable ) )
-// {
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
-// }
- if ( !featureManager.IsMmcPassWdSupported() )
- {
- //aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
- }
-#ifdef RD_MULTIPLE_DRIVE
- aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
-#endif // RD_MULTIPLE_DRIVE
- }
- else
- {
- // No mass storage or memory card item dimming
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCard, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
-#ifdef RD_MULTIPLE_DRIVE
- aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
-#endif // RD_MULTIPLE_DRIVE
- }
-
-// CEikListBox& listBox = iContainer->ListBox();
- TBool dimSend( EFalse );
-
- if ( iContainer->ListBoxSelectionIndexesCount() )
- {
- // Selections in list
- aMenuPane.SetItemDimmed( EFileManagerOpen, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
-
- if ( !featureManager.IsDrmFullSupported() &&
- AreChosenFilesProtectedL( ETrue ) )
- {
- dimSend = ETrue;
- }
-
-
- // Hide empty details if no item or memory specific details
- // can be shown.
- if ( isSearchOn ||
- ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
- }
-
- if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) ||
- ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) &&
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) ) )
- {
- // Handle unavailable drive OR disconnected remote drive
- dimSend = ETrue;
- aMenuPane.SetItemDimmed( EFileManagerSort, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMark, ETrue );
- }
- }
- else if ( iContainer->ListBoxNumberOfItems() )
- {
- // Check if there is files on the list
- TInt files( iEngine.FilesInFolderL() );
- if ( !files )
- {
- dimSend = ETrue;
- aMenuPane.SetItemDimmed( EFileManagerMark, ETrue );
- }
-
- // There is items in list, check selection type
- TUint32 fileType( iEngine.FileTypeL(
- iContainer->ListBoxCurrentItemIndex() ) );
- if ( ( fileType & KDefaultFolderMask ) == KDefaultFolderMask )
- {
- dimSend = ETrue;
- aMenuPane.SetItemDimmed( EFileManagerDelete, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
- }
- else if ( fileType & CFileManagerItemProperties::EFolder )
- {
- dimSend = ETrue;
- }
-
- if ( fileType & CFileManagerItemProperties::EPlaylist )
- {
- dimSend = ETrue;
- }
-
- // When full OMA DRM is in use, it is ok to show send option
- if( ( fileType & CFileManagerItemProperties::EForwardLocked ) &&
- !featureManager.IsDrmFullSupported() )
- {
- dimSend = ETrue;
- }
- if ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) &&
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) )
- {
- // Handle disconnected remote drive
- dimSend = ETrue;
- }
- }
- else
- {
- // List is empty
- aMenuPane.SetItemDimmed( EFileManagerOpen, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerDelete, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMark, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerSort, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerSearchSort, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
- dimSend = ETrue;
-
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveWriteProtected )
- {
- // Handle write protected drive
- aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
- }
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote )
- {
- // Handle empty remote folder
- aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
- }
-
- if ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) &&
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) )
- {
- // Handle disconnected remote drive
- aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
- }
- else if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) ||
- ( drvInfo.iState & (
- TFileManagerDriveInfo::EDriveCorrupted |
- TFileManagerDriveInfo::EDriveLocked ) ) )
- {
- // Handle unavailable drive
-// aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
-
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable &&
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveLocked ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
- }
- }
- else if ( isSearchOn ||
- !BaflUtils::PathExists(
- iEikonEnv->FsSession(), iEngine.CurrentDirectory() ) )
- {
- // Handle empty search results and invalid path
- if ( isSearchOn || !iEngine.CurrentDirectory().Length() )
- {
- aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCard, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
- }
- else
- {
- // BaflUtils::PathExists does not work for remote drive root dirs.
- if( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote )
- {
- _LIT( KRootFolder, "?:\\" );
- if ( iEngine.CurrentDirectory().MatchF( KRootFolder ) )
- {
- User::Leave( KErrPathNotFound );
- }
- }
- else
- {
- User::Leave( KErrPathNotFound );
- }
- }
- }
- }
-
- if ( !dimSend )
- {
- AddSendOptionL( aMenuPane, EFileManagerDelete );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::OrganiseMenuFilteringL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::OrganiseMenuFilteringL( CEikMenuPane& aMenuPane )
- {
-// CEikListBox& listBox( iContainer->ListBox() );
-
-
- // Search view item dimming
- if( iEngine.State() == CFileManagerEngine::ESearch )
- {
- aMenuPane.SetItemDimmed( EFileManagerNewFolder, ETrue );
- }
-
- TFileManagerDriveInfo& drvInfo( DriveInfo() );
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveWriteProtected )
- {
- // Write protected item dimming
- aMenuPane.SetItemDimmed( EFileManagerNewFolder, ETrue );
-
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::DetailsMenuFilteringL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::DetailsMenuFilteringL( CEikMenuPane& aMenuPane )
- {
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- TUint32 fileType( iEngine.FileTypeL( index ) );
- if ( fileType & CFileManagerItemProperties::EFolder )
- {
- aMenuPane.SetItemDimmed( EFileManagerFileDetails, ETrue );
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerFolderDetails, ETrue );
- }
- if ( !FeatureManager().IsDrmFullSupported() ||
- !( fileType & CFileManagerItemProperties::EDrmProtected ) ||
- !HasInfoUrlL( index ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerMoreInfoOnline, ETrue );
- }
- }
-
-//// ------------------------------------------------------------------------------
-//// CFileManagerViewBase::MemoryCardMenuFilteringL
-////
-//// ------------------------------------------------------------------------------
-////
-//void CFileManagerViewBase::MemoryCardMenuFilteringL( CEikMenuPane& aMenuPane )
-// {
-// TFileManagerDriveInfo& drvInfo( DriveInfo() );
-//
-// if ( drvInfo.iState & ( TFileManagerDriveInfo::EDriveCorrupted |
-// TFileManagerDriveInfo::EDriveLocked |
-// TFileManagerDriveInfo::EDriveMassStorage ) )
-// {
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardName, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardRename, ETrue );
-// }
-// else
-// {
-// if ( drvInfo.iName.Length() )
-// {
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardName, ETrue );
-// }
-// else
-// {
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardRename, ETrue );
-// }
-// }
-//
-// if ( !( drvInfo.iState & TFileManagerDriveInfo::EDriveFormattable ) )
-// {
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardFormat, ETrue );
-// }
-// }
-//
-//// ------------------------------------------------------------------------------
-//// CFileManagerViewBase::MemoryCardPasswordMenuFilteringL
-////
-//// ------------------------------------------------------------------------------
-////
-//void CFileManagerViewBase::MemoryCardPasswordMenuFilteringL( CEikMenuPane& aMenuPane )
-// {
-// TFileManagerDriveInfo& drvInfo( DriveInfo() );
-//
-// if ( drvInfo.iState & TFileManagerDriveInfo::EDrivePasswordProtected )
-// {
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPasswordSet, ETrue );
-// }
-// else
-// {
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPasswordChange, ETrue );
-// aMenuPane.SetItemDimmed( EFileManagerMemoryCardPasswordRemove, ETrue );
-// }
-// }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::ContextSensitiveMenuFilteringL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ContextSensitiveMenuFilteringL( CEikMenuPane& aMenuPane )
- {
- TFileManagerDriveInfo& drvInfo( DriveInfo() );
- TInt driveNumber = drvInfo.iDrive;
- iEngine.GetDriveInfoL(driveNumber,drvInfo);
-
- // Check if there are files to send
- TInt dummy( 0 );
- CArrayFixFlat< TInt >* files = GetSendFilesLC( dummy );
-
- TBool dimSend( EFalse );
- if ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) &&
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) )
- {
- dimSend = ETrue;
- }
-
- if ( files->Count() && !dimSend )
- {
- AddSendOptionL( aMenuPane, EFileManagerOrganise );
- }
- CleanupStack::PopAndDestroy( files );
-
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveWriteProtected )
- {
- // Write protected item dimming
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageFormat, ETrue );
- }
-
- if ( iEngine.State() == CFileManagerEngine::ESearch ||
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable ) )
- {
- // No memory card item dimming
- aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageFormat, ETrue );
- }
- else
- {
- // Memory card item dimming
- if ( !( drvInfo.iState & TFileManagerDriveInfo::EDriveLocked ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
- }
- if ( !( drvInfo.iState & TFileManagerDriveInfo::EDriveCorrupted ) ||
- !( drvInfo.iState & TFileManagerDriveInfo::EDriveFormattable ) )
- {
- aMenuPane.SetItemDimmed( EFileManagerMemoryStorageFormat, ETrue );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::DriveInfo
-//
-// -----------------------------------------------------------------------------
-//
-TFileManagerDriveInfo& CFileManagerViewBase::DriveInfo() const
- {
- return static_cast< CFileManagerAppUi* >( AppUi() )->DriveInfo();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::RefreshDriveInfoL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::RefreshDriveInfoL()
- {
- if ( !iEngine.CurrentDirectory().Length() )
- {
- return;
- }
- iEngine.GetDriveInfoL( DriveInfo() );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::StartProcessL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::StartProcessL(
- MFileManagerProcessObserver::TFileManagerProcess aProcess,
- TInt aValue )
- {
- if ( iActiveProcess != ENoProcess )
- {
- return;
- }
- LaunchProgressDialogL( KMaxTInt, 0, aProcess );
- iEngine.SetObserver( this );
- iActiveProcess = aProcess;
- TInt err( KErrNone );
- switch ( aProcess )
- {
- case EFormatProcess:
- {
- TRAP( err, iEngine.StartFormatProcessL( aValue ) );
- break;
- }
- case EBackupProcess:
- case ERestoreProcess: // FALLTHROUGH
- {
- CFileManagerAppUi* appUi = static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->BackupOrRestoreStarted();
-
- TRAP( err, iEngine.StartBackupProcessL( aProcess ) );
- break;
- }
- case EEjectProcess:
- {
- TRAP( err, iEngine.StartEjectProcessL( aValue ) );
- break;
- }
- default:
- {
- TRAP( err, ClearProgressBarL() );
- iActiveProcess = ENoProcess;
- break;
- }
- }
- if ( err != KErrNone )
- {
- // Clean up the active process before forwarding leave
- ERROR_LOG2(
- "CFileManagerViewBase::StartProcessL-aProcess=%d,err=%d",
- aProcess, err )
- iActiveProcess = ENoProcess;
- User::Leave( err );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::CmdUnlockDriveL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdUnlockDriveL()
- {
- TFileManagerDriveInfo drvInfo;
- if ( DriveInfoAtCurrentPosL( drvInfo ) < 0 )
- {
- return; // No drive selected
- }
-
- if ( !UnlockRemovePasswordL( drvInfo.iDrive, EFalse ) ) // Unlock only
- {
- RefreshDriveInfoL();
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::CmdFormatDriveL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdFormatDriveL()
- {
- StoreIndex();
- TFileManagerDriveInfo drvInfo;
- if ( DriveInfoAtCurrentPosL( drvInfo ) < 0 )
- {
- return; // No drive selected
- }
-
- if ( !( drvInfo.iState & ( TFileManagerDriveInfo::EDriveRemovable |
- TFileManagerDriveInfo::EDriveFormattable ) ) ||
- ( drvInfo.iState & TFileManagerDriveInfo::EDriveWriteProtected ) )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_MEMORYCARD_READONLY );
- return;
- }
-
- TBool query( EFalse );
-#ifdef RD_MULTIPLE_DRIVE
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveUsbMemory )
- {
- HBufC* text = iEngine.GetFormattedDriveNameLC(
- drvInfo.iDrive, R_QTN_FMGR_USB_MEMORY_FORMAT_QUERY );
- query = FileManagerDlgUtils::ShowConfirmQueryWithYesNoL( *text );
- CleanupStack::PopAndDestroy( text );
- }
- else if ( drvInfo.iState & TFileManagerDriveInfo::EDriveMassStorage )
- {
- HBufC* text = iEngine.GetFormattedDriveNameLC(
- drvInfo.iDrive, R_QTN_FMGR_FORMAT_MASS_QUERY1 );
- query = FileManagerDlgUtils::ShowConfirmQueryWithYesNoL( *text );
- CleanupStack::PopAndDestroy( text );
- }
- else
- {
-#endif // RD_MULTIPLE_DRIVE
- query = FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- R_QTN_CONFIRM_FORMAT_TEXT );
-#ifdef RD_MULTIPLE_DRIVE
- }
-#endif // RD_MULTIPLE_DRIVE
-
- if ( query )
- {
- StartProcessL( EFormatProcess, drvInfo.iDrive );
- }
- }
-
-//// ------------------------------------------------------------------------------
-//// CFileManagerViewBase::CmdRenameDriveL
-////
-//// ------------------------------------------------------------------------------
-////
-//void CFileManagerViewBase::CmdRenameDriveL()
-// {
-// TFileManagerDriveInfo& drvInfo( DriveInfo() );
-// if ( drvInfo.iState & TFileManagerDriveInfo::EDriveWriteProtected )
-// {
-// FileManagerDlgUtils::ShowErrorNoteL( R_QTN_MEMORYCARD_READONLY );
-// return;
-// }
-// StoreIndex();
-// RenameDriveL( EFalse );
-// iEngine.SetObserver( this );
-// iEngine.RefreshDirectory();
-// }
-//
-//// ------------------------------------------------------------------------------
-//// CFileManagerViewBase::CmdSetDrivePasswordL
-////
-//// ------------------------------------------------------------------------------
-////
-//void CFileManagerViewBase::CmdSetDrivePasswordL()
-// {
-// TBuf< KFmgrMaxMediaPassword > nullPwd;
-// TBuf< KFmgrMaxMediaPassword > pwd;
-// TInt ret( KErrNone );
-// if( FileManagerDlgUtils::ShowPasswordQueryL( pwd ) )
-// {
-// EmptyPwd( nullPwd );
-// ret = UpdatePasswordL( nullPwd, pwd );
-// if( ret == KErrNone )
-// {
-// FileManagerDlgUtils::ShowConfirmNoteL( R_QTN_PASSWORD_SET_TEXT );
-// RefreshDriveInfoL();
-// }
-// else
-// {
-// FileManagerDlgUtils::ShowErrorNoteL( R_QTN_CRITICAL_ERROR );
-// }
-// }
-// }
-//
-//// ------------------------------------------------------------------------------
-//// CFileManagerViewBase::CmdChangeDrivePasswordL
-////
-//// ------------------------------------------------------------------------------
-////
-//void CFileManagerViewBase::CmdChangeDrivePasswordL()
-// {
-// TBuf< KFmgrMaxMediaPassword > pwd;
-// TBuf< KFmgrMaxMediaPassword > oldPwd;
-// TBool isDone( EFalse );
-// TBool isCanceled( EFalse );
-// TInt err( KErrNone );
-//
-// // Ask for the old password until the correct one is given
-// while( !isDone )
-// {
-// EmptyPwd( oldPwd );
-// if( FileManagerDlgUtils::ShowSimplePasswordQueryL(
-// R_QTN_PASSWORD_OLD_TEXT, oldPwd ) )
-// {
-// err = UpdatePasswordL( oldPwd, oldPwd );
-// if( err == KErrNone )
-// {
-// isDone = ETrue;
-// }
-// else
-// {
-// FileManagerDlgUtils::ShowErrorNoteL(
-// R_QTN_PASSWORDS_WRONG_TEXT );
-// }
-// }
-// else
-// {
-// isDone = ETrue;
-// isCanceled = ETrue;
-// }
-// }
-//
-// // Then query for the new password
-// if( !isCanceled )
-// {
-// if( FileManagerDlgUtils::ShowPasswordQueryL( pwd ) )
-// {
-// err = UpdatePasswordL( oldPwd, pwd );
-// if( err == KErrNone )
-// {
-// FileManagerDlgUtils::ShowConfirmNoteL(
-// R_QTN_PASSWORD_CHANGED_TEXT );
-// }
-// else
-// {
-// FileManagerDlgUtils::ShowErrorNoteL(
-// R_QTN_CRITICAL_ERROR );
-// }
-// }
-// }
-// }
-//
-//// ------------------------------------------------------------------------------
-//// CFileManagerViewBase::CmdRemoveDrivePasswordL
-////
-//// ------------------------------------------------------------------------------
-////
-//void CFileManagerViewBase::CmdRemoveDrivePasswordL()
-// {
-// if( !UnlockRemovePasswordL( ETrue ) )
-// {
-// FileManagerDlgUtils::ShowConfirmNoteL( R_QTN_PASSWORD_REMOVED_TEXT );
-// RefreshDriveInfoL();
-// }
-// }
-//
-//// ------------------------------------------------------------------------------
-//// CFileManagerViewBase::CmdMemoryCardDetailsL
-////
-//// ------------------------------------------------------------------------------
-////
-//void CFileManagerViewBase::CmdMemoryCardDetailsL()
-// {
-// TFileManagerDriveInfo drvInfo;
-// iEngine.GetDriveInfoL( iEngine.CurrentDrive(), drvInfo );
-// FileManagerDlgUtils::ShowMemoryStoreInfoPopupL( drvInfo );
-// }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::UpdatePasswordL
-//
-// ------------------------------------------------------------------------------
-//
-TInt CFileManagerViewBase::UpdatePassword(
- TInt aDrive, const TDesC& aOldPwd, const TDesC& aPwd )
- {
- TMediaPassword mPwdNew;
- TMediaPassword mPwdOld;
-
- ConvertCharsToPwd( aOldPwd, mPwdOld );
- ConvertCharsToPwd( aPwd, mPwdNew );
-
- return iEngine.SetDrivePassword( aDrive, mPwdOld, mPwdNew );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::UnlockRemovePasswordL
-//
-// ------------------------------------------------------------------------------
-//
-TInt CFileManagerViewBase::UnlockRemovePasswordL(
- TInt aDrive, TBool aRemove )
- {
- TBuf< KFmgrMaxMediaPassword > oldPwd;
- TInt err( KErrNone );
- TMediaPassword pwd;
- TInt res( R_QTN_UNLOCK_PASSWORD_TEXT );
- TInt resWrong( R_QTN_UNLOCK_PWD_WRONG_TEXT );
- HBufC* text = NULL;
-
- if( aRemove )
- {
- // Confirm the action
- if( !FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- R_QTN_PASSWORD_REMOVE_TEXT ) )
- {
- return KErrCancel; // Skip the rest if not accepted
- }
- res = R_QTN_PASSWORD_OLD_TEXT;
- resWrong = R_QTN_PASSWORDS_WRONG_TEXT;
- }
- else
- {
- // Just unlock
-#ifdef RD_MULTIPLE_DRIVE
- text = iEngine.GetFormattedDriveNameLC(
- aDrive,
- R_QTN_MEMC_UNLOCK_PASSWORD_MULTIPLE_DEFAULTNAME,
- R_QTN_MEMC_UNLOCK_PASSWORD_MULTIPLE );
-#else // RD_MULTIPLE_DRIVE
- text = StringLoader::LoadLC( R_QTN_UNLOCK_PASSWORD_TEXT );
-#endif // RD_MULTIPLE_DRIVE
- }
-
- // Show until correct pwd is given or canceled
- TBool isDone( EFalse );
- while( !isDone )
- {
- // Empty first
- EmptyPwd( oldPwd );
- TBool pwdGiven( EFalse );
- if ( text )
- {
- pwdGiven = FileManagerDlgUtils::ShowSimplePasswordQueryL( *text, oldPwd );
- }
- else
- {
- pwdGiven = FileManagerDlgUtils::ShowSimplePasswordQueryL( res, oldPwd );
- }
-
- if( pwdGiven )
- {
- ConvertCharsToPwd( oldPwd, pwd );
- if( aRemove )
- {
- err = iEngine.RemoveDrivePassword( aDrive, pwd );
- }
- else
- {
- err = iEngine.UnlockDrive( aDrive, pwd );
- }
-
- if ( err == KErrNone )
- {
- isDone = ETrue;
- }
- else if ( err == KErrAccessDenied )
- {
- FileManagerDlgUtils::ShowErrorNoteL( resWrong );
- }
- else if ( err == KErrNotReady )
- {
- isDone = ETrue;
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_MEMC_NOT_AVAILABLE );
- }
- else
- {
- isDone = ETrue;
- FileManagerDlgUtils::ShowErrorNoteL( R_QTN_CRITICAL_ERROR );
- }
- }
- else
- {
- err = KErrCancel;
- isDone = ETrue;
- }
- }
-
- if ( text )
- {
- CleanupStack::PopAndDestroy( text );
- }
- return err;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::SetRemoteDriveConnectionStateL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::SetRemoteDriveConnectionStateL( TBool aState )
- {
- TInt drv( 0 );
-
- StoreIndex();
- if ( !iEngine.CurrentDirectory().Length() )
- {
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- CFileManagerItemProperties* prop = iEngine.GetItemInfoL( index );
- CleanupStack::PushL( prop );
- drv = TDriveUnit( prop->FullPath() );
- CleanupStack::PopAndDestroy( prop );
- }
- else
- {
- TFileManagerDriveInfo& drvInfo( DriveInfo() );
- drv = drvInfo.iDrive;
- }
- iEngine.SetRemoteDriveConnection( drv, aState );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::OpenRemoteDriveSettingsL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::OpenRemoteDriveSettingsL(
- const TDesC& aDriveName )
- {
- CFileManagerAppUi* appUi = static_cast< CFileManagerAppUi* >( AppUi() );
- appUi->ActivateRemoteDriveSettingsViewL( aDriveName );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::IsDisconnectedRemoteDrive
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::IsDisconnectedRemoteDrive(
- CFileManagerItemProperties& aProp )
- {
- TUint32 drvState( 0 );
- if ( iEngine.DriveState( drvState, aProp.FullPath() ) == KErrNone )
- {
- if ( ( drvState & TFileManagerDriveInfo::EDriveRemote ) &&
- !( drvState & TFileManagerDriveInfo::EDriveConnected ) )
- {
- return ETrue;
- }
- }
- return EFalse;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::RemoteDriveCommonFilteringL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::RemoteDriveCommonFilteringL( CEikMenuPane& aMenuPane )
- {
- TBool dimAll( EFalse );
- if ( !FeatureManager().IsRemoteStorageFwSupported() )
- {
- dimAll = ETrue;
- }
- else
- {
-// CEikListBox& listBox = iContainer->ListBox();
- if ( iContainer->ListBoxNumberOfItems() )
- {
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- CFileManagerItemProperties* prop = iEngine.GetItemInfoL( index );
-
- TUint32 drvState( 0 );
- TInt err( iEngine.DriveState( drvState, prop->FullPath() ) );
- if ( err == KErrNone &&
- ( drvState & TFileManagerDriveInfo::EDriveRemote ) )
- {
- if ( drvState & TFileManagerDriveInfo::EDriveConnected )
- {
- aMenuPane.SetItemDimmed( EFileManagerConnectRemoveDrive, ETrue );
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerDisconnectRemoveDrive, ETrue );
- }
- }
- else
- {
- dimAll = ETrue;
- }
- delete prop;
- }
- else
- {
- // List is empty
- TFileManagerDriveInfo& drvInfo( DriveInfo() );
-
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote )
- {
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected )
- {
- aMenuPane.SetItemDimmed( EFileManagerConnectRemoveDrive, ETrue );
- }
- else
- {
- aMenuPane.SetItemDimmed( EFileManagerDisconnectRemoveDrive, ETrue );
- }
- }
- else
- {
- dimAll = ETrue;
- }
- }
- }
-
- if ( dimAll )
- {
- aMenuPane.SetItemDimmed( EFileManagerConnectRemoveDrive, ETrue );
- aMenuPane.SetItemDimmed( EFileManagerDisconnectRemoveDrive, ETrue );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::LaunchProgressBarL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::LaunchProgressBarL(
- TInt aDialogId,
- TInt aTextId,
- TInt64 aFinalValue,
- TInt64 aInitialValue,
- TBool aPeriodic,
- TBool aImmediatelyVisible )
- {
- ClearProgressBarL(); // Clear previous
-
- if ( aFinalValue )
- {
- iProgressDialog = new (ELeave) CAknProgressDialog(
- ( reinterpret_cast< CEikDialog** >( &iProgressDialog ) ), aImmediatelyVisible );
- iProgressDialog->PrepareLC( aDialogId );
-
- if ( aPeriodic )
- {
- iPeriodic = CPeriodic::NewL( CActive::EPriorityStandard );
- iPeriodic->Start(
- KProgressBarUpdateInterval, KProgressBarUpdateInterval,
- TCallBack( UpdateProgressBar, this ) );
- }
- }
- else
- {
- iProgressDialog = new (ELeave) CAknWaitDialog(
- ( reinterpret_cast< CEikDialog** >( &iProgressDialog ) ), aImmediatelyVisible );
- iProgressDialog->PrepareLC( aDialogId );
- }
-
- if ( aTextId )
- {
- HBufC* text = StringLoader::LoadLC( aTextId );
- iProgressDialog->SetTextL( *text );
- CleanupStack::PopAndDestroy( text );
- }
-
- iProgressDialog->SetCallback(this);
- iProgressInfo = iProgressDialog->GetProgressInfoL();
- if ( iProgressInfo )
- {
- iProgressInfo->SetFinalValue( static_cast<TInt>( aFinalValue / KMinificationFactor ) );
- iProgressInfo->SetAndDraw( static_cast<TInt>( aInitialValue / KMinificationFactor ) );
- }
- iProgressDialog->RunLD();
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::RefreshProgressDelayedStart
-//
-// ------------------------------------------------------------------------------
-//
-TInt CFileManagerViewBase::RefreshProgressDelayedStart( TAny* aPtr )
- {
- CFileManagerViewBase* view = static_cast< CFileManagerViewBase* > ( aPtr );
- TRAP_IGNORE( view->RefreshProgressDelayedStartL() );
- return KErrNone;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::RefreshProgressDelayedStartL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::RefreshProgressDelayedStartL()
- {
- CFileManagerAppUi* app = static_cast< CFileManagerAppUi* >( AppUi() );
-
- delete iRefreshProgressDelayedStart;
- iRefreshProgressDelayedStart = NULL;
-
- if( iProgressDialogRefresh )
- {
- iProgressDialogRefresh->ProcessFinishedL();
- iProgressDialogRefresh = NULL;
- }
- iProgressDialogRefresh = new( ELeave ) CAknProgressDialog(
- reinterpret_cast< CEikDialog** >( &iProgressDialogRefresh ),
- EFalse );
- iProgressDialogRefresh->SetCallback( this );
-
- if ( Id() == CFileManagerAppUi::KFileManagerSearchResultsViewId )
- {
- iProgressDialogRefresh->ExecuteLD( R_FILEMANAGER_FIND_WAIT_DIALOG );
- }
- else
- {
- iProgressDialogRefresh->ExecuteLD( R_FILEMANAGER_WAIT_NOTE_OPEN );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::IsRefreshInProgress
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::IsRefreshInProgress()
- {
- if ( iRefreshProgressDelayedStart || iProgressDialogRefresh )
- {
- return ETrue;
- }
- return EFalse;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::ProcessCommandL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ProcessCommandL( TInt aCommand )
- {
- // Suppress commands during refresh
- if ( IsRefreshInProgress() )
- {
- switch ( aCommand )
- {
- case EAknSoftkeyOptions: // FALLTHROUGH
- case EAknSoftkeyBack: // FALLTHROUGH
- case EAknSoftkeyContextOptions: // FALLTHROUGH
- case EAknSoftkeyMark: // FALLTHROUGH
- case EAknSoftkeyUnmark: // FALLTHROUGH
- case EAknSoftkeySelect:
- {
- return;
- }
- default:
- {
- break;
- }
- }
- }
-
- // Handle commands directly
- switch ( aCommand )
- {
- case EAknSoftkeyContextOptions: // FALLTHROUGH
- case EAknSoftkeyMark:
- {
- HandleCommandL( aCommand );
- break;
- }
- default:
- {
- CAknView::ProcessCommandL( aCommand );
- break;
- }
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::AskPathL
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::AskPathL( TDes& aPath, TInt aTextId )
- {
- TBool ret( EFalse );
- TInt memType(
- AknCommonDialogsDynMem::EMemoryTypePhone |
- AknCommonDialogsDynMem::EMemoryTypeMMC );
-
- if ( FeatureManager().IsRemoteStorageFwSupported() )
- {
- memType |= AknCommonDialogsDynMem::EMemoryTypeRemote;
- }
-
- HBufC* title = StringLoader::LoadLC( aTextId );
- CFileManagerFileSelectionFilter* filter =
- new( ELeave ) CFileManagerFileSelectionFilter( iEngine );
- CleanupStack::PushL( filter );
-
- ret = AknCommonDialogsDynMem::RunFolderSelectDlgLD(
- memType,
- aPath,
- KNullDesC,
- R_FILEMANAGER_FIND_MEMORY_SELECTIONDIALOG,
- R_FILEMANAGER_FIND_FOLDER_SELECTIONDIALOG,
- *title,
- filter );
-
- CleanupStack::PopAndDestroy( filter );
- CleanupStack::PopAndDestroy( title );
- return ret;
- }
-
-#ifdef RD_FILE_MANAGER_BACKUP
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::StartSchBackupL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::StartSchBackupL()
- {
- FUNC_LOG
-
- CFileManagerAppUi* appUi = static_cast< CFileManagerAppUi* >( AppUi() );
- CFileManagerSchBackupHandler& handler( appUi->SchBackupHandlerL() );
-
- if ( FeatureManager().IsFeatureSupported(
- EFileManagerFeatureScheduledBackupDisabled ) )
- {
- // Scheduled backup is disabled, disable scheduler and cancel backup
- INFO_LOG( "CFileManagerViewBase::StartSchBackupL-Backup disabled" )
-
- handler.CancelBackupStarter();
- CFileManagerTaskScheduler& scheduler( appUi->TaskSchedulerL() );
- scheduler.EnableBackupScheduleL( EFalse );
- appUi->SchBackupFinishedL( KErrCancel );
- return;
- }
-
- // Start scheduled backup if no process in progress
- // Otherwise wait process to finish
- if ( iActiveProcess == ENoProcess )
- {
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- TTime schTime( SetCurrentYearMonthAndDay( settings.Time() ) );
-
- TTime manualBackupOrRestoreStarted = appUi->BackupOrRestoreStartTime();
- TTime manualBackupOrRestoreEnded = appUi->BackupOrRestoreEndTime();
-
- if ( manualBackupOrRestoreStarted.Int64() > 0 &&
- schTime >= manualBackupOrRestoreStarted &&
- schTime <= manualBackupOrRestoreEnded )
- {
- INFO_LOG( "CFileManagerViewBase::StartSchBackupL-Backup canceled due to manual op" )
-
- handler.CancelBackupStarter();
-
- appUi->ResetBackupOrRestoreEndTime();// Cancel required only once
- }
- else
- {
- INFO_LOG( "CFileManagerViewBase::StartSchBackupL-Start backup" )
-
- iSchBackupPending = EFalse;
- iActiveProcess = ESchBackupProcess;
- iEngine.SetObserver( this );
- handler.StartBackupWithConfirm();
- }
- }
- // Ignore scheduled backup if backup or restore is in progress
- else if ( iActiveProcess == ESchBackupProcess ||
- iActiveProcess == EBackupProcess ||
- iActiveProcess == ERestoreProcess )
- {
- INFO_LOG( "CFileManagerViewBase::StartSchBackupL-Backup canceled" )
-
- handler.CancelBackupStarter();
- }
- else
- {
- INFO_LOG( "CFileManagerViewBase::StartSchBackupL-Backup pending" )
-
- iSchBackupPending = ETrue;
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::SchBackupFinishedL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::SchBackupFinishedL()
- {
- FUNC_LOG
-
- if ( iActiveProcess == ESchBackupProcess )
- {
- iActiveProcess = ENoProcess;
- iSchBackupPending = EFalse;
- }
- }
-
-#endif // RD_FILE_MANAGER_BACKUP
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::SetCbaMskTextL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::SetCbaMskTextL( const TInt aTextId )
- {
- HBufC* text = StringLoader::LoadLC( aTextId );
- CEikButtonGroupContainer* cba = Cba();
- if ( cba->ButtonCount() == KFmgrMSK )
- {
- TInt cmdId( cba->ButtonGroup()->CommandId( KFmgrMSK ) );
- cba->SetCommandL( KFmgrMSK, cmdId, *text );
- cba->DrawDeferred();
- }
- CleanupStack::PopAndDestroy( text );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::UpdateCbaL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::UpdateCbaL()
- {
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::UpdateCommonCbaL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::UpdateCommonCbaL()
- {
- if ( !iContainer || IsRefreshInProgress() )
- {
- return;
- }
-
- CEikButtonGroupContainer* cba = Cba();
-
- if ( !iContainer->ListBoxNumberOfItems() )
- {
- cba->SetCommandSetL(
- R_FILEMANAGER_SOFTKEYS_OPTIONS_BACK__EMPTY );
- }
- else if ( iContainer->ListBoxSelectionIndexesCount() )
- {
- cba->SetCommandSetL(
- R_FILEMANAGER_SOFTKEYS_CONTEXT_OPTIONS_BACK__OPTIONS );
- }
- else
- {
- cba->SetCommandSetL(
- R_FILEMANAGER_SOFTKEYS_OPTIONS_BACK__OPEN );
- }
-
- // Restore right cancel softkey if it has been set by search field
- TBool restoreCancel( ETrue );
- if ( iContainer->IsSearchFieldVisible() &&
- cba->ButtonCount() >= CEikButtonGroupContainer::ERightSoftkeyPosition )
- {
- restoreCancel = ( cba->ButtonGroup()->CommandId(
- CEikButtonGroupContainer::ERightSoftkeyPosition ) == EAknSoftkeyCancel );
- }
- if ( !restoreCancel )
- {
- HBufC* cancelText = StringLoader::LoadLC( R_AVKON_SOFTKEY_CANCEL );
- cba->SetCommandL(
- CEikButtonGroupContainer::ERightSoftkeyPosition,
- EAknSoftkeyCancel,
- *cancelText );
- CleanupStack::PopAndDestroy( cancelText );
- }
-
- cba->DrawDeferred();
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::RenameDriveL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::RenameDriveL( TBool aForceDefaultName )
- {
- TFileManagerDriveInfo drvInfo;
- if ( DriveInfoAtCurrentPosL( drvInfo ) < 0 )
- {
- return; // No drive selected
- }
-
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveMassStorage )
- {
- return; // Name not allowed
- }
-
- HBufC* drvName = HBufC::NewLC( KMaxVolumeName );
- TPtr name( drvName->Des() );
- // 16-bit chars are required for non western volume names
- const TInt KMaxNonWesternVolumeName( KMaxVolumeName / 2 );
-
- // Setup query according to variant type, western or non western
- TInt resId( R_FILEMANAGER_DRIVE_NAME_QUERY );
- TInt maxLen( KMaxVolumeName );
- if ( !FeatureManager().IsWesternVariant() )
- {
- resId = R_FILEMANAGER_DRIVE_NAME_QUERY_NON_WESTERN;
- maxLen = KMaxNonWesternVolumeName;
- }
-
- if ( aForceDefaultName || !drvInfo.iName.Length() )
- {
- HBufC* defaultName = NULL;
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveUsbMemory )
- {
- defaultName = StringLoader::LoadLC(
- R_QTN_FMGR_USB_MEMORY_DEFAULT_NAME );
- }
- else
- {
- defaultName = StringLoader::LoadLC( R_QTN_MMC_DEFAULT_NAME );
- }
- if ( defaultName->Length() > maxLen )
- {
- name.Copy( defaultName->Des().Left( maxLen ) );
- }
- else
- {
- name.Copy( *defaultName );
- }
- CleanupStack::PopAndDestroy( defaultName );
- }
- else
- {
- if ( drvInfo.iName.Length() > maxLen )
- {
- name.Copy( drvInfo.iName.Left( maxLen ) );
- }
- else
- {
- name.Copy( drvInfo.iName );
- }
- }
-
- // Loop until canceled, accepted or an error occurs
- TBool isDone( EFalse );
- while( !isDone )
- {
- CAknTextQueryDialog* renameDlg =
- CAknTextQueryDialog::NewL( name, CAknQueryDialog::ENoTone );
- renameDlg->SetMaxLength( maxLen );
- TBool ret( EFalse );
- if ( renameDlg->ExecuteLD( resId ) )
- {
- ret = ETrue;
- }
- if( ret && name.Compare( drvInfo.iName ) )
- {
- TInt err( iEngine.RenameDrive( drvInfo.iDrive, name ) );
- if( err == KErrNone )
- {
- FileManagerDlgUtils::ShowConfirmNoteL(
- R_QTN_FMGR_CONFIRM_MEMORY_NAME_CHANGED );
- RefreshDriveInfoL();
- isDone = ETrue;
- }
- else if( err == KErrBadName )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_INVALID_DRIVE_NAME );
- }
- else
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_CRITICAL_ERROR );
- isDone = ETrue;
- }
- }
- else
- {
- // Canceled
- isDone = ETrue;
- }
- }
- CleanupStack::PopAndDestroy( drvName );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::CmdRefreshDirectoryL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdRefreshDirectoryL()
- {
- StoreIndex();
- iEngine.SetObserver( this );
- iEngine.ForcedRefreshDirectory();
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::ShowEjectQueryL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ShowEjectQueryL()
- {
- delete iEjectQueryDialog;
- iEjectQueryDialog = NULL;
-
- iEjectDone = EFalse;
- iEjectQueryDialog = CAknQueryDialog::NewL();
- HBufC* text = NULL;
- TInt index( iContainer->ListBoxCurrentItemIndex() );
- CFileManagerItemProperties* prop = iEngine.GetItemInfoLC( index );
-#ifdef RD_MULTIPLE_DRIVE
- text = iEngine.GetFormattedDriveNameLC(
- prop->DriveId(),
- R_QTN_MEMC_INFO_EJECT_MULTIPLE_DEFAULTNAME,
- R_QTN_MEMC_INFO_EJECT_MULTIPLE );
-#else // RD_MULTIPLE_DRIVE
- text = StringLoader::LoadLC( R_QTN_INFO_EJECT );
-#endif // RD_MULTIPLE_DRIVE
- TRAP_IGNORE( iEjectQueryDialog->ExecuteLD(
- R_FILEMANAGER_EJECT_CONFIRM_QUERY, *text ) );
- CleanupStack::PopAndDestroy( text );
- CleanupStack::PopAndDestroy( prop );
- iEjectQueryDialog = NULL;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::IsDriveAvailable
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::IsDriveAvailable( const TDesC& aPath ) const
- {
- TBool ret( EFalse );
- if ( aPath.Length() )
- {
- TInt drive = TDriveUnit( aPath );
- ret = IsDriveAvailable( drive );
- }
- return ret;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::IsDriveAvailable
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::IsDriveAvailable( const TInt aDrive ) const
- {
- TUint32 drvState( 0 );
- if ( iEngine.DriveState( drvState, aDrive ) != KErrNone )
- {
- return EFalse;
- }
- if ( drvState & ( TFileManagerDriveInfo::EDriveLocked |
- TFileManagerDriveInfo::EDriveCorrupted |
- TFileManagerDriveInfo::EDriveInUse ) )
- {
- return EFalse; // Drive is unavailable
- }
- if ( !( drvState & TFileManagerDriveInfo::EDriveRemote ) &&
- !( drvState & TFileManagerDriveInfo::EDrivePresent ) )
- {
- return EFalse; // Drive is not present
- }
- return ETrue;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerViewBase::CheckPhoneState
-//
-// ----------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::CheckPhoneState() const
- {
- // Check here all operations, which are supposed
- // to prevent manual backup or restore.
- TBool err( ETrue );
- TInt syncErr( 0 );
- TInt syncStat( 0 );
- TInt burErr( 0 );
- TInt burStat( 0 );
-
- // Check synchronization state
- syncErr = RProperty::Get(
- KPSUidDataSynchronizationInternalKeys,
- KDataSyncStatus, syncStat );
-
- // Check backup/restore (e.g. PC Suite initiated) state
- burErr = RProperty::Get(
- KUidSystemCategory,
- KUidBackupRestoreKey, burStat );
- const TBURPartType partType = static_cast< TBURPartType >
- ( burStat & KBURPartTypeMask );
-
- if ( (syncErr == KErrNone && syncStat > 0)
- || (burErr == KErrNone && partType != EBURUnset && partType != EBURNormal ) )
- {
- err = EFalse;
- }
-
- return err;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerViewBase::StopProgressDialogAndStoreValues
-//
-// ----------------------------------------------------------------------------
-//
-TBool CFileManagerViewBase::StopProgressDialogAndStoreValues()
- {
- TBool ret( EFalse );
- if ( iProgressDialog && iProgressInfo )
- {
- CEikProgressInfo::SInfo info( iProgressInfo->Info() );
- iProgressFinalValue = ( info.iFinalValue ) * KMinificationFactor;
- iProgressCurrentValue = ( iProgressInfo->CurrentValue() ) * KMinificationFactor;
- if ( !iProgressCurrentValue && iTotalTransferredBytes <= iProgressFinalValue )
- {
- iProgressCurrentValue = iTotalTransferredBytes;
- }
- TRAP_IGNORE( iProgressDialog->ProcessFinishedL() );
- iProgressDialog = NULL;
- iProgressInfo = NULL;
- ret = ETrue;
- }
-
- delete iRefreshProgressDelayedStart;
- iRefreshProgressDelayedStart = NULL;
- delete iPeriodic;
- iPeriodic = NULL;
-
- return ret;
- }
-
-
-// ----------------------------------------------------------------------------
-// CFileManagerViewBase::CheckPostponedDirectoryRefresh
-//
-// ----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CheckPostponedDirectoryRefresh()
- {
- if ( iDirectoryRefreshPostponed )
- {
- // Delete was canceled but directory was changed during query
- StoreIndex();
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
- iDirectoryRefreshPostponed = EFalse;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerViewBase::DenyDirectoryRefresh
-//
-// ----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::DenyDirectoryRefresh( TBool aDeny )
- {
- iDirectoryRefreshDenied = aDeny;
- if ( aDeny )
- {
- iDirectoryRefreshPostponed = EFalse; // Reset previous value
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerViewBase::SortMenuFilteringL
-//
-// ----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::SortMenuFilteringL( CEikMenuPane& aMenuPane )
- {
- TInt selected( EFileManagerSortByName );
- switch ( iEngine.SortMethod() )
- {
- case CFileManagerEngine::EByMatch:
- {
- if ( iEngine.State() == CFileManagerEngine::ESearch )
- {
- selected = EFileManagerSortByMatch;
- }
- break;
- }
- case CFileManagerEngine::EByName:
- {
- selected = EFileManagerSortByName;
- break;
- }
- case CFileManagerEngine::EByType:
- {
- selected = EFileManagerSortByType;
- break;
- }
- case CFileManagerEngine::EMostRecentFirst:
- {
- selected = EFileManagerSortMostRecentFirst;
- break;
- }
- case CFileManagerEngine::ELargestFirst:
- {
- selected = EFileManagerSortLargestFirst;
- break;
- }
- default:
- {
- break;
- }
- }
- TInt position = 0;
- if ( aMenuPane.MenuItemExists( selected, position ) )
- {
- aMenuPane.SetItemButtonState( selected, EEikMenuItemSymbolOn );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerViewBase::CmdSortL
-//
-// ----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::CmdSortL( TInt aCommand )
- {
- CFileManagerEngine::TSortMethod sortMethod( CFileManagerEngine::EByName );
- switch ( aCommand )
- {
- case EFileManagerSortByName:
- {
- sortMethod = CFileManagerEngine::EByName;
- break;
- }
- case EFileManagerSortByType:
- {
- sortMethod = CFileManagerEngine::EByType;
- break;
- }
- case EFileManagerSortMostRecentFirst:
- {
- sortMethod = CFileManagerEngine::EMostRecentFirst;
- break;
- }
- case EFileManagerSortLargestFirst:
- {
- sortMethod = CFileManagerEngine::ELargestFirst;
- break;
- }
- case EFileManagerSortByMatch:
- {
- sortMethod = CFileManagerEngine::EByMatch;
- break;
- }
- default:
- {
- return;
- }
- }
- if ( iEngine.SortMethod() != sortMethod )
- {
- iIndex = 0;
- if ( iContainer )
- {
- iContainer->SetCurrentItemIndexAfterSearch( 0 );
- }
- iEngine.SetCurrentIndex( 0 );
- iEngine.SetSortMethod( sortMethod );
- iEngine.RefreshSort();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::FeatureManager
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFeatureManager& CFileManagerViewBase::FeatureManager() const
- {
- return iEngine.FeatureManager();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::NotifyForegroundStatusChange
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::NotifyForegroundStatusChange( TBool /*aForeground*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::ShowDiskSpaceErrorL
-//
-// -----------------------------------------------------------------------------
-//
-#ifdef RD_MULTIPLE_DRIVE
-
-void CFileManagerViewBase::ShowDiskSpaceErrorL( const TDesC& aFolder )
- {
- TInt defaultNameResId( 0 );
- TInt namedResId( 0 );
- TInt drv( KErrNotFound );
- if ( aFolder.Length() )
- {
- TFileManagerDriveInfo drvInfo;
- drv = TDriveUnit( aFolder );
- iEngine.GetDriveInfoL( drv, drvInfo );
- if ( drvInfo.iState & TFileManagerDriveInfo::EDriveMassStorage )
- {
- defaultNameResId = R_QTN_MEMLO_NOT_ENOUGH_MASS_MEMORY;
- }
- else if ( drvInfo.iState & TFileManagerDriveInfo::EDriveUsbMemory )
- {
- defaultNameResId = R_QTN_MEMLO_NOT_ENOUGH_MEMORY_CARD_NAME;
- namedResId = R_QTN_MEMLO_NOT_ENOUGH_MEMORY_CARD_NAME;
- }
- else if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable )
- {
- defaultNameResId = R_QTN_MEMLO_NOT_ENOUGH_MEMORY_CARD_DEFAULTNAME;
- namedResId = R_QTN_MEMLO_NOT_ENOUGH_MEMORY_CARD_NAME;
- }
- else if ( !( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) )
- {
- defaultNameResId = R_QTN_MEMLO_NOT_ENOUGH_DEVICE_MEMORY;
- }
- }
- if ( defaultNameResId )
- {
- HBufC* text = iEngine.GetFormattedDriveNameLC(
- drv, defaultNameResId, namedResId );
- FileManagerDlgUtils::ShowConfirmQueryWithOkL(
- FileManagerDlgUtils::EErrorIcons, *text );
- CleanupStack::PopAndDestroy( text );
- }
- else
- {
- Error( KErrDiskFull ); // Show general error
- }
- }
-
-#else // RD_MULTIPLE_DRIVE
-
-void CFileManagerViewBase::ShowDiskSpaceErrorL( const TDesC& /*aFolder*/ )
- {
- Error( KErrDiskFull ); // Show general error
- }
-
-#endif // RD_MULTIPLE_DRIVE
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::DoLaunchProgressDialogAsync
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::DoLaunchProgressDialogAsync()
- {
- // Store the bytes value to be restored after new launch
- TInt64 prevBytes = iTotalTransferredBytes;
-
- // Ensure that current progress value is up to date
- if ( iTotalTransferredBytes > iProgressCurrentValue &&
- iTotalTransferredBytes <= iProgressFinalValue )
- {
- iProgressCurrentValue = iTotalTransferredBytes;
- }
-
- TRAP_IGNORE( LaunchProgressDialogL(
- iProgressFinalValue, iProgressCurrentValue, iActiveProcess, ETrue ) );
-
- iTotalTransferredBytes = prevBytes;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::LaunchProgressDialogAsync
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerViewBase::LaunchProgressDialogAsync( TAny* aPtr )
- {
- static_cast< CFileManagerViewBase* >( aPtr )->DoLaunchProgressDialogAsync();
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::FilesCountInSearchField()
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerViewBase::FilesCountInSearchField()
- {
- TInt count = 0;
-
- if( iContainer->IsSearchFieldVisible() )
- {
- TInt listBoxIndex =0;
- for(TInt i(0); i<iContainer->ListBoxNumberOfItems();i++ )
- {
- listBoxIndex = iContainer->SearchFieldToListBoxIndex( i );
- if( !iEngine.IsFolder( listBoxIndex ) )
- {
- count++;
- }
- }
- }
- return count;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::HandleServerAppExit
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::HandleServerAppExit( TInt /*aReason*/ )
- {
- iEngine.SetAppExitOb( NULL );
- iEngine.SetObserver( this );
- iEngine.RefreshDirectory();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::EmptyPwd
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::EmptyPwd( TDes& aPwd )
- {
- aPwd.FillZ( aPwd.MaxLength( ) );
- aPwd.Zero();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerViewBase::ConvertCharsToPwd
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerViewBase::ConvertCharsToPwd(
- const TDesC& aWord, TDes8& aConverted )
- {
- // Make sure the target password is empty ( can't use the function here )
- aConverted.FillZ( aConverted.MaxLength() );
- aConverted.Zero();
- TInt size( aWord.Size() );
- if ( size )
- {
- if ( size > aConverted.MaxLength() )
- {
- size = aConverted.MaxLength();
- }
- aConverted.Copy( (TUint8*)aWord.Ptr(), size );
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerViewBase::DriveInfoAtCurrentPosL
-//
-// ------------------------------------------------------------------------------
-//
-TInt CFileManagerViewBase::DriveInfoAtCurrentPosL(
- TFileManagerDriveInfo& aInfo )
- {
- TUid viewId( Id() );
- if ( viewId == CFileManagerAppUi::KFileManagerMemoryStoreViewId ||
- viewId == CFileManagerAppUi::KFileManagerFoldersViewId )
- {
- INFO_LOG1("CFileManagerViewBase::DriveInfoAtCurrentPosL viewId=%D", viewId.iUid)
- // Use cached info
- aInfo = DriveInfo();
- return aInfo.iDrive;
- }
-
- // Fetch info
- if ( !iContainer )
- {
- return KErrNotFound;
- }
- if ( !iContainer->ListBoxNumberOfItems() )
- {
- return KErrNotFound;
- }
- CFileManagerItemProperties* prop = iEngine.GetItemInfoLC(
- iContainer->ListBoxCurrentItemIndex() );
- TInt ret( KErrNotFound );
- TPtrC fullPath( prop->FullPath() );
- if ( fullPath.Length() )
- {
- ret = TDriveUnit( fullPath );
- iEngine.GetDriveInfoL( ret, aInfo );
- }
- CleanupStack::PopAndDestroy( prop );
- return ret;
- }
-
-// End of File
--- a/filemanager/App/src/Cfilemanagersearchresultsview.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: View for search results
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <CFileManagerEngine.h>
-#include <filemanager.rsg>
-#include <aknlists.h>
-#include <aknnavi.h>
-#include <akntitle.h>
-#include <csxhelp/fmgr.hlp.hrh>
-#include <FileManagerDebug.h>
-#include "Cfilemanagersearchresultsview.h"
-#include "CFileManagerAppUi.h"
-#include "CFileManagerFileListContainer.h"
-#include "CFileManagerAppUi.h"
-#include "CFileManagerDocument.h"
-#include "FileManager.hrh"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::CFileManagerSearchResultsView
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerSearchResultsView::CFileManagerSearchResultsView()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CFileManagerSearchResultsView::ConstructL()
- {
- CFileManagerViewBase::ConstructL( R_FILEMANAGER_FOLDERS_VIEW );
-
- CEikStatusPane* sp = StatusPane();
- iNaviPane = static_cast< CAknNavigationControlContainer* >
- ( sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerSearchResultsView* CFileManagerSearchResultsView::NewLC()
- {
- CFileManagerSearchResultsView* self =
- new( ELeave ) CFileManagerSearchResultsView;
-
- CleanupStack::PushL( self );
- self->ConstructL();
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::~CFileManagerSearchResultsView
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerSearchResultsView::~CFileManagerSearchResultsView()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::DirectoryChangedL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerSearchResultsView::DirectoryChangedL()
- {
- FUNC_LOG
-
- RefreshTitleL();
-
- if ( iContainer )
- {
- iContainer->RefreshListL( iIndex );
- UpdateCbaL();
- }
- }
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::Id
-//
-// -----------------------------------------------------------------------------
-//
-TUid CFileManagerSearchResultsView::Id() const
- {
- return CFileManagerAppUi::KFileManagerSearchResultsViewId;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::CreateContainerL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerContainerBase* CFileManagerSearchResultsView::CreateContainerL()
- {
- return CFileManagerFileListContainer::NewL(
- ClientRect(),
- iIndex,
- CFileManagerFileListContainer::EListFolder,
- R_QTN_FMGR_SEARCH_NOT_FOUND,
- KFMGR_HLP_SEARCH_RESULTS );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::DoActivateL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerSearchResultsView::DoActivateL( const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage )
- {
- FUNC_LOG
-
- CFileManagerViewBase::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
-
- iEngine.SetState( CFileManagerEngine::ESearch );
- iNaviPane->PushDefaultL( ETrue );
- iNaviDecorator = iNaviPane->Top();
- iEngine.SetObserver( this );
-
- if ( !aCustomMessage.Compare( KFileManagerSearchViewRefreshMsg ) )
- {
- // Start new search only if explicitly requested
- iIndex = 0;
- RefreshTitleL();
- iEngine.RefreshDirectory();
- }
- else
- {
- // Update list without new search
- DirectoryChangedL();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::DoDeactivate
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerSearchResultsView::DoDeactivate()
- {
- FUNC_LOG
-
- CFileManagerViewBase::DoDeactivate();
-
- iNaviPane->Pop( iNaviDecorator );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::HandleCommandL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerSearchResultsView::HandleCommandL( TInt aCommand )
- {
- switch( aCommand )
- {
- case EFileManagerOpen:
- {
- StoreIndex();
- CFileManagerViewBase::CmdOpenL();
- break;
- }
- case EAknSoftkeyBack:
- {
- CmdBackL();
- break;
- }
- default:
- {
- CFileManagerViewBase::HandleCommandL( aCommand );
- break;
- }
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerSearchResultsView::UpdateCbaL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerSearchResultsView::UpdateCbaL()
- {
- UpdateCommonCbaL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::CmdBackL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerSearchResultsView::CmdBackL()
- {
- if ( iActiveProcess != ENoProcess )
- {
- return; // Ignore to avoid container mess up
- }
- iIndex = 0;
- static_cast< CFileManagerAppUi* >( AppUi() )->CloseSearchResultsViewL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerSearchResultsView::RefreshTitleL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerSearchResultsView::RefreshTitleL()
- {
- static_cast< CFileManagerAppUi* >( AppUi() )->SetTitleL(
- iEngine.SearchString() );
- iNaviPane->DrawDeferred();
- }
-
-// End of File
--- a/filemanager/BWINS/FILEMANAGERENGINEU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-EXPORTS
- ??0TFileManagerDriveInfo@@QAE@XZ @ 1 NONAME ; TFileManagerDriveInfo::TFileManagerDriveInfo(void)
- ??1CFileManagerActiveDelete@@UAE@XZ @ 2 NONAME ; CFileManagerActiveDelete::~CFileManagerActiveDelete(void)
- ??1CFileManagerActiveExecute@@UAE@XZ @ 3 NONAME ; CFileManagerActiveExecute::~CFileManagerActiveExecute(void)
- ??1CFileManagerEngine@@UAE@XZ @ 4 NONAME ; CFileManagerEngine::~CFileManagerEngine(void)
- ??1CFileManagerIRReceiver@@UAE@XZ @ 5 NONAME ; CFileManagerIRReceiver::~CFileManagerIRReceiver(void)
- ??1CFileManagerItemProperties@@UAE@XZ @ 6 NONAME ; CFileManagerItemProperties::~CFileManagerItemProperties(void)
- ?AllowedDriveAttMatchMask@CFileManagerBackupSettings@@QBEKXZ @ 7 NONAME ; unsigned long CFileManagerBackupSettings::AllowedDriveAttMatchMask(void) const
- ?AnyEjectableDrivePresent@CFileManagerEngine@@QBEHXZ @ 8 NONAME ; int CFileManagerEngine::AnyEjectableDrivePresent(void) const
- ?BackstepL@CFileManagerEngine@@QAEXXZ @ 9 NONAME ; void CFileManagerEngine::BackstepL(void)
- ?BackupSettingsL@CFileManagerEngine@@QAEAAVCFileManagerBackupSettings@@XZ @ 10 NONAME ; class CFileManagerBackupSettings & CFileManagerEngine::BackupSettingsL(void)
- ?CancelExecution@CFileManagerActiveExecute@@QAEXXZ @ 11 NONAME ; void CFileManagerActiveExecute::CancelExecution(void)
- ?CancelProcess@CFileManagerEngine@@QAEXW4TFileManagerProcess@MFileManagerProcessObserver@@@Z @ 12 NONAME ; void CFileManagerEngine::CancelProcess(enum MFileManagerProcessObserver::TFileManagerProcess)
- ?CancelRefresh@CFileManagerEngine@@QAEHXZ @ 13 NONAME ; int CFileManagerEngine::CancelRefresh(void)
- ?ContainsAnyFilesOrFolders@CFileManagerItemProperties@@QAEHXZ @ 14 NONAME ; int CFileManagerItemProperties::ContainsAnyFilesOrFolders(void)
- ?Content@CFileManagerBackupSettings@@QBEKXZ @ 15 NONAME ; unsigned long CFileManagerBackupSettings::Content(void) const
- ?CreateActiveDeleteL@CFileManagerEngine@@QAEPAVCFileManagerActiveDelete@@AAV?$CArrayFixFlat@H@@@Z @ 16 NONAME ; class CFileManagerActiveDelete * CFileManagerEngine::CreateActiveDeleteL(class CArrayFixFlat<int> &)
- ?CurrentDirectory@CFileManagerEngine@@QBE?AVTPtrC16@@XZ @ 17 NONAME ; class TPtrC16 CFileManagerEngine::CurrentDirectory(void) const
- ?CurrentDrive@CFileManagerEngine@@QAEHXZ @ 18 NONAME ; int CFileManagerEngine::CurrentDrive(void)
- ?CurrentDriveName@CFileManagerEngine@@QAE?AVTPtrC16@@XZ @ 19 NONAME ; class TPtrC16 CFileManagerEngine::CurrentDriveName(void)
- ?CurrentIndex@CFileManagerEngine@@QAEHXZ @ 20 NONAME ; int CFileManagerEngine::CurrentIndex(void)
- ?Day@CFileManagerBackupSettings@@QBEHXZ @ 21 NONAME ; int CFileManagerBackupSettings::Day(void) const
- ?DeleteRemoteDrive@CFileManagerEngine@@QAEHH@Z @ 22 NONAME ; int CFileManagerEngine::DeleteRemoteDrive(int)
- ?DeletedDrmItems@CFileManagerActiveDelete@@QAEHAAH@Z @ 23 NONAME ; int CFileManagerActiveDelete::DeletedDrmItems(int &)
- ?DriveId@CFileManagerItemProperties@@QBEHXZ @ 24 NONAME ; int CFileManagerItemProperties::DriveId(void) const
- ?DriveName@CFileManagerEngine@@QAE?AVTPtrC16@@H@Z @ 25 NONAME ; class TPtrC16 CFileManagerEngine::DriveName(int)
- ?DriveName@CFileManagerItemProperties@@QBE?AVTPtrC16@@XZ @ 26 NONAME ; class TPtrC16 CFileManagerItemProperties::DriveName(void) const
- ?DriveRootDirectory@CFileManagerEngine@@QBE?AVTPtrC16@@H@Z @ 27 NONAME ; class TPtrC16 CFileManagerEngine::DriveRootDirectory(int) const
- ?DriveState@CFileManagerEngine@@QBEHAAKABVTDesC16@@@Z @ 28 NONAME ; int CFileManagerEngine::DriveState(unsigned long &, class TDesC16 const &) const
- ?DriveState@CFileManagerEngine@@QBEHAAKH@Z @ 29 NONAME ; int CFileManagerEngine::DriveState(unsigned long &, int) const
- ?EnoughSpaceL@CFileManagerEngine@@QBEHABVTDesC16@@_JW4TFileManagerProcess@MFileManagerProcessObserver@@@Z @ 30 NONAME ; int CFileManagerEngine::EnoughSpaceL(class TDesC16 const &, long long, enum MFileManagerProcessObserver::TFileManagerProcess) const
- ?EnsureFinalBackslash@CFileManagerUtils@@SAXAAVTDes16@@@Z @ 31 NONAME ; void CFileManagerUtils::EnsureFinalBackslash(class TDes16 &)
- ?ExecuteL@CFileManagerActiveExecute@@QAEXW4TFileManagerSwitch@1@@Z @ 32 NONAME ; void CFileManagerActiveExecute::ExecuteL(enum CFileManagerActiveExecute::TFileManagerSwitch)
- ?Ext@CFileManagerItemProperties@@QBE?AVTPtrC16@@XZ @ 33 NONAME ; class TPtrC16 CFileManagerItemProperties::Ext(void) const
- ?FeatureManager@CFileManagerEngine@@QBEAAVCFileManagerFeatureManager@@XZ @ 34 NONAME ; class CFileManagerFeatureManager & CFileManagerEngine::FeatureManager(void) const
- ?FileList@CFileManagerEngine@@QBEPAVMDesC16Array@@XZ @ 35 NONAME ; class MDesC16Array * CFileManagerEngine::FileList(void) const
- ?FileSystemEvent@CFileManagerEngine@@QAEXH@Z @ 36 NONAME ; void CFileManagerEngine::FileSystemEvent(int)
- ?FileTypeL@CFileManagerEngine@@QBEKABVTDesC16@@@Z @ 37 NONAME ; unsigned long CFileManagerEngine::FileTypeL(class TDesC16 const &) const
- ?FileTypeL@CFileManagerEngine@@QBEKH@Z @ 38 NONAME ; unsigned long CFileManagerEngine::FileTypeL(int) const
- ?FilesContainedL@CFileManagerItemProperties@@QAEHXZ @ 39 NONAME ; int CFileManagerItemProperties::FilesContainedL(void)
- ?FilesInFolderL@CFileManagerEngine@@QAEHXZ @ 40 NONAME ; int CFileManagerEngine::FilesInFolderL(void)
- ?FolderLevel@CFileManagerEngine@@QAEHXZ @ 41 NONAME ; int CFileManagerEngine::FolderLevel(void)
- ?FoldersContainedL@CFileManagerItemProperties@@QAEHXZ @ 42 NONAME ; int CFileManagerItemProperties::FoldersContainedL(void)
- ?ForcedRefreshDirectory@CFileManagerEngine@@QAEXXZ @ 43 NONAME ; void CFileManagerEngine::ForcedRefreshDirectory(void)
- ?FullPath@CFileManagerItemProperties@@QBE?AVTPtrC16@@XZ @ 44 NONAME ; class TPtrC16 CFileManagerItemProperties::FullPath(void) const
- ?GetDriveInfoL@CFileManagerEngine@@QAEXAAVTFileManagerDriveInfo@@@Z @ 45 NONAME ; void CFileManagerEngine::GetDriveInfoL(class TFileManagerDriveInfo &)
- ?GetDriveInfoL@CFileManagerEngine@@QBEXHAAVTFileManagerDriveInfo@@@Z @ 46 NONAME ; void CFileManagerEngine::GetDriveInfoL(int, class TFileManagerDriveInfo &) const
- ?GetError@CFileManagerActiveDelete@@QAEHAAVTDes16@@@Z @ 47 NONAME ; int CFileManagerActiveDelete::GetError(class TDes16 &)
- ?GetFileSizesL@CFileManagerEngine@@QAE_JABV?$CArrayFixFlat@H@@@Z @ 48 NONAME ; long long CFileManagerEngine::GetFileSizesL(class CArrayFixFlat<int> const &)
- ?GetFormattedDriveNameLC@CFileManagerEngine@@QBEPAVHBufC16@@HHH@Z @ 49 NONAME ; class HBufC16 * CFileManagerEngine::GetFormattedDriveNameLC(int, int, int) const
- ?GetItemInfoL@CFileManagerEngine@@QAEPAVCFileManagerItemProperties@@H@Z @ 50 NONAME ; class CFileManagerItemProperties * CFileManagerEngine::GetItemInfoL(int)
- ?GetItemInfoLC@CFileManagerEngine@@QAEPAVCFileManagerItemProperties@@H@Z @ 51 NONAME ; class CFileManagerItemProperties * CFileManagerEngine::GetItemInfoLC(int)
- ?GetMMCInfoL@CFileManagerEngine@@QBE?AVTFileManagerDriveInfo@@XZ @ 52 NONAME ; class TFileManagerDriveInfo CFileManagerEngine::GetMMCInfoL(void) const
- ?GetRestoreInfoArrayL@CFileManagerEngine@@QBEXAAV?$RArray@VTInfo@CFileManagerRestoreSettings@@@@H@Z @ 53 NONAME ; void CFileManagerEngine::GetRestoreInfoArrayL(class RArray<class CFileManagerRestoreSettings::TInfo> &, int) const
- ?HasFinalBackslash@CFileManagerUtils@@SAHABVTDesC16@@@Z @ 54 NONAME ; int CFileManagerUtils::HasFinalBackslash(class TDesC16 const &)
- ?IconIdL@CFileManagerEngine@@QBEHH@Z @ 55 NONAME ; int CFileManagerEngine::IconIdL(int) const
- ?IllegalChars@CFileManagerEngine@@QBEHABVTDesC16@@@Z @ 56 NONAME ; int CFileManagerEngine::IllegalChars(class TDesC16 const &) const
- ?IndexToFullPathL@CFileManagerEngine@@QBEPAVHBufC16@@H@Z @ 57 NONAME ; class HBufC16 * CFileManagerEngine::IndexToFullPathL(int) const
- ?IndexToFullPathLC@CFileManagerEngine@@QBEPAVHBufC16@@H@Z @ 58 NONAME ; class HBufC16 * CFileManagerEngine::IndexToFullPathLC(int) const
- ?IsDistributableFile@CFileManagerEngine@@QBEHABVTDesC16@@AAH@Z @ 59 NONAME ; int CFileManagerEngine::IsDistributableFile(class TDesC16 const &, int &) const
- ?IsDrive@CFileManagerItemProperties@@QBEHXZ @ 60 NONAME ; int CFileManagerItemProperties::IsDrive(void) const
- ?IsDrmFullSupported@CFileManagerFeatureManager@@QBEHXZ @ 61 NONAME ; int CFileManagerFeatureManager::IsDrmFullSupported(void) const
- ?IsFeatureSupported@CFileManagerFeatureManager@@QBEHH@Z @ 62 NONAME ; int CFileManagerFeatureManager::IsFeatureSupported(int) const
- ?IsFolder@CFileManagerEngine@@QBEHH@Z @ 63 NONAME ; int CFileManagerEngine::IsFolder(int) const
- ?IsFromInternalToRemovableDrive@CFileManagerUtils@@SAHAAVRFs@@ABVTDesC16@@1@Z @ 64 NONAME ; int CFileManagerUtils::IsFromInternalToRemovableDrive(class RFs &, class TDesC16 const &, class TDesC16 const &)
- ?IsHelpSupported@CFileManagerFeatureManager@@QBEHXZ @ 65 NONAME ; int CFileManagerFeatureManager::IsHelpSupported(void) const
- ?IsIrdaSupported@CFileManagerFeatureManager@@QBEHXZ @ 66 NONAME ; int CFileManagerFeatureManager::IsIrdaSupported(void) const
- ?IsMmcPassWdSupported@CFileManagerFeatureManager@@QBEHXZ @ 67 NONAME ; int CFileManagerFeatureManager::IsMmcPassWdSupported(void) const
- ?IsMmcSwEjectSupported@CFileManagerFeatureManager@@QBEHXZ @ 68 NONAME ; int CFileManagerFeatureManager::IsMmcSwEjectSupported(void) const
- ?IsNameFoundL@CFileManagerEngine@@QAEHABVTDesC16@@@Z @ 69 NONAME ; int CFileManagerEngine::IsNameFoundL(class TDesC16 const &)
- ?IsRemoteDrive@CFileManagerItemProperties@@QBEHXZ @ 70 NONAME ; int CFileManagerItemProperties::IsRemoteDrive(void) const
- ?IsRemoteDrive@CFileManagerUtils@@SAHAAVRFs@@ABVTDesC16@@@Z @ 71 NONAME ; int CFileManagerUtils::IsRemoteDrive(class RFs &, class TDesC16 const &)
- ?IsRemoteStorageFwSupported@CFileManagerFeatureManager@@QBEHXZ @ 72 NONAME ; int CFileManagerFeatureManager::IsRemoteStorageFwSupported(void) const
- ?IsSystemFolder@CFileManagerEngine@@QBEHABVTDesC16@@@Z @ 73 NONAME ; int CFileManagerEngine::IsSystemFolder(class TDesC16 const &) const
- ?IsValidName@CFileManagerEngine@@QBEHABVTDesC16@@0H@Z @ 74 NONAME ; int CFileManagerEngine::IsValidName(class TDesC16 const &, class TDesC16 const &, int) const
- ?IsWesternVariant@CFileManagerFeatureManager@@QBEHXZ @ 75 NONAME ; int CFileManagerFeatureManager::IsWesternVariant(void) const
- ?LocalizedName@CFileManagerEngine@@QBE?AVTPtrC16@@ABVTDesC16@@@Z @ 76 NONAME ; class TPtrC16 CFileManagerEngine::LocalizedName(class TDesC16 const &) const
- ?LocalizedName@CFileManagerItemProperties@@QBE?AVTPtrC16@@XZ @ 77 NONAME ; class TPtrC16 CFileManagerItemProperties::LocalizedName(void) const
- ?LocalizedNameOfCurrentDirectory@CFileManagerEngine@@QBE?AVTPtrC16@@XZ @ 78 NONAME ; class TPtrC16 CFileManagerEngine::LocalizedNameOfCurrentDirectory(void) const
- ?Memory@CFileManagerEngine@@QBE?AW4TFileManagerMemory@@XZ @ 79 NONAME ; enum TFileManagerMemory CFileManagerEngine::Memory(void) const
- ?MimeTypeL@CFileManagerItemProperties@@QAE?AVTPtrC16@@XZ @ 80 NONAME ; class TPtrC16 CFileManagerItemProperties::MimeTypeL(void)
- ?ModifiedDate@CFileManagerItemProperties@@QBE?AVTTime@@XZ @ 81 NONAME ; class TTime CFileManagerItemProperties::ModifiedDate(void) const
- ?ModifiedLocalDate@CFileManagerItemProperties@@QBEHAAVTTime@@@Z @ 82 NONAME ; int CFileManagerItemProperties::ModifiedLocalDate(class TTime &) const
- ?Name@CFileManagerItemProperties@@QBE?AVTPtrC16@@XZ @ 83 NONAME ; class TPtrC16 CFileManagerItemProperties::Name(void) const
- ?NameAndExt@CFileManagerItemProperties@@QBE?AVTPtrC16@@XZ @ 84 NONAME ; class TPtrC16 CFileManagerItemProperties::NameAndExt(void) const
- ?NavigationLevel@CFileManagerEngine@@QBEHXZ @ 85 NONAME ; int CFileManagerEngine::NavigationLevel(void) const
- ?NewFolderL@CFileManagerEngine@@QAEXABVTDesC16@@@Z @ 86 NONAME ; void CFileManagerEngine::NewFolderL(class TDesC16 const &)
- ?NewL@CFileManagerActiveExecute@@SAPAV1@AAVCFileManagerEngine@@W4TFileManagerProcess@MFileManagerProcessObserver@@AAV4@AAV?$CArrayFixFlat@H@@ABVTDesC16@@@Z @ 87 NONAME ; class CFileManagerActiveExecute * CFileManagerActiveExecute::NewL(class CFileManagerEngine &, enum MFileManagerProcessObserver::TFileManagerProcess, class MFileManagerProcessObserver &, class CArrayFixFlat<int> &, class TDesC16 const &)
- ?NewL@CFileManagerEngine@@SAPAV1@AAVRFs@@@Z @ 88 NONAME ; class CFileManagerEngine * CFileManagerEngine::NewL(class RFs &)
- ?NewL@CFileManagerIRReceiver@@SAPAV1@AAVMFileManagerProcessObserver@@ABVTDesC16@@AAVCFileManagerEngine@@@Z @ 89 NONAME ; class CFileManagerIRReceiver * CFileManagerIRReceiver::NewL(class MFileManagerProcessObserver &, class TDesC16 const &, class CFileManagerEngine &)
- ?OpenFilesL@CFileManagerItemProperties@@QAEHXZ @ 90 NONAME ; int CFileManagerItemProperties::OpenFilesL(void)
- ?OpenL@CFileManagerEngine@@QAEXH@Z @ 91 NONAME ; void CFileManagerEngine::OpenL(int)
- ?ReceiveFileL@CFileManagerIRReceiver@@QAEXXZ @ 92 NONAME ; void CFileManagerIRReceiver::ReceiveFileL(void)
- ?RefreshDirectory@CFileManagerEngine@@QAEXXZ @ 93 NONAME ; void CFileManagerEngine::RefreshDirectory(void)
- ?RefreshL@CFileManagerBackupSettings@@QAEXXZ @ 94 NONAME ; void CFileManagerBackupSettings::RefreshL(void)
- ?RefreshL@CFileManagerRestoreSettings@@QAEXXZ @ 95 NONAME ; void CFileManagerRestoreSettings::RefreshL(void)
- ?RefreshSort@CFileManagerEngine@@QAEXXZ @ 96 NONAME ; void CFileManagerEngine::RefreshSort(void)
- ?RemoveDrivePassword@CFileManagerEngine@@QAEHHABV?$TBuf8@$0BA@@@@Z @ 97 NONAME ; int CFileManagerEngine::RemoveDrivePassword(int, class TBuf8<16> const &)
- ?RenameDrive@CFileManagerEngine@@QAEHHABVTDesC16@@@Z @ 98 NONAME ; int CFileManagerEngine::RenameDrive(int, class TDesC16 const &)
- ?RenameL@CFileManagerEngine@@QAEXHABVTDesC16@@@Z @ 99 NONAME ; void CFileManagerEngine::RenameL(int, class TDesC16 const &)
- ?Reset@TFileManagerDriveInfo@@QAEXXZ @ 100 NONAME ; void TFileManagerDriveInfo::Reset(void)
- ?RestoreSettingsL@CFileManagerEngine@@QAEAAVCFileManagerRestoreSettings@@XZ @ 101 NONAME ; class CFileManagerRestoreSettings & CFileManagerEngine::RestoreSettingsL(void)
- ?SaveL@CFileManagerBackupSettings@@QAEXXZ @ 102 NONAME ; void CFileManagerBackupSettings::SaveL(void)
- ?Scheduling@CFileManagerBackupSettings@@QBEHXZ @ 103 NONAME ; int CFileManagerBackupSettings::Scheduling(void) const
- ?SearchString@CFileManagerEngine@@QBE?AVTPtrC16@@XZ @ 104 NONAME ; class TPtrC16 CFileManagerEngine::SearchString(void) const
- ?SetContent@CFileManagerBackupSettings@@QAEXK@Z @ 105 NONAME ; void CFileManagerBackupSettings::SetContent(unsigned long)
- ?SetCurrentIndex@CFileManagerEngine@@QAEXH@Z @ 106 NONAME ; void CFileManagerEngine::SetCurrentIndex(int)
- ?SetDay@CFileManagerBackupSettings@@QAEXH@Z @ 107 NONAME ; void CFileManagerBackupSettings::SetDay(int)
- ?SetDirectoryWithBackstepsL@CFileManagerEngine@@QAEXABVTDesC16@@@Z @ 108 NONAME ; void CFileManagerEngine::SetDirectoryWithBackstepsL(class TDesC16 const &)
- ?SetDrivePassword@CFileManagerEngine@@QAEHHABV?$TBuf8@$0BA@@@0@Z @ 109 NONAME ; int CFileManagerEngine::SetDrivePassword(int, class TBuf8<16> const &, class TBuf8<16> const &)
- ?SetMemoryL@CFileManagerEngine@@QAEHW4TFileManagerMemory@@@Z @ 110 NONAME ; int CFileManagerEngine::SetMemoryL(enum TFileManagerMemory)
- ?SetObserver@CFileManagerEngine@@QAEXPAVMFileManagerProcessObserver@@@Z @ 111 NONAME ; void CFileManagerEngine::SetObserver(class MFileManagerProcessObserver *)
- ?SetRemoteDriveConnection@CFileManagerEngine@@QAEHHH@Z @ 112 NONAME ; int CFileManagerEngine::SetRemoteDriveConnection(int, int)
- ?SetScheduling@CFileManagerBackupSettings@@QAEXH@Z @ 113 NONAME ; void CFileManagerBackupSettings::SetScheduling(int)
- ?SetSearchFolderL@CFileManagerEngine@@QAEXABVTDesC16@@@Z @ 114 NONAME ; void CFileManagerEngine::SetSearchFolderL(class TDesC16 const &)
- ?SetSearchStringL@CFileManagerEngine@@QAEXABVTDesC16@@@Z @ 115 NONAME ; void CFileManagerEngine::SetSearchStringL(class TDesC16 const &)
- ?SetSelection@CFileManagerRestoreSettings@@QAEXAB_K@Z @ 116 NONAME ; void CFileManagerRestoreSettings::SetSelection(unsigned long long const &)
- ?SetSortMethod@CFileManagerEngine@@QAEXW4TSortMethod@1@@Z @ 117 NONAME ; void CFileManagerEngine::SetSortMethod(enum CFileManagerEngine::TSortMethod)
- ?SetState@CFileManagerEngine@@QAEXW4TState@1@@Z @ 118 NONAME ; void CFileManagerEngine::SetState(enum CFileManagerEngine::TState)
- ?SetTargetDrive@CFileManagerBackupSettings@@QAEXH@Z @ 119 NONAME ; void CFileManagerBackupSettings::SetTargetDrive(int)
- ?SetTime@CFileManagerBackupSettings@@QAEXABVTTime@@@Z @ 120 NONAME ; void CFileManagerBackupSettings::SetTime(class TTime const &)
- ?SettingAt@CFileManagerBackupSettings@@QAEHH@Z @ 121 NONAME ; int CFileManagerBackupSettings::SettingAt(int)
- ?SizeL@CFileManagerItemProperties@@QAE_JXZ @ 122 NONAME ; long long CFileManagerItemProperties::SizeL(void)
- ?SortMethod@CFileManagerEngine@@QBE?AW4TSortMethod@1@XZ @ 123 NONAME ; enum CFileManagerEngine::TSortMethod CFileManagerEngine::SortMethod(void) const
- ?StartBackupProcessL@CFileManagerEngine@@QAEXW4TFileManagerProcess@MFileManagerProcessObserver@@@Z @ 124 NONAME ; void CFileManagerEngine::StartBackupProcessL(enum MFileManagerProcessObserver::TFileManagerProcess)
- ?StartEjectProcessL@CFileManagerEngine@@QAEXH@Z @ 125 NONAME ; void CFileManagerEngine::StartEjectProcessL(int)
- ?StartFormatProcessL@CFileManagerEngine@@QAEXH@Z @ 126 NONAME ; void CFileManagerEngine::StartFormatProcessL(int)
- ?State@CFileManagerEngine@@QBE?AW4TState@1@XZ @ 127 NONAME ; enum CFileManagerEngine::TState CFileManagerEngine::State(void) const
- ?StopReceiving@CFileManagerIRReceiver@@QAEXXZ @ 128 NONAME ; void CFileManagerIRReceiver::StopReceiving(void)
- ?StripFinalBackslash@CFileManagerUtils@@SA?AVTPtrC16@@ABVTDesC16@@@Z @ 129 NONAME ; class TPtrC16 CFileManagerUtils::StripFinalBackslash(class TDesC16 const &)
- ?TargetDrive@CFileManagerBackupSettings@@QBEHXZ @ 130 NONAME ; int CFileManagerBackupSettings::TargetDrive(void) const
- ?Time@CFileManagerBackupSettings@@QBEABVTTime@@XZ @ 131 NONAME ; class TTime const & CFileManagerBackupSettings::Time(void) const
- ?TypeL@CFileManagerItemProperties@@QAEKXZ @ 132 NONAME ; unsigned long CFileManagerItemProperties::TypeL(void)
- ?UnlockDrive@CFileManagerEngine@@QAEHHABV?$TBuf8@$0BA@@@@Z @ 133 NONAME ; int CFileManagerEngine::UnlockDrive(int, class TBuf8<16> const &)
- ?IsEmbedded@CFileManagerFeatureManager@@QBEHXZ @ 134 NONAME ; int CFileManagerFeatureManager::IsEmbedded(void) const
- ?ToFolder@CFileManagerActiveExecute@@QAE?AVTPtrC16@@XZ @ 135 NONAME ; class TPtrC16 CFileManagerActiveExecute::ToFolder(void)
- ?SetCurrentItemName@CFileManagerEngine@@QAEXABVTDesC16@@@Z @ 136 NONAME ; void CFileManagerEngine::SetCurrentItemName(class TDesC16 const &)
- ?SetAppExitOb@CFileManagerEngine@@QAEXPAVMAknServerAppExitObserver@@@Z @ 137 NONAME ; void CFileManagerEngine::SetAppExitOb(class MAknServerAppExitObserver *)
- ?DeleteBackupsL@CFileManagerEngine@@QAEXXZ @ 138 NONAME ; void CFileManagerEngine::DeleteBackupsL(void)
- ?IsDriverMounted@CFileManagerEngine@@QAEHH@Z @ 139 NONAME ; int CFileManagerEngine::IsDriverMounted(int)
-
--- a/filemanager/BWINS/FILEMANAGERVIEWU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-EXPORTS
- ??1CFileManagerFolderNavigationPane@@UAE@XZ @ 1 NONAME ; CFileManagerFolderNavigationPane::~CFileManagerFolderNavigationPane(void)
- ??1CFileManagerGlobalDlg@@UAE@XZ @ 2 NONAME ; CFileManagerGlobalDlg::~CFileManagerGlobalDlg(void)
- ??1CFileManagerIconArray@@UAE@XZ @ 3 NONAME ; CFileManagerIconArray::~CFileManagerIconArray(void)
- ?CancelDialog@CFileManagerGlobalDlg@@QAEXXZ @ 4 NONAME ; void CFileManagerGlobalDlg::CancelDialog(void)
- ?ChangeRootL@CFileManagerFolderNavigationPane@@QAEXH@Z @ 5 NONAME ; void CFileManagerFolderNavigationPane::ChangeRootL(int)
- ?FindIcon@CFileManagerIconArray@@QAEHH@Z @ 6 NONAME ; int CFileManagerIconArray::FindIcon(int)
- ?FolderDepth@CFileManagerFolderNavigationPane@@QBEHXZ @ 7 NONAME ; int CFileManagerFolderNavigationPane::FolderDepth(void) const
- ?HandleResourceChangeL@CFileManagerFolderNavigationPane@@QAEXH@Z @ 8 NONAME ; void CFileManagerFolderNavigationPane::HandleResourceChangeL(int)
- ?NewL@CFileManagerFolderNavigationPane@@SAPAV1@HHAAVTResourceReader@@@Z @ 9 NONAME ; class CFileManagerFolderNavigationPane * CFileManagerFolderNavigationPane::NewL(int, int, class TResourceReader &)
- ?NewL@CFileManagerGlobalDlg@@SAPAV1@XZ @ 10 NONAME ; class CFileManagerGlobalDlg * CFileManagerGlobalDlg::NewL(void)
- ?NewL@CFileManagerIconArray@@SAPAV1@XZ @ 11 NONAME ; class CFileManagerIconArray * CFileManagerIconArray::NewL(void)
- ?ProcessFinished@CFileManagerGlobalDlg@@QAEXXZ @ 12 NONAME ; void CFileManagerGlobalDlg::ProcessFinished(void)
- ?SetFolderDepth@CFileManagerFolderNavigationPane@@QAEXH@Z @ 13 NONAME ; void CFileManagerFolderNavigationPane::SetFolderDepth(int)
- ?SetObserver@CFileManagerFolderNavigationPane@@QAEXPAVMFileManagerFolderNaviObserver@@@Z @ 14 NONAME ; void CFileManagerFolderNavigationPane::SetObserver(class MFileManagerFolderNaviObserver *)
- ?SetObserver@CFileManagerGlobalDlg@@QAEXPAVMFileManagerGlobalDlgObserver@@@Z @ 15 NONAME ; void CFileManagerGlobalDlg::SetObserver(class MFileManagerGlobalDlgObserver *)
- ?ShowConfirmNoteL@FileManagerDlgUtils@@SAXH@Z @ 16 NONAME ; void FileManagerDlgUtils::ShowConfirmNoteL(int)
- ?ShowConfirmQueryWithOkCancelL@FileManagerDlgUtils@@SAHABVTDesC16@@@Z @ 17 NONAME ; int FileManagerDlgUtils::ShowConfirmQueryWithOkCancelL(class TDesC16 const &)
- ?ShowConfirmQueryWithOkCancelL@FileManagerDlgUtils@@SAHHABVTDesC16@@@Z @ 18 NONAME ; int FileManagerDlgUtils::ShowConfirmQueryWithOkCancelL(int, class TDesC16 const &)
- ?ShowConfirmQueryWithOkL@FileManagerDlgUtils@@SAXW4TIcons@1@ABVTDesC16@@@Z @ 19 NONAME ; void FileManagerDlgUtils::ShowConfirmQueryWithOkL(enum FileManagerDlgUtils::TIcons, class TDesC16 const &)
- ?ShowConfirmQueryWithOkL@FileManagerDlgUtils@@SAXW4TIcons@1@HABVTDesC16@@@Z @ 20 NONAME ; void FileManagerDlgUtils::ShowConfirmQueryWithOkL(enum FileManagerDlgUtils::TIcons, int, class TDesC16 const &)
- ?ShowConfirmQueryWithOkL@FileManagerDlgUtils@@SAXW4TIcons@1@HH@Z @ 21 NONAME ; void FileManagerDlgUtils::ShowConfirmQueryWithOkL(enum FileManagerDlgUtils::TIcons, int, int)
- ?ShowConfirmQueryWithYesNoL@FileManagerDlgUtils@@SAHABVTDesC16@@@Z @ 22 NONAME ; int FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(class TDesC16 const &)
- ?ShowConfirmQueryWithYesNoL@FileManagerDlgUtils@@SAHHABVTDesC16@@@Z @ 23 NONAME ; int FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(int, class TDesC16 const &)
- ?ShowDialogL@CFileManagerGlobalDlg@@QAEXW4TType@1@ABVTDesC16@@H@Z @ 24 NONAME ; void CFileManagerGlobalDlg::ShowDialogL(enum CFileManagerGlobalDlg::TType, class TDesC16 const &, int)
- ?ShowDialogL@CFileManagerGlobalDlg@@QAEXW4TType@1@HH@Z @ 25 NONAME ; void CFileManagerGlobalDlg::ShowDialogL(enum CFileManagerGlobalDlg::TType, int, int)
- ?ShowErrorNoteL@FileManagerDlgUtils@@SAXABVTDesC16@@@Z @ 26 NONAME ; void FileManagerDlgUtils::ShowErrorNoteL(class TDesC16 const &)
- ?ShowErrorNoteL@FileManagerDlgUtils@@SAXHABVTDesC16@@@Z @ 27 NONAME ; void FileManagerDlgUtils::ShowErrorNoteL(int, class TDesC16 const &)
- ?ShowFileNameQueryL@FileManagerDlgUtils@@SAHHABVTDesC16@@AAVTDes16@@AAVCFileManagerEngine@@@Z @ 28 NONAME ; int FileManagerDlgUtils::ShowFileNameQueryL(int, class TDesC16 const &, class TDes16 &, class CFileManagerEngine &)
- ?ShowFolderNameQueryL@FileManagerDlgUtils@@SAHHAAVTDes16@@AAVCFileManagerEngine@@H@Z @ 29 NONAME ; int FileManagerDlgUtils::ShowFolderNameQueryL(int, class TDes16 &, class CFileManagerEngine &, int)
- ?ShowInfoNoteL@FileManagerDlgUtils@@SAXABVTDesC16@@@Z @ 30 NONAME ; void FileManagerDlgUtils::ShowInfoNoteL(class TDesC16 const &)
- ?ShowInfoNoteL@FileManagerDlgUtils@@SAXHABVTDesC16@@@Z @ 31 NONAME ; void FileManagerDlgUtils::ShowInfoNoteL(int, class TDesC16 const &)
- ?ShowInfoNoteL@FileManagerDlgUtils@@SAXHH@Z @ 32 NONAME ; void FileManagerDlgUtils::ShowInfoNoteL(int, int)
- ?ShowInfoQueryL@FileManagerDlgUtils@@SAXABVTDesC16@@@Z @ 33 NONAME ; void FileManagerDlgUtils::ShowInfoQueryL(class TDesC16 const &)
- ?ShowInfoQueryL@FileManagerDlgUtils@@SAXHABVTDesC16@@@Z @ 34 NONAME ; void FileManagerDlgUtils::ShowInfoQueryL(int, class TDesC16 const &)
- ?ShowInfoQueryL@FileManagerDlgUtils@@SAXHH@Z @ 35 NONAME ; void FileManagerDlgUtils::ShowInfoQueryL(int, int)
- ?ShowItemInfoPopupL@FileManagerDlgUtils@@SAXAAVCFileManagerItemProperties@@ABVCFileManagerFeatureManager@@@Z @ 36 NONAME ; void FileManagerDlgUtils::ShowItemInfoPopupL(class CFileManagerItemProperties &, class CFileManagerFeatureManager const &)
- ?ShowMemoryStoreInfoPopupL@FileManagerDlgUtils@@SAXABVTFileManagerDriveInfo@@@Z @ 37 NONAME ; void FileManagerDlgUtils::ShowMemoryStoreInfoPopupL(class TFileManagerDriveInfo const &)
- ?ShowNOfMSettingQueryL@FileManagerDlgUtils@@SAHHHAAKH@Z @ 38 NONAME ; int FileManagerDlgUtils::ShowNOfMSettingQueryL(int, int, unsigned long &, int)
- ?ShowOOfMSettingQueryL@FileManagerDlgUtils@@SAHHHAAH@Z @ 39 NONAME ; int FileManagerDlgUtils::ShowOOfMSettingQueryL(int, int, int &)
- ?ShowOOfMSettingQueryL@FileManagerDlgUtils@@SAHHPBVMDesC16Array@@AAH@Z @ 40 NONAME ; int FileManagerDlgUtils::ShowOOfMSettingQueryL(int, class MDesC16Array const *, int &)
- ?ShowPasswordQueryL@FileManagerDlgUtils@@SAHAAVTDes16@@@Z @ 41 NONAME ; int FileManagerDlgUtils::ShowPasswordQueryL(class TDes16 &)
- ?ShowSimplePasswordQueryL@FileManagerDlgUtils@@SAHABVTDesC16@@AAVTDes16@@@Z @ 42 NONAME ; int FileManagerDlgUtils::ShowSimplePasswordQueryL(class TDesC16 const &, class TDes16 &)
- ?ShowSimplePasswordQueryL@FileManagerDlgUtils@@SAHHAAVTDes16@@@Z @ 43 NONAME ; int FileManagerDlgUtils::ShowSimplePasswordQueryL(int, class TDes16 &)
- ?ShowTimeSettingQueryL@FileManagerDlgUtils@@SAHHAAVTTime@@@Z @ 44 NONAME ; int FileManagerDlgUtils::ShowTimeSettingQueryL(int, class TTime &)
- ?ShowWarningNoteL@FileManagerDlgUtils@@SAXH@Z @ 45 NONAME ; void FileManagerDlgUtils::ShowWarningNoteL(int)
- ?ShowWeekdayQueryL@FileManagerDlgUtils@@SAHHAAW4TDay@@@Z @ 46 NONAME ; int FileManagerDlgUtils::ShowWeekdayQueryL(int, enum TDay &)
- ?UpdateIconsL@CFileManagerIconArray@@QAEXXZ @ 47 NONAME ; void CFileManagerIconArray::UpdateIconsL(void)
- ?UpdateProgressDialog@CFileManagerGlobalDlg@@QAEXHH@Z @ 48 NONAME ; void CFileManagerGlobalDlg::UpdateProgressDialog(int, int)
- ?LoadIconL@CFileManagerIconArray@@SAPAVCGulIcon@@ABVTDesC16@@HHHHH@Z @ 49 NONAME ; class CGulIcon * CFileManagerIconArray::LoadIconL(class TDesC16 const &, int, int, int, int, int)
-
--- a/filemanager/BWINS/GFLMU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-EXPORTS
- ?BackstepL@CGflmNavigatorModel@@QAEXXZ @ 1 NONAME ; void CGflmNavigatorModel::BackstepL(void)
- ?CancelRefresh@CGflmFileListModel@@QAEXXZ @ 2 NONAME ; void CGflmFileListModel::CancelRefresh(void)
- ?ClearCache@CGflmFileListModel@@QAEXXZ @ 3 NONAME ; void CGflmFileListModel::ClearCache(void)
- ?ClearDriveInfo@CGflmFileListModel@@QAEXXZ @ 4 NONAME ; void CGflmFileListModel::ClearDriveInfo(void)
- ?CreateGroupL@CGflmFileListModel@@QAEPAVMGflmItemGroup@@H@Z @ 5 NONAME ; class MGflmItemGroup * CGflmFileListModel::CreateGroupL(int)
- ?CreateGroupL@CGflmFileListModel@@QAEPAVMGflmItemGroup@@HI@Z @ 6 NONAME ; class MGflmItemGroup * CGflmFileListModel::CreateGroupL(int, unsigned int)
- ?CurrentDirectory@CGflmNavigatorModel@@QBE?AVTPtrC16@@XZ @ 7 NONAME ; class TPtrC16 CGflmNavigatorModel::CurrentDirectory(void) const
- ?CurrentDrive@CGflmNavigatorModel@@QBEPAVCGflmDriveItem@@XZ @ 8 NONAME ; class CGflmDriveItem * CGflmNavigatorModel::CurrentDrive(void) const
- ?Drive@CGflmDriveItem@@QBEHXZ @ 9 NONAME ; int CGflmDriveItem::Drive(void) const
- ?DriveFromId@CGflmFileListModel@@QBEPAVCGflmDriveItem@@H@Z @ 10 NONAME ; class CGflmDriveItem * CGflmFileListModel::DriveFromId(int) const
- ?DriveFromPath@CGflmFileListModel@@QBEPAVCGflmDriveItem@@ABVTDesC16@@@Z @ 11 NONAME ; class CGflmDriveItem * CGflmFileListModel::DriveFromPath(class TDesC16 const &) const
- ?DriveStatus@CGflmDriveItem@@QBEIXZ @ 12 NONAME ; unsigned int CGflmDriveItem::DriveStatus(void) const
- ?EnableSearchMode@CGflmFileListModel@@QAEXH@Z @ 13 NONAME ; void CGflmFileListModel::EnableSearchMode(int)
- ?EnsureFinalBackslash@GflmUtils@@SAXAAVTDes16@@@Z @ 14 NONAME ; void GflmUtils::EnsureFinalBackslash(class TDes16 &)
- ?Entry@CGflmFileSystemItem@@QBEABVTEntry@@XZ @ 15 NONAME ; class TEntry const & CGflmFileSystemItem::Entry(void) const
- ?FindGroupById@CGflmFileListModel@@QAEPAVMGflmItemGroup@@H@Z @ 16 NONAME ; class MGflmItemGroup * CGflmFileListModel::FindGroupById(int)
- ?FullPathL@CGflmFileSystemItem@@QBEPAVHBufC16@@XZ @ 17 NONAME ; class HBufC16 * CGflmFileSystemItem::FullPathL(void) const
- ?FullPathL@GflmUtils@@SAPAVHBufC16@@ABVTDesC16@@ABVTEntry@@@Z @ 18 NONAME ; class HBufC16 * GflmUtils::FullPathL(class TDesC16 const &, class TEntry const &)
- ?FullPathLC@CGflmFileSystemItem@@QBEPAVHBufC16@@XZ @ 19 NONAME ; class HBufC16 * CGflmFileSystemItem::FullPathLC(void) const
- ?FullPathLC@GflmUtils@@SAPAVHBufC16@@ABVTDesC16@@ABVTEntry@@@Z @ 20 NONAME ; class HBufC16 * GflmUtils::FullPathLC(class TDesC16 const &, class TEntry const &)
- ?GetFullPath@CGflmFileSystemItem@@QBEXAAVTDes16@@@Z @ 21 NONAME ; void CGflmFileSystemItem::GetFullPath(class TDes16 &) const
- ?GetFullPath@GflmUtils@@SAXABVTDesC16@@ABVTEntry@@AAVTDes16@@@Z @ 22 NONAME ; void GflmUtils::GetFullPath(class TDesC16 const &, class TEntry const &, class TDes16 &)
- ?GetIconId@CGflmGroupItem@@QAEHAAH@Z @ 23 NONAME ; int CGflmGroupItem::GetIconId(int &)
- ?GoToDirectoryL@CGflmNavigatorModel@@QAEXABVTDesC16@@0@Z @ 24 NONAME ; void CGflmNavigatorModel::GoToDirectoryL(class TDesC16 const &, class TDesC16 const &)
- ?GoToDirectoryL@CGflmNavigatorModel@@QAEXABVTDesC16@@H@Z @ 25 NONAME ; void CGflmNavigatorModel::GoToDirectoryL(class TDesC16 const &, int)
- ?HasFinalBackslash@GflmUtils@@SAHABVTDesC16@@@Z @ 26 NONAME ; int GflmUtils::HasFinalBackslash(class TDesC16 const &)
- ?Id@CGflmGlobalActionItem@@QBEHXZ @ 27 NONAME ; int CGflmGlobalActionItem::Id(void) const
- ?IsCorrupt@CGflmFileListModel@@QBEHXZ @ 28 NONAME ; int CGflmFileListModel::IsCorrupt(void) const
- ?Item@CGflmFileListModel@@QBEPAVCGflmGroupItem@@H@Z @ 29 NONAME ; class CGflmGroupItem * CGflmFileListModel::Item(int) const
- ?LocalizedName@CGflmFileListModel@@QBE?AVTPtrC16@@ABVTDesC16@@@Z @ 30 NONAME ; class TPtrC16 CGflmFileListModel::LocalizedName(class TDesC16 const &) const
- ?LocalizedNameOfCurrentDirectory@CGflmNavigatorModel@@QBE?AVTPtrC16@@XZ @ 31 NONAME ; class TPtrC16 CGflmNavigatorModel::LocalizedNameOfCurrentDirectory(void) const
- ?NavigationLevel@CGflmNavigatorModel@@QBEHXZ @ 32 NONAME ; int CGflmNavigatorModel::NavigationLevel(void) const
- ?NewL@CGflmFileListModel@@SAPAV1@AAVRFs@@@Z @ 33 NONAME ; class CGflmFileListModel * CGflmFileListModel::NewL(class RFs &)
- ?NewL@CGflmNavigatorModel@@SAPAV1@AAVRFs@@@Z @ 34 NONAME ; class CGflmNavigatorModel * CGflmNavigatorModel::NewL(class RFs &)
- ?RefreshListL@CGflmFileListModel@@QAEXAAVTRequestStatus@@W4TGflmRefreshMode@@@Z @ 35 NONAME ; void CGflmFileListModel::RefreshListL(class TRequestStatus &, enum TGflmRefreshMode)
- ?ResetModel@CGflmFileListModel@@QAEXXZ @ 36 NONAME ; void CGflmFileListModel::ResetModel(void)
- ?ResolveMimeTypeL@CGflmFileListModel@@QAE?AVTPtrC16@@ABVTDesC16@@@Z @ 37 NONAME ; class TPtrC16 CGflmFileListModel::ResolveMimeTypeL(class TDesC16 const &)
- ?RootDirectory@CGflmDriveItem@@QBE?AVTPtrC16@@XZ @ 38 NONAME ; class TPtrC16 CGflmDriveItem::RootDirectory(void) const
- ?SetCustomFilter@CGflmFileListModel@@QAEXPAVMGflmItemFilter@@@Z @ 39 NONAME ; void CGflmFileListModel::SetCustomFilter(class MGflmItemFilter *)
- ?SetIconId@CGflmGroupItem@@QAEXH@Z @ 40 NONAME ; void CGflmGroupItem::SetIconId(int)
- ?SetLocalizedNameL@CGflmDriveItem@@QAEXABVTDesC16@@@Z @ 41 NONAME ; void CGflmDriveItem::SetLocalizedNameL(class TDesC16 const &)
- ?SetLocalizedNameL@CGflmFileSystemItem@@QAEXABVTDesC16@@@Z @ 42 NONAME ; void CGflmFileSystemItem::SetLocalizedNameL(class TDesC16 const &)
- ?SetRootDirectoryL@CGflmDriveItem@@QAEXABVTDesC16@@@Z @ 43 NONAME ; void CGflmDriveItem::SetRootDirectoryL(class TDesC16 const &)
- ?SetSearchFolderL@CGflmFileListModel@@QAEXABVTDesC16@@@Z @ 44 NONAME ; void CGflmFileListModel::SetSearchFolderL(class TDesC16 const &)
- ?SetSearchStringL@CGflmFileListModel@@QAEXABVTDesC16@@@Z @ 45 NONAME ; void CGflmFileListModel::SetSearchStringL(class TDesC16 const &)
- ?SetSortMethod@CGflmFileListModel@@QAEXW4TGflmSortMethod@@@Z @ 46 NONAME ; void CGflmFileListModel::SetSortMethod(enum TGflmSortMethod)
- ?SortMethod@CGflmFileListModel@@QBE?AW4TGflmSortMethod@@XZ @ 47 NONAME ; enum TGflmSortMethod CGflmFileListModel::SortMethod(void) const
- ?StripFinalBackslash@GflmUtils@@SA?AVTPtrC16@@ABVTDesC16@@@Z @ 48 NONAME ; class TPtrC16 GflmUtils::StripFinalBackslash(class TDesC16 const &)
- ?VolumeInfo@CGflmDriveItem@@QBEABVTVolumeInfo@@XZ @ 49 NONAME ; class TVolumeInfo const & CGflmDriveItem::VolumeInfo(void) const
- ?VolumeStatus@CGflmDriveItem@@QBEHXZ @ 50 NONAME ; int CGflmDriveItem::VolumeStatus(void) const
- ?FlushCache@CGflmFileListModel@@QAEXXZ @ 51 NONAME ; void CGflmFileListModel::FlushCache(void)
- ?SearchMode@CGflmFileListModel@@QAEHXZ @ 52 NONAME ; int CGflmFileListModel::SearchMode(void)
-
--- a/filemanager/BWINS/filemanagerbkupengineU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-EXPORTS
- ??1CMMCScBkupDriveAndOperationTypeManager@@UAE@XZ @ 1 NONAME ; CMMCScBkupDriveAndOperationTypeManager::~CMMCScBkupDriveAndOperationTypeManager(void)
- ??1CMMCScBkupEngine@@UAE@XZ @ 2 NONAME ; CMMCScBkupEngine::~CMMCScBkupEngine(void)
- ??1CMMCScBkupOpParamsBackupFull@@UAE@XZ @ 3 NONAME ; CMMCScBkupOpParamsBackupFull::~CMMCScBkupOpParamsBackupFull(void)
- ??1CMMCScBkupOpParamsBase@@UAE@XZ @ 4 NONAME ; CMMCScBkupOpParamsBase::~CMMCScBkupOpParamsBase(void)
- ??1CMMCScBkupOpParamsRestoreFull@@UAE@XZ @ 5 NONAME ; CMMCScBkupOpParamsRestoreFull::~CMMCScBkupOpParamsRestoreFull(void)
- ?ActiveTransferType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TTransferDataType@conn@@XZ @ 6 NONAME ; enum conn::TTransferDataType CMMCScBkupOpParamsBackupFull::ActiveTransferType(void) const
- ?ActiveTransferType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TTransferDataType@conn@@XZ @ 7 NONAME ; enum conn::TTransferDataType CMMCScBkupOpParamsRestoreFull::ActiveTransferType(void) const
- ?AssociatedOpType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TMMCScBkupOperationType@@XZ @ 8 NONAME ; enum TMMCScBkupOperationType CMMCScBkupOpParamsBackupFull::AssociatedOpType(void) const
- ?AssociatedOpType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TMMCScBkupOperationType@@XZ @ 9 NONAME ; enum TMMCScBkupOperationType CMMCScBkupOpParamsRestoreFull::AssociatedOpType(void) const
- ?CancelOperation@CMMCScBkupEngine@@QAEXXZ @ 10 NONAME ; void CMMCScBkupEngine::CancelOperation(void)
- ?Category@CMMCScBkupArchiveInfo@@QBE?AV?$TBitFlagsT@K@@XZ @ 11 NONAME ; class TBitFlagsT<unsigned long> CMMCScBkupArchiveInfo::Category(void) const
- ?Close@RMMCScBkupArchiveBuf@@QAEXXZ @ 12 NONAME ; void RMMCScBkupArchiveBuf::Close(void)
- ?DateTime@CMMCScBkupArchiveInfo@@QBEABVTTime@@XZ @ 13 NONAME ; class TTime const & CMMCScBkupArchiveInfo::DateTime(void) const
- ?Drive@CMMCScBkupArchiveInfo@@QBE?AW4TDriveNumber@@XZ @ 14 NONAME ; enum TDriveNumber CMMCScBkupArchiveInfo::Drive(void) const
- ?DriveAndOperations@CMMCScBkupOpParamsBase@@QBEABVCMMCScBkupDriveAndOperationTypeManager@@XZ @ 15 NONAME ; class CMMCScBkupDriveAndOperationTypeManager const & CMMCScBkupOpParamsBase::DriveAndOperations(void) const
- ?FileName@CMMCScBkupArchiveInfo@@QBEABVTDesC16@@XZ @ 16 NONAME ; class TDesC16 const & CMMCScBkupArchiveInfo::FileName(void) const
- ?IncrementType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TBackupIncType@conn@@XZ @ 17 NONAME ; enum conn::TBackupIncType CMMCScBkupOpParamsBackupFull::IncrementType(void) const
- ?IncrementType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TBackupIncType@conn@@XZ @ 18 NONAME ; enum conn::TBackupIncType CMMCScBkupOpParamsRestoreFull::IncrementType(void) const
- ?ListArchivesL@CMMCScBkupEngine@@QBEXAAV?$RPointerArray@VCMMCScBkupArchiveInfo@@@@PAVCMMCScBkupOpParamsBase@@KH@Z @ 19 NONAME ; void CMMCScBkupEngine::ListArchivesL(class RPointerArray<class CMMCScBkupArchiveInfo> &, class CMMCScBkupOpParamsBase *, unsigned long, int) const
- ?NewL@CMMCScBkupDriveAndOperationTypeManager@@SAPAV1@AAVTResourceReader@@@Z @ 20 NONAME ; class CMMCScBkupDriveAndOperationTypeManager * CMMCScBkupDriveAndOperationTypeManager::NewL(class TResourceReader &)
- ?NewL@CMMCScBkupEngine@@SAPAV1@AAVRFs@@@Z @ 21 NONAME ; class CMMCScBkupEngine * CMMCScBkupEngine::NewL(class RFs &)
- ?NewL@CMMCScBkupOpParamsBackupFull@@SAPAV1@AAVTResourceReader@@0W4TDriveNumber@@V?$TBitFlagsT@K@@@Z @ 22 NONAME ; class CMMCScBkupOpParamsBackupFull * CMMCScBkupOpParamsBackupFull::NewL(class TResourceReader &, class TResourceReader &, enum TDriveNumber, class TBitFlagsT<unsigned long>)
- ?NewL@CMMCScBkupOpParamsRestoreFull@@SAPAV1@AAVTResourceReader@@V?$TBitFlagsT@K@@@Z @ 23 NONAME ; class CMMCScBkupOpParamsRestoreFull * CMMCScBkupOpParamsRestoreFull::NewL(class TResourceReader &, class TBitFlagsT<unsigned long>)
- ?PackageTransferType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TPackageDataType@conn@@XZ @ 24 NONAME ; enum conn::TPackageDataType CMMCScBkupOpParamsBackupFull::PackageTransferType(void) const
- ?PackageTransferType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TPackageDataType@conn@@XZ @ 25 NONAME ; enum conn::TPackageDataType CMMCScBkupOpParamsRestoreFull::PackageTransferType(void) const
- ?PartType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TBURPartType@conn@@XZ @ 26 NONAME ; enum conn::TBURPartType CMMCScBkupOpParamsBackupFull::PartType(void) const
- ?PartType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TBURPartType@conn@@XZ @ 27 NONAME ; enum conn::TBURPartType CMMCScBkupOpParamsRestoreFull::PartType(void) const
- ?PassiveTransferType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TTransferDataType@conn@@XZ @ 28 NONAME ; enum conn::TTransferDataType CMMCScBkupOpParamsBackupFull::PassiveTransferType(void) const
- ?PassiveTransferType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TTransferDataType@conn@@XZ @ 29 NONAME ; enum conn::TTransferDataType CMMCScBkupOpParamsRestoreFull::PassiveTransferType(void) const
- ?RebootRequired@CMMCScBkupEngine@@QBEHXZ @ 30 NONAME ; int CMMCScBkupEngine::RebootRequired(void) const
- ?SetArchiveInfosL@CMMCScBkupOpParamsBase@@QAEXAAV?$RPointerArray@VCMMCScBkupArchiveInfo@@@@@Z @ 31 NONAME ; void CMMCScBkupOpParamsBase::SetArchiveInfosL(class RPointerArray<class CMMCScBkupArchiveInfo> &)
- ?StartOperationL@CMMCScBkupEngine@@QAEXW4TMMCScBkupOperationType@@AAVMMMCScBkupEngineObserver@@PAVCMMCScBkupOpParamsBase@@@Z @ 32 NONAME ; void CMMCScBkupEngine::StartOperationL(enum TMMCScBkupOperationType, class MMMCScBkupEngineObserver &, class CMMCScBkupOpParamsBase *)
- ?TotalOperationSizeL@CMMCScBkupEngine@@QBE_JXZ @ 33 NONAME ; long long CMMCScBkupEngine::TotalOperationSizeL(void) const
- ?ValidArchiveForRestore@CMMCScBkupEngine@@QAEHABVTDesC16@@@Z @ 34 NONAME ; int CMMCScBkupEngine::ValidArchiveForRestore(class TDesC16 const &)
-
--- a/filemanager/EABI/FileManagerEngineU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-EXPORTS
- _ZN17CFileManagerUtils13IsRemoteDriveER3RFsRK7TDesC16 @ 1 NONAME
- _ZN17CFileManagerUtils17HasFinalBackslashERK7TDesC16 @ 2 NONAME
- _ZN17CFileManagerUtils19StripFinalBackslashERK7TDesC16 @ 3 NONAME
- _ZN17CFileManagerUtils20EnsureFinalBackslashER6TDes16 @ 4 NONAME
- _ZN17CFileManagerUtils30IsFromInternalToRemovableDriveER3RFsRK7TDesC16S4_ @ 5 NONAME
- _ZN18CFileManagerEngine10NewFolderLERK7TDesC16 @ 6 NONAME
- _ZN18CFileManagerEngine10SetMemoryLE18TFileManagerMemory @ 7 NONAME
- _ZN18CFileManagerEngine11FolderLevelEv @ 8 NONAME
- _ZN18CFileManagerEngine11RefreshSortEv @ 9 NONAME
- _ZN18CFileManagerEngine11RenameDriveEiRK7TDesC16 @ 10 NONAME
- _ZN18CFileManagerEngine11SetObserverEP27MFileManagerProcessObserver @ 11 NONAME
- _ZN18CFileManagerEngine11UnlockDriveEiRK5TBuf8ILi16EE @ 12 NONAME
- _ZN18CFileManagerEngine12CurrentDriveEv @ 13 NONAME
- _ZN18CFileManagerEngine12CurrentIndexEv @ 14 NONAME
- _ZN18CFileManagerEngine12GetItemInfoLEi @ 15 NONAME
- _ZN18CFileManagerEngine12IsNameFoundLERK7TDesC16 @ 16 NONAME
- _ZN18CFileManagerEngine13CancelProcessEN27MFileManagerProcessObserver19TFileManagerProcessE @ 17 NONAME
- _ZN18CFileManagerEngine13CancelRefreshEv @ 18 NONAME
- _ZN18CFileManagerEngine13GetDriveInfoLER21TFileManagerDriveInfo @ 19 NONAME
- _ZN18CFileManagerEngine13GetFileSizesLERK13CArrayFixFlatIiE @ 20 NONAME
- _ZN18CFileManagerEngine13GetItemInfoLCEi @ 21 NONAME
- _ZN18CFileManagerEngine13SetSortMethodENS_11TSortMethodE @ 22 NONAME
- _ZN18CFileManagerEngine14FilesInFolderLEv @ 23 NONAME
- _ZN18CFileManagerEngine15BackupSettingsLEv @ 24 NONAME
- _ZN18CFileManagerEngine15FileSystemEventEi @ 25 NONAME
- _ZN18CFileManagerEngine15SetCurrentIndexEi @ 26 NONAME
- _ZN18CFileManagerEngine16CurrentDriveNameEv @ 27 NONAME
- _ZN18CFileManagerEngine16RefreshDirectoryEv @ 28 NONAME
- _ZN18CFileManagerEngine16RestoreSettingsLEv @ 29 NONAME
- _ZN18CFileManagerEngine16SetDrivePasswordEiRK5TBuf8ILi16EES3_ @ 30 NONAME
- _ZN18CFileManagerEngine16SetSearchFolderLERK7TDesC16 @ 31 NONAME
- _ZN18CFileManagerEngine16SetSearchStringLERK7TDesC16 @ 32 NONAME
- _ZN18CFileManagerEngine17DeleteRemoteDriveEi @ 33 NONAME
- _ZN18CFileManagerEngine18StartEjectProcessLEi @ 34 NONAME
- _ZN18CFileManagerEngine19CreateActiveDeleteLER13CArrayFixFlatIiE @ 35 NONAME
- _ZN18CFileManagerEngine19RemoveDrivePasswordEiRK5TBuf8ILi16EE @ 36 NONAME
- _ZN18CFileManagerEngine19StartBackupProcessLEN27MFileManagerProcessObserver19TFileManagerProcessE @ 37 NONAME
- _ZN18CFileManagerEngine19StartFormatProcessLEi @ 38 NONAME
- _ZN18CFileManagerEngine22ForcedRefreshDirectoryEv @ 39 NONAME
- _ZN18CFileManagerEngine24SetRemoteDriveConnectionEii @ 40 NONAME
- _ZN18CFileManagerEngine26SetDirectoryWithBackstepsLERK7TDesC16 @ 41 NONAME
- _ZN18CFileManagerEngine4NewLER3RFs @ 42 NONAME
- _ZN18CFileManagerEngine5OpenLEi @ 43 NONAME
- _ZN18CFileManagerEngine7RenameLEiRK7TDesC16 @ 44 NONAME
- _ZN18CFileManagerEngine8SetStateENS_6TStateE @ 45 NONAME
- _ZN18CFileManagerEngine9BackstepLEv @ 46 NONAME
- _ZN18CFileManagerEngine9DriveNameEi @ 47 NONAME
- _ZN18CFileManagerEngineD0Ev @ 48 NONAME
- _ZN18CFileManagerEngineD1Ev @ 49 NONAME
- _ZN18CFileManagerEngineD2Ev @ 50 NONAME
- _ZN21TFileManagerDriveInfo5ResetEv @ 51 NONAME
- _ZN21TFileManagerDriveInfoC1Ev @ 52 NONAME
- _ZN21TFileManagerDriveInfoC2Ev @ 53 NONAME
- _ZN22CFileManagerIRReceiver12ReceiveFileLEv @ 54 NONAME
- _ZN22CFileManagerIRReceiver13StopReceivingEv @ 55 NONAME
- _ZN22CFileManagerIRReceiver4NewLER27MFileManagerProcessObserverRK7TDesC16R18CFileManagerEngine @ 56 NONAME
- _ZN22CFileManagerIRReceiverD0Ev @ 57 NONAME
- _ZN22CFileManagerIRReceiverD1Ev @ 58 NONAME
- _ZN22CFileManagerIRReceiverD2Ev @ 59 NONAME
- _ZN24CFileManagerActiveDelete15DeletedDrmItemsERi @ 60 NONAME
- _ZN24CFileManagerActiveDelete8GetErrorER6TDes16 @ 61 NONAME
- _ZN24CFileManagerActiveDeleteD0Ev @ 62 NONAME
- _ZN24CFileManagerActiveDeleteD1Ev @ 63 NONAME
- _ZN24CFileManagerActiveDeleteD2Ev @ 64 NONAME
- _ZN25CFileManagerActiveExecute15CancelExecutionEv @ 65 NONAME
- _ZN25CFileManagerActiveExecute4NewLER18CFileManagerEngineN27MFileManagerProcessObserver19TFileManagerProcessERS2_R13CArrayFixFlatIiERK7TDesC16 @ 66 NONAME
- _ZN25CFileManagerActiveExecute8ExecuteLENS_18TFileManagerSwitchE @ 67 NONAME
- _ZN25CFileManagerActiveExecuteD0Ev @ 68 NONAME
- _ZN25CFileManagerActiveExecuteD1Ev @ 69 NONAME
- _ZN25CFileManagerActiveExecuteD2Ev @ 70 NONAME
- _ZN26CFileManagerBackupSettings10SetContentEm @ 71 NONAME
- _ZN26CFileManagerBackupSettings13SetSchedulingEi @ 72 NONAME
- _ZN26CFileManagerBackupSettings14SetTargetDriveEi @ 73 NONAME
- _ZN26CFileManagerBackupSettings5SaveLEv @ 74 NONAME
- _ZN26CFileManagerBackupSettings6SetDayEi @ 75 NONAME
- _ZN26CFileManagerBackupSettings7SetTimeERK5TTime @ 76 NONAME
- _ZN26CFileManagerBackupSettings8RefreshLEv @ 77 NONAME
- _ZN26CFileManagerBackupSettings9SettingAtEi @ 78 NONAME
- _ZN26CFileManagerItemProperties10OpenFilesLEv @ 79 NONAME
- _ZN26CFileManagerItemProperties15FilesContainedLEv @ 80 NONAME
- _ZN26CFileManagerItemProperties17FoldersContainedLEv @ 81 NONAME
- _ZN26CFileManagerItemProperties25ContainsAnyFilesOrFoldersEv @ 82 NONAME
- _ZN26CFileManagerItemProperties5SizeLEv @ 83 NONAME
- _ZN26CFileManagerItemProperties5TypeLEv @ 84 NONAME
- _ZN26CFileManagerItemProperties9MimeTypeLEv @ 85 NONAME
- _ZN27CFileManagerRestoreSettings12SetSelectionERKy @ 86 NONAME
- _ZN27CFileManagerRestoreSettings8RefreshLEv @ 87 NONAME
- _ZNK18CFileManagerEngine10DriveStateERmRK7TDesC16 @ 88 NONAME
- _ZNK18CFileManagerEngine10DriveStateERmi @ 89 NONAME
- _ZNK18CFileManagerEngine10SortMethodEv @ 90 NONAME
- _ZNK18CFileManagerEngine11GetMMCInfoLEv @ 91 NONAME
- _ZNK18CFileManagerEngine11IsValidNameERK7TDesC16S2_i @ 92 NONAME
- _ZNK18CFileManagerEngine12EnoughSpaceLERK7TDesC16xN27MFileManagerProcessObserver19TFileManagerProcessE @ 93 NONAME
- _ZNK18CFileManagerEngine12IllegalCharsERK7TDesC16 @ 94 NONAME
- _ZNK18CFileManagerEngine12SearchStringEv @ 95 NONAME
- _ZNK18CFileManagerEngine13GetDriveInfoLEiR21TFileManagerDriveInfo @ 96 NONAME
- _ZNK18CFileManagerEngine13LocalizedNameERK7TDesC16 @ 97 NONAME
- _ZNK18CFileManagerEngine14FeatureManagerEv @ 98 NONAME
- _ZNK18CFileManagerEngine14IsSystemFolderERK7TDesC16 @ 99 NONAME
- _ZNK18CFileManagerEngine15NavigationLevelEv @ 100 NONAME
- _ZNK18CFileManagerEngine16CurrentDirectoryEv @ 101 NONAME
- _ZNK18CFileManagerEngine16IndexToFullPathLEi @ 102 NONAME
- _ZNK18CFileManagerEngine17IndexToFullPathLCEi @ 103 NONAME
- _ZNK18CFileManagerEngine18DriveRootDirectoryEi @ 104 NONAME
- _ZNK18CFileManagerEngine19IsDistributableFileERK7TDesC16Ri @ 105 NONAME
- _ZNK18CFileManagerEngine20GetRestoreInfoArrayLER6RArrayIN27CFileManagerRestoreSettings5TInfoEEi @ 106 NONAME
- _ZNK18CFileManagerEngine23GetFormattedDriveNameLCEiii @ 107 NONAME
- _ZNK18CFileManagerEngine24AnyEjectableDrivePresentEv @ 108 NONAME
- _ZNK18CFileManagerEngine31LocalizedNameOfCurrentDirectoryEv @ 109 NONAME
- _ZNK18CFileManagerEngine5StateEv @ 110 NONAME
- _ZNK18CFileManagerEngine6MemoryEv @ 111 NONAME
- _ZNK18CFileManagerEngine7IconIdLEi @ 112 NONAME
- _ZNK18CFileManagerEngine8FileListEv @ 113 NONAME
- _ZNK18CFileManagerEngine8IsFolderEi @ 114 NONAME
- _ZNK18CFileManagerEngine9FileTypeLERK7TDesC16 @ 115 NONAME
- _ZNK18CFileManagerEngine9FileTypeLEi @ 116 NONAME
- _ZNK26CFileManagerBackupSettings10SchedulingEv @ 117 NONAME
- _ZNK26CFileManagerBackupSettings11TargetDriveEv @ 118 NONAME
- _ZNK26CFileManagerBackupSettings24AllowedDriveAttMatchMaskEv @ 119 NONAME
- _ZNK26CFileManagerBackupSettings3DayEv @ 120 NONAME
- _ZNK26CFileManagerBackupSettings4TimeEv @ 121 NONAME
- _ZNK26CFileManagerBackupSettings7ContentEv @ 122 NONAME
- _ZNK26CFileManagerFeatureManager15IsHelpSupportedEv @ 123 NONAME
- _ZNK26CFileManagerFeatureManager15IsIrdaSupportedEv @ 124 NONAME
- _ZNK26CFileManagerFeatureManager16IsWesternVariantEv @ 125 NONAME
- _ZNK26CFileManagerFeatureManager18IsDrmFullSupportedEv @ 126 NONAME
- _ZNK26CFileManagerFeatureManager18IsFeatureSupportedEi @ 127 NONAME
- _ZNK26CFileManagerFeatureManager20IsMmcPassWdSupportedEv @ 128 NONAME
- _ZNK26CFileManagerFeatureManager21IsMmcSwEjectSupportedEv @ 129 NONAME
- _ZNK26CFileManagerFeatureManager26IsRemoteStorageFwSupportedEv @ 130 NONAME
- _ZNK26CFileManagerItemProperties10NameAndExtEv @ 131 NONAME
- _ZNK26CFileManagerItemProperties12ModifiedDateEv @ 132 NONAME
- _ZNK26CFileManagerItemProperties13IsRemoteDriveEv @ 133 NONAME
- _ZNK26CFileManagerItemProperties13LocalizedNameEv @ 134 NONAME
- _ZNK26CFileManagerItemProperties17ModifiedLocalDateER5TTime @ 135 NONAME
- _ZNK26CFileManagerItemProperties3ExtEv @ 136 NONAME
- _ZNK26CFileManagerItemProperties4NameEv @ 137 NONAME
- _ZNK26CFileManagerItemProperties7DriveIdEv @ 138 NONAME
- _ZNK26CFileManagerItemProperties7IsDriveEv @ 139 NONAME
- _ZNK26CFileManagerItemProperties8FullPathEv @ 140 NONAME
- _ZNK26CFileManagerItemProperties9DriveNameEv @ 141 NONAME
- _ZNK26CFileManagerFeatureManager10IsEmbeddedEv @ 142 NONAME
- _ZN25CFileManagerActiveExecute8ToFolderEv @ 143 NONAME
- _ZN18CFileManagerEngine18SetCurrentItemNameERK7TDesC16 @ 144 NONAME
- _ZN18CFileManagerEngine12SetAppExitObEP25MAknServerAppExitObserver @ 145 NONAME
- _ZN18CFileManagerEngine14DeleteBackupsLEv @ 146 NONAME
- _ZN18CFileManagerEngine15IsDriverMountedEi @ 147 NONAME
-
--- a/filemanager/EABI/FileManagerViewU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-EXPORTS
- _ZN19FileManagerDlgUtils13ShowInfoNoteLERK7TDesC16 @ 1 NONAME
- _ZN19FileManagerDlgUtils13ShowInfoNoteLEiRK7TDesC16 @ 2 NONAME
- _ZN19FileManagerDlgUtils13ShowInfoNoteLEii @ 3 NONAME
- _ZN19FileManagerDlgUtils14ShowErrorNoteLERK7TDesC16 @ 4 NONAME
- _ZN19FileManagerDlgUtils14ShowErrorNoteLEiRK7TDesC16 @ 5 NONAME
- _ZN19FileManagerDlgUtils14ShowInfoQueryLERK7TDesC16 @ 6 NONAME
- _ZN19FileManagerDlgUtils14ShowInfoQueryLEiRK7TDesC16 @ 7 NONAME
- _ZN19FileManagerDlgUtils14ShowInfoQueryLEii @ 8 NONAME
- _ZN19FileManagerDlgUtils16ShowConfirmNoteLEi @ 9 NONAME
- _ZN19FileManagerDlgUtils16ShowWarningNoteLEi @ 10 NONAME
- _ZN19FileManagerDlgUtils17ShowWeekdayQueryLEiR4TDay @ 11 NONAME
- _ZN19FileManagerDlgUtils18ShowFileNameQueryLEiRK7TDesC16R6TDes16R18CFileManagerEngine @ 12 NONAME
- _ZN19FileManagerDlgUtils18ShowItemInfoPopupLER26CFileManagerItemPropertiesRK26CFileManagerFeatureManager @ 13 NONAME
- _ZN19FileManagerDlgUtils18ShowPasswordQueryLER6TDes16 @ 14 NONAME
- _ZN19FileManagerDlgUtils20ShowFolderNameQueryLEiR6TDes16R18CFileManagerEnginei @ 15 NONAME
- _ZN19FileManagerDlgUtils21ShowNOfMSettingQueryLEiiRmi @ 16 NONAME
- _ZN19FileManagerDlgUtils21ShowOOfMSettingQueryLEiPK12MDesC16ArrayRi @ 17 NONAME
- _ZN19FileManagerDlgUtils21ShowOOfMSettingQueryLEiiRi @ 18 NONAME
- _ZN19FileManagerDlgUtils21ShowTimeSettingQueryLEiR5TTime @ 19 NONAME
- _ZN19FileManagerDlgUtils23ShowConfirmQueryWithOkLENS_6TIconsERK7TDesC16 @ 20 NONAME
- _ZN19FileManagerDlgUtils23ShowConfirmQueryWithOkLENS_6TIconsEiRK7TDesC16 @ 21 NONAME
- _ZN19FileManagerDlgUtils23ShowConfirmQueryWithOkLENS_6TIconsEii @ 22 NONAME
- _ZN19FileManagerDlgUtils24ShowSimplePasswordQueryLERK7TDesC16R6TDes16 @ 23 NONAME
- _ZN19FileManagerDlgUtils24ShowSimplePasswordQueryLEiR6TDes16 @ 24 NONAME
- _ZN19FileManagerDlgUtils25ShowMemoryStoreInfoPopupLERK21TFileManagerDriveInfo @ 25 NONAME
- _ZN19FileManagerDlgUtils26ShowConfirmQueryWithYesNoLERK7TDesC16 @ 26 NONAME
- _ZN19FileManagerDlgUtils26ShowConfirmQueryWithYesNoLEiRK7TDesC16 @ 27 NONAME
- _ZN19FileManagerDlgUtils29ShowConfirmQueryWithOkCancelLERK7TDesC16 @ 28 NONAME
- _ZN19FileManagerDlgUtils29ShowConfirmQueryWithOkCancelLEiRK7TDesC16 @ 29 NONAME
- _ZN21CFileManagerGlobalDlg11SetObserverEP29MFileManagerGlobalDlgObserver @ 30 NONAME
- _ZN21CFileManagerGlobalDlg11ShowDialogLENS_5TTypeERK7TDesC16i @ 31 NONAME
- _ZN21CFileManagerGlobalDlg11ShowDialogLENS_5TTypeEii @ 32 NONAME
- _ZN21CFileManagerGlobalDlg12CancelDialogEv @ 33 NONAME
- _ZN21CFileManagerGlobalDlg15ProcessFinishedEv @ 34 NONAME
- _ZN21CFileManagerGlobalDlg20UpdateProgressDialogEii @ 35 NONAME
- _ZN21CFileManagerGlobalDlg4NewLEv @ 36 NONAME
- _ZN21CFileManagerGlobalDlgD0Ev @ 37 NONAME
- _ZN21CFileManagerGlobalDlgD1Ev @ 38 NONAME
- _ZN21CFileManagerGlobalDlgD2Ev @ 39 NONAME
- _ZN21CFileManagerIconArray12UpdateIconsLEv @ 40 NONAME
- _ZN21CFileManagerIconArray4NewLEv @ 41 NONAME
- _ZN21CFileManagerIconArray8FindIconEi @ 42 NONAME
- _ZN21CFileManagerIconArrayD0Ev @ 43 NONAME
- _ZN21CFileManagerIconArrayD1Ev @ 44 NONAME
- _ZN21CFileManagerIconArrayD2Ev @ 45 NONAME
- _ZN32CFileManagerFolderNavigationPane11ChangeRootLEi @ 46 NONAME
- _ZN32CFileManagerFolderNavigationPane11SetObserverEP30MFileManagerFolderNaviObserver @ 47 NONAME
- _ZN32CFileManagerFolderNavigationPane14SetFolderDepthEi @ 48 NONAME
- _ZN32CFileManagerFolderNavigationPane21HandleResourceChangeLEi @ 49 NONAME
- _ZN32CFileManagerFolderNavigationPane4NewLEiiR15TResourceReader @ 50 NONAME
- _ZN32CFileManagerFolderNavigationPaneD0Ev @ 51 NONAME
- _ZN32CFileManagerFolderNavigationPaneD1Ev @ 52 NONAME
- _ZN32CFileManagerFolderNavigationPaneD2Ev @ 53 NONAME
- _ZNK32CFileManagerFolderNavigationPane11FolderDepthEv @ 54 NONAME
- _ZTI21CFileManagerGlobalDlg @ 55 NONAME ; #<TI>#
- _ZTI21CFileManagerIconArray @ 56 NONAME ; #<TI>#
- _ZTI32CFileManagerFolderNavigationPane @ 57 NONAME ; #<TI>#
- _ZTV21CFileManagerGlobalDlg @ 58 NONAME ; #<VT>#
- _ZTV21CFileManagerIconArray @ 59 NONAME ; #<VT>#
- _ZTV32CFileManagerFolderNavigationPane @ 60 NONAME ; #<VT>#
- _ZN21CFileManagerIconArray9LoadIconLERK7TDesC16iiiii @ 61 NONAME
-
--- a/filemanager/EABI/GFLMU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-EXPORTS
- _ZN14CGflmDriveItem17SetLocalizedNameLERK7TDesC16 @ 1 NONAME
- _ZN14CGflmDriveItem17SetRootDirectoryLERK7TDesC16 @ 2 NONAME
- _ZN14CGflmGroupItem9GetIconIdERi @ 3 NONAME
- _ZN14CGflmGroupItem9SetIconIdEi @ 4 NONAME
- _ZN18CGflmFileListModel10ClearCacheEv @ 5 NONAME
- _ZN18CGflmFileListModel10ResetModelEv @ 6 NONAME
- _ZN18CGflmFileListModel12CreateGroupLEi @ 7 NONAME
- _ZN18CGflmFileListModel12CreateGroupLEij @ 8 NONAME
- _ZN18CGflmFileListModel12RefreshListLER14TRequestStatus16TGflmRefreshMode @ 9 NONAME
- _ZN18CGflmFileListModel13CancelRefreshEv @ 10 NONAME
- _ZN18CGflmFileListModel13FindGroupByIdEi @ 11 NONAME
- _ZN18CGflmFileListModel13SetSortMethodE15TGflmSortMethod @ 12 NONAME
- _ZN18CGflmFileListModel14ClearDriveInfoEv @ 13 NONAME
- _ZN18CGflmFileListModel15SetCustomFilterEP15MGflmItemFilter @ 14 NONAME
- _ZN18CGflmFileListModel16EnableSearchModeEi @ 15 NONAME
- _ZN18CGflmFileListModel16ResolveMimeTypeLERK7TDesC16 @ 16 NONAME
- _ZN18CGflmFileListModel16SetSearchFolderLERK7TDesC16 @ 17 NONAME
- _ZN18CGflmFileListModel16SetSearchStringLERK7TDesC16 @ 18 NONAME
- _ZN18CGflmFileListModel4NewLER3RFs @ 19 NONAME
- _ZN19CGflmFileSystemItem17SetLocalizedNameLERK7TDesC16 @ 20 NONAME
- _ZN19CGflmNavigatorModel14GoToDirectoryLERK7TDesC16S2_ @ 21 NONAME
- _ZN19CGflmNavigatorModel14GoToDirectoryLERK7TDesC16i @ 22 NONAME
- _ZN19CGflmNavigatorModel4NewLER3RFs @ 23 NONAME
- _ZN19CGflmNavigatorModel9BackstepLEv @ 24 NONAME
- _ZN9GflmUtils10FullPathLCERK7TDesC16RK6TEntry @ 25 NONAME
- _ZN9GflmUtils11GetFullPathERK7TDesC16RK6TEntryR6TDes16 @ 26 NONAME
- _ZN9GflmUtils17HasFinalBackslashERK7TDesC16 @ 27 NONAME
- _ZN9GflmUtils19StripFinalBackslashERK7TDesC16 @ 28 NONAME
- _ZN9GflmUtils20EnsureFinalBackslashER6TDes16 @ 29 NONAME
- _ZN9GflmUtils9FullPathLERK7TDesC16RK6TEntry @ 30 NONAME
- _ZNK14CGflmDriveItem10VolumeInfoEv @ 31 NONAME
- _ZNK14CGflmDriveItem11DriveStatusEv @ 32 NONAME
- _ZNK14CGflmDriveItem12VolumeStatusEv @ 33 NONAME
- _ZNK14CGflmDriveItem13RootDirectoryEv @ 34 NONAME
- _ZNK14CGflmDriveItem5DriveEv @ 35 NONAME
- _ZNK18CGflmFileListModel10SortMethodEv @ 36 NONAME
- _ZNK18CGflmFileListModel11DriveFromIdEi @ 37 NONAME
- _ZNK18CGflmFileListModel13DriveFromPathERK7TDesC16 @ 38 NONAME
- _ZNK18CGflmFileListModel13LocalizedNameERK7TDesC16 @ 39 NONAME
- _ZNK18CGflmFileListModel4ItemEi @ 40 NONAME
- _ZNK18CGflmFileListModel9IsCorruptEv @ 41 NONAME
- _ZNK19CGflmFileSystemItem10FullPathLCEv @ 42 NONAME
- _ZNK19CGflmFileSystemItem11GetFullPathER6TDes16 @ 43 NONAME
- _ZNK19CGflmFileSystemItem5EntryEv @ 44 NONAME
- _ZNK19CGflmFileSystemItem9FullPathLEv @ 45 NONAME
- _ZNK19CGflmNavigatorModel12CurrentDriveEv @ 46 NONAME
- _ZNK19CGflmNavigatorModel15NavigationLevelEv @ 47 NONAME
- _ZNK19CGflmNavigatorModel16CurrentDirectoryEv @ 48 NONAME
- _ZNK19CGflmNavigatorModel31LocalizedNameOfCurrentDirectoryEv @ 49 NONAME
- _ZNK21CGflmGlobalActionItem2IdEv @ 50 NONAME
- _ZTI14CGflmDriveItem @ 51 NONAME ; #<TI>#
- _ZTI14CGflmGroupItem @ 52 NONAME ; #<TI>#
- _ZTI18CGflmFileListModel @ 53 NONAME ; #<TI>#
- _ZTI19CGflmFileFinderItem @ 54 NONAME ; #<TI>#
- _ZTI19CGflmFileSystemItem @ 55 NONAME ; #<TI>#
- _ZTI19CGflmNavigatorModel @ 56 NONAME ; #<TI>#
- _ZTI21CGflmGlobalActionItem @ 57 NONAME ; #<TI>#
- _ZTV14CGflmDriveItem @ 58 NONAME ; #<VT>#
- _ZTV14CGflmGroupItem @ 59 NONAME ; #<VT>#
- _ZTV18CGflmFileListModel @ 60 NONAME ; #<VT>#
- _ZTV19CGflmFileFinderItem @ 61 NONAME ; #<VT>#
- _ZTV19CGflmFileSystemItem @ 62 NONAME ; #<VT>#
- _ZTV19CGflmNavigatorModel @ 63 NONAME ; #<VT>#
- _ZTV21CGflmGlobalActionItem @ 64 NONAME ; #<VT>#
- _ZN18CGflmFileListModel10FlushCacheEv @ 65 NONAME
- _ZN18CGflmFileListModel10SearchModeEv @ 66 NONAME
-
--- a/filemanager/EABI/filemanagerbkupengineU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-EXPORTS
- _ZN16CMMCScBkupEngine15CancelOperationEv @ 1 NONAME
- _ZN16CMMCScBkupEngine15StartOperationLE23TMMCScBkupOperationTypeR24MMMCScBkupEngineObserverP22CMMCScBkupOpParamsBase @ 2 NONAME
- _ZN16CMMCScBkupEngine22ValidArchiveForRestoreERK7TDesC16 @ 3 NONAME
- _ZN16CMMCScBkupEngine4NewLER3RFs @ 4 NONAME
- _ZN16CMMCScBkupEngineD0Ev @ 5 NONAME
- _ZN16CMMCScBkupEngineD1Ev @ 6 NONAME
- _ZN16CMMCScBkupEngineD2Ev @ 7 NONAME
- _ZN20RMMCScBkupArchiveBuf5CloseEv @ 8 NONAME
- _ZN22CMMCScBkupOpParamsBase16SetArchiveInfosLER13RPointerArrayI21CMMCScBkupArchiveInfoE @ 9 NONAME
- _ZN22CMMCScBkupOpParamsBaseD0Ev @ 10 NONAME
- _ZN22CMMCScBkupOpParamsBaseD1Ev @ 11 NONAME
- _ZN22CMMCScBkupOpParamsBaseD2Ev @ 12 NONAME
- _ZN28CMMCScBkupOpParamsBackupFull4NewLER15TResourceReaderS1_12TDriveNumber10TBitFlagsTImE @ 13 NONAME
- _ZN28CMMCScBkupOpParamsBackupFullD0Ev @ 14 NONAME
- _ZN28CMMCScBkupOpParamsBackupFullD1Ev @ 15 NONAME
- _ZN28CMMCScBkupOpParamsBackupFullD2Ev @ 16 NONAME
- _ZN29CMMCScBkupOpParamsRestoreFull4NewLER15TResourceReader10TBitFlagsTImE @ 17 NONAME
- _ZN29CMMCScBkupOpParamsRestoreFullD0Ev @ 18 NONAME
- _ZN29CMMCScBkupOpParamsRestoreFullD1Ev @ 19 NONAME
- _ZN29CMMCScBkupOpParamsRestoreFullD2Ev @ 20 NONAME
- _ZN38CMMCScBkupDriveAndOperationTypeManager4NewLER15TResourceReader @ 21 NONAME
- _ZN38CMMCScBkupDriveAndOperationTypeManagerD0Ev @ 22 NONAME
- _ZN38CMMCScBkupDriveAndOperationTypeManagerD1Ev @ 23 NONAME
- _ZN38CMMCScBkupDriveAndOperationTypeManagerD2Ev @ 24 NONAME
- _ZNK16CMMCScBkupEngine13ListArchivesLER13RPointerArrayI21CMMCScBkupArchiveInfoEP22CMMCScBkupOpParamsBasemi @ 25 NONAME
- _ZNK16CMMCScBkupEngine14RebootRequiredEv @ 26 NONAME
- _ZNK16CMMCScBkupEngine19TotalOperationSizeLEv @ 27 NONAME
- _ZNK21CMMCScBkupArchiveInfo5DriveEv @ 28 NONAME
- _ZNK21CMMCScBkupArchiveInfo8CategoryEv @ 29 NONAME
- _ZNK21CMMCScBkupArchiveInfo8DateTimeEv @ 30 NONAME
- _ZNK21CMMCScBkupArchiveInfo8FileNameEv @ 31 NONAME
- _ZNK22CMMCScBkupOpParamsBase18DriveAndOperationsEv @ 32 NONAME
- _ZNK28CMMCScBkupOpParamsBackupFull13IncrementTypeEv @ 33 NONAME
- _ZNK28CMMCScBkupOpParamsBackupFull16AssociatedOpTypeEv @ 34 NONAME
- _ZNK28CMMCScBkupOpParamsBackupFull18ActiveTransferTypeEv @ 35 NONAME
- _ZNK28CMMCScBkupOpParamsBackupFull19PackageTransferTypeEv @ 36 NONAME
- _ZNK28CMMCScBkupOpParamsBackupFull19PassiveTransferTypeEv @ 37 NONAME
- _ZNK28CMMCScBkupOpParamsBackupFull8PartTypeEv @ 38 NONAME
- _ZNK29CMMCScBkupOpParamsRestoreFull13IncrementTypeEv @ 39 NONAME
- _ZNK29CMMCScBkupOpParamsRestoreFull16AssociatedOpTypeEv @ 40 NONAME
- _ZNK29CMMCScBkupOpParamsRestoreFull18ActiveTransferTypeEv @ 41 NONAME
- _ZNK29CMMCScBkupOpParamsRestoreFull19PackageTransferTypeEv @ 42 NONAME
- _ZNK29CMMCScBkupOpParamsRestoreFull19PassiveTransferTypeEv @ 43 NONAME
- _ZNK29CMMCScBkupOpParamsRestoreFull8PartTypeEv @ 44 NONAME
- _ZTI22CMMCScBkupDataStrategy @ 45 NONAME ; #<TI>#
- _ZTI37CMMCScBkupStateRequestSizeOfDataOwner @ 46 NONAME ; #<TI>#
- _ZTI44CMMCScBkupStateRequestSpecificPublicFileInfo @ 47 NONAME ; #<TI>#
- _ZTV22CMMCScBkupDataStrategy @ 48 NONAME ; #<VT>#
- _ZTV37CMMCScBkupStateRequestSizeOfDataOwner @ 49 NONAME ; #<VT>#
- _ZTV44CMMCScBkupStateRequestSpecificPublicFileInfo @ 50 NONAME ; #<VT>#
-
--- a/filemanager/Engine/data/FileManagerEngine.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,591 +0,0 @@
-/*
-* Copyright (c) 2002-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: Resource definitions for project FileManagerEngine
-*
-*/
-
-
-// RESOURCE IDENTIFIER
-NAME FMGE // 4 letter ID
-
-// INCLUDES
-#include <bldvariant.hrh>
-#include <eikon.rh>
-#include <eikon.rsg>
-#include <avkon.rsg>
-#include <avkon.rh>
-#include <avkon.mbg>
-#include <pathconfiguration.hrh>
-#include <filemanager.loc>
-#include "FileManagerEngine.rh"
-#include "FileManagerEngine.hrh"
-#include "BKupEngine.rh"
-#include "BkupEngine.hrh"
-#include "TMMCScBkupOwnerDataType.h"
-
-// RESOURCE DEFINITIONS
-
-RESOURCE RSS_SIGNATURE { }
-
-#ifndef RD_MULTIPLE_DRIVE
-
-RESOURCE ARRAY r_filemanager_default_folders
- {
- items =
- {
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_games_path;
- isMediaFolder = 0;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_images_path;
- isMediaFolder = 1;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_gms_pictures_path;
- isMediaFolder = 1;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_mms_background_images_path;
- isMediaFolder = 1;
- },
-#ifdef __DPB
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_presence_logos_path;
- isMediaFolder = 1;
- },
-#endif
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_installs_path;
- isMediaFolder = 0;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_others_path;
- isMediaFolder = 0;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_sounds_path;
- isMediaFolder = 1;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_digital_sounds_path;
- isMediaFolder = 1;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_simple_sounds_path;
- isMediaFolder = 1;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_phone_memory_root_path;
- folder = text_videos_path;
- isMediaFolder = 1;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_memory_card_root_path;
- folder = text_images_path;
- isMediaFolder = 1;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_memory_card_root_path;
- folder = text_others_path;
- isMediaFolder = 0;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_memory_card_root_path;
- folder = text_sounds_path;
- isMediaFolder = 1;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_memory_card_root_path;
- folder = text_digital_sounds_path;
- isMediaFolder = 1;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_memory_card_root_path;
- folder = text_simple_sounds_path;
- isMediaFolder = 1;
- },
- FILEMANAGER_DEFAULT_FOLDER
- {
- root = text_memory_card_root_path;
- folder = text_videos_path;
- isMediaFolder = 1;
- }
- };
- }
-
-#endif // RD_MULTIPLE_DRIVE
-
-RESOURCE ARRAY r_filemanager_mime_icon_mapper
- {
- items =
- {
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "mpegurl";
- iconId = EFileManagerPlaylistFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "ram";
- iconId = EFileManagerLinkFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "ota";
- iconId = EFileManagerPictureMsgFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "image";
- iconId = EFileManagerImageFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "presence";
- iconId = EFileManagerDycLogoFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "wml";
- iconId = EFileManagerLinkFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "amr";
- iconId = EFileManagerVoicerecFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "ringing-tone";
- iconId = EFileManagerVoicerecFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "awb";
- iconId = EFileManagerVoicerecFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "audio";
- iconId = EFileManagerSoundFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "java-archive";
- iconId = EFileManagerAppFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "x-zip";
- iconId = EFileManagerAppFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "j2me.app";
- iconId = EFileManagerAppFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "text";
- iconId = EFileManagerNoteFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "sis";
- iconId = EFileManagerAppFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "video";
- iconId = EFileManagerVideoFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "realmedia";
- iconId = EFileManagerVideoFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "game";
- iconId = EFileManagerGameFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "other";
- iconId = EFileManagerOtherFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "shockwave-flash";
- iconId = EFileManagerFlashFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "application/pdf";
- iconId = EFileManagerNoteFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "ms-powerpoint";
- iconId = EFileManagerNoteFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "ms-excel";
- iconId = EFileManagerNoteFileIcon;
- },
- FILEMANAGER_ICON_MAPPER
- {
- mimeType = "ms-word";
- iconId = EFileManagerNoteFileIcon;
- }
- };
- }
-
-#ifdef RD_MULTIPLE_DRIVE
-
-RESOURCE MMC_SECURE_BACKUP_DRIVES_AND_OPERATIONS r_filemanager_backup_restore_drives_and_operations
- {
- drivesAndOperations =
- {
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EBkupDeviceMemories | EBkupInternalMassStorages;
- type = EMMCScBkupOwnerDataTypeDataOwner;
- },
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EBkupDeviceMemories | EBkupInternalMassStorages;
- type = EMMCScBkupOwnerDataTypeJavaData;
- },
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EBkupDeviceMemories | EBkupInternalMassStorages;
- type = EMMCScBkupOwnerDataTypePublicData;
- },
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EBkupDeviceMemories | EBkupInternalMassStorages;
- type = EMMCScBkupOwnerDataTypeSystemData;
- },
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EBkupDeviceMemories | EBkupInternalMassStorages;
- type = EMMCScBkupOwnerDataTypeActiveData;
- },
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EBkupDeviceMemories | EBkupInternalMassStorages;
- type = EMMCScBkupOwnerDataTypePassiveData;
- }
- };
- }
-
-#else // RD_MULTIPLE_DRIVE
-
-RESOURCE MMC_SECURE_BACKUP_DRIVES_AND_OPERATIONS r_filemanager_backup_restore_drives_and_operations
- {
- /**
- *
- * By default we only backup & restore to/from the internal C: drive
- * to MMC
- *
- */
- drivesAndOperations =
- {
- ////////////////////////////////////////////////////////////
- // DRIVE C => Back up & restore everything....
- ////////////////////////////////////////////////////////////
-
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EMMCDriveNumberC;
- type = EMMCScBkupOwnerDataTypeDataOwner;
- },
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EMMCDriveNumberC;
- type = EMMCScBkupOwnerDataTypeJavaData;
- },
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EMMCDriveNumberC;
- type = EMMCScBkupOwnerDataTypePublicData;
- },
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EMMCDriveNumberC;
- type = EMMCScBkupOwnerDataTypeSystemData;
- },
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EMMCDriveNumberC;
- type = EMMCScBkupOwnerDataTypeActiveData;
- },
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EMMCDriveNumberC;
- type = EMMCScBkupOwnerDataTypePassiveData;
- }
-
- ////////////////////////////////////////////////////////////
- // DRIVE E => Not backing up anything currently
- ////////////////////////////////////////////////////////////
-/*
- MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- drive = EMMCDriveNumberE;
- type = EMMCScBkupOwnerDataTypeSystemData;
- }
-*/
- };
- }
-
-#endif // RD_MULTIPLE_DRIVE
-
-RESOURCE BACKUPCATEGORYARRAY r_filemanager_backup_categories
- {
- backupcategory=
- {
- ////////////////////////////////////////////////////////////
- // Note! EBUCatAllInOne is used for creating old style backup,
- // where all contents is in one archive. See howto from
- // CMMCScBkupOperationParameters.cpp and BkupEngine.hrh
- ////////////////////////////////////////////////////////////
- BACKUPCATEGORY
- {
- category=EBUCatAllInOne;
- archive_name="Backup.arc";
- special_flags=EBUCatSpecAll;
- exclude_special_flags=EBUCatSpecNone;
- uids=
- {
- };
- exclude_uids=
- {
- };
- },
- ////////////////////////////////////////////////////////////
- // Note! EBUCatSettings basicly contains everything else, but
- // sis and java installations and components, which are not
- // in the list of excluded UIDs'. It is supposed at least
- // Messages, Contacts, Calendar and Bookmarks should not be
- // included. Additionally call register information falls better
- // into EBUCatUserFiles as well as MediaGallery and Notepad
- ////////////////////////////////////////////////////////////
- BACKUPCATEGORY
- {
- category=EBUCatSettings;
- archive_name="Settings.arc";
- special_flags=EBUCatSpecAll;
- exclude_special_flags=EBUCatSpecSystem+EBUCatSpecJava;
- uids=
- {
- };
- exclude_uids=
- {
- 0x1000484b, // Message store (EBUCatMessages)
- 0x100058db, // MMS-settings (EBUCatMessages)
- 0x100058eb, // E-mail-settings (EBUCatMessages)
- 0x10003a73, // Contacts model (EBUCatContacts)
- 0x101f4cce, // Phonebook-app (EBUCatContacts)
- 0x10003a5b, // Agenda model (EBUCatCalendar)
- 0x10005901, // Calendar-app (EBUCatCalendar)
- 0x10008d38, // Bookmarks (EBUCatBookmarks)
- 0x101f401d, // Logs (EBUCatUserFiles)
- 0x101f8599, // MediaGallery, i.e. basicly all user data (EBUCatUserFiles)
- 0x101f84eb, // FileManager
- 0x10005907, // Notepad (EBUCatUserFiles)
- 0x1028246F, // Java Backup process
- 0x200211DC, // Java Captain process
- 0x102033E6 // MIDP2 Runtime process
- };
- },
- BACKUPCATEGORY
- {
- category=EBUCatMessages;
- archive_name="Messages.arc";
- special_flags=EBUCatSpecNone;
- exclude_special_flags=EBUCatSpecNone;
- uids=
- {
- 0x1000484b, // Message store
- 0x100058db, // MMS-settings
- 0x100058eb // E-mail-settings
- };
- exclude_uids=
- {
- };
- },
- BACKUPCATEGORY
- {
- category=EBUCatContacts;
- archive_name="Contacts.arc";
- special_flags=EBUCatSpecNone;
- exclude_special_flags=EBUCatSpecNone;
- uids=
- {
- 0x10003a73, // Contacts model
- 0x101f4cce // Phonebook-app
- };
- exclude_uids=
- {
- };
- },
- BACKUPCATEGORY
- {
- category=EBUCatCalendar;
- archive_name="Calendar.arc";
- special_flags=EBUCatSpecNone;
- exclude_special_flags=EBUCatSpecNone;
- uids=
- {
- 0x10003a5b, // Agenda model
- 0x10005901 // Calendar-app
- };
- exclude_uids=
- {
- };
- },
- BACKUPCATEGORY
- {
- category=EBUCatBookmarks;
- archive_name="Bookmarks.arc";
- special_flags=EBUCatSpecNone;
- exclude_special_flags=EBUCatSpecNone;
- uids=
- {
- 0x10008d38
- };
- exclude_uids=
- {
- };
- },
- ////////////////////////////////////////////////////////////
- // Note! We have to explicitly define what belongs to EBUCatUserFiles:
- // EBUCatSpecSystem => SIS-installations, EBUCatSpecJava => midlets
- // We do not specify EBUCatSpecPublic, because several data owners might
- // have "public" data in <drive>:\xxx folders. Instead MediaGallery defines
- // user data area for backup (currently C:\Data) in its backup configuration
- // (z:\private\101F8599\backup_registration.xml) file.
- ////////////////////////////////////////////////////////////
- BACKUPCATEGORY
- {
- category=EBUCatUserFiles;
- archive_name="UserFiles.arc";
- special_flags=EBUCatSpecSystem+EBUCatSpecJava;
- exclude_special_flags=EBUCatSpecNone;
- uids=
- {
- 0x101f401d, // Logs
- //0x101f8599, // MediaGallery, i.e. basicly all user data
- 0x101f84eb, // FileManager
- 0x10005907, // Notepad
- 0x1028246F, // Java Backup process
- 0x200211DC, // Java Captain process
- 0x102033E6 // MIDP2 Runtime process
- };
- exclude_uids=
- {
- };
- }
- };
- }
-
-RESOURCE TBUF r_text_mmc_backup_file { buf = "\\Backup\\Backup.arc"; }
-RESOURCE TBUF r_text_phone_memory { buf = qtn_fmgr_main_phone; }
-RESOURCE TBUF r_text_memory_card_default { buf = qtn_fmgr_main_card_default; }
-
-#ifdef RD_FILE_MANAGER_BACKUP
-RESOURCE TBUF r_qtn_fmgr_backup_contents { buf = qtn_fmgr_backup_contents; }
-RESOURCE TBUF r_qtn_fmgr_backup_scheduling { buf = qtn_fmgr_backup_scheduling; }
-RESOURCE TBUF r_qtn_fmgr_backup_weekday { buf = qtn_fmgr_backup_weekday; }
-RESOURCE TBUF r_qtn_fmgr_backup_time { buf = qtn_fmgr_backup_time; }
-RESOURCE TBUF r_qtn_fmgr_backup_destination { buf = qtn_fmgr_backup_destination; }
-
-RESOURCE TBUF r_qtn_fmgr_backup_no_scheduling { buf = qtn_fmgr_backup_no_scheduling; }
-RESOURCE TBUF r_qtn_fmgr_backup_daily { buf = qtn_fmgr_backup_daily; }
-RESOURCE TBUF r_qtn_fmgr_backup_weekly { buf = qtn_fmgr_backup_weekly; }
-
-RESOURCE TBUF r_qtn_fmgr_backup_content_all { buf = qtn_fmgr_backup_content_all; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_selected { buf = qtn_fmgr_backup_content_selected; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_settings { buf = qtn_fmgr_backup_content_settings; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_messages { buf = qtn_fmgr_backup_content_messages; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_contacts { buf = qtn_fmgr_backup_content_contacts; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_calendar { buf = qtn_fmgr_backup_content_calendar; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_bookmarks { buf = qtn_fmgr_backup_content_bookmarks; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_userfiles { buf = qtn_fmgr_backup_content_userfiles; }
-
-RESOURCE TBUF r_qtn_fmgr_restore_settings { buf = qtn_fmgr_restore_settings; }
-RESOURCE TBUF r_qtn_fmgr_restore_messages { buf = qtn_fmgr_restore_messages; }
-RESOURCE TBUF r_qtn_fmgr_restore_contacts { buf = qtn_fmgr_restore_contacts; }
-RESOURCE TBUF r_qtn_fmgr_restore_calendar { buf = qtn_fmgr_restore_calendar; }
-RESOURCE TBUF r_qtn_fmgr_restore_bookmarks { buf = qtn_fmgr_restore_bookmarks; }
-RESOURCE TBUF r_qtn_fmgr_restore_userfiles { buf = qtn_fmgr_restore_userfiles; }
-RESOURCE TBUF r_qtn_fmgr_main_backup { buf = qtn_fmgr_main_backup; }
-#endif // RD_FILE_MANAGER_BACKUP
-
-RESOURCE TBUF r_qtn_fmgr_main_phone { buf = qtn_fmgr_main_phone; }
-RESOURCE TBUF r_qtn_fmgr_main_card_default { buf = qtn_fmgr_main_card_default; }
-RESOURCE TBUF r_qtn_fmgr_title_phone_mem { buf = qtn_fmgr_title_phone_mem; }
-RESOURCE TBUF r_qtn_fmgr_title_mem_card { buf = qtn_fmgr_title_mem_card; }
-
-#ifdef RD_MULTIPLE_DRIVE
-RESOURCE TBUF r_qtn_fmgr_main_device_memory { buf = qtn_fmgr_main_device_memory; }
-RESOURCE TBUF r_qtn_fmgr_main_mass_storage { buf = qtn_fmgr_main_mass_storage; }
-RESOURCE TBUF r_qtn_fmgr_main_memory_card_default { buf = qtn_fmgr_main_memory_card_default; }
-RESOURCE TBUF r_qtn_fmgr_main_named_memory_card { buf = qtn_fmgr_main_named_memory_card; }
-
-RESOURCE TBUF r_qtn_fmgr_title_device_memory { buf = qtn_fmgr_title_device_memory; }
-RESOURCE TBUF r_qtn_fmgr_title_mass_storage { buf = qtn_fmgr_title_mass_storage; }
-RESOURCE TBUF r_qtn_fmgr_title_named_memory_card { buf = qtn_fmgr_title_named_memory_card; }
-RESOURCE TBUF r_qtn_fmgr_title_memory_card_default { buf = qtn_fmgr_title_memory_card_default; }
-#endif // RD_MULTIPLE_DRIVE
-
-RESOURCE TBUF r_qtn_fmgr_main_usb_default { buf = qtn_fmgr_main_usb_default; }
-RESOURCE TBUF r_qtn_fmgr_title_usb_default { buf = qtn_fmgr_title_usb_default; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_device_memory { buf = qtn_fmgr_backup_content_device_memory; }
-RESOURCE TBUF r_qtn_fmgr_backup_content_mass_storage{ buf = qtn_fmgr_backup_content_mass_storage; }
-RESOURCE TBUF r_qtn_fmgr_restore_device_memory { buf = qtn_fmgr_restore_device_memory; }
-RESOURCE TBUF r_qtn_fmgr_restore_mass_storage { buf = qtn_fmgr_restore_mass_storage; }
-RESOURCE TBUF r_qtn_fmgr_usb_memory_default_name { buf = qtn_fmgr_usb_memory_default_name; }
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerActiveBase.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
-* Copyright (c) 2007 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: Wraps wait note and real work thread
-*
-*/
-
-
-
-#ifndef CFILEMANAGERACTIVEBASE_H
-#define CFILEMANAGERACTIVEBASE_H
-
-// INCLUDES
-#include <e32std.h>
-#include <AknWaitNoteWrapper.h>
-#include "MFileManagerThreadFunction.h"
-
-// FORWARD DECLARATIONS
-class CFileManagerThreadWrapper;
-
-// CLASS DECLARATION
-/**
-* Class wraps wait note and real work thread to avoid long running steps
-* in the main thread that freezes the UI.
-*
-* @lib FileManagerEngine.lib
-* @since 3.2
-*/
-NONSHARABLE_CLASS(CFileManagerActiveBase) : public CBase,
- public MAknBackgroundProcess,
- public MFileManagerThreadFunction
- {
- public:
- /**
- * Constructor for subclasses.
- */
- void BaseConstructL();
-
- /**
- * Destructor.
- */
- ~CFileManagerActiveBase();
-
- TInt Result() const;
-
- private: // From MAknBackgroundProcess
- void StepL();
-
- TBool IsProcessDone() const;
-
- void DialogDismissedL( TInt aButtonId );
-
- private: // From MFileManagerThreadFunction
- void ThreadStepL();
-
- TBool IsThreadDone();
-
- void NotifyThreadClientL( TNotifyType aType, TInt aValue );
-
- protected:
- /**
- * For subclasses to handle all processing in work thread
- */
- virtual void ThreadFunctionL( const TBool& aCanceled ) = 0;
-
- /**
- * For subclasses to request cancel in work thread
- */
- virtual void CancelThreadFunction();
-
- protected:
- /**
- * C++ default constructor.
- */
- CFileManagerActiveBase();
-
- private: // Data
- // Wraps work thread control. Own.
- CFileManagerThreadWrapper* iThreadWrapper;
-
- // Indicates if background process is done or not
- TBool iDone;
-
- // Indicates if thread is canceled
- TBool iCanceled;
-
- // Indicates the result
- TInt iResult;
-
- };
-
-#endif // CFILEMANAGERACTIVEBASE_H
-
-// End of File
-
--- a/filemanager/Engine/inc/CFileManagerActiveExecute.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-/*
-* Copyright (c) 2002-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: Handles the copy/move operation
-*
-*/
-
-
-
-#ifndef CFILEMANAGERACTIVEEXECUTE_H
-#define CFILEMANAGERACTIVEEXECUTE_H
-
-// INCLUDES
-#include <e32base.h>
-#include <f32file.h>
-#include <badesca.h>
-#include "FileManagerEngine.hrh"
-#include "MFileManagerProcessObserver.h"
-#include "MFileManagerThreadFunction.h"
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-class MFileManagerItemIterator;
-//class CMGXFileManager;
-class CFileManagerThreadWrapper;
-
-/**
-* CFileManagerActiveExecute
-*
-* Handles the copy and move operations.
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerActiveExecute) : public CActive,
- public MFileManagerThreadFunction
-
- {
-
- public:
-
- /**
- * Overwrite file switch
- */
- enum TFileManagerSwitch
- {
- ENoOverWrite = 1,
- EOverWrite
- };
-
- /**
- * Two-phased constructor.
- * @since 2.0
- * @param aEngine reference to CFileManagerEngine instance
- * @param aOperation defines type of operation copy or move
- * @param aObserver reference to MFileManagerProcess implemented
- * instance
- * @param aIndexList list of indexes from current view which needs operation
- * @param aToFolder folder where items are moved or copied
- * @return Newly constructed CFileManagerActiveExecute
- */
- IMPORT_C static CFileManagerActiveExecute* NewL(
- CFileManagerEngine& aEngine,
- MFileManagerProcessObserver::TFileManagerProcess aOperation,
- MFileManagerProcessObserver& aObserver,
- CArrayFixFlat<TInt>& aIndexList,
- const TDesC& aToFolder );
-
- /**
- * Destructor
- */
- IMPORT_C ~CFileManagerActiveExecute();
-
- /**
- * Executes one operation at time, one file copy/move or directory creation
- * @since 2.0
- * @param aOverWrite Over write the file or not
- */
- IMPORT_C void ExecuteL( TFileManagerSwitch aOverWrite );
-
- /**
- * Cancel the operation
- * @since 2.0
- */
- IMPORT_C void CancelExecution();
-
- /**
- * Gets destination folder
- * @since 3.2
- */
- IMPORT_C TPtrC ToFolder();
-
- private:
-
- // From CActive
- void DoCancel();
- void RunL();
- TInt RunError(TInt aError);
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerActiveExecute( CFileManagerEngine& aEngine,
- MFileManagerProcessObserver::TFileManagerProcess aOperation,
- MFileManagerProcessObserver& aObserver );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( CArrayFixFlat<TInt>& aIndexList,
- const TDesC& aToFolder );
-
- private:
-
- /**
- * Item operation was succesfully carried on, move to next item
- */
- void KErrNoneActionL();
-
- /**
- * Item operation was not succesful because there was target item already
- * This function deals that situation
- */
- void KErrAlreadyExistsActionL();
-
- /**
- * Takes last folder name on other string and appends it to other
- * @param aResult Stores the result as full path
- * @param aSrc source full path which last folder name is taken
- * @param aDst target path where source last path is appended
- */
- void AddLastFolder( TDes& aResult, const TDesC& aSrc, const TDesC& aDst );
-
- /**
- * Performs a copy or move operation
- *
- * @param aSwitch indicate destination file to be overwritten or not
- * @return system wide error code
- */
- TInt DoOperation( TInt aSwitch );
-
- /**
- * Checks if directory is empty
- *
- * @param aDir Full path of the directory
- * @return ETrue if directory is empty, otherwise EFalse
- */
- TBool IsEmptyDir( const TDesC& aDir );
-
- /**
- * Completes operation
- *
- * @param aError Operation result
- */
- void CompleteL( TInt aError );
-
- /**
- * Updates MG2 notifications
- *
- * @param aForceFlush Indicates if notications are flushed
- * @param aError Indicates the result
- */
- void UpdateNotifications( TBool aFlush, TInt aError );
-
- static void AppendArrayIfNotFound(
- CDesCArray& aArray, const TDesC& aFullPath );
-
- void FlushArray( CDesCArray& aArray );
-
- void ThreadCopyOrMoveStepL();
-
- void ThreadFinalizeMoveStepL();
-
- private: // From MFileManagerThreadFunction
-
- void ThreadStepL();
-
- TBool IsThreadDone();
-
- void NotifyThreadClientL( TNotifyType aType, TInt aValue );
-
- private:
-
- // index to current CDir array
- TInt iCurrentIndex;
-
- // Own: Source item with full path
- HBufC* iFullPath;
-
- // Own: Destination item with full path
- HBufC* iDestination;
-
- // Has user cancelled the operation
- TBool iCancelled;
-
- // Source directory is empty so special operations are needed
- TBool iEmptyDir;
-
- // Needed to get the item locations behind given index(es)
- CFileManagerEngine& iEngine;
-
- // Ref: Shareable file server session
- RFs& iFs;
-
- // Move or copy operation
- MFileManagerProcessObserver::TFileManagerProcess iOperation;
-
- // Own: Array of user selected items to be copied/moved
- CArrayFixFlat< TInt >* iIndexList;
-
- // Own: user given destination folder
- HBufC* iToFolder;
-
- // Own: This is either CFileManagerIndexIterator or CFileManagerFileSystemIterator
- // depending of source item type, file or folder
- MFileManagerItemIterator* iItemIterator;
-
- // Ref: File operation phases are signaled through this interface
- MFileManagerProcessObserver& iObserver;
-
- // Ref: Current source item with full path
- // Needed for file already exist situations.
- HBufC* iSrc;
-
- // Ref: Current destination item with full path
- // Needed for file already exist situations.
- HBufC* iDst;
-
- // Total transferred bytes, used for progress note
- // except in same drive move operation
- TUint iBytesTransferredTotal;
-
- // Total transferred files, used for progress note
- // This is used if move operation is done inside drive
- TInt iFilesTransferredTotal;
-
- // Current error
- TInt iError;
-
- // Ref: MG2 update notification object
- //CMGXFileManager* iMgxFileManager;
-
- // Own: Thread wrapper for the operation
- CFileManagerThreadWrapper* iThreadWrapper;
-
- // Indicates the used operation switches
- TInt iSwitch;
-
- // Own: Buffer for storing changed items for MG2 notifications
- CDesCArray* iChangedSrcItems;
-
- // Own: Buffer for storing changed items for MG2 notifications
- CDesCArray* iChangedDstItems;
-
- // Indicates that the operation is done inside same drive
- TBool iOperationOnSameDrive;
-
- // Indicates that move operation is finalizing
- TBool iFinalizeMove;
-
- // Indicates that source of the operation is on remote drive
- TBool iIsSrcRemoteDrive;
-
- // Indicates that destination of the operation is on remote drive
- TBool iIsDstRemoteDrive;
-
- // Stores type of the current item
- TFileManagerTypeOfItem iItemType;
- };
-
-#endif // CFILEMANAGERACTIVEEXECUTE_H
-
- // End of File
--- a/filemanager/Engine/inc/CFileManagerActiveRename.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
-* Copyright (c) 2007 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: Class wraps rename operation
-*
-*/
-
-
-
-#ifndef CFILEMANAGERACTIVERENAME_H
-#define CFILEMANAGERACTIVERENAME_H
-
-// INCLUDES
-#include <e32std.h>
-#include "CFileManagerActiveBase.h"
-
-// FORWARD DECLARATIONS
-class RFs;
-class CFileManagerEngine;
-class CFileManagerUtils;
-
-// CLASS DECLARATION
-/**
-* Class wraps rename operation.
-*
-* @lib FileManagerEngine.lib
-* @since 3.2
-*/
-NONSHARABLE_CLASS( CFileManagerActiveRename ) : public CFileManagerActiveBase
- {
- public:
- /**
- * Constructor.
- */
- static CFileManagerActiveRename* NewL(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils,
- const TDesC& aName,
- const TDesC& aNewName );
-
- /**
- * Destructor.
- */
- ~CFileManagerActiveRename();
-
- private: // From CFileManagerActiveBase
- void ThreadFunctionL( const TBool& aCanceled );
-
- void CancelThreadFunction();
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerActiveRename(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils );
-
- void ConstructL( const TDesC& aName, const TDesC& aNewName );
-
- TInt ThreadGetMaxSubfolderPathL( const TBool& aCanceled );
-
- private: // Data
- // Ref: File Manager engine
- CFileManagerEngine& iEngine;
-
- // Ref: File Manager utils
- CFileManagerUtils& iUtils;
-
- // Ref: Shareable file server session
- RFs& iFs;
-
- // Own: Stores name.
- HBufC* iName;
-
- // Own: Stores new name.
- HBufC* iNewName;
-
- // Indicates if operation is done in remote drive
- TBool iIsRemoteDrive;
- };
-
-#endif // CFILEMANAGERACTIVERENAME_H
-
-// End of File
-
--- a/filemanager/Engine/inc/CFileManagerBackupSettings.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,320 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Backup settings
-*
-*/
-
-
-#ifndef C_FILEMANAGERBACKUPSETTINGS_H
-#define C_FILEMANAGERBACKUPSETTINGS_H
-
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <badesca.h>
-
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-class CRepository;
-
-
-// CLASS DECLARATION
-/**
- * This class is used for storing backup settings
- *
- * @lib FileManagerEngine.lib
- * @since S60 3.1
- */
-NONSHARABLE_CLASS(CFileManagerBackupSettings) : public CBase,
- public MDesCArray
- {
-
-public:
- /** Backup setting type */
- enum TSettingType
- {
- ENone = 0,
- EContents,
- EScheduling,
- EWeekday,
- ETime,
- ETarget
- };
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerBackupSettings* NewL(
- CFileManagerEngine& aEngine );
-
- /**
- * Destructor
- */
- ~CFileManagerBackupSettings();
-
- /**
- * Sets backup contents
- *
- * @since S60 3.1
- * @param aContent Content bitmask
- */
- IMPORT_C void SetContent( const TUint32 aContent );
-
- /**
- * Sets backup scheduling
- *
- * @since S60 3.1
- * @param aScheduling Scheduling type
- */
- IMPORT_C void SetScheduling( const TInt aScheduling );
-
- /**
- * Sets backup weekday
- *
- * @since S60 3.1
- * @param aDay Backup weekday (See TDay)
- */
- IMPORT_C void SetDay( const TInt aDay );
-
- /**
- * Sets backup time
- *
- * @since S60 3.1
- * @param aTime Time from 00:00
- */
- IMPORT_C void SetTime( const TTime& aTime );
-
- /**
- * Sets backup target drive
- *
- * @since S60 3.1
- * @param aDrive Target drive (See TDriveNumber)
- */
- IMPORT_C void SetTargetDrive( const TInt aDrive );
-
- /**
- * Gets backup contents
- *
- * @since S60 3.1
- * @return Content bitmask
- */
- IMPORT_C TUint32 Content() const;
-
- /**
- * Gets backup scheduling
- *
- * @since S60 3.1
- * @return Scheduling type
- */
- IMPORT_C TInt Scheduling() const;
-
- /**
- * Gets backup weekday
- *
- * @since S60 3.1
- * @return Backup weekday (See TDay)
- */
- IMPORT_C TInt Day() const;
-
- /**
- * Gets backup time
- *
- * @since S60 3.1
- * @return Backup time
- */
- IMPORT_C const TTime& Time() const;
-
- /**
- * Gets backup target drive
- *
- * @since S60 3.1
- * @return Backup time
- */
- IMPORT_C TInt TargetDrive() const;
-
- /**
- * Saves backup settings
- *
- * @since S60 3.1
- */
- IMPORT_C void SaveL();
-
- /**
- * Gets setting type at position
- *
- * @since S60 3.1
- * @param aIndex Position
- * @return Setting type
- */
- IMPORT_C TInt SettingAt( const TInt aIndex );
-
- /**
- * Refreshes backup settings
- *
- * @since S60 3.1
- */
- IMPORT_C void RefreshL();
-
- /**
- * Gets textid from content bit
- *
- * @since S60 3.1
- * @param aContent content bit
- * @return Textid
- */
- static TInt ContentToTextId( const TUint32 aContent );
-
- /**
- * Gets allowed drive attribute match mask
- *
- * @since S60 3.1
- * @return drive attribute mask
- */
- IMPORT_C TUint32 AllowedDriveAttMatchMask() const;
-
-public: // From MDesCArray
- TInt MdcaCount() const;
-
- TPtrC MdcaPoint( TInt aIndex ) const;
-
-private:
- /** Backup setting entry */
- NONSHARABLE_CLASS(CEntry) : public CBase
- {
- public:
- ~CEntry();
-
- HBufC* iText;
- TSettingType iType;
- };
-
-private:
- /**
- * Constructors
- */
- CFileManagerBackupSettings( CFileManagerEngine& aEngine );
-
- void ConstructL();
-
- /**
- * Gets the count of contents selected
- */
- TInt ContentsSelected() const;
-
- /**
- * Creates backup setting entry
- */
- CEntry* CreateEntryLC(
- const TSettingType aType,
- const TInt aTitleId,
- const TInt aTextId,
- const TInt aValue = 0 );
-
- /**
- * Creates backup setting entry
- */
- CEntry* CreateEntryLC(
- const TSettingType aType,
- const TInt aTitleId,
- const TDesC& aText );
-
- /**
- * Creates backup setting content entry
- */
- CEntry* CreateContentsEntryLC();
-
- /**
- * Creates backup setting time entry
- */
- CEntry* CreateTimeEntryLC();
-
- /**
- * Loads saved backup settings
- */
- void LoadL();
-
- /**
- * Refreshes backup setting list entries
- */
- void RefreshListL();
-
- /**
- * Creates backup setting target drive entry
- */
- CEntry* CreateTargetDriveEntryLC();
-
- /**
- * Checks for multiple backup targets
- */
- TBool HasMultipleBackupTargets();
-
-private: // Data
- /**
- * Reference to file manager engine
- * Not own.
- */
- CFileManagerEngine& iEngine;
-
- /**
- * Content bitmask
- */
- TUint32 iContent;
-
- /**
- * Scheduling type
- */
- TInt iScheduling;
-
- /**
- * Scheduled backup weekday
- */
- TInt iDay;
-
- /**
- * Scheduled backup time from 00:00
- */
- TTime iTime;
-
- /**
- * Backup target drive
- */
- TInt iTargetDrive;
-
- /**
- * Backup setting list items
- */
- RPointerArray< CEntry > iList;
-
- /**
- * Allowed drive match mask
- */
- TUint32 iAllowedDriveMatchMask;
-
- /**
- * Pointer to CenRep
- * Own.
- */
- CRepository* iCenRep;
-
- /**
- * Feature configuration
- */
- TInt iFileManagerFeatures;
-
- };
-
-#endif // C_FILEMANAGERBACKUPSETTINGS_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerCommonDefinitions.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Common file manager definitions
-*
-*/
-
-
-#ifndef CFILEMANAGERCOMMONDEFINITIONS_H
-#define CFILEMANAGERCOMMONDEFINITIONS_H
-
-
-// CONSTANTS
-_LIT( KFmgrBackslash, "\\" );
-const TInt KFmgrBackslashSpace = 1;
-
-// Left to right and right to left markers
-_LIT( KFmgrDirectionalChars, "\x202A\x202B\x202C\x202D\x200E\x200F" );
-
-_LIT( KFmgrTab, "\t" );
-_LIT( KFmgrLineFeed, "\n" );
-_LIT( KFmgrParagraphSeparator, "\x2029" );
-_LIT( KFmgrSpace, " " );
-
-const TInt KFmgrDoubleMaxFileName = KMaxFileName * 2;
-
-_LIT( KFmgrFatFSName, "Fat" );
-
-#endif // CFILEMANAGERCOMMONDEFINITIONS_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerDocHandler.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/*
-* Copyright (c) 2004-2007 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: Wraps document handler functions
-*
-*/
-
-
-
-#ifndef CFILEMANAGERDOCHANDLER_H
-#define CFILEMANAGERDOCHANDLER_H
-
-// INCLUDES
-#include <apparc.h>
-#include <AknServerApp.h>
-#include <apgcli.h>
-#include "MFileManagerThreadFunction.h"
-
-// FORWARD DECLARATIONS
-class CDocumentHandler;
-class CFileManagerEngine;
-class CFileManagerUtils;
-class CEikProcess;
-class CFileManagerThreadWrapper;
-class MFileManagerProcessObserver;
-
-
-// CLASS DECLARATION
-/**
-* This class wraps dochandler functions
-*
-* @lib FileManagerEngine.lib
-* @since 2.7
-*/
-NONSHARABLE_CLASS(CFileManagerDocHandler) : public CBase,
- public MAknServerAppExitObserver,
- public MFileManagerThreadFunction
- {
- public:
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerDocHandler* NewL(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils );
-
- /**
- * Destructor.
- */
- ~CFileManagerDocHandler();
-
- private: // From MAknServerAppExitObserver
- void HandleServerAppExit( TInt aReason );
-
- private: // From MFileManagerThreadFunction
-
- void ThreadStepL();
-
- TBool IsThreadDone();
-
- void NotifyThreadClientL( TNotifyType aType, TInt aValue );
-
- public: // New functions
- void OpenFileL(
- const TDesC& aFullPath, MFileManagerProcessObserver* aObserver );
-
- void CancelFileOpen();
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerDocHandler(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- void OpenShareableFileL( RFile64& aShareableFile, const TDesC8& aMime );
-
- private:
-
- // Ref: To notify engine of embedded application
- CFileManagerEngine& iEngine;
-
- // Ref: For using utilities
- CFileManagerUtils& iUtils;
-
- // Ref: Shareable file server session
- RFs& iFs;
-
- // Own: For launching files
- CDocumentHandler* iDocHandler;
-
- // Own: Shareable file
- RFile64 iFile;
-
- // Own: File ready indicator
- TBool iFileReady;
-
- // Own: File fullpath
- HBufC* iFileFullPath;
-
- // Own: File MIME type
- HBufC8* iFileMime;
-
- // Ref: Observer for document open status
- MFileManagerProcessObserver* iObserver;
-
- // Own: For async file open for downloading file to cache
- CFileManagerThreadWrapper* iThreadWrapper;
-
- // Own: For getting app uids
- RApaLsSession iApaSession;
-
- // Own: Indicates the file open status
- TBool iEmbeddedAppOpen;
-
- };
-
-#endif // CFILEMANAGERDOCHANDLER_H
--- a/filemanager/Engine/inc/CFileManagerEngine.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,928 +0,0 @@
-/*
-* Copyright (c) 2002-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: Main class of the File Manager Engine
-*
-*/
-
-
-
-#ifndef CFILEMANAGERENGINE_H
-#define CFILEMANAGERENGINE_H
-
-// INCLUDES
-#include <e32base.h>
-#include <badesca.h>
-#include <f32file.h>
-#include <AknServerApp.h>
-#include "MFileManagerProcessObserver.h"
-#include "FileManagerEngine.hrh"
-#include "TFileManagerDriveInfo.h"
-#include "CFileManagerRestoreSettings.h"
-
-// CONSTANTS
-// File Manager engine spcific error codes
-// defined numbers should be far away from system wide error code numbers
-const TInt KErrFmgrSeveralFilesInUse = -4500;
-const TInt KErrFmgrDefaultFolder = -4501;
-const TInt KErrFmgrNotSupportedRemotely = -4502;
-
-// FORWARD DECLARATIONS
-class CGflmNavigatorModel;
-class CFileManagerItemProperties;
-class CFileManagerActiveDelete;
-class CFileManagerActiveSize;
-class CFileManagerActiveExecute;
-class CFileManagerRefresher;
-class CFileManagerFileSystemEvent;
-class CFileManagerUtils;
-//class CMGXFileManager;
-class CFileManagerItemFilter;
-class CFileManagerRemovableDriveHandler;
-class CFileManagerRemoteDriveHandler;
-class CFileManagerDocHandler;
-class CFileManagerBackupSettings;
-class CFileManagerRestoreSettings;
-class CFileManagerActiveRename;
-class CFileManagerFeatureManager;
-class MAknServerAppExitObserver;
-
-
-// CLASS DECLARATION
-/**
-* This class implements the main functionalities of File Manager Engine
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerEngine) : public CBase
- {
-
- public:
-
- // Engine state
- enum TState
- {
- ENavigation = 0, // For using navigation list model
- ESearch // For using search list model
- };
-
- // Sort method
- enum TSortMethod
- {
- EByName = 0,
- EByType,
- EMostRecentFirst,
- ELargestFirst,
- EByMatch
- };
-
- public:
- /**
- * Two-phased constructor.
- * @param aFs Shareable file server session, see RFs::ShareProtected()
- * @return Pointer to a CFileManagerEngine instance
- */
- IMPORT_C static CFileManagerEngine* NewL( RFs& aFs );
-
- /**
- * Destructor.
- */
- IMPORT_C ~CFileManagerEngine();
-
- public: // Interface
-
- /**
- * Set currently viewed memory
- * @since 2.0
- * @param aMemory The memory type
- * @return system wide error code
- */
- IMPORT_C TInt SetMemoryL( TFileManagerMemory aMemory );
-
- /**
- * Returns the currently viewed memory
- * @since 2.0
- * @return TFileManagerMemory, the memory type
- */
- IMPORT_C TFileManagerMemory Memory() const;
-
- /**
- * Returns selected views item in array, which ListBox can show
- * @since 2.0
- * @return Array of formatted strings of current view
- */
- IMPORT_C MDesCArray* FileList() const;
-
- /**
- * Engine signals events with this observer
- * @since 2.0
- * @param aObserver The process observer or NULL, ownership is not transferred
- */
- IMPORT_C void SetObserver( MFileManagerProcessObserver* aObserver );
-
- /**
- * Returns full path of the current directory
- * @since 2.0
- * @return Full path of current directory
- */
- IMPORT_C TPtrC CurrentDirectory() const;
-
- /**
- * Returns localized name of the current directory
- * @since 2.0
- * @return Full path of current directory
- */
- IMPORT_C TPtrC LocalizedNameOfCurrentDirectory() const;
-
- /**
- * This backsteps the navigator to previously visible folder
- * @since 2.0
- */
- IMPORT_C void BackstepL();
-
- /**
- * Returns the type of given item index in CFileManagerItemProperties bitmask
- * @since 2.0
- * @param aIndex The index to current view index.
- * @return CFileManagerItemProperties bitmask
- */
- IMPORT_C TUint32 FileTypeL( const TInt aIndex ) const;
-
- /**
- * Returns the type of given item index in CFileManagerItemProperties bitmask
- * @since 2.0
- * @param aFullPath Full path to item which type is needed..
- * @return CFileManagerItemProperties bitmask
- */
- IMPORT_C TUint32 FileTypeL( const TDesC& aFullPath ) const;
-
- /**
- * Delete file(s) or folder, caller should delete the returned object.
- * @since 2.0
- * @param aIndexList List of indexes from current directory which is going to be deleted
- * @return pointer to newly created CFileManagerActiveDelete object
- */
- IMPORT_C CFileManagerActiveDelete* CreateActiveDeleteL(
- CArrayFixFlat< TInt >& aIndexList );
-
- /**
- * Creates a new folder
- * @since 2.0
- * @param aFolderName Name of the new folder which is created current directory
- */
- IMPORT_C void NewFolderL( const TDesC& aFolderName );
-
- /**
- * Set the current item name
- * @since 5.0
- * @param aFileName File name to be set
- */
- IMPORT_C void SetCurrentItemName( const TDesC& aFileName );
-
- /**
- * Rename the file or folder.
- * @since 3.2
- * @param aIndex index of the file or folder from current directory
- * @param aNewFileName name where that file or folder name is changed
- * @return System wide error code
- */
- IMPORT_C void RenameL( const TInt aIndex, const TDesC& aNewFileName );
-
- /**
- * Opens the file or folder
- * @since 2.0
- * @param aIndex from the current directory list
- */
- IMPORT_C void OpenL( const TInt aIndex );
-
- /**
- * Returns the depth of the current folder
- * @since 2.0
- * @return Current depth in folder tree, 0 is root, 1 one folder down
- */
- IMPORT_C TInt FolderLevel();
-
- /**
- * Checks from current directory, if the name is found
- * @since 2.0
- * @param aString Name which is matched with current directory files and folders
- * @return ETrue if exists
- * EFalse if not exists in current directory
- */
- IMPORT_C TBool IsNameFoundL(const TDesC& aString);
-
- /**
- * returns number of the current drive.
- * @since 2.0
- * @returns TDriveNumber type, or KErrNotFound if no current drive set
- */
- IMPORT_C TInt CurrentDrive();
-
- /**
- * returns info class of the item
- * @since 2.0
- * @param aIndex to current directory item
- * @return class which contains all necessary data for info box, receiver must delete it
- */
- IMPORT_C CFileManagerItemProperties* GetItemInfoL( const TInt aIndex );
-
- /**
- * returns info about MMC status
- * @since 2.0
- * @return class which contains all necessary data for MMC status
- */
- IMPORT_C TFileManagerDriveInfo GetMMCInfoL() const;
-
- /**
- * Sets the state of the engine
- * @since 2.0
- * @param aState TState, the state type
- */
- IMPORT_C void SetState( TState aState );
-
- /**
- * Gets the state of the engine
- * @since 2.0
- * @return TState, the state type
- */
- IMPORT_C CFileManagerEngine::TState State() const;
-
- /**
- * Updates the current view
- * @since 2.0
- */
- IMPORT_C void RefreshDirectory();
-
- /**
- * Returns string which was used for finding items
- * @since 2.0
- * @return Ref to string
- */
- IMPORT_C TPtrC SearchString() const;
-
- /**
- * Is given file name valid
- * @since 2.0
- * @param aDriveAndPath root path
- * @param aName name of the file
- * @param aIsFolder ETrue folder and EFalse file name
- * @return ETrue if file name is valid
- */
- IMPORT_C TBool IsValidName(
- const TDesC& aDriveAndPath,
- const TDesC& aName,
- TBool aIsFolder ) const;
-
- /**
- * Check that if given file name contains illegal characters
- * @since 2.0
- * @param aName name of the file
- * @return ETrue if file name is valid
- */
- IMPORT_C TBool IllegalChars( const TDesC& aName ) const;
-
- /**
- * Check that there is enough memory to do specific operation
- * @since 2.0
- * @param aToFolder Target memory
- * @param aSize Space needed bytes
- * @param aOperation Move or Copy
- * @return ETrue if there is enough space for operation
- */
- IMPORT_C TBool EnoughSpaceL(
- const TDesC& aToFolder,
- TInt64 aSize,
- MFileManagerProcessObserver::TFileManagerProcess aOperation ) const;
-
- /**
- * Sets the file system event on or off
- * @since 2.0
- * @param aSet ETrue sets file system event
- * EFalse turns events off
- */
- IMPORT_C void FileSystemEvent( TBool aEventOn );
-
- /**
- * Returns the current focus index if rename, copy/move or new folder
- * operation has happened
- * @since 2.0
- * @return index to current focused item,
- * KErrNotFound if not found
- */
- IMPORT_C TInt CurrentIndex();
-
- /**
- * returns the file name with full path which is behind given index
- * @since 2.0
- * @param aIndex to current directory item
- * @return HBufC buffer which caller must release after usage
- */
- IMPORT_C HBufC* IndexToFullPathL( const TInt aIndex) const;
-
- /**
- * returns the file name with full path which is behind given index
- * @since 3.2
- * @param aIndex to current directory item
- * @return HBufC buffer which caller must release after usage
- */
- IMPORT_C HBufC* IndexToFullPathLC( const TInt aIndex ) const;
-
- /**
- * Checks given item that can it be deleted.
- * @since 2.0
- * @param aFullPath full path to item which is checked
- * @returns ETrue if item can be deleted, EFalse if not
- */
- TBool CanDelete( const TDesC& aFullPath ) const;
-
- /**
- * returns localized name of the given item
- * @since 2.0
- * @param aFullPath full path to item which is checked
- * @returns TDesC reference to localized name
- */
- IMPORT_C TPtrC LocalizedName( const TDesC& aFullPath ) const;
-
- /**
- * returns the count of files in folder
- * @since 2.0
- * @return count of files in folder
- */
- IMPORT_C TInt FilesInFolderL();
-
- /**
- * Cancels the refresh operation
- * @since 2.0
- * @return ETrue if refresh process is cancelled,
- * EFalse if there wasn't any refresh process ongoing
- */
- IMPORT_C TBool CancelRefresh();
-
- /**
- * Checks given index is it folder, this call is very quick
- * because it uses icon information to retrieve item type
- * @since 2.0
- * @param aIndex index to item
- * @return ETrue item behind the index is folder
- * EFalse item behind the index is not folder
- */
- IMPORT_C TBool IsFolder( const TInt aIndex ) const;
-
- /**
- * Asynchronous notifies about drive added or changed
- * @since 5.2
- * @param aPtr Pointer to an instance of this class
- * @return 0
- */
- static TInt DriveAddedOrChangeAsyncL( TAny* aPtr );
-
- /**
- * Notifies about drive added or changed
- * @since 3.1
- */
- void DriveAddedOrChangedL();
-
- /**
- * Notifies about folder content changed
- * @since 3.2
- */
- void FolderContentChangedL();
-
- /**
- * Resolves the icon id of the given item index
- * @since 2.7
- * @param aIndex index to item
- * @return Icon id of the item behind the index
- *
- */
- IMPORT_C TInt IconIdL( const TInt aIndex ) const;
-
- /**
- * Checks is given folder system folder
- * @since 3.1
- * @param aFull Full path to item
- * @return ETrue if folder is system folder, EFalse if not
- */
- IMPORT_C TBool IsSystemFolder( const TDesC& aFullPath ) const;
-
- /**
- * Gets current drive name
- * @since 3.2
- * @return Drive name
- */
- IMPORT_C TPtrC CurrentDriveName();
-
- /**
- * Renames the current drive
- * @since 3.1
- * @param aDrive Drive number EDriveA...EDriveZ
- * @param aName The new name
- * @return System wide error code
- */
- IMPORT_C TInt RenameDrive(
- const TInt aDrive, const TDesC& aName );
-
- /**
- * Retrieves current drive information
- * @param aInfo A reference to a TFileManagerDriveInfo object
- */
- IMPORT_C void GetDriveInfoL( TFileManagerDriveInfo& aInfo );
-
- /**
- * Sets password on current drive
- * @since 3.1
- * @param aDrive Drive number EDriveA...EDriveZ
- * @param aOld The old password
- * @param aNew The new password
- * @return System wide error code
- */
- IMPORT_C TInt SetDrivePassword(
- const TInt aDrive,
- const TMediaPassword& aOld,
- const TMediaPassword& aNew );
-
- /**
- * Removes password from current drive
- * @since 3.1
- * @param aDrive Drive number EDriveA...EDriveZ
- * @param aPwd The current password
- * @return System wide error code
- */
- IMPORT_C TInt RemoveDrivePassword(
- const TInt aDrive,
- const TMediaPassword& aPwd );
-
- /**
- * Unlocks the current drive
- * @since 3.1
- * @param aDrive Drive number EDriveA...EDriveZ
- * @param aPwd The current password
- * @return System wide error code
- */
- IMPORT_C TInt UnlockDrive(
- const TInt aDrive,
- const TMediaPassword& aPwd );
-
- /**
- * Starts format process
- * @since 3.1
- * @param aDrive Drive number EDriveA...EDriveZ
- */
- IMPORT_C void StartFormatProcessL( const TInt aDrive );
-
- /**
- * Starts eject process
- * @since 3.2
- * @param aDrive Drive number EDriveA...EDriveZ
- */
- IMPORT_C void StartEjectProcessL( const TInt aDrive );
-
- /**
- * Initiates backup or restore process
- * @since 3.1
- * @param aProcess The process to start:
- * EBackupProcess or ERestoreProcess
- */
- IMPORT_C void StartBackupProcessL(
- MFileManagerProcessObserver::TFileManagerProcess aProcess );
-
- /**
- * Cancels ongoing process
- * @since 3.1
- * @param aProcess The process to cancel
- */
- IMPORT_C void CancelProcess(
- MFileManagerProcessObserver::TFileManagerProcess aProcess );
-
- /**
- * Get drive state
- * @since 3.1
- * @param aState For TFileManagerDriveInfo::TDriveState bits
- * @param aPath Only drive letter is used
- * @return System wide error code
- */
- IMPORT_C TInt DriveState( TUint32& aState, const TDesC& aPath ) const;
-
- /**
- * Get drive state
- * @since 3.1
- * @param aState For TFileManagerDriveInfo::TDriveState bits
- * @param aDrive
- * @return System wide error code
- */
- IMPORT_C TInt DriveState( TUint32& aState, const TInt aDrive ) const;
-
- /**
- * Determine if given file must be protected (kept on the device)
- * @since 3.1
- * @param aFullPath Full path to item
- * @param aIsProtected The protection status
- * @return System wide error code
- */
- IMPORT_C TInt IsDistributableFile( const TDesC& aFullPath,
- TBool& aIsProtected ) const;
-
- /**
- * Connects or disconnects remote drive
- * @since 3.1
- * @param aDrive Drive number EDriveA...EDriveZ
- * @param aConnect ETrue when connecting, EFalse when disconnecting
- * @return System wide error code
- */
- IMPORT_C TInt SetRemoteDriveConnection(
- const TInt aDrive, TBool aConnect );
-
- /**
- * Deletes the remote drive settings from remote storage framework
- * @since 3.1
- * @param aDrive Drive number EDriveA...EDriveZ
- * @return System wide error code
- */
- IMPORT_C TInt DeleteRemoteDrive( const TInt aDrive );
-
- /**
- * Gets drive root directory
- * @since 3.1
- * @param aDrive Drive number EDriveA...EDriveZ
- * @return Reference to root directory string
- */
- IMPORT_C TPtrC DriveRootDirectory( const TInt aDrive ) const;
-
- /**
- * Gets backup settings
- * @since 3.1
- * @return Reference to backup settings.
- */
- IMPORT_C CFileManagerBackupSettings& BackupSettingsL();
-
- /**
- * Gets restore settings
- * @since 3.1
- * @return Reference to restore settings.
- */
- IMPORT_C CFileManagerRestoreSettings& RestoreSettingsL();
-
- /**
- * Gets drive name
- * @since 3.1
- * @param aDrive Drive that name is required
- * @return Reference to drive name.
- */
- IMPORT_C TPtrC DriveName( const TInt aDrive );
-
- /**
- * Gets drive info
- * @since 3.1
- * @param aDrive Drive that info is required
- * @param aInfo For storing drive info
- */
- IMPORT_C void GetDriveInfoL(
- const TInt aDrive, TFileManagerDriveInfo& aInfo ) const;
-
- /**
- * Gets restore info array
- * @since 3.1
- * @param aArray For storing restore info
- * @param aDrive For getting info from specific drive
- */
- IMPORT_C void GetRestoreInfoArrayL(
- RArray< CFileManagerRestoreSettings::TInfo >& aArray,
- const TInt aDrive = KErrNotFound ) const;
-
- /**
- * Checks if any ejectable drive is present
- * @since 3.1
- * @return ETrue if present, otherwise EFalse
- */
- IMPORT_C TBool AnyEjectableDrivePresent() const;
-
- /**
- * Ensures that contents of a directory are up to date
- * including remote drives when current view is updated
- * @since 3.1
- */
- IMPORT_C void ForcedRefreshDirectory();
-
- /**
- * Calculates the total size of given items
- * @since 3.2
- * @param aIndexList List of indexes from current directory
- * @return Total size
- */
- IMPORT_C TInt64 GetFileSizesL(
- const CArrayFixFlat< TInt >& aIndexList );
-
- /**
- * Gets navigation level, the depth of backstep stack
- * @since 3.2
- * @return The navigation level
- */
- IMPORT_C TInt NavigationLevel() const;
-
- /**
- * Gets drive name and letter as combined formatted text.
- * @since 5.0
- * @param aDrive Drive number EDriveA...EDriveZ
- * @param aTextIdForDefaultName TextId of default name format string
- * @param aTextIdForName TextId of name format string
- * @return Text containing drive letter and name
- */
- IMPORT_C HBufC* GetFormattedDriveNameLC(
- const TInt aDrive,
- const TInt aTextIdForDefaultName,
- const TInt aTextIdForName = 0 ) const;
-
- /**
- * Returns info class of the item
- * @since 5.0
- * @param aIndex to current directory item
- * @return class which contains all necessary data for info box, receiver must delete it
- */
- IMPORT_C CFileManagerItemProperties* GetItemInfoLC( const TInt aIndex );
-
- /**
- * Sets search string.
- * @since 3.2
- * @param aSearchString Search string
- */
- IMPORT_C void SetSearchStringL( const TDesC& aSearchString );
-
- /**
- * Sets search folder.
- * @since 3.2
- * @param aSearchString Search folder
- */
- IMPORT_C void SetSearchFolderL( const TDesC& aSearchFolder );
-
- /**
- * Sets the directory with backsteps.
- * @since 3.2
- * @param aDirectory New current directory
- */
- IMPORT_C void SetDirectoryWithBackstepsL( const TDesC& aDirectory );
-
- /**
- * Stores current navigation index.
- * @since 3.2
- * @param aIndex The index to current view index.
- */
- IMPORT_C void SetCurrentIndex( const TInt aIndex );
-
- /**
- * Sets the sort method of the engine
- * @since 5.0
- * @param aSortMethod TSortMethod, the sort method type
- */
- IMPORT_C void SetSortMethod( TSortMethod aSortMethod );
-
- /**
- * Gets the sort method of the engine
- * @since 5.0
- * @return TSortMethod, the sort method type
- */
- IMPORT_C CFileManagerEngine::TSortMethod SortMethod() const;
-
- /**
- * Re-sorts the current view
- * @since 5.0
- */
- IMPORT_C void RefreshSort();
-
- /**
- * Gets the feature manager
- * @since 3.2
- */
- IMPORT_C CFileManagerFeatureManager& FeatureManager() const;
-
- /**
- * Set server application exit observer
- * @Param aObserver The ServerAppExit observer or NULL, ownership is not transferred
- */
- IMPORT_C void SetAppExitOb( MAknServerAppExitObserver* aObserver );
-
- /**
- * Deletes the backup archives selected using
- * CFileManagerRestoreSettings::SetSelection() method.
- * @since 5.0
- */
- IMPORT_C void DeleteBackupsL();
-
- /**
- * Check if a drive is mounted
- * @Param aDrive The target drive to check
- * @Return TBool to indicate check result
- * @since 5.2
- */
- IMPORT_C TBool IsDriverMounted( TInt aDrive );
-
- public:
-
- /**
- * Set whether the file is a sis file
- * @Param aSisFile file is or not a sis file
- */
- void SetSisFile( TBool aSisFile );
-
- /*
- * Notice the ServerAppExit event
- * @Param aReason the reason of the server application exit
- */
- void NoticeServerAppExit( TInt aReason );
-
- /**
- * Sets embedded app status
- * @param aStatus ETrue if embedded app on, EFalse if not
- */
- void EmbeddedAppStatus( TBool aStatus );
-
- /* MFileManagerWaitNote */
- void ShowWaitDialogL( MAknBackgroundProcess& aProcess );
-
- //CMGXFileManager& MGXFileManagerL();
-
- RFs& Fs() const;
-
- TBool HasAppRemoteDriveSupport( TUid aUid );
-
- TBool IsRemoteDriveConnected( const TInt aDrive ) const;
-
- TBool BackupFileExistsL( const TInt aDrive ) const;
-
- // Ensures that drive info is refreshed on next update
- void ClearDriveInfo();
-
- // Cancels ongoing transfer
- void CancelTransfer( const TDesC& aFullPath );
-
- /**
- * Gets the latest backup time
- * @since 5.0
- * @param aBackupTime Stores the latest backup time
- * @return System wide error code
- */
- TInt LatestBackupTime( TTime& aBackupTime );
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerEngine( RFs& aFs );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- // Adds current dir fullpath to given name, returns HBufC buffer which must be released
- HBufC* AddFullPathLC( const TDesC& aName, const TBool aIsFolder );
-
- // Sets file system event watcher for given path
- void SetFileSystemEventL( const TDesC& aFullPath = KNullDesC );
-
- // For checking mount state
- TInt CheckDriveMountL( TInt aDrive ) const;
-
- // For getting drive info
- void GetDriveInfoL(
- const TDesC& aPath, TFileManagerDriveInfo& aInfo ) const;
-
- // Opens file
- void OpenFileL( const TDesC& aFullPath );
-
- // Opens directory
- void OpenDirectoryL( const TDesC& aFullPath );
-
- // Checks is current drive available
- TBool CurrentDriveAvailable();
-
- /**
- * Start asynchronous disk event notification timer
- * @since 5.2
- */
- void StartDiskEventNotifyTimerAsyncL();
-
- /**
- * Stop asynchronous disk event notification timer
- * @since 5.2
- */
- void StopDiskEventNotifyTimerAsync();
-
- private:
-
- // Own: General File List Model is used via this object.
- CGflmNavigatorModel* iNavigator;
-
- // Ref: For file operations
- RFs& iFs;
-
- // Normal or search state
- TState iState;
-
- // Own: String which was used in latest search
- HBufC* iSearchString;
-
- // Own: String which is used for search process
- HBufC* iSearchProcessString;
-
- // Own: AO for async GFLM refresh operation
- CFileManagerRefresher* iRefresher;
-
- // Ref: Handle to current observer
- MFileManagerProcessObserver* iProcessObserver;
-
- // Own: Handles file system events
- CFileManagerFileSystemEvent* iFileSystemEvent;
-
- // item name of current index, used to search current index
- TFileName iCurrentItemName;
-
- // Own: Folder size calculation
- CFileManagerActiveSize* iActiveSize;
-
- // Own: Checks drive notifications
- CFileManagerFileSystemEvent* iDiskEvent;
-
- // Own: Indicates if embedded application is on
- TBool iEmbeddedApplicationOn;
-
- // Own: MG2 update notification object
- //CMGXFileManager* iMgxFileManager;
-
- // Own: Compines services of couple classes
- CFileManagerUtils* iUtils;
-
- // Own: Used for item filtering
- CFileManagerItemFilter* iItemFilter;
-
- // Own: Used for handling memory card etc functinalities
- CFileManagerRemovableDriveHandler* iRemovableDrvHandler;
-
- // Own: Used for handling remote drive functinalities
- CFileManagerRemoteDriveHandler* iRemoteDrvHandler;
-
- // Own: Used for opening files
- CFileManagerDocHandler* iDocHandler;
-
- // Own: Used for backup settings
- CFileManagerBackupSettings* iBackupSettings;
-
- // Own: Used for restore settings
- CFileManagerRestoreSettings* iRestoreSettings;
-
- // Own: Indicates last drive available status
- TBool iLastDriveAvailable;
-
- // Own: Stores current drive info
- TFileManagerDriveInfo iCurrentDriveInfo;
-
- // Own: Indicates if current drive info is refreshed
- TBool iCurrentDriveInfoRefreshed;
-
- // Own: Indicates if wait dialog is on
- TBool iWaitDialogOn;
-
- // Own: Stores drive name
- HBufC* iDriveName;
-
- // Own: Navigation indices
- RArray< TInt > iNavigationIndices;
-
- // Own: Used for rename
- CFileManagerActiveRename* iActiveRename;
-
- // Own: Used for storing search folder
- HBufC* iSearchFolder;
-
- // Own: Indicates file system event status
- TBool iFileSystemEventEnabled;
-
- // Own: Indicates if drive added or changed update is postponed
- TBool iDriveAddedOrChangedPostponed;
-
- // Own: Manages runtime variated features
- CFileManagerFeatureManager* iFeatureManager;
-
- // Ref: Handle to current ServerAppExit observer
- MAknServerAppExitObserver* iObserver;
-
- //Own: Whether the file was a sis type
- TBool iSisFile;
-
- //Own: postpone disk event notification while disk refresh is ongoing
- CPeriodic* iDelayedDiskEventNotify;
- };
-
-#endif // CFILEMANAGERENGINE_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerFeatureManager.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/*
-* Copyright (c) 2007-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: This class manages the runtime variated features
-*
-*/
-
-
-
-#ifndef C_FILEMANAGERFEATUREMANAGER_H
-#define C_FILEMANAGERFEATUREMANAGER_H
-
-#include <e32std.h>
-
-/**
-* This class manages the runtime variated features
-*
-* @lib FileManagerEngine.lib
-* @since 3.2
-*/
-NONSHARABLE_CLASS(CFileManagerFeatureManager) : public CBase
- {
-public:
- /**
- * Two-phased constructor.
- */
- static CFileManagerFeatureManager* NewL();
-
- /**
- * Destructor.
- */
- virtual ~CFileManagerFeatureManager();
-
- /**
- * Checks if feature is supported
- * @since 3.2
- */
- IMPORT_C TBool IsDrmFullSupported() const;
-
- /**
- * Checks if feature is supported
- * @since 3.2
- */
- IMPORT_C TBool IsHelpSupported() const;
-
- /**
- * Checks if feature is supported
- * @since 3.2
- */
- IMPORT_C TBool IsIrdaSupported() const;
-
- /**
- * Checks if feature is supported
- * @since 3.2
- */
- IMPORT_C TBool IsRemoteStorageFwSupported() const;
-
- /**
- * Checks if feature is supported
- * @since 3.2
- */
- IMPORT_C TBool IsMmcPassWdSupported() const;
-
- /**
- * Checks if feature is supported
- * @since 3.2
- */
- IMPORT_C TBool IsWesternVariant() const;
-
- /**
- * Checks if feature is supported
- * @since 3.2
- */
- IMPORT_C TBool IsMmcSwEjectSupported() const;
-
- /**
- * Checks if feature specified by TFileManagerFeatures is supported
- * @since 3.2
- */
- IMPORT_C TBool IsFeatureSupported( TInt aFileManagerFeature ) const;
-
- /**
- * Checks if the application is in embedded mode
- * @since 3.2
- */
- IMPORT_C TBool IsEmbedded() const;
-
-private:
- /**
- * C++ default constructor.
- */
- CFileManagerFeatureManager();
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
-private: // Data
- TBool iDrmFullSupported;
- TBool iHelpSupported;
- TBool iIrdaSupported;
- TBool iRemoteStorageFwSupported;
- TBool iMmcPassWdSupported;
- TBool iWesternVariant;
- TBool iMmcSwEjectSupported;
- TBool iEmbedded;
- TInt iFileManagerFeatures;
- };
-
-#endif // C_FILEMANAGERFEATUREMANAGER_H
--- a/filemanager/Engine/inc/CFileManagerFileSystemIterator.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Goes through folder tree one item at time
-*
-*/
-
-
-#ifndef CFILEMANAGERFILESYSTEMITERATOR_H
-#define CFILEMANAGERFILESYSTEMITERATOR_H
-
-// INCLUDES
-#include <e32base.h>
-#include <f32file.h>
-#include "Mfilemanageritemiterator.h"
-
-
-class CFileManagerEngine;
-
-/**
-* Goes through all the folder items of given folder. Implements the
-* MFileManagerItemIterator.
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerFileSystemIterator) :
- public CBase,
- public MFileManagerItemIterator
- {
- public:
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerFileSystemIterator* NewL(
- RFs& aFs,
- const TDesC& aSrcDir,
- const TDesC& aDstDir,
- CFileManagerEngine& aEngine );
-
- /**
- * Destructor.
- */
- ~CFileManagerFileSystemIterator();
-
- public: // From MFileManagerItemIterator
- void CurrentL(
- HBufC** aSrc, HBufC** aDst, TFileManagerTypeOfItem& aItemType );
-
- TBool NextL();
-
- public:
-
- /**
- * returns localized path
- * @since 2.0
- * @return reference to localized path string
- */
- TPtrC LocalizedAbbreviatedPath();
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerFileSystemIterator(
- const TDesC& aDstDir, CFileManagerEngine& aEngine );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( RFs& aFs, const TDesC& aSrcDir );
-
- private:
- // Own: With this folders are scan through
- CDirScan* iDirScan;
-
- // Own: CDirScan returns this, contains one folder content at time
- CDir* iDir;
-
- // Index to current CDir array item which is processed
- TInt iCount;
-
- // Own: Current item source fullpath
- // reserved here so that caller can then use this via reference
- HBufC* iSrc;
-
- // Own: Current item destination fullpath
- // reserved here so that caller can then use this via reference
- HBufC* iDst;
-
- // Ref: Destination directory
- const TDesC& iDstDir;
-
- // Set when all folders are gone through
- TBool iFolderScanDone;
-
- // Own: Source directory
- HBufC* iSrcDir;
-
- // Ref: File Manager engine
- CFileManagerEngine& iEngine;
-
- // Own: Localized Abbreviated Path
- TFileName iLocalizedAbbreviatedPath;
-
- };
-
-#endif // CFILEMANAGERFILESYSTEMITERATOR_H
-
--- a/filemanager/Engine/inc/CFileManagerFolderEntry.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Holds one default folder entry
-*
-*/
-
-
-#ifndef CFILEMANAGERFOLDERENTRY_H
-#define CFILEMANAGERFOLDERENTRY_H
-
-// INCLUDES
-#include <e32base.h>
-
-// FORWARD DECLARATIONS
-class TResourceReader;
-
-/**
-* One default folder entry.
-* Contains fullpath of the default folder and information
-* is it media folder or nor.
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerFolderEntry) : public CBase
- {
- public:
- /**
- * Two-phased constructors.
- */
- static CFileManagerFolderEntry* NewLC( TResourceReader& aReader );
-
- static CFileManagerFolderEntry* NewL( TResourceReader& aReader );
-
- static CFileManagerFolderEntry* NewLC(
- const TInt aDrive, const TDesC& aPath );
-
- /**
- * Destructor.
- */
- ~CFileManagerFolderEntry();
- public: // New functions
-
- /**
- * Is the default folder media folder or not
- * @since 2.0
- * @return ETrue if default folder is media folder, EFalse if not
- */
- TBool IsMediaFolder() const;
-
- /**
- * Returns reference to full path information of default folder
- * @since 2.0
- * @return Reference to default folder full path descriptor.
- */
- TPtrC Name() const;
-
- /**
- * Used for sorting folder entries
- * @since 3.2
- * @param aFirst Reference to the first folder entry
- * @param aSecond Reference to the second folder entry
- * @return Comparison result.
- */
- static TInt CompareSort(
- const CFileManagerFolderEntry& aFirst,
- const CFileManagerFolderEntry& aSecond );
-
- /**
- * Used for finding folder from sorted entries
- * @since 3.2
- * @param aPath Path to find
- * @param aItem Reference to the folder entry
- * @return Comparison result.
- */
- static TInt CompareFind(
- const TDesC* aPath,
- const CFileManagerFolderEntry& aItem );
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerFolderEntry();
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructFromResourceL( TResourceReader& aReader);
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( const TInt aDrive, const TDesC& aPath );
-
- private: // Date
- // Own: Full path information of default folder
- HBufC* iName;
-
- // Is the default folder media folder
- TBool iIsMediaFolder;
-
- };
-
-
-#endif // CFILEMANAGERFOLDERENTRY_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerIRReceiver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Receives obex object via InfraRed, used to receive files
-*
-*/
-
-
-
-#ifndef CFILEMANAGERIRRECEIVER_H
-#define CFILEMANAGERIRRECEIVER_H
-
-// INCLUDES
-#include <e32base.h>
-#include <obex.h>
-
-// FORWARD DECLARATIONS
-class CObexServer;
-class CObexBufObject;
-class MFileManagerProcessObserver;
-class CFileManagerEngine;
-
-// CLASS DECLARATION
-/**
-* Handles the file receiving via infrared
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerIRReceiver) : public CBase,
- public MObexServerNotify
- {
- public:
-
- /**
- * Two-phased constructor.
- */
- IMPORT_C static CFileManagerIRReceiver* NewL(
- MFileManagerProcessObserver& aObserver,
- const TDesC& aPath,
- CFileManagerEngine& aEngine );
-
- /**
- * Destructor.
- */
- IMPORT_C ~CFileManagerIRReceiver();
-
- /**
- * Receives file through IR and stores it to
- * iPath location. Filename is get from
- * sent file and not included in iPath.
- */
- IMPORT_C void ReceiveFileL();
-
- /**
- * Stops receive process and discards all received data.
- */
- IMPORT_C void StopReceiving();
-
- public: // From MObexServerNotify
- /**
- * @see MObexServerNotify
- */
- void ErrorIndication (TInt aError);
- /**
- * @see MObexServerNotify
- */
- void TransportUpIndication ();
- /**
- * @see MObexServerNotify
- */
- void TransportDownIndication ();
- /**
- * @see MObexServerNotify
- */
- TBool TargetHeaderReceived(TDesC8& aTargetHeader);
- /**
- * @see MObexServerNotify
- */
- TInt ObexConnectIndication(
- const TObexConnectInfo& aRemoteInfo, const TDesC8& aInfo );
- /**
- * @see MObexServerNotify
- */
- void ObexDisconnectIndication (const TDesC8& aInfo);
- /**
- * @see MObexServerNotify
- */
- CObexBufObject* PutRequestIndication ();
- /**
- * @see MObexServerNotify
- */
- TInt PutPacketIndication ();
- /**
- * @see MObexServerNotify
- */
- TInt PutCompleteIndication ();
- /**
- * @see MObexServerNotify
- */
- CObexBufObject* GetRequestIndication(
- CObexBaseObject* aRequiredObject );
- /**
- * @see MObexServerNotify
- */
- TInt GetPacketIndication ();
- /**
- * @see MObexServerNotify
- */
- TInt GetCompleteIndication ();
- /**
- * @see MObexServerNotify
- */
- TInt SetPathIndication(
- const CObex::TSetPathInfo& aPathInfo, const TDesC8& aInfo );
- /**
- * @see MObexServerNotify
- */
- void AbortIndication ();
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerIRReceiver(
- MFileManagerProcessObserver& aObserver,
- CFileManagerEngine& aEngine,
- RFs& aFs );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( const TDesC& aPath );
-
- /**
- * Resets inactivity timer.
- */
- void ResetInactivityTimer();
-
- /**
- * Stops inactivity timer.
- */
- void StopInactivityTimer();
-
- /**
- * Handles inactivity timeout.
- */
- static TInt InactivityTimeout( TAny* aPtr );
-
- /**
- * Closes connection on timeout.
- */
- void CloseConnection();
-
- private:
- // Caller is informed about starting and stopping of the process. Also
- // the processed percentage is updated with this observer.
- MFileManagerProcessObserver& iObserver;
-
- // Own: Handles the obex object transfer
- CObexServer* iObexServer;
-
- // Own: Obex object of the received file
- CObexBufObject* iObexBufObject;
-
- // Own: Destination directory where the received file will be stored
- HBufC* iTempFile;
-
- // Ref. For checking file exists situation
- CFileManagerEngine& iEngine;
-
- // Error code
- TInt iError;
-
- // Is disk space already checked
- TBool iDiskSpaceChecked;
-
- // is there enought space
- TBool iEnoughSpace;
-
- // Ref: File server session
- RFs& iFs;
-
- // Own: temp buffer
- CBufFlat* iBuffer;
-
- // Own: Inactivity timer
- CPeriodic* iInactivityTimer;
-
- };
-
-#endif // CFILEMANAGERIRRECEIVER_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerItemFilter.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Filter GFLM items
-*
-*/
-
-
-#ifndef C_FILEMANAGERITEMFILTER_H
-#define C_FILEMANAGERITEMFILTER_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <f32file.h>
-#include "MGflmItemFilter.h"
-
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-
-
-// CLASS DECLARATION
-/**
-* This class handles GFLM item filtering
-*
-* @lib FileManagerEngine.lib
-* @since 3.1
-*/
-NONSHARABLE_CLASS(CFileManagerItemFilter) : public CBase,
- public MGflmItemFilter
- {
-
-public: // Constructors and destructor
- /**
- * Two-phased constructor.
- */
- static CFileManagerItemFilter* NewL( CFileManagerEngine& aEngine );
-
- /**
- * Destructor.
- */
- virtual ~CFileManagerItemFilter();
-
-public: // From MGflmItemFilter
- /**
- * @see MGflmItemFilter
- */
- TBool FilterItemL(
- CGflmGroupItem* aItem, TInt aGroupId, CGflmDriveItem* aDrive );
-
-private:
- /**
- * C++ default constructor.
- */
- CFileManagerItemFilter( CFileManagerEngine& aEngine );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
-private: // Data
- /**
- * Reference to file manager engine
- * Not own.
- */
- CFileManagerEngine& iEngine;
-
- /**
- * For file name handling
- */
- TFileName iFileNameBuffer;
-
- /**
- * Contains phone memory root path
- * Own.
- */
- HBufC* iPhoneMemoryRootPath;
-
- /**
- * Contains phone memory default name
- * Own.
- */
- HBufC* iInternalDefaultName;
-
- /**
- * Contains memory card default name
- * Own.
- */
- HBufC* iRemovableDefaultName;
-
- };
-
-#endif // C_FILEMANAGERITEMFILTER_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerItemProperties.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,307 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Holds item information
-*
-*/
-
-
-
-#ifndef CFILEMANAGERITEMPROPERTIES_H_
-#define CFILEMANAGERITEMPROPERTIES_H_
-
-// INCLUDES
-#include <e32base.h>
-#include <f32file.h>
-
-// FORWARD DECLARATIONS
-class CFileManagerActiveSize;
-class CFileManagerUtils;
-class CFileManagerActiveCount;
-class CGflmGroupItem;
-class CFileManagerEngine;
-
-/**
-* Engine gathers the item information to this object.
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerItemProperties) : public CBase
- {
- public:
- /* Bitmask bits of the item types */
- enum TFileManagerFileType
- {
- ENotDefined = 0x00,
- EFolder = 0x01,
- EDefault = 0x02,
- EMedia = 0x04,
- EFile = 0x08,
- EForwardLocked = 0x10,
- EPlaylist = 0x20,
- ELink = 0x40,
- EOpen = 0x80,
- EReadOnly = 0x100,
- EDrmProtected = 0x200,
- EDrmLocalDataFile = 0x400
- };
- public:
- /**
- * Two-phased constructor.
- */
- static CFileManagerItemProperties* NewL(
- const TDesC& aFullPath,
- CFileManagerUtils& aUtils,
- CFileManagerEngine& aEngine );
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerItemProperties* NewL(
- const CGflmGroupItem& aItem,
- CFileManagerUtils& aUtils,
- CFileManagerEngine& aEngine );
-
- /**
- * Destructor.
- */
- IMPORT_C ~CFileManagerItemProperties();
-
- public:
-
- /**
- * Gets the name of the item
- * @since 2.7
- * @return Name of the item, file name without extension
- * or directory name
- */
- IMPORT_C TPtrC Name() const;
-
- /**
- * Gets the item modification time (universal time)
- * @since 2.7
- * @return TTime when item was last modified
- */
- IMPORT_C TTime ModifiedDate() const;
-
- /**
- * Size of the item, size of the file or size of the dir
- * @since 2.7
- * @return Item size in bytes
- */
- IMPORT_C TInt64 SizeL();
-
- /**
- * Count of files in directory, subdirectories not included
- * @since 2.7
- * @return File count in dir, -1 if item is file
- */
- IMPORT_C TInt FilesContainedL();
-
- /**
- * Count of folders in directory,
- * directories in subdirectories are not included
- * @since 2.7
- * @return Folder count in dir, -1 if item is file
- */
- IMPORT_C TInt FoldersContainedL();
-
- /**
- * Count of open files in directory
- * @since 2.7
- * @return count of open files in directory, -1 if item is file
- */
- IMPORT_C TInt OpenFilesL();
-
- /**
- * Returns item type information
- * @since 2.7
- * @return TFileManagerFileType information of item
- */
- IMPORT_C TUint32 TypeL();
-
- /**
- * Item extension
- * @since 2.7
- * @return File extension, empty if item is dir
- */
- IMPORT_C TPtrC Ext() const;
-
- /**
- * Fullpath of item, includes drive, path and name with extension
- * @since 2.7
- * @return fullpath
- */
- IMPORT_C TPtrC FullPath() const;
-
- /**
- * Gets the name of the item with extension
- * @since 2.7
- * @return Name of the item
- */
- IMPORT_C TPtrC NameAndExt() const;
-
- /**
- * Localized name of item if found, if not Name() is returned
- * @since 2.7
- * @return Localized name
- */
- IMPORT_C TPtrC LocalizedName() const;
-
- /**
- * Gets the item modification time (local time)
- * @since 3.1
- * @param aTime For local time
- * @return Error code
- */
- IMPORT_C TInt ModifiedLocalDate( TTime& aTime ) const;
-
- /**
- * Checks if item contains any files or folders
- * @since 3.1
- * @return ETrue if contains any items, EFalse if not
- */
- IMPORT_C TBool ContainsAnyFilesOrFolders();
-
- /**
- * Gets MIME type of file
- * @since 3.1
- * @return MIME type
- */
- IMPORT_C TPtrC MimeTypeL();
-
- /**
- * Checks if item is a drive item
- * @since 3.1
- * @return ETrue if drive item, otherwise EFalse
- */
- IMPORT_C TBool IsDrive() const;
-
- /**
- * Gets drive name
- * @since 3.1
- * @return drive name
- */
- IMPORT_C TPtrC DriveName() const;
-
- /**
- * Checks if item is on remote drive
- * @since 3.2
- * @return ETrue if item on remote drive, otherwise EFalse
- */
- IMPORT_C TBool IsRemoteDrive() const;
-
- /**
- * Gets drive id
- * @since 5.0
- * @return Drive id
- */
- IMPORT_C TInt DriveId() const;
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerItemProperties(
- CFileManagerUtils& aUtils,
- CFileManagerEngine& aEngine );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( const TDesC& aFullPath );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( const TDesC& aFullPath, const TEntry& aEntry );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( const CGflmGroupItem& aItem );
-
- // Counts file sizes in given folder
- TInt64 FolderSizeL( const TDesC& aFullPath );
-
- // Counts items in directory, given parameter defines the type of count
- TInt CountItemsL(
- const TFileManagerFileType& aType );
-
- void EnsureEntryDataFetched() const;
-
- void SetEntryData( const TEntry& aEntry ) const;
-
- private:
-
- // Own: Location in file system
- HBufC* iFullPath;
-
- // Size of the file in bytes. In case of folder, this is a sum of all items
- // under the folder including the subfolders.
- mutable TInt64 iSize;
-
- // How many files are inside the folder, subfolders not counted
- // In case of file this is undefined
- TInt iFilesContained;
-
- // How many folders are inside the folder, subfolders are not counted
- // In case of file this is undefined
- TInt iFoldersContained;
-
- // How many open files are inside the folder
- // In case of file this is undefined
- TInt iOpenFiles;
-
- // type of item, TFileManagerFileType bitmask
- TUint32 iType;
-
- // Own: Folder size calculation
- CFileManagerActiveSize* iActiveSize;
-
- // Own: Folder properties
- CFileManagerActiveCount* iActiveCount;
-
- // Item modification day, copied from items TEntry
- mutable TTime iModified;
-
- // Ref: Contains some useful common services, localizer, RFs...
- CFileManagerUtils& iUtils;
-
- // Ref: Contains some useful common services
- CFileManagerEngine& iEngine;
-
- enum TItemState // Internal state bit definitions
- {
- EItemDirectory = 0x1,
- EItemDrive = 0x2,
- EItemAction = 0x4,
- EItemFile = 0x8,
- EItemHasFilesOrFolders = 0x10,
- EItemHasNoFilesOrFolders = 0x20,
- EItemRemoteDrive = 0x40,
- EItemEntryDataFetched = 0x80,
- EItemNotFileOrDir = EItemDrive | EItemAction
- };
- // Internal item state bits, see above
- mutable TUint32 iState;
-
- // Own: Item name
- HBufC* iName;
-
- };
-
-
-
-#endif // CFILEMANAGERITEMPROPERTIES_H_
\ No newline at end of file
--- a/filemanager/Engine/inc/CFileManagerPropertySubscriber.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
-* Copyright (c) 2006 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: Subscriber (Publish & Subscribe)
-*
-*/
-
-
-
-#ifndef CFILEMANAGERPROPERTYSUBSCRIBER_H
-#define CFILEMANAGERPROPERTYSUBSCRIBER_H
-
-// INCLUDES
-#include <e32base.h>
-#include <e32property.h>
-#include "MFileManagerPropertyObserver.h"
-
-// CLASS DECLARATION
-/**
-* This class provides P&S event subscriber
-*
-* @lib FileManagerEngine.lib
-* @since 3.1
-*/
-NONSHARABLE_CLASS(CFileManagerPropertySubscriber) : public CActive
-{
- public:
- /**
- * Two-phased constructor.
- */
- static CFileManagerPropertySubscriber* NewL(
- MFileManagerPropertyObserver& aObserver,
- const TUid& aCategory,
- const TUint aKey );
-
- /**
- * Destructor.
- */
- ~CFileManagerPropertySubscriber();
-
- private:
- CFileManagerPropertySubscriber(
- MFileManagerPropertyObserver& aObserver,
- const TUid& aCategory,
- const TUint aKey );
-
- void ConstructL();
-
- void Subscribe();
-
- private: // from CActive
- void RunL();
-
- TInt RunError( TInt aError );
-
- void DoCancel();
-
- private:
- // Ref: Reference to observer interface
- MFileManagerPropertyObserver& iObserver;
- // Own: PS handle
- RProperty iProperty;
- // Own: PS category Uid
- TUid iCategory;
- // Own: PS key id
- TUint iKey;
-};
-
-#endif // CFILEMANAGERPROPERTYSUBSCRIBER_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerRefresher.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Asynchronous refresher for CGflmNavigatorModel
-*
-*/
-
-
-#ifndef CFILEMANAGERREFRESHER_H
-#define CFILEMANAGERREFRESHER_H
-
-// INCLUDES
-#include <e32base.h>
-#include "GFLM.hrh"
-
-// FORWARD DECLARATIONS
-class CGflmNavigatorModel;
-class MFileManagerProcessObserver;
-
-// CLASS DECLARATION
-
-/**
-* This class start asynchronous refreshing of given CGflmNavigatorModel.
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerRefresher) : public CActive
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerRefresher* NewL( CGflmNavigatorModel& aModel );
-
- /**
- * Destructor.
- */
- virtual ~CFileManagerRefresher();
-
- public: // New functions
-
- /**
- * Refreshes the model.
- * @since 2.0
- * @param aRefreshMode Given refresh mode.
- */
- void Refresh( TGflmRefreshMode aRefreshMode = ERefreshItems );
-
- /**
- * Sets observer
- * @since 2.0
- * @param aObserver Observer for the operation or NULL,
- * ownership is not transferred.
- */
- void SetObserver( MFileManagerProcessObserver* aObserver );
-
- /**
- * Cancels refresh.
- * @since 2.0
- */
- TBool CancelRefresh();
-
- protected: // From CActive
-
- void RunL();
-
- TInt RunError( TInt aError );
-
- void DoCancel();
-
- private:
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- /**
- * C++ default constructor.
- */
- CFileManagerRefresher( CGflmNavigatorModel& aModel );
-
- private: // Data
-
- // Ref: Reference to the model instance that will be refreshed
- CGflmNavigatorModel& iModel;
-
- // Ref: Pointer to the observer that will be notified
- MFileManagerProcessObserver* iObserver;
-
- };
-
-#endif // CFILEMANAGERREFRESHER_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerRemoteDriveHandler.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Wraps remote drive functionality
-*
-*/
-
-
-#ifndef C_FILEMANAGERREMOTEDRIVEHANDLER_H
-#define C_FILEMANAGERREMOTEDRIVEHANDLER_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include "MFileManagerPropertyObserver.h"
-
-
-// FORWARD DECLARATIONS
-class CRsfwMountMan;
-class CFileManagerEngine;
-class CFileManagerPropertySubscriber;
-class CFileManagerUtils;
-
-
-// CLASS DECLARATION
-/**
- * This class wraps remote drive functionality
- *
- * @lib FileManagerEngine.lib
- * @since S60 3.1
- */
-NONSHARABLE_CLASS(CFileManagerRemoteDriveHandler) :
- public CBase,
- MFileManagerPropertyObserver
- {
-
-public:
- /**
- * Two-phased constructor.
- */
- static CFileManagerRemoteDriveHandler* NewL(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils );
-
- /**
- * Destructor
- */
- ~CFileManagerRemoteDriveHandler();
-
-public: // New functions
- /**
- * Gets remote drive connection state
- * @param aDrive Drive number EDriveA...EDriveZ
- * @return ETrue if connected. Otherwise EFalse.
- */
- TBool IsConnected( const TInt aDrive );
-
- /**
- * Connects or disconnects remote drive
- * @param aDrive Drive number EDriveA...EDriveZ
- * @return System wide error code.
- */
- TInt SetConnection( TInt aDrive, TBool aConnect );
-
- /**
- * Deletes remote drive settings
- * @param aDrive Drive number EDriveA...EDriveZ
- * @return System wide error code.
- */
- TInt DeleteSettings( const TInt aDrive );
-
- /**
- * Ensures that contents of a remote directory are up to date
- * when directory is refreshed
- * @param aFullPath Full path to remote directory
- * @return error code.
- */
- TInt RefreshDirectory( const TDesC& aFullPath );
-
- /**
- * Checks does application have support for remote drives
- * @param aUid Application uid
- * @return ETrue if the app has support. Otherwise EFalse.
- */
- TBool HasAppRemoteDriveSupport( TUid aUid );
-
- /**
- * Cancels incoming or outgoing remote drive transfer
- * @param aFullPath Full path to remote file or directory
- */
- void CancelTransfer( const TDesC& aFullPath );
-
-public: // From MFileManagerPropertyObserver
- void PropertyChangedL( const TUid& aCategory, const TUint aKey );
-
-private:
- /**
- * Constructors
- */
- CFileManagerRemoteDriveHandler(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils );
-
- void ConstructL();
-
-private: // Data
- /**
- * For remote drive mounting and state handling
- * Own.
- */
- CRsfwMountMan* iMountMan;
-
- /**
- * Reference to file manager engine
- * Not own.
- */
- CFileManagerEngine& iEngine;
-
- /**
- * Reference to utils
- * Not own.
- */
- CFileManagerUtils& iUtils;
-
- /**
- * For PS subscribing
- * Own.
- */
- CFileManagerPropertySubscriber* iSubscriber;
-
- /**
- * Indicates if remote drives are supported or not
- */
- TBool iRemoteStorageFwSupported;
-
- };
-
-#endif // C_FILEMANAGERREMOTEDRIVEHANDLER_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerRemovableDriveHandler.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/*
-* Copyright (c) 2006-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: Wraps removable drive functionality
-*
-*/
-
-
-#ifndef C_FILEMANAGERREMOVABLEDRIVEHANDLER_H
-#define C_FILEMANAGERREMOVABLEDRIVEHANDLER_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <f32file.h>
-#include "MFileManagerProcessObserver.h"
-#include "MMMCScBkupEngineObserver.h"
-#include "CMMCScBkupArchiveInfo.h"
-#include "CFileManagerRestoreSettings.h"
-
-
-// FORWARD DECLARATIONS
-class CMMCScBkupEngine;
-class CFileManagerUtils;
-class CFileManagerEngine;
-class CBaBackupSessionWrapper;
-class CFileManagerBackupSettings;
-
-
-// CLASS DECLARATION
-/**
-* This class wraps removable drive functionality
-*
-* @lib FileManagerEngine.lib
-* @since S60 3.1
-*/
-NONSHARABLE_CLASS(CFileManagerRemovableDriveHandler) :
- public CActive,
- public MMMCScBkupEngineObserver
- {
-
-public:
- /**
- * Two-phased constructor.
- */
- static CFileManagerRemovableDriveHandler* NewL(
- RFs& aFs,
- CFileManagerUtils& aUtils,
- CFileManagerEngine& aEngine );
-
- /**
- * Destructor
- */
- virtual ~CFileManagerRemovableDriveHandler();
-
-public: // New methods
- /**
- * Sets process observer for memory card operations
- * @param aObserver Pointer to observer or NULL,
- * ownership is not transferred
- */
- void SetObserver( MFileManagerProcessObserver* aObserver );
-
- /**
- * Starts eject process
- */
- void StartEjectL();
-
- /**
- * Starts format process
- * @param aDrive Drive number EDriveA...EDriveZ
- */
- void StartFormatL( const TInt aDrive );
-
- /**
- * Cancels ongoing process
- */
- void CancelProcess();
-
- /**
- * Checks does backup file exists
- * @return ETrue if exists. Otherwise EFalse.
- */
- TBool BackupFileExistsL( const TInt aDrive );
-
- /**
- * Starts backup process
- * @param aProcess Backup process to start
- */
- void StartBackupL(
- MFileManagerProcessObserver::TFileManagerProcess aProcess );
-
- /**
- * Starts restore process
- */
- void StartRestoreL();
-
- /**
- * Gets restore info array
- * @param aArray For storing restore info
- * @param aDrive For getting info from specific drive
- */
- void GetRestoreInfoArrayL(
- RArray< CFileManagerRestoreSettings::TInfo >& aArray,
- const TInt aDrive );
-
- /**
- * Checks is process ongoing
- */
- TBool IsProcessOngoing() const;
-
- /**
- * Gets create time of the latest backup archive
- * @param aBackupTime Stores the time
- */
- void LatestBackupTimeL( TTime& aBackupTime );
-
- /**
- * Deletes selected backups
- */
- void DeleteBackupsL();
-
-private: // From CActive
- /**
- * @see CActive
- */
- void DoCancel();
-
- /**
- * @see CActive
- */
- void RunL();
-
- /**
- * @see CActive
- */
- TInt RunError( TInt aError );
-
-private:
- /**
- * Constructors
- */
- CFileManagerRemovableDriveHandler(
- RFs& aFs,
- CFileManagerUtils& aUtils,
- CFileManagerEngine& aEngine );
-
- void ConstructL();
-
- /**
- * For periodic eject scan
- */
- static TInt EjectScanAndShutdownApps( TAny* ptr );
-
- /**
- * For periodic eject scan
- */
- void DoEjectScanAndShutdownL();
-
- /**
- * For periodic eject scan
- */
- void EjectComplete( TInt aErr );
-
- /**
- * Gets backup file name
- */
- HBufC* BackupFileNameLC( TBool aFullPath ) const;
-
- /**
- * Starts eject scan
- */
- void StartEjectScanL();
-
- void InformStartL( TInt aTotalCount );
-
- void InformUpdateL( TInt aCount );
-
- void InformFinishL( );
-
- void InformError( TInt aErr );
-
- void StartFormatProcessL();
-
- void EndFormatProcessL( TInt aErr );
-
- void CloseAppsL();
-
- void RestartAppsL();
-
- static void ResetAndDestroyArchives( TAny* aPtr );
-
- static TUint32 BkupToFmgrMask( const TUint32 aBkupMask );
-
- static TUint32 FmgrToBkupMask( const TUint32 aFmrgMask );
-
- void PublishBurStatus( TInt aType );
-
- TBool IsInternalMassStorage( TInt aDrive );
-
- void StoreVolumeNameL( TInt aDrive );
-
- void RestoreVolumeNameL( TInt aDrive );
-
- void ListArchivesL(
- RPointerArray< CMMCScBkupArchiveInfo >& aArchives,
- const CFileManagerBackupSettings& aBackupSettings );
-
-private: // From MMMCScBkupEngineObserver
- TInt HandleBkupEngineEventL(
- MMMCScBkupEngineObserver::TEvent aEvent, TInt aAssociatedData );
-
-private: // Data
- /**
- * Backup engine
- * Own.
- */
- CMMCScBkupEngine* iBkupEngine;
-
- /**
- * Pointer to observer
- * Not own.
- */
- MFileManagerProcessObserver* iObserver;
-
- /**
- * Observed process
- */
- MFileManagerProcessObserver::TFileManagerProcess iProcess;
-
- /**
- * For file operations
- * Not own.
- */
- RFs& iFs;
-
- /**
- * For utility access
- * Not own.
- */
- CFileManagerUtils& iUtils;
-
- /**
- * For file manager engine access
- * Not own.
- */
- CFileManagerEngine& iEngine;
-
- /**
- * Last process error
- */
- TInt iLastError;
-
- /**
- * Final progress value
- */
- TInt iFinalValue;
-
- /**
- * For timed eject scanning steps
- * Own.
- */
- CPeriodic* iEjectScanPeriodic;
-
- /**
- * For eject scan round counting
- */
- TInt iEjectScanRounds;
-
- /**
- * Indicates if backup or restore is in progress
- */
- TBool iBackupRestoreInprogress;
-
- /**
- * For formatting drives
- */
- RFormat iFormatter;
-
- /**
- * For keeping track of formatting process progress
- */
- TPckgBuf< TInt > iFormatCountBuf;
-
- /**
- * For closing and restarting open files while formatting
- */
- CBaBackupSessionWrapper* iBSWrapper;
-
- /**
- * Target drive of the process
- */
- TInt iDrive;
-
- };
-
-#endif // C_FILEMANAGERREMOVABLEDRIVEHANDLER_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerRestoreSettings.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Restore settings
-*
-*/
-
-
-#ifndef C_FILEMANAGERBACKUPARRAY_H
-#define C_FILEMANAGERBACKUPARRAY_H
-
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <badesca.h>
-
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-
-
-// CLASS DECLARATION
-/**
- * This class is used for storing restore settings
- *
- * @lib FileManagerEngine.lib
- * @since S60 3.1
- */
-NONSHARABLE_CLASS(CFileManagerRestoreSettings) : public CBase,
- public MDesCArray
- {
-
-public:
- /** Restore icon type */
- enum TIconId
- {
- EIconCheckBoxOn = 0,
- EIconCheckBoxOff,
- EIconMemoryCard,
- EIconUsbMemory
- };
-
- /** Restore info */
- NONSHARABLE_CLASS(TInfo)
- {
- public:
- TUint32 iContent;
- TTime iTime;
- TInt iDrive;
- };
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerRestoreSettings* NewL(
- CFileManagerEngine& aEngine );
-
- /**
- * Destructor
- */
- ~CFileManagerRestoreSettings();
-
- /**
- * Sets restore selection
- *
- * @since S60 3.1
- */
- IMPORT_C void SetSelection( const TUint64& aSelection );
-
- /**
- * Refreshes restore settings
- *
- * @since S60 3.1
- */
- IMPORT_C void RefreshL();
-
- /**
- * Gets restore selection
- *
- * @since S60 3.1
- */
- void GetSelectionL( RArray< TInfo >& aInfoArray ) const;
-
-public: // From MDesCArray
- TInt MdcaCount() const;
-
- TPtrC MdcaPoint( TInt aIndex ) const;
-
-private:
- /** Restore setting entry */
- NONSHARABLE_CLASS(CEntry) : public CBase
- {
- public:
- ~CEntry();
-
- HBufC* iText;
- TInfo iInfo;
- };
-
-private:
- /**
- * Constructors
- */
- CFileManagerRestoreSettings( CFileManagerEngine& aEngine );
-
- void ConstructL();
-
- /**
- * Creates a new restore setting entry
- */
- CEntry* CreateEntryLC( const TInfo& aInfo );
-
- static HBufC* DateTimeStringLC( const TTime& aTime );
-
-private: // Data
- /**
- * Restore setting entries
- */
- RPointerArray< CEntry > iList;
-
- /**
- * Reference to file manager engine
- * Not own.
- */
- CFileManagerEngine& iEngine;
-
- /**
- * Restore selection
- */
- TUint64 iSelection;
-
- };
-
-#endif // C_FILEMANAGERBACKUPARRAY_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerThreadWrapper.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Background thread functionality wrapper
-*
-*/
-
-
-
-#ifndef CFILEMANAGERTHREADWRAPPER_H
-#define CFILEMANAGERTHREADWRAPPER_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include "MFileManagerThreadFunction.h"
-
-
-// CLASS DECLARATION
-/**
-* The class implements a background thread functionality wrapper
-*
-* @lib FileManagerEngine.lib
-* @since 3.1
-*/
-NONSHARABLE_CLASS(CFileManagerThreadWrapper) : public CActive
- {
- public:
- static CFileManagerThreadWrapper* NewL();
-
- ~CFileManagerThreadWrapper();
-
- public: // New functions
- /**
- * Starts background thread. Can be used only by client thread.
- * @since 3.1
- * @param aFunction Reference to background thread abstraction.
- * @param aPriority background thread priority
- * @param aNotify client notify flags
- * see MFileManagerThreadFunction::TNotifyType
- * @return System wide error code
- */
- TInt StartThread(
- MFileManagerThreadFunction& aFunction,
- TUint aNotify,
- TThreadPriority aPriority );
-
- /**
- * Cancels background thread.
- * Background thread is exited when ongoing ThreadStepL is finished.
- * Can be used only by client thread.
- * @since 3.1
- */
- void CancelThread();
-
- /**
- * Checks if background thread has been canceled.
- * Can be used by both client and background threads.
- * E.g. checks can be done inside long running ThreadStepL.
- * @since 3.1
- * @return ETrue if canceled, otherwise EFalse
- */
- TBool IsThreadCanceled() const;
-
- /**
- * Resumes thread when called after error or step finished
- * notification. Can only be used by client thread.
- * @since 3.2
- */
- void ResumeThread();
-
- /**
- * Checks if thread has been started
- * notification. Can only be used by client thread.
- * @since 3.2
- * @return ETrue if started, otherwise EFalse
- */
- TBool IsThreadStarted() const;
-
- private: // From CActive
- void RunL();
-
- TInt RunError( TInt aErr );
-
- void DoCancel();
-
- private:
- CFileManagerThreadWrapper();
-
- void ConstructL();
-
- static TInt ThreadFunction( TAny* ptr );
-
- void ThreadFunctionL();
-
- TInt NotifyClientAndWaitConfirm( TInt aErr );
-
- void DoNotifyL( TInt aErr );
-
- NONSHARABLE_CLASS(CNotifyObserver) : public CActive
- {
- public:
- static CNotifyObserver* NewL(
- CFileManagerThreadWrapper& aWrapper );
-
- ~CNotifyObserver();
-
- void Activate();
-
- void Complete( RThread& aThread, TInt aResult );
-
- private: // From CActive
- void RunL();
-
- TInt RunError( TInt aErr );
-
- void DoCancel();
-
- private:
- CNotifyObserver( CFileManagerThreadWrapper& aWrapper );
-
- private:
- CFileManagerThreadWrapper& iWrapper;
- };
-
- private: // Data
- // Own: For synchronising client and background thread
- RSemaphore iSemaphore;
- // Own: Client thread id
- TThreadId iClientId;
- // Ref: Pointer to thread function
- MFileManagerThreadFunction* iFunction;
- // Own: Client notify type flags, Client writes and thread only reads
- TUint iNotify;
- // Own: Thread cancel indicator, Client writes and thread only reads
- TBool iCancel;
- // Own: Observer wrapper to notify client about thread events
- CNotifyObserver* iNotifyObserver;
- // Own: Thread resume pending indicator, Client reads and writes
- TBool iResumePending;
- };
-
-#endif // CFILEMANAGERTHREADWRAPPER_H
-
-// End of File
--- a/filemanager/Engine/inc/CFileManagerUtils.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,409 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Util methods for File Manager
-*
-*/
-
-
-
-#ifndef CFILEMANAGERUTILS_H
-#define CFILEMANAGERUTILS_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <badesca.h>
-#include <f32file.h>
-
-
-// FORWARD DECLARATIONS
-class CFileManagerMimeIconArray;
-class CFileManagerFolderArray;
-class CCommonContentPolicy;
-class CGflmNavigatorModel;
-class CGflmGroupItem;
-#if defined( __KEEP_DRM_CONTENT_ON_PHONE ) && defined ( FILE_MANAGER_USE_DISTRIBUTABLECHECKER )
- class CDistributableChecker;
-#endif // __KEEP_DRM_CONTENT_ON_PHONE && FILE_MANAGER_USE_DISTRIBUTABLECHECKER
-class CFileManagerFeatureManager;
-
-
-/**
-*
-* Collection of utility functions for file manager
-*
-* @lib FileManagerEngine.lib
-* @since 2.7
-*/
-NONSHARABLE_CLASS(CFileManagerUtils) : public CBase
- {
- public:
- /**
- * Two-phased constructors.
- */
- static CFileManagerUtils* NewL(
- RFs& aFs,
- CGflmNavigatorModel& aNavigator,
- CFileManagerFeatureManager& aFeatureManager );
-
- /**
- * Destructor.
- */
- ~CFileManagerUtils();
- public: // New functions
-
- /**
- * Gets the reference to open file server session
- * @since 2.7
- * @return reference to open file server session
- */
- RFs& Fs() const;
-
- /**
- * Checks is given file forward locked
- * @since 2.7
- * @param aFullPath file name with full path
- * @return ETrue if file is forward locked, EFalse if not.
- */
- TBool IsForwardLockedFile( const TDesC& aFullPath );
-
- /**
- * Checks is given file drm protected
- * @since 2.7
- * @param aFullPath file name with full path
- * @return ETrue if file is drm protected, EFalse if not.
- */
- TBool IsDrmProtectedFileL( const TDesC& aFullPath ) const;
-
- /**
- * Gets the icon id of the item
- * @since 2.7
- * @param aFullPath Item with full path information
- * @return Icon id of the item. If not found other icon id is used.
- */
- TInt ResolveIconL( const TDesC& aFullPath ) const;
-
- /**
- * Checks is given folder a default folder
- * @since 2.7
- * @param aFullPath Item with full path information
- * @return ETrue if folder is default folder, EFalse if not.
- */
- TBool DefaultFolder( const TDesC& aFullPath ) const;
-
- /**
- * Checks is given file drm local data file (LDF)
- * @since 3.1
- * @param aFullPath file name with full path
- * @return ETrue if file is local data file, EFalse if not.
- */
- TBool IsDrmLocalDataFile( const TDesC& aFullPath ) const;
-
- /**
- * Checks given item that can it be deleted.
- * @since 3.1
- * @param aFullPath full path to item which is checked
- * @returns ETrue if item can be deleted, EFalse if not
- */
- TBool CanDelete( const TDesC& aFullPath ) const;
-
- /**
- * Returns the type of given item in CFileManagerItemProperties bitmask
- * @since 3.1
- * @param aFullPath full path to item
- * @return CFileManagerItemProperties bitmask
- */
- TUint32 FileTypeL( const TDesC& aFullPath );
-
- /**
- * Gets the icon id of the item
- * @since 3.1
- * @param aItem GFLM struct of the item
- * @return Icon id of the item. If not found other icon id is returned.
- */
- TInt ResolveIconL( CGflmGroupItem& aItem ) const;
-
- /**
- * Checks does given folder have any items with specified attributes
- * @since 3.1
- * @param aFs open file server session
- * @param aFullPath folder name with full path
- * @param aAttMask attribute mask
- * @return ETrue if folder has any specified items, EFalse if not.
- */
- static TBool HasAny(
- RFs& aFs, const TDesC& aFullPath, TUint aAttMask );
-
- /**
- * Checks does given folder has any subfolder
- * @since 3.1
- * @param aFullPath folder name with full path
- * @return ETrue if folder has any subfolders, EFalse if not.
- */
- TBool HasSubFolders( const TDesC& aFullPath ) const;
-
- /**
- * Checks does given folder has any files
- * @since 3.1
- * @param aFullPath folder name with full path
- * @return ETrue if folder has any files, EFalse if not.
- */
- TBool HasFiles( const TDesC& aFullPath ) const;
-
- /**
- * Create default folders
- * @since 3.2
- * @param aDrive Drive which default folders are created
- * @param aForced Selects forced or normal creation
- */
- void CreateDefaultFolders(
- const TInt aDrive, const TBool aForced = ETrue ) const;
-
- /**
- * Checks is path located in remote drive
- * @since 3.1
- * @param aPath path to check
- * @return ETrue if remote drive. Otherwise EFalse.
- */
- TBool IsRemoteDrive( const TDesC& aPath ) const;
-
- /**
- * Determine if given file must be protected (kept on the device)
- * @since 3.1
- * @param aFullPath file to check
- * @param aIsProtected for storing result
- * @return System wide error code
- */
- TInt IsDistributableFile( const TDesC& aFullPath,
- TBool& aIsProtected );
-
- /**
- * Gets MIME type of file
- * @since 3.1
- * @return MIME type
- */
- TPtrC MimeTypeL( const TDesC& aFullPath ) const;
-
- /**
- * Gets drive id array with specified attribute mask
- * @since 3.2
- * @param aDrives array for ids
- * @param aAttMask drive attribute match mask
- */
- void DriveList(
- RArray< TInt >& aDrives, const TInt aAttMask ) const;
-
- /**
- * Checks is drive removable
- * @since 3.2
- * @param aPath path to check
- * @return ETrue if removable drive. Otherwise EFalse
- */
- TBool IsRemovableDrive( const TDesC& aPath ) const;
-
- /**
- * Gets item full path
- * @since 3.2
- * @param aDir Parent directory path
- * @param aEntry File system entry
- * @param aFullPath Full path to item
- */
- static void GetFullPath(
- const TDesC& aDir, const TEntry& aEntry, TDes& aFullPath );
-
- /**
- * Removes final backslash if exists
- * @since 3.2
- * @param aPath Directory path
- * @return Pointer without backslash
- */
- IMPORT_C static TPtrC StripFinalBackslash( const TDesC& aPath );
-
- /**
- * Ensures final backslash exists
- * @since 3.2
- * @param aPath Directory path
- */
- IMPORT_C static void EnsureFinalBackslash( TDes& aPath );
-
- /**
- * Removes all directional chars if exist
- * @since 3.2
- * @param aText The text
- * @return Pointer to cleaned up text, ownership is transferred
- */
- static HBufC* StripDirectionalCharsLC( const TDesC& aText );
-
- /**
- * Checks if final backslash exist
- * @since 3.2
- * @param aPath Directory path
- */
- IMPORT_C static TBool HasFinalBackslash( const TDesC& aPath );
-
- /**
- * Checks if file is copied/moved from internal to removable drive
- * @since 3.2
- * @param aFs Open file server session
- * @param aSrcPath Source directory path
- * @param aDstPath Destination directory path
- * @return ETrue if from internal to removable, otherwise EFalse
- */
- IMPORT_C static TBool IsFromInternalToRemovableDrive(
- RFs& aFs, const TDesC& aSrcPath, const TDesC& aDstPath );
-
- /**
- * Removes read only attribute if it is set for given item
- * @since 3.2
- * @param aFs Open file server session
- * @param aFullPath Full path of the item
- * @param aEntry Entry data of the item
- * @return System wide error code
- */
- static TInt RemoveReadOnlyAttribute(
- RFs& aFs, const TDesC& aFullPath, const TEntry& aEntry );
-
- /**
- * Removes read only attribute if it is set for given item
- * @since 3.2
- * @param aFs Open file server session
- * @param aFullPath Full path of the item
- * @return System wide error code
- */
- static TInt RemoveReadOnlyAttribute(
- RFs& aFs, const TDesC& aFullPath );
-
- /* Drive name layouts for selecting the most suitable text */
- enum TDriveNameLayout
- {
- EMainLayout = 0,
- ETitleLayout,
- ELayoutCount // Must be the last
- };
-
- /**
- * Gets drive name and letter as combined single text.
- * @since 5.0
- * @param aDrive Drive number EDriveA...EDriveZ
- * @param aLayout Text layout. See TDriveNameLayout.
- * @return Text containing drive letter and name
- */
- HBufC* GetDriveNameL(
- const TInt aDrive,
- const TDriveNameLayout aLayout ) const;
-
- /**
- * Gets drive name and letter as combined formatted text.
- * @since 5.0
- * @param aDrive Drive number EDriveA...EDriveZ
- * @param aTextIdForDefaultName TextId of default name format string
- * @param aTextIdForName TextId of name format string
- * @return Text containing drive letter and name
- */
- HBufC* GetFormattedDriveNameLC(
- const TInt aDrive,
- const TInt aTextIdForDefaultName,
- const TInt aTextIdForName ) const;
-
- /**
- * Checks is path located in remote drive
- * @since 3.2
- * @param aFs Open file server session
- * @param aPath path to check
- * @return ETrue if remote drive, otherwise EFalse
- */
- IMPORT_C static TBool IsRemoteDrive( RFs& aFs, const TDesC& aPath );
-
- /**
- * Returns localized name of the given item
- * @since 3.2
- * @param aFullPath full path to item which is checked
- * @returns TPtrC reference to localized name,
- * KNullDesC if no localization is used
- */
- TPtrC LocalizedName( const TDesC& aFullPath ) const;
-
- /**
- * Checks is name found, the comparison includes localized folder names
- * @since 3.2
- * @param aFullPath full path to item which is checked
- * @returns ETrue if name is found, otherwise EFalse.
- */
- TBool IsNameFoundL( const TDesC& aFullPath ) const;
-
- /**
- * Flush Cache
- */
- void FlushCache() const;
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerUtils(
- RFs& aFs,
- CGflmNavigatorModel& aNavigator,
- CFileManagerFeatureManager& aFeatureManager );
-
- void ConstructL();
-
- static void IsFlkOrLdfFileL(
- const TDesC& aFullPath, TBool& aIsFlk, TBool& aIsLdf );
-
- static TBool IsInternalDrive( RFs& aFs, const TInt aDrive );
-
- CDesCArray* GetDriveNameArrayLC(
- const TInt aDrive,
- TUint& aDriveStatus ) const;
-
- static TBool IsDrive(
- RFs& aFs, const TDesC& aPath, const TUint aAttMask );
-
- static TBool IsDrive(
- RFs& aFs, const TInt aDrive, const TUint aAttMask );
-
- private:
-
- // Ref: reference to open file server session
- RFs& iFs;
-
- //Own: List of default folders
- CFileManagerFolderArray* iDefaultFolders;
-
- // Own: Handle to common content policy service to find
- // out is file in a Closed Content List or forward locked
- CCommonContentPolicy* iCommonContentPolicy;
-
- // Own: Mime icon mapper
- CFileManagerMimeIconArray* iMimeIconMapper;
-
- // Ref: GFLM navigator instance
- CGflmNavigatorModel& iNavigator;
-
-#if defined( __KEEP_DRM_CONTENT_ON_PHONE ) && defined ( FILE_MANAGER_USE_DISTRIBUTABLECHECKER )
- // Own: content protection checking
- CDistributableChecker* iDistributableChecker;
-#endif // __KEEP_DRM_CONTENT_ON_PHONE && FILE_MANAGER_USE_DISTRIBUTABLECHECKER
-
- // Flag to indicate if feature is supported
- TBool iDrmFullSupported;
-
- // Ref: reference to feature manager
- CFileManagerFeatureManager& iFeatureManager;
-
- };
-
-#endif // CFILEMANAGERUTILS_H
-
-// End of File
--- a/filemanager/Engine/inc/CFilemanagerActiveCount.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Calculates directory size
-*
-*/
-
-
-#ifndef CFILEMANAGERACTIVECOUNT_H
-#define CFILEMANAGERACTIVECOUNT_H
-
-// INCLUDES
-#include <e32base.h>
-#include <AknWaitNoteWrapper.h>
-#include "CFileManagerItemProperties.h"
-
-// FORWARD DECLARATIONS
-class CDirScan;
-
-// CLASS DECLARATION
-/**
-*
-* Calculates folder size, one folder at time.
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerActiveCount) : public CBase,
- public MAknBackgroundProcess
- {
- public:
- /**
- * Two-phased constructor.
- */
- static CFileManagerActiveCount* NewL(
- RFs& aFs,
- const TDesC& aRootFolder,
- const CFileManagerItemProperties::TFileManagerFileType aType );
- /**
- * Destructor.
- */
- ~CFileManagerActiveCount();
-
- public: // From MAknBackgroundProcess
- /**
- * Completes one cycle of the process.
- */
- void StepL();
-
- /**
- * Return true when the process is done.
- */
- TBool IsProcessDone() const;
-
- public:
-
- /**
- * Get the result,
- * @since 2.0
- * @return count of
- */
- TInt FolderCount() const;
-
- /**
- * Get the result,
- * @since 2.0
- * @return count of
- */
- TInt FileCount() const;
-
- /**
- * Get the result,
- * @since 2.0
- * @return count of
- */
- TInt OpenFiles() const;
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerActiveCount(
- RFs& aFs );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL(
- const TDesC& aRootFolder,
- const CFileManagerItemProperties::TFileManagerFileType aType );
-
- private: // Data
-
- /// Own: Used to go through all the folders in given directory
- CDirScan* iDirScan;
-
- /// Own: CDirScan returns this
- CDir* iDir;
-
- /// File Server session
- RFs& iFs;
-
- /// When all folders are through, this is set
- TBool iProcessDone;
-
- /// Index to currently checked CDir item
- TInt iFileCounter;
-
- // Folder count
- TInt iFolders;
-
- // Folder count
- TInt iFiles;
-
- // Folder count
- TInt iOpenFiles;
-
- // Processed entry fullpath
- TFileName iFileName;
-
- };
-
-#endif // CFILEMANAGERACTIVECOUNT_H
-
-// End of File
-
--- a/filemanager/Engine/inc/CFilemanagerMimeIconArray.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Maps the mime or file extension to icon
-*
-*/
-
-
-#ifndef CFILEMANAGERMIMEICONARRAY_H
-#define CFILEMANAGERMIMEICONARRAY_H
-
-// INCLUDES
-#include <e32base.h>
-#include "FileManagerEngine.hrh"
-
-// FORWARD DECLARATIONS
-class CGflmNavigatorModel;
-
-// CLASS DECLARATION
-
-/**
-* Contains the array of the icons. Formats the given string with given item.
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerMimeIconArray) : public CBase
- {
- public:
-
- /**
- * Two-phased constructor.
- * @param aResId resource id of mime icon array
- * @param aNavigator ref to GFLM navigator
- * @return pointer to CFileManagerMimeIconArray object
- */
- static CFileManagerMimeIconArray* NewL(
- TInt aResId, CGflmNavigatorModel& aNavigator );
-
- /**
- * Gets the icon id of the item
- * @since 2.0
- * @param aFullPath Item with full path information
- * @return TFileManagerIconId, icon id of the item.
- * If not found other icon id is used.
- */
- TInt ResolveIconL( const TDesC& aFullPath );
-
- /**
- * Destructor.
- */
- ~CFileManagerMimeIconArray();
-
- private:
-
- /**
- * C++ default constructor.
- */
- CFileManagerMimeIconArray( CGflmNavigatorModel& aNavigator );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructFromResourceL( TInt aResId );
-
- NONSHARABLE_CLASS(CMimeIconEntry) : public CBase
- {
- public: // Constructor and destructor
- static CMimeIconEntry* NewLC(
- const TDesC& aMime, const TInt aIconId );
-
- CMimeIconEntry( const TInt aIconId );
-
- void ConstructL( const TDesC& aMime );
-
- ~CMimeIconEntry();
- public: // Data
- // Own: MIME type string
- HBufC* iMime;
- // ID of the icon this entry represents.
- TInt iIconId;
-
- };
-
- private: // Data
- // Own: Array of icons
- RPointerArray< CMimeIconEntry > iArray;
-
- // Ref: To get the current directory and MIME type of the item
- CGflmNavigatorModel& iNavigator;
-
- };
-
-#endif // CFILEMANAGERMIMEICONARRAY_H
-
-// End of File
--- a/filemanager/Engine/inc/Cfilemanageractivedelete.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,207 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Deletes items
-*
-*/
-
-
-#ifndef CFILEMANAGERACTIVEDELETE_H
-#define CFILEMANAGERACTIVEDELETE_H
-
-// INCLUDES
-#include <e32base.h>
-#include <badesca.h>
-#include <AknWaitNoteWrapper.h>
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-class CDirScan;
-//class CMGXFileManager;
-class CFileManagerUtils;
-
-
-// CLASS DECLARATION
-/**
-* Deletes items
-* Delete operation is done one item at time, so that it can be cancelled
-* during operation.
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerActiveDelete) : public CBase,
- public MAknBackgroundProcess
- {
- public:
- /**
- * Two-phased constructor.
- */
- static CFileManagerActiveDelete* NewL(
- CArrayFixFlat< TInt >& aIndexList,
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils );
-
- /**
- * Destructor.
- */
- IMPORT_C ~CFileManagerActiveDelete();
-
- public: // From MAknBackgroundProcess
-
- void StepL();
-
- TBool IsProcessDone() const;
-
- void DialogDismissedL( TInt aButtonId );
-
- public:
-
- /**
- * Returns last known error code
- * @since 2.0
- * @param aFileName a refence to reserved buffer
- where file name related to error can be copied
- * @return common error code
- */
- IMPORT_C TInt GetError(TDes& aFileName);
-
- /**
- * Returns count of deleted DRM items
- * @since 2.0
- * @param aTotalCount (out) returns total count of deleted items
- * @return count of deleted DRM items
- */
- IMPORT_C TInt DeletedDrmItems( TInt& aTotalCount );
-
-
- private:
- /**
- * Constructor
- */
- CFileManagerActiveDelete(
- RFs& aFs,
- CArrayFixFlat< TInt >& aIndexList,
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- private:
-
- /**
- * This function handles the directory item deletion.
- * Deletes one item per call
- */
- TBool DeleteItemsInDirectoryL();
-
- /**
- * This function handles the file deletion.
- */
- void DeleteFileL(
- const TDesC& aFullPath, const TBool aReadOnlyChecked = EFalse );
-
- /**
- * This function checks is item file or directory.
- */
- TBool IsDir( const TDesC& aFullPath );
-
- /**
- * This function sets the name returned to user.
- */
- void SetName( const TDesC& aFullPath, TBool aOverWrite = EFalse );
-
- /**
- * This function checks is error ignored by delete.
- */
- TBool IsError( TInt aErr );
-
- /**
- * This function sets the error returned to user.
- */
- void SetError( TInt aErr, const TDesC& aFullPath );
-
- /**
- * This function flushes the notification array.
- */
- void FlushNotifications();
-
- private: // Data
- /// Ref: reference to engine created file server session
- RFs& iFs;
-
- /// Ref: array of items to be deleted from current view
- CArrayFixFlat< TInt >& iIndexList;
-
- /// Current index in given array
- TInt iCurrentIndex;
-
- /// When all folders are through, this is set
- TBool iProcessDone;
-
- /// Latest error
- TInt iError;
-
- /// Own: latest deleted file name or file name which delete has failed
- TFileName iFileName;
-
- /// current file index in CDirScan
- TInt iFileIndex;
-
- /// Own: Used to scan directories
- CDirScan* iDirScan;
-
- /// Own: Scan result is stored here
- CDir* iDir;
-
- /// Count of not deleted items
- TInt iNotDeletedItems;
-
- /// Count of open items
- TInt iOpenFiles;
-
- /// Own: buffer for storing the current item name to be deleted
- HBufC* iStringBuffer;
-
- /// Ref: reference to engine instance
- CFileManagerEngine& iEngine;
-
- /// Own: full path of the item to be deleted
- HBufC* iFullPath;
-
- /// Count of deleted drm files
- TInt iDeletedDrmItems;
-
- /// Count of deleted items
- TInt iDeletedItems;
-
- // Ref: MG2 update notification object
- //CMGXFileManager* iMgxFileManager;
-
- // Ref: reference to utils instance
- CFileManagerUtils& iUtils;
-
- // Own: Set if current drive is remote drive
- TBool iIsRemoteDrive;
-
- // Own: Buffer for storing delete items for MG2 notifications
- CDesCArray* iRemovedItems;
-
- };
-
-#endif // CFileManagerActiveFind_H
-
-// End of File
-
--- a/filemanager/Engine/inc/Cfilemanageractivesize.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Calculates directory size
-*
-*/
-
-
-
-#ifndef CFILEMANAGERACTIVESIZE_H
-#define CFILEMANAGERACTIVESIZE_H
-
-// INCLUDES
-#include <e32base.h>
-#include <AknWaitNoteWrapper.h>
-
-// FORWARD DECLARATIONS
-class CDirScan;
-
-// CLASS DECLARATION
-/**
-*
-* Calculates folder size, one folder at time.
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerActiveSize) : public CBase,
- public MAknBackgroundProcess
- {
- public:
- /**
- * Two-phased constructor.
- */
- static CFileManagerActiveSize* NewL(
- RFs& aFs, const TDesC& aRootFolder );
- /**
- * Destructor.
- */
- ~CFileManagerActiveSize();
-
- public: // From MAknBackgroundProcess
- /**
- * Completes one cycle of the process.
- */
- void StepL();
-
- /**
- * Return true when the process is done.
- */
- TBool IsProcessDone() const;
-
- public:
-
- /**
- * Get the result, size of the folder
- * @since 2.0
- * @return Size of the folder in bytes
- */
- TInt64 GetFolderSize() const;
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerActiveSize( RFs& aFs );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( const TDesC& aRootFolder );
-
- private: // Data
-
- /// Own: Used to go through all the folders in given directory
- CDirScan* iDirScan;
-
- /// Own: CDirScan returns this
- CDir* iDir;
-
- /// File Server session
- RFs& iFs;
-
- /// When all folders are through, this is set
- TBool iProcessDone;
-
- /// Index to currently checked CDir item
- TInt iFileCounter;
-
- // Folder Size
- TInt64 iSize;
- };
-
-#endif // CFILEMANAGERACTIVESIZE_H
-
-// End of File
-
--- a/filemanager/Engine/inc/Cfilemanagerfilesystemevent.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: This AO is signaled when directory entry is added or removed
-* from file system
-*
-*/
-
-
-#ifndef CFILEMANAGERFILESYSTEMEVENT_H
-#define CFILEMANAGERFILESYSTEMEVENT_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <f32file.h>
-
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-
-
-// CLASS DECLARATION
-
-/**
-* This class listens file system events
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerFileSystemEvent) : public CActive
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerFileSystemEvent* NewL( RFs& aFs,
- CFileManagerEngine& aEngine,
- TNotifyType aNotifyType,
- const TDesC& aFullPath = KNullDesC );
-
- /**
- * Destructor.
- */
- virtual ~CFileManagerFileSystemEvent();
-
- public:
-
- /**
- * Sets file system event
- * @since 2.0
- */
- void Setup();
-
- /**
- * This calls refresh if file system event has happened
- * @since 2.0
- */
- void CheckFileSystemEvent();
-
-
- protected: // Functions from base classes
-
- /**
- * From CActive Called when asynchronous request has completed
- * @since 2.0
- */
- void RunL();
-
- /**
- * From CActive Called when asynchronous request has failed
- * @since 2.0
- */
- TInt RunError( TInt aError );
-
- /**
- * From CActive Called when asynchronous request was cancelled
- * @since 2.0
- */
- void DoCancel();
-
- private:
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( const TDesC& aFullPath );
-
- /**
- * C++ default constructor.
- */
- CFileManagerFileSystemEvent(
- RFs& aFs,
- CFileManagerEngine& aEngine,
- TNotifyType aNotifyType );
-
- private: // Data
- // Ref: Reference to opened File System session
- RFs& iFs;
-
- // Ref: This object is called when RunL occurs
- CFileManagerEngine& iEngine;
-
- // Type of the notify, entry or disk.
- TNotifyType iNotifyType;
-
- // Full path of folder from where notification is needed
- HBufC* iFullPath;
-
- // Indicates if the event has been received
- TBool iIsReceived;
-
- };
-
-#endif // CFILEMANAGERFILESYSTEMEVENT_H
-
-// End of File
--- a/filemanager/Engine/inc/Cfilemanagerfolderarray.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Holds the array of CFileManagerFolderEntry
-*
-*/
-
-
-
-#ifndef CFILEMANAGERFOLDERARRAY_H
-#define CFILEMANAGERFOLDERARRAY_H
-
-
-// INCLUDES
-#include <e32base.h>
-
-
-// FORWARD DECLARATIONS
-#ifndef RD_MULTIPLE_DRIVE
-class CFileManagerFolderEntry;
-#endif // RD_MULTIPLE_DRIVE
-class CFileManagerUtils;
-
-
-// CLASS DECLARATION
-
-
-/**
-* Array of CFileManagerFolderEntry's
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerFolderArray) : public CBase
- {
- public:
- /**
- * Two-phased constructors.
- */
-#ifdef RD_MULTIPLE_DRIVE
- static CFileManagerFolderArray* NewL( CFileManagerUtils& aUtils );
-#else // RD_MULTIPLE_DRIVE
- static CFileManagerFolderArray* NewL(
- TInt aResId, CFileManagerUtils& aUtils );
-#endif // RD_MULTIPLE_DRIVE
-
- /**
- * Is the given folder in the default folder list
- * @since 2.0
- * @param aFolderName folder which is compared to default folder list
- * @return ETrue if the given folder is in list, EFalse if not
- */
- TBool Contains( const TDesC& aFolderName );
-
- /**
- * Create folders from array
- * @since 3.2
- * @param aDrive Drive which default folders are created
- * @param aForced Selects forced or normal creation
- */
- void CreateFolders(
- const TInt aDrive = KErrNotFound,
- const TBool aForced = ETrue );
-
- /**
- * Destructor.
- */
- ~CFileManagerFolderArray();
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerFolderArray( CFileManagerUtils& aUtils );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( TInt aResId );
-
-#ifndef RD_MULTIPLE_DRIVE
- /**
- * Goes through the array of CFileManagerEntry's and tries to
- * lookup if the given folder is in the array.
- * @since 2.0
- * @return CFileManagerFolderEntry if found, otherwise NULL.
- */
- CFileManagerFolderEntry* FindFolder( const TDesC& aFolderName );
-#endif // RD_MULTIPLE_DRIVE
-
- void DoCreateFoldersL( const TInt aDrive );
-
- private: // Data
- // Ref: Reference to utils
- CFileManagerUtils& iUtils;
-
- // Own: For checking if folder creation has been done or not
- TUint iCreateCheckMask;
-
-#ifndef RD_MULTIPLE_DRIVE
- // Own: Array of CFileManagerFolderEntry's
- RPointerArray< CFileManagerFolderEntry > iFolderArray;
-
- // Own: Indicates if folder array has been sorted
- TBool iSorted;
-#endif // RD_MULTIPLE_DRIVE
-
- };
-
-#endif // CFILEMANAGERFOLDERARRAY_H
-
-// End of File
--- a/filemanager/Engine/inc/Cfilemanagerindexiterator.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Goes through the list of given files
-*
-*/
-
-
-#ifndef CFILEMANAGERINDEXITERATOR_H
-#define CFILEMANAGERINDEXITERATOR_H
-
-// INCLUDES
-#include <e32base.h>
-#include "Mfilemanageritemiterator.h"
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-
-/**
-* Goes through the given file list. Implements the
-* MFileManagerItemIterator.
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CFileManagerIndexIterator) :
- public CBase,
- public MFileManagerItemIterator
- {
- public:
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerIndexIterator* NewL(
- CFileManagerEngine& aEngine,
- CArrayFixFlat< TInt >& aIndexList,
- const TDesC& aDstDir );
-
- /**
- * Destructor.
- */
- ~CFileManagerIndexIterator();
-
- public: // From MFileManagerItemIterator
-
- void CurrentL(
- HBufC** aSrc, HBufC** aDst, TFileManagerTypeOfItem& aItemType);
-
- TBool NextL();
-
- private:
-
- /**
- * C++ default constructor.
- */
- CFileManagerIndexIterator(
- CFileManagerEngine& aEngine,
- CArrayFixFlat< TInt >& aIndexList,
- const TDesC& aDstDir );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- private:
- // Index to currently processed item in given array
- TInt iCurrentIndex;
-
- // To get the full path information
- CFileManagerEngine& iEngine;
-
- // User chosen list of files
- CArrayFixFlat< TInt >& iIndexList;
-
- // Destination directory
- const TDesC& iDstDir;
-
- // Own: Source of the currently processed item with full path
- HBufC* iSrc;
-
- // Own: Destination of the currently processes item with full path
- HBufC* iDst;
-
- };
-
-#endif // CFILEMANAGERINDEXITERATOR_H
\ No newline at end of file
--- a/filemanager/Engine/inc/FileManagerDebug.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Common debug definitions
-*
-*/
-
-
-#ifndef FILEMANAGERDEBUG_H
-#define FILEMANAGERDEBUG_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <e32debug.h>
-
-
-//#define FILE_MANAGER_INFO_LOG_ENABLED
-
-#ifdef _DEBUG
- #define FILE_MANAGER_ERROR_LOG_ENABLED
-#endif // _DEBUG
-
-
-// Info logging
-#ifdef FILE_MANAGER_INFO_LOG_ENABLED
-
- #define INFO_LOG( aMsg ) { _LIT( KMsg, aMsg ); RDebug::Print( KMsg ); }
-
- #define INFO_LOG1( aMsg, aArg1 )\
- { _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aArg1 ); }
-
- #define INFO_LOG2( aMsg, aArg1, aArg2 )\
- { _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aArg1, aArg2 ); }
-
- #define INFO_LOG3( aMsg, aArg1, aArg2, aArg3 )\
- { _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aArg1, aArg2, aArg3 ); }
-
-// Function log object
-_LIT8( KFuncNameTerminator, "(" );
-_LIT8( KFuncLeavePattern, "L" );
-
-class TFuncLog
- {
-public:
- static void Cleanup( TAny* aPtr )
- {
- TFuncLog* self = static_cast< TFuncLog* >( aPtr );
- self->iLeft = ETrue;
- RDebug::Printf( "%S-LEAVE", &self->iFunc ); // Leave detected
- }
-
- inline TFuncLog( const char* aFunc ) :
- iFunc( aFunc ? _S8( aFunc ) : _S8("") ),
- iLeft( EFalse ),
- iCanLeave( EFalse )
- {
- TInt pos( iFunc.Find( KFuncNameTerminator ) );
- if( pos != KErrNotFound )
- {
- iFunc.Set( iFunc.Left( pos ) );
- TInt patLen( KFuncLeavePattern().Length() );
- iCanLeave = iFunc.Length() > patLen &&
- !iFunc.Right( patLen ).Compare( KFuncLeavePattern );
- }
- RDebug::Printf( "%S-START", &iFunc );
- }
-
- inline ~TFuncLog()
- {
- if ( !iLeft )
- {
- if ( iCanLeave )
- {
- CleanupStack::Pop( this ); // Pop the cleanup item
- }
- RDebug::Printf( "%S-END", &iFunc ); // Normally finished
- }
- }
-
- TPtrC8 iFunc;
- TBool iLeft;
- TBool iCanLeave;
- };
-
- #define FUNC_LOG\
- TFuncLog _fl( __PRETTY_FUNCTION__ );\
- TCleanupItem _flCi( TFuncLog::Cleanup, &_fl );\
- if ( _fl.iCanLeave ) { CleanupStack::PushL( _flCi ); }
-
- #define TIMESTAMP( aCaption )\
- {\
- TTime t;\
- t.HomeTime();\
- RDebug::Printf( "%s %d us", aCaption, I64INT( t.Int64() ) );\
- }
-
-#else // FILE_MANAGER_INFO_LOG_ENABLED
-
- #define INFO_LOG( aMsg )
-
- #define INFO_LOG1( aMsg, aArg1 )
-
- #define INFO_LOG2( aMsg, aArg1, aArg2 )
-
- #define INFO_LOG3( aMsg, aArg1, aArg2, aArg3 )
-
- #define FUNC_LOG
-
- #define TIMESTAMP( aCaption )
-
-#endif // FILE_MANAGER_INFO_LOG_ENABLED
-
-
-// Error logging
-#ifdef FILE_MANAGER_ERROR_LOG_ENABLED
-
- #define ERROR_LOG( aMsg ) { _LIT( KMsg, aMsg ); RDebug::Print( KMsg ); }
-
- #define ERROR_LOG1( aMsg, aArg1 )\
- { _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aArg1 ); }
-
- #define ERROR_LOG2( aMsg, aArg1, aArg2 )\
- { _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aArg1, aArg2 ); }
-
- #define ERROR_LOG3( aMsg, aArg1, aArg2, aArg3 )\
- { _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aArg1, aArg2, aArg3 ); }
-
- #define LOG_IF_ERROR( aErr, aMsg )\
- if ( ( aErr ) != KErrNone )\
- { _LIT( KMsg, aMsg ); RDebug::Print( KMsg ); }
-
- #define LOG_IF_ERROR1( aErr, aMsg, aArg1 )\
- if ( ( aErr ) != KErrNone )\
- { _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aArg1 ); }
-
- #define LOG_IF_ERROR2( aErr, aMsg, aArg1, aArg2 )\
- if ( ( aErr ) != KErrNone )\
- { _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aArg1, aArg2 ); }
-
- #define LOG_IF_ERROR3( aErr, aMsg, aArg1, aArg2, aArg3 )\
- if ( ( aErr ) != KErrNone )\
- { _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aArg1, aArg2, aArg3 ); }
-
-#else // FILE_MANAGER_ERROR_LOG_ENABLED
-
- #define ERROR_LOG( aMsg )
-
- #define ERROR_LOG1( aMsg, aArg1 )
-
- #define ERROR_LOG2( aMsg, aArg1, aArg2 )
-
- #define ERROR_LOG3( aMsg, aArg1, aArg2, aArg3 )
-
- // Remove compiler warning
- #define LOG_IF_ERROR( aErr, aMsg ) ( aErr ) = ( aErr );
-
- #define LOG_IF_ERROR1( aErr, aMsg, aArg1 ) ( aErr ) = ( aErr );
-
- #define LOG_IF_ERROR2( aErr, aMsg, aArg1, aArg2 ) ( aErr ) = ( aErr );
-
- #define LOG_IF_ERROR3( aErr, aMsg, aArg1, aArg2, aArg3 ) ( aErr ) = ( aErr );
-
-#endif // FILE_MANAGER_ERROR_LOG_ENABLED
-
-
-#endif // FILEMANAGERDEBUG_H
-
-// End of File
--- a/filemanager/Engine/inc/FileManagerEngine.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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 for project FileManagerEngine
-*
-*/
-
-
-#ifndef FILEMANAGERENGINE_HRH
-#define FILEMANAGERENGINE_HRH
-
-#include <AvkonIcons.hrh>
-
-#define commondialogs_mbm_file_location "z:\\resource\\apps\\CommonDialogs.mbm"
-#define filemanager_mbm_file_location "z:\\resource\\apps\\FileManager.mbm"
-#define avkon_mbm_file_location AVKON_ICON_FILE
-
-// Icons for the listview display
-enum TFileManagerIconId
- {
- // Mark icon
- EFileManagerMarkIcon,
- // Folder icons
- EFileManagerFolderIcon,
- EFileManagerFolderSubIcon,
- EFileManagerFolderEmptyIcon,
- // Memory icons
- EFileManagerMemoryCardIcon,
- EFileManagerPhoneMemoryIcon,
- // File icons
- EFileManagerImageFileIcon,
- EFileManagerPictureMsgFileIcon,
- EFileManagerDycLogoFileIcon,
- EFileManagerLinkFileIcon,
- EFileManagerVoicerecFileIcon,
- EFileManagerSoundFileIcon,
- EFileManagerPlaylistFileIcon,
- EFileManagerCompoFileIcon,
- EFileManagerNoteFileIcon,
- EFileManagerAppFileIcon,
- EFileManagerVideoFileIcon,
- EFileManagerGameFileIcon,
- EFileManagerOtherFileIcon,
- EFileManagerFlashFileIcon,
- // Main view icons
- EFileManagerPhoneMemoryMainIcon,
- EFileManagerMemoryCardPresentMainIcon,
- EFileManagerMemoryCardNotPresentMainIcon,
- EFileManagerBackupMainIcon,
- EFileManagerRemoteDriveConnectedIcon,
- EFileManagerRemoteDriveMainIcon,
- EFileManagerMassStorageMainIcon,
- EFileManagerUsbMemoryMainIcon
- };
-
-// Type of the item
-// Needed for App to create correct softmenu for the item
-enum TFileManagerTypeOfItem
- {
- EFileManagerFolder = 1,
- EFileManagerDefaultFolder,
- EFileManagerForwardLockedFile,
- EFileManagerFile,
- EFileManagerNoType
- };
-
-enum TFileManagerMemory
- {
- EFmPhoneMemory = 0,
- EFmMemoryCard,
- EFmRemoteDrive,
- EFmMassStorage,
- EFmUsbMemory,
- EFmMemoryCount // must remain last one
- };
-
-enum TFileManagerActionId
- {
- EFileManagerBackupAction = 0
- };
-
-enum TFileManagerGroupId
- {
- EFileManagerDrivesGroup = 0,
- EFileManagerFilesGroup
- };
-
-#endif // FILEMANAGERENGINE_HRH
--- a/filemanager/Engine/inc/FileManagerEngine.rh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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 for project FileManagerEngine
-*
-*/
-
-
-#ifndef FILEMANAGERENGINE_RH
-#define FILEMANAGERENGINE_RH
-
-// STRUCTURE DEFINITIONS
-
-// -----------------------------------------------------------------------------
-// FILEMANAGER_DEFAULT_FOLDER
-// This struct is used for mapping default folders
-// -----------------------------------------------------------------------------
-//
-
-STRUCT FILEMANAGER_DEFAULT_FOLDER
- {
- LTEXT root; // root under which the folder is
- LTEXT folder; // name of the folder
- BYTE isMediaFolder = 0; // 1 if this is media folder, 0 otherwise
- }
-
-// -----------------------------------------------------------------------------
-// FILEMANAGER_ICON_MAPPER
-// This struct is used for mapping MIME type to icon id
-// -----------------------------------------------------------------------------
-//
-
-STRUCT FILEMANAGER_ICON_MAPPER
- {
- LTEXT mimeType; // MIME type of item
- WORD iconId; // icon ID corresponding to MIME type
- }
-
-#endif // FILEMANAGERENGINE_RH
-
-// End of File
--- a/filemanager/Engine/inc/FileManagerPrivateCRKeys.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2006-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: Private Central Repository definitions of the
-* File Manager subsystem
-*
-*/
-
-
-
-#ifndef FILEMANAGERPRIVATECRKEYS_H
-#define FILEMANAGERPRIVATECRKEYS_H
-
-
-/** File manager repository uid */
-const TUid KCRUidFileManagerSettings = { 0x1020506B };
-
-/** Defines the backup content */
-const TUint32 KFileManagerBackupContent = 0x1;
-
-/** Contains the possible bitmask values of KFileManagerBackupContent key. */
-enum TFileManagerBackupContentMask
- {
- EFileManagerBackupContentAll = 0x1,
- EFileManagerBackupContentSettings = 0x2,
- EFileManagerBackupContentMessages = 0x4,
- EFileManagerBackupContentContacts = 0x8,
- EFileManagerBackupContentCalendar = 0x10,
- EFileManagerBackupContentBookmarks = 0x20,
- EFileManagerBackupContentUserFiles = 0x40,
- EFileManagerBackupContentFirst = 0x2,
- EFileManagerBackupContentLast = 0x40
- };
-
-/** Defines the backup scheduling mode */
-const TUint32 KFileManagerBackupScheduling = 0x2;
-
-/** Contains the possible values of KFileManagerBackupScheduling key. */
-enum TFileManagerBackupSchedule
- {
- EFileManagerBackupScheduleNone = 0,
- EFileManagerBackupScheduleDaily,
- EFileManagerBackupScheduleWeekly
- };
-
-/** Defines the scheduled backup weekday. See day definitions from TDay.
- * Negative value means the first day of the week.
- */
-const TUint32 KFileManagerBackupDay = 0x3;
-
-/** Defines the scheduled backup time in minutes starting from 00:00 midnight */
-const TUint32 KFileManagerBackupTime = 0x4;
-
-/** Defines the backup target path as string */
-const TUint32 KFileManagerBackupTargetPath = 0x5;
-
-/** Defines the status of the last scheduled backup */
-const TUint32 KFileManagerLastSchBackupStatus = 0x6;
-
-/** Contains the possible values of KFileManagerLastSchBackupStatus key. */
-enum TFileManagerSchBackupStatus
- {
- EFileManagerSchBackupStatusOk = 0,
- EFileManagerSchBackupStatusFailed,
- EFileManagerSchBackupStatusStarting,
- EFileManagerSchBackupStatusInProgress,
- EFileManagerSchBackupStatusCanceled
- };
-
-/** Defines file manager local variation configuration */
-const TUint32 KFileManagerFeatures = 0x7;
-
-/** Contains the possible bitmask values of KFileManagerFeatures key. */
-enum TFileManagerFeatures
- {
- EFileManagerFeatureBackupAllowAllDrives = 0x1,
- EFileManagerFeatureNotUsedAnymore = 0x2,
- EFileManagerFeatureRightLeftNaviSupported = 0x4,
- EFileManagerFeatureScheduledBackupDisabled = 0x8,
- EFileManagerFeatureOwnFastScrollDisabled = 0x10
- };
-
-/** Defines the file manager application to be launched for the AIW service.
-The value of this key is an application UID or zero. */
-const TUint32 KFileManagerAppUidForAiwService = 0x8;
-
-/** Defines default volume name for non user nameable mass storage.
-The default name will be used after format only if the stored volume name is undefined
-for the drive. The name is visible only in Windows Explorer during USB mass storage mode and
-in 3rd party File Manager(s). */
-const TUint32 KFileManagerDefaultInternalMassStorageVolumeName = 0x9;
-
-/** Defines a store for keeping existing non user nameable mass storage volume name over
-format operation. The data is stored in binary as TFileManagerVolumeNameStore. */
-const TUint32 KFileManagerStoredInternalMassStorageVolumeName = 0xA;
-
-#endif // FILEMANAGERPRIVATECRKEYS_H
-
-// End of File
--- a/filemanager/Engine/inc/FileManagerSchDefinitions.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2006 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: Common scheduled task definitions
-*
-*/
-
-
-#ifndef FILEMANAGERSCHDEFINITIONS_H
-#define FILEMANAGERSCHDEFINITIONS_H
-
-
-// For scheduled backup task
-_LIT( KSchBackupStarterExe, "filemanagerschbkup.exe" );
-_LIT( KSchBackupTaskName, "StartBackup" );
-
-
-#endif // FILEMANAGERBACKUPDEFINITIONS_H
-
-// End of File
--- a/filemanager/Engine/inc/MFileManagerProcessObserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Defines an interface for handling engine events
-*
-*/
-
-
-
-#ifndef MFILEMANAGERPROCESSOBSERVER_H
-#define MFILEMANAGERPROCESSOBSERVER_H
-
-class MAknBackgroundProcess;
-
-
-// CLASS DECLARATION
-/**
-* Defines an interface for handling engine events.
-*
-* @since 2.0
-*/
-class MFileManagerProcessObserver
- {
- public:
- /* Process which is observed*/
- enum TFileManagerProcess
- {
- ENoProcess = 0,
- ECopyProcess,
- EMoveProcess,
- EIRReceiveProcess,
- EDeleteProcess,
- EFormatProcess,
- EBackupProcess,
- ERestoreProcess,
- EEjectProcess,
- ESchBackupProcess,
- EFileOpenProcess
- };
-
- /** Event which is notified */
- enum TFileManagerNotify
- {
- ENotifyActionSelected = 0, // Action item is selected
- ENotifyDisksChanged, // Disk state changes (disk added, removed etc)
- ENotifyBackupMemoryLow, // Low memory for storing backup data
- ENotifyForcedFormat, // Forced format
- ENotifyFileOpenDenied // File open denied (DRM checks before open etc)
- };
-
- /**
- * Start the refresh process
- * @since 2.0
- */
- virtual void RefreshStartedL() = 0;
-
- /**
- * Stops the refresh process
- * @since 2.0
- */
- virtual void RefreshStoppedL() = 0;
-
- /**
- * Process has been started
- * @since 2.0
- * @param aProcess Started process
- * @param aFinalValue Executed progress final value
- */
- virtual void ProcessStartedL(
- TFileManagerProcess aProcess,
- TInt aFinalValue = 0 ) = 0;
-
- /**
- * Process finished
- * @since 2.0
- * @param aError Finish status
- * @param aName Finish status related text
- */
- virtual void ProcessFinishedL(
- TInt aError, const TDesC& aName = KNullDesC ) = 0;
-
- /**
- * During execution of process bytes (file copy) or
- * percentage (Infrared file receiving)
- * is updated via this method
- * @since 2.0
- * @param aValue Execution progress related value
- */
- virtual void ProcessAdvanceL( TInt aValue ) = 0;
-
- /**
- * Query file overwrite from user
- * @since 2.0
- * @param aOldFileName old name of the item
- * @param aNewFileName new name of the item
- * @param aProcess Move or Copy in progress
- * @return ETrue if user want's to overwrite the name, EFalse if not
- */
- virtual TBool ProcessQueryOverWriteL(
- const TDesC& aOldFileName,
- TDes& aNewFileName,
- TFileManagerProcess aProcess ) = 0;
-
- /**
- * Query rename item from user
- * @param aOldFileName old name of the item
- * @param aNewFileName new name of the item
- * @param aProcess Move or Copy in progress
- * @since 2.0
- * @return ETrue if user want's to change the name, EFalse if not
- */
- virtual TBool ProcessQueryRenameL(
- const TDesC& aOldFileName,
- TDes& aNewFileName,
- TFileManagerProcess aProcess ) = 0;
-
- /**
- * Creates and displays wait note
- * @since 2.0
- * @param aProcess reference to object which implements
- * the Wait Note Wrapper API
- */
- virtual void ShowWaitDialogL( MAknBackgroundProcess& aProcess ) = 0;
-
- /**
- * Engine reports that there is an error
- * @param aError error code
- * @since 2.0
- */
- virtual void Error( TInt aError ) = 0;
-
- /**
- * Handles engine notification
- * @since 3.1
- * @param aType Notification type
- * @param aData Notification related data
- * @param aName Notification related text
- * @return A notification related value
- */
- virtual TInt NotifyL(
- TFileManagerNotify aType,
- TInt aData = 0,
- const TDesC& aName = KNullDesC ) = 0;
-
- };
-
-#endif // MFILEMANAGERPROCESSOBSERVER_H
-
-// End of File
\ No newline at end of file
--- a/filemanager/Engine/inc/MFileManagerPropertyObserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2006 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: Interface to handle async P&S property notifications
-*
-*/
-
-
-
-#ifndef CFILEMANAGERPROPERTYOBSERVER_H
-#define CFILEMANAGERPROPERTYOBSERVER_H
-
-// INCLUDES
-#include <e32base.h>
-
-
-// CLASS DECLARATION
-/**
-* Defines an interface for handling async P&S property changes.
-*
-* @since 3.1
-*/
-class MFileManagerPropertyObserver
- {
- public:
- /**
- * Informs about property changes
- * @since 3.1
- * @param aCategory Property category Uid
- * @param aKey Property key id
- */
- virtual void PropertyChangedL(
- const TUid& aCategory, const TUint aKey ) = 0;
- };
-
-#endif // CFILEMANAGERPROPERTYOBSERVER_H
-
-// End of File
--- a/filemanager/Engine/inc/MFileManagerThreadFunction.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Background thread abstraction
-*
-*/
-
-
-#ifndef MFILEMANAGERTHREADFUNCTION_H
-#define MFILEMANAGERTHREADFUNCTION_H
-
-
-// INCLUDES
-#include <e32base.h>
-
-
-// CLASS DECLARATION
-/**
-* Defines an interface for background thread abstraction.
-*
-* @since 3.1
-*/
-class MFileManagerThreadFunction
- {
- public: // Background thread space executed callbacks
-
- /**
- * Inits background thread owned handles and data.
- * Executed always on background thread start.
- * @since 3.1
- */
- virtual void InitThreadL() {}
-
- /**
- * Releases background thread owned handles and data.
- * Executed always on background thread exit.
- * @since 3.1
- */
- virtual void ReleaseThread() {}
-
- /**
- * Runs background thread.
- * @since 3.1
- */
- virtual void ThreadStepL() = 0;
-
- /**
- * Checks is background thread done.
- * @since 3.1
- * @return ETrue if thread is done and should be finished,
- * EFalse if ThreadStepL should be executed.
- */
- virtual TBool IsThreadDone() = 0;
-
-
- public: // Client thread space executed callbacks
- enum TNotifyType // Notify type flags
- {
- ENotifyNone = 0x0,
- ENotifyError = 0x1,
- ENotifyFinished = 0x2, // Notifies thread's death
- ENotifyStepFinished = 0x4 // Notifies step completion
- };
- /**
- * Notifies client about background thread events.
- * Background thread is stopped during notification and
- * it is safe to modify shared data to handle errors etc.
- * @since 3.1
- * @param aType notification type
- * @param aValue notification value
- */
- virtual void NotifyThreadClientL(
- TNotifyType aType, TInt aValue ) = 0;
-
- };
-
-#endif // MFILEMANAGERTHREADFUNCTION_H
-
-// End of File
--- a/filemanager/Engine/inc/Mfilemanageritemiterator.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Interface to go through file(s) and folder(s) in copy and move
-*
-*/
-
-
-
-#ifndef MFILEMANAGERITEMITERATOR_H
-#define MFILEMANAGERITEMITERATOR_H
-
-// INCLUDES
-#include "FileManagerEngine.hrh"
-
-// CLASS DECLARATION
-/**
-* Defines an interface for iterating file(s) and folder(s).
-*
-* @since 2.0
-*/
-class MFileManagerItemIterator
- {
- public:
-
- /**
- * Gets the current processed item source and destination with full path
- * @since 2.0
- * @param aSrc Returns pointer to item source with full path
- * if this parameter is null and aDst contains destination folder
- * it means that destination is folder which should be created
- * @param aDst Returns pointer to item destination with full path
- */
- virtual void CurrentL(
- HBufC** aSrc,
- HBufC** aDst,
- TFileManagerTypeOfItem& aItemType ) = 0;
-
- /**
- * Goes to next item
- * @since 2.0
- * @return ETrue if next item found, EFalse if end reached
- */
- virtual TBool NextL() = 0;
-
- /**
- * Virtual desctructor
- * This is required because the ownership transfer does not work without
- */
- virtual ~MFileManagerItemIterator() {}
- };
-
-#endif // MFILEMANAGERITEMITERATOR_H
\ No newline at end of file
--- a/filemanager/Engine/inc/TFileManagerDriveInfo.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Drive info storage
-*
-*/
-
-
-#ifndef TFILEMANAGERDRIVEINFO_H
-#define TFILEMANAGERDRIVEINFO_H
-
-
-// INCLUDES
-#include <f32file.h>
-
-
-// CONSTANTS
-const TInt KMaxVolumeName = 11; // Limited by FAT
-// Remove these when there is API available for checking
-const TInt KFmgrSystemDrive = EDriveC;
-const TInt KFmgrMemoryCardDrive = EDriveE;
-const TInt KFmgrRomDrive = EDriveZ;
-const TInt KFmgrRamDrive = EDriveD;
-
-
-// FORWARD DECLARATIONS
-class RFs;
-class CFileManagerEngine;
-
-
-// CLASS DECLARATION
-/**
-* TFileManagerDriveInfo is used for storing drive info
-*
-* @lib FileManagerEngine.lib
-* @since 2.0
-*/
-class TFileManagerDriveInfo
- {
- public:
- /**
- * C++ default constructor.
- */
- IMPORT_C TFileManagerDriveInfo();
-
- /**
- * Resets contents
- */
- IMPORT_C void Reset();
-
- TBuf< KMaxVolumeName > iName;
- TInt64 iCapacity;
- TInt64 iSpaceFree;
- TUint iUid;
- TInt iDrive; // EDriveA...EDriveZ
- // Drive state bits
- enum TDriveState
- {
- EDrivePresent = 0x1,
- EDriveLocked = 0x2,
- EDriveCorrupted = 0x4,
- EDriveWriteProtected = 0x8,
- EDriveRemovable = 0x10,
- EDriveRemote = 0x20,
- EDriveFormattable = 0x40,
- EDriveFormatted = 0x80,
- EDriveLockable = 0x100,
- EDrivePasswordProtected = 0x200,
- EDriveBackupped = 0x400,
- EDriveConnected = 0x800,
- EDriveEjectable = 0x1000,
- EDriveInUse = 0x2000,
- EDriveMassStorage = 0x4000,
- EDriveUsbMemory = 0x8000
- };
- TUint32 iState;
-
- public:
- /**
- * Gets drive info
- * @since 3.1
- * @param aEngine Reference to engine
- * @param aDrive Drive that info is required
- */
- void GetInfoL( const CFileManagerEngine& aEngine, const TInt aDrive );
-
- private:
- void CheckMountL( RFs& aFs, const TInt aDrive ) const;
-
- TInt FillStateFromDriveInfo(
- RFs& aFs, const TInt aDrive, const TDriveInfo& aDrvInfo );
-
- TInt FillStateFromVolumeInfo( RFs& aFs, const TInt aDrive );
-
- };
-
-#endif // TFILEMANAGERDRIVEINFO_H
-
-// End of File
--- a/filemanager/Engine/inc/filemanagerprivatepskeys.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2007 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: Declaration of private ps-keys
-*
-*/
-
-
-#ifndef FILEMANAGEPRIVATEPSKEYS_H
-#define FILEMANAGEPRIVATEPSKEYS_H
-
-// INCLUDES
-#include <e32std.h>
-
-// =============================================================================
-// FileManager Status PubSub API
-// =============================================================================
-const TUid KPSUidFileManagerStatus = { 0x101F84EB }; // File Manager SID
-
-/**
-* Backup status.
-* The value is controlled by FileManager and status observed by backup checker
-*/
-const TUint32 KFileManagerBkupStatus = 0x00000001;
-
-enum TFileManagerBkupStatusType
- {
- EFileManagerBkupStatusUnset = 0x00000000,
- EFileManagerBkupStatusBackup = 0x00000001,
- EFileManagerBkupStatusRestore = 0x00000002
- };
-
-#endif // FILEMANAGERPRIVATEPSKEYS_H
-
-// End of File
-
--- a/filemanager/Engine/src/CFileManagerActiveBase.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
-* Copyright (c) 2007 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: Wraps wait note and real work thread
-*
-*/
-
-
-// INCLUDES
-#include <e32std.h>
-#include <AknWaitNoteWrapper.h>
-#include "CFileManagerActiveBase.h"
-#include "CFileManagerThreadWrapper.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::CFileManagerActiveBase
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveBase::CFileManagerActiveBase() :
- iResult( KErrCancel )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::~CFileManagerActiveBase
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveBase::~CFileManagerActiveBase()
- {
- iCanceled = ETrue;
- delete iThreadWrapper;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::BaseConstructL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveBase::BaseConstructL()
- {
- iThreadWrapper = CFileManagerThreadWrapper::NewL();
- User::LeaveIfError( iThreadWrapper->StartThread(
- *this,
- MFileManagerThreadFunction::ENotifyFinished,
- EPriorityNormal ) );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::StepL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveBase::StepL()
- {
- // Just do nothing. All processing is done by ThreadFunctionL().
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::IsProcessDone
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerActiveBase::IsProcessDone() const
- {
- return iDone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::DialogDismissedL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveBase::DialogDismissedL( TInt aButtonId )
- {
- if ( aButtonId == EAknSoftkeyCancel )
- {
- CancelThreadFunction();
- iCanceled = ETrue;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::ThreadStepL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveBase::ThreadStepL()
- {
- ThreadFunctionL( iCanceled );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::IsThreadDone
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerActiveBase::IsThreadDone()
- {
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::NotifyThreadClientL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveBase::NotifyThreadClientL(
- TNotifyType /*aType*/, TInt aValue)
- {
- iResult = aValue;
- iDone = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::Result
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerActiveBase::Result() const
- {
- return iResult;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveBase::CancelThreadFunction
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveBase::CancelThreadFunction()
- {
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerActiveExecute.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1178 +0,0 @@
-/*
-* Copyright (c) 2002-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: Handles the copy/move operation
-*
-*/
-
-
-// INCLUDE FILES
-#include <bautils.h>
-//#include <cmgxfilemanager.h>
-//#include <mgxfilemanagerfactory.h>
-#include "CFileManagerActiveExecute.h"
-#include "MFileManagerProcessObserver.h"
-#include "CFileManagerEngine.h"
-#include "CFileManagerFileSystemIterator.h"
-#include "Cfilemanagerindexiterator.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "CFileManagerUtils.h"
-#include "FileManagerDebug.h"
-#include "CFileManagerThreadWrapper.h"
-
-// CONSTANTS
-const TInt KFileManagerNotificationArrayGranularity = 64;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::NewL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerActiveExecute* CFileManagerActiveExecute::NewL(
- CFileManagerEngine& aEngine,
- MFileManagerProcessObserver::TFileManagerProcess aOperation,
- MFileManagerProcessObserver& aObserver,
- CArrayFixFlat<TInt>& aIndexList,
- const TDesC& aToFolder )
- {
- CFileManagerActiveExecute* self =
- new( ELeave ) CFileManagerActiveExecute(
- aEngine,
- aOperation,
- aObserver );
- CleanupStack::PushL( self );
- self->ConstructL( aIndexList, aToFolder );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::~CFileManagerActiveExecute
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerActiveExecute::~CFileManagerActiveExecute()
- {
- Cancel();
- delete iThreadWrapper;
- delete iItemIterator;
- delete iFullPath;
- delete iDestination;
- delete iToFolder;
- delete iIndexList;
- delete iChangedSrcItems;
- delete iChangedDstItems;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::ExecuteL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerActiveExecute::ExecuteL( TFileManagerSwitch aOverWrite )
- {
- TInt error( KErrNone );
-
- if ( iCancelled )
- {
- TFileName newName;
- TParsePtrC parse( *iFullPath );
- if ( parse.NameOrExtPresent() )
- {
- newName.Copy( parse.NameAndExt() );
- }
- else
- {
- TPtrC name( iEngine.LocalizedName( *iFullPath ) );
- if ( name.Length() > 0 )
- {
- newName.Copy( name );
- }
- else
- {
- newName = BaflUtils::FolderNameFromFullName( *iFullPath );
- }
- }
- iObserver.ProcessFinishedL( iError, newName );
- return;
- }
-
- if ( aOverWrite == ENoOverWrite )
- {
- iItemIterator->CurrentL( &iSrc, &iDst, iItemType );
- }
-
- if ( iDst && iDst->Length() > KMaxFileName )
- {
- error = KErrBadName;
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, error );
- }
- else if ( iItemType == EFileManagerFile )
- {
-#ifdef __KEEP_DRM_CONTENT_ON_PHONE
- if ( iSrc && iDst &&
- CFileManagerUtils::IsFromInternalToRemovableDrive( iFs, *iSrc, *iDst ) )
- {
- TBool protectedFile( EFalse );
-
- // silently ignore this file if it is protected, or if there
- // was an error in checking.
- // Did consider leaving, but what about eg KErrNotFound - eg another
- // process moving/deleting the file...
- TInt ret( iEngine.IsDistributableFile( *iSrc, protectedFile ) );
- if( protectedFile || ret != KErrNone )
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrNone );
- SetActive();
- return;
- }
- }
-#endif
- DoOperation( aOverWrite );
- return;
- }
- else if ( iItemType == EFileManagerFolder )
- {
- if ( !iIsDstRemoteDrive && iEngine.IsNameFoundL( *iDst ) )
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrAlreadyExists );
- SetActive();
- return;
- }
- DoOperation( aOverWrite );
- return;
- }
- else
- {
- // We must complete this
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, error );
- }
- SetActive();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::CancelExecution
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerActiveExecute::CancelExecution()
- {
- FUNC_LOG
-
- iCancelled = ETrue;
-
- if ( iSrc )
- {
- iEngine.CancelTransfer( *iSrc );
- }
- if ( iDst )
- {
- iEngine.CancelTransfer( *iDst );
- }
- delete iThreadWrapper; // Cancel thread
- iThreadWrapper = NULL;
- Cancel();
- TRAP_IGNORE( CompleteL( KErrCancel ) );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::DoCancel
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::DoCancel()
- {
- iCancelled = ETrue;
-
- if ( iSrc )
- {
- iEngine.CancelTransfer( *iSrc );
- }
- if ( iDst )
- {
- iEngine.CancelTransfer( *iDst );
- }
- delete iThreadWrapper; // Cancel thread
- iThreadWrapper = NULL;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerActiveExecute::KErrNoneAction
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::KErrNoneActionL()
- {
- UpdateNotifications( EFalse, KErrNone );
- if ( iItemIterator->NextL() )
- {
- ExecuteL( ENoOverWrite );
- }
- else
- {
- if ( iOperation == MFileManagerProcessObserver::EMoveProcess &&
- iEngine.IsFolder( iIndexList->At( 0 ) ) )
- {
- if ( !iFinalizeMove )
- {
- // Finalize move in the thread, the finalizing way take time
- iFinalizeMove = ETrue;
- DoOperation( ENoOverWrite );
- return;
- }
- }
- UpdateNotifications( ETrue, KErrNone );
- iObserver.ProcessFinishedL( KErrNone );
- }
-
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerActiveExecute::KErrAlreadyExistsAction
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::KErrAlreadyExistsActionL()
- {
- TParsePtrC dstParse( *iDst );
- HBufC* name = HBufC::NewLC( KMaxFileName );
- TPtr ptrName( name->Des() );
- TBool doContinue( EFalse );
-
- // Depending on target file can it be delete, we ask overwrite or rename.
- // If source and target is same, then rename is only possible choice.
- if ( iItemType == EFileManagerFile && iEngine.CanDelete( *iDst ) && iSrc->FindF( *iDst ) )
- {
- if ( iObserver.ProcessQueryOverWriteL( *iDst, ptrName, iOperation ) )
- {
- ExecuteL( EOverWrite );
- }
- else
- {
- // user does not want to overwrite item and ptrName should now contain
- // user given new name
- if ( ptrName.Length() > 0 )
- {
- ptrName.Insert( 0, dstParse.DriveAndPath() );
- if ( !iDst->CompareF( ptrName ) )
- {
- DoOperation( ENoOverWrite );
- }
- else
- {
- iDst->Des().Copy( ptrName );
- // Overwrite, because user already queried by overwrite
- DoOperation( EOverWrite );
- }
- }
- else
- {
- // User is not willing to rename item, continue current operation
- doContinue = ETrue;
- }
- }
- }
- else
- {
- // item can't be overwrite
- if ( iObserver.ProcessQueryRenameL( *iDst, ptrName, iOperation ) )
- {
- if ( ptrName.Length() > 0 )
- {
- if ( iItemType == EFileManagerFile )
- {
- ptrName.Insert( 0, dstParse.DriveAndPath() );
- iDst->Des().Copy( ptrName );
- }
- else if ( iItemType == EFileManagerFolder )
- {
- TPtr ptr( iDst->Des() );
- AddLastFolder( ptr, ptrName, *iToFolder );
- iDestination->Des().Copy( ptr );
- }
- // Overwrite, because user already queried by rename
- ExecuteL( EOverWrite );
- }
- else if ( iItemType == EFileManagerFolder )
- {
- iCancelled = ETrue;
- iError = KErrCancel;
- ExecuteL( ENoOverWrite );
- }
- else
- {
- // User is not willing to rename item, continue current operation
- doContinue = ETrue;
- }
- }
- else if ( iItemType == EFileManagerFolder )
- {
- iCancelled = ETrue;
- iError = KErrCancel;
- ExecuteL( ENoOverWrite );
- }
- else
- {
- // User is not willing to rename item, continue current operation
- doContinue = ETrue;
- }
- }
-
- CleanupStack::PopAndDestroy( name );
-
- if ( doContinue )
- {
- if ( iItemIterator->NextL() )
- {
- ExecuteL( ENoOverWrite );
- }
- else
- {
- UpdateNotifications( ETrue, KErrNone );
- iObserver.ProcessFinishedL( KErrNone );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::RunL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::RunL()
- {
- CompleteL( iStatus.Int() );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::CompleteL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::CompleteL( TInt aError )
- {
- if ( iCancelled || !iItemIterator )
- {
- UpdateNotifications( ETrue, iError );
- TParsePtrC parse( CFileManagerUtils::StripFinalBackslash(
- *iDestination ) );
- if ( parse.NameOrExtPresent() )
- {
- iObserver.ProcessFinishedL( iError, parse.NameAndExt() );
- }
- else if ( parse.DrivePresent() )
- {
- iObserver.ProcessFinishedL( iError, parse.Drive() );
- }
- else
- {
- iObserver.ProcessFinishedL( iError );
- }
- return;
- }
-
- // Symbian returns KErrNone if source and destination
- // in moving is same. Here we have to treat it as error.
- if( iSrc && iDst )
- {
- if ( !iSrc->CompareF( *iDst ) && aError == KErrNone )
- {
- aError = KErrInUse;
- }
- }
-
- ERROR_LOG1( "CFileManagerActiveExecute::CompleteL()-aError=%d", aError )
-
- switch ( aError )
- {
- case KErrNone:
- {
- KErrNoneActionL();
- break;
- }
- case KErrAlreadyExists:
- {
- KErrAlreadyExistsActionL();
- break;
- }
- case KErrCancel: // Suppressed errors
- {
- UpdateNotifications( ETrue, KErrNone );
- iObserver.ProcessFinishedL( KErrNone );
- break;
- }
- default:
- {
- if ( iSrc )
- {
- // Try rename when moving and the target file exists and is in use
- if ( iOperation == MFileManagerProcessObserver::EMoveProcess &&
- aError == KErrInUse &&
- iDst &&
- iEngine.CanDelete( *iSrc ) &&
- iEngine.IsNameFoundL( *iDst ) )
- {
- KErrAlreadyExistsActionL();
- }
- else
- {
- UpdateNotifications( ETrue, aError );
- TParsePtrC parse( *iSrc );
- iObserver.ProcessFinishedL( aError, parse.NameAndExt() );
- }
- }
- else
- {
- UpdateNotifications( ETrue, aError );
- iObserver.ProcessFinishedL( aError );
- }
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::RunError
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerActiveExecute::RunError(TInt aError)
- {
- return aError;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::CFileManagerActiveExecute
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveExecute::CFileManagerActiveExecute(
- CFileManagerEngine& aEngine,
- MFileManagerProcessObserver::TFileManagerProcess aOperation,
- MFileManagerProcessObserver& aObserver ) :
- CActive( CActive::EPriorityLow ), // Use low to avoid progress note mess up
- iEngine( aEngine ),
- iFs( aEngine.Fs() ),
- iOperation( aOperation ),
- iObserver( aObserver )
- {
- CActiveScheduler::Add( this );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::ConstructL( CArrayFixFlat<TInt>& aIndexList,
- const TDesC& aToFolder )
- {
- iChangedSrcItems = new( ELeave ) CDesCArrayFlat(
- KFileManagerNotificationArrayGranularity );
- iChangedDstItems = new( ELeave ) CDesCArrayFlat(
- KFileManagerNotificationArrayGranularity );
-
- iToFolder = aToFolder.AllocL();
- TInt count( aIndexList.Count() );
- iIndexList = new( ELeave ) CArrayFixFlat< TInt >( count );
- for( TInt i( 0 ); i < count; ++i )
- {
- // make own copy of index list because caller may
- // destroy the original one.
- iIndexList->AppendL( aIndexList.At( i ) );
- }
-
- TInt index( iIndexList->At( iCurrentIndex ) );
-
- iFullPath = iEngine.IndexToFullPathL( index );
-
- TBool isDirectory( iEngine.IsFolder( index ) );
-
- iDestination = HBufC::NewL( KFmgrDoubleMaxFileName );
-
- if ( isDirectory )
- {
- TPtr ptr( iDestination->Des() );
- AddLastFolder( ptr, *iFullPath, *iToFolder );
- }
- else
- {
- iDestination->Des().Copy( aToFolder );
- }
-
- // Check that we are not copying/moving folder to inside it ( recursive copy )
- if ( isDirectory && !iDestination->FindF( *iFullPath ) &&
- iDestination->Length() > iFullPath->Length() )
- {
- iCancelled = ETrue;
- iError = KErrAccessDenied;
- }
- // Is destination path too long for file system
- else if ( iDestination->Length() > KMaxFileName )
- {
- iCancelled = ETrue;
- iError = KErrBadName;
- }
- else if ( isDirectory )
- {
- iItemIterator = CFileManagerFileSystemIterator::NewL(
- iFs, *iFullPath, *iDestination, iEngine );
- }
- else
- {
- iItemIterator = CFileManagerIndexIterator::NewL(
- iEngine, aIndexList, *iDestination );
- }
-
- // MG2 notification object
- //iMgxFileManager = &iEngine.MGXFileManagerL();
-
- // Check are operation source and target on the same drive
- TParsePtrC srcParse( *iFullPath );
- TParsePtrC dstParse( *iDestination );
- TPtrC srcDrv( srcParse.Drive() );
- TPtrC dstDrv( dstParse.Drive() );
- iOperationOnSameDrive = !( srcDrv.CompareF( dstDrv ) );
- iIsSrcRemoteDrive = CFileManagerUtils::IsRemoteDrive( iFs, srcDrv );
- iIsDstRemoteDrive = CFileManagerUtils::IsRemoteDrive( iFs, dstDrv );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::AddLastFolder
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::AddLastFolder( TDes& aResult,
- const TDesC& aSrc,
- const TDesC& aDst )
- {
- TInt lastBackslash = aSrc.LocateReverse( KFmgrBackslash()[0] );
- if ( lastBackslash != KErrNotFound )
- {
- // source is full path
- aResult.Copy( aSrc.Left( lastBackslash - 1 ) );
- // Last backslash is now temporary removed check next last backslash
- TInt secondLastBackslash( aResult.LocateReverse( KFmgrBackslash()[0] ) );
- // Now we know the coordinates of the last path
- aResult.Copy( iEngine.LocalizedName( aSrc ) );
- if ( aResult.Length() > 0 )
- {
- aResult.Insert( 0, aDst );
- aResult.Append( KFmgrBackslash );
- }
- else
- {
- aResult.Append( aDst );
- // Skip '\\'
- TInt startingPoint( secondLastBackslash + 1 );
- aResult.Append( aSrc.Mid( startingPoint,
- lastBackslash - secondLastBackslash ) );
- }
- }
- else
- {
- // source is only one folder name
- aResult.Copy( aDst );
- aResult.Append( aSrc );
- aResult.Append( KFmgrBackslash );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::DoOperation
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerActiveExecute::DoOperation( TInt aSwitch )
- {
- // Source and destination must be different
- if ( iSrc && iDst && !iDst->CompareF( *iSrc ) )
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrAlreadyExists );
- SetActive();
- return KErrAlreadyExists;
- }
- TInt err( KErrNone );
-
- iSwitch = aSwitch;
-
- if ( !iThreadWrapper )
- {
- TRAP( err, iThreadWrapper = CFileManagerThreadWrapper::NewL() );
- if ( err != KErrNone )
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, err );
- SetActive();
- return err;
- }
- }
- if ( iThreadWrapper->IsThreadStarted() )
- {
- iThreadWrapper->ResumeThread();
- }
- else
- {
- err = iThreadWrapper->StartThread(
- *this, ENotifyStepFinished, EPriorityLess );
- if ( err != KErrNone )
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, err );
- SetActive();
- return err;
- }
- }
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::IsEmptyDir
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerActiveExecute::IsEmptyDir( const TDesC& aDir )
- {
- return !CFileManagerUtils::HasAny(
- iFs, aDir, KEntryAttMatchMask | KEntryAttNormal );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::ThreadCopyOrMoveStepL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::ThreadCopyOrMoveStepL()
- {
- FUNC_LOG
-
- INFO_LOG2( "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-%S=>%S",
- iSrc, iDst )
-
- TInt err( KErrNone );
-
- if ( iItemType == EFileManagerFolder )
- {
- // Handle folders
- err = iFs.MkDir( *iDst ); // Try faster way first
- LOG_IF_ERROR1(
- err,
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-MkDir,err=%d",
- err )
- if ( err != KErrNone && err != KErrCancel )
- {
- err = iFs.MkDirAll( *iDst );
- LOG_IF_ERROR1(
- err,
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-MkDirAll,err=%d",
- err )
- }
- if ( err == KErrNone )
- {
- TEntry entry;
- err = iFs.Entry( *iSrc, entry );
- if ( err == KErrNone )
- {
- iFs.SetEntry( *iDst, entry.iModified, entry.iAtt, 0 ); // Ignore error
- }
- }
- User::LeaveIfError( err );
- return;
- }
-
- // Handle files
- if ( iOperationOnSameDrive &&
- iOperation == MFileManagerProcessObserver::EMoveProcess )
- {
- INFO_LOG(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-MoveInsideDrive" )
-
- if ( iSwitch == EOverWrite )
- {
- INFO_LOG( "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-Overwrite" )
-
- err = iFs.Replace( *iSrc, *iDst );
- }
- else
- {
- INFO_LOG( "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-NoOverwrite" )
-
- err = iFs.Rename( *iSrc, *iDst );
- }
-
- LOG_IF_ERROR1(
- err,
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-OnSameDrive,err=%d",
- err )
-
- if ( err == KErrNone || err == KErrCancel )
- {
- // Optimized move was successful or cancelled
- User::LeaveIfError( err );
- // If move the files in the same drive, the application
- // just calculate the amount of the files, so it should
- // notify the observer that how many files have been moved.
- iBytesTransferredTotal++;
- TRAP_IGNORE( iObserver.ProcessAdvanceL(
- iBytesTransferredTotal ) );
- return;
- }
- }
-
- TInt64 fileSize( 0 );
- RFile64 srcFile;
-
- // Open source file
- if ( iOperation == MFileManagerProcessObserver::EMoveProcess )
- {
- INFO_LOG( "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-Move" )
-
- User::LeaveIfError( srcFile.Open(
- iFs, *iSrc, EFileRead | EFileShareExclusive ) );
- }
- else
- {
- INFO_LOG( "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-Copy" )
-
- User::LeaveIfError( srcFile.Open(
- iFs, *iSrc, EFileRead | EFileShareReadersOnly ) );
- }
- CleanupClosePushL( srcFile );
- User::LeaveIfError( srcFile.Size( fileSize ) );
-
- // Open destination file
- RFile64 dstFile;
- if ( iSwitch == EOverWrite )
- {
- INFO_LOG( "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-Overwrite" )
-
- User::LeaveIfError( dstFile.Replace(
- iFs, *iDst, EFileWrite | EFileShareExclusive ) );
- }
- else
- {
- INFO_LOG( "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-NoOverwrite" )
-
- User::LeaveIfError( dstFile.Create(
- iFs, *iDst, EFileWrite | EFileShareExclusive ) );
- }
- CleanupClosePushL( dstFile );
-
- dstFile.SetSize( fileSize ); // Setting the size first speeds up operation
-
- INFO_LOG1(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-FileSize=%d",
- fileSize )
-
- // Create buffer and copy file data using it.
- // Note that buffer size should not be too big to make it is possible
- // to cancel the operation in reasonable time from the main thread.
-
- // Move these to CenRep to make configuration and fine tuning easier.
- const TInt64 KBigBufSize = 0x40000; // 256KB
- const TInt64 KMediumBufSize = 0x10000; // 64KB
- const TInt64 KSmallBufSize = 0x2000; // 8KB
-
- HBufC8* buf = HBufC8::New(
- Max( KSmallBufSize, Min( fileSize, KBigBufSize ) ) );
- if ( !buf )
- {
- buf = HBufC8::New( KMediumBufSize );
- }
- if ( !buf )
- {
- buf = HBufC8::New( KSmallBufSize );
- }
- if ( !buf )
- {
- User::Leave( KErrNoMemory );
- }
- CleanupStack::PushL( buf );
-
- TPtr8 block( buf->Des() );
-
- INFO_LOG1(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-BlockSize=%d",
- block.MaxSize() )
-
- while ( err == KErrNone && fileSize > 0 )
- {
- if ( iThreadWrapper->IsThreadCanceled() )
- {
- err = KErrCancel;
- break;
- }
- TInt blockSize( Min( fileSize, static_cast<TInt64>(block.MaxSize() ) ) );
- err = srcFile.Read( block, blockSize );
- if ( err == KErrNone )
- {
- if ( block.Length() == blockSize )
- {
- err = dstFile.Write( block, blockSize );
- if ( err == KErrNone )
- {
- fileSize -= blockSize;
-
- // Do not update the latest file transfer progress here.
- // Flushing file below may take a long time and
- // progress indicator should not get full before it.
- TRAP_IGNORE( iObserver.ProcessAdvanceL(
- iBytesTransferredTotal ) );
- iBytesTransferredTotal += blockSize;
- }
- }
- else
- {
- err = KErrCorrupt;
- }
- }
- }
-
- INFO_LOG2(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-BytesNotWritten=%d,err=%d",
- fileSize, err )
-
- CleanupStack::PopAndDestroy( buf );
-
- // Copy attributes
- TTime mod;
- if ( err == KErrNone )
- {
- err = srcFile.Modified( mod );
-
- INFO_LOG1(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-ModifiedRead,err=%d",
- err )
-
- }
- if ( err == KErrNone )
- {
- err = dstFile.SetModified( mod );
-
- INFO_LOG1(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-ModifiedWritten,err=%d",
- err )
- }
- TUint att( 0 );
- if ( err == KErrNone )
- {
- err = srcFile.Att( att );
-
- INFO_LOG2(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-AttributesRead,err=%d,att=%d",
- err, att )
- }
- if ( err == KErrNone )
- {
- // Ignore fail, because some drives like remote drives
- // do not support attributes at all
- dstFile.SetAtt( att, ( ~att ) & KEntryAttMaskSupported );
-
- INFO_LOG(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-AttributesWritten" )
- }
- // Flush file and finalize transfer progress of this file.
- // Don't flush if copying failed because it causes save dialog to appear
- // when remote drives are involved.
- if ( err == KErrNone )
- {
- err = dstFile.Flush();
-
- INFO_LOG1(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-Flushed,err=%d",
- err )
- }
- TRAP_IGNORE( iObserver.ProcessAdvanceL( iBytesTransferredTotal ) );
-
- CleanupStack::PopAndDestroy( &dstFile );
- CleanupStack::PopAndDestroy( &srcFile );
-
- // Delete source if move was succesful so far
- if ( err == KErrNone &&
- iOperation == MFileManagerProcessObserver::EMoveProcess )
- {
- // Ensure that read-only is removed before delete
- if ( att & KEntryAttReadOnly )
- {
- CFileManagerUtils::RemoveReadOnlyAttribute( iFs, *iSrc );
- }
- err = iFs.Delete( *iSrc );
-
- INFO_LOG1(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-MoveSourceDeleted,err=%d",
- err )
- }
-
- // Delete incomplete destination if error
- if ( err != KErrNone )
- {
- // Ensure that read-only is removed before delete
- if ( att & KEntryAttReadOnly )
- {
- CFileManagerUtils::RemoveReadOnlyAttribute( iFs, *iDst );
- }
- iFs.Delete( *iDst );
-
- ERROR_LOG1(
- "CFileManagerActiveExecute::ThreadCopyOrMoveStepL-FailedDstDeleted,fail=%d",
- err )
- }
-
- User::LeaveIfError( err );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::IsThreadDone()
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerActiveExecute::IsThreadDone()
- {
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::NotifyThreadClientL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::NotifyThreadClientL(
- TNotifyType aType, TInt aValue )
- {
- switch ( aType )
- {
- case ENotifyStepFinished:
- {
- CompleteL( aValue );
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::AppendArrayIfNotFound()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::AppendArrayIfNotFound(
- CDesCArray& aArray, const TDesC& aFullPath )
- {
- // Append if not already appended to the last item
- TBool append( ETrue );
- TInt count( aArray.MdcaCount() );
- if ( count > 0 )
- {
- TPtrC ptr( aArray.MdcaPoint( count - 1 ) );
- if ( !ptr.Compare( aFullPath ) )
- {
- append = EFalse;
- }
- }
- if ( append )
- {
- TRAPD( err, aArray.AppendL( aFullPath ) );
- if ( err != KErrNone )
- {
- ERROR_LOG1(
- "CFileManagerActiveExecute::AppendArrayIfNotFound-err=%d",
- err )
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::FlushArray()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::FlushArray( CDesCArray& aArray )
- {
- if ( aArray.MdcaCount() > 0 )
- {
-// TRAP_IGNORE( iMgxFileManager->UpdateL( aArray ) );
- aArray.Reset();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::UpdateNotifications()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::UpdateNotifications(
- TBool aFlush, TInt aError )
- {
- // Append notification item if operation was successful and
- // item does not already exist
- if ( aError == KErrNone && iSrc && iDst && iItemType == EFileManagerFile )
- {
- // Notifications are relevant only for local drives
- if ( iOperation == MFileManagerProcessObserver::EMoveProcess &&
- !iIsSrcRemoteDrive )
- {
- AppendArrayIfNotFound( *iChangedSrcItems, *iSrc );
- }
- if ( !iIsDstRemoteDrive )
- {
- AppendArrayIfNotFound( *iChangedDstItems, *iDst );
- }
- }
- if ( aFlush )
- {
- FlushArray( *iChangedSrcItems );
- FlushArray( *iChangedDstItems );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::ThreadFinalizeMoveStepL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::ThreadFinalizeMoveStepL()
- {
- FUNC_LOG
-
- HBufC* folderToDelete = HBufC::NewLC( KMaxFileName );
- TPtr ptrFolderToDelete( folderToDelete->Des() );
- CDirScan* dirScan = CDirScan::NewLC( iFs );
- dirScan->SetScanDataL(
- *iFullPath,
- KEntryAttNormal|KEntryAttHidden|KEntryAttSystem|
- KEntryAttDir|KEntryAttMatchExclusive,
- ESortNone,
- CDirScan::EScanUpTree );
- CDir* dir = NULL;
- dirScan->NextL( dir );
- while( dir )
- {
- CFileManagerUtils::RemoveReadOnlyAttribute(
- iFs, dirScan->FullPath() );
- CleanupStack::PushL( dir );
- TInt count( dir->Count() );
- for( TInt i( 0 ); i < count; ++i )
- {
- if ( iThreadWrapper->IsThreadCanceled() )
- {
- User::Leave( KErrCancel );
- }
- TPtrC abbrPath( dirScan->AbbreviatedPath() );
- const TEntry& entry( ( *dir )[ i ] );
- ptrFolderToDelete.Copy( *iFullPath );
- ptrFolderToDelete.Append(
- abbrPath.Right( abbrPath.Length() - 1 ) );
- ptrFolderToDelete.Append( entry.iName );
- ptrFolderToDelete.Append( KFmgrBackslash );
-#ifdef __KEEP_DRM_CONTENT_ON_PHONE
- if ( iSrc && iDst &&
- CFileManagerUtils::IsFromInternalToRemovableDrive( iFs, *iSrc, *iDst ) )
- {
- HBufC* targetFolderToDelete = HBufC::NewLC( KMaxFileName );
- TPtr ptrTargetFolderToDelete( targetFolderToDelete->Des() );
- ptrTargetFolderToDelete.Append( *iDestination );
- ptrTargetFolderToDelete.Append(
- abbrPath.Right( abbrPath.Length() - 1 ) );
- ptrTargetFolderToDelete.Append( entry.iName );
- ptrTargetFolderToDelete.Append( KFmgrBackslash );
-
- if ( IsEmptyDir( ptrFolderToDelete ) )
- {
- User::LeaveIfError( iFs.RmDir( ptrFolderToDelete ) );
- }
- else if ( IsEmptyDir( ptrTargetFolderToDelete ))
- {
- User::LeaveIfError( iFs.RmDir( ptrTargetFolderToDelete ) );
- }
- CleanupStack::PopAndDestroy( targetFolderToDelete );
- }
- else
- {
- User::LeaveIfError( iFs.RmDir( ptrFolderToDelete ) );
- }
-#else
- User::LeaveIfError( iFs.RmDir( ptrFolderToDelete ) );
-#endif
- }
- if ( iThreadWrapper->IsThreadCanceled() )
- {
- User::Leave( KErrCancel );
- }
- CleanupStack::PopAndDestroy( dir );
- dir = NULL;
- dirScan->NextL( dir );
- }
- CleanupStack::PopAndDestroy( dirScan );
- CleanupStack::PopAndDestroy( folderToDelete );
-#ifdef __KEEP_DRM_CONTENT_ON_PHONE
- if ( iSrc && iDst &&
- CFileManagerUtils::IsFromInternalToRemovableDrive( iFs, *iSrc, *iDst ) )
- {
- if ( IsEmptyDir( *iFullPath ) )
- {
- User::LeaveIfError( iFs.RmDir( *iFullPath ) );
- }
- }
- else
- {
- User::LeaveIfError( iFs.RmDir( *iFullPath ) );
- }
-#else
- User::LeaveIfError( iFs.RmDir( *iFullPath ) );
-#endif
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::ThreadStepL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveExecute::ThreadStepL()
- {
- FUNC_LOG
-
- if ( !iFinalizeMove )
- {
- ThreadCopyOrMoveStepL();
- }
- else
- {
- ThreadFinalizeMoveStepL();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveExecute::ToFolder()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerActiveExecute::ToFolder()
- {
- if ( iToFolder )
- {
- return iToFolder->Des();
- }
- return TPtrC( KNullDesC );
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerActiveRename.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-/*
-* Copyright (c) 2007 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: Class wraps rename operation
-*
-*/
-
-
-// INCLUDES
-#include <e32std.h>
-#include "CFileManagerActiveRename.h"
-#include "CFileManagerEngine.h"
-#include "CFileManagerUtils.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "FileManagerDebug.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveRename::CFileManagerActiveRename
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveRename::CFileManagerActiveRename(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils ) :
- iEngine( aEngine ),
- iUtils( aUtils ),
- iFs( aEngine.Fs() )
- {
- FUNC_LOG
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveRename::~CFileManagerActiveRename
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveRename::~CFileManagerActiveRename()
- {
- FUNC_LOG
-
- delete iName;
- delete iNewName;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveRename::NewL
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveRename* CFileManagerActiveRename::NewL(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils,
- const TDesC& aName,
- const TDesC& aNewName )
- {
- FUNC_LOG
-
- CFileManagerActiveRename* self = new ( ELeave ) CFileManagerActiveRename(
- aEngine, aUtils );
- CleanupStack::PushL( self );
- self->ConstructL( aName, aNewName );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveRename::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveRename::ConstructL(
- const TDesC& aName, const TDesC& aNewName )
- {
- FUNC_LOG
-
- iName = aName.AllocL();
- iNewName = aNewName.AllocL();
- // Remove white spaces from end, file server also ignores those
- iNewName->Des().TrimRight();
- iName->Des().TrimRight();
-
- iIsRemoteDrive = iUtils.IsRemoteDrive( aName );
- BaseConstructL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveRename::ThreadFunctionL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveRename::ThreadFunctionL( const TBool& aCanceled )
- {
- FUNC_LOG
-
- TInt maxSubPath( 0 );
- TBool isFolder( CFileManagerUtils::HasFinalBackslash( *iName ) );
- if ( isFolder && !iIsRemoteDrive )
- {
- // On local drives, solve maximum subfolder path to avoid too long paths
- maxSubPath = ThreadGetMaxSubfolderPathL( aCanceled );
- }
- if ( iNewName->Length() + maxSubPath > KMaxFileName )
- {
- User::Leave( KErrBadName );
- }
- if ( isFolder )
- {
- User::LeaveIfError( iFs.Rename( *iName, *iNewName ) );
- }
- else
- {
- // Replace the target item if exist
- // if we have came here, it is already asked that
- // user want's to overwrite other item
- User::LeaveIfError( iFs.Replace( *iName, *iNewName ) );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveRename::ThreadGetMaxSubfolderPathL
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerActiveRename::ThreadGetMaxSubfolderPathL(
- const TBool& aCanceled )
- {
- FUNC_LOG
-
- CDirScan* dirScan = CDirScan::NewLC( iFs );
-
- // Set scanning from current directory,
- // take files and folder including the hidden and system files
- // No sorting needed
- dirScan->SetScanDataL(
- *iName,
- KEntryAttNormal | KEntryAttDir | KEntryAttHidden | KEntryAttSystem,
- ESortNone );
-
- TInt ret( 0 );
- CDir* dir = NULL;
- dirScan->NextL( dir );
- while( dir )
- {
- CleanupStack::PushL( dir );
- if ( aCanceled )
- {
- User::Leave( KErrCancel );
- }
- TInt count( dir->Count() );
- for ( TInt i( 0 ); i < count; ++i )
- {
- if ( aCanceled )
- {
- User::Leave( KErrCancel );
- }
- const TEntry& entry( ( *dir )[ i ] );
- TPtrC abbrPath( dirScan->AbbreviatedPath() );
- TInt abbrPathLen( abbrPath.Length() );
- if ( abbrPathLen && abbrPath[ 0 ] == KFmgrBackslash()[ 0 ] )
- {
- --abbrPathLen; // Initial backslash is already included
- }
- TInt pathLen( abbrPathLen + entry.iName.Length() );
- if( entry.IsDir() ) // Add space for trailing backslash
- {
- ++pathLen;
- }
- if( pathLen > ret )
- {
- ret = pathLen;
- }
- if ( pathLen > KMaxFileName )
- {
- User::Leave( KErrBadName );
- }
- }
- CleanupStack::PopAndDestroy( dir );
- dirScan->NextL( dir );
- }
- CleanupStack::PopAndDestroy( dirScan );
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveRename::CancelThreadFunction
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveRename::CancelThreadFunction()
- {
- FUNC_LOG
-
- if ( iName )
- {
- iEngine.CancelTransfer( *iName );
- }
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerBackupSettings.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-/*
-* Copyright (c) 2006 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: Empty backup settings to maintain library BC.
-* Remove this file when cleaning up RnD flags
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "cfilemanagerbackupsettings.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::CFileManagerBackupSettings
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::CFileManagerBackupSettings(
- CFileManagerEngine& aEngine ) :
- iEngine( aEngine )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::~CFileManagerBackupSettings
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::~CFileManagerBackupSettings()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::NewL
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings* CFileManagerBackupSettings::NewL(
- CFileManagerEngine& aEngine )
- {
- CFileManagerBackupSettings* self =
- new ( ELeave ) CFileManagerBackupSettings(
- aEngine );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupSettings::ConstructL()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SetContent
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SetContent(
- const TUint32 /*aContent*/ )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SetScheduling
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SetScheduling(
- const TInt /*aScheduling*/ )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SetDay
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SetDay( const TInt /*aDay*/ )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SetTime
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SetTime( const TTime& /*aTime*/ )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SetTargetDrive
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SetTargetDrive(
- const TInt /*aDrive*/ )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::Content
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TUint32 CFileManagerBackupSettings::Content() const
- {
- return iContent;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::Scheduling
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerBackupSettings::Scheduling() const
- {
- return 0;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::Day
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerBackupSettings::Day() const
- {
- return 0;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::Time
-// ----------------------------------------------------------------------------
-//
-EXPORT_C const TTime& CFileManagerBackupSettings::Time() const
- {
- return iTime;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::TargetDrive
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerBackupSettings::TargetDrive() const
- {
- return 0;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SaveL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SaveL()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::MdcaCount
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerBackupSettings::SettingAt( const TInt /*aIndex*/ )
- {
- return 0;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::MdcaCount
-// ----------------------------------------------------------------------------
-//
-TInt CFileManagerBackupSettings::MdcaCount() const
- {
- return 0;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::MdcaPoint
-// ----------------------------------------------------------------------------
-//
-TPtrC CFileManagerBackupSettings::MdcaPoint( TInt /*aIndex*/ ) const
- {
- return TPtrC( KNullDesC );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::CEntry::~CEntry
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::CEntry::~CEntry()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::RefreshL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::RefreshL()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::AllowedDriveAttMatchMask
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TUint32 CFileManagerBackupSettings::AllowedDriveAttMatchMask() const
- {
- return KDriveAttRemovable;
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerBackupSettingsFull.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,679 +0,0 @@
-/*
-* Copyright (c) 2006-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: Backup settings
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <avkon.rsg>
-#include <filemanagerengine.rsg>
-#include <StringLoader.h>
-#include <centralrepository.h>
-#ifdef RD_MULTIPLE_DRIVE
-#include <driveinfo.h>
-#endif // RD_MULTIPLE_DRIVE
-#include <AknUtils.h>
-#include "FileManagerDebug.h"
-#include "CFileManagerEngine.h"
-#include "FileManagerPrivateCRKeys.h"
-#include "CFileManagerBackupSettings.h"
-#include "CFileManagerCommonDefinitions.h"
-
-// CONSTANTS
-_LIT( KSeparator, "\t" );
-const TInt KSeparatorSpace = 3;
-_LIT( KTimeFormatBefore, " %-B %J:%T" );
-_LIT( KTimeFormatAfter, " %J:%T %+B" );
-const TInt KTimeStrMax = 20;
-
-const TInt KSchedulingTextLookup[] = {
- R_QTN_FMGR_BACKUP_NO_SCHEDULING, // CFileManagerBackupSettings::ENoScheduling
- R_QTN_FMGR_BACKUP_DAILY, // CFileManagerBackupSettings::EDaily
- R_QTN_FMGR_BACKUP_WEEKLY // CFileManagerBackupSettings::EWeekly
-};
-
-const TInt KMinToMicroSecMultiplier = 60000000;
-const TInt KTargetDriveStrMax = 4;
-_LIT( KTimeSeparatorPlaceHolder, ":" );
-const TInt KHourMinSeparator = 1;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::CFileManagerBackupSettings
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::CFileManagerBackupSettings(
- CFileManagerEngine& aEngine ) :
- iEngine( aEngine )
- {
- FUNC_LOG
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::~CFileManagerBackupSettings
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::~CFileManagerBackupSettings()
- {
- FUNC_LOG
- delete iCenRep;
- iList.ResetAndDestroy();
- iList.Close();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::NewL
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings* CFileManagerBackupSettings::NewL(
- CFileManagerEngine& aEngine )
- {
- CFileManagerBackupSettings* self =
- new ( ELeave ) CFileManagerBackupSettings(
- aEngine );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupSettings::ConstructL()
- {
- FUNC_LOG
-
- iCenRep = CRepository::NewL( KCRUidFileManagerSettings );
-
- RefreshL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SetContent
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SetContent(
- const TUint32 aContent )
- {
- iContent = aContent;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SetScheduling
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SetScheduling(
- const TInt aScheduling )
- {
- iScheduling = aScheduling;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SetDay
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SetDay( const TInt aDay )
- {
- iDay = aDay;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SetTime
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SetTime( const TTime& aTime )
- {
- iTime = aTime;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SetTargetDrive
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SetTargetDrive( const TInt aDrive )
- {
- iTargetDrive = aDrive;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::Content
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TUint32 CFileManagerBackupSettings::Content() const
- {
- return iContent;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::Scheduling
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerBackupSettings::Scheduling() const
- {
- return iScheduling;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::Day
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerBackupSettings::Day() const
- {
- return iDay;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::Time
-// ----------------------------------------------------------------------------
-//
-EXPORT_C const TTime& CFileManagerBackupSettings::Time() const
- {
- return iTime;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::TargetDrive
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerBackupSettings::TargetDrive() const
- {
- return iTargetDrive;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::ContentCount
-// ----------------------------------------------------------------------------
-//
-TInt CFileManagerBackupSettings::ContentsSelected() const
- {
- TInt ret( 0 );
- // Count selected only
- TUint32 mask( iContent );
- while ( mask )
- {
- if ( mask & 1 )
- {
- ++ret;
- }
- mask >>= 1;
- }
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SaveL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::SaveL()
- {
- FUNC_LOG
-
- TInt err( KErrNone );
-
- err = iCenRep->Set(
- KFileManagerBackupContent, static_cast< TInt >( iContent ) );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::SaveL-Content-err%d",
- err )
-
- err = iCenRep->Set(
- KFileManagerBackupScheduling, static_cast< TInt >( iScheduling ) );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::SaveL-Scheduling-err%d",
- err )
-
- err = iCenRep->Set(
- KFileManagerBackupDay, static_cast< TInt >( iDay ) );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::SaveL-Day-err%d",
- err )
-
- // Convert micro secs to minutes
- TInt minutes( iTime.Int64() / KMinToMicroSecMultiplier );
- err = iCenRep->Set( KFileManagerBackupTime, minutes );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::SaveL-Time-err%d",
- err )
-
- TChar ch;
- User::LeaveIfError( RFs::DriveToChar( iTargetDrive, ch ) );
- TBuf< KTargetDriveStrMax > drive;
- drive.Append( ch );
- err = iCenRep->Set( KFileManagerBackupTargetPath, drive );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::SaveL-Target-err%d",
- err )
-
- RefreshListL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::LoadL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupSettings::LoadL()
- {
- FUNC_LOG
-
- TInt buffer( 0 );
- TInt err( KErrNone );
- err = iCenRep->Get( KFileManagerBackupContent, buffer );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::LoadL-Content-err%d",
- err )
-
- iContent = buffer;
- if ( !iContent )
- {
- iContent |= EFileManagerBackupContentAll;
- }
-
- buffer = 0;
- err = iCenRep->Get( KFileManagerBackupScheduling, buffer );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::LoadL-Scheduling-err%d",
- err )
-
- iScheduling = buffer;
-
- buffer = 0;
- err = iCenRep->Get( KFileManagerBackupDay, buffer );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::LoadL-Day-err%d",
- err )
-
- iDay = buffer;
- if ( iDay == KErrNotFound )
- {
- TLocale locale;
- iDay = locale.StartOfWeek();
- }
- // Convert minutes to micro secs
- buffer = 0;
- err = iCenRep->Get( KFileManagerBackupTime, buffer );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::LoadL-Time-err%d",
- err )
-
- TInt64 microSecs( buffer );
- microSecs *= KMinToMicroSecMultiplier;
- iTime = microSecs;
-
- HBufC* path = HBufC::NewLC( KMaxPath );
- TPtr ptr( path->Des() );
- err = iCenRep->Get( KFileManagerBackupTargetPath, ptr );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::LoadL-Target-err%d",
- err )
-
- if ( !ptr.Length() )
- {
- User::Leave( KErrNotFound );
- }
-
- _LIT( KDefault, "?" );
- if ( ptr[ 0 ] == KDefault()[ 0 ] )
- {
-#ifdef RD_MULTIPLE_DRIVE
- err = DriveInfo::GetDefaultDrive(
- DriveInfo::EDefaultRemovableMassStorage, iTargetDrive );
- LOG_IF_ERROR1( err, "CFileManagerBackupSettings::LoadL-GetDefaultDrive-err%d",
- err )
- User::LeaveIfError( err );
-#else // RD_MULTIPLE_DRIVE
- iTargetDrive = KFmgrMemoryCardDrive;
-#endif // RD_MULTIPLE_DRIVE
- }
- else
- {
- User::LeaveIfError( RFs::CharToDrive( ptr[ 0 ], iTargetDrive ) );
- }
- CleanupStack::PopAndDestroy( path );
-
- // Get allowed drive mask
- err = iCenRep->Get( KFileManagerFeatures, iFileManagerFeatures );
- if ( err != KErrNone )
- {
- ERROR_LOG1( "CFileManagerBackupSettings::LoadL-Features-err%d",
- err )
- iFileManagerFeatures = 0;
- }
- INFO_LOG1(
- "CFileManagerBackupSettings::LoadL-iFileManagerFeatures=0x%x",
- iFileManagerFeatures )
- if ( iFileManagerFeatures & EFileManagerFeatureBackupAllowAllDrives )
- {
- iAllowedDriveMatchMask = KDriveAttRemovable | KDriveAttRemote;
- }
- else
- {
- iAllowedDriveMatchMask = KDriveAttRemovable;
- }
-
- RefreshListL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::SettingAt
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerBackupSettings::SettingAt( const TInt aIndex )
- {
- TInt type( ENone );
- if ( aIndex >= 0 && aIndex < iList.Count() )
- {
- type = iList[ aIndex ]->iType;
- }
- return type;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::MdcaCount
-// ----------------------------------------------------------------------------
-//
-TInt CFileManagerBackupSettings::MdcaCount() const
- {
- return iList.Count();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::MdcaPoint
-// ----------------------------------------------------------------------------
-//
-TPtrC CFileManagerBackupSettings::MdcaPoint( TInt aIndex ) const
- {
- return TPtrC( *( iList[ aIndex ]->iText ) );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::CEntry::~CEntry
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::CEntry::~CEntry()
- {
- delete iText;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::CreateEntryLC
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::CEntry* CFileManagerBackupSettings::CreateEntryLC(
- const TSettingType aType,
- const TInt aTitleId,
- const TInt aTextId,
- const TInt aValue )
- {
- HBufC* value = NULL;
- if ( aValue )
- {
- value = StringLoader::LoadLC( aTextId, aValue );
- }
- else
- {
- value = StringLoader::LoadLC( aTextId );
- }
-
- CEntry* entry = CreateEntryLC( aType, aTitleId, *value );
- CleanupStack::Pop( entry );
- CleanupStack::PopAndDestroy( value );
- CleanupStack::PushL( entry );
- return entry;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::CreateEntryLC
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::CEntry* CFileManagerBackupSettings::CreateEntryLC(
- const TSettingType aType,
- const TInt aTitleId,
- const TDesC& aText )
- {
- CEntry* entry = new ( ELeave ) CEntry;
- CleanupStack::PushL( entry );
-
- HBufC* title = StringLoader::LoadLC( aTitleId );
- entry->iText = HBufC::NewL(
- title->Length() + aText.Length() + KSeparatorSpace );
-
- // "\tFirstLabel\t\tValueText"
- TPtr ptr( entry->iText->Des() );
- ptr.Append( KSeparator );
- ptr.Append( *title );
- ptr.Append( KSeparator );
- ptr.Append( KSeparator );
- ptr.Append( aText );
-
- entry->iType = aType;
-
- CleanupStack::PopAndDestroy( title );
- return entry;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::CreateContentsEntryLC
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::CEntry*
- CFileManagerBackupSettings::CreateContentsEntryLC()
- {
- TInt selected( ContentsSelected() );
- if ( !( iContent & EFileManagerBackupContentAll ) && selected > 1 )
- {
- return CreateEntryLC(
- EContents,
- R_QTN_FMGR_BACKUP_CONTENTS,
- R_QTN_FMGR_BACKUP_CONTENT_SELECTED,
- selected );
- }
- TInt textId( ContentToTextId( iContent ) );
- return CreateEntryLC( EContents, R_QTN_FMGR_BACKUP_CONTENTS, textId );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::CreateTimeEntryLC
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::CEntry*
- CFileManagerBackupSettings::CreateTimeEntryLC()
- {
- TBuf< KTimeStrMax > timeFormatStr;
- TLocale local;
- if ( local.AmPmSymbolPosition() == ELocaleBefore )
- {
- timeFormatStr.Copy( KTimeFormatBefore );
- }
- else
- {
- timeFormatStr.Copy( KTimeFormatAfter );
- }
- TChar timeSeparator( local.TimeSeparator( KHourMinSeparator ) );
- AknTextUtils::ReplaceCharacters(
- timeFormatStr, KTimeSeparatorPlaceHolder, timeSeparator );
- TBuf< KTimeStrMax > timeStr;
- iTime.FormatL( timeStr, timeFormatStr );
- AknTextUtils::DisplayTextLanguageSpecificNumberConversion( timeStr );
- return CreateEntryLC( ETime, R_QTN_FMGR_BACKUP_TIME, timeStr );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::RefreshListL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerBackupSettings::RefreshListL()
- {
- iList.ResetAndDestroy();
-
- // Contents
- CEntry* entry = CreateContentsEntryLC();
- iList.AppendL( entry );
- CleanupStack::Pop( entry );
-
- if ( !( iFileManagerFeatures & EFileManagerFeatureScheduledBackupDisabled ) )
- {
- // Scheduling
- entry = CreateEntryLC(
- EScheduling,
- R_QTN_FMGR_BACKUP_SCHEDULING,
- KSchedulingTextLookup[ iScheduling ] );
- iList.AppendL( entry );
- CleanupStack::Pop( entry );
-
- // Weekday
- if ( iScheduling == EFileManagerBackupScheduleWeekly )
- {
- TDayName dayName( static_cast< TDay >( iDay ) );
- entry = CreateEntryLC(
- EWeekday,
- R_QTN_FMGR_BACKUP_WEEKDAY,
- dayName );
- iList.AppendL( entry );
- CleanupStack::Pop( entry );
- }
-
- // Time
- if ( iScheduling == EFileManagerBackupScheduleWeekly ||
- iScheduling == EFileManagerBackupScheduleDaily )
- {
- entry = CreateTimeEntryLC();
- iList.AppendL( entry );
- CleanupStack::Pop( entry );
- }
- }
-
- // Target drive
- if ( HasMultipleBackupTargets() )
- {
- entry = CreateTargetDriveEntryLC();
- iList.AppendL( entry );
- CleanupStack::Pop( entry );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::ContentToTextId
-// ----------------------------------------------------------------------------
-//
-TInt CFileManagerBackupSettings::ContentToTextId( const TUint32 aContent )
- {
- TInt ret( R_QTN_FMGR_BACKUP_CONTENT_ALL );
-
- if ( aContent & EFileManagerBackupContentAll )
- {
- ret = R_QTN_FMGR_BACKUP_CONTENT_ALL;
- }
- else if ( aContent & EFileManagerBackupContentSettings )
- {
- ret = R_QTN_FMGR_BACKUP_CONTENT_SETTINGS;
- }
- else if ( aContent & EFileManagerBackupContentMessages )
- {
- ret = R_QTN_FMGR_BACKUP_CONTENT_MESSAGES;
- }
- else if ( aContent & EFileManagerBackupContentContacts )
- {
- ret = R_QTN_FMGR_BACKUP_CONTENT_CONTACTS;
- }
- else if ( aContent & EFileManagerBackupContentCalendar )
- {
- ret = R_QTN_FMGR_BACKUP_CONTENT_CALENDAR;
- }
- else if ( aContent & EFileManagerBackupContentBookmarks )
- {
- ret = R_QTN_FMGR_BACKUP_CONTENT_BOOKMARKS;
- }
- else if ( aContent & EFileManagerBackupContentUserFiles )
- {
- ret = R_QTN_FMGR_BACKUP_CONTENT_USERFILES;
- }
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::RefreshL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerBackupSettings::RefreshL()
- {
- LoadL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::CreateTargetDriveEntryLC
-// ----------------------------------------------------------------------------
-//
-CFileManagerBackupSettings::CEntry*
- CFileManagerBackupSettings::CreateTargetDriveEntryLC()
- {
- TPtrC driveName( iEngine.DriveName( iTargetDrive ) );
-
- if ( driveName.Length() )
- {
- return CreateEntryLC(
- ETarget, R_QTN_FMGR_BACKUP_DESTINATION, driveName );
- }
-
- TChar ch;
- User::LeaveIfError( RFs::DriveToChar( iTargetDrive, ch ) );
- TBuf< KTargetDriveStrMax > drive;
- drive.Append( ch );
- return CreateEntryLC( ETarget, R_QTN_FMGR_BACKUP_DESTINATION, drive );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::AllowedDriveAttMatchMask
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TUint32 CFileManagerBackupSettings::AllowedDriveAttMatchMask() const
- {
- return iAllowedDriveMatchMask;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBackupSettings::HasMultipleBackupTargets
-// ----------------------------------------------------------------------------
-//
-TBool CFileManagerBackupSettings::HasMultipleBackupTargets()
- {
-#ifdef RD_MULTIPLE_DRIVE
- TBool count( 0 );
- TUint32 driveAttMask( AllowedDriveAttMatchMask() );
- RFs& fs( iEngine.Fs() );
-
- for ( TInt i( 0 ); i < KMaxDrives; ++i )
- {
- TDriveInfo driveInfo;
- if ( fs.Drive( driveInfo, i ) == KErrNone )
- {
- // Do not allow backup for internal drives
- TUint driveStatus( 0 );
- DriveInfo::GetDriveStatus( fs, i, driveStatus );
- if ( driveStatus & DriveInfo::EDriveInternal )
- {
- continue;
- }
- if ( driveInfo.iDriveAtt & driveAttMask )
- {
- ++count;
- }
- }
- if ( count > 1 )
- {
- break;
- }
- }
- return count > 1;
-#else // RD_MULTIPLE_DRIVE
- return EFalse;
-#endif // RD_MULTIPLE_DRIVE
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerDocHandler.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,366 +0,0 @@
-/*
-* Copyright (c) 2004-2007 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: Wraps document handler functions
-*
-*/
-
-
-
-// INCLUDES
-#include <DocumentHandler.h>
-#include <apmstd.h>
-#include <bautils.h>
-#include "CFileManagerDocHandler.h"
-#include "CFileManagerEngine.h"
-#include "CFileManagerUtils.h"
-#include "CFileManagerThreadWrapper.h"
-#include "MFileManagerProcessObserver.h"
-#include "FileManagerDebug.h"
-
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::CFileManagerDocHandler()
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerDocHandler::CFileManagerDocHandler(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils ) :
- iEngine( aEngine ),
- iUtils( aUtils ),
- iFs( aEngine.Fs() )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::NewL()
-//
-// ------------------------------------------------------------------------------
-//
-CFileManagerDocHandler* CFileManagerDocHandler::NewL(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils )
- {
- CFileManagerDocHandler* self = new (ELeave) CFileManagerDocHandler(
- aEngine, aUtils );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::~CFileManagerDocHandler()
-//
-// ------------------------------------------------------------------------------
-//
-CFileManagerDocHandler::~CFileManagerDocHandler()
- {
- iApaSession.Close();
- delete iThreadWrapper;
- delete iFileMime;
- delete iFileFullPath;
- delete iDocHandler;
- iFile.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::HandleServerAppExit()
-//
-// -----------------------------------------------------------------------------
-void CFileManagerDocHandler::HandleServerAppExit( TInt aReason )
- {
- if ( iEmbeddedAppOpen )
- {
- iEngine.NoticeServerAppExit( aReason );
- iEngine.EmbeddedAppStatus( EFalse );
- iEmbeddedAppOpen = EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::ConstructL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocHandler::ConstructL()
- {
- iDocHandler = CDocumentHandler::NewL();
- iDocHandler->SetExitObserver( this );
- User::LeaveIfError( iApaSession.Connect() );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::OpenFileL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocHandler::OpenFileL(
- const TDesC& aFullPath, MFileManagerProcessObserver* aObserver )
- {
- if ( iEmbeddedAppOpen )
- {
- ERROR_LOG( "CFileManagerDocHandler::OpenFileL-OpenAlreadyOngoing" )
- return; // Ignore too fast open events to prevent mess up
- }
-
- delete iThreadWrapper;
- iThreadWrapper = NULL;
-
- delete iFileFullPath;
- iFileFullPath = NULL;
-
- delete iFileMime;
- iFileMime = NULL;
-
- iFileReady = EFalse;
- iFile.Close();
-
- iObserver = aObserver;
-
- //Judge the file extention, if a sis file, notify Engine to flush the cache
- if ( EFileManagerAppFileIcon == iUtils.ResolveIconL( aFullPath ) )
- {
- iEngine.SetSisFile( ETrue );
- }
-
- // Get fullpath and MIME type
- TPtrC mime16( iUtils.MimeTypeL( aFullPath ) );
- iFileMime = HBufC8::NewL( mime16.Length() );
- iFileMime->Des().Copy( mime16 );
- iFileFullPath = aFullPath.AllocL();
-
- if ( iUtils.IsRemoteDrive( *iFileFullPath ) )
- {
- iThreadWrapper = CFileManagerThreadWrapper::NewL();
- User::LeaveIfError( iThreadWrapper->StartThread(
- *this,
- MFileManagerThreadFunction::ENotifyFinished, EPriorityNormal ) );
-
- // Async file open
- if ( iObserver )
- {
- TRAP_IGNORE( iObserver->ProcessStartedL(
- MFileManagerProcessObserver::EFileOpenProcess, KErrNone ) );
- }
- }
- else
- {
- // Sync file open
- if ( iObserver )
- {
- TRAP_IGNORE( iObserver->ProcessStartedL(
- MFileManagerProcessObserver::EFileOpenProcess, KErrNone ) );
- }
-
- RFile64 sharableFile;
- TRAPD( err, iDocHandler->OpenTempFileL( *iFileFullPath, sharableFile ) );
- if ( err == KErrNone )
- {
- TRAP( err, OpenShareableFileL( sharableFile, *iFileMime ) );
- }
- sharableFile.Close();
-
- if ( iObserver )
- {
- TRAP_IGNORE( iObserver->ProcessFinishedL( err ) );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::OpenShareableFileL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocHandler::OpenShareableFileL(
- RFile64& aShareableFile, const TDesC8& aMime )
- {
- // Check if iFileFullPath is NULL
- if ( !iFileFullPath )
- {
- User::Leave( KErrNotFound );
- }
-
- // Check if file open is denied
- if ( iObserver )
- {
- if ( iObserver->NotifyL(
- MFileManagerProcessObserver::ENotifyFileOpenDenied,
- 0,
- *iFileFullPath ) )
- {
- return;
- }
- }
-
- TDataType dataType( aMime );
- CAiwGenericParamList& paramList( iDocHandler->InParamListL() );
-
- // If remote drive, make sure that file can be opened remotely
- if ( iUtils.IsRemoteDrive( *iFileFullPath ) )
- {
- TUid appUid;
- TDataType fileType;
- User::LeaveIfError( iApaSession.AppForDocument(
- aShareableFile, appUid, fileType ) );
- if ( !iEngine.HasAppRemoteDriveSupport( appUid ) )
- {
- User::Leave( KErrFmgrNotSupportedRemotely );
- }
- dataType = fileType;
- }
- // Otherwise just make sure that file exists before opening it
- else if ( !BaflUtils::FileExists( iEngine.Fs(), *iFileFullPath ) )
- {
- User::Leave( KErrNotFound );
- }
-
- TInt err( KErrNone );
- TInt err2( KErrNone );
-
- TRAP( err, err2 = iDocHandler->OpenFileEmbeddedL(
- aShareableFile, dataType, paramList ) );
-
- LOG_IF_ERROR1( err,
- "CFileManagerDocHandler::OpenShareableFileL-err=%d", err )
- LOG_IF_ERROR1( err2,
- "CFileManagerDocHandler::OpenShareableFileL-err2=%d", err2 )
-
- // Make sure that not supported functionality is handled properly
- if ( err2 == KErrNotSupported || err2 == KMimeNotSupported ||
- err == KErrNotSupported || err == KMimeNotSupported )
- {
- User::Leave( KErrNotSupported );
- }
- else if ( err == KErrNotFound || err2 == KErrNotFound )
- {
- User::Leave( KErrGeneral );
- }
- User::LeaveIfError( err );
- User::LeaveIfError( err2 );
-
- iEngine.EmbeddedAppStatus( ETrue );
- iEmbeddedAppOpen = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::ThreadStepL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocHandler::ThreadStepL()
- {
- // Open shareable file and make sure that it is loaded to file cache
- // before opening the file with app
- TInt err( iFile.Open( iFs, *iFileFullPath, EFileShareReadersOnly ) );
- if ( err == KErrInUse )
- {
- User::LeaveIfError( iFile.Open(
- iFs, *iFileFullPath, EFileShareReadersOrWriters ) );
- }
- else
- {
- User::LeaveIfError( err );
- }
-
- TInt64 pos( 0 );
- TInt64 size( 0 );
- TInt readSize( 0 );
- const TInt KReadBufferSize = 16384; // 16KB
- HBufC8* buffer = HBufC8::NewLC( KReadBufferSize );
- TPtr8 ptr( buffer->Des() );
-
- User::LeaveIfError( iFile.Size( size ) );
- while ( size > 0 )
- {
- if ( iThreadWrapper->IsThreadCanceled() )
- {
- User::Leave( KErrCancel );
- }
-
- readSize = Min( size, ptr.MaxSize() );
- User::LeaveIfError( iFile.Read( pos, ptr, readSize ) );
- size -= readSize;
- }
-
- CleanupStack::PopAndDestroy( buffer );
- iFileReady = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::IsThreadDone()
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerDocHandler::IsThreadDone()
- {
- return iFileReady;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::NotifyThreadClientL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocHandler::NotifyThreadClientL(
- TNotifyType aType, TInt aValue )
- {
- switch ( aType )
- {
- case ENotifyFinished:
- {
- // Open shareable file with app and inform observer
- if ( aValue == KErrNone && iFileReady )
- {
- TRAP( aValue, OpenShareableFileL( iFile, *iFileMime ) );
- }
- iFile.Close();
-
- if ( iObserver )
- {
- TRAP_IGNORE( iObserver->ProcessFinishedL( aValue ) );
- }
- if ( aValue != KErrNone )
- {
- // Ensure that the status gets updated on error
- HandleServerAppExit( 0 );
- }
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerDocHandler::CancelFileOpen()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerDocHandler::CancelFileOpen()
- {
- if ( iFileFullPath )
- {
- iEngine.CancelTransfer( *iFileFullPath );
- }
- if ( iThreadWrapper )
- {
- iThreadWrapper->CancelThread();
- }
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerEngine.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2301 +0,0 @@
-/*
-* Copyright (c) 2002-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: Main class of the filemanagerengine
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <barsread.h>
-#include <sysutil.h>
-#include <bautils.h>
-//#include <cmgxfilemanager.h>
-//#include <mgxfilemanagerfactory.h>
-//#include <cmgalbummanager.h>
-#include <pathinfo.h>
-#include <AknServerApp.h>
-#include <filemanagerengine.rsg>
-#ifdef RD_MULTIPLE_DRIVE
-#include <driveinfo.h>
-#endif // RD_MULTIPLE_DRIVE
-#include "CFileManagerEngine.h"
-#include "CGflmNavigatorModel.h"
-#include "CGflmGroupItem.h"
-#include "CGflmFileSystemItem.h"
-#include "CGflmDriveItem.h"
-#include "CGflmGlobalActionItem.h"
-#include "MGflmItemGroup.h"
-#include "Cfilemanagerfolderarray.h"
-#include "CFilemanagerMimeIconArray.h"
-#include "CFileManagerActiveExecute.h"
-#include "CFileManagerRefresher.h"
-#include "Cfilemanagerfilesystemevent.h"
-#include "Cfilemanageractivesize.h"
-#include "Cfilemanageractivedelete.h"
-#include "FileManagerEngine.hrh"
-#include "CFileManagerCommonDefinitions.h"
-#include "CFileManagerUtils.h"
-#include "CFileManagerItemFilter.h"
-#include "CFileManagerDocHandler.h"
-#include "FileManagerDebug.h"
-#include "CFileManagerItemProperties.h"
-#include "CFileManagerRemovableDriveHandler.h"
-#include "CFileManagerRemoteDriveHandler.h"
-#include "CFileManagerBackupSettings.h"
-#include "CFileManagerRestoreSettings.h"
-#include "CFileManagerActiveRename.h"
-#include "CFileManagerFeatureManager.h"
-
-// CONSTANTS
-const TUint16 KIllegalChars[] = {
- '<', '>', '"', '/', '\\', '|', ':', '*', '?',
- 0xFF02, // Full width quote
- 0xFF0A, // Full width asterisk
- 0xFF0F, // Full width slash
- 0xFF1A, // Full width colon
- 0xFF1C, // Full width left arrow
- 0xFF1E, // Full width right arrow
- 0xFF1F, // Full width question mark
- 0xFF3C, // Full width back slash
- 0xFF5C, // Full width pipe
- 0x201C, // Left quote
- 0x201D, // Right quote
- 0x201F, // Reversed quote
- 0x21B2, // Downwards arrow with tip leftwards
- 0, // Array terminator
-};
-const TUint KDiskEventCheckInterval = 100000; // microseconds
-
-
-
-// ============================ LOCAL FUNCTIONS ================================
-// -----------------------------------------------------------------------------
-// SearchMGAlbumIdL
-// -----------------------------------------------------------------------------
-//
-/*static TInt SearchMGAlbumIdL(
- CMGAlbumManager& aAlbumManager, const TDesC& aFilename )
- {
- CDesCArray* fileArray =
- new ( ELeave ) CDesCArraySeg( KMGFileArrayGranularity );
- CleanupStack::PushL( fileArray );
- TInt albumCount( aAlbumManager.AlbumCount() );
- TInt ret( KErrNotFound );
- for( TInt i( 0 ); i < albumCount; ++i )
- {
- CMGAlbumInfo* albumInfo = aAlbumManager.AlbumInfoLC( i );
- TInt albumId( albumInfo->Id() );
- CleanupStack::PopAndDestroy( albumInfo );
- fileArray->Reset();
- aAlbumManager.GetAlbumFileArrayL( albumId, *fileArray );
- TInt pos( 0 );
- if( !fileArray->Find( aFilename, pos ) )
- {
- ret = albumId;
- break;
- }
- }
- CleanupStack::PopAndDestroy( fileArray );
- return ret;
- }
-*/
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::CFileManagerEngine
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerEngine::CFileManagerEngine( RFs& aFs ) :
- iFs( aFs ), iObserver( NULL ), iSisFile( EFalse ),iDelayedDiskEventNotify( NULL )
- {
- FUNC_LOG
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerEngine* CFileManagerEngine::NewL( RFs& aFs )
- {
- CFileManagerEngine* self = new ( ELeave ) CFileManagerEngine( aFs );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::ConstructL()
- {
- FUNC_LOG
-
- INFO_LOG( "CFileManagerEngine::ConstructL()-Create Feature Manager" )
- iFeatureManager = CFileManagerFeatureManager::NewL();
-
- iState = ENavigation;
-
- INFO_LOG( "CFileManagerEngine::ConstructL()-Create navigator" )
- iNavigator = CGflmNavigatorModel::NewL( iFs );
-
- // Create drives group
- MGflmItemGroup* newGroup = iNavigator->CreateGroupL(
- EFileManagerDrivesGroup, EDrives );
-#ifdef RD_FILE_MANAGER_BACKUP
- // Set backup action
- HBufC* actionCaption = StringLoader::LoadLC( R_QTN_FMGR_MAIN_BACKUP );
- newGroup->AddActionItemL( EFileManagerBackupAction, *actionCaption );
- CleanupStack::PopAndDestroy( actionCaption );
-#endif // RD_FILE_MANAGER_BACKUP
-
- // Create files and folders groups
- iNavigator->CreateGroupL( EFileManagerFilesGroup, EDirectories | EFiles );
-
- INFO_LOG( "CFileManagerEngine::ConstructL()-Create refresher" )
- iRefresher = CFileManagerRefresher::NewL( *iNavigator );
-
- INFO_LOG( "CFileManagerEngine::ConstructL()-Create utils" )
- iUtils = CFileManagerUtils::NewL( iFs, *iNavigator, *iFeatureManager );
-
- INFO_LOG( "CFileManagerEngine::ConstructL()-Create disk event" )
- iDiskEvent = CFileManagerFileSystemEvent::NewL( iFs, *this, ENotifyDisk );
-
- INFO_LOG( "CFileManagerEngine::ConstructL()-Create removable drive handler" )
- iRemovableDrvHandler = CFileManagerRemovableDriveHandler::NewL(
- iFs, *iUtils, *this );
- INFO_LOG( "CFileManagerEngine::ConstructL()-Create remote drive handler" )
- iRemoteDrvHandler = CFileManagerRemoteDriveHandler::NewL(
- *this, *iUtils );
-
- INFO_LOG( "CFileManagerEngine::ConstructL()-Create item filter" )
- iItemFilter = CFileManagerItemFilter::NewL( *this );
- iNavigator->SetCustomFilter( iItemFilter );
-
- // Store new starting index
- iNavigationIndices.AppendL( KErrNotFound );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::~CFileManagerEngine
-// Destructor
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerEngine::~CFileManagerEngine()
- {
- delete iActiveRename;
- iNavigationIndices.Reset();
- delete iRemoteDrvHandler;
- delete iBackupSettings;
- delete iRestoreSettings;
- delete iRemovableDrvHandler;
- delete iDocHandler;
- //delete iMgxFileManager;
- delete iFileSystemEvent;
- delete iRefresher;
- delete iNavigator;
- delete iItemFilter;
- delete iSearchString;
- delete iSearchFolder;
- delete iActiveSize;
- delete iDiskEvent;
- delete iUtils;
- delete iDriveName;
- delete iFeatureManager;
- if( iDelayedDiskEventNotify != NULL )
- {
- iDelayedDiskEventNotify->Cancel();
- delete iDelayedDiskEventNotify;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetFileSystemEventL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::SetFileSystemEventL( const TDesC& aFullPath )
- {
- delete iFileSystemEvent;
- iFileSystemEvent = NULL;
- if ( aFullPath != KNullDesC )
- {
- iFileSystemEvent = CFileManagerFileSystemEvent::NewL(
- iFs, *this, ENotifyEntry, aFullPath );
- }
- else
- {
- iFileSystemEvent = CFileManagerFileSystemEvent::NewL(
- iFs, *this, ENotifyEntry );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::IndexToFullPathL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C HBufC* CFileManagerEngine::IndexToFullPathL(
- const TInt aIndex ) const
- {
- if ( aIndex < 0 || aIndex >= iNavigator->MdcaCount() )
- {
- User::Leave( KErrNotFound );
- }
- CGflmGroupItem* item = iNavigator->Item( aIndex );
- HBufC* fullPath = NULL;
- switch ( item->Type() )
- {
- case CGflmGroupItem::EFile: // Fall through
- case CGflmGroupItem::EDirectory:
- {
- CGflmFileSystemItem* fsItem =
- static_cast< CGflmFileSystemItem* >( item );
- fullPath = fsItem->FullPathL();
- break;
- }
- case CGflmGroupItem::EDrive:
- {
- CGflmDriveItem* drvItem =
- static_cast< CGflmDriveItem* >( item );
- fullPath = drvItem->RootDirectory().AllocL();
- break;
- }
- default:
- {
- User::Leave( KErrNotFound );
- break;
- }
- }
- return fullPath;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::IndexToFullPathLC
-// -----------------------------------------------------------------------------
-//
-EXPORT_C HBufC* CFileManagerEngine::IndexToFullPathLC(
- const TInt aIndex ) const
- {
- HBufC* fullPath = IndexToFullPathL( aIndex );
- CleanupStack::PushL( fullPath );
- return fullPath;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::AddFullPathLC
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerEngine::AddFullPathLC(
- const TDesC& aName, const TBool aIsFolder )
- {
- TPtrC dir( iNavigator->CurrentDirectory() );
- TInt len( dir.Length() + aName.Length() );
- if ( aIsFolder )
- {
- ++len; // Ensure space for backslash
- }
- HBufC* fullPath = HBufC::NewLC( len );
- TPtr ptr( fullPath->Des() );
- ptr.Append( dir );
- ptr.Append( aName );
- if ( aIsFolder )
- {
- CFileManagerUtils::EnsureFinalBackslash( ptr );
- }
- return fullPath;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetMemoryL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::SetMemoryL( TFileManagerMemory /*aMemory*/ )
- {
- // Just check current drive avaibility, no matter what memory is set
- iLastDriveAvailable = CurrentDriveAvailable();
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::Memory
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TFileManagerMemory CFileManagerEngine::Memory() const
- {
-#ifdef RD_MULTIPLE_DRIVE
- CGflmDriveItem* drvItem = iNavigator->CurrentDrive();
- if ( drvItem )
- {
- TUint driveStatus( drvItem->DriveStatus() );
- if ( driveStatus & DriveInfo::EDriveInternal )
- {
- if ( driveStatus & DriveInfo::EDriveExternallyMountable )
- {
- return EFmMassStorage;
- }
- return EFmPhoneMemory;
- }
- else if ( driveStatus & DriveInfo::EDriveUsbMemory )
- {
- return EFmUsbMemory;
- }
- else if ( driveStatus & DriveInfo::EDriveRemovable )
- {
- return EFmMemoryCard;
- }
- else if ( driveStatus & DriveInfo::EDriveRemote )
- {
- return EFmRemoteDrive;
- }
- }
- return EFmPhoneMemory;
-#else // RD_MULTIPLE_DRIVE
- CGflmDriveItem* drvItem = iNavigator->CurrentDrive();
- if ( drvItem )
- {
- const TVolumeInfo vol( drvItem->VolumeInfo() );
- if ( vol.iDrive.iDriveAtt & KDriveAttInternal )
- {
- return EFmPhoneMemory;
- }
- else if ( vol.iDrive.iDriveAtt & KDriveAttRemovable )
- {
- return EFmMemoryCard;
- }
- else if ( vol.iDrive.iDriveAtt & KDriveAttRemote )
- {
- return EFmRemoteDrive;
- }
- }
- return EFmPhoneMemory;
-#endif // RD_MULTIPLE_DRIVE
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::FileList
-// -----------------------------------------------------------------------------
-//
-EXPORT_C MDesCArray* CFileManagerEngine::FileList() const
- {
- return iNavigator;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::OpenL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::OpenL( const TInt aIndex )
- {
- // Store drive letter for current drive changed checking
- TChar prevDrive( 0 );
- TPtrC prevDir( iNavigator->CurrentDirectory() );
- if ( prevDir.Length() )
- {
- prevDrive = prevDir[ 0 ];
- }
-
- if ( aIndex < 0 || aIndex >= iNavigator->MdcaCount() )
- {
- User::Leave( KErrNotFound );
- }
- CGflmGroupItem* item = iNavigator->Item( aIndex );
- switch ( item->Type() )
- {
- case CGflmGroupItem::EFile: // Fall through
- case CGflmGroupItem::EDirectory: // Fall through
- case CGflmGroupItem::EDrive:
- {
-
-#ifdef RD_MULTIPLE_DRIVE
- // Ensure that default folders exist
- if ( item->Type() == CGflmGroupItem::EDrive )
- {
- CGflmDriveItem* drvItem =
- static_cast< CGflmDriveItem* >( item );
- iUtils->CreateDefaultFolders(
- drvItem->Drive(), EFalse );
- }
-#endif // RD_MULTIPLE_DRIVE
-
- // Store navigation position
- SetCurrentIndex( aIndex );
-
- HBufC* fullPath = IndexToFullPathLC( aIndex );
- if ( item->Type() == CGflmGroupItem::EFile )
- {
- OpenFileL( *fullPath );
- }
- else
- {
- OpenDirectoryL( *fullPath );
-
- // Setup new navigation position
- iNavigationIndices.AppendL( 0 );
- }
- CleanupStack::PopAndDestroy( fullPath );
- break;
- }
- case CGflmGroupItem::EGlobalActionItem:
- {
- CGflmGlobalActionItem* actItem =
- static_cast< CGflmGlobalActionItem* >( item );
- if ( iProcessObserver )
- {
- iProcessObserver->NotifyL(
- MFileManagerProcessObserver::ENotifyActionSelected,
- actItem->Id() );
- }
- break;
- }
- default:
- {
- break;
- }
- }
-
- // Ensure that cached current drive info gets updated if drive was changed
- TPtrC dir( iNavigator->CurrentDirectory() );
- if ( dir.Length() )
- {
- if ( dir[ 0 ] != prevDrive )
- {
- iCurrentDriveInfoRefreshed = EFalse;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetObserver
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::SetObserver(
- MFileManagerProcessObserver* aObserver )
- {
- iProcessObserver = aObserver;
- iRefresher->SetObserver( aObserver );
- iRemovableDrvHandler->SetObserver( aObserver );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::CurrentDirectory
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerEngine::CurrentDirectory() const
- {
- return iNavigator->CurrentDirectory();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::CurrentDirectory
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerEngine::LocalizedNameOfCurrentDirectory() const
- {
- return iNavigator->LocalizedNameOfCurrentDirectory();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::BackstepL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::BackstepL()
- {
- // Store drive letter for current drive changed checking
- TChar prevDrive( 0 );
- // Note that prevDir gets invalid after BackstepL
- TPtrC prevDir( iNavigator->CurrentDirectory() );
- if ( prevDir.Length() )
- {
- prevDrive = prevDir[ 0 ];
- }
-
- // Setup backstep navigation index
- if ( !iNavigator->NavigationLevel() )
- {
- // Always first for initial root level
- iCurrentItemName.Zero();
- }
- else if( !iCurrentItemName.Length() )
- {
- // Otherwise previously opened folder
- iCurrentItemName.Copy(
- iNavigator->LocalizedNameOfCurrentDirectory() );
- }
- TInt pos( iNavigationIndices.Count() - 1 );
- if ( pos >= 0 )
- {
- iNavigationIndices.Remove( pos );
- }
-
- iNavigator->BackstepL();
-
- // Ensure that cached current drive info gets updated if drive was changed
- TPtrC dir( iNavigator->CurrentDirectory() );
- if ( dir.Length() )
- {
- if ( dir[ 0 ] != prevDrive )
- {
- iCurrentDriveInfoRefreshed = EFalse;
- }
- }
- else
- {
- // Make sure that drive info is refreshed
- ClearDriveInfo();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::FileTypeL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TUint32 CFileManagerEngine::FileTypeL( const TInt aIndex ) const
- {
- TUint32 fileType( CFileManagerItemProperties::ENotDefined );
- if ( aIndex >= 0 )
- {
- HBufC* fullPath = IndexToFullPathLC( aIndex );
- fileType = FileTypeL( *fullPath );
- CleanupStack::PopAndDestroy( fullPath );
- }
- return fileType;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::FileTypeL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TUint32 CFileManagerEngine::FileTypeL( const TDesC& aFullPath ) const
- {
- return iUtils->FileTypeL( aFullPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::DeleteL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerActiveDelete* CFileManagerEngine::CreateActiveDeleteL(
- CArrayFixFlat< TInt >& aIndexList )
- {
-
- CFileManagerActiveDelete* activeDelete =
- CFileManagerActiveDelete::NewL( aIndexList, *this, *iUtils );
- return activeDelete;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::NewFolder
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::NewFolderL( const TDesC& aFolderName )
- {
- // Add backslash to end so that MkDir realizes that it is directory
- HBufC* fullPath = AddFullPathLC( aFolderName, ETrue );
- TPtr ptr( fullPath->Des() );
-
- if ( ptr.Length() <= KMaxFileName )
- {
- iCurrentItemName.Copy( aFolderName );
-
- // Remove white spaces from end, file server also ignores those
- iCurrentItemName.TrimRight();
-
- User::LeaveIfError( iFs.MkDir( ptr ) );
- }
- else
- {
- User::Leave( KErrBadName );
- }
-
- CleanupStack::PopAndDestroy( fullPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetCurrentItemName
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::SetCurrentItemName( const TDesC& aFileName )
- {
-
- iCurrentItemName.Copy( aFileName );
-
- // Remove white spaces from end, file server also ignores those
- iCurrentItemName.TrimRight();
-
- }
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::RenameL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::RenameL(
- const TInt aIndex,
- const TDesC& aNewFileName )
- {
- FUNC_LOG
-
- // Make those given names as full paths
- TBool isFolder( IsFolder( aIndex ) );
- HBufC* fullPathOld = IndexToFullPathLC( aIndex );
- HBufC* fullPathNew = AddFullPathLC( aNewFileName, isFolder );
-
- if ( !fullPathOld->Compare( *fullPathNew ) )
- {
- // The name has not changed, rename is not required
- CleanupStack::PopAndDestroy( fullPathNew );
- CleanupStack::PopAndDestroy( fullPathOld );
- return;
- }
-
- // Gallery notification is relevant only for local drives
- TBool isRemoteDrive( iUtils->IsRemoteDrive( *fullPathOld ) );
-
- // Media Gallery albums get easily messed up when files are renamed.
- // Direct album editing seems a trick but it is seems to only way
- // to update Gallery properly.
- /*CMGAlbumManager* albumManager = MGAlbumManagerFactory::NewAlbumManagerL();
- CleanupStack:: PushL( albumManager );
- TInt albumId( KErrNotFound );
- if ( !isFolder && !isRemoteDrive )
- {
- // Do album search for files only
- TRAPD( err, albumId = SearchMGAlbumIdL( *albumManager, *fullPathOld ) );
- if( err != KErrNone )
- {
- albumId = KErrNotFound;
- }
- }
-*/
- // Handle rename
- delete iActiveRename;
- iActiveRename = NULL;
- iActiveRename = CFileManagerActiveRename::NewL(
- *this, *iUtils, *fullPathOld, *fullPathNew );
- ShowWaitDialogL( *iActiveRename );
- User::LeaveIfError( iActiveRename->Result() );
-
- // Update Media Gallery album if file exist in album
- /*if( albumId != KErrNotFound )
- {
- TRAP_IGNORE( { albumManager->RemoveFromAlbumL( *fullPathOld, albumId );
- albumManager->AddToAlbumL( *fullPathNew, albumId ); } );
- }
- CleanupStack::PopAndDestroy( albumManager );*/
-
- iCurrentItemName.Copy( aNewFileName );
-
- /*if ( !isRemoteDrive )
- {
- // Notify Media Gallery again
- TRAP_IGNORE( MGXFileManagerL().UpdateL( *fullPathOld, *fullPathNew ) );
- }*/
-
- CleanupStack::PopAndDestroy( fullPathNew );
- CleanupStack::PopAndDestroy( fullPathOld );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::FolderLevel
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::FolderLevel()
- {
- CGflmDriveItem* drvItem = iNavigator->CurrentDrive();
- if ( !drvItem )
- {
- return KErrNotFound; // Main level
- }
- TPtrC dir( iNavigator->CurrentDirectory() );
- TInt count( dir.Length() );
- if ( !count )
- {
- return KErrNotFound; // Main level
- }
- // Count how many backslashes is in string to figure out the deepness
- TInt min( drvItem->RootDirectory().Length() );
- TInt bsCount( 0 );
- while( count > min )
- {
- --count;
- if ( dir[ count ] == KFmgrBackslash()[ 0 ] )
- {
- ++bsCount;
- }
- }
- return bsCount;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::IsNameFoundL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerEngine::IsNameFoundL( const TDesC& aName )
- {
- return iUtils->IsNameFoundL( aName );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::CurrentDrive
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::CurrentDrive()
- {
- TInt ret( KErrNotFound );
- TPtrC ptr( iNavigator->CurrentDirectory() );
- if ( ptr.Length() )
- {
- if( RFs::CharToDrive( ptr[ 0 ], ret ) != KErrNone )
- {
- ret = KErrNotFound;
- }
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::GetItemInfoL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerItemProperties* CFileManagerEngine::GetItemInfoL(
- const TInt aIndex )
- {
- if ( aIndex < 0 || aIndex >= iNavigator->MdcaCount() )
- {
- User::Leave( KErrNotFound );
- }
- CGflmGroupItem* item = iNavigator->Item( aIndex );
- return CFileManagerItemProperties::NewL( *item, *iUtils, *this );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetState
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::SetState( TState aState )
- {
- iState = aState;
- iNavigator->EnableSearchMode( iState == ESearch );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetState
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerEngine::TState CFileManagerEngine::State() const
- {
- return iState;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::RefreshDirectory
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::RefreshDirectory()
- {
- FUNC_LOG
-
-#ifdef FILE_MANAGER_INFO_LOG_ENABLED
- if ( iState == ENavigation )
- {
- TPtrC dir( iNavigator->CurrentDirectory() );
- INFO_LOG1( "CFileManagerEngine::RefreshDirectory-dir=%S", &dir );
- }
-#endif // FILE_MANAGER_INFO_LOG_ENABLED
-
- iRefresher->Refresh();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::GetMMCInfoL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TFileManagerDriveInfo CFileManagerEngine::GetMMCInfoL() const
- {
- TFileManagerDriveInfo drvInfo;
- GetDriveInfoL(
- PathInfo::MemoryCardRootPath(), drvInfo );
- return drvInfo;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SearchString
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerEngine::SearchString() const
- {
- if ( iSearchString )
- {
- return iSearchString->Des();
- }
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::IsValidName
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerEngine::IsValidName(
- const TDesC& aDriveAndPath, const TDesC& aName, TBool aIsFolder ) const
- {
- // Check name for bad chars
- const TUint16 KMinAllowedChar = 0x0020;
- const TUint16 KParagraphSeparator = 0x2029;
- const TUint16 KDot = '.';
- TFileName nameAfterTrim( aName );
- nameAfterTrim.TrimRight();
- TInt nameLen( nameAfterTrim.Length() );
- if ( !nameLen )
- {
- return EFalse;
- }
- for ( TInt i( 0 ); i < nameLen; i++ )
- {
- TUint16 ch( nameAfterTrim[ i ] );
- if ( ch < KMinAllowedChar || ch == KParagraphSeparator )
- {
- return EFalse;
- }
- }
- // File system ignores totally dot in the end of name, so
- // we set here as not valid name, so that user gets correctly informed
- if ( nameAfterTrim[ nameLen - 1 ] == KDot || IllegalChars( nameAfterTrim ) )
- {
- return EFalse;
- }
- // Get full path length
- TPtrC pathPtr( aDriveAndPath.Length() ?
- TPtrC( aDriveAndPath ) : TPtrC( iNavigator->CurrentDirectory() ) );
- TInt pathLen( pathPtr.Length() );
- if ( !pathLen )
- {
- return EFalse;
- }
- TInt fullPathLen( pathLen );
- if ( !CFileManagerUtils::HasFinalBackslash( pathPtr ) )
- {
- ++fullPathLen; // Add backslash before name
- }
- fullPathLen += nameLen;
- if ( aIsFolder )
- {
- ++fullPathLen; // Add folder final backslash
- }
-
- TBool ret( EFalse );
- if ( fullPathLen <= KMaxFileName )
- {
- // Check full path
- HBufC* fullPath = HBufC::New( KMaxFileName );
- if ( fullPath )
- {
- TPtr ptr( fullPath->Des() );
- ptr.Copy( pathPtr );
- CFileManagerUtils::EnsureFinalBackslash( ptr ); // Add backslash before name
- ptr.Append( nameAfterTrim );
- ret = iFs.IsValidName( ptr );
- delete fullPath;
- }
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::IllegalChars
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerEngine::IllegalChars( const TDesC& aName ) const
- {
- for ( TInt i( 0 ); KIllegalChars[ i ]; i++ )
- {
- if ( aName.Locate( KIllegalChars[ i ] ) != KErrNotFound )
- {
- return ETrue;
- }
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::EnoughSpaceL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerEngine::EnoughSpaceL(
- const TDesC& aToFolder,
- TInt64 aSize,
- MFileManagerProcessObserver::TFileManagerProcess aOperation ) const
- {
- TPtrC src( iNavigator->CurrentDirectory() );
- TInt srcDrv( KErrNotFound );
- if ( src.Length() )
- {
- User::LeaveIfError( RFs::CharToDrive( src[ 0 ], srcDrv ) );
- }
- TInt dstDrv( KErrNotFound );
- if ( aToFolder.Length() )
- {
- User::LeaveIfError( RFs::CharToDrive( aToFolder[ 0 ], dstDrv ) );
- }
- else
- {
- return ETrue; // Invalid destination
- }
-
- TBool ret( EFalse );
-
- // if operation is move and drive is same so there is always enough memory
- if ( srcDrv == dstDrv &&
- aOperation == MFileManagerProcessObserver::EMoveProcess )
- {
- ret = ETrue;
- }
- else
- {
- ret = !SysUtil::DiskSpaceBelowCriticalLevelL(
- &iFs, aSize , dstDrv );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::FileSystemEvent
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::FileSystemEvent( TBool aEventOn )
- {
- INFO_LOG2(
- "CFileManagerEngine::FileSystemEvent-aEventOn=%d,iFileSystemEventEnabled=%d",
- aEventOn, iFileSystemEventEnabled )
-
- INFO_LOG2(
- "CFileManagerEngine::FileSystemEvent-iDriveAddedOrChangedPostponed=%d,iEmbeddedApplicationOn=%d ",
- iDriveAddedOrChangedPostponed, iEmbeddedApplicationOn )
-
- if ( !iFileSystemEventEnabled && aEventOn )
- {
- iDriveAddedOrChangedPostponed = EFalse;
- iFileSystemEventEnabled = ETrue;
- }
- else if ( iFileSystemEventEnabled && !aEventOn )
- {
- iFileSystemEventEnabled = EFalse;
- if ( iDriveAddedOrChangedPostponed )
- {
- iDriveAddedOrChangedPostponed = EFalse;
- TRAP_IGNORE( DriveAddedOrChangedL() );
- }
- }
-
- if ( iUtils->IsRemoteDrive( iNavigator->CurrentDirectory() ) )
- {
- // At the moment no use to have event for remote drives
- delete iFileSystemEvent;
- iFileSystemEvent = NULL;
- return;
- }
-
- // Set event on when there is no embedded app with event
- if ( aEventOn &&
- !( iEmbeddedApplicationOn && iFileSystemEvent ) )
- {
- TInt err( KErrNone );
- switch ( iState )
- {
- case ENavigation:
- {
- TRAP( err, SetFileSystemEventL( iNavigator->CurrentDirectory() ) );
- break;
- }
- case ESearch:
- {
- TRAP( err, SetFileSystemEventL() );
- break;
- }
- default:
- {
- break;
- }
- }
- if ( err != KErrNone && iProcessObserver )
- {
- iProcessObserver->Error( err );
- }
- }
- // Check event and set it off when there is no embedded app
- else if( !iEmbeddedApplicationOn && iFileSystemEvent )
- {
- iFileSystemEvent->CheckFileSystemEvent();
- delete iFileSystemEvent;
- iFileSystemEvent = NULL;
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerEngine::CurrentIndex
-//
-// ------------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::CurrentIndex()
- {
- if ( iCurrentItemName.Length() )
- {
- TInt count( iNavigator->MdcaCount() );
- for( TInt i( 0 ); i < count; ++i )
- {
- CGflmGroupItem* item = iNavigator->Item( i );
- if ( !item->Name().CompareF( iCurrentItemName ) )
- {
- iCurrentItemName.Zero();
- return i;
- }
- }
- iCurrentItemName.Zero();
- }
-
- // Top navigation index
- TInt pos( iNavigationIndices.Count() - 1 );
- if ( pos >= 0 )
- {
- return iNavigationIndices[ pos ];
- }
- return KErrNotFound;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerEngine::CanDelete
-//
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerEngine::CanDelete( const TDesC& aFileName ) const
- {
- return iUtils->CanDelete( aFileName );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerEngine::LocalizedName
-//
-// ------------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerEngine::LocalizedName(
- const TDesC& aFullPath ) const
- {
- return iUtils->LocalizedName( aFullPath );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerEngine::FilesInFolderL
-//
-// ------------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::FilesInFolderL()
- {
- TInt ret( 0 );
- switch ( iState )
- {
- case ENavigation: // Fall through
- case ESearch:
- {
- TInt count( iNavigator->MdcaCount() );
- for( TInt i( 0 ); i < count; ++i )
- {
- CGflmGroupItem* item = iNavigator->Item( i );
- if ( item->Type() == CGflmGroupItem::EFile )
- {
- ++ret;
- }
- }
- break;
- }
- default:
- {
- break;
- }
- }
- return ret;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerEngine::CancelRefresh
-//
-// ------------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerEngine::CancelRefresh()
- {
- switch ( iState )
- {
- case ENavigation:
- {
- CancelTransfer( iNavigator->CurrentDirectory() );
- break;
- }
- case ESearch:
- {
- if ( iSearchFolder )
- {
- CancelTransfer( *iSearchFolder );
- }
- break;
- }
- default:
- {
- break;
- }
- }
- return iRefresher->CancelRefresh();
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerEngine::DriveAddedOrChangeAsyncL
-//
-// ------------------------------------------------------------------------------
-//
-TInt CFileManagerEngine::DriveAddedOrChangeAsyncL( TAny* aPtr )
- {
- static_cast<CFileManagerEngine*>( aPtr )->DriveAddedOrChangedL();
-
- //return value will be ignored by CPeriodic that calls this function
- //following line keeps the compiler happy
- return 0;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerEngine::DriveAddedOrChangedL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerEngine::DriveAddedOrChangedL()
- {
- FUNC_LOG
-
- if( iDiskEvent )
- {
- iDiskEvent->Setup();
- }
-
- TBool processOngoing( iRemovableDrvHandler->IsProcessOngoing() );
-
- INFO_LOG3( "CFileManagerEngine::DriveAddedOrChangedL-event=%d,process=%d,postponed=%d ",
- iFileSystemEventEnabled, processOngoing, iDriveAddedOrChangedPostponed )
-
- if ( iFileSystemEventEnabled || processOngoing )
- {
- iDriveAddedOrChangedPostponed = ETrue;
- }
- else
- {
- iDriveAddedOrChangedPostponed = EFalse;
- ClearDriveInfo();
- if ( iProcessObserver &&
- !iEmbeddedApplicationOn &&
- !iWaitDialogOn &&
- !iRefresher->IsActive() )
- {
- StopDiskEventNotifyTimerAsync();
- TPtrC dir( iNavigator->CurrentDirectory() );
- if ( dir.Length() )
- {
- TBool isAvailable( CurrentDriveAvailable() );
-
- if ( iUtils->IsRemoteDrive( dir ) )
- {
- // Notify whether remote drive has become available
- // So when receiving remote drive connection event,
- // View will be refreshed
- //if ( !iLastDriveAvailable && isAvailable )
- // {
- iProcessObserver->NotifyL(
- MFileManagerProcessObserver::ENotifyDisksChanged, 0 );
- // }
- }
- else
- {
- // Notify if drive has become unavailable or
- // avaibility has changed
- if ( !isAvailable ||
- isAvailable != iLastDriveAvailable )
- {
- iProcessObserver->NotifyL(
- MFileManagerProcessObserver::ENotifyDisksChanged, 0 );
- }
- }
- }
- else
- {
- // Notify always when no folder is opened
- iProcessObserver->NotifyL(
- MFileManagerProcessObserver::ENotifyDisksChanged, 0 );
- }
- }
- else
- {
- if( ( iProcessObserver == NULL ) || iEmbeddedApplicationOn )
- {
- //Do not refresh while embedded application is running or process observer is not set
- StopDiskEventNotifyTimerAsync();
- }
- else
- {
- if( iRefresher->IsActive() )
- {
- //start Timer and notify disk event until current disk refresh finishes
- StartDiskEventNotifyTimerAsyncL();
- }
- }
- }
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerEngine::FolderContentChangedL
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerEngine::FolderContentChangedL()
- {
- if( iProcessObserver )
- {
- iProcessObserver->NotifyL(
- MFileManagerProcessObserver::ENotifyDisksChanged, 0 );
- }
- else
- {
- RefreshDirectory();
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerEngine::IsFolder
-//
-// ------------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerEngine::IsFolder( const TInt aIndex ) const
- {
- if ( aIndex < 0 || aIndex >= iNavigator->MdcaCount() )
- {
- return EFalse;
- }
- CGflmGroupItem* item = iNavigator->Item( aIndex );
- TBool ret( EFalse );
- switch ( item->Type() )
- {
- case CGflmGroupItem::EDirectory: // Fallthrough
- case CGflmGroupItem::EDrive: // Fallthrough
- case CGflmGroupItem::EGlobalActionItem:
- {
- ret = ETrue;
- break;
- }
- default:
- {
- break;
- }
- }
- return ret;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerEngine::IconIdL
-//
-// ------------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::IconIdL( const TInt aIndex ) const
- {
- if ( aIndex < 0 || aIndex >= iNavigator->MdcaCount() )
- {
- User::Leave( KErrNotFound );
- }
- CGflmGroupItem* item = iNavigator->Item( aIndex );
- return iUtils->ResolveIconL( *item );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::ShowWaitDialogL( MAknBackgroundProcess& aProcess )
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::ShowWaitDialogL( MAknBackgroundProcess& aProcess )
- {
- iWaitDialogOn = ETrue;
- TRAPD( err, iProcessObserver->ShowWaitDialogL( aProcess ) );
- iWaitDialogOn = EFalse;
- User::LeaveIfError( err );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::EmbeddedAppStatus( TBool aStatus )
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::EmbeddedAppStatus( TBool aStatus )
- {
- iEmbeddedApplicationOn = aStatus;
- FileSystemEvent( aStatus );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::IsSystemFolder
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerEngine::IsSystemFolder( const TDesC& aFullPath ) const
- {
- _LIT( KSystemFolder, "?:\\system\\*" );
- _LIT( KSysFolder, "?:\\sys\\*" );
- _LIT( KPrivateFolder, "?:\\private\\*" );
- _LIT( KResourceFolder, "?:\\resource\\*" );
-
- if ( aFullPath.MatchF( KSystemFolder ) != KErrNotFound ||
- aFullPath.MatchF( KSysFolder ) != KErrNotFound ||
- aFullPath.MatchF( KResourceFolder ) != KErrNotFound ||
- aFullPath.MatchF( KPrivateFolder ) != KErrNotFound )
- {
- return ETrue;
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::CurrentDriveName()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerEngine::CurrentDriveName()
- {
-#ifdef RD_MULTIPLE_DRIVE
- TPtrC dir( iNavigator->CurrentDirectory() );
- if ( dir.Length() )
- {
- TInt drive = TDriveUnit( dir );
- return DriveName( drive );
- }
-#else // RD_MULTIPLE_DRIVE
- CGflmDriveItem* drvItem = iNavigator->CurrentDrive();
- if ( drvItem )
- {
- return drvItem->Name();
- }
-#endif // RD_MULTIPLE_DRIVE
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::GetDriveInfoL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::GetDriveInfoL(
- TFileManagerDriveInfo& aInfo )
- {
- if ( iCurrentDriveInfoRefreshed )
- {
- // Use cached info
- aInfo = iCurrentDriveInfo;
- return;
- }
-
- CGflmDriveItem* drvItem = iNavigator->CurrentDrive();
- if ( drvItem )
- {
- GetDriveInfoL( drvItem->Drive(), aInfo );
-
- // Store info for later use
- iCurrentDriveInfo = aInfo;
- iCurrentDriveInfoRefreshed = ETrue;
- }
- else
- {
- User::Leave( KErrNotFound );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::IsDistributableFile()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::IsDistributableFile(
- const TDesC& aFullPath, TBool& aIsProtected ) const
- {
- return iUtils->IsDistributableFile( aFullPath, aIsProtected );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::RenameDrive()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::RenameDrive(
- const TInt aDrive,
- const TDesC& aName )
- {
- TInt len( aName.Length( ) );
- for( TInt i( 0 ); i < len; i++ )
- {
- TChar ch( aName[ i ] );
- // If not alphadigit or space, return error
- if( !ch.IsAlphaDigit() && !ch.IsSpace() )
- {
- return KErrBadName;
- }
- }
- TInt err( iFs.SetVolumeLabel( aName, aDrive ) );
- if ( err == KErrNone )
- {
- // Refresh drive info after rename
- ClearDriveInfo();
- }
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetDrivePassword()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::SetDrivePassword(
- const TInt aDrive,
- const TMediaPassword& aOld,
- const TMediaPassword& aNew )
- {
- ClearDriveInfo();
- TInt err( iFs.LockDrive( aDrive, aOld, aNew, ETrue ) );
- INFO_LOG1( "CFileManagerEngine::SetDrivePassword err %d", err );
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::RemoveDrivePassword()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::RemoveDrivePassword(
- const TInt aDrive,
- const TMediaPassword& aPwd )
- {
- ClearDriveInfo();
- TInt err( iFs.ClearPassword( aDrive, aPwd ) );
- INFO_LOG1( "CFileManagerEngine::RemoveDrivePassword err %d", err );
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::UnlockDrive()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::UnlockDrive(
- const TInt aDrive,
- const TMediaPassword& aPwd )
- {
- ClearDriveInfo();
- TInt err( iFs.UnlockDrive( aDrive, aPwd, ETrue ) );
- INFO_LOG1( "CFileManagerEngine::UnlockDrive err %d", err );
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::StartFormatProcessL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::StartFormatProcessL(
- const TInt aDrive )
- {
- ClearDriveInfo();
- iRemovableDrvHandler->StartFormatL( aDrive );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::StartEjectProcessL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::StartEjectProcessL( const TInt /*aDrive*/ )
- {
- ClearDriveInfo();
- iRemovableDrvHandler->StartEjectL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::StartBackupProcessL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::StartBackupProcessL(
- MFileManagerProcessObserver::TFileManagerProcess aProcess )
- {
- switch( aProcess )
- {
- case MFileManagerProcessObserver::EBackupProcess: // FALLTHROUGH
- case MFileManagerProcessObserver::ESchBackupProcess:
- {
- // Make sure that there is no embedded apps open
- delete iDocHandler;
- iDocHandler = NULL;
-
- ClearDriveInfo();
- iRemovableDrvHandler->StartBackupL( aProcess );
- break;
- }
- case MFileManagerProcessObserver::ERestoreProcess:
- {
- ClearDriveInfo();
- iRemovableDrvHandler->StartRestoreL();
- break;
- }
- default:
- {
- User::Leave( KErrNotSupported );
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::CancelProcess()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::CancelProcess(
- MFileManagerProcessObserver::TFileManagerProcess aProcess )
- {
- switch( aProcess )
- {
- case MFileManagerProcessObserver::EFormatProcess:
- case MFileManagerProcessObserver::EBackupProcess: // FALLTHROUGH
- case MFileManagerProcessObserver::ERestoreProcess: // FALLTHROUGH
- case MFileManagerProcessObserver::ESchBackupProcess: // FALLTHROUGH
- {
- iRemovableDrvHandler->CancelProcess();
- break;
- }
- case MFileManagerProcessObserver::EFileOpenProcess:
- {
- if ( iDocHandler )
- {
- iDocHandler->CancelFileOpen();
- }
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::GetDriveInfoL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::GetDriveInfoL(
- const TDesC& aPath,
- TFileManagerDriveInfo& aInfo ) const
- {
- if ( !aPath.Length() )
- {
- User::Leave( KErrNotFound );
- }
- TInt drv( 0 );
- User::LeaveIfError( RFs::CharToDrive( aPath[ 0 ], drv ) );
- GetDriveInfoL( drv, aInfo );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::DriveState()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::DriveState(
- TUint32& aState, const TDesC& aPath ) const
- {
- TFileManagerDriveInfo info;
- TRAPD( err, GetDriveInfoL( aPath, info ) );
- if ( err == KErrNone )
- {
- aState = info.iState;
- }
- else
- {
- aState = 0;
- }
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::DriveState()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::DriveState(
- TUint32& aState, const TInt aDrive ) const
- {
- TFileManagerDriveInfo info;
- TRAPD( err, GetDriveInfoL( aDrive, info ) );
- if ( err == KErrNone )
- {
- aState = info.iState;
- }
- else
- {
- aState = 0;
- }
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::MGXFileManagerL()
-//
-// -----------------------------------------------------------------------------
-//
-/*CMGXFileManager& CFileManagerEngine::MGXFileManagerL()
- {
- // MG2 notification object
- if ( !iMgxFileManager )
- {
- INFO_LOG( "CFileManagerEngine::MGXFileManagerL()-Create" )
- iMgxFileManager = MGXFileManagerFactory::NewFileManagerL( iFs );
- }
- return *iMgxFileManager;
- }*/
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::Fs()
-//
-// -----------------------------------------------------------------------------
-//
-RFs& CFileManagerEngine::Fs() const
- {
- return iFs;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::IsRemoteDriveConnected()
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerEngine::IsRemoteDriveConnected( const TInt aDrive ) const
- {
- return iRemoteDrvHandler->IsConnected( aDrive );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetRemoteDriveConnection()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::SetRemoteDriveConnection(
- const TInt aDrive, TBool aConnect )
- {
- return iRemoteDrvHandler->SetConnection( aDrive, aConnect );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::DeleteRemoteDrive()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::DeleteRemoteDrive( const TInt aDrive )
- {
- return iRemoteDrvHandler->DeleteSettings( aDrive );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::BackupFileExistsL()
-//
-// -----------------------------------------------------------------------------
-//
-#ifndef RD_FILE_MANAGER_BACKUP
-
-TBool CFileManagerEngine::BackupFileExistsL( const TInt aDrive ) const
- {
- return iRemovableDrvHandler->BackupFileExistsL( aDrive );
- }
-
-#endif // RD_FILE_MANAGER_BACKUP
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::OpenFileL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::OpenFileL( const TDesC& aFullPath )
- {
- if ( !iDocHandler )
- {
- iDocHandler = CFileManagerDocHandler::NewL( *this, *iUtils );
- }
- iDocHandler->OpenFileL( aFullPath, iProcessObserver );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::OpenDirectoryL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::OpenDirectoryL( const TDesC& aFullPath )
- {
- iNavigator->GoToDirectoryL( aFullPath, ETrue );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::DriveRootDirectory()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerEngine::DriveRootDirectory( TInt aDrive ) const
- {
- CGflmDriveItem* drvItem = iNavigator->DriveFromId( aDrive );
- if ( drvItem )
- {
- return drvItem->RootDirectory();
- }
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::BackupSettingsL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerBackupSettings& CFileManagerEngine::BackupSettingsL()
- {
- if ( !iBackupSettings )
- {
- INFO_LOG( "CFileManagerEngine::BackupSettingsL()-Create" )
- iBackupSettings = CFileManagerBackupSettings::NewL( *this );
- }
- return *iBackupSettings;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::RestoreSettingsL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerRestoreSettings& CFileManagerEngine::RestoreSettingsL()
- {
- if ( !iRestoreSettings )
- {
- INFO_LOG( "CFileManagerEngine::RestoreSettingsL()-Create" )
- iRestoreSettings = CFileManagerRestoreSettings::NewL( *this );
- }
- return *iRestoreSettings;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::GetRestoreInfoArrayL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::GetRestoreInfoArrayL(
- RArray< CFileManagerRestoreSettings::TInfo >& aArray,
- const TInt aDrive ) const
- {
- return iRemovableDrvHandler->GetRestoreInfoArrayL( aArray, aDrive );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::DriveName()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerEngine::DriveName( const TInt aDrive )
- {
- CGflmDriveItem* drvItem = iNavigator->DriveFromId( aDrive );
- if ( drvItem )
- {
-#ifdef RD_MULTIPLE_DRIVE
- delete iDriveName;
- iDriveName = NULL;
-
- TRAPD( err, iDriveName = iUtils->GetDriveNameL(
- drvItem->Drive(), CFileManagerUtils::ETitleLayout ) );
- if ( err == KErrNone )
- {
- return iDriveName->Des();
- }
-#else // RD_MULTIPLE_DRIVE
- return drvItem->Name();
-#endif // RD_MULTIPLE_DRIVE
- }
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::GetDriveInfoL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::GetDriveInfoL(
- const TInt aDrive, TFileManagerDriveInfo& aInfo ) const
- {
- aInfo.GetInfoL( *this, aDrive );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::CurrentDriveAvailable()
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerEngine::CurrentDriveAvailable()
- {
- TFileManagerDriveInfo info;
- TRAPD( err, GetDriveInfoL( info ) );
- if ( err != KErrNone )
- {
- return EFalse;
- }
-
- TInt ret( ETrue );
- if ( info.iState & (
- TFileManagerDriveInfo::EDriveCorrupted |
- TFileManagerDriveInfo::EDriveLocked ) )
- {
- ret = EFalse;
- }
- else if ( !( info.iState & TFileManagerDriveInfo::EDrivePresent ) )
- {
- ret = EFalse;
- }
-
- if ( ( info.iState & TFileManagerDriveInfo::EDriveRemote ) &&
- !( info.iState & TFileManagerDriveInfo::EDriveConnected ) )
- {
- ret = EFalse;
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::ClearDriveInfo()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::ClearDriveInfo()
- {
- iCurrentDriveInfoRefreshed = EFalse;
- iNavigator->ClearDriveInfo();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::AnyEjectableDrivePresent()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerEngine::AnyEjectableDrivePresent() const
- {
- RArray< TInt > drives;
- iUtils->DriveList( drives, KDriveAttRemovable );
- TInt ret( EFalse );
- TInt count( drives.Count() );
- const TInt KPresentBits(
- TFileManagerDriveInfo::EDriveEjectable |
- TFileManagerDriveInfo::EDrivePresent );
- for( TInt i( 0 ); i < count; ++i )
- {
- TUint32 state( 0 );
- if ( DriveState( state, drives[ i ] ) == KErrNone )
- {
- if ( ( state & KPresentBits ) == KPresentBits )
- {
- ret = ETrue;
- break;
- }
- }
- }
- drives.Close();
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::ForcedRefreshDirectory()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::ForcedRefreshDirectory()
- {
- TPtrC ptr( iNavigator->CurrentDirectory() );
- if ( ptr.Length() && iUtils->IsRemoteDrive( ptr ) )
- {
- // Ensure that remote directory is reloaded
- iRemoteDrvHandler->RefreshDirectory( ptr );
- }
- RefreshDirectory();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::HasAppRemoteDriveSupport()
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerEngine::HasAppRemoteDriveSupport( TUid aUid )
- {
- return iRemoteDrvHandler->HasAppRemoteDriveSupport( aUid );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::GetFileSizesL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt64 CFileManagerEngine::GetFileSizesL(
- const CArrayFixFlat<TInt>& aIndexList )
- {
- FUNC_LOG
-
- TBool isCanceled( EFalse );
- TInt64 size( 0 );
- TInt count( aIndexList.Count() );
-
- for( TInt i( 0 ); i < count; ++i )
- {
- CGflmGroupItem* item = iNavigator->Item( aIndexList.At( i ) );
- switch ( item->Type() )
- {
- case CGflmGroupItem::EFile:
- {
- CGflmFileSystemItem* fsItem =
- static_cast< CGflmFileSystemItem* >( item );
- size += fsItem->Entry().FileSize();
- break;
- }
- case CGflmGroupItem::EDirectory:
- {
- CGflmFileSystemItem* fsItem =
- static_cast< CGflmFileSystemItem* >( item );
- HBufC* fullPath = fsItem->FullPathLC();
-
- delete iActiveSize;
- iActiveSize = NULL;
-
- iActiveSize = CFileManagerActiveSize::NewL(
- iFs, *fullPath );
-
- ShowWaitDialogL( *iActiveSize );
-
- TInt64 folderSize( iActiveSize->GetFolderSize() );
- if ( folderSize == KErrNotFound )
- {
- // Calculation was canceled by the user
- isCanceled = ETrue;
- }
- else
- {
- size += folderSize;
- }
-
- CleanupStack::PopAndDestroy( fullPath );
- break;
- }
- default:
- {
- break;
- }
- }
-
- if ( isCanceled )
- {
- break;
- }
- }
-
- if ( isCanceled )
- {
- return KErrNotFound;
- }
- return size;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::CancelTransfer()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::CancelTransfer( const TDesC& aFullPath )
- {
- if ( iUtils->IsRemoteDrive( aFullPath ) )
- {
- iRemoteDrvHandler->CancelTransfer( aFullPath );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::NavigationLevel
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerEngine::NavigationLevel() const
- {
- return iNavigator->NavigationLevel();
- }
-
-#ifdef RD_MULTIPLE_DRIVE
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::GetFormattedDriveNameLC
-// -----------------------------------------------------------------------------
-//
-EXPORT_C HBufC* CFileManagerEngine::GetFormattedDriveNameLC(
- const TInt aDrive,
- const TInt aTextIdForDefaultName,
- const TInt aTextIdForName ) const
- {
- return iUtils->GetFormattedDriveNameLC(
- aDrive, aTextIdForDefaultName, aTextIdForName );
- }
-#else // RD_MULTIPLE_DRIVE
-EXPORT_C HBufC* CFileManagerEngine::GetFormattedDriveNameLC(
- const TInt /*aDrive*/,
- const TInt /*aTextIdForDefaultName*/,
- const TInt /*aTextIdForName*/ ) const
- {
- User::Leave( KErrNotSupported );
- return NULL;
- }
-#endif // RD_MULTIPLE_DRIVE
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::GetItemInfoLC
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerItemProperties* CFileManagerEngine::GetItemInfoLC(
- const TInt aIndex )
- {
- CFileManagerItemProperties* ret = GetItemInfoL( aIndex );
- CleanupStack::PushL( ret );
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetSearchStringL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::SetSearchStringL( const TDesC& aSearchString )
- {
- delete iSearchString;
- iSearchString = NULL;
- iSearchString = aSearchString.AllocL();
- iNavigator->SetSearchStringL( aSearchString );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetSearchFolderL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::SetSearchFolderL( const TDesC& aSearchFolder )
- {
- delete iSearchFolder;
- iSearchFolder = NULL;
- iSearchFolder = aSearchFolder.AllocL();
- iNavigator->SetSearchFolderL( aSearchFolder );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetDirectoryWithBackstepsL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::SetDirectoryWithBackstepsL(
- const TDesC& aDirectory )
- {
- CGflmDriveItem* drvItem = iNavigator->DriveFromPath( aDirectory );
- if ( !drvItem )
- {
- return;
- }
- // Build backsteps
- iNavigator->GoToDirectoryL( drvItem->RootDirectory(), aDirectory );
-
- // Build navigation indices
- iNavigationIndices.Reset();
- iNavigationIndices.AppendL( KErrNotFound ); // Set initial
- TInt count( iNavigator->NavigationLevel() ); // Set backsteps
- for( TInt i( 0 ); i < count; ++i )
- {
- iNavigationIndices.AppendL( KErrNotFound );
- }
- iNavigationIndices.AppendL( KErrNotFound ); // Set current
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetCurrentIndex
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::SetCurrentIndex( const TInt aIndex )
- {
- TInt pos( iNavigationIndices.Count() - 1 );
- if ( pos >= 0 )
- {
- iNavigationIndices[ pos ] = aIndex;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetSortMethod
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::SetSortMethod( TSortMethod aSortMethod )
- {
- switch ( aSortMethod )
- {
- case EByName: // Fallthrough
- case EByType: // Fallthrough
- case EMostRecentFirst: // Fallthrough
- case ELargestFirst: // Fallthrough
- case EByMatch:
- {
- // Make sure that the enums do match
- iNavigator->SetSortMethod(
- static_cast< TGflmSortMethod >( aSortMethod ) );
- break;
- }
- default:
- {
- ERROR_LOG1(
- "CFileManagerEngine::SetSortMethod-InvalidMethod=%d",
- aSortMethod )
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SortMethod
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerEngine::TSortMethod CFileManagerEngine::SortMethod() const
- {
- // Make sure that the enums do match
- return static_cast< TSortMethod >( iNavigator->SortMethod() );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::RefreshSort
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::RefreshSort()
- {
- iRefresher->Refresh( ERefreshSort );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::FeatureManager
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerFeatureManager& CFileManagerEngine::FeatureManager() const
- {
- return *iFeatureManager;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetAppExitOb
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::SetAppExitOb( MAknServerAppExitObserver* aObserver )
- {
- iObserver = aObserver;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::NoticeServerAppExit
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::NoticeServerAppExit( TInt aReason )
- {
- if ( iObserver && iSisFile )
- {
- iUtils->FlushCache();
- iObserver->HandleServerAppExit( aReason );
- iSisFile = EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::SetSisFile
-// -----------------------------------------------------------------------------
-//
-void CFileManagerEngine::SetSisFile( TBool aSisFile )
- {
- iSisFile = aSisFile;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerEngine::LatestBackupTimeL()
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerEngine::LatestBackupTime( TTime& aBackupTime )
- {
- TRAPD( err, iRemovableDrvHandler->LatestBackupTimeL( aBackupTime ) );
- return err;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerEngine::DeleteBackupsL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerEngine::DeleteBackupsL()
- {
- iRemovableDrvHandler->DeleteBackupsL();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerEngine::StartDiskEventNotifyTimerAsyncL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerEngine::StartDiskEventNotifyTimerAsyncL()
- {
- if ( iDelayedDiskEventNotify == NULL )
- {
- iDelayedDiskEventNotify = CPeriodic::NewL( CActive::EPriorityStandard );
- }
- if ( !iDelayedDiskEventNotify->IsActive() )
- {
- //ignore disk event notification while timer is already active
- iDelayedDiskEventNotify->Start( KDiskEventCheckInterval,
- KDiskEventCheckInterval,
- TCallBack( DriveAddedOrChangeAsyncL, this ) );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerEngine::StopDiskEventNotifyTimerAsync()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerEngine::StopDiskEventNotifyTimerAsync()
- {
- if ( iDelayedDiskEventNotify != NULL )
- {
- iDelayedDiskEventNotify->Cancel();
- delete iDelayedDiskEventNotify;
- iDelayedDiskEventNotify = NULL;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerEngine::IsDriverMounted()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerEngine::IsDriverMounted( TInt aDrive )
- {
- TVolumeInfo volInfo;
- return ( KErrNone == iFs.Volume( volInfo, aDrive ) );
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerFeatureManager.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-/*
-* Copyright (c) 2007-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: This class manages the runtime variated features
-*
-*/
-
-
-#include <e32std.h>
-#include <centralrepository.h>
-#include <featmgr.h>
-#include <eikenv.h>
-#include "CFileManagerFeatureManager.h"
-#include "FileManagerDebug.h"
-#include "FileManagerPrivateCRKeys.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::CFileManagerFeatureManager
-// ----------------------------------------------------------------------------
-//
-CFileManagerFeatureManager::CFileManagerFeatureManager()
- {
- FUNC_LOG;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerFeatureManager::ConstructL()
- {
- FUNC_LOG;
-
- // Get the feature manager variations
- FeatureManager::InitializeLibL();
- iDrmFullSupported = FeatureManager::FeatureSupported( KFeatureIdDrmFull );
- iHelpSupported = FeatureManager::FeatureSupported( KFeatureIdHelp );
- iIrdaSupported = FeatureManager::FeatureSupported( KFeatureIdIrda );
- iRemoteStorageFwSupported =
- FeatureManager::FeatureSupported( KFeatureIdRemoteStorageFw );
- iMmcPassWdSupported = FeatureManager::FeatureSupported( KFeatureIdMmcLock );
- iWesternVariant = !( FeatureManager::FeatureSupported( KFeatureIdChinese ) );
- iMmcSwEjectSupported =
- ( FeatureManager::FeatureSupported( KFeatureIdMmcHotswap ) &&
- FeatureManager::FeatureSupported( KFeatureIdMmcEject ) );
- FeatureManager::UnInitializeLib();
-
- iEmbedded = CEikonEnv::Static()->StartedAsServerApp();
-
- // Get the local variations
- CRepository* cenRep = CRepository::NewLC( KCRUidFileManagerSettings );
- TInt err( cenRep->Get( KFileManagerFeatures, iFileManagerFeatures ) );
- if ( err != KErrNone )
- {
- ERROR_LOG1(
- "CFileManagerFeatureManager::ConstructL()-LocalVariationError=%d",
- err );
- iFileManagerFeatures = 0;
- }
- INFO_LOG1(
- "CFileManagerFeatureManager::ConstructL()-iFileManagerFeatures=0x%x",
- iFileManagerFeatures );
- CleanupStack::PopAndDestroy( cenRep );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::NewL
-// ----------------------------------------------------------------------------
-//
-CFileManagerFeatureManager* CFileManagerFeatureManager::NewL()
- {
- FUNC_LOG;
-
- CFileManagerFeatureManager* self =
- new ( ELeave ) CFileManagerFeatureManager();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::~CFileManagerFeatureManager
-// ----------------------------------------------------------------------------
-//
-CFileManagerFeatureManager::~CFileManagerFeatureManager()
- {
- FUNC_LOG;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::IsDrmFullSupported
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerFeatureManager::IsDrmFullSupported() const
- {
- return iDrmFullSupported;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::IsHelpSupported
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerFeatureManager::IsHelpSupported() const
- {
- return iHelpSupported;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::IsIrdaSupported
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerFeatureManager::IsIrdaSupported() const
- {
- return iIrdaSupported;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::IsRemoteStorageFwSupported
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerFeatureManager::IsRemoteStorageFwSupported() const
- {
- return iRemoteStorageFwSupported;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::IsMmcPassWdSupported
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerFeatureManager::IsMmcPassWdSupported() const
- {
- return iMmcPassWdSupported;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::IsWesternVariant
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerFeatureManager::IsWesternVariant() const
- {
- return iWesternVariant;
- }
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::IsMmcSwEjectSupported
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerFeatureManager::IsMmcSwEjectSupported() const
- {
- return iMmcSwEjectSupported;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::IsFeatureSupported
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerFeatureManager::IsFeatureSupported(
- TInt aFileManagerFeature ) const
- {
- return ( iFileManagerFeatures & aFileManagerFeature );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerFeatureManager::IsEmbedded
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerFeatureManager::IsEmbedded() const
- {
- return iEmbedded;
- }
--- a/filemanager/Engine/src/CFileManagerFileSystemIterator.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,245 +0,0 @@
-/*
-* Copyright (c) 2002-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: Goes through folder tree one item at time
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CFileManagerFileSystemIterator.h"
-#include "CFileManagerEngine.h"
-#include "CFileManagerCommonDefinitions.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemIterator::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileSystemIterator* CFileManagerFileSystemIterator::NewL(
- RFs& aFs,
- const TDesC& aSrcDir,
- const TDesC& aDstDir,
- CFileManagerEngine& aEngine )
- {
- CFileManagerFileSystemIterator* self =
- new (ELeave) CFileManagerFileSystemIterator( aDstDir, aEngine );
- CleanupStack::PushL( self );
- self->ConstructL( aFs, aSrcDir );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemIterator::CFileManagerFileSystemIterator
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileSystemIterator::CFileManagerFileSystemIterator(
- const TDesC& aDstDir, CFileManagerEngine& aEngine ) :
- iCount( KErrNotFound ),
- iDstDir( aDstDir ),
- iEngine( aEngine )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemIterator::~CFileManagerFileSystemIterator
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileSystemIterator::~CFileManagerFileSystemIterator()
- {
- delete iSrcDir;
- delete iSrc;
- delete iDst;
- delete iDir;
- delete iDirScan;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemIterator::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileSystemIterator::ConstructL(
- RFs& aFs, const TDesC& aSrcDir )
- {
- iDirScan = CDirScan::NewL( aFs );
- // Go through the folders first
- iDirScan->SetScanDataL(
- aSrcDir,
- KEntryAttNormal | KEntryAttHidden | KEntryAttSystem |
- KEntryAttDir | KEntryAttMatchExclusive,
- ESortNone );
- iSrc = HBufC::NewL( KMaxFileName );
- // We need double destination size
- // because source and target folder can be
- // KMaxFileName sized and those are append
- // to same buffer.
- iDst = HBufC::NewL( KFmgrDoubleMaxFileName );
- iDst->Des().Copy( iDstDir );
- iDirScan->NextL( iDir );
- iSrcDir = aSrcDir.AllocL();
- iSrc->Des().Copy( aSrcDir );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemIterator::CurrentL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileSystemIterator::CurrentL(
- HBufC** aSrc, HBufC** aDst, TFileManagerTypeOfItem& aItemType )
- {
- *aSrc = NULL;
- *aDst = NULL;
-
- if( iCount == KErrNotFound )
- {
- // Handle destination root folder first
- aItemType = EFileManagerFolder;
- *aSrc = iSrc; // contains iSrcDir
- *aDst = iDst; // contains iDstDir
- }
- else if( iDir && iCount < iDir->Count() )
- {
- // Handle folder contents
- if( !iFolderScanDone )
- {
- const TEntry& entry( ( *iDir )[ iCount ] );
-
- TPtr ptrSrc( iSrc->Des() );
- ptrSrc.Copy( iDirScan->FullPath() );
- ptrSrc.Append( entry.iName );
- ptrSrc.Append( KFmgrBackslash );
-
- TPtr ptrDst( iDst->Des() );
- ptrDst.Copy( iDstDir );
- ptrDst.Append( LocalizedAbbreviatedPath() );
-
- TPtrC ptr( iEngine.LocalizedName( *iSrc ) );
- if( ptr.Length() )
- {
- ptrDst.Append( ptr );
- }
- else
- {
- ptrDst.Append( entry.iName );
- }
- ptrDst.Append( KFmgrBackslash );
-
- aItemType = EFileManagerFolder;
- }
- else
- {
- const TEntry& entry( ( *iDir )[ iCount ] );
-
- TPtr ptrSrc( iSrc->Des() );
- ptrSrc.Copy( iDirScan->FullPath() );
- ptrSrc.Append( entry.iName );
-
- TPtr ptrDst( iDst->Des() );
- ptrDst.Copy( iDstDir );
- ptrDst.Append( LocalizedAbbreviatedPath() );
- ptrDst.Append( entry.iName );
-
- aItemType = EFileManagerFile;
- }
- *aSrc = iSrc;
- *aDst = iDst;
- }
- else
- {
- aItemType = EFileManagerNoType;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemIterator::NextL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFileSystemIterator::NextL()
- {
- if ( !iDir )
- {
- return EFalse;
- }
-
- ++iCount;
-
- // Get next dir
- if( iCount >= iDir->Count() )
- {
- delete iDir;
- iDir = NULL;
- iCount = 0;
- iDirScan->NextL( iDir );
- iLocalizedAbbreviatedPath.Zero();
- }
-
- // Are we done
- if( iDir )
- {
- return ETrue;
- }
-
- // Folders have been scanned through, now same scanning with files
- if( !iFolderScanDone )
- {
- iDirScan->SetScanDataL( *iSrcDir,
- KEntryAttNormal | KEntryAttHidden | KEntryAttSystem,
- ESortNone );
- iDirScan->NextL( iDir );
- iLocalizedAbbreviatedPath.Zero();
- iCount = 0;
- iFolderScanDone = ETrue;
- return ETrue;
- }
-
- return EFalse;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerFileSystemIterator::LocalizedAbbreviatedPath
-//
-// ------------------------------------------------------------------------------
-//
-TPtrC CFileManagerFileSystemIterator::LocalizedAbbreviatedPath()
- {
- TPtrC abbrPath( iDirScan->AbbreviatedPath() );
-
- if( !iLocalizedAbbreviatedPath.Length() && abbrPath.Length() > 1 )
- {
- iLocalizedAbbreviatedPath.Append(
- iEngine.LocalizedName( iDirScan->FullPath() ) );
-
- if( !iLocalizedAbbreviatedPath.Length() )
- {
- iLocalizedAbbreviatedPath.Append(
- abbrPath.Right( abbrPath.Length() - 1 ) );
- }
- else
- {
- iLocalizedAbbreviatedPath.Append( KFmgrBackslash );
- }
- }
- return iLocalizedAbbreviatedPath;
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerFolderEntry.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Holds one default folder entry
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CFileManagerFolderEntry.h"
-#include <barsread.h> // TResourceReader
-#include <bautils.h> // BaflUtils::EnsurePathExists
-#include <coemain.h> // CCoeEnv
-#include "CFileManagerUtils.h"
-#include "CFileManagerCommonDefinitions.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::NewLC
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderEntry* CFileManagerFolderEntry::NewLC(
- TResourceReader& aReader )
- {
- CFileManagerFolderEntry* self = new( ELeave ) CFileManagerFolderEntry;
- CleanupStack::PushL( self );
- self->ConstructFromResourceL( aReader );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderEntry* CFileManagerFolderEntry::NewL(
- TResourceReader& aReader )
- {
- CFileManagerFolderEntry* self = CFileManagerFolderEntry::NewLC( aReader );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::NewLC
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderEntry* CFileManagerFolderEntry::NewLC(
- const TInt aDrive, const TDesC& aPath )
- {
- CFileManagerFolderEntry* self = new( ELeave ) CFileManagerFolderEntry;
- CleanupStack::PushL( self );
- self->ConstructL( aDrive, aPath );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::CFileManagerFolderEntry
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderEntry::CFileManagerFolderEntry()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::~CFileManagerFolderEntry
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderEntry::~CFileManagerFolderEntry()
- {
- delete iName;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::ConstructFromResourceL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderEntry::ConstructFromResourceL( TResourceReader& aReader )
- {
- const TPtrC root( aReader.ReadTPtrC() );
- const TPtrC path( aReader.ReadTPtrC() );
-
- iIsMediaFolder = aReader.ReadInt8();
- iName = HBufC::NewL(
- root.Length() +
- path.Length() +
- KFmgrBackslashSpace +
- KFmgrBackslashSpace );
-
- TPtr ptr( iName->Des() );
- ptr.Copy( root );
- CFileManagerUtils::EnsureFinalBackslash( ptr );
- ptr.Append( path );
- CFileManagerUtils::EnsureFinalBackslash( ptr );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderEntry::ConstructL(
- const TInt aDrive, const TDesC& aPath )
- {
- TChar driveLetter;
-
- User::LeaveIfError( RFs::DriveToChar( aDrive, driveLetter ) );
- iName = aPath.AllocL();
- iName->Des()[ 0 ] = driveLetter;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::IsMediaFolder
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFolderEntry::IsMediaFolder() const
- {
- return iIsMediaFolder;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::Name
-//
-// -----------------------------------------------------------------------------
-//
-TPtrC CFileManagerFolderEntry::Name() const
- {
- return iName->Des();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::CompareSort
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFolderEntry::CompareSort(
- const CFileManagerFolderEntry& aFirst,
- const CFileManagerFolderEntry& aSecond )
- {
- return aFirst.iName->Des().CompareF( *( aSecond.iName ) );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderEntry::CompareFind
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFolderEntry::CompareFind(
- const TDesC* aPath,
- const CFileManagerFolderEntry& aItem )
- {
- return aPath->CompareF( *( aItem.iName ) );
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerIRReceiver.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,604 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Receives obex object via InfraRed, used to receive files
-*
-*/
-
-
-// INCLUDE FILES
-#include <obex.h>
-#include "CFileManagerIRReceiver.h"
-#include "MFileManagerProcessObserver.h"
-#include "CFileManagerEngine.h"
-#include "CFileManagerUtils.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "FileManagerDebug.h"
-
-
-// CONSTANTS
-const TUint KDefaultObexPort = 65;
-const TUint KBufferGranularity = 2048;
-const TInt KFullPercentage = 100;
-const TInt KInactiveTimeout = 60000000;
-
-// Required for IR
-_LIT( KTransportTinyTp, "IrTinyTP" );
-_LIT8( KClassNameObex, "OBEX" );
-_LIT8( KAttName, "IrDA:TinyTP:LsapSel" );
-_LIT( KTemporaryFile, "__FileManagerIrdaReceive.tmp" );
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::CFileManagerEngine
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerIRReceiver::CFileManagerIRReceiver(
- MFileManagerProcessObserver& aObserver,
- CFileManagerEngine& aEngine,
- RFs& aFs ) :
- iObserver( aObserver ),
- iEngine( aEngine ),
- iFs( aFs )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerIRReceiver* CFileManagerIRReceiver::NewL(
- MFileManagerProcessObserver& aObserver,
- const TDesC& aPath,
- CFileManagerEngine& aEngine )
- {
- FUNC_LOG
-
- CFileManagerIRReceiver* self = new( ELeave ) CFileManagerIRReceiver(
- aObserver,
- aEngine,
- aEngine.Fs() );
-
- CleanupStack::PushL( self );
- self->ConstructL( aPath );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIRReceiver::ConstructL( const TDesC& aPath )
- {
- TPtrC ptrPath( CFileManagerUtils::StripFinalBackslash( aPath ) );
- TInt len( ptrPath.Length() +
- KFmgrBackslashSpace + KTemporaryFile().Length() );
- if ( len > KMaxFileName )
- {
- User::Leave( KErrBadName );
- }
- iTempFile = HBufC::NewL( len );
- TPtr ptr( iTempFile->Des() );
- ptr.Append( ptrPath );
- CFileManagerUtils::EnsureFinalBackslash( ptr );
- ptr.Append( KTemporaryFile );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::ReceiveFileL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerIRReceiver::ReceiveFileL()
- {
- FUNC_LOG
-
- ResetInactivityTimer();
-
- TObexIrProtocolInfo obexIrInfo;
- obexIrInfo.iAddr.SetPort( KDefaultObexPort );
- obexIrInfo.iTransport = KTransportTinyTp;
- obexIrInfo.iClassName = KClassNameObex;
- obexIrInfo.iAttributeName = KAttName;
-
- iObexServer = CObexServer::NewL( obexIrInfo );
-
- User::LeaveIfError( iObexServer->Start( this ) );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::~CFileManagerIRReceiver
-// Destructor
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerIRReceiver::~CFileManagerIRReceiver()
- {
- FUNC_LOG
-
- if ( iObexServer )
- {
- if ( iObexServer->IsStarted() )
- {
- iObexServer->Stop();
- }
- delete iObexServer;
- }
- delete iObexBufObject;
-
- if ( iTempFile )
- {
- iFs.Delete( *iTempFile );
- delete iTempFile;
- }
- delete iBuffer;
- delete iInactivityTimer;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::StopReceiving
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerIRReceiver::StopReceiving()
- {
- FUNC_LOG
-
- iError = KErrCancel;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::ErrorIndication
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIRReceiver::ErrorIndication(TInt aError )
- {
- ERROR_LOG1( "CFileManagerIRReceiver::ErrorIndication-aError=%d", aError )
-
- if ( iError == KErrNone )
- {
- iError = aError;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::TransportUpIndication
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIRReceiver::TransportUpIndication()
- {
- FUNC_LOG
-
- StopInactivityTimer();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::TransportDownIndication
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIRReceiver::TransportDownIndication()
- {
- FUNC_LOG
-
- TInt err( KErrNone );
- if ( iObexBufObject )
- {
- // transfer has been cancelled, set temp buffer so obexobject won't
- // create temp file again
- delete iBuffer;
- iBuffer = NULL;
- TRAP( err, iBuffer = CBufFlat::NewL( KBufferGranularity ) );
- if ( err == KErrNone )
- {
- TRAP( err, iObexBufObject->SetDataBufL( iBuffer ) );
- }
- }
-
- if ( iTempFile )
- {
- iFs.Delete( *iTempFile );
- }
-
- TRAP( err, iObserver.ProcessFinishedL( iError ) );
- if ( err != KErrNone )
- {
- iObserver.Error( err );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::TargetHeaderReceived
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerIRReceiver::TargetHeaderReceived(TDesC8& /* aTargetHeader */ )
- {
- FUNC_LOG
-
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::ObexConnectIndication
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerIRReceiver::ObexConnectIndication
- ( const TObexConnectInfo& /* aRemoteInfo */,
- const TDesC8& /* aInfo */ )
- {
- FUNC_LOG
-
- if ( iError == KErrCancel )
- {
- return KErrCancel;
- }
-
- TRAPD( err, iObserver.ProcessStartedL(
- MFileManagerProcessObserver::EIRReceiveProcess ) );
-
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::ObexDisconnectIndication
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIRReceiver::ObexDisconnectIndication(const TDesC8& /* aInfo */ )
- {
- FUNC_LOG
- // from MObexServerNotify
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::PutRequestIndication
-//
-// -----------------------------------------------------------------------------
-//
-CObexBufObject* CFileManagerIRReceiver::PutRequestIndication()
- {
- FUNC_LOG
-
- // delete old buffer if it exists
- delete iObexBufObject;
- iObexBufObject = NULL;
- iFs.Delete( *iTempFile );
-
- TRAPD( err, iObexBufObject = CObexBufObject::NewL( NULL ) );
- if ( err == KErrNone )
- {
- TRAP( err, iObexBufObject->SetDataBufL( *iTempFile ) );
- }
-
- if ( err != KErrNone )
- {
- return NULL;
- }
-
- return iObexBufObject;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::PutPacketIndication
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerIRReceiver::PutPacketIndication()
- {
- FUNC_LOG
-
- if ( iError == KErrCancel )
- {
- return KErrCancel;
- }
-
- const TInt size( iObexBufObject->Length() );
-
- if ( !iDiskSpaceChecked )
- {
- TParsePtrC parse( *iTempFile );
- TRAP( iError, iEnoughSpace = iEngine.EnoughSpaceL(
- parse.DriveAndPath(), size,
- MFileManagerProcessObserver::EIRReceiveProcess ) );
- iDiskSpaceChecked = ETrue;
- }
-
- if ( iError == KErrNone && iEnoughSpace )
- {
- const TInt received( iObexBufObject->BytesReceived());
- TInt percent( 0 );
- if ( size != 0)
- {
- percent = KFullPercentage * received / size;
- }
- TRAPD( error, iObserver.ProcessAdvanceL( percent ) );
- if ( iError == KErrNone )
- {
- iError = error;
- }
- }
- else if ( !iEnoughSpace )
- {
- if ( iError == KErrNone )
- {
- iError = KErrDiskFull;
- }
- }
-
- return iError;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::PutCompleteIndication
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerIRReceiver::PutCompleteIndication()
- {
- FUNC_LOG
-
- if ( iError == KErrCancel )
- {
- iFs.Delete( *iTempFile );
- iDiskSpaceChecked = EFalse;
- return KErrNone;
- }
-
- TInt error( KErrNone );
- TFileName fileName;
- TParsePtrC parse( *iTempFile );
- fileName.Append( parse.DriveAndPath() );
- TPtrC objName( iObexBufObject->Name() );
-
- if ( fileName.Length() + objName.Length() > KMaxFileName )
- {
- iFs.Delete( *iTempFile );
- iDiskSpaceChecked = EFalse;
- iObserver.Error( KErrBadName );
- return KErrBadName;
- }
-
- fileName.Append( objName );
- delete iObexBufObject;
- iObexBufObject = NULL;
- TBool nameFound( EFalse );
- TRAP( error, nameFound = iEngine.IsNameFoundL( fileName ) );
- if ( error == KErrNone && nameFound )
- {
- TFileName name;
- TBool overWrite( ETrue );
- TRAP( error, overWrite = iObserver.ProcessQueryOverWriteL(
- fileName, name,
- MFileManagerProcessObserver::EIRReceiveProcess ) );
-
- if ( error == KErrNone )
- {
- if ( overWrite )
- {
- error = iFs.Delete( fileName );
- if ( error == KErrNone )
- {
- iFs.Rename( *iTempFile, fileName );
- }
- if ( error != KErrNone )
- {
- iObserver.Error( error );
- }
- }
- else
- {
- TBool askAgain( ETrue );
- TRAP( error, nameFound = iEngine.IsNameFoundL( name ) );
- while( error == KErrNone && nameFound && askAgain )
- {
- TFileName newName;
- TRAP( error, overWrite =
- iObserver.ProcessQueryOverWriteL(
- name,
- newName,
- MFileManagerProcessObserver::EIRReceiveProcess
- ) );
- if ( error != KErrNone )
- {
- iError = error;
- askAgain = EFalse;
- name.Zero();
- }
- else if ( !overWrite )
- {
- name.Zero();
- name.Append( newName );
- }
- else
- {
- askAgain = EFalse;
- }
- }
- if ( name.Length() > 0 )
- {
- TParsePtrC parse( *iTempFile );
- name.Insert( 0, parse.DriveAndPath() );
- iFs.Rename( *iTempFile, name );
- }
- }
- }
- else
- {
- iError = error;
- }
- }
- else
- {
-
- iFs.Rename( *iTempFile, fileName );
- }
- iFs.Delete( *iTempFile );
- iDiskSpaceChecked = EFalse;
-
- return error;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::GetRequestIndication
-// Empty because needed only for send functionality
-// -----------------------------------------------------------------------------
-//
-CObexBufObject* CFileManagerIRReceiver::GetRequestIndication
- (CObexBaseObject* /* aRequiredObject */)
- {
- FUNC_LOG
-
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::GetPacketIndication
-// Empty because needed only for send functionality
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerIRReceiver::GetPacketIndication()
- {
- FUNC_LOG
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::GetCompleteIndication
-// Empty because needed only for send functionality
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerIRReceiver::GetCompleteIndication()
- {
- FUNC_LOG
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::SetPathIndication
-// Empty because setpath not supported
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerIRReceiver::SetPathIndication(
- const CObex::TSetPathInfo& /* aPathInfo*/ , const TDesC8& /* aInfo */)
- {
- FUNC_LOG
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::AbortIndication
-// Empty because needed only for send functionality
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIRReceiver::AbortIndication()
- {
- FUNC_LOG
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::ResetInactivityTimer
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIRReceiver::ResetInactivityTimer()
- {
- FUNC_LOG
-
- StopInactivityTimer();
-
- TRAPD( err, iInactivityTimer =
- CPeriodic::NewL( CActive::EPriorityStandard ) );
- if ( err == KErrNone )
- {
- iInactivityTimer->Start(
- KInactiveTimeout,
- KInactiveTimeout,
- TCallBack( InactivityTimeout, this ) );
-
- INFO_LOG( "CFileManagerIRReceiver::ResetInactivityTimer-Timer started" )
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::InactivityTimeout
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerIRReceiver::InactivityTimeout( TAny* aPtr )
- {
- FUNC_LOG
-
- CFileManagerIRReceiver* self =
- static_cast< CFileManagerIRReceiver* >( aPtr );
-
- self->StopInactivityTimer();
- self->CloseConnection();
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::StopInactivityTimer
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIRReceiver::StopInactivityTimer()
- {
- FUNC_LOG
-
- delete iInactivityTimer;
- iInactivityTimer = NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIRReceiver::CloseConnection
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIRReceiver::CloseConnection()
- {
- FUNC_LOG
-
- StopReceiving();
-
- if ( iObexServer )
- {
- if ( iObexServer->IsStarted() )
- {
- INFO_LOG( "CFileManagerIRReceiver::CloseConnection-Stop server" )
-
- iObexServer->Stop();
- }
- }
-
- TRAPD( err, iObserver.ProcessFinishedL( KErrCancel ) );
- if ( err != KErrNone )
- {
- iObserver.Error( err );
- }
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerItemFilter.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,292 +0,0 @@
-/*
-* Copyright (c) 2005-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: Filter GFLM items
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CFileManagerItemFilter.h"
-#include "CFileManagerEngine.h"
-#include "CGflmGroupItem.h"
-#include "CGflmFileSystemItem.h"
-#include "CGflmDriveItem.h"
-#include "CGflmGlobalActionItem.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "FileManagerDebug.h"
-#include "TFileManagerDriveInfo.h"
-#include "CFileManagerFeatureManager.h"
-#include <filemanagerengine.rsg>
-#include <StringLoader.h>
-#include <pathinfo.h>
-#ifdef RD_MULTIPLE_DRIVE
-#include <driveinfo.h>
-#endif // RD_MULTIPLE_DRIVE
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerItemFilter::CFileManagerItemFilter
-// ----------------------------------------------------------------------------
-//
-CFileManagerItemFilter::CFileManagerItemFilter( CFileManagerEngine& aEngine )
- : iEngine( aEngine )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerItemFilter::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerItemFilter::ConstructL()
- {
- // Phone memory root path
- iPhoneMemoryRootPath = PathInfo::PhoneMemoryRootPath().AllocL();
- iInternalDefaultName =
- StringLoader::LoadL( R_TEXT_PHONE_MEMORY );
- iRemovableDefaultName =
- StringLoader::LoadL( R_TEXT_MEMORY_CARD_DEFAULT );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerItemFilter::NewL
-// ----------------------------------------------------------------------------
-//
-CFileManagerItemFilter* CFileManagerItemFilter::NewL(
- CFileManagerEngine& aEngine )
- {
- CFileManagerItemFilter* self = new( ELeave ) CFileManagerItemFilter(
- aEngine );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerItemFilter::~CFileManagerItemFilter
-// ----------------------------------------------------------------------------
-//
-CFileManagerItemFilter::~CFileManagerItemFilter()
- {
- delete iPhoneMemoryRootPath;
- delete iInternalDefaultName;
- delete iRemovableDefaultName;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerItemFilter::FilterItemL
-// ----------------------------------------------------------------------------
-//
-TBool CFileManagerItemFilter::FilterItemL(
- CGflmGroupItem* aItem,
- TInt /*aGroupId*/,
- CGflmDriveItem* /*aDrive*/ )
- {
- switch( aItem->Type() )
- {
- case CGflmGroupItem::EGlobalActionItem:
- {
- CGflmGlobalActionItem* actItem =
- static_cast< CGflmGlobalActionItem* >( aItem );
- switch( actItem->Id() )
- {
- case EFileManagerBackupAction:
- {
- // Disable backup in embedded mode, because it messes up
- // backup and restore operations since embedded apps are closed.
- if ( iEngine.FeatureManager().IsEmbedded() )
- {
- return EFalse;
- }
- actItem->SetIconId( EFileManagerBackupMainIcon );
- break;
- }
- default:
- {
- break;
- }
- }
- break;
- }
- case CGflmGroupItem::EDirectory:
- {
- CGflmFileSystemItem* fsItem =
- static_cast< CGflmFileSystemItem* >( aItem );
- fsItem->GetFullPath( iFileNameBuffer );
- return !iEngine.IsSystemFolder( iFileNameBuffer );
- }
- case CGflmGroupItem::EDrive:
- {
- CGflmDriveItem* drvItem = static_cast< CGflmDriveItem* >( aItem );
-
-#ifndef RD_MULTIPLE_DRIVE
- const TVolumeInfo& vol( drvItem->VolumeInfo() );
- TInt drive( drvItem->Drive() );
-#endif // RD_MULTIPLE_DRIVE
-
- INFO_LOG1( "CFileManagerItemFilter::FilterItemL()-drive=%d",
- drvItem->Drive() )
-
- INFO_LOG1( "CFileManagerItemFilter::FilterItemL()-driveAtt=%d",
- drvItem->VolumeInfo().iDrive.iDriveAtt )
-
- INFO_LOG1( "CFileManagerItemFilter::FilterItemL()-mediaAtt=%d",
- drvItem->VolumeInfo().iDrive.iMediaAtt )
-
- INFO_LOG1( "CFileManagerItemFilter::FilterItemL()-driveUniqueId=%u",
- drvItem->VolumeInfo().iUniqueID )
-
- INFO_LOG1( "CFileManagerItemFilter::FilterItemL()-driveSize=%lu",
- drvItem->VolumeInfo().iSize )
-
- INFO_LOG1( "CFileManagerItemFilter::FilterItemL()-VolumeStatus=%d",
- drvItem->VolumeStatus() )
-
- INFO_LOG1( "CFileManagerItemFilter::FilterItemL()-DriveStatus=%d",
- drvItem->DriveStatus() )
-
-#ifdef RD_MULTIPLE_DRIVE
- // Setup drive icon
- TUint driveStatus( drvItem->DriveStatus() );
- if ( !( driveStatus & DriveInfo::EDriveUserVisible ) )
- {
- ERROR_LOG( "CFileManagerItemFilter::FilterItemL()-Hidden-1" )
- return EFalse;
- }
- TInt icon( 0 );
- if ( driveStatus & DriveInfo::EDriveInternal )
- {
- icon = EFileManagerPhoneMemoryMainIcon;
- if ( driveStatus & DriveInfo::EDriveExternallyMountable )
- {
- icon = EFileManagerMassStorageMainIcon;
- }
- }
- else if ( driveStatus & DriveInfo::EDriveUsbMemory )
- {
- icon = EFileManagerUsbMemoryMainIcon;
- }
- else if ( driveStatus & DriveInfo::EDriveRemovable )
- {
- icon = EFileManagerMemoryCardNotPresentMainIcon;
- if ( driveStatus & DriveInfo::EDrivePresent )
- {
- icon = EFileManagerMemoryCardPresentMainIcon;
- }
- }
- else if ( driveStatus & DriveInfo::EDriveRemote )
- {
- icon = EFileManagerRemoteDriveMainIcon;
- }
- else
- {
- ERROR_LOG( "CFileManagerItemFilter::FilterItemL()-Hidden-2" )
- return EFalse;
- }
- drvItem->SetIconId( icon );
- // Setup root directory
- if ( PathInfo::GetRootPath( iFileNameBuffer, drvItem->Drive() ) != KErrNone )
- {
- ERROR_LOG( "CFileManagerItemFilter::FilterItemL()-Hidden-3" )
- return EFalse;
- }
- drvItem->SetRootDirectoryL( iFileNameBuffer );
- INFO_LOG( "CFileManagerItemFilter::FilterItemL()-Visible" )
-
-#else // RD_MULTIPLE_DRIVE
-
- TBool isPhoneMem( EFalse );
- TPtrC root( drvItem->RootDirectory() );
- TPtrC phoneMemRoot( *iPhoneMemoryRootPath );
- TInt len( Min( root.Length(), phoneMemRoot.Length() ) );
- if ( !root.CompareF( phoneMemRoot.Left( len ) ) )
- {
- // Drive is defined to phone memory
- isPhoneMem = ETrue;
- drvItem->SetRootDirectoryL( *iPhoneMemoryRootPath );
- }
- else if ( vol.iDrive.iDriveAtt & KDriveAttInternal )
- {
- if ( drive == KFmgrRamDrive || drive == KFmgrRomDrive )
- {
- // Drive is not allowed internal drive
- return EFalse;
- }
- }
- if ( vol.iDrive.iDriveAtt & KDriveAttSubsted )
- {
- // Substed drives are not allowed
- return EFalse;
- }
- // Setup drive name
- if ( !drvItem->Name().Length() )
- {
- if ( isPhoneMem )
- {
- drvItem->SetLocalizedNameL( *iInternalDefaultName );
- }
- else if ( ( vol.iDrive.iDriveAtt & KDriveAttRemovable ) ||
- drive == KFmgrMemoryCardDrive )
- {
- drvItem->SetLocalizedNameL( *iRemovableDefaultName );
- }
- else
- {
- drvItem->SetLocalizedNameL( drvItem->RootDirectory() );
- }
- }
- // Setup drive icon
- if ( isPhoneMem )
- {
- drvItem->SetIconId( EFileManagerPhoneMemoryMainIcon );
- }
- else if ( ( vol.iDrive.iDriveAtt & KDriveAttRemovable ) ||
- drive == KFmgrMemoryCardDrive )
- {
- if ( vol.iDrive.iType == EMediaNotPresent )
- {
- drvItem->SetIconId( EFileManagerMemoryCardNotPresentMainIcon );
- }
- else
- {
- drvItem->SetIconId( EFileManagerMemoryCardPresentMainIcon );
- }
- }
- else if ( vol.iDrive.iDriveAtt & KDriveAttRemote )
- {
- drvItem->SetIconId( EFileManagerRemoteDriveMainIcon );
- }
- else
- {
- return EFalse;
- }
- INFO_LOG( "CFileManagerItemFilter::FilterItemL()-driveAllowed" )
-
-#endif // RD_MULTIPLE_DRIVE
- break;
- }
- default:
- {
- break;
- }
- }
- return ETrue;
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerItemProperties.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,606 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Holds item information
-*
-*/
-
-
-// INCLUDES
-#include <e32base.h>
-#include <f32file.h>
-#include <tz.h>
-#include "CFileManagerItemProperties.h"
-#include "CFileManagerUtils.h"
-#include "CFilemanagerMimeIconArray.h"
-#include "Cfilemanagerfolderarray.h"
-#include "Cfilemanageractivesize.h"
-#include "CFilemanagerActiveCount.h"
-#include "CFileManagerEngine.h"
-#include "CGflmGroupItem.h"
-#include "CGflmFileSystemItem.h"
-#include "CGflmDriveItem.h"
-#include "CGflmGlobalActionItem.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::CFileManagerItemProperties
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerItemProperties::CFileManagerItemProperties(
- CFileManagerUtils& aUtils,
- CFileManagerEngine& aEngine ) :
- iSize( KErrNotFound ),
- iFilesContained( KErrNotFound ),
- iFoldersContained( KErrNotFound ),
- iOpenFiles( KErrNotFound ),
- iUtils( aUtils ),
- iEngine( aEngine )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerItemProperties* CFileManagerItemProperties::NewL(
- const TDesC& aFullPath,
- CFileManagerUtils& aUtils,
- CFileManagerEngine& aEngine )
- {
- CFileManagerItemProperties* self =
- new (ELeave) CFileManagerItemProperties( aUtils, aEngine );
- CleanupStack::PushL( self );
- self->ConstructL( aFullPath );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerItemProperties* CFileManagerItemProperties::NewL(
- const CGflmGroupItem& aItem,
- CFileManagerUtils& aUtils,
- CFileManagerEngine& aEngine )
- {
- CFileManagerItemProperties* self =
- new (ELeave) CFileManagerItemProperties( aUtils, aEngine );
- CleanupStack::PushL( self );
- self->ConstructL( aItem );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerItemProperties::ConstructL( const TDesC& aFullPath )
- {
- iFullPath = aFullPath.AllocL();
-
- // Setup the rest of entry data when needed first time
- if ( CFileManagerUtils::HasFinalBackslash( aFullPath ) )
- {
- iState |= EItemDirectory;
- }
- else
- {
- iState |= EItemFile;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerItemProperties::ConstructL(
- const TDesC& aFullPath, const TEntry& aEntry )
- {
- iFullPath = aFullPath.AllocL();
-
- // Setup all entry data now
- SetEntryData( aEntry );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerItemProperties::ConstructL( const CGflmGroupItem& aItem )
- {
- switch ( aItem.Type() )
- {
- case CGflmGroupItem::EFile:
- case CGflmGroupItem::EDirectory:
- {
- const CGflmFileSystemItem& fsItem =
- static_cast< const CGflmFileSystemItem& >( aItem );
- HBufC* fullPath = fsItem.FullPathLC();
- ConstructL( *fullPath, fsItem.Entry() );
- if ( iUtils.IsRemoteDrive( *fullPath ) )
- {
- iState |= EItemRemoteDrive;
- }
- CleanupStack::PopAndDestroy( fullPath );
- break;
- }
- case CGflmGroupItem::EDrive:
- {
- const CGflmDriveItem& drvItem =
- static_cast< const CGflmDriveItem& >( aItem );
- iFullPath = drvItem.RootDirectory().AllocL();
-#ifdef RD_MULTIPLE_DRIVE
- iName = iUtils.GetDriveNameL(
- drvItem.Drive(),
- CFileManagerUtils::EMainLayout );
-#else // RD_MULTIPLE_DRIVE
- iName = drvItem.Name().AllocL();
-#endif // RD_MULTIPLE_DRIVE
- iState |= EItemDrive;
- if ( iUtils.IsRemoteDrive( *iFullPath ) )
- {
- iState |= EItemRemoteDrive;
- }
- break;
- }
- case CGflmGroupItem::EGlobalActionItem:
- {
- const CGflmGlobalActionItem& actItem =
- static_cast< const CGflmGlobalActionItem& >( aItem );
- if ( actItem.Id() == EFileManagerBackupAction )
- {
- // Ignore error
- iEngine.LatestBackupTime( iModified );
- }
- iName = aItem.Name().AllocL();
- // Action items do not have entry data, so mark it as fetched
- iState |= EItemAction | EItemEntryDataFetched;
- break;
- }
- default:
- {
- User::Leave( KErrNotFound );
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::~CFileManagerItemProperties
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerItemProperties::~CFileManagerItemProperties()
- {
- delete iFullPath;
- delete iActiveSize;
- delete iActiveCount;
- delete iName;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::Name() const
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerItemProperties::Name() const
- {
- if ( iState & EItemNotFileOrDir )
- {
- return iName->Des();
- }
- TParsePtrC parse( CFileManagerUtils::StripFinalBackslash( *iFullPath ) );
- return parse.Name();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::ModifiedDate() const
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TTime CFileManagerItemProperties::ModifiedDate() const
- {
- EnsureEntryDataFetched();
- return iModified;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::SizeL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt64 CFileManagerItemProperties::SizeL()
- {
- if ( iState & EItemNotFileOrDir )
- {
- return 0;
- }
- if( iSize == KErrNotFound )
- {
- if ( iState & EItemFile )
- {
- EnsureEntryDataFetched();
- }
- else
- {
- iSize = FolderSizeL( *iFullPath );
- }
- }
- return iSize;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::FilesContainedL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerItemProperties::FilesContainedL()
- {
- if( iFilesContained == KErrNotFound )
- {
- CountItemsL( CFileManagerItemProperties::EFile );
- }
- return iFilesContained;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::FoldersContainedL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerItemProperties::FoldersContainedL()
- {
- if( iFoldersContained == KErrNotFound )
- {
- CountItemsL( CFileManagerItemProperties::EFolder );
- }
- return iFoldersContained;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::OpenFilesL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerItemProperties::OpenFilesL()
- {
- if( iOpenFiles == KErrNotFound )
- {
- CountItemsL( CFileManagerItemProperties::EOpen );
- }
- return iOpenFiles;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::TypeL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TUint32 CFileManagerItemProperties::TypeL()
- {
- if( iType == CFileManagerItemProperties::ENotDefined )
- {
- iType = iUtils.FileTypeL( *iFullPath );
- }
- return iType;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::Ext() const
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerItemProperties::Ext() const
- {
- if ( iState & EItemNotFileOrDir )
- {
- return TPtrC( KNullDesC );
- }
- TParsePtrC parse( *iFullPath );
- TPtrC ext( parse.Ext() );
- return ext;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::CountItemsL
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerItemProperties::CountItemsL(
- const TFileManagerFileType& aType )
- {
- if ( !( iState & ( EItemDirectory | EItemDrive ) ) )
- {
- // It's not a folder
- return KErrNotFound;
- }
-
- delete iActiveCount;
- iActiveCount = NULL;
-
- iActiveCount = CFileManagerActiveCount::NewL(
- iEngine.Fs(), *iFullPath, aType );
-
- if ( !iActiveCount->IsProcessDone() )
- {
- iEngine.ShowWaitDialogL( *iActiveCount );
- }
-
- if ( iFilesContained == KErrNotFound )
- {
- iFilesContained = iActiveCount->FileCount();
- }
-
- if ( iFoldersContained == KErrNotFound )
- {
- iFoldersContained = iActiveCount->FolderCount();
- }
-
- if ( iOpenFiles == KErrNotFound )
- {
- iOpenFiles = iActiveCount->OpenFiles();
- }
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::FolderSizeL
-// -----------------------------------------------------------------------------
-//
-TInt64 CFileManagerItemProperties::FolderSizeL( const TDesC& aFullPath )
- {
- if ( !( iState & EItemDirectory ) )
- {
- // It's not a folder
- return KErrNotFound;
- }
-
- delete iActiveSize;
- iActiveSize = NULL;
- iActiveSize = CFileManagerActiveSize::NewL( iEngine.Fs(), aFullPath );
- iEngine.ShowWaitDialogL( *iActiveSize );
- if ( !iActiveSize->IsProcessDone() )
- {
- User::Leave( KErrCancel );
- }
- return iActiveSize->GetFolderSize();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::FullPath() const
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerItemProperties::FullPath() const
- {
- if ( iFullPath )
- {
- return iFullPath->Des();
- }
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::NameAndExt() const
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerItemProperties::NameAndExt() const
- {
- if ( iState & EItemNotFileOrDir )
- {
- return iName->Des();
- }
- TParsePtrC parse( CFileManagerUtils::StripFinalBackslash( *iFullPath ) );
- return parse.NameAndExt();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::LocalizedName() const
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerItemProperties::LocalizedName() const
- {
- if (iState & EItemDirectory )
- {
- TPtrC ptr( iUtils.LocalizedName( *iFullPath ) );
- if ( ptr.Length() )
- {
- return ptr;
- }
- }
- return NameAndExt();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::ModifiedLocalDate() const
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerItemProperties::ModifiedLocalDate(
- TTime& aTime ) const
- {
- aTime = ModifiedDate(); // convert from universal time
- RTz tz;
- TInt err( tz.Connect() );
- if ( err == KErrNone )
- {
- err = tz.ConvertToLocalTime( aTime );
- if ( err != KErrNone )
- {
- aTime = ModifiedDate(); // use universal time
- }
- tz.Close();
- }
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::ContainsAnyFilesOrFolders()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerItemProperties::ContainsAnyFilesOrFolders()
- {
- if ( !( iState & EItemDirectory ) ||
- ( iState & EItemHasNoFilesOrFolders ) )
- {
- return EFalse;
- }
- if ( iState & EItemHasFilesOrFolders )
- {
- return ETrue;
- }
- TBool ret( CFileManagerUtils::HasAny(
- iEngine.Fs(),
- *iFullPath,
- KEntryAttNormal | KEntryAttDir | KEntryAttHidden | KEntryAttSystem ) );
- if ( ret )
- {
- iState |= EItemHasFilesOrFolders;
- }
- else
- {
- iState |= EItemHasNoFilesOrFolders;
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::MimeTypeL()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerItemProperties::MimeTypeL()
- {
- if ( iState & EItemNotFileOrDir )
- {
- return TPtrC( KNullDesC );
- }
- return iUtils.MimeTypeL( *iFullPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::IsDrive()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerItemProperties::IsDrive() const
- {
- if ( iState & EItemDrive )
- {
- return ETrue;
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::DriveName()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerItemProperties::DriveName() const
- {
- if ( iState & EItemDrive )
- {
- return Name();
- }
- return iEngine.CurrentDriveName();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::IsRemoteDrive()
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerItemProperties::IsRemoteDrive() const
- {
- if ( iState & EItemRemoteDrive )
- {
- return ETrue;
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::EnsureEntryDataFetched
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerItemProperties::EnsureEntryDataFetched() const
- {
- if ( iState & EItemEntryDataFetched )
- {
- return;
- }
-
- iState |= EItemEntryDataFetched; // Do not try fetch more than once
-
- TEntry entry;
- if ( iEngine.Fs().Entry( *iFullPath, entry ) != KErrNone )
- {
- return;
- }
-
- SetEntryData( entry );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::SetEntryData
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerItemProperties::SetEntryData( const TEntry& aEntry ) const
- {
- iState |= EItemEntryDataFetched;
-
- iModified = aEntry.iModified;
-
- if ( aEntry.IsDir() )
- {
- iState |= EItemDirectory;
- }
- else
- {
- iState |= EItemFile;
- iSize = (TUint) aEntry.iSize;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerItemProperties::DriveId
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerItemProperties::DriveId() const
- {
- TInt ret( KErrNotFound );
- if ( iFullPath )
- {
- ret = TDriveUnit( *iFullPath );
- }
- return ret;
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerPropertySubscriber.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
-* Copyright (c) 2006 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: Subscriber (Publish & Subscribe)
-*
-*/
-
-
-// INCLUDES
-#include "CFileManagerPropertySubscriber.h"
-#include "FileManagerDebug.h"
-
-// ============================= MEMBER FUNCTIONS =============================
-
-// ----------------------------------------------------------------------------
-// CFileManagerPropertySubscriber::NewL()
-//
-// ----------------------------------------------------------------------------
-CFileManagerPropertySubscriber* CFileManagerPropertySubscriber::NewL(
- MFileManagerPropertyObserver& aObserver,
- const TUid& aCategory,
- const TUint aKey )
- {
- CFileManagerPropertySubscriber* self = new (ELeave)
- CFileManagerPropertySubscriber(
- aObserver, aCategory, aKey );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerPropertySubscriber::ConstructL()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerPropertySubscriber::ConstructL()
- {
- CActiveScheduler::Add( this );
- User::LeaveIfError( iProperty.Attach( iCategory, iKey ) );
- Subscribe();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerPropertySubscriber::Subscribe()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerPropertySubscriber::Subscribe()
- {
- iProperty.Subscribe( iStatus );
- SetActive();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerPropertySubscriber::CFileManagerPropertySubscriber()
-//
-// ----------------------------------------------------------------------------
-CFileManagerPropertySubscriber::CFileManagerPropertySubscriber(
- MFileManagerPropertyObserver& aObserver,
- const TUid& aCategory,
- const TUint aKey ) :
- CActive( EPriorityStandard ),
- iObserver( aObserver ),
- iCategory( aCategory),
- iKey( aKey )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerPropertySubscriber::RunL()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerPropertySubscriber::RunL()
- {
- Subscribe();
- iObserver.PropertyChangedL( iCategory, iKey );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerPropertySubscriber::DoCancel()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerPropertySubscriber::DoCancel()
- {
- iProperty.Cancel();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerPropertySubscriber::RunError()
-//
-// ----------------------------------------------------------------------------
-TInt CFileManagerPropertySubscriber::RunError( TInt aError )
- {
- ERROR_LOG1( "CFileManagerPropertySubscriber::RunError()-error=%d", aError )
- return aError;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerPropertySubscriber::~CFileManagerPropertySubscriber()
-//
-// ----------------------------------------------------------------------------
-CFileManagerPropertySubscriber::~CFileManagerPropertySubscriber()
- {
- Cancel();
- iProperty.Close();
- }
-
-// End of File
-
-
--- a/filemanager/Engine/src/CFileManagerRefresher.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Asynchronous refresher for refreshing the CGflmNavigatorModel
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CFileManagerRefresher.h"
-#include "MFileManagerProcessObserver.h"
-#include "CGflmNavigatorModel.h"
-#include "FileManagerDebug.h"
-#include <e32std.h>
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerRefresher::CFileManagerRefresher
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerRefresher::CFileManagerRefresher( CGflmNavigatorModel& aModel ) :
- CActive( CActive::EPriorityStandard ),
- iModel( aModel )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerRefresher::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CFileManagerRefresher::ConstructL()
- {
- CActiveScheduler::Add( this );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerRefresher::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerRefresher* CFileManagerRefresher::NewL( CGflmNavigatorModel& aModel )
- {
- CFileManagerRefresher* self =
- new( ELeave ) CFileManagerRefresher( aModel );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerRefresher::~CFileManagerRefresher()
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerRefresher::~CFileManagerRefresher()
- {
- Cancel();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerRefresher::RunL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerRefresher::RunL()
- {
- FUNC_LOG
-
- TInt err( iStatus.Int() );
-
- LOG_IF_ERROR1( err, "CFileManagerRefresher::RunL()-err=%d", err )
-
- if( iObserver )
- {
- iObserver->RefreshStoppedL();
- if ( err == KErrCancel )
- {
- // For going back to parent folder
- iObserver->Error( KErrPathNotFound );
- }
- }
-
- // Forward OOM, suppress other errors
- if ( err == KErrNoMemory )
- {
- User::Leave( err );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerRefresher::RunError
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerRefresher::RunError( TInt aError )
- {
- ERROR_LOG1( "CFileManagerRefresher::RunError()-err=%d", aError )
- return aError;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerRefresher::DoCancel
-// -----------------------------------------------------------------------------
-//
-void CFileManagerRefresher::DoCancel()
- {
- FUNC_LOG
-
- iModel.CancelRefresh();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerRefresher::Refresh
-// Initiates the model refreshing
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CFileManagerRefresher::Refresh( TGflmRefreshMode aRefreshMode )
- {
- FUNC_LOG
-
- // If already active, return
- if( IsActive() )
- {
- ERROR_LOG( "CFileManagerRefresher::Refresh()-Already active" )
- return;
- }
-
- TInt err( KErrNone );
- if ( iObserver )
- {
- TRAP( err, iObserver->RefreshStartedL() );
- }
-
- if ( err )
- {
- ERROR_LOG1( "CFileManagerRefresher::Refresh()-Before err=%d", err )
- return;
- }
-
- // Try to start the refresh operation
- TRAP( err, iModel.RefreshListL( iStatus, aRefreshMode ) );
-
- // If refreshing couldn't be started, notify observer and return
- if ( err )
- {
- ERROR_LOG1( "CFileManagerRefresher::Refresh()-After err=%d", err )
- if( iObserver )
- {
- TRAP_IGNORE( iObserver->RefreshStoppedL() );
- }
- return;
- }
-
- // Refreshing was started, set active and wait for asynchronous
- // request to complete
- SetActive();
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerRefresher::SetObserver
-// ------------------------------------------------------------------------------
-//
-void CFileManagerRefresher::SetObserver( MFileManagerProcessObserver* aObserver )
- {
- // Set the observer if not active
- if( !IsActive() )
- {
- iObserver = aObserver;
- }
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerRefresher::CancelRefresh
-// ------------------------------------------------------------------------------
-//
-TBool CFileManagerRefresher::CancelRefresh()
- {
- FUNC_LOG
-
- TBool ret( IsActive() );
- Cancel();
- return ret;
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerRemoteDriveHandler.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Wraps remote drive functionality
-*
-*/
-
-
-
-// INCLUDES
-#include <rsfwmountman.h>
-#include "CFileManagerRemoteDriveHandler.h"
-#include "CGflmNavigatorModel.h"
-#include "CFileManagerEngine.h"
-#include "CFileManagerPropertySubscriber.h"
-#include "CFileManagerUtils.h"
-#include "FileManagerDebug.h"
-#include "CFileManagerFeatureManager.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::CFileManagerRemoteDriveHandler()
-// ---------------------------------------------------------------------------
-//
-CFileManagerRemoteDriveHandler::CFileManagerRemoteDriveHandler(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils ) :
- iEngine( aEngine ),
- iUtils( aUtils )
- {
- FUNC_LOG
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::NewL( const CFileManagerEngine& aEngine )
-// ---------------------------------------------------------------------------
-//
-CFileManagerRemoteDriveHandler* CFileManagerRemoteDriveHandler::NewL(
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils )
- {
- FUNC_LOG
-
- CFileManagerRemoteDriveHandler* self =
- new (ELeave) CFileManagerRemoteDriveHandler(
- aEngine, aUtils );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::~CFileManagerRemoteDriveHandler()
-// ---------------------------------------------------------------------------
-//
-CFileManagerRemoteDriveHandler::~CFileManagerRemoteDriveHandler()
- {
- FUNC_LOG
-
- delete iMountMan;
- delete iSubscriber;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemoteDriveHandler::ConstructL()
- {
- FUNC_LOG
-
- // Check and set value to indicate if the feature is supported
- iRemoteStorageFwSupported =
- iEngine.FeatureManager().IsRemoteStorageFwSupported();
- if ( !iRemoteStorageFwSupported )
- {
- return;
- }
- iMountMan = CRsfwMountMan::NewL( 0, NULL );
-#ifdef FILE_MANAGER_MOUNT_REMOTE_DRIVES_ON_STARTUP
- // Make sure that remote drives are mounted
- _LIT( KMounterExe, "rsfwbootmounter.exe" );
- RProcess mounter;
- if ( mounter.Create( KMounterExe, KNullDesC ) == KErrNone )
- {
- mounter.Resume();
- mounter.Close();
- }
-#endif // FILE_MANAGER_MOUNT_REMOTE_DRIVES_ON_STARTUP
- iSubscriber = CFileManagerPropertySubscriber::NewL(
- *this, KRfeServerSecureUid, ERsfwPSKeyConnect );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::IsConnected()
-// ---------------------------------------------------------------------------
-//
-TBool CFileManagerRemoteDriveHandler::IsConnected( const TInt aDrive )
- {
- FUNC_LOG
-
- if ( !iRemoteStorageFwSupported )
- {
- return EFalse;
- }
- TBool ret( EFalse );
- TChar drv( 0 );
- if ( RFs::DriveToChar( aDrive, drv ) == KErrNone )
- {
- TRsfwMountInfo info;
- if ( iMountMan->GetMountInfo( drv, info ) == KErrNone )
- {
- ret = ( info.iMountStatus.iConnectionState ==
- KMountStronglyConnected );
- }
- }
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::SetConnection()
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerRemoteDriveHandler::SetConnection(
- TInt aDrive, TBool aConnect )
- {
- FUNC_LOG
-
- if ( !iRemoteStorageFwSupported )
- {
- return KErrNone;
- }
- TChar drv( 0 );
- TInt err( RFs::DriveToChar( aDrive, drv ) );
- if ( err != KErrNone )
- {
- return err;
- }
- err = iMountMan->SetMountConnectionStateBlind(
- drv,
- aConnect ? KMountStronglyConnected : KMountNotConnected );
- if ( err == KErrCancel )
- {
- err = KErrPathNotFound;
- }
- return err;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::DeleteSettings()
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerRemoteDriveHandler::DeleteSettings(
- const TInt aDrive )
- {
- FUNC_LOG
-
- if ( !iRemoteStorageFwSupported )
- {
- return KErrNone;
- }
- TChar drv( 0 );
- TInt err( RFs::DriveToChar( aDrive, drv ) );
- if ( err != KErrNone )
- {
- return err;
- }
- TRAP( err, iMountMan->DeleteMountEntryL( drv ) );
- return err;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::PropertyChangedL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemoteDriveHandler::PropertyChangedL(
- const TUid& /*aCategory*/, const TUint /*aKey*/ )
- {
- FUNC_LOG
-
- iEngine.DriveAddedOrChangedL();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::RefreshDirectory()
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerRemoteDriveHandler::RefreshDirectory(
- const TDesC& aFullPath )
- {
- FUNC_LOG
-
- if ( !iRemoteStorageFwSupported )
- {
- return KErrNone;
- }
- return iMountMan->RefreshDirectory( aFullPath );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::HasAppRemoteDriveSupport()
-// ---------------------------------------------------------------------------
-//
-TBool CFileManagerRemoteDriveHandler::HasAppRemoteDriveSupport(
- TUid aUid )
- {
- FUNC_LOG
-
- if ( !iRemoteStorageFwSupported )
- {
- return EFalse;
- }
- if ( aUid == KNullUid )
- {
- return ETrue;
- }
- return !iMountMan->IsAppOnBlackList( aUid );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemoteDriveHandler::CancelTransfer()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemoteDriveHandler::CancelTransfer(
- const TDesC& aFullPath )
- {
- FUNC_LOG
-
- if ( !iRemoteStorageFwSupported )
- {
- return;
- }
- INFO_LOG1(
- "CFileManagerRemoteDriveHandler::CancelTransfer=%S",
- &aFullPath )
- iMountMan->CancelRemoteTransfer( aFullPath );
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerRemovableDriveHandler.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1337 +0,0 @@
-/*
-* Copyright (c) 2006-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: Wraps removable drive functionality
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <filemanagerengine.rsg>
-#include "CFileManagerRemovableDriveHandler.h"
-#include "MFileManagerProcessObserver.h"
-#include "CFileManagerUtils.h"
-#include "CFileManagerEngine.h"
-#include <coreapplicationuisdomainpskeys.h>
-#include <coemain.h>
-#include <apgwgnam.h>
-#include <apgtask.h>
-#include <bautils.h>
-#include <tz.h>
-#include <babackup.h>
-#include <pathinfo.h>
-#include <sysutil.h>
-#ifdef RD_MULTIPLE_DRIVE
-#include <driveinfo.h>
-#endif // RD_MULTIPLE_DRIVE
-#include <e32property.h>
-#include <centralrepository.h>
-#include "CMMCScBkupEngine.h"
-#include "MMCScBkupOperations.h"
-#include "CMMCScBkupOperationParameters.h"
-#include "CFileManagerItemProperties.h"
-#include "CFileManagerBackupSettings.h"
-#include "FileManagerPrivateCRKeys.h"
-#include "BkupEngine.hrh"
-#include "FileManagerDebug.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "FileManagerUID.h"
-#include "filemanagerprivatepskeys.h"
-
-
-// CONSTANTS
-const TInt KEjectScanInterval = 1000000; // 1 second
-const TInt KEjectScanRoundsMax = 7;
-NONSHARABLE_CLASS(TMaskLookup)
- {
- public:
- TUint32 iBkupMask;
- TUint32 iFmgrMask;
- };
-
-const TMaskLookup KMaskLookup[] = {
- { EBUCatSettings, EFileManagerBackupContentSettings },
- { EBUCatMessages, EFileManagerBackupContentMessages },
- { EBUCatContacts, EFileManagerBackupContentContacts },
- { EBUCatCalendar, EFileManagerBackupContentCalendar },
- { EBUCatBookmarks, EFileManagerBackupContentBookmarks },
- { EBUCatUserFiles, EFileManagerBackupContentUserFiles }
-};
-const TUint32 KMaskLookupLen =
- sizeof( KMaskLookup ) / sizeof( KMaskLookup[ 0 ] );
-
-const TInt KForcedFormatTimeout = 1000000;
-const TInt KAppCloseTimeout = 1000000;
-const TInt KFileManagerAppUid = 0x101F84EB;
-
-NONSHARABLE_CLASS(TFileManagerVolumeNameStore)
- {
-public:
- inline TFileManagerVolumeNameStore() : iDrive( KErrNotFound ), iName( KNullDesC ) {};
-
- TInt iDrive; // The drive using the store
- TFileName iName; // Use the same length than TVolumeInfo
- };
-
-typedef TPckg< TFileManagerVolumeNameStore > TFileManagerVolumeNameStorePckg;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::CFileManagerRemovableDriveHandler
-// ---------------------------------------------------------------------------
-//
-CFileManagerRemovableDriveHandler::CFileManagerRemovableDriveHandler(
- RFs& aFs,
- CFileManagerUtils& aUtils,
- CFileManagerEngine& aEngine ) :
- CActive( CActive::EPriorityStandard ),
- iFs( aFs ),
- iUtils( aUtils ),
- iEngine( aEngine )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::ConstructL()
- {
- CActiveScheduler::Add( this );
- iBkupEngine = CMMCScBkupEngine::NewL( iFs );
- PublishBurStatus( EFileManagerBkupStatusUnset );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::NewL
-// ---------------------------------------------------------------------------
-//
-CFileManagerRemovableDriveHandler* CFileManagerRemovableDriveHandler::NewL(
- RFs& aFs,
- CFileManagerUtils& aUtils,
- CFileManagerEngine& aEngine )
- {
- CFileManagerRemovableDriveHandler* self =
- new( ELeave ) CFileManagerRemovableDriveHandler(
- aFs, aUtils, aEngine );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::~CFileManagerRemovableDriveHandler
-// ---------------------------------------------------------------------------
-//
-CFileManagerRemovableDriveHandler::~CFileManagerRemovableDriveHandler()
- {
- Cancel();
- delete iBSWrapper;
- delete iEjectScanPeriodic;
- delete iBkupEngine;
- iFormatter.Close();
- PublishBurStatus( EFileManagerBkupStatusUnset );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::EjectScanAndShutdownApps
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerRemovableDriveHandler::EjectScanAndShutdownApps( TAny* ptr )
- {
- CFileManagerRemovableDriveHandler* self =
- static_cast< CFileManagerRemovableDriveHandler* >( ptr );
- TRAPD( err, self->DoEjectScanAndShutdownL() );
- if ( err != KErrNone )
- {
- self->EjectComplete( err );
- }
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::DoEjectScanAndShutdownL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::DoEjectScanAndShutdownL()
- {
- RWsSession wsSession;
- User::LeaveIfError( wsSession.Connect() );
- CleanupClosePushL( wsSession );
-
- const TInt KDefaultWgIdArraySize = 4;
- CArrayFixFlat<TInt>* wgIds = new( ELeave ) CArrayFixFlat< TInt >(
- KDefaultWgIdArraySize );
- CleanupStack::PushL( wgIds );
- User::LeaveIfError( wsSession.WindowGroupList( 0, wgIds ) );
- TInt last( wgIds->Count() - 1 );
- TInt appsToShutDown( 0 );
-
- for ( TInt i( last ); i >= 0; i-- )
- {
- CApaWindowGroupName* doomedApp =
- CApaWindowGroupName::NewLC( wsSession, wgIds->At( i ) );
- TBool systemApp( doomedApp->IsSystem() );
- TBool hiddenApp( doomedApp->Hidden() );
-
- if ( !systemApp && !hiddenApp && doomedApp->AppUid().iUid != KFileManagerAppUid )
- {
- appsToShutDown++;
- TApaTask* task = new (ELeave) TApaTask( wsSession );
- CleanupDeletePushL( task );
- task->SetWgId( wgIds->At( i ) );
-
- if ( !iEjectScanRounds )
- {
- // applications are kindly requested to close themselves
- // on the first round
- task->EndTask();
- }
- else if ( iEjectScanRounds >= KEjectScanRoundsMax )
- {
- task->KillTask();
- }
- CleanupStack::PopAndDestroy( task );
- }
- CleanupStack::PopAndDestroy( doomedApp );
- }
- CleanupStack::PopAndDestroy( wgIds );
-
- if ( !appsToShutDown || iEjectScanRounds >= KEjectScanRoundsMax )
- {
- EjectComplete( KErrNone );
- }
- iEjectScanRounds++;
-
- CleanupStack::PopAndDestroy( &wsSession );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::EjectComplete
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::EjectComplete( TInt aErr )
- {
- delete iEjectScanPeriodic;
- iEjectScanPeriodic = NULL;
- iLastError = aErr;
-
- TRAP_IGNORE( InformFinishL() );
-
- RProperty::Set(
- KPSUidCoreApplicationUIs,
- KCoreAppUIsMmcRemovedWithoutEject,
- ECoreAppUIsEjectCommandNotUsed );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::InformStartL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::InformStartL( TInt aTotalCount )
- {
- iLastError = KErrNone;
- if ( iObserver )
- {
- iObserver->ProcessStartedL( iProcess, aTotalCount );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::InformUpdateL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::InformUpdateL( TInt aCount )
- {
- if ( iObserver )
- {
- iObserver->ProcessAdvanceL( aCount );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::InformFinishL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::InformFinishL()
- {
- iEngine.ClearDriveInfo();
- PublishBurStatus( EFileManagerBkupStatusUnset );
- iProcess = MFileManagerProcessObserver::ENoProcess;
- if ( iObserver )
- {
- iObserver->ProcessFinishedL( iLastError, KNullDesC );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::InformError
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::InformError( TInt aErr )
- {
- iLastError = aErr;
- if ( iObserver )
- {
- iObserver->Error( aErr );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::HandleBkupEngineEventL
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerRemovableDriveHandler::HandleBkupEngineEventL(
- MMMCScBkupEngineObserver::TEvent aEvent, TInt aAssociatedData )
- {
- TInt ret( KErrNone );
- switch( aEvent )
- {
- case MMMCScBkupEngineObserver::ECommonOperationStarting:
- {
- iFinalValue = KMaxTInt;
- InformStartL( KMaxTInt );
- break;
- }
- case MMMCScBkupEngineObserver::ECommonSizeOfTaskUnderstood:
- {
- iFinalValue = aAssociatedData;
- InformStartL( aAssociatedData );
- break;
- }
- case MMMCScBkupEngineObserver::ECommonOperationPrepareEnded:
- {
- PublishBurStatus( EFileManagerBkupStatusUnset );
- // In order to show finished dialog prior SysAp's note,
- // inform observer already at prepare-ended state.
- if( iProcess == MFileManagerProcessObserver::ERestoreProcess )
- {
- if ( iFinalValue )
- {
- InformUpdateL( iFinalValue );
- }
- InformFinishL();
- }
- break;
- }
- case MMMCScBkupEngineObserver::ECommonOperationEnded:
- {
- PublishBurStatus( EFileManagerBkupStatusUnset );
- if( iProcess != MFileManagerProcessObserver::ERestoreProcess )
- {
- if ( iFinalValue )
- {
- InformUpdateL( iFinalValue );
- }
- InformFinishL();
- }
- break;
- }
- case MMMCScBkupEngineObserver::ECommonOperationError:
- {
- iLastError = aAssociatedData;
- break;
- }
- case MMMCScBkupEngineObserver::ECommonProgress:
- {
- InformUpdateL( aAssociatedData );
- break;
- }
- case MMMCScBkupEngineObserver::EBackupAnalysingData:
- {
- if ( iObserver &&
- iProcess == MFileManagerProcessObserver::EBackupProcess )
- {
- ret = iObserver->NotifyL(
- MFileManagerProcessObserver::ENotifyBackupMemoryLow,
- aAssociatedData );
- }
- break;
- }
- default:
- {
- break;
- }
- }
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::SetObserver
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::SetObserver(
- MFileManagerProcessObserver* aObserver )
- {
- iObserver = aObserver;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::BackupFileNameLC
-// ---------------------------------------------------------------------------
-//
-HBufC* CFileManagerRemovableDriveHandler::BackupFileNameLC(
- TBool aFullPath ) const
- {
- HBufC* file = CCoeEnv::Static()->AllocReadResourceLC(
- R_TEXT_MMC_BACKUP_FILE );
- if ( !aFullPath )
- {
- return file; // Get just name
- }
- // Get full path
-#ifdef RD_MULTIPLE_DRIVE
- TInt drive( 0 );
- User::LeaveIfError( DriveInfo::GetDefaultDrive(
- DriveInfo::EDefaultRemovableMassStorage, drive ) );
- TDriveUnit driveUnit( drive );
-#else // RD_MULTIPLE_DRIVE
- TDriveUnit driveUnit( PathInfo::MemoryCardRootPath() );
-#endif // RD_MULTIPLE_DRIVE
- HBufC* fileAndPath = HBufC::NewLC( KMaxFileName );
- TPtr ptr( fileAndPath->Des() );
- TPtr filePtr( file->Des() );
- ptr.Copy( driveUnit.Name() );
- ptr.Append( filePtr );
- CleanupStack::Pop( fileAndPath );
- CleanupStack::PopAndDestroy( file );
- CleanupStack::PushL( fileAndPath );
- return fileAndPath;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::StartFormatL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::StartFormatL(
- const TInt aDrive )
- {
- TInt err( KErrNone );
-
- iDrive = aDrive;
- iProcess = MFileManagerProcessObserver::EFormatProcess;
- iFinalValue = 0;
-
- TRAP( err, InformStartL( 0 ) );
- if ( err == KErrNone )
- {
- // Close apps and then start format
- TRAP( err, CloseAppsL() );
- }
- if ( err != KErrNone )
- {
- EndFormatProcessL( err );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::StartEjectL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::StartEjectL()
- {
- TRAPD( err, StartEjectScanL() );
- if ( err != KErrNone )
- {
- iProcess = MFileManagerProcessObserver::ENoProcess;
- User::Leave( err );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::StartEjectScanL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::StartEjectScanL()
- {
- iProcess = MFileManagerProcessObserver::EEjectProcess;
- InformStartL( 0 );
-
- RProperty::Set(
- KPSUidCoreApplicationUIs,
- KCoreAppUIsMmcRemovedWithoutEject,
- ECoreAppUIsEjectCommandUsed );
-
- iEjectScanRounds = 0;
- iEjectScanPeriodic = CPeriodic::NewL( CActive::EPriorityLow );
- iEjectScanPeriodic->Start(
- KEjectScanInterval,
- KEjectScanInterval,
- TCallBack( EjectScanAndShutdownApps, this ) );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::CancelProcess()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::CancelProcess()
- {
- switch( iProcess )
- {
- case MFileManagerProcessObserver::EFormatProcess:
- {
- Cancel();
- break;
- }
- case MFileManagerProcessObserver::EBackupProcess: // FALLTHROUGH
- case MFileManagerProcessObserver::ERestoreProcess:
- case MFileManagerProcessObserver::ESchBackupProcess:
- {
- PublishBurStatus( EFileManagerBkupStatusUnset );
- iBkupEngine->CancelOperation();
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::BackupFileExistsL()
-// ---------------------------------------------------------------------------
-//
-TBool CFileManagerRemovableDriveHandler::BackupFileExistsL(
- const TInt /*aDrive*/ )
- {
- HBufC* backupFile = BackupFileNameLC( ETrue );
- TBool ret( iBkupEngine->ValidArchiveForRestore( *backupFile ) );
- CleanupStack::PopAndDestroy( backupFile );
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::StartBackupL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::StartBackupL(
- MFileManagerProcessObserver::TFileManagerProcess aProcess )
- {
- if ( aProcess != MFileManagerProcessObserver::EBackupProcess &&
- aProcess != MFileManagerProcessObserver::ESchBackupProcess )
- {
- User::Leave( KErrNotSupported );
- }
-
- CCoeEnv* coeEnv = CCoeEnv::Static();
-
- // Create backup params - ownership is transferred to
- // secure backup engine
- TResourceReader driveReader;
- coeEnv->CreateResourceReaderLC(
- driveReader,
- R_FILEMANAGER_BACKUP_RESTORE_DRIVES_AND_OPERATIONS );
- TResourceReader categoryReader;
- coeEnv->CreateResourceReaderLC(
- categoryReader,
- R_FILEMANAGER_BACKUP_CATEGORIES );
-
-#ifdef RD_FILE_MANAGER_BACKUP
-
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- TUint32 bkupContent( FmgrToBkupMask( settings.Content() ) );
- TInt drive( settings.TargetDrive() );
-
- CMMCScBkupOpParamsBackupFull* params =
- CMMCScBkupOpParamsBackupFull::NewL(
- driveReader,
- categoryReader,
- TDriveNumber( drive ),
- bkupContent );
-
-#else // RD_FILE_MANAGER_BACKUP
-
- HBufC* backupFile = BackupFileNameLC( ETrue );
- TInt drive = TDriveUnit( *backupFile );
- CleanupStack::PopAndDestroy( backupFile );
-
- CMMCScBkupOpParamsBackupFull* params =
- CMMCScBkupOpParamsBackupFull::NewL( driveReader,
- categoryReader,
- TDriveNumber( drive ),
- EBUCatAllInOne );
-
-#endif // RD_FILE_MANAGER_BACKUP
-
- CleanupStack::PopAndDestroy(); // categoryReader
- CleanupStack::PopAndDestroy(); // driveReader
-
- CleanupStack::PushL( params );
- TBool diskFull( SysUtil::DiskSpaceBelowCriticalLevelL( &iFs, 0, drive ) );
- CleanupStack::Pop( params );
-
- if ( diskFull )
- {
- iProcess = aProcess;
- TRAP_IGNORE( InformStartL( KMaxTInt ) );
- iLastError = KErrDiskFull;
- TRAP_IGNORE( InformFinishL() );
- iProcess = MFileManagerProcessObserver::ENoProcess;
- delete params;
- }
- else
- {
- // Start the process - engine owns the parameters immediately
- iProcess = aProcess;
-
- PublishBurStatus( EFileManagerBkupStatusBackup );
- TRAPD( err, iBkupEngine->StartOperationL(
- EMMCScBkupOperationTypeFullBackup, *this, params ) );
- if ( err != KErrNone )
- {
- PublishBurStatus( EFileManagerBkupStatusUnset );
- iProcess = MFileManagerProcessObserver::ENoProcess;
- User::Leave( err );
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::StartRestoreL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::StartRestoreL()
- {
- TBool diskFull( SysUtil::DiskSpaceBelowCriticalLevelL(
- &iFs, 0, KFmgrSystemDrive ) );
- if ( diskFull )
- {
- iProcess = MFileManagerProcessObserver::ERestoreProcess;
- TRAP_IGNORE( InformStartL( KMaxTInt ) );
- iLastError = KErrDiskFull;
- TRAP_IGNORE( InformFinishL() );
- iProcess = MFileManagerProcessObserver::ENoProcess;
- return;
- }
-
- CFileManagerBackupSettings& bkupSettings( iEngine.BackupSettingsL() );
-
- // Create restore params - ownership is transferred to
- // secure backup engine
- TResourceReader driveReader;
- CCoeEnv::Static()->CreateResourceReaderLC(
- driveReader,
- R_FILEMANAGER_BACKUP_RESTORE_DRIVES_AND_OPERATIONS );
-
-#ifdef RD_FILE_MANAGER_BACKUP
-
- CMMCScBkupOpParamsRestoreFull* params =
- CMMCScBkupOpParamsRestoreFull::NewL(
- driveReader,
- EBUCatAllSeparately );
- CleanupStack::PopAndDestroy(); // driveReader
- CleanupStack::PushL( params );
-
- // Get list of all archives
- RPointerArray< CMMCScBkupArchiveInfo > archives;
- TCleanupItem cleanupItem( ResetAndDestroyArchives, &archives );
- CleanupStack::PushL( cleanupItem );
- iBkupEngine->ListArchivesL(
- archives,
- params,
- bkupSettings.AllowedDriveAttMatchMask() );
-
- // Get user set restore selection
- RArray< CFileManagerRestoreSettings::TInfo > selection;
- CleanupClosePushL( selection );
- CFileManagerRestoreSettings& rstSettings( iEngine.RestoreSettingsL() );
- rstSettings.GetSelectionL( selection );
-
- // Remove non user selected archives
- TInt i( 0 );
- while ( i < archives.Count() )
- {
- TBool remove( ETrue );
-
- // Compare archives category and drive
- CMMCScBkupArchiveInfo* archiveInfo = archives[ i ];
- TUint32 fmgrContent(
- BkupToFmgrMask( archiveInfo->Category().iFlags ) );
- TInt drive( archiveInfo->Drive() );
-
- TInt count( selection.Count() );
- for( TInt j( 0 ); j < count; ++j )
- {
- const CFileManagerRestoreSettings::TInfo& info( selection[ j ] );
- if ( ( drive == info.iDrive ) && ( fmgrContent & info.iContent ) )
- {
- // Found user selected archive
- // Do not check this archive again
- selection.Remove( j );
- remove = EFalse;
- break;
- }
- }
- if ( remove )
- {
- // Remove non selected archive
- archives.Remove( i );
- delete archiveInfo;
- }
- else
- {
- // Move to next archive
- ++i;
- }
- }
-
- CleanupStack::PopAndDestroy( &selection );
- params->SetArchiveInfosL( archives );
- CleanupStack::Pop( &archives );
- archives.Close();
- CleanupStack::Pop( params );
-
-#else // RD_FILE_MANAGER_BACKUP
-
- CMMCScBkupOpParamsRestoreFull* params =
- CMMCScBkupOpParamsRestoreFull::NewL( driveReader, EBUCatAllInOne );
- CleanupStack::PopAndDestroy(); // driveReader
-
- // Get list of all archives
- RPointerArray< CMMCScBkupArchiveInfo > archives;
- TCleanupItem cleanupItem( ResetAndDestroyArchives, &archives );
- CleanupStack::PushL( cleanupItem );
- iBkupEngine->ListArchivesL(
- archives,
- params,
- bkupSettings.AllowedDriveAttMatchMask() );
- params->SetArchiveInfosL( archives );
- CleanupStack::Pop( &archives );
-
-#endif // RD_FILE_MANAGER_BACKUP
-
- // Start the process - engine owns the parameters immediately
- iProcess = MFileManagerProcessObserver::ERestoreProcess;
- PublishBurStatus( EFileManagerBkupStatusRestore );
- TRAPD( err, iBkupEngine->StartOperationL(
- EMMCScBkupOperationTypeFullRestore, *this, params ) );
- if ( err != KErrNone )
- {
- PublishBurStatus( EFileManagerBkupStatusUnset );
- iProcess = MFileManagerProcessObserver::ENoProcess;
- User::Leave( err );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::GetRestoreInfoArrayL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::GetRestoreInfoArrayL(
- RArray< CFileManagerRestoreSettings::TInfo >& aArray,
- const TInt aDrive )
- {
-
- CleanupClosePushL( aArray );
-
- CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
- aArray.Reset();
-
- TResourceReader driveReader;
- CCoeEnv::Static()->CreateResourceReaderLC(
- driveReader,
- R_FILEMANAGER_BACKUP_RESTORE_DRIVES_AND_OPERATIONS );
-
- CMMCScBkupOpParamsRestoreFull* params =
- CMMCScBkupOpParamsRestoreFull::NewL(
- driveReader, EBUCatAllSeparately );
- CleanupStack::PopAndDestroy(); // driveReader
- CleanupStack::PushL( params );
-
- // Get list of all archives
- RPointerArray< CMMCScBkupArchiveInfo > archives;
- TCleanupItem cleanupItem( ResetAndDestroyArchives, &archives );
- CleanupStack::PushL( cleanupItem );
- iBkupEngine->ListArchivesL(
- archives,
- params,
- settings.AllowedDriveAttMatchMask(),
- aDrive );
-
- // Prepare time zone conversion
- RTz tz;
- User::LeaveIfError( tz.Connect() );
- CleanupClosePushL( tz );
-
- // Fill restore info
- CFileManagerRestoreSettings::TInfo info;
- TInt count( archives.Count() );
- aArray.ReserveL( count );
-
- for( TInt i( 0 ); i < count; ++i )
- {
- // Content
- CMMCScBkupArchiveInfo& archiveInfo( *archives[ i ] );
- info.iContent = BkupToFmgrMask( archiveInfo.Category().iFlags );
-
- // Local time
- info.iTime = archiveInfo.DateTime();
- User::LeaveIfError( tz.ConvertToLocalTime( info.iTime ) );
-
- // Drive
- info.iDrive = archiveInfo.Drive();
-
- aArray.AppendL( info );
- }
-
- CleanupStack::PopAndDestroy( &tz );
- CleanupStack::PopAndDestroy( &archives );
- CleanupStack::PopAndDestroy( params );
- CleanupStack::Pop( &aArray ) ;
-
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::DoCancel
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::DoCancel()
- {
- switch( iProcess )
- {
- case MFileManagerProcessObserver::EFormatProcess:
- {
- TRAP_IGNORE( EndFormatProcessL( KErrCancel ) );
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::RunL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::RunL()
- {
- TInt err( iStatus.Int() );
- switch( iProcess )
- {
- case MFileManagerProcessObserver::EFormatProcess:
- {
- if( err != KErrNone )
- {
- if ( !iFinalValue && err == KErrInUse )
- {
- // Some app remained open, try still to start format
- StartFormatProcessL();
- }
- else
- {
- // Format failed
- EndFormatProcessL( err );
- }
- }
- else if( !iFinalValue )
- {
- // Apps have been closed. Start format.
- StartFormatProcessL();
- }
- else if( iFormatCountBuf() > 0 )
- {
- // Update observer and format next track
- InformUpdateL( iFinalValue - iFormatCountBuf() );
- iFormatter.Next( iFormatCountBuf, iStatus );
- SetActive( );
- }
- else
- {
- // Format complete
- EndFormatProcessL( KErrNone );
- }
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::RunError
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerRemovableDriveHandler::RunError( TInt aError )
- {
- switch( iProcess )
- {
- case MFileManagerProcessObserver::EFormatProcess:
- {
- TRAP_IGNORE( EndFormatProcessL( aError ) );
- break;
- }
- default:
- {
- break;
- }
- }
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::EndFormatProcessL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::EndFormatProcessL( TInt aErr )
- {
- iFormatter.Close();
- iLastError = aErr;
- if( aErr == KErrNone )
- {
- // Restore the volume name stored before format operation.
- TRAPD( err, RestoreVolumeNameL( iDrive ) );
- LOG_IF_ERROR1( err,
- "FileManagerRemovableDriveHandler::EndFormatProcessL-RestoreVolumeName %d",
- err );
- iUtils.CreateDefaultFolders( iDrive );
- }
- else if ( aErr != KErrCancel )
- {
- InformError( aErr );
- }
- TRAPD( err, RestartAppsL() );
- LOG_IF_ERROR1( err,
- "FileManagerRemovableDriveHandler::EndFormatProcessL-Restart apps %d",
- err );
- InformFinishL();
-
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::StartFormatProcessL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::StartFormatProcessL()
- {
- // Store the current volume name over format operation.
- TRAPD( err, StoreVolumeNameL( iDrive ) );
- LOG_IF_ERROR1(
- err,
- "FileManagerRemovableDriveHandler::StartFormatProcessL-StoreVolumeName %d",
- err );
- TDriveName driveName( TDriveUnit( iDrive ).Name() );
- // Resolve drive character and open formatter
- iFormatter.Close();
- err = iFormatter.Open(
- iFs, driveName, EFullFormat, iFinalValue );
- // Forced format for locked card
- if ( err == KErrLocked )
- {
- // Erase password and try again
- err = iFs.ErasePassword( iDrive );
- if (err == KErrNone)
- {
- err = iFormatter.Open(iFs, driveName, EFullFormat , iFinalValue );
- }
- }
- if (err == KErrInUse)
- {
- TBool reallyFormat = ETrue;
- if (reallyFormat)
- {
- err = iFormatter.Open(
- iFs, driveName, EFullFormat | EForceFormat, iFinalValue );
- }
- }
- TFullName fsName;
- if (err == KErrNone)
- {
- err = iFs.FileSystemName( fsName, iDrive );
-
- if ( err == KErrNone && fsName.Length() > 0 )
- {
- // Prevent SysAp shutting down applications
- RProperty::Set(
- KPSUidCoreApplicationUIs,
- KCoreAppUIsMmcRemovedWithoutEject,
- ECoreAppUIsEjectCommandUsed );
- }
- else
- {
- // Don't continue with format if there is no file system name
- // or file system name could not be obtained.
- err = KErrCancel;
- }
- }
-
- // On successful open of RFormat::Open(), iFinalValue contains the number of
- // tracks to be formatted
-
- if ( iFinalValue && err == KErrNone )
- {
- TRAP( err, InformStartL( iFinalValue ) );
- if ( err == KErrNone )
- {
- iFormatCountBuf = iFinalValue;
- iFormatter.Next( iFormatCountBuf, iStatus );
- SetActive();
- }
- }
- if ( !iFinalValue || err != KErrNone )
- {
- EndFormatProcessL( err );
- }
- }
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::CloseAppsL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::CloseAppsL()
- {
- delete iBSWrapper;
- iBSWrapper = NULL;
-
- iBSWrapper = CBaBackupSessionWrapper::NewL();
-
- TBackupOperationAttributes atts(
- MBackupObserver::EReleaseLockNoAccess,
- MBackupOperationObserver::EStart );
- iBSWrapper->NotifyBackupOperationL( atts );
- iBSWrapper->CloseAll( MBackupObserver::EReleaseLockNoAccess, iStatus );
- SetActive();
-
- // Memory card formatting cannot be executed if there are open files on it.
- // It has been detected, that in some cases memory card using applications
- // have no time to close file handles before formatting is tried to be executed.
- // To address this issue, we need to add a delay here after client-notification
- // about pending format and real formatting procedure.
- User::After( KAppCloseTimeout );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::RestartAppsL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::RestartAppsL()
- {
- if ( !iBSWrapper )
- {
- return;
- }
-
- TBackupOperationAttributes atts(
- MBackupObserver::ETakeLock, MBackupOperationObserver::EEnd );
- iBSWrapper->NotifyBackupOperationL( atts );
- iBSWrapper->RestartAll();
-
- // Get rid of the wrapper instance
- delete iBSWrapper;
- iBSWrapper = NULL;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::ResetAndDestroyArchives
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::ResetAndDestroyArchives( TAny* aPtr )
- {
- RPointerArray< CMMCScBkupArchiveInfo >* archive =
- static_cast< RPointerArray< CMMCScBkupArchiveInfo >* >( aPtr );
- archive->ResetAndDestroy();
- archive->Close();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::BkupToFmgrMask
-// ---------------------------------------------------------------------------
-//
-TUint32 CFileManagerRemovableDriveHandler::BkupToFmgrMask(
- const TUint32 aBkupMask )
- {
- TUint32 ret( 0 );
-
- for( TInt i( 0 ); i < KMaskLookupLen; ++i )
- {
- if ( aBkupMask & KMaskLookup[ i ].iBkupMask )
- {
- ret |= KMaskLookup[ i ].iFmgrMask;
- }
- }
- return ret;
- }
-
-#ifdef RD_FILE_MANAGER_BACKUP
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::FmgrToBkupMask
-// ---------------------------------------------------------------------------
-//
-TUint32 CFileManagerRemovableDriveHandler::FmgrToBkupMask(
- const TUint32 aFmrgMask )
- {
- TUint32 ret( 0 );
-
- for( TInt i( 0 ); i < KMaskLookupLen; ++i )
- {
- if ( ( aFmrgMask & EFileManagerBackupContentAll ) ||
- ( aFmrgMask & KMaskLookup[ i ].iFmgrMask ) )
- {
- ret |= KMaskLookup[ i ].iBkupMask;
- }
- }
- return ret;
- }
-#endif // RD_FILE_MANAGER_BACKUP
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::IsProcessOngoing
-// ---------------------------------------------------------------------------
-//
-TBool CFileManagerRemovableDriveHandler::IsProcessOngoing() const
- {
- return iProcess != MFileManagerProcessObserver::ENoProcess;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::PublishBurStatus()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::PublishBurStatus( TInt aType )
- {
- _LIT_SECURITY_POLICY_S0( KFileManagerBkupWritePolicy, KFileManagerUID3 );
- _LIT_SECURITY_POLICY_PASS( KFileManagerBkupReadPolicy );
-
- TInt err( RProperty::Set(
- KPSUidFileManagerStatus, KFileManagerBkupStatus, aType ) );
- if ( err != KErrNone )
- {
- err = RProperty::Define(
- KPSUidFileManagerStatus, KFileManagerBkupStatus,
- RProperty::EInt, KFileManagerBkupReadPolicy,
- KFileManagerBkupWritePolicy );
- if ( err == KErrNone || err == KErrAlreadyExists )
- {
- err = RProperty::Set(
- KPSUidFileManagerStatus, KFileManagerBkupStatus, aType );
- }
- }
- LOG_IF_ERROR1(
- err, "FileManagerRemovableDriveHandler::PublishBurStatus-err=%d", err )
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::IsMassStorageDrive()
-//
-// -----------------------------------------------------------------------------
-//
-#ifdef RD_MULTIPLE_DRIVE
-
-TBool CFileManagerRemovableDriveHandler::IsInternalMassStorage( TInt aDrive )
- {
- FUNC_LOG;
-
- TBool ret( EFalse );
- TUint driveStatus( 0 );
- DriveInfo::GetDriveStatus( iFs, aDrive, driveStatus );
- if ( ( driveStatus & DriveInfo::EDriveInternal ) &&
- ( driveStatus & DriveInfo::EDriveExternallyMountable ) )
- {
- ret = ETrue;
- }
- INFO_LOG2(
- "FileManagerRemovableDriveHandler::IsInternalMassStorage-drive=%d,ret=%d",
- aDrive, ret );
- return ret;
- }
-
-#else // RD_MULTIPLE_DRIVE
-
-TBool CFileManagerRemovableDriveHandler::IsInternalMassStorage( TInt /*aDrive*/ )
- {
- FUNC_LOG;
-
- TInt ret( EFalse );
- return ret;
- }
-
-#endif // RD_MULTIPLE_DRIVE
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::StoreVolumeNameL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::StoreVolumeNameL( TInt aDrive )
- {
- FUNC_LOG;
-
- if ( IsInternalMassStorage( aDrive ) )
- {
- TVolumeInfo volumeInfo;
- User::LeaveIfError( iFs.Volume( volumeInfo, aDrive ) );
- CRepository* cenRep = CRepository::NewLC( KCRUidFileManagerSettings );
- TFileManagerVolumeNameStore volumeStore;
- TFileManagerVolumeNameStorePckg volumeStorePckg( volumeStore );
- volumeStore.iDrive = aDrive;
- volumeStore.iName.Copy( volumeInfo.iName );
- User::LeaveIfError( cenRep->Set(
- KFileManagerStoredInternalMassStorageVolumeName, volumeStorePckg ) );
- CleanupStack::PopAndDestroy( cenRep );
- INFO_LOG2(
- "FileManagerRemovableDriveHandler::StoreVolumeNameL-drive=%d,name=%S",
- aDrive, &volumeStore.iName );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::RestoreVolumeNameL()
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::RestoreVolumeNameL( TInt aDrive )
- {
- FUNC_LOG;
-
- if ( IsInternalMassStorage( aDrive ) )
- {
- TFileName volumeName;
- CRepository* cenRep = CRepository::NewLC( KCRUidFileManagerSettings );
- TFileManagerVolumeNameStore volumeStore;
- TFileManagerVolumeNameStorePckg volumeStorePckg( volumeStore );
- TInt err( cenRep->Get(
- KFileManagerStoredInternalMassStorageVolumeName, volumeStorePckg ) );
- if ( err == KErrNone && volumeStore.iDrive == aDrive )
- {
- volumeName.Copy( volumeStore.iName );
- }
- if ( !volumeName.Length() )
- {
- User::LeaveIfError( cenRep->Get(
- KFileManagerDefaultInternalMassStorageVolumeName, volumeName ) );
- }
- if ( volumeName.Length() > 0 )
- {
- User::LeaveIfError( iFs.SetVolumeLabel( volumeName, aDrive ) );
- }
- CleanupStack::PopAndDestroy( cenRep );
- INFO_LOG2(
- "FileManagerRemovableDriveHandler::RestoreVolumeNameL-drive=%d,name=%S",
- aDrive, &volumeName );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::ListArchivesL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::ListArchivesL(
- RPointerArray< CMMCScBkupArchiveInfo >& aArchives,
- const CFileManagerBackupSettings& aBackupSettings )
- {
- aArchives.ResetAndDestroy();
- TResourceReader driveReader;
- CCoeEnv::Static()->CreateResourceReaderLC(
- driveReader,
- R_FILEMANAGER_BACKUP_RESTORE_DRIVES_AND_OPERATIONS );
- CMMCScBkupOpParamsRestoreFull* params =
- CMMCScBkupOpParamsRestoreFull::NewL(
- driveReader, EBUCatAllSeparately );
- CleanupStack::PopAndDestroy(); // driveReader
- CleanupStack::PushL( params );
- iBkupEngine->ListArchivesL(
- aArchives, params, aBackupSettings.AllowedDriveAttMatchMask() );
- CleanupStack::PopAndDestroy( params );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::LatestBackupTimeL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::LatestBackupTimeL(
- TTime& aBackupTime )
- {
- aBackupTime = 0;
- CFileManagerBackupSettings& bkupSettings( iEngine.BackupSettingsL() );
- RPointerArray< CMMCScBkupArchiveInfo > archives;
- TCleanupItem cleanupItem( ResetAndDestroyArchives, &archives );
- CleanupStack::PushL( cleanupItem );
- ListArchivesL( archives, bkupSettings );
-
- // Find the latest archive
- TBool found( EFalse );
- TInt count( archives.Count() );
- for( TInt i( 0 ); i < count; ++i )
- {
- TTime time( archives[ i ]->DateTime() );
- if ( time > aBackupTime )
- {
- aBackupTime = time;
- found = ETrue;
- }
- }
- CleanupStack::PopAndDestroy( &archives );
- if ( !found )
- {
- User::Leave( KErrNotFound );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerRemovableDriveHandler::DeleteBackupsL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerRemovableDriveHandler::DeleteBackupsL()
- {
- CFileManagerBackupSettings& bkupSettings( iEngine.BackupSettingsL() );
- RPointerArray< CMMCScBkupArchiveInfo > archives;
- TCleanupItem cleanupItem( ResetAndDestroyArchives, &archives );
- CleanupStack::PushL( cleanupItem );
- ListArchivesL( archives, bkupSettings );
-
- // Get the user set selection
- RArray< CFileManagerRestoreSettings::TInfo > selection;
- CleanupClosePushL( selection );
- CFileManagerRestoreSettings& rstSettings( iEngine.RestoreSettingsL() );
- rstSettings.GetSelectionL( selection );
-
- // Delete selected archives
- TInt archivesCount( archives.Count() );
- for ( TInt i( 0 ); i < archivesCount; ++i )
- {
- CMMCScBkupArchiveInfo* archiveInfo = archives[ i ];
- TUint32 fmgrContent(
- BkupToFmgrMask( archiveInfo->Category().iFlags ) );
- TInt drive( archiveInfo->Drive() );
- TInt selectionCount( selection.Count() );
- for( TInt j( 0 ); j < selectionCount; ++j )
- {
- const CFileManagerRestoreSettings::TInfo& info( selection[ j ] );
- if ( ( drive == info.iDrive ) && ( fmgrContent & info.iContent ) )
- {
- TPtrC fullPath( archiveInfo->FileName() );
- User::LeaveIfError(
- CFileManagerUtils::RemoveReadOnlyAttribute(
- iFs, fullPath ) );
- User::LeaveIfError( iFs.Delete( fullPath ) );
- selection.Remove( j ); // Do not check again
- break;
- }
- }
- }
- CleanupStack::PopAndDestroy( &selection );
- CleanupStack::PopAndDestroy( &archives );
- }
-
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerRestoreSettings.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
-* Copyright (c) 2006 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: Empty restore settings to maintain library BC.
-* Remove this file when cleaning up RnD flags
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CFileManagerRestoreSettings.h"
-#include "CFilemanagerBackupSettings.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::CFileManagerRestoreSettings
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreSettings::CFileManagerRestoreSettings(
- CFileManagerEngine& aEngine ) :
- iEngine( aEngine )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::~CFileManagerRestoreSettings
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreSettings::~CFileManagerRestoreSettings()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::NewL
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreSettings* CFileManagerRestoreSettings::NewL(
- CFileManagerEngine& aEngine )
- {
- CFileManagerRestoreSettings* self =
- new ( ELeave ) CFileManagerRestoreSettings(
- aEngine );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreSettings::ConstructL()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::SetSelection
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerRestoreSettings::SetSelection(
- const TUint64& /*aSelection*/ )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::RefreshL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerRestoreSettings::RefreshL()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::CEntry::MdcaCount
-// ----------------------------------------------------------------------------
-//
-TInt CFileManagerRestoreSettings::MdcaCount() const
- {
- return 0;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::CEntry::MdcaPoint
-// ----------------------------------------------------------------------------
-//
-TPtrC CFileManagerRestoreSettings::MdcaPoint( TInt /*aIndex*/ ) const
- {
- return TPtrC( KNullDesC );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::CEntry::~CEntry
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreSettings::CEntry::~CEntry()
- {
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerRestoreSettingsFull.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-/*
-* Copyright (c) 2006 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: Restore settings
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <filemanagerengine.rsg>
-#include <AknUtils.h>
-#include "FileManagerEngine.hrh"
-#include "CFileManagerEngine.h"
-#include "CFileManagerRestoreSettings.h"
-#include "CFileManagerBackupSettings.h"
-#include "TFileManagerDriveInfo.h"
-#include "FileManagerPrivateCRKeys.h"
-#include "FileManagerDebug.h"
-
-
-// CONSTANTS
-_LIT( KDateFormat1, "%1" );
-_LIT( KDateFormat2, "%2" );
-_LIT( KDateFormat3, "%3" );
-_LIT( KTimeFormatBefore, " %-B %J:%T" );
-_LIT( KTimeFormatAfter, " %J:%T %+B" );
-_LIT( KEmptyChar, " " );
-const TUint KSecondSeparator = 1;
-const TUint KThirdSeparator = 2;
-const TInt KTimeStrMax = 20;
-_LIT( KSeparator, "\t" );
-const TInt KSeparatorSpace = 9;
-_LIT( KIconFormat, "%d" );
-const TInt KIconIdStrMax = 3;
-_LIT( KTimeSeparatorPlaceHolder, ":" );
-const TInt KHourMinSeparator = 1;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::CFileManagerRestoreSettings
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreSettings::CFileManagerRestoreSettings(
- CFileManagerEngine& aEngine ) :
- iEngine( aEngine )
- {
- FUNC_LOG
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::~CFileManagerRestoreSettings
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreSettings::~CFileManagerRestoreSettings()
- {
- FUNC_LOG
-
- iList.ResetAndDestroy();
- iList.Close();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::NewL
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreSettings* CFileManagerRestoreSettings::NewL(
- CFileManagerEngine& aEngine )
- {
- CFileManagerRestoreSettings* self =
- new ( ELeave ) CFileManagerRestoreSettings(
- aEngine );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreSettings::ConstructL()
- {
- FUNC_LOG
-
- RefreshL();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::SetSelection
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerRestoreSettings::SetSelection(
- const TUint64& aSelection )
- {
- iSelection = aSelection;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::RefreshL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerRestoreSettings::RefreshL()
- {
- FUNC_LOG
-
- iList.ResetAndDestroy();
-
- RArray< TInfo > infoArray;
- CleanupClosePushL( infoArray );
- iEngine.GetRestoreInfoArrayL( infoArray );
-
- TInt count( infoArray.Count() );
- TUint32 mask( EFileManagerBackupContentFirst);
- while ( mask <= EFileManagerBackupContentLast )
- {
- for ( TInt i( 0 ); i < count; ++i )
- {
- TInfo& info( infoArray[ i ] );
- if ( info.iContent & mask )
- {
- CEntry* entry = CreateEntryLC( info );
- iList.AppendL( entry );
- CleanupStack::Pop( entry );
- }
- }
- mask <<= 1;
- }
- CleanupStack::PopAndDestroy( &infoArray );
-
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::CEntry::MdcaCount
-// ----------------------------------------------------------------------------
-//
-TInt CFileManagerRestoreSettings::MdcaCount() const
- {
- return iList.Count();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::CEntry::MdcaPoint
-// ----------------------------------------------------------------------------
-//
-TPtrC CFileManagerRestoreSettings::MdcaPoint( TInt aIndex ) const
- {
- return TPtrC( *( iList[ aIndex ]->iText ) );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::CEntry::CreateEntryLC
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreSettings::CEntry*
- CFileManagerRestoreSettings::CreateEntryLC(
- const TInfo& aInfo )
- {
- TBuf< KIconIdStrMax > iconStr;
- CEntry* entry = new ( ELeave ) CEntry;
- CleanupStack::PushL( entry );
-
- TInt titleId( CFileManagerBackupSettings::ContentToTextId( aInfo.iContent ) );
- HBufC* title = StringLoader::LoadLC( titleId );
- HBufC* timeAndDate = DateTimeStringLC( aInfo.iTime );
- entry->iText = HBufC::NewL(
- title->Length() + timeAndDate->Length() + KSeparatorSpace );
-
- // "0\tFirstLabel\tSecondLabel\t0"
- TPtr ptr( entry->iText->Des() );
- iconStr.Copy( KIconFormat );
- iconStr.Format( KIconFormat, EIconCheckBoxOff );
- ptr.Append( iconStr );
- ptr.Append( KSeparator );
- ptr.Append( *title );
- ptr.Append( KSeparator );
- ptr.Append( *timeAndDate );
- ptr.Append( KSeparator );
-
- TUint32 drvState( 0 );
- if ( iEngine.DriveState( drvState, aInfo.iDrive ) == KErrNone )
- {
- TInt icon( KErrNotFound );
- if ( drvState & TFileManagerDriveInfo::EDriveUsbMemory )
- {
- icon = EIconUsbMemory;
- }
- else if ( drvState & TFileManagerDriveInfo::EDriveRemovable )
- {
- icon = EIconMemoryCard;
- }
- if ( icon >= 0 )
- {
- iconStr.Copy( KIconFormat );
- iconStr.Format( KIconFormat, icon );
- ptr.Append( iconStr );
- }
- }
- entry->iInfo = aInfo;
-
- CleanupStack::PopAndDestroy( timeAndDate );
- CleanupStack::PopAndDestroy( title );
- return entry;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::CEntry::~CEntry
-// ----------------------------------------------------------------------------
-//
-CFileManagerRestoreSettings::CEntry::~CEntry()
- {
- delete iText;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::GetSelectionL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerRestoreSettings::GetSelectionL(
- RArray< TInfo >& aInfoArray ) const
- {
- CleanupClosePushL( aInfoArray );
- aInfoArray.Reset();
-
- TInt count( iList.Count() );
-
- for ( TInt i( 0 ); i < count; ++i )
- {
- if ( ( ( ( TUint64 ) 1 ) << i ) & iSelection )
- {
- aInfoArray.AppendL( iList[ i ]->iInfo );
- }
- }
- CleanupStack::Pop( &aInfoArray );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerRestoreSettings::DateTimeStringLC
-// ----------------------------------------------------------------------------
-//
-HBufC* CFileManagerRestoreSettings::DateTimeStringLC( const TTime& aTime )
- {
- TBuf< KTimeStrMax > dateStr;
- TBuf< KTimeStrMax > dateStrFormat;
-
- // Localized date separator form
- TLocale local;
- dateStrFormat.Append( KDateFormat1 );
- dateStrFormat.Append( local.DateSeparator( KSecondSeparator ) );
- dateStrFormat.Append( KDateFormat2 );
- dateStrFormat.Append( local.DateSeparator( KThirdSeparator ) );
- dateStrFormat.Append( KDateFormat3 );
- aTime.FormatL( dateStr, dateStrFormat );
-
- TBuf< KTimeStrMax > timeFormatStr;
- if ( local.AmPmSymbolPosition() == ELocaleBefore )
- {
- timeFormatStr.Copy( KTimeFormatBefore );
- }
- else
- {
- timeFormatStr.Copy( KTimeFormatAfter );
- }
-
- TChar timeSeparator( local.TimeSeparator( KHourMinSeparator ) );
- AknTextUtils::ReplaceCharacters(
- timeFormatStr, KTimeSeparatorPlaceHolder, timeSeparator );
- TBuf< KTimeStrMax > timeStr;
- aTime.FormatL( timeStr, timeFormatStr );
-
- HBufC* buf = HBufC::NewLC( dateStr.Length() +
- KEmptyChar().Length() +
- timeStr.Length() );
- TPtr ptrBuffer( buf->Des() );
- ptrBuffer.Append( timeStr );
- ptrBuffer.Append( KEmptyChar );
- ptrBuffer.Append( dateStr );
-
- return buf;
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerThreadWrapper.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,408 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Background thread functionality wrapper
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CFileManagerThreadWrapper.h"
-#include "FileManagerDebug.h"
-
-
-// ============================= MEMBER FUNCTIONS =============================
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::CFileManagerThreadWrapper()
-//
-// ----------------------------------------------------------------------------
-CFileManagerThreadWrapper::CFileManagerThreadWrapper() :
- CActive( CActive::EPriorityStandard )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::~CFileManagerThreadWrapper()
-//
-// ----------------------------------------------------------------------------
-CFileManagerThreadWrapper::~CFileManagerThreadWrapper()
- {
- Cancel();
- delete iNotifyObserver;
- iSemaphore.Close();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::NewL()
-//
-// ----------------------------------------------------------------------------
-CFileManagerThreadWrapper* CFileManagerThreadWrapper::NewL()
- {
- CFileManagerThreadWrapper* self =
- new (ELeave) CFileManagerThreadWrapper();
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::ConstructL()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerThreadWrapper::ConstructL()
- {
- CActiveScheduler::Add( this );
- User::LeaveIfError( iSemaphore.CreateLocal( 0 ) );
- iNotifyObserver = CNotifyObserver::NewL( *this );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::RunL()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerThreadWrapper::RunL()
- {
- iNotifyObserver->Cancel();
-
- TInt err( iStatus.Int() );
- LOG_IF_ERROR1( err, "CFileManagerThreadWrapper::RunL()-err=%d", err )
-
- if ( iNotify & MFileManagerThreadFunction::ENotifyFinished )
- {
- TRAP_IGNORE( iFunction->NotifyThreadClientL(
- MFileManagerThreadFunction::ENotifyFinished, err ) );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::DoNotifyL()
-//
-// ----------------------------------------------------------------------------
-
-void CFileManagerThreadWrapper::DoNotifyL( TInt aErr )
- {
- LOG_IF_ERROR1( aErr, "CFileManagerThreadWrapper::DoNotifyL()-aErr=%d", aErr )
-
- iResumePending = ETrue;
-
- if ( aErr != KErrNone &&
- ( iNotify & MFileManagerThreadFunction::ENotifyError ) )
- {
- iFunction->NotifyThreadClientL(
- MFileManagerThreadFunction::ENotifyError, aErr );
- }
- else if ( iNotify & MFileManagerThreadFunction::ENotifyStepFinished )
- {
- iFunction->NotifyThreadClientL(
- MFileManagerThreadFunction::ENotifyStepFinished, aErr );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::RunError()
-//
-// ----------------------------------------------------------------------------
-TInt CFileManagerThreadWrapper::RunError( TInt aErr )
- {
- if ( aErr != KErrNone )
- {
- ERROR_LOG1( "CFileManagerThreadWrapper::RunError()-err=%d", aErr )
- iCancel = ETrue;
- ResumeThread();
- }
- return aErr;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::DoCancel()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerThreadWrapper::DoCancel()
- {
- FUNC_LOG
-
- CancelThread();
- iSemaphore.Signal(); // To avoid deadlock
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::StartThread()
-//
-// ----------------------------------------------------------------------------
-TInt CFileManagerThreadWrapper::StartThread(
- MFileManagerThreadFunction& aFunction,
- TUint aNotify,
- TThreadPriority aPriority )
- {
- FUNC_LOG
-
- TInt err( KErrAlreadyExists );
-
- if ( !IsActive() )
- {
- RThread thread;
- err = thread.Create(
- KNullDesC, ThreadFunction, KDefaultStackSize, NULL, this );
- if ( err == KErrNone )
- {
- thread.SetPriority( aPriority );
- thread.Logon( iStatus );
-
- iClientId = RThread().Id();
- iFunction = &aFunction;
- iNotify = aNotify;
- iCancel = EFalse;
-
- iNotifyObserver->Activate();
- SetActive();
-
- thread.Resume();
- thread.Close();
- }
- }
-
- LOG_IF_ERROR1( err, "CFileManagerThreadWrapper::StartThread()-err=%d",
- err )
-
- return err;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::ThreadFunction()
-//
-// ----------------------------------------------------------------------------
-TInt CFileManagerThreadWrapper::ThreadFunction( TAny* ptr )
- {
- FUNC_LOG
-
- CFileManagerThreadWrapper* self =
- static_cast< CFileManagerThreadWrapper* >( ptr );
-
- CTrapCleanup* cleanupStack = CTrapCleanup::New();
- if ( !cleanupStack )
- {
- return KErrNoMemory;
- }
-
- TRAPD( err, self->ThreadFunctionL() );
-
- self->iFunction->ReleaseThread();
-
- delete cleanupStack;
-
- return err;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::ThreadFunctionL()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerThreadWrapper::ThreadFunctionL()
- {
- FUNC_LOG
-
- iFunction->InitThreadL();
-
- while ( !iCancel )
- {
- TRAPD( err, iFunction->ThreadStepL() );
-
- if ( !iCancel )
- {
- if ( err != KErrNone &&
- ( iNotify & MFileManagerThreadFunction::ENotifyError ) )
- {
- User::LeaveIfError( NotifyClientAndWaitConfirm( err ) );
- }
- else if ( iNotify &
- MFileManagerThreadFunction::ENotifyStepFinished )
- {
- User::LeaveIfError( NotifyClientAndWaitConfirm( err ) );
- }
- else
- {
- User::LeaveIfError( err );
- }
- }
- if ( iFunction->IsThreadDone() )
- {
- break;
- }
- }
-
- if ( iCancel )
- {
- User::LeaveIfError( KErrCancel );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::CancelThread()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerThreadWrapper::CancelThread()
- {
- FUNC_LOG
-
- iCancel = ETrue;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::IsThreadCanceled()
-//
-// ----------------------------------------------------------------------------
-TBool CFileManagerThreadWrapper::IsThreadCanceled() const
- {
- return iCancel;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::NotifyClientAndWaitConfirm()
-//
-// ----------------------------------------------------------------------------
-TInt CFileManagerThreadWrapper::NotifyClientAndWaitConfirm( TInt aErr )
- {
- FUNC_LOG
-
- RThread client;
- TInt err( client.Open( iClientId ) );
-
- if ( err == KErrNone )
- {
- iNotifyObserver->Complete( client, aErr );
- client.Close();
- iSemaphore.Wait(); // Wait resume from client
- }
- return err;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::ResumeThread()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerThreadWrapper::ResumeThread()
- {
- FUNC_LOG
-
- if ( !iNotifyObserver->IsActive() && iResumePending )
- {
- iResumePending = EFalse;
- iNotifyObserver->Activate();
- iSemaphore.Signal(); // Resume thread stepping
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::IsThreadStarted()
-//
-// ----------------------------------------------------------------------------
-TBool CFileManagerThreadWrapper::IsThreadStarted() const
- {
- return IsActive();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::CNotifyObserver::CNotifyObserver()
-//
-// ----------------------------------------------------------------------------
-CFileManagerThreadWrapper::CNotifyObserver::CNotifyObserver(
- CFileManagerThreadWrapper& aWrapper ) :
- CActive( CActive::EPriorityStandard ),
- iWrapper( aWrapper )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::CNotifyObserver::NewL()
-//
-// ----------------------------------------------------------------------------
-CFileManagerThreadWrapper::CNotifyObserver*
- CFileManagerThreadWrapper::CNotifyObserver::NewL(
- CFileManagerThreadWrapper& aWrapper )
- {
- CNotifyObserver* self = new (ELeave) CNotifyObserver( aWrapper );
- CActiveScheduler::Add( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::CNotifyObserver::~CNotifyObserver()
-//
-// ----------------------------------------------------------------------------
-CFileManagerThreadWrapper::CNotifyObserver::~CNotifyObserver()
- {
- Cancel();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::CNotifyObserver::RunL()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerThreadWrapper::CNotifyObserver::RunL()
- {
- iWrapper.DoNotifyL( iStatus.Int() );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::CNotifyObserver::RunError()
-//
-// ----------------------------------------------------------------------------
-TInt CFileManagerThreadWrapper::CNotifyObserver::RunError( TInt aErr )
- {
- return iWrapper.RunError( aErr );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::CNotifyObserver::DoCancel()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerThreadWrapper::CNotifyObserver::DoCancel()
- {
- // Just complete status immediately since
- // background thread does not complete status anymore
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrCancel );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::CNotifyObserver::Activate()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerThreadWrapper::CNotifyObserver::Activate()
- {
- if ( !IsActive() )
- {
- iStatus = KRequestPending;
- SetActive();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerThreadWrapper::CNotifyObserver::Complete()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerThreadWrapper::CNotifyObserver::Complete(
- RThread& aThread, TInt aResult )
- {
- if ( IsActive() )
- {
- TRequestStatus* status = &iStatus;
- aThread.RequestComplete( status, aResult );
- }
- }
-
-// End of File
--- a/filemanager/Engine/src/CFileManagerUtils.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1127 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Util methods for File Manager
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <AknUtils.h>
-#include <StringLoader.h>
-#include <CDirectoryLocalizer.h>
-#include <CommonContentPolicy.h>
-#include <bautils.h>
-#include <caf/caf.h>
-#include <DcfCommon.h>
-#include <filemanagerengine.rsg>
-#ifdef RD_MULTIPLE_DRIVE
-#include <driveinfo.h>
-#endif // RD_MULTIPLE_DRIVE
-#if defined( __KEEP_DRM_CONTENT_ON_PHONE ) && defined ( FILE_MANAGER_USE_DISTRIBUTABLECHECKER )
- #include <distributablechecker.h>
-#endif // __KEEP_DRM_CONTENT_ON_PHONE && FILE_MANAGER_USE_DISTRIBUTABLECHECKER
-#include "GflmUtils.h"
-#include <drmutility.h>
-#include "CFileManagerUtils.h"
-#include "CFilemanagerMimeIconArray.h"
-#include "Cfilemanagerfolderarray.h"
-#include "CGflmNavigatorModel.h"
-#include "CFileManagerItemProperties.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "CGflmGroupItem.h"
-#include "CGflmFileSystemItem.h"
-#include "CGflmDriveItem.h"
-#include "CFileManagerFeatureManager.h"
-
-// CONSTANTS
-_LIT( KFlk, "flk:" );
-_LIT( KLdf, "ldf:" );
-
-#ifdef RD_MULTIPLE_DRIVE
-const TInt KDriveNameArrayLen = 2;
-const TInt KDriveLetterIndex = 0;
-const TInt KDriveNameIndex = 1;
-enum TFmgrDriveNameType
- {
- EFmgrDeviceMemory = 0,
- EFmgrMassStorage,
- EFmgrNamedMemoryCard,
- EFmgrDefaultMemoryCard,
- EFmgrDefaultUsbMemory,
- EFmgrDriveNameTypeCount // Must be the last
- };
-
-typedef TInt TFmgrDriveNameLayoutText[ EFmgrDriveNameTypeCount ];
-const TFmgrDriveNameLayoutText KFmgrDriveNames[] =
-{
- { // CFileManagerUtils::EMainLayout
- R_QTN_FMGR_MAIN_DEVICE_MEMORY, // EFmgrDeviceMemory
- R_QTN_FMGR_MAIN_MASS_STORAGE, // EFmgrMassStorage
- R_QTN_FMGR_MAIN_NAMED_MEMORY_CARD, // EFmgrNamedMemoryCard
- R_QTN_FMGR_MAIN_MEMORY_CARD_DEFAULT, // EFmgrDefaultMemoryCard
- R_QTN_FMGR_MAIN_USB_DEFAULT // EFmgrDefaultUsbMemory
- },
- { // CFileManagerUtils::ETitleLayout
- R_QTN_FMGR_TITLE_DEVICE_MEMORY, // EFmgrDeviceMemory
- R_QTN_FMGR_TITLE_MASS_STORAGE, // EFmgrMassStorage
- R_QTN_FMGR_TITLE_NAMED_MEMORY_CARD, // EFmgrNamedMemoryCard
- R_QTN_FMGR_TITLE_MEMORY_CARD_DEFAULT, // EFmgrDefaultMemoryCard
- R_QTN_FMGR_TITLE_USB_DEFAULT, // EFmgrDefaultUsbMemory
- }
-};
-#endif // RD_MULTIPLE_DRIVE
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::CFileManagerUtils
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerUtils::CFileManagerUtils(
- RFs& aFs,
- CGflmNavigatorModel& aNavigator,
- CFileManagerFeatureManager& aFeatureManager ) :
- iFs( aFs ),
- iNavigator( aNavigator ),
- iFeatureManager( aFeatureManager )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CFileManagerUtils::ConstructL()
- {
- // Check and set value to indicate if the feature is supported
- iDrmFullSupported = iFeatureManager.IsDrmFullSupported();
-
- iMimeIconMapper = CFileManagerMimeIconArray::NewL(
- R_FILEMANAGER_MIME_ICON_MAPPER, iNavigator );
-
-#ifdef RD_MULTIPLE_DRIVE
- iDefaultFolders = CFileManagerFolderArray::NewL( *this );
-#else // RD_MULTIPLE_DRIVE
- iDefaultFolders = CFileManagerFolderArray::NewL(
- R_FILEMANAGER_DEFAULT_FOLDERS, *this );
- iDefaultFolders->CreateFolders();
-#endif // RD_MULTIPLE_DRIVE
-
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerUtils* CFileManagerUtils::NewL(
- RFs& aFs,
- CGflmNavigatorModel& aNavigator,
- CFileManagerFeatureManager& aFeatureManager )
- {
- CFileManagerUtils* self =
- new( ELeave ) CFileManagerUtils( aFs, aNavigator, aFeatureManager );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::~CFileManagerUtils
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerUtils::~CFileManagerUtils()
- {
-#if defined( __KEEP_DRM_CONTENT_ON_PHONE ) && defined ( FILE_MANAGER_USE_DISTRIBUTABLECHECKER )
- delete iDistributableChecker;
-#endif // __KEEP_DRM_CONTENT_ON_PHONE && FILE_MANAGER_USE_DISTRIBUTABLECHECKER
- delete iMimeIconMapper;
- delete iDefaultFolders;
- delete iCommonContentPolicy;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::Fs() const
-//
-// -----------------------------------------------------------------------------
-//
-RFs& CFileManagerUtils::Fs() const
- {
- return iFs;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsForwardLockedFile
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::IsForwardLockedFile( const TDesC& aFullPath )
- {
- if ( iDrmFullSupported )
- {
- return EFalse; // Full DRM is used
- }
- TBool ret( EFalse );
-
- if ( !iCommonContentPolicy )
- {
- TRAPD( err, iCommonContentPolicy = CCommonContentPolicy::NewL() );
- if ( err != KErrNone )
- {
- _LIT( KReason, "No Common Content Policy" );
- User::Panic( KReason, err );
- }
- }
-
- if( iCommonContentPolicy )
- {
- TRAPD( err, ret = iCommonContentPolicy->IsClosedFileL( aFullPath ) );
- if ( err != KErrNone )
- {
- ret = EFalse;
- }
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsDrmProtectedFile
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::IsDrmProtectedFileL( const TDesC& aFullPath ) const
- {
- if ( !iDrmFullSupported )
- {
- return EFalse; // Partial DRM is used
- }
-#if 0
- // Check from file extension, this is the fastest possible check
- _LIT( KOdfExt, ".odf" );
- _LIT( KDcfExt, ".dcf" );
- TParsePtrC parse( aFullPath );
- TPtrC ext( parse.Ext() );
- return ( !ext.CompareF( KOdfExt ) || !ext.CompareF( KDcfExt ) );
-#else
- // Do similar quick check than in old DRMCommon
-
- RFile64 drmFile;
-
- TInt err = drmFile.Open(
- iFs, aFullPath, EFileRead | EFileShareReadersOrWriters );
- if( err != KErrNone )
- {
- // Just assume it is not protected when we fail to open it.
- drmFile.Close();
- return EFalse;
- }
- CleanupClosePushL( drmFile );
- DRM::CDrmUtility *drmCheck = DRM::CDrmUtility::NewLC();
-
- TBool isProtected( EFalse );
- TRAP_IGNORE( isProtected = drmCheck->IsProtectedL( drmFile ) );
-
- CleanupStack::PopAndDestroy( drmCheck );
- CleanupStack::PopAndDestroy( &drmFile );
-
- return isProtected;
-#endif
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::ResolveIconL
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerUtils::ResolveIconL( const TDesC& aFullPath ) const
- {
- TInt iconId( EFileManagerOtherFileIcon );
- if ( HasFinalBackslash( aFullPath ) )
- {
- // Do not check for subfolders for remote drives
- iconId = EFileManagerFolderIcon;
- if ( !IsRemoteDrive( aFullPath ) )
- {
- if ( HasSubFolders( aFullPath ) )
- {
- iconId = EFileManagerFolderSubIcon;
- }
- else if ( !HasFiles( aFullPath ) )
- {
- iconId = EFileManagerFolderEmptyIcon;
- }
- }
- }
- else
- {
- iconId = iMimeIconMapper->ResolveIconL( aFullPath );
- }
- return iconId;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::DefaultFolder
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::DefaultFolder( const TDesC& aFullPath ) const
- {
- return iDefaultFolders->Contains( aFullPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsDrmLocalDataFile
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::IsDrmLocalDataFile( const TDesC& aFullPath ) const
- {
- if ( !iDrmFullSupported )
- {
- return EFalse; // Partial DRM is used
- }
-
- TBool isFlk( EFalse );
- TBool isLdf( EFalse );
- TRAP_IGNORE( IsFlkOrLdfFileL( aFullPath, isFlk, isLdf ) );
- return isLdf;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::CanDelete
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::CanDelete( const TDesC& aFileName ) const
- {
- TEntry entry;
- TBool ret( EFalse );
- TBool fileOpen( EFalse );
- if ( KErrNone == iFs.Entry( aFileName, entry ) &&
- KErrNone == iFs.IsFileOpen( aFileName, fileOpen ) )
- {
- if ( !entry.IsReadOnly() && !entry.IsSystem() && !fileOpen )
- {
- ret = ETrue;
- }
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::FileTypeL
-//
-// -----------------------------------------------------------------------------
-//
-TUint32 CFileManagerUtils::FileTypeL( const TDesC& aFullPath )
- {
- TUint32 fileType( CFileManagerItemProperties::ENotDefined );
-
- _LIT( KRootFolder, "?:\\" );
- if ( !aFullPath.MatchF( KRootFolder ) )
- {
- // RFs::Entry cannot be used for root folders
- fileType |= CFileManagerItemProperties::EFolder;
- }
- else if ( !IsRemoteDrive( aFullPath ) )
- {
- // Full check for local and removable drives
- TEntry entry;
- User::LeaveIfError( iFs.Entry( aFullPath, entry ) );
-
- if ( HasFinalBackslash( aFullPath ) || entry.IsDir() )
- {
- fileType |= CFileManagerItemProperties::EFolder;
-
- if ( DefaultFolder( aFullPath ) )
- {
- fileType |= CFileManagerItemProperties::EDefault;
- }
- }
- else
- {
- fileType |= CFileManagerItemProperties::EFile;
-
- if ( IsDrmProtectedFileL( aFullPath) )
- {
- fileType |= CFileManagerItemProperties::EDrmProtected;
- if ( IsDrmLocalDataFile( aFullPath ) )
- {
- fileType |= CFileManagerItemProperties::EDrmLocalDataFile;
- }
- }
- if ( IsForwardLockedFile( aFullPath ) )
- {
- fileType |= CFileManagerItemProperties::EForwardLocked;
- }
- // MimeIcon mapper knowledge is used to determine file type
- TInt id( iMimeIconMapper->ResolveIconL( aFullPath ) );
- if ( id == EFileManagerLinkFileIcon )
- {
- fileType |= CFileManagerItemProperties::ELink;
- }
- if ( id == EFileManagerPlaylistFileIcon )
- {
- fileType |= CFileManagerItemProperties::EPlaylist;
- }
-
- TBool fileOpen( EFalse );
- if ( iFs.IsFileOpen( aFullPath, fileOpen ) == KErrNone )
- {
- if ( fileOpen )
- {
- fileType |= CFileManagerItemProperties::EOpen;
- }
- }
- if ( fileOpen || entry.IsReadOnly() || entry.IsSystem() )
- {
- fileType |= CFileManagerItemProperties::EReadOnly;
- }
- }
- }
- else
- {
- // Simple check for remote drives
- if ( HasFinalBackslash( aFullPath ) )
- {
- fileType |= CFileManagerItemProperties::EFolder;
- }
- else
- {
- fileType |= CFileManagerItemProperties::EFile;
- }
- }
-
- return fileType;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::ResolveIconL
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerUtils::ResolveIconL( CGflmGroupItem& aItem ) const
- {
- TInt iconId( EFileManagerOtherFileIcon );
- if ( aItem.GetIconId( iconId ) == KErrNone )
- {
- // Use already mapped icon
- return iconId;
- }
-
- // Map icon
- switch ( aItem.Type() )
- {
- case CGflmGroupItem::EFile:
- {
- CGflmFileSystemItem& fsItem =
- static_cast< CGflmFileSystemItem& >( aItem );
- HBufC* fullPath = fsItem.FullPathLC();
- iconId = iMimeIconMapper->ResolveIconL( *fullPath );
- fsItem.SetIconId( iconId );
- CleanupStack::PopAndDestroy( fullPath );
- break;
- }
- case CGflmGroupItem::EDirectory:
- {
- CGflmFileSystemItem& fsItem =
- static_cast< CGflmFileSystemItem& >( aItem );
- HBufC* fullPath = fsItem.FullPathLC();
-
- // Do not check for subfolders for remote drives
- iconId = EFileManagerFolderIcon;
- if ( !IsRemoteDrive( *fullPath ) )
- {
- if ( HasSubFolders( *fullPath ) )
- {
- iconId = EFileManagerFolderSubIcon;
- }
- else if ( !HasFiles( *fullPath ) )
- {
- iconId = EFileManagerFolderEmptyIcon;
- }
- }
- fsItem.SetIconId( iconId );
- CleanupStack::PopAndDestroy( fullPath );
- break;
- }
- case CGflmGroupItem::EDrive: // Fall through
- case CGflmGroupItem::EGlobalActionItem:
- {
- break;
- }
- default:
- {
- User::Leave( KErrNotFound );
- break;
- }
- }
-
- return iconId;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::HasAny
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::HasAny(
- RFs& aFs, const TDesC& aFullPath, TUint aAttMask )
- {
- RDir dir;
- TBool ret( EFalse );
- if ( dir.Open( aFs, aFullPath, aAttMask ) != KErrNone )
- {
- return EFalse;
- }
- TEntry entry;
- if ( dir.Read( entry ) == KErrNone )
- {
- ret = ETrue;
- }
- dir.Close();
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::HasSubFolders
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::HasSubFolders( const TDesC& aFullPath ) const
- {
- return HasAny( iFs, aFullPath, KEntryAttDir | KEntryAttMatchExclusive );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::HasFiles
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::HasFiles( const TDesC& aFullPath ) const
- {
- return HasAny( iFs, aFullPath, KEntryAttNormal );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsRemoteDrive
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::IsRemoteDrive( const TDesC& aPath ) const
- {
- TBool ret( EFalse );
-
- if ( aPath.Length() )
- {
- CGflmDriveItem* drvItem = iNavigator.DriveFromPath( aPath );
- if ( drvItem )
- {
- const TVolumeInfo& vol( drvItem->VolumeInfo() );
- if ( vol.iDrive.iDriveAtt & KDriveAttRemote )
- {
- ret = ETrue;
- }
- }
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::CreateDefaultFolders
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerUtils::CreateDefaultFolders(
- const TInt aDrive, const TBool aForced ) const
- {
- iDefaultFolders->CreateFolders( aDrive, aForced );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsDistributableFile
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerUtils::IsDistributableFile(
- const TDesC& aFullPath, TBool& aIsProtected )
- {
-#if defined( __KEEP_DRM_CONTENT_ON_PHONE ) && defined ( FILE_MANAGER_USE_DISTRIBUTABLECHECKER )
- if ( !iDistributableChecker )
- {
- TRAPD( err, iDistributableChecker = CDistributableChecker::NewL() );
- if ( err != KErrNone )
- {
- _LIT( KReason, "No Distributablechecker" );
- User::Panic( KReason, err );
- }
- }
- return iDistributableChecker->Check( aFullPath, aIsProtected );
-#else // __KEEP_DRM_CONTENT_ON_PHONE && FILE_MANAGER_USE_DISTRIBUTABLECHECKER
- aIsProtected = EFalse;
- TBool isFlk( EFalse );
- TBool isLdf( EFalse );
- TRAPD( err, IsFlkOrLdfFileL( aFullPath, isFlk, isLdf ) );
- // Do similar check than in old DRMCommon
- aIsProtected = ( isFlk || isLdf );
- return err;
-#endif // __KEEP_DRM_CONTENT_ON_PHONE && FILE_MANAGER_USE_DISTRIBUTABLECHECKER
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::MimeTypeL
-//
-// -----------------------------------------------------------------------------
-//
-TPtrC CFileManagerUtils::MimeTypeL( const TDesC& aFullPath ) const
- {
- return iNavigator.ResolveMimeTypeL( aFullPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::DriveList
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerUtils::DriveList(
- RArray< TInt >& aDrives, const TInt aAttMask ) const
- {
- aDrives.Reset();
- TDriveList drivesList;
- if ( iFs.DriveList( drivesList ) != KErrNone )
- {
- return;
- }
- for ( TInt i( 0 ); i < KMaxDrives; i++ )
- {
- if ( drivesList[ i ] )
- {
- TBool append( EFalse );
- TDriveInfo drvInfo;
- if ( iFs.Drive( drvInfo, i ) == KErrNone )
- {
- if ( drvInfo.iDriveAtt & aAttMask )
- {
- append = ETrue;
- }
- }
- if ( append )
- {
- aDrives.Append( i );
- }
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsRemovableDrive
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::IsRemovableDrive( const TDesC& aPath ) const
- {
- return IsDrive( iFs, aPath, KDriveAttRemovable );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::GetFullPath
-// -----------------------------------------------------------------------------
-//
-void CFileManagerUtils::GetFullPath(
- const TDesC& aDir, const TEntry& aEntry, TDes& aFullPath )
- {
- GflmUtils::GetFullPath( aDir, aEntry, aFullPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::StripFinalBackslash
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CFileManagerUtils::StripFinalBackslash( const TDesC& aPath )
- {
- return GflmUtils::StripFinalBackslash( aPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::EnsureFinalBackslash
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerUtils::EnsureFinalBackslash( TDes& aPath )
- {
- GflmUtils::EnsureFinalBackslash( aPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::StripDirectionalCharsLC
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerUtils::StripDirectionalCharsLC( const TDesC& aText )
- {
- HBufC* text = aText.AllocLC();
- TPtr ptr( text->Des() );
- AknTextUtils::StripCharacters( ptr, KFmgrDirectionalChars );
- return text;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsFlkOrLdfFileL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerUtils::IsFlkOrLdfFileL(
- const TDesC& aFullPath, TBool& aIsFlk, TBool& aIsLdf )
- {
- aIsFlk = EFalse;
- aIsLdf = EFalse;
- ContentAccess::CContent* content =
- ContentAccess::CContent::CContent::NewLC(
- aFullPath, EContentShareReadOnly );
- HBufC* contentId = HBufC::NewLC( KMaxFileName );
- TPtr ptrContentId( contentId->Des() );
- TInt err( content->GetStringAttribute(
- ContentAccess::EContentID, ptrContentId ) );
- if ( err != KErrNone && err != KErrCANotSupported )
- {
- User::Leave( err );
- }
- if ( !ptrContentId.Left( KFlk().Length() ).Compare( KFlk ) )
- {
- aIsFlk = ETrue;
- }
- else if ( !ptrContentId.Left( KLdf().Length() ).Compare( KLdf ) )
- {
- aIsLdf = ETrue;
- }
- CleanupStack::PopAndDestroy( contentId );
- CleanupStack::PopAndDestroy( content );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::HasFinalBackslash
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerUtils::HasFinalBackslash( const TDesC& aPath )
- {
- return GflmUtils::HasFinalBackslash( aPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsInternalDrive
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::IsInternalDrive( RFs& aFs, const TInt aDrive )
- {
- return IsDrive( aFs, aDrive, KDriveAttInternal );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsFromInternalToRemovableDrive
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CFileManagerUtils::IsFromInternalToRemovableDrive(
- RFs& aFs, const TDesC& aSrcPath, const TDesC& aDstPath )
- {
- TInt srcDrv = TDriveUnit( aSrcPath );
- TInt dstDrv = TDriveUnit( aDstPath );
- if ( srcDrv == dstDrv )
- {
- return EFalse;
- }
- return ( IsInternalDrive( aFs, srcDrv ) &&
- !IsInternalDrive( aFs, dstDrv ) );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::RemoveReadOnlyAttribute
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerUtils::RemoveReadOnlyAttribute(
- RFs& aFs, const TDesC& aFullPath, const TEntry& aEntry )
- {
- TInt ret( KErrNone );
- if( aEntry.IsReadOnly() )
- {
- ret = aFs.SetEntry(
- aFullPath, aEntry.iModified, 0, KEntryAttReadOnly );
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::RemoveReadOnlyAttribute
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerUtils::RemoveReadOnlyAttribute(
- RFs& aFs, const TDesC& aFullPath )
- {
- TEntry entry;
- TInt ret( aFs.Entry( aFullPath, entry ) );
- if ( ret == KErrNone )
- {
- ret = RemoveReadOnlyAttribute( aFs, aFullPath, entry );
- }
- return ret;
- }
-
-#ifdef RD_MULTIPLE_DRIVE
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::GetDriveNameArrayLC
-// -----------------------------------------------------------------------------
-//
-CDesCArray* CFileManagerUtils::GetDriveNameArrayLC(
- const TInt aDrive, TUint& aDriveStatus ) const
- {
- CGflmDriveItem* drvItem = iNavigator.DriveFromId( aDrive );
- if ( !drvItem )
- {
- User::Leave( KErrNotFound );
- }
- aDriveStatus = drvItem->DriveStatus();
- CDesCArray* ret = new( ELeave ) CDesCArrayFlat( KDriveNameArrayLen );
- CleanupStack::PushL( ret );
- ret->AppendL( TDriveUnit( aDrive ).Name() );
-
- if ( aDriveStatus & DriveInfo::EDriveInternal )
- {
- // Device memory and mass storage drives
- return ret;
- }
- // Other drives
- TPtrC drvName( drvItem->Name() );
- if ( drvName.Length() )
- {
- ret->AppendL( drvName );
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::GetDriveNameL
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerUtils::GetDriveNameL(
- const TInt aDrive, const TDriveNameLayout aLayout ) const
- {
- if ( aLayout < 0 || aLayout >= ELayoutCount )
- {
- User::Leave( KErrArgument );
- }
- TUint driveStatus( 0 );
- CDesCArray* array = GetDriveNameArrayLC( aDrive, driveStatus );
- HBufC* ret = NULL;
- if ( driveStatus & DriveInfo::EDriveInternal )
- {
- // Device memory and mass storage drives
- if ( driveStatus & DriveInfo::EDriveExternallyMountable )
- {
- ret = StringLoader::LoadL(
- KFmgrDriveNames[ aLayout ][ EFmgrMassStorage ],
- array->MdcaPoint( KDriveLetterIndex ) );
- }
- else
- {
- ret = StringLoader::LoadL(
- KFmgrDriveNames[ aLayout ][ EFmgrDeviceMemory ],
- array->MdcaPoint( KDriveLetterIndex ) );
- }
- }
- else if ( driveStatus & DriveInfo::EDriveRemovable )
- {
- // Physically removable drives
- if ( array->MdcaCount() > 1 )
- {
- ret = StringLoader::LoadL(
- KFmgrDriveNames[ aLayout ][ EFmgrNamedMemoryCard ],
- *array );
- }
- else
- {
- TInt driveType( EFmgrDefaultMemoryCard );
- if ( driveStatus & DriveInfo::EDriveUsbMemory )
- {
- driveType = EFmgrDefaultUsbMemory;
- }
- ret = StringLoader::LoadL(
- KFmgrDriveNames[ aLayout ][ driveType ],
- array->MdcaPoint( KDriveLetterIndex ) );
- }
- }
- else if ( array->MdcaCount() > 1 )
- {
- // Other drives
- ret = array->MdcaPoint( KDriveNameIndex ).AllocL();
- }
- else
- {
- User::Leave( KErrNotFound );
- }
- CleanupStack::PopAndDestroy( array );
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::GetFormattedDriveNameLC
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerUtils::GetFormattedDriveNameLC(
- const TInt aDrive,
- const TInt aTextIdForDefaultName,
- const TInt aTextIdForName ) const
- {
- TUint driveStatus( 0 );
- HBufC* ret = NULL;
- CDesCArray* array = GetDriveNameArrayLC( aDrive, driveStatus );
- if ( aTextIdForName && array->MdcaCount() > 1 )
- {
- ret = StringLoader::LoadL(
- aTextIdForName,
- *array );
- }
- else if ( aTextIdForDefaultName )
- {
- if( driveStatus & DriveInfo::EDriveUsbMemory )
- {
- CDesCArray* usbLetterName = new ( ELeave ) CDesCArrayFlat( KDriveNameArrayLen );
- CleanupStack::PushL( usbLetterName );
-
- TPtrC16 driveletter=array->MdcaPoint( KDriveLetterIndex );
- usbLetterName->AppendL( driveletter );
- HBufC* usbDriveDefaultName = NULL;
- if(array->MdcaCount() > 1 )
- {
- TPtrC16 drivename=array->MdcaPoint( KDriveNameIndex );
- usbLetterName->AppendL( drivename );
- }
- else
- {
- usbDriveDefaultName = StringLoader::LoadLC( R_QTN_FMGR_USB_MEMORY_DEFAULT_NAME );
- TPtrC16 drivename = usbDriveDefaultName->Des();
- usbLetterName->AppendL( drivename );
- }
-
-
- ret = StringLoader::LoadL(
- aTextIdForDefaultName,*usbLetterName );
-
- CleanupStack::PopAndDestroy( usbLetterName );
- if ( usbDriveDefaultName )
- {
- CleanupStack::PopAndDestroy( usbDriveDefaultName );
- }
- }
- else
- {
- ret = StringLoader::LoadL(aTextIdForDefaultName, array->MdcaPoint(
- KDriveLetterIndex));
- }
- }
- else if ( array->MdcaCount() > 1 )
- {
- ret = array->MdcaPoint( KDriveNameIndex ).AllocL();
- }
- else
- {
- User::Leave( KErrNotFound );
- }
- CleanupStack::PopAndDestroy( array );
- CleanupStack::PushL( ret );
- return ret;
- }
-
-#endif // RD_MULTIPLE_DRIVE
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsRemoteDrive
-// -----------------------------------------------------------------------------
-EXPORT_C TBool CFileManagerUtils::IsRemoteDrive(
- RFs& aFs, const TDesC& aPath )
- {
- return IsDrive( aFs, aPath, KDriveAttRemote );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsDrive
-// -----------------------------------------------------------------------------
-TBool CFileManagerUtils::IsDrive(
- RFs& aFs, const TDesC& aPath, const TUint aAttMask )
- {
- TInt drv( 0 );
- if ( aPath.Length() &&
- RFs::CharToDrive( aPath[ 0 ], drv ) == KErrNone )
- {
- return IsDrive( aFs, drv, aAttMask );
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsDrive
-// -----------------------------------------------------------------------------
-TBool CFileManagerUtils::IsDrive(
- RFs& aFs, const TInt aDrive, const TUint aAttMask )
- {
- TDriveInfo drvInfo;
- if ( aFs.Drive( drvInfo, aDrive ) == KErrNone )
- {
- if ( drvInfo.iDriveAtt & aAttMask )
- {
- return ETrue;
- }
- }
- return EFalse;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerUtils::LocalizedName
-//
-// ------------------------------------------------------------------------------
-//
-TPtrC CFileManagerUtils::LocalizedName( const TDesC& aFullPath ) const
- {
- return iNavigator.LocalizedName( aFullPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::IsNameFoundL
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerUtils::IsNameFoundL( const TDesC& aFullPath ) const
- {
- TParsePtrC parse( CFileManagerUtils::StripFinalBackslash( aFullPath ) );
- TPtrC baseDir( parse.DriveAndPath() );
- TPtrC currentDir( iNavigator.CurrentDirectory() );
- TBool ret( EFalse );
- HBufC* name1 = CFileManagerUtils::StripDirectionalCharsLC( parse.NameAndExt() );
- // Remove white spaces from end, file server also ignores those
- name1->Des().TrimRight();
- if ( !parse.PathPresent() ||
- ( currentDir.Length() && !currentDir.CompareF( baseDir ) ) )
- {
- TBool searchmode = iNavigator.SearchMode();
- iNavigator.EnableSearchMode( EFalse );
- // Do check from current directory, all items are cached
- TInt count( iNavigator.MdcaCount() );
- for( TInt i( 0 ); i < count; ++i )
- {
- CGflmGroupItem* item = iNavigator.Item( i );
- TInt itemType( item->Type() );
- switch (itemType )
- {
- case CGflmGroupItem::EFile: // FALLTHROUGH
- case CGflmGroupItem::EDirectory:
- {
- // Compare with file system name
- CGflmFileSystemItem* fsItem =
- static_cast< CGflmFileSystemItem* >( item );
- HBufC* name2 = CFileManagerUtils::StripDirectionalCharsLC(
- fsItem->Entry().iName );
- ret = !( name1->CompareF( *name2 ) );
- CleanupStack::PopAndDestroy( name2 );
- if ( !ret && itemType == CGflmGroupItem::EDirectory )
- {
- // Compare with localized name
- name2 = CFileManagerUtils::StripDirectionalCharsLC(
- fsItem->Name() );
- if ( name2->Length() )
- {
- ret = !( name1->CompareF( *name2 ) );
- }
- CleanupStack::PopAndDestroy( name2 );
- }
- break;
- }
- default:
- {
- break;
- }
- }
- if ( ret )
- {
- break;
- }
- }
- iNavigator.EnableSearchMode( searchmode );
- }
- else
- {
- // Do check from any directory
- HBufC* buffer = HBufC::NewLC(
- Max( KMaxFileName, aFullPath.Length() + KFmgrBackslashSpace ) );
- TPtr ptr( buffer->Des() );
- ptr.Copy( aFullPath );
- CFileManagerUtils::EnsureFinalBackslash( ptr );
- ret = ( BaflUtils::FolderExists( iFs, ptr ) ||
- BaflUtils::FileExists( iFs,
- CFileManagerUtils::StripFinalBackslash( aFullPath ) ) );
- if ( !ret &&
- !IsRemoteDrive( aFullPath ) &&
- BaflUtils::PathExists( iFs, baseDir ) )
- {
- // Check directory for localized items on local drives
- CDir* dir = NULL;
- User::LeaveIfError( iFs.GetDir(
- baseDir, KEntryAttMatchMask | KEntryAttNormal, ESortNone, dir ) );
- CleanupStack::PushL( dir );
- ptr.Zero();
- TInt count( dir->Count() );
- for ( TInt i ( 0 ); i < count; ++i )
- {
- HBufC* name2 = NULL;
- const TEntry& entry( ( *dir )[ i ] );
- if( entry.IsDir() )
- {
- // Compare with localized name
- CFileManagerUtils::GetFullPath( baseDir, entry, ptr );
- TPtrC ptr2( iNavigator.LocalizedName( ptr ) );
- if ( ptr2.Length() )
- {
- name2 = CFileManagerUtils::StripDirectionalCharsLC( ptr2 );
- }
- }
- if ( !name2 )
- {
- // Compare with file system name
- name2 = CFileManagerUtils::StripDirectionalCharsLC( entry.iName );
- }
- ret = !( name1->CompareF( *name2 ) );
- CleanupStack::PopAndDestroy( name2 );
- if ( ret )
- {
- break;
- }
- }
- CleanupStack::PopAndDestroy( dir );
- }
- CleanupStack::PopAndDestroy( buffer );
- }
- CleanupStack::PopAndDestroy( name1 );
- return ret;
- }
-// -----------------------------------------------------------------------------
-// CFileManagerUtils::FlushCache
-// -----------------------------------------------------------------------------
-//
-void CFileManagerUtils::FlushCache() const
- {
- iNavigator.FlushCache();
- }
-
-// End of File
--- a/filemanager/Engine/src/CFilemanagerMimeIconArray.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/*
-* Copyright (c) 2002-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: Maps the mime or file extension to icon
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <barsread.h>
-#include <AknUtils.h>
-#include <coemain.h>
-#include "CFilemanagerMimeIconArray.h"
-#include "CGflmNavigatorModel.h"
-#include "CDirectoryLocalizer.h"
-#include "CFileManagerCommonDefinitions.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerMimeIconArray::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerMimeIconArray* CFileManagerMimeIconArray::NewL(
- TInt aResId, CGflmNavigatorModel& aNavigator )
- {
- CFileManagerMimeIconArray* self = new( ELeave )
- CFileManagerMimeIconArray( aNavigator );
-
- CleanupStack::PushL( self );
- self->ConstructFromResourceL( aResId );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerMimeIconArray::CFileManagerMimeIconArray
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerMimeIconArray::CFileManagerMimeIconArray(
- CGflmNavigatorModel& aNavigator )
- : iNavigator( aNavigator )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerMimeIconArray::ConstructFromResourceL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerMimeIconArray::ConstructFromResourceL( TInt aResId )
- {
- TResourceReader reader;
- CCoeEnv::Static()->CreateResourceReaderLC( reader, aResId );
-
- TInt count( reader.ReadInt16() );
-
- iArray.ReserveL( count );
-
- for( TInt i( 0 ); i < count; i++ )
- {
- const TPtrC mime( reader.ReadTPtrC() );
- const TInt iconId( reader.ReadInt16() );
- CMimeIconEntry* entry = CMimeIconEntry::NewLC( mime, iconId );
- iArray.AppendL( entry );
- CleanupStack::Pop( entry );
- }
-
- CleanupStack::PopAndDestroy(); // reader
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerMimeIconArray::~CFileManagerMimeIconArray
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerMimeIconArray::~CFileManagerMimeIconArray()
- {
- iArray.ResetAndDestroy();
- iArray.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerMimeIconArray::ResolveIconL
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerMimeIconArray::ResolveIconL( const TDesC& aFullPath )
- {
- TPtrC fileType( iNavigator.ResolveMimeTypeL( aFullPath ) );
- TParsePtrC parse( aFullPath );
- TPtrC fileExt( parse.Ext() );
- TInt count( iArray.Count() );
-
- for( TInt i( 0 ); i < count; ++i )
- {
- CMimeIconEntry* entry = iArray[ i ];
- TPtrC mime( entry->iMime->Des() );
- if ( fileType.FindF( mime ) != KErrNotFound ||
- fileExt.FindF( mime ) != KErrNotFound )
- {
- return entry->iIconId;
- }
- }
- if ( fileType.Length() )
- {
- // File is recognized, but there is no own icon defined for this type.
- // Use note icon to indicate the user that file is not unsupported.
- return EFileManagerNoteFileIcon;
- }
- return EFileManagerOtherFileIcon;
- }
-
-//-------------------------------------------------------------------------------
-// CFileManagerMimeIconArray::CMimeIconEntry::CMimeIconEntry
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerMimeIconArray::CMimeIconEntry::CMimeIconEntry(
- const TInt aIconId ) :
- iIconId( aIconId )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerMimeIconArray::CMimeIconEntry::~CMimeIconEntry
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerMimeIconArray::CMimeIconEntry::~CMimeIconEntry()
- {
- delete iMime;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerMimeIconArray::CMimeIconEntry::NewLC
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerMimeIconArray::CMimeIconEntry*
- CFileManagerMimeIconArray::CMimeIconEntry::NewLC(
- const TDesC& aMime, const TInt aIconId )
- {
- CMimeIconEntry* self = new( ELeave ) CMimeIconEntry( aIconId );
- CleanupStack::PushL( self );
- self->ConstructL( aMime );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerMimeIconArray::CMimeIconEntry::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerMimeIconArray::CMimeIconEntry::ConstructL(
- const TDesC& aMime )
- {
- iMime = aMime.AllocL();
- }
-
-// End of File
--- a/filemanager/Engine/src/CfilemanagerActiveCount.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,236 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Calculates given folder size
-*
-*/
-
-
-// INCLUDE FILES
-#include "CFilemanagerActiveCount.h"
-
-// CONSTANTS
-const TInt KFileManagerProcessFilesPerCycle = 20;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveCount::CFileManagerActiveCount
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveCount::CFileManagerActiveCount( RFs& aFs ) :
- iFs( aFs ),
- iFolders( KErrNotFound ),
- iFiles( KErrNotFound),
- iOpenFiles( KErrNotFound )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveCount::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveCount* CFileManagerActiveCount::NewL(
- RFs& aFs,
- const TDesC& aRootFolder,
- const CFileManagerItemProperties::TFileManagerFileType aType
- )
- {
- CFileManagerActiveCount* self = new( ELeave ) CFileManagerActiveCount(
- aFs );
- CleanupStack::PushL( self );
- self->ConstructL( aRootFolder, aType );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveCount::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveCount::ConstructL(
- const TDesC& aRootFolder,
- const CFileManagerItemProperties::TFileManagerFileType aType )
- {
-
- iDirScan = CDirScan::NewL( iFs );
-
- if ( aType == CFileManagerItemProperties::EFolder )
- {
- // Set scanning from current directory, take only folders
- // No sorting needed
- iDirScan->SetScanDataL(
- aRootFolder,
- KEntryAttDir | KEntryAttMatchExclusive,
- ESortNone );
- }
- else if ( aType == CFileManagerItemProperties::EFile ||
- aType == CFileManagerItemProperties::EOpen ||
- aType == CFileManagerItemProperties::EReadOnly )
- {
- // Set scanning from current directory, take only file
- // No sorting needed
- iDirScan->SetScanDataL(
- aRootFolder,
- KEntryAttNormal | KEntryAttHidden | KEntryAttSystem,
- ESortNone );
- }
- else
- {
- // Set scanning from current directory,
- // take file and folders except hidden and system files
- // No sorting needed
- iDirScan->SetScanDataL( aRootFolder, KEntryAttDir, ESortNone );
- }
-
- TRAPD( err, iDirScan->NextL( iDir ) );
-
- if ( err == KErrNone && iDir )
- {
- if ( aType == CFileManagerItemProperties::EOpen ||
- aType == CFileManagerItemProperties::EReadOnly )
- {
- iFiles = iDir->Count();
- iOpenFiles = 0;
- }
- else if ( aType == CFileManagerItemProperties::EFolder )
- {
- iFolders = iDir->Count();
- delete iDir;
- iDir = NULL;
- iProcessDone = ETrue;
- }
- else if ( aType == CFileManagerItemProperties::EFile )
- {
- iFiles = iDir->Count();
- delete iDir;
- iDir = NULL;
- iProcessDone = ETrue;
- }
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveCount::~CFileManagerActiveCount
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveCount::~CFileManagerActiveCount()
- {
- delete iDirScan;
- delete iDir;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveCount::IsProcessDone
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerActiveCount::IsProcessDone() const
- {
- return iProcessDone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveCount::StepL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveCount::StepL()
- {
- if( !iDir )
- {
- iProcessDone = ETrue;
- return;
- }
-
- TInt processCount( KFileManagerProcessFilesPerCycle );
- while( iFileCounter < iDir->Count() && processCount )
- {
- const TEntry& entry( ( *iDir )[ iFileCounter ] );
- iFileName.Copy( iDirScan->FullPath() );
- iFileName.Append( entry.iName );
- TBool fileIsOpen( EFalse );
- if ( KErrNone == iFs.IsFileOpen( iFileName, fileIsOpen ) )
- {
- if ( fileIsOpen )
- {
- ++iOpenFiles;
- }
- }
- ++iFileCounter;
- --processCount;
- }
-
- if ( iFileCounter >= iDir->Count() )
- {
- delete iDir;
- iDir = NULL;
- iDirScan->NextL( iDir );
- if ( !iDir )
- {
- iProcessDone = ETrue;
- }
- iFileCounter = 0;
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveCount::FolderCount()
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerActiveCount::FolderCount() const
- {
- if ( iProcessDone )
- {
- return iFolders;
- }
- return KErrNotFound;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveCount::FileCount()
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerActiveCount::FileCount() const
- {
- if ( iProcessDone )
- {
- return iFiles;
- }
- return KErrNotFound;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveCount::OpenFiles()
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerActiveCount::OpenFiles() const
- {
- if ( iProcessDone )
- {
- return iOpenFiles;
- }
- return KErrNotFound;
- }
-
-// End of File
--- a/filemanager/Engine/src/CfilemanageractiveDelete.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,467 +0,0 @@
-/*
-* Copyright (c) 2002-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: Deletes files
-*
-*/
-
-
-// INCLUDE FILES
-#include "Cfilemanageractivedelete.h"
-#include "MFileManagerProcessObserver.h"
-#include "CFileManagerEngine.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "CFileManagerUtils.h"
-#include "FileManagerDebug.h"
-//#include <cmgxfilemanager.h>
-
-// CONSTANTS
-const TInt KFileManagerDeletionPerStep = 20;
-const TInt64 KFileManagerMaxStepTime = 1000000; // 1s
-const TInt KFileManagerNotificationArrayGranularity = 64;
-
-
-// ============================ LOCAL FUNCTIONS ================================
-// -----------------------------------------------------------------------------
-// GetTimeStamp
-// -----------------------------------------------------------------------------
-//
-static TInt64 GetTimeStamp()
- {
- TTime time;
- time.UniversalTime();
- return time.Int64();
- }
-
-// -----------------------------------------------------------------------------
-// IsTimedOut
-// -----------------------------------------------------------------------------
-//
-static TBool IsTimedOut( const TInt64& aStartTime )
- {
- TInt64 time( GetTimeStamp() );
- TBool ret( time - aStartTime > KFileManagerMaxStepTime );
- if ( ret )
- {
- INFO_LOG("CFileManagerActiveDelete-TimedOut");
- }
- return ret;
- }
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::CFileManagerActiveDelete
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveDelete::CFileManagerActiveDelete(
- RFs& aFs,
- CArrayFixFlat< TInt >& aIndexList,
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils ) :
- iFs( aFs ),
- iIndexList( aIndexList ),
- iError( KErrNone ),
- iEngine( aEngine ),
- iUtils( aUtils )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveDelete* CFileManagerActiveDelete::NewL(
- CArrayFixFlat< TInt >& aIndexList,
- CFileManagerEngine& aEngine,
- CFileManagerUtils& aUtils )
- {
- CFileManagerActiveDelete* self = new( ELeave ) CFileManagerActiveDelete(
- aEngine.Fs(), aIndexList, aEngine, aUtils );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveDelete::ConstructL()
- {
- iStringBuffer = HBufC::NewL( KMaxFileName );
- //MG2 notification object
- //iMgxFileManager = &iEngine.MGXFileManagerL();
- iRemovedItems = new( ELeave ) CDesCArrayFlat(
- KFileManagerNotificationArrayGranularity );
- iIsRemoteDrive = iUtils.IsRemoteDrive( iEngine.CurrentDirectory() );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::~CFileManagerActiveDelete
-// Destructor
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerActiveDelete::~CFileManagerActiveDelete()
- {
- delete iStringBuffer;
- delete iFullPath;
- delete iDirScan;
- delete iDir;
- delete iRemovedItems;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::IsProcessDone
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerActiveDelete::IsProcessDone() const
- {
- return iProcessDone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerEngine::DeleteItemsInDirectoryL
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerActiveDelete::DeleteItemsInDirectoryL()
- {
- if ( !iDirScan )
- {
- iDirScan = CDirScan::NewL( iFs );
- // Set scanning from current directory, take all files
- // No sorting needed
- iDirScan->SetScanDataL( *iFullPath,
- KEntryAttNormal | KEntryAttHidden | KEntryAttSystem,
- ESortNone );
- }
-
- if ( iDir && iFileIndex < iDir->Count() )
- {
- // Delete file item
- const TEntry& item = ( *iDir )[ iFileIndex ];
- TPtr ptr( iStringBuffer->Des() );
- CFileManagerUtils::GetFullPath(
- iDirScan->FullPath(), item, ptr );
- CFileManagerUtils::RemoveReadOnlyAttribute( iFs, ptr, item );
- DeleteFileL( ptr, ETrue );
- ++iFileIndex;
- }
- else
- {
- // Fetch next directory
- delete iDir;
- iDir = NULL;
- iDirScan->NextL( iDir );
- iFileIndex = 0;
-
- if ( iDir )
- {
- CFileManagerUtils::RemoveReadOnlyAttribute(
- iFs, iDirScan->FullPath() );
- }
- }
-
- if ( !iDir )
- {
- // Items are deleted now, report done
- if ( !iNotDeletedItems )
- {
- // Delete all directories
- CFileMan* fileMan = CFileMan::NewL( iFs );
- SetError( fileMan->RmDir( *iFullPath ), *iFullPath );
- delete fileMan;
- }
- return ETrue;
- }
- return EFalse; // Still items left
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::StepL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveDelete::StepL()
- {
- FUNC_LOG
-
- TInt64 startTime( GetTimeStamp() );
- TInt indexCount( iIndexList.Count() );
- TInt i( KFileManagerDeletionPerStep );
- TBool timedOut( EFalse );
-
- while ( iCurrentIndex < indexCount && i && !timedOut )
- {
- TBool isItemDone( EFalse );
-
- // Fetch item path if missing
- if ( !iFullPath )
- {
- iFullPath = iEngine.IndexToFullPathL(
- iIndexList.At( iCurrentIndex ) );
- if ( IsDir( *iFullPath ) )
- {
- // Ignore default folders
- if ( iUtils.DefaultFolder( *iFullPath ) )
- {
- SetError( KErrFmgrDefaultFolder, *iFullPath );
- isItemDone = ETrue;
- }
- }
- }
- // Delete item
- if ( !isItemDone )
- {
- if ( IsDir( *iFullPath ) )
- {
- // Delete directory item
- while ( iCurrentIndex < indexCount && i && !isItemDone && !timedOut )
- {
- isItemDone = DeleteItemsInDirectoryL();
- --i;
-
- // Adjust amount of deleted files per step by consumed time.
- // This is an attempt to avoid long periods of time,
- // where the UI does not respond to user activity.
- timedOut = IsTimedOut( startTime );
- }
- }
- else
- {
- // Delete file item
- DeleteFileL( *iFullPath );
- isItemDone = ETrue;
- --i;
-
- // Adjust amount of deleted files per step by consumed time.
- // This is an attempt to avoid long periods of time,
- // where the UI does not respond to user activity.
- timedOut = IsTimedOut( startTime );
- }
- }
-
- // Move to next item if done
- if ( isItemDone )
- {
- delete iFullPath;
- iFullPath = NULL;
- ++iCurrentIndex;
- }
- }
-
- if ( iCurrentIndex >= indexCount )
- {
- iProcessDone = ETrue;
- FlushNotifications();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::DialogDismissedL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveDelete::DialogDismissedL( TInt aButtonId )
- {
- if ( aButtonId == EAknSoftkeyCancel )
- {
- FlushNotifications();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::GetError
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerActiveDelete::GetError( TDes& aFileName )
- {
- if( iFileName.Length() > 0)
- {
- aFileName.Zero();
- aFileName.Append( iFileName );
- }
- if ( iOpenFiles > 1 )
- {
- iError = KErrFmgrSeveralFilesInUse;
- }
- return iError;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::DeletedDrmItems
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerActiveDelete::DeletedDrmItems(TInt& aTotalCount )
- {
- aTotalCount = iDeletedItems;
- return iDeletedDrmItems;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::DeleteFileL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveDelete::DeleteFileL(
- const TDesC& aFullPath, const TBool aReadOnlyChecked )
- {
-#ifndef RD_DRM_RIGHTS_MANAGER_REMOVAL
- TBool isLocalDataFile( EFalse );
- TBool isDrmProtected( EFalse );
- if ( !iIsRemoteDrive )
- {
- // Check DRM protection
- isDrmProtected = iUtils.IsDrmProtectedFile( aFullPath );
- if ( isDrmProtected )
- {
- isLocalDataFile = iUtils.IsDrmLocalDataFile( aFullPath );
- }
- }
-#endif // RD_DRM_RIGHTS_MANAGER_REMOVAL
-
- TInt err( iFs.Delete( aFullPath ) );
- if ( err == KErrAccessDenied && !aReadOnlyChecked )
- {
- // Remove readonly and retry
- TEntry entry;
- if( iFs.Entry( aFullPath, entry ) == KErrNone )
- {
- CFileManagerUtils::RemoveReadOnlyAttribute(
- iFs, aFullPath, entry );
- err = iFs.Delete( aFullPath );
- }
- }
- if ( !IsError( err ) )
- {
- ++iDeletedItems;
- // Notification is relevant only for local drives
- if ( !iIsRemoteDrive )
- {
- TRAPD( err2, iRemovedItems->AppendL( aFullPath ) );
- if ( err2 != KErrNone )
- {
- ERROR_LOG1(
- "CFileManagerActiveExecute::DeleteFileL-NotificationAppend-err=%d",
- err2 )
- }
- }
-#ifndef RD_DRM_RIGHTS_MANAGER_REMOVAL
- // Inform deletion of DRM protected files except local data files
- if( isDrmProtected && !isLocalDataFile )
- {
- ++iDeletedDrmItems;
- SetName( aFullPath );
- }
-#endif // RD_DRM_RIGHTS_MANAGER_REMOVAL
- }
- else
- {
- // Delete failed, update error info
- SetError( err, aFullPath );
- if ( err == KErrInUse )
- {
- ++iOpenFiles;
- }
- ++iNotDeletedItems;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::IsDir
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerActiveDelete::IsDir( const TDesC& aFullPath )
- {
- return CFileManagerUtils::HasFinalBackslash( aFullPath );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::SetName
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveDelete::SetName( const TDesC& aFullPath,
- TBool aOverWrite )
- {
- if ( !aOverWrite && iFileName.Length() )
- {
- return;
- }
- iFileName.Zero();
- if ( aFullPath.Length() )
- {
- if ( IsDir( aFullPath ) )
- {
- TParsePtrC parse( aFullPath.Left( aFullPath.Length() - 1 ) );
- iFileName.Append( parse.Name() );
- }
- else
- {
- TParsePtrC parse( aFullPath );
- iFileName.Append( parse.NameAndExt() );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::IsError
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerActiveDelete::IsError( TInt aErr )
- {
- return ( aErr != KErrNone &&
- aErr != KErrCorrupt &&
- aErr != KErrNotFound &&
- aErr != KErrPathNotFound );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::SetError
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveDelete::SetError( TInt aErr, const TDesC& aFullPath )
- {
- if ( iError == KErrNone && IsError( aErr ) )
- {
- iError = aErr;
- SetName( aFullPath, ETrue );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveDelete::FlushNotifications
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveDelete::FlushNotifications()
- {
- if ( iRemovedItems->MdcaCount() > 0 )
- {
- //TRAP_IGNORE( iMgxFileManager->UpdateL( *iRemovedItems ) );
- iRemovedItems->Reset();
- }
- }
-
-// End of file
--- a/filemanager/Engine/src/Cfilemanageractivesize.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Calculates given folder size
-*
-*/
-
-
-// INCLUDES
-#include "Cfilemanageractivesize.h"
-
-// CONSTANTS
-const TInt KFileManagerProcessFilesPerCycle = 20;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveSize::CFileManagerActiveSize
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveSize::CFileManagerActiveSize( RFs& aFs ) :
- iFs( aFs )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveSize::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveSize* CFileManagerActiveSize::NewL(
- RFs& aFs, const TDesC& aRootFolder )
- {
- CFileManagerActiveSize* self = new( ELeave ) CFileManagerActiveSize(
- aFs );
- CleanupStack::PushL( self );
- self->ConstructL( aRootFolder );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveSize::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveSize::ConstructL( const TDesC& aRootFolder )
- {
- iDirScan = CDirScan::NewL( iFs );
- // Set scanning from current directory,
- // take files and folder including the hidden and system files
- // No sorting needed
- iDirScan->SetScanDataL(
- aRootFolder,
- KEntryAttNormal | KEntryAttHidden | KEntryAttSystem,
- ESortNone );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveSize::~CFileManagerActiveSize
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerActiveSize::~CFileManagerActiveSize()
- {
- delete iDirScan;
- delete iDir;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveSize::IsProcessDone
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerActiveSize::IsProcessDone() const
- {
- return iProcessDone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveSize::StepL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerActiveSize::StepL()
- {
- if ( !iDir )
- {
- iDirScan->NextL( iDir );
- if( !iDir )
- {
- iProcessDone = ETrue;
- return;
- }
- }
-
- TInt processCount( KFileManagerProcessFilesPerCycle );
- while( iFileCounter < iDir->Count() && processCount )
- {
- const TEntry& item( ( *iDir )[ iFileCounter ] );
- iSize += item.FileSize();
- ++iFileCounter;
- --processCount;
- }
-
- if ( iFileCounter >= iDir->Count() )
- {
- delete iDir;
- iDir = NULL;
- iFileCounter = 0;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerActiveSize::GetFolderSize()
-//
-// -----------------------------------------------------------------------------
-//
-TInt64 CFileManagerActiveSize::GetFolderSize() const
- {
- if( iProcessDone )
- {
- return iSize;
- }
- return KErrNotFound;
- }
-
-// End of File
--- a/filemanager/Engine/src/Cfilemanagerfilesystemevent.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: This AO is signaled when directory entry is added or removed
-* from file system
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <e32std.h>
-#include "Cfilemanagerfilesystemevent.h"
-#include "CFileManagerEngine.h"
-#include "FileManagerDebug.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemEvent::CFileManagerFileSystemEvent
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-
-CFileManagerFileSystemEvent::CFileManagerFileSystemEvent(
- RFs& aFs,
- CFileManagerEngine& aEngine,
- TNotifyType aNotifyType ) :
- CActive( CActive::EPriorityLow ),
- iFs( aFs ),
- iEngine( aEngine),
- iNotifyType( aNotifyType )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemEvent::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileSystemEvent::ConstructL( const TDesC& aFullPath )
- {
- CActiveScheduler::Add( this );
-
- if ( aFullPath.Length() )
- {
- iFullPath = aFullPath.AllocL();
- }
-
- Setup();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemEvent::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileSystemEvent* CFileManagerFileSystemEvent::NewL(
- RFs& aFs,
- CFileManagerEngine& aEngine,
- TNotifyType aNotifyType,
- const TDesC& aFullPath )
- {
- CFileManagerFileSystemEvent* self =
- new( ELeave ) CFileManagerFileSystemEvent(
- aFs,
- aEngine,
- aNotifyType );
-
- CleanupStack::PushL( self );
- self->ConstructL( aFullPath );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerFileSystemEvent::~CFileManagerFileSystemEvent
-//
-// ------------------------------------------------------------------------------
-CFileManagerFileSystemEvent::~CFileManagerFileSystemEvent()
- {
- Cancel();
- delete iFullPath;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemEvent::RunL
-// From CActive. Called when asynchronous request is completed.
-// Notifies the observer
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileSystemEvent::RunL()
- {
- TInt err( iStatus.Int() );
-
- LOG_IF_ERROR1( err, "CFileManagerFileSystemEvent::RunL-err=%d", err )
-
- // Mark as received if there is no error
- if ( err == KErrNone )
- {
- iIsReceived = ETrue;
- }
-
- // If not ENotifyDisk, do refresh when event is checked
- // using CheckFileSystemEvent
- if ( iNotifyType == ENotifyDisk )
- {
- iEngine.DriveAddedOrChangedL();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemEvent::RunError
-// From CActive. Called when error occurred in asynchronous request
-// Notifies the observer
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFileSystemEvent::RunError( TInt /*aError*/ )
- {
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileSystemEvent::DoCancel
-// From CActive. Called when asynchronous request is canceled
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileSystemEvent::DoCancel()
- {
- iFs.NotifyChangeCancel( iStatus );
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerFileSystemEvent::Setup
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerFileSystemEvent::Setup()
- {
- if( IsActive() )
- {
- return;
- }
-
- iIsReceived = EFalse;
-
- if( iFullPath )
- {
- iFs.NotifyChange( iNotifyType, iStatus, *iFullPath );
- }
- else
- {
- iFs.NotifyChange( iNotifyType, iStatus );
- }
-
- SetActive();
- }
-
-// ------------------------------------------------------------------------------
-// CFileManagerFileSystemEvent::CheckFileSystemEvent
-//
-// ------------------------------------------------------------------------------
-//
-void CFileManagerFileSystemEvent::CheckFileSystemEvent()
- {
- if( iIsReceived )
- {
- TRAP_IGNORE( iEngine.FolderContentChangedL() );
- }
- }
-
-// End of File
--- a/filemanager/Engine/src/Cfilemanagerfolderarray.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,356 +0,0 @@
-/*
-* Copyright (c) 2002-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: Holds the array of CFileManagerFolderEntry
-*
-*/
-
-
-// INCLUDE FILES
-#include <barsread.h> // TResourceReader
-#include <bautils.h> // BaflUtils::EnsurePathExists
-#include <coemain.h> // CCoeEnv
-#ifdef RD_MULTIPLE_DRIVE
- #include <pathinfo.h>
- #include <driveinfo.h>
-#endif // RD_MULTIPLE_DRIVE
-#include "Cfilemanagerfolderarray.h"
-#ifndef RD_MULTIPLE_DRIVE
- #include "cfilemanagerfolderentry.h"
-#endif // RD_MULTIPLE_DRIVE
-#include "CFileManagerCommonDefinitions.h"
-#include "CFileManagerUtils.h"
-
-
-// CONSTANTS
-const TInt KCreateCheckMaskMax = 32;
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderArray::NewL
-//
-// -----------------------------------------------------------------------------
-//
-#ifdef RD_MULTIPLE_DRIVE
-CFileManagerFolderArray* CFileManagerFolderArray::NewL(
- CFileManagerUtils& aUtils )
- {
- return new ( ELeave ) CFileManagerFolderArray( aUtils );
- }
-#else // RD_MULTIPLE_DRIVE
-CFileManagerFolderArray* CFileManagerFolderArray::NewL(
- TInt aResId, CFileManagerUtils& aUtils )
- {
- CFileManagerFolderArray* self =
- new( ELeave ) CFileManagerFolderArray(
- aUtils );
-
- CleanupStack::PushL( self );
- self->ConstructL( aResId );
- CleanupStack::Pop( self );
-
- return self;
- }
-#endif // RD_MULTIPLE_DRIVE
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderArray::CFileManagerFolderArray
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderArray::CFileManagerFolderArray(
- CFileManagerUtils& aUtils ) :
- iUtils( aUtils )
- {
- }
-
-#ifndef RD_MULTIPLE_DRIVE
-// -----------------------------------------------------------------------------
-// CFileManagerFolderArray::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderArray::ConstructL( TInt aResId )
- {
- RArray< TInt > removableDrives;
- CleanupClosePushL( removableDrives );
-
- iUtils.DriveList( removableDrives, KDriveAttRemovable );
- TInt drvCount( removableDrives.Count() );
-
- TResourceReader reader;
- CCoeEnv::Static()->CreateResourceReaderLC( reader, aResId );
- TInt count( reader.ReadInt16() );
-
- TChar drvLetter( 0 );
- TBool isRemovable( EFalse );
-
- for( TInt i( 0 ); i < count; i++ )
- {
- CFileManagerFolderEntry* entry =
- CFileManagerFolderEntry::NewLC( reader );
- iFolderArray.AppendL( entry );
- CleanupStack::Pop( entry );
-
- // The default folders are same to all removable drives.
- // Add the folders dynamically for undefined removable drives.
- TPtrC ptr( entry->Name() );
- if ( ptr[ 0 ] != drvLetter )
- {
- drvLetter = ptr[ 0 ];
- isRemovable = iUtils.IsRemovableDrive( ptr );
- }
- if ( isRemovable )
- {
- TInt baseDrv = TDriveUnit( ptr );
- for( TInt j( 0 ); j < drvCount; j++ )
- {
- TInt drv( removableDrives[ j ] );
- if ( drv != baseDrv )
- {
- entry = CFileManagerFolderEntry::NewLC( drv, ptr );
- iFolderArray.AppendL( entry );
- CleanupStack::Pop( entry );
- }
- }
- }
- }
-
- CleanupStack::PopAndDestroy(); // reader
- CleanupStack::PopAndDestroy( &removableDrives );
- }
-#endif // RD_MULTIPLE_DRIVE
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderArray::~CFileManagerFolderArray
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderArray::~CFileManagerFolderArray()
- {
-#ifndef RD_MULTIPLE_DRIVE
- iFolderArray.ResetAndDestroy();
- iFolderArray.Close();
-#endif // RD_MULTIPLE_DRIVE
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderArray::Contains
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFolderArray::Contains( const TDesC& aFolderName )
- {
-#ifdef RD_MULTIPLE_DRIVE
- // Remote drives has no default folders
- if ( !iUtils.IsRemoteDrive( aFolderName ) )
- {
- TInt pathType( PathInfo::PathType( aFolderName ) );
- switch ( pathType )
- {
- // If non default folder but localized,
- // handle it here as default folder
- case PathInfo::ENotSystemPath:
- {
- TPtrC ptr( iUtils.LocalizedName( aFolderName ) );
- if ( ptr.Length() )
- {
- return ETrue;
- }
- return EFalse;
- }
- // Ignore root folders
- case PathInfo::EPhoneMemoryRootPath: // FALL THROUGH
- case PathInfo::EMemoryCardRootPath: // FALL THROUGH
- case PathInfo::ERomRootPath:
- {
- return EFalse;
- }
- // Accept other folders
- default:
- {
- return ETrue;
- }
- }
- }
- return EFalse;
-#else // RD_MULTIPLE_DRIVE
- CFileManagerFolderEntry* entry = FindFolder( aFolderName );
- return ( entry ? ETrue : EFalse );
-#endif // RD_MULTIPLE_DRIVE
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderArray::CreateFolders
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderArray::CreateFolders(
- const TInt aDrive, const TBool aForced )
- {
- // If not forced creation, check if folders have been already created
- if ( !aForced && aDrive >= 0 && aDrive < KCreateCheckMaskMax )
- {
- if ( ( 1 << aDrive ) & iCreateCheckMask )
- {
- return; // Folders have already been created
- }
- }
-#ifdef RD_MULTIPLE_DRIVE
- if ( aDrive != KErrNotFound ) // Support only explicitly given drive id
- {
- TRAP_IGNORE( DoCreateFoldersL( aDrive ) );
- // Update folder creation mask
- iCreateCheckMask |= 1 << aDrive;
- }
-#else // RD_MULTIPLE_DRIVE
- RFs& fs( iUtils.Fs() );
- TInt count( iFolderArray.Count() );
- for( TInt i( 0 ); i < count; i++ )
- {
- TPtrC defFolder( iFolderArray[ i ]->Name() );
-
- TInt drv = TDriveUnit( defFolder );
- if ( aDrive >= 0 )
- {
- // Apply drive filtering
- if ( drv != aDrive )
- {
- continue;
- }
- }
-
- // Update folder creation mask
- iCreateCheckMask |= 1 << drv;
-
- // Make sure that path exists
- fs.MkDirAll( defFolder );
-
- // Clear the possible hidden flag, all default folders
- // should be visible
- TEntry entry;
- if ( fs.Entry( defFolder, entry ) == KErrNone )
- {
- if( entry.IsHidden() )
- {
- // If setting fails, File Manager can still go on
- fs.SetEntry(
- defFolder, entry.iModified, 0, KEntryAttHidden );
- }
- }
- }
-#endif // RD_MULTIPLE_DRIVE
- }
-
-#ifndef RD_MULTIPLE_DRIVE
-// -----------------------------------------------------------------------------
-// CFileManagerFolderArray::FindFolder
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderEntry* CFileManagerFolderArray::FindFolder(
- const TDesC& aFolderName )
- {
- if ( !iSorted )
- {
- TLinearOrder< CFileManagerFolderEntry > key(
- CFileManagerFolderEntry::CompareSort );
- iFolderArray.Sort( key );
- iSorted = ETrue;
- }
-
- TInt index( iFolderArray.FindInOrder(
- aFolderName, CFileManagerFolderEntry::CompareFind ) );
- if ( index >= 0 && index < iFolderArray.Count() )
- {
- // Match found
- return iFolderArray[ index ];
- }
-
- return NULL;
- }
-#endif // RD_MULTIPLE_DRIVE
-
-#ifdef RD_MULTIPLE_DRIVE
-// -----------------------------------------------------------------------------
-// CFileManagerFolderArray::DoCreateFolders
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderArray::DoCreateFoldersL( const TInt aDrive )
- {
- TUint drvStatus( 0 );
- RFs& fs( iUtils.Fs() );
- User::LeaveIfError( DriveInfo::GetDriveStatus( fs, aDrive, drvStatus ) );
- if ( !( drvStatus & DriveInfo::EDriveUserVisible ) ||
- ( drvStatus & ( DriveInfo::EDriveRemote |
- DriveInfo::EDriveReadOnly |
- DriveInfo::EDriveUsbMemory ) ) )
- {
- return; // Default folder creation is not allowed for this drive type
- }
-
- TEntry entry;
- CDesCArray* array = PathInfo::GetListOfPathsLC( aDrive );
- TInt count( array->MdcaCount() );
- for ( TInt i( 0 ); i < count; ++i )
- {
- TPtrC fullPath( array->MdcaPoint( i ) );
- TBool allow( ETrue );
-
- if ( drvStatus & DriveInfo::EDriveRemovable )
- {
- // Filter few folder types from physically removable memory cards
- TInt pathType( PathInfo::PathType( fullPath ) );
- switch( pathType )
- {
- case PathInfo::EGamesPath: // FALL THROUGH
- case PathInfo::EInstallsPath: // FALL THROUGH
- case PathInfo::EGsmPicturesPath: // FALL THROUGH
- case PathInfo::EMmsBackgroundImagesPath: // FALL THROUGH
- case PathInfo::EPresenceLogosPath:
- {
- allow = EFalse;
- }
- default:
- {
- break;
- }
- }
- }
-
- if ( allow )
- {
- fs.MkDirAll( fullPath ); // Ignore error
-
- // Clear the possible hidden flag, all default folders
- // should be visible
- if ( fs.Entry( fullPath, entry ) == KErrNone )
- {
- if( entry.IsHidden() )
- {
- // If setting fails, File Manager can still go on
- fs.SetEntry(
- fullPath, entry.iModified, 0, KEntryAttHidden );
- }
- }
- }
- }
- CleanupStack::PopAndDestroy( array );
- }
-#endif // RD_MULTIPLE_DRIVE
-
-// End of File
--- a/filemanager/Engine/src/Cfilemanagerindexiterator.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Goes through the list of given files
-*
-*/
-
-
-// INCLUDE FILES
-#include "Cfilemanagerindexiterator.h"
-#include "CFileManagerEngine.h"
-#include "CFileManagerCommonDefinitions.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerIndexIterator::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerIndexIterator* CFileManagerIndexIterator::NewL
- ( CFileManagerEngine& aEngine,
- CArrayFixFlat<TInt>& aIndexList,
- const TDesC& aDstDir )
- {
- CFileManagerIndexIterator* self = new( ELeave )
- CFileManagerIndexIterator( aEngine, aIndexList, aDstDir );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIndexIterator::CFileManagerIndexIterator
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerIndexIterator::CFileManagerIndexIterator
- ( CFileManagerEngine& aEngine,
- CArrayFixFlat< TInt >& aIndexList,
- const TDesC& aDstDir ):
- iEngine( aEngine ),
- iIndexList( aIndexList ),
- iDstDir( aDstDir )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIndexIterator::~CFileManagerIndexIterator
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerIndexIterator::~CFileManagerIndexIterator()
- {
- delete iSrc;
- delete iDst;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIndexIterator::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIndexIterator::ConstructL()
- {
- // We need double destination size
- // because source and target folder can be
- // KMaxFileName sized and those are append
- // to same buffer.
- iDst = HBufC::NewL( KFmgrDoubleMaxFileName );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIndexIterator::CurrentL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIndexIterator::CurrentL(
- HBufC** aSrc,
- HBufC** aDst,
- TFileManagerTypeOfItem& aItemType )
- {
- delete iSrc;
- iSrc = NULL;
- iSrc = iEngine.IndexToFullPathL( iIndexList.At( iCurrentIndex ) );
-
- TPtr ptrDst( iDst->Des() );
- ptrDst.Copy( iDstDir );
- TParsePtrC parse( *iSrc );
- ptrDst.Append( parse.NameAndExt() );
-
- *aSrc = iSrc;
- *aDst = iDst;
-
- aItemType = EFileManagerFile;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIndexIterator::NextL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerIndexIterator::NextL()
- {
- ++iCurrentIndex;
- if( iCurrentIndex < iIndexList.Count())
- {
- return ETrue;
- }
-
- return EFalse;
- }
-
-// End of File
--- a/filemanager/Engine/src/TFileManagerDriveInfo.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-/*
-* Copyright (c) 2002-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: Drive info storage
-*
-*/
-
-
-// INCLUDE FILES
-#include <coreapplicationuisdomainpskeys.h>
-#include "TFileManagerDriveInfo.h"
-#include "CFileManagerEngine.h"
-#include "FileManagerDebug.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "CFileManagerFeatureManager.h"
-#ifdef RD_MULTIPLE_DRIVE
-#include <driveinfo.h>
-#endif // RD_MULTIPLE_DRIVE
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::TFileManagerDriveInfo
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TFileManagerDriveInfo::TFileManagerDriveInfo()
- {
- Reset();
- }
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::TFileManagerDriveInfo
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void TFileManagerDriveInfo::Reset()
- {
- iName.Zero();
- iCapacity = 0;
- iSpaceFree = 0;
- iUid = 0;
- iDrive = 0;
- iState = 0;
- }
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::GetInfoL
-// -----------------------------------------------------------------------------
-//
-void TFileManagerDriveInfo::GetInfoL(
- const CFileManagerEngine& aEngine, const TInt aDrive )
- {
- FUNC_LOG
-
- INFO_LOG1( "TFileManagerDriveInfo::GetInfoL - aDrive %d", aDrive )
-
- Reset();
- iDrive = aDrive;
-
- RFs& fs( aEngine.Fs() );
- CheckMountL( fs, aDrive );
- TInt err( FillStateFromVolumeInfo( fs, aDrive ) );
- if ( err == KErrInUse )
- {
- iState |= EDriveInUse;
- }
- else if ( err == KErrCorrupt )
- {
- iState |= EDrivePresent | EDriveCorrupted;
- }
- else if ( err == KErrLocked )
- {
- iState |= EDrivePresent | EDriveLocked | EDriveFormatted |
- EDrivePasswordProtected | EDriveLockable;
- }
- else if ( err == KErrNone )
- {
- if ( iState & EDriveRemote )
- {
- if ( aEngine.IsRemoteDriveConnected( aDrive ) )
- {
- iState |= EDriveConnected;
- }
- }
-
-#ifndef RD_FILE_MANAGER_BACKUP
- if ( iState & EDriveRemovable )
- {
- if ( aEngine.BackupFileExistsL( aDrive ) )
- {
- iState |= EDriveBackupped;
- }
- }
-#endif // RD_FILE_MANAGER_BACKUP
-
- }
-
- INFO_LOG3( "TFileManagerDriveInfo::GetInfoL - aDrive %d, err %d, iState 0x%x",
- aDrive, err, iState )
-
- if ( aEngine.FeatureManager().IsEmbedded() )
- {
- // Disable format in embedded mode, because it messes up
- // operations since embedded apps are closed.
- iState &= ~EDriveFormattable;
- }
- }
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::CheckMountL()
-// -----------------------------------------------------------------------------
-//
-void TFileManagerDriveInfo::CheckMountL(
- RFs& aFs, const TInt aDrive ) const
- {
- FUNC_LOG
-
- HBufC* fullname = HBufC::NewLC( KMaxFullName );
- TPtr name( fullname->Des() );
- TInt err( aFs.FileSystemName( name, aDrive ) );
- if ( err == KErrNone && !name.Length() )
- {
- // Drive isn't mounted at present, so try it now....
- // Returns KErrLocked, if locked and the password
- // is not in store
- err = aFs.MountFileSystem( KFmgrFatFSName, aDrive );
- }
- CleanupStack::PopAndDestroy( fullname );
-
- LOG_IF_ERROR1( err, "TFileManagerDriveInfo::CheckMountL-err=%d", err )
- }
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::FillStateFromDriveInfo()
-// -----------------------------------------------------------------------------
-//
-TInt TFileManagerDriveInfo::FillStateFromDriveInfo(
-#ifdef RD_MULTIPLE_DRIVE
- RFs& aFs,
-#else // RD_MULTIPLE_DRIVE
- RFs& /*aFs*/,
-#endif // RD_MULTIPLE_DRIVE
- const TInt aDrive,
- const TDriveInfo& aDrvInfo )
- {
- FUNC_LOG
-
- TInt ret( KErrNone );
-
-#ifdef RD_MULTIPLE_DRIVE
- TUint drvStatus( 0 );
- TInt err( DriveInfo::GetDriveStatus( aFs, aDrive, drvStatus ) );
- if ( err != KErrNone )
- {
- ERROR_LOG2( "TFileManagerDriveInfo::FillStateFromDriveInfo - aDrive %d, Status err %d",
- aDrive, err )
- }
- INFO_LOG2( "TFileManagerDriveInfo::FillStateFromDriveInfo - Media type %d, drvStatus 0x%x",
- aDrvInfo.iType, drvStatus )
- if ( aDrvInfo.iType != EMediaNotPresent && ( drvStatus & DriveInfo::EDriveInUse ) )
- {
- ret = KErrInUse; // Drive is reserved for exclusive usage like file transfer
- }
- if ( ( drvStatus & DriveInfo::EDriveInternal ) &&
- ( drvStatus & DriveInfo::EDriveExternallyMountable ) )
- {
- // Handle mass storage bits here
- iState |= EDriveMassStorage | EDriveRemovable;
- if ( aDrvInfo.iMediaAtt & KMediaAttFormattable )
- {
- iState |= EDriveFormattable;
- }
- if ( aDrvInfo.iMediaAtt & KMediaAttLocked )
- {
- // Locking internal drives is not supported
- iState |= EDriveCorrupted;
- ret = KErrCorrupt;
- }
- return ret;
- }
- if ( drvStatus & DriveInfo::EDriveUsbMemory )
- {
- iState |= EDriveUsbMemory;
- }
-#endif // RD_MULTIPLE_DRIVE
-
- // Setup flags from drive info
- if ( aDrvInfo.iMediaAtt & KMediaAttWriteProtected )
- {
- iState |= EDriveWriteProtected;
- }
- if ( aDrvInfo.iMediaAtt & KMediaAttLocked )
- {
- iState |= EDriveLocked;
- ret = KErrLocked;
- }
- if ( aDrvInfo.iMediaAtt & KMediaAttFormattable )
- {
- iState |= EDriveFormattable;
- }
- if ( aDrvInfo.iMediaAtt & KMediaAttLockable )
- {
- iState |= EDriveLockable;
- }
- if ( aDrvInfo.iMediaAtt & KMediaAttHasPassword )
- {
- iState |= EDrivePasswordProtected;
- }
- if ( ( aDrvInfo.iDriveAtt & KDriveAttRemovable ) ||
- aDrive == KFmgrMemoryCardDrive )
- {
- iState |= EDriveRemovable;
-#ifdef RD_MULTIPLE_DRIVE
- if ( drvStatus & DriveInfo::EDriveSwEjectable )
- {
- iState |= EDriveEjectable;
- }
-#else // RD_MULTIPLE_DRIVE
- // Eject is possible for external memory cards
- if ( !( aDrvInfo.iDriveAtt & KDriveAttInternal ) ||
- aDrive == KFmgrMemoryCardDrive )
- {
- iState |= EDriveEjectable;
- }
-#endif // RD_MULTIPLE_DRIVE
- }
- if ( aDrvInfo.iDriveAtt & KDriveAttRemote )
- {
- iState |= EDriveRemote;
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::FillStateFromVolumeInfo()
-// -----------------------------------------------------------------------------
-//
-TInt TFileManagerDriveInfo::FillStateFromVolumeInfo(
- RFs& aFs, const TInt aDrive )
- {
- FUNC_LOG
-
- TVolumeInfo volInfo;
- TInt ret( aFs.Volume( volInfo, aDrive ) );
- LOG_IF_ERROR1( ret,
- "TFileManagerDriveInfo::FillStateFromVolumeInfo - Volume err %d", ret );
- if ( ret == KErrNone )
- {
- // Get all information from volume info
- TInt maxLen( Min( volInfo.iName.Length(), KMaxVolumeName ) );
-
- iName = volInfo.iName.Left( maxLen );
- iUid = volInfo.iUniqueID;
- iCapacity = volInfo.iSize;
- iSpaceFree = volInfo.iFree;
-
- iState |= EDrivePresent;
-
- if ( volInfo.iSize )
- {
- iState |= EDriveFormatted;
- }
-
- ret = FillStateFromDriveInfo( aFs, aDrive, volInfo.iDrive );
- }
- else
- {
- // Get all information from drive info
- TDriveInfo& drvInfo( volInfo.iDrive );
- TInt err( aFs.Drive( drvInfo, aDrive ) );
- LOG_IF_ERROR1( err,
- "TFileManagerDriveInfo::FillStateFromVolumeInfo - Drive err %d", err );
- if ( err == KErrNone )
- {
- err = FillStateFromDriveInfo( aFs, aDrive, drvInfo );
-
- // If memory card is not ready but type is present,
- // then check if it is reserved.
- if( err == KErrNone &&
- ret == KErrNotReady &&
- drvInfo.iType != EMediaNotPresent )
- {
- // Check USB file transfer state
- TInt prop( ECoreAppUIsUSBFileTransferUninitialized );
- RProperty::Get(
- KPSUidCoreApplicationUIs,
- KCoreAppUIsUSBFileTransfer, prop );
- if ( prop == ECoreAppUIsUSBFileTransferActive )
- {
- ret = KErrInUse; // Reserved for file transfer
- }
- INFO_LOG2( "TFileManagerDriveInfo::FillStateFromVolumeInfo-prop=%d,ret=%d",
- prop, ret )
- }
- }
- if ( err != KErrNone )
- {
- ret = err;
- }
- }
-
- LOG_IF_ERROR2( ret,
- "TFileManagerDriveInfo::FillStateFromVolumeInfo - aDrive %d, Ret %d",
- aDrive, ret )
-
- return ret;
- }
-
-// End of File
--- a/filemanager/GFLM/data/GflmFileExtensionMimeTypes.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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 GFLM extension MIME types
-*
-*/
-
-
-#include <eikon.rh>
-#include <bldvariant.hrh>
-
-#include "GflmFileExtensionMimeTypes.rh"
-
-// RESOURCE IDENTIFIER
-NAME FWMT
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE EXT_MIME_PAIR_LIST r_ext_mime_pairs
-{
- pairs =
- {
-
- // Images
- EXT_MIME_PAIR { extension = ".jpg"; mime_type = "image/jpeg"; },
- EXT_MIME_PAIR { extension = ".jpeg"; mime_type = "image/jpeg"; },
- EXT_MIME_PAIR { extension = ".gif"; mime_type = "image/gif"; },
- EXT_MIME_PAIR { extension = ".png"; mime_type = "image/png"; },
- EXT_MIME_PAIR { extension = ".ota"; mime_type = "image/x-ota-bitmap"; },
- EXT_MIME_PAIR { extension = ".tif"; mime_type = "image/tiff"; },
- EXT_MIME_PAIR { extension = ".mbm"; mime_type = "image/x-epoc-mbm"; },
- EXT_MIME_PAIR { extension = ".bmp"; mime_type = "image/x-bmp"; },
- EXT_MIME_PAIR { extension = ".wbmp"; mime_type = "image/vnd.wap.wbmp"; },
- EXT_MIME_PAIR { extension = ".svg"; mime_type = "image/svg+xml"; },
- EXT_MIME_PAIR { extension = ".wmf"; mime_type = "image/x-wmf"; },
-
- // Audios
- EXT_MIME_PAIR { extension = ".mid"; mime_type = "audio/midi"; },
- EXT_MIME_PAIR { extension = ".au"; mime_type = "audio/au"; },
- EXT_MIME_PAIR { extension = ".amr"; mime_type = "audio/amr"; },
- EXT_MIME_PAIR { extension = ".awb"; mime_type = "audio/amr-wb"; },
- EXT_MIME_PAIR { extension = ".rmf"; mime_type = "audio/x-beatnik-rmf"; },
- EXT_MIME_PAIR { extension = ".aiff"; mime_type = "audio/aiff"; },
- EXT_MIME_PAIR { extension = ".aif"; mime_type = "audio/aiff"; },
- EXT_MIME_PAIR { extension = ".wav"; mime_type = "audio/wav"; },
- EXT_MIME_PAIR { extension = ".rng"; mime_type = "application/vnd.nokia.ringing-tone"; },
- EXT_MIME_PAIR { extension = ".nrt"; mime_type = "application/vnd.nokia.ringing-tone"; },
- EXT_MIME_PAIR { extension = ".mp3"; mime_type = "audio/mp3"; },
-
- // Videos
- EXT_MIME_PAIR { extension = ".nim"; mime_type = "video/sdp"; },
- EXT_MIME_PAIR { extension = ".sdp"; mime_type = "application/sdp"; }
-
- };
-}
-
-// Remote drive specific file extension mime mappings for faster recognition.
-// Mime types are resolved from extension by remote storage framework anyway.
-RESOURCE EXT_MIME_PAIR_LIST r_remote_ext_mime_pairs
-{
- pairs =
- {
-
- // Audios
- EXT_MIME_PAIR { extension = ".m4a"; mime_type = "audio/mp4"; },
- EXT_MIME_PAIR { extension = ".aac"; mime_type = "audio/aac"; },
- EXT_MIME_PAIR { extension = ".3g2"; mime_type = "audio/3gpp2"; },
- EXT_MIME_PAIR { extension = ".mxmf"; mime_type = "audio/vnd.nokia.mobile-xmf"; },
- EXT_MIME_PAIR { extension = ".mid"; mime_type = "audio/midi"; },
- EXT_MIME_PAIR { extension = ".wma"; mime_type = "audio/x-ms-wma"; },
-
- // Videos
- EXT_MIME_PAIR { extension = ".mp4"; mime_type = "video/mp4"; },
- EXT_MIME_PAIR { extension = ".mpeg4"; mime_type = "video/mp4"; },
- EXT_MIME_PAIR { extension = ".mpeg"; mime_type = "video/mp4"; },
- EXT_MIME_PAIR { extension = ".3gp"; mime_type = "video/3gpp"; },
-
- // Other
- EXT_MIME_PAIR { extension = ".txt"; mime_type = "text/plain"; },
- EXT_MIME_PAIR { extension = ".sis"; mime_type = "sis"; },
- EXT_MIME_PAIR { extension = ".sisx"; mime_type = "sis"; },
- EXT_MIME_PAIR { extension = ".jar"; mime_type = "java-archive"; },
- EXT_MIME_PAIR { extension = ".jad"; mime_type = "java-archive"; }
-
- };
-}
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmDirectoryListingCache.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Provides directory listing cache
-*
-*/
-
-
-
-#ifndef CGFLMDIRECTORYLISTINGCACHE_H
-#define CGFLMDIRECTORYLISTINGCACHE_H
-
-
-// INCLUDES
-#include <f32file.h>
-#include "GFLM.hrh"
-
-
-// CLASS DECLARATION
-
-/**
-* A class that encapsulates reading and storing the contents of a
-* directory. When a directory listing is read, the results are
-* cached so that the same listing can be used in other groups
-* without having to re-read the same directory.
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CGflmDirectoryListingCache) : public CBase
- {
- public:
- typedef CArrayPakFlat< TEntry > CEntryArray;
-
- private:
- /**
- * An internal data structure for storing directory name and listing
- * pairs.
- */
- NONSHARABLE_CLASS(CListingNamePair) : public CBase
- {
- public:
- ~CListingNamePair();
- static CListingNamePair* NewLC( const TDesC& aDirectory );
- private:
- void ConstructL( const TDesC& aDirectory );
- public:
- HBufC* iDirectory;
- CEntryArray* iListing;
- };
-
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @since 2.0
- * @param aFss A reference to a valid and open file server session
- * @param aCancelIndicator A reference to cancel indicator
- */
- static CGflmDirectoryListingCache* NewL(
- RFs& aFss,
- const TBool& aCancelIndicator );
-
- /**
- * Destructor.
- */
- virtual ~CGflmDirectoryListingCache();
-
- public: // New functions
-
- /**
- * Clears the contents of the cache
- * @since 2.0
- */
- void ClearCache();
-
- /**
- * Retrieves a directory listing
- * @since 2.0
- * @param aDirectory Path of the directory
- * @return A pointer to a CEntryArray object that contains the requested items
- */
- const CEntryArray* ListingL( const TDesC& aDirectory );
-
- private:
-
- /**
- * C++ default constructor.
- */
- CGflmDirectoryListingCache(
- RFs& aFss,
- const TBool& aCancelIndicator );
-
- void GetDirL( CListingNamePair& aPair );
-
- private: // Data
- // For caching directory contents. Owned.
- CListingNamePair* iCache;
-
- // An open fileserver session. Not owned.
- RFs& iFss;
-
- // Read only cancel indicator. Not owned
- const TBool& iCancelIndicator;
-
- // A buffer for reading directory contents
- TEntryArray iEntryBuffer;
-
- // An indicator if cache must be cleared
- TBool iClearCache;
-
- };
-
-#endif // CGFLMDIRECTORYLISTINGCACHE_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmDriveItem.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Drive item definitions
-*
-*/
-
-
-
-#ifndef CGFLMDRIVEITEM_H
-#define CGFLMDRIVEITEM_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <f32file.h>
-#include "CGflmGroupItem.h"
-
-
-// CLASS DECLARATION
-/**
-* A class representing drive items.
-*
-* @lib GFLM.lib
-* @since 3.1
-*/
-class CGflmDriveItem : public CGflmGroupItem
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CGflmDriveItem* NewLC(
- const TInt aDrive,
- const TVolumeInfo& aFSVolume,
- const TInt aVolumeStatus,
- const TUint aDriveStatus );
-
- /**
- * Destructor.
- */
- virtual ~CGflmDriveItem( );
-
- public: // New functions
-
- /**
- * Sets the localized name of the item.
- * @since 3.1
- * @param aName A descriptor containing the localized name for the
- entry. A copy of the name is created.
- */
- IMPORT_C void SetLocalizedNameL( const TDesC& aName );
-
- /**
- * Sets the root directory of the item.
- * @since 3.1
- * @param aName A descriptor containing the path for the
- entry. A copy of the path is created.
- */
- IMPORT_C void SetRootDirectoryL( const TDesC& aPath );
-
- /**
- * Gets the root directory of the item.
- * @since 3.1
- * @return A pointer descriptor to root directory
- */
- IMPORT_C TPtrC RootDirectory() const;
-
- /**
- * Gets the volume info of the item.
- * @since 3.1
- * @return A reference to volume info
- */
- IMPORT_C const TVolumeInfo& VolumeInfo() const;
-
- /**
- * Get the drive id
- * @since 3.1
- * @return Drive id.
- */
- IMPORT_C TInt Drive() const;
-
- /**
- * Get the volume status
- * @since 3.1
- * @return volume status
- */
- IMPORT_C TInt VolumeStatus() const;
-
- /**
- * Get the drive status
- * @since 3.2
- * @return drive status
- */
- IMPORT_C TUint DriveStatus() const;
-
- public: // From CGflmGroupItem
-
- TGflmItemType Type() const;
-
- TPtrC Name() const;
-
- TTime Date() const;
-
- TInt64 Size() const;
-
- TPtrC Ext() const;
-
- private:
-
- /**
- * C++ default constructor.
- */
- CGflmDriveItem(
- const TInt aDrive,
- const TVolumeInfo& aFSVolume,
- const TInt aVolumeStatus,
- const TUint aDriveStatus );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- private: // Data
- // A TVolumeInfo object that is the actual entry
- TVolumeInfo iVolume;
-
- // The drive numeric id.
- TInt iDrive;
-
- // The root directory of the entry.
- HBufC* iRootDir;
-
- // The localised name of the entry.
- HBufC* iLocalizedName;
-
- // Holds volume status i.e return value of drive or volume info
- TInt iVolumeStatus;
-
- // Holds drive status i.e the value from DriveInfo::GetDriveStatus
- TUint iDriveStatus;
-
- };
-
-#endif // CGFLMDRIVEITEM_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmDriveResolver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Resolves different media types' drive letters
-*
-*/
-
-
-#ifndef CGFLMDRIVERESOLVER_H
-#define CGFLMDRIVERESOLVER_H
-
-
-// INCLUDES
-#include <f32file.h>
-#include "GFLM.hrh"
-
-// CONSTANTS
-const TInt KGflmReadBufferLen = 256;
-
-// FORWARD DECLARATIONS
-class CGflmDriveItem;
-class MGflmItemFilter;
-
-
-// CLASS DECLARATION
-/**
-* Resolves different media types' drive letters
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CGflmDriveResolver) : public CBase
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CGflmDriveResolver* NewL( RFs& aFs );
-
- /**
- * Destructor.
- */
- virtual ~CGflmDriveResolver();
-
- public: // New functions
- /**
- * Refreshes drive information
- * @param aFs Reference to file system handle
- * @param aFilter Pointer to filter
- * @return System wide error code.
- * @since 3.2
- */
- TInt RefreshDrives( MGflmItemFilter* aFilter );
-
- /**
- * Gets number of drives
- * @since 3.1
- * @return A number of drives
- */
- TInt DriveCount() const;
-
- /**
- * Gets drive item at position
- * @since 3.1
- * @param aIndex Given position
- * @return A pointer to drive item (not owned).
- */
- CGflmDriveItem* DriveAt( const TInt aIndex ) const;
-
- /**
- * Gets drive item from given path
- * @since 3.1
- * @param aPath Given path
- * @return A pointer to drive item (not owned)
- * or NULL if drive not found.
- */
- CGflmDriveItem* DriveFromPath( const TDesC& aPath ) const;
-
- /**
- * Clears drive information
- * @since 3.1
- */
- void ClearDrives();
-
- /**
- * Checks if path is drive root path
- * @since 3.1
- */
- TBool IsRootPath( const TDesC& aPath ) const;
-
- /**
- * Checks if path is on remote drive
- * @since 3.1
- */
- TBool IsRemoteDrive( const TDesC& aPath ) const;
-
- /**
- * Gets drive item from given id
- * @since 3.2
- * @param aDrive Given drive id
- * @return A pointer to drive item (not owned)
- * or NULL if drive not found.
- */
- CGflmDriveItem* DriveFromId( const TInt aDrive ) const;
-
- private:
-
- /**
- * C++ default constructor.
- */
- CGflmDriveResolver( RFs& aFs );
-
- void ConstructL();
-
- void AppendDriveL(
- const TInt aDrive, MGflmItemFilter* aFilter );
-
- void RefreshDrivesL( MGflmItemFilter* aFilter );
-
- private: // Data
- // Shareable file server session.
- RFs& iFs;
-
- // List of drives. Owned.
- RPointerArray< CGflmDriveItem > iDrives;
-
- TBool iRefreshed;
-
- RCriticalSection iCs;
-
- TBuf< KGflmReadBufferLen > iReadBuffer;
- };
-
-#endif // CGFLMDRIVERESOLVER_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmFileFinder.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/*
-* Copyright (c) 2007 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: Searches items matching with given string in given file system
-*
-*/
-
-
-#ifndef CGFLMITEMFINDER_H
-#define CGFLMITEMFINDER_H
-
-// INCLUDES
-#include <e32std.h>
-#include <f32file.h>
-#include <collate.h>
-#include "GFLM.hrh"
-#include "MGflmItemGroup.h"
-
-// FORWARD DECLARATIONS
-class CGflmItemLocalizer;
-class CGflmDriveResolver;
-class MGflmItemFilter;
-class CGflmGroupItem;
-
-// CLASS DECLARATION
-/**
-* Finds the items matching with given string in given folder
-*
-* @lib GFLM.lib
-* @since 3.2
-*/
-NONSHARABLE_CLASS(CGflmFileFinder) : public CBase,
- public MGflmItemGroup
- {
- public:
- /**
- * Two-phased constructor.
- */
- static CGflmFileFinder* NewL(
- RFs& aFss,
- CGflmItemLocalizer& aLocalizer,
- CGflmDriveResolver& aResolver,
- const TBool& aCancelIndicator );
-
- /**
- * Destructor.
- */
- ~CGflmFileFinder();
-
- public:
- /**
- * Sets search folder
- * @since 3.2
- * @param aSearchFolder Given search folder
- */
- void SetSearchFolderL( const TDesC& aSearchFolder );
-
- /**
- * Sets search string. Wild cards are allowed.
- * @since 3.2
- * @param aSearchString Given search string
- */
- void SetSearchStringL( const TDesC& aSearchString );
-
- /**
- * Refreshes the model
- * @since 3.2
- * @param aFilter Pointer to filter. NULL if not used.
- * @param aSortMethod Sort method
- * @param aRefreshMode Refresh mode
- */
- void RefreshL(
- MGflmItemFilter* aFilter,
- TGflmSortMethod aSortMethod,
- TGflmRefreshMode aRefreshMode );
-
- public: // From MGflmItemGroup
-
- TInt Id() const;
-
- TInt ItemCount() const;
-
- CGflmGroupItem* Item( TInt aIndex );
-
- void AddSourceL( const TDesC& aDirectory );
-
- void ResetSources();
-
- void AddActionItemL( TInt aId, const TDesC& aCaption );
-
- void SetInclusion( TUint aInclusion );
-
- const TCollationMethod* CollationMethod();
-
- private:
- /**
- * C++ default constructor.
- */
- CGflmFileFinder(
- RFs& aFss,
- CGflmItemLocalizer& aLocalizer,
- CGflmDriveResolver& aResolver,
- const TBool& aCancelIndicator );
-
- void ConstructL();
-
- void DoSearchL( MGflmItemFilter* aFilter );
-
- private: // Data
- // Ref: An open shareable file server session
- RFs& iFss;
-
- // Ref: Item localizer
- CGflmItemLocalizer& iItemLocalizer;
-
- // Ref: Drive resolver
- CGflmDriveResolver& iDriveResolver;
-
- // Own: Read only cancel indicator
- const TBool& iCancelIndicator;
-
- // Own: Contains folder string
- HBufC* iSearchFolder;
-
- // Own: Contains folder path with search string with wild cards
- HBufC* iSearchFolderWild;
-
- // Own: Contains search string
- HBufC* iSearchString;
-
- // Own: Contains search string with wild cards
- HBufC* iSearchStringWild;
-
- // Own: Contains found items
- RPointerArray< CGflmGroupItem > iSearchResults;
-
- // Own: Buffer for full path handling
- TFileName iFullPath;
-
- // Own: Used collation method
- TCollationMethod iSortCollationMethod;
- };
-
-#endif // CGFLMITEMFINDER_H
-
-// End of File
-
--- a/filemanager/GFLM/inc/CGflmFileFinderItem.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/*
-* Copyright (c) 2007 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: File finder item definitions
-*
-*/
-
-
-
-#ifndef CGFLMFILEFINDERITEM_H
-#define CGFLMFILEFINDERITEM_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include "CGflmFileSystemItem.h"
-
-
-// FORWARD DECLARATIONS
-
-
-// CLASS DECLARATION
-
-/**
-* A class representing a file system item.
-* A file system item is either a file or a directory.
-*
-* @lib GFLM.lib
-* @since 3.2
-*/
-class CGflmFileFinderItem : public CGflmFileSystemItem
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CGflmFileFinderItem* NewLC(
- const TEntry& aEntry,
- const TDesC& aBasePath );
-
- /**
- * Destructor.
- */
- virtual ~CGflmFileFinderItem();
-
- /**
- * Compares items by match
- * @since 3.2
- * @param aFirst Given first item for comparison
- * @param aSecond Given second item for comparison
- * @return Comparison result
- */
- static TInt CompareByMatch(
- const CGflmGroupItem& aFirst,
- const CGflmGroupItem& aSecond );
-
- /**
- * Prepares item for by match sorting
- * @since 3.2
- * @param aSearchString Given search string
- */
- void PrepareSort( const TDesC& aSearchString );
-
- private:
-
- /**
- * C++ default constructor.
- */
- CGflmFileFinderItem( const TEntry& aFSEntry );
-
- void ConstructL( const TDesC& aBasePath );
-
- private: // Data
- TEntry iEntry;
- HBufC* iBasePath;
- TInt16 iSortValue;
- };
-
-#endif // CGFLMFILEFINDERITEM_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmFileListModel.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,355 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: File list model
-*
-*/
-
-
-
-#ifndef CGFLMFILELISTMODEL_H
-#define CGFLMFILELISTMODEL_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <badesca.h> // MDesCArray
-#include <f32file.h> // RFs
-#include "GFLM.hrh"
-
-
-// FORWARD DECLARATIONS
-class MGflmItemGroup;
-class CGflmItemGroupImpl;
-class CGflmGroupItem;
-class MGflmItemFilter;
-class CGflmDirectoryListingCache;
-class CGflmFileRecognizer;
-class CGflmItemLocalizer;
-class CGflmDriveResolver;
-class CGflmDriveItem;
-class CGflmFileFinder;
-
-
-// CLASS DECLARATION
-/**
-* A class that implements the basic file list functionality.
-* @lib GFLM.lib
-* @since 2.0
-*/
-class CGflmFileListModel : public CActive, public MDesCArray
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @since 3.2
- * @param aFs Shareable file server session, see RFs::ShareProtected()
- * @return Pointer to a CGflmFileListModel instance
- */
- IMPORT_C static CGflmFileListModel* NewL( RFs& aFs );
-
- /**
- * Destructor.
- */
- virtual ~CGflmFileListModel();
-
- public: // New functions
-
- /**
- * Refreshes the model
- * @since 2.0
- * @param aStatus A reference to a TRequestStatus object that
- * is used to notify the client thread about completion of
- * the refresh
- * @param aRefreshMode Refresh mode
- */
- IMPORT_C void RefreshListL(
- TRequestStatus& aStatus,
- TGflmRefreshMode aRefreshMode = ERefreshItems );
-
- /**
- * Cancels the asynchronous refresh request
- * @since 2.0
- */
- IMPORT_C void CancelRefresh();
-
- /**
- * Obtains a pointer to a CGflmGroupItem object.
- * The item is indexed by a global index.
- * Raises a panic (EGlobalIndexOutOfBounds) if the index refers to a
- * non-existent item.
- * @since 2.0
- * @param aIndex Global index of the item.
- * @return A pointer to a CGflmGroupItem object.
- */
- IMPORT_C CGflmGroupItem* Item( TInt aIndex ) const;
-
- /**
- * Resets the model. All item groups are destroyed.
- * @since 2.0
- */
- IMPORT_C void ResetModel();
-
- /**
- * Obtains a pointer to a MGflmItemGroup object.
- * Raises a panic (EInvalidGroupId) if a group is not found with given id.
- * @since 2.0
- * @param aId Id of the group
- * @return A pointer to a MGflmItemGroup object.
- */
- IMPORT_C MGflmItemGroup* FindGroupById( TInt aId );
-
- /**
- * Creates a new item group with a given id.
- * @since 2.0
- * @param aId The id given to the created group
- * @return A pointer to the created MGflmItemGroup object
- */
- IMPORT_C MGflmItemGroup* CreateGroupL( TInt aId );
-
- /**
- * Creates a new item group with a given id.
- * @since 3.1
- * @param aId The id given to the created group
- * @param aInclusion The group item inclusion
- * @return A pointer to the created MGflmItemGroup object
- */
- IMPORT_C MGflmItemGroup* CreateGroupL(
- TInt aId, TUint aInclusion );
-
- /**
- * Recognizes a file and resolves it's MIME-type.
- * This method accesses GFLM's internal recognizer cache
- * and is thus recomended for efficiency. NOTE: The file doesn't
- * have to belong to the current state of the model.
- * @since 2.0
- * @param aFilename Full path of the file to be recognized
- * @return A pointer descriptor containing the MIME-type of the item.
- * If the MIME-type couldn't be recognized, returns KNullDesC
- */
- IMPORT_C TPtrC ResolveMimeTypeL( const TDesC& aFilename );
-
- /**
- * Sets the item filter object for the model to use.
- * If aOwned is ETrue the model gets the ownership of the object.
- * @since 2.0
- * @param aFilter A pointer to a MGflmItemFilter object to be used
- */
- IMPORT_C void SetCustomFilter( MGflmItemFilter* aFilter );
-
- /**
- * Returns the validity of the model. If the refresh operation failed
- * or was canceled the model is corrupt and it's items shouldn't be
- * accessed
- * @since 2.0
- * @return ETrue if the model is corrupt. EFalse if the model is in
- * valid state.
- */
- IMPORT_C TBool IsCorrupt() const;
-
- /**
- * Returns the localized name of a file or a directory
- * @since 2.0
- * @param aPath Full path to the file or directory
- * @return A pointer descriptor containing the localized name
- * without the full path
- */
- IMPORT_C TPtrC LocalizedName( const TDesC& aPath ) const;
-
- /**
- * Clears the contents of the file cache
- * @since 2.0
- */
- IMPORT_C void ClearCache();
-
- /**
- * Clears the contents of the drive info
- * @since 3.1
- */
- IMPORT_C void ClearDriveInfo();
-
- /**
- * Gets drive item from given path
- * @since 3.1
- * @param aPath Given path
- * @return A pointer to drive item (not owned)
- * or NULL if drive not found.
- */
- IMPORT_C CGflmDriveItem* DriveFromPath( const TDesC& aPath ) const;
-
- /**
- * Gets drive item from given id
- * @since 3.2
- * @param aDrive Given drive id
- * @return A pointer to drive item (not owned)
- * or NULL if drive not found.
- */
- IMPORT_C CGflmDriveItem* DriveFromId( const TInt aDrive ) const;
-
- /**
- * Enables and disables search mode
- * @since 3.2
- * @param aEnabled Enable or disable
- */
- IMPORT_C void EnableSearchMode( const TBool aEnabled );
-
- /**
- * Get search mode
- * @since 5.0
- * @return search mode
- */
- IMPORT_C TBool SearchMode();
- /**
- * Sets search string. Wild cards are allowed.
- * @since 3.2
- * @param aSearchString Given search string
- */
- IMPORT_C void SetSearchStringL( const TDesC& aSearchString );
-
- /**
- * Sets search folder
- * @since 3.2
- * @param aSearchFolder Given search folder
- */
- IMPORT_C void SetSearchFolderL( const TDesC& aSearchFolder );
-
- /**
- * Sets sort method
- * @since 5.0
- * @param aSortMethod Given sort method
- */
- IMPORT_C void SetSortMethod( TGflmSortMethod aSortMethod );
-
- /**
- * Gets sort method
- * @since 5.0
- * @return Currently used sort method
- */
- IMPORT_C TGflmSortMethod SortMethod() const;
-
- /**
- * Flush cache in CGflmFileRecognizer
- */
- IMPORT_C void FlushCache();
-
- public: // MDesCArray
-
- TInt MdcaCount() const;
-
- TPtrC MdcaPoint( TInt aIndex ) const;
-
- private: // CActive
-
- void RunL();
-
- TInt RunError( TInt aError );
-
- void DoCancel();
-
- protected: // New functions
-
- /**
- * C++ default constructor.
- */
- CGflmFileListModel( RFs& aFs );
-
- /**
- * 2nd phase constructor
- */
- void ConstructL();
-
- private:
-
- static TInt WorkThreadStart( TAny* aPtr );
-
- void WorkThread();
-
- void NotifyClient( TInt aErr );
-
- void GetGroupAndLocalIndex(
- const TInt aGlobalIndex,
- TInt& aLocalIndex,
- MGflmItemGroup*& aGroup ) const;
-
- void DoRefreshL();
-
- protected: // Data
-
- // Ref: An open shareable file server session
- RFs& iFs;
-
- // Request status of the work thread client
- TRequestStatus* iClientStatus;
-
- // Dynamic array containing all the CGflmItemGroupImpl objects that
- // belong to the model. Owned.
- CArrayPtrSeg< CGflmItemGroupImpl >* iGroups;
-
- // Instance of CGflmDirectoryListingCache. Owned.
- CGflmDirectoryListingCache* iListingCache;
-
- // Instance of CGflmFileRecognizer. Owned.
- CGflmFileRecognizer* iFileRecognizer;
-
- // Instance of CGflmItemLocalizer. Owned.
- CGflmItemLocalizer* iItemLocalizer;
-
- // Instance of CGflmDriveResolver. Owned.
- CGflmDriveResolver* iDriveResolver;
-
- // A boolean indicating wether the model is corrupt and needs to be
- // refreshed
- TBool iCorrupt;
-
- // A pointer to a class implementing MGflmItemFilter interface
- MGflmItemFilter* iFilter;
-
- // Own: For synchronising client and work thread
- RSemaphore iSemaphore;
-
- // Own: Client thread id to be informed
- TThreadId iClientId;
-
- // A boolean indicating wether the model is shutting down
- // Main thread is allowed write and work thread is allowed to read only
- TBool iShutdown;
-
- // A boolean indicating wether the refresh is canceled
- // Main thread is allowed write and work thread is allowed to read only
- TBool iCanceled;
-
- // A boolean indicating if search mode enabled or disabled
- // Main thread is allowed write and work thread is allowed to read only
- TBool iSearchEnabled;
-
- // Own: For finding files and directories from file system
- CGflmFileFinder* iFileFinder;
-
- // Own: Stores currently used sort method
- // Main thread is allowed write and work thread is allowed to read only
- TGflmSortMethod iSortMethod;
-
- // Own: Stores currently used sort method in search mode
- // Main thread is allowed write and work thread is allowed to read only
- TGflmSortMethod iSearchSortMethod;
-
- // Own: Stores currently used refresh mode
- // Main thread is allowed write and work thread is allowed to read only
- TGflmRefreshMode iRefreshMode;
-
- };
-
-#endif // CGFLMFILELISTMODEL_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmFileRecognizer.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Recogniser wrapper
-*
-*/
-
-
-
-#ifndef CGFLMFILERECOGNIZER_H
-#define CGFLMFILERECOGNIZER_H
-
-
-// INCLUDES
-#include <apgcli.h>
-#include <e32base.h>
-#include <barsc.h>
-
-
-// FORWARD DECLARATIONS
-class CGflmDriveResolver;
-
-
-// CLASS DECLARATION
-
-/**
-* A class for wrapping recogniser functionality.
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CGflmFileRecognizer) : public CBase
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CGflmFileRecognizer* NewL(
- RFs& aFs,
- TInt aMemoryConsumption,
- CGflmDriveResolver* aDriveResolver );
-
- /**
- * Destructor.
- */
- virtual ~CGflmFileRecognizer();
-
- public: // New functions
-
- /**
- * Recognises a MIME type of file.
- * @since S60 3.1
- * @param aFilename A name of the file
- * @return Pointer to MIME type. KNullDesC if not recognised.
- */
- TPtrC RecognizeL( const TDesC& aFilename );
-
- /**
- * Flushed recogniser cache.
- * @since S60 3.1
- */
- void FlushCache();
-
- private:
-
- NONSHARABLE_CLASS(CPathTypePair) : public CBase
- {
- public:
- static CPathTypePair* NewLC( const TDesC& aFilename );
- void ConstructL( const TDesC& aFilename );
- CPathTypePair();
- ~CPathTypePair();
- TInt Size() const;
-
- public:
- TDblQueLink iLink;
- TInt iTypeIndex;
- HBufC* iFilename;
- };
-
- NONSHARABLE_CLASS(CExtMimePair) : public CBase
- {
- public:
- ~CExtMimePair();
-
- public:
- HBufC* iExt;
- HBufC* iMime;
- };
-
- /**
- * C++ default constructor.
- */
- CGflmFileRecognizer(
- CGflmDriveResolver* aDriveResolver,
- RFs& aFs );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( TInt aMemoryConsumption );
-
- /**
- * Cleans old entries from cache according to specified per cent
- *
- */
- void CleanupCache( );
-
- /**
- * Constructs file extension mime pairs
- *
- */
- void ConstructExtMimePairsL(
- RResourceFile& aResFile,
- TInt aResId,
- RPointerArray< CExtMimePair >& aPairs );
-
- /**
- * Finds mime from file extension
- *
- */
- TPtrC FindMimeFromExt(
- const TDesC& aExt, RPointerArray< CExtMimePair >& aPairs );
-
- /**
- * Does actual recognition
- *
- */
- TPtrC DoRecognizeL( const TDesC& aFilename );
-
- /**
- * Reset and Destroy the RPointArray of CExtMimePair
- *
- */
- static void ResetAndDestroyExtMimePairs( TAny* aPtr );
-
- private: // Data
- // Own: For using the apparc recognisers
- RApaLsSession iApaSession;
-
- // Array for mime types, owned
- CDesCArraySeg* iMimeTypes;
-
- // Mime type cache, owned
- TDblQue< CPathTypePair > iCache;
-
- // Current memory usage for cache
- TInt iCacheMemoryUsage;
-
- // Maximum memory usage for cache
- TInt iCacheMaxMemoryUsage;
-
- // Ref: Pointer to drive resolver
- CGflmDriveResolver* iDriveResolver;
-
- // Own: General file extension mime pairs
- RPointerArray< CExtMimePair > iExtMimePairs;
-
- // Own: Remote drive specific file extension mime pairs
- RPointerArray< CExtMimePair > iRemoteExtMimePairs;
-
- // Ref: Open file server session
- RFs& iFs;
-
- };
-
-#endif // CGFLMFILERECOGNIZER_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmFileSystemItem.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: File system item definitions
-*
-*/
-
-
-
-#ifndef CGFLMFILESYSTEMITEM_H
-#define CGFLMFILESYSTEMITEM_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include "CGflmGroupItem.h"
-
-
-// FORWARD DECLARATIONS
-class TEntry;
-
-
-// CLASS DECLARATION
-
-/**
-* A class representing a file system item.
-* A file system item is either a file or a directory.
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-class CGflmFileSystemItem : public CGflmGroupItem
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CGflmFileSystemItem* NewLC(
- const TEntry& aFSEntry,
- const TDesC& aBasePath );
-
- /**
- * Destructor.
- */
- virtual ~CGflmFileSystemItem( );
-
- public: // New functions
-
- /**
- * Get the full path of the item.
- * @since 2.0
- * @param aPath Modifiable descriptor with atleast the size of
- * KMaxFileName. The full path of the item will be
- * placed in this descriptor.
- */
- IMPORT_C void GetFullPath( TDes& aPath ) const;
-
- /**
- * Sets the localized name of the item.
- * @since 2.0
- * @param aName A descriptor containing the localized name for the
- entry. A copy of the name is created.
- */
- IMPORT_C void SetLocalizedNameL( const TDesC& aName );
-
- /**
- * Get reference to TEntry object of the item.
- * @since 3.1
- * @return A reference to TEntry object.
- */
- IMPORT_C const TEntry& Entry() const;
-
- /**
- * Get the full path of the item.
- * @since 3.2
- * @return Item full path. The pointer must be freed.
- */
- IMPORT_C HBufC* FullPathLC() const;
-
- /**
- * Get the full path of the item.
- * @since 3.2
- * @return Item full path. The pointer must be freed.
- */
- IMPORT_C HBufC* FullPathL() const;
-
- public: // From CGflmGroupItem
-
- TGflmItemType Type() const;
-
- TPtrC Name() const;
-
- TTime Date() const;
-
- TInt64 Size() const;
-
- TPtrC Ext() const;
-
- private:
-
- void SetExt();
-
- protected:
-
- /**
- * C++ default constructor.
- */
- CGflmFileSystemItem(
- const TEntry& aFSEntry,
- const TDesC& aBasePath );
-
- inline CGflmFileSystemItem()
- {
- }
-
- inline void SetBasePath( const TDesC& aBasePath )
- {
- iBasePath.Set( aBasePath );
- }
-
- void SetEntry( const TEntry& aFSEntry );
-
- private: // Data
- // A reference to a TEntry object that is the actual filesystem entry
- const TEntry* iFSEntry;
-
- // A pointer descriptor that contains the base path of the
- // filesystem entry.
- TPtrC iBasePath;
-
- // The localized name of the entry. NULL if it doesn't have one.
- HBufC* iLocalizedName;
-
- // A pointer descriptor that contains the file extension
- TPtrC iExt;
-
- };
-
-#endif // CGFLMFILESYSTEMITEM_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmGlobalActionItem.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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 action item definitions
-*
-*/
-
-
-
-#ifndef CGFLMGLOBALACTIONITEM_H
-#define CGFLMGLOBALACTIONITEM_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include "CGflmGroupItem.h"
-
-
-// CLASS DECLARATION
-
-/**
-* A class representing a global action item.
-* A global item item is visible all the time in a group.
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-class CGflmGlobalActionItem : public CGflmGroupItem
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CGflmGlobalActionItem* NewLC(
- TInt aId, const TDesC& aCaption );
-
- /**
- * Destructor.
- */
- virtual ~CGflmGlobalActionItem();
-
- public: // New functions
- /**
- * Returns the id of the action item
- * @since 2.0
- * @return Id of the item
- */
- IMPORT_C TInt Id() const;
-
- public: // From CGflmGroupItem
-
- TGflmItemType Type() const;
-
- TPtrC Name() const;
-
- TTime Date() const;
-
- TInt64 Size() const;
-
- TPtrC Ext() const;
-
- protected: // New functions
-
- /**
- * C++ default constructor.
- */
- CGflmGlobalActionItem();
-
- private:
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( const TDesC& aCaption );
-
- private: // Data
-
- // Id of the action item
- TInt iId;
-
- // Caption of the action item
- HBufC* iCaption;
-
- };
-
-#endif // CGFLMGLOBALACTIONITEM_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmGroupItem.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Group item definitions
-*
-*/
-
-
-
-#ifndef CGFLMGROUPITEM_H
-#define CGFLMGROUPITEM_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include "GFLM.hrh"
-
-// FORWARD DECLARATIONS
-class MGflmItemGroup;
-
-// CLASS DECLARATION
-
-/**
-* A base class for all GFLM item classes
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-class CGflmGroupItem : public CBase
- {
-
- public:
- // Data types in default priority order
- enum TGflmItemType
- {
- EGlobalActionItem = 0,
- EDrive,
- EDirectory,
- EFile
- };
-
- public: // Constructors and destructor
-
- /**
- * Destructor.
- */
- virtual ~CGflmGroupItem();
-
- public: // New functions
-
- /**
- * Returns the type of the item.
- * @since 2.0
- * @return Type of the item.
- */
- virtual TGflmItemType Type() const = 0;
-
- /**
- * Returns the name of the item.
- * @since 2.0
- * @return A pointer descriptor containing the name of the item.
- */
- virtual TPtrC Name() const = 0;
-
- /**
- * Returns the date of the item.
- * @since 2.0
- * @return A TTime object containing the date of the item.
- */
- virtual TTime Date() const = 0;
-
- /**
- * Returns the size.
- * @since 5.0
- * @return Size in bytes
- */
- virtual TInt64 Size() const = 0;
-
- /**
- * Returns the extension of the item.
- * @since 5.0
- * @return A pointer descriptor containing the extension of the item
- */
- virtual TPtrC Ext() const = 0;
-
- /**
- * Returns the icon id of the item.
- * @since 3.1
- * @param aIconId Reference of icon id. Filled if icon is defined.
- * @return KErrNotFound if icon id is undefined.
- * Otherwise KErrNone.
- */
- IMPORT_C TInt GetIconId( TInt& aIconId );
-
- /**
- * Stores the icon id of the item.
- * @since 3.1
- * @param aIconId Icon id of the item.
- */
- IMPORT_C void SetIconId( const TInt aIconId );
-
- /**
- * Checks if simple name comparison can be used that is
- * significantly faster compared to normal comparison.
- * @since 3.2
- * @return ETrue if simple name comparison can be used, otherwise EFalse
- */
- TBool CanUseCompareF() const;
-
- /**
- * Sets the group owning the item
- * @since 3.2
- * @param Pointer to the group or NULL
- */
- void SetGroup( MGflmItemGroup* aGroup );
-
- /**
- * Gets sort function from method
- * @since 5.0
- * @param aSortMethod Given sort method
- */
- static TLinearOrder< CGflmGroupItem > GetSortL( TGflmSortMethod aSortMethod );
-
- /**
- * Compares items by name and ignores item type
- * @since 5.0
- * @param aFirst Given first item for comparison
- * @param aSecond Given second item for comparison
- * @return Comparison result
- */
- static TInt CompareByNameWithoutItemType(
- const CGflmGroupItem& aFirst,
- const CGflmGroupItem& aSecond );
-
- /**
- * Compares items by name with item type
- * @since 5.0
- * @param aFirst Given first item for comparison
- * @param aSecond Given second item for comparison
- * @return Comparison result
- */
- static TInt CompareByName(
- const CGflmGroupItem& aFirst,
- const CGflmGroupItem& aSecond );
-
- /**
- * Compares items by type
- * @since 5.0
- * @param aFirst Given first item for comparison
- * @param aSecond Given second item for comparison
- * @return Comparison result
- */
- static TInt CompareByType(
- const CGflmGroupItem& aFirst,
- const CGflmGroupItem& aSecond );
-
- /**
- * Compares items by modified date and time
- * @since 5.0
- * @param aFirst Given first item for comparison
- * @param aSecond Given second item for comparison
- * @return Comparison result
- */
- static TInt CompareMostRecentFirst(
- const CGflmGroupItem& aFirst,
- const CGflmGroupItem& aSecond );
-
- /**
- * Compares items by size
- * @since 5.0
- * @param aFirst Given first item for comparison
- * @param aSecond Given second item for comparison
- * @return Comparison result
- */
- static TInt CompareLargestFirst(
- const CGflmGroupItem& aFirst,
- const CGflmGroupItem& aSecond );
-
- protected: // New functions
-
- /**
- * C++ default constructor.
- */
- CGflmGroupItem();
-
- private:
- // Internal status flags
- enum TStatus
- {
- ECanUseCompareF = 0x1,
- ECannotUseCompareF = 0x2
- };
-
- static TInt CompareByItemType(
- const CGflmGroupItem& aFirst,
- const CGflmGroupItem& aSecond );
-
- private: // Data
- // Icon id of the item.
- TInt iIconId;
- // Internal status of the item.
- mutable TUint iStatus;
- // Group owning the item. Not owned.
- MGflmItemGroup* iGroup;
- };
-
-#endif // CGFLMGROUPITEM_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmItemGroupImpl.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Concrete implementation of MGflmItemGroup interface
-*
-*/
-
-
-
-#ifndef CGFLMITEMGROUPIMPL_H
-#define CGFLMITEMGROUPIMPL_H
-
-
-// INCLUDES
-#include "MGflmItemGroup.h"
-#include <e32std.h>
-#include <badesca.h>
-#include <collate.h>
-
-
-// FORWARD DECLARATIONS
-class RFs;
-class CGflmDirectoryListingCache;
-class CGflmFileRecognizer;
-class CGflmItemLocalizer;
-class CGflmDriveResolver;
-class MGflmItemFilter;
-
-
-// CLASS DECLARATION
-
-/**
-* Concrete implementation of MGflmItemGroup interface
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CGflmItemGroupImpl) : public CBase, public MGflmItemGroup
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @param aId The new id
- * @param aFss A reference to an open and valid file server session
- * @param aCache A constructed directory listing cache
- * @param aRecognizer A constructed file recognizer
- * @param aLocalizer A constructed item localizer
- * @param aResolver A constructed drive letter resolver
- */
- static CGflmItemGroupImpl* NewLC(
- const TInt aId,
- RFs& aFss,
- CGflmDirectoryListingCache& aCache,
- CGflmItemLocalizer& aLocalizer,
- CGflmDriveResolver& aResolver );
-
- /**
- * Destructor.
- */
- virtual ~CGflmItemGroupImpl();
-
- public: // New functions
-
- /**
- * Refreshes and reformats the contents of the group
- * @since 2.0
- * @param aFilter MGflmItemFilter object used to to filter the contents
- * @param aSortMethod Sort method
- * @param aRefreshMode Refresh mode
- */
- void RefreshL(
- MGflmItemFilter* aFilter,
- TGflmSortMethod aSortMethod,
- TGflmRefreshMode aRefreshMode );
-
- public: // From MGflmItemGroup
-
- TInt Id() const;
-
- TInt ItemCount() const;
-
- CGflmGroupItem* Item( TInt aIndex );
-
- void AddSourceL( const TDesC& aDirectory );
-
- void ResetSources();
-
- void AddActionItemL( TInt aId, const TDesC& aCaption );
-
- void SetInclusion( TUint aInclusion );
-
- const TCollationMethod* CollationMethod();
-
- private:
-
- /**
- * Constructor.
- * @param aId The new id
- * @param aFss A reference to an open and valid file server session
- * @param aCache A constructed directory listing cache
- * @param aLocalizer A constructed item localizer
- * @param aResolver A constructed drive letter resolver
- */
- CGflmItemGroupImpl(
- const TInt aId,
- RFs& aFss,
- CGflmDirectoryListingCache& aCache,
- CGflmItemLocalizer& aLocalizer,
- CGflmDriveResolver& aResolver );
-
- void ConstructL();
-
- void PopulateReferenceListL( MGflmItemFilter* aFilter );
-
- private: // Data
-
- // Id of the group
- TInt iId;
-
- // Reference to an open fileserver session
- RFs& iFss;
-
- // Inclusion type
- TUint iInclusion;
-
- // Contains (and owns) static items (action items and symbolic
- // links) of this group
- RPointerArray< CGflmGroupItem > iStaticItems;
-
- // Contains (and owns) volatile items (information aquired from
- // the filesystem) of this group
- RPointerArray< CGflmGroupItem > iVolatileItems;
-
- // Contains the same items as iStaticItems and iVolatileItems,
- // but doesn't own them
- RPointerArray< CGflmGroupItem > iItemReferences;
-
- // Directory name
- HBufC* iDirectory;
-
- // Reference to a CGflmDirectoryListingCache object. Not owned.
- CGflmDirectoryListingCache& iListingCache;
-
- // Reference to an CGflmItemLocalizer object. Not owned.
- CGflmItemLocalizer& iItemLocalizer;
-
- // Reference to an CGflmDriveResolver object. Not owned.
- CGflmDriveResolver& iDriveResolver;
-
- // Used collation method
- TCollationMethod iSortCollationMethod;
-
- };
-
-#endif // CGFLMITEMGROUPIMPL_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmItemLocalizer.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: This class is used to provide localized names
-*
-*/
-
-
-
-#ifndef CGFLMITEMLOCALIZER_H
-#define CGFLMITEMLOCALIZER_H
-
-
-// INCLUDES
-#include <e32base.h>
-
-
-// FORWARD DECLARATIONS
-class CDirectoryLocalizer;
-
-
-// CLASS DECLARATION
-
-/**
-* This class is used to provide localized names to files and directories
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(CGflmItemLocalizer) : public CBase
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CGflmItemLocalizer* NewL();
-
- /**
- * Destructor.
- */
- virtual ~CGflmItemLocalizer();
-
- public: // New functions
-
- /**
- * Get the localized name of a file or a directory by it's path.
- * Works only in main thread context.
- * @since 2.0
- * @param aPath A descriptor containing the full path to be localized
- * @return A TPtrC object containing the localized name. KNullDesC
- * if no localized name is defined.
- */
- TPtrC Localize( const TDesC& aPath ) const;
-
- /**
- * Get the localized name of a file or a directory by it's path
- * Works only in work thread context.
- * @since 3.2
- * @param aPath A descriptor containing the full path to be localized
- * @return A TPtrC object containing the localized name. KNullDesC
- * if no localized name is defined.
- */
- TPtrC LocalizeFromWorkThread( const TDesC& aPath ) const;
-
- /**
- * Setups localizer for work thread
- * Works only in work thread context.
- * @since 3.2
- */
- void SetupWorkThreadLocalizerL();
-
- /**
- * Releases localizer used by work thread
- * Works only in work thread context.
- * @since 3.2
- */
- void ReleaseWorkThreadLocalizer();
-
- private:
-
- /**
- * C++ default constructor.
- */
- CGflmItemLocalizer();
-
- void ConstructL();
-
- TPtrC Localize(
- CDirectoryLocalizer& aLocalizer, const TDesC& aPath ) const;
-
- private: // Data
- // Own: For localising in main thread context
- CDirectoryLocalizer* iLocalizer;
-
- // Own: For localising in work thread context
- CDirectoryLocalizer* iWorkThreadLocalizer;
-
- };
-
-#endif // CGFLMITEMLOCALIZER_H
-
-// End of File
--- a/filemanager/GFLM/inc/CGflmNavigatorModel.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Navigable file list model
-*
-*/
-
-
-
-#ifndef CGFLMNAVIGATORMODEL_H
-#define CGFLMNAVIGATORMODEL_H
-
-
-// INCLUDES
-#include "CGflmFileListModel.h"
-
-
-// FORWARD DECLARATIONS
-class CGflmDriveItem;
-
-
-// CLASS DECLARATION
-
-/**
-* Decorates the file list model with navigator functionality
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-class CGflmNavigatorModel : public CGflmFileListModel
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- IMPORT_C static CGflmNavigatorModel* NewL( RFs& aFs );
-
- /**
- * Destructor.
- */
- virtual ~CGflmNavigatorModel();
-
- public: // New functions
-
- /**
- * Sets the navigator's basepath to a given directory
- * @since 2.0
- * @param aPath A descriptor containing the directory to enter
- * @param aBackstepping If false the backstepping stack is reset
- */
- IMPORT_C void GoToDirectoryL( const TDesC& aPath,
- TBool aBackstepping = ETrue );
-
- /**
- * Sets the navigator's basepath to a given directory and
- * constructs a backstepping stack that leads from the base path
- * to the top path one intermediate directory at a time
- * @since 2.0
- * @param aBasePath A descriptor containing the base path
- * @param aTopPath A descriptor containing the directory to enter
- */
- IMPORT_C void GoToDirectoryL( const TDesC& aBasePath,
- const TDesC& aTopPath );
-
- /**
- * Navigates one step backwards.
- * @since 2.0
- */
- IMPORT_C void BackstepL();
-
- /**
- * Returns the current navigation directory
- * @since 2.0
- * @return A pointer descriptor containing the current navigation
- * directory.
- */
- IMPORT_C TPtrC CurrentDirectory() const;
-
- /**
- * Returns the localized name of the current navigation directory
- * @since 2.0
- * @return A pointer descriptor containing the localized name
- * of the current navigation directory.
- */
- IMPORT_C TPtrC LocalizedNameOfCurrentDirectory() const;
-
- /**
- * Returns the current navigation level, the depth of backstep stack
- * @since 2.0
- * @return Current navigation level
- */
- IMPORT_C TInt NavigationLevel() const;
-
- /**
- * Obtains a pointer to current drive (not own).
- * @since 3.1
- * @return Pointer to current drive or NULL.
- */
- IMPORT_C CGflmDriveItem* CurrentDrive() const;
-
- private:
-
- /**
- * C++ default constructor.
- */
- CGflmNavigatorModel( RFs& aFs );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- /**
- * Sets the navigator's base directory
- * @since 2.0
- * @param aDirectory The new base directory
- */
- void SetBaseDirectoryL( const TDesC& aDirectory );
-
- void SetSourceL( const TDesC& aSource );
-
- TBool IsValidSource( const TDesC& aSource ) const;
-
- private: // Data
-
- // An dynamic array holding backstepping information
- CDesCArraySeg* iBackstepStack;
-
- };
-
-#endif // CGFLMNAVIGATORMODEL_H
-
-// End of File
--- a/filemanager/GFLM/inc/GFLM.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: GFLM resource header file
-*
-*/
-
-
-
-#ifndef GFLM_HRH
-#define GFLM_HRH
-
-
-// DATA TYPES
-
-enum TGflmSortMethod
- {
- EByName = 0,
- EByType,
- EMostRecentFirst,
- ELargestFirst,
- EByMatch
- };
-
-enum TGflmFSItemInclusion
- {
- ENothing = 0,
- EFiles = 0x1,
- EDirectories = 0x2,
- EDrives = 0x4
- };
-
-enum TGflmPanicReason
- {
- EGlobalIndexOutOfBounds = 0,
- EUnknownSortMethod,
- ENotADirectory,
- EInvalidGroupId,
- ENotAnActionItem
- };
-
-enum TGflmRefreshMode
- {
- ERefreshItems = 0,
- ERefreshSort
- };
-
-#endif
-
-// End of File
--- a/filemanager/GFLM/inc/GFLMConsts.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Contains constants of GFLM
-*
-*/
-
-
-
-#ifndef GFLMCONSTS_H
-#define GFLMCONSTS_H
-
-
-// CONSTANTS
-_LIT( KGFLMPanicText, "GFLM" );
-_LIT( KGFLMWorkThreadName, "GFLM work thread" );
-const TInt KGFLMWorkThreadStackSize( 8192 ); // 8KB
-const TInt KGFLMFileRecognizerCacheSize( 16384 ); // 16KB
-_LIT( KGFLMBackslash, "\\" );
-_LIT( KGFLMDot, "." );
-
-#endif // GFLMCONSTS_H
-
-// End of File
--- a/filemanager/GFLM/inc/GFLMUid.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Defines UIDs for GFLM
-*
-*/
-
-
-
-#ifndef GFLMUID_H
-#define GFLMUID_H
-
-// MACROS
-#define KSymbianDLLUid2 0x1000008d // Symbian defined
-#define KGflmUid3 0x101F84EA
-
-#endif // GFLMUID_H
-
-// End of File
--- a/filemanager/GFLM/inc/GflmFileExtensionMimeTypes.rh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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 for GFLM extension MIME types
-*
-*/
-
-
-STRUCT EXT_MIME_PAIR
-{
- LTEXT extension;
- LTEXT mime_type;
-}
-
-STRUCT EXT_MIME_PAIR_LIST
-{
- STRUCT pairs [];
-}
-
-// End of File
--- a/filemanager/GFLM/inc/GflmUtils.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Static utility class for GFLM
-*
-*/
-
-
-
-#ifndef GFLMUTILS_H
-#define GFLMUTILS_H
-
-
-// INCLUDES
-#include <e32def.h>
-#include <e32std.h>
-#include "FileManagerDebug.h"
-
-// FORWARD DECLARATIONS
-class TEntry;
-
-// CLASS DECLARATION
-/**
-* GflmUtils is a static utility class
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-NONSHARABLE_CLASS(GflmUtils)
- {
- public:
-
- /**
- * Returns the index of a Nth character in a descriptor. The search
- * is started from the end of the descriptor
- * @since 2.0
- * @param aDescriptor The descriptor upon which the search is made
- * @param aChar The character that is located
- * @param aNth Tells how many matches are made
- * @return Index to the located character. KErrNotFound if the character
- * was not found. KErrArgument if aNth was <= 0
- */
- static TInt LocateReverseNth(
- const TDesC& aDescriptor, TChar aChar, const TInt aNth);
-
- /**
- * Ensures that final backslash is set
- * @since 3.1
- * @param aPath
- */
- IMPORT_C static void EnsureFinalBackslash( TDes& aPath );
-
- /**
- * Strips final backslash if it exists
- * @since 3.1
- * @param aPath
- * @return Pointer to stripped path
- */
- IMPORT_C static TPtrC StripFinalBackslash( const TDesC& aPath );
-
- /**
- * Checks if final backslash exist
- * @since 3.2
- * @param aPath Directory path
- */
- IMPORT_C static TBool HasFinalBackslash( const TDesC& aPath );
-
- /**
- * Gets item full path
- * @since 3.2
- * @param aDir Parent directory path
- * @param aEntry File system entry
- * @param aFullPath Full path to item
- */
- IMPORT_C static void GetFullPath(
- const TDesC& aDir, const TEntry& aEntry, TDes& aFullPath );
-
- /**
- * Gets item full path
- * @since 3.2
- * @param aDir Parent directory path
- * @param aEntry File system entry
- * @return Pointer to full path
- */
- IMPORT_C static HBufC* FullPathLC(
- const TDesC& aDir, const TEntry& aEntry );
-
- /**
- * Gets item full path
- * @since 3.2
- * @param aDir Parent directory path
- * @param aEntry File system entry
- * @return Pointer to full path
- */
- IMPORT_C static HBufC* FullPathL(
- const TDesC& aDir, const TEntry& aEntry );
-
- /**
- * Strips final dot if it exists
- * @since 3.1
- * @param aPath
- * @return Pointer to stripped path
- */
- static TPtrC StripFinalDot( const TDesC& aPath );
-
- /**
- * Strips given string from end if it exists
- * @since 3.2
- * @param aString
- * @param aStringToStrip
- * @return Pointer to stripped string
- */
- static TPtrC StripFinal( const TDesC& aString, const TDesC& aStringToStrip );
-
- /**
- * Checks if string contains any wild cards
- * @since 3.2
- * @param aString
- * @return ETrue if string contains a wild card. Otherwise EFalse.
- */
- static TBool HasWildCard( const TDesC& aString );
-
- };
-
-#endif // GFLMUTILS_H
-
-// End of File
--- a/filemanager/GFLM/inc/MGflmItemFilter.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Defines an interface for making a custom filter to GFLM
-*
-*/
-
-
-
-#ifndef MGFLMITEMFILTER_H
-#define MGFLMITEMFILTER_H
-
-
-// INCLUDES
-#include <e32def.h>
-
-
-// FORWARD DECLARATIONS
-class CGflmGroupItem;
-class CGflmDriveItem;
-
-
-// CLASS DECLARATION
-
-/**
-* Defines an interface for making a custom filter to GFLM.
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-class MGflmItemFilter
- {
- public: // New functions
-
- /**
- * This method is called for every item to be filtered
- * Note that the method is run in work thread space
- * @since 2.0
- * @param aItem Group item to be filtered
- * @param aGroupId Id of the group to which the item belongs
- * @param aDrive The drive where item is located, NULL if data is unavailable
- * @return True if item was accepted, false if not
- */
- virtual TBool FilterItemL(
- CGflmGroupItem* aItem,
- TInt aGroupId,
- CGflmDriveItem* aDrive ) = 0;
-
- };
-
-#endif // MGFLMITEMFILTER_H
-
-// End of File
--- a/filemanager/GFLM/inc/MGflmItemGroup.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Defines an interface for GFLM clients to access item groups
-*
-*/
-
-
-
-#ifndef MGFLMITEMGROUP_H
-#define MGFLMITEMGROUP_H
-
-
-// INCLUDES
-#include "GFLM.hrh"
-#include <e32std.h>
-
-
-// FORWARD DECLARATIONS
-class CGflmGroupItem;
-
-
-// CLASS DECLARATION
-
-/**
-* Defines an interface for GFLM clients to access item groups
-*
-* @lib GFLM.lib
-* @since 2.0
-*/
-class MGflmItemGroup
- {
- public: // New functions
-
- /**
- * Returns the Id of the group
- * @since 2.0
- * @return Id of the group
- */
- virtual TInt Id() const = 0;
-
- /**
- * Returns the number of items in the group
- * @since 2.0
- * @return Number of items in the group
- */
- virtual TInt ItemCount() const = 0;
-
- /**
- * Returns a pointer to a specific item in the group by its index
- * @since 2.0
- * @param aIndex Index of the requested CGflmGroupItem object
- * @return Pointer to a CGflmGroupItem object
- */
- virtual CGflmGroupItem* Item( TInt aIndex ) = 0;
-
- /**
- * Adds a new filesystem source to the group
- * @since 2.0
- * @param aDirectory Path of the directory to add to the group
- */
- virtual void AddSourceL( const TDesC& aDirectory ) = 0;
-
- /**
- * Resets the list of filesystem sources
- * @since 2.0
- */
- virtual void ResetSources() = 0;
-
- /**
- * Adds a new action item to the group
- * @since 2.0
- * @param aId Id of the new action item
- * @param aCaption Caption of the new action item
- */
- virtual void AddActionItemL( TInt aId, const TDesC& aCaption ) = 0;
-
- /**
- * Sets the inclusion mode (files/directories) of the group
- * @since 2.0
- * @param aInclusion New inclusion mode. See TGflmFSItemInclusion.
- */
- virtual void SetInclusion( TUint aInclusion ) = 0;
-
- /**
- * Gets the collation method
- * @since 5.0
- * @return Pointer to collation method
- */
- virtual const TCollationMethod* CollationMethod() = 0;
-
- };
-
-#endif // MGFLMITEMGROUP_H
-
-// End of File
--- a/filemanager/GFLM/src/CGflmDirectoryListingCache.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Provides directory listing cache
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmDirectoryListingCache.h"
-#include "GFLM.hrh"
-#include "GflmUtils.h"
-#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <f32file.h>
-#else
-#include <f32file.h>
-#include <f32file_private.h>
-#endif
-#include <e32std.h>
-
-
-// CONSTANTS
-const TInt KListingGranularity = 0x2000; // 8KB
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::CGflmDirectoryListingCache
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmDirectoryListingCache::CGflmDirectoryListingCache(
- RFs& aFss,
- const TBool& aCancelIndicator ) :
- iFss( aFss ),
- iCancelIndicator( aCancelIndicator )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGflmDirectoryListingCache* CGflmDirectoryListingCache::NewL(
- RFs& aFss,
- const TBool& aCancelIndicator )
- {
- return new( ELeave ) CGflmDirectoryListingCache(
- aFss, aCancelIndicator );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::~CGflmDirectoryListingCache()
-// -----------------------------------------------------------------------------
-//
-CGflmDirectoryListingCache::~CGflmDirectoryListingCache()
- {
- delete iCache;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::ClearCache()
-// -----------------------------------------------------------------------------
-//
-void CGflmDirectoryListingCache::ClearCache()
- {
- iClearCache = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::ListingL()
-// Looks if a directory's listing is already loaded and returns it. If the
-// the listing is not found, it's read and added to the cache.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const CGflmDirectoryListingCache::CEntryArray*
- CGflmDirectoryListingCache::ListingL( const TDesC& aDirectory )
- {
-
- TIMESTAMP( "GFLM listing fetch started: " )
-
- // Clear directory cache first if needed
- if ( iClearCache )
- {
- delete iCache;
- iCache = NULL;
- iClearCache = EFalse;
- }
-
- // Check if directory is already cached
- TBool found( EFalse );
- if ( iCache && !aDirectory.Compare( *( iCache->iDirectory ) ) )
- {
- found = ETrue;
- }
-
- if ( !found )
- {
- // Read directory to cache
- CListingNamePair* newPair = CListingNamePair::NewLC( aDirectory );
- GetDirL( *newPair );
- CleanupStack::Pop( newPair );
- delete iCache;
- iCache = NULL;
- iCache = newPair;
- }
-
- TIMESTAMP( "GFLM listing fetch ended: " )
-
- return iCache->iListing;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::GetDirL
-// -----------------------------------------------------------------------------
-//
-void CGflmDirectoryListingCache::GetDirL( CListingNamePair& aPair )
- {
- RDir dir;
- User::LeaveIfError( dir.Open(
- iFss,
- *aPair.iDirectory,
- KEntryAttNormal | KEntryAttDir ) );
- CleanupClosePushL( dir );
-
- TInt err( KErrNone );
-
- do
- {
- if ( iCancelIndicator )
- {
- // User has canceled the operation, abort
- User::Leave( KErrCancel );
- }
-
- err = dir.Read( iEntryBuffer );
- if ( err == KErrNone || err == KErrEof )
- {
- TInt entryCount( iEntryBuffer.Count() );
- if ( !entryCount )
- {
- break;
- }
- for ( TInt i( 0 ); i < entryCount; i++ )
- {
- const TEntry& entry( iEntryBuffer[ i ] );
- TInt entrySize( EntrySize( entry, ETrue ) );
- aPair.iListing->AppendL( entry, entrySize );
- }
- }
-
- }while ( err == KErrNone );
-
- if ( err != KErrNone && err != KErrEof )
- {
- User::Leave( err );
- }
-
- CleanupStack::PopAndDestroy( &dir );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::CListingNamePair::~CListingNamePair()
-// -----------------------------------------------------------------------------
-//
-CGflmDirectoryListingCache::CListingNamePair::~CListingNamePair()
- {
- delete iDirectory;
-
- if ( iListing )
- {
- iListing->Reset();
- delete iListing;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::CListingNamePair::ConstructL()
-// -----------------------------------------------------------------------------
-//
-void CGflmDirectoryListingCache::CListingNamePair::ConstructL(
- const TDesC& aDirectory )
- {
- iDirectory = aDirectory.AllocL();
- iListing = new( ELeave ) CEntryArray( KListingGranularity );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::CListingNamePair::NewLC()
-// -----------------------------------------------------------------------------
-//
-CGflmDirectoryListingCache::CListingNamePair*
- CGflmDirectoryListingCache::CListingNamePair::NewLC(
- const TDesC& aDirectory )
- {
- CListingNamePair* self = new ( ELeave ) CListingNamePair();
- CleanupStack::PushL( self );
- self->ConstructL( aDirectory );
- return self;
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmDriveItem.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Drive item definitions
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmDriveItem.h"
-#include "GflmUtils.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::CGflmDriveItem
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmDriveItem::CGflmDriveItem(
- const TInt aDrive,
- const TVolumeInfo& aVolume,
- const TInt aVolumeStatus,
- const TUint aDriveStatus )
- : iVolume( aVolume ),
- iDrive( aDrive ),
- iVolumeStatus( aVolumeStatus ),
- iDriveStatus( aDriveStatus )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGflmDriveItem* CGflmDriveItem::NewLC(
- const TInt aDrive,
- const TVolumeInfo& aVolume,
- const TInt aVolumeStatus,
- const TUint aDriveStatus )
- {
- CGflmDriveItem* self = new( ELeave ) CGflmDriveItem(
- aDrive,
- aVolume,
- aVolumeStatus,
- aDriveStatus );
-
- CleanupStack::PushL( self );
- self->ConstructL();
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmDriveItem::ConstructL()
- {
- SetRootDirectoryL( TDriveUnit( iDrive ).Name() );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::~CGflmDriveItem
-//
-// -----------------------------------------------------------------------------
-//
-CGflmDriveItem::~CGflmDriveItem()
- {
- delete iLocalizedName;
- delete iRootDir;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::Type
-//
-// -----------------------------------------------------------------------------
-//
-CGflmGroupItem::TGflmItemType CGflmDriveItem::Type() const
- {
- return EDrive;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::Name
-//
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmDriveItem::Name() const
- {
- if ( iLocalizedName )
- {
- return iLocalizedName->Des();
- }
- return TPtrC( iVolume.iName );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::Date
-//
-// -----------------------------------------------------------------------------
-//
-TTime CGflmDriveItem::Date() const
- {
- return TTime( 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::Size
-//
-// -----------------------------------------------------------------------------
-//
-TInt64 CGflmDriveItem::Size() const
- {
- return 0;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::Ext
-//
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmDriveItem::Ext() const
- {
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::SetLocalizedNameL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmDriveItem::SetLocalizedNameL( const TDesC& aName )
- {
- HBufC* temp = aName.AllocL();
- delete iLocalizedName;
- iLocalizedName = temp;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::SetRootDirectoryL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmDriveItem::SetRootDirectoryL( const TDesC& aPath )
- {
- const TInt KFmgrBackslashSpace = 1;
- TInt len( aPath.Length() );
- HBufC* temp = HBufC::NewL( len + KFmgrBackslashSpace );
- TPtr ptr( temp->Des() );
- ptr.Copy( aPath );
- GflmUtils::EnsureFinalBackslash( ptr );
- delete iRootDir;
- iRootDir = temp;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::RootDirectory
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CGflmDriveItem::RootDirectory() const
- {
- return iRootDir->Des();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::GetVolumeInfo
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C const TVolumeInfo& CGflmDriveItem::VolumeInfo() const
- {
- return iVolume;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::Drive
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CGflmDriveItem::Drive() const
- {
- return iDrive;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::VolumeStatus
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CGflmDriveItem::VolumeStatus() const
- {
- return iVolumeStatus;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveItem::DriveStatus
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TUint CGflmDriveItem::DriveStatus() const
- {
- return iDriveStatus;
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmDriveResolver.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Resolves different media types' drive letters
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmDriveResolver.h"
-#include "CGflmDriveItem.h"
-#include "MGflmItemFilter.h"
-#include "GflmUtils.h"
-#include <f32file.h>
-#ifdef RD_MULTIPLE_DRIVE
- #include <driveinfo.h>
-#endif // RD_MULTIPLE_DRIVE
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::CGflmDriveResolver
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmDriveResolver::CGflmDriveResolver( RFs& aFs ) :
- iFs( aFs )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGflmDriveResolver* CGflmDriveResolver::NewL( RFs& aFs )
- {
- CGflmDriveResolver* self = new ( ELeave ) CGflmDriveResolver( aFs );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGflmDriveResolver::ConstructL()
- {
- User::LeaveIfError( iCs.CreateLocal() );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::~CGflmDriveResolver
-//
-// -----------------------------------------------------------------------------
-//
-CGflmDriveResolver::~CGflmDriveResolver()
- {
- iDrives.ResetAndDestroy();
- iDrives.Close();
- iCs.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::RefreshDrives()
-//
-// -----------------------------------------------------------------------------
-//
-TInt CGflmDriveResolver::RefreshDrives( MGflmItemFilter* aFilter )
- {
- iCs.Wait();
-
- TRAPD( ret, RefreshDrivesL( aFilter ) );
-
- LOG_IF_ERROR1(
- ret, "CGflmDriveResolver::RefreshDrives-ret=%d", ret )
-
- iCs.Signal();
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::RefreshDrivesL()
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmDriveResolver::RefreshDrivesL( MGflmItemFilter* aFilter )
- {
- TIMESTAMP( "GFLM refresh drives started: " )
-
- if ( !iRefreshed )
- {
- iDrives.ResetAndDestroy();
- TDriveList drives;
- User::LeaveIfError( iFs.DriveList( drives, KDriveAttAll ) );
- TInt count( drives.Length() );
- for ( TInt i( 0 ); i < count; i++ )
- {
- if ( drives[ i ] )
- {
- AppendDriveL( i, aFilter );
- }
- }
- iRefreshed = ETrue;
- }
-
- TIMESTAMP( "GFLM refresh drives ended: " )
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::DriveCount()
-//
-// -----------------------------------------------------------------------------
-//
-TInt CGflmDriveResolver::DriveCount() const
- {
- return iDrives.Count();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::DriveAt()
-//
-// -----------------------------------------------------------------------------
-//
-CGflmDriveItem* CGflmDriveResolver::DriveAt( const TInt aIndex ) const
- {
- return iDrives[ aIndex ];
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::DriveFromPath()
-//
-// -----------------------------------------------------------------------------
-//
-CGflmDriveItem* CGflmDriveResolver::DriveFromPath( const TDesC& aPath ) const
- {
- TInt drv( 0 );
- if ( aPath.Length() &&
- RFs::CharToDrive( aPath[ 0 ], drv ) == KErrNone )
- {
- return DriveFromId( drv );
- }
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::ClearDrives()
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmDriveResolver::ClearDrives()
- {
- iRefreshed = EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::IsRootPath()
-//
-// -----------------------------------------------------------------------------
-//
-TBool CGflmDriveResolver::IsRootPath( const TDesC& aPath ) const
- {
- TInt count( iDrives.Count() );
- TInt pathLen( aPath.Length() );
-
- for ( TInt i( 0 ); i < count; i++ )
- {
- CGflmDriveItem* drvItem = iDrives[ i ];
- TPtrC root( drvItem->RootDirectory() );
-
- if ( pathLen == root.Length() && !root.CompareF( aPath ) )
- {
- return ETrue;
- }
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::AppendDriveL()
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmDriveResolver::AppendDriveL(
- const TInt aDrive, MGflmItemFilter* aFilter )
- {
- INFO_LOG1( "CGflmDriveResolver::AppendDriveL()-aDrive=%d", aDrive )
-
- TVolumeInfo volInfo;
- TInt err( iFs.Volume( volInfo, aDrive ) );
-
- LOG_IF_ERROR1( err, "CGflmDriveResolver::AppendDriveL()-err=%d", err )
-
- if ( err != KErrNone )
- {
- TInt err2( iFs.Drive( volInfo.iDrive, aDrive ) );
-
- LOG_IF_ERROR1( err2, "CGflmDriveResolver::AppendDriveL()-err2=%d", err )
-
- if ( err2 != KErrNone )
- {
- return;
- }
- }
-
- TDriveInfo& drvInfo( volInfo.iDrive );
- if ( drvInfo.iMediaAtt & KMediaAttLocked )
- {
- err = KErrLocked;
- }
- if ( drvInfo.iType == EMediaNotPresent )
- {
- err = KErrNotReady;
- }
-
- TUint drvStatus( 0 );
-
-#ifdef RD_MULTIPLE_DRIVE
- TInt err3( DriveInfo::GetDriveStatus( iFs, aDrive, drvStatus ) );
- LOG_IF_ERROR1( err3, "CGflmDriveResolver::AppendDriveL()-err3=%d", err3 )
- if ( err3 != KErrNone )
- {
- // Supress error
- }
-#endif // RD_MULTIPLE_DRIVE
-
- CGflmDriveItem* drvItem = CGflmDriveItem::NewLC(
- aDrive, volInfo, err, drvStatus );
-
- if ( drvInfo.iDriveAtt & KDriveAttRemote )
- {
- // Get remote drive name
- if ( iFs.GetDriveName( aDrive, iReadBuffer ) == KErrNone )
- {
- drvItem->SetLocalizedNameL( iReadBuffer );
- }
- }
-
- TBool allowed( ETrue );
- if ( aFilter )
- {
- allowed = aFilter->FilterItemL( drvItem, 0, NULL );
- }
- if ( allowed )
- {
- iDrives.AppendL( drvItem );
- CleanupStack::Pop( drvItem );
- }
- else
- {
- CleanupStack::PopAndDestroy( drvItem );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::IsRemoteDrive()
-//
-// -----------------------------------------------------------------------------
-//
-TBool CGflmDriveResolver::IsRemoteDrive( const TDesC& aPath ) const
- {
- CGflmDriveItem* drv = DriveFromPath( aPath );
- if ( drv )
- {
- const TVolumeInfo& vol( drv->VolumeInfo() );
- if ( vol.iDrive.iDriveAtt & KDriveAttRemote )
- {
- return ETrue;
- }
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::DriveFromId()
-//
-// -----------------------------------------------------------------------------
-//
-CGflmDriveItem* CGflmDriveResolver::DriveFromId( const TInt aDrive ) const
- {
- TInt count( iDrives.Count() );
- for ( TInt i( 0 ); i < count; i++ )
- {
- CGflmDriveItem* drvItem = iDrives[ i ];
- if ( aDrive == drvItem->Drive() )
- {
- return drvItem;
- }
- }
- return NULL;
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmFileFinder.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,408 +0,0 @@
-/*
-* Copyright (c) 2007 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: Searches items matching with given string in given file system
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <e32std.h>
-#include <f32file.h>
-#include <bautils.h>
-#include "CGflmFileFinder.h"
-#include "CGflmFileFinderItem.h"
-#include "CGflmDriveItem.h"
-#include "CGflmDriveResolver.h"
-#include "CGflmItemLocalizer.h"
-#include "MGflmItemFilter.h"
-#include "GflmUtils.h"
-
-// CONSTANTS
-const TInt KWildCardSpace = 2;
-_LIT( KWildCard, "*" );
-const TInt KSearchResultsGranularity = 32;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// MakeWildStringL
-// -----------------------------------------------------------------------------
-//
-static HBufC* MakeWildStringL( const TDesC& aString )
- {
- if ( GflmUtils::HasWildCard( aString ) )
- {
- return aString.AllocL();
- }
- HBufC* ret = HBufC::NewL( aString.Length() + KWildCardSpace );
- TPtr ptr( ret->Des() );
- ptr.Copy( KWildCard );
- ptr.Append( aString );
- ptr.Append( KWildCard );
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// MakeWildPathL
-// -----------------------------------------------------------------------------
-//
-#if 0
-static HBufC* MakeWildPathL( const TDesC& aFolder, const TDesC& aString )
- {
- const TInt KBackslashSpace = 1;
- if ( !GflmUtils::HasWildCard( aString ) )
- {
- return aFolder.AllocL();
- }
- HBufC* ret = HBufC::NewL(
- aFolder.Length() + aString.Length() + KBackslashSpace );
- TPtr ptr( ret->Des() );
- ptr.Copy( aFolder );
- GflmUtils::EnsureFinalBackslash( ptr );
- ptr.Append( aString );
- return ret;
- }
-#endif // 0
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::CGflmFileFinder
-// -----------------------------------------------------------------------------
-//
-CGflmFileFinder::CGflmFileFinder(
- RFs& aFss,
- CGflmItemLocalizer& aLocalizer,
- CGflmDriveResolver& aResolver,
- const TBool& aCancelIndicator ) :
- iFss( aFss ),
- iItemLocalizer( aLocalizer ),
- iDriveResolver( aResolver ),
- iCancelIndicator( aCancelIndicator ),
- iSearchResults( KSearchResultsGranularity )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::NewL
-// -----------------------------------------------------------------------------
-//
-CGflmFileFinder* CGflmFileFinder::NewL(
- RFs& aFss,
- CGflmItemLocalizer& aLocalizer,
- CGflmDriveResolver& aResolver,
- const TBool& aCancelIndicator )
- {
- CGflmFileFinder* self = new( ELeave ) CGflmFileFinder(
- aFss, aLocalizer, aResolver, aCancelIndicator );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinder::ConstructL()
- {
- iSortCollationMethod = *Mem::CollationMethodByIndex( 0 );
- iSortCollationMethod.iFlags |=
- TCollationMethod::EIgnoreNone | TCollationMethod::EFoldCase;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::~CGflmFileFinder
-// -----------------------------------------------------------------------------
-//
-CGflmFileFinder::~CGflmFileFinder()
- {
- delete iSearchFolder;
- delete iSearchFolderWild;
- delete iSearchString;
- delete iSearchStringWild;
- iSearchResults.ResetAndDestroy();
- iSearchResults.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::SetSearchFolderL
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinder::SetSearchFolderL( const TDesC& aSearchFolder )
- {
- delete iSearchFolderWild;
- iSearchFolderWild = NULL;
-
- delete iSearchFolder;
- iSearchFolder = NULL;
- iSearchFolder = aSearchFolder.AllocL();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::SetSearchStringL
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinder::SetSearchStringL( const TDesC& aSearchString )
- {
- delete iSearchFolderWild;
- iSearchFolderWild = NULL;
-
- delete iSearchString;
- iSearchString = NULL;
- iSearchString = aSearchString.AllocL();
-
- delete iSearchStringWild;
- iSearchStringWild = NULL;
- iSearchStringWild = MakeWildStringL( aSearchString );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::RefreshL
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinder::RefreshL(
- MGflmItemFilter* aFilter,
- TGflmSortMethod aSortMethod,
- TGflmRefreshMode aRefreshMode )
- {
- FUNC_LOG
-
- INFO_LOG2(
- "CGflmItemGroupImpl::RefreshL-aRefreshMode=%d, aSortMethod=%d",
- aRefreshMode, aSortMethod )
-
- if ( aRefreshMode == ERefreshItems )
- {
- TRAPD( err, DoSearchL( aFilter ) );
-
- // If error just log it and show already found items
- if ( err != KErrNone )
- {
- ERROR_LOG1( "CGflmFileFinder::RefreshL-err=%d", err )
- }
- }
-
- if ( aSortMethod == EByMatch )
- {
- iSearchResults.Sort( CGflmFileFinderItem::CompareByMatch );
- }
- else
- {
- iSearchResults.Sort( CGflmGroupItem::GetSortL( aSortMethod ) );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::DoSearchL
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinder::DoSearchL( MGflmItemFilter* aFilter )
- {
- FUNC_LOG
-
- iSearchResults.ResetAndDestroy();
-
- // Ensure that search data is defined
- if ( !iSearchFolder || !iSearchString || !iSearchStringWild )
- {
- return;
- }
- // Ensure that search drive exists
- CGflmDriveItem* drvItem = iDriveResolver.DriveFromPath( *iSearchFolder );
- if ( !drvItem )
- {
- return;
- }
- if ( !iSearchFolderWild )
- {
-#if 0
- if ( iDriveResolver.IsRemoteDrive( *iSearchFolder ) )
- {
- // Some remote drives are case sensitive with wild cards.
- // Therefore, wild cards cannot be used for remote drives,
- // because then it is not possible to do case
- // insensitive comparison like it is done for local drives.
- iSearchFolderWild = iSearchFolder->AllocL();
- }
- else
- {
- // Do search using the folder with wild string for better performance.
- // It is faster to let file server do the wild matching instead of
- // reading all subitems under search folder to be matched here.
-
- // Prepare search folder with wild search string
- iSearchFolderWild = MakeWildPathL(
- *iSearchFolder, *iSearchStringWild );
- }
-#else
- // Because of problems with localized folder names,
- // wild card folder string cannot be given to file server since
- // file server is not aware of localized names.
- // This search operation is slower because all items are transferred
- // here for comparison.
- iSearchFolderWild = iSearchFolder->AllocL();
-#endif
- }
-
- INFO_LOG1( "CGflmFileFinder::DoSearchL-CDirScan::NewLC-%S",
- iSearchFolderWild )
- CDirScan* dirScan = CDirScan::NewLC( iFss );
-
- INFO_LOG( "CGflmFileFinder::DoSearchL-CDirScan::SetScanDataL" )
- dirScan->SetScanDataL( *iSearchFolderWild, KEntryAttDir, ESortNone );
-
- INFO_LOG( "CGflmFileFinder::DoSearchL-CDirScan::NextL" )
- CDir* dir = NULL;
- dirScan->NextL( dir );
-
- while( dir )
- {
- CleanupStack::PushL( dir );
- if ( iCancelIndicator )
- {
- User::Leave( KErrCancel );
- }
- TPtrC basePath( dirScan->FullPath() );
- INFO_LOG1( "CGflmFileFinder::DoSearchL-Search-%S", &basePath )
-
- TInt count( dir->Count() );
- for ( TInt i( 0 ); i < count; ++i )
- {
- if ( iCancelIndicator )
- {
- User::Leave( KErrCancel );
- }
- const TEntry& entry( ( *dir )[ i ] );
- TPtrC name( entry.iName );
- TBool isLocalized( EFalse );
- TBool isDir( entry.IsDir() );
- if( isDir )
- {
- // Handle localized name
- GflmUtils::GetFullPath( basePath, entry, iFullPath );
- TPtrC localizedName(
- iItemLocalizer.LocalizeFromWorkThread( iFullPath ) );
- if ( localizedName.Length() )
- {
- name.Set( localizedName );
- isLocalized = ETrue;
- }
- }
- // Append matching items
- if( name.MatchC( *iSearchStringWild ) != KErrNotFound )
- {
- CGflmFileFinderItem* finderItem = CGflmFileFinderItem::NewLC(
- entry, basePath );
- if ( isLocalized )
- {
- finderItem->SetLocalizedNameL( name );
- }
- // Filter out unwanted items
- if ( !aFilter ||
- ( aFilter && aFilter->FilterItemL(
- finderItem,
- isDir ? CGflmGroupItem::EDirectory : CGflmGroupItem::EFile,
- drvItem ) ) )
- {
- finderItem->PrepareSort( *iSearchString );
- finderItem->SetGroup( this );
- iSearchResults.AppendL( finderItem );
- CleanupStack::Pop( finderItem );
- }
- else
- {
- CleanupStack::PopAndDestroy( finderItem );
- }
- }
- }
- CleanupStack::PopAndDestroy( dir );
-
- INFO_LOG( "CGflmFileFinder::DoSearchL-CDirScan::NextL" )
- dirScan->NextL( dir );
- }
- CleanupStack::PopAndDestroy( dirScan );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::ItemCount
-// -----------------------------------------------------------------------------
-//
-TInt CGflmFileFinder::ItemCount() const
- {
- return iSearchResults.Count();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::Item
-// -----------------------------------------------------------------------------
-//
-CGflmGroupItem* CGflmFileFinder::Item( TInt aIndex )
- {
- return iSearchResults[ aIndex ];
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::Id
-// -----------------------------------------------------------------------------
-//
-TInt CGflmFileFinder::Id() const
- {
- return KErrNotFound;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::AddSourceL
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinder::AddSourceL( const TDesC& /*aDirectory*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::ResetSources
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinder::ResetSources()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::AddActionItemL
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinder::AddActionItemL( TInt /*aId*/, const TDesC& /*aCaption*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::SetInclusion
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinder::SetInclusion( TUint /*aInclusion*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinder::CollationMethod
-// -----------------------------------------------------------------------------
-//
-const TCollationMethod* CGflmFileFinder::CollationMethod()
- {
- return &iSortCollationMethod;
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmFileFinderItem.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
-* Copyright (c) 2007 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: File finder item definitions
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <e32std.h>
-#include <f32file.h>
-#include "CGflmFileFinderItem.h"
-#include "GflmUtils.h"
-
-// CONSTANTS
-const TInt16 KExactMatch = 0;
-const TInt16 KBeginMatch = 1;
-const TInt16 KNoMatch = KMaxTInt16;
-
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// GetSortValue
-// -----------------------------------------------------------------------------
-//
-TInt16 GetSortValue( const TDesC& aName, const TDesC& aSearchString )
- {
- TInt16 ret( 0 );
- TInt pos( 0 );
- if ( GflmUtils::HasWildCard( aSearchString ) )
- {
- pos = aName.MatchC( aSearchString );
- if ( pos != KErrNotFound )
- {
- ret = KBeginMatch + pos;
- }
- else
- {
- ret = KNoMatch;
- }
- }
- else
- {
- pos = aName.FindC( aSearchString );
- if ( !pos && aName.Length() == aSearchString.Length() )
- {
- ret = KExactMatch;
- }
- else if ( pos != KErrNotFound )
- {
- ret = KBeginMatch + pos;
- }
- else
- {
- ret = KNoMatch;
- }
- }
- return ret;
- }
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinderItem::CGflmFileFinderItem
-// -----------------------------------------------------------------------------
-//
-CGflmFileFinderItem::CGflmFileFinderItem( const TEntry& aEntry ) :
- iEntry( aEntry )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinderItem::NewLC
-// -----------------------------------------------------------------------------
-//
-CGflmFileFinderItem* CGflmFileFinderItem::NewLC(
- const TEntry& aFSEntry,
- const TDesC& aBasePath )
- {
- CGflmFileFinderItem* self = new( ELeave ) CGflmFileFinderItem( aFSEntry );
-
- CleanupStack::PushL( self );
- self->ConstructL( aBasePath );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinderItem::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinderItem::ConstructL( const TDesC& aBasePath )
- {
- iBasePath = aBasePath.AllocL();
- SetBasePath( *iBasePath );
- SetEntry( iEntry );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinderItem::~CGflmFileFinderItem
-// -----------------------------------------------------------------------------
-//
-CGflmFileFinderItem::~CGflmFileFinderItem()
- {
- delete iBasePath;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinderItem::PrepareSort
-// -----------------------------------------------------------------------------
-//
-void CGflmFileFinderItem::PrepareSort(
- const TDesC& aSearchString )
- {
- iSortValue = GetSortValue( Name(), aSearchString );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileFinderItem::CompareByMatch
-// -----------------------------------------------------------------------------
-//
-TInt CGflmFileFinderItem::CompareByMatch(
- const CGflmGroupItem& aFirst,
- const CGflmGroupItem& aSecond )
- {
- const CGflmFileFinderItem& first(
- static_cast< const CGflmFileFinderItem& >( aFirst ) );
- const CGflmFileFinderItem& second(
- static_cast< const CGflmFileFinderItem& >( aSecond ) );
-
- if ( first.iSortValue == second.iSortValue )
- {
- // If both sort value is the same then the directory should be first
- TBool isFirstDir( first.iEntry.IsDir() );
- TBool isSecondDir( second.iEntry.IsDir() );
- if ( isFirstDir && !isSecondDir )
- {
- return -1;
- }
- if ( !isFirstDir && isSecondDir )
- {
- return 1;
- }
- // If even then alphabetical order is used
- return CompareByNameWithoutItemType( aFirst, aSecond );
- }
- if ( first.iSortValue < second.iSortValue )
- {
- return -1;
- }
- return 1;
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmFileListModel.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,686 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: File list model
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmFileListModel.h"
-#include "MGflmItemGroup.h"
-#include "CGflmItemGroupImpl.h"
-#include "CGflmDirectoryListingCache.h"
-#include "CGflmFileRecognizer.h"
-#include "CGflmDriveResolver.h"
-#include "CGflmItemLocalizer.h"
-#include "CGflmFileSystemItem.h"
-#include "CGflmGlobalActionItem.h"
-#include "CGflmFileFinder.h"
-#include "MGflmItemFilter.h"
-#include "GflmUtils.h"
-#include "GFLMConsts.h"
-#include "GFLM.hrh"
-#include <e32base.h>
-#include <e32std.h>
-#include <badesca.h>
-
-
-// CONSTANTS
-
-// Granularity of iGroups array
-const TInt KItemGroupArrayGranularity = 3;
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::CGflmFileListModel
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmFileListModel::CGflmFileListModel( RFs& aFs ) :
- CActive( CActive::EPriorityStandard ),
- iFs( aFs )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CGflmFileListModel* CGflmFileListModel::NewL( RFs& aFs )
- {
- CGflmFileListModel* self = new( ELeave ) CGflmFileListModel( aFs );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CGflmFileListModel::ConstructL()
- {
- FUNC_LOG
-
- CActiveScheduler::Add( this );
-
- iGroups = new( ELeave )
- CArrayPtrSeg< CGflmItemGroupImpl >
- ( KItemGroupArrayGranularity );
- iListingCache = CGflmDirectoryListingCache::NewL( iFs, iCanceled );
- iDriveResolver = CGflmDriveResolver::NewL( iFs );
- iFileRecognizer = CGflmFileRecognizer::NewL(
- iFs, KGFLMFileRecognizerCacheSize, iDriveResolver );
- iItemLocalizer = CGflmItemLocalizer::NewL();
- iFileFinder = CGflmFileFinder::NewL(
- iFs, *iItemLocalizer, *iDriveResolver, iCanceled );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::~CGflmFileListModel
-//
-// -----------------------------------------------------------------------------
-//
-CGflmFileListModel::~CGflmFileListModel()
- {
- FUNC_LOG
-
- Cancel();
- if ( iGroups )
- {
- iGroups->ResetAndDestroy();
- delete iGroups;
- }
- delete iFileFinder;
- delete iListingCache;
- delete iFileRecognizer;
- delete iItemLocalizer;
- delete iDriveResolver;
- iSemaphore.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::RefreshListL()
-// Creates and starts the work thread that refreshes the model
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileListModel::RefreshListL(
- TRequestStatus& aStatus, TGflmRefreshMode aRefreshMode )
- {
- FUNC_LOG
-
- if ( aStatus == KRequestPending )
- {
- return;
- }
-
- iCorrupt = ETrue;
- iClientStatus = &aStatus;
- *iClientStatus = KRequestPending;
- iClientId = RThread().Id();
-
- if ( iShutdown )
- {
- // Ensure client completion
- NotifyClient( KErrNone );
- return;
- }
-
- iCanceled = EFalse;
-
- if ( !IsActive() )
- {
- // Create the work thread to do refresh
- iSemaphore.Close();
- User::LeaveIfError( iSemaphore.CreateLocal( 0 ) );
-
- RThread workThread;
- TInt err( workThread.Create(
- KGFLMWorkThreadName,
- WorkThreadStart,
- KGFLMWorkThreadStackSize,
- NULL,
- this ) );
- LOG_IF_ERROR1( err, "CGflmFileListModel::RefreshListL-err1=%d", err )
- User::LeaveIfError( err );
- workThread.SetPriority( EPriorityLess );
- workThread.Logon( iStatus );
- SetActive();
- iRefreshMode = aRefreshMode;
- workThread.Resume();
- workThread.Close();
- }
- else
- {
- // Signal the work thread to do refresh
- iRefreshMode = aRefreshMode;
- iSemaphore.Signal();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::WorkThreadStart()
-// An entry point function for the work thread
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CGflmFileListModel::WorkThreadStart( TAny* aPtr )
- {
- FUNC_LOG
-
- CGflmFileListModel* self = static_cast< CGflmFileListModel* >( aPtr );
- CTrapCleanup* cleanupStack = CTrapCleanup::New();
- if ( !cleanupStack )
- {
- ERROR_LOG1(
- "CGflmFileListModel::WorkThreadStart-err1=%d", KErrNoMemory )
- return KErrNoMemory;
- }
-
- TRAPD( err, self->iItemLocalizer->SetupWorkThreadLocalizerL() );
- LOG_IF_ERROR1( err, "CGflmFileListModel::WorkThreadStart-err2=%d", err )
-
- self->WorkThread();
- self->iItemLocalizer->ReleaseWorkThreadLocalizer();
- delete cleanupStack;
-
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::WorkThread()
-// -----------------------------------------------------------------------------
-//
-void CGflmFileListModel::WorkThread()
- {
- TInt err( KErrNone );
- do
- {
-
- // Do refresh
- iCorrupt = ETrue;
- err = KErrNone;
-
- TRAP( err, DoRefreshL() );
- if ( err == KErrNone )
- {
- iCorrupt = EFalse;
- }
-
- LOG_IF_ERROR1( err, "CGflmFileListModel::WorkThread-err=%d", err )
-
- NotifyClient( err );
-
- iSemaphore.Wait(); // Wait for refresh signal from main thread
-
- } while ( !iShutdown );
-
- if ( iShutdown )
- {
- // Disable list usage and ensure client completion
- iCorrupt = ETrue;
- NotifyClient( err );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::NotifyClient()
-// -----------------------------------------------------------------------------
-//
-void CGflmFileListModel::NotifyClient( TInt aErr )
- {
- FUNC_LOG
-
- if ( iClientStatus )
- {
- RThread client;
- if ( client.Open( iClientId ) == KErrNone )
- {
- client.RequestComplete( iClientStatus, aErr );
- client.Close();
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::DoRefreshL()
-// This method does the actual refreshing. It's not static so it can access
-// member data and it can leave as it's trap harnessed in RefreshAndNotify()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmFileListModel::DoRefreshL()
- {
- TIMESTAMP( "GFLM refresh files and folders started: " )
-
- INFO_LOG1(
- "CGflmFileListModel::DoRefreshL-iSearchEnabled=%d",
- iSearchEnabled )
-
- if ( iSearchEnabled )
- {
- User::LeaveIfError( iDriveResolver->RefreshDrives( iFilter ) );
- iFileFinder->RefreshL( iFilter, iSearchSortMethod, iRefreshMode );
- }
- else
- {
- if ( iRefreshMode == ERefreshItems )
- {
- iListingCache->ClearCache();
- }
- User::LeaveIfError( iDriveResolver->RefreshDrives( iFilter ) );
-
- TInt groupCount( iGroups->Count() );
- for ( TInt i( 0 ); i < groupCount; i++ )
- {
- iGroups->At( i )->RefreshL( iFilter, iSortMethod, iRefreshMode );
- }
- }
-
- TIMESTAMP( "GFLM refresh files and folders ended: " )
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::CancelRefresh()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileListModel::CancelRefresh()
- {
- FUNC_LOG
-
- iCanceled = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::MdcaCount()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CGflmFileListModel::MdcaCount() const
- {
- if ( iCorrupt )
- {
- return 0;
- }
- if ( iSearchEnabled )
- {
- return iFileFinder->ItemCount();
- }
-
- // Count the total number of items in groups
- TInt groupCount( iGroups->Count() );
- TInt itemCount( 0 );
- for( TInt i( 0 ); i < groupCount; i++ )
- {
- itemCount += iGroups->At( i )->ItemCount();
- }
- return itemCount;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::MdcaPoint()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmFileListModel::MdcaPoint( TInt aIndex ) const
- {
- if ( iSearchEnabled )
- {
- return iFileFinder->Item( aIndex )->Name();
- }
-
- // Return the formatted presentation by global index
- MGflmItemGroup* group = NULL;
- TInt localIndex( 0 );
- GetGroupAndLocalIndex( aIndex, localIndex, group );
- return group->Item( localIndex )->Name();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::GetGroupAndLocalIndex()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmFileListModel::GetGroupAndLocalIndex(
- const TInt aGlobalIndex,
- TInt& aLocalIndex,
- MGflmItemGroup*& aGroup ) const
- {
- // Calculate the group and the requested item's local index
- // from a global index
- TInt groupCount( iGroups->Count() );
- TInt offset( 0 );
- for( TInt i( 0 ); i < groupCount; i++ )
- {
- MGflmItemGroup* currentGroup = iGroups->At( i );
- TInt itemsInGroup( currentGroup->ItemCount() );
- if ( aGlobalIndex < itemsInGroup + offset )
- {
- // The global index resides in this group
- aGroup = iGroups->At( i );
- aLocalIndex = aGlobalIndex - offset;
- return;
- }
- offset += itemsInGroup;
- }
-
- // Group not found
- User::Panic( KGFLMPanicText, EGlobalIndexOutOfBounds );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::Item()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CGflmGroupItem* CGflmFileListModel::Item( TInt aIndex ) const
- {
- if ( iSearchEnabled )
- {
- return iFileFinder->Item( aIndex );
- }
- // Return the formatted presentation by global index
- MGflmItemGroup* group = NULL;
- TInt localIndex( 0 );
- GetGroupAndLocalIndex( aIndex, localIndex, group );
- return group->Item( localIndex );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::ResetModel()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileListModel::ResetModel()
- {
- iGroups->ResetAndDestroy();
- iListingCache->ClearCache();
- iDriveResolver->ClearDrives();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::FindGroupById()
-// Used to provide clients with CGflmItemGroupImpl objects downcasted to
-// CGflmItemGroup.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C MGflmItemGroup* CGflmFileListModel::FindGroupById( TInt aId )
- {
- TInt groupCount( iGroups->Count() );
-
- for( TInt i( 0 ); i < groupCount; i++ )
- {
- CGflmItemGroupImpl* group = iGroups->At( i );
- if ( aId == group->Id() )
- {
- return group;
- }
- }
-
- // Group not found
- User::Panic( KGFLMPanicText, EInvalidGroupId );
-
- // Execution never reaches this point
- // following line keeps the compiler happy
- return NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::CreateGroupL()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-EXPORT_C MGflmItemGroup* CGflmFileListModel::CreateGroupL( TInt aId )
- {
- // Scan the list of groups for identical IDs
- TInt groupCount( iGroups->Count() );
- for ( TInt i( 0 ); i < groupCount; i++ )
- {
- if ( iGroups->At( i )->Id() == aId )
- {
- User::Leave( KErrAlreadyExists );
- }
- }
-
- CGflmItemGroupImpl* newGroup = CGflmItemGroupImpl::NewLC(
- aId,
- iFs,
- *iListingCache,
- *iItemLocalizer,
- *iDriveResolver );
-
- iGroups->AppendL( newGroup );
- CleanupStack::Pop( newGroup );
- return newGroup;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::CreateGroupL()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-EXPORT_C MGflmItemGroup* CGflmFileListModel::CreateGroupL(
- TInt aId, TUint aInclusion )
- {
- MGflmItemGroup* newGroup = CreateGroupL( aId );
- newGroup->SetInclusion( aInclusion );
- return newGroup;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::SetCustomFilter()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-EXPORT_C void CGflmFileListModel::SetCustomFilter( MGflmItemFilter* aFilter )
- {
- iFilter = aFilter;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::ResolveMimeTypeL()
-// Uses the internal file recognition cache
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-EXPORT_C TPtrC CGflmFileListModel::ResolveMimeTypeL( const TDesC& aFilename )
- {
- return iFileRecognizer->RecognizeL( aFilename );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::IsCorrupt()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-EXPORT_C TBool CGflmFileListModel::IsCorrupt() const
- {
- return iCorrupt;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::LocalizedName()
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CGflmFileListModel::LocalizedName( const TDesC& aPath ) const
- {
- return iItemLocalizer->Localize( aPath );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::ClearCache()
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileListModel::ClearCache()
- {
- iListingCache->ClearCache();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::ClearDriveInfo()
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileListModel::ClearDriveInfo()
- {
- iDriveResolver->ClearDrives();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::DriveFromPath()
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CGflmDriveItem* CGflmFileListModel::DriveFromPath(
- const TDesC& aPath ) const
- {
- if ( !iDriveResolver->DriveCount() )
- {
- ERROR_LOG( "CGflmFileListModel::DriveFromPath-Forced drive refresh" )
- iDriveResolver->RefreshDrives( iFilter );
- }
- return iDriveResolver->DriveFromPath( aPath );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::RunL()
-// -----------------------------------------------------------------------------
-//
-void CGflmFileListModel::RunL()
- {
- FUNC_LOG
-
- NotifyClient( iStatus.Int() );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::RunError
-// -----------------------------------------------------------------------------
-//
-TInt CGflmFileListModel::RunError( TInt /*aError*/ )
- {
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGflmFileListModel::DoCancel()
- {
- FUNC_LOG
-
- iShutdown = ETrue;
- iSemaphore.Signal();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::DriveFromId
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CGflmDriveItem* CGflmFileListModel::DriveFromId(
- const TInt aDrive ) const
- {
- if ( !iDriveResolver->DriveCount() )
- {
- ERROR_LOG( "CGflmFileListModel::DriveFromId-Forced drive refresh" )
- iDriveResolver->RefreshDrives( iFilter );
- }
- return iDriveResolver->DriveFromId( aDrive );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::EnableSearchMode
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileListModel::EnableSearchMode( const TBool aEnabled )
- {
- iSearchEnabled = aEnabled;
- if ( iSearchEnabled )
- {
- iSearchSortMethod = EByMatch; // Default for search
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::SearchMode
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CGflmFileListModel::SearchMode()
- {
- return iSearchEnabled;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::SetSearchStringL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileListModel::SetSearchStringL( const TDesC& aSearchString )
- {
- iFileFinder->SetSearchStringL( aSearchString );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::SetSearchFolderL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileListModel::SetSearchFolderL( const TDesC& aSearchFolder )
- {
- iFileFinder->SetSearchFolderL( aSearchFolder );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::SetSortMethod
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileListModel::SetSortMethod( TGflmSortMethod aSortMethod )
- {
- if ( iSearchEnabled )
- {
- iSearchSortMethod = aSortMethod;
- }
- else if ( aSortMethod != EByMatch ) // EByMatch is allowed only for search
- {
- iSortMethod = aSortMethod;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::SortMethod
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TGflmSortMethod CGflmFileListModel::SortMethod() const
- {
- if ( iSearchEnabled )
- {
- return iSearchSortMethod;
- }
- return iSortMethod;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileListModel::FlushCache()
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileListModel::FlushCache()
- {
- iFileRecognizer->FlushCache();
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmFileRecognizer.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,454 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Recogniser wrapper
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmFileRecognizer.h"
-#include "CGflmDriveResolver.h"
-#include "CGflmDriveItem.h"
-#include "GflmUtils.h"
-#include "GFLMConsts.h"
-#include <e32svr.h>
-#include <barsread.h>
-#include <gflmfileextensionmimetypes.rsg>
-#include <data_caging_path_literals.hrh>
-
-
-// CONSTANTS
-_LIT( KFileExtensionResourceFile, "gflmfileextensionmimetypes.rsc" );
-const TInt KMimeTypeGranularity = 10;
-const TUint KPerCentToDrop = 30;
-const TUint KHundredPerCent = 100;
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::CGflmFileRecognizer
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmFileRecognizer::CGflmFileRecognizer(
- CGflmDriveResolver* aDriveResolver,
- RFs& aFs ) :
- iCache( _FOFF( CPathTypePair, iLink ) ),
- iDriveResolver( aDriveResolver ),
- iFs( aFs )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CGflmFileRecognizer::ConstructL( TInt aMemoryConsumption )
- {
- User::LeaveIfError( iApaSession.Connect() );
- iMimeTypes = new( ELeave ) CDesCArraySeg( KMimeTypeGranularity );
- iCacheMaxMemoryUsage = aMemoryConsumption;
-
- // Get resource drive from dll location
- TFileName dllFileName;
- Dll::FileName( dllFileName );
- TParsePtrC dllParse( dllFileName );
-
- TFileName resFileName;
- resFileName.Copy( dllParse.Drive() );
- resFileName.Append( KDC_RESOURCE_FILES_DIR );
- GflmUtils::EnsureFinalBackslash( resFileName );
- resFileName.Append( KFileExtensionResourceFile );
-
- RResourceFile resFile;
- resFile.OpenL( iFs, resFileName );
- CleanupClosePushL( resFile );
- resFile.ConfirmSignatureL();
-
- ConstructExtMimePairsL( resFile, R_EXT_MIME_PAIRS, iExtMimePairs );
- ConstructExtMimePairsL(
- resFile, R_REMOTE_EXT_MIME_PAIRS, iRemoteExtMimePairs );
-
- CleanupStack::PopAndDestroy( &resFile );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::ConstructExtMimePairsL
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmFileRecognizer::ConstructExtMimePairsL(
- RResourceFile& aResFile,
- TInt aResId,
- RPointerArray< CExtMimePair >& aPairs )
- {
- TCleanupItem cleanupItem( ResetAndDestroyExtMimePairs, &aPairs );
- CleanupStack::PushL( cleanupItem );
- // read the pairs
- HBufC8* resData = aResFile.AllocReadLC( aResId );
- TResourceReader reader;
- reader.SetBuffer( resData );
- TInt count( reader.ReadInt16() );
- aPairs.ReserveL( count );
- for ( TInt i( 0 ); i < count; i++ )
- {
- TPtrC ext( reader.ReadTPtrC() );
- TPtrC mime( reader.ReadTPtrC() );
- CExtMimePair* pair = new (ELeave) CExtMimePair();
- CleanupStack::PushL( pair );
- pair->iExt = ext.AllocL();
- pair->iMime = mime.AllocL();
- aPairs.AppendL( pair );
- CleanupStack::Pop( pair );
- }
- CleanupStack::PopAndDestroy( resData );
- CleanupStack::Pop( &aPairs );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::FindMimeFromExt
-//
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmFileRecognizer::FindMimeFromExt(
- const TDesC& aExt,
- RPointerArray< CExtMimePair >& aPairs )
- {
- TInt count( aPairs.Count() );
-
- for( TInt i( 0 ); i < count; i++)
- {
- CExtMimePair* pair = aPairs[ i ];
- if( !aExt.CompareF( *pair->iExt ) )
- {
- return TPtrC( *pair->iMime );
- }
- }
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGflmFileRecognizer* CGflmFileRecognizer::NewL(
- RFs& aFs,
- TInt aMemoryConsumption,
- CGflmDriveResolver* aDriveResolver )
- {
- CGflmFileRecognizer* self =
- new( ELeave ) CGflmFileRecognizer( aDriveResolver, aFs );
-
- CleanupStack::PushL( self );
- self->ConstructL( aMemoryConsumption );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::~CGflmFileRecognizer
-//
-// -----------------------------------------------------------------------------
-//
-CGflmFileRecognizer::~CGflmFileRecognizer()
- {
- iApaSession.Close();
-
- FlushCache();
-
- delete iMimeTypes;
-
- iExtMimePairs.ResetAndDestroy();
- iExtMimePairs.Close();
-
- iRemoteExtMimePairs.ResetAndDestroy();
- iRemoteExtMimePairs.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::RecognizeL( const TDesC& aFilename )
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmFileRecognizer::RecognizeL( const TDesC& aFilename )
- {
- TPtrC mimeType;
- TRAPD( err, mimeType.Set( DoRecognizeL( aFilename ) ) );
- if ( err == KErrNoMemory )
- {
- FlushCache();
- return DoRecognizeL( aFilename );
- }
- User::LeaveIfError( err );
- return mimeType;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::DoRecognizeL( const TDesC& aFilename )
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmFileRecognizer::DoRecognizeL( const TDesC& aFilename )
- {
- // Search the cache for a hit
- TInt cropPoint( aFilename.LocateReverse( KGFLMDot()[ 0 ] ) );
- TBool isRemoteDrive( EFalse );
-
- if ( iDriveResolver && iDriveResolver->IsRemoteDrive( aFilename ) )
- {
- isRemoteDrive = ETrue;
- }
-
- if( cropPoint != KErrNotFound )
- {
- TPtrC ext( aFilename.Mid( cropPoint ) );
- TPtrC mime( FindMimeFromExt( ext, iExtMimePairs ) );
- if ( mime.Length() )
- {
- return mime;
- }
-
- // Use remote drive specific extension mime pairs and skip
- // content recognition because it is so slow for remote drives.
- // Mime types are resolved from extension by remote storage framework
- // anyway.
- if ( isRemoteDrive)
- {
- return FindMimeFromExt( ext, iRemoteExtMimePairs );
- }
- }
- else if ( isRemoteDrive)
- {
- // Skip content recognition for remote drives because it is so slow
- return TPtrC( KNullDesC );
- }
-
- TDblQueIter< CPathTypePair > pairIt( iCache );
- pairIt.SetToFirst();
- CPathTypePair* pair = NULL;
- while ( ( pair = pairIt++ ) != NULL )
- {
- TPtrC ptr( *( pair->iFilename ) );
- if( ptr.Length() == aFilename.Length() &&
- !aFilename.CompareF( ptr ) )
- {
- // Cache hit
- // Move item to the first position if not already.
- // When clearing cache, oldest items can be dropped easily.
- pair->iLink.Deque();
- iCache.AddFirst( *pair );
-
- if ( pair->iTypeIndex != KErrNotFound )
- {
- return iMimeTypes->MdcaPoint( pair->iTypeIndex );
- }
- return TPtrC( KNullDesC );
- }
- }
-
- // Cache miss
- TUid uid( KNullUid );
- TDataType datatype;
-
- TIMESTAMP( "GFLM AppForDocument started: " )
-
- // Acquire the mime-type of the file
- TInt err( iApaSession.AppForDocument( aFilename, uid, datatype ) );
-
- TIMESTAMP( "GFLM AppForDocument ended: " )
-
- if ( err != KErrNone )
- {
- // If recognition returns error, handle as unrecognized file
- ERROR_LOG1(
- "CGflmFileRecognizer::DoRecognizeL-AppForDocument=%d",
- err )
- return TPtrC( KNullDesC );
- }
-
- CPathTypePair* newPair = CPathTypePair::NewLC( aFilename );
- TPtrC mimeType( datatype.Des() );
-
- INFO_LOG2( "GFLM AppForDocument:file=%S,mime=%S", &aFilename, &mimeType )
-
- // Run through the mime-type list to find the correct index
- if ( mimeType.Length() )
- {
- TBool isMimeFound( EFalse );
- TInt mimeCount( iMimeTypes->MdcaCount() );
- for ( TInt j( 0 ); j < mimeCount; j++ )
- {
- if( !mimeType.CompareF( iMimeTypes->MdcaPoint( j ) ) )
- {
- newPair->iTypeIndex = j;
- isMimeFound = ETrue;
- break;
- }
- }
- // Add mime type to list if not already added
- if ( !isMimeFound )
- {
- iMimeTypes->AppendL( mimeType );
- newPair->iTypeIndex = mimeCount;
- }
- }
-
- // Cleanup cache and add new pair
- CleanupStack::Pop( newPair );
- CleanupCache();
- iCacheMemoryUsage += newPair->Size();
- iCache.AddFirst( *newPair );
-
- if ( newPair->iTypeIndex != KErrNotFound )
- {
- return iMimeTypes->MdcaPoint( newPair->iTypeIndex );
- }
- return TPtrC( KNullDesC );
- }
-
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::ResetAndDestroyExtMimePairs( )
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmFileRecognizer::ResetAndDestroyExtMimePairs( TAny* aPtr )
- {
- RPointerArray< CExtMimePair >* extMimePairs =
- static_cast< RPointerArray< CExtMimePair >* >( aPtr );
- extMimePairs->ResetAndDestroy();
- extMimePairs->Close();
- }
-
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::FlushCache( )
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmFileRecognizer::FlushCache()
- {
- TDblQueIter< CPathTypePair > pairIt( iCache );
- pairIt.SetToFirst();
- CPathTypePair* pair = NULL;
- while ( ( pair = pairIt++ ) != NULL )
- {
- pair->iLink.Deque();
- delete pair;
- }
- iCacheMemoryUsage = 0;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::CleanupCache( )
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmFileRecognizer::CleanupCache( )
- {
- if( iCacheMemoryUsage > iCacheMaxMemoryUsage )
- {
- TInt dropThreshold = ( TInt ) ( ( ( ( TUint ) iCacheMaxMemoryUsage ) *
- KPerCentToDrop ) / KHundredPerCent );
- TInt droppedSize( 0 );
-
- TDblQueIter< CPathTypePair > pairIt( iCache );
- pairIt.SetToLast();
- CPathTypePair* pair = NULL;
- while ( ( pair = pairIt-- ) != NULL )
- {
- droppedSize += pair->Size();
- pair->iLink.Deque();
- delete pair;
- if ( droppedSize >= dropThreshold )
- {
- break;
- }
- }
- iCacheMemoryUsage -= droppedSize;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::CPathTypePair::NewLC()
-//
-// -----------------------------------------------------------------------------
-//
-CGflmFileRecognizer::CPathTypePair*
- CGflmFileRecognizer::CPathTypePair::NewLC( const TDesC& aFilename )
- {
- CPathTypePair* self = new ( ELeave ) CPathTypePair();
- CleanupStack::PushL( self );
- self->ConstructL( aFilename );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::CPathTypePair::ConstructL()
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmFileRecognizer::CPathTypePair::ConstructL( const TDesC& aFilename )
- {
- iFilename = aFilename.AllocL();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::CPathTypePair::CPathTypePair()
-//
-// -----------------------------------------------------------------------------
-//
-CGflmFileRecognizer::CPathTypePair::CPathTypePair() :
- iTypeIndex( KErrNotFound )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::CPathTypePair::~CPathTypePair()
-//
-// -----------------------------------------------------------------------------
-//
-CGflmFileRecognizer::CPathTypePair::~CPathTypePair()
- {
- delete iFilename;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::CPathTypePair::Size()
-//
-// -----------------------------------------------------------------------------
-//
-TInt CGflmFileRecognizer::CPathTypePair::Size() const
- {
- return ( sizeof( TInt ) + iFilename->Size() + sizeof( TDblQueLink ) );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileRecognizer::CExtMimePair::~CExtMimePair()
-//
-// -----------------------------------------------------------------------------
-//
-CGflmFileRecognizer::CExtMimePair::~CExtMimePair()
- {
- delete iExt;
- delete iMime;
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmFileSystemItem.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,212 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: File system item definitions
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmFileSystemItem.h"
-#include "GflmUtils.h"
-#include "GFLMConsts.h"
-#include <f32file.h>
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::CGflmFileSystemItem
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmFileSystemItem::CGflmFileSystemItem(
- const TEntry& aFSEntry,
- const TDesC& aBasePath ) :
- iFSEntry( &aFSEntry ),
- iBasePath( aBasePath )
- {
- SetExt();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGflmFileSystemItem* CGflmFileSystemItem::NewLC(
- const TEntry& aFSEntry,
- const TDesC& aBasePath )
- {
- CGflmFileSystemItem* self = new( ELeave ) CGflmFileSystemItem(
- aFSEntry, aBasePath );
-
- CleanupStack::PushL( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::~CGflmFileSystemItem
-//
-// -----------------------------------------------------------------------------
-//
-CGflmFileSystemItem::~CGflmFileSystemItem()
- {
- delete iLocalizedName;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::Type
-//
-// -----------------------------------------------------------------------------
-//
-CGflmGroupItem::TGflmItemType CGflmFileSystemItem::Type() const
- {
- if ( iFSEntry->IsDir() )
- {
- return EDirectory;
- }
- return EFile;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::Name
-//
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmFileSystemItem::Name() const
- {
- if ( iLocalizedName )
- {
- return iLocalizedName->Des();
- }
- // The entry has no localized name
- return TPtrC( iFSEntry->iName );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::Date
-//
-// -----------------------------------------------------------------------------
-//
-TTime CGflmFileSystemItem::Date() const
- {
- return iFSEntry->iModified;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::Size
-//
-// -----------------------------------------------------------------------------
-//
-TInt64 CGflmFileSystemItem::Size() const
- {
- return static_cast<TUint>( iFSEntry->iSize );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::Ext
-//
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmFileSystemItem::Ext() const
- {
- return iExt;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::GetFullPath
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileSystemItem::GetFullPath( TDes& aPath ) const
- {
- GflmUtils::GetFullPath( iBasePath, *iFSEntry, aPath );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::SetLocalizedNameL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmFileSystemItem::SetLocalizedNameL( const TDesC& aName )
- {
- HBufC* temp = aName.AllocL();
- delete iLocalizedName;
- iLocalizedName = temp;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::Entry
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C const TEntry& CGflmFileSystemItem::Entry() const
- {
- return *iFSEntry;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::FullPathLC
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C HBufC* CGflmFileSystemItem::FullPathLC() const
- {
- return GflmUtils::FullPathLC( iBasePath, *iFSEntry );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::FullPathL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C HBufC* CGflmFileSystemItem::FullPathL() const
- {
- return GflmUtils::FullPathL( iBasePath, *iFSEntry );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::SetEntry
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmFileSystemItem::SetEntry( const TEntry& aEntry )
- {
- iFSEntry = &aEntry;
- SetExt();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmFileSystemItem::SetExt
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmFileSystemItem::SetExt()
- {
- TPtrC name( iFSEntry->iName );
- TInt pos( name.LocateReverse( KGFLMDot()[ 0 ] ) );
- if( pos != KErrNotFound )
- {
- iExt.Set( name.Mid( pos ) );
- }
- else
- {
- iExt.Set( KNullDesC );
- }
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmGlobalActionItem.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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 action item definitions
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmGlobalActionItem.h"
-#include <e32std.h>
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmGlobalActionItem::CGflmGlobalActionItem
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmGlobalActionItem::CGflmGlobalActionItem()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGlobalActionItem::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CGflmGlobalActionItem::ConstructL( const TDesC& aCaption )
- {
- iCaption = aCaption.AllocL();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGlobalActionItem::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGflmGlobalActionItem* CGflmGlobalActionItem::NewLC(
- TInt aId, const TDesC& aCaption )
- {
- CGflmGlobalActionItem* self = new( ELeave ) CGflmGlobalActionItem;
-
- CleanupStack::PushL( self );
- self->iId = aId;
- self->ConstructL( aCaption );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGlobalActionItem::~CGflmGlobalActionItem
-//
-// -----------------------------------------------------------------------------
-//
-CGflmGlobalActionItem::~CGflmGlobalActionItem()
- {
- delete iCaption;
-
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGlobalActionItem::Type()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CGflmGroupItem::TGflmItemType CGflmGlobalActionItem::Type() const
- {
- return EGlobalActionItem;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGlobalActionItem::Name()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmGlobalActionItem::Name() const
- {
- return iCaption->Des();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGlobalActionItem::Date()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TTime CGflmGlobalActionItem::Date() const
- {
- // Date of an action item is undefined
- // Groups containing action items shouldn't be sorted by date
- return TTime( 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGlobalActionItem::Size()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt64 CGflmGlobalActionItem::Size() const
- {
- return 0;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGlobalActionItem::Ext()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmGlobalActionItem::Ext() const
- {
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGlobalActionItem::Id()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CGflmGlobalActionItem::Id() const
- {
- return iId;
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmGroupItem.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,343 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Group item definitions
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmGroupItem.h"
-#include "MGflmItemGroup.h"
-#include <e32std.h>
-
-
-// CONSTANTS
-const TInt KIconIdUndefined = -1;
-const TInt KSortCollationLevel = 3;
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::CGflmGroupItem
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmGroupItem::CGflmGroupItem()
- : iIconId( KIconIdUndefined )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::~CGflmGroupItem()
-// -----------------------------------------------------------------------------
-//
-CGflmGroupItem::~CGflmGroupItem()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::GetIconId()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CGflmGroupItem::GetIconId( TInt& aIconId )
- {
- if ( iIconId == KIconIdUndefined )
- {
- aIconId = 0;
- return KErrNotFound;
- }
- aIconId = iIconId;
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::SetIconId()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmGroupItem::SetIconId( const TInt aIconId )
- {
- iIconId = aIconId;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::CanUseCompareF()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CGflmGroupItem::CanUseCompareF() const
- {
- if ( iStatus & ECanUseCompareF )
- {
- return ETrue;
- }
- if ( iStatus & ECannotUseCompareF )
- {
- return EFalse;
- }
-
- TPtrC name( Name() );
- TInt len( name.Length() );
- const TText* ptr = name.Ptr();
- while ( len-- > 0 )
- {
- TText ch = *ptr++;
- // Do not allow CompareF for non Ascii or special chars
- if ( !( ( ch >= 0x000A && ch <= 0x0039 ) || // Ascii basic symbols
- ( ch >= 0x0041 && ch <= 0x005A ) || // Ascii capital alpha
- ( ch >= 0x0061 && ch <= 0x007A ) ) ) // Ascii small alpha
- {
- iStatus |= ECannotUseCompareF;
- return EFalse;
- }
- }
- iStatus |= ECanUseCompareF;
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::SetGroup()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmGroupItem::SetGroup( MGflmItemGroup* aGroup )
- {
- iGroup = aGroup;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::GetSortL()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-
-TLinearOrder< CGflmGroupItem > CGflmGroupItem::GetSortL(
- TGflmSortMethod aSortMethod )
- {
- switch( aSortMethod )
- {
- case EByName:
- {
- return CompareByName;
- }
- case EByType:
- {
- return CompareByType;
- }
- case EMostRecentFirst:
- {
- return CompareMostRecentFirst;
- }
- case ELargestFirst:
- {
- return CompareLargestFirst;
- }
- default:
- {
- User::Leave( KErrNotSupported );
- }
- }
- return CompareByName;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::CompareByItemType
-// Compares two CGflmGroupItem objects by name (ascending)
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CGflmGroupItem::CompareByItemType(
- const CGflmGroupItem& aFirst, const CGflmGroupItem& aSecond )
- {
- TGflmItemType first( aFirst.Type() );
- TGflmItemType second( aSecond.Type() );
- if ( first < second )
- {
- return -1;
- }
- else if ( first > second )
- {
- return 1;
- }
- return 0;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::CompareByNameWithoutItemType
-// Compares two CGflmGroupItem objects by name (ascending)
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CGflmGroupItem::CompareByNameWithoutItemType(
- const CGflmGroupItem& aFirst, const CGflmGroupItem& aSecond )
- {
- // Do not use CompareC by default with collation
- // because it is very bad for performance when sorting
- // large folders i.e. several 1000s of files with long item names
- // e.g. names containing over 40 chars
-
- // However, some languages are not sorted correctly with CompareF,
- // so do cached name check to decide what comparison to use.
-
- if ( !aFirst.CanUseCompareF() || !aSecond.CanUseCompareF() )
- {
- if ( aFirst.iGroup )
- {
- const TCollationMethod* collate =
- aFirst.iGroup->CollationMethod();
- if ( collate )
- {
- return aFirst.Name().CompareC(
- aSecond.Name(),
- KSortCollationLevel,
- collate );
- }
- }
- }
-
- return aFirst.Name().CompareF( aSecond.Name() );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::CompareByName
-// Compares two CGflmGroupItem objects by name (ascending)
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CGflmGroupItem::CompareByName(
- const CGflmGroupItem& aFirst, const CGflmGroupItem& aSecond )
- {
- TInt ret( CompareByItemType( aFirst, aSecond ) );
- if ( !ret )
- {
- return CompareByNameWithoutItemType( aFirst, aSecond );
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::CompareByType
-// Compares two CGflmGroupItem objects by file extension (ascending)
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CGflmGroupItem::CompareByType(
- const CGflmGroupItem& aFirst, const CGflmGroupItem& aSecond )
- {
- TInt ret( CompareByItemType( aFirst, aSecond ) );
- if ( ret )
- {
- return ret;
- }
-
- // Do not use CompareC by default with collation
- // because it is very bad for performance when sorting
- // large folders i.e. several 1000s of files with long item names
- // e.g. names containing over 40 chars
-
- // However, some languages are not sorted correctly with CompareF,
- // so do cached name check to decide what comparison to use.
-
- if ( !aFirst.CanUseCompareF() || !aSecond.CanUseCompareF() )
- {
- if ( aFirst.iGroup )
- {
- const TCollationMethod* collate =
- aFirst.iGroup->CollationMethod();
- if ( collate )
- {
- ret = aFirst.Ext().CompareC(
- aSecond.Ext(),
- KSortCollationLevel,
- collate );
- if ( !ret )
- {
- ret = CompareByName( aFirst, aSecond );
- }
- return ret;
- }
- }
- }
-
- ret = aFirst.Ext().CompareF( aSecond.Ext() );
- if ( !ret )
- {
- ret = CompareByNameWithoutItemType( aFirst, aSecond );
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::CompareMostRecentFirst
-// Compares two CGflmGroupItem objects by date (ascending)
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CGflmGroupItem::CompareMostRecentFirst(
- const CGflmGroupItem& aFirst, const CGflmGroupItem& aSecond )
- {
- TInt ret( -CompareByItemType( aFirst, aSecond ) );
- if ( ret )
- {
- return ret;
- }
-
- TTime first( aFirst.Date() );
- TTime second( aSecond.Date() );
-
- if ( first > second )
- {
- return -1;
- }
- else if ( first < second )
- {
- return 1;
- }
- return CompareByNameWithoutItemType( aFirst, aSecond );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmGroupItem::CompareLargestFirst
-// Compares two CGflmGroupItem objects by size (ascending)
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CGflmGroupItem::CompareLargestFirst(
- const CGflmGroupItem& aFirst, const CGflmGroupItem& aSecond )
- {
- TInt ret( -CompareByItemType( aFirst, aSecond ) );
- if ( ret )
- {
- return ret;
- }
-
- TInt64 first( aFirst.Size() );
- TInt64 second( aSecond.Size() );
-
- if ( first > second )
- {
- return -1;
- }
- else if ( first < second )
- {
- return 1;
- }
- return CompareByNameWithoutItemType( aFirst, aSecond );
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmItemGroupImpl.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,374 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Concrete implementation of MGflmItemGroup interface
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmItemGroupImpl.h"
-#include "MGflmItemFilter.h"
-#include "CGflmItemLocalizer.h"
-#include "CGflmDriveResolver.h"
-#include "CGflmFileRecognizer.h"
-#include "CGflmDirectoryListingCache.h"
-#include "CGflmGlobalActionItem.h"
-#include "CGflmFileSystemItem.h"
-#include "CGflmDriveItem.h"
-#include "GFLMConsts.h"
-#include "GFLM.hrh"
-#include "GflmUtils.h"
-#include <f32file.h>
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::CGflmItemGroupImpl
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmItemGroupImpl::CGflmItemGroupImpl(
- const TInt aId,
- RFs& aFss,
- CGflmDirectoryListingCache& aCache,
- CGflmItemLocalizer& aLocalizer,
- CGflmDriveResolver& aResolver ) :
- iId( aId ),
- iFss( aFss ),
- iListingCache( aCache ),
- iItemLocalizer( aLocalizer ),
- iDriveResolver( aResolver )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::~CGflmItemGroupImpl
-//
-// -----------------------------------------------------------------------------
-//
-CGflmItemGroupImpl::~CGflmItemGroupImpl()
- {
- iVolatileItems.ResetAndDestroy();
- iVolatileItems.Close();
-
- iStaticItems.ResetAndDestroy();
- iStaticItems.Close();
-
- iItemReferences.Close();
-
- delete iDirectory;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGflmItemGroupImpl* CGflmItemGroupImpl::NewLC(
- const TInt aId,
- RFs& aFss,
- CGflmDirectoryListingCache& aCache,
- CGflmItemLocalizer& aLocalizer,
- CGflmDriveResolver& aResolver )
- {
- CGflmItemGroupImpl* self = new( ELeave ) CGflmItemGroupImpl(
- aId, aFss, aCache, aLocalizer, aResolver );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::ContructL
-// -----------------------------------------------------------------------------
-//
-void CGflmItemGroupImpl::ConstructL()
- {
- iSortCollationMethod = *Mem::CollationMethodByIndex( 0 );
- iSortCollationMethod.iFlags |=
- TCollationMethod::EIgnoreNone | TCollationMethod::EFoldCase;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::RefreshL()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmItemGroupImpl::RefreshL(
- MGflmItemFilter* aFilter,
- TGflmSortMethod aSortMethod,
- TGflmRefreshMode aRefreshMode )
- {
- FUNC_LOG
-
- INFO_LOG2(
- "CGflmItemGroupImpl::RefreshL-aRefreshMode=%d, aSortMethod=%d",
- aRefreshMode, aSortMethod )
-
- if ( aRefreshMode == ERefreshItems )
- {
- // Reset reference list
- iItemReferences.Reset();
-
- // Destroy old filesystem items
- iVolatileItems.ResetAndDestroy();
-
- // Re-read contents of the assigned directories, filter out unwanted
- // items and add rest to the item list
- TIMESTAMP( "GFLM reading and filtering directories started: " )
- PopulateReferenceListL( aFilter );
- TIMESTAMP( "GFLM reading and filtering directories ended: " )
- }
-
- if ( aRefreshMode == ERefreshItems || aRefreshMode == ERefreshSort )
- {
- if ( !( iInclusion & EDrives ) )
- {
- TIMESTAMP( "GFLM group sorting started: " )
- iItemReferences.Sort( CGflmGroupItem::GetSortL( aSortMethod ) );
- TIMESTAMP( "GFLM group sorting ended: " )
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::PopulateReferenceListL()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmItemGroupImpl::PopulateReferenceListL( MGflmItemFilter* aFilter )
- {
- CGflmGroupItem* item = NULL;
- TInt i( 0 );
-
- // Add drive items to the reference list
- if ( iInclusion & EDrives )
- {
- if ( iDirectory )
- {
- // Hide drive selection when location inside folder.
- return;
- }
-
- TInt count( iDriveResolver.DriveCount() );
- for ( i = 0; i < count; i++ )
- {
- // Add directly, items are filtered from drive resolver
- CGflmDriveItem* drvItem = iDriveResolver.DriveAt( i );
- iItemReferences.AppendL( drvItem );
- drvItem->SetGroup( this );
- }
- }
-
- // Add pointers to the static items (action items) to the
- // reference list
- TInt staticCount( iStaticItems.Count() );
-
- for ( i = 0; i < staticCount; i++ )
- {
- item = iStaticItems[ i ];
- if ( !aFilter ||
- ( aFilter && aFilter->FilterItemL( item, iId, NULL ) ) )
- {
- iItemReferences.AppendL( item );
- item->SetGroup( this );
- }
- }
-
- if ( iInclusion & ( EFiles | EDirectories ) )
- {
- if ( iDirectory )
- {
- // Check directory name length validity
- TPtrC directory( iDirectory->Des() );
- TInt dirLen( directory.Length() );
- if ( !dirLen || dirLen > KMaxFileName )
- {
- return;
- }
-
- // Get the drive where items are located
- CGflmDriveItem* drvItem = iDriveResolver.DriveFromPath(
- directory );
-
- const CGflmDirectoryListingCache::CEntryArray* dir =
- iListingCache.ListingL( directory );
- TInt entryCount( dir->Count() );
-
- // Reserve room for all entries at once to avoid overhead
- iVolatileItems.ReserveL( entryCount );
- iItemReferences.ReserveL( iItemReferences.Count() + entryCount );
-
- // Create buffer for filenames
- HBufC* buffer = HBufC::NewLC( KMaxFileName );
- TPtr filename( buffer->Des() );
-
- TIMESTAMP( "GFLM files and folders list genaration started: " )
-
- TInt bsLen( KGFLMBackslash().Length() );
-
- // For all items in a directory listing
- for( i = 0; i < entryCount; i++ )
- {
- const TEntry& entry( ( *dir )[ i ] );
- TBool isDir( entry.IsDir() );
- TInt extLen( isDir ? bsLen : 0 ); // Handle final backslash
- if ( dirLen + entry.iName.Length() + extLen > KMaxFileName )
- {
- continue; // Too long name
- }
- if ( isDir && !( iInclusion & EDirectories ) )
- {
- continue; // No directories allowed
- }
- if ( !isDir && !( iInclusion & EFiles ) )
- {
- continue; // No files allowed
- }
-
- // Create a new filesystem item
- CGflmFileSystemItem* fsItem = CGflmFileSystemItem::NewLC(
- entry, directory );
-
- // Filter out unwanted items
- if ( !aFilter ||
- ( aFilter && aFilter->FilterItemL( fsItem, iId, drvItem ) ) )
- {
- // Only directory items can be localized
- if ( isDir )
- {
- // Get localized name for the item, if it has one
- GflmUtils::GetFullPath( directory, entry, filename );
- TPtrC localizedName(
- iItemLocalizer.LocalizeFromWorkThread( filename ) );
- if ( localizedName.Length() )
- {
- fsItem->SetLocalizedNameL( localizedName );
- }
- }
- iVolatileItems.AppendL( fsItem );
- CleanupStack::Pop( fsItem );
- iItemReferences.AppendL( fsItem );
- fsItem->SetGroup( this );
- }
- else
- {
- CleanupStack::PopAndDestroy( fsItem );
- }
- }
-
- CleanupStack::PopAndDestroy( buffer );
-
- TIMESTAMP( "GFLM files and folders list genaration ended: " )
-
- }
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::ItemCount()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CGflmItemGroupImpl::ItemCount() const
- {
- return iItemReferences.Count();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::Item()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CGflmGroupItem* CGflmItemGroupImpl::Item( TInt aIndex )
- {
- return iItemReferences[ aIndex ];
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::Id()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CGflmItemGroupImpl::Id() const
- {
- return iId;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::SetInclusion()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmItemGroupImpl::SetInclusion( TUint aInclusion )
- {
- iInclusion = aInclusion;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::AddSourceL()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmItemGroupImpl::AddSourceL( const TDesC& aDirectory )
- {
- HBufC* temp = aDirectory.AllocL();
- delete iDirectory;
- iDirectory = temp;
- // Reset reference list to cleanup all references to deleted directory
- iItemReferences.Reset();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::ResetSources()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmItemGroupImpl::ResetSources()
- {
- delete iDirectory;
- iDirectory = NULL;
- // Reset reference list to cleanup all references to deleted directory
- iItemReferences.Reset();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::AddActionItemL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmItemGroupImpl::AddActionItemL( TInt aId, const TDesC& aCaption )
- {
- CGflmGlobalActionItem* actionItem =
- CGflmGlobalActionItem::NewLC( aId, aCaption );
- iStaticItems.AppendL( actionItem );
- CleanupStack::Pop( actionItem );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemGroupImpl::CollationMethod
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const TCollationMethod* CGflmItemGroupImpl::CollationMethod()
- {
- return &iSortCollationMethod;
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmItemLocalizer.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: This class is used to provide localized names
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmItemLocalizer.h"
-#include "GflmUtils.h"
-#include "GFLM.hrh"
-#include <CDirectoryLocalizer.h>
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmItemLocalizer::CGflmItemLocalizer
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmItemLocalizer::CGflmItemLocalizer()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemLocalizer::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGflmItemLocalizer* CGflmItemLocalizer::NewL()
- {
- CGflmItemLocalizer* self = new( ELeave ) CGflmItemLocalizer();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemLocalizer::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGflmItemLocalizer::ConstructL()
- {
- iLocalizer = CDirectoryLocalizer::NewL();
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemLocalizer::~CGflmItemLocalizer
-// -----------------------------------------------------------------------------
-//
-CGflmItemLocalizer::~CGflmItemLocalizer()
- {
- delete iLocalizer;
- // iWorkThreadLocalizer cannot be freed here because it was
- // allocated by another thread
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemLocalizer::Localize()
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmItemLocalizer::Localize( const TDesC& aPath ) const
- {
- return Localize( *iLocalizer, aPath );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemLocalizer::LocalizeFromWorkThread()
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmItemLocalizer::LocalizeFromWorkThread( const TDesC& aPath ) const
- {
- if ( iWorkThreadLocalizer )
- {
- return Localize( *iWorkThreadLocalizer, aPath );
- }
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemLocalizer::SetupWorkThreadLocalizerL()
-// -----------------------------------------------------------------------------
-//
-void CGflmItemLocalizer::SetupWorkThreadLocalizerL()
- {
- if ( !iWorkThreadLocalizer )
- {
- iWorkThreadLocalizer = CDirectoryLocalizer::NewL();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemLocalizer::SetupWorkThreadLocalizer()
-// -----------------------------------------------------------------------------
-//
-void CGflmItemLocalizer::ReleaseWorkThreadLocalizer()
- {
- delete iWorkThreadLocalizer;
- iWorkThreadLocalizer = NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmItemLocalizer::SetupWorkThreadLocalizer()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TPtrC CGflmItemLocalizer::Localize(
- CDirectoryLocalizer& aLocalizer, const TDesC& aPath ) const
- {
- aLocalizer.SetFullPath( aPath );
- if( aLocalizer.IsLocalized() )
- {
- // Ensure that localized name is legal.
- // Some localizations may have dot in the end that makes it
- // invalid for file system point of view.
- return GflmUtils::StripFinalDot( aLocalizer.LocalizedName() );
- }
- return TPtrC( KNullDesC );
- }
-
-// End of File
--- a/filemanager/GFLM/src/CGflmNavigatorModel.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,298 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Navigable file list model
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <bautils.h>
-#include "CGflmNavigatorModel.h"
-#include "CGflmItemGroupImpl.h"
-#include "CGflmItemLocalizer.h"
-#include "CGflmDriveResolver.h"
-#include "GFLM.hrh"
-#include "GflmUtils.h"
-#include "GFLMConsts.h"
-
-
-// CONSTANTS
-
-// Granularity of iBackstepStack array
-const TInt KBackstepStackGranularity = 3;
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::CGflmNavigatorModel
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmNavigatorModel::CGflmNavigatorModel( RFs& aFs ) :
- CGflmFileListModel( aFs )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CGflmNavigatorModel::ConstructL()
- {
- CGflmFileListModel::ConstructL();
- iBackstepStack = new( ELeave ) CDesCArraySeg( KBackstepStackGranularity );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::NewL()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CGflmNavigatorModel* CGflmNavigatorModel::NewL( RFs& aFs )
- {
- CGflmNavigatorModel* self = new( ELeave ) CGflmNavigatorModel( aFs );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::~CGflmNavigatorModel()
-// -----------------------------------------------------------------------------
-//
-CGflmNavigatorModel::~CGflmNavigatorModel()
- {
- delete iBackstepStack;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::GoToDirectoryL()
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmNavigatorModel::GoToDirectoryL(
- const TDesC& aPath, TBool aBackstepping )
- {
- if ( !aPath.CompareF( CurrentDirectory() ) )
- {
- return; // Already in the directory
- }
- SetBaseDirectoryL( aPath );
-
- // Update the backstepping stack after calling SetBaseDirectoryL()
- // because it might leave
- if ( !aBackstepping )
- {
- iBackstepStack->Reset();
- }
- iBackstepStack->AppendL( aPath );
-
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::BackstepL()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmNavigatorModel::BackstepL()
- {
- if ( iBackstepStack->MdcaCount() )
- {
- iBackstepStack->Delete( iBackstepStack->MdcaCount() - 1 );
- if ( iBackstepStack->MdcaCount() )
- {
- TPtrC dir( iBackstepStack->MdcaPoint(
- iBackstepStack->MdcaCount() - 1 ) );
- SetSourceL( dir );
- if ( !IsValidSource( dir ) )
- {
- User::Leave( KErrPathNotFound );
- }
- }
- else
- {
- SetSourceL( KNullDesC );
- }
- }
- else
- {
- User::Leave( KErrUnderflow );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::GoToDirectoryL()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGflmNavigatorModel::GoToDirectoryL( const TDesC& aBasePath,
- const TDesC& aTopPath )
- {
- // Use copies because descriptors may come from backstep stack itself
- HBufC* basePathBuffer = aBasePath.AllocLC();
- TPtrC basePath( basePathBuffer->Des() );
- HBufC* topPathBuffer = aTopPath.AllocLC();
- TPtrC topPath( topPathBuffer->Des() );
- const TInt KNthMatch = 2;
-
- // Clear the backstepping stack
- iBackstepStack->Reset();
-
- // Construct the backstepping stack
-
- while ( basePath.CompareF( topPath ) )
- {
- iBackstepStack->InsertL( 0, topPath );
-
- // Find the second backslash starting from the end
- TInt cutPoint( GflmUtils::LocateReverseNth(
- topPath, KGFLMBackslash()[ 0 ], KNthMatch ) );
- User::LeaveIfError( cutPoint );
- topPath.Set( topPath.Left( cutPoint + 1 ) );
- }
-
- // Add basepath too
- iBackstepStack->InsertL( 0, topPath );
-
- SetBaseDirectoryL( *topPathBuffer );
-
- CleanupStack::PopAndDestroy( topPathBuffer );
- CleanupStack::PopAndDestroy( basePathBuffer );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::CurrentDirectory()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CGflmNavigatorModel::CurrentDirectory() const
- {
- TInt stackSize( iBackstepStack->MdcaCount() );
- if ( stackSize <= 0 )
- {
- return KNullDesC();
- }
- return iBackstepStack->MdcaPoint( stackSize - 1 );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::LocalizedNameOfCurrentDirectory()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC CGflmNavigatorModel::LocalizedNameOfCurrentDirectory() const
- {
- TInt stackSize( iBackstepStack->MdcaCount() );
- if ( stackSize <= 0 )
- {
- return TPtrC( KNullDesC );
- }
- TPtrC directory( iBackstepStack->MdcaPoint( stackSize - 1 ) );
- TPtrC localizedName( iItemLocalizer->Localize( directory ) );
- if ( localizedName.Length() )
- {
- // Return the localized name
- return localizedName;
- }
- // Directory has no localized name => return the name of the directory
- TPtrC ptr( GflmUtils::StripFinalBackslash( directory ) );
- TInt lastBs( ptr.LocateReverse( KGFLMBackslash()[ 0 ] ) );
- if ( lastBs != KErrNotFound )
- {
- return ptr.Mid( lastBs + 1 );
- }
- return TPtrC( KNullDesC );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::SetBaseDirectoryL()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmNavigatorModel::SetBaseDirectoryL( const TDesC& aDirectory )
- {
- if ( IsValidSource( aDirectory ) )
- {
- SetSourceL( aDirectory );
- }
- else
- {
- User::Leave( KErrPathNotFound );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::NavigationLevel()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CGflmNavigatorModel::NavigationLevel() const
- {
- return iBackstepStack->Count() - 1;
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::CurrentDrive()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CGflmDriveItem* CGflmNavigatorModel::CurrentDrive() const
- {
- return DriveFromPath( CurrentDirectory() );
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::SetSourceL()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CGflmNavigatorModel::SetSourceL( const TDesC& aSource )
- {
- TBool empty( !aSource.Length() );
- TInt groupCount( iGroups->Count() );
- for ( TInt i( 0 ); i < groupCount; i++ )
- {
- MGflmItemGroup* group = iGroups->At( i );
- group->ResetSources();
- if ( !empty )
- {
- group->AddSourceL( aSource );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CGflmNavigatorModel::IsValidSource()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CGflmNavigatorModel::IsValidSource( const TDesC& aSource ) const
- {
- if ( aSource.Length() &&
- !iDriveResolver->IsRemoteDrive( aSource ) &&
- !BaflUtils::PathExists( iFs, aSource ) &&
- !iDriveResolver->IsRootPath( aSource ) )
- {
- return EFalse;
- }
- return ETrue;
- }
-
-// End of File
--- a/filemanager/GFLM/src/GflmUtils.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Static utility class for GFLM
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "GflmUtils.h"
-#include "GFLMConsts.h"
-#include <e32def.h>
-#include <e32svr.h>
-#include <f32file.h>
-#include <collate.h>
-
-// CONSTANTS
-_LIT( KWildCard, "*" );
-_LIT( KWildCard2, "?" );
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// GflmUtils::LocateReverseNth()
-// -----------------------------------------------------------------------------
-//
-TInt GflmUtils::LocateReverseNth(
- const TDesC& aDescriptor,
- TChar aChar,
- const TInt aNth )
- {
- TPtrC ptr( aDescriptor );
- TInt ret( KErrArgument );
- for ( TInt i( 0 ); i < aNth; i++ )
- {
- ret = ptr.LocateReverse( aChar );
- if ( ret == KErrNotFound )
- {
- break;
- }
- ptr.Set( ptr.Left( ret ) );
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// GflmUtils::EnsureFinalBackslash()
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void GflmUtils::EnsureFinalBackslash( TDes& aPath )
- {
- if ( !HasFinalBackslash( aPath ) )
- {
- aPath.Append( KGFLMBackslash );
- }
- }
-
-// -----------------------------------------------------------------------------
-// GflmUtils::StripFinalBackslash()
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TPtrC GflmUtils::StripFinalBackslash( const TDesC& aPath )
- {
- return StripFinal( aPath, KGFLMBackslash );
- }
-
-// -----------------------------------------------------------------------------
-// GflmUtils::HasFinalBackslash
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool GflmUtils::HasFinalBackslash( const TDesC& aPath )
- {
- TPtrC ptr( aPath.Right( KGFLMBackslash().Length() ) );
- if ( KGFLMBackslash().Compare( ptr ) )
- {
- return EFalse;
- }
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// GflmUtils::GetFullPath
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void GflmUtils::GetFullPath(
- const TDesC& aDir, const TEntry& aEntry, TDes& aFullPath )
- {
- aFullPath.Copy( aDir );
- EnsureFinalBackslash( aFullPath );
- aFullPath.Append( aEntry.iName );
- if ( aEntry.IsDir() )
- {
- aFullPath.Append( KGFLMBackslash );
- }
- }
-
-// -----------------------------------------------------------------------------
-// GflmUtils::FullPathLC
-// -----------------------------------------------------------------------------
-//
-EXPORT_C HBufC* GflmUtils::FullPathLC(
- const TDesC& aDir, const TEntry& aEntry )
- {
- HBufC* fullPath = FullPathL( aDir, aEntry );
- CleanupStack::PushL( fullPath );
- return fullPath;
- }
-
-// -----------------------------------------------------------------------------
-// GflmUtils::FullPathL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C HBufC* GflmUtils::FullPathL(
- const TDesC& aDir, const TEntry& aEntry )
- {
- TInt len( aDir.Length() + aEntry.iName.Length() );
- if ( aEntry.IsDir() )
- {
- len += KGFLMBackslash().Length();
- }
- HBufC* fullPath = HBufC::NewL( len );
- TPtr ptr( fullPath->Des() );
- GetFullPath( aDir, aEntry, ptr );
- return fullPath;
- }
-
-// -----------------------------------------------------------------------------
-// GflmUtils::StripFinalDot
-// -----------------------------------------------------------------------------
-//
-TPtrC GflmUtils::StripFinalDot( const TDesC& aPath )
- {
- return StripFinal( aPath, KGFLMDot );
- }
-
-// -----------------------------------------------------------------------------
-// GflmUtils::StripFinal
-// -----------------------------------------------------------------------------
-//
-TPtrC GflmUtils::StripFinal(
- const TDesC& aString, const TDesC& aStringToStrip )
- {
- TInt len( aStringToStrip.Length() );
- TPtrC ptr( aString.Right( len ) );
-
- if( !aStringToStrip.Compare( ptr ) )
- {
- return aString.Left( aString.Length() - len );
- }
- return TPtrC( aString );
- }
-
-// -----------------------------------------------------------------------------
-// GflmUtils::HasWildCard
-// -----------------------------------------------------------------------------
-//
-TBool GflmUtils::HasWildCard( const TDesC& aString )
- {
- return ( aString.Find( KWildCard ) != KErrNotFound ||
- aString.Find( KWildCard2 ) != KErrNotFound );
- }
-
-// End of File
--- a/filemanager/View/data/FileManagerView.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,740 +0,0 @@
-/*
-* Copyright (c) 2002-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: Resource definitions for project FileManagerView
-*
-*/
-
-
-
-NAME FMGV // From FileManager View
-
-
-// INCLUDES
-#include <bldvariant.hrh>
-#include "FileManagerView.hrh"
-#include "FileManagerView.rh"
-#include "FileManagerEngine.hrh"
-#include <eikon.rh>
-#include <eikon.rsg>
-#include <avkon.rsg>
-#include <avkon.hrh>
-#include <avkon.rh>
-#include <avkon.mbg>
-#include <avkon.loc>
-#include <aiwbrowserprovider.loc>
-#include <drmcommon.loc>
-#include <commondialogs.mbg>
-#include <filemanager.mbg>
-#include <avkon.mbg>
-#include <aknsconstants.hrh>
-#include <filemanager.loc>
-
-// ---------------------------------------------------------
-// Standard resource signature
-// ---------------------------------------------------------
-//
-RESOURCE RSS_SIGNATURE { }
-
-
-// RESOURCE DEFINITIONS
-RESOURCE ARRAY r_filemanager_icon_array
- {
- items =
- {
- FILEMANAGER_ICON
- {
- iconId = EFileManagerMarkIcon;
- mbmFile = avkon_mbm_file_location;
- iconBmpId = EMbmAvkonQgn_indi_marked_add;
- maskBmpId = EMbmAvkonQgn_indi_marked_add_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnIndiMarkedAdd;
- iconType = EFileManagerIconColorIcon;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerFolderIcon;
- mbmFile = avkon_mbm_file_location;
- iconBmpId = EMbmAvkonQgn_prop_folder_small;
- maskBmpId = EMbmAvkonQgn_prop_folder_small_mask;
- majorSkinId = EAknsMajorAvkon;
- minorSkinId = EAknsMinorQgnPropFolderSmall;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerFolderSubIcon;
- mbmFile = avkon_mbm_file_location;
- iconBmpId = EMbmAvkonQgn_prop_folder_sub_small;
- maskBmpId = EMbmAvkonQgn_prop_folder_sub_small_mask;
- majorSkinId = EAknsMajorAvkon;
- minorSkinId = EAknsMinorQgnPropFolderSubSmall;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerFolderEmptyIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_prop_folder_empty;
- maskBmpId = EMbmFilemanagerQgn_prop_folder_empty_mask;
- majorSkinId = EAknsMajorAvkon;
- minorSkinId = EAknsMinorGenericQgnPropFolderEmpty;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerMemoryCardIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_prop_mmc_memc;
- maskBmpId = EMbmFilemanagerQgn_prop_mmc_memc_mask;
- majorSkinId = EAknsMajorAvkon;
- minorSkinId = EAknsMinorQgnPropMmcMemc;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerPhoneMemoryIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_prop_phone_memc;
- maskBmpId = EMbmFilemanagerQgn_prop_phone_memc_mask;
- majorSkinId = EAknsMajorAvkon;
- minorSkinId = EAknsMinorQgnPropPhoneMemc;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerImageFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_image;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_image_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrFileImage;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerPictureMsgFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_gms;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_gms_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrFileGms;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerDycLogoFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_dyc_logos;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_dyc_logos_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrDycLogos;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerLinkFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_link;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_link_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrFileLink;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerVoicerecFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_voicerec;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_voicerec_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrFileVoicerec;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerSoundFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_sound;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_sound_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrFileSound;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerPlaylistFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_playlist;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_playlist_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrFilePlaylist;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerCompoFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_compo;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_compo_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrFileCompo;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerNoteFileIcon;
- mbmFile = avkon_mbm_file_location;
- iconBmpId = EMbmAvkonQgn_prop_nrtyp_note;
- maskBmpId = EMbmAvkonQgn_prop_nrtyp_note_mask;
- majorSkinId = EAknsMajorAvkon;
- minorSkinId = EAknsMinorQgnPropNrtypNote;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerAppFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_apps;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_apps_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrFileApps;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerVideoFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_video;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_video_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrFileVideo;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerGameFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_game;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_game_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorQgnPropFmgrFileGame;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerOtherFileIcon;
- mbmFile = commondialogs_mbm_file_location;
- iconBmpId = EMbmCommondialogsQgn_prop_fmgr_file_other;
- maskBmpId = EMbmCommondialogsQgn_prop_fmgr_file_other_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorQgnPropFmgrFileOther;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerFlashFileIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_prop_file_swf_small;
- maskBmpId = EMbmFilemanagerQgn_prop_file_swf_small_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFileSwfSmall;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerPhoneMemoryMainIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_prop_fmgr_phone_memc_sub;
- maskBmpId = EMbmFilemanagerQgn_prop_fmgr_phone_memc_sub_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrPhoneMemcSub;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerMemoryCardPresentMainIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_prop_fmgr_mmc_sub;
- maskBmpId = EMbmFilemanagerQgn_prop_fmgr_mmc_sub_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrMmcSub;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerMemoryCardNotPresentMainIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_prop_fmgr_mmc_no_sub;
- maskBmpId = EMbmFilemanagerQgn_prop_fmgr_mmc_no_sub_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrMmcNoSub;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerBackupMainIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_prop_fmgr_backup_sub;
- maskBmpId = EMbmFilemanagerQgn_prop_fmgr_backup_sub_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrBackupSub;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerRemoteDriveConnectedIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_indi_connection_on_add;
- maskBmpId = EMbmFilemanagerQgn_indi_connection_on_add_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnIndiConnectionOnAdd;
- iconType = EFileManagerIconColorIcon;
- },
- FILEMANAGER_ICON
- {
- iconId = EFileManagerRemoteDriveMainIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_menu_fmgr_remote_drive;
- maskBmpId = EMbmFilemanagerQgn_menu_fmgr_remote_drive_mask;
- majorSkinId = EAknsMajorGeneric;
- // There is no own skin for qgn_menu_fmgr_remote_drive
- minorSkinId = EAknsMinorGenericQgnPropRemoteDriveMemcLarge;
- }
-//#ifdef RD_MULTIPLE_DRIVE
- ,FILEMANAGER_ICON
- {
- iconId = EFileManagerMassStorageMainIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_prop_fmgr_ms_sub;
- maskBmpId = EMbmFilemanagerQgn_prop_fmgr_ms_sub_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrMsSub;
- }
-//#endif // RD_MULTIPLE_DRIVE
- ,FILEMANAGER_ICON
- {
- iconId = EFileManagerUsbMemoryMainIcon;
- mbmFile = filemanager_mbm_file_location;
- iconBmpId = EMbmFilemanagerQgn_prop_usb_memc_sub; // Change these after USB icons available
- maskBmpId = EMbmFilemanagerQgn_prop_usb_memc_sub_mask;
-// iconBmpId = EMbmFilemanagerQgn_prop_fmgr_ms_sub;
-// maskBmpId = EMbmFilemanagerQgn_prop_fmgr_ms_sub_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrUsbMemcSub;
-// minorSkinId = EAknsMinorGenericQgnPropFmgrMsSub;
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_file_name_query
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control = AVKON_DATA_QUERY
- {
- layout = EDataLayout;
- label = qtn_fldr_item_name_prmpt;
- control = EDWIN
- {
- flags = EEikEdwinNoHorizScrolling |
- EEikEdwinResizable |
- EEikEdwinNoLineOrParaBreaks;
- lines = 1;
- maxlength = 256;
- };
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_popup_dialog
- {
- flags = EGeneralQueryFlags | EEikDialogFlagNoBorder | EEikDialogFlagNoShadow;
- buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
- items=
- {
- DLG_LINE
- {
- type = EAknCtPopupHeadingPane;
- id = EAknMessageQueryHeaderId;
- control = AVKON_HEADING
- {
- };
- },
- DLG_LINE
- {
- type = EAknCtMessageQuery;
- id = EAknMessageQueryContentId;
- control = AVKON_MESSAGE_QUERY
- {
- };
- }
- };
- }
-
-RESOURCE LISTBOX r_filemanager_setting_listbox
- {
- flags = EAknListBoxMultipleSelection;
- }
-
-RESOURCE AVKON_SETTING_PAGE r_filemanager_setting_checkbox_page
- {
- softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__MARK;
- type = EAknSetListBox;
- editor_resource_id = r_filemanager_setting_listbox;
- menubar = R_AVKON_MENUPANE_EMPTY;
- }
-
-RESOURCE AVKON_SETTING_PAGE r_filemanager_setting_radiobutton_page
- {
- softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__SELECT;
- type = EAknSetListBox;
- editor_resource_id = r_filemanager_setting_listbox;
- menubar = R_AVKON_MENUPANE_EMPTY;
- }
-
-RESOURCE TIME_EDITOR r_filemanager_time_editor
- {
- minTime = TIME{ second = 0; minute = 0; hour = 0; };
- maxTime = TIME{ second = 59; minute = 59; hour = 23; };
- flags = EEikTimeWithoutSecondsField;
- }
-
-RESOURCE AVKON_SETTING_PAGE r_filemanager_time_setting_page
- {
- type = EEikCtTimeEditor;
- editor_resource_id = r_filemanager_time_editor;
- }
-
-RESOURCE DIALOG r_filemanager_info_query
- {
- flags = EGeneralQueryFlags | EEikDialogFlagNoBorder | EEikDialogFlagNoShadow;
- buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
- items =
- {
- DLG_LINE
- {
- type = EAknCtPopupHeadingPane;
- id = EAknMessageQueryHeaderId;
- control = AVKON_HEADING
- {
- label = qtn_apps_fmgr_list;
- };
- },
- DLG_LINE
- {
- type = EAknCtMessageQuery;
- id = EAknMessageQueryContentId;
- control = AVKON_MESSAGE_QUERY
- {
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_info_confirm_query_with_ok
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control = AVKON_CONFIRMATION_QUERY
- {
- layout = EConfirmationQueryLayout;
- bmpfile = AVKON_ICON_FILE;
- bmpid = EMbmAvkonQgn_note_info;
- bmpmask = EMbmAvkonQgn_note_info_mask;
- animation = R_QGN_NOTE_INFO_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_error_confirm_query_with_ok
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control = AVKON_CONFIRMATION_QUERY
- {
- layout = EConfirmationQueryLayout;
- bmpfile = AVKON_ICON_FILE;
- bmpid = EMbmAvkonQgn_note_error;
- bmpmask = EMbmAvkonQgn_note_error_mask;
- animation = R_QGN_NOTE_ERROR_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_confirm_query_with_yes_no
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_YES_NO;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control = AVKON_CONFIRMATION_QUERY
- {
- layout = EConfirmationQueryLayout;
- bmpfile = AVKON_ICON_FILE;
- bmpid = EMbmAvkonQgn_note_query;
- bmpmask = EMbmAvkonQgn_note_query_mask;
- animation = R_QGN_NOTE_QUERY_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_confirm_query_with_ok_cancel
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control = AVKON_CONFIRMATION_QUERY
- {
- layout = EConfirmationQueryLayout;
- bmpfile = AVKON_ICON_FILE;
- bmpid = EMbmAvkonQgn_note_query;
- bmpmask = EMbmAvkonQgn_note_query_mask;
- animation = R_QGN_NOTE_QUERY_ANIM;
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_simple_password_query
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtQuery;
- id = EGeneralQuery;
- control = AVKON_DATA_QUERY
- {
- layout = ECodeLayout;
- control = SECRETED
- {
- num_letters = 8; // Only 8 Unicode chars fit
- };
- };
- }
- };
- }
-
-RESOURCE DIALOG r_filemanager_password_query
- {
- flags = EGeneralQueryFlags;
- buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
- items=
- {
- DLG_LINE
- {
- type = EAknCtMultilineQuery;
- id = EMultilineFirstLine;
- control = AVKON_DATA_QUERY
- {
- layout = EMultiDataFirstSecEd;
- label = qtn_memc_set_password_prompt1;
- control = SECRETED
- {
- num_letters = 8; // Only 8 Unicode chars fit
- };
- };
- },
-
- DLG_LINE
- {
- type = EAknCtMultilineQuery;
- id = EMultilineSecondLine;
- control = AVKON_DATA_QUERY
- {
- layout = EMultiDataSecondSecEd;
- label = qtn_memc_set_password_prompt2;
- control = SECRETED
- {
- num_letters = 8; // Only 8 Unicode chars fit
- };
- };
- }
- };
- }
-
-// -----------------------------------------------------------------------------
-//
-// r_filemanager_folder_navigation_pane
-// folder indicator for navipane
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE FILEMANAGER_FOLDER_NAVIGATION_PANE r_filemanager_folder_navigation_pane
- {
- bmpfile = filemanager_mbm_file_location;
- foldericonid = EMbmFilemanagerQgn_prop_folder_tab;
- foldermaskid = EMbmFilemanagerQgn_prop_folder_tab_mask;
- majorSkinId = EAknsMajorAvkon;
- minorSkinId = EAknsMinorQgnPropFolderTab;
- separator = qtn_memc_main_separator;
- endchar = qtn_memc_main_end;
-
-
- folderindicators =
- {
- FILEMANAGER_FOLDER_NAVIGATION_PANE_DATA
- {
- id = EFmPhoneMemory;
- bmpfile = filemanager_mbm_file_location;
- rooticonid = EMbmFilemanagerQgn_prop_memc_phone_tab;
- rootmaskid = EMbmFilemanagerQgn_prop_memc_phone_tab_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropMemcPhoneTab;
- },
- FILEMANAGER_FOLDER_NAVIGATION_PANE_DATA
- {
- id = EFmMemoryCard;
- bmpfile = filemanager_mbm_file_location;
- rooticonid = EMbmFilemanagerQgn_prop_memc_mmc_tab;
- rootmaskid = EMbmFilemanagerQgn_prop_memc_mmc_tab_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropMemcMmcTab;
- },
- FILEMANAGER_FOLDER_NAVIGATION_PANE_DATA
- {
- id = EFmRemoteDrive;
- bmpfile = filemanager_mbm_file_location;
- rooticonid = EMbmFilemanagerQgn_prop_fmgr_remote_drive_tab;
- rootmaskid = EMbmFilemanagerQgn_prop_fmgr_remote_drive_tab_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropFmgrRemoteDriveTab;
- }
-#ifdef RD_MULTIPLE_DRIVE
- ,FILEMANAGER_FOLDER_NAVIGATION_PANE_DATA
- {
- id = EFmMassStorage;
- bmpfile = filemanager_mbm_file_location;
- rooticonid = EMbmFilemanagerQgn_prop_memc_ms_tab;
- rootmaskid = EMbmFilemanagerQgn_prop_memc_ms_tab_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropMemcMsTab;
- }
-#endif // RD_MULTIPLE_DRIVE
- ,FILEMANAGER_FOLDER_NAVIGATION_PANE_DATA
- {
- id = EFmUsbMemory;
- bmpfile = filemanager_mbm_file_location;
- rooticonid = EMbmFilemanagerQgn_prop_usb_memc_tab; // Change these after USB icons available
- rootmaskid = EMbmFilemanagerQgn_prop_usb_memc_tab_mask;
-// rooticonid = EMbmFilemanagerQgn_prop_memc_ms_tab;
-// rootmaskid = EMbmFilemanagerQgn_prop_memc_ms_tab_mask;
- majorSkinId = EAknsMajorGeneric;
- minorSkinId = EAknsMinorGenericQgnPropUsbMemcTab;
-// minorSkinId = EAknsMinorGenericQgnPropMemcMsTab;
- }
- };
- }
-
-// LOCALIZED STRINGS
-// Different titles for info popup
-RESOURCE TBUF r_qtn_fmgr_info_heading_file { buf = qtn_fmgr_info_heading_file; }
-RESOURCE TBUF r_qtn_fmgr_info_heading_fldr { buf = qtn_fmgr_info_heading_fldr; }
-RESOURCE TBUF r_qtn_fmgr_info_heading_link { buf = qtn_fmgr_info_heading_link; }
-
-// Headings for info popup
-RESOURCE TBUF r_qtn_swins_lsh2_apps_name { buf = qtn_swins_lsh2_apps_name; }
-RESOURCE TBUF r_qtn_swins_lsh2_apps_type { buf = qtn_swins_lsh2_apps_type; }
-RESOURCE TBUF r_qtn_album_datim_date { buf = qtn_album_datim_date; }
-RESOURCE TBUF r_qtn_album_datim_time { buf = qtn_album_datim_time; }
-RESOURCE TBUF r_qtn_album_litxt_size { buf = qtn_album_litxt_size; }
-RESOURCE TBUF r_qtn_fmgr_info_fldr_default { buf = qtn_fmgr_info_fldr_default; }
-RESOURCE TBUF r_qtn_fmgr_info_contain_fldr { buf = qtn_fmgr_info_contain_fldr; }
-RESOURCE TBUF r_qtn_fmgr_info_contain_file { buf = qtn_fmgr_info_contain_file; }
-
-// Data strings for info popup
-RESOURCE TBUF r_qtn_fmgr_info_def_fldr_text { buf = qtn_fmgr_info_def_fldr_text; }
-RESOURCE TBUF r_filemanager_default_folder_name { buf = qtn_fldr_name_default; }
-RESOURCE TBUF r_filemanager_default_folder_name_n { buf = qtn_fldr_name_default"(%U)"; }
-RESOURCE TBUF r_qtn_fldr_name_already_used { buf = qtn_fldr_name_already_used; }
-RESOURCE TBUF r_qtn_wmlbm_name_already_used { buf = qtn_wmlbm_name_already_used; }
-RESOURCE TBUF r_qtn_fldr_bad_file_name { buf = qtn_fldr_bad_file_name; }
-RESOURCE TBUF r_qtn_fldr_illegal_characters { buf = qtn_fldr_illegal_characters; }
-RESOURCE TBUF r_qtn_item_overwrite_query { buf = qtn_fldr_overwrite_query; }
-
-RESOURCE TBUF r_qtn_drm_mgr_det2_play { buf = qtn_drm_mgr_det2_play; }
-RESOURCE TBUF r_qtn_drm_mgr_det2_display { buf = qtn_drm_mgr_det2_display; }
-RESOURCE TBUF r_qtn_drm_mgr_det2_execute { buf = qtn_drm_mgr_det2_execute; }
-RESOURCE TBUF r_qtn_drm_mgr_det2_print { buf = qtn_drm_mgr_det2_print; }
-RESOURCE TBUF r_qtn_drm_mgr_det_full_x { buf = qtn_drm_mgr_det_full_x; }
-RESOURCE TBUF r_qtn_drm_mgr_det_unlimited { buf = qtn_drm_mgr_det_unlimited; }
-RESOURCE TBUF r_qtn_drm_mgr_det_utl_x { buf = qtn_drm_mgr_det_utl_x; }
-RESOURCE TBUF r_qtn_drm_mgr_det_1_count { buf = qtn_drm_mgr_det_1_count; }
-RESOURCE TBUF r_qtn_drm_mgr_det_n_counts { buf = qtn_drm_mgr_det_n_counts; }
-RESOURCE TBUF r_qtn_drm_mgr_det_uts_x { buf = qtn_drm_mgr_det_uts_x; }
-RESOURCE TBUF r_qtn_drm_mgr_det_not_act { buf = qtn_drm_mgr_det_not_act; }
-RESOURCE TBUF r_qtn_drm_mgr_det_udl_x { buf = qtn_drm_mgr_det_udl_x; }
-RESOURCE TBUF r_qtn_drm_mgr_det_inter { buf = qtn_drm_mgr_det_inter; }
-RESOURCE TBUF r_qtn_drm_mgr_det_inter_two { buf = qtn_drm_mgr_det_inter_two; }
-RESOURCE TBUF r_qtn_drm_nbr_of_years_one { buf = qtn_drm_nbr_of_years_one; }
-RESOURCE TBUF r_qtn_drm_nbr_of_years_one_final { buf = qtn_drm_nbr_of_years_one_final; }
-RESOURCE TBUF r_qtn_drm_nbr_of_years_two_four { buf = qtn_drm_nbr_of_years_two_four; }
-RESOURCE TBUF r_qtn_drm_nbr_of_years_five_zero { buf = qtn_drm_nbr_of_years_five_zero; }
-RESOURCE TBUF r_qtn_drm_nbr_of_months_one { buf = qtn_drm_nbr_of_months_one; }
-RESOURCE TBUF r_qtn_drm_nbr_of_months_five_zero { buf = qtn_drm_nbr_of_months_five_zero; }
-RESOURCE TBUF r_qtn_drm_nbr_of_months_two_four { buf = qtn_drm_nbr_of_months_two_four; }
-RESOURCE TBUF r_qtn_drm_nbr_of_days_one { buf = qtn_drm_nbr_of_days_one; }
-RESOURCE TBUF r_qtn_drm_nbr_of_days_one_final { buf = qtn_drm_nbr_of_days_one_final; }
-RESOURCE TBUF r_qtn_drm_nbr_of_days_two_four { buf = qtn_drm_nbr_of_days_two_four; }
-RESOURCE TBUF r_qtn_drm_nbr_of_days_five_zero { buf = qtn_drm_nbr_of_days_five_zero; }
-RESOURCE TBUF r_qtn_drm_nbr_of_hours_one { buf = qtn_drm_nbr_of_hours_one; }
-RESOURCE TBUF r_qtn_drm_nbr_of_hours_one_final { buf = qtn_drm_nbr_of_hours_one_final; }
-RESOURCE TBUF r_qtn_drm_nbr_of_hours_two_four { buf = qtn_drm_nbr_of_hours_two_four; }
-RESOURCE TBUF r_qtn_drm_nbr_of_hours_five_zero { buf = qtn_drm_nbr_of_hours_five_zero; }
-RESOURCE TBUF r_qtn_drm_nbr_of_mins_one { buf = qtn_drm_nbr_of_mins_one; }
-RESOURCE TBUF r_qtn_drm_nbr_of_mins_one_final { buf = qtn_drm_nbr_of_mins_one_final; }
-RESOURCE TBUF r_qtn_drm_nbr_of_mins_two_four { buf = qtn_drm_nbr_of_mins_two_four; }
-RESOURCE TBUF r_qtn_drm_nbr_of_mins_five_zero { buf = qtn_drm_nbr_of_mins_five_zero; }
-RESOURCE TBUF r_qtn_drm_nbr_of_secs_one { buf = qtn_drm_nbr_of_secs_one; }
-RESOURCE TBUF r_qtn_drm_nbr_of_secs_one_final { buf = qtn_drm_nbr_of_secs_one_final; }
-RESOURCE TBUF r_qtn_drm_nbr_of_secs_two_four { buf = qtn_drm_nbr_of_secs_two_four; }
-RESOURCE TBUF r_qtn_drm_nbr_of_secs_five_zero { buf = qtn_drm_nbr_of_secs_five_zero; }
-RESOURCE TBUF r_qtn_drm_mgr_det_rvf_x { buf = qtn_drm_mgr_det_rvf_x; }
-RESOURCE TBUF r_qtn_drm_mgr_det_rvt_x { buf = qtn_drm_mgr_det_rvt_x; }
-RESOURCE TBUF r_qtn_drm_mgr_det_cs { buf = qtn_drm_mgr_det_cs; }
-RESOURCE TBUF r_qtn_drm_mgr_det_allowed { buf = qtn_drm_mgr_det_allowed; }
-RESOURCE TBUF r_qtn_drm_mgr_det_forbid { buf = qtn_drm_mgr_det_forbid; }
-RESOURCE TBUF r_qtn_drm_mgr_det_stat { buf = qtn_drm_mgr_det_stat; }
-RESOURCE TBUF r_qtn_drm_mgr_det_valid { buf = qtn_drm_mgr_det_valid; }
-RESOURCE TBUF r_qtn_drm_mgr_det_exp { buf = qtn_drm_mgr_det_exp; }
-RESOURCE TBUF r_qtn_drm_mgr_det_accum_time_left { buf = qtn_drm_mgr_det_accum_time_left; }
-RESOURCE TBUF r_qtn_fmgr_drm_det_link { buf = qtn_drm_mgr_title_pane; }
-RESOURCE TBUF r_qtn_fmgr_drm_det_link_view { buf = qtn_drm_mgr_group_mo_view_det; }
-RESOURCE TBUF r_qtn_fm_warning_file_extension { buf = qtn_fm_warning_file_extension; }
-
-// Memory card details info popup
-RESOURCE TBUF r_qtn_fmgr_memcard_info_heading { buf = qtn_fmgr_memcard_info_heading; }
-RESOURCE TBUF r_qtn_fmgr_card_info_name { buf = qtn_fmgr_card_info_name; }
-RESOURCE TBUF r_qtn_fmgr_card_info_default_name { buf = qtn_fmgr_card_info_default_name; }
-RESOURCE TBUF r_qtn_fmgr_card_info_size { buf = qtn_fmgr_card_info_size; }
-RESOURCE TBUF r_qtn_fmgr_card_info_used { buf = qtn_fmgr_card_info_used; }
-RESOURCE TBUF r_qtn_fmgr_card_info_free { buf = qtn_fmgr_card_info_free; }
-RESOURCE TBUF r_qtn_fmgr_card_info_data { buf = qtn_fmgr_card_info_data; }
-// Password
-RESOURCE TBUF r_qtn_passwords_dont_match_text { buf = qtn_memc_set_password_error; }
-
-RESOURCE TBUF r_qtn_drm_mgr_det_not_valid_yet { buf = qtn_drm_mgr_det_not_valid_yet; }
-
-// End of File
--- a/filemanager/View/inc/CFileManagerCheckBoxSettingPage.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
-* Copyright (c) 2006 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: Checkbox setting page
-*
-*/
-
-
-
-#ifndef C_FILEMANAGERCHECKBOXSETTINGPAGE_H
-#define C_FILEMANAGERCHECKBOXSETTINGPAGE_H
-
-
-// INCLUDES
-#include <akncheckboxsettingpage.h>
-
-
-// CLASS DECLARATION
-/**
- * This class implements checkbox setting page
- *
- * @lib FileManagerView.lib
- * @since S60 3.1
- */
-NONSHARABLE_CLASS(CFileManagerCheckBoxSettingPage) :
- public CAknCheckBoxSettingPage
- {
-
-public:
- /**
- * Constructor.
- * @see CAknCheckBoxSettingPage
- */
- CFileManagerCheckBoxSettingPage(
- const TInt aResourceID,
- CSelectionItemList& aItemArray,
- const TInt aDominantItemIndex );
-
- ~CFileManagerCheckBoxSettingPage();
-
-private: // From CAknCheckBoxSettingPage
- void UpdateSettingL();
-
-private: // New functions
- void UpdateSelection();
-
-private: // Data
- /**
- * Pointer to items array
- * Not own.
- */
- CSelectionItemList& iItemsArray;
-
- /**
- * Index of the dominant item
- */
- TInt iDominantItemIndex;
-
- };
-
-#endif // C_FILEMANAGERCHECKBOXSETTINGPAGE_H
-
-// End of File
--- a/filemanager/View/inc/CFileManagerFileNameQueryDlg.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Dialog for asking file name from user
-*
-*/
-
-
-
-#ifndef CFILEMANAGERFILENAMEQUERYDLG_H
-#define CFILEMANAGERFILENAMEQUERYDLG_H
-
-// INCLUDES
-#include <AknQueryDialog.h> // CAknTextQueryDialog
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-
-// CLASS DECLARATION
-/**
- * Dialog for querying file names in File Manager
- *
- * @lib FileManagerView.lib
- * @since S60 2.0
- */
-NONSHARABLE_CLASS(CFileManagerFileNameQueryDlg) : public CAknTextQueryDialog
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @param aOldName Old name of the file, this will be the default name
- * @param aNewName User entered new name of the file.
- * @param aEngine Reference to File Manager engine.
- * @return Newly created query dialog.
- */
- static CFileManagerFileNameQueryDlg* NewL(
- const TDesC& aOldName,
- TDes& aNewName,
- CFileManagerEngine& aEngine );
-
- /**
- * Destructor.
- */
- ~CFileManagerFileNameQueryDlg();
-
- private: // from CAknTextQueryDialog
- /**
- * @see CAknTextQueryDialog
- */
- TBool OkToExitL( TInt aButtonId );
-
- /**
- * @see CAknTextQueryDialog
- */
- TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType );
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerFileNameQueryDlg(
- TDes& aNewName, CFileManagerEngine& aEngine );
-
- /**
- * Symbian OS 2nd phase constructor.
- * @param aOldName Old name of the file, this will be the default name
- */
- void ConstructL( const TDesC& aOldName );
-
- /**
- * Performs exit checking
- * @param aButtonId Button identifier
- */
- TBool DoOkToExitL( TInt aButtonId );
-
- private: // Data
- /// Ref: Reference to File Manager engine
- CFileManagerEngine& iEngine;
- /// Own: Old file name
- HBufC* iOldName;
- /// For blocking unwanted softkey events
- TBool iCallbackDisabled;
- };
-
-#endif // CFILEMANAGERFILENAMEQUERYDLG_H
-
-// End of File
--- a/filemanager/View/inc/CFileManagerFullOmaDrmInfo.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
-* Copyright (c) 2005-2006 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: Gets the item DRM information
-*
-*/
-
-
-
-#ifndef CFILEMANAGERFULLOMADRMINFO_H
-#define CFILEMANAGERFULLOMADRMINFO_H
-
-// INCLUDES
-#include <e32base.h>
-#include <badesca.h>
-
-
-// FORWARD DECLARATIONS
-class CCoeEnv;
-class DRM::CDrmUiHandling;
-
-// CLASS DECLARATION
-/**
- * Collects the drm info of item and puts strings to given array
- *
- * @lib FileManagerView.lib
- * @since S60 2.8
- */
-NONSHARABLE_CLASS(CFileManagerFullOmaDrmInfo) : public CBase
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @param aArray Array which is filled with DRM information,
- * to be displayed in info popup
- * @param aFullPath Full path to item which DRM info is needed
- * @param aCoeEnv Control environment
- * @return Newly created popup.
- */
- static CFileManagerFullOmaDrmInfo* NewL(
- CDesCArray& aArray, const TDesC& aFullPath, CCoeEnv& aCoeEnv );
-
- /**
- * Two-phased constructor.
- * @param aArray Array which is filled with DRM information,
- * to be displayed in info popup
- * @param aFullPath Full path to item which DRM info is needed
- * @param aCoeEnv Control environment
- * @return Newly created popup.
- */
- static CFileManagerFullOmaDrmInfo* NewLC(
- CDesCArray& aArray, const TDesC& aFullPath, CCoeEnv& aCoeEnv );
-
- /**
- * Destructor.
- */
- ~CFileManagerFullOmaDrmInfo();
-
- public: // New functions
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- /**
- * Two-phased constructor.
- * @param aFullPath Full path to item which DRM info is needed
- * @param aCoeEnv Control environment
- * @param aUiHandling DRM UI Handler
- */
- static void ViewDetailsL( const TDesC& aFullPath, DRM::CDrmUiHandling* aUiHandling );
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- private:
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL(
- CDesCArray& aArray,
- const TDesC& aFullPath,
- CCoeEnv& aCoeEnv );
-
- /**
- * C++ default constructor.
- * @param aProperties Properties of the item that will be shown
- */
- CFileManagerFullOmaDrmInfo();
-
- };
-
-#endif // CFILEMANAGERFULLOMADRMINFO_H
-
-// End of File
--- a/filemanager/View/inc/CFileManagerGlobalDlg.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-/*
-* Copyright (c) 2006 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 dialog handling
-*
-*/
-
-
-#ifndef C_FILEMANAGERLOBALDLG_H
-#define C_FILEMANAGERLOBALDLG_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include "MFileManagerGlobalDlgObserver.h"
-
-
-// FORWARD DECLARATIONS
-class CFileManagerGlobalQueryDlg;
-class CAknGlobalProgressDialog;
-class CAknGlobalNote;
-
-
-// CLASS DECLARATION
-/**
- * This class handles global dialog wrapping
- *
- * @lib FileManagerView.lib
- * @since S60 3.1
- */
-class CFileManagerGlobalDlg : public CActive,
- public MFileManagerGlobalDlgObserver
- {
-
-public: // New functions
- // Global dialog types
- enum TType
- {
- ECountdownQuery = 0,
- EQuery,
- EProgressDialog,
- EErrorNote,
- EInfoNote,
- EQueryWithWarningIcon,
- EQueryWithInfoIcon
- };
-
- /**
- * Two-phased constructor.
- */
- IMPORT_C static CFileManagerGlobalDlg* NewL();
-
- /**
- * Destructor
- */
- IMPORT_C ~CFileManagerGlobalDlg();
-
- /**
- * Sets global dialog observer
- *
- * @since S60 3.1
- * @param aObserver Pointer to observer
- */
- IMPORT_C void SetObserver(
- MFileManagerGlobalDlgObserver* aObserver );
-
- /**
- * Cancels global dialog
- *
- * @since S60 3.1
- */
- IMPORT_C void CancelDialog();
-
- /**
- * Shows global dialog
- *
- * @since S60 3.1
- * @param aType Global dialog type
- * @param aText Text to display
- * @param aSkId Softkeys to display
- */
- IMPORT_C void ShowDialogL(
- const CFileManagerGlobalDlg::TType aType,
- const TDesC& aText,
- const TInt aSkId = 0 );
-
- /**
- * Shows global dialog
- *
- * @since S60 3.1
- * @param aType Global dialog type
- * @param aTextId TextId to display
- * @param aSkId Softkeys to display
- */
- IMPORT_C void ShowDialogL(
- const CFileManagerGlobalDlg::TType aType,
- const TInt aTextId,
- const TInt aSkId = 0 );
-
- /**
- * Updates global progress dialog
- *
- * @since S60 3.1
- * @param aValue Current progress value
- * @param aFinalValue Final progress value
- */
- IMPORT_C void UpdateProgressDialog(
- const TInt aValue,
- const TInt aFinalValue = - 1);
-
- /**
- * Finishes global progress dialog
- *
- * @since S60 3.1
- */
- IMPORT_C void ProcessFinished();
-
-private: // From CActive
- /**
- * @see CActive
- */
- void DoCancel();
-
- /**
- * @see CActive
- */
- void RunL();
-
-private: // From MFileManagerGlobalDlgObserver
- void HandleGlobalDlgResult(
- TInt aDlgType,
- TInt aDlgResult );
-
-private:
- /**
- * Constructors
- */
- CFileManagerGlobalDlg();
-
- void ConstructL();
-
- /**
- * Countdown timer callback
- * @param aPtr Pointer to this class instance
- */
- static TInt CountdownCB( TAny* aPtr );
-
- /**
- * Countdown timer callback
- */
- void CountdownL();
-
- /**
- * Starts countdown
- * @param aTimeout Timeout value
- */
- void StartCountdownL( const TUint aTimeout );
-
- /**
- * Notifies global dialog observer
- * @param aValue Value to notify
- */
- void NotifyObserver( const TInt aValue );
-
-private: // Data
- /**
- * Pointer to global query dialog
- * Own.
- */
- CFileManagerGlobalQueryDlg* iQueryDialog;
-
- /**
- * Pointer to global progress dialog
- * Own.
- */
- CAknGlobalProgressDialog* iProgressDialog;
-
- /**
- * Pointer to countdown step timer
- * Own.
- */
- CPeriodic* iCountdown;
-
- /**
- * Steps to countdown
- */
- TInt iCountdownSteps;
-
- /**
- * Pointer to global dialog observer
- * Not own.
- */
- MFileManagerGlobalDlgObserver* iObserver;
-
- /**
- * Global dialog type
- */
- TType iType;
-
- /**
- * Global progress dialog final value
- */
- TInt iFinalValue;
-
- /**
- * Pointer to countdown text
- * Own.
- */
- HBufC* iCountdownText;
- };
-
-#endif // C_FILEMANAGERLOBALDLG_H
-
-// End of File
--- a/filemanager/View/inc/CFileManagerGlobalQueryDlg.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/*
-* Copyright (c) 2006 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 query dialog handling
-*
-*/
-
-
-
-#ifndef C_FILEMANAGERLOBALQUERYDLG_H
-#define C_FILEMANAGERLOBALQUERYDLG_H
-
-
-// INCLUDES
-#include <e32base.h>
-
-
-// FORWARD DECLARATIONS
-class CAknGlobalConfirmationQuery;
-class MFileManagerGlobalDlgObserver;
-
-
-// CLASS DECLARATION
-/**
- * This class handles global query dialog
- *
- * @lib FileManagerView.lib
- * @since S60 3.1
- */
-NONSHARABLE_CLASS(CFileManagerGlobalQueryDlg) : public CActive
- {
-
-public: // New functions
- /**
- * Two-phased constructor.
- */
- static CFileManagerGlobalQueryDlg* NewL();
-
- /**
- * Destructor
- */
- ~CFileManagerGlobalQueryDlg();
-
- /**
- * Sets global query observer
- *
- * @since S60 3.1
- * @param aObserver Pointer to observer
- */
- void SetObserver(
- MFileManagerGlobalDlgObserver* aObserver );
-
- /**
- * Cancels global query
- *
- * @since S60 3.1
- */
- void CancelDialog();
-
- /**
- * Shows global query
- *
- * @since S60 3.1
- * @param aText Text to display
- * @param aSkId Softkeys to display
- */
- void ShowDialogL(
- const TDesC& aText,
- const TInt aSkId = 0 );
-
- /**
- * Shows global query
- *
- * @since S60 3.1
- * @param aTextId TextId to display
- * @param aSkId Softkeys to display
- */
- void ShowDialogL(
- const TInt aTextId,
- const TInt aSkId = 0 );
-
- /**
- * Shows global query
- *
- * @since S60 3.1
- * @param aText Text to display
- * @param aSkId Softkeys to display
- * @param aBitmapFile Bitmap file to use
- * @param aImageId Bitmap id to use
- * @param aMaskId Bitmap mask id to use
- */
- void ShowDialogL(
- const TDesC& aText,
- const TInt aSkId,
- const TDesC& aBitmapFile,
- const TInt aImageId,
- const TInt aMaskId );
-
-private: // From CActive
- /**
- * @see CActive
- */
- void DoCancel();
-
- /**
- * @see CActive
- */
- void RunL();
-
-private:
- /**
- * Constructors
- */
- CFileManagerGlobalQueryDlg();
-
- void ConstructL();
-
- /**
- * Notifies global query observer
- * @param aValue Value to notify
- */
- void NotifyObserver( const TInt aValue );
-
-private: // Data
- /**
- * Pointer to global query dialog
- * Own.
- */
- CAknGlobalConfirmationQuery* iQueryDialog;
-
- /**
- * Pointer to global query observer
- * Not own.
- */
- MFileManagerGlobalDlgObserver* iObserver;
-
- };
-
-#endif // C_FILEMANAGERLOBALQUERYDLG_H
-
-// End of File
--- a/filemanager/View/inc/CFileManagerIconArray.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
-* Copyright (c) 2002-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: All the files and folders icons are stored here
-*
-*/
-
-
-
-#ifndef CFILEMANAGERICONARRAY_H
-#define CFILEMANAGERICONARRAY_H
-
-// INCLUDES
-#include <e32base.h>
-
-// FORWARD DECLARATIONS
-class CGulIcon;
-
-// CLASS DECLARATION
-/**
- * Array of icons.
- * Is an array of icons that is read from resource file.
- *
- * @lib FileManagerView.lib
- * @since S60 2.0
- */
-class CFileManagerIconArray : public CArrayPtrFlat< CGulIcon >
- {
- public: // Constructors and destructor
- /**
- * Two-phased constructor.
- * @return a new icon array.
- */
- IMPORT_C static CFileManagerIconArray* NewL();
-
- /**
- * Destructor.
- */
- IMPORT_C ~CFileManagerIconArray();
-
- /**
- * Updates icons.
- */
- IMPORT_C void UpdateIconsL();
-
- /**
- * Finds array index of the icon
- * @param aIconId Icon id
- * @return Array index of the icon or KErrNotFound
- */
- IMPORT_C TInt FindIcon( TInt aIconId );
-
- /**
- * Loads icon from icon file
- * @param aIconFile Full path of the icon file
- * @param aIconId Icon id
- * @param aMaskId Mask id
- * @param aMajorSkin Major skin id
- * @param aMinorSkin Minor skin id
- * @param aIsColorIcon True if color icon
- * @return Pointer to new icon and the ownership is transferred.
- */
- IMPORT_C static CGulIcon* LoadIconL(
- const TDesC& aIconFile,
- TInt aIconId,
- TInt aMaskId,
- TInt aMajorSkin,
- TInt aMinorSkin,
- TBool aIsColorIcon );
-
- private:
- NONSHARABLE_CLASS(TIconInfo)
- {
- public:
- HBufC* iFile;
- TInt iId;
- TInt iIconId;
- TInt iMaskId;
- TInt iMajorSkinId;
- TInt iMinorSkinId;
- TInt iIconType;
- TInt iIndex;
- };
- /**
- * C++ default constructor.
- */
- CFileManagerIconArray();
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- void LoadIconL( TIconInfo& aInfo );
-
- void LoadMandatoryIconsL();
-
- private: // Data
- RArray< TIconInfo > iIconInfo;
-
- };
-
-#endif // CFILEMANAGERICONARRAY_H
-
-// End of File
--- a/filemanager/View/inc/CFileManagerInfoPopup.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Popup to show the item information, view info
-*
-*/
-
-
-#ifndef CFILEMANAGERINFOPOPUP_H
-#define CFILEMANAGERINFOPOPUP_H
-
-// INCLUDES
-#include <e32def.h>
-#include <drmuihandling.h>
-#include "CFileManagerPopupBase.h"
-
-// FORWARD DECLARATIONS
-class CFileManagerItemProperties;
-class CMSPUtil;
-class CFileManagerFeatureManager;
-class DRM::CDrmUiHandling;
-
-// CLASS DECLARATION
-/**
- * Popup dialog for showing detailed information about item.
- *
- * @lib FileManagerView.lib
- * @since S60 2.0
- */
-NONSHARABLE_CLASS(CFileManagerInfoPopup) : public CFileManagerPopupBase
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @param aProperties Properties of the item that will be shown
- * @param aFeatureManager Reference to the feature manager
- * @return Newly created popup.
- */
- static CFileManagerInfoPopup* NewL(
- CFileManagerItemProperties& aProperties,
- const CFileManagerFeatureManager& aFeatureManager );
-
- private:
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- virtual void ConstructL();
-
- private: // From CFileManagerPopupBase
- /**
- * @see CFileManagerPopupBase
- */
- virtual MDesCArray* ConstructDataArrayL();
-
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- /**
- * @see CFileManagerPopupBase
- */
- virtual void ActivateLinkL();
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- private: // New Functions
- /**
- * Creates the name entry for data array.
- * @return Name entry.
- */
- HBufC* NameEntryLC();
-
- /**
- * Creates the type entry for data array.
- * @return Type entry.
- */
- HBufC* TypeEntryLC();
-
- /**
- * Creates the date entry for data array.
- * @return Date entry.
- */
- HBufC* DateEntryLC();
-
- /**
- * Creates the time entry for data array.
- * @return Time entry.
- */
- HBufC* TimeEntryLC();
-
- /**
- * Creates the size entry for data array.
- * @return Size entry.
- */
- HBufC* SizeEntryLC();
-
- /**
- * Creates the default folder entry for data array.
- * @return Default folder entry.
- */
- HBufC* DefaultFolderEntryLC();
-
-
- /**
- * Creates the string of given resource id and value
- * @param resource id of number string
- * @param aValue value for string
- * @return HBufC* formatted string, caller must delete it
- */
- HBufC* ResourceStringValueLC( TInt aResId, TInt aValue );
-
- /**
- * C++ default constructor.
- */
- CFileManagerInfoPopup(
- CFileManagerItemProperties& aProperties,
- const CFileManagerFeatureManager& aFeatureManager );
-
- /**
- * Destructor.
- */
- ~CFileManagerInfoPopup();
-
- private: // Data
- /// Ref: Reference to properties data that will be shown in popup.
- CFileManagerItemProperties& iProperties;
-
- // Own: Memory State Popup utilities
- CMSPUtil* iUtil;
-
- // Ref: Reference to the feature manager
- const CFileManagerFeatureManager& iFeatureManager;
-
- // DRM UI Handler
- DRM::CDrmUiHandling* iUiHandling;
-
- };
-
-#endif // CFILEMANAGERINFOPOPUP_H
-
-// End of File
--- a/filemanager/View/inc/CFileManagerMMCInfoPopup.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/*
-* Copyright (c) 2006 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: Memory card info popup
-*
-*/
-
-
-
-#ifndef C_FILEMANAGERMMCINFOPOPUP_H
-#define C_FILEMANAGERMMCINFOPOPUP_H
-
-
-// INCLUDES
-#include <coecntrl.h>
-#include <badesca.h>
-
-
-// FORWARD DECLARATIONS
-class CAknSingleHeadingPopupMenuStyleListBox;
-class CAknPopupList;
-class TFileManagerDriveInfo;
-class CMSPUtil;
-
-
-// CLASS DECLARATION
-/**
- * This class displays memory card info
- *
- * @lib FileManagerView.lib
- * @since S60 3.1
- */
-NONSHARABLE_CLASS(CFileManagerMMCInfoPopup) : public CCoeControl
- {
-
-public: // Constructors and destructor
- /**
- * Two-phased constructor.
- * @param aProperties Properties of the item that will be shown
- * @return Newly created popup.
- */
- static CFileManagerMMCInfoPopup* NewL(
- const TFileManagerDriveInfo& aInfo );
-
- /**
- * Executes the dialog.
- * @return ETrue if dialog was dismissed using OK,
- * EFalse otherwise.
- */
- TBool ExecuteLD();
-
-protected:
- /**
- * Destructor.
- */
- ~CFileManagerMMCInfoPopup();
-
-private: // New functions
- /**
- * C++ default constructor.
- */
- CFileManagerMMCInfoPopup();
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL( const TFileManagerDriveInfo& aInfo );
-
- /**
- * Constructs data array
- * @param aProperties Properties of the item that will be shown
- * @return Data array
- */
- MDesCArray* ConstructDataArrayL(
- const TFileManagerDriveInfo& aInfo );
-
- /**
- * Creates name entry
- * @param aProperties Properties of the item that will be shown
- * @return Name entry
- */
- HBufC* NameEntryLC(
- const TFileManagerDriveInfo& aInfo );
-
- /**
- * Creates size entry with text and size
- * @param aTextId Text to display
- * @param aSize Size to display
- * @return Size entry
- */
- HBufC* SizeEntryLC( TInt aTextId, TInt64 aSize );
-
-private: // Data
- /**
- * Popup list that is the actual dialog that is shown
- * Own.
- */
- CAknPopupList* iPopupList;
-
- /**
- * Listbox that is given to CAknPopupList constructor
- * Own.
- */
- CAknSingleHeadingPopupMenuStyleListBox* iListBox;
-
- /**
- * Keeps track if destructor is already called
- * Not own.
- */
- TBool* iIsDestroyed;
-
- /**
- * Memory State Popup utilities
- * Own.
- */
- CMSPUtil* iUtil;
-
- };
-
-#endif // C_FILEMANAGERMMCINFOPOPUP_H
-
-// End of File
--- a/filemanager/View/inc/CFileManagerPopupBase.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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 file manager popups
-*
-*/
-
-
-
-#ifndef CFILEMANAGERPOPUPBASE_H
-#define CFILEMANAGERPOPUPBASE_H
-
-// INCLUDES
-#include <coecntrl.h>
-
-// FORWARD DECLARATIONS
-class MDesCArray;
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-class CAknMessageQueryDialog;
-#else // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-class CAknDoublePopupMenuStyleListBox;
-class CAknPopupList;
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-// CLASS DECLARATION
-/**
- * Base class for all popup dialogs in File Manager
- *
- * @lib FileManagerView.lib
- * @since S60 2.0
- */
-NONSHARABLE_CLASS(CFileManagerPopupBase) : public CCoeControl
- {
- public: // Constructors and destructor
- /**
- * Executes the dialog.
- * @return ETrue if dialog was dismissed using OK,
- * EFalse otherwise.
- */
- TBool ExecuteLD();
- protected:
- /**
- * Destructor.
- */
- ~CFileManagerPopupBase();
-
- protected: // New functions
- /**
- * Constructs the information that this popup shows.
- * @return Array of items that will be shown in popup.
- */
- virtual MDesCArray* ConstructDataArrayL() = 0;
-
- /**
- * C++ default constructor.
- */
- CFileManagerPopupBase();
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- virtual void ConstructL();
-
- /**
- * Sets the title of popup dialog.
- * @param aTitle New title of popup dialog.
- */
- void SetTitleL(const TDesC &aTitle);
-
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- /**
- * Activates CAknMessageQueryDialog link action.
- */
- virtual void ActivateLinkL();
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- private:
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- /**
- * Callback to implement CAknMessageQueryDialog link action.
- */
- static TInt LinkCallback(TAny* aPtr);
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- private: // Data
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- // Own: Dialog title.
- HBufC* iTitle;
- // Own: Dialog data.
- HBufC* iData;
-#else // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- // Own: Popup list that is the actual dialog that is shown.
- CAknPopupList* iPopupList;
- /// Own: Listbox that is given to CAknPopupList constructor.
- CAknDoublePopupMenuStyleListBox* iListBox;
- /// Ref: Keeps track if destructor is already called.
- TBool* iIsDestroyed;
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- };
-
-#endif // CFILEMANAGERPOPUPBASE_H
-
-// End of File
--- a/filemanager/View/inc/Cfilemanagerfoldernamequerydlg.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Dialog for asking folder name from user
-*
-*/
-
-
-
-#ifndef CFILEMANAGERFOLDERNAMEQUERYDLG_H
-#define CFILEMANAGERFOLDERNAMEQUERYDLG_H
-
-// INCLUDES
-#include <AknQueryDialog.h> // CAknTextQueryDialog
-
-// FORWARD DECLARATIONS
-class CFileManagerEngine;
-
-// CLASS DECLARATION
-/**
- * Dialog for querying folder names in File Manager
- *
- * @lib FileManagerView.lib
- * @since S60 2.0
- */
-NONSHARABLE_CLASS(CFileManagerFolderNameQueryDlg) : public CAknTextQueryDialog
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @param aDataText Old folder name, this will be the default
- * @param aEngine Reference to File Manager engine.
- * @param aNameGeneration ETrue if name generation will be used,
- * EFalse otherwise.
- * @return Newly created query dialog.
- */
- static CFileManagerFolderNameQueryDlg* NewL(
- TDes& aDataText,
- CFileManagerEngine& aEngine,
- TBool aNameGeneration );
-
- /**
- * Destructor.
- */
- ~CFileManagerFolderNameQueryDlg();
-
- private: // from CAknTextQueryDialog
- /**
- * @see CAknTextQueryDialog
- */
- TBool OkToExitL( TInt aButtonId );
-
- /**
- * @see CAknTextQueryDialog
- */
- TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType );
-
- private:
- /**
- * C++ default constructor.
- */
- CFileManagerFolderNameQueryDlg( TDes& aDataText, CFileManagerEngine& aEngine );
-
- /**
- * Symbian OS 2nd phase constructor.
- * @param aNameGeneration ETrue if name generation will be used,
- * EFalse otherwise.
- */
- void ConstructL( TBool aNameGeneration, TDes& aDataText );
-
- /**
- * Performs exit checking
- * @param aButtonId Button identifier
- */
- TBool DoOkToExitL( TInt aButtonId );
-
- private: // Data
- /// Ref: Reference to File Manager engine.
- CFileManagerEngine& iEngine;
- /// Own: Old folder name
- HBufC* iOldName;
- /// For blocking unwanted softkey events
- TBool iCallbackDisabled;
- };
-
-#endif // CFILEMANAGERFOLDERNAMEQUERYDLG_H
-
-// End of File
--- a/filemanager/View/inc/Cfilemanagerfoldernavigationpane.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,258 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Navigation pane for file manager
-*
-*/
-
-
-
-#ifndef CFILEMANAGERFOLDERNAVIGATIONPANE_H
-#define CFILEMANAGERFOLDERNAVIGATIONPANE_H
-
-// INCLUDES
-#include <coecntrl.h>
-#include <AknUtils.h> // TAknLayoutRect, TAknLayoutText
-#include <aknlongtapdetector.h>
-#include <AknsItemID.h>
-
-// CONSTANTS
-const TInt KFileManagerMaxFolderDepth = 5; // Includes the root
-
-// FORWARD DECLARATIONS
-class CFbsBitmap;
-class MFileManagerFolderNaviObserver;
-
-// CLASS DECLARATION
-
-/**
- * Folder navigation pane for File Manager.
- * Custom navigation pane to show folder depth of the
- * current folder in navigation pane using folder icons.
- *
- * @lib FileManagerView.lib
- * @since S60 2.0
- */
-class CFileManagerFolderNavigationPane :
- public CCoeControl,
- public MAknLongTapDetectorCallBack
- {
- private:
- /**
- * Folder indicator set.
- */
- class TIndicatorSet
- {
- public: // New functions
- /**
- * Compares two indicator sets.
- * @param aFirst First indicator set to compare.
- * @param aSecond The other indicator set to compare.
- * @return ETrue if sets are equal, EFalse otherwise.
- */
- static TBool Compare(
- const TIndicatorSet& aFirst,
- const TIndicatorSet& aSecond );
-
- public: // Data
- /// id
- TInt iId;
- /// Bitmap file name
- TFileName iBmpFile;
- /// Icon bitmap id
- TInt iIconId;
- /// Mask bitmap id
- TInt iMaskId;
- /// Skin ID
- TAknsItemID iAknsItemIdRoot;
-
- };
-
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @param aRoot Id of the root indicator
- * @param aDepth Depth of the navigation
- * @param aReader Resource reader for reading navigation pane from
- * resource file.
- * @return Newly created navigation pane.
- */
- IMPORT_C static CFileManagerFolderNavigationPane* NewL(
- const TInt aRoot,
- const TInt aDepth,
- TResourceReader& aReader );
-
- /**
- * Destructor.
- */
- IMPORT_C ~CFileManagerFolderNavigationPane();
-
-
- public: // New functions
-
- /**
- * Specifies how many subfolder icons are displayed.
- * Depth range is 0..n ( 0 = root, 1 = root+subfolder, etc. )
- * Depth over 4 is displayed just as tree dots at the end of navipane.
- * @param aDepth set current depth
- */
- IMPORT_C void SetFolderDepth( const TInt aDepth );
-
- /**
- * Return current folder depth.
- * @return aDepth return current depth
- */
- IMPORT_C TInt FolderDepth() const;
-
- /**
- * Changes the active root
- * @param aRoot Id of the root indicator
- */
- IMPORT_C void ChangeRootL( const TInt aRoot );
-
- /**
- * Handles resource change
- * @param aType Change type
- */
- IMPORT_C void HandleResourceChangeL( TInt aType );
-
- /**
- * Sets navigation observer
- * @param aObserver Pointer to navigation observer
- */
- IMPORT_C void SetObserver(
- MFileManagerFolderNaviObserver* aObserver );
-
- protected: // Functions From CCoeControl
-
- /**
- * @see CCoeControl
- */
- void SizeChanged();
-
- /**
- * @see CCoeControl
- */
- void Draw( const TRect& aRect ) const;
-
- /**
- * @see CCoeControl
- */
- void HandlePointerEventL(
- const TPointerEvent& aPointerEvent );
-
- private: // From MAknLongTapDetectorCallBack
- /**
- * @see MAknLongTapDetectorCallBack
- */
- void HandleLongTapEventL(
- const TPoint& aPenEventLocation,
- const TPoint& aPenEventScreenLocation );
-
- private:
-
- /**
- * C++ default constructor.
- * @param aDepth Depth of the navigation
- */
- CFileManagerFolderNavigationPane(
- const TInt aRoot, const TInt aDepth );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- * @param aRoot Id of the root indicator
- * @param aReader Resource reader for reading navigation pane from
- * resource file.
- */
- void ConstructL( TResourceReader& aReader );
-
- private: // New functions
- /**
- * Notifies CCoeControl to redraw the pane
- */
- void ReportChange();
-
- /**
- * Loads folder bitmaps
- */
- void LoadFolderBitmapL();
-
- /**
- * Checks does position map to drawn navigation level icon
- */
- TInt CheckHitFolderLevel( const TPoint& aPos );
-
- private: // Data
-
- // 0 = phone, 1 = MMC
- TInt iRoot;
-
- /// Own: Bitmap for subfolders
- CFbsBitmap* iFolderBitmap;
-
- /// Own: Bitmap mask for subfolders
- CFbsBitmap* iFolderMask;
-
- /// Own: Name of the bitmap file for folder icon and mask
- HBufC* iBmpFile;
-
- /// Id for folder icon bitmap
- TInt iFolderIconId;
-
- /// Id for folder icon mask
- TInt iFolderMaskId;
-
- /// Own: Separator character for folders
- HBufC* iSeparator;
-
- /// Own: The end character append to the indicator after iMaxDepth is reached
- HBufC* iEndChar;
-
- /// Id for folder skin
- TAknsItemID iAknsItemIdFolder;
-
- /// Maximum folder depth displayed in indicator
- TInt iMaxDepth;
-
- /// Own: Bitmap for rootfolder
- CFbsBitmap* iRootBitmap;
-
- /// Own: Bitmap mask for rootfolder
- CFbsBitmap* iRootMask;
-
- /// Rectangles where bitmaps are drawn ( 0 = rootbitmap, 1..max = defaultbitmaps )
- TFixedArray<TAknLayoutRect, KFileManagerMaxFolderDepth> iBitmapLayout;
-
- /// Rectangles where slashs are drawn ( 0..max = \, max + 1 = ... )
- TFixedArray<TAknLayoutText, KFileManagerMaxFolderDepth + 1> iTextLayout;
-
- /// Folder depth
- TInt iDepth;
-
- /// Array to store folder indicators
- RArray<TIndicatorSet> iIndicatorArray;
-
- /// Ref: Pointer to navigation observer
- MFileManagerFolderNaviObserver* iObserver;
-
- /// Own: For long tap detecting
- CAknLongTapDetector* iLongTapDetector;
-
- /// For long tap handling
- TBool iLongTap;
- };
-
-#endif // CMGNAVIPANEOLDERINDICATOR_H
-
-// End of File
\ No newline at end of file
--- a/filemanager/View/inc/FileManagerDlgUtils.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,389 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Dialog utilities
-*
-*/
-
-
-
-#ifndef FILEMANAGERVIEWUTILS_H
-#define FILEMANAGERVIEWUTILS_H
-
-// INCLUDES
-#include <e32base.h>
-
-
-// CONSTANTS
-const TInt KIndexNotUsed = -1;
-
-
-// FORWARD DECLARATIONS
-class TFileManagerDriveInfo;
-class CFileManagerEngine;
-class CFileManagerItemProperties;
-class CFileManagerFeatureManager;
-
-
-// CLASS DECLARATION
-/**
- * This class is used for static dialog utilities
- *
- * @lib FileManagerView.lib
- * @since S60 3.1
- */
-class FileManagerDlgUtils
- {
-
-public:
- /**
- * Shows one of many setting page
- *
- * @since S60 3.1
- * @param aTitleId Title text id
- * @param aTextArray Text array for available settings
- * @param aSelectedIndex For storing selected index
- * @return ETrue if selection made, otherwise EFalse
- */
- IMPORT_C static TBool ShowOOfMSettingQueryL(
- const TInt aTitleId,
- const MDesCArray* aTextArray,
- TInt& aSelectedIndex );
-
- /**
- * Shows one of many setting page
- *
- * @since S60 3.1
- * @param aTitleId Title text id
- * @param aTextIds Text id array for available settings
- * @param aSelectedIndex For storing selected index
- * @return ETrue if selection made, otherwise EFalse
- */
- IMPORT_C static TBool ShowOOfMSettingQueryL(
- const TInt aTitleId,
- const TInt aTextIds,
- TInt& aSelectedIndex );
-
- /**
- * Shows weekday selection setting page
- *
- * @since S60 3.1
- * @param aTitleId Title text id
- * @param aDay For storing selected weekday
- * @return ETrue if selection made, otherwise EFalse
- */
- IMPORT_C static TBool ShowWeekdayQueryL(
- const TInt aTitleId,
- TDay& aDay );
-
- /**
- * Shows n of many setting page
- *
- * @since S60 3.1
- * @param aTitleId Title text id
- * @param aTextIds Text id array for available settings
- * @param aSelection For storing selected indexes as bitmask
- * @param aDominantIndex Dominant index for select all behaviour
- * @return ETrue if selection made, otherwise EFalse
- */
- IMPORT_C static TBool ShowNOfMSettingQueryL(
- const TInt aTitleId,
- const TInt aTextIds,
- TUint32& aSelection,
- const TInt aDominantIndex = KIndexNotUsed );
-
- /**
- * Shows time setting page
- *
- * @since S60 3.1
- * @param aTitleId Title text id
- * @param aTime Selected time
- * @return ETrue if selection made, otherwise EFalse
- */
- IMPORT_C static TBool ShowTimeSettingQueryL(
- const TInt aTitleId, TTime& aTime );
-
- /**
- * Shows memory store info popup
- *
- * @since S60 3.1
- * @param aInfo Memory store info
- */
- IMPORT_C static void ShowMemoryStoreInfoPopupL(
- const TFileManagerDriveInfo& aInfo );
-
- /**
- * Shows info query in message query format
- *
- * @since S60 3.1
- * @param aText Text to display
- */
- IMPORT_C static void ShowInfoQueryL(
- const TDesC& aText );
-
- /**
- * Shows info query in message query format
- *
- * @since S60 3.1
- * @param aTextId TextId to display
- * @param aValue Text value to display
- */
- IMPORT_C static void ShowInfoQueryL(
- const TInt aTextId,
- const TDesC& aValue = KNullDesC );
-
- /**
- * Shows info query in message query format
- *
- * @since S60 3.1
- * @param aTextId TextId to display
- * @param aValue Integer value to display
- */
- IMPORT_C static void ShowInfoQueryL(
- const TInt aTextId,
- const TInt aValue );
-
- /**
- * Shows error note
- *
- * @since S60 3.1
- * @param aTextId TextId to display
- * @param aValue Text value to display
- */
- IMPORT_C static void ShowErrorNoteL(
- const TInt aTextId,
- const TDesC& aValue = KNullDesC );
-
- /**
- * Shows confirm note
- *
- * @since S60 3.1
- * @param aTextId TextId to display
- */
- IMPORT_C static void ShowConfirmNoteL( const TInt aTextId );
-
- /**
- * Shows warning note
- *
- * @since S60 3.1
- * @param aTextId TextId to display
- */
- IMPORT_C static void ShowWarningNoteL( const TInt aTextId );
-
- /**
- * Shows confirm query with yes no softkey
- *
- * @since S60 3.1
- * @param aTextId TextId to display
- * @param aValue Text value to display
- * @return ETrue is Yes selected, otherwise EFalse
- */
- IMPORT_C static TBool ShowConfirmQueryWithYesNoL(
- const TInt aTextId,
- const TDesC& aValue = KNullDesC );
-
- /**
- * Shows confirm query with yes no softkey
- *
- * @since S60 3.1
- * @param aText Text to display
- * @return ETrue is Yes selected, otherwise EFalse
- */
- IMPORT_C static TBool ShowConfirmQueryWithYesNoL(
- const TDesC& aText );
-
- // Dialog icon types
- enum TIcons
- {
- EInfoIcons = 0,
- EErrorIcons
- };
-
- /**
- * Shows confirm query with ok softkey
- *
- * @since S60 3.1
- * @param aIcons Icons to display
- * @param aText Text to display
- * @param aValue Text value to display
- */
- IMPORT_C static void ShowConfirmQueryWithOkL(
- const TIcons aIcons,
- const TInt aTextId,
- const TDesC& aValue = KNullDesC );
-
- /**
- * Shows confirm query with ok softkey
- *
- * @since S60 3.1
- * @param aIcons Icons to display
- * @param aText Text to display
- * @param aValue Integer value to display
- */
- IMPORT_C static void ShowConfirmQueryWithOkL(
- const TIcons aIcons,
- const TInt aTextId,
- const TInt aValue );
-
- /**
- * Shows confirm query with ok softkey
- *
- * @since S60 3.1
- * @param aIcons Icons to display
- * @param aText Text to display
- */
- IMPORT_C static void ShowConfirmQueryWithOkL(
- const TIcons aIcons,
- const TDesC& aText );
-
- /**
- * Shows confirm query with ok cancel softkeys
- *
- * @since S60 3.1
- * @param aTextId TextId to display
- * @param aValue Text value to display
- * @return ETrue is Cancel selected, otherwise EFalse
- */
- IMPORT_C static TBool ShowConfirmQueryWithOkCancelL(
- const TInt aTextId,
- const TDesC& aValue = KNullDesC );
-
- /**
- * Shows confirm query with ok cancel softkeys
- *
- * @since S60 3.1
- * @param aText Text to display
- * @return ETrue is Cancel selected, otherwise EFalse
- */
- IMPORT_C static TBool ShowConfirmQueryWithOkCancelL(
- const TDesC& aText );
-
- /**
- * Shows info note
- *
- * @since S60 3.1
- * @param aText Text to display
- */
- IMPORT_C static void ShowInfoNoteL(
- const TDesC& aText );
-
- /**
- * Shows info note
- *
- * @since S60 3.1
- * @param aTextId TextId to display
- * @param aValue Text value to display
- */
- IMPORT_C static void ShowInfoNoteL(
- const TInt aTextId,
- const TDesC& aValue = KNullDesC );
-
- /**
- * Shows info note
- *
- * @since S60 3.1
- * @param aTextId TextId to display
- * @param aValue Integer value to display
- */
- IMPORT_C static void ShowInfoNoteL(
- const TInt aTextId,
- const TInt aValue );
-
- /**
- * Shows simple password query
- *
- * @since S60 3.1
- * @param aTitleId Title to display
- * @param aPwd For storing given password
- * @return ETrue if password is given, otherwise EFalse
- */
- IMPORT_C static TBool ShowSimplePasswordQueryL(
- const TInt aTitleId, TDes& aPwd );
-
- /**
- * Shows password query
- *
- * @since S60 3.1
- * @param aPwd For storing given password
- * @return ETrue if password is given correctly, otherwise EFalse
- */
- IMPORT_C static TBool ShowPasswordQueryL( TDes& aPwd );
-
- /**
- * Shows file name query
- *
- * @since S60 3.2
- * @param aTitleId Title text id
- * @param aOldName Old file name
- * @param aNewName User given new name
- * @param aEngine Reference to the engine
- * @return ETrue if name is given, otherwise EFalse
- */
- IMPORT_C static TBool ShowFileNameQueryL(
- const TInt aTitleId,
- const TDesC& aOldName,
- TDes& aNewName,
- CFileManagerEngine& aEngine );
-
- /**
- * Shows folder name query
- *
- * @since S60 3.2
- * @param aTitleId Title text id
- * @param aName Old folder name, this will be the default for new
- * @param aEngine Reference to the engine
- * @param aNameGeneration ETrue if name generation will be used,
- * EFalse otherwise
- * @return ETrue if name is given, otherwise EFalse
- */
- IMPORT_C static TBool ShowFolderNameQueryL(
- const TInt aTitleId,
- TDes& aName,
- CFileManagerEngine& aEngine,
- const TBool aNameGeneration = EFalse );
-
- /**
- * Shows item info popup
- *
- * @since S60 3.2
- * @param aProperties Item properties
- * @param aFeatureManager Reference to the feature manager
- */
- IMPORT_C static void ShowItemInfoPopupL(
- CFileManagerItemProperties& aProperties,
- const CFileManagerFeatureManager& aFeatureManager );
-
- /**
- * Shows simple password query with drive name
- *
- * @since S60 3.2
- * @param aText Name to display
- * @param aPwd For storing given password
- * @return ETrue if password is given, otherwise EFalse
- */
- IMPORT_C static TBool ShowSimplePasswordQueryL(
- const TDesC& aText, TDes& aPwd );
-
- /**
- * Shows error note
- *
- * @since S60 3.2
- * @param aText Text to display
- */
- IMPORT_C static void ShowErrorNoteL( const TDesC& aText );
-
- };
-
-#endif // FILEMANAGERVIEWUTILS_H
-
-// End of File
--- a/filemanager/View/inc/FileManagerView.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2006 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 for project FileManagerView
-*
-*/
-
-
-#ifndef FILEMANAGERVIEW_HRH
-#define FILEMANAGERVIEW_HRH
-
-
-// The icon types
-enum TFileManagerIconType
- {
- // Standard icon
- EFileManagerIconStdIcon = 0,
- // Custom color icon
- EFileManagerIconColorIcon
- };
-
-#endif // FILEMANAGERVIEW_HRH
--- a/filemanager/View/inc/FileManagerView.rh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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 for project FileManagerEngine
-*
-*/
-
-
-#ifndef FILEMANAGERVIEW_RH
-#define FILEMANAGERVIEW_RH
-
-// STRUCTURE DEFINITIONS
-
-// -----------------------------------------------------------------------------
-// FILEMANAGER_ICON
-// -----------------------------------------------------------------------------
-//
-
-STRUCT FILEMANAGER_ICON
- {
- BYTE iconId; // unique filemanager icon id
- LTEXT mbmFile; // Mbm file name
- WORD iconBmpId; // icon bitmap
- WORD maskBmpId; // mask bitmap
- LONG majorSkinId = EAknsMajorNone; // most significant part of icon skin ID
- LONG minorSkinId = EAknsMinorNone; // least significant part of icon skin ID
- BYTE iconType = EFileManagerIconStdIcon; // icon type info
- }
-
-// -----------------------------------------------------------------------------
-// MG_FOLDER_INDICATOR
-// Array of MG_FOLDER_INDICATOR_DATA.
-// -----------------------------------------------------------------------------
-//
-STRUCT FILEMANAGER_FOLDER_NAVIGATION_PANE
- {
- LTEXT bmpfile;
- WORD foldericonid = 0;
- WORD foldermaskid = 0;
- LONG majorSkinId = EAknsMajorNone; // most significant part of icon skin ID
- LONG minorSkinId = EAknsMinorNone; // least significant part of icon skin ID
- LTEXT separator;
- LTEXT endchar;
- STRUCT folderindicators []; // FILEMANAGER_FOLDER_NAVIGATION_PANE_DATA
- }
-
-// -----------------------------------------------------------------------------
-// MG_FOLDER_INDICATOR_DATA
-// Folder indicator for single drive
-// -----------------------------------------------------------------------------
-//
-STRUCT FILEMANAGER_FOLDER_NAVIGATION_PANE_DATA
- {
- WORD id = 0;
- LTEXT bmpfile;
- WORD rooticonid = 0;
- WORD rootmaskid = 0;
- LONG majorSkinId = EAknsMajorNone; // most significant part of icon skin ID
- LONG minorSkinId = EAknsMinorNone; // least significant part of icon skin ID
- }
-
-#endif // FILEMANAGERVIEW_RH
-
-// End of File
--- a/filemanager/View/inc/MFileManagerFolderNaviObserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
-* Copyright (c) 2006 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: Observer for folder navigation events
-*
-*/
-
-
-#ifndef M_FILEMANAGERFOLDERNAVIOBSERVER_H
-#define M_FILEMANAGERFOLDERNAVIOBSERVER_H
-
-
-// INCLUDES
-#include <e32base.h>
-
-
-// CLASS DECLARATION
-/**
- * This class observes folder navigation notifications
- *
- * @since S60 3.1
- */
-class MFileManagerFolderNaviObserver
- {
-
-public:
- // Navigation event types
- enum TNaviEvent
- {
- ENaviTapDown = 0,
- ENaviTapUp,
- ENaviLongTap
- };
-
- /**
- * Handles folder navigation notification
- *
- * @since S60 3.1
- * @param aEvent Navigation event type
- * @param aValue Navigation event related value
- */
- virtual void HandleFolderNaviEventL(
- TNaviEvent aEvent, TInt aValue ) = 0;
-
- };
-
-#endif // M_FILEMANAGERFOLDERNAVIOBSERVER_H
-
-// End of File
--- a/filemanager/View/inc/MFileManagerGlobalDlgObserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* Copyright (c) 2006 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 dialog result observer
-*
-*/
-
-
-#ifndef M_FILEMANAGERGLOBALDLGOBSERVER_H
-#define M_FILEMANAGERGLOBALDLGOBSERVER_H
-
-
-// INCLUDES
-#include <e32base.h>
-
-
-// CLASS DECLARATION
-/**
- * This class observes global dialog notifications
- *
- * @since S60 3.1
- */
-class MFileManagerGlobalDlgObserver
- {
-
-public:
- /**
- * Handles global dialog result value
- *
- * @since S60 3.1
- * @param aDialogType Global dialog type
- * @param aDialogResult Global dialog result value
- */
- virtual void HandleGlobalDlgResult(
- TInt aDialogType,
- TInt aDialogResult ) = 0;
-
- };
-
-#endif // M_FILEMANAGERGLOBALDLGOBSERVER_H
-
-// End of File
--- a/filemanager/View/src/CFileManagerCheckBoxSettingPage.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
-* Copyright (c) 2006 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: Checkbox setting page
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <akncheckboxsettingpage.h>
-#include "CFileManagerCheckBoxSettingPage.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-// ----------------------------------------------------------------------------
-// CFileManagerCheckBoxSettingPage::CFileManagerCheckBoxSettingPage
-// ----------------------------------------------------------------------------
-//
-CFileManagerCheckBoxSettingPage::CFileManagerCheckBoxSettingPage(
- const TInt aResourceID,
- CSelectionItemList& aItemArray,
- const TInt aDominantItemIndex ) :
- CAknCheckBoxSettingPage( aResourceID, &aItemArray ),
- iItemsArray( aItemArray ),
- iDominantItemIndex( aDominantItemIndex )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerCheckBoxSettingPage::~CFileManagerCheckBoxSettingPage
-// ----------------------------------------------------------------------------
-//
-CFileManagerCheckBoxSettingPage::~CFileManagerCheckBoxSettingPage()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerCheckBoxSettingPage::UpdateSelectionL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerCheckBoxSettingPage::UpdateSettingL()
- {
- CAknCheckBoxSettingPage::UpdateSettingL();
- UpdateSelection();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerCheckBoxSettingPage::UpdateSelection
-// ----------------------------------------------------------------------------
-//
-void CFileManagerCheckBoxSettingPage::UpdateSelection()
- {
- TInt count( iItemsArray.Count() );
- if ( iDominantItemIndex < 0 || iDominantItemIndex > count )
- {
- return; // Dominant item not used
- }
-
- CAknSetStyleListBox* listBox = ListBoxControl();
- CListBoxView* view = listBox->View();
-
- TInt selectedItem( listBox->CurrentItemIndex() );
- if ( selectedItem < 0 || selectedItem > count )
- {
- return; // Invalid selection
- }
-
- TBool redraw( EFalse );
-
- // Deselect all other items if dominant item is selected
- if ( iDominantItemIndex == selectedItem &&
- iItemsArray.At( selectedItem )->SelectionStatus() )
- {
- for ( TInt i( 0 ); i < count; ++i )
- {
- if ( i != iDominantItemIndex )
- {
- iItemsArray.At( i )->SetSelectionStatus( EFalse );
- view->DeselectItem( i );
- }
- }
- redraw = ETrue;
- }
- // Deselect dominant item if any other item is selected
- else if ( iDominantItemIndex != selectedItem &&
- iItemsArray.At( iDominantItemIndex )->SelectionStatus() )
- {
- for ( TInt i( 0 ); i < count; ++i )
- {
- if ( i != iDominantItemIndex &&
- iItemsArray.At( i )->SelectionStatus() )
- {
- iItemsArray.At( iDominantItemIndex )->SetSelectionStatus(
- EFalse );
- view->DeselectItem( iDominantItemIndex );
- redraw = ETrue;
- break;
- }
- }
- }
-
- // Hide ok if selection is empty
- TBool empty( ETrue );
- for ( TInt i( 0 ); i < count; ++i )
- {
- if ( iItemsArray.At( i )->SelectionStatus() )
- {
- empty = EFalse;
- break;
- }
- }
- CEikButtonGroupContainer* cba = Cba();
- if ( empty )
- {
- cba->MakeCommandVisible( EAknSoftkeyOk, EFalse );
- }
- else
- {
- cba->MakeCommandVisible( EAknSoftkeyOk, ETrue );
- }
- cba->DrawDeferred();
-
- if ( redraw )
- {
- listBox->DrawDeferred();
- }
- }
-
-// End of File
--- a/filemanager/View/src/CFileManagerFileNameQueryDlg.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,251 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Dialog for asking file name from user
-*
-*/
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <aknnotewrappers.h>
-#include <bautils.h>
-#include <CFileManagerEngine.h>
-#include <filemanagerview.rsg>
-#include "CFileManagerFileNameQueryDlg.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "CFileManagerItemProperties.h"
-#include "FileManagerDlgUtils.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileNameQueryDlg::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileNameQueryDlg* CFileManagerFileNameQueryDlg::NewL(
- const TDesC& aOldName,
- TDes& aNewName,
- CFileManagerEngine& aEngine )
- {
- CFileManagerFileNameQueryDlg* self =
- new( ELeave ) CFileManagerFileNameQueryDlg(
- aNewName, aEngine );
-
- CleanupStack::PushL( self );
- self->ConstructL( aOldName );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileNameQueryDlg::CFileManagerFileNameQueryDlg
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileNameQueryDlg::CFileManagerFileNameQueryDlg(
- TDes& aNewName,
- CFileManagerEngine& aEngine ) :
- CAknTextQueryDialog( aNewName ),
- iEngine( aEngine )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileNameQueryDlg::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFileNameQueryDlg::ConstructL( const TDesC& aOldName )
- {
- TParsePtrC name( aOldName );
- Text().Copy( name.NameAndExt() );
- iOldName = aOldName.AllocL();
-
- // Strip any directionality markers to get pure name
- TPtr ptr( iOldName->Des() );
- AknTextUtils::StripCharacters( ptr, KFmgrDirectionalChars );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileNameQueryDlg::~CFileManagerFileNameQueryDlg
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerFileNameQueryDlg::~CFileManagerFileNameQueryDlg()
- {
- delete iOldName;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileNameQueryDlg::DoOkToExitL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFileNameQueryDlg::DoOkToExitL( TInt aButtonId )
- {
- TBool result( CAknTextQueryDialog::OkToExitL( aButtonId ) );
-
- HBufC* userText = Text().AllocLC();
- TPtr ptrUserText( userText->Des() );
- ptrUserText.TrimRight();
-
- // Strip any directionality markers to get pure name
- AknTextUtils::StripCharacters( ptrUserText, KFmgrDirectionalChars );
-
- // Check file name
- TBool isValidName( EFalse );
- TParsePtrC oldName( *iOldName );
- if ( oldName.PathPresent() )
- {
- isValidName = iEngine.IsValidName(
- oldName.DriveAndPath(), *userText, EFalse );
- }
- else
- {
- isValidName = iEngine.IsValidName( KNullDesC, *userText, EFalse );
- }
-
- if( !isValidName )
- {
- if( iEngine.IllegalChars( *userText ) )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_FLDR_ILLEGAL_CHARACTERS );
- }
- else
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_FLDR_BAD_FILE_NAME );
- }
- CAknQueryControl* queryControl = QueryControl();
- if (queryControl)
- {
- CEikEdwin* edwin = static_cast< CEikEdwin* >(
- queryControl->ControlByLayoutOrNull( EDataLayout ) );
- if (edwin)
- {
- edwin->SetSelectionL( edwin->TextLength(), 0 );
- }
- }
- CleanupStack::PopAndDestroy( userText );
- return EFalse;
- }
-
- HBufC* userTextFullPath = HBufC::NewLC( KMaxFileName );
- TPtr ptrUserTextFullPath( userTextFullPath->Des() );
-
- ptrUserTextFullPath.Append( oldName.DriveAndPath() );
- ptrUserTextFullPath.Append( *userText );
- // if some other entry found with same name
- // not ok except if name same as original
- if( oldName.NameAndExt().CompareF( *userText ) &&
- ( iEngine.IsNameFoundL( ptrUserTextFullPath ) ||
- BaflUtils::FileExists(CCoeEnv::Static()->FsSession(), ptrUserTextFullPath)) )
- {
- TBool overWrite( EFalse );
- TUint32 fileType( 0 );
-
- TRAPD( err, fileType = iEngine.FileTypeL( ptrUserTextFullPath ) );
- if ( err != KErrNone && err != KErrNotFound && err != KErrAccessDenied )
- {
- User::Leave( err );
- }
-
- if( ( err == KErrNotFound ) ||
- ( err == KErrAccessDenied ) ||
- ( fileType & ( CFileManagerItemProperties::EOpen |
- CFileManagerItemProperties::EReadOnly |
- CFileManagerItemProperties::EFolder ) ) )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_FLDR_NAME_ALREADY_USED, Text() );
- }
- else
- {
- overWrite =
- FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- R_QTN_ITEM_OVERWRITE_QUERY, Text() );
- }
-
- if( !overWrite )
- {
- CAknQueryControl* queryControl = QueryControl();
- if (queryControl)
- {
- CEikEdwin* edwin = static_cast< CEikEdwin* >(
- queryControl->ControlByLayoutOrNull( EDataLayout ) );
- if (edwin)
- {
- edwin->SetSelectionL( edwin->TextLength(), 0 );
- }
- }
- result = EFalse;
- }
- }
-
- TParsePtrC newName( ptrUserText );
- if ( result && oldName.Ext().CompareF( newName.Ext() ) )
- {
- FileManagerDlgUtils::ShowWarningNoteL(
- R_QTN_FM_WARNING_FILE_EXTENSION );
- }
-
- CleanupStack::PopAndDestroy( userTextFullPath );
- CleanupStack::PopAndDestroy( userText );
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileNameQueryDlg::OkToExitL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFileNameQueryDlg::OkToExitL( TInt aButtonId )
- {
- if ( iCallbackDisabled )
- {
- return EFalse; // Block unwanted softkey events
- }
- TBool ret( EFalse );
- iCallbackDisabled = ETrue;
- TRAPD( err, ret = DoOkToExitL( aButtonId ) );
- iCallbackDisabled = EFalse;
- User::LeaveIfError( err );
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileNameQueryDlg::OfferKeyEventL
-//
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CFileManagerFileNameQueryDlg::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
- {
- TKeyResponse response = EKeyWasNotConsumed;
- if ( aType == EEventKey && aKeyEvent.iCode == EKeyEnter )
- {
- response = EKeyWasConsumed;
- }
- else
- {
- response = CAknTextQueryDialog::OfferKeyEventL(aKeyEvent, aType);
- }
- return response;
- }
-
-// End of File
--- a/filemanager/View/src/CFileManagerFullOmaDrmInfo.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,997 +0,0 @@
-/*
-* Copyright (c) 2005-2006 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: Gets the item DRM information
-*
-*/
-
-
-// INCLUDE FILES
-#include <coemain.h>
-#include <StringLoader.h>
-#include <DRMHelper.h>
-#include <DRMRights.h>
-#include <AknUtils.h>
-#include <filemanagerview.rsg>
-#include <FileManagerDebug.h>
-#include <drmuihandling.h>
-#include "CFileManagerFullOmaDrmInfo.h"
-
-// CONSTANTS
-_LIT( KSeparator, "\t" );
-#ifndef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-_LIT( KDateFormat1, "%1" );
-_LIT( KDateFormat2, "%2" );
-_LIT( KDateFormat3, "%3" );
-_LIT( KTimeFormatBefore, " %-B %J:%T" );
-_LIT( KTimeFormatAfter, " %J:%T %+B" );
-_LIT( KEmptyChar, " " );
-const TInt KDateStringLen = 20;
-
-const TUint KSecondSeparator = 1;
-const TUint KThirdSeparator = 2;
-
-
-const TInt KPlayRights = 0;
-const TInt KDisplayRights = 1;
-const TInt KExecuteRights = 2;
-const TInt KPrintRights = 3;
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-
-// ============================ LOCAL FUNCTIONS ================================
-
-// -----------------------------------------------------------------------------
-// AppendLabelAndDataToArrayL
-// -----------------------------------------------------------------------------
-static void AppendLabelAndDataToArrayL( CDesCArray& aArray,
- const TDesC& aLabel,
- const TDesC& aData )
- {
- HBufC* dataStr = HBufC::NewLC( aLabel.Length() +
- KSeparator().Length() +
- aData.Length() );
-
- TPtr dataPtr( dataStr->Des() );
- dataPtr.Append( aLabel );
- dataPtr.Append( KSeparator );
- dataPtr.Append( aData );
-
- AknTextUtils::LanguageSpecificNumberConversion( dataPtr );
-
- aArray.AppendL( dataPtr );
-
- CleanupStack::PopAndDestroy( dataStr );
- }
-
-#ifndef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-// -----------------------------------------------------------------------------
-// ResetAndDestroy
-// -----------------------------------------------------------------------------
-static void ResetAndDestroy( TAny* aPtr )
- {
- RPointerArray< CDRMHelperRightsConstraints >* array =
- static_cast< RPointerArray<CDRMHelperRightsConstraints>* >( aPtr );
- array->ResetAndDestroy();
- array->Close();
- }
-
-// -----------------------------------------------------------------------------
-// IsFutureRights
-// -----------------------------------------------------------------------------
-static TBool IsFutureRights(
- RPointerArray<CDRMRightsConstraints>& aRightsArray )
- {
- TBool ret( EFalse );
- const TInt count( aRightsArray.Count() );
- for( TInt i = 0 ; i < count ; ++i )
- {
- CDRMRightsConstraints* rights = aRightsArray[i];
- TUint32 expiration( 0 );
- TUint32 constType( 0 );
- TInt topPriorityValue( CDRMRights::EInvalidRights );
- if( rights )
- {
- TInt currentPriorityValue( rights->GetConstraintInfo( expiration, constType ) );
- if( currentPriorityValue > topPriorityValue )
- {
- // priority is higher than previous rigths
- topPriorityValue = currentPriorityValue;
- if( CDRMRights::EFutureRights == expiration )
- {
- ret = ETrue;
- }
- else
- {
- // no future rights
- ret = EFalse;
- }
- }
- }
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// DateTimeStringLC
-// -----------------------------------------------------------------------------
-static HBufC* DateTimeStringLC( const TTime& aTime )
- {
- TBuf<KDateStringLen> dateStr;
- TBuf<KDateStringLen> timeStr;
- TBuf<KDateStringLen> dateStrFormat;
-
- // Localized date separator form
- TLocale local;
- dateStrFormat.Append( KDateFormat1 );
- dateStrFormat.Append( local.DateSeparator( KSecondSeparator ) );
- dateStrFormat.Append( KDateFormat2 );
- dateStrFormat.Append( local.DateSeparator( KThirdSeparator ) );
- dateStrFormat.Append( KDateFormat3 );
- aTime.FormatL( dateStr, dateStrFormat );
-
- if ( local.AmPmSymbolPosition() == ELocaleBefore )
- {
- aTime.FormatL( timeStr, KTimeFormatBefore );
- }
- else
- {
- aTime.FormatL( timeStr, KTimeFormatAfter );
- }
-
- HBufC* buf = HBufC::NewLC( dateStr.Length() +
- KEmptyChar().Length() +
- timeStr.Length() );
- TPtr ptrBuffer( buf->Des() );
- ptrBuffer.Append( dateStr );
- ptrBuffer.Append( KEmptyChar );
- ptrBuffer.Append( timeStr );
-
- return buf;
- }
-
-// -----------------------------------------------------------------------------
-// DateTimeL
-// -----------------------------------------------------------------------------
-static void DateTimeL( CDesCArray& aArray,
- const TTime& aTime,
- TInt aResourceId,
- const TDesC& aType )
- {
- HBufC* label = StringLoader::LoadLC( aResourceId, aType );
- HBufC* dateTime = DateTimeStringLC( aTime );
-
- AppendLabelAndDataToArrayL( aArray, *label, *dateTime );
-
- CleanupStack::PopAndDestroy( dateTime );
- CleanupStack::PopAndDestroy( label );
- }
-
-// -----------------------------------------------------------------------------
-// FillCounterInfoL
-// -----------------------------------------------------------------------------
-static void FillCounterInfoL( CDesCArray& aArray,
- CDRMHelperRightsConstraints& aRights,
- const TDesC& aType )
- {
- TUint32 count( 0 );
- TUint32 timedCount( 0 );
- TUint32 ignore1( 0 );
- TUint32 ignore2( 0 );
- TTimeIntervalSeconds ignore3( 0 );
- TInt err( KErrNone );
-
- TRAPD( errCount, aRights.GetCountersL( count, ignore1 ) );
- TRAPD( errTimedCount, aRights.GetTimedCountL( timedCount, ignore2,
- ignore3 ) );
-
- if ( errCount == KErrNone && errTimedCount == KErrNone )
- {
- // Both counts present, use minimum
- count = Min( count, timedCount );
- err = KErrNone;
- }
- else if ( errCount == KErrNone )
- {
- // Use count
- err = KErrNone;
- }
- else if ( errTimedCount == KErrNone )
- {
- // Use timed count
- count = timedCount;
- err = KErrNone;
- }
- else
- {
- // Neither regular nor timed count constraint
- // present, return error
- err = KErrNotFound;
- }
-
- if ( err == KErrNone )
- {
- // "Times left (%U)"
- HBufC* label =
- StringLoader::LoadLC( R_QTN_DRM_MGR_DET_UTL_X, aType );
-
- HBufC* data = NULL;
-
- if ( count == 1 )
- {
- // "1 count"
- data = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_1_COUNT );
- }
- else
- {
- // "%N counts"
- data = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_N_COUNTS, count );
- }
-
- AppendLabelAndDataToArrayL( aArray, *label, *data );
-
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
- }
- }
-
-// -----------------------------------------------------------------------------
-// SplitTime
-// -----------------------------------------------------------------------------
-//
-static void SplitTime( const TTimeIntervalSeconds& aInterval,
- TInt& aIntYrs, TInt& aIntMon, TInt& aIntDay,
- TInt& aIntHrs, TInt& aIntMin, TInt& aIntSec )
- {
- const TInt KSecsInMin( 60 );
- const TInt KSecsInHour( KSecsInMin * 60 );
- const TInt KSecsInDay( KSecsInHour * 24 );
-
- // includes leap year day
- const TInt KLastMonthIndex = 11;
- const TInt KMaxDaysInMonths[] = {
- 31, 62, 92, 123, 153, 184,
- 215, 245, 276, 306, 337, 366 };
-
- // calculate full days
- TInt temp( aInterval.Int() / KSecsInDay );
-
- // calculate full years, calculate without leap year for user to get the
- // longest time possible
- aIntYrs = temp / ( KMaxDaysInMonths[KLastMonthIndex] - 1 );
-
- // calc remainder days
- temp = temp % ( KMaxDaysInMonths[KLastMonthIndex] - 1 );
-
- aIntMon = 0;
-
- TInt i( 0 );
- if ( temp >= KMaxDaysInMonths[0] )
- {
- for ( i = 0; i < KLastMonthIndex; i++ )
- {
- // found correct amount of months
- if ( temp >= KMaxDaysInMonths[i] && temp < KMaxDaysInMonths[i+1] )
- {
- // i now contains amount of full months (+1 because of table index)
- aIntMon = i + 1;
- break;
- }
- }
- }
-
- // calc remainder days = allSecs - secsInFullYears - secsInFullMonts
- if( temp >= KMaxDaysInMonths[i] )
- {
- aIntDay = temp - KMaxDaysInMonths[i];
- }
- else
- {
- aIntDay = temp;
- }
-
- // calculate remainder secs
- temp = aInterval.Int() % KSecsInDay;
-
- aIntHrs = temp / KSecsInHour;
-
- // calculate remainder secs
- temp = temp % KSecsInHour;
-
- aIntMin = temp / KSecsInMin;
-
- // calculate remainder secs
- aIntSec = temp % KSecsInMin;
- }
-
-// -----------------------------------------------------------------------------
-// AddSinglePartOfTimeL
-// -----------------------------------------------------------------------------
-//
-static void AddSinglePartOfTimeL( TInt aNumOfElements,
- TInt aResourceIdSingle,
- TInt aResourceIdOneFinal,
- TInt aResourceIdTwoFour,
- TInt aResourceIdFiveZero,
- CDesCArrayFlat* aStrings )
- {
- const TInt KDigitFive = 5;
- const TInt KDigitNine = 9;
- const TInt KDigitTen = 10;
- const TInt KDigitEleven = 11;
- const TInt KDigitFourTeen = 14;
- const TInt KDigitHundred = 100;
- HBufC* stringHolder = NULL;
- TInt finalOneDigit( aNumOfElements % KDigitTen );
- TInt finalTwoDigits( aNumOfElements % KDigitHundred );
-
- if ( aNumOfElements == 1 )
- {
- stringHolder = StringLoader::LoadLC( aResourceIdSingle );
- }
- else if ( finalOneDigit == 1 && finalTwoDigits != KDigitEleven )
- {
- stringHolder = StringLoader::LoadLC( aResourceIdOneFinal,
- aNumOfElements );
- }
- else if ( finalOneDigit == 0 ||
- ( finalOneDigit >= KDigitFive && finalOneDigit <= KDigitNine ) ||
- ( finalTwoDigits >= KDigitEleven && finalTwoDigits <= KDigitFourTeen ) )
- {
- stringHolder = StringLoader::LoadLC( aResourceIdFiveZero,
- aNumOfElements );
- }
- else
- {
- stringHolder = StringLoader::LoadLC( aResourceIdTwoFour,
- aNumOfElements );
- }
-
- if ( aStrings )
- {
- aStrings->AppendL( *stringHolder );
- }
-
- CleanupStack::PopAndDestroy ( stringHolder );
- }
-
-// -----------------------------------------------------------------------------
-// AddPartsOfTimeLC
-// -----------------------------------------------------------------------------
-//
-static HBufC* AddPartsOfTimeLC( TInt aIntYrs, TInt aIntMon, TInt aIntDay,
- TInt aIntHrs, TInt aIntMin, TInt aIntSec )
- {
- // Only the two most meaningful data will be showed
- TInt numOfData( 0 );
- const TInt KMaxDataItems = 2;
-
- CDesCArrayFlat* strings = new ( ELeave ) CDesCArrayFlat( KMaxDataItems );
- CleanupStack::PushL( strings );
-
- if ( aIntYrs > 0 )
- {
- AddSinglePartOfTimeL( aIntYrs,
- R_QTN_DRM_NBR_OF_YEARS_ONE,
- R_QTN_DRM_NBR_OF_YEARS_ONE_FINAL,
- R_QTN_DRM_NBR_OF_YEARS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_YEARS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- if ( aIntMon > 0 )
- {
- // Second type not provided because 11 is the maximum
- AddSinglePartOfTimeL( aIntMon,
- R_QTN_DRM_NBR_OF_MONTHS_ONE,
- 0,
- R_QTN_DRM_NBR_OF_MONTHS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_MONTHS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- // Only if years or months were missing
- if ( aIntDay > 0 && numOfData < KMaxDataItems )
- {
- AddSinglePartOfTimeL( aIntDay,
- R_QTN_DRM_NBR_OF_DAYS_ONE,
- R_QTN_DRM_NBR_OF_DAYS_ONE_FINAL,
- R_QTN_DRM_NBR_OF_DAYS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_DAYS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- if ( aIntHrs > 0 && numOfData < KMaxDataItems )
- {
- AddSinglePartOfTimeL( aIntHrs,
- R_QTN_DRM_NBR_OF_HOURS_ONE,
- R_QTN_DRM_NBR_OF_HOURS_ONE_FINAL,
- R_QTN_DRM_NBR_OF_HOURS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_HOURS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- if ( aIntMin > 0 && numOfData < KMaxDataItems )
- {
- AddSinglePartOfTimeL( aIntMin,
- R_QTN_DRM_NBR_OF_MINS_ONE,
- R_QTN_DRM_NBR_OF_MINS_ONE_FINAL,
- R_QTN_DRM_NBR_OF_MINS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_MINS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- // If interval is 0, then it shows "0 seconds" anyway
- if ( ( aIntSec > 0 && numOfData < KMaxDataItems ) || numOfData == 0 )
- {
- AddSinglePartOfTimeL( aIntSec,
- R_QTN_DRM_NBR_OF_SECS_ONE,
- R_QTN_DRM_NBR_OF_SECS_ONE_FINAL,
- R_QTN_DRM_NBR_OF_SECS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_SECS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- HBufC* stringHolder = NULL;
- if ( numOfData == 1 )
- {
- stringHolder = StringLoader::LoadL( R_QTN_DRM_MGR_DET_INTER,
- strings->MdcaPoint(0) );
- }
- else
- {
- stringHolder = StringLoader::LoadL( R_QTN_DRM_MGR_DET_INTER_TWO,
- *strings );
- }
-
- CleanupStack::PopAndDestroy( strings );
-
- CleanupStack::PushL( stringHolder );
-
- return stringHolder;
- }
-
-// -----------------------------------------------------------------------------
-// FillUsageTimeLeftInfoL
-// -----------------------------------------------------------------------------
-static void FillUsageTimeLeftInfoL( CDesCArray& aArray,
- const TTimeIntervalSeconds& aInterval,
- const TDesC& aType,
- TBool aIsAccumulatedTime )
- {
- TInt years( 0 );
- TInt months( 0 );
- TInt days( 0 );
- TInt hours( 0 );
- TInt minutes( 0 );
- TInt seconds( 0 );
- HBufC* label = NULL;
- HBufC* data = NULL;
-
- if ( aIsAccumulatedTime )
- {
- // "Usage time left"
- label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_ACCUM_TIME_LEFT );
- }
- else
- {
- // "Time left (%U)"
- label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_UDL_X, aType );
- }
-
- SplitTime( aInterval, years, months, days, hours, minutes, seconds );
- data = AddPartsOfTimeLC( years, months, days, hours, minutes, seconds );
-
- AppendLabelAndDataToArrayL( aArray, *label, *data );
-
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
- }
-
-// -----------------------------------------------------------------------------
-// FillIntervalInfoL
-// -----------------------------------------------------------------------------
-static void FillIntervalInfoL( CDesCArray& aArray,
- CDRMHelperRightsConstraints& aRights,
- const TDesC& aType )
- {
- TTimeIntervalSeconds intervalSeconds( 0 );
-
- TRAPD( err, aRights.GetIntervalL( intervalSeconds ) );
-
- if ( err != KErrNotFound && err != KErrNone )
- {
- User::Leave( err );
- }
-
- if ( err == KErrNone )
- {
- TTime intervalStartTime( 0 );
-
- TRAP( err, aRights.GetIntervalStartL( intervalStartTime ) );
-
- if ( ( err != KErrNotFound ) && ( err != KErrNone ) )
- {
- User::Leave( err );
- }
-
- if ( err == KErrNotFound )
- {
- // "Times status (%U)"
- HBufC* label =
- StringLoader::LoadLC( R_QTN_DRM_MGR_DET_UTS_X, aType );
-
- // "Not activated"
- HBufC* data = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_NOT_ACT );
-
- AppendLabelAndDataToArrayL( aArray, *label, *data );
-
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
-
- // "Time left (%U)"
- FillUsageTimeLeftInfoL( aArray, intervalSeconds, aType, EFalse );
- }
- else
- {
- TTime endTime( intervalStartTime );
- endTime += intervalSeconds;
-
- // "Valid from (%U)"
- DateTimeL( aArray, intervalStartTime,
- R_QTN_DRM_MGR_DET_RVF_X, aType );
-
- // "Valid until (%U)"
- DateTimeL( aArray, endTime, R_QTN_DRM_MGR_DET_RVT_X, aType );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// FillTimeInfoL
-// -----------------------------------------------------------------------------
-static void FillTimeInfoL( CDesCArray& aArray,
- CDRMHelperRightsConstraints& aRights,
- const TDesC& aType )
- {
- TTime startTime;
- TRAPD( err, aRights.GetStartTimeL( startTime ) );
- if ( err != KErrNotFound && err != KErrNone )
- {
- User::Leave( err );
- }
- if ( err == KErrNone )
- {
- // "Valid from (%U)"
- DateTimeL( aArray, startTime, R_QTN_DRM_MGR_DET_RVF_X, aType );
- }
-
- TTime endTime;
- TRAP( err, aRights.GetEndTimeL( endTime ) );
- if ( err != KErrNotFound && err != KErrNone )
- {
- User::Leave( err );
- }
- if ( err == KErrNone )
- {
- // "Valid until (%U)"
- DateTimeL( aArray, endTime, R_QTN_DRM_MGR_DET_RVT_X, aType );
- }
- }
-
-// -----------------------------------------------------------------------------
-// FillAccumulatedTimeInfoL
-// -----------------------------------------------------------------------------
-static void FillAccumulatedTimeInfoL( CDesCArray& aArray,
- CDRMHelperRightsConstraints& aRights,
- const TDesC& aType )
- {
- TTimeIntervalSeconds accumSeconds( 0 );
- TRAPD( err, aRights.GetAccumulatedTimeL( accumSeconds ));
- if ( err != KErrNotFound && err != KErrNone )
- {
- User::Leave( err );
- }
- if ( err == KErrNone )
- {
- // "Usage time left"
- FillUsageTimeLeftInfoL( aArray, accumSeconds, aType, ETrue );
- }
- }
-
-// -----------------------------------------------------------------------------
-// FillDrmInfoL
-// -----------------------------------------------------------------------------
-static void FillDrmInfoL( CDesCArray& aArray,
- CDRMHelperRightsConstraints* aRights,
- TInt aResourceId )
- {
- // Check if no rights at all
- if ( !aRights )
- {
- return;
- }
-
- // Rights type is either "Play", "Display", "Execute" or "Print"
- HBufC* type = StringLoader::LoadLC( aResourceId );
-
- // Check if full rights
- if ( aRights->FullRights() )
- {
- // "Rights (%U)"
- HBufC* label =
- StringLoader::LoadLC( R_QTN_DRM_MGR_DET_FULL_X, *type );
-
- // "Unlimited"
- HBufC* data = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_UNLIMITED );
-
- AppendLabelAndDataToArrayL( aArray, *label, *data );
-
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
- CleanupStack::PopAndDestroy( type );
- return; // full rights -> return
- }
-
- // Get detailed counter constraint information
- FillCounterInfoL( aArray, *aRights, *type );
-
- // Get detailed interval constraint information (start time + duration)
- FillIntervalInfoL( aArray, *aRights, *type );
-
- // Get detailed time constraint information (start time + end time)
- FillTimeInfoL( aArray, *aRights, *type );
-
- // Get detailed accumulated time constraint information (duration)
- FillAccumulatedTimeInfoL( aArray, *aRights, *type );
-
- CleanupStack::PopAndDestroy( type );
- }
-
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFullOmaDrmInfo
-// C++ default constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFullOmaDrmInfo::CFileManagerFullOmaDrmInfo()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFullOmaDrmInfo::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFullOmaDrmInfo* CFileManagerFullOmaDrmInfo::NewL( CDesCArray& aArray,
- const TDesC& aFullPath,
- CCoeEnv& aCoeEnv )
- {
- CFileManagerFullOmaDrmInfo* self = NewLC( aArray, aFullPath, aCoeEnv );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFullOmaDrmInfo::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFullOmaDrmInfo* CFileManagerFullOmaDrmInfo::NewLC( CDesCArray& aArray,
- const TDesC& aFullPath,
- CCoeEnv& aCoeEnv )
- {
- CFileManagerFullOmaDrmInfo* self = new( ELeave ) CFileManagerFullOmaDrmInfo();
-
- CleanupStack::PushL( self );
- self->ConstructL( aArray, aFullPath, aCoeEnv );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFullOmaDrmInfo::~CFileManagerFullOmaDrmInfo
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerFullOmaDrmInfo::~CFileManagerFullOmaDrmInfo()
- {
- }
-
-#ifndef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-// -----------------------------------------------------------------------------
-// CImageInfoPopupList::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFullOmaDrmInfo::ConstructL( CDesCArray& aItemArray,
- const TDesC& aFileName,
- CCoeEnv& aCoeEnv )
- {
- TBool expired ( EFalse );
- TBool sendingAllowed( EFalse );
- RPointerArray<CDRMHelperRightsConstraints> tempArr;
- TCleanupItem cleanupItem( ResetAndDestroy, &tempArr );
- CleanupStack::PushL( cleanupItem );
- tempArr.AppendL( NULL ); // Play
- tempArr.AppendL( NULL ); // Display
- tempArr.AppendL( NULL ); // Execute
- tempArr.AppendL( NULL ); // Print
-
- CDRMHelper* drmHelper = CDRMHelper::NewLC( aCoeEnv );
-
- TRAPD( err, drmHelper->GetRightsDetailsL(
- aFileName,
- 0, // Details for everything
- expired,
- sendingAllowed,
- tempArr[KPlayRights],
- tempArr[KDisplayRights],
- tempArr[KExecuteRights],
- tempArr[KPrintRights] ) );
- TBool future( EFalse );
- if( expired || err == CDRMRights::ENoRights )
- {
- // Check future rights
- RPointerArray<CDRMRightsConstraints> fArr;
- TCleanupItem cleanupItem( ResetAndDestroy, &fArr );
- CleanupStack::PushL( cleanupItem );
- fArr.AppendL( NULL ); // Play
- fArr.AppendL( NULL ); // Display
- fArr.AppendL( NULL ); // Execute
- fArr.AppendL( NULL ); // Print
-
- TBool tmp( EFalse );
- TBool tmp2( EFalse );
- TRAP( err, drmHelper->GetRightsDetailsL( aFileName,
- 0,
- tmp,
- tmp2,
- fArr[KPlayRights],
- fArr[KDisplayRights],
- fArr[KExecuteRights],
- fArr[KPrintRights] ) );
-
- if( err == KErrNone || err == CDRMRights::ENoRights )
- {
- future = IsFutureRights( fArr );
- }
- CleanupStack::PopAndDestroy( &fArr );
-
- ERROR_LOG2( "CFileManagerFullOmaDrmInfo::ConstructL-err:%d,future:%d",
- err, future )
- }
- CleanupStack::PopAndDestroy( drmHelper );
-
- ERROR_LOG3( "CFileManagerFullOmaDrmInfo::ConstructL-err:%d,expired:%d,sendingAllowed:%d",
- err, expired, sendingAllowed )
-
- // Check if the rights are valid or expired
- // Should probably be able to append this information also when the
- // rights have expired.
- // "Status"
- HBufC* label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_STAT );
- HBufC* data = NULL;
- // "Valid" or "Expired" or "Not valid yet"
- TInt resId( R_QTN_DRM_MGR_DET_VALID );
- if( future )
- {
- resId = R_QTN_DRM_MGR_DET_NOT_VALID_YET;
- }
- else if ( expired || err == CDRMRights::ENoRights )
- {
- resId = R_QTN_DRM_MGR_DET_EXP;
- }
- data = StringLoader::LoadLC( resId );
- AppendLabelAndDataToArrayL( aItemArray, *label, *data );
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
-
- // "Play"
- FillDrmInfoL( aItemArray, tempArr[KPlayRights], R_QTN_DRM_MGR_DET2_PLAY );
-
- // "Display"
- FillDrmInfoL( aItemArray, tempArr[KDisplayRights], R_QTN_DRM_MGR_DET2_DISPLAY );
-
- // "Execute"
- FillDrmInfoL( aItemArray, tempArr[KExecuteRights], R_QTN_DRM_MGR_DET2_EXECUTE );
-
- // "Print"
- FillDrmInfoL( aItemArray, tempArr[KPrintRights], R_QTN_DRM_MGR_DET2_PRINT );
-
- CleanupStack::PopAndDestroy( &tempArr );
-
- // Check whether sending is allowed or not
-
- // "Sending"
- label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_CS );
- data = NULL;
- // "Allowed" or "Forbidden"
- resId = ( sendingAllowed ? R_QTN_DRM_MGR_DET_ALLOWED
- : R_QTN_DRM_MGR_DET_FORBID );
- data = StringLoader::LoadLC( resId );
- AppendLabelAndDataToArrayL( aItemArray, *label, *data );
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
- }
-
-#else // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-// -----------------------------------------------------------------------------
-// CImageInfoPopupList::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFullOmaDrmInfo::ConstructL( CDesCArray& aItemArray,
- const TDesC& /*aFileName*/,
- CCoeEnv& /*aCoeEnv*/ )
- {
- /*
- TBool expired ( EFalse );
- TBool sendingAllowed( EFalse );
- RPointerArray<CDRMHelperRightsConstraints> tempArr;
- TCleanupItem cleanupItem( ResetAndDestroy, &tempArr );
- CleanupStack::PushL( cleanupItem );
- tempArr.AppendL( NULL ); // Play
- tempArr.AppendL( NULL ); // Display
- tempArr.AppendL( NULL ); // Execute
- tempArr.AppendL( NULL ); // Print
-
- CDRMHelper* drmHelper = CDRMHelper::NewLC( aCoeEnv );
-
- TRAPD( err, drmHelper->GetRightsDetailsL(
- aFileName,
- 0, // Details for everything
- expired,
- sendingAllowed,
- tempArr[KPlayRights],
- tempArr[KDisplayRights],
- tempArr[KExecuteRights],
- tempArr[KPrintRights] ) );
- TBool future( EFalse );
- if( expired || err == CDRMRights::ENoRights )
- {
- // Check future rights
- RPointerArray<CDRMRightsConstraints> fArr;
- TCleanupItem cleanupItem( ResetAndDestroy, &fArr );
- CleanupStack::PushL( cleanupItem );
- fArr.AppendL( NULL ); // Play
- fArr.AppendL( NULL ); // Display
- fArr.AppendL( NULL ); // Execute
- fArr.AppendL( NULL ); // Print
-
- TBool tmp( EFalse );
- TBool tmp2( EFalse );
- TRAP( err, drmHelper->GetRightsDetailsL( aFileName,
- 0,
- tmp,
- tmp2,
- fArr[KPlayRights],
- fArr[KDisplayRights],
- fArr[KExecuteRights],
- fArr[KPrintRights] ) );
-
- if( err == KErrNone || err == CDRMRights::ENoRights )
- {
- future = IsFutureRights( fArr );
- }
- CleanupStack::PopAndDestroy( &fArr );
-
- ERROR_LOG2( "CFileManagerFullOmaDrmInfo::ConstructL-err:%d,future:%d",
- err, future )
- }
- CleanupStack::PopAndDestroy( drmHelper );
-
- ERROR_LOG3( "CFileManagerFullOmaDrmInfo::ConstructL-err:%d,expired:%d,sendingAllowed:%d",
- err, expired, sendingAllowed )
-
- if ( tempArr[KPlayRights] ||
- tempArr[KDisplayRights] ||
- tempArr[KExecuteRights] ||
- tempArr[KPrintRights] )
- {
- */
- // Add link to display rights details
- _LIT( KLinkTagStart, "<AknMessageQuery Link>" );
- _LIT( KLinkTagEnd, "</AknMessageQuery Link>" );
-
- HBufC* linkTitle = StringLoader::LoadLC( R_QTN_FMGR_DRM_DET_LINK );
- HBufC* linkText = StringLoader::LoadLC( R_QTN_FMGR_DRM_DET_LINK_VIEW );
- HBufC* dataStr = HBufC::NewLC( KLinkTagStart().Length() +
- linkText->Length() +
- KLinkTagEnd().Length() );
- TPtr dataPtr( dataStr->Des() );
- dataPtr.Append( KLinkTagStart );
- dataPtr.Append( *linkText );
- dataPtr.Append( KLinkTagEnd );
- AppendLabelAndDataToArrayL( aItemArray, *linkTitle, *dataStr );
- CleanupStack::PopAndDestroy( dataStr );
- CleanupStack::PopAndDestroy( linkText );
- CleanupStack::PopAndDestroy( linkTitle );
- /*
- }
- else
- {
- // Add forward-lock details
- // "Status"
- HBufC* label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_STAT );
- HBufC* data = NULL;
- // "Valid" or "Expired" or "Not valid yet"
- TInt resId( R_QTN_DRM_MGR_DET_VALID );
- if( future )
- {
- resId = R_QTN_DRM_MGR_DET_NOT_VALID_YET;
- }
- else if ( expired || err == CDRMRights::ENoRights )
- {
- resId = R_QTN_DRM_MGR_DET_EXP;
- }
- data = StringLoader::LoadLC( resId );
- AppendLabelAndDataToArrayL( aItemArray, *label, *data );
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
-
- // "Sending"
- label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_CS );
- data = NULL;
- // "Allowed" or "Forbidden"
- resId = ( sendingAllowed ? R_QTN_DRM_MGR_DET_ALLOWED
- : R_QTN_DRM_MGR_DET_FORBID );
- data = StringLoader::LoadLC( resId );
- AppendLabelAndDataToArrayL( aItemArray, *label, *data );
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
- }
-
- CleanupStack::PopAndDestroy( &tempArr );
- */
- }
-
-// -----------------------------------------------------------------------------
-// CImageInfoPopupList::ViewDetailsL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFullOmaDrmInfo::ViewDetailsL(
- const TDesC& aFileName,
- DRM::CDrmUiHandling* aUiHandling )
- {
- RFs fs;
- User::LeaveIfError( fs.Connect() );
- CleanupClosePushL( fs );
-
- RFile64 drmFile;
- User::LeaveIfError( drmFile.Open(
- fs, aFileName, EFileRead | EFileShareReadersOrWriters ) );
-
- CleanupClosePushL( drmFile );
-
- TRAPD( err, aUiHandling->ShowDetailsViewL( drmFile ) );
-
- CleanupStack::PopAndDestroy( &drmFile );
- CleanupStack::PopAndDestroy( &fs );
-
- }
-
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-// End of file
--- a/filemanager/View/src/CFileManagerGlobalDlgFull.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,391 +0,0 @@
-/*
-* Copyright (c) 2006 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 dialog handling
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <AknGlobalNote.h>
-#include <AknGlobalConfirmationQuery.h>
-#include <AknGlobalProgressDialog.h>
-#include <avkon.rsg>
-#include <aknconsts.h>
-#include <avkon.mbg>
-#include "CFileManagerGlobalDlg.h"
-#include "CFileManagerGlobalQueryDlg.h"
-
-
-// CONSTANTS
-const TUint KCountdownTimeout = 1000000; // 1s
-const TInt KCountdownSteps = 30;
-const TInt KCountdownShowSKStep = 3;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::CFileManagerGlobalDlg
-// ---------------------------------------------------------------------------
-//
-CFileManagerGlobalDlg::CFileManagerGlobalDlg() :
- CActive( EPriorityUserInput )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::NewL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerGlobalDlg* CFileManagerGlobalDlg::NewL()
- {
- CFileManagerGlobalDlg* self =
- new( ELeave ) CFileManagerGlobalDlg();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerGlobalDlg::ConstructL()
- {
- CActiveScheduler::Add( this );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::~CFileManagerGlobalDlg
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerGlobalDlg::~CFileManagerGlobalDlg()
- {
- Cancel();
- delete iQueryDialog;
- delete iProgressDialog;
- delete iCountdown;
- delete iCountdownText;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::CancelDialog
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerGlobalDlg::CancelDialog()
- {
- delete iCountdown;
- iCountdown = NULL;
-
- if ( iQueryDialog )
- {
- iQueryDialog->CancelDialog();
- delete iQueryDialog;
- iQueryDialog = NULL;
- }
-
- if ( iProgressDialog )
- {
- iProgressDialog->CancelProgressDialog();
- delete iProgressDialog;
- iProgressDialog = NULL;
- }
-
- Cancel();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::ShowDialogL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerGlobalDlg::ShowDialogL(
- const CFileManagerGlobalDlg::TType aType,
- const TDesC& aText,
- const TInt aSkId )
- {
- CancelDialog();
-
- iType = aType;
-
- switch ( aType )
- {
- case ECountdownQuery:
- {
- iCountdownText = aText.AllocL();
- iQueryDialog = CFileManagerGlobalQueryDlg::NewL();
- iQueryDialog->ShowDialogL(
- *iCountdownText,
- R_AVKON_SOFTKEYS_EMPTY );
- iCountdownSteps = 0;
- StartCountdownL( KCountdownTimeout );
- break;
- }
- case EQuery:
- {
- iQueryDialog = CFileManagerGlobalQueryDlg::NewL();
- iQueryDialog->SetObserver( this );
- iQueryDialog->ShowDialogL(
- aText,
- aSkId );
- break;
- }
- case EQueryWithWarningIcon:
- {
- iQueryDialog = CFileManagerGlobalQueryDlg::NewL();
- iQueryDialog->SetObserver( this );
- iQueryDialog->ShowDialogL(
- aText,
- aSkId,
- KAvkonBitmapFile,
- EMbmAvkonQgn_note_warning,
- EMbmAvkonQgn_note_warning_mask );
- break;
- }
- case EQueryWithInfoIcon:
- {
- iQueryDialog = CFileManagerGlobalQueryDlg::NewL();
- iQueryDialog->SetObserver( this );
- iQueryDialog->ShowDialogL(
- aText,
- aSkId,
- KAvkonBitmapFile,
- EMbmAvkonQgn_note_info,
- EMbmAvkonQgn_note_info_mask );
- break;
- }
- case EProgressDialog:
- {
- iProgressDialog = CAknGlobalProgressDialog::NewL();
- if ( aSkId )
- {
- iProgressDialog->ShowProgressDialogL(
- iStatus, aText, aSkId );
- }
- else
- {
- iProgressDialog->ShowProgressDialogL(
- iStatus, aText );
- }
- SetActive();
- iFinalValue = 0;
- break;
- }
- case EErrorNote:
- {
- CAknGlobalNote* note = CAknGlobalNote::NewLC();
- note->SetTone( EAvkonSIDNoSound ); // no tone
- note->ShowNoteL( EAknGlobalErrorNote, aText );
- CleanupStack::PopAndDestroy( note );
- break;
- }
- case EInfoNote:
- {
- CAknGlobalNote* note = CAknGlobalNote::NewLC();
- note->SetTone( EAvkonSIDNoSound ); // no tone
- note->ShowNoteL( EAknGlobalInformationNote, aText );
- CleanupStack::PopAndDestroy( note );
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::ShowDialogL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerGlobalDlg::ShowDialogL(
- const CFileManagerGlobalDlg::TType aType,
- const TInt aTextId,
- const TInt aSkId )
- {
- HBufC* text = StringLoader::LoadLC( aTextId );
- ShowDialogL( aType, *text, aSkId );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::DoCancel
-// ---------------------------------------------------------------------------
-//
-void CFileManagerGlobalDlg::DoCancel()
- {
- if ( iQueryDialog )
- {
- iQueryDialog->CancelDialog();
- }
- if ( iProgressDialog )
- {
- iProgressDialog->CancelProgressDialog();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::RunL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerGlobalDlg::RunL()
- {
- CancelDialog();
- NotifyObserver( iStatus.Int() );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::SetObserver
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerGlobalDlg::SetObserver(
- MFileManagerGlobalDlgObserver* aObserver )
- {
- // This instance is not allowed to set by client
- if ( aObserver != this )
- {
- iObserver = aObserver;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::StartCountdownL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerGlobalDlg::StartCountdownL( const TUint aTimeout )
- {
- delete iCountdown;
- iCountdown = NULL;
- iCountdown = CPeriodic::NewL( CActive::EPriorityStandard );
- iCountdown->Start( aTimeout, aTimeout, TCallBack( CountdownCB, this ) );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::CountdownCB
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerGlobalDlg::CountdownCB( TAny* aPtr )
- {
- CFileManagerGlobalDlg* self =
- static_cast< CFileManagerGlobalDlg* >( aPtr );
-
- TRAP_IGNORE( self->CountdownL() );
-
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::CountdownL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerGlobalDlg::CountdownL()
- {
- if( iCountdownSteps < KCountdownSteps )
- {
- // Countdown in progress
- ++iCountdownSteps;
- if ( iCountdownSteps == KCountdownShowSKStep )
- {
- iProgressDialog = CAknGlobalProgressDialog::NewL();
- iProgressDialog->SetImageL(
- KAvkonBitmapFile,
- EMbmAvkonQgn_note_query,
- EMbmAvkonQgn_note_query_mask );
- iProgressDialog->ShowProgressDialogL(
- iStatus,
- *iCountdownText,
- R_AVKON_SOFTKEYS_YES_NO );
- SetActive();
-
- if ( iQueryDialog )
- {
- iQueryDialog->CancelDialog();
- delete iQueryDialog;
- iQueryDialog = NULL;
- }
- }
-
- if ( iProgressDialog &&
- iCountdownSteps >= KCountdownShowSKStep )
- {
- iProgressDialog->UpdateProgressDialog(
- iCountdownSteps, KCountdownSteps );
- }
- }
- else
- {
- // Countdown expired
- CancelDialog();
- NotifyObserver( EAknSoftkeyYes );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::UpdateProgressDialog
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerGlobalDlg::UpdateProgressDialog(
- const TInt aValue,
- const TInt aFinalValue )
- {
- if ( iProgressDialog )
- {
- if ( aFinalValue >= 0 )
- {
- iFinalValue = aFinalValue;
- }
- iProgressDialog->UpdateProgressDialog( aValue, iFinalValue );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::ProcessFinished
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerGlobalDlg::ProcessFinished()
- {
- if ( iProgressDialog )
- {
- iProgressDialog->ProcessFinished();
- delete iProgressDialog;
- iProgressDialog = NULL;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::NotifyObserver
-// ---------------------------------------------------------------------------
-//
-void CFileManagerGlobalDlg::NotifyObserver( const TInt aValue )
- {
- if ( iObserver )
- {
- iObserver->HandleGlobalDlgResult( iType, aValue );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerGlobalDlg::HandleGlobalDlgResult
-// ---------------------------------------------------------------------------
-//
-void CFileManagerGlobalDlg::HandleGlobalDlgResult(
- TInt /*aDlgType*/,
- TInt aDlgResult )
- {
- NotifyObserver( aDlgResult );
- }
-
-// End of File
--- a/filemanager/View/src/CFileManagerGlobalQueryDlg.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +0,0 @@
-/*
-* Copyright (c) 2006 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 query dialog handling
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <AknGlobalConfirmationQuery.h>
-#include "CFileManagerGlobalQueryDlg.h"
-#include "CFileManagerGlobalDlg.h"
-#include "MFileManagerGlobalDlgObserver.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::CFileManagerGlobalQueryDlg
-// ----------------------------------------------------------------------------
-//
-CFileManagerGlobalQueryDlg::CFileManagerGlobalQueryDlg() :
- CActive( EPriorityUserInput )
- {
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::NewL
-// ----------------------------------------------------------------------------
-//
-CFileManagerGlobalQueryDlg* CFileManagerGlobalQueryDlg::NewL()
- {
- CFileManagerGlobalQueryDlg* self =
- new( ELeave ) CFileManagerGlobalQueryDlg();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerGlobalQueryDlg::ConstructL()
- {
- CActiveScheduler::Add( this );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::~CFileManagerGlobalQueryDlg
-// ----------------------------------------------------------------------------
-//
-CFileManagerGlobalQueryDlg::~CFileManagerGlobalQueryDlg()
- {
- Cancel();
- delete iQueryDialog;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::CancelDialog
-// ----------------------------------------------------------------------------
-//
-void CFileManagerGlobalQueryDlg::CancelDialog()
- {
- if ( iQueryDialog )
- {
- iQueryDialog->CancelConfirmationQuery();
- delete iQueryDialog;
- iQueryDialog = NULL;
- }
- Cancel();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::ShowDialogL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerGlobalQueryDlg::ShowDialogL(
- const TDesC& aText,
- const TInt aSkId )
- {
- CancelDialog();
-
- iQueryDialog = CAknGlobalConfirmationQuery::NewL();
- iQueryDialog->ShowConfirmationQueryL(
- iStatus, aText, aSkId );
- SetActive();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::ShowDialogL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerGlobalQueryDlg::ShowDialogL(
- const TDesC& aText,
- const TInt aSkId,
- const TDesC& aBitmapFile,
- const TInt aImageId,
- const TInt aMaskId )
- {
- CancelDialog();
-
- iQueryDialog = CAknGlobalConfirmationQuery::NewL();
- iQueryDialog->ShowConfirmationQueryL(
- iStatus,
- aText,
- aSkId,
- 0,
- aBitmapFile,
- aImageId,
- aMaskId
- );
- SetActive();
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::ShowDialogL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerGlobalQueryDlg::ShowDialogL(
- const TInt aTextId,
- const TInt aSkId )
- {
- HBufC* text = StringLoader::LoadLC( aTextId );
- ShowDialogL( *text, aSkId );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::DoCancel
-// ----------------------------------------------------------------------------
-//
-void CFileManagerGlobalQueryDlg::DoCancel()
- {
- if ( iQueryDialog )
- {
- iQueryDialog->CancelConfirmationQuery();
- }
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::RunL
-// ----------------------------------------------------------------------------
-//
-void CFileManagerGlobalQueryDlg::RunL()
- {
- CancelDialog();
- NotifyObserver( iStatus.Int() );
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::SetObserver
-// ----------------------------------------------------------------------------
-//
-void CFileManagerGlobalQueryDlg::SetObserver(
- MFileManagerGlobalDlgObserver* aObserver )
- {
- iObserver = aObserver;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerGlobalQueryDlg::NotifyObserver
-// ----------------------------------------------------------------------------
-//
-void CFileManagerGlobalQueryDlg::NotifyObserver( const TInt aValue )
- {
- if ( iObserver )
- {
- iObserver->HandleGlobalDlgResult(
- CFileManagerGlobalDlg::EQuery,
- aValue );
- }
- }
-
-// End of File
--- a/filemanager/View/src/CFileManagerIconArray.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,273 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: All the files and folders icons are stored here
-*
-*/
-
-
-// INCLUDE FILES
-#include <FileManagerEngine.hrh>
-#include <barsread.h>
-#include <coemain.h>
-#include <gulicon.h>
-#include <AknsItemID.h>
-#include <AknsUtils.h>
-#include <filemanagerview.rsg>
-#include "CFileManagerIconArray.h"
-#include "FileManagerView.hrh"
-
-
-
-// CONSTANTS
-const TInt KGranularity = 1;
-
-// needed because _LIT macro does not expand parameter, which is also macro
-#define _CREATE_LIT( a, b ) _LIT( a, b )
-
-_CREATE_LIT( KFileManagerMifFile, filemanager_mbm_file_location );
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerIconArray::CFileManagerIconArray
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerIconArray::CFileManagerIconArray() :
- CArrayPtrFlat( KGranularity )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIconArray::NewL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerIconArray* CFileManagerIconArray::NewL()
- {
- CFileManagerIconArray* self = new (ELeave) CFileManagerIconArray();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIconArray::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIconArray::ConstructL()
- {
- TResourceReader reader;
- CCoeEnv::Static()->CreateResourceReaderLC(
- reader, R_FILEMANAGER_ICON_ARRAY );
-
- TInt count( reader.ReadInt16() );
- iIconInfo.ReserveL( count );
- SetReserveL( count );
-
- // Get File Manager mif drive from exe location
- TFileName exeFileName( RProcess().FileName() );
-
- // Load icon info now and actual icon data later when needed to decrease
- // construction time
- for( TInt i( 0 ); i < count; i++ )
- {
- TIconInfo info;
-
- info.iId = reader.ReadInt8();
- info.iFile = reader.ReadHBufCL();
- info.iIconId = reader.ReadInt16();
-
- TPtr ptr( info.iFile->Des() );
- if ( !ptr.CompareF( KFileManagerMifFile ) )
- {
- // Set correct File Manager mif drive
- ptr[ 0 ] = exeFileName[ 0 ];
- }
-
- info.iMaskId = reader.ReadInt16();
- info.iMajorSkinId = reader.ReadInt32();
- info.iMinorSkinId = reader.ReadInt32();
- info.iIconType = reader.ReadInt8();
- info.iIndex = KErrNotFound;
-
- CleanupStack::PushL( info.iFile );
- iIconInfo.AppendL( info );
- CleanupStack::Pop( info.iFile );
- }
-
- CleanupStack::PopAndDestroy(); // reader
-
- LoadMandatoryIconsL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIconArray::~CFileManagerIconArray
-// Destructor
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerIconArray::~CFileManagerIconArray()
- {
- TInt count( iIconInfo.Count() );
- for( TInt i( 0 ); i < count; i++ )
- {
- TIconInfo& info = iIconInfo[ i ];
- delete info.iFile;
- info.iFile = NULL;
- }
- iIconInfo.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIconArray::UpdateIconsL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerIconArray::UpdateIconsL()
- {
- // Remove icon data and set info to load icon data again when needed
- ResetAndDestroy();
-
- TInt count( iIconInfo.Count() );
- SetReserveL( count );
-
- for( TInt i( 0 ); i < count; i++ )
- {
- TIconInfo& info = iIconInfo[ i ];
- info.iIndex = KErrNotFound;
- }
-
- LoadMandatoryIconsL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIconArray::FindIcon
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerIconArray::FindIcon( TInt aIconId )
- {
- TInt count( iIconInfo.Count() );
- for( TInt i( 0 ); i < count; i++ )
- {
- TIconInfo& info = iIconInfo[ i ];
- if ( info.iId == aIconId )
- {
- if ( info.iIndex == KErrNotFound )
- {
- TRAPD( err, LoadIconL( info ) );
- if ( err != KErrNone )
- {
- return err;
- }
- }
- return info.iIndex;
- }
- }
- return KErrNotFound;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIconArray::LoadIconL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIconArray::LoadIconL( TIconInfo& aInfo )
- {
- CGulIcon* icon = LoadIconL(
- *aInfo.iFile,
- aInfo.iIconId,
- aInfo.iMaskId,
- aInfo.iMajorSkinId,
- aInfo.iMinorSkinId,
- aInfo.iIconType == EFileManagerIconColorIcon );
- CleanupStack::PushL( icon );
- TInt index( Count() );
- AppendL( icon );
- CleanupStack::Pop( icon );
- aInfo.iIndex = index;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIconArray::LoadMandatoryIconsL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerIconArray::LoadMandatoryIconsL()
- {
- // At least these icons must be loaded on startup.
- // Other icons can be loaded first time when needed.
-
- // Make sure that selection icon is always loaded to first index.
- // Required by list control.
- User::LeaveIfError( FindIcon( EFileManagerMarkIcon ) );
-
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerIconArray::LoadIconL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CGulIcon* CFileManagerIconArray::LoadIconL(
- const TDesC& aIconFile,
- TInt aIconId,
- TInt aMaskId,
- TInt aMajorSkin,
- TInt aMinorSkin,
- TBool aIsColorIcon )
- {
- TAknsItemID aknsItemId;
- aknsItemId.Set( aMajorSkin, aMinorSkin );
- MAknsSkinInstance* aknsSkin = AknsUtils::SkinInstance();
- CGulIcon* ret = NULL;
- if ( aIsColorIcon )
- {
- TRgb defaultColour( KRgbBlack );
- CFbsBitmap* bmap = NULL;
- CFbsBitmap* mask = NULL;
- AknsUtils::GetCachedColor(
- aknsSkin,
- defaultColour,
- KAknsIIDQsnIconColors,
- EAknsCIQsnIconColorsCG13 );
- AknsUtils::CreateColorIconLC(
- aknsSkin,
- aknsItemId,
- KAknsIIDQsnIconColors,
- EAknsCIQsnIconColorsCG13,
- bmap,
- mask,
- aIconFile,
- aIconId,
- aMaskId,
- defaultColour );
- ret = CGulIcon::NewL( bmap, mask );
- ret->SetBitmapsOwnedExternally( EFalse );
- CleanupStack::Pop( 2 ); // icon owns the bitmaps now
- }
- else
- {
- ret = AknsUtils::CreateGulIconL(
- aknsSkin, aknsItemId, aIconFile, aIconId, aMaskId );
- ret->SetBitmapsOwnedExternally( EFalse );
- }
- return ret;
- }
-
-// End of File
--- a/filemanager/View/src/CFileManagerInfoPopup.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,443 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Popup to show the item information, view info
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <aknlists.h>
-#include <StringLoader.h>
-#include <cmemstatepopup.h>
-#include <filemanagerview.rsg>
-#include <CFileManagerItemProperties.h>
-#include <CFileManagerFeatureManager.h>
-#include <drmuihandling.h>
-#include "CFileManagerInfoPopup.h"
-#include "CFileManagerFullOmaDrmInfo.h"
-
-// CONSTANTS
-_LIT( KDateFormat1, "%1" );
-_LIT( KDateFormat2, "%2" );
-_LIT( KDateFormat3, "%3" );
-_LIT( KTimeFormatBefore, "%-B" );
-_LIT( KTimeFormatAfter, "%+B" );
-_LIT( KTimeFormatHour, "%J" );
-_LIT( KTimeFormatMinutes, "%T" );
-_LIT( KTimeFormatSpace, " ");
-
-_LIT( KNumberFormat, "%d" );
-_LIT( KSeparator, "\t" );
-const TUint KDefaultItemCount = 3;
-const TUint KMaxInfoPopupWidth = 16; // From AVKON LAF document
-const TUint KSecondSeparator = 1;
-const TUint KThirdSeparator = 2;
-const TInt KNumBufLen = 24;
-_LIT( KNumBufFormatString, "%d" );
-_LIT( KNumBufSpaceString, " " );
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::CFileManagerInfoPopup
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerInfoPopup::CFileManagerInfoPopup(
- CFileManagerItemProperties& aProperties,
- const CFileManagerFeatureManager& aFeatureManager ) :
- iProperties( aProperties ),
- iFeatureManager( aFeatureManager ),
- iUiHandling( NULL )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::ConstructDataArrayL
-//
-// -----------------------------------------------------------------------------
-//
-MDesCArray* CFileManagerInfoPopup::ConstructDataArrayL()
- {
- // Get unit utility instance
- CMemStatePopup::GetUtilL( iUtil );
-
- CDesCArray* array = new( ELeave ) CDesCArrayFlat( KDefaultItemCount );
- CleanupStack::PushL( array );
-
- HBufC* title = NULL;
- TUint32 itemType( iProperties.TypeL() );
- if( itemType & CFileManagerItemProperties::EFolder )
- {
- title = StringLoader::LoadLC( R_QTN_FMGR_INFO_HEADING_FLDR );
- }
- else if( itemType & CFileManagerItemProperties::ELink )
- {
- title = StringLoader::LoadLC( R_QTN_FMGR_INFO_HEADING_LINK );
- }
- else
- {
- title = StringLoader::LoadLC( R_QTN_FMGR_INFO_HEADING_FILE );
- }
- SetTitleL( *title );
- CleanupStack::PopAndDestroy( title );
-
- if ( ( itemType & CFileManagerItemProperties::EDrmProtected ) &&
- iFeatureManager.IsDrmFullSupported() )
- {
- CFileManagerFullOmaDrmInfo* drmInfo =
- CFileManagerFullOmaDrmInfo::NewLC( *array, iProperties.FullPath(), *iCoeEnv );
- CleanupStack::PopAndDestroy( drmInfo );
- }
-
- // Name of the file/folder
- HBufC* nameEntry = NameEntryLC();
- array->AppendL( *nameEntry );
- CleanupStack::PopAndDestroy( nameEntry );
-
- if( itemType & CFileManagerItemProperties::EFile )
- {
- // Type of the file
- HBufC* type = TypeEntryLC();
- array->AppendL( *type );
- CleanupStack::PopAndDestroy( type );
- }
-
- // Modification date
- HBufC* date = DateEntryLC();
- array->AppendL( *date );
- CleanupStack::PopAndDestroy( date );
-
- // Modification time
- HBufC* time = TimeEntryLC();
- array->AppendL( *time );
- CleanupStack::PopAndDestroy( time );
-
- // Size of file/folder
- HBufC* size = SizeEntryLC();
- array->AppendL( *size );
- CleanupStack::PopAndDestroy( size );
-
- TUint32 defaultFolderMask = CFileManagerItemProperties::EFolder |
- CFileManagerItemProperties::EDefault;
- if( ( itemType & defaultFolderMask ) == defaultFolderMask )
- {
- HBufC* str = DefaultFolderEntryLC();
- array->AppendL( *str );
- CleanupStack::PopAndDestroy( str );
- }
-
- if( itemType & CFileManagerItemProperties::EFolder )
- {
- HBufC* folders = ResourceStringValueLC(
- R_QTN_FMGR_INFO_CONTAIN_FLDR,
- iProperties.FoldersContainedL() );
- array->AppendL( *folders );
- CleanupStack::PopAndDestroy( folders );
-
- HBufC* files = ResourceStringValueLC(
- R_QTN_FMGR_INFO_CONTAIN_FILE,
- iProperties.FilesContainedL() );
- array->AppendL( *files );
- CleanupStack::PopAndDestroy( files );
- }
-
- CleanupStack::Pop( array );
- return array;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerInfoPopup* CFileManagerInfoPopup::NewL(
- CFileManagerItemProperties& aProperties,
- const CFileManagerFeatureManager& aFeatureManager )
- {
- CFileManagerInfoPopup* self = new( ELeave ) CFileManagerInfoPopup(
- aProperties, aFeatureManager );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CFileManagerInfoPopup::ConstructL()
- {
- iUiHandling = DRM::CDrmUiHandling::NewL();
-
- CFileManagerPopupBase::ConstructL();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::~CFileManagerInfoPopup
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerInfoPopup::~CFileManagerInfoPopup()
- {
- delete iUtil;
-
- delete iUiHandling;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::NameEntryLC
-//
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerInfoPopup::NameEntryLC()
- {
- HBufC* name = StringLoader::LoadLC( R_QTN_SWINS_LSH2_APPS_NAME );
- HBufC* dataStr = HBufC::NewLC(
- name->Length() + 1 + iProperties.LocalizedName().Length() );
- TPtr dataPtr( dataStr->Des() );
- dataPtr.Append( *name );
- dataPtr.Append( KSeparator );
- HBufC* itemNameBuf = NULL;
- if ( iProperties.TypeL() & CFileManagerItemProperties::EFolder )
- {
- const TPtrC ptr( iProperties.LocalizedName() );
- itemNameBuf = ptr.AllocLC();
- }
- else
- {
- const TPtrC ptr( iProperties.Name() );
- itemNameBuf = ptr.AllocLC();
- }
- // Remove all possible tabs in the name so listbox won't get broken
- TPtr itemNamePtr = itemNameBuf->Des();
- AknTextUtils::StripCharacters( itemNamePtr, KSeparator );
- dataPtr.Append( itemNamePtr );
- CleanupStack::PopAndDestroy( itemNameBuf );
- CleanupStack::Pop( dataStr );
- CleanupStack::PopAndDestroy( name );
- CleanupStack::PushL( dataStr );
-
- return dataStr;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::TypeEntryLC
-//
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerInfoPopup::TypeEntryLC()
- {
- HBufC* type = StringLoader::LoadLC( R_QTN_SWINS_LSH2_APPS_TYPE );
- HBufC* dataStr = HBufC::NewL( type->Length() + 1 + iProperties.Ext().Length() );
- TPtr dataPtr( dataStr->Des() );
- dataPtr.Append( *type );
- dataPtr.Append( KSeparator );
- const TPtrC ptr( iProperties.Ext() );
- HBufC* extBuf = ptr.AllocLC();
- // Remove all possible tabs in the name so listbox won't get broken
- TPtr extPtr = extBuf->Des();
- AknTextUtils::StripCharacters( extPtr, KSeparator );
- dataPtr.Append( extPtr );
- CleanupStack::PopAndDestroy( extBuf );
- CleanupStack::PopAndDestroy( type );
- CleanupStack::PushL( dataStr );
-
- return dataStr;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::DateEntryLC
-//
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerInfoPopup::DateEntryLC()
- {
- HBufC* date = StringLoader::LoadLC( R_QTN_ALBUM_DATIM_DATE );
- TBuf<KMaxInfoPopupWidth> dateStr;
- TBuf<KMaxInfoPopupWidth> dateStrFormat;
- // Localized date separator form
- TLocale local;
- TTime localTime;
- User::LeaveIfError( iProperties.ModifiedLocalDate( localTime ) );
- dateStrFormat.Append( KDateFormat1 );
- dateStrFormat.Append( local.DateSeparator( KSecondSeparator ) );
- dateStrFormat.Append( KDateFormat2 );
- dateStrFormat.Append( local.DateSeparator( KThirdSeparator ) );
- dateStrFormat.Append( KDateFormat3 );
- localTime.FormatL( dateStr, dateStrFormat );
- HBufC* dataStr = HBufC::NewL( date->Length() + 1 + dateStr.Length() );
- TPtr dataPtr( dataStr->Des() );
- dataPtr.Append( *date );
- dataPtr.Append( KSeparator );
- dataPtr.Append( dateStr );
-
- CleanupStack::PopAndDestroy( date );
- CleanupStack::PushL( dataStr );
-
- AknTextUtils::LanguageSpecificNumberConversion( dataPtr );
-
- return dataStr;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::TimeEntryLC
-//
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerInfoPopup::TimeEntryLC()
- {
- HBufC* time = StringLoader::LoadLC( R_QTN_ALBUM_DATIM_TIME );
- TBuf<KMaxInfoPopupWidth> timeStr;
- TBuf<KMaxInfoPopupWidth> timeStrFormat;
- TLocale local;
- TTime localTime;
- User::LeaveIfError( iProperties.ModifiedLocalDate( localTime ) );
-
- if( local.AmPmSymbolPosition() == ELocaleBefore )
- {
- timeStrFormat.Append( KTimeFormatBefore );
- timeStrFormat.Append( KTimeFormatSpace );
- timeStrFormat.Append( KTimeFormatHour );
- timeStrFormat.Append( local.TimeSeparator( KSecondSeparator ) );
- timeStrFormat.Append( KTimeFormatMinutes );
-
- localTime.FormatL( timeStr, timeStrFormat );
- }
- else
- {
- timeStrFormat.Append( KTimeFormatHour );
- timeStrFormat.Append( local.TimeSeparator( KSecondSeparator ) );
- timeStrFormat.Append( KTimeFormatMinutes );
- timeStrFormat.Append( KTimeFormatSpace );
- timeStrFormat.Append( KTimeFormatAfter );
-
- localTime.FormatL( timeStr, timeStrFormat );
- }
-
- HBufC* dataStr = HBufC::NewL( time->Length() + 1 + timeStr.Length() );
- TPtr dataPtr( dataStr->Des() );
- dataPtr.Append( *time );
- dataPtr.Append( KSeparator );
- dataPtr.Append( timeStr );
-
- CleanupStack::PopAndDestroy( time );
- CleanupStack::PushL( dataStr );
-
- AknTextUtils::LanguageSpecificNumberConversion( dataPtr );
-
- return dataStr;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::SizeEntryLC
-//
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerInfoPopup::SizeEntryLC()
- {
- TInt64 sizeInBytes( iProperties.SizeL() );
- TPtrC unit( iUtil->SolveUnitAndSize( sizeInBytes ) );
- TBuf< KNumBufLen > numBuf;
- numBuf.Format( KNumBufFormatString, I64INT( sizeInBytes ) );
-
- HBufC* header = StringLoader::LoadLC( R_QTN_ALBUM_LITXT_SIZE );
- HBufC* dataStr = HBufC::NewL(
- header->Length() + 1 +
- numBuf.Length() +
- KNumBufSpaceString().Length() +
- unit.Length() );
- TPtr dataPtr( dataStr->Des() );
-
- dataPtr.Append( *header );
- dataPtr.Append( KSeparator );
- dataPtr.Append( numBuf );
- dataPtr.Append( KNumBufSpaceString );
- dataPtr.Append( unit );
-
- CleanupStack::PopAndDestroy( header );
- CleanupStack::PushL( dataStr );
-
- AknTextUtils::LanguageSpecificNumberConversion( dataPtr );
- return dataStr;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::DefaultFolderEntryLC
-//
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerInfoPopup::DefaultFolderEntryLC()
- {
- HBufC* header = StringLoader::LoadLC( R_QTN_FMGR_INFO_FLDR_DEFAULT );
- HBufC* data = StringLoader::LoadLC( R_QTN_FMGR_INFO_DEF_FLDR_TEXT );
- HBufC* dataStr = HBufC::NewL( header->Length() + 1 + data->Length() );
- TPtr dataPtr( dataStr->Des() );
- dataPtr.Append( *header );
- dataPtr.Append( KSeparator );
- dataPtr.Append( *data );
-
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( header );
- CleanupStack::PushL( dataStr );
-
- return dataStr;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::ResourceStringValueLC
-//
-// -----------------------------------------------------------------------------
-//
-HBufC* CFileManagerInfoPopup::ResourceStringValueLC( TInt aResId, TInt aValue )
- {
- HBufC* string = StringLoader::LoadLC( aResId );
- TBuf<KMaxInfoPopupWidth> infoStr;
- infoStr.Format( KNumberFormat, aValue );
- HBufC* dataStr = HBufC::NewL( string->Length() + 1 + infoStr.Length() );
- TPtr dataPtr( dataStr->Des() );
- dataPtr.Append( *string );
- dataPtr.Append( KSeparator );
- dataPtr.Append( infoStr );
-
- CleanupStack::PopAndDestroy( string );
- CleanupStack::PushL( dataStr );
-
- AknTextUtils::LanguageSpecificNumberConversion( dataPtr );
-
- return dataStr;
- }
-
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-// -----------------------------------------------------------------------------
-// CFileManagerInfoPopup::ActivateLinkL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerInfoPopup::ActivateLinkL()
- {
- CFileManagerFullOmaDrmInfo::ViewDetailsL(
- iProperties.FullPath(),
- iUiHandling );
- }
-#endif //RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-// End of File
--- a/filemanager/View/src/CFileManagerMMCInfoPopup.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-/*
-* Copyright (c) 2006-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: Memory card info popup
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <aknPopup.h>
-#include <aknlists.h>
-#include <filemanagerview.rsg>
-#include <cmemstatepopup.h>
-#include "CFileManagerMMCInfoPopup.h"
-#include "TFileManagerDriveInfo.h"
-
-
-// CONSTANTS
-_LIT( KSeparator, "\t" );
-const TUint KDefaultItemCount = 4;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CFileManagerMMCInfoPopup::CFileManagerMMCInfoPopup
-// ---------------------------------------------------------------------------
-//
-CFileManagerMMCInfoPopup::CFileManagerMMCInfoPopup()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerMMCInfoPopup::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerMMCInfoPopup::ConstructL(
- const TFileManagerDriveInfo& aInfo )
- {
- // Get unit utility instance
- CMemStatePopup::GetUtilL( iUtil );
-
- iListBox = new ( ELeave ) CAknSingleHeadingPopupMenuStyleListBox;
- iPopupList = CAknPopupList::NewL(
- iListBox,
- R_AVKON_SOFTKEYS_OK_EMPTY,
- AknPopupLayouts::EMenuGraphicHeadingWindow );
-
- HBufC* title = StringLoader::LoadLC( R_QTN_FMGR_MEMCARD_INFO_HEADING );
- iPopupList->SetTitleL( *title );
- CleanupStack::PopAndDestroy( title );
-
- iListBox->ConstructL( iPopupList, EAknListBoxViewerFlags );
-
- MDesCArray* array = ConstructDataArrayL( aInfo );
- iListBox->Model()->SetItemTextArray( array );
-
- iListBox->CreateScrollBarFrameL( ETrue );
- iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
- iListBox->SetMopParent( this );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerMMCInfoPopup::~CFileManagerMMCInfoPopup
-// ---------------------------------------------------------------------------
-//
-CFileManagerMMCInfoPopup::~CFileManagerMMCInfoPopup()
- {
- if( iIsDestroyed )
- {
- *iIsDestroyed = ETrue;
- }
- delete iListBox;
- delete iUtil;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerMMCInfoPopup::NewL
-// ---------------------------------------------------------------------------
-//
-CFileManagerMMCInfoPopup* CFileManagerMMCInfoPopup::NewL(
- const TFileManagerDriveInfo& aInfo )
- {
- CFileManagerMMCInfoPopup* self =
- new( ELeave ) CFileManagerMMCInfoPopup();
-
- CleanupStack::PushL( self );
- self->ConstructL( aInfo );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerMMCInfoPopup::ExecuteLD
-// ---------------------------------------------------------------------------
-//
-TBool CFileManagerMMCInfoPopup::ExecuteLD()
- {
- CFileManagerMMCInfoPopup* self = this;
- CleanupStack::PushL( self );
-
- TBool thisDestroyed( EFalse );
- iIsDestroyed = &thisDestroyed;
-
- TBool ret( EFalse );
- TRAPD( err, ( ret = iPopupList->ExecuteLD() ));
-
- // just in case check is this base object still on,
- // before using member variable
- if( !thisDestroyed )
- {
- iPopupList = NULL;
- }
-
- if( thisDestroyed )
- {
- CleanupStack::Pop( self );
- }
- else
- {
- CleanupStack::PopAndDestroy( self );
- }
-
- User::LeaveIfError( err );
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerMMCInfoPopup::ConstructDataArrayL
-// ---------------------------------------------------------------------------
-//
-MDesCArray* CFileManagerMMCInfoPopup::ConstructDataArrayL(
- const TFileManagerDriveInfo& aInfo )
- {
- CDesCArray* array = new( ELeave ) CDesCArrayFlat( KDefaultItemCount );
- CleanupStack::PushL( array );
-
- // Name
- HBufC* entry = NameEntryLC( aInfo );
- array->AppendL( *entry );
- CleanupStack::PopAndDestroy( entry );
-
- // Capacity
- entry = SizeEntryLC( R_QTN_FMGR_CARD_INFO_SIZE, aInfo.iCapacity );
- array->AppendL( *entry );
- CleanupStack::PopAndDestroy( entry );
-
- // Used
- entry = SizeEntryLC( R_QTN_FMGR_CARD_INFO_USED,
- aInfo.iCapacity - aInfo.iSpaceFree );
- array->AppendL( *entry );
- CleanupStack::PopAndDestroy( entry );
-
- // Free
- entry = SizeEntryLC( R_QTN_FMGR_CARD_INFO_FREE, aInfo.iSpaceFree );
- array->AppendL( *entry );
- CleanupStack::PopAndDestroy( entry );
-
- CleanupStack::Pop( array );
- return array;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerMMCInfoPopup::NameEntryLC
-// ---------------------------------------------------------------------------
-//
-HBufC* CFileManagerMMCInfoPopup::NameEntryLC(
- const TFileManagerDriveInfo& aInfo )
- {
- HBufC* title = StringLoader::LoadLC( R_QTN_FMGR_CARD_INFO_NAME );
- HBufC* name = NULL;
- if ( aInfo.iName.Length() )
- {
- name = aInfo.iName.AllocLC();
- }
- else
- {
- name = StringLoader::LoadLC( R_QTN_FMGR_CARD_INFO_DEFAULT_NAME );
- }
- HBufC* dataStr = HBufC::NewL( title->Length() + name->Length() + 1 );
- TPtr dataPtr( dataStr->Des() );
-
- dataPtr.Append( *title );
- dataPtr.Append( KSeparator );
- dataPtr.Append( *name );
-
- CleanupStack::PopAndDestroy( name );
- CleanupStack::PopAndDestroy( title );
- CleanupStack::PushL( dataStr );
- return dataStr;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerMMCInfoPopup::SizeEntryLC
-// ---------------------------------------------------------------------------
-//
-HBufC* CFileManagerMMCInfoPopup::SizeEntryLC(
- TInt aTextId, TInt64 aSize )
- {
- TPtrC unit( iUtil->SolveUnitAndSize( aSize ) );
- HBufC* title = StringLoader::LoadLC( aTextId );
- HBufC* sizeAndUnit = StringLoader::LoadLC(
- R_QTN_FMGR_CARD_INFO_DATA, unit, I64INT( aSize ) );
- HBufC* dataStr = HBufC::NewL(
- title->Length() + sizeAndUnit->Length() + 1 );
- TPtr dataPtr( dataStr->Des() );
-
- dataPtr.Append( *title );
- dataPtr.Append( KSeparator );
- dataPtr.Append( *sizeAndUnit );
-
- CleanupStack::PopAndDestroy( sizeAndUnit );
- CleanupStack::PopAndDestroy( title );
- CleanupStack::PushL( dataStr );
- return dataStr;
- }
-
-// End of File
--- a/filemanager/View/src/CFileManagerPopupBase.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,236 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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 file manager popups
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <filemanagerview.rsg>
-#include <FileManagerDebug.h>
-#include <CFileManagerCommonDefinitions.h>
-#include "CFileManagerPopupBase.h"
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- #include <aknmessagequerydialog.h>
-#else // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- #include <aknPopup.h>
- #include <aknlists.h>
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-_LIT( KFmgrLineFeedWithClosingBoldTag, "</AknMessageQuery Bold>\n" );
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerPopupBase::CFileManagerPopupBase
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerPopupBase::CFileManagerPopupBase()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerPopupBase::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CFileManagerPopupBase::ConstructL()
- {
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- const TInt KLineFeedSpace = 2;
- const TInt KReservedForBoldTags = 600;
- TInt i( 0 );
- TInt len( 0 );
- MDesCArray* array = ConstructDataArrayL();
-
- // Reformat array to a single buffer for CAknMessageQueryDialog.
- for ( i = 0; i < array->MdcaCount(); i++ )
- {
- len += array->MdcaPoint( i ).Length() + KLineFeedSpace;
- len += KReservedForBoldTags; //Reserve some space for putting bold tags
- }
- iData = HBufC::New( len );
- if ( !iData )
- {
- delete array;
- User::LeaveNoMemory();
- }
- TPtr ptr = iData->Des();
- for ( i = 0; i < array->MdcaCount(); i++ )
- {
- if ( i > 0 )
- {
- ptr.Append( KFmgrLineFeed );
- ptr.Append( KFmgrLineFeed );
- }
- ptr.Append( KOpeningBoldTag ); // insert openning bold tag
- ptr.Append( array->MdcaPoint( i ) );
- TInt tmpPos = ptr.Find( KFmgrTab );
- ptr.Replace(tmpPos, 1, KFmgrLineFeedWithClosingBoldTag);
- }
-// AknTextUtils::ReplaceCharacters( ptr, KFmgrTab, KFmgrLineFeed()[0] );
- delete array;
-
-#else // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- iListBox = new(ELeave) CAknDoublePopupMenuStyleListBox;
- iPopupList = CAknPopupList::NewL( iListBox,
- R_AVKON_SOFTKEYS_OK_EMPTY,
- AknPopupLayouts::EMenuDoubleWindow );
- iListBox->ConstructL( iPopupList, EAknListBoxViewerFlags );
-
- MDesCArray* array = ConstructDataArrayL();
- iListBox->Model()->SetItemTextArray( array );
-
- iListBox->CreateScrollBarFrameL( ETrue );
- iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff,
- CEikScrollBarFrame::EAuto );
- iListBox->SetMopParent( this );
-
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerPopupBase::~CFileManagerPopupBase
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerPopupBase::~CFileManagerPopupBase()
- {
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- delete iTitle;
- delete iData;
-
-#else // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- if( iIsDestroyed )
- {
- *iIsDestroyed = ETrue;
- }
- delete iListBox;
-
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerPopupBase::ExecuteLD
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerPopupBase::ExecuteLD()
- {
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- CleanupStack::PushL( this );
- CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL( *iData );
- dlg->PrepareLC( R_FILEMANAGER_POPUP_DIALOG );
- dlg->QueryHeading()->SetTextL( *iTitle );
- dlg->SetMopParent( this );
- TCallBack cb( CFileManagerPopupBase::LinkCallback, this );
- dlg->SetLink( cb );
- TBool ret( dlg->RunLD() );
- CleanupStack::PopAndDestroy( this );
- return ret;
-
-#else // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- CFileManagerPopupBase* self = this;
- CleanupStack::PushL( self );
-
- TBool thisDestroyed( EFalse );
- iIsDestroyed = &thisDestroyed;
-
- TBool ret( EFalse );
- TRAPD( err, ( ret = iPopupList->ExecuteLD() ));
-
- // just in case check is this base object still on,
- // before using member variable
- if( !thisDestroyed )
- {
- iPopupList = NULL;
- }
-
- if( thisDestroyed )
- {
- CleanupStack::Pop( self );
- }
- else
- {
- CleanupStack::PopAndDestroy( self );
- }
-
- User::LeaveIfError( err );
-
- return ret;
-
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerPopupBase::SetTitleL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerPopupBase::SetTitleL(const TDesC &aTitle)
- {
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- if (iTitle)
- {
- delete iTitle;
- iTitle = NULL;
- }
- iTitle = aTitle.AllocL();
-
-#else // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
- iPopupList->SetTitleL( aTitle );
-
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
- }
-
-#ifdef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-// -----------------------------------------------------------------------------
-// CFileManagerPopupBase::ActivateLinkL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerPopupBase::ActivateLinkL()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerPopupBase::LinkCallback
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerPopupBase::LinkCallback(TAny* aPtr)
- {
- CFileManagerPopupBase* ptr = static_cast<CFileManagerPopupBase*>( aPtr );
- TRAPD( err, ptr->ActivateLinkL() );
- ERROR_LOG1( "CFileManagerPopupBase::LinkCallback()-err:%d", err )
- return err;
- }
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-// End of File
--- a/filemanager/View/src/Cfilemanagerfoldernamequerydlg.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Dialog for asking folder name from user
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <StringLoader.h>
-#include <aknnotewrappers.h>
-#include <bautils.h>
-#include <CFileManagerEngine.h>
-#include <CFileManagerUtils.h>
-#include <filemanagerview.rsg>
-#include "Cfilemanagerfoldernamequerydlg.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "FileManagerDlgUtils.h"
-#include "CFileManagerItemProperties.h"
-
-
-// CONSTANTS
-// If number is 10 or more 2 digits are needed to display it
-const TInt KTwoDigitNeeded = 10;
-_LIT( KFormatStringTwoDigit, "%02d" );
-_LIT( KFormatString, "%d" );
-const TInt KFormatBufLen = 16;
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNameQueryDlg::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderNameQueryDlg* CFileManagerFolderNameQueryDlg::NewL(
- TDes& aDataText,
- CFileManagerEngine& aEngine,
- TBool aNameGeneration )
- {
- CFileManagerFolderNameQueryDlg* self =
- new( ELeave ) CFileManagerFolderNameQueryDlg( aDataText, aEngine );
-
- CleanupStack::PushL( self );
- self->ConstructL( aNameGeneration, aDataText );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNameQueryDlg::CFileManagerFolderNameQueryDlg
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderNameQueryDlg::CFileManagerFolderNameQueryDlg(
- TDes& aDataText,
- CFileManagerEngine& aEngine ) :
- CAknTextQueryDialog( aDataText ),
- iEngine( aEngine )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNameQueryDlg::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderNameQueryDlg::ConstructL( TBool aNameGeneration,
- TDes& aDataText )
- {
- if( aNameGeneration )
- {
- TInt i( 1 );
- HBufC* folderName =
- StringLoader::LoadLC( R_FILEMANAGER_DEFAULT_FOLDER_NAME );
- TBuf< KFormatBufLen > numBuf;
-
- while( iEngine.IsNameFoundL( *folderName ) )
- {
- CleanupStack::PopAndDestroy( folderName );
- numBuf.Zero();
- if( i < KTwoDigitNeeded )
- {
- numBuf.Format( KFormatStringTwoDigit, i );
- }
- else
- {
- numBuf.Format( KFormatString, i );
- }
- AknTextUtils::DisplayTextLanguageSpecificNumberConversion(
- numBuf );
- folderName = StringLoader::LoadLC(
- R_FILEMANAGER_DEFAULT_FOLDER_NAME_N, numBuf );
- ++i;
- }
- Text().Copy( *folderName );
- CleanupStack::PopAndDestroy( folderName );
- }
- else
- {
- iOldName = aDataText.AllocL();
- TParsePtrC parse(
- CFileManagerUtils::StripFinalBackslash( *iOldName ) );
- if ( parse.PathPresent() )
- {
- Text().Copy( parse.NameAndExt() );
- }
- else
- {
- Text().Copy( *iOldName );
- }
-
- // Strip any directionality markers to get pure name
- TPtr ptr( iOldName->Des() );
- AknTextUtils::StripCharacters( ptr, KFmgrDirectionalChars );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNameQueryDlg::~CFileManagerFolderNameQueryDlg
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderNameQueryDlg::~CFileManagerFolderNameQueryDlg()
- {
- delete iOldName;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNameQueryDlg::DoOkToExitL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFolderNameQueryDlg::DoOkToExitL( TInt aButtonId )
- {
- TBool result( CAknTextQueryDialog::OkToExitL( aButtonId ) );
-
- HBufC* userText = Text().AllocLC();
- TPtr ptrUserText( userText->Des() );
-
- // Strip any directionality markers to get pure name
- AknTextUtils::StripCharacters( ptrUserText, KFmgrDirectionalChars );
-
- // Remove white spaces from end, file server also ignores those
- ptrUserText.TrimRight();
-
- // Check folder name
- TBool isValidName( EFalse );
- TPtrC empty( KNullDesC );
- TParsePtrC oldName( CFileManagerUtils::StripFinalBackslash(
- iOldName ? *iOldName : empty ) );
- if ( oldName.PathPresent() )
- {
- isValidName = iEngine.IsValidName(
- oldName.DriveAndPath(), *userText, ETrue );
- }
- else
- {
- isValidName = iEngine.IsValidName( KNullDesC, *userText, ETrue );
- }
-
- if( !isValidName )
- {
- if( iEngine.IllegalChars( *userText ) )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_FLDR_ILLEGAL_CHARACTERS );
- }
- else
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_FLDR_BAD_FILE_NAME );
- }
- CAknQueryControl* queryControl = QueryControl();
- if ( queryControl )
- {
- CEikEdwin* edwin = static_cast< CEikEdwin* >( queryControl->
- ControlByLayoutOrNull( EDataLayout ) );
- if ( edwin )
- {
- edwin->SetSelectionL( edwin->TextLength(), 0 );
- }
- }
- CleanupStack::PopAndDestroy( userText );
- return EFalse;
- }
-
- HBufC* userTextFullPath = HBufC::NewLC( KMaxFileName );
- TPtr ptrUserTextFullPath( userTextFullPath->Des() );
- if ( oldName.PathPresent() )
- {
- ptrUserTextFullPath.Append( oldName.DriveAndPath() );
- }
-
- ptrUserTextFullPath.Append( *userText );
-
- // if entry with same name - not ok except if name same as original
- if( iEngine.IsNameFoundL( ptrUserTextFullPath ) &&
- ( !iOldName || ( iOldName &&
- iOldName->Des().CompareF( ptrUserTextFullPath ) ) ) )
- {
- FileManagerDlgUtils::ShowInfoNoteL(
- R_QTN_WMLBM_NAME_ALREADY_USED );
-
- CAknQueryControl* queryControl = QueryControl();
- if ( queryControl )
- {
- CEikEdwin* edwin = static_cast< CEikEdwin* >
- ( queryControl->ControlByLayoutOrNull( EDataLayout ) );
- if ( edwin )
- {
- edwin->SetSelectionL( edwin->TextLength(), 0 );
- }
- }
- result = EFalse;
- }
- CleanupStack::PopAndDestroy( userTextFullPath );
- CleanupStack::PopAndDestroy( userText );
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFileNameQueryDlg::OkToExitL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFolderNameQueryDlg::OkToExitL( TInt aButtonId )
- {
- if ( iCallbackDisabled )
- {
- return EFalse; // Block unwanted softkey events
- }
- TBool ret( EFalse );
- iCallbackDisabled = ETrue;
- TRAPD( err, ret = DoOkToExitL( aButtonId ) );
- iCallbackDisabled = EFalse;
- User::LeaveIfError( err );
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNameQueryDlg::OfferKeyEventL
-//
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CFileManagerFolderNameQueryDlg::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
- {
- TKeyResponse response = EKeyWasNotConsumed;
- if ( aType == EEventKey && aKeyEvent.iCode == EKeyEnter )
- {
- response = EKeyWasConsumed;
- }
- else
- {
- response = CAknTextQueryDialog::OfferKeyEventL(aKeyEvent, aType);
- }
- return response;
- }
-
-// End of File
--- a/filemanager/View/src/Cfilemanagerfoldernavigationpane.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,622 +0,0 @@
-/*
-* Copyright (c) 2002-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: Navigation pane for file manager
-*
-*/
-
-
-// INCLUDES
-#include <coecntrl.h>
-#include <avkon.rsg>
-#include <aknconsts.h>
-#include <StringLoader.h>
-#include <bautils.h>
-#include <featmgr.h>
-#include <AknsSkinInstance.h>
-#include <AknsUtils.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <filemanagerview.rsg>
-#include <FileManagerEngine.hrh>
-#include "Cfilemanagerfoldernavigationpane.h"
-#include "MFileManagerFolderNaviObserver.h"
-#ifdef RD_TACTILE_FEEDBACK
-#include <touchfeedback.h>
-#endif //RD_TACTILE_FEEDBACK
-
-// CONSTANTS
-const TUint KFmgrRoot = 0;
-const TUint KFmgrFirstLevel = 1;
-
-// needed because _LIT macro does not expand parameter, which is also macro
-#define _CREATE_LIT( a, b ) _LIT( a, b )
-
-_CREATE_LIT( KFileManagerMifFile, filemanager_mbm_file_location );
-
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::TIndicatorSet::Compare
-//
-// -----------------------------------------------------------------------------
-//
-TBool CFileManagerFolderNavigationPane::TIndicatorSet::Compare(
- const TIndicatorSet& aFirst,
- const TIndicatorSet& aSecond )
- {
- return ( aFirst.iId == aSecond.iId );
- }
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::~CFileManagerFolderNavigationPane
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerFolderNavigationPane::~CFileManagerFolderNavigationPane()
- {
- delete iLongTapDetector;
- iIndicatorArray.Reset();
- delete iFolderBitmap;
- delete iFolderMask;
- delete iRootBitmap;
- delete iRootMask;
- delete iSeparator;
- delete iBmpFile;
- delete iEndChar;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::CFileManagerFolderNavigationPane
-//
-// -----------------------------------------------------------------------------
-//
-CFileManagerFolderNavigationPane::CFileManagerFolderNavigationPane(
- const TInt aRoot,
- const TInt aDepth ) :
- iRoot( aRoot ),
- iMaxDepth( KFileManagerMaxFolderDepth - 1 ), // Exclude the root
- iIndicatorArray( 1 )
- {
- // ensure that iDepth will be positive
- if ( aDepth < 0 )
- {
- iDepth = 0;
- }
- else
- {
- iDepth = aDepth;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderNavigationPane::ConstructL( TResourceReader& aReader )
- {
- // Get File Manager mif drive from exe location
- TFileName exeFileName( RProcess().FileName() );
-
- iBmpFile = aReader.ReadHBufCL();
-
- TPtr ptr( iBmpFile->Des() );
- if ( !ptr.CompareF( KFileManagerMifFile ) )
- {
- // Set correct File Manager mif drive
- ptr[ 0 ] = exeFileName[ 0 ];
- }
-
- iFolderIconId = aReader.ReadInt16();
- iFolderMaskId = aReader.ReadInt16();
- const TInt majorSkinId = static_cast< TInt >( aReader.ReadInt32() );
- const TInt minorSkinId = static_cast< TInt >( aReader.ReadInt32() );
- iSeparator = aReader.ReadHBufCL();
- iEndChar = aReader.ReadHBufCL();
-
- iAknsItemIdFolder.Set( majorSkinId, minorSkinId );
-
- TInt count( aReader.ReadInt16() );
-
- for ( TInt i( 0 ); i < count ; i++ )
- {
- TIndicatorSet set;
- set.iId = aReader.ReadInt16() ;
-
- HBufC* tmp = aReader.ReadHBufCL();
- TPtr ptr( tmp->Des() );
- if ( !ptr.CompareF( KFileManagerMifFile ) )
- {
- // Set correct File Manager mif drive
- ptr[ 0 ] = exeFileName[ 0 ];
- }
- set.iBmpFile = *tmp;
- delete tmp;
-
- set.iIconId = aReader.ReadInt16();
- set.iMaskId = aReader.ReadInt16();
- const TInt majorSkinIdRoot = static_cast< TInt >( aReader.ReadInt32() );
- const TInt minorSkinIdRoot = static_cast< TInt >( aReader.ReadInt32() );
- set.iAknsItemIdRoot.Set( majorSkinIdRoot, minorSkinIdRoot );
-
- iIndicatorArray.AppendL( set );
- }
-
-
- LoadFolderBitmapL();
-
- // Set the default root bitmap
- ChangeRootL( iRoot );
-
- iLongTapDetector = CAknLongTapDetector::NewL( this );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::NewL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CFileManagerFolderNavigationPane*
- CFileManagerFolderNavigationPane::NewL( const TInt aRoot,
- const TInt aDepth,
- TResourceReader& aReader )
- {
- CFileManagerFolderNavigationPane* self =
- new( ELeave ) CFileManagerFolderNavigationPane( aRoot, aDepth );
- CleanupStack::PushL( self );
- self->ConstructL( aReader );
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::SetFolderDepth
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerFolderNavigationPane::SetFolderDepth( const TInt aDepth )
- {
- if ( aDepth < 0 )
- {
- iDepth = 0;
- }
- else
- {
- iDepth = aDepth;
- }
-
- // ReportChange() is used to notify CoeControl to redraw pane.
- ReportChange();
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::FolderDepth
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CFileManagerFolderNavigationPane::FolderDepth() const
- {
- return iDepth;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::SizeChanged
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderNavigationPane::SizeChanged()
- {
-
- TSize size( TSize::EUninitialized );
- AknLayoutUtils::LayoutMetricsSize( AknLayoutUtils::ENaviPane, size );
- TRect parentRect( size );
- // Get pane icon and text layouts
- TAknWindowLineLayout paneIconLayout(
- AknLayoutScalable_Avkon::navi_icon_text_pane_g1().LayoutLine() );
- TAknTextLineLayout paneTextLayout(
- AknLayoutScalable_Avkon::navi_icon_text_pane_t1().LayoutLine() );
- TAknLayoutRect layoutRect;
- TAknLayoutText layoutText;
- layoutRect.LayoutRect( parentRect, paneIconLayout );
- layoutText.LayoutText( parentRect, paneTextLayout );
- // Setup pane items
- TRect itemsRect( layoutRect.Rect() );
- const CFont* font( layoutText.Font() ); // Not owned
- TInt bsWidth( font->MeasureText( *iSeparator ) );
- TInt dotsWidth( font->MeasureText( *iEndChar ) );
- TInt textWidth( KFileManagerMaxFolderDepth * bsWidth + dotsWidth );
- TInt iconWidth( ( itemsRect.Width() - textWidth )
- / KFileManagerMaxFolderDepth );
- TInt i( 0 );
-
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- TInt offs( itemsRect.Width() );
- for ( i = 0 ; i < KFileManagerMaxFolderDepth; i++ )
- {
- // Root and Folder Icons
- offs -= iconWidth;
- iBitmapLayout[ i ].LayoutRect(
- parentRect,
- paneIconLayout.iC,
- paneIconLayout.il + offs,
- paneIconLayout.it,
- paneIconLayout.ir,
- paneIconLayout.ib,
- iconWidth,
- paneIconLayout.iH
- );
- // Backslashes
- offs -= bsWidth;
- iTextLayout[ i ].LayoutText(
- parentRect,
- paneTextLayout.iFont,
- paneTextLayout.iC,
- paneTextLayout.il + offs,
- paneTextLayout.ir,
- paneTextLayout.iB,
- paneTextLayout.iW,
- paneTextLayout.iJ
- );
- }
- // Dots
- offs -= dotsWidth;
- iTextLayout[ i ].LayoutText(
- parentRect,
- paneTextLayout.iFont,
- paneTextLayout.iC,
- paneTextLayout.il + offs,
- paneTextLayout.ir,
- paneTextLayout.iB,
- paneTextLayout.iW,
- paneTextLayout.iJ
- );
- }
- else
- {
- TInt offs( 0 );
- for ( i = 0 ; i < KFileManagerMaxFolderDepth; i++ )
- {
- // Root and Folder Icons
- iBitmapLayout[ i ].LayoutRect(
- parentRect,
- paneIconLayout.iC,
- paneIconLayout.il + offs,
- paneIconLayout.it,
- paneIconLayout.ir,
- paneIconLayout.ib,
- iconWidth,
- paneIconLayout.iH
- );
- offs += iconWidth;
- // Backslashes
- iTextLayout[ i ].LayoutText(
- parentRect,
- paneTextLayout.iFont,
- paneTextLayout.iC,
- paneTextLayout.il + offs,
- paneTextLayout.ir,
- paneTextLayout.iB,
- paneTextLayout.iW,
- paneTextLayout.iJ
- );
- offs += bsWidth;
- }
- // Dots
- iTextLayout[ i ].LayoutText(
- parentRect,
- paneTextLayout.iFont,
- paneTextLayout.iC,
- paneTextLayout.il + offs,
- paneTextLayout.ir,
- paneTextLayout.iB,
- paneTextLayout.iW,
- paneTextLayout.iJ
- );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::Draw
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderNavigationPane::Draw( const TRect& /*aRect*/ ) const
- {
-
- CWindowGc& gc = SystemGc();
-
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
- CFbsBitmap* bmp = NULL;
- TRgb color( KRgbWhite ); // Default never used
- bmp = AknsUtils::GetCachedBitmap( skin, KAknsIIDQsnComponentColorBmpCG2 );
- AknsUtils::GetCachedColor( skin, color,
- KAknsIIDQsnComponentColors, EAknsCIQsnComponentColorsCG2 );
-
- AknIconUtils::SetSize( iRootMask, iBitmapLayout[ KFmgrRoot ].Rect().Size() );
- if ( bmp )
- {
- iBitmapLayout[ KFmgrRoot ].DrawImage( gc, bmp, iRootMask );
- }
- else
- {
- AknIconUtils::SetSize( iRootBitmap, iBitmapLayout[ KFmgrRoot ].Rect().Size() );
- iBitmapLayout[ KFmgrRoot ].DrawImage( gc, iRootBitmap, iRootMask );
- }
-
- if ( !bmp )
- {
- AknIconUtils::SetSize( iFolderBitmap, iBitmapLayout[ KFmgrFirstLevel ].Rect().Size() );
- bmp = iFolderBitmap;
- }
-
-
- // draw folder bitmaps depending on current folderdepth
- TInt count( iDepth > iMaxDepth ? iMaxDepth : iDepth );
- AknIconUtils::SetSize( iFolderMask, iBitmapLayout[ KFmgrFirstLevel ].Rect().Size() );
- for( TInt i( KFmgrFirstLevel ); i <= count; i++ )
- {
- iBitmapLayout[ i ].DrawImage( gc, bmp, iFolderMask );
- }
-
- // draw backslashes between folderbitmaps depending on current folderdepth
- TInt tc( iDepth > ( iMaxDepth + 1 ) ? ( iMaxDepth + 1 ) : iDepth );
- for( TInt j( 0 ); j < tc; j++ )
- {
- const CFont* font = iTextLayout[j].Font(); // Not owned
- gc.UseFont( font );
- gc.SetPenColor( color );
- gc.DrawText( *iSeparator, iTextLayout[j].TextRect(),
- font->AscentInPixels(), CGraphicsContext::ELeft, 0 );
- }
-
- // draw "..." at the end if necessary
- if ( iDepth > iMaxDepth )
- {
- const CFont* font = iTextLayout[iMaxDepth+1].Font(); // Not owned
- gc.UseFont( font );
- gc.SetPenColor( color );
- gc.DrawText( *iEndChar, iTextLayout[iMaxDepth+1].TextRect(),
- font->AscentInPixels(), CGraphicsContext::ELeft, 0 );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::HandleResourceChangeL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerFolderNavigationPane::HandleResourceChangeL( TInt aType )
- {
- // Skin has propably changed so load bitmaps again
- if( aType == KAknsMessageSkinChange )
- {
- LoadFolderBitmapL();
-
- // Delete old to make sure that bitmaps are reloaded
- delete iRootBitmap;
- iRootBitmap = NULL;
- delete iRootMask;
- iRootMask = NULL;
-
- ChangeRootL( iRoot );
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::ReportChange
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderNavigationPane::ReportChange()
- {
- // Leave is trapped because it's not critical to functionality.
- // If leave occurs, navipane just may not be redrawn at that very moment.
- TRAP_IGNORE( ReportEventL( MCoeControlObserver::EEventStateChanged ) );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::ChangeRootL
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerFolderNavigationPane::ChangeRootL( const TInt aRoot )
- {
- // Do not reload icon if correct one is already in use
- if ( iRoot == aRoot && iRootBitmap && iRootMask )
- {
- return;
- }
-
- TIndicatorSet set;
- set.iId = aRoot;
-
- TInt index( iIndicatorArray.Find( set, TIndicatorSet::Compare ) );
-
- if ( index >= 0 )
- {
- set = iIndicatorArray[ index ];
-
- delete iRootBitmap;
- iRootBitmap = NULL;
- delete iRootMask;
- iRootMask = NULL;
-
- AknsUtils::CreateColorIconL( AknsUtils::SkinInstance(),
- set.iAknsItemIdRoot,
- KAknsIIDQsnIconColors,
- EAknsCIQsnIconColorsCG7,
- iRootBitmap,
- iRootMask,
- set.iBmpFile,
- set.iIconId,
- set.iMaskId,
- KRgbBlack );
- iRoot = aRoot;
- ReportChange();
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::LoadFolderBitmapL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderNavigationPane::LoadFolderBitmapL()
- {
-
- delete iFolderBitmap;
- iFolderBitmap = NULL;
- delete iFolderMask;
- iFolderMask = NULL;
-
- AknsUtils::CreateColorIconL( AknsUtils::SkinInstance(),
- iAknsItemIdFolder,
- KAknsIIDQsnIconColors,
- EAknsCIQsnIconColorsCG7,
- iFolderBitmap,
- iFolderMask,
- *iBmpFile,
- iFolderIconId,
- iFolderMaskId,
- KRgbBlack );
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::SetObserver
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CFileManagerFolderNavigationPane::SetObserver(
- MFileManagerFolderNaviObserver* aObserver )
- {
- iObserver = aObserver;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::CheckHitFolderLevel
-//
-// -----------------------------------------------------------------------------
-//
-TInt CFileManagerFolderNavigationPane::CheckHitFolderLevel(
- const TPoint& aPos )
- {
- TInt ret( KErrNotFound );
- TInt count( iDepth + 1 );
- count = Min( KFileManagerMaxFolderDepth, count );
- for ( TInt i( 0 ); i < count; ++i )
- {
- const TRect& bmpRect( iBitmapLayout[ i ].Rect() );
- if ( bmpRect.Contains( aPos ) )
- {
- ret = i;
- break;
- }
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::HandlePointerEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderNavigationPane::HandlePointerEventL(
- const TPointerEvent& aPointerEvent )
- {
- if ( !AknLayoutUtils::PenEnabled() )
- {
- return;
- }
-
- TInt level( KErrNotFound );
-
- switch ( aPointerEvent.iType )
- {
- case TPointerEvent::EButton1Down:
- {
- level = CheckHitFolderLevel( aPointerEvent.iPosition );
- if ( iObserver )
- {
-#ifdef RD_TACTILE_FEEDBACK
- if (KErrNotFound != level)
- {
- MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback )
- {
- feedback->InstantFeedback( this, ETouchFeedbackBasic );
- }
- }
-#endif //RD_TACTILE_FEEDBACK
-
- iObserver->HandleFolderNaviEventL(
- MFileManagerFolderNaviObserver::ENaviTapDown,
- level );
- }
- iLongTap = EFalse;
- break;
- }
- case TPointerEvent::EButton1Up:
- {
- level = CheckHitFolderLevel( aPointerEvent.iPosition );
- if ( !iLongTap )
- {
- if ( iObserver )
- {
- iObserver->HandleFolderNaviEventL(
- MFileManagerFolderNaviObserver::ENaviTapUp,
- level );
- }
- }
- else
- {
- iLongTap = EFalse;
- }
- break;
- }
- default:
- {
- break;
- }
- }
-
- if ( iLongTapDetector && level != KErrNotFound )
- {
- iLongTapDetector->PointerEventL( aPointerEvent );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFolderNavigationPane::HandleLongTapEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFolderNavigationPane::HandleLongTapEventL(
- const TPoint& aPenEventLocation,
- const TPoint& /*aPenEventScreenLocation*/ )
- {
- if ( iObserver )
- {
- TInt level( CheckHitFolderLevel( aPenEventLocation ) );
- iObserver->HandleFolderNaviEventL(
- MFileManagerFolderNaviObserver::ENaviLongTap,
- level );
- }
- iLongTap = ETrue;
- }
-
-// End of File
--- a/filemanager/View/src/FileManagerDlgUtils.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,669 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: Dialog utilities
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <avkon.rsg>
-#include <StringLoader.h>
-#include <aknradiobuttonsettingpage.h>
-#include <akncheckboxsettingpage.h>
-#include <aknmfnesettingpage.h>
-#include <aknmessagequerydialog.h>
-#include <aknnotewrappers.h>
-#include <filemanagerview.rsg>
-#include <CFileManagerEngine.h>
-#include "FileManagerDlgUtils.h"
-#include "CFileManagerMMCInfoPopup.h"
-#include "CFileManagerCheckBoxSettingPage.h"
-#include "CFileManagerFileNameQueryDlg.h"
-#include "Cfilemanagerfoldernamequerydlg.h"
-#include "CFileManagerInfoPopup.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowOOfMSettingQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowOOfMSettingQueryL(
- const TInt aTitleId,
- const MDesCArray* aTextArray,
- TInt& aSelectedIndex )
- {
- TInt index( aSelectedIndex );
- TBool ret( EFalse );
- HBufC* title = StringLoader::LoadLC( aTitleId );
- CAknRadioButtonSettingPage* dlg =
- new ( ELeave )CAknRadioButtonSettingPage(
- R_FILEMANAGER_SETTING_RADIOBUTTON_PAGE, index, aTextArray );
- CleanupStack::PushL( dlg );
- dlg->SetSettingTextL( *title );
- CleanupStack::Pop( dlg );
- if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
- {
- // Get new selected item and inform change
- if ( index != aSelectedIndex )
- {
- aSelectedIndex = index;
- ret = ETrue;
- }
- }
- CleanupStack::PopAndDestroy( title );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowOOfMSettingQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowOOfMSettingQueryL(
- const TInt aTitleId,
- const TInt aTextIds,
- TInt& aSelectedIndex )
- {
- CDesCArray* texts = CCoeEnv::Static()->ReadDesCArrayResourceL( aTextIds );
- CleanupStack::PushL( texts );
- TBool ret( ShowOOfMSettingQueryL( aTitleId, texts, aSelectedIndex ) );
- CleanupStack::PopAndDestroy( texts );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowWeekdayQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowWeekdayQueryL(
- const TInt aTitleId,
- TDay& aDay )
- {
- const TInt KDaysPerWeek = 7;
- TLocale locale;
- TDay startingDay( locale.StartOfWeek() );
- CDesCArray* texts = new ( ELeave ) CDesCArrayFlat( KDaysPerWeek );
- CleanupStack::PushL( texts );
- TInt j( startingDay % KDaysPerWeek );
- TDayName dayName;
- for ( TInt i( 0 ); i < KDaysPerWeek; i++ )
- {
- dayName.Set( static_cast< TDay >( j ) );
- texts->AppendL( dayName );
- j = ( j + 1 ) % KDaysPerWeek;
- }
- TInt index( 0 );
- if ( aDay >= startingDay )
- {
- index = aDay - startingDay;
- }
- else
- {
- index = KDaysPerWeek - startingDay + aDay;
- }
- TBool ret( ShowOOfMSettingQueryL( aTitleId, texts, index ) );
- if ( ret )
- {
- aDay = static_cast< TDay >( ( startingDay + index ) % KDaysPerWeek );
- }
- CleanupStack::PopAndDestroy( texts );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowNOfMSettingQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowNOfMSettingQueryL(
- const TInt aTitleId,
- const TInt aTextIds,
- TUint32& aSelection,
- const TInt aDominantIndex )
- {
- TBool ret( EFalse );
-
- // Get title and text array
- HBufC* title = StringLoader::LoadLC( aTitleId );
- CDesCArray* texts = CCoeEnv::Static()->ReadDesCArrayResourceL( aTextIds );
- CleanupStack::PushL( texts );
-
- // Create selection array
- TInt count( texts->MdcaCount() );
- CSelectionItemList* items =
- new ( ELeave ) CSelectionItemList( count );
- CleanupStack::PushL( items );
- for ( TInt i( 0 ); i < count; i++ )
- {
- TBool check( EFalse );
- if ( aSelection & ( 1 << i ) )
- {
- check = ETrue;
- }
- TPtrC ptr( texts->MdcaPoint( i ) );
- CSelectableItem* selectionItem = new ( ELeave ) CSelectableItem(
- ptr, check );
- CleanupStack::PushL( selectionItem );
- selectionItem->ConstructL();
- items->AppendL( selectionItem );
- CleanupStack::Pop( selectionItem );
- }
-
- // Create multiselection list
- CFileManagerCheckBoxSettingPage* dlg =
- new ( ELeave ) CFileManagerCheckBoxSettingPage(
- R_FILEMANAGER_SETTING_CHECKBOX_PAGE, *items, aDominantIndex );
- CleanupStack::PushL( dlg );
- dlg->SetSettingTextL( *title );
- CleanupStack::Pop( dlg );
- if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
- {
- // Get new selection and inform changes
- TUint32 selection( 0 );
- for ( TInt i( 0 ); i < count; i++ )
- {
- if ( items->At( i )->SelectionStatus() )
- {
- selection |= 1 << i;
- }
- }
- if ( selection != aSelection )
- {
- aSelection = selection;
- ret = ETrue;
- }
- }
- items->ResetAndDestroy();
- CleanupStack::PopAndDestroy( items );
- CleanupStack::PopAndDestroy( texts );
- CleanupStack::PopAndDestroy( title );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowTimeSettingQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowTimeSettingQueryL(
- const TInt aTitleId, TTime& aTime )
- {
- TTime time( aTime );
- TBool ret( EFalse );
- HBufC* title = StringLoader::LoadLC( aTitleId );
- CAknTimeSettingPage* dlg =
- new (ELeave) CAknTimeSettingPage(
- R_FILEMANAGER_TIME_SETTING_PAGE,
- time);
- CleanupStack::PushL( dlg );
- dlg->SetSettingTextL( *title );
- CleanupStack::Pop( dlg );
- if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted ) )
- {
- // Get new time and inform change
- if ( time != aTime )
- {
- aTime = time;
- ret = ETrue;
- }
- }
- CleanupStack::PopAndDestroy( title );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowInfoQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowInfoQueryL(
- const TDesC& aText )
- {
- CAknMessageQueryDialog* dlg =
- CAknMessageQueryDialog::NewL( const_cast< TDesC& >( aText ) );
- dlg->ExecuteLD( R_FILEMANAGER_INFO_QUERY );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowInfoQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowInfoQueryL(
- const TInt aTextId, const TDesC& aValue )
- {
- HBufC* text = NULL;
- if ( aValue.Length() )
- {
- text = StringLoader::LoadLC( aTextId, aValue );
- }
- else
- {
- text = StringLoader::LoadLC( aTextId );
- }
- ShowInfoQueryL( *text );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowInfoQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowInfoQueryL(
- const TInt aTextId, const TInt aValue )
- {
- HBufC* text = StringLoader::LoadLC( aTextId, aValue );
- ShowInfoQueryL( *text );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowErrorNoteL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowErrorNoteL(
- const TInt aTextId, const TDesC& aValue )
- {
- HBufC* text = NULL;
- if ( aValue.Length() )
- {
- text = StringLoader::LoadLC( aTextId, aValue );
- }
- else
- {
- text = StringLoader::LoadLC( aTextId );
- }
- ShowErrorNoteL( *text );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowConfirmNoteL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowConfirmNoteL(
- const TInt aTextId )
- {
- HBufC* text = StringLoader::LoadLC( aTextId );
- CAknConfirmationNote* confirmNote =
- new( ELeave ) CAknConfirmationNote( ETrue );
- confirmNote->ExecuteLD( *text );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowWarningNoteL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowWarningNoteL(
- const TInt aTextId )
- {
- HBufC* text = StringLoader::LoadLC( aTextId );
- CAknWarningNote* warningNote =
- new( ELeave ) CAknWarningNote( ETrue );
- warningNote->ExecuteLD( *text );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowConfirmQueryWithYesNoL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- const TInt aTextId, const TDesC& aValue )
- {
- HBufC* text = NULL;
- if ( aValue.Length() )
- {
- text = StringLoader::LoadLC( aTextId, aValue );
- }
- else
- {
- text = StringLoader::LoadLC( aTextId );
- }
-
- TBool ret( ShowConfirmQueryWithYesNoL( *text ) );
- CleanupStack::PopAndDestroy( text );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowConfirmQueryWithYesNoL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowConfirmQueryWithYesNoL(
- const TDesC& aText )
- {
- TBool ret( EFalse );
- CAknQueryDialog* dlg = CAknQueryDialog::NewL();
- if ( dlg->ExecuteLD( R_FILEMANAGER_CONFIRM_QUERY_WITH_YES_NO, aText ) )
- {
- ret = ETrue;
- }
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowConfirmQueryWithOkL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowConfirmQueryWithOkL(
- const TIcons aIcons,
- const TInt aTextId,
- const TDesC& aValue )
- {
- HBufC* text = NULL;
- if ( aValue.Length() )
- {
- text = StringLoader::LoadLC( aTextId, aValue );
- }
- else
- {
- text = StringLoader::LoadLC( aTextId );
- }
- ShowConfirmQueryWithOkL( aIcons, *text );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowConfirmQueryWithOkL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowConfirmQueryWithOkL(
- const TIcons aIcons,
- const TInt aTextId,
- const TInt aValue )
- {
- HBufC* text = StringLoader::LoadLC( aTextId, aValue );
- ShowConfirmQueryWithOkL( aIcons, *text );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowConfirmQueryWithOkL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowConfirmQueryWithOkL(
- const TIcons aIcons,
- const TDesC& aText )
- {
- TInt resId( 0 );
- switch ( aIcons )
- {
- case EInfoIcons:
- {
- resId = R_FILEMANAGER_INFO_CONFIRM_QUERY_WITH_OK;
- break;
- }
- case EErrorIcons:
- {
- resId = R_FILEMANAGER_ERROR_CONFIRM_QUERY_WITH_OK;
- break;
- }
- default:
- {
- break;
- }
- }
- if ( resId )
- {
- CAknQueryDialog* dlg = CAknQueryDialog::NewL();
- dlg->ExecuteLD( resId, aText );
- }
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowConfirmQueryWithOkCancelL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowConfirmQueryWithOkCancelL(
- const TDesC& aText )
- {
- TBool ret( EFalse );
- CAknQueryDialog* dlg = CAknQueryDialog::NewL();
- if ( dlg->ExecuteLD(
- R_FILEMANAGER_CONFIRM_QUERY_WITH_OK_CANCEL, aText ) )
- {
- ret = ETrue;
- }
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowConfirmQueryWithOkCancelL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowConfirmQueryWithOkCancelL(
- const TInt aTextId,
- const TDesC& aValue )
- {
- HBufC* text = NULL;
- if ( aValue.Length() )
- {
- text = StringLoader::LoadLC( aTextId, aValue );
- }
- else
- {
- text = StringLoader::LoadLC( aTextId );
- }
- TBool ret( ShowConfirmQueryWithOkCancelL( *text ) );
- CleanupStack::PopAndDestroy( text );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowInfoNoteL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowInfoNoteL(
- const TDesC& aText )
- {
- CAknInformationNote* dlg = new(ELeave) CAknInformationNote( ETrue );
- dlg->ExecuteLD( aText );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowInfoNoteL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowInfoNoteL(
- const TInt aTextId, const TDesC& aValue )
- {
- HBufC* text = NULL;
- if( aValue.Length() )
- {
- text = StringLoader::LoadLC( aTextId, aValue );
- }
- else
- {
- text = StringLoader::LoadLC( aTextId );
- }
- ShowInfoNoteL( *text );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowInfoNoteL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowInfoNoteL(
- const TInt aTextId, const TInt aValue )
- {
- HBufC* text = StringLoader::LoadLC( aTextId, aValue );
- ShowInfoNoteL( *text );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowSimplePasswordQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowSimplePasswordQueryL(
- const TInt aTitleId,
- TDes& aPwd )
- {
- TBool ret( EFalse );
- HBufC* title = StringLoader::LoadLC( aTitleId );
- ret = ShowSimplePasswordQueryL( *title, aPwd );
- CleanupStack::PopAndDestroy( title );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowPasswordQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowPasswordQueryL(
- TDes& aPwd )
- {
- HBufC* confirm = HBufC::NewLC( aPwd.MaxLength() );
- TPtr ptrConfirm( confirm->Des() );
- TBool ret( EFalse );
- // Execute dialog again and again until cancelled or passwords match
- TBool isDone( EFalse );
- while( !isDone )
- {
- aPwd.FillZ( aPwd.MaxLength() );
- aPwd.Zero();
- ptrConfirm.FillZ( ptrConfirm.MaxLength() );
- ptrConfirm.Zero();
-
- CAknMultiLineDataQueryDialog* dlg =
- CAknMultiLineDataQueryDialog::NewL(
- aPwd, ptrConfirm );
- if ( dlg->ExecuteLD( R_FILEMANAGER_PASSWORD_QUERY ) )
- {
- // Check if the words match
- if ( aPwd.Compare( ptrConfirm ) )
- {
- FileManagerDlgUtils::ShowErrorNoteL(
- R_QTN_PASSWORDS_DONT_MATCH_TEXT );
- }
- else
- {
- ret = ETrue;
- isDone = ETrue;
- }
- }
- else
- {
- isDone = ETrue;
- }
- }
- CleanupStack::PopAndDestroy( confirm );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowMemoryStoreInfoPopupL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowMemoryStoreInfoPopupL(
- const TFileManagerDriveInfo& aInfo
- )
- {
- CFileManagerMMCInfoPopup* popup = CFileManagerMMCInfoPopup::NewL(
- aInfo );
- popup->ExecuteLD();
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowFileNameQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowFileNameQueryL(
- const TInt aTitleId,
- const TDesC& aOldName,
- TDes& aNewName,
- CFileManagerEngine& aEngine )
- {
- TBool ret( EFalse );
- HBufC* title = StringLoader::LoadLC( aTitleId );
- CFileManagerFileNameQueryDlg* dlg =
- CFileManagerFileNameQueryDlg::NewL(
- aOldName, aNewName, aEngine );
- if ( dlg->ExecuteLD( R_FILEMANAGER_FILE_NAME_QUERY, *title ) )
- {
- ret = ETrue;
- }
- CleanupStack::PopAndDestroy( title );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowFolderNameQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowFolderNameQueryL(
- const TInt aTitleId,
- TDes& aName,
- CFileManagerEngine& aEngine,
- const TBool aNameGeneration )
- {
- TBool ret( EFalse );
- HBufC* title = StringLoader::LoadLC( aTitleId );
- CFileManagerFolderNameQueryDlg* dlg =
- CFileManagerFolderNameQueryDlg::NewL(
- aName, aEngine, aNameGeneration );
- if ( dlg->ExecuteLD( R_FILEMANAGER_FILE_NAME_QUERY, *title ) )
- {
- ret = ETrue;
- }
- CleanupStack::PopAndDestroy( title );
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowItemInfoPopupL(
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowItemInfoPopupL(
- CFileManagerItemProperties& aProperties,
- const CFileManagerFeatureManager& aFeatureManager )
- {
- CFileManagerInfoPopup* popup = NULL;
- TRAPD ( err, popup = CFileManagerInfoPopup::NewL(
- aProperties, aFeatureManager ) );
- if ( err == KErrNone )
- {
- popup->ExecuteLD();
- }
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowSimplePasswordQueryL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TBool FileManagerDlgUtils::ShowSimplePasswordQueryL(
- const TDesC& aText, TDes& aPwd )
- {
- TBool ret( EFalse );
- CAknTextQueryDialog* dlg =
- CAknTextQueryDialog::NewL( aPwd, CAknQueryDialog::ENoTone );
- if ( dlg->ExecuteLD( R_FILEMANAGER_SIMPLE_PASSWORD_QUERY, aText ) )
- {
- ret = ETrue;
- }
- return ret;
- }
-
-// ----------------------------------------------------------------------------
-// FileManagerDlgUtils::ShowErrorNoteL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void FileManagerDlgUtils::ShowErrorNoteL( const TDesC& aText )
- {
- CAknErrorNote* dlg = new( ELeave ) CAknErrorNote( ETrue );
- dlg->ExecuteLD( aText );
- }
-
-// End of File
--- a/filemanager/aiwprovider/data/200110F8.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +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: Registry info resource file for filemanageraiwprovider
-*
-*/
-
-
-// INCLUDE FILES
-#include <ecom/registryinfov2.rh>
-#include <AiwCommon.hrh>
-
-
-// ---------------------------------------------------------
-// filemanageraiwprovider_registry_info
-// Registry info resource.
-// ---------------------------------------------------------
-//
-RESOURCE REGISTRY_INFO filemanageraiwprovider_registry_info
- {
- resource_format_version = RESOURCE_FORMAT_VERSION_2;
- dll_uid = 0x200110F8;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KAiwClassBase;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = 0x200110F9;
- version_no = 1;
- display_name = "filemanageraiwprovider";
- default_data = "*";
- opaque_data = KAiwCmdEditStr;
- }
- };
- }
- };
- }
--- a/filemanager/aiwprovider/inc/filemanageraiwprovider.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +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: This class offers AIW services
-*
-*/
-
-
-
-#ifndef C_FILEMANAGERAIWPROVIDER_H
-#define C_FILEMANAGERAIWPROVIDER_H
-
-// INCLUDE FILES
-#include <e32std.h>
-#include <AiwServiceIfBase.h>
-#include <AknLaunchAppService.h>
-
-
-// CLASS DECLARATION
-/**
-* This class offers AIW services
-*
-* @since 5.0
-*/
-NONSHARABLE_CLASS( CFileManagerAiwProvider ) :
- public CAiwServiceIfBase,
- public MAknServerAppExitObserver
- {
-public:
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerAiwProvider* NewL();
-
- /**
- * Destructor.
- */
- ~CFileManagerAiwProvider();
-
-public: // From CAiwServiceIfBase
-
- void InitialiseL(
- MAiwNotifyCallback& aFrameworkCallback,
- const RCriteriaArray& aInterest );
-
- void HandleServiceCmdL(
- const TInt& aCmdId,
- const CAiwGenericParamList& aInParamList,
- CAiwGenericParamList& aOutParamList,
- TUint aCmdOptions = 0,
- const MAiwNotifyCallback* aCallback = NULL );
-
-public: // From MAknServerAppExitObserver
- void HandleServerAppExit( TInt aReason );
-
-private: // New methods
- void CmdEditL(
- const CAiwGenericParamList& aInParamList,
- const MAiwNotifyCallback* aCallback );
-
- void NotifyL( TInt aEvent );
-
- TUid GetAppUidL();
-
- TUid GetAppUid();
-
- void LaunchEmbeddedL(
- const CAiwGenericParamList& aInParamList,
- const MAiwNotifyCallback* aCallback );
-
- TBool IsStandaloneLaunch(
- const CAiwGenericParamList& aInParamList );
-
- void LaunchStandaloneL(
- const CAiwGenericParamList& aInParamList );
-
- TBool IsFolderToOpenPathGiven(
- const CAiwGenericParamList& aInParamList );
-
-private:
- /**
- * C++ default constructor.
- */
- CFileManagerAiwProvider();
-
-private: // Data
- /**
- * For launching embedded file manager
- * Own.
- */
- CAknLaunchAppService* iService;
-
- /**
- * For client notifications
- * Not own.
- */
- const MAiwNotifyCallback* iCallback;
-
- /**
- * For storing the current input params
- * Own.
- */
- CAiwGenericParamList* iInParamList;
-
- /**
- * Id of the current command
- */
- TInt iCmd;
-
- /**
- * The uid of File Manager application to be started for this service
- */
- TUid iAppUid;
-
- };
-
-#endif // C_FILEMANAGERAIWPROVIDER_H
--- a/filemanager/aiwprovider/src/filemanageraiwprovider.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,443 +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: This class offers AIW services
-*
-*/
-
-
-#include <e32std.h>
-#include <ecom/implementationproxy.h>
-#include <w32std.h>
-#include <apgtask.h>
-#include <apgcli.h>
-#include <apgwgnam.h>
-#include <apacmdln.h>
-#include <centralrepository.h>
-#include "FileManagerDebug.h"
-#include "FileManagerPrivateCRKeys.h"
-#include "filemanageraiwprovider.h"
-#include "FileManagerUID.h"
-
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY( 0x200110F9, CFileManagerAiwProvider::NewL )
- };
-const TUid KUidDefaultFileManager = { KFileManagerUID3 };
-const TInt KMaxSortMethodStr = 20;
-_LIT( KRootMatch, "?:\\" );
-
-
-// ======== LOCAL FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// FindStandaloneAppL
-// ---------------------------------------------------------------------------
-//
-static TBool FindStandaloneAppL(
- RWsSession& aWs, const TUid& aUid, TInt& aWgId )
- {
- FUNC_LOG;
-
- aWgId = 0; // Used window group id is always greater than zero
- RArray< RWsSession::TWindowGroupChainInfo > windowChain;
- User::LeaveIfError( aWs.WindowGroupList( &windowChain ) );
- CleanupClosePushL( windowChain );
- TInt count( windowChain.Count() );
- for( TInt i( 0 ); i < count; ++i )
- {
- const RWsSession::TWindowGroupChainInfo& entry( windowChain[ i ] );
- CApaWindowGroupName* app = CApaWindowGroupName::NewLC(
- aWs, entry.iId );
- TUid appUid( app->AppUid() );
- CleanupStack::PopAndDestroy( app );
- // Match the app's UID and the embedded status.
- // The app is standalone when there is no parent window group.
- if ( appUid == aUid && entry.iParentId <= 0 )
- {
- // Standalone application found
- aWgId = entry.iId;
- break;
- }
- }
- CleanupStack::PopAndDestroy( &windowChain );
- return aWgId > 0;
- }
-
-// ---------------------------------------------------------------------------
-// IsValidFolderToOpenPath
-// ---------------------------------------------------------------------------
-//
-static TBool IsValidFolderToOpenPath( const TDesC& aFullPath )
- {
- FUNC_LOG;
-
- TInt len( aFullPath.Length() );
- if ( !len )
- {
- return ETrue; // Allow empty to open main view
- }
- // Check that at least root folder exists
- if ( aFullPath.Left( KRootMatch().Length() ).MatchF(
- KRootMatch ) == KErrNotFound )
- {
- return EFalse;
- }
- return ETrue;
- }
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::CFileManagerAiwProvider
-// ---------------------------------------------------------------------------
-//
-CFileManagerAiwProvider::CFileManagerAiwProvider()
- {
- FUNC_LOG;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::NewL
-// ---------------------------------------------------------------------------
-//
-CFileManagerAiwProvider* CFileManagerAiwProvider::NewL()
- {
- FUNC_LOG;
-
- return new ( ELeave ) CFileManagerAiwProvider();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::~CFileManagerAiwProvider
-// ---------------------------------------------------------------------------
-//
-CFileManagerAiwProvider::~CFileManagerAiwProvider()
- {
- FUNC_LOG;
-
- delete iService;
- delete iInParamList;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::InitialiseL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerAiwProvider::InitialiseL(
- MAiwNotifyCallback& /*aFrameworkCallback*/,
- const RCriteriaArray& /*aInterest*/ )
- {
- FUNC_LOG;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::HandleServiceCmdL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerAiwProvider::HandleServiceCmdL(
- const TInt& aCmdId,
- const CAiwGenericParamList& aInParamList,
- CAiwGenericParamList& /*aOutParamList*/,
- TUint /*aCmdOptions*/,
- const MAiwNotifyCallback* aCallback )
- {
- FUNC_LOG;
-
- INFO_LOG2(
- "CFileManagerAiwProvider::HandleServiceCmdL-aCmdId=%d,aCallback=0x%x",
- aCmdId, aCallback );
-
- TInt err( KErrNone );
- switch ( aCmdId )
- {
- case KAiwCmdEdit:
- {
- TRAP( err, CmdEditL( aInParamList, aCallback ) );
- break;
- }
- default:
- {
- ERROR_LOG1(
- "CFileManagerAiwProvider::HandleServiceCmdL-InvalidCmd=%d",
- aCmdId );
- break;
- }
- }
- LOG_IF_ERROR2(
- err,
- "CFileManagerAiwProvider::HandleServiceCmdL-aCmdId=%d-err=%d",
- aCmdId, err );
- User::LeaveIfError( err );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::HandleServerAppExit
-// ---------------------------------------------------------------------------
-//
-void CFileManagerAiwProvider::HandleServerAppExit( TInt /*aReason*/ )
- {
- FUNC_LOG;
-
- TRAP_IGNORE( NotifyL( KAiwEventCompleted ) );
- iCallback = NULL; // No notifications are needed after app exit
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::CmdEditL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerAiwProvider::CmdEditL(
- const CAiwGenericParamList& aInParamList,
- const MAiwNotifyCallback* aCallback )
- {
- FUNC_LOG;
-
- iCmd = KAiwCmdEdit;
- if ( IsFolderToOpenPathGiven( aInParamList ) )
- {
- if ( IsStandaloneLaunch( aInParamList ) )
- {
- LaunchStandaloneL( aInParamList );
- }
- else
- {
- LaunchEmbeddedL( aInParamList, aCallback );
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::NotifyL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerAiwProvider::NotifyL( TInt aEvent )
- {
- FUNC_LOG;
-
- if ( iCallback && iInParamList )
- {
- CAiwGenericParamList* eventParamList = CAiwGenericParamList::NewL();
- CleanupStack::PushL( eventParamList );
- // Must cast this because of AIW design error
- const_cast< MAiwNotifyCallback* >( iCallback )->HandleNotifyL(
- iCmd, aEvent, *eventParamList, *iInParamList );
- CleanupStack::PopAndDestroy( eventParamList );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::GetAppUidL
-// ---------------------------------------------------------------------------
-//
-TUid CFileManagerAiwProvider::GetAppUidL()
- {
- FUNC_LOG;
-
- CRepository* cenRep = CRepository::NewLC( KCRUidFileManagerSettings );
- TInt uid( 0 );
- User::LeaveIfError( cenRep->Get( KFileManagerAppUidForAiwService, uid ) );
- CleanupStack::PopAndDestroy( cenRep );
- return TUid::Uid( uid );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::GetAppUid
-// ---------------------------------------------------------------------------
-//
-TUid CFileManagerAiwProvider::GetAppUid()
- {
- FUNC_LOG;
-
- if ( !iAppUid.iUid )
- {
- // Read the application to start from CenRep
- TRAPD( err, iAppUid = GetAppUidL() );
- if ( err != KErrNone || !iAppUid.iUid )
- {
- // Use the default application
- iAppUid = KUidDefaultFileManager;
- }
- ERROR_LOG1(
- "CFileManagerAiwProvider::GetAppUid-Uid=0x%x", iAppUid.iUid );
- }
- return iAppUid;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::LaunchEmbeddedL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerAiwProvider::LaunchEmbeddedL(
- const CAiwGenericParamList& aInParamList,
- const MAiwNotifyCallback* aCallback )
- {
- FUNC_LOG;
-
- delete iService;
- iService = NULL;
- delete iInParamList;
- iInParamList = NULL;
- iCallback = NULL;
-
- // Copy the input params for the launcher and then do the launch
- iInParamList = CAiwGenericParamList::NewL();
- TInt count( aInParamList.Count() );
- for( TInt i( 0 ); i < count; ++i )
- {
- iInParamList->AppendL( aInParamList[ i ] );
- }
- iService = CAknLaunchAppService::NewL( GetAppUid(), this, iInParamList );
- iCallback = aCallback;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::IsStandaloneLaunch
-// ---------------------------------------------------------------------------
-//
-TBool CFileManagerAiwProvider::IsStandaloneLaunch(
- const CAiwGenericParamList& aInParamList )
- {
- FUNC_LOG;
-
- TBool ret( EFalse );
- TInt i( 0 );
- // Get sort method first
- const TAiwGenericParam* param = aInParamList.FindFirst(
- i, EGenericParamDir, EVariantTypeTInt32 );
- if ( i != KErrNotFound && param )
- {
- // Then, check if standalone is requested
- param = aInParamList.FindNext( i, EGenericParamDir, EVariantTypeTInt32 );
- if ( i != KErrNotFound && param )
- {
- ret = param->Value().AsTInt32();
- }
- }
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::LaunchStandaloneL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerAiwProvider::LaunchStandaloneL(
- const CAiwGenericParamList& aInParamList )
- {
- FUNC_LOG;
-
- TPtrC folderToOpen( KNullDesC );
- TInt sortMethod( KErrNotFound );
- TInt i( 0 );
- // Get folder path
- const TAiwGenericParam* param = aInParamList.FindFirst(
- i, EGenericParamDir, EVariantTypeDesC );
- if ( i != KErrNotFound && param )
- {
- folderToOpen.Set( param->Value().AsDes() );
- }
- // Get sort method
- param = aInParamList.FindFirst( i, EGenericParamDir, EVariantTypeTInt32 );
- if ( i != KErrNotFound && param )
- {
- sortMethod = param->Value().AsTInt32();
- }
-
- RWsSession wsSession;
- User::LeaveIfError( wsSession.Connect() );
- CleanupClosePushL( wsSession );
- TInt wgId( 0 );
- TUid appUid( GetAppUid() );
- if ( FindStandaloneAppL( wsSession, appUid, wgId ) )
- {
- // Bring the existing standalone app to foreground
- TApaTask apaTask( wsSession );
- apaTask.SetWgId( wgId );
- apaTask.BringToForeground();
- }
- else
- {
- // Start new standalone app
- TApaAppInfo appInfo;
- RApaLsSession apaLsSession;
- User::LeaveIfError( apaLsSession.Connect() );
- CleanupClosePushL( apaLsSession );
- User::LeaveIfError( apaLsSession.GetAppInfo( appInfo, appUid ) );
- CApaCommandLine* apaCmdLine = CApaCommandLine::NewLC();
- apaCmdLine->SetExecutableNameL( appInfo.iFullName );
- apaCmdLine->SetCommandL( EApaCommandOpen );
- apaCmdLine->SetDocumentNameL( folderToOpen );
- if ( sortMethod != KErrNotFound )
- {
- TBuf8< KMaxSortMethodStr > sortMethodStr;
- sortMethodStr.AppendNum( sortMethod );
- apaCmdLine->SetTailEndL( sortMethodStr );
- }
- TThreadId dummy;
- User::LeaveIfError( apaLsSession.StartApp( *apaCmdLine, dummy ) );
- CleanupStack::PopAndDestroy( apaCmdLine );
- CleanupStack::PopAndDestroy( &apaLsSession );
- }
- CleanupStack::PopAndDestroy( &wsSession );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerAiwProvider::IsFolderToOpenPathGiven
-// ---------------------------------------------------------------------------
-//
-TBool CFileManagerAiwProvider::IsFolderToOpenPathGiven(
- const CAiwGenericParamList& aInParamList )
- {
- FUNC_LOG;
-
- TBool ret( EFalse );
- TPtrC folderToOpen( KNullDesC );
- TInt i( 0 );
- // Ensure first that no files are defined, because only folder service
- // is offered by this provider
- const TAiwGenericParam* param = aInParamList.FindFirst(
- i, EGenericParamFile, EVariantTypeAny );
- if ( i == KErrNotFound )
- {
- // Get folder path and check it
- i = 0;
- param = aInParamList.FindFirst(
- i, EGenericParamDir, EVariantTypeDesC );
- if ( i != KErrNotFound && param )
- {
- folderToOpen.Set( param->Value().AsDes() );
- ret = IsValidFolderToOpenPath( folderToOpen );
- }
- }
- if ( !ret )
- {
- ERROR_LOG2(
- "CFileManagerAiwProvider::IsFolderToOpenPathGiven-ret=%d,given=%S",
- ret, &folderToOpen );
- }
- return ret;
- }
-
-// ======== GLOBAL FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// ImplementationGroupProxy.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
- {
- FUNC_LOG;
-
- aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
- return ImplementationTable;
- }
--- a/filemanager/bkupchecker/data/10205078.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2006 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: Registry info resource file for filemanagerbkupchecker
-*
-*/
-
-
-#include <ecom/registryinfov2.rh>
-
-// ---------------------------------------------------------
-//
-// filemanagerbkupchecker_registry_info
-// Registry info resource.
-//
-// ---------------------------------------------------------
-//
-RESOURCE REGISTRY_INFO filemanagerbkupchecker_registry_info
- {
- resource_format_version = RESOURCE_FORMAT_VERSION_2;
- dll_uid = 0x10205078;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = 0x1020d466; // Const for all rule based recognizers
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = 0x1020508A;
- version_no = 1;
- display_name = "filemanagerbkupchecker";
- default_data = "";
- opaque_data = "";
- }
- };
- }
- };
- }
--- a/filemanager/bkupchecker/data/filemanagerbkupchecker.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2006 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 file for filemanagerbkupchecker plugin
-*
-*/
-
-
-#include <eikon.rh>
-#include <filemanager.loc>
-#include "filemanagerbkupchecker.rh"
-
-NAME BKCH
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF { buf="bkupchecker"; }
-
-RESOURCE LBUF r_qtn_fmgr_backup_applaunch_prevented
- {
- txt = qtn_fmgr_backup_applaunch_prevented;
- }
-
-RESOURCE LBUF r_qtn_fmgr_restore_applaunch_prevented
- {
- txt = qtn_fmgr_restore_applaunch_prevented;
- }
-
-/**
-* The resources for UIDs.
-* This struct lists UIDs allowed to launch
-* during backup or restore
-*
-*/
-RESOURCE ALLOWEDUID alloweduids
- {
- uid=
- {
- 0x101F4CD2, // Application Shell Menu
- 0x100058B3, // Phone application
- 0x101F84EB, // File Manager
- 0x101F8681 // Video Telephone Application
- };
- }
-
-// End of File
--- a/filemanager/bkupchecker/inc/filemanagerbkupchecker.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2006 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: Declaration of CFileManagerBkupChecker class
-*
-*/
-
-
-#ifndef C_FILEMANAGERBKUPCHECKER_H
-#define C_FILEMANAGERBKUPCHECKER_H
-
-#include <aplaunchchecker.h>
-#include <connect/sbdefs.h>
-
-class CResourceFile;
-
-using namespace conn;
-
-/**
-* Plugin for application launch check
-*
-* This class implements rule based application check Plug-in API.
-* Application launch is restricted during backup and restore.
-*
-* @since S60 3.2
-*/
-NONSHARABLE_CLASS( CFileManagerBkupChecker ) : public CAppLaunchChecker
- {
-
-public:
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerBkupChecker* NewL();
-
- /**
- * Destructor
- */
- ~CFileManagerBkupChecker();
-
- /**
- * From CApplaunchChecker
- * Two-phased constructor.
- *
- * @since S60 3.2
- * @param aAppToLaunch Uid of application to launch
- * @param TApaTaskList List of applications running in device
- * @return Launch code for apparc
- */
- TAppLaunchCode virtual OkayToLaunchL(const TUid aAppToLaunch, TApaTaskList& aTaskList);
-
-private:
-
- CFileManagerBkupChecker();
-
- void ConstructL();
-
- TBool ValidateBUROngoing();
-
- static TInt ThreadFunction( TAny* ptr );
-
- void ThreadFunctionL();
-
-private: // data
-
- /**
- * Array of allowed uids to run.
- */
- RArray<TUint32> iUids;
-
- /**
- * Notes shown during backup or restore.
- * Own
- */
- HBufC* iBackupNote;
- HBufC* iRestoreNote;
-
- /**
- * Ongoing backup or restore.
- */
- TBool iIsBackup;
- };
-
-#endif // C_FILEMANAGERBKUPCHECKER_H
--- a/filemanager/bkupchecker/inc/filemanagerbkupchecker.rh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2006 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 for project filemanagerbkupchecker
-*
-*/
-
-
-// ---------------------------------------------------------
-// ALLOWEDUIDS
-//
-// This struct lists UIDs allowed to lauch
-// during backup or restore
-// ---------------------------------------------------------
-//
-STRUCT ALLOWEDUID
- {
- LONG uid[];
- }
-// End of File
--- a/filemanager/bkupchecker/src/filemanagerbkupchecker.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,460 +0,0 @@
-/*
-* Copyright (c) 2006-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: Rule based application launch during backup and restore.
-*
-*/
-
-
-// INCLUDES
-#include <bautils.h>
-#include <barsc2.h>
-#include <barsread2.h>
-#include <e32property.h>
-#include <data_caging_path_literals.hrh>
-#include <filemanagerbkupchecker.rsg>
-#include <AknGlobalNote.h>
-#include <AknSgcc.h>
-#include <ecom/implementationproxy.h>
-
-#include "FileManagerDebug.h"
-#include "filemanagerprivatepskeys.h"
-#include "FileManagerUID.h"
-#include "filemanagerbkupchecker.h"
-
-// CONSTANTS
-_LIT(KMsengRscFilePath,"filemanagerbkupchecker.rsc");
-_LIT(KThreadName,"BkupCheckerThread");
-
-#ifdef __SKIP_PS_IN_TEST_
-// Controlling of KUidBackupRestoreKey only possible with SID 0x10202D56
-// That is why we have to variate running of test code using testVariable
-extern TInt testVariable;
-#endif
-
-// Define the interface UIDs.
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY( 0x1020508A, CFileManagerBkupChecker::NewL )
- };
-
-
-// ======== LOCAL FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// ProcessExists
-// ---------------------------------------------------------------------------
-//
-static TBool ProcessExists( const TSecureId& aSecureId )
- {
- _LIT( KFindPattern, "*" );
- TFindProcess finder(KFindPattern);
- TFullName processName;
- while( finder.Next( processName ) == KErrNone )
- {
- RProcess process;
- if ( process.Open( processName ) == KErrNone )
- {
- TSecureId processId( process.SecureId() );
- process.Close();
- if( processId == aSecureId )
- {
- return ETrue;
- }
- }
- }
- return EFalse;
- }
-
-// ---------------------------------------------------------------------------
-// GetFileManagerBurStatus
-// ---------------------------------------------------------------------------
-//
-static TInt GetFileManagerBurStatus()
- {
- TInt status( EFileManagerBkupStatusUnset );
- TInt err( RProperty::Get(
- KPSUidFileManagerStatus, KFileManagerBkupStatus, status ) );
- if ( err != KErrNone )
- {
- status = EFileManagerBkupStatusUnset;
- }
- else if( status == EFileManagerBkupStatusBackup ||
- status == EFileManagerBkupStatusRestore )
- {
- const TSecureId KFileManagerUid(KFileManagerUID3);
- // Check file manager process just if bur state detected
- if( !ProcessExists( KFileManagerUid ) )
- {
- status = EFileManagerBkupStatusUnset;
- }
- }
-
- INFO_LOG2( "GetFileManagerBurStatus, status %d, err %d", status, err )
-
- return status;
- }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// ImplementationGroupProxy.
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
- {
- aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
- return ImplementationTable;
- }
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CFileManagerBkupChecker::CFileManagerBkupChecker
-//
-// ---------------------------------------------------------------------------
-//
-CFileManagerBkupChecker::CFileManagerBkupChecker()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerBkupChecker::NewL
-//
-// ---------------------------------------------------------------------------
-//
-CFileManagerBkupChecker* CFileManagerBkupChecker::NewL()
- {
- CFileManagerBkupChecker* self = new (ELeave) CFileManagerBkupChecker();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerBkupChecker::ConstructL
-//
-// ---------------------------------------------------------------------------
-//
-void CFileManagerBkupChecker::ConstructL()
- {
- FUNC_LOG
- RFs fsSession;
-
- // Connect to File Server
- User::LeaveIfError(fsSession.Connect());
- CleanupClosePushL(fsSession);
-
- // Get resource drive from dll location
- TFileName dllFileName;
- Dll::FileName( dllFileName );
- TParsePtrC dllParse( dllFileName );
- TFileName fileName;
-#ifdef __SKIP_PS_IN_TEST_
- _LIT(KDriveZ,"Z:");
- fileName.Copy( KDriveZ );
-#else
- // Drive is parsed normally from dll-location in order to support
- // installing/patching of component.
- fileName.Copy( dllParse.Drive() );
-#endif
- fileName.Append( KDC_RESOURCE_FILES_DIR );
- fileName.Append( KMsengRscFilePath );
- BaflUtils::NearestLanguageFile( fsSession, fileName );
- //
- TEntry entry;
- User::LeaveIfError( fsSession.Entry( fileName, entry ) );
- // if file does not exist, leaves with KErrNotFound
-
- CResourceFile *resFile;
- resFile = CResourceFile::NewLC( fsSession, fileName, 0, entry.iSize );
-
- resFile->ConfirmSignatureL();
-
- /////////////////////////////////////////////////////////
- //Initialize white-list of applications from resource file
-
- RResourceReader theReader;
- theReader.OpenLC( resFile, ALLOWEDUIDS );
-
- //the first WORD contains the number of elements in the resource
- TInt numberOfUIDs = theReader.ReadInt16L();
-
- for( TInt i = 0; i < numberOfUIDs; i++)
- {
- TUint32 uid = theReader.ReadInt32L();
- iUids.Append(uid);
- INFO_LOG1( "CFileManagerBkupChecker::ConstructL, Application 0x%x added in white-list", iUids[i] )
- }
- CleanupStack::PopAndDestroy( &theReader );
-
- //Initialize information note texts from resource file
- theReader.OpenLC( resFile, R_QTN_FMGR_BACKUP_APPLAUNCH_PREVENTED );
- iBackupNote = theReader.ReadHBufCL();
- CleanupStack::PopAndDestroy( &theReader );
-
- theReader.OpenLC( resFile, R_QTN_FMGR_RESTORE_APPLAUNCH_PREVENTED );
- iRestoreNote = theReader.ReadHBufCL();
- CleanupStack::PopAndDestroy( &theReader );
-
- CleanupStack::PopAndDestroy( resFile );
- CleanupStack::PopAndDestroy( &fsSession );
- }
-
-
-// ---------------------------------------------------------------------------
-// CFileManagerBkupChecker::~CFileManagerBkupChecker
-//
-// ---------------------------------------------------------------------------
-//
-CFileManagerBkupChecker::~CFileManagerBkupChecker()
- {
- delete iBackupNote;
- delete iRestoreNote;
- iUids.Close();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerBkupChecker::OkayToLaunchL
-//
-// ---------------------------------------------------------------------------
-//
-CAppLaunchChecker::TAppLaunchCode CFileManagerBkupChecker::OkayToLaunchL(const TUid aAppToLaunch,
- TApaTaskList& /* aTaskList */)
- {
- FUNC_LOG
- CAppLaunchChecker::TAppLaunchCode launch = CAppLaunchChecker::EAppLaunchIndifferent;
-
- TInt burState( 0 );
- TInt burErr = RProperty::Get( KUidSystemCategory, KUidBackupRestoreKey, burState );
-
- if(burErr == KErrNone)
- {
- INFO_LOG2
- (
- "CFileManagerBkupChecker::OkayToLaunchL, Application 0x%x, KUidBackupRestoreKey status %d",
- aAppToLaunch.iUid, burState
- )
-
- TBURPartType burType = static_cast< TBURPartType >( burState & KBURPartTypeMask );
- TInt fmBurStatus( GetFileManagerBurStatus() );
-
- // We can't rely on just p&s value. Additional check is carried out in ValidateBUROngoing.
-#ifdef __SKIP_PS_IN_TEST_
- // Run additional validation check in test mode just to cover all use cases
- ValidateBUROngoing();
-#else
- if( fmBurStatus == EFileManagerBkupStatusBackup ||
- fmBurStatus == EFileManagerBkupStatusRestore ||
- ( ( burType == EBURBackupPartial || burType == EBURBackupFull ||
- burType == EBURRestorePartial || burType == EBURRestoreFull ) &&
- ValidateBUROngoing() ) )
-#endif
- {
- launch = CAppLaunchChecker::EAppLaunchDecline;
-
- TInt count( iUids.Count() );
-
- for( TInt i = 0; i < count; i++ )
- {
- if(iUids[i] == aAppToLaunch.iUid)
- {
- INFO_LOG1
- (
- "CFileManagerBkupChecker::OkayToLaunchL, Application 0x%x in white-list",
- iUids[i]
- )
- launch = CAppLaunchChecker::EAppLaunchIndifferent;
- break;
- }
- }
-
- if( launch == CAppLaunchChecker::EAppLaunchDecline )
- {
- INFO_LOG1
- (
- "CFileManagerBkupChecker::OkayToLaunchL, Application 0x%x launch prevented",
- aAppToLaunch.iUid
- )
-
- iIsBackup = ( fmBurStatus == EFileManagerBkupStatusBackup ||
- burType == EBURBackupPartial ||
- burType == EBURBackupFull );
-
- RThread thread;
-
- TInt err = thread.Create(
- KThreadName, ThreadFunction, KDefaultStackSize, NULL, this );
-
- INFO_LOG1("CFileManagerBkupChecker::OkayToLaunchL, thread err %d", err)
-
- if ( err == KErrNone )
- {
- TRequestStatus status;
-
- thread.Rendezvous( status );
- thread.Resume();
-
- // Wait until thread has copy of note text.
- User::WaitForRequest( status );
-
- INFO_LOG1("CFileManagerBkupChecker::OkayToLaunchL, thread exit %d", status.Int())
- }
-
- thread.Close();
- }
- }
- }
-
- return launch;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerBkupChecker::ValidateBUROngoing
-//
-// ---------------------------------------------------------------------------
-//
-TBool CFileManagerBkupChecker::ValidateBUROngoing()
- {
- TBool err(EFalse);
- _LIT( KFindPattern, "*" );
- const TSecureId KSBEUid(0x10202D56);
- const TSecureId KFileManagerUid(KFileManagerUID3);
- const TSecureId KPCConnectivityUid(0x101F99F6);
- TBool serverRunning(EFalse);
- TBool client1Running(EFalse);
- TBool client2Running(EFalse);
-
- // If SBE panics, File Manager and PC-connectivity server are supposed to
- // re-establish connection to server and set BUR-mode back to normal.
- // If SBE client panics, server is supposed to set BUR-mode back to normal.
- // However, it might be reasonable to validate also that BUR client is
- // up and running. E.g. if both server and client panic in sequence, BUR
- // state might stay as backup or restore and we never let application run.
- // We have to search by UID, because process can have localized name
- TFindProcess finder( KFindPattern );
- TFullName processName;
-
- while( finder.Next( processName ) == KErrNone )
- {
- RProcess process;
- const TInt r = process.Open( processName );
- if ( r == KErrNone )
- {
- const TSecureId processId = process.SecureId();
- process.Close();
-
- if( processId == KSBEUid )
- {
- serverRunning = ETrue;
- }
- else if( processId == KFileManagerUid )
- {
- client1Running = ETrue;
- }
- else if( processId == KPCConnectivityUid )
- {
- client2Running = ETrue;
- }
- }
- }
-
- INFO_LOG2("CFileManagerBkupChecker::ValidateBUROngoing, %x status %d",
- KSBEUid.iId, serverRunning);
- INFO_LOG2("CFileManagerBkupChecker::ValidateBUROngoing, %x status %d",
- KFileManagerUid.iId, client1Running);
- INFO_LOG2("CFileManagerBkupChecker::ValidateBUROngoing, %x status %d",
- KPCConnectivityUid.iId, client2Running);
-
- if( serverRunning && (client1Running || client2Running) )
- {
- err = ETrue;
- }
-
- return err;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBkupChecker::ThreadFunction()
-//
-// ----------------------------------------------------------------------------
-TInt CFileManagerBkupChecker::ThreadFunction( TAny* ptr )
- {
- FUNC_LOG
-
- CFileManagerBkupChecker* self =
- static_cast< CFileManagerBkupChecker* >( ptr );
-
- CTrapCleanup* cleanupStack = CTrapCleanup::New();
- if ( !cleanupStack )
- {
- return KErrNoMemory;
- }
-
- TRAPD( err, self->ThreadFunctionL() );
-
- INFO_LOG1("CFileManagerBkupChecker::ThreadFunction, ThreadFunctionL err %d", err)
-
- delete cleanupStack;
-
- return err;
- }
-
-// ----------------------------------------------------------------------------
-// CFileManagerBkupChecker::ThreadFunctionL()
-//
-// ----------------------------------------------------------------------------
-void CFileManagerBkupChecker::ThreadFunctionL( )
- {
- FUNC_LOG
-
- HBufC* note = NULL;
-
-#ifdef __SKIP_PS_IN_TEST_
- if(!testVariable)
- {
- note = iBackupNote->AllocLC();
- }
- else
- {
- note = iRestoreNote->AllocLC();
- }
-#else
- if( iIsBackup )
- {
- note = iBackupNote->AllocLC();
- }
- else
- {
- note = iRestoreNote->AllocLC();
- }
-#endif
-
- // Once we have locally allocated note string, we can signal main thread.
- RThread::Rendezvous( KErrNone );
-
- RAknUiServer aknSrv;
- TInt err( aknSrv.Connect() );
- INFO_LOG1("CFileManagerBkupChecker::ThreadFunctionL, connect err %d", err)
- User::LeaveIfError( err );
- CleanupClosePushL( aknSrv );
-
- aknSrv.ShowGlobalNoteL( *note, EAknGlobalInformationNote );
-
- CleanupStack::PopAndDestroy( &aknSrv );
- CleanupStack::PopAndDestroy( note );
- }
-
--- a/filemanager/bkupengine/inc/BKupEngine.rh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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:
-* This file contains declarations for resources.
-* The file can be included only in resource file.
-*
-*
-*/
-
-
-// INCLUDES
-#include <bldvariant.hrh>
-
-// STRUCTURE DEFINITIONS
-
-// ---------------------------------------------------------
-// BACKUPITEM
-// Defines a file or folder to be backed up
-// Note! Remember to use a trailing backslash!
-// ---------------------------------------------------------
-//
-STRUCT BACKUPITEM
- {
- LTEXT item_path;
- WORD item_flags;
- }
-
-
-
-// ---------------------------------------------------------
-// MMC_SECURE_BACKUP_DRIVE_LIST
-//
-// Defines an array of drive numbers, starting at 0
-// (EDriveA), to a maximum of 25 (EDriveZ)
-// which are included in a backup/restore to/from MMC
-// operation
-//
-// See TMMCDriveNumber and TBkupDriveCategory (BkupEngine.hrh)
-// See TMMCScBkupOwnerDataType in TMMCScBkupOwnerDataType.hrh
-// ---------------------------------------------------------
-//
-STRUCT MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- {
- BYTE drive; // See TMMCDriveNumber and TBkupDriveCategory (BkupEngine.hrh)
- BYTE type; // See TMMCScBkupOwnerDataType (TMMCScBkupOwnerDataType.h)
- }
-
-
-
-// ---------------------------------------------------------
-// MMC_SECURE_BACKUP_DRIVES_AND_OPERATIONS
-//
-// Defines an array of drive numbers and operations.
-// The drive starts at 0 (EDriveA), to a maximum of 25 (EDriveZ)
-// which are included in a backup/restore to/from MMC
-// operation. Each drive should include a number of associated
-// operations. For example, for drive C:\ we wish to carry
-// out all SBE backup/restore ops. For MMC we wish to only
-// back up & restore package data (Required to ensure that
-// hashes for MMC-based binaries are recreated on C:\ after
-// the internal drive is formatted & a restore is performed).
-//
-// ---------------------------------------------------------
-//
-STRUCT MMC_SECURE_BACKUP_DRIVES_AND_OPERATIONS
- {
- LEN BYTE STRUCT drivesAndOperations[]; // SEE MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
- }
-
-// ---------------------------------------------------------
-// BACKUPCATEGORY
-// Defines a category, name for archive and uids,
-// from which backup category consists of
-// ---------------------------------------------------------
-//
-STRUCT BACKUPCATEGORY
- {
- LONG category;
- LTEXT archive_name;
- LONG special_flags;
- LONG exclude_special_flags;
- LONG uids[];
- LONG exclude_uids[];
- }
-
-
-// ---------------------------------------------------------
-// BACKUPCATEGORY
-// Defines a category, name for archive and uids,
-// from which backup category consists of
-// ---------------------------------------------------------
-//
-STRUCT BACKUPCATEGORYARRAY
- {
- STRUCT backupcategory[];
- }
-
-// End of File
--- a/filemanager/bkupengine/inc/BkupEngine.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* Copyright (c) 2004-2007 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:
-* FileManager / FileManagerBkupEngine constants.
-*
-*/
-
-
-
-#ifndef __BAENGINE_HRH__
-#define __BAENGINE_HRH__
-
-// Partial backup categories bitmask values
-enum MAEngineBackupCategories
- {
- EBUCatSettings = 0x1,
- EBUCatMessages = 0x2,
- EBUCatContacts = 0x4,
- EBUCatCalendar = 0x8,
- EBUCatBookmarks = 0x10,
- EBUCatUserFiles = 0x20,
- EBUCatAllInOne = 0x8000000,
- EBUCatAllSeparately = 0x7FFFFFF
- // Set as 0xFFFFFFF (EBUCatAllInOne+EBUCatAllSeparately) if archive containing
- // data from all data owners needs to be created.
- };
-
-// Bitmask values for special ruling of which category data owner belongs to
-#define EBUCatSpecNone 0x0
-#define EBUCatSpecSystem 0x1
-#define EBUCatSpecJava 0x2
-#define EBUCatSpecPublic 0x4
-#define EBUCatSpecAll 0x8
-
-#ifndef RD_MULTIPLE_DRIVE
-
-// Drive list enumeration - see TDriveNumber
-// (these must match F32's TDriveNumber exactly)
-enum TMMCDriveNumber
- {
- EMMCDriveNumberA = 0,
- EMMCDriveNumberB,
- EMMCDriveNumberC,
- EMMCDriveNumberD,
- EMMCDriveNumberE,
- EMMCDriveNumberF,
- EMMCDriveNumberG,
- EMMCDriveNumberH,
- EMMCDriveNumberI,
- EMMCDriveNumberJ,
- EMMCDriveNumberK,
- EMMCDriveNumberL,
- EMMCDriveNumberM,
- EMMCDriveNumberN,
- EMMCDriveNumberO,
- EMMCDriveNumberP,
- EMMCDriveNumberQ,
- EMMCDriveNumberR,
- EMMCDriveNumberS,
- EMMCDriveNumberT,
- EMMCDriveNumberU,
- EMMCDriveNumberV,
- EMMCDriveNumberW,
- EMMCDriveNumberX,
- EMMCDriveNumberY,
- EMMCDriveNumberZ
- };
-
-#else // RD_MULTIPLE_DRIVE
-
-// Defines drive caterories for multiple drives to setup backup sources and restore targets
-#define EBkupDeviceMemories 0x1
-#define EBkupInternalMassStorages 0x2
-#define EBkupExternalMassStorages 0x4
-
-#endif // RD_MULTIPLE_DRIVE
-
-#endif // __BAENGINE_HRH__
-
-// End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupArchive.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/*
-* Copyright (c) 2005-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: Declaration of CMMCScBkupArchive
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPARCHIVE_H__
-#define __CMMCSCBKUPARCHIVE_H__
-
-// System includes
-#include <f32file.h>
-#include <babitflags.h>
-
-// Classes referenced
-class MMMCScBkupDriver;
-class CMMCScBkupArchiveHeader;
-class CMMCScBkupArchiveFooter;
-class MMMCScBkupProgressObserver;
-class CMMCScBkupArchiveDataManager;
-class MMMCScBkupArchiveDataInterface;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupArchive) : public CBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupArchive* NewL( RFs& aFsSession, MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupDriver& aDriver, TBitFlags aCategory );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupArchive();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupArchive( RFs& aFsSession, MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupDriver& aDriver, TBitFlags aCategory );
-
- /**
- *
- */
- void ConstructL();
-
- public: // API
-
- /**
- *
- */
- void OpenForReadingL(const TDesC& aName);
-
- /**
- *
- */
- void OpenForWritingL(const TDesC& aName);
-
- /**
- *
- */
- void RestoreOldArchive();
-
- /**
- *
- */
- void DeleteOldArchive();
-
- /**
- *
- */
- void Close( TInt aError );
-
- /**
- *
- */
- CMMCScBkupArchiveHeader& Header() const;
-
- /**
- *
- */
- CMMCScBkupArchiveFooter& Footer() const;
-
- /**
- *
- */
- MMMCScBkupArchiveDataInterface& ADI() const;
-
- /**
- *
- */
- static TBool ValidArchiveForRestoreL( RFs& aFsSession, const TDesC& aFileName );
-
- /**
- *
- */
- TBitFlags Category() const { return iCategory; }
-
- private: // Internal enumerations
-
- /**
- *
- */
- enum TMode
- {
- EModeUninitialised = 0,
- //
- EModeReading,
- EModeWriting
- };
-
- private: // Internal methods
-
- /**
- *
- */
- TInt PrepareToOverwrite( const TDesC& aFile );
-
- /**
- *
- */
- void SetMode(TMode aMode);
-
- /**
- *
- */
- void PrepareObjectsL();
-
- /**
- *
- */
- inline TMode Mode() const { return iMode; }
-
- private: // Member data
-
- //
- RFs& iFsSession;
- //
- RFile64 iArchiveFile;
- //
- MMMCScBkupProgressObserver& iProgressManager;
- //
- MMMCScBkupDriver& iDriver;
- //
- TMode iMode;
- //
- CMMCScBkupArchiveDataManager* iDataManager;
- //
- CMMCScBkupArchiveHeader* iHeader;
- //
- CMMCScBkupArchiveFooter* iFooter;
- //
- HBufC* iArchiveFileName;
- //
- HBufC* iOldArchiveFileName;
- //
- TBitFlags iCategory;
- };
-
-
-
-
-#endif // __CMMCSCBKUPARCHIVE_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupArchiveDataManager.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration of CMMCScBkupArchiveDataManager
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPARCHIVEDATAMANAGER_H__
-#define __CMMCSCBKUPARCHIVEDATAMANAGER_H__
-
-// System includes
-#include <f32file.h>
-#include <s32strm.h>
-
-// User includes
-#include "CMMCScBkupBufferManagers.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-#include "TMMCScBkupArchiveVector.h"
-#include "RMMCScBkupArchiveStreams.h"
-#include "MMCScBkupOperations.h"
-#include "MMCScBkupConfig.h"
-
-// Classes referenced
-class CEZCompressor;
-class CEZDecompressor;
-class RMMCScBkupArchiveBuf;
-class MMMCScBkupProgressObserver;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupArchiveDataManager) : public CActive, public MMMCScBkupArchiveDataInterface
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupArchiveDataManager* NewL( RFs& aFsSession, RFile64& aFile, MMMCScBkupProgressObserver& aProgressManager );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupArchiveDataManager();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupArchiveDataManager( RFs& aFsSession, RFile64& aFile, MMMCScBkupProgressObserver& aProgressManager );
-
- /**
- *
- */
- void ConstructL();
-
- public: // API
-
- /**
- * Leaves on error, returns offset
- */
- TInt CurrentOffsetL() const;
-
- /**
- * Returns error or offset
- */
- TInt CurrentOffset() const;
-
- private: // For RMMCScBkupArchiveBuf only
-
- /**
- *
- */
- void SetCurrentVector(const TMMCScBkupArchiveVector& aInfo);
-
-
- private: // From MMMCScBkupArchiveDataInterface
- RFs& ADIFsSession() const;
- RFile64& ADIRawArchiveFile() const;
- //
- const TMMCScBkupArchiveVector& ADICurrentArchiveVectorInfo() const;
- const TMMCScBkupArchiveVector& ADIOverallArchiveVectorInfo() const;
- //
- RWriteStream& ADIWriteStreamUncompressedLC( TInt aPos );
- RReadStream& ADIReadStreamUncompressedLC( TInt aPos );
- //
- const TMMCScBkupArchiveVector& ADIWriteL( const TDesC8& aData );
- const TMMCScBkupArchiveVector& ADIReadL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo );
- //
- void ADIWriteFileL( const TDesC& aSourceFileName, TRequestStatus& aObserver );
- void ADIReadFileL( const TDesC& aDestinationFileName, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus );
- //
- void ADIWriteCompressedL( const TDesC8& aData, TRequestStatus& aObserver );
- void ADIReadDecompressedL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus ) ;
- //
- void ADIAsynchronousCancel();
- void ADIResetResources(TMMCScBkupOperationType aType);
-#ifdef RD_FILE_MANAGER_BACKUP
- void ADIActivateCrcCalculation(TBool aType) { iCrcCalcActivated = aType; }
- TUint32 ADIArchiveCrc() { return iCrc; }
-#endif
-
-
- private: // Internal enumerations
-
- /**
- *
- */
- enum TOperation
- {
- EOperationIdle = 0,
- EOperationCompressing,
- EOperationDecompressing
- };
-
- private: // Internal methods
-
- /**
- *
- */
- void EnsureCompressorExistsL(MEZBufferManager& aBufferManager);
-
- /**
- *
- */
- void EnsureDecompressorExistsL(MEZBufferManager& aBufferManager);
-
- /**
- *
- */
- void SetObserver(TRequestStatus& aStatus);
-
- /**
- *
- */
- void CompleteSelf(TInt aCompletionCode = KErrNone);
-
- /**
- *
- */
- void CompleteObserver(TInt aCompletionCode = KErrNone);
-
- /**
- *
- */
- void SetOperation(TOperation aOperation);
-
-#ifdef RD_FILE_MANAGER_BACKUP
- /**
- *
- */
- void CalculateCrc( const TAny* aPtr,TInt aLength );
-#endif
-
-
- private: // From CActive
- void RunL();
- void DoCancel();
- TInt RunError(TInt aError);
-
- private: // Member data
-
- // Owned externally:
- //
- RFs& iFsSession;
- //
- RFile64& iFile;
- //
- MMMCScBkupProgressObserver& iProgressManager;
- //
- TRequestStatus* iObserverStatus;
-
- // Owned by this object
- //
- TOperation iOperation;
- //
- CMMCScBkupBufferManagerBase* iBufferManager;
- //
- CEZCompressor* iCompressor;
- //
- CEZDecompressor* iDecompressor;
- //
- TMMCScBkupArchiveVector iCurrentVectorInfo;
- //
- TMMCScBkupArchiveVector iOverallArchiveVectorInfo;
- //
- RMMCScBkupArchiveWriteStream iWriteStream;
- //
- RMMCScBkupArchiveReadStream iReadStream;
-#ifdef RD_FILE_MANAGER_BACKUP
- //
- TBool iCrcCalcActivated;
- //
- TUint32 iCrc;
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- TUint32 iTotalTickCount;
-#endif
-#endif // RD_FILE_MANAGER_BACKUP
-
- friend class RMMCScBkupArchiveBuf;
- };
-
-
-
-
-#endif // __CMMCSCBKUPARCHIVEDATAMANAGER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupArchiveFooter.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration of CMMCScBkupArchiveFooter
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPARCHIVEFOOTER_H__
-#define __CMMCSCBKUPARCHIVEFOOTER_H__
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "CMMCScBkupIndexBase.h"
-#include "RMMCScBkupPointerArray.h"
-#include "TMMCScBkupDriveAndSize.h"
-
-// Classes referenced
-class MMMCScBkupDriver;
-class MMMCScBkupArchiveDataInterface;
-class CMMCScBkupIndexRegistrationData;
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupArchiveFooter) : public CBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupArchiveFooter* NewL( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupArchiveFooter();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupArchiveFooter( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver );
-
- /**
- *
- */
- void ConstructL();
-
- public: // API
-
- /**
- *
- */
- CMMCScBkupIndexBase& IndexByType( TMMCScBkupOwnerDataType aType );
-
- /**
- *
- */
- CMMCScBkupIndexBase* IndexByTypeOrNull( TMMCScBkupOwnerDataType aType );
-
- public: // Store/Restore
-
- /**
- *
- */
- void StoreL();
-
- /**
- *
- */
- void RestoreL( TInt aCalculatedFooterOffsetWithinArchive );
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- private: // Member data
-
- //
- MMMCScBkupArchiveDataInterface& iDataInterface;
- //
- MMMCScBkupDriver& iDriver;
- //
- RMMCScBkupPointerArray< CMMCScBkupIndexBase > iIndicies;
- };
-
-
-
-
-#endif // __CMMCSCBKUPARCHIVEFOOTER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupArchiveHeader.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration of CMMCScBkupArchiveHeader
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPARCHIVEHEADER_H__
-#define __CMMCSCBKUPARCHIVEHEADER_H__
-
-// System includes
-#include <f32file.h>
-#include <babitflags.h>
-
-// User includes
-#include "MMCScBkupArchiveFlags.h"
-
-// Classes referenced
-class MMMCScBkupDriver;
-class MMMCScBkupArchiveDataInterface;
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupArchiveHeader) : public CBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupArchiveHeader* NewL( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupArchiveHeader();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupArchiveHeader( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver );
-
- /**
- *
- */
- void ConstructL();
-
- public: // API
-
- /**
- *
- */
- void StoreL(TBitFlags aCategory);
-
- /**
- *
- */
- void RestoreL();
-
- public: // For Archive Utils
-
- /**
- *
- */
- inline void SetCheckedUid( const TCheckedUid& aCheckedUid ) { iCheckedUid = aCheckedUid; }
-
- /**
- *
- */
- inline const TCheckedUid& CheckedUid() const { return iCheckedUid; }
-
- /**
- *
- */
- inline void SetVersion( const TVersion& aVersion ) { iVersion = aVersion; }
-
- /**
- *
- */
- inline const TVersion& Version() const { return iVersion; }
-
- /**
- *
- */
- inline void SetFooterLength( TInt aLength ) { iFooterLength = aLength; }
-
- /**
- *
- */
- inline TInt FooterLength() const { return iFooterLength; }
-
- /**
- *
- */
- void SetPhoneModelIdentifierL( const TDesC8& aModel );
-
- /**
- *
- */
- inline const TDesC8& PhoneModelIdentifier() const { return *iPhoneModelIdentifier; }
-
- /**
- *
- */
- inline void SetArchiveFlags( TUint32 aFlagsValue ) { iArchiveFlags.SetValue( aFlagsValue ); }
-
- /**
- *
- */
- inline const TBitFlags32& ArchiveFlags() const { return iArchiveFlags; }
-
- private: // Member data
-
- //
- MMMCScBkupArchiveDataInterface& iDataInterface;
- //
- MMMCScBkupDriver& iDriver;
- //
- TCheckedUid iCheckedUid;
- //
- TVersion iVersion;
- //
- TInt iFooterLength;
- //
- HBufC8* iPhoneModelIdentifier;
- //
- TBitFlags32 iArchiveFlags;
-
- };
-
-
-
-
-#endif // __CMMCSCBKUPARCHIVEHEADER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupArchiveInfo.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration of CMMCScBkupArchiveInfo
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPARCHIVEINFO_H__
-#define __CMMCSCBKUPARCHIVEINFO_H__
-
-// System includes
-#include <f32file.h>
-#include <babitflags.h>
-#include <barsread.h>
-
-#include "CMMCScBkupFileInfo.h"
-
-/**
-* Class for encapsulating category specific information
-*
-* @since 3.2
-*/
-NONSHARABLE_CLASS(CMMCScBkupArchiveInfo) : public CBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupArchiveInfo* NewL( TResourceReader& aReader );
-
- /**
- * Static constructor
- */
- static CMMCScBkupArchiveInfo* NewL( const TEntry& aEntry );
-
- /**
- * Static constructor
- */
- static CMMCScBkupArchiveInfo* NewLC( const TEntry& aEntry );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupArchiveInfo();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupArchiveInfo();
-
- /**
- * C++ default constructor
- */
- //CMMCScBkupArchiveInfo( const TEntry& aEntry );
-
- /**
- *
- */
- void ConstructL( const TEntry& aEntry );
-
- public: // API - Setters
-
- /**
- *
- */
- void SetTargetDrive( TDriveUnit aDrive ) { iTargetDrive = aDrive; }
-
- /**
- *
- */
- void SetCategory(TBitFlags aCategories) { iCategory = aCategories; }
-
- /**
- *
- */
- void SetSpecialFlags(TBitFlags aFlags) { iSpecialFlags = aFlags; }
-
- /**
- *
- */
- void SetExcludedSpecialFlags(TBitFlags aFlags) { iExcludedSpecialFlags = aFlags; }
-
- /**
- *
- */
- void SetSIDs( RArray<TSecureId>& aSIDs );
-
- /**
- *
- */
- void SetExcludedSIDs( RArray<TSecureId>& aExcludedSIDs );
-
- public: // API - Getters
-
- /**
- *
- */
- IMPORT_C TBitFlags Category() const;
-
- /**
- *
- */
- IMPORT_C const TDesC& FileName() const;
-
- /**
- *
- */
- IMPORT_C const TTime& DateTime() const;
-
- /**
- *
- */
- IMPORT_C TDriveNumber Drive() const;
-
- /**
- *
- */
- TBitFlags SpecialFlags() const { return iSpecialFlags; }
-
- /**
- *
- */
- TBitFlags ExcludedSpecialFlags() const { return iExcludedSpecialFlags; }
-
- /**
- *
- */
- const RArray<TSecureId>& SIDs( TBitFlags aCategory ) const;
-
- /**
- *
- */
- const RArray<TSecureId>& ExcludedSIDs( TBitFlags aCategory ) const;
-
- private: // Member data
-
- //
- TDriveUnit iTargetDrive;
- //
- TBitFlags iCategory;
- //
- TBitFlags iSpecialFlags;
- //
- TBitFlags iExcludedSpecialFlags;
- //
- CMMCScBkupFileInfo* iFileInfo;
- //
- RArray<TSecureId> iSecureIds;
- //
- RArray<TSecureId> iExcludedSecureIds;
- };
-
-
-
-
-#endif // __CMMCSCBKUPARCHIVEINFO_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupBufferManagers.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,428 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration of CMMCScBkupBufferManagerBase
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPBUFFERMANAGERS_H__
-#define __CMMCSCBKUPBUFFERMANAGERS_H__
-
-// User includes
-#include <e32std.h>
-#include <e32cmn.h>
-#include <f32file.h>
-#include <ezbufman.h>
-
-// User includes
-#include "TMMCScBkupArchiveVector.h"
-
-// Classes referenced
-class MMMCScBkupArchiveDataInterface;
-class CMMCScBkupDataStrategy;
-class MMMCScBkupProgressObserver;
-
-// Constants
-const TInt KScBkupDefaultBufferSize = 0x4000;
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupBufferManagerBase) : public CBase, public MEZBufferManager
- {
- public: // Enumerations
-
- /**
- *
- */
- enum TType
- {
- ETypeDescriptorToArchive = 0,
- ETypeFileToArchive,
- ETypeArchiveToDescriptor,
- ETypeArchiveToFile
- };
-
- public: // Construct / destruct
-
- /**
- *
- */
- static CMMCScBkupBufferManagerBase* NewByTypeL( TType aType, MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI, TAny* aParam1 = NULL, TAny* aParam2 = NULL );
-
- /**
- *
- */
- ~CMMCScBkupBufferManagerBase();
-
- protected: // Internal construct
-
- /**
- *
- */
- CMMCScBkupBufferManagerBase( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI, TType aType );
-
- /**
- *
- */
- virtual void ConstructL( TInt aBufferSize = KScBkupDefaultBufferSize );
-
- public: // Framework API
-
- /**
- *
- */
- inline TType Type() const { return iType; }
-
- /**
- *
- */
- inline const TMMCScBkupArchiveVector& Info() const { return iInfo; }
-
- /**
- *
- */
- inline TMMCScBkupArchiveVector& Info() { return iInfo; }
-
- /**
- *
- */
- virtual void InitializeL( TAny* aParam1 = NULL, TAny* aParam2 = NULL ) = 0;
-
- protected: // Internal methods
-
- /**
- *
- */
- inline TPtr8& WriteBuffer() { return iBufferPointer; }
-
- /**
- *
- */
- inline const TDesC8& DataView() const { return *iBuffer; }
-
- /**
- *
- */
- inline MMMCScBkupProgressObserver& ProgressManager() const { return iProgressManager; }
-
- /**
- *
- */
- inline MMMCScBkupArchiveDataInterface& ADI() const { return iADI; }
-
- /**
- *
- */
- void WriteToArchiveAndUpdateStatsL( const TDesC8& aData );
-
- private:
-
- /**
- *
- */
- TType iType;
-
- /**
- *
- */
- HBufC8* iBuffer;
-
- /**
- *
- */
- TPtr8 iBufferPointer;
-
- /**
- *
- */
- MMMCScBkupProgressObserver& iProgressManager;
-
- /**
- *
- */
- MMMCScBkupArchiveDataInterface& iADI;
-
- /**
- *
- */
- TMMCScBkupArchiveVector iInfo;
- };
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupBufferManagerDescriptorToArchive) : public CMMCScBkupBufferManagerBase
- {
- private:
-
- /**
- *
- */
- CMMCScBkupBufferManagerDescriptorToArchive( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
-
- /**
- *
- */
- static CMMCScBkupBufferManagerDescriptorToArchive* NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
-
- public: // From CMMCScBkupBufferManagerBase
- void InitializeL(TAny* aParam1, TAny* aParam2);
-
- private: // From MEZBufferManager
- void InitializeL( CEZZStream& aZStream );
- void NeedInputL( CEZZStream& aZStream );
- void NeedOutputL( CEZZStream& aZStream );
- void FinalizeL( CEZZStream& aZStream );
-
- private: // Data members
-
- /**
- *
- */
- TPtrC8 iSource;
-
- friend class CMMCScBkupBufferManagerBase;
- };
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupBufferManagerFileToArchive) : public CMMCScBkupBufferManagerBase
- {
- public:
-
- /**
- *
- */
- ~CMMCScBkupBufferManagerFileToArchive();
-
- private:
-
- /**
- *
- */
- CMMCScBkupBufferManagerFileToArchive( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
-
- /**
- *
- */
- void ConstructL(const TDesC& aFileName);
-
- /**
- *
- */
- static CMMCScBkupBufferManagerFileToArchive* NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
-
- public: // From CMMCScBkupBufferManagerBase
- void InitializeL(TAny* aParam1, TAny* aParam2);
-
- private: // From MEZBufferManager
- void InitializeL( CEZZStream& aZStream );
- void NeedInputL( CEZZStream& aZStream );
- void NeedOutputL( CEZZStream& aZStream );
- void FinalizeL( CEZZStream& aZStream );
-
- private: // Data members
-
- /**
- *
- */
- CMMCScBkupDataStrategy* iReadStrategy;
-
- /**
- *
- */
- HBufC8* iOutput;
-
- /**
- *
- */
- TPtr8 iOutputPointer;
-
- /**
- * Useful for debugging
- */
- TPtrC iFileName;
-
- friend class CMMCScBkupBufferManagerBase;
- };
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupBufferManagerArchiveToDescriptor) : public CMMCScBkupBufferManagerBase
- {
- public:
-
- /**
- *
- */
- ~CMMCScBkupBufferManagerArchiveToDescriptor();
-
- private:
-
- /**
- *
- */
- CMMCScBkupBufferManagerArchiveToDescriptor( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
-
- /**
- *
- */
- static CMMCScBkupBufferManagerArchiveToDescriptor* NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
-
- public: // From CMMCScBkupBufferManagerBase
- void InitializeL(TAny* aParam1, TAny* aParam2);
-
- private: // From MEZBufferManager
- void InitializeL( CEZZStream& aZStream );
- void NeedInputL( CEZZStream& aZStream );
- void NeedOutputL( CEZZStream& aZStream );
- void FinalizeL( CEZZStream& aZStream );
-
- private: // Internal methods
-
- /**
- *
- */
- void TryToReadMoreSourceDataL();
-
- private: // Data members
-
- /**
- *
- */
- TPtr8 iOutputPointer;
-
- friend class CMMCScBkupBufferManagerBase;
- };
-
-
-
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupBufferManagerArchiveToFile) : public CMMCScBkupBufferManagerBase
- {
- public:
-
- /**
- *
- */
- ~CMMCScBkupBufferManagerArchiveToFile();
-
- private:
-
- /**
- *
- */
- CMMCScBkupBufferManagerArchiveToFile( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
-
- /**
- *
- */
- void ConstructL(const TDesC& aFileName);
-
- /**
- *
- */
- static CMMCScBkupBufferManagerArchiveToFile* NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
-
- public: // From CMMCScBkupBufferManagerBase
- void InitializeL(TAny* aParam1, TAny* aParam2);
-
- private: // From MEZBufferManager
- void InitializeL( CEZZStream& aZStream );
- void NeedInputL( CEZZStream& aZStream );
- void NeedOutputL( CEZZStream& aZStream );
- void FinalizeL( CEZZStream& aZStream );
-
- private: // Internal methods
-
- /**
- *
- */
- void TryToReadMoreSourceDataL();
-
- private: // Data members
-
- /**
- *
- */
- CMMCScBkupDataStrategy* iWriteStrategy;
-
- /**
- *
- */
- HBufC8* iOutput;
-
- /**
- *
- */
- TPtr8 iOutputPointer;
-
- /**
- * Needed, since we restore to temporary file
- * and then delete and rename temp file if
- * extraction succeeds.
- */
- TPtrC iFileName;
-
- friend class CMMCScBkupBufferManagerBase;
- };
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#endif // __CMMCSCBKUPBUFFERMANAGERS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupDataOwnerCollection.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-/*
-* Copyright (c) 2005-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: Declaration of CMMCScBkupDataOwnerCollection
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPDATAOWNERCOLLECTION_H__
-#define __CMMCSCBKUPDATAOWNERCOLLECTION_H__
-
-// System includes
-#include <connect/sbtypes.h>
-#include <s32strm.h>
-#include <babitflags.h>
-#include <bldvariant.hrh>
-
-// User includes
-#include "RMMCScBkupPointerArray.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class MMMCScBkupDriver;
-class CMMCScBkupDriveSizer;
-class CMMCScBkupDataOwnerInfo;
-
-#ifndef RD_FILE_MANAGER_BACKUP
-// Type definitions
-typedef RPointerArray<CDataOwnerInfo> RDataOwnerInfoArray;
-#endif
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupDataOwnerCollection) : public CBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupDataOwnerCollection* NewL( MMMCScBkupDriver& aDriver, TBitFlags aCategory );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupDataOwnerCollection();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupDataOwnerCollection( MMMCScBkupDriver& aDriver, TBitFlags aCategory );
-
- /**
- *
- */
- void ConstructL();
-
- public: // API
-
- /**
- *
- */
-#ifdef RD_FILE_MANAGER_BACKUP
- TBool AssignL( const CMMCScBkupDataOwnerInfo& dataOwnersInfo );
-#else
- void AssignL( RDataOwnerInfoArray& aArray );
-#endif
-
- /**
- *
- */
- void AppendL( CMMCScBkupDataOwnerInfo* aNewEntry );
-
- /**
- *
- */
- TInt Count() const;
-
- /**
- *
- */
- CMMCScBkupDataOwnerInfo& Owner( TInt aIndex );
-
- /**
- *
- */
- const CMMCScBkupDataOwnerInfo& Owner( TInt aIndex ) const;
-
- /**
- *
- */
- CMMCScBkupDataOwnerInfo& OwnerL( TSecureId aSID );
-
- /**
- *
- */
- const CMMCScBkupDataOwnerInfo& OwnerL( TSecureId aSID ) const;
-
- /**
- *
- */
- CMMCScBkupDataOwnerInfo& OwnerL( TUid aPackageId );
-
- /**
- *
- */
- const CMMCScBkupDataOwnerInfo& OwnerL( TUid aPackageId ) const;
-
- /**
- *
- */
- CMMCScBkupDataOwnerInfo& OwnerL( const TDesC& aHash );
-
- /**
- *
- */
- const CMMCScBkupDataOwnerInfo& OwnerL( const TDesC& aHash ) const;
-
- /**
- *
- */
- void Remove( TInt aIndex );
-
- /**
- *
- */
- void Reset();
-
- /**
- * The amount of space required spanning all drives.
- * This is used as the total progress amount during
- * restore operations.
- */
- TInt64 TotalOperationalSizeL() const;
-
- /**
- * Whether one or more data owners require a reboot
- * after restore has completed.
- */
- TBool RebootRequired() const;
-
- /**
- *
- */
- TInt64 DiskSpaceRequiredForRestore( TDriveNumber aDrive ) const;
-
- /**
- *
- */
- void CalculateDiskSpaceRequiredForRestoreL();
-
- /**
- *
- */
- TBitFlags Category() const { return iCategory; }
-
- public:
-
- /**
- * Internalize 'iRestoreSizer' from stream
- */
- void InternalizeL( RReadStream& aStream );
-
- /**
- * Externalize 'iRestoreSizer' to stream
- */
- void ExternalizeL( RWriteStream& aStream ) const;
-
- private:
-
-#ifdef RD_FILE_MANAGER_BACKUP
- /**
- *
- */
- TBool BelongsToL(const CMMCScBkupDataOwnerInfo& aInfo, TBitFlags aFlags, TBitFlags aExcludedFlags,
- const RArray<TSecureId> aSecureIds, const RArray<TSecureId> aExcludedSecureIds) const;
-#endif
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- private: // Member data
-
- //
- MMMCScBkupDriver& iDriver;
- // Array of data owners
- RMMCScBkupPointerArray<CMMCScBkupDataOwnerInfo> iOwners;
- //
- CMMCScBkupDriveSizer* iRestoreSizer;
- //
- TBitFlags iCategory;
- };
-
-
-
-
-#endif // __CMMCSCBKUPDATAOWNERCOLLECTION_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupDataOwnerInfo.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,253 +0,0 @@
-/*
-* Copyright (c) 2005-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: Declaration of CMMCScBkupDataOwnerInfo
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPDATAOWNERINFO_H__
-#define __CMMCSCBKUPDATAOWNERINFO_H__
-
-// System includes
-#include <e32std.h>
-#include <s32strm.h>
-#include <connect/sbtypes.h>
-
-// User includes
-#include "TMMCScBkupOwnerDataType.h"
-
-// Classes referenced
-class TMMCScBkupDriveAndSize;
-class CMMCScBkupDataTypeSizer;
-class MMMCScBkupArchiveDataInterface;
-
-// Namespaces
-using namespace conn;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupDataOwnerInfo) : public CBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupDataOwnerInfo* NewLC( CDataOwnerInfo* aOwner );
-
- /**
- * Static constructor
- */
- static CMMCScBkupDataOwnerInfo* NewLC( RReadStream& aStream );
-
- /**
- * Static constructor
- */
- static CMMCScBkupDataOwnerInfo* New( TSecureId aSecureId );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupDataOwnerInfo();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupDataOwnerInfo( CDataOwnerInfo* aOwner = NULL );
-
- /**
- *
- */
- void ConstructL();
-
- public: // API
-
- /**
- *
- */
- CDataOwnerInfo& Owner();
-
- /**
- *
- */
- const CDataOwnerInfo& Owner() const;
-
- /**
- *
- */
- TDataOwnerStatus Status() const;
-
- /**
- *
- */
- void SetStatus( TDataOwnerStatus aStatus );
-
- /**
- *
- */
- void AddToOperationalSizeL( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive, TInt64 aSize );
-
- /**
- *
- */
- void SetOperationalSizeL( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive, TInt64 aSize );
-
- /**
- *
- */
- void ResetOperationalSize( TMMCScBkupOwnerDataType aType );
-
- /**
- *
- */
- TInt64 OperationalSize( TMMCScBkupOwnerDataType aType ) const;
-
- /**
- *
- */
- TInt64 OperationalSize( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive ) const;
-
- /**
- *
- */
- TInt64 OperationalSize( TDriveNumber aDrive ) const;
-
- /**
- *
- */
- void OperationalSizesL( RArray<TMMCScBkupDriveAndSize>& aSizes ) const;
-
- /**
- *
- */
- inline TSecureId SecureId() const { return iSecureId; }
-
- /**
- *
- */
- TInt NumberOfOperationsRequiredL() const;
-
- /**
- *
- */
- void SetCompletionStatus( TMMCScBkupOwnerDataType aType, TBool aCompleted );
-
- /**
- *
- */
- TBool CompletionStatus( TMMCScBkupOwnerDataType aType ) const;
-
- /**
- *
- */
- TInt ActiveDataRetryCount() const;
-
- /**
- *
- */
- void SetActiveDataRetryCount( TInt aCount );
-
- /**
- *
- */
- inline TInt Version() const { return iVersion; }
-
- public: // Store/Restore
-
- /**
- *
- */
- void InternalizeL( RReadStream& aStream );
-
- /**
- *
- */
- void ExternalizeL( RWriteStream& aStream ) const;
-
- public: // Comparison support
-
- /**
- *
- */
- static TBool CompareDataOwnerBySIDL( const CMMCScBkupDataOwnerInfo& aLeft, const CMMCScBkupDataOwnerInfo& aRight );
-
- /**
- *
- */
- TBool HasJavaDataL() const;
-
- /**
- *
- */
- TBool HasActiveDataL() const;
-
- /**
- *
- */
- TBool HasPassiveDataL() const;
-
- /**
- *
- */
- TBool HasPublicDataL() const;
-
- /**
- *
- */
- TBool HasSystemDataL() const;
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1,
- EStreamFormatVersion2,
- EStreamFormatVersionLatest
- };
-
- public: // Public enumerations
- enum
- {
- EStreamFormatVersionFirst = EStreamFormatVersion1
- };
-
- private: // Member data
-
- // Underlying data owner - owned by this object
- CDataOwnerInfo* iDataOwner;
- // Associated secure id of the data owner (if it has one)
- TSecureId iSecureId;
- // Ready status of the data owner
- TDataOwnerStatus iStatus;
- // Size of data that the owner has to backup/restore
- CMMCScBkupDataTypeSizer* iOperationalSize;
- // The completion status of each individual element
- TFixedArray<TBool, EMMCScBkupOwnerDataTypeCount> iCompletionStatus;
- // For active data, we record how many times the SID has returned "not ready"
- TInt iActiveDataRetryCount;
- // Version information
- TInt iVersion;
- };
-
-
-
-
-#endif // __CMMCSCBKUPDATAOWNERINFO_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupDataStrategies.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration of CMMCScBkupDataStrategy
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPDATASTRATEGIES_H__
-#define __CMMCSCBKUPDATASTRATEGIES_H__
-
-// User includes
-#include <f32file.h>
-
-// Constants
-const TBool KMMCScBkupUseTempFile = EFalse;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-class CMMCScBkupDataStrategy : public CBase
- {
- public:
-
- /**
- * Factory method
- */
- static CMMCScBkupDataStrategy* ReadStrategyLC( const TDesC& aName, RFs& aFsSession );
-
- /**
- * Factory method
- */
- static CMMCScBkupDataStrategy* ReadStrategyLC( const TDesC& aName, RFs& aFsSession, TInt aStartOffset, TInt aLengthToRead );
-
- /**
- * Factory method
- */
- static CMMCScBkupDataStrategy* WriteStrategyLC( const TDesC& aName, RFs& aFsSession, TBool aUseTempFile );
-
- public: // Framework API
-
- /**
- * Read data from the source
- *
- * @return TInt The amount of data read, or 0 if the end of file has been reached
- */
- virtual TInt Read(TDes8& aSink) = 0;
-
- /**
- * Write data to the source
- *
- * @return TInt KErrNone if success, KErrNotSupported if the strategy doesn't support writing
- * or any of the other System-Wide error codes upon failure.
- */
- virtual TInt Write(const TDesC8& aSource);
-
- /**
- * Perform any final actions
- *
- * @return TInt an error code.
- */
- virtual TInt Finalize();
-
- protected:
-
- /**
- * C++ Constructor
- */
- CMMCScBkupDataStrategy();
-
- private: // Internal methods
-
- /**
- * Sets the offset and length
- */
- void SetOffsetAndLength(TInt aStartOffset, TInt aLengthToRead);
-
- protected: // Internal
- inline TInt Offset() const { return iOffset; }
- inline TInt LengthToRead() const { return iLengthToRead; }
- inline void SetOffset(TInt64 aOffset) { iOffset = aOffset; }
-
- private: // Data members
-
- //
- TInt iOffset;
- //
- TInt iLengthToRead;
- };
-
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupDataFileStrategy) : public CMMCScBkupDataStrategy
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupDataFileStrategy* NewForReadingL( const TDesC& aName, RFs& aFsSession );
-
- /**
- * Static constructor
- */
- static CMMCScBkupDataFileStrategy* NewForWritingL( const TDesC& aName, RFs& aFsSession, TBool aUseTempFile );
-
- /**
- * C++ Destructor
- */
- ~CMMCScBkupDataFileStrategy();
-
- private:
-
- /**
- * C++ Constructor
- */
- CMMCScBkupDataFileStrategy( RFs& aFsSession, TBool aUseTempFile = EFalse );
-
- /**
- * Second phase construction
- */
- void ConstructL( const TDesC& aName, TUint aMode );
-
- public: // From CMMCScBkupDataStrategy
- TInt Read(TDes8& aSink);
- TInt Write(const TDesC8& aSource);
- TInt Finalize();
-
- private: // Internal functions
-
- /**
- *
- */
- static TInt PrepareToOverwriteFile( RFs& aFsSession, const TDesC& aFileName );
-
- private: // Data members
-
- RFs& iFsSession;
- //
- RFile64 iFile;
- //
- TBool iUseTempFile;
- //
- HBufC* iFileName;
- //
- TFileName iTempFileName;
- };
-
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupDataFileSectionReadStrategy) : public CMMCScBkupDataStrategy
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupDataFileSectionReadStrategy* NewL(const TDesC& aName, RFs& aFsSession);
-
- /**
- * C++ Destructor
- */
- ~CMMCScBkupDataFileSectionReadStrategy();
-
- private:
-
- /**
- * C++ Constructor
- */
- CMMCScBkupDataFileSectionReadStrategy(RFs& aFsSession);
-
- /**
- *
- */
- void ConstructL(const TDesC& aName);
-
- public: // From CMMCScBkupDataStrategy
- TInt Read(TDes8& aSink);
-
- private: // Data members
-
- //
- RFs& iFsSession;
- //
- HBufC* iFileName;
- };
-
-
-
-
-#endif // __CMMCSCBKUPDATASTRATEGIES_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupDriveAndOperationTypeManager.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration of CMMCScBkupDriveAndOperationTypeManager
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPDRIVEANDOPERATIONTYPEMANAGER_H__
-#define __CMMCSCBKUPDRIVEANDOPERATIONTYPEMANAGER_H__
-
-// System includes
-#include <connect/sbdefs.h>
-#include <connect/sbtypes.h>
-#include <barsread.h>
-
-// User includes
-#include "TMMCScBkupOwnerDataType.h"
-
-// Namespaces
-using namespace conn;
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(TMMCScBkupDriveAndOperationType)
- {
- public:
- inline TMMCScBkupDriveAndOperationType()
- : iDrive( EDriveC ), iType( EMMCScBkupOwnerDataTypeAny ) { }
-
- inline TMMCScBkupDriveAndOperationType( TDriveNumber aDrive, TMMCScBkupOwnerDataType aType )
- : iDrive( aDrive ), iType( aType ) { }
-
- public: // Common attributes
-
- /**
- *
- */
- inline TDriveNumber Drive() const { return iDrive; }
-
- /**
- *
- */
- inline void SetDrive( TDriveNumber aDrive ) { iDrive = aDrive; }
-
- /**
- *
- */
- inline TMMCScBkupOwnerDataType DataType() const { return iType; }
-
- /**
- *
- */
- inline void SetDataType( TMMCScBkupOwnerDataType aType ) { iType = aType; }
-
- private: // Data members
-
- //
- TDriveNumber iDrive;
- //
- TMMCScBkupOwnerDataType iType;
- };
-
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupDriveAndOperationTypeManager) : public CBase
- {
- public:
-
- /**
- *
- */
- IMPORT_C static CMMCScBkupDriveAndOperationTypeManager* NewL( TResourceReader& aReader );
-
- /**
- *
- */
- IMPORT_C ~CMMCScBkupDriveAndOperationTypeManager();
-
- private:
-
- /**
- *
- */
- CMMCScBkupDriveAndOperationTypeManager();
-
- /**
- *
- */
- void ConstructL( TResourceReader& aReader );
-
-
- public: // API
-
- /**
- *
- */
- TInt Count() const;
-
- /**
- *
- */
- const TMMCScBkupDriveAndOperationType& At( TInt aIndex ) const;
-
- /**
- *
- */
- inline const TDriveList& DriveList() const { return iCalculatedDriveList; }
-
- /**
- *
- */
- TBool IsDataTypeAllowedToAccessDrive( TDriveNumber aDrive, TMMCScBkupOwnerDataType aDataType ) const;
-
- private: // Internal methods
-
-
- private: // Data members
-
- //
- RArray< TMMCScBkupDriveAndOperationType > iEntries;
- //
- TDriveList iCalculatedDriveList;
-
- };
-
-#endif // __CMMCSCBKUPDRIVEANDOPERATIONTYPEMANAGER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupDriveDataSizeManager.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-/*
-* Copyright (c) 2005-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: Declaration of CMMCScBkupDriveSizer
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPDRIVEDATASIZEMANAGER_H__
-#define __CMMCSCBKUPDRIVEDATASIZEMANAGER_H__
-
-// System includes
-#include <s32strm.h>
-#include <f32file.h>
-
-// User includes
-#include "TMMCScBkupDriveAndSize.h"
-#include "RMMCScBkupPointerArray.h"
-#include "TMMCScBkupOwnerDataType.h"
-
-
-/**
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupDriveSizer) : public CBase
- {
- public:
-
- /**
- *
- */
- static CMMCScBkupDriveSizer* NewLC( TMMCScBkupOwnerDataType aType );
-
- /**
- *
- */
- static CMMCScBkupDriveSizer* NewLC( RReadStream& aStream );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupDriveSizer();
-
- private:
-
- /**
- * C++ constructor
- */
- CMMCScBkupDriveSizer( TMMCScBkupOwnerDataType aType );
-
- /**
- *
- */
- void ConstructL();
-
- public: // API
-
- /**
- *
- */
- inline TMMCScBkupOwnerDataType DataType() const { return iDataType; }
-
- /**
- *
- */
- void AddToSizeL( TInt64 aAmount, TDriveNumber aDrive );
-
- /**
- *
- */
- void Reset();
-
- /**
- *
- */
- void Reset( TDriveNumber aDrive );
-
- /**
- *
- */
- TInt64 Size() const;
-
- /**
- *
- */
- TInt64 Size( TDriveNumber aDrive ) const;
-
- public:
-
- /**
- * Internalize object from stream
- */
- void InternalizeL( RReadStream& aStream );
-
- /**
- * Externalize object to stream
- */
- void ExternalizeL( RWriteStream& aStream ) const;
-
- private: // Internal methods
-
- /**
- *
- */
- TMMCScBkupDriveAndSize* EntryByDrive( TDriveNumber aDrive );
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- private: // Data members
-
- //
- RArray<TMMCScBkupDriveAndSize> iEntries;
- //
- TMMCScBkupOwnerDataType iDataType;
- };
-
-
-
-
-
-
-/**
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupDataTypeSizer) : public CBase
- {
- public:
-
- /**
- *
- */
- static CMMCScBkupDataTypeSizer* NewL();
-
- /**
- *
- */
- static CMMCScBkupDataTypeSizer* NewLC( RReadStream& aStream );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupDataTypeSizer();
-
- private:
-
- /**
- * C++ constructor
- */
- CMMCScBkupDataTypeSizer();
-
- /**
- *
- */
- void ConstructL();
-
- public: // API
-
- /**
- *
- */
- void AddToSizeL( TMMCScBkupOwnerDataType aDataType, TInt64 aAmount, TDriveNumber aDrive );
-
- /**
- *
- */
- void Reset( TMMCScBkupOwnerDataType aDataType );
-
- /**
- *
- */
- void Reset( TMMCScBkupOwnerDataType aDataType, TDriveNumber aDrive );
-
- /**
- *
- */
- TInt64 Size( TMMCScBkupOwnerDataType aDataType ) const;
-
- /**
- *
- */
- TInt64 Size( TMMCScBkupOwnerDataType aDataType, TDriveNumber aDrive ) const;
-
- /**
- *
- */
- void GetSizesL( RArray<TMMCScBkupDriveAndSize>& aSizes ) const;
-
- /**
- *
- */
- TInt64 CombinedSize( TDriveNumber aDrive ) const;
-
- public:
-
- /**
- * Internalize object from stream
- */
- void InternalizeL( RReadStream& aStream );
-
- /**
- * Externalize object to stream
- */
- void ExternalizeL( RWriteStream& aStream ) const;
-
- private: // Internal methods
-
- /**
- *
- */
- CMMCScBkupDriveSizer* SizerByDataType( TMMCScBkupOwnerDataType aDataType );
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- private: // Data members
-
- //
- RMMCScBkupPointerArray<CMMCScBkupDriveSizer> iSizers;
- };
-
-
-
-
-
-
-#endif // __CMMCSCBKUPDRIVEDATASIZEMANAGER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupDriveSpecificRequest.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration of CMMCScBkupDriveSpecificRequest
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPDRIVESPECIFICREQUEST_H__
-#define __CMMCSCBKUPDRIVESPECIFICREQUEST_H__
-
-// System includes
-#include <e32base.h>
-#include <f32file.h>
-
-// User includes
-#include "TMMCScBkupOwnerDataType.h"
-
-// Classes referenced
-class CMMCScBkupDriveAndOperationTypeManager;
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupDriveSpecificRequest) : public CActive
- {
- protected:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupDriveSpecificRequest( const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperations, TMMCScBkupOwnerDataType aDataType, CActive::TPriority aPriority = CActive::EPriorityIdle );
-
- /**
- * Second phase constructor
- */
- void ConstructL( );
-
- public:
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupDriveSpecificRequest();
-
- protected: // API
-
- /**
- *
- */
- virtual void RequestL( TRequestStatus& aObserver );
-
- protected: // Internal methods
-
- /**
- *
- */
- TBool NextValidDrive(TDriveNumber& aDrive);
-
- /**
- *
- */
- TBool NextValidDrive(TDriveNumber& aDrive, const TDriveList& aCrossCheckList);
-
- /**
- * Return the current drive
- */
- TDriveNumber CurrentDrive() const;
-
- /**
- *
- */
- void CompleteObserverRequest(TInt aCompletionCode);
-
- /**
- *
- */
- void CompleteSelf(TInt aCompletionCode = KErrNone);
-
- /**
- *
- */
- inline const CMMCScBkupDriveAndOperationTypeManager& DriveAndOperations() const { return iDriveAndOperations; }
-
- private: // From CActive
-
- /**
- * Default behaviour is to do nothing
- */
- void DoCancel();
-
- /**
- * Complete's observer with the error code
- */
- TInt RunError(TInt aError);
-
- private: // Member data
-
- //
- const CMMCScBkupDriveAndOperationTypeManager& iDriveAndOperations;
- //
- TMMCScBkupOwnerDataType iDataType;
- //
- TInt iCurrentDrive;
- //
- TRequestStatus* iObserver;
- };
-
-
-
-
-
-
-
-
-#endif // __CMMCSCBKUPARCHIVE_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupEngine.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
-* Copyright (c) 2002-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:
-* Scans for names of the files according to array.
-*
-*/
-
-#ifndef __CMMCSCBKUPENGINE_H__
-#define __CMMCSCBKUPENGINE_H__
-
-// User includes
-#include "MMCScBkupOperations.h"
-
-// Classes referenced
-class RFs;
-class CMMCScBkupEngineImpl;
-class CMMCScBkupOpParamsBase;
-class MMMCScBkupEngineObserver;
-class CMMCScBkupArchiveInfo;
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupEngine) : public CBase
- {
- public:
-
- /**
- * Two-phased constructor.
- */
- IMPORT_C static CMMCScBkupEngine* NewL( RFs& aFsSession );
-
- /**
- * Destructor
- */
- IMPORT_C ~CMMCScBkupEngine();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupEngine();
-
- /**
- * Second phase constructor
- */
- void ConstructL( RFs& aFsSession );
-
-
- public: // API
-
- /**
- * NB. aParams are IMMEDIATELY owned by the engine. Do not pass them in
- * left on the cleanup stack.
- */
- IMPORT_C void StartOperationL(TMMCScBkupOperationType aOperation, MMMCScBkupEngineObserver& aObserver, CMMCScBkupOpParamsBase* aParams );
-
- /**
- *
- */
- IMPORT_C void CancelOperation();
-
- /**
- *
- */
- IMPORT_C TBool ValidArchiveForRestore( const TDesC& aFileName );
-
- /**
- *
- */
- IMPORT_C TInt64 TotalOperationSizeL() const;
-
- /**
- *
- */
- IMPORT_C TBool RebootRequired() const;
-
- /**
- *
- */
- IMPORT_C void ListArchivesL(
- RPointerArray< CMMCScBkupArchiveInfo >& aArchives,
- CMMCScBkupOpParamsBase* aParams,
- const TUint32 aDriveAttMatch,
- const TInt aDriveMatch = KErrNotFound ) const;
-
- private: // Member data
-
- // Real engine
- CMMCScBkupEngineImpl* iEngine;
- };
-
-
-
-
-#endif // __CMMCSCBKUPENGINE_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupEngineImpl.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,278 +0,0 @@
-/*
-* Copyright (c) 2002-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:
-* Scans for names of the files according to array.
-*
-*/
-
-#ifndef __CMMCSCBKUPENGINEIMPL_H__
-#define __CMMCSCBKUPENGINEIMPL_H__
-
-// System includes
-#include <connect/sbeclient.h>
-
-// User includes
-#include "MMCScBkupConfig.h"
-#include "MMMCScBkupDriver.h"
-#include "MMCScBkupStateIds.h"
-#include "MMCScBkupOperations.h"
-#include "MMMCScBkupEngineObserver.h"
-#include "MMMCScBkupProgressObserver.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class RFs;
-class CMMCScBkupState;
-class CMMCScBkupArchive;
-class CMMCScBkupStateFactory;
-class CMMCScBkupOpParamsBase;
-class MMMCScBkupEngineObserver;
-class CMMCScBkupFileListCollection;
-class CMMCScBkupDataOwnerCollection;
-class MMMCScBkupArchiveDataInterface;
-class CMMCScBkupArchiveInfo;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupEngineImpl) : public CActive, public MMMCScBkupDriver, public MMMCScBkupProgressObserver
- {
- public:
-
- /**
- * Two-phased constructor.
- */
- static CMMCScBkupEngineImpl* NewL( RFs& aFsSession );
-
- /**
- * Destructor
- */
- ~CMMCScBkupEngineImpl();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupEngineImpl( RFs& aFsSession );
-
- /**
- * Second phase constructor
- */
- void ConstructL( );
-
-
- public: // API
-
- /**
- *
- */
- void StartOperationL(TMMCScBkupOperationType aOperation, MMMCScBkupEngineObserver& aObserver, CMMCScBkupOpParamsBase* aParams );
-
- /**
- *
- */
- void CleanupL( TInt aError = KErrNone );
-
- /**
- *
- */
- TBool ValidArchiveForRestoreL( const TDesC& aFileName );
-
- /**
- *
- */
- TInt64 TotalOperationSizeL() const;
-
- /**
- *
- */
- TBool RebootRequired() const;
-
- /**
- *
- */
- void ListArchivesL(
- RPointerArray< CMMCScBkupArchiveInfo >& aArchives,
- CMMCScBkupOpParamsBase* aParams,
- const TUint32 aDriveAttMatch,
- const TInt aDriveMatch );
-
- private: // From MMMCScBkupDriver
- void DrvHandleStateExecutionCompleteL( const CMMCScBkupState& aState );
- void DrvHandleStateExecutionCompleteL( const CMMCScBkupState& aState, TMMCScBkupStateId aNextState );
- void DrvHandleStateExecutionErrorL( const CMMCScBkupState& aState, TInt aError );
-
- private: // From MMMCScBkupDriver
- MMMCScBkupArchiveDataInterface& DrvADI() const;
- CMMCScBkupArchive& DrvArchive() const;
- CSBEClient& DrvSecureBackupClient() const;
- TMMCScBkupOperationType DrvOperation() const;
- CMMCScBkupOpParamsBase& DrvParamsBase() const;
- CMMCScBkupDataOwnerCollection& DrvDataOwners() const;
- RPointerArray<CMMCScBkupDataOwnerCollection>& DrvDataOwnersAll();
- CMMCScBkupFileListCollection& DrvFileList() const;
- TBool DrvLastCategory() const;
- void DrvStoreTotalProgress(TInt64 aProgress);
- TInt64 DrvTotalProgress() const;
- MMMCScBkupProgressObserver& DrvProgressHandler() const;
-
- private: // From MMMCScBkupProgressObserver
- void MMCScBkupHandleProgress( TInt aAmountCompleted );
- void MMCScBkupHandleProgressDomainUnderstood( TInt aTotalProgressAmount );
- TInt MMCScBkupHandleFreeSpace( TInt aPercentualFree );
- void MMCScBkupStartBackuping( TBool aProceed );
-
- private: // From CActive
- void RunL();
- void DoCancel();
- TInt RunError(TInt aError);
-
- private: // Internal
-
- /**
- *
- */
- void CompleteOwnRequest(TInt aCompletionCode = KErrNone, TBool aSetActive = ETrue);
-
- /**
- *
- */
- void NotifyObserver(MMMCScBkupEngineObserver::TEvent aEvent, TInt aAssociatedData = KErrNone);
-
- /**
- *
- */
- void PrepareForBackupL(TBool aPartial);
-
- /**
- *
- */
- void PrepareForRestoreL(TBool aPartial);
-
- /**
- *
- */
- void SetParameters(CMMCScBkupOpParamsBase* aParameters);
-
- /**
- *
- */
- void CreateFactoryL(TMMCScBkupOperationType aOperation);
-
- /**
- *
- */
- TBool CurrentStateAvailable() const;
-
- /**
- *
- */
- TMMCScBkupStateId CurrentStateId() const;
-
- /**
- *
- */
- CMMCScBkupState& CurrentState();
-
- /**
- *
- */
- const CMMCScBkupState& CurrentState() const;
-
- /**
- *
- */
- void PrepareNextStateL( TMMCScBkupStateId aCurrentStateId );
-
- /**
- *
- */
- void DestroyCurrentState();
-
- /**
- *
- */
- void ExecuteStateL();
-
- /**
- *
- */
- void PrepareObjectsL();
-
- /**
- * Reset and Destroy the RPointArray of Archives
- *
- */
- static void ResetAndDestroyArchives( TAny* aPtr );
-
-#ifdef DEBUGGING_DATA_TRANSFER
-
- /**
- *
- */
- void CleanBackupFilesL();
-
- /**
- *
- */
- void ClearRestoreFilesL();
-#endif
-
- private: // Member data
-
- // Referenced objects
- // file server session
- RFs& iFsSession;
- // backup engine observer
- MMMCScBkupEngineObserver* iObserver;
-
- // Owned objects
- //
- TInt64 iCumulativeProgress;
- // Secure backup engine client
- CSBEClient* iSBEClient;
- // Archive array
- RMMCScBkupPointerArray<CMMCScBkupArchive> iArchives;
- // Current operation
- TMMCScBkupOperationType iOperationType;
- // Operational parameters
- CMMCScBkupOpParamsBase* iParameters;
- //
- CMMCScBkupState* iCurrentState;
- // Current factory
- CMMCScBkupStateFactory* iFactory;
- //
- RPointerArray<CMMCScBkupDataOwnerCollection> iDataOwners;
- //
- RPointerArray<CMMCScBkupFileListCollection> iFileLists;
- //
- TInt iCurrentArchive;
- //
- TInt64 iTotalProgress;
- //
- TBool iActiveDataProcessingOngoing;
- };
-
-
-
-
-#endif // __CMMCSCBKUPENGINEIMPL_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupFileInfo.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupFileInfo
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPFILEINFO_H__
-#define __CMMCSCBKUPFILEINFO_H__
-
-// System includes
-#include <f32file.h>
-#include <s32strm.h>
-
-
-/**
-* Represents a public file within an archive. Each public file
-* has an associated data owner. This is encapsulated by the SID
-* of the owning process.
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupFileInfo) : public CBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupFileInfo* NewL( const TEntry& aEntry, TSecureId aAssociatedSID );
-
- /**
- * Static constructor
- */
- static CMMCScBkupFileInfo* NewLC( const TEntry& aEntry, TSecureId aAssociatedSID );
-
- /**
- * Static constructor
- */
- static CMMCScBkupFileInfo* NewLC( RReadStream& aStream );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupFileInfo();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupFileInfo();
-
- /**
- * C++ default constructor
- */
- CMMCScBkupFileInfo( const TEntry& aEntry, TSecureId aAssociatedSID );
-
- /**
- *
- */
- void ConstructL( const TEntry& aEntry );
-
- public: // API - Getters
-
- /**
- *
- */
- inline const TDesC& FileName() const { return *iFileName; }
-
- /**
- *
- */
- inline TInt Size() const { return iSize; }
-
- /**
- *
- */
- inline const TTime& DateTime() const { return iDateTime; }
-
- /**
- *
- */
- inline TUint Attributes() const { return iAttributes; }
-
- /**
- *
- */
- inline TSecureId SecureId() const { return iSecureId; }
-
- /**
- *
- */
- TDriveNumber Drive() const;
-
- public: // Store/Restore
-
- /**
- *
- */
- void InternalizeL(RReadStream& aStream);
-
- /**
- *
- */
- void ExternalizeL(RWriteStream& aStream) const;
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- public: // Comparison support
-
- /**
- *
- */
- static TInt OrderByFileName(const CMMCScBkupFileInfo& aLeft, const CMMCScBkupFileInfo& aRight);
-
- /**
- *
- */
- static TBool CompareByFileName(const CMMCScBkupFileInfo& aLeft, const CMMCScBkupFileInfo& aRight);
-
- private: // Member data
-
- // File name
- HBufC* iFileName;
- //
- TInt iSize;
- //
- TTime iDateTime;
- //
- TUint iAttributes;
- //
- TSecureId iSecureId;
- };
-
-
-
-
-#endif // __CMMCSCBKUPFILEINFO_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupFileListCollection.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
-* Copyright (c) 2005-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: Declaration for CMMCScBkupFileListCollection
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPFILELISTCOLLECTION_H__
-#define __CMMCSCBKUPFILELISTCOLLECTION_H__
-
-// System includes
-#include <f32file.h>
-
-// User includes
-#include "RMMCScBkupPointerArray.h"
-#include "CMMCScBkupFileInfo.h"
-#include <babitflags.h>
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupFileListCollection) : public CBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupFileListCollection* NewL( TBitFlags aCategory, RFs& aFsSession );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupFileListCollection();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupFileListCollection( TBitFlags aCategory, RFs& aFsSession );
-
- /**
- *
- */
- void ConstructL();
-
- public: // API
-
- /**
- *
- */
- void AppendL( const RArray<TEntry>& aArray, RArray< const CMMCScBkupFileInfo* >& aAddedItems, TSecureId aAssociatedSID );
-
- /**
- *
- */
- void AppendL( CMMCScBkupFileInfo* aFileInfo );
-
- /**
- *
- */
- TInt Count() const;
-
- /**
- *
- */
- const CMMCScBkupFileInfo& Entry(TInt aIndex) const;
-
- /**
- *
- */
- void Remove( TInt aIndex );
-
- /**
- *
- */
- void Reset();
-
- /**
- *
- */
- TBitFlags Category() const { return iCategory; }
-
- private: // Member data
-
- // Array of data owners
- RMMCScBkupPointerArray<CMMCScBkupFileInfo> iEntries;
- //
- TBitFlags iCategory;
- //
- RFs& iFsSession;
- };
-
-
-
-
-#endif // __CMMCSCBKUPFILELISTCOLLECTION_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupIndexActiveData.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexActiveData
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPINDEXACTIVEDATA_H__
-#define __CMMCSCBKUPINDEXACTIVEDATA_H__
-
-// User includes
-#include "CMMCScBkupIndexWithIdentifier.h"
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupIndexActiveData) : public CMMCScBkupIndexWithIdentifier< TSecureId >
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupIndexActiveData* NewLC();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupIndexActiveData();
-
- };
-
-
-
-
-#endif // __CMMCSCBKUPINDEXACTIVEDATA_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupIndexBase.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexBase
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPINDEXBASE_H__
-#define __CMMCSCBKUPINDEXBASE_H__
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "MMMCScBkupDriver.h"
-#include "TMMCScBkupOwnerDataType.h"
-#include "RMMCScBkupPointerArray.h"
-#include "TMMCScBkupArchiveVector.h"
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupIndexBase) : public CBase
- {
- public:
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupIndexBase();
-
- protected:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupIndexBase(TMMCScBkupOwnerDataType aType);
-
- /**
- *
- */
- virtual void ConstructL();
-
- public: // API
-
- /**
- *
- */
- inline TMMCScBkupOwnerDataType Type() const { return iType; }
-
- /**
- *
- */
- inline const TMMCScBkupArchiveVector& Vector() const { return iVector; }
-
- /**
- *
- */
- inline void SetVector( const TMMCScBkupArchiveVector& aVector ) { iVector = aVector; }
-
- public: // Store/Restore
-
- /**
- *
- */
- virtual void StoreL(MMMCScBkupDriver& aDriver) = 0;
-
- /**
- *
- */
- virtual void RestoreL(MMMCScBkupDriver& aDriver) = 0;
-
- private: // Member data
-
- //
- TMMCScBkupOwnerDataType iType;
- //
- TMMCScBkupArchiveVector iVector;
- };
-
-
-
-
-#endif // __CMMCSCBKUPINDEXBASE_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupIndexDataOwners.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexDataOwners
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPINDEXDATAOWNERS_H__
-#define __CMMCSCBKUPINDEXDATAOWNERS_H__
-
-// System includes
-#include <f32file.h>
-
-// User includes
-#include "CMMCScBkupIndexBase.h"
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupIndexDataOwners) : public CMMCScBkupIndexBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupIndexDataOwners* NewLC();
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupIndexDataOwners();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupIndexDataOwners();
-
- public: // API
-
- /**
- *
- */
- void AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo );
-
- /**
- *
- */
- inline TInt Count() const
- { return iEntries.Count(); }
-
- /**
- *
- */
- inline const TMMCScBkupArchiveVector& At( TInt aIndex ) const
- { return iEntries[ aIndex ]; }
-
- public: // From CMMCScBkupIndexBase
-
- /**
- *
- */
- void StoreL(MMMCScBkupDriver& aDriver);
-
- /**
- *
- */
- void RestoreL(MMMCScBkupDriver& aDriver);
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- private: // Member data
-
- //
- RArray<TMMCScBkupArchiveVector> iEntries;
-
- };
-
-
-
-
-#endif // __CMMCSCBKUPINDEXDATAOWNERS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupIndexJavaData.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
-* Copyright (c) 2006 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: Declaration for CMMCScBkupIndexJavaDataEntry and
-* CMMCScBkupIndexJavaData
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPINDEXJAVADATA_H__
-#define __CMMCSCBKUPINDEXJAVADATA_H__
-
-// User includes
-#include "CMMCScBkupIndexWithIdentifier.h"
-
-
-
-/**
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS( CMMCScBkupIndexJavaDataEntry ) : public CBase
- {
- public:
-
- /**
- *
- */
- static CMMCScBkupIndexJavaDataEntry* NewLC();
-
- /**
- *
- */
- static CMMCScBkupIndexJavaDataEntry* NewLC( RReadStream& aStream );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupIndexJavaDataEntry();
-
- private:
-
- /**
- *
- */
- CMMCScBkupIndexJavaDataEntry();
-
- /**
- *
- */
- void ConstructL();
-
- public: // API
-
- /**
- *
- */
- inline const TDesC& Hash() const { return *iHash; }
-
- /**
- *
- */
- void SetHashL( const TDesC& aHash );
-
- /**
- *
- */
- inline TDriveNumber Drive() const { return iDrive; }
-
- /**
- *
- */
- inline void SetDrive( TDriveNumber aDrive ) { iDrive = aDrive; }
-
- /**
- *
- */
- inline const TMMCScBkupArchiveVector& MidletInfo() const { return iMidletInfo; }
-
- /**
- *
- */
- inline void SetMidletInfo( const TMMCScBkupArchiveVector& aInfo ) { iMidletInfo = aInfo; }
-
- /**
- *
- */
- inline const TMMCScBkupArchiveVector& MidletDataInfo() const { return iMidletDataInfo; }
-
- /**
- *
- */
- inline void SetMidletDataInfo( const TMMCScBkupArchiveVector& aInfo ) { iMidletDataInfo = aInfo; }
-
- /**
- *
- */
- inline TBool HasMidletDataInfo() const { return iMidletDataInfo.Length() > 0 && iMidletDataInfo.Offset() > 0; }
-
- public: // Store & restore
-
- /**
- *
- */
- void InternalizeL( RReadStream& aStream );
-
- /**
- *
- */
- void ExternalizeL( RWriteStream& aStream ) const;
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- private: // Data members
- //
- HBufC* iHash;
- //
- TDriveNumber iDrive;
- //
- TMMCScBkupArchiveVector iMidletInfo;
- //
- TMMCScBkupArchiveVector iMidletDataInfo;
- };
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupIndexJavaData) : public CMMCScBkupIndexBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupIndexJavaData* NewLC();
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupIndexJavaData();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupIndexJavaData();
-
- public: // API
-
- /**
- *
- */
- void AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, const TDesC& aHash, TDriveNumber aDrive, TJavaTransferType aType );
-
- /**
- *
- */
- inline TInt Count() const { return iEntries.Count(); }
-
- /**
- *
- */
- const CMMCScBkupIndexJavaDataEntry& At( TInt aIndex ) const;
-
- public: // From CMMCScBkupIndexBase
-
- /**
- *
- */
- void StoreL( MMMCScBkupDriver& aDriver );
-
- /**
- *
- */
- void RestoreL( MMMCScBkupDriver& aDriver );
-
- private: // Internal classes
-
- /**
- *
- */
- CMMCScBkupIndexJavaDataEntry* EntryByHash( const TDesC& aHash, TDriveNumber aDrive ) const;
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- private: // Member data
-
- //
- RMMCScBkupPointerArray< CMMCScBkupIndexJavaDataEntry > iEntries;
-
- };
-
-
-
-
-
-#endif // __CMMCSCBKUPINDEXJAVADATA_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupIndexPassiveData.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexPassiveData
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPINDEXPASSIVEDATA_H__
-#define __CMMCSCBKUPINDEXPASSIVEDATA_H__
-
-// System includes
-#include <f32file.h>
-
-// User includes
-#include "CMMCScBkupIndexWithIdentifier.h"
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupIndexPassiveData) : public CMMCScBkupIndexWithIdentifier< TSecureId >
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupIndexPassiveData* NewLC();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupIndexPassiveData();
-
- };
-
-
-
-
-#endif // __CMMCScBkupIndexPassiveData_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupIndexPublicDataFiles.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexPublicDataFiles
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPINDEXPUBLICDATAFILES_H__
-#define __CMMCSCBKUPINDEXPUBLICDATAFILES_H__
-
-// System includes
-#include <f32file.h>
-
-// User includes
-#include "CMMCScBkupIndexBase.h"
-
-// Classes referenced
-class CMMCScBkupFileInfo;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupIndexPublicDataFiles) : public CMMCScBkupIndexBase
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupIndexPublicDataFiles* NewLC();
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupIndexPublicDataFiles();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupIndexPublicDataFiles();
-
- public: // API
-
- /**
- *
- */
- void AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, const CMMCScBkupFileInfo& aFile );
-
- /**
- *
- */
- inline TInt Count() const { return iEntries.Count(); }
-
- /**
- *
- */
- const CMMCScBkupFileInfo& At( TInt aIndex, TMMCScBkupArchiveVector& aInfo ) const;
-
- public: // From CMMCScBkupIndexBase
-
- /**
- *
- */
- void StoreL( MMMCScBkupDriver& aDriver );
-
- /**
- *
- */
- void RestoreL( MMMCScBkupDriver& aDriver );
-
- private: // Internal classes
-
- /**
- *
- * @since 3.0
- */
- class TMMCScBkupPublicFileEntry
- {
- public:
- inline TMMCScBkupPublicFileEntry() { }
- inline TMMCScBkupPublicFileEntry(const TMMCScBkupArchiveVector& aInfo, const CMMCScBkupFileInfo& aFile)
- : iInfo(aInfo), iFile(&aFile)
- {
- }
-
- public: // Data members
- TMMCScBkupArchiveVector iInfo;
- const CMMCScBkupFileInfo* iFile;
- };
-
- private: // Member data
-
- //
- RArray<TMMCScBkupPublicFileEntry> iEntries;
-
- };
-
-
-#endif // __CMMCSCBKUPINDEXPUBLICDATAFILES_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupIndexSystemData.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexSystemData
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPINDEXSYSTEMDATA_H__
-#define __CMMCSCBKUPINDEXSYSTEMDATA_H__
-
-// System includes
-#include <f32file.h>
-
-// User includes
-#include "CMMCScBkupIndexWithIdentifier.h"
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupIndexSystemData) : public CMMCScBkupIndexWithIdentifier< TInt32 >
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupIndexSystemData* NewLC();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupIndexSystemData();
-
- };
-
-
-
-
-
-#endif // __CMMCSCBKUPINDEXSYSTEMDATA_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupIndexWithIdentifier.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexWithIdentifier
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPINDEXWITHIDENTIFIER_H__
-#define __CMMCSCBKUPINDEXWITHIDENTIFIER_H__
-
-// User includes
-#include "CMMCScBkupIndexBase.h"
-#include "TMMCScBkupOwnerDataType.h"
-#include "TMMCScBkupArchiveVector.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-template < class TIdentifier >
-class CMMCScBkupIndexEntry : public CBase
- {
- public:
- inline static CMMCScBkupIndexEntry* NewLC( const TIdentifier& aIdentifier )
- {
- CMMCScBkupIndexEntry* self = new(ELeave) CMMCScBkupIndexEntry( aIdentifier );
- CleanupStack::PushL( self );
- return self;
- }
-
- inline static CMMCScBkupIndexEntry* NewLC( RReadStream& aStream )
- {
- CMMCScBkupIndexEntry* self = new(ELeave) CMMCScBkupIndexEntry();
- CleanupStack::PushL( self );
- aStream >> *self;
- return self;
- }
-
- inline ~CMMCScBkupIndexEntry()
- {
- iAssociatedData.Close();
- }
-
- private:
-
- inline CMMCScBkupIndexEntry()
- {
- }
-
- inline CMMCScBkupIndexEntry( const TIdentifier& aIdentifier )
- : iIdentifier( aIdentifier )
- {
- }
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- public:// Store & Restore
-
- inline void InternalizeL( RReadStream& aStream )
- {
- aStream.ReadInt32L(); // EStreamFormatVersion1
- aStream.ReadInt32L(); // spare1
- aStream.ReadInt32L(); // spare2
- aStream.ReadInt32L(); // spare3
- //
- iIdentifier = aStream.ReadInt32L();
- //
- const TInt count = aStream.ReadInt32L();
- for(TInt i=0; i<count; i++)
- {
- TMMCScBkupArchiveDriveAndVector entry;
- aStream >> entry;
- //
- iAssociatedData.AppendL( entry );
- }
- }
-
- inline void ExternalizeL( RWriteStream& aStream ) const
- {
- aStream.WriteInt32L( EStreamFormatVersion1 );
- aStream.WriteInt32L( 0 ); // spare1
- aStream.WriteInt32L( 0 ); // spare2
- aStream.WriteInt32L( 0 ); // spare3
- //
- aStream.WriteInt32L( iIdentifier );
- //
- const TInt count = iAssociatedData.Count();
- aStream.WriteInt32L(count);
- //
- for(TInt i=0; i<count; i++)
- {
- const TMMCScBkupArchiveDriveAndVector& entry = iAssociatedData[i];
- aStream << entry;
- }
- }
-
- public: // General access
-
- inline const TIdentifier& Identifier() const
- { return iIdentifier; }
-
- inline void AddEntryL( const TMMCScBkupArchiveDriveAndVector& aEntry )
- { iAssociatedData.AppendL(aEntry); }
-
- inline TInt Count() const
- { return iAssociatedData.Count(); }
-
- inline const TMMCScBkupArchiveDriveAndVector& Entry(TInt aIndex) const
- { return iAssociatedData[ aIndex ]; }
-
- inline const RArray<TMMCScBkupArchiveDriveAndVector>& Entries() const
- { return iAssociatedData; }
-
- private:
-
- /**
- *
- */
- TIdentifier iIdentifier;
-
- /**
- *
- */
- RArray<TMMCScBkupArchiveDriveAndVector> iAssociatedData;
- };
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-template < class TIdentifier >
-class CMMCScBkupIndexWithIdentifier : public CMMCScBkupIndexBase
- {
-
- public:
-
- /**
- * C++ destructor
- */
- inline ~CMMCScBkupIndexWithIdentifier()
- {
- iEntries.Close();
- }
-
- protected:
-
- /**
- * C++ default constructor
- */
- inline CMMCScBkupIndexWithIdentifier( TMMCScBkupOwnerDataType aType )
- : CMMCScBkupIndexBase( aType )
- {
- }
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- public: // API
-
- /**
- *
- */
- inline void AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive, const TIdentifier& aIdentifier )
- {
- // Locate the parent
- CMMCScBkupIndexEntry< TIdentifier >& entry = EntryByIdentifierL( aIdentifier );
-
- // Create new sub-entry
- TMMCScBkupArchiveDriveAndVector subItem;
- subItem.iDrive = aDrive;
- subItem.iVector = aInfo;
-
- // Add it to our index
- entry.AddEntryL( subItem );
- }
-
- /**
- *
- */
- inline TInt Count() const
- { return iEntries.Count(); }
-
- /**
- *
- */
- inline const CMMCScBkupIndexEntry< TIdentifier >& At( TInt aIndex ) const
- { return *iEntries[ aIndex ]; }
-
- /**
- *
- */
- inline void StoreL(MMMCScBkupDriver& aDriver)
- {
- MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
- RWriteStream stream( archiveDataInterface.ADIWriteStreamUncompressedLC() );
- //
- stream.WriteInt32L( EStreamFormatVersion1 );
- stream.WriteInt32L( 0 ); // spare1
- stream.WriteInt32L( 0 ); // spare2
- stream.WriteInt32L( 0 ); // spare3
-
- const TInt count = iEntries.Count();
- stream.WriteInt32L( count );
- //
- for(TInt i=0; i<count; i++)
- {
- const CMMCScBkupIndexEntry< TIdentifier > & entry = *iEntries[ i ];
- stream << entry;
- }
- //
- stream.CommitL();
- CleanupStack::PopAndDestroy(); // stream
-
- // Update our base class info with the offset to the index
- SetVector( archiveDataInterface.ADICurrentArchiveVectorInfo() );
- }
-
- /**
- *
- */
- inline void RestoreL(MMMCScBkupDriver& aDriver)
- {
- MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
- RReadStream stream( archiveDataInterface.ADIReadStreamUncompressedLC( Vector().Offset() ) );
- //
- stream.ReadInt32L(); // EStreamFormatVersion1
- stream.ReadInt32L(); // spare1
- stream.ReadInt32L(); // spare2
- stream.ReadInt32L(); // spare3
- //
- const TInt count = stream.ReadInt32L();
- for(TInt i=0; i<count; i++)
- {
- CMMCScBkupIndexEntry< TIdentifier >* entry = CMMCScBkupIndexEntry< TIdentifier >::NewLC( stream );
- iEntries.AppendL( entry );
- CleanupStack::Pop( entry );
- }
- //
- CleanupStack::PopAndDestroy(); // stream
- //
- if ( archiveDataInterface.ADICurrentArchiveVectorInfo().Length() > Vector().Length() )
- {
- // We've read too much!
- User::Leave( KErrCorrupt );
- }
- }
-
- private: // Internal methods
-
- /**
- *
- */
- inline CMMCScBkupIndexEntry< TIdentifier >* EntryByIdentifier( const TIdentifier& aIdentifier )
- {
- CMMCScBkupIndexEntry< TIdentifier >* ret = NULL;
- //
- const TInt count = iEntries.Count();
- for( TInt i=count-1; i>=0; i-- )
- {
- CMMCScBkupIndexEntry< TIdentifier >* entry = iEntries[ i ];
- if ( entry->Identifier() == aIdentifier )
- {
- ret = entry;
- break;
- }
- }
- //
- return ret;
- }
-
- /**
- *
- */
- inline CMMCScBkupIndexEntry< TIdentifier >& EntryByIdentifierL( const TIdentifier& aIdentifier )
- {
- CMMCScBkupIndexEntry< TIdentifier >* ret = EntryByIdentifier( aIdentifier );
- if ( !ret )
- {
- // Need to make a new entry
- ret = CMMCScBkupIndexEntry< TIdentifier >::NewLC( aIdentifier );
- iEntries.AppendL( ret );
- CleanupStack::Pop( ret );
- }
- //
- return *ret;
- }
-
- private: // Member Data
-
- //
- RMMCScBkupPointerArray< CMMCScBkupIndexEntry< TIdentifier > > iEntries;
- };
-
-
-
-
-
-
-#endif // __CMMCSCBKUPINDEXWITHIDENTIFIER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupOperationParameters.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,240 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupOpParamsBase
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPOPERATIONPARAMETERS_H__
-#define __CMMCSCBKUPOPERATIONPARAMETERS_H__
-
-// System includes
-#include <connect/sbdefs.h>
-#include <connect/sbtypes.h>
-#include <barsread.h>
-#include <babitflags.h>
-
-// User includes
-#include "MMCScBkupOperations.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "RMMCScBkupPointerArray.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class CMMCScBkupDriveAndOperationTypeManager;
-class CMMCScBkupArchiveInfo;
-
-_LIT( KBackUpFolder, "\\Backup\\" );
-_LIT( KBackUpFiles, "*.arc" );
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupOpParamsBase) : public CBase
- {
- public:
-
- /**
- *
- */
- IMPORT_C ~CMMCScBkupOpParamsBase();
-
- protected:
-
- /**
- *
- */
- CMMCScBkupOpParamsBase( );
-
- /**
- *
- */
- void ConstructL( TResourceReader& aDriveReader, TBitFlags aCategories );
-
- public: // Common mandatory framework methods
-
- /**
- *
- */
- virtual TMMCScBkupOperationType AssociatedOpType() const = 0;
-
- /**
- *
- */
- virtual TBURPartType PartType() const = 0;
-
- /**
- *
- */
- virtual TBackupIncType IncrementType() const = 0;
-
- /**
- *
- */
- virtual TTransferDataType PassiveTransferType() const = 0;
-
- /**
- *
- */
- virtual TTransferDataType ActiveTransferType() const = 0;
-
- /**
- *
- */
- virtual TPackageDataType PackageTransferType() const = 0;
-
- public: // Common attributes
-
- /**
- *
- */
- IMPORT_C const CMMCScBkupDriveAndOperationTypeManager& DriveAndOperations() const;
-
- /**
- *
- */
- IMPORT_C void SetArchiveInfosL(RPointerArray<CMMCScBkupArchiveInfo>& aInfos);
-
- /**
- *
- */
- RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& ArchiveInfos();
-
- /**
- *
- */
- const CMMCScBkupArchiveInfo& ArchiveInfo(TBitFlags aCategory) const;
-
- /**
- *
- */
- const TDesC& FileName(TInt aIndex) const;
-
- /**
- *
- */
- TBitFlags Categories() { return iCategories; }
-
- private: // Data members
-
- //
- CMMCScBkupDriveAndOperationTypeManager* iDriveAndOperations;
- //
- RMMCScBkupPointerArray< CMMCScBkupArchiveInfo > iArchiveInfos;
- //
- TBitFlags iCategories;
- };
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupOpParamsBackupFull) : public CMMCScBkupOpParamsBase
- {
- public:
-
- /**
- *
- */
- IMPORT_C static CMMCScBkupOpParamsBackupFull* NewL( TResourceReader& aDriveReader, TResourceReader& aCategoryReader,
- TDriveNumber aDrive, TBitFlags aCategories );
-
- /**
- *
- */
- IMPORT_C ~CMMCScBkupOpParamsBackupFull();
-
- private:
-
- /**
- *
- */
- CMMCScBkupOpParamsBackupFull( TDriveNumber aDrive );
-
- /**
- *
- */
- void ConstructL( TResourceReader& aDriveReader, TResourceReader& aCategoryReader, TBitFlags aCategories );
-
- /**
- *
- */
- void ReadFromResourceL( TResourceReader& aReader );
-
- public: // From CMMCScBkupOpParamsBase
- IMPORT_C TMMCScBkupOperationType AssociatedOpType() const;
- IMPORT_C TBURPartType PartType() const;
- IMPORT_C TBackupIncType IncrementType() const;
- IMPORT_C TTransferDataType PassiveTransferType() const;
- IMPORT_C TTransferDataType ActiveTransferType() const;
- IMPORT_C TPackageDataType PackageTransferType() const;
-
- private: // Data members
-
- //
- TDriveNumber iDrive;
- };
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupOpParamsRestoreFull) : public CMMCScBkupOpParamsBase
- {
- public:
-
- /**
- *
- */
- IMPORT_C static CMMCScBkupOpParamsRestoreFull* NewL( TResourceReader& aDriveReader, TBitFlags aCategories );
-
- /**
- *
- */
- IMPORT_C ~CMMCScBkupOpParamsRestoreFull();
-
- private:
-
- /**
- *
- */
- CMMCScBkupOpParamsRestoreFull();
-
- public: // From CMMCScBkupOpParamsBase
- IMPORT_C TMMCScBkupOperationType AssociatedOpType() const;
- IMPORT_C TBURPartType PartType() const;
- IMPORT_C TBackupIncType IncrementType() const;
- IMPORT_C TTransferDataType PassiveTransferType() const;
- IMPORT_C TTransferDataType ActiveTransferType() const;
- IMPORT_C TPackageDataType PackageTransferType() const;
- };
-
-
-
-
-
-#endif // __CMMCSCBKUPOPERATIONPARAMETERS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupState.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/*
-* Copyright (c) 2002 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: Declaration for CMMCScBkupState
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATE_H__
-#define __CMMCSCBKUPSTATE_H__
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "MMMCScBkupDriver.h"
-#include "MMCScBkupStateIds.h"
-#include "RMMCScBkupPointerArray.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class CMMCScBkupState;
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupState) : public CActive
- {
- public:
-
- /**
- * Enumeration specifying how state is supposed to be handled
- */
- enum TStateExecution
- {
- EStateOnce = 0,
- EStatePerCategory,
- EStatePerCategoryCommon
- };
-
- /**
- * Destructor
- */
- ~CMMCScBkupState();
-
- protected:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupState( MMMCScBkupDriver& aDriver, TInt aPriority = CActive::EPriorityIdle );
-
- public:
-
- /**
- * Return the unique RTTI id of this state
- */
- virtual TMMCScBkupStateId StateId() const = 0;
-
- /**
- * Return the next state that should be executed
- * after this state has finished. This allows
- * for dynamic changes in the state machine
- */
- virtual TMMCScBkupStateId NextStateId() const = 0;
-
- /**
- * Return false if no need for category specific actions, otherwise true
- */
- virtual TStateExecution CategorySpecific() const { return EStateOnce; }
-
- /**
- * Perform the action associated with this
- * state
- */
- void ExecuteL(TRequestStatus& aObserver);
-
- protected: // Virtual framework
-
- /**
- * Perform the initial action associated with this
- * state
- */
- virtual void PerformStateInitL() = 0;
-
- /**
- * Perform some asynchronous operation
- */
- virtual void PerformAsynchronousStateStepL();
-
- /**
- * Perform some asynchronous cancellation
- */
- virtual void PerformAsynchronousCancellation();
-
- /**
- * Called just before observer's request is completed
- * in the case of an error-free operation. Not called
- * when errors occur during state processing.
- */
- virtual void PerformLastRightsL();
-
- /**
- * Called from RunError
- */
- virtual TBool PerformAsynchronousErrorCleanup(TInt aError);
-
- private: // Virtual framework
-
- /**
- * Default behaviour is to panic if called
- */
- void RunL();
-
- /**
- *
- */
- void DoCancel();
-
- /**
- * Default behaviour is to return KErrNone
- */
- TInt RunError(TInt aError);
-
- protected: // Internal API
-
- /**
- *
- */
- inline MMMCScBkupDriver& Driver() const { return iDriver; }
-
- /**
- *
- */
- inline MMMCScBkupArchiveDataInterface& ADI() const { return iDriver.DrvADI(); }
-
- /**
- *
- */
- void CompleteSelf(TInt aCompletionCode = KErrNone);
-
- /**
- *
- */
- void SetObserver(TRequestStatus& aStatus);
-
- private: // Internal API
-
- /**
- *
- */
- void CompleteObserver(TInt aCompletionCode);
-
- private: // Member data
-
- // Driver
- MMMCScBkupDriver& iDriver;
- // Observer
- TRequestStatus* iObserver;
- };
-
-
-
-
-
-#endif // __CMMCSCBKUPSTATE_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateArchiveOpActiveData.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpActiveData
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEARCHIVEOPACTIVEDATA_H__
-#define __CMMCSCBKUPSTATEARCHIVEOPACTIVEDATA_H__
-
-// System includes
-#include <connect/sbtypes.h>
-
-// User includes
-#include "CMMCScBkupStateOpAware.h"
-#include "TMMCScBkupArchiveVector.h"
-#include "CMMCScBkupTransferWriteRequest.h"
-#include "CMMCScBkupTransferReadRequest.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class CMMCScBkupDataOwnerInfo;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpActiveData) : public CMMCScBkupStateOpAware, public MMMCScBkupIndexHandler
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateArchiveOpActiveData* NewL( MMMCScBkupDriver& aDriver );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupStateArchiveOpActiveData( );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateArchiveOpActiveData( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
-
- public: // From CMMCScBkupStateOpAware
- TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
- TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
-
- private: // From CMMCScBkupStateOpAware
- void PerformStateInitBackupL( TBool aPartial );
- void PerformStateInitRestoreL( TBool aPartial );
- void PerformAsynchronousStateStepBackupL( TBool aPartial );
- void PerformAsynchronousStateStepRestoreL( TBool aPartial );
- void PerformLastRightsBackupL( TBool aPartial );
- TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
- TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
-
- private: // From CMMCScBkupState
- void PerformAsynchronousCancellation();
-
- private: // From MMMCScBkupIndexHandler
- void AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive );
-
- private: // Internal members
-
- /**
- *
- */
- inline TBool AllDataOwnersHandled() const { return !iAtLeastOneDataOwnerIsNotYetReady; }
-
- /**
- *
- */
- void CheckNeedToStartRetryTimerL();
-
- private: // Member data
-
- //
- TInt iIndexValueCurrent;
- //
- TBool iAtLeastOneDataOwnerIsNotYetReady;
- //
- RTimer iTimer;
- //
- CMMCScBkupWriteDataTransferRequest< TTransferDataType >* iBackupTransferObject;
- //
- CMMCScBkupReadDataTransferRequest< TTransferDataType >* iRestoreTransferObject;
- };
-
-
-
-
-
-
-
-
-#endif // __CMMCSCBKUPSTATEARCHIVEOPACTIVEDATA_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateArchiveOpArchiveFooter.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpArchiveFooter
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEARCHIVEOPARCHIVEFOOTER_H__
-#define __CMMCSCBKUPSTATEARCHIVEOPARCHIVEFOOTER_H__
-
-// User includes
-#include "CMMCScBkupState.h"
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpArchiveFooter) : public CMMCScBkupState
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateArchiveOpArchiveFooter* NewL( MMMCScBkupDriver& aDriver );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateArchiveOpArchiveFooter( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
- TMMCScBkupStateId NextStateId() const;
- TStateExecution CategorySpecific() const { return EStatePerCategory; }
-
- private: // From CMMCScBkupState
- void PerformStateInitL();
- void PerformAsynchronousStateStepL();
- };
-
-
-#endif // __CMMCSCBKUPSTATEARCHIVEOPARCHIVEFOOTER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateArchiveOpArchiveHeader.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpArchiveHeader
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEARCHIVEOPARCHIVEHEADER_H__
-#define __CMMCSCBKUPSTATEARCHIVEOPARCHIVEHEADER_H__
-
-// User includes
-#include "CMMCScBkupState.h"
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpArchiveHeader) : public CMMCScBkupState
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateArchiveOpArchiveHeader* NewL( MMMCScBkupDriver& aDriver );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateArchiveOpArchiveHeader( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
- TMMCScBkupStateId NextStateId() const;
- TStateExecution CategorySpecific() const { return EStatePerCategory; }
-
- private: // From CMMCScBkupState
- void PerformStateInitL();
- void PerformAsynchronousStateStepL();
- };
-
-
-#endif // __CMMCSCBKUPSTATEARCHIVEOPARCHIVEHEADER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateArchiveOpDataOwners.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpDataOwners
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEARCHIVEOPDATAOWNERS_H__
-#define __CMMCSCBKUPSTATEARCHIVEOPDATAOWNERS_H__
-
-// User includes
-#include "CMMCScBkupStateOpAware.h"
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpDataOwners) : public CMMCScBkupStateOpAware
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateArchiveOpDataOwners* NewL( MMMCScBkupDriver& aDriver );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupStateArchiveOpDataOwners();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateArchiveOpDataOwners( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
-
- public: // From CMMCScBkupStateOpAware
- TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
- TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
-
- private: // From CMMCScBkupStateOpAware
-
- private: // From CMMCScBkupState
- void PerformStateInitBackupL( TBool aPartial );
- void PerformStateInitRestoreL( TBool aPartial );
- //
- void PerformAsynchronousStateStepBackupL( TBool aPartial );
- void PerformAsynchronousStateStepRestoreL( TBool aPartial );
- //
- void PerformLastRightsBackupL( TBool aPartial );
- void PerformLastRightsRestoreL( TBool aPartial );
- //
- TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
-
- private: // Member data
-
- //
- TInt iIndexValueCurrent;
- };
-
-
-#endif // __CMMCSCBKUPSTATEARCHIVEOPDATAOWNERS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateArchiveOpJavaData.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpJavaData
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEARCHIVEOPJAVADATA_H__
-#define __CMMCSCBKUPSTATEARCHIVEOPJAVADATA_H__
-
-// System includes
-#include <connect/sbtypes.h>
-
-// User includes
-#include "CMMCScBkupStateOpAware.h"
-#include "TMMCScBkupArchiveVector.h"
-#include "CMMCScBkupTransferWriteRequest.h"
-#include "CMMCScBkupTransferReadRequest.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class CMMCScBkupDataOwnerInfo;
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpJavaData) : public CMMCScBkupStateOpAware, public MMMCScBkupIndexHandler
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateArchiveOpJavaData* NewL( MMMCScBkupDriver& aDriver );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupStateArchiveOpJavaData( );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateArchiveOpJavaData( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
-
- public: // From CMMCScBkupStateOpAware
- TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
- TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
-
- private: // From CMMCScBkupStateOpAware
- void PerformStateInitBackupL( TBool aPartial );
- void PerformStateInitRestoreL( TBool aPartial );
- void PerformAsynchronousStateStepBackupL( TBool aPartial );
- void PerformAsynchronousStateStepRestoreL( TBool aPartial );
- void PerformLastRightsBackupL( TBool aPartial );
- void PerformLastRightsRestoreL( TBool aPartial );
- TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
- TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
-
- private: // From CMMCScBkupState
- void PerformAsynchronousCancellation();
-
- private: // From MMMCScBkupIndexHandler
- void AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive );
-
- private: // Internal enumerations
- enum TJavaState
- {
- EJavaStateIdle = 0,
- EJavaStateMidlet,
- EJavaStateMidletData
- };
-
- private: // Internal methods
- void BackupMidletL();
- void BackupMidletDataL();
- void RestoreMidletL();
- void RestoreMidletDataL();
-
- private: // Member data
-
- //
- TInt iIndexValueCurrent;
- //
- TJavaState iCurrentJavaState;
- //
- RArray<TMMCScBkupArchiveDriveAndVector> iRestoreEntries;
- //
- CMMCScBkupWriteDataTransferRequest< TJavaTransferType >* iBackupTransferObjectMidlet;
- CMMCScBkupWriteDataTransferRequest< TJavaTransferType >* iBackupTransferObjectMidletData;
- CMMCScBkupReadDataTransferRequest< TJavaTransferType >* iRestoreTransferObjectMidlet;
- CMMCScBkupReadDataTransferRequest< TJavaTransferType >* iRestoreTransferObjectMidletData;
- };
-
-
-
-
-
-#endif // __CMMCSCBKUPSTATEARCHIVEOPJAVADATA_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateArchiveOpPassiveData.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpPassiveData
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEARCHIVEOPPASSIVEDATA_H__
-#define __CMMCSCBKUPSTATEARCHIVEOPPASSIVEDATA_H__
-
-// System includes
-#include <connect/sbtypes.h>
-
-// User includes
-#include "CMMCScBkupStateOpAware.h"
-#include "TMMCScBkupArchiveVector.h"
-#include "CMMCScBkupTransferWriteRequest.h"
-#include "CMMCScBkupTransferReadRequest.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class CMMCScBkupDataOwnerInfo;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpPassiveData) : public CMMCScBkupStateOpAware, public MMMCScBkupIndexHandler
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateArchiveOpPassiveData* NewL( MMMCScBkupDriver& aDriver );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupStateArchiveOpPassiveData( );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateArchiveOpPassiveData( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
-
- public: // From CMMCScBkupStateOpAware
- TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
- TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
-
- private: // From CMMCScBkupStateOpAware
- void PerformStateInitBackupL( TBool aPartial );
- void PerformStateInitRestoreL( TBool aPartial );
- void PerformAsynchronousStateStepBackupL( TBool aPartial );
- void PerformAsynchronousStateStepRestoreL( TBool aPartial );
- void PerformLastRightsBackupL( TBool aPartial );
- TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
- TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
-
- private: // From CMMCScBkupState
- void PerformAsynchronousCancellation();
-
- private: // From MMMCScBkupIndexHandler
- void AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive );
-
- private: // Member data
-
- //
- TInt iIndexValueCurrent;
- //
- CMMCScBkupWriteDataTransferRequest< TTransferDataType >* iBackupTransferObject;
- //
- CMMCScBkupReadDataTransferRequest< TTransferDataType >* iRestoreTransferObject;
- };
-
-
-
-
-#endif // __CMMCSCBKUPSTATEARCHIVEOPPASSIVEDATA_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateArchiveOpPublicDataFiles.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpPublicDataFiles
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEARCHIVEOPPUBLICDATAFILES_H__
-#define __CMMCSCBKUPSTATEARCHIVEOPPUBLICDATAFILES_H__
-
-// System includes
-#include <connect/sbtypes.h>
-
-// User includes
-#include "CMMCScBkupStateOpAware.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class CMMCScBkupDataOwnerInfo;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpPublicDataFiles) : public CMMCScBkupStateOpAware
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateArchiveOpPublicDataFiles* NewL( MMMCScBkupDriver& aDriver );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateArchiveOpPublicDataFiles( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
-
- public: // From CMMCScBkupStateOpAware
- TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
- TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
-
- private: // From CMMCScBkupStateOpAware
- void PerformStateInitBackupL( TBool aPartial );
- void PerformStateInitRestoreL( TBool aPartial );
- void PerformAsynchronousStateStepBackupL( TBool aPartial );
- void PerformAsynchronousStateStepRestoreL( TBool aPartial );
- void PerformLastRightsBackupL( TBool aPartial );
- void PerformLastRightsRestoreL( TBool aPartial );
- TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
- TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
- void PerformAsynchronousCancellation();
-
- private: // Internal enumerations
-
- /**
- *
- */
- enum TState
- {
- EStateCommonIdle = 0,
- EStateCommonKickOff,
- EStateCommonProcessingFile,
- EStateBackupAddIndexRecord,
- EStateRestoreResetAttributes
- };
-
- private: // Internal methods
-
- /**
- *
- */
- void CompressingAndWritingFileL();
-
- /**
- *
- */
- void DecompressingAndWritingFileL();
-
- /**
- *
- */
- void AddIndexRecordL();
-
- /**
- *
- */
- void RestoreFileAttributesL();
-
- /**
- *
- */
- inline void SetState(TState aState) { iState = aState; }
-
- /**
- *
- */
- inline TState State() const { return iState; }
-
- private: // Member data
-
- //
- TInt iIndexValueCurrent;
- //
- TState iState;
- };
-
-
-#endif // __CMMCSCBKUPSTATEARCHIVEOPPUBLICDATAFILES_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateArchiveOpSystemData.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpSystemData
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEARCHIVEOPSYSTEMDATA_H__
-#define __CMMCSCBKUPSTATEARCHIVEOPSYSTEMDATA_H__
-
-// System includes
-#include <connect/sbtypes.h>
-
-// User includes
-#include "CMMCScBkupStateOpAware.h"
-#include "TMMCScBkupArchiveVector.h"
-#include "CMMCScBkupTransferWriteRequest.h"
-#include "CMMCScBkupTransferReadRequest.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class CMMCScBkupDataOwnerInfo;
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpSystemData) : public CMMCScBkupStateOpAware, public MMMCScBkupIndexHandler
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateArchiveOpSystemData* NewL( MMMCScBkupDriver& aDriver );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupStateArchiveOpSystemData( );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateArchiveOpSystemData( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
-
- public: // From CMMCScBkupStateOpAware
- TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
- TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
-
- private: // From CMMCScBkupStateOpAware
- void PerformStateInitBackupL( TBool aPartial );
- void PerformStateInitRestoreL( TBool aPartial );
- void PerformAsynchronousStateStepBackupL( TBool aPartial );
- void PerformAsynchronousStateStepRestoreL( TBool aPartial );
- void PerformLastRightsBackupL( TBool aPartial );
- void PerformLastRightsRestoreL( TBool aPartial );
- TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
- TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
-
- private: // From CMMCScBkupState
- void PerformAsynchronousCancellation();
-
- private: // From MMMCScBkupIndexHandler
- void AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive );
-
- private: // Member data
-
- //
- TInt iIndexValueCurrent;
- // Associated secure id of the data owner (if it has one)
- TSecureId iSecureId;
- //
- CMMCScBkupWriteDataTransferRequest< TPackageDataType >* iBackupTransferObject;
- CMMCScBkupReadDataTransferRequest< TPackageDataType >* iRestoreTransferObject;
- };
-
-
-
-
-
-#endif // __CMMCSCBKUPSTATEARCHIVEOPSYSTEMDATA_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateFactory.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateFactory
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEFACTORY_H__
-#define __CMMCSCBKUPSTATEFACTORY_H__
-
-// User includes
-#include "MMCScBkupStateIds.h"
-#include "MMCScBkupOperations.h"
-
-// Classes referenced
-class CMMCScBkupState;
-class MMMCScBkupDriver;
-
-// Type definitions
-typedef RPointerArray<CMMCScBkupState> RMMCScBkupStateArray;
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-class CMMCScBkupStateFactory : public CBase
- {
- public:
- /**
- *
- */
- static CMMCScBkupStateFactory* FactoryByOperationTypeLC( TMMCScBkupOperationType aOperationType );
-
- protected:
-
- /**
- *
- */
- CMMCScBkupStateFactory();
-
- public: // From CMMCScBkupStateFactory
-
- /**
- *
- */
- virtual CMMCScBkupState* GetStateLC(TMMCScBkupStateId aCurrentState, MMMCScBkupDriver& aDriver) = 0;
- };
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateFactoryBackup) : public CMMCScBkupStateFactory
- {
- public:
- static CMMCScBkupStateFactoryBackup* NewL();
-
- private:
- CMMCScBkupStateFactoryBackup();
-
- public: // From CMMCScBkupStateFactory
- CMMCScBkupState* GetStateLC(TMMCScBkupStateId aRequiredType, MMMCScBkupDriver& aDriver);
- };
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateFactoryRestore) : public CMMCScBkupStateFactory
- {
- public:
- static CMMCScBkupStateFactoryRestore* NewL();
-
- private:
- CMMCScBkupStateFactoryRestore();
-
- public: // From CMMCScBkupStateFactory
- CMMCScBkupState* GetStateLC(TMMCScBkupStateId aRequiredType, MMMCScBkupDriver& aDriver);
- };
-
-
-
-
-#endif // __CMMCSCBKUPSTATEFACTORY_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateGetDataOwnerStatuses.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateGetDataOwnerStatuses
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEGETDATAOWNERSTATUSES_H__
-#define __CMMCSCBKUPSTATEGETDATAOWNERSTATUSES_H__
-
-// User includes
-#include "CMMCScBkupState.h"
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateGetDataOwnerStatuses) : public CMMCScBkupState
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateGetDataOwnerStatuses* NewL( MMMCScBkupDriver& aDriver );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupStateGetDataOwnerStatuses( );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateGetDataOwnerStatuses( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
- TMMCScBkupStateId NextStateId() const;
- TStateExecution CategorySpecific() const { return EStatePerCategory; }
-
- private: // From CMMCScBkupState
- void PerformStateInitL();
- void PerformAsynchronousStateStepL();
-
- private: // Internal state enumeration
-
- /**
- *
- */
- enum TState
- {
- EPrearingQuery = 0,
- EGettingStatus,
- EProcessingResults
- };
-
- private: // Internal methods
- inline TState State() const { return iState; }
- inline void SetState(TState aState) { iState = aState; }
- //
- void PrepareQueryL();
- void ProcessStatusResultsL();
-
- private: // Member data
-
- //
- RSIDStatusArray iStatusArray;
- //
- TState iState;
- };
-
-
-
-
-#endif // __CMMCSCBKUPSTATEGETDATAOWNERSTATUSES_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateGetDataOwners.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateGetDataOwners
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEGETDATAOWNERS_H__
-#define __CMMCSCBKUPSTATEGETDATAOWNERS_H__
-
-// User includes
-#include "CMMCScBkupState.h"
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateGetDataOwners) : public CMMCScBkupState
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateGetDataOwners* NewL( MMMCScBkupDriver& aDriver );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateGetDataOwners( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
- TMMCScBkupStateId NextStateId() const;
-
- private: // From CMMCScBkupState
- void PerformStateInitL();
- void PerformAsynchronousStateStepL();
- };
-
-
-
-
-#endif // __CMMCSCBKUPSTATEGETDATAOWNERS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateNotifyAllSnapshotsSupplied.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateNotifyAllSnapshotsSupplied
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATENOTIFYALLSNAPSHOTSSUPPLIED_H__
-#define __CMMCSCBKUPSTATENOTIFYALLSNAPSHOTSSUPPLIED_H__
-
-// User includes
-#include "MMCScBkupOperations.h"
-#include "CMMCScBkupState.h"
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateNotifyAllSnapshotsSupplied) : public CMMCScBkupState
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateNotifyAllSnapshotsSupplied* NewL( MMMCScBkupDriver& aDriver );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateNotifyAllSnapshotsSupplied( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
- TMMCScBkupStateId NextStateId() const;
-
- private: // From CMMCScBkupState
- void PerformStateInitL();
- };
-
-
-
-
-#endif // __CMMCSCBKUPSTATENOTIFYALLSNAPSHOTSSUPPLIED_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateOpAware.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateOpAware
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEOPAWARE_H__
-#define __CMMCSCBKUPSTATEOPAWARE_H__
-
-// User includes
-#include "CMMCScBkupState.h"
-#include "MMCScBkupOperations.h"
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateOpAware) : public CMMCScBkupState
- {
- protected:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateOpAware( MMMCScBkupDriver& aDriver, TInt aPriority = CActive::EPriorityIdle );
-
- public: // From CMMCScBkupState
-
- /**
- *
- */
- TMMCScBkupStateId NextStateId() const;
-
- /**
- *
- */
- TStateExecution CategorySpecific() const { return EStatePerCategory; }
-
- protected: // New Framework
-
- /**
- *
- */
- virtual TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const = 0;
-
- /**
- *
- */
- virtual TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const = 0;
-
- protected: // New Framework
-
- /**
- *
- */
- virtual void PerformStateInitBackupL( TBool aPartial ) = 0;
-
- /**
- *
- */
- virtual void PerformStateInitRestoreL( TBool aPartial ) = 0;
-
- /**
- *
- */
- virtual void PerformAsynchronousStateStepBackupL( TBool aPartial );
-
- /**
- *
- */
- virtual void PerformAsynchronousStateStepRestoreL( TBool aPartial );
-
- /**
- *
- */
- virtual void PerformAsynchronousCancellationBackup( TBool aPartial );
-
- /**
- *
- */
- virtual void PerformAsynchronousCancellationRestore( TBool aPartial );
-
- /**
- *
- */
- virtual void PerformLastRightsBackupL( TBool aPartial );
-
- /**
- *
- */
- virtual void PerformLastRightsRestoreL( TBool aPartial );
-
- /**
- *
- */
- virtual TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
-
- /**
- *
- */
- virtual TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
-
- protected: // From CMMCScBkupState
- void PerformStateInitL();
- void PerformAsynchronousStateStepL();
- void PerformAsynchronousCancellation();
- void PerformLastRightsL();
- TBool PerformAsynchronousErrorCleanup( TInt aError );
- };
-
-
-
-
-
-#endif // __CMMCSCBKUPSTATEOPAWARE_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateRequestListOfPublicFiles.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateRequestListOfPublicFiles
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEREQUESTLISTOFPUBLICFILES_H__
-#define __CMMCSCBKUPSTATEREQUESTLISTOFPUBLICFILES_H__
-
-// User includes
-#include "CMMCScBkupState.h"
-#include "CMMCScBkupDriveSpecificRequest.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class CMMCScBkupDataOwnerInfo;
-class CMMCScBkupStateRequestSpecificPublicFileInfo;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateRequestListOfPublicFiles) : public CMMCScBkupState
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateRequestListOfPublicFiles* NewL( MMMCScBkupDriver& aDriver );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupStateRequestListOfPublicFiles( );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateRequestListOfPublicFiles( MMMCScBkupDriver& aDriver );
-
- /**
- * Second phase constructor
- */
- void ConstructL( );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
- TMMCScBkupStateId NextStateId() const;
- TStateExecution CategorySpecific() const { return EStatePerCategory; }
-
- private: // From CMMCScBkupState
- void PerformStateInitL();
- void PerformAsynchronousStateStepL();
- TBool PerformAsynchronousErrorCleanup(TInt aError);
- void PerformAsynchronousCancellation();
- void PerformLastRightsL();
-
- private: // Data members
-
- //
- TInt iCurrentDataOwnerIndex;
- //
- CMMCScBkupStateRequestSpecificPublicFileInfo* iRequestObject;
- };
-
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-class CMMCScBkupStateRequestSpecificPublicFileInfo : public CMMCScBkupDriveSpecificRequest
- {
- public:
-
- /**
- *
- */
- static CMMCScBkupStateRequestSpecificPublicFileInfo* NewL( MMMCScBkupDriver& aDriver );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateRequestSpecificPublicFileInfo( MMMCScBkupDriver& aDriver );
-
- public: // API
-
- /**
- *
- */
- void RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver );
-
- private: // From CActive
- void RunL();
- void DoCancel();
-
- private: // Internal methods
- inline MMMCScBkupDriver& Driver() { return iDriver; }
-
- private: // Member data
-
- //
- MMMCScBkupDriver& iDriver;
- //
- CMMCScBkupDataOwnerInfo* iOwner;
- };
-
-
-
-
-
-
-
-#endif // __CMMCSCBKUPSTATEREQUESTLISTOFPUBLICFILES_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateRequestSizeOfBackupData.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateRequestSizeOfBackupData
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEREQUESTSIZEOFBACKUPDATA_H__
-#define __CMMCSCBKUPSTATEREQUESTSIZEOFBACKUPDATA_H__
-
-// User includes
-#include "MMCScBkupOperations.h"
-#include "CMMCScBkupState.h"
-#include "CMMCScBkupDriveSpecificRequest.h"
-
-// Classes referenced
-class CMMCScBkupDataOwnerInfo;
-class CMMCScBkupStateRequestSizeOfDataOwner;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateRequestSizeOfBackupData) : public CMMCScBkupState
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateRequestSizeOfBackupData* NewL( MMMCScBkupDriver& aDriver );
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupStateRequestSizeOfBackupData( );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateRequestSizeOfBackupData( MMMCScBkupDriver& aDriver );
-
- /**
- * Second phase constructor
- */
- void ConstructL( );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
- TMMCScBkupStateId NextStateId() const;
- TStateExecution CategorySpecific() const { return EStatePerCategory; }
-
- private: // From CMMCScBkupState
- void PerformStateInitL();
- void PerformAsynchronousStateStepL();
- TBool PerformAsynchronousErrorCleanup( TInt aError );
- void PerformAsynchronousCancellation();
-
- private: // Data members
-
- //
- TInt iCurrentDataOwnerIndex;
- //
- CMMCScBkupStateRequestSizeOfDataOwner* iRequestObject;
- };
-
-
-
-
-
-
-
-/**
-* NB. This class only sizes active, passive, system and java data. Public
-* data is sized elsewhere.
-*
-* @since 3.0
-*/
-class CMMCScBkupStateRequestSizeOfDataOwner : public CMMCScBkupDriveSpecificRequest
- {
- public:
-
- /**
- *
- */
- static CMMCScBkupStateRequestSizeOfDataOwner* NewL( MMMCScBkupDriver& aDriver );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateRequestSizeOfDataOwner( MMMCScBkupDriver& aDriver );
-
- public: // API
-
- /**
- *
- */
- void RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver );
-
- private: // From CActive
- void RunL();
- void DoCancel();
-
- private: // Internal methods
- inline MMMCScBkupDriver& Driver() { return iDriver; }
- //
- TUint GetActiveAndPassiveDataSizesL( const CDataOwnerInfo& aOwner, CSBGenericDataType& aIdentifier, TDriveNumber aDrive );
- TUint GetSIDSpecificSizeL( TSecureId aSecureID, TDriveNumber aDrive, TTransferDataType aDataType );
- TUint GetSystemDataSizesL( const CDataOwnerInfo& aOwner, CSBGenericDataType& aIdentifier, TDriveNumber aDrive );
- TUint GetJavaDataSizesL( const CDataOwnerInfo& aOwner, CSBGenericDataType& aIdentifier, TDriveNumber aDrive );
- TUint GetJavaSpecificSizeL( const TDesC& aHash, TDriveNumber aDrive, TJavaTransferType aDataType );
-
- private: // Member data
-
- //
- MMMCScBkupDriver& iDriver;
- //
- CMMCScBkupDataOwnerInfo* iOwner;
- };
-
-
-
-
-
-#endif // __CMMCSCBKUPSTATEREQUESTSIZEOFBACKUPDATA_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateSetPhoneMode.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupStateSetPhoneMode
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATESETPHONEMODE_H__
-#define __CMMCSCBKUPSTATESETPHONEMODE_H__
-
-// User includes
-#include "MMCScBkupOperations.h"
-#include "CMMCScBkupState.h"
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateSetPhoneMode) : public CMMCScBkupState
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateSetPhoneMode* NewL( MMMCScBkupDriver& aDriver );
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateSetPhoneMode( MMMCScBkupDriver& aDriver );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
- TMMCScBkupStateId NextStateId() const;
-
- private: // From CMMCScBkupState
- void PerformStateInitL();
- void PerformAsynchronousStateStepL();
- };
-
-
-
-
-#endif // __CMMCSCBKUPSTATESETPHONEMODE_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupStateValidateDiskSpace.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
-* Copyright (c) 2005-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: Declaration for CMMCScBkupStateValidateDiskSpace
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPSTATEVALIDATEDISKSPACE_H__
-#define __CMMCSCBKUPSTATEVALIDATEDISKSPACE_H__
-
-// User includes
-#include "CMMCScBkupState.h"
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupStateValidateDiskSpace) : public CMMCScBkupState
- {
- public:
-
- /**
- * Static constructor
- */
- static CMMCScBkupStateValidateDiskSpace* NewL( MMMCScBkupDriver& aDriver );
-
- /**
- * Destructor
- */
- ~CMMCScBkupStateValidateDiskSpace();
-
- private:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupStateValidateDiskSpace( MMMCScBkupDriver& aDriver );
-
- // Second phase
- void ConstructL( );
-
- public: // From CMMCScBkupState
- TMMCScBkupStateId StateId() const;
- TMMCScBkupStateId NextStateId() const;
- TStateExecution CategorySpecific() const { return EStatePerCategoryCommon; }
-
- private: // From CMMCScBkupState
- void PerformStateInitL();
- void PerformAsynchronousStateStepL();
-
- private: // Internal methods
-
- /**
- *
- */
- void ValidateFreeSpaceBeforeBackupL();
- void ValidateFreeSpaceBeforeRestoreL();
-
- private: // Member data
-
- //
- TInt64 iCumulatedSize;
- //
- RArray<TMMCScBkupDriveAndSize> iDriveSizes;
- //
- RArray<TMMCScBkupDriveAndSize> iDriveMaxFileSizes;
- };
-
-
-#endif // __CMMCSCBKUPSTATEVALIDATEDISKSPACE_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupTransferReadRequest.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupReadDataTransferRequestBase
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPTRANSFERREADREQUEST_H__
-#define __CMMCSCBKUPTRANSFERREADREQUEST_H__
-
-// User includes
-#include "MMCScBkupConfig.h"
-#include "MMCScBkupSBEUtils.h"
-#include "TMMCScBkupOwnerDataType.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "CMMCScBkupTransferRequest.h"
-#include "CMMCScBkupIndexWithIdentifier.h"
-
-// Classes referenced
-class MMMCScBkupDriver;
-class CMMCScBkupArchiveFooter;
-
-// Constants
-const TInt KMMCScBkupDefaultChunkReadSize = 4096; // 4k read chunks
-
-// CMMCScBkupIndexEntry
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupReadDataTransferRequestBase) : public CMMCScBkupTransferRequestBase
- {
- public:
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupReadDataTransferRequestBase();
-
- protected:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupReadDataTransferRequestBase( MMMCScBkupDriver& aDriver,
- TMMCScBkupOwnerDataType aElementType,
- TInt aChunkSize = KMMCScBkupDefaultChunkReadSize,
- TInt aPriority = CActive::EPriorityIdle );
-
- public: // API
-
- /**
- *
- */
- void RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver, const RArray<TMMCScBkupArchiveDriveAndVector>& aEntries );
-
- protected: // New Framework API
-
- /**
- *
- */
- virtual CSBGenericTransferType* PrepareTransferTypeL( const CSBGenericDataType& aGeneric,
- TDriveNumber aDrive, TInt aVersion ) const = 0;
-
- private: // From CMMCScBkupTransferRequest
- TBool ProcessChunkOfDataL();
- void PrepareDataTransferL();
-
- private: // Internal methods
-
- /**
- *
- */
- void ReadChunkL( TDes8& aSink, TInt aLength );
-
- /**
- *
- */
- TBool DoProcessChunkOfDataL();
-
- /**
- *
- */
- TBool PrepareForNextEntry();
-
- /**
- *
- */
- TDriveNumber CurrentDrive() const;
-
- /**
- *
- */
- const TMMCScBkupArchiveVector& CurrentReadInfo() const;
-
- /**
- *
- */
- const TMMCScBkupArchiveDriveAndVector& CurrentEntry() const;
-
- /**
- *
- */
- inline TInt CurrentOffset() const { return iCurrentOffset; }
-
- private: // From CActive
- TInt RunError( TInt aError );
-
- private: // Debugging support
-
- /**
- *
- */
-#ifdef DEBUGGING_DATA_TRANSFER
- void DumpTransferDataL( RFs& aFsSession, const TDesC8& aData ) const;
-#endif
-
- private: // Member data
-
- // Owned externally
- //
- const RArray<TMMCScBkupArchiveDriveAndVector>* iEntries;
-
- // Owned by this object
-
- // Pointer to the SBE's shared chunk. It *must* be a reference
- // because otherwise the SBE loses track of what we actually write
- // to the chunk!
- TPtr8* iTransferChunkPointer;
- //
- const TInt iReadChunkSize;
- //
- TInt iCurrentIndex;
- //
- TBool iFinishedSupplyingData;
- //
- CSBGenericTransferType* iTransferType;
- //
- TInt iCurrentOffset;
- //
- HBufC8* iTemporaryTransferSink;
- };
-
-
-
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-template <class Type>
-class CMMCScBkupReadDataTransferRequest : public CMMCScBkupReadDataTransferRequestBase
- {
- public: // Construction
-
- /**
- *
- */
- inline static CMMCScBkupReadDataTransferRequest* NewL( MMMCScBkupDriver& aDriver,
- TMMCScBkupOwnerDataType aElementType,
- Type aTransferEnumType,
- TInt aChunkSize = KMMCScBkupDefaultChunkReadSize,
- TInt aPriority = CActive::EPriorityIdle )
- {
- CMMCScBkupReadDataTransferRequest<Type>* self = new(ELeave) CMMCScBkupReadDataTransferRequest<Type>( aDriver, aElementType, aTransferEnumType, aChunkSize, aPriority );
- return self;
- }
-
- private: // Internal construction
-
- /**
- * C++ default constructor
- */
- inline CMMCScBkupReadDataTransferRequest( MMMCScBkupDriver& aDriver,
- TMMCScBkupOwnerDataType aElementType,
- Type aTransferEnumType,
- TInt aChunkSize = KMMCScBkupDefaultChunkReadSize,
- TInt aPriority = CActive::EPriorityIdle )
- : CMMCScBkupReadDataTransferRequestBase( aDriver, aElementType, aChunkSize, aPriority),
- iTransferEnumType( aTransferEnumType )
- {
- }
-
- private: // From CMMCScBkupTransferRequest
- inline CSBGenericTransferType* PrepareTransferTypeL( const CSBGenericDataType& aGeneric,
- TDriveNumber aDrive, TInt aVersion ) const
- {
- CSBGenericTransferType* transferType = MMCScBkupSBEUtils::TransferTypeLC( aGeneric, aDrive,
- iTransferEnumType, aVersion );
- CleanupStack::Pop( transferType );
- return transferType;
- }
-
- private: // Member data
-
- //
- Type iTransferEnumType;
- };
-
-
-
-#endif // __CMMCSCBKUPTRANSFERREADREQUEST_H__
-
-// End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupTransferRequest.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupTransferRequestBase
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPTRANSFERREQUEST_H__
-#define __CMMCSCBKUPTRANSFERREQUEST_H__
-
-// System includes
-#include <e32base.h>
-#include <connect/sbeclient.h>
-
-// User includes
-#include "TMMCScBkupDriveFilter.h"
-#include "TMMCScBkupOwnerDataType.h"
-#include "TMMCScBkupArchiveVector.h"
-
-// Namespaces
-using namespace conn;
-
-// Classes referenced
-class CMMCScBkupDataOwnerInfo;
-class MMMCScBkupDriver;
-class TMMCScBkupArchiveVector;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupTransferRequestBase) : public CActive
- {
- public:
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupTransferRequestBase();
-
- protected:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupTransferRequestBase( MMMCScBkupDriver& aDriver, TMMCScBkupOwnerDataType aElementType, TBool aUpdateOperationalSizes = ETrue, TInt aPriority = CActive::EPriorityIdle );
-
- public: // API
-
- /**
- *
- */
- virtual void RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver );
-
- protected: // From CActive
- void RunL();
- void DoCancel();
- TInt RunError( TInt aError );
-
- protected: // State relation
-
- /**
- *
- */
- enum TState
- {
- EIdle = 0,
- EFinished,
- //
- ETransferData,
- EProcessData
- };
-
- /**
- *
- */
- inline TState State() const { return iState; }
-
- /**
- *
- */
- inline void SetState( TState aState ) { iState = aState; }
-
- protected: // Internal framework API
-
- /**
- *
- */
- virtual TBool ProcessChunkOfDataL() = 0;
-
- /**
- *
- */
- virtual void PrepareDataTransferL() = 0;
-
- /**
- *
- */
- virtual TDriveNumber CurrentDrive() const = 0;
-
- /**
- *
- */
- virtual void SingleDriveTransferCompleteL();
-
- /**
- *
- */
- virtual void TransferCompleteL();
-
- protected: // Internal methods
-
- /**
- *
- */
- void CompleteSelf( TInt aCompletionCode = KErrNone );
-
- /**
- *
- */
- inline MMMCScBkupDriver& Driver() { return iDriver; }
-
- /**
- *
- */
- inline CMMCScBkupDataOwnerInfo& DataOwner() { return *iDataOwner; }
-
- /**
- *
- */
- inline const CMMCScBkupDataOwnerInfo& DataOwner() const { return *iDataOwner; }
-
- /**
- *
- */
- inline TMMCScBkupArchiveVector& Info() { return iCurrentInfo; }
-
- /**
- *
- */
- inline const TMMCScBkupArchiveVector& Info() const { return iCurrentInfo; }
-
- /**
- *
- */
- inline TMMCScBkupOwnerDataType ElementType() const { return iElementType; }
-
- /**
- *
- */
- inline void DataTransferred( TInt aAmount ) { iDataTransferred += aAmount; }
-
- /**
- *
- */
- inline TInt AmountOfDataTransferred() const { return iDataTransferred; }
-
- /**
- *
- */
- inline void ResetDataTransferCounter() { iDataTransferred = 0; }
-
- private: // Internal methods
-
- /**
- *
- */
- void SetObserver( TRequestStatus& aObserver );
-
- /**
- *
- */
- void CompleteObserverRequest( TInt aCompletionCode );
-
- private: // Internal state methods
-
- /**
- *
- */
- void ProcessDataChunkL();
-
- private: // Member data
-
- // Owned externally
- //
- MMMCScBkupDriver& iDriver;
- //
- CMMCScBkupDataOwnerInfo* iDataOwner;
- //
- TRequestStatus* iObserver;
-
- // Owned by this class
- //
- TInt iDataTransferred;
- //
- TState iState;
- //
- TMMCScBkupArchiveVector iCurrentInfo;
- //
- const TMMCScBkupOwnerDataType iElementType;
- //
- const TBool iUpdateOperationalSizes;
- };
-
-
-
-
-
-
-#endif // __CMMCSCBKUPTRANSFERREQUEST_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/CMMCScBkupTransferWriteRequest.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,235 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for CMMCScBkupWriteDataTransferRequestBase
-*
-*
-*/
-
-#ifndef __CMMCSCBKUPTRANSFERWRITEREQUEST_H__
-#define __CMMCSCBKUPTRANSFERWRITEREQUEST_H__
-
-// User includes
-#include "MMCScBkupConfig.h"
-#include "MMCScBkupSBEUtils.h"
-#include "TMMCScBkupOwnerDataType.h"
-#include "CMMCScBkupTransferRequest.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-
-// Classes referenced
-class CMMCScBkupArchiveFooter;
-class CMMCScBkupDriveAndOperationTypeManager;
-
-/**
-*
-*
-* @since 3.0
-*/
-class MMMCScBkupIndexHandler
- {
- public:
-
- /**
- *
- */
- virtual void AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive ) = 0;
- };
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(CMMCScBkupWriteDataTransferRequestBase) : public CMMCScBkupTransferRequestBase
- {
- public:
-
- /**
- * C++ destructor
- */
- ~CMMCScBkupWriteDataTransferRequestBase();
-
- public: // API
-
- /**
- *
- */
- void RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver, const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperations );
-
- protected:
-
- /**
- * C++ default constructor
- */
- CMMCScBkupWriteDataTransferRequestBase( MMMCScBkupDriver& aDriver,
- MMMCScBkupIndexHandler& aIndexHandler,
- TMMCScBkupOwnerDataType aElementType,
- TSBDerivedType aExpectedTransferType,
- TInt aPriority = CActive::EPriorityIdle );
-
- protected: // New Framework API
-
- /**
- *
- */
- virtual CSBGenericTransferType* PrepareTransferTypeL( const CSBGenericDataType& aGeneric,
- TDriveNumber aDrive, TInt aVersion ) const = 0;
-
- protected: // From CMMCScBkupTransferRequestBase
-
- /**
- *
- */
- TBool ProcessChunkOfDataL();
-
- /**
- *
- */
- void PrepareDataTransferL();
-
- /**
- *
- */
- TDriveNumber CurrentDrive() const;
-
- private: // Internal methods
-
- /**
- *
- */
- inline void SetCurrentDrive( TDriveNumber aDrive ) { iCurrentDrive = aDrive; }
-
- /**
- *
- */
- void ValidateTransferInfoL( CSBGenericTransferType* aInfo );
-
- /**
- *
- */
- void RequestDataTransferL();
-
- private: // From CActive
- TInt RunError( TInt aError );
-
- private:
-
- /**
- *
- */
-#ifdef DEBUGGING_DATA_TRANSFER
- void DumpTransferDataL( RFs& aFsSession, const TDesC8& aData ) const;
-#endif
-
-
- private: // Member data
-
- // Owned by this class
- //
- TMMCScBkupDriveFilter iDriveFilter;
- //
- MMMCScBkupIndexHandler& iIndexHandler;
- //
- const TSBDerivedType iExpectedTransferType;
- //
- const CMMCScBkupDriveAndOperationTypeManager* iDriveAndOperations;
- //
- RWriteStream iStream;
- //
- TBool iStreamIsOpen;
- //
- CSBGenericTransferType* iTransferType;
- //
- TBool iAdditionalTransferRequired;
- //
- TDriveNumber iCurrentDrive;
- };
-
-
-
-
-
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-template <class Type>
-class CMMCScBkupWriteDataTransferRequest : public CMMCScBkupWriteDataTransferRequestBase
- {
- public: // Construction
-
- /**
- * Static constructor
- */
- inline static CMMCScBkupWriteDataTransferRequest* NewL( MMMCScBkupDriver& aDriver,
- MMMCScBkupIndexHandler& aIndexHandler,
- TMMCScBkupOwnerDataType aElementType,
- TSBDerivedType aExpectedTransferType,
- Type aTransferEnumType,
- TInt aPriority = CActive::EPriorityIdle )
- {
- CMMCScBkupWriteDataTransferRequest<Type>* self = new(ELeave) CMMCScBkupWriteDataTransferRequest<Type>( aDriver, aIndexHandler, aElementType, aExpectedTransferType, aTransferEnumType, aPriority );
- return self;
- }
-
- private: // Internal construction
-
- /**
- * C++ default constructor
- */
- inline CMMCScBkupWriteDataTransferRequest( MMMCScBkupDriver& aDriver,
- MMMCScBkupIndexHandler& aIndexHandler,
- TMMCScBkupOwnerDataType aElementType,
- TSBDerivedType aExpectedTransferType,
- Type aTransferEnumType,
- TInt aPriority )
- : CMMCScBkupWriteDataTransferRequestBase( aDriver, aIndexHandler, aElementType, aExpectedTransferType, aPriority ),
- iTransferEnumType( aTransferEnumType )
- {
- }
-
- private: // From CMMCScBkupTransferRequest
- inline CSBGenericTransferType* PrepareTransferTypeL( const CSBGenericDataType& aGeneric,
- TDriveNumber aDrive, TInt aVersion ) const
- {
- CSBGenericTransferType* transferType = MMCScBkupSBEUtils::TransferTypeLC( aGeneric, aDrive,
- iTransferEnumType, aVersion );
- CleanupStack::Pop( transferType );
- return transferType;
- }
-
- private: // Member data
-
- //
- Type iTransferEnumType;
- };
-
-
-
-
-
-#endif // __CMMCSCBKUPTRANSFERWRITEREQUEST_H__
-
-// End of File
--- a/filemanager/bkupengine/inc/MMCScBkupArchiveFlags.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for TMMCScBkupArchiveFlags
-*
-*
-*/
-
-#ifndef __MMCSCBKUPARCHIVEFLAGS_H__
-#define __MMCSCBKUPARCHIVEFLAGS_H__
-
-enum TMMCScBkupArchiveFlags
- {
- EMMCScBkupArchiveFlagsDefault = 0x000,
- EMMCScBkupArchiveFlagsContentValid = 0x001
- };
-
-
-#endif // __MMCSCBKUPARCHIVEFLAGS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/MMCScBkupArchiveUtils.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for MMCScBkupArchiveUtils
-*
-*
-*/
-
-#ifndef __MMCSCBKUPARCHIVEUTILS_H__
-#define __MMCSCBKUPARCHIVEUTILS_H__
-
-// System includes
-#include <f32file.h>
-#include <s32strm.h>
-#include <babitflags.h>
-
-// User includes
-#include "TMMCScBkupArchiveVector.h"
-
-// Classes referenced
-class CMMCScBkupArchiveHeader;
-class MMMCScBkupArchiveDataInterface;
-
-// Constants
-const TInt KMMCScBkupArchiveFileFormatFirstRestorableMajorVersion = 1;
-const TInt KMMCScArchiveUidsByteCount = sizeof( TCheckedUid );
-const TInt KMMCScArchiveVersionByteCount = sizeof( TInt8 ) + sizeof( TInt8 ) + sizeof( TInt16 );
-const TInt KMMCScArchiveFooterLengthByteCount = sizeof( TUint32 );
-const TInt KMMCScArchiveFlagsByteCount = sizeof( TUint32 );
-const TInt KMMCScArchiveCrcByteCount = sizeof( TUint32 );
-const TInt KMMCScArchiveCategoryByteCount = sizeof( TUint32 );
-const TInt KMMCScSpareByteCount = 5 * sizeof(TInt32);
-const TInt KMMCScArchivePhoneModelStringLength = sizeof(TUint8);
-
-/**
-*
-*
-* @since 3.0
-*/
-class MMCScBkupArchiveUtils
- {
- public: // API
-
- /**
- *
- */
- static void ArchiveUidType( TUidType& aType );
-
- /**
- *
- */
- static void ArchiveCheckedUid( TCheckedUid& aCheckedUids );
-
- /**
- *
- */
- static HBufC8* PhoneModelFromArchiveLC( MMMCScBkupArchiveDataInterface& aADI );
-
- /**
- *
- */
- static void ReadPhoneValidityInformationL( RFs& aFsSession, const TDesC& aFileName, HBufC8*& aPhoneModelData, TBitFlags& aArchiveFlags, TVersion& aArchiveVersion );
-
- /**
- *
- */
- static TVersion ArchiveRunTimeFileFormatVersion();
-
- /**
- *
- */
- static const TMMCScBkupArchiveVector& WriteHeaderL( MMMCScBkupArchiveDataInterface& aADI, TBitFlags aCategory );
-
- /**
- *
- */
- static const TMMCScBkupArchiveVector& ReadHeaderL( MMMCScBkupArchiveDataInterface& aADI, CMMCScBkupArchiveHeader& aHeader );
-
- /**
- *
- */
- static void SetArchiveContentAsValidL( RFile64& aArchive );
-
- /**
- *
- */
- static void SetFooterLengthL( RFile64& aArchive, TInt aLength );
-
- /**
- *
- */
- static TBitFlags ReadBkUpCategoryInformationL( RFs& aFsSession, const TDesC& aFileName );
-
-#ifdef RD_FILE_MANAGER_BACKUP
- /**
- *
- */
- static void SetArchiveCrcsL( RFile64& aArchive, TUint32 aCrc );
-
- /**
- *
- */
- static TBool ValidateArchiveCrcsL( RFs& aFsSession, const TDesC& aFileName );
-#endif
-
- private: // Offsets
- enum
- {
- EArchiveOffsetUids = 0,
- EArchiveOffsetFileFormatVersion = EArchiveOffsetUids + KMMCScArchiveUidsByteCount,
- EArchiveOffsetFooterLength = EArchiveOffsetFileFormatVersion + KMMCScArchiveVersionByteCount,
- EArchiveOffsetArchiveFlags = EArchiveOffsetFooterLength + KMMCScArchiveFooterLengthByteCount,
- EArchiveOffsetArchivePayloadCRC = EArchiveOffsetArchiveFlags + KMMCScArchiveFlagsByteCount,
- EArchiveOffsetArchiveCategory = EArchiveOffsetArchivePayloadCRC + KMMCScArchiveCrcByteCount,
- EArchiveOffsetArchiveHeaderCRC = EArchiveOffsetArchiveCategory + KMMCScArchiveCategoryByteCount,
- EArchiveOffsetPadding = EArchiveOffsetArchiveHeaderCRC + KMMCScArchiveCrcByteCount,
- EArchiveOffsetPhoneModelStringLength = EArchiveOffsetPadding + KMMCScSpareByteCount,
- EArchiveOffsetPhoneModelString = EArchiveOffsetPhoneModelStringLength + KMMCScArchivePhoneModelStringLength
- };
-
- private: // Internal methods
-
- /**
- *
- */
- static TInt OffsetOfModelInformation();
-
- /**
- *
- */
- static HBufC8* PhoneModelFromArchiveLC( RReadStream& aStream );
-
- /**
- *
- */
- static TUint32 DefaultArchiveFlags();
-
- /**
- *
- */
- static TBitFlags ReadArchiveFlagsL( RFile64& aFile );
-
- /**
- *
- */
- static void ReadArchiveVersionL( RFile64& aFile, TVersion& aVersion );
-
-#ifdef RD_FILE_MANAGER_BACKUP
- /**
- *
- */
- static void SetArchiveCrcL( RFile64& aArchive, TUint32 aCrc, TUint aOffset );
-
- /**
- *
- */
- static void CalculateCrcFromArchive( TUint32& aCrc, RFile64& aArchive, TUint32 aOffset, TUint32 aLength );
-#endif
- };
-
-
-
-
-#endif // __MMCSCBKUPARCHIVEUTILS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/MMCScBkupConfig.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*
-* Copyright (c) 2005 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: Macros for scheduled backup configuration
-*
-*
-*/
-
-#ifndef __MMCSCBKUPCONFIG_H__
-#define __MMCSCBKUPCONFIG_H__
-
-// System includes
-#include <e32std.h>
-#include <f32file.h>
-
-
-/**
-*
-*
-* @since 3.0
-*/
-const TDriveNumber KMMCScBkupTempFileDrive = EDriveC;
-
-
-/**
-*
-* Folder for temporary files, which will be cleaned by Starter if temporary files not deleted.
-* Currently in 3.0/3.1 folder from C and E drives is cleaned.
-*
-* @since 3.0
-*/
-_LIT(KMMCScBkupTempDir, ":\\System\\Temp\\");
-
-
-/**
-*
-*
-* @since 3.0
-*/
-_LIT(KMMCScBkupMediaGalleryThumbnailFolder, "*\\_PAlbTN\\*"); //Photo Album Thumbnail folder
-_LIT(KMMCScBkupVideoCenterFolderPath, "C:\\Data\\videocenter\\"); //video center folder
-_LIT(KMMCScBkupVideoCenterFolder, "*\\videocenter\\*"); //video center folder
-/**
-*
-* Allows the data that is received from the SBE or sent to the SBE to be dumped to individual
-* files for comparison and inspection purposes.
-*
-* @since 3.0
-*/
-//#define DEBUGGING_DATA_TRANSFER
-
-/**
-*
-* Controls the various directories and files that are generated when debugging
-* data transfer
-*
-* @since 3.0
-*/
-#ifdef DEBUGGING_DATA_TRANSFER
- _LIT(KMMCScBkupDataTransferDebuggingAllFiles, "*.*");
- _LIT(KMMCScBkupDataTransferDebuggingFileName, "MMCBackupDataTransfer_0x%08x_(%c).dat");
- //
- _LIT(KMMCScBkupDataTransferDebuggingPathRoot, "MMCDataDump\\");
- _LIT(KMMCScBkupDataTransferDebuggingPathDataJava, "JavData\\");
- _LIT(KMMCScBkupDataTransferDebuggingPathDataSystem, "SysData\\");
- _LIT(KMMCScBkupDataTransferDebuggingPathDataPassive, "PasData\\");
- _LIT(KMMCScBkupDataTransferDebuggingPathDataActive, "ActData\\");
- //
- _LIT(KMMCScBkupDataTransferDebuggingPathDataBackup, "Backup\\");
- _LIT(KMMCScBkupDataTransferDebuggingPathDataRestore, "Restore\\");
-#endif
-
-/**
-*
-* Always makes the SBE logging directory - ensures logs are available
-*
-* @since 3.0
-*/
-//#define MAKE_SBE_LOGGING_DIRECTORY
-
-/**
-*
-* Always makes the MMC Engine logging directory
-*
-* @since 3.0
-*/
-//#define MAKE_MMCSCBKUP_LOGGING_DIRECTORY
-
-/**
-*
-* Controls whether logging is to file or to RDebug
-*
-* @since 3.0
-*/
-#ifdef _DEBUG
-# define __MMCSCBKUPLOGGING_ENABLED__
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
-//# define __MMCSCBKUP_DATA_LOGGING_ENABLED__
-#endif
-//# define __MMCSCBKUPLOGGING_MODE_FILE__
-# define __MMCSCBKUPLOGGING_MODE_RDEBUG__
-#endif
-
-
-/**
-* Use these to disable backup for the various data types.
-*
-* E.g:
-*
-* __DEBUG_TESTING_SKIP_BACKUP_REG_DATA return
-*
-* ... will ensure that registration data is not backed up (for any DO).
-*
-* @since 3.0
-*/
-#define __DEBUG_TESTING_SKIP_BACKUP_REG_DATA
-#define __DEBUG_TESTING_SKIP_BACKUP_ACT_DATA
-#define __DEBUG_TESTING_SKIP_BACKUP_PAS_DATA
-#define __DEBUG_TESTING_SKIP_BACKUP_SYS_DATA
-#define __DEBUG_TESTING_SKIP_BACKUP_JAV_DATA
-#define __DEBUG_TESTING_SKIP_BACKUP_PUB_DATA
-
-/**
-* Use these to disable restore for the various data types
-*
-* E.g:
-*
-* __DEBUG_TESTING_SKIP_RESTORE_REG_DATA return
-*
-* ... will ensure that registration data is not restored (for any DO).
-*
-* @since 3.0
-*/
-#define __DEBUG_TESTING_SKIP_RESTORE_REG_DATA
-#define __DEBUG_TESTING_SKIP_RESTORE_ACT_DATA
-#define __DEBUG_TESTING_SKIP_RESTORE_PAS_DATA
-#define __DEBUG_TESTING_SKIP_RESTORE_SYS_DATA
-#define __DEBUG_TESTING_SKIP_RESTORE_JAV_DATA
-#define __DEBUG_TESTING_SKIP_RESTORE_PUB_DATA
-
-
-#endif // __MMCSCBKUPCONFIG_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/MMCScBkupDllUids.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* Copyright (c) 2002 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:
-* Contains the UIDs for FileManager / FileManagerBkupEngine
-*
-*/
-
-#ifndef __MMCSCBKUPDLLUIDS_H__
-#define __MMCSCBKUPDLLUIDS_H__
-
-// Module UIDs
-#define KEPOCDLLUID2 0x1000008d // Symbian defined
-#define KMMCAppEngUID3 0x101F4667
-
-#endif // __MMCSCBKUPDLLUIDS_H__
-
-// End Of File
--- a/filemanager/bkupengine/inc/MMCScBkupLogger.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
-* Copyright (c) 2005 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:
-* Macro definition file for logging.
-*
-*
-*/
-
-#ifndef __MMCSCBKUPLOGGER_H__
-#define __MMCSCBKUPLOGGER_H__
-
-// System includes
-#include <e32std.h>
-
-// User includes
-#include "MMCScBkupConfig.h"
-#include "TMMCScBkupOwnerDataType.h"
-
-class MMCScBkupLogger
- {
- public:
- static void LogRaw( const TDesC& aData );
- static void Log( TRefByValue<const TDesC> aFmt, ... );
- static void LogFile( TRefByValue<const TDesC> aFmt, ... );
- static const TDesC& DataType( TMMCScBkupOwnerDataType aType );
- static const TDesC& FriendlyNameForSID( TSecureId aSID );
- };
-
-
-// Logging Macros
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
-
- _LIT( KMMCScBkupLoggingFullPath, "C:\\Logs\\MMCScBkup\\" );
-
- #define __LOG(aFmt) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes); }
- #define __LOG1(aFmt, A) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A); }
- #define __LOG2(aFmt, A, B) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B); }
- #define __LOG3(aFmt, A, B, C) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C); }
- #define __LOG4(aFmt, A, B, C, D) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C, D); }
- #define __LOG5(aFmt, A, B, C, D, E) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C, D, E); }
- #define __LOG6(aFmt, A, B, C, D, E, F) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C, D, E, F); }
- #define __LOG7(aFmt, A, B, C, D, E, F, G) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C, D, E, F, G); }
- #define __LOG8(aFmt, A, B, C, D, E, F, G, H) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C, D, E, F, G, H); }
-
- // Path for backup log containing possible errors encountered during backup
- // or restore. This is needed because all errors won't interrupt operation.
- _LIT( KMMCScBkupLoggingFullPathAndName, "C:\\Private\\101F84EB\\BURLog\\bur.txt" );
-
- #define __LOGFILE(aFmt) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::LogFile(tempLogDes); }
- #define __LOGFILE1(aFmt, A) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::LogFile(tempLogDes, A); }
- #define __LOGFILE2(aFmt, A, B) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::LogFile(tempLogDes, A, B); }
- #define __LOGFILE3(aFmt, A, B, C) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::LogFile(tempLogDes, A, B, C); }
-
-#else
-
- #define __LOG(aFmt)
- #define __LOG1(aFmt, A)
- #define __LOG2(aFmt, A, B)
- #define __LOG3(aFmt, A, B, C)
- #define __LOG4(aFmt, A, B, C, D)
- #define __LOG5(aFmt, A, B, C, D, E)
- #define __LOG6(aFmt, A, B, C, D, E, F)
- #define __LOG7(aFmt, A, B, C, D, E, F, G)
- #define __LOG8(aFmt, A, B, C, D, E, F, G, H)
-
- #define __LOGFILE(aFmt)
- #define __LOGFILE1(aFmt, A)
- #define __LOGFILE2(aFmt, A, B)
- #define __LOGFILE3(aFmt, A, B, C)
-
-#endif
-
-#endif // __MMCSCBKUPLOGGER_H__
--- a/filemanager/bkupengine/inc/MMCScBkupOperations.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for TMMCScBkupOperationType
-*
-*
-*/
-
-#ifndef __MMCSCBKUPOPERATIONS_H__
-#define __MMCSCBKUPOPERATIONS_H__
-
-// System includes
-#include <e32base.h>
-
-
-/**
-*
-*
-* @since 3.0
-*/
-enum TMMCScBkupOperationType
- {
- EMMCScBkupOperationTypeIdle = 0,
- EMMCScBkupOperationTypeFullBackup,
- EMMCScBkupOperationTypeFullRestore,
- EMMCScBkupOperationTypePartialBackup,
- EMMCScBkupOperationTypePartialRestore
- };
-
-
-
-
-#endif // __MMCSCBKUPOPERATIONS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/MMCScBkupPhoneModelUtils.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for MMCScBkupPhoneModelUtils
-*
-*
-*/
-
-#ifndef __MMCSCBKUPPHONEMODELUTILS_H__
-#define __MMCSCBKUPPHONEMODELUTILS_H__
-
-// System includes
-#include <f32file.h>
-#include <babitflags.h>
-
-/**
-*
-*
-* @since 3.0
-*/
-class MMCScBkupPhoneModelUtils
- {
- public:
-
- /**
- *
- */
- static HBufC8* CurrentPhoneModelLC();
-
- /**
- *
- */
- static TInt MaximumPhoneModelIdentifierLength();
-
- /**
- *
- */
- static TBool ArchiveRestorePermissableL( const TDesC8& aPhoneModelData, TBitFlags aArchiveFlags, const TVersion& aArchiveVersion );
- };
-
-
-
-
-#endif // __MMCScBkupPhoneModelUtils_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/MMCScBkupSBEUtils.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for MMCScBkupSBEUtils
-*
-*
-*/
-
-#ifndef __MMCSCBKUPSBEUTILS_H__
-#define __MMCSCBKUPSBEUTILS_H__
-
-// System includes
-#include <f32file.h>
-#include <connect/sbtypes.h>
-#include <connect/sbeclient.h>
-
-// Namespaces
-using namespace conn;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-class MMCScBkupSBEUtils
- {
- public:
-
- /**
- *
- */
- static TSecureId SecureIdFromGenericL(const CSBGenericDataType& aGeneric);
-
- /**
- *
- */
- static TUid PackageIdFromGenericL(const CSBGenericDataType& aGeneric);
-
- /**
- *
- */
- static HBufC* JavaHashFromGenericLC(const CSBGenericDataType& aGeneric);
-
- /**
- *
- */
- static CSBGenericDataType* CopyLC(const CSBGenericDataType& aToBeCopied);
-
- /**
- *
- */
- static CSBGenericTransferType* TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive,
- TTransferDataType aTransferType, TInt aVersion);
-
- /**
- *
- */
- static CSBGenericTransferType* TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive,
- TPackageDataType aDataType, TInt aVersion);
-
- /**
- *
- */
- static CSBGenericTransferType* TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive,
- TJavaTransferType aDataType, TInt aVersion);
-
- /**
- *
- */
- static TBool PhoneIsInBackupOrRestoreModeL();
-
- /**
- *
- */
- static void EndBackupOrRestoreL( CSBEClient& aSBEClient );
-
- /**
- *
- */
- static TBool HasSystemDataL( const CDataOwnerInfo& aDataOwner );
-
- /**
- *
- */
- static TBool HasJavaDataL( const CDataOwnerInfo& aDataOwner );
-
- /**
- *
- */
- static TBool HasPassiveDataL( const CDataOwnerInfo& aDataOwner );
-
- /**
- *
- */
- static TBool HasActiveDataL( const CDataOwnerInfo& aDataOwner );
-
- /**
- *
- */
- static TBool HasPublicDataL( const CDataOwnerInfo& aDataOwner );
- };
-
-
-
-
-#endif // __MMCSCBKUPSBEUTILS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/MMCScBkupStateIds.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-/*
-* Copyright (c) 2005 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: Constants for scheduled backup state IDs
-*
-*
-*/
-
-#ifndef __MMCSCBKUPSTATEIDS_H__
-#define __MMCSCBKUPSTATEIDS_H__
-
-// System includes
-#include <e32std.h>
-
-// Type definitions
-typedef TUid TMMCScBkupStateId;
-
-// Constants
-
-
-/**
-* Archive Header
-* ===========================
-*
-* BACKUP: Step 1 - first archive write operation: store archive header
-* RESTORE: Step 1 - first archive read operation: restore archive header
-*/
-const TInt32 KMMCScBkupStateIdValueArchiveOpArchiveHeader = 0x0BAC001;
-const TMMCScBkupStateId KMMCScBkupStateArchiveOpArchiveHeader = { KMMCScBkupStateIdValueArchiveOpArchiveHeader };
-
-/**
-* Obtain List of Data Owners
-* ==========================
-*
-* BACKUP: Step 2 - Get list of data owners from SBE
-*/
-const TInt32 KMMCScBkupStateIdValueGetDataOwners = 0x0BAC0002;
-const TMMCScBkupStateId KMMCScBkupStateIdGetDataOwners = { KMMCScBkupStateIdValueGetDataOwners };
-
-/**
-* Set Smartphone into Backup Mode
-* ===============================
-*
-* BACKUP: Step 3
-* RESTORE:
-*/
-const TInt32 KMMCScBkupStateIdValueSetPhoneMode = 0x0BAC0003;
-const TMMCScBkupStateId KMMCScBkupStateIdSetPhoneMode = { KMMCScBkupStateIdValueSetPhoneMode };
-
-/**
-* Supply Data Snapshots (Not Currently Supported)
-* ===============================================
-*
-* BACKUP: Step 4
-*/
-const TInt32 KMMCScBkupStateIdValueSupplyDataSnapshots = 0x0BAC0004; // Not supported
-const TMMCScBkupStateId KMMCScBkupStateIdSupplyDataSnapshots = { KMMCScBkupStateIdValueSupplyDataSnapshots };
-
-/**
-* Inform the Device that All Snapshots Have Been Supplied
-* =======================================================
-*
-* BACKUP: Step 5
-*/
-const TInt32 KMMCScBkupStateIdValueNotifyAllSnapshotsSupplied = 0x0BAC0005;
-const TMMCScBkupStateId KMMCScBkupStateIdNotifyAllSnapshotsSupplied = { KMMCScBkupStateIdValueNotifyAllSnapshotsSupplied };
-
-/**
-* Request Size of Backup Data
-* ===========================
-*
-* BACKUP: Step 6
-*/
-const TInt32 KMMCScBkupStateIdValueRequestSizeOfBackupData = 0x0BAC0006;
-const TMMCScBkupStateId KMMCScBkupStateIdRequestSizeOfBackupData = { KMMCScBkupStateIdValueRequestSizeOfBackupData };
-
-/**
-* Archive Operation: data owners
-* ==============================
-*
-* BACKUP: Step 7 - second archive write operation: store data owners
-*/
-const TInt32 KMMCScBkupStateIdValueArchiveOpDataOwners = 0x0BAC0007;
-const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpDataOwners = { KMMCScBkupStateIdValueArchiveOpDataOwners };
-
-/**
-* Request List of Public Files
-* ============================
-*
-* BACKUP: Step 8
-*/
-const TInt32 KMMCScBkupStateIdValueRequestListOfPublicFiles = 0x0BAC0008;
-const TMMCScBkupStateId KMMCScBkupStateIdRequestListOfPublicFiles = { KMMCScBkupStateIdValueRequestListOfPublicFiles };
-
-/**
-* Calculate disk space required for backup or restore
-* ============================
-*
-* BACKUP: Step 8
-*/
-const TInt32 KMMCScBkupStateIdValueValidateDiskSpace = 0x0BAC0009;
-const TMMCScBkupStateId KMMCScBkupStateIdValidateDiskSpace = { KMMCScBkupStateIdValueValidateDiskSpace };
-
-
-/**
-* Archive Operation: public data files
-* ====================================
-*
-* BACKUP: Step 10 - forth archive write operation: store public data files
-*/
-const TInt32 KMMCScBkupStateIdValueArchiveOpPublicDataFiles = 0x0BAC000A;
-const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpPublicDataFiles = { KMMCScBkupStateIdValueArchiveOpPublicDataFiles };
-
-/**
-* Request System Data
-* ===================
-*
-* BACKUP: Step 11 - fifth archive write operation: store system data
-*/
-const TInt32 KMMCScBkupStateIdValueArchiveOpSystemData = 0x0BAC000B;
-const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpSystemData = { KMMCScBkupStateIdValueArchiveOpSystemData };
-
-/**
-* Request Java Data
-* ===================
-*
-* BACKUP: Step 12 - sixth archive write operation: store system data
-*/
-const TInt32 KMMCScBkupStateIdValueArchiveOpJavaData = 0x0BAC000C;
-const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpJavaData = { KMMCScBkupStateIdValueArchiveOpJavaData };
-
-/**
-* Request Request State of Active Data Owners
-* ===========================================
-*
-* BACKUP: Step 13
-*/
-const TInt32 KMMCScBkupStateIdValueGetDataOwnerStatuses = 0x0BAC000D;
-const TMMCScBkupStateId KMMCScBkupStateIdGetDataOwnerStatuses = { KMMCScBkupStateIdValueGetDataOwnerStatuses };
-
-/**
-* Request Active Private Data
-* ===========================
-*
-* BACKUP: Step 14 - seventh archive write operation: store active data
-*/
-const TInt32 KMMCScBkupStateIdValueArchiveOpActiveData = 0x0BAC000E;
-const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpActiveData = { KMMCScBkupStateIdValueArchiveOpActiveData };
-
-/**
-* Request Passive Private Data
-* ===========================
-*
-* BACKUP: Step 15 - eighth archive write operation: store passive data
-*/
-const TInt32 KMMCScBkupStateIdValueArchiveOpPassiveData = 0x0BAC000F;
-const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpPassiveData = { KMMCScBkupStateIdValueArchiveOpPassiveData };
-
-/**
-* Archive Footer
-* ===========================
-*
-* BACKUP: Step 16 - nineth archive write operation: store footer
-*/
-const TInt32 KMMCScBkupStateIdValueArchiveOpArchiveFooter = 0x0BAC0010;
-const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpArchiveFooter = { KMMCScBkupStateIdValueArchiveOpArchiveFooter };
-
-/**
-* Archive Header
-* ===========================
-*
-* COMMON: Special step to indicate no more steps required
-*/
-const TInt32 KMMCScBkupStateIdValueOperationComplete = 0x0BAC0011;
-const TMMCScBkupStateId KMMCScBkupStateIdOperationComplete = { KMMCScBkupStateIdValueOperationComplete };
-
-
-
-/**
-* Archive Operation: read data owners
-* ===================================
-*
-* RESTORE: Step 2 - read from archive, inform to secure backup engine
-*/
-const TInt32 KMMCScBkupStateIdValueArchiveOpReadDataOwners = 0x0BAC0012;
-const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpReadDataOwners = { KMMCScBkupStateIdValueArchiveOpReadDataOwners };
-
-
-
-
-/**
-* BACKUP STATE FLOW
-* =================
-*
-* 1) KMMCScBkupStateIdArchiveOpArchiveHeader
-* 2) KMMCScBkupStateIdGetDataOwners
-* 3) KMMCScBkupStateIdSetPhoneMode
-* 4) KMMCScBkupStateIdNotifyAllSnapshotsSupplied
-* 5) KMMCScBkupStateIdRequestSizeOfBackupData
-* 6) KMMCScBkupStateIdRequestListOfPublicFiles
-* 7) KMMCScBkupStateIdValidateDiskSpace
-* 8) KMMCScBkupStateIdArchiveOpPublicDataFiles
-* 9) KMMCScBkupStateIdArchiveOpSystemData
-* 10) KMMCScBkupStateIdArchiveOpJavaData
-* 11) KMMCScBkupStateIdGetDataOwnerStatuses
-* 12) KMMCScBkupStateIdArchiveOpActiveData
-* 13) KMMCScBkupStateIdArchiveOpPassiveData
-* 14) KMMCScBkupStateIdArchiveOpDataOwners
-* 15) KMMCScBkupStateIdArchiveOpArchiveFooter
-* 16) KMMCScBkupStateIdOperationComplete
-*
-*/
-
-
-
-/**
-* RESTORE STATE FLOW
-* =================
-*
-* 1) KMMCScBkupStateIdArchiveOpArchiveHeader
-* 2) KMMCScBkupStateIdArchiveOpArchiveFooter
-* 3) KMMCScBkupStateIdArchiveOpDataOwners
-* 4) KMMCScBkupStateIdValidateDiskSpace
-* 5) KMMCScBkupStateIdSetPhoneMode
-* 6) KMMCScBkupStateIdArchiveOpSystemData
-* 7) KMMCScBkupStateIdArchiveOpJavaData
-* 8) KMMCScBkupStateIdArchiveOpPassiveData
-* 9) KMMCScBkupStateIdGetDataOwnerStatuses
-* 10) KMMCScBkupStateIdArchiveOpActiveData
-* 11) KMMCScBkupStateIdArchiveOpPublicDataFiles
-* 12) KMMCScBkupStateIdOperationComplete
-*
-*/
-
-#endif // __MMCSCBKUPSTATEIDS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/MMMCScBkupArchiveDataInterface.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
-* Copyright (c) 2002 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: Declaration for MMMCScBkupArchiveDataInterface
-*
-*
-*/
-
-#ifndef __MMMCSCBKUPARCHIVEDATAINTERFACE_H__
-#define __MMMCSCBKUPARCHIVEDATAINTERFACE_H__
-
-// System includes
-#include <e32std.h>
-#include <f32file.h>
-
-// User includes
-#include "TMMCScBkupArchiveVector.h"
-#include "MMCScBkupOperations.h"
-
-// Constants
-const TInt KMMCScBkupArchiveWriteStreamCurrentPos = -1;
-const TInt KMMCScBkupArchiveReadStreamCurrentPos = -1;
-
-/**
-*
-*
-* @since 3.0
-*/
-class MMMCScBkupArchiveDataInterface
- {
- public: // From MMMCScBkupArchiveDataInterface
-
- /**
- *
- */
- virtual RFs& ADIFsSession() const = 0;
-
- /**
- *
- */
- virtual RFile64& ADIRawArchiveFile() const = 0;
-
- /**
- *
- */
- virtual const TMMCScBkupArchiveVector& ADICurrentArchiveVectorInfo() const = 0;
-
- /**
- *
- */
- virtual const TMMCScBkupArchiveVector& ADIOverallArchiveVectorInfo() const = 0;
-
- /**
- *
- */
- virtual RWriteStream& ADIWriteStreamUncompressedLC( TInt aPos = KMMCScBkupArchiveWriteStreamCurrentPos ) = 0;
-
- /**
- *
- */
- virtual RReadStream& ADIReadStreamUncompressedLC( TInt aPos = KMMCScBkupArchiveReadStreamCurrentPos ) = 0;
-
- /**
- *
- */
- virtual const TMMCScBkupArchiveVector& ADIWriteL( const TDesC8& aData ) = 0;
-
- /**
- *
- */
- virtual const TMMCScBkupArchiveVector& ADIReadL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo ) = 0;
-
- /**
- *
- */
- virtual void ADIWriteFileL( const TDesC& aSourceFileName, TRequestStatus& aStatus ) = 0;
-
- /**
- *
- */
- virtual void ADIReadFileL( const TDesC& aDestinationFileName, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus ) = 0;
-
- /**
- *
- */
- virtual void ADIWriteCompressedL( const TDesC8& aData, TRequestStatus& aStatus ) = 0;
-
- /**
- *
- */
- virtual void ADIReadDecompressedL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus ) = 0;
-
- /**
- *
- */
- virtual void ADIAsynchronousCancel() = 0;
-
- /**
- *
- */
- virtual void ADIResetResources(TMMCScBkupOperationType aType) = 0;
-
-#ifdef RD_FILE_MANAGER_BACKUP
- /**
- *
- */
- virtual void ADIActivateCrcCalculation(TBool aType) = 0;
-
- /**
- *
- */
- virtual TUint32 ADIArchiveCrc() = 0;
-#endif
- };
-
-
-
-
-#endif // __MMMCSCBKUPARCHIVEDATAINTERFACE_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/MMMCScBkupDriver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
-* Copyright (c) 2002-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: Declaration for MMMCScBkupDriver
-*
-*
-*/
-
-#ifndef __MMMCSCBKUPDRIVER_H__
-#define __MMMCSCBKUPDRIVER_H__
-
-// System includes
-#include <connect/sbeclient.h>
-
-// User includes
-#include "MMCScBkupStateIds.h"
-#include "MMCScBkupOperations.h"
-#include "CMMCScBkupOperationParameters.h"
-
-// Classes referenced
-class CMMCScBkupState;
-class CMMCScBkupArchive;
-class MMMCScBkupProgressObserver;
-class CMMCScBkupDataOwnerCollection;
-class CMMCScBkupFileListCollection;
-class MMMCScBkupArchiveDataInterface;
-
-// Namespaces
-using namespace conn;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-class MMMCScBkupDriver
- {
- public: // From MMMCScBkupDriver
-
- /**
- *
- */
- virtual MMMCScBkupArchiveDataInterface& DrvADI() const = 0;
-
- /**
- *
- */
- virtual CMMCScBkupArchive& DrvArchive() const = 0;
-
- /**
- *
- */
- virtual CSBEClient& DrvSecureBackupClient() const = 0;
-
- /**
- *
- */
- virtual TMMCScBkupOperationType DrvOperation() const = 0;
-
- /**
- *
- */
- virtual CMMCScBkupOpParamsBase& DrvParamsBase() const = 0;
-
- /**
- *
- */
- virtual CMMCScBkupDataOwnerCollection& DrvDataOwners() const = 0;
-
- /**
- *
- */
- virtual RPointerArray<CMMCScBkupDataOwnerCollection>& DrvDataOwnersAll() = 0;
-
- /**
- *
- */
- virtual CMMCScBkupFileListCollection& DrvFileList() const = 0;
-
- /**
- *
- */
- virtual TBool DrvLastCategory() const = 0;
-
- /**
- *
- */
- virtual void DrvStoreTotalProgress(TInt64 aProgress) = 0;
-
- /**
- *
- */
- virtual TInt64 DrvTotalProgress() const = 0;
-
- /**
- *
- */
- virtual MMMCScBkupProgressObserver& DrvProgressHandler() const = 0;
- };
-
-
-
-
-#endif // __MMMCSCBKUPDRIVER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/MMMCScBkupEngineObserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2002 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: Declaration for MMMCScBkupEngineObserver
-*
-*
-*/
-
-#ifndef __MMMCSCBKUPENGINEOBSERVER_H__
-#define __MMMCSCBKUPENGINEOBSERVER_H__
-
-/**
-*
-*
-* @since 3.0
-*/
-class MMMCScBkupEngineObserver
- {
- public:
-
- /**
- *
- */
- enum TEvent
- {
- // COMMON
- ECommonEventFirst = 0,
- ECommonOperationStarting = ECommonEventFirst,
- ECommonSizeOfTaskUnderstood,
- ECommonOperationPrepareEnded,
- ECommonOperationEnded,
- ECommonOperationError,
- ECommonProgress,
- ECommonEventLast,
-
- // BACKUP
- EBackupEventFirst = 100,
- EBackupAnalysingData,
- EBackupEventLast,
-
- // RESTORE
- ERestoreEventFirst = 200,
- ERestoreEventLast
- };
-
- public: // From MMMCScBkupEngineObserver
-
- /**
- *
- */
- virtual TInt HandleBkupEngineEventL(TEvent aEvent, TInt aAssociatedData) = 0;
-
- };
-
-
-#endif // __MMMCSCBKUPENGINEOBSERVER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/MMMCScBkupProgressObserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
-* Copyright (c) 2005-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: Declaration for MMMCScBkupProgressObserver
-*
-*
-*/
-
-#ifndef __MMMCSCBKUPPROGRESSOBSERVER_H__
-#define __MMMCSCBKUPPROGRESSOBSERVER_H__
-
-// System includes
-#include <e32std.h>
-
-// User includes
-
-
-/**
-*
-*
-* @since 3.0
-*/
-class MMMCScBkupProgressObserver
- {
- public: // From MMMCScBkupProgressObserver
-
- /**
- *
- */
- virtual void MMCScBkupHandleProgress( TInt aAmountCompleted ) = 0;
-
-
- /**
- *
- */
- virtual void MMCScBkupHandleProgressDomainUnderstood( TInt aTotalProgressAmount ) = 0;
-
-
- /**
- *
- */
- virtual TInt MMCScBkupHandleFreeSpace( TInt aPercent ) = 0;
-
-
- /**
- *
- */
- virtual void MMCScBkupStartBackuping( TBool aProceed ) = 0;
- };
-
-
-
-
-#endif // __MMMCSCBKUPPROGRESSOBSERVER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/RMMCScBkupArchiveStreams.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for RMMCScBkupArchiveReadStream
-*
-*
-*/
-
-#ifndef __RMMCSCBKUPARCHIVESTREAMS_H__
-#define __RMMCSCBKUPARCHIVESTREAMS_H__
-
-// System includes
-#include <s32strm.h>
-#include <s32file.h>
-
-// User includes
-#include "TMMCScBkupArchiveVector.h"
-
-// Classes referenced
-class CMMCScBkupArchiveDataManager;
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(RMMCScBkupArchiveBuf) : public RFileBuf
- {
- public:
-
- /**
- *
- */
- RMMCScBkupArchiveBuf();
-
- public: // API
-
- /**
- *
- */
- void AttachL(CMMCScBkupArchiveDataManager& aADM, RFile64& aFile, TInt aPos, TBool aForWrite );
-
- /**
- *
- */
- IMPORT_C void Close();
-
- /**
- *
- */
- TBool IsOpen() const;
-
- private: // From MStreamBuf
-
- /**
- *
- */
- void DoRelease();
-
- /**
- *
- */
- void DoSynchL();
-
-#ifdef RD_FILE_MANAGER_BACKUP
- /**
- *
- */
- void DoWriteL(const TAny* aPtr,TInt aLength);
-#endif
-
- private:
-
- /**
- *
- */
- void UpdateInfoL();
-
- private: // Member data
-
- //
- TBool iWriteMode;
- //
- CMMCScBkupArchiveDataManager* iADM;
- //
- TMMCScBkupArchiveVector iInfo;
-
- };
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(RMMCScBkupArchiveReadStream) : public RReadStream
- {
- public: // Constructors
-
- /**
- *
- */
- inline RMMCScBkupArchiveReadStream() { }
-
- public: // API
-
- /**
- *
- */
- void OpenLC(CMMCScBkupArchiveDataManager& aADM, RFile64& aArchiveFile, TInt aPos=0);
-
- /**
- *
- */
- TBool IsOpen() const;
-
- private: // Member data
-
- //
- RMMCScBkupArchiveBuf iSource;
- };
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(RMMCScBkupArchiveWriteStream) : public RWriteStream
- {
- public: // Constructors
-
- /**
- *
- */
- inline RMMCScBkupArchiveWriteStream()
- {}
-
- public: // API
-
- /**
- *
- */
- void OpenLC(CMMCScBkupArchiveDataManager& aADM, RFile64& aArchiveFile, TInt aPos=0);
-
- /**
- *
- */
- TBool IsOpen() const;
-
- private: // Member data
-
- //
- RMMCScBkupArchiveBuf iSink;
- };
-
-
-
-#endif // __RMMCSCBKUPARCHIVESTREAMS_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/RMMCScBkupPointerArray.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for RMMCScBkupPointerArray
-*
-*
-*/
-
-#ifndef __RMMCSCBKUPPOINTERARRAY_H__
-#define __RMMCSCBKUPPOINTERARRAY_H__
-
-// User includes
-#include <e32cmn.h>
-
-
-/**
-*
-*
-* @since 3.0
-*/
-template <class T>
-class RMMCScBkupPointerArray : public RPointerArray<T>
- {
-public:
- inline RMMCScBkupPointerArray();
- inline explicit RMMCScBkupPointerArray(TInt aGranularity);
- inline void Close();
- };
-
-
-
-
-
-// Inline methods
-
-template <class T>
-inline RMMCScBkupPointerArray<T>::RMMCScBkupPointerArray()
- : RPointerArray<T>()
- {}
-
-template <class T>
-inline RMMCScBkupPointerArray<T>::RMMCScBkupPointerArray(TInt aGranularity)
- : RPointerArray<T>( aGranularity )
- {}
-
-template <class T>
-inline void RMMCScBkupPointerArray<T>::Close()
- {
- RPointerArray<T>::ResetAndDestroy();
- RPointerArray<T>::Close();
- }
-
-
-
-
-
-
-#endif // __RMMCSCBKUPPOINTERARRAY_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/RMMCScBkupProgressSizer.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 2005-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: Declaration for RMMCScBkupProgressSizer
-*
-*
-*/
-
-#ifndef __RMMCSCBKUPPROGRESSSIZER_H__
-#define __RMMCSCBKUPPROGRESSSIZER_H__
-
-// System includes
-#include <f32file.h>
-
-// User includes
-#include "TMMCScBkupDriveFilter.h"
-#include "TMMCScBkupOwnerDataType.h"
-
-// Classes referenced
-class CMMCScBkupDataOwnerInfo;
-class MMMCScBkupProgressObserver;
-class CMMCScBkupDriveAndOperationTypeManager;
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(RMMCScBkupProgressSizer)
- {
- public:
-
- /**
- * C++ default constructor
- */
- RMMCScBkupProgressSizer( const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperationTypes );
-
- public: // BACKUP SIZING API
-
- /**
- *
- */
- TInt64 BackupTotalProgressValueL( const CMMCScBkupDataOwnerInfo& aDataOwner );
-
- /**
- *
- */
- void BackupReportFixedProgressForOpL( MMMCScBkupProgressObserver& aProgressManager, TMMCScBkupOwnerDataType aType );
-
- public: // RESTORE SIZING API
-
- /**
- *
- */
- TInt64 RestoreCombinedDataSizeL( const CMMCScBkupDataOwnerInfo& aOwner );
-
- private: // Internal methods
-
- /**
- *
- */
- TInt NumberOfDriveOpsRequiredL( const CMMCScBkupDataOwnerInfo& aOwner, TMMCScBkupOwnerDataType aType );
-
- /**
- *
- */
- TInt64 AmountOfPublicDataToBeRestoredL( const CMMCScBkupDataOwnerInfo& aOwner );
-
- private: // Member data
-
- //
- const CMMCScBkupDriveAndOperationTypeManager& iDriveAndOperationTypes;
- //
- TMMCScBkupDriveFilter iDriveFilter;
-
- };
-
-
-
-
-#endif // __RMMCSCBKUPPROGRESSSIZER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/TMMCScBkupArchiveVector.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for TMMCScBkupArchiveVector
-*
-*
-*/
-
-#ifndef __TMMCSCBKUPARCHIVEVECTOR_H__
-#define __TMMCSCBKUPARCHIVEVECTOR_H__
-
-// System includes
-#include <s32strm.h>
-#include <f32file.h>
-
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(TMMCScBkupArchiveVector)
- {
- public:
-
- /**
- * C++ default constructor
- */
- inline TMMCScBkupArchiveVector()
- { Reset(); }
-
- /**
- * C++ default constructor
- */
- inline TMMCScBkupArchiveVector( TInt aOffset, TInt aLength )
- : iOffset( aOffset ), iLength( aLength )
- {}
-
- /**
- * C++ copy constructor
- */
- inline TMMCScBkupArchiveVector( const TMMCScBkupArchiveVector& aVector )
- : iOffset( aVector.Offset() ), iLength( aVector.Length() )
- {}
-
- public:
-
- /**
- *
- */
- inline TInt Offset() const { return iOffset; }
-
- /**
- *
- */
- inline void SetOffset( TInt aOffset ) { iOffset = aOffset; }
-
- /**
- *
- */
- inline TInt Length() const { return iLength; }
-
- /**
- *
- */
- inline void SetLength( TInt aLength ) { iLength = aLength; }
-
- /**
- *
- */
- inline TInt EndOffset() const { return (iOffset + iLength); }
-
- /**
- *
- */
- inline void AdjustByDelta( TInt aOffsetDelta ) { iOffset += aOffsetDelta; }
-
- /**
- *
- */
- static TInt ExternalizedSize();
-
- public:
-
- /**
- *
- */
- inline void Reset() { iLength = iOffset = 0; }
-
- /**
- *
- */
- void ExternalizeL( RWriteStream& aStream ) const;
-
- /**
- *
- */
- void InternalizeL( RReadStream& aStream );
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- private: // Member data
-
- /**
- *
- */
- TInt iOffset;
-
- /**
- *
- */
- TInt iLength;
- };
-
-
-
-/**
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(TMMCScBkupArchiveDriveAndVector)
- {
- public:
-
- /**
- * C++ default constructor
- */
- inline TMMCScBkupArchiveDriveAndVector() : iDrive( EDriveC ) { }
-
- /**
- * C++ default constructor
- */
- inline TMMCScBkupArchiveDriveAndVector( TDriveNumber aDrive, const TMMCScBkupArchiveVector& aVector ) : iDrive( aDrive), iVector( aVector ) { }
-
- public:
-
- /**
- * Internalize object from stream
- */
- void InternalizeL( RReadStream& aStream );
-
- /**
- * Externalize object to stream
- */
- void ExternalizeL( RWriteStream& aStream ) const;
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- };
-
- public: // Data members
- TDriveNumber iDrive;
- TMMCScBkupArchiveVector iVector;
- };
-
-
-
-
-#endif // __TMMCSCBKUPARCHIVEVECTOR_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/TMMCScBkupDriveAndSize.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
-* Copyright (c) 2005-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: Declaration for TMMCScBkupDriveAndSize
-*
-*
-*/
-
-#ifndef __TMMCSCBKUPDRIVEANDSIZE_H__
-#define __TMMCSCBKUPDRIVEANDSIZE_H__
-
-// System includes
-#include <s32strm.h>
-#include <f32file.h>
-
-
-
-/**
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(TMMCScBkupDriveAndSize)
- {
- public:
-
- /**
- * C++ default constructor
- */
- inline TMMCScBkupDriveAndSize() : iDrive( EDriveC ), iSize( 0 ) { }
-
- /**
- * C++ default constructor
- */
- inline TMMCScBkupDriveAndSize( TDriveNumber aDrive, TInt aSize ) : iDrive( aDrive), iSize( aSize ) { }
-
- public:
-
- /**
- * Internalize object from stream
- */
- void InternalizeL( RReadStream& aStream );
-
- /**
- * Externalize object to stream
- */
- void ExternalizeL( RWriteStream& aStream ) const;
-
- public: // API
-
- /**
- *
- */
- inline TInt64 Size() const { return iSize; }
-
- /**
- *
- */
- inline TDriveNumber Drive() const { return iDrive; }
-
- /**
- *
- */
- inline void SetSize( TInt64 aSize ) { iSize = aSize; }
-
- /**
- *
- */
- inline void AddToSize( TInt64 aAmount ) { iSize += aAmount; }
-
- /**
- *
- */
- inline void SetDrive( TDriveNumber aDrive ) { iDrive = aDrive; }
-
- private: // Internal enumerations
- enum
- {
- EStreamFormatVersion1 = 1
- //EStreamFormatVersion2 = 2 // If 64-bit handling will be supported in the future.
- // That will mean in practice a break in archive file format.
- // Change are also needed in TMMCScBkupArchiveVector class
- // to support larger than 2 GB files and data in it.
- };
-
- private: // Data members
- TDriveNumber iDrive;
- TInt64 iSize;
- };
-
-
-
-
-
-#endif // __TMMCSCBKUPDRIVEANDSIZE_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/TMMCScBkupDriveFilter.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for TMMCScBkupDriveFilter
-*
-*
-*/
-
-#ifndef __TMMCSCBKUPDRIVEFILTER_H__
-#define __TMMCSCBKUPDRIVEFILTER_H__
-
-// System includes
-#include <e32std.h>
-#include <f32file.h>
-
-/**
-*
-*
-* @since 3.0
-*/
-NONSHARABLE_CLASS(TMMCScBkupDriveFilter)
- {
- public:
-
- /**
- * C++ default constructor
- */
- inline TMMCScBkupDriveFilter()
- { Reset(); }
-
- /**
- * C++ default constructor
- */
- inline TMMCScBkupDriveFilter( const TDriveList& aPrimaryList )
- : iPrimaryDriveList( aPrimaryList ), iHaveSecondaryList( EFalse )
- { Reset(); }
-
- public: // API
-
- /**
- *
- */
- void Reset();
-
- /**
- *
- */
- void SetPrimaryDriveFilter( const TDriveList& aDriveList );
-
- /**
- *
- */
- void SetSecondaryDriveFilter( const TDriveList& aDriveList );
-
- /**
- *
- */
- TBool NextValidDrive(TDriveNumber& aDrive);
-
- /**
- *
- */
- TDriveNumber CurrentDrive() const;
-
- private: // Internal methods
-
- /**
- *
- */
- TBool FindValidDrive( const TDriveList& aList, TDriveNumber& aDrive, TBool aOneAttemptOnly = EFalse );
-
- private: // Member data
-
- /**
- *
- */
- TInt iCurrentDrive;
-
- /**
- *
- */
- TDriveList iPrimaryDriveList;
-
- /**
- *
- */
- TDriveList iSecondaryDriveList;
-
- /**
- *
- */
- TBool iHaveSecondaryList;
- };
-
-
-
-
-#endif // __TMMCSCBKUPDRIVEFILTER_H__
-
-//End of File
--- a/filemanager/bkupengine/inc/TMMCScBkupOwnerDataType.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2005 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: Declaration for TMMCScBkupOwnerDataType
-*
-*
-*/
-
-#ifndef __TMMCSCBKUPOWNERDATATYPE_H__
-#define __TMMCSCBKUPOWNERDATATYPE_H__
-
-// NB. This file is included inside an HRH file, so do not include
-// C++ constructs.
-
-/**
-* DO NOT CHANGE THE ORDER OF THIS ENUMERATION
-*
-* @since 3.0
-*/
-enum TMMCScBkupOwnerDataType
- {
- // Relates to all data owners
- EMMCScBkupOwnerDataTypeDataOwner = 0,
-
- // Relates to java data for a particular owner
- EMMCScBkupOwnerDataTypeJavaData,
-
- // Relates to public data for a particular owner
- EMMCScBkupOwnerDataTypePublicData,
-
- // Relates to system data for a particular owner
- EMMCScBkupOwnerDataTypeSystemData,
-
- // Relates to active data for a particular owner
- EMMCScBkupOwnerDataTypeActiveData,
-
- // Relates to passive data for a particular owner
- EMMCScBkupOwnerDataTypePassiveData,
-
- // Always leave this last, don't assign it
- // a value. Don't use it either!
- EMMCScBkupOwnerDataTypeCount,
-
- // A generic 'any data type' value. Used by the drive-specific-request &
- // data sizer. Not a real SBE data type, hence it appears after
- // the last marker.
- EMMCScBkupOwnerDataTypeAny
- };
-
-
-
-#endif // __TMMCSCBKUPOWNERDATATYPE_H__
-
-//End of File
--- a/filemanager/bkupengine/src/CMMCScBkupArchive.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,364 +0,0 @@
-/*
-* Copyright (c) 2005-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: CMMCScBkupArchive Implementation
-*
-*
-*/
-
-#include "CMMCScBkupArchive.h"
-
-// System includes
-#include <bautils.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMCScBkupArchiveUtils.h"
-#include "CMMCScBkupArchiveHeader.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "MMCScBkupPhoneModelUtils.h"
-#include "CMMCScBkupArchiveDataManager.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::CMMCScBkupArchive()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupArchive::CMMCScBkupArchive( RFs& aFsSession, MMMCScBkupProgressObserver& aProgressManager,
- MMMCScBkupDriver& aDriver, TBitFlags aCategory )
-: iFsSession( aFsSession ), iProgressManager( aProgressManager ), iDriver( aDriver ), iCategory( aCategory )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::~CMMCScBkupArchive()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupArchive::~CMMCScBkupArchive()
- {
- Close( KErrNone );
- DeleteOldArchive();
- // Must do these last, as we may need to use the file name in order
- // to delete any partially created or old archives.
- delete iArchiveFileName;
- iArchiveFileName = NULL;
-
- delete iOldArchiveFileName;
- iOldArchiveFileName = NULL;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupArchive* CMMCScBkupArchive::NewL( RFs& aFsSession, MMMCScBkupProgressObserver& aProgressManager,
- MMMCScBkupDriver& aDriver, TBitFlags aCategory )
- {
- __LOG("CMMCScBkupArchive::NewL() - START");
- CMMCScBkupArchive* self = new(ELeave) CMMCScBkupArchive( aFsSession, aProgressManager, aDriver, aCategory );
- __LOG("CMMCScBkupArchive::NewL() - END");
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::OpenForReadingL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchive::OpenForReadingL( const TDesC& aName )
- {
- __LOG1("CMMCScBkupArchive::OpenForReadingL() - START - aName: %S", &aName);
-
- Close( KErrNone );
- iArchiveFileName = aName.AllocL();
- //
- const TInt error = iArchiveFile.Open(iFsSession, *iArchiveFileName, EFileShareReadersOnly | EFileStream | EFileRead);
- __LOG1("CMMCScBkupArchive::OpenForReadingL() - open error: %d", error);
- User::LeaveIfError(error);
- //
- PrepareObjectsL();
- SetMode(EModeReading);
- __LOG1("CMMCScBkupArchive::OpenForReadingL() - END - file handle: 0x%08x", iArchiveFile.SubSessionHandle());
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::OpenForWritingL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchive::OpenForWritingL( const TDesC& aName )
- {
- __LOG1("CMMCScBkupArchive::OpenForWritingL() - START - aName: %S", &aName);
-
- Close( KErrNone );
- iArchiveFileName = aName.AllocL();
-
- // Name old archive as .old until disk space validation is carried out.
- _LIT( KOldSuffix, "old" );
- const TChar dot('.');
- iOldArchiveFileName = HBufC::NewL(aName.Length() + KOldSuffix().Length() + 1);
- TPtr temp( iOldArchiveFileName->Des() );
- temp.Copy( aName );
- const TInt location = temp.LocateReverseF( dot ) + 1;
- TInt length = temp.Length() - location;
-
- if( location != KErrNotFound && length <= KOldSuffix().Length() )
- {
- temp.Delete( location, length );
- temp.Append( KOldSuffix().Ptr(), length );
- }
- else
- {
- temp.Append( dot );
- temp.Append( KOldSuffix().Ptr(), length );
- }
-
- // Ensure archive directory and attributes permit writing of file
- TInt error = PrepareToOverwrite(aName);
- __LOG1("CMMCScBkupArchive::OpenForWritingL() - prepare to over-write error: %d", error);
- User::LeaveIfError(error);
-
- // Open file for writing
- error = iArchiveFile.Replace(iFsSession, *iArchiveFileName, EFileShareExclusive | EFileStream | EFileWrite);
- __LOG1("CMMCScBkupArchive::OpenForWritingL() - replace error: %d", error);
- User::LeaveIfError(error);
- //
- PrepareObjectsL();
- SetMode(EModeWriting);
- __LOG1("CMMCScBkupArchive::OpenForWritingL() - END - file handle: 0x%08x", iArchiveFile.SubSessionHandle());
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::RestoreOldArchive()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchive::RestoreOldArchive()
- {
- Close( KErrCancel );
- TInt err = iFsSession.Rename( *iOldArchiveFileName, *iArchiveFileName );
-
- __LOG2("CMMCScBkupArchive::RestoreOldArchive() - %S restore error: %d", iArchiveFileName, err);
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::DeleteOldArchive()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchive::DeleteOldArchive()
- {
- if( iOldArchiveFileName != NULL )
- {
- TInt err = iFsSession.Delete( *iOldArchiveFileName );
-
- __LOG2("CMMCScBkupArchive::DeleteOldArchive() - %S delete error: %d", iOldArchiveFileName, err);
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::Close()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchive::Close( TInt aError )
- {
- __LOG1("CMMCScBkupArchive::Close() - aError: %d", aError);
-
- delete iHeader;
- iHeader = NULL;
- delete iFooter;
- iFooter = NULL;
- delete iDataManager;
- iDataManager = NULL;
- //
- if ( aError != KErrNone && Mode() == EModeWriting )
- {
- // Delete the archive if there was an error with the backup operation
- __LOG1("CMMCScBkupArchive::Close() - ERROR CREATING BACKUP - aError: %d => archive will be deleted", aError);
-
- // Ignore error when attempting delete
- iArchiveFile.Close();
- (void) iFsSession.Delete( *iArchiveFileName );
- }
-
- // Close archive. It might have already been closed in an error situation
- // but that's okay - it doesn't cause any problems to close it twice.
- iArchiveFile.Close();
-
- // Ignore error if setting read-only attribute fails, because it is not fatal
- iFsSession.SetAtt( *iArchiveFileName, KEntryAttReadOnly, !KEntryAttReadOnly );
-
- // Reset mode back to default, ready for next operation
- iMode = EModeUninitialised;
-
- __LOG("CMMCScBkupArchive::Close() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::Header()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveHeader& CMMCScBkupArchive::Header() const
- {
- return *iHeader;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::Footer()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveFooter& CMMCScBkupArchive::Footer() const
- {
- return *iFooter;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::ADI()
-//
-//
-// ---------------------------------------------------------------------------
-MMMCScBkupArchiveDataInterface& CMMCScBkupArchive::ADI() const
- {
- return *iDataManager;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::PrepareToOverwrite()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupArchive::PrepareToOverwrite( const TDesC& aFile )
- {
- __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - START - aFile: %S", &aFile);
- TInt err = KErrNone;
-
- // Try deleting file with temporary name (one we have created earlier,
- // but which has potentially remained for some reason).
- err = iFsSession.Delete( *iOldArchiveFileName );
- __LOG2("CMMCScBkupArchive::PrepareToOverwrite() - delete %S result: %d", iOldArchiveFileName, err);
- // Rename the file for possible later "restoration".
- err = iFsSession.Rename( aFile, *iOldArchiveFileName );
- __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - rename existing file: %d", err);
- // Reset file flags in order to make sure file can be deleted
- err = iFsSession.SetAtt( *iOldArchiveFileName, KEntryAttNormal, !KEntryAttNormal );
- __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - setFileAttNormal: %d", err);
-
- // Create the full path, if not exists
- err = iFsSession.MkDirAll( aFile );
- __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - mkDirAll: %d", err);
-
- if (err == KErrAlreadyExists || err == KErrNone )
- {
- // Set folder hidden, ignore error
- err = iFsSession.SetAtt( BaflUtils::DriveAndPathFromFullName( aFile ), KEntryAttHidden, !KEntryAttHidden );
- __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - setFolderHidden: %d", err);
-
- // Reset file flags in order to make sure file can be deleted
- err = iFsSession.SetAtt( aFile, KEntryAttNormal, !KEntryAttNormal );
- __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - setFileAttNormal: %d", err);
-
- }
- //
- if ( err == KErrNotFound )
- {
- // These errors are ignored
- __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - mapped %d to KErrNone -> everything is okay", err);
- err = KErrNone;
- }
- //
- __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - END - err: %d", err);
- return err;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::ValidArchiveForRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupArchive::ValidArchiveForRestoreL( RFs& aFsSession, const TDesC& aFileName )
- {
- HBufC8* modelInfo = NULL;
- TBitFlags archiveFlags( 0 );
-
- TVersion archiveVersion;
-
- // Read the header from the specified archive
- MMCScBkupArchiveUtils::ReadPhoneValidityInformationL( aFsSession, aFileName, modelInfo, archiveFlags, archiveVersion );
- CleanupStack::PushL( modelInfo );
-
- // Check whether its okay to restore the archive.
- const TBool validArchiveForRestore = MMCScBkupPhoneModelUtils::ArchiveRestorePermissableL( *modelInfo, archiveFlags, archiveVersion );
- CleanupStack::PopAndDestroy(modelInfo);
- //
- return validArchiveForRestore;
- }
-
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::SetMode()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchive::SetMode(TMode aMode)
- {
- iMode = aMode;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchive::PrepareObjectsL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchive::PrepareObjectsL()
- {
- __LOG("CMMCScBkupArchive::PrepareObjectsL() - START");
-
- __LOG("CMMCScBkupArchive::PrepareObjectsL() - creating data manager...");
- iDataManager = CMMCScBkupArchiveDataManager::NewL( iFsSession, iArchiveFile, iProgressManager );
-
- __LOG("CMMCScBkupArchive::PrepareObjectsL() - creating header...");
- iHeader = CMMCScBkupArchiveHeader::NewL( *iDataManager, iDriver );
-
- __LOG("CMMCScBkupArchive::PrepareObjectsL() - creating footer...");
- iFooter = CMMCScBkupArchiveFooter::NewL( *iDataManager, iDriver );
-
- __LOG("CMMCScBkupArchive::PrepareObjectsL() - END");
- }
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupArchiveDataManager.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,647 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupArchiveDataManager Implementation
-*
-*
-*/
-
-#include "CMMCScBkupArchiveDataManager.h"
-
-// System includes
-#include <ezcompressor.h>
-#include <ezdecompressor.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "RMMCScBkupArchiveStreams.h"
-#include "MMCScBkupOperations.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::CMMCScBkupArchiveDataManager()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveDataManager::CMMCScBkupArchiveDataManager( RFs& aFsSession, RFile64& aFile, MMMCScBkupProgressObserver& aProgressManager )
-: CActive( CActive::EPriorityIdle ), iFsSession( aFsSession ), iFile( aFile ), iProgressManager( aProgressManager )
- {
- __LOG1("CMMCScBkupArchiveDataManager::CMMCScBkupArchiveDataManager() - START - aFile: 0x%08x", aFile.SubSessionHandle() );
- CActiveScheduler::Add(this);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::~CMMCScBkupArchiveDataManager()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveDataManager::~CMMCScBkupArchiveDataManager()
- {
- Cancel();
- //
- iWriteStream.Close();
- //
- delete iCompressor;
- delete iDecompressor;
- delete iBufferManager;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::ConstructL()
- {
- TInt64 size = 0;
- User::LeaveIfError( iFile.Size( size ) );
- //
- iOverallArchiveVectorInfo.SetOffset( 0 );
- iOverallArchiveVectorInfo.SetLength( size );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveDataManager* CMMCScBkupArchiveDataManager::NewL( RFs& aFsSession, RFile64& aFile, MMMCScBkupProgressObserver& aProgressManager )
- {
- CMMCScBkupArchiveDataManager* self = new(ELeave) CMMCScBkupArchiveDataManager( aFsSession, aFile, aProgressManager );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::CurrentOffsetL()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupArchiveDataManager::CurrentOffsetL() const
- {
- TInt offset = CurrentOffset();
- User::LeaveIfError(offset);
- return offset;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::CurrentOffset()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupArchiveDataManager::CurrentOffset() const
- {
- TInt64 offsetOrError = 0;
- TInt error = iFile.Seek( ESeekCurrent, offsetOrError );
- //
- if (error != KErrNone)
- {
- offsetOrError = error;
- }
- //
- return offsetOrError;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::SetCurrentVector()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::SetCurrentVector( const TMMCScBkupArchiveVector& aVector )
- {
- iCurrentVectorInfo = aVector;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIFsSession()
-//
-//
-// ---------------------------------------------------------------------------
-RFs& CMMCScBkupArchiveDataManager::ADIFsSession() const
- {
- return iFsSession;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIRawArchiveFile()
-//
-//
-// ---------------------------------------------------------------------------
-RFile64& CMMCScBkupArchiveDataManager::ADIRawArchiveFile() const
- {
- return iFile;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADICurrentArchiveVectorInfo()
-//
-//
-// ---------------------------------------------------------------------------
-const TMMCScBkupArchiveVector& CMMCScBkupArchiveDataManager::ADICurrentArchiveVectorInfo() const
- {
- return iCurrentVectorInfo;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIOverallArchiveVectorInfo()
-//
-//
-// ---------------------------------------------------------------------------
-const TMMCScBkupArchiveVector& CMMCScBkupArchiveDataManager::ADIOverallArchiveVectorInfo() const
- {
- return iOverallArchiveVectorInfo;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIWriteStreamUncompressedLC()
-//
-//
-// ---------------------------------------------------------------------------
-RWriteStream& CMMCScBkupArchiveDataManager::ADIWriteStreamUncompressedLC( TInt aPos )
- {
- __LOG1("CMMCScBkupArchiveDataManager::ADIWriteStreamUncompressedLC() - START - aPos: %d", aPos );
- //
- __ASSERT_ALWAYS( !iWriteStream.IsOpen(), User::Invariant() );
- TInt offset = aPos;
- if (offset == KMMCScBkupArchiveWriteStreamCurrentPos)
- {
- offset = CurrentOffsetL();
- __LOG1("CMMCScBkupArchiveDataManager::ADIWriteStreamUncompressedLC() - current offset is: %d", offset );
- }
- //
- iWriteStream.OpenLC(*this, iFile, offset);
-
- __LOG("CMMCScBkupArchiveDataManager::ADIWriteStreamUncompressedLC() - END - stream opened and pushed");
-
- iCurrentVectorInfo.Reset();
- return iWriteStream;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIReadStreamUncompressedLC()
-//
-//
-// ---------------------------------------------------------------------------
-RReadStream& CMMCScBkupArchiveDataManager::ADIReadStreamUncompressedLC( TInt aPos )
- {
- __ASSERT_ALWAYS( !iReadStream.IsOpen(), User::Invariant() );
- TInt offset = aPos;
- if (offset == KMMCScBkupArchiveReadStreamCurrentPos)
- {
- offset = CurrentOffsetL();
- }
- //
- iReadStream.OpenLC(*this, iFile, offset);
- iCurrentVectorInfo.Reset();
- return iReadStream;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIWriteL()
-//
-//
-// ---------------------------------------------------------------------------
-const TMMCScBkupArchiveVector& CMMCScBkupArchiveDataManager::ADIWriteL( const TDesC8& aData )
- {
- const TInt offset = CurrentOffsetL();
- const TInt error = iFile.Write( aData );
- User::LeaveIfError(error);
-
-#ifdef RD_FILE_MANAGER_BACKUP
- CalculateCrc(aData.Ptr(), aData.Length());
-#endif
- //
- iCurrentVectorInfo.SetOffset( offset );
- iCurrentVectorInfo.SetLength( aData.Length() );
- //
- return iCurrentVectorInfo;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIReadL()
-//
-//
-// ---------------------------------------------------------------------------
-const TMMCScBkupArchiveVector& CMMCScBkupArchiveDataManager::ADIReadL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo )
- {
- TMMCScBkupArchiveVector readInfo(aInfo);
-
- // Read straight into aSink.
- const TInt maxLength = aSink.MaxLength();
- if (aInfo.Length() > maxLength)
- {
- readInfo.SetLength( maxLength );
- }
-
- aSink.Zero();
- const TInt error = iFile.Read( static_cast<TInt64>(readInfo.Offset()), aSink, readInfo.Length() );
- User::LeaveIfError( error );
- //
- iCurrentVectorInfo.SetOffset( readInfo.Offset() );
- iCurrentVectorInfo.SetLength( aSink.Length() );
- //
- return iCurrentVectorInfo;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIWriteFileL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::ADIWriteFileL( const TDesC& aSourceFileName, TRequestStatus& aStatus )
- {
- __LOG1("CMMCScBkupArchiveDataManager::ADIWriteFileL() - START - file: %S", &aSourceFileName);
-
- if (!iBufferManager || iBufferManager->Type() != CMMCScBkupBufferManagerBase::ETypeFileToArchive)
- {
- CMMCScBkupBufferManagerBase* bm =
- CMMCScBkupBufferManagerBase::NewByTypeL(
- CMMCScBkupBufferManagerBase::ETypeFileToArchive,
- iProgressManager,
- *this,
- (TAny*) &aSourceFileName);
- //
- delete iBufferManager;
- iBufferManager = bm;
- }
- else
- {
- iBufferManager->InitializeL( (TAny*) &aSourceFileName );
- }
-
- // Setup our observer & op
- SetOperation(EOperationCompressing);
- SetObserver(aStatus);
-
- // Compressing aData to the archive file
- EnsureCompressorExistsL(*iBufferManager);
-
- // Do the compression asynchronously
- CompleteSelf();
-
- __LOG("CMMCScBkupArchiveDataManager::ADIWriteFileL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIReadFileL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::ADIReadFileL( const TDesC& aDestinationFileName, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus )
- {
- __LOG3("CMMCScBkupArchiveDataManager::ADIReadFileL() - START - file: %S, offset: %8d, length: %8d", &aDestinationFileName, aInfo.Offset(), aInfo.Length());
-
- if (!iBufferManager || iBufferManager->Type() != CMMCScBkupBufferManagerBase::ETypeArchiveToFile)
- {
- CMMCScBkupBufferManagerBase* bm =
- CMMCScBkupBufferManagerBase::NewByTypeL(
- CMMCScBkupBufferManagerBase::ETypeArchiveToFile,
- iProgressManager,
- *this,
- (TAny*) &aDestinationFileName,
- (TAny*) &aInfo );
- //
- delete iBufferManager;
- iBufferManager = bm;
- }
- else
- {
- iBufferManager->InitializeL( (TAny*) &aDestinationFileName, (TAny*) &aInfo );
- }
-
- // Setup our observer & op
- SetOperation(EOperationDecompressing);
- SetObserver(aStatus);
-
- // Compressing aData to the archive file
- EnsureDecompressorExistsL(*iBufferManager);
-
- // Do the compression asynchronously
- CompleteSelf();
-
- __LOG("CMMCScBkupArchiveDataManager::ADIReadFileL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIWriteCompressedL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::ADIWriteCompressedL( const TDesC8& aData, TRequestStatus& aStatus )
- {
- if (!iBufferManager || iBufferManager->Type() != CMMCScBkupBufferManagerBase::ETypeDescriptorToArchive)
- {
- CMMCScBkupBufferManagerBase* bm =
- CMMCScBkupBufferManagerBase::NewByTypeL(
- CMMCScBkupBufferManagerBase::ETypeDescriptorToArchive,
- iProgressManager,
- *this,
- (TAny*) &aData );
- //
- delete iBufferManager;
- iBufferManager = bm;
- }
- else
- {
- iBufferManager->InitializeL( (TAny*) &aData );
- }
-
- // Setup our observer & op
- SetOperation(EOperationCompressing);
- SetObserver(aStatus);
-
- // Compressing aData to the archive file
- EnsureCompressorExistsL(*iBufferManager);
-
- // Do the compression asynchronously
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIReadDecompressedL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::ADIReadDecompressedL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus )
- {
- if (!iBufferManager || iBufferManager->Type() != CMMCScBkupBufferManagerBase::ETypeArchiveToDescriptor)
- {
- CMMCScBkupBufferManagerBase* bm =
- CMMCScBkupBufferManagerBase::NewByTypeL(
- CMMCScBkupBufferManagerBase::ETypeArchiveToDescriptor,
- iProgressManager,
- *this,
- (TAny*) &aSink,
- (TAny*) &aInfo );
- //
- delete iBufferManager;
- iBufferManager = bm;
- }
- else
- {
- iBufferManager->InitializeL( (TAny*) &aSink, (TAny*) &aInfo );
- }
-
- // Setup our observer & op
- SetOperation(EOperationDecompressing);
- SetObserver(aStatus);
-
- // Compressing aData to the archive file
- EnsureDecompressorExistsL(*iBufferManager);
-
- // Do the compression asynchronously
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIAsynchronousCancel()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::ADIAsynchronousCancel()
- {
- Cancel();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::ADIResetResources()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::ADIResetResources(TMMCScBkupOperationType /* aType */)
- {
- __LOG("CMMCScBkupArchiveDataManager::ADIResetResources()");
-
- delete iCompressor;
- iCompressor = NULL;
- delete iDecompressor;
- iDecompressor = NULL;
- delete iBufferManager;
- iBufferManager = NULL;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::EnsureCompressorExistsL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::EnsureCompressorExistsL( MEZBufferManager& aBufferManager )
- {
- delete iDecompressor;
- iDecompressor = NULL;
- //
- if (iCompressor == NULL)
- {
- iCompressor = CEZCompressor::NewL( aBufferManager );
- }
- else
- {
- iCompressor->ResetL(aBufferManager);
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::EnsureDecompressorExistsL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::EnsureDecompressorExistsL( MEZBufferManager& aBufferManager )
- {
- delete iCompressor;
- iCompressor = NULL;
- //
- if (iDecompressor == NULL)
- {
- iDecompressor = CEZDecompressor::NewL( aBufferManager );
- }
- else
- {
- iDecompressor->ResetL(aBufferManager);
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::SetObserver()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::SetObserver( TRequestStatus& aStatus )
- {
- __ASSERT_DEBUG(iObserverStatus == NULL, User::Invariant());
- iObserverStatus = &aStatus;
- *iObserverStatus = KRequestPending;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::CompleteSelf()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::CompleteSelf( TInt aCompletionCode )
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, aCompletionCode);
- }
-
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::CompleteObserver(()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::CompleteObserver( TInt aCompletionCode )
- {
- __ASSERT_ALWAYS(iObserverStatus != NULL, User::Invariant());
- User::RequestComplete(iObserverStatus, aCompletionCode);
-
- // Implicitly, we must be finished
- SetOperation(EOperationIdle);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::SetOperation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::SetOperation( TOperation aOperation )
- {
- iOperation = aOperation;
- }
-
-
-#ifdef RD_FILE_MANAGER_BACKUP
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::CalculateCrc()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::CalculateCrc( const TAny* aPtr,TInt aLength )
- {
- if(iCrcCalcActivated)
- {
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- TUint32 startTime = User::NTickCount();
-#endif
- Mem::Crc32(iCrc, aPtr, aLength);
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- iTotalTickCount += (User::NTickCount() - startTime);
- //__LOG5("CMMCScBkupArchiveDataManager::CalculateCrc() - crc %u, addr 0x%08x, len %d, offset %d, ticks in ms %u",
- // iCrc, aPtr, aLength, CurrentOffset(), iTotalTickCount);
-#endif
- }
- }
-#endif
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::RunL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::RunL()
- {
- User::LeaveIfError(iStatus.Int());
- TBool moreToDo = EFalse;
- //
- switch(iOperation)
- {
- case EOperationIdle:
- ASSERT( EFalse );
- break;
- case EOperationCompressing:
- __LOG("CMMCScBkupArchiveDataManager::RunL() - START - EOperationCompressing");
- moreToDo = iCompressor->DeflateL();
- break;
- case EOperationDecompressing:
- __LOG("CMMCScBkupArchiveDataManager::RunL() - START - EOperationDecompressing");
- moreToDo = iDecompressor->InflateL();
- break;
- }
- //
- if (moreToDo)
- {
- CompleteSelf();
- }
- else
- {
- // Update current offset & length info based upon buffer manager indications
- const TMMCScBkupArchiveVector& finalInfo = iBufferManager->Info();
- iCurrentVectorInfo = finalInfo;
-
- // Ensure we set the state back to idle, ready for next operation...
- iOperation = EOperationIdle;
-
- __LOG2("CMMCScBkupArchiveDataManager::RunL() - operation complete - offset: %8d, length: %8d", iCurrentVectorInfo.Offset(), iCurrentVectorInfo.Length());
- CompleteObserver();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::DoCancel()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveDataManager::DoCancel()
- {
- __ASSERT_DEBUG(iOperation != EOperationIdle, User::Invariant());
- //
- CompleteObserver(KErrCancel);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveDataManager::RunError()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupArchiveDataManager::RunError( TInt aError )
- {
- __LOG1("CMMCScBkupArchiveDataManager::RunError() - START - aError: %d", aError);
- CompleteObserver(aError);
- //
- return KErrNone;
- }
-
--- a/filemanager/bkupengine/src/CMMCScBkupArchiveFooter.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,342 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupArchiveFooter Implementation
-*
-*
-*/
-
-#include "CMMCScBkupArchiveFooter.h"
-
-// User includes
-#include "CMMCScBkupIndexPublicDataFiles.h"
-#include "CMMCScBkupIndexDataOwners.h"
-#include "CMMCScBkupIndexJavaData.h"
-#include "CMMCScBkupIndexSystemData.h"
-#include "CMMCScBkupIndexActiveData.h"
-#include "CMMCScBkupIndexJavaData.h"
-#include "CMMCScBkupIndexPassiveData.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMCScBkupArchiveUtils.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-
-/**
-
- UNDERSTANDING ARCHIVE FOOTER
- ============================
-
- // Indicies are:
- //
- // EMMCScBkupOwnerDataTypeDataOwner
- // EMMCScBkupOwnerDataTypeJavaData
- // EMMCScBkupOwnerDataTypePublicData
- // EMMCScBkupOwnerDataTypeSystemData
- // EMMCScBkupOwnerDataTypeActiveData
- // EMMCScBkupOwnerDataTypePassiveData
- //
- // 6 (index objects) *
- // ( 1 byte for object type + TMMCScBkupArchiveVector::ExternalizedSize() )
- //
-
- // THIS IS THE SIZE OF AN INDIVIDUAL "INDEX RECORD POINTER"
- const TInt indexDataSize = 1 // index type
- + TMMCScBkupArchiveVector::ExternalizedSize() // vector
- + 4 // spare1
- + 4 // spare2
- ;
-
- // THIS IS THE TOTAL SIZE OF ALL "INDEX RECORD POINTERS"
- const TInt sizeOfAllIndicies =
- 4 // stream format version
- + 4 // spare1
- + 4 // spare2
- + 4 // spare3
- + 4 // spare4
- + 4 // index object count
- + ( EMMCScBkupOwnerDataTypeCount * indexDataSize);
-
- // WE ALSO WRITE THE AMOUNT OF DISK SPACE REQUIRED FOR EACH DRIVE
- // IN ORDER TO RESTORE THE ARCHIVE
-
- (not included here)
-*/
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveFooter::CMMCScBkupArchiveFooter()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveFooter::CMMCScBkupArchiveFooter( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver )
-: iDataInterface( aDataInterface ), iDriver( aDriver )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveFooter::~CMMCScBkupArchiveFooter()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveFooter::~CMMCScBkupArchiveFooter()
- {
- iIndicies.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveFooter::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveFooter::ConstructL()
- {
- CMMCScBkupIndexBase* index = NULL;
- //
- index = CMMCScBkupIndexDataOwners::NewLC();
- iIndicies.AppendL(index);
- CleanupStack::Pop(index);
- //
- index = CMMCScBkupIndexPublicDataFiles::NewLC();
- iIndicies.AppendL(index);
- CleanupStack::Pop(index);
- //
- index = CMMCScBkupIndexSystemData::NewLC();
- iIndicies.AppendL(index);
- CleanupStack::Pop(index);
- //
- index = CMMCScBkupIndexJavaData::NewLC();
- iIndicies.AppendL(index);
- CleanupStack::Pop(index);
- //
- index = CMMCScBkupIndexActiveData::NewLC();
- iIndicies.AppendL(index);
- CleanupStack::Pop(index);
- //
- index = CMMCScBkupIndexPassiveData::NewLC();
- iIndicies.AppendL(index);
- CleanupStack::Pop(index);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveFooter::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveFooter* CMMCScBkupArchiveFooter::NewL( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupArchiveFooter* self = new(ELeave) CMMCScBkupArchiveFooter( aDataInterface, aDriver );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveFooter::IndexByType()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexBase& CMMCScBkupArchiveFooter::IndexByType( TMMCScBkupOwnerDataType aType )
- {
- CMMCScBkupIndexBase* ret = IndexByTypeOrNull( aType );
- __ASSERT_ALWAYS(ret != NULL, User::Invariant());
- return *ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveFooter::IndexByTypeOrNull()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexBase* CMMCScBkupArchiveFooter::IndexByTypeOrNull( TMMCScBkupOwnerDataType aType )
- {
- CMMCScBkupIndexBase* ret = NULL;
- //
- const TInt count = iIndicies.Count();
- for(TInt i=0; i<count; i++)
- {
- CMMCScBkupIndexBase* entry = iIndicies[i];
- if (entry->Type() == aType)
- {
- ret = entry;
- break;
- }
- }
- //
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveFooter::StoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveFooter::StoreL()
- {
- RWriteStream stream( iDataInterface.ADIWriteStreamUncompressedLC() );
- //
- const TInt count = iIndicies.Count();
- __ASSERT_DEBUG( count == EMMCScBkupOwnerDataTypeCount, User::Invariant());
-
- // NEW: write index version
- stream.WriteInt32L( EStreamFormatVersion1 );
-
- // NEW: spare1, spare2, spare3, spare4
- stream.WriteInt32L( 0 );
- stream.WriteInt32L( 0 );
- stream.WriteInt32L( 0 );
- stream.WriteInt32L( 0 );
-
- // NEW: write the number of indicies...
- stream.WriteInt32L( count );
-
- // ...then write each index in turn...
- for(TInt i=0; i<count; i++)
- {
- // First write the index type...
- const CMMCScBkupIndexBase& index = *iIndicies[i];
- stream.WriteInt8L( index.Type() );
-
- // Then write its offset (and length)
- const TMMCScBkupArchiveVector& vector = index.Vector();
- stream << vector;
-
- // NEW: Then write spare bytes for each index record
- stream.WriteInt32L( 0 ); // per-index spare1
- stream.WriteInt32L( 0 ); // per-index spare2
- }
-
- // NEW: write the amount of disk space required for each drive as
- // part of the footer information
- CMMCScBkupDataOwnerCollection& dataOwners = iDriver.DrvDataOwners();
- dataOwners.CalculateDiskSpaceRequiredForRestoreL();
- stream << dataOwners;
-
- // Tidy up...
- stream.CommitL();
- CleanupStack::PopAndDestroy(); // stream
-
-#ifdef RD_FILE_MANAGER_BACKUP
- // Disable crc-calculation for header data. Header crc'd separately
- iDataInterface.ADIActivateCrcCalculation(EFalse);
-#endif
-
- // We can now update the header with the total length of the footer, validation bits and crcs
- const TMMCScBkupArchiveVector& finalWriteInfo = iDataInterface.ADICurrentArchiveVectorInfo();
- MMCScBkupArchiveUtils::SetFooterLengthL( iDataInterface.ADIRawArchiveFile(), finalWriteInfo.Length() );
- MMCScBkupArchiveUtils::SetArchiveContentAsValidL( iDataInterface.ADIRawArchiveFile() );
-#ifdef RD_FILE_MANAGER_BACKUP
- MMCScBkupArchiveUtils::SetArchiveCrcsL( iDataInterface.ADIRawArchiveFile(), iDataInterface.ADIArchiveCrc() );
-#endif
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveFooter::RestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveFooter::RestoreL( TInt aCalculatedFooterOffsetWithinArchive )
- {
- RReadStream stream( iDataInterface.ADIReadStreamUncompressedLC( aCalculatedFooterOffsetWithinArchive ) );
-
- // NEW: Read stream format
- stream.ReadInt32L(); // EStreamFormatVersion1
-
- // NEW: spare1, spare2, spare3, spare4
- stream.ReadInt32L();
- stream.ReadInt32L();
- stream.ReadInt32L();
- stream.ReadInt32L();
-
- // NEW: Read written index count
- const TInt inMemoryIndexCount = iIndicies.Count();
- const TInt archiveIndexCount = stream.ReadInt32L();
- if ( archiveIndexCount > inMemoryIndexCount )
- {
- // Something wrong with file format version info?
- User::Leave( KErrCorrupt );
- }
-
- // Read index offsets
- for(TInt i=0; i<archiveIndexCount; i++)
- {
- // We only read the offset & length information.
- // The actual respective index restoration is done by other
- // objects as a result of other states
- const TMMCScBkupOwnerDataType type = static_cast< TMMCScBkupOwnerDataType >( stream.ReadInt8L() );
- //
- if ( type < 0 || type >= EMMCScBkupOwnerDataTypeCount )
- {
- User::Leave( KErrCorrupt );
- }
- else
- {
- // Always read the vector info (in order to keep the stream
- // position inline with the externalised representation)
- TMMCScBkupArchiveVector vector;
- stream >> vector;
-
- // NEW: Then read spare bytes for each index record
- stream.ReadInt32L(); // per-index spare1
- stream.ReadInt32L(); // per-index spare2
-
- // But only prepare the index if we have a similar type..
- CMMCScBkupIndexBase* index = IndexByTypeOrNull( type );
- //
- if ( index )
- {
- index->SetVector( vector );
- }
-
- }
- }
-
- // NEW: read the amount of disk space required for each drive as
- // part of the footer information
- CMMCScBkupDataOwnerCollection& dataOwners = iDriver.DrvDataOwners();
- stream >> dataOwners;
-
- //
- CleanupStack::PopAndDestroy(); // stream
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupArchiveHeader.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupArchiveHeader Implementation
-*
-*
-*/
-
-#include "CMMCScBkupArchiveHeader.h"
-
-// User includes
-#include "MMCScBkupArchiveUtils.h"
-
-/**
- * NB. See MMCScBkupArchiveUtils.cpp for archive header file format.
- */
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveHeader::CMMCScBkupArchiveHeader()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveHeader::CMMCScBkupArchiveHeader( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver )
-: iDataInterface( aDataInterface ), iDriver( aDriver )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveHeader::~CMMCScBkupArchiveHeader()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveHeader::~CMMCScBkupArchiveHeader()
- {
- delete iPhoneModelIdentifier;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveHeader::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveHeader::ConstructL()
- {
- iPhoneModelIdentifier = KNullDesC8().AllocL();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveHeader::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveHeader* CMMCScBkupArchiveHeader::NewL( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupArchiveHeader* self = new(ELeave) CMMCScBkupArchiveHeader( aDataInterface, aDriver );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveHeader::StoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveHeader::StoreL(TBitFlags aCategory)
- {
- MMCScBkupArchiveUtils::WriteHeaderL( iDataInterface, aCategory );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveHeader::RestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveHeader::RestoreL()
- {
- MMCScBkupArchiveUtils::ReadHeaderL( iDataInterface, *this );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveHeader::SetPhoneModelIdentifierL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveHeader::SetPhoneModelIdentifierL( const TDesC8& aModel )
- {
- HBufC8* model = aModel.AllocL();
- delete iPhoneModelIdentifier;
- iPhoneModelIdentifier = model;
- }
--- a/filemanager/bkupengine/src/CMMCScBkupArchiveInfo.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupArchiveInfo Implementation
-*
-*
-*/
-
-#include "CMMCScBkupArchiveInfo.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::CMMCScBkupArchiveInfo()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveInfo::CMMCScBkupArchiveInfo()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::~CMMCScBkupArchiveInfo()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveInfo::~CMMCScBkupArchiveInfo()
- {
- delete iFileInfo;
- iSecureIds.Close();
- iExcludedSecureIds.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveInfo::ConstructL( const TEntry& aEntry )
- {
- iFileInfo = CMMCScBkupFileInfo::NewL( aEntry, 0 );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveInfo* CMMCScBkupArchiveInfo::NewL( const TEntry& aEntry )
- {
- CMMCScBkupArchiveInfo* self = NewLC( aEntry );
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupArchiveInfo* CMMCScBkupArchiveInfo::NewLC( const TEntry& aEntry )
- {
- CMMCScBkupArchiveInfo* self = new(ELeave) CMMCScBkupArchiveInfo( );
- CleanupStack::PushL(self);
- self->ConstructL(aEntry);
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::SetSIDs()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveInfo::SetSIDs( RArray<TSecureId>& aSIDs )
- {
- TInt count = aSIDs.Count();
-
- for(TInt i = 0; i < count; i++ )
- {
- iSecureIds.Append(aSIDs[i]);
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::SetExcludedSIDs()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupArchiveInfo::SetExcludedSIDs( RArray<TSecureId>& aExcludedSIDs )
- {
- TInt count = aExcludedSIDs.Count();
-
- for(TInt i = 0; i < count; i++ )
- {
- iExcludedSecureIds.Append(aExcludedSIDs[i]);
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::SIDs()
-//
-//
-// ---------------------------------------------------------------------------
-const RArray<TSecureId>& CMMCScBkupArchiveInfo::SIDs( TBitFlags aCategory ) const
- {
- __ASSERT_ALWAYS(aCategory == iCategory, User::Invariant());
-
- return iSecureIds;
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::ExcludeSIDs()
-//
-//
-// ---------------------------------------------------------------------------
-const RArray<TSecureId>& CMMCScBkupArchiveInfo::ExcludedSIDs( TBitFlags aCategory ) const
- {
- __ASSERT_ALWAYS(aCategory == iCategory, User::Invariant());
-
- return iExcludedSecureIds;
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::Category()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TBitFlags CMMCScBkupArchiveInfo::Category() const
- {
- return iCategory;
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::FileName()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C const TDesC& CMMCScBkupArchiveInfo::FileName() const
- {
- return iFileInfo->FileName();
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::DateTime()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C const TTime& CMMCScBkupArchiveInfo::DateTime() const
- {
- return iFileInfo->DateTime();
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupArchiveInfo::Drive()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TDriveNumber CMMCScBkupArchiveInfo::Drive() const
- {
- return iFileInfo->Drive();
- }
--- a/filemanager/bkupengine/src/CMMCScBkupBufferManagers.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,837 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupBufferManagerBase implementation
-*
-*
-*/
-
-#include "CMMCScBkupBufferManagers.h"
-
-// System includes
-#include <ezstream.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDataStrategies.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-#include "MMMCScBkupProgressObserver.h"
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerBase::CMMCScBkupBufferManagerBase()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerBase::CMMCScBkupBufferManagerBase(MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI, TType aType )
-: iType( aType ), iBufferPointer( NULL, 0, 0 ), iProgressManager( aProgressManager ), iADI( aADI )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerBase::~CMMCScBkupBufferManagerBase()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerBase::~CMMCScBkupBufferManagerBase()
- {
- delete iBuffer;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerBase::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerBase::ConstructL(TInt aBufferSize)
- {
- HBufC8* buffer = HBufC8::NewL(aBufferSize);
- delete iBuffer;
- iBuffer = buffer;
- iBufferPointer.Set(iBuffer->Des());
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerBase::NewByTypeL()
-//
-// Factory
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerBase* CMMCScBkupBufferManagerBase::NewByTypeL(TType aType, MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI, TAny* aParam1, TAny* aParam2)
- {
- CMMCScBkupBufferManagerBase* ret = NULL;
- //
- switch(aType)
- {
- case ETypeDescriptorToArchive:
- ret = CMMCScBkupBufferManagerDescriptorToArchive::NewL( aProgressManager, aADI );
- break;
- case ETypeFileToArchive:
- ret = CMMCScBkupBufferManagerFileToArchive::NewL( aProgressManager, aADI );
- break;
- case ETypeArchiveToDescriptor:
- ret = CMMCScBkupBufferManagerArchiveToDescriptor::NewL( aProgressManager, aADI );
- break;
- case ETypeArchiveToFile:
- ret = CMMCScBkupBufferManagerArchiveToFile::NewL( aProgressManager, aADI );
- break;
- default:
- User::Leave(KErrNotSupported);
- break;
- }
- //
- CleanupStack::PushL(ret);
- ret->InitializeL(aParam1, aParam2);
- CleanupStack::Pop(ret);
- //
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerBase::WriteToArchiveAndUpdateStatsL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerBase::WriteToArchiveAndUpdateStatsL( const TDesC8& aData )
- {
- // Write the data we currently have to file. This reset
- const TMMCScBkupArchiveVector& writtenInfo = ADI().ADIWriteL( aData );
-
- // Update our stats. We combined what we've already written with
- // the amount of data we just wrote.
- if ( Info().Offset() == 0 )
- {
- // Possibly never updated the offset before...
- Info().SetOffset( writtenInfo.Offset() );
- }
- //
- const TInt existingLength = Info().Length();
- Info().SetLength( existingLength + writtenInfo.Length() );
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerDescriptorToArchive::CMMCScBkupBufferManagerDescriptorToArchive()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerDescriptorToArchive::CMMCScBkupBufferManagerDescriptorToArchive( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
-: CMMCScBkupBufferManagerBase( aProgressManager, aADI, ETypeDescriptorToArchive ), iSource( KNullDesC8 )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerDescriptorToArchive::CMMCScBkupBufferManagerDescriptorToArchive()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerDescriptorToArchive* CMMCScBkupBufferManagerDescriptorToArchive::NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
- {
- CMMCScBkupBufferManagerDescriptorToArchive* self = new(ELeave) CMMCScBkupBufferManagerDescriptorToArchive( aProgressManager, aADI );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerDescriptorToArchive::InitializeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerDescriptorToArchive::InitializeL(TAny* aParam1, TAny* /*aParam2*/)
- {
- const TDesC8* pData = reinterpret_cast<const TDesC8*>(aParam1);
- iSource.Set(*pData);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerDescriptorToArchive::InitializeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerDescriptorToArchive::InitializeL( CEZZStream& aZStream )
- {
- // We use the source object as the input buffer. Therefore the
- // dynamic buffer is used as an intermediate storage depot for compressed
- // data before it is flushed to disk
- aZStream.SetInput( iSource );
- aZStream.SetOutput( WriteBuffer() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerDescriptorToArchive::NeedInputL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerDescriptorToArchive::NeedInputL(CEZZStream& /*aZStream*/)
- {
- // Nothing to do here - we have provided all our input in one go
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerDescriptorToArchive::NeedOutputL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerDescriptorToArchive::NeedOutputL( CEZZStream& aZStream )
- {
- const TPtrC8 output(aZStream.OutputDescriptor());
- WriteToArchiveAndUpdateStatsL( output );
-
- // Reset ready for more writing
- WriteBuffer().Zero();
- aZStream.SetOutput( WriteBuffer() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerDescriptorToArchive::FinalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerDescriptorToArchive::FinalizeL( CEZZStream& aZStream )
- {
- // Write any remaining data...
- const TPtrC8 output(aZStream.OutputDescriptor());
- WriteToArchiveAndUpdateStatsL( output );
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerFileToArchive::CMMCScBkupBufferManagerFileToArchive()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerFileToArchive::CMMCScBkupBufferManagerFileToArchive( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
-: CMMCScBkupBufferManagerBase( aProgressManager, aADI, ETypeDescriptorToArchive ), iOutputPointer( NULL, 0, 0 )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerFileToArchive::~CMMCScBkupBufferManagerFileToArchive()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerFileToArchive::~CMMCScBkupBufferManagerFileToArchive()
- {
- delete iReadStrategy;
- delete iOutput;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerFileToArchive::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerFileToArchive::ConstructL( const TDesC& aFileName )
- {
- CMMCScBkupBufferManagerBase::ConstructL();
- //
- CMMCScBkupDataStrategy* strategy = CMMCScBkupDataStrategy::ReadStrategyLC(aFileName, ADI().ADIFsSession());
- delete iReadStrategy;
- iReadStrategy = strategy;
- CleanupStack::Pop(strategy);
- //
- HBufC8* output = HBufC8::NewL(KScBkupDefaultBufferSize);
- delete iOutput;
- iOutput = output;
- iOutputPointer.Set(iOutput->Des());
- //
- iFileName.Set(aFileName);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerFileToArchive::CMMCScBkupBufferManagerFileToArchive()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerFileToArchive* CMMCScBkupBufferManagerFileToArchive::NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
- {
- CMMCScBkupBufferManagerFileToArchive* self = new(ELeave) CMMCScBkupBufferManagerFileToArchive( aProgressManager, aADI );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerFileToArchive::InitializeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerFileToArchive::InitializeL(TAny* aParam1, TAny* /*aParam2*/)
- {
- const TDesC* pFileName = reinterpret_cast<const TDesC*>(aParam1);
- const TPtrC fileName(*pFileName);
- ConstructL(fileName);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerFileToArchive::InitializeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerFileToArchive::InitializeL( CEZZStream& aZStream )
- {
- // Seed input buffer
- TPtr8 pWriteBuffer( WriteBuffer() );
- iReadStrategy->Read( pWriteBuffer );
- aZStream.SetInput( pWriteBuffer );
-
- // Progress during a backup is calculated based upon the amount of the
- // source file that has been read.
- ProgressManager().MMCScBkupHandleProgress( pWriteBuffer.Length() );
-
- // Make ready for output
- aZStream.SetOutput( iOutputPointer );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerFileToArchive::NeedInputL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerFileToArchive::NeedInputL( CEZZStream& aZStream )
- {
- // Read some data from the file
- TPtr8 pWriteBuffer( WriteBuffer() );
- iReadStrategy->Read( pWriteBuffer );
-
- // Progress during a backup is calculated based upon the amount of the
- // source file that has been read.
- ProgressManager().MMCScBkupHandleProgress( pWriteBuffer.Length() );
-
- aZStream.SetInput( pWriteBuffer );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerFileToArchive::NeedOutputL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerFileToArchive::NeedOutputL( CEZZStream& aZStream )
- {
- const TPtrC8 output(aZStream.OutputDescriptor());
- WriteToArchiveAndUpdateStatsL( output );
-
- // Reset ready for more writing
- iOutputPointer.Zero();
- aZStream.SetOutput( iOutputPointer );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerFileToArchive::FinalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerFileToArchive::FinalizeL( CEZZStream& aZStream )
- {
- const TPtrC8 output(aZStream.OutputDescriptor());
-
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- const TInt compressedSize = output.Size() + Info().Length();
- TEntry entry;
- const TInt error = ADI().ADIFsSession().Entry(iFileName, entry);
- if (error == KErrNone)
- {
- const TReal ratio = (TReal) entry.iSize / (TReal) compressedSize;
- __LOG4("CMMCScBkupBufferManagerFileToArchive::FinalizeL() - compressing %S - original: %d, compressed: %d, ratio: %f", &iFileName, entry.iSize, compressedSize, ratio);
- if (compressedSize > entry.iSize)
- {
- // We've made this file bigger
- __LOG3("CMMCScBkupBufferManagerFileToArchive::FinalizeL() - compressing %S had negative effect - originalSize: %d vs compressed: %d", &iFileName, entry.iSize, compressedSize);
- }
- }
-#endif
-
- WriteToArchiveAndUpdateStatsL( output );
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToDescriptor::CMMCScBkupBufferManagerArchiveToDescriptor()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerArchiveToDescriptor::CMMCScBkupBufferManagerArchiveToDescriptor( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
-: CMMCScBkupBufferManagerBase( aProgressManager, aADI, ETypeArchiveToDescriptor ), iOutputPointer( NULL, 0, 0 )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToDescriptor::~CMMCScBkupBufferManagerArchiveToDescriptor()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerArchiveToDescriptor::~CMMCScBkupBufferManagerArchiveToDescriptor()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToDescriptor::CMMCScBkupBufferManagerArchiveToDescriptor()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerArchiveToDescriptor* CMMCScBkupBufferManagerArchiveToDescriptor::NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
- {
- CMMCScBkupBufferManagerArchiveToDescriptor* self = new(ELeave) CMMCScBkupBufferManagerArchiveToDescriptor( aProgressManager, aADI );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToDescriptor::InitializeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToDescriptor::InitializeL( TAny* aParam1, TAny* aParam2 )
- {
- // Setup sink
- TDes8* pDataSink = (TDes8*) aParam1;
- iOutputPointer.Set( const_cast<TUint8*>( pDataSink->Ptr() ), pDataSink->Length(), pDataSink->MaxLength() );
-
- // Setup max read info
- const TMMCScBkupArchiveVector* readInfo = (const TMMCScBkupArchiveVector*) aParam2;
- Info() = *readInfo;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToDescriptor::InitializeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToDescriptor::InitializeL( CEZZStream& aZStream )
- {
- // Try to read some data
- TryToReadMoreSourceDataL();
-
- // We use the source object as the input buffer. Therefore the
- // dynamic buffer is used as an intermediate storage depot for compressed
- // data before it is flushed to disk
- aZStream.SetInput( DataView() );
- aZStream.SetOutput( iOutputPointer );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToDescriptor::NeedInputL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToDescriptor::NeedInputL(CEZZStream& aZStream)
- {
- // Try to read some more data
- TryToReadMoreSourceDataL();
- aZStream.SetInput( DataView() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToDescriptor::NeedOutputL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToDescriptor::NeedOutputL( CEZZStream& /*aZStream*/ )
- {
- // Nothing to do here, we've got no more space if the sink is full
- ASSERT( EFalse );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToDescriptor::FinalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToDescriptor::FinalizeL( CEZZStream& /*aZStream*/ )
- {
- // Nothing to do here, we've writing straight to the client's descriptor
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToDescriptor::TryToReadMoreSourceDataL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToDescriptor::TryToReadMoreSourceDataL()
- {
- if ( Info().Length() > 0 )
- {
- // Try to read some source data, but don't read beyond the limits
- const TMMCScBkupArchiveVector& readInfoResult = ADI().ADIReadL( WriteBuffer(), Info() );
-
- // Update remaining read info so that we know where from and how much data
- // to read next time around
- const TInt newStartingOffset = readInfoResult.Offset() + readInfoResult.Length();
- const TInt remainingToBeRead = Info().Length() - readInfoResult.Length();
- //
- Info().SetOffset( newStartingOffset );
- Info().SetLength( remainingToBeRead );
- //
- __LOG1("CMMCScBkupBufferManagerArchiveToDescriptor::TryToReadMoreSourceDataL() - read: %d bytes from archive", readInfoResult.Length());
- //
- ProgressManager().MMCScBkupHandleProgress( readInfoResult.Length() );
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToFile::CMMCScBkupBufferManagerArchiveToFile()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerArchiveToFile::CMMCScBkupBufferManagerArchiveToFile( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
-: CMMCScBkupBufferManagerBase( aProgressManager, aADI, ETypeArchiveToFile ), iOutputPointer( NULL, 0, 0 )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToFile::~CMMCScBkupBufferManagerArchiveToFile()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerArchiveToFile::~CMMCScBkupBufferManagerArchiveToFile()
- {
- delete iWriteStrategy;
- delete iOutput;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToFile::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToFile::ConstructL( const TDesC& aFileName )
- {
- CMMCScBkupBufferManagerBase::ConstructL();
-
- // Create a write strategy that ultimately writes to a temp file in our
- // private data cage. When the file has been successfully extracted,
- // we then replace the original. -> see FinalizeL()
- CMMCScBkupDataStrategy* strategy = CMMCScBkupDataStrategy::WriteStrategyLC( aFileName, ADI().ADIFsSession(), KMMCScBkupUseTempFile );
- delete iWriteStrategy;
- iWriteStrategy = strategy;
- CleanupStack::Pop( strategy );
- //
- HBufC8* output = HBufC8::NewL(KScBkupDefaultBufferSize);
- delete iOutput;
- iOutput = output;
- iOutputPointer.Set(iOutput->Des());
- //
- iFileName.Set(aFileName);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToFile::CMMCScBkupBufferManagerArchiveToFile()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupBufferManagerArchiveToFile* CMMCScBkupBufferManagerArchiveToFile::NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
- {
- CMMCScBkupBufferManagerArchiveToFile* self = new(ELeave) CMMCScBkupBufferManagerArchiveToFile( aProgressManager, aADI );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToFile::InitializeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToFile::InitializeL(TAny* aParam1, TAny* aParam2)
- {
- // Param 1 is the destination file name
- const TDesC* pFileName = reinterpret_cast<const TDesC*>(aParam1);
- const TPtrC fileName(*pFileName);
- ConstructL(fileName);
-
- // Param 2 defines where we should read archive data from (and how much we should read)
- const TMMCScBkupArchiveVector* readInfo = (const TMMCScBkupArchiveVector*) aParam2;
- Info() = *readInfo;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToFile::InitializeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToFile::InitializeL( CEZZStream& aZStream )
- {
- // Try to read some data
- TryToReadMoreSourceDataL();
-
- // Input comes from the base class buffer. Its effectively the
- // data from the archive.
- aZStream.SetInput( WriteBuffer() );
-
- // Output goes to our secondary buffer - we'll eventually
- // write this to the destination file.
- aZStream.SetOutput( iOutputPointer );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToFile::NeedInputL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToFile::NeedInputL( CEZZStream& aZStream )
- {
- // Try to read some more data
- TryToReadMoreSourceDataL();
- aZStream.SetInput( DataView() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToFile::NeedOutputL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToFile::NeedOutputL( CEZZStream& aZStream )
- {
- // Flush output to oure write strategy
- const TPtrC8 output(aZStream.OutputDescriptor());
- const TInt error = iWriteStrategy->Write( output );
- User::LeaveIfError( error );
-
- // Reset ready for more writing
- iOutputPointer.Zero();
- aZStream.SetOutput( iOutputPointer );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToFile::FinalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToFile::FinalizeL( CEZZStream& aZStream )
- {
- const TPtrC8 output(aZStream.OutputDescriptor());
- TInt error = iWriteStrategy->Write( output );
- User::LeaveIfError( error );
-
- // No errors writing to temp file, try to finalise write strategy -
- // essentially this replaces the original file.
- error = iWriteStrategy->Finalize();
- User::LeaveIfError( error );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupBufferManagerArchiveToFile::TryToReadMoreSourceDataL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupBufferManagerArchiveToFile::TryToReadMoreSourceDataL()
- {
- if ( Info().Length() > 0 )
- {
- // Try to read some source data, but don't read beyond the limits
- const TMMCScBkupArchiveVector& readInfoResult = ADI().ADIReadL( WriteBuffer(), Info() );
-
- // Update remaining read info so that we know where from and how much data
- // to read next time around
- const TInt newStartingOffset = readInfoResult.Offset() + readInfoResult.Length();
- const TInt remainingToBeRead = Info().Length() - readInfoResult.Length();
- //
- Info().SetOffset( newStartingOffset );
- Info().SetLength( remainingToBeRead );
- //
- __LOG2("CMMCScBkupBufferManagerArchiveToFile::TryToReadMoreSourceDataL() - read: %d bytes from archive when reconstructing: %S", readInfoResult.Length(), &iFileName );
- //
- ProgressManager().MMCScBkupHandleProgress( readInfoResult.Length() );
- }
- }
-
--- a/filemanager/bkupengine/src/CMMCScBkupDataOwnerCollection.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,567 +0,0 @@
-/*
-* Copyright (c) 2005-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: CMMCScBkupDataOwnerCollection implementation
-*
-*
-*/
-
-#include "CMMCScBkupDataOwnerCollection.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "TMMCScBkupDriveAndSize.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMCScBkupSBEUtils.h"
-#include "MMMCScBkupDriver.h"
-#include "CMMCScBkupDriveDataSizeManager.h"
-#include "RMMCScBkupProgressSizer.h"
-#ifdef RD_FILE_MANAGER_BACKUP
-#include "CMMCScBkupArchiveInfo.h"
-#include "BkupEngine.hrh"
-#endif
-
-// Constants
-const TInt KMMCScBkupDataOwnerGranularity = 20;
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::CMMCScBkupDataOwnerCollection()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerCollection::CMMCScBkupDataOwnerCollection( MMMCScBkupDriver& aDriver, TBitFlags aCategory )
-: iDriver( aDriver ), iOwners(KMMCScBkupDataOwnerGranularity), iCategory( aCategory )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::~CMMCScBkupDataOwnerCollection()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerCollection::~CMMCScBkupDataOwnerCollection()
- {
- Reset();
- iOwners.Close();
- delete iRestoreSizer;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerCollection::ConstructL()
- {
- // The restore sizer data type is not relevant. It holds
- // the combined disk space requirements for all drives
- // for all data types.
- iRestoreSizer = CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypeAny );
- CleanupStack::Pop( iRestoreSizer );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerCollection* CMMCScBkupDataOwnerCollection::NewL( MMMCScBkupDriver& aDriver, TBitFlags aCategory )
- {
- CMMCScBkupDataOwnerCollection* self = new(ELeave) CMMCScBkupDataOwnerCollection( aDriver, aCategory );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::AssignL()
-//
-//
-// ---------------------------------------------------------------------------
-#ifdef RD_FILE_MANAGER_BACKUP
-TBool CMMCScBkupDataOwnerCollection::AssignL( const CMMCScBkupDataOwnerInfo& dataOwnerInfo )
- {
- const CMMCScBkupArchiveInfo& archive = iDriver.DrvParamsBase().ArchiveInfo( Category() );
- const RArray<TSecureId>& secureIds = archive.SIDs( Category() );
- const RArray<TSecureId>& excludedSecureIds = archive.ExcludedSIDs( Category() );
- TBitFlags flags = archive.SpecialFlags();
- TBitFlags excludedFlags = archive.ExcludedSpecialFlags();
-
- // Check whether data owner belongs to this category
- if( BelongsToL( dataOwnerInfo, flags, excludedFlags, secureIds, excludedSecureIds) )
- {
- iOwners.AppendL(&dataOwnerInfo);
- return ETrue;
- }
-
- return EFalse;
- }
-#else
-void CMMCScBkupDataOwnerCollection::AssignL( RDataOwnerInfoArray& aArray )
- {
- const TInt count = aArray.Count();
- //
- for(TInt i=count-1; i>=0; i--)
- {
- // Ownership is immediately transferred to the backup owner info object
- // so we should remove it from the array prior to passing into NewLC
- conn::CDataOwnerInfo* sbDataOwner = aArray[i];
- aArray.Remove(i); // Ensures it won't be deleted twice
- //
- CMMCScBkupDataOwnerInfo* info = CMMCScBkupDataOwnerInfo::NewLC( sbDataOwner );
- iOwners.AppendL(info);
- CleanupStack::Pop(info);
- }
- }
-#endif
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::AppendL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerCollection::AppendL( CMMCScBkupDataOwnerInfo* aNewEntry )
- {
- iOwners.AppendL( aNewEntry );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::Count()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDataOwnerCollection::Count() const
- {
- return iOwners.Count();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::Owner()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::Owner(TInt aIndex)
- {
- CMMCScBkupDataOwnerInfo* info = iOwners[aIndex];
- return *info;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::Owner()
-//
-//
-// ---------------------------------------------------------------------------
-const CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::Owner(TInt aIndex) const
- {
- const CMMCScBkupDataOwnerInfo* info = iOwners[aIndex];
- return *info;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::OwnerL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( TSecureId aSID )
- {
- TInt index = KErrNotFound;
- CMMCScBkupDataOwnerInfo* ret = CMMCScBkupDataOwnerInfo::New( aSID );
- if (ret)
- {
- TIdentityRelation<CMMCScBkupDataOwnerInfo> relation(CMMCScBkupDataOwnerInfo::CompareDataOwnerBySIDL);
- index = iOwners.Find( ret, relation );
- delete ret;
- ret = NULL;
- }
- //
- if (index >= 0)
- {
- ret = iOwners[index];
- }
- else
- {
- User::Leave(KErrNotFound);
- }
- //
- return *ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::OwnerL()
-//
-//
-// ---------------------------------------------------------------------------
-const CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( TSecureId aSID ) const
- {
- CMMCScBkupDataOwnerCollection& self = *const_cast<CMMCScBkupDataOwnerCollection*>(this);
- CMMCScBkupDataOwnerInfo& ret = self.OwnerL( aSID );
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::OwnerL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( TUid aPackageId )
- {
- CMMCScBkupDataOwnerInfo* ret = NULL;
- const TInt count = iOwners.Count();
- //
- for(TInt i=0; i<count; i++)
- {
- CMMCScBkupDataOwnerInfo* entry = iOwners[ i ];
- //
- const TUid packageId = MMCScBkupSBEUtils::PackageIdFromGenericL( entry->Owner().Identifier() );
- if ( packageId == aPackageId )
- {
- ret = entry;
- }
- }
- //
- if ( !ret )
- {
- User::Leave(KErrNotFound);
- }
- //
- return *ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::OwnerL()
-//
-//
-// ---------------------------------------------------------------------------
-const CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( TUid aPackageId ) const
- {
- CMMCScBkupDataOwnerCollection& self = *const_cast<CMMCScBkupDataOwnerCollection*>(this);
- CMMCScBkupDataOwnerInfo& ret = self.OwnerL( aPackageId );
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::OwnerL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( const TDesC& aHash )
- {
- CMMCScBkupDataOwnerInfo* ret = NULL;
- const TInt count = iOwners.Count();
- //
- for(TInt i=0; i<count; i++)
- {
- CMMCScBkupDataOwnerInfo* entry = iOwners[ i ];
-
- // Check if its a java item...
- const TSBDerivedType type = entry->Owner().Identifier().DerivedTypeL();
- if ( type == EJavaDerivedType || type == EJavaTransferDerivedType )
- {
- // Get hash
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( entry->Owner().Identifier() );
- const TBool foundMatch = ( *hash == aHash );
- CleanupStack::PopAndDestroy( hash );
-
- if ( foundMatch )
- {
- ret = entry;
- break;
- }
- }
- }
- //
- if ( !ret )
- {
- User::Leave(KErrNotFound);
- }
- //
- return *ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::OwnerL()
-//
-//
-// ---------------------------------------------------------------------------
-const CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( const TDesC& aHash ) const
- {
- CMMCScBkupDataOwnerCollection& self = *const_cast<CMMCScBkupDataOwnerCollection*>(this);
- CMMCScBkupDataOwnerInfo& ret = self.OwnerL( aHash );
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::Remove()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerCollection::Remove( TInt aIndex )
- {
- CMMCScBkupDataOwnerInfo* info = iOwners[aIndex];
- delete info;
- iOwners.Remove(aIndex);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::Reset()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerCollection::Reset()
- {
- iOwners.ResetAndDestroy();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::TotalOperationalSizeL()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupDataOwnerCollection::TotalOperationalSizeL() const
- {
- RMMCScBkupProgressSizer sizer( iDriver.DrvParamsBase().DriveAndOperations() );
- TInt64 size = 0;
- //
- const TInt count = Count();
- for(TInt i=0; i<count; i++)
- {
- const CMMCScBkupDataOwnerInfo& owner = Owner( i );
- //
- const TInt64 restoreSizeForDO = sizer.RestoreCombinedDataSizeL( owner );
-
- __LOG2("CMMCScBkupDataOwnerCollection::TotalOperationalSizeL() - data transfer amount required for DO: 0x%08x is: %8Ld", owner.SecureId().iId, restoreSizeForDO );
-
- size += restoreSizeForDO;
- }
- //
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::RebootRequired()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDataOwnerCollection::RebootRequired() const
- {
- TBool rebootRequired = EFalse;
- //
- const TInt count = iOwners.Count();
- for(TInt i=count-1; i>=0; i--)
- {
- // We check the SBE's common settings (for each Data Owner) to identify
- // if a reboot is required. So long as one data owner requires a
- // reboot, then we must reset the machine.. hence we break
- // out of the loop immediately.
- const CMMCScBkupDataOwnerInfo& info = *iOwners[i];
- const CDataOwnerInfo& sbeDataOwnerInfo = info.Owner();
- //
- if ( sbeDataOwnerInfo.CommonSettings() & ERequiresReboot )
- {
- rebootRequired = ETrue;
- break;
- }
- }
- //
- return rebootRequired;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::DiskSpaceRequiredForRestore()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupDataOwnerCollection::DiskSpaceRequiredForRestore( TDriveNumber aDrive ) const
- {
- return iRestoreSizer->Size( aDrive );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL()
- {
- iRestoreSizer->Reset();
- //
- RArray<TMMCScBkupDriveAndSize> driveSizes;
- CleanupClosePushL( driveSizes );
- //
- const TInt count = iOwners.Count();
- for(TInt i=count-1; i>=0; i--)
- {
- const CMMCScBkupDataOwnerInfo& owner = *iOwners[i];
- __LOG(" ");
- __LOG1("CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL() - owner: 0x%08x...", owner.SecureId().iId);
- //
- owner.OperationalSizesL( driveSizes );
- //
- const TInt driveSizesCount = driveSizes.Count();
- for( TInt j=0; j<driveSizesCount; j++ )
- {
- const TMMCScBkupDriveAndSize& entry = driveSizes[ j ];
- __LOG2("CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL() - drive: %c:, size: %8Ld", entry.Drive() + 'A', entry.Size());
- //
- iRestoreSizer->AddToSizeL( entry.Size(), entry.Drive() );
- }
- }
- //
- CleanupStack::PopAndDestroy( &driveSizes );
-
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- __LOG(" ");
- __LOG(" ");
- __LOG(" ");
- __LOG(" ");
- __LOG("CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL() - SUMMARY:");
- __LOG(" ");
-
- for( TInt d = EDriveA; d<=EDriveZ; d++ )
- {
- // Get the size of each data type for this drive.
- const TDriveNumber drive = static_cast< TDriveNumber >( d );
- const TInt64 size = DiskSpaceRequiredForRestore( drive );
-
- if ( size > 0 )
- {
- __LOG2("CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL() - %8Ld bytes required for drive: %c:", size, drive + 'A' );
- }
- }
-#endif
- }
-
-#ifdef RD_FILE_MANAGER_BACKUP
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::BelongsToL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDataOwnerCollection::BelongsToL(const CMMCScBkupDataOwnerInfo& aInfo,
- TBitFlags aFlags, TBitFlags aExcludedFlags,
- const RArray<TSecureId> aSecureIds, const RArray<TSecureId> aExcludedSecureIds) const
- {
- // First of all check if data owner has system or java data. If it has and these
- // types have been declared as excluded data types, then skip owner in this catecory.
- // Public data is more common to data owners together with other data types meaning it
- // cannot be a reason to invalidate data owner. System's user data folder (e.g. C:\Data) files
- // are being skipped later on in public data backup phase if category is not EBUCatUserFiles
- // It would be possible to just skip excluded types per data owner, but it
- // might make data owner unstable after restore
-
- if( ((aExcludedFlags.Value() & EBUCatSpecSystem) && aInfo.HasSystemDataL()) ||
- ((aExcludedFlags.Value() & EBUCatSpecJava) && aInfo.HasJavaDataL()) ||
- ((aExcludedFlags.Value() & EBUCatSpecPublic) && aInfo.HasPublicDataL()) )
- {
- return EFalse;
- }
-
- // Then check whether all specified and SID not in list of excluded owners
- if( (aFlags.Value() & EBUCatSpecAll) )
- {
- TBool excluded = EFalse;
-
- for(TInt i = 0; i < aExcludedSecureIds.Count(); i++)
- {
- if(aInfo.SecureId().iId == aExcludedSecureIds[i].iId)
- {
- excluded = ETrue;
- break;
- }
- }
-
- return !excluded;
- }
-
- // Then check whether special rules apply
- if( ((aFlags.Value() & EBUCatSpecSystem) && aInfo.HasSystemDataL()) ||
- ((aFlags.Value() & EBUCatSpecJava) && aInfo.HasJavaDataL()) ||
- ((aFlags.Value() & EBUCatSpecPublic) && aInfo.HasPublicDataL()) )
- {
- return ETrue;
- }
-
- // Finally check whether SID matches
- for(TInt i = 0; i < aSecureIds.Count(); i++)
- {
- if(aInfo.SecureId().iId == aSecureIds[i].iId)
- {
- return ETrue;
- }
- }
-
- return EFalse;
- }
-#endif
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::InternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerCollection::InternalizeL( RReadStream& aStream )
- {
- aStream.ReadInt32L(); // EStreamFormatVersion1
- aStream.ReadInt32L(); // spare1
- aStream.ReadInt32L(); // spare2
- aStream.ReadInt32L(); // spare3
-
- CMMCScBkupDriveSizer* restoreSizer = CMMCScBkupDriveSizer::NewLC( aStream );
- delete iRestoreSizer;
- iRestoreSizer = restoreSizer;
- CleanupStack::Pop( restoreSizer );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerCollection::ExternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerCollection::ExternalizeL( RWriteStream& aStream ) const
- {
- aStream.WriteInt32L( EStreamFormatVersion1 );
- aStream.WriteInt32L( 0 ); // spare1
- aStream.WriteInt32L( 0 ); // spare2
- aStream.WriteInt32L( 0 ); // spare3
-
- aStream << *iRestoreSizer;
- }
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupDataOwnerInfo.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,560 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupDataOwnerInfo implementation
-*
-*
-*/
-
-#include "CMMCScBkupDataOwnerInfo.h"
-
-// System includes
-#include <s32strm.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMCScBkupSBEUtils.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-#include "CMMCScBkupDriveDataSizeManager.h"
-
-// Constants
-_LIT_SECURE_ID(KMMCScBkupUninitialisedSecureId, 0);
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::CMMCScBkupDataOwnerInfo()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerInfo::CMMCScBkupDataOwnerInfo( CDataOwnerInfo* aOwner )
-: iDataOwner(aOwner), iVersion(EStreamFormatVersionLatest-1)
- {
- SetStatus(EUnset);
- //
- iSecureId = KMMCScBkupUninitialisedSecureId;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::~CMMCScBkupDataOwnerInfo()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerInfo::~CMMCScBkupDataOwnerInfo()
- {
- delete iDataOwner;
- delete iOperationalSize;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerInfo::ConstructL()
- {
- if ( iOperationalSize == NULL )
- {
- iOperationalSize = CMMCScBkupDataTypeSizer::NewL();
- }
-
- // Try and extract the SID if its a package or a SID type
- const TSBDerivedType type = iDataOwner->Identifier().DerivedTypeL();
- //
- if (type == ESIDDerivedType || type == EPackageDerivedType)
- {
- iSecureId = MMCScBkupSBEUtils::SecureIdFromGenericL(iDataOwner->Identifier());
- if( iSecureId.iId == KNullUid.iUid && iVersion > EStreamFormatVersion1 )
- {
- iSecureId = MMCScBkupSBEUtils::PackageIdFromGenericL(iDataOwner->Identifier());
- }
- }
-
- // The following code sets the completion status to ETrue
- // for any irrelevant items associated with a data owner. I.e. if
- // a data owner doesn't support active backup, then it sets the completion
- // of active backup to ETrue. This makes writing the logic inside the
- // active/passive/system backup items a little easier (active in particular)
- const TBool hasJavaData = HasJavaDataL();
- const TBool hasActiveData = HasActiveDataL();
- const TBool hasPassiveData = HasPassiveDataL();
- const TBool hasPublicData = HasPublicDataL();
- const TBool hasSystemData = HasSystemDataL();
-
- // Update completion statuses (i.e. "what work must be done")
- SetCompletionStatus( EMMCScBkupOwnerDataTypeJavaData, !hasJavaData );
- SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, !hasActiveData );
- SetCompletionStatus( EMMCScBkupOwnerDataTypePassiveData, !hasPassiveData );
- SetCompletionStatus( EMMCScBkupOwnerDataTypePublicData, !hasPublicData );
- SetCompletionStatus( EMMCScBkupOwnerDataTypeSystemData, !hasSystemData );
-
- // Be aware that CMMCScBkupStateRequestSizeOfDataOwner::GetJavaDataSizesL() can
- // manipulate the passive data completion status depending on whether the midlet
- // has associated data files.
-
- // If we're logging, then we write out some useful debugging info that shows
- // which operations must be performed for each D.O.
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- TBuf<256> drivePrint;
- const TDriveList& driveList = iDataOwner->DriveList();
-
- for(TInt i=0; i<KMaxDrives; i++)
- {
- if (driveList[i] != 0)
- {
- const TDriveUnit driveUnit(i);
- const TDriveName name(driveUnit.Name());
- drivePrint.Append(name);
- if (i < KMaxDrives - 1)
- {
- drivePrint.Append(_L(", "));
- }
- }
- }
-
- if ( hasJavaData )
- {
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( iDataOwner->Identifier() );
- __LOG7("CMMCScBkupDataOwnerInfo::ConstructL() - PubD: %d, ActD: %d, PasD: %d, JavD: %d, SysD: %d, drives: %S, hash: %S", hasPublicData, hasActiveData, hasPassiveData, hasJavaData, hasSystemData, &drivePrint, hash);
- CleanupStack::PopAndDestroy( hash );
- }
- else
- {
- __LOG8("CMMCScBkupDataOwnerInfo::ConstructL() - PubD: %d, ActD: %d, PasD: %d, JavD: %d, SysD: %d, drives: %S, SID : 0x%08x %S", hasPublicData, hasActiveData, hasPassiveData, hasJavaData, hasSystemData, &drivePrint, iSecureId.iId, &MMCScBkupLogger::FriendlyNameForSID( iSecureId ));
- }
-#endif
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::New()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerInfo* CMMCScBkupDataOwnerInfo::New( TSecureId aSecureId )
- {
- CMMCScBkupDataOwnerInfo* self = new CMMCScBkupDataOwnerInfo( NULL );
- if (self)
- {
- self->iSecureId = aSecureId;
- }
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerInfo* CMMCScBkupDataOwnerInfo::NewLC( CDataOwnerInfo* aOwner )
- {
- CleanupStack::PushL(aOwner);
- CMMCScBkupDataOwnerInfo* self = new(ELeave) CMMCScBkupDataOwnerInfo( aOwner );
- CleanupStack::Pop(aOwner);
- CleanupStack::PushL(self);
- self->ConstructL();
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerInfo* CMMCScBkupDataOwnerInfo::NewLC( RReadStream& aStream )
- {
- CMMCScBkupDataOwnerInfo* self = new(ELeave) CMMCScBkupDataOwnerInfo();
- CleanupStack::PushL(self);
- aStream >> *self;
- self->ConstructL();
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::Owner()
-//
-//
-// ---------------------------------------------------------------------------
-CDataOwnerInfo& CMMCScBkupDataOwnerInfo::Owner()
- {
- return *iDataOwner;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::Owner()
-//
-//
-// ---------------------------------------------------------------------------
-const CDataOwnerInfo& CMMCScBkupDataOwnerInfo::Owner() const
- {
- return *iDataOwner;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::Status()
-//
-//
-// ---------------------------------------------------------------------------
-TDataOwnerStatus CMMCScBkupDataOwnerInfo::Status() const
- {
- return iStatus;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::SetStatus()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerInfo::SetStatus(TDataOwnerStatus aStatus)
- {
- iStatus = aStatus;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::AddToOperationalSizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerInfo::AddToOperationalSizeL( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive, TInt64 aSize )
- {
- iOperationalSize->AddToSizeL( aType, aSize, aDrive );
-
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- const TInt64 newSize = iOperationalSize->Size( aType, aDrive );
- __LOG5("CMMCScBkupDataOwnerInfo::AddToOperationalSizeL() - [0x%08x] - aSize: %8Ld, newSize: %8Ld, aDrive: %c:, aType: %S", iSecureId.iId, aSize, newSize, aDrive + 'A', &MMCScBkupLogger::DataType( aType ) );
-#endif
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::SetOperationalSizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerInfo::SetOperationalSizeL( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive, TInt64 aSize )
- {
- iOperationalSize->Reset( aType, aDrive );
- iOperationalSize->AddToSizeL( aType, aSize, aDrive );
-
- __LOG4("CMMCScBkupDataOwnerInfo::SetOperationalSizeL() - [0x%08x] - aSize: %8Ld, aDrive: %c:, aType: %S", iSecureId.iId, aSize, aDrive + 'A', &MMCScBkupLogger::DataType( aType ) );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::ResetOperationalSize()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerInfo::ResetOperationalSize( TMMCScBkupOwnerDataType aType )
- {
- iOperationalSize->Reset( aType );
- __LOG2("CMMCScBkupDataOwnerInfo::ResetOperationalSize() - [0x%08x] - aType: %S", iSecureId.iId, &MMCScBkupLogger::DataType( aType ) );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::OperationalSize()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupDataOwnerInfo::OperationalSize( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive ) const
- {
- const TInt64 size = iOperationalSize->Size( aType, aDrive );
-
- __LOG4("CMMCScBkupDataOwnerInfo::OperationalSize() - [0x%08x] - size: %8Ld, aDrive: %c:, aType: %S", iSecureId.iId, size, aDrive + 'A', &MMCScBkupLogger::DataType( aType ) );
-
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::OperationalSize()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupDataOwnerInfo::OperationalSize( TMMCScBkupOwnerDataType aType ) const
- {
- const TInt64 size = iOperationalSize->Size( aType );
-
- //__LOG3("CMMCScBkupDataOwnerInfo::OperationalSize() - [0x%08x] - size: %8Ld, aType: %S", iSecureId.iId, size, &MMCScBkupLogger::DataType( aType ) );
-
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::OperationalSize()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupDataOwnerInfo::OperationalSize( TDriveNumber aDrive ) const
- {
- const TInt64 size = iOperationalSize->CombinedSize( aDrive );
-
- //__LOG3("CMMCScBkupDataOwnerInfo::OperationalSize() - [0x%08x] - size: %8Ld, aDrive: %c:", iSecureId.iId, size, aDrive + 'A' );
-
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::OperationalSizesL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerInfo::OperationalSizesL( RArray<TMMCScBkupDriveAndSize>& aSizes ) const
- {
- iOperationalSize->GetSizesL( aSizes );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::SetCompletionStatus()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerInfo::SetCompletionStatus( TMMCScBkupOwnerDataType aType, TBool aCompleted )
- {
- iCompletionStatus[aType] = aCompleted;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::CompletionStatus()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDataOwnerInfo::CompletionStatus( TMMCScBkupOwnerDataType aType ) const
- {
- return iCompletionStatus[aType];
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::ActiveDataRetryCount()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDataOwnerInfo::ActiveDataRetryCount() const
- {
- return iActiveDataRetryCount;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::SetActiveDataRetryCount()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerInfo::SetActiveDataRetryCount(TInt aCount)
- {
- iActiveDataRetryCount = aCount;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::InternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerInfo::InternalizeL(RReadStream& aStream)
- {
- iVersion = aStream.ReadInt32L(); // EStreamFormatVersionX
- aStream.ReadInt32L(); // spare1
- aStream.ReadInt32L(); // spare2
- aStream.ReadInt32L(); // spare3
-
- // Secure ID
- iSecureId = aStream.ReadInt32L();
-
- // Data sizes
- CMMCScBkupDataTypeSizer* operationalSize = CMMCScBkupDataTypeSizer::NewLC( aStream );
- delete iOperationalSize;
- iOperationalSize = operationalSize;
- CleanupStack::Pop( operationalSize );
-
- // Read data owner buffer length
- TCardinality dataOwnerLength;
- aStream >> dataOwnerLength;
-
- // Internalize the data owner (as raw descriptor)
- HBufC8* dataOwnerBuffer = HBufC8::NewLC( dataOwnerLength );
- TPtr8 pDataOwnerBuffer( dataOwnerBuffer->Des() );
- aStream.ReadL( pDataOwnerBuffer, dataOwnerLength );
- //
- CDataOwnerInfo* dataOwner = CDataOwnerInfo::NewL( *dataOwnerBuffer );
- delete iDataOwner;
- iDataOwner = dataOwner;
- CleanupStack::PopAndDestroy( dataOwnerBuffer );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::ExternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataOwnerInfo::ExternalizeL(RWriteStream& aStream) const
- {
- aStream.WriteInt32L( EStreamFormatVersion2 );
- aStream.WriteInt32L( 0 ); // spare1
- aStream.WriteInt32L( 0 ); // spare2
- aStream.WriteInt32L( 0 ); // spare3
-
- // Always write secure id
- aStream.WriteInt32L( iSecureId );
-
- // ... and always write the data sizes
- aStream << *iOperationalSize;
-
- // Externalize the data owner to an HBufC8
- HBufC8* dataOwnerBuffer = iDataOwner->ExternaliseL();
- CleanupStack::PushL( dataOwnerBuffer );
-
- // Write leading byte count - helps us when it comes to internalising
- const TCardinality dataOwnerLength( dataOwnerBuffer->Length() );
- aStream << dataOwnerLength;
-
- // Now write the data owner buffer - not using chevrons just in case it
- // does funny unicode compression stuff...
- aStream.WriteL( *dataOwnerBuffer );
-
- CleanupStack::PopAndDestroy(dataOwnerBuffer);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::CompareDataOwnerBySIDL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDataOwnerInfo::CompareDataOwnerBySIDL(const CMMCScBkupDataOwnerInfo& aLeft, const CMMCScBkupDataOwnerInfo& aRight)
- {
- TBool same = EFalse;
-
- // If we have an owner object, then we first compare the derived types.
- // If not, we just directly compare the SIDs
- if ( aLeft.iDataOwner && aRight.iDataOwner )
- {
- const TSBDerivedType leftType = aLeft.Owner().Identifier().DerivedTypeL();
- const TSBDerivedType rightType = aRight.Owner().Identifier().DerivedTypeL();
- //
- same = ((leftType == rightType) ||
- (leftType == ESIDDerivedType && rightType == EPackageDerivedType) ||
- (leftType == EPackageDerivedType && rightType == ESIDDerivedType)
- );
- }
- else if ( aRight.iDataOwner )
- {
- // Check that it is not Java data owner in question. Java DOs all have
- // secure id 0x0, but it could also be the case for certain package
- // data owners (see for KDummyId in SBE implementation).
- if( !MMCScBkupSBEUtils::HasJavaDataL( aRight.Owner() ) )
- {
- // ..set to ETrue to trip next if-statement
- same = ETrue;
- }
- }
-
- // Now compare the SID's themselves
- if ( same )
- {
- same = (aLeft.SecureId() == aRight.SecureId());
- }
- //
- return same;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::HasJavaDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDataOwnerInfo::HasJavaDataL() const
- {
- const TBool hasJavaData = MMCScBkupSBEUtils::HasJavaDataL( *iDataOwner );
- const TInt64 opSize = OperationalSize( EMMCScBkupOwnerDataTypeJavaData );
- //
- return hasJavaData || (opSize > 0 );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::HasActiveDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDataOwnerInfo::HasActiveDataL() const
- {
- const TBool hasActiveData = MMCScBkupSBEUtils::HasActiveDataL( *iDataOwner );
- const TInt64 opSize = OperationalSize( EMMCScBkupOwnerDataTypeActiveData );
- //
- return hasActiveData || (opSize > 0 );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::HasPassiveDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDataOwnerInfo::HasPassiveDataL() const
- {
- const TBool hasPassiveData = MMCScBkupSBEUtils::HasPassiveDataL( *iDataOwner );
- const TInt64 opSize = OperationalSize( EMMCScBkupOwnerDataTypePassiveData );
- //
- return hasPassiveData || (opSize > 0 );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::HasPublicDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDataOwnerInfo::HasPublicDataL() const
- {
- const TBool hasPublicData = MMCScBkupSBEUtils::HasPublicDataL( *iDataOwner );
- const TInt64 opSize = OperationalSize( EMMCScBkupOwnerDataTypePublicData );
- //
- return hasPublicData || (opSize > 0 );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataOwnerInfo::HasSystemDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDataOwnerInfo::HasSystemDataL() const
- {
- const TBool hasSystemData = MMCScBkupSBEUtils::HasSystemDataL( *iDataOwner );
- const TInt64 opSize = OperationalSize( EMMCScBkupOwnerDataTypeSystemData );
- //
- return hasSystemData || (opSize > 0 );
- }
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupDataStrategies.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,542 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupDataStrategy implementation
-*
-*
-*/
-
-#include "CMMCScBkupDataStrategies.h"
-
-// User includes
-#include "MMCScBkupConfig.h"
-#include "MMCScBkupLogger.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataStrategy::CMMCScBkupDataStrategy()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDataStrategy::CMMCScBkupDataStrategy()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataStrategy::ReadStrategyLC()
-//
-// Factory function
-// ---------------------------------------------------------------------------
-CMMCScBkupDataStrategy* CMMCScBkupDataStrategy::ReadStrategyLC(const TDesC& aName, RFs& aFsSession)
- {
- // Fetch the size
- TEntry entry;
- const TInt error = aFsSession.Entry(aName, entry);
- User::LeaveIfError(error);
-
- // Construct
- return CMMCScBkupDataStrategy::ReadStrategyLC(aName, aFsSession, 0, entry.iSize);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataStrategy::ReadStrategyLC()
-//
-// Factory function
-// ---------------------------------------------------------------------------
-CMMCScBkupDataStrategy* CMMCScBkupDataStrategy::ReadStrategyLC(const TDesC& aName, RFs& aFsSession, TInt aOffset, TInt aLength)
- {
- CMMCScBkupDataStrategy* ret = NULL;
-
- // First, try a normal read strategy
- TRAPD(err, ret = CMMCScBkupDataFileStrategy::NewForReadingL(aName, aFsSession));
- if (err != KErrNone)
- {
- // Try the file section read strategy - don't trap this - if it fails
- // then this file cannot be read...
- ret = CMMCScBkupDataFileSectionReadStrategy::NewL(aName, aFsSession);
- }
- //
- if (ret)
- {
- ret->SetOffsetAndLength(aOffset, aLength);
- }
- //
- CleanupStack::PushL( ret );
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataStrategy::WriteStrategyLC()
-//
-// Factory function
-// ---------------------------------------------------------------------------
-CMMCScBkupDataStrategy* CMMCScBkupDataStrategy::WriteStrategyLC( const TDesC& aName, RFs& aFsSession, TBool aUseTempFile )
- {
- CMMCScBkupDataStrategy* ret = CMMCScBkupDataFileStrategy::NewForWritingL( aName, aFsSession, aUseTempFile );
- CleanupStack::PushL(ret);
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataStrategy::Write()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDataStrategy::Write(const TDesC8& /*aSource*/)
- {
- return KErrNotSupported;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataStrategy::Finalize()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDataStrategy::Finalize()
- {
- return KErrNone;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataStrategy::SetOffsetAndLength()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataStrategy::SetOffsetAndLength(TInt aStartOffset, TInt aLengthToRead)
- {
- iOffset = aStartOffset;
- iLengthToRead = aLengthToRead;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileStrategy::CMMCScBkupDataFileStrategy()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDataFileStrategy::CMMCScBkupDataFileStrategy( RFs& aFsSession, TBool aUseTempFile )
-: iFsSession( aFsSession ), iUseTempFile( aUseTempFile )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileStrategy::~CMMCScBkupDataFileStrategy()
-//
-// C++ destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDataFileStrategy::~CMMCScBkupDataFileStrategy()
- {
- iFile.Close();
- delete iFileName;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileStrategy::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataFileStrategy::ConstructL( const TDesC& aName, TUint aMode )
- {
- iFileName = aName.AllocL();
-
- // The previous version of this engine would attempt to use the old
- // backup & restore API to close this file.
- //
- // With the new Symbian Secure Backup Architecture, data owners are expected
- // to release file locks on public files as soon as they receive
- // notification that a backup is beginning.
- TInt error = KErrNone;
- //
- if ( iUseTempFile )
- {
- // Ensure path for temporary files exists on same drive where file will eventually
- // be stored. This is important, because we estimate available size on target drive
- // and so also temporary file size affects whether restore can be carried out.
- HBufC* tempPath = HBufC::NewLC( KMaxFileName );
- TPtr pTempPath( tempPath->Des() );
- pTempPath.Zero();
- if(aName.Length())
- {
- pTempPath.Append( aName[0] );
- }
- else
- {
- const TDriveUnit driveUnit( KMMCScBkupTempFileDrive );
- const TDriveName drive( driveUnit.Name() );
- pTempPath.Append( drive );
- }
- pTempPath.Append( KMMCScBkupTempDir );
-
- error = iFsSession.MkDirAll( pTempPath );
- if ( ! (error == KErrNone || error == KErrAlreadyExists) )
- {
- User::LeaveIfError( error );
- }
-
- // Make a temporary file
- error = iFile.Temp( iFsSession, pTempPath, iTempFileName, aMode );
- __LOG2("CMMCScBkupDataFileStrategy::ConstructL() - Created temporary file: %S, error code: %d", &iTempFileName, error);
-
- // Clean up
- CleanupStack::PopAndDestroy( tempPath );
- }
- else
- {
- if( aMode & EFileWrite )
- {
- error = PrepareToOverwriteFile( iFsSession, *iFileName );
-
- if ( error == KErrNone )
- {
- error = iFile.Create( iFsSession, *iFileName, aMode );
- __LOG2("CMMCScBkupDataFileStrategy::ConstructL() - Created file %S, error code: %d", iFileName, error);
- }
- }
- else
- {
- error = iFile.Open( iFsSession, aName, aMode );
- }
- }
- //
- User::LeaveIfError(error);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileStrategy::NewForReadingL()
-//
-// Factory function
-// ---------------------------------------------------------------------------
-CMMCScBkupDataFileStrategy* CMMCScBkupDataFileStrategy::NewForReadingL( const TDesC& aName, RFs& aFsSession )
- {
- const TUint mode = EFileRead | EFileShareReadersOnly | EFileStream;
- //
- CMMCScBkupDataFileStrategy* self = new(ELeave) CMMCScBkupDataFileStrategy( aFsSession );
- CleanupStack::PushL(self);
- self->ConstructL( aName, mode );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileStrategy::NewForWritingL()
-//
-// Factory function
-// ---------------------------------------------------------------------------
-CMMCScBkupDataFileStrategy* CMMCScBkupDataFileStrategy::NewForWritingL( const TDesC& aName, RFs& aFsSession, TBool aUseTempFile )
- {
- const TUint mode = EFileWrite | EFileStream;
- //
- CMMCScBkupDataFileStrategy* self = new(ELeave) CMMCScBkupDataFileStrategy( aFsSession, aUseTempFile );
- CleanupStack::PushL(self);
- self->ConstructL( aName, mode );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileStrategy::Read()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDataFileStrategy::Read(TDes8& aSink)
- {
- TInt error = KErrNone;
- //
- aSink.Zero();
- TInt amountToRead = (LengthToRead() - Offset());
- if (amountToRead > aSink.MaxLength())
- {
- amountToRead = aSink.MaxLength();
- }
- //
- if (amountToRead > 0)
- {
- // Do the read
- error = iFile.Read( static_cast<TInt64>(Offset()), aSink, amountToRead );
- if (error == KErrNone)
- {
- SetOffset( Offset() + aSink.Length() );
- }
- }
- //
- return error;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileStrategy::Write()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDataFileStrategy::Write(const TDesC8& aSource)
- {
- // Offset writing not supported (no requirement)
- const TInt error = iFile.Write( aSource );
- return error;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileStrategy::Finalize()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDataFileStrategy::Finalize()
- {
- TInt error = KErrNone;
- //
- if ( iUseTempFile )
- {
- // Prepare for over-write
- error = PrepareToOverwriteFile( iFsSession, *iFileName );
- //
- if ( error == KErrNone )
- {
- // Finally, do the rename
- error = iFile.Rename( *iFileName );
- __LOG2("CMMCScBkupDataFileStrategy::Finalize() - Renamed temporary file as: %S, error code: %d", iFileName, error);
- }
- }
-
- // Whatever the situation, we close the file now
- iFile.Close();
- return error;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileStrategy::PrepareToOverwriteFile()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDataFileStrategy::PrepareToOverwriteFile( RFs& aFsSession, const TDesC& aFileName )
- {
- TInt err = KErrNone;
-
- // Create the full path, if not exists
- err = aFsSession.MkDirAll( aFileName );
-
- if( err == KErrAlreadyExists || !err )
- {
- // Reset file flags
- err = aFsSession.SetAtt( aFileName, KEntryAttNormal, !KEntryAttNormal );
- }
-
- if( !err )
- {
- // Delete the file
- err = aFsSession.Delete( aFileName );
- }
-
- if( err == KErrNotFound )
- {
- // These errors are ignored
- err = KErrNone;
- }
-
- return err;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileSectionReadStrategy::CMMCScBkupDataFileSectionReadStrategy()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDataFileSectionReadStrategy::CMMCScBkupDataFileSectionReadStrategy(RFs& aFsSession)
-: iFsSession(aFsSession)
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileSectionReadStrategy::~CMMCScBkupDataFileSectionReadStrategy()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataFileSectionReadStrategy::~CMMCScBkupDataFileSectionReadStrategy()
- {
- delete iFileName;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileSectionReadStrategy::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataFileSectionReadStrategy::ConstructL(const TDesC& aName)
- {
- iFileName = aName.AllocL();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileSectionReadStrategy::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataFileSectionReadStrategy* CMMCScBkupDataFileSectionReadStrategy::NewL(const TDesC& aName, RFs& aFsSession)
- {
- CMMCScBkupDataFileSectionReadStrategy* self = new(ELeave) CMMCScBkupDataFileSectionReadStrategy(aFsSession);
- CleanupStack::PushL(self);
- self->ConstructL(aName);
- CleanupStack::Pop(self);
- return self;
- }
-
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataFileSectionReadStrategy::Read()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDataFileSectionReadStrategy::Read(TDes8& aSink)
- {
- TInt error = KErrNone;
- //
- aSink.Zero();
- TInt amountToRead = (LengthToRead() - Offset());
- if (amountToRead > aSink.MaxLength())
- {
- amountToRead = aSink.MaxLength();
- }
- //
- if (amountToRead > 0)
- {
- // Do the read
- error = iFsSession.ReadFileSection( *iFileName, Offset(), aSink, amountToRead );
- if (error == KErrNone)
- {
- SetOffset( Offset() + aSink.Length() );
- }
- }
- return error;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupDriveAndOperationTypeManager.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: CMMCScBkupDriveAndOperationTypeManager implementation
-*
-*
-*/
-
-#include "CMMCScBkupDriveAndOperationTypeManager.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#ifdef RD_MULTIPLE_DRIVE
-#include "BkupEngine.hrh"
-#include <driveinfo.h>
-#include <coemain.h>
-#endif // RD_MULTIPLE_DRIVE
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveAndOperationTypeManager::CMMCScBkupDriveAndOperationTypeManager()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDriveAndOperationTypeManager::CMMCScBkupDriveAndOperationTypeManager()
- {
- iCalculatedDriveList.SetMax();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveAndOperationTypeManager::CMMCScBkupDriveAndOperationTypeManager()
-//
-// C++ destructor.
-// ---------------------------------------------------------------------------
-EXPORT_C CMMCScBkupDriveAndOperationTypeManager::~CMMCScBkupDriveAndOperationTypeManager()
- {
- iEntries.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveAndOperationTypeManager::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveAndOperationTypeManager::ConstructL( TResourceReader& aReader )
- {
-#ifdef RD_MULTIPLE_DRIVE
- RFs& fs( CCoeEnv::Static()->FsSession() );
-
- // Get all user visible drives
- TInt numDrives( 0 );
- TDriveList drvList;
- User::LeaveIfError( DriveInfo::GetUserVisibleDrives(
- fs, drvList, numDrives ) );
- TInt drvListLen( drvList.Length() );
- TMMCScBkupDriveAndOperationType op;
- TInt count( aReader.ReadInt8() );
-
- // Get default system drive
- TInt sysDrive( 0 );
- User::LeaveIfError( DriveInfo::GetDefaultDrive(
- DriveInfo::EDefaultSystem, sysDrive ) );
-
- for( TInt i( 0 ); i < count; ++i )
- {
- TUint drvCategories( aReader.ReadUint8() );
- TMMCScBkupOwnerDataType dataType(
- static_cast< TMMCScBkupOwnerDataType >( aReader.ReadUint8() ) );
-
- if ( drvCategories & EBkupDeviceMemories )
- {
- // Default system drive is always backed up when
- // device memories are defined
- op.SetDrive( static_cast< TDriveNumber >( sysDrive ) );
- op.SetDataType( dataType );
- iEntries.AppendL( op );
- iCalculatedDriveList[ op.Drive() ] = ETrue;
- }
-
- for ( TInt j( 0 ); j < drvListLen; ++j )
- {
- if ( sysDrive != j && drvList[ j ] )
- {
- // Check for other drives
- TBool append( EFalse );
- TUint drvStatus( 0 );
- User::LeaveIfError( DriveInfo::GetDriveStatus(
- fs, j, drvStatus ) );
- if ( ( drvCategories & EBkupDeviceMemories ) &&
- ( drvStatus & DriveInfo::EDriveInternal ) &&
- !( drvStatus & DriveInfo::EDriveExternallyMountable ) &&
- !( drvStatus & DriveInfo::EDriveReadOnly ) )
- {
- append = ETrue; // Allow additional device memory
- }
- else if ( ( drvCategories & EBkupInternalMassStorages ) &&
- ( drvStatus & DriveInfo::EDriveInternal ) &&
- ( drvStatus & DriveInfo::EDriveExternallyMountable ) )
- {
- append = ETrue; // Allow internal mass storage
- }
- else if ( ( drvCategories & EBkupExternalMassStorages ) &&
- ( drvStatus & DriveInfo::EDriveRemovable ) )
- {
- append = ETrue; // Allow external mass storage
- }
- if ( append )
- {
- op.SetDrive( static_cast< TDriveNumber >( j ) );
- op.SetDataType( dataType );
- iEntries.AppendL( op );
- iCalculatedDriveList[ op.Drive() ] = ETrue;
- }
- }
- }
- }
-#else // RD_MULTIPLE_DRIVE
- TMMCScBkupDriveAndOperationType op;
- const TInt count = aReader.ReadInt8();
- //
- for( TInt i=0; i<count; i++ )
- {
- op.SetDrive( static_cast< TDriveNumber >( aReader.ReadInt8() ) );
- op.SetDataType( static_cast< TMMCScBkupOwnerDataType >( aReader.ReadInt8() ) );
- //
- iEntries.AppendL( op );
- //
- iCalculatedDriveList[ op.Drive() ] = ETrue;
- }
-#endif // RD_MULTIPLE_DRIVE
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveAndOperationTypeManager::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C CMMCScBkupDriveAndOperationTypeManager* CMMCScBkupDriveAndOperationTypeManager::NewL( TResourceReader& aReader )
- {
- CMMCScBkupDriveAndOperationTypeManager* self = new(ELeave) CMMCScBkupDriveAndOperationTypeManager();
- CleanupStack::PushL( self );
- self->ConstructL( aReader );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveAndOperationTypeManager::Count()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDriveAndOperationTypeManager::Count() const
- {
- return iEntries.Count();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveAndOperationTypeManager::At()
-//
-//
-// ---------------------------------------------------------------------------
-const TMMCScBkupDriveAndOperationType& CMMCScBkupDriveAndOperationTypeManager::At( TInt aIndex ) const
- {
- return iEntries[ aIndex ];
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveAndOperationTypeManager::IsDataTypeAllowedToAccessDrive()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDriveAndOperationTypeManager::IsDataTypeAllowedToAccessDrive( TDriveNumber aDrive, TMMCScBkupOwnerDataType aDataType ) const
- {
-// __LOG2("CMMCScBkupDriveAndOperationTypeManager::IsDataTypeAllowedToAccessDrive() - START - aDrive: %c, aDataType: %S", aDrive + 'A', &MMCScBkupLogger::DataType( aDataType ));
-
- TBool allowed = EFalse;
- //
- const TInt count = iEntries.Count();
- //
- for( TInt i=0; i<count; i++ )
- {
- const TMMCScBkupDriveAndOperationType& entry = iEntries[ i ];
- //
- if ( entry.DataType() == aDataType )
- {
- // Check drive...
- if ( entry.Drive() == aDrive )
- {
- allowed = ETrue;
- break;
- }
- }
- }
- //
-// __LOG1("CMMCScBkupDriveAndOperationTypeManager::IsDataTypeAllowedToAccessDrive() - END - allowed: %d", allowed);
- return allowed;
- }
-
--- a/filemanager/bkupengine/src/CMMCScBkupDriveDataSizeManager.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,573 +0,0 @@
-/*
-* Copyright (c) 2005-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: CMMCScBkupDriveSizer implementation
-*
-*
-*/
-
-#include "CMMCScBkupDriveDataSizeManager.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::CMMCScBkupDriveSizer()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDriveSizer::CMMCScBkupDriveSizer( TMMCScBkupOwnerDataType aType )
-: iDataType( aType )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::~CMMCScBkupDriveSizer()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDriveSizer::~CMMCScBkupDriveSizer()
- {
- iEntries.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSizer::ConstructL()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDriveSizer* CMMCScBkupDriveSizer::NewLC( TMMCScBkupOwnerDataType aType )
- {
- CMMCScBkupDriveSizer* self = new(ELeave) CMMCScBkupDriveSizer( aType );
- CleanupStack::PushL(self);
- self->ConstructL();
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDriveSizer* CMMCScBkupDriveSizer::NewLC( RReadStream& aStream )
- {
- CMMCScBkupDriveSizer* self = new(ELeave) CMMCScBkupDriveSizer( EMMCScBkupOwnerDataTypeAny );
- CleanupStack::PushL(self);
- aStream >> *self;
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::AddToSizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSizer::AddToSizeL( TInt64 aAmount, TDriveNumber aDrive )
- {
- TMMCScBkupDriveAndSize* entry = EntryByDrive( aDrive );
- //
- if ( entry == NULL )
- {
- if ( aAmount > 0 )
- {
- TMMCScBkupDriveAndSize newEntry( aDrive, aAmount );
- iEntries.AppendL( newEntry );
- }
- }
- else
- {
- entry->AddToSize( aAmount );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::Reset()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSizer::Reset()
- {
- const TInt count = iEntries.Count();
- for( TInt i=0; i<count; i++ )
- {
- TMMCScBkupDriveAndSize& entry = iEntries[ i ];
- entry.SetSize( 0 );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::Reset()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSizer::Reset( TDriveNumber aDrive )
- {
- TMMCScBkupDriveAndSize* entry = EntryByDrive( aDrive );
- //
- if ( entry != NULL )
- {
- entry->SetSize( 0 );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::Size()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupDriveSizer::Size() const
- {
- TInt64 size = 0;
- //
- const TInt count = iEntries.Count();
- for( TInt i=0; i<count; i++ )
- {
- const TMMCScBkupDriveAndSize& entry = iEntries[ i ];
- size += entry.Size();
- }
- //
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::Size()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupDriveSizer::Size( TDriveNumber aDrive ) const
- {
- TInt64 size = 0;
- TMMCScBkupDriveAndSize* entry = const_cast< CMMCScBkupDriveSizer* >( this )->EntryByDrive( aDrive );
- //
- if ( entry != NULL )
- {
- size = entry->Size();
- }
- //
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::InternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSizer::InternalizeL(RReadStream& aStream)
- {
- aStream.ReadInt32L(); // EStreamFormatVersion1
- aStream.ReadInt32L(); // spare1
- aStream.ReadInt32L(); // spare2
- //
- iDataType = static_cast< TMMCScBkupOwnerDataType >( aStream.ReadInt8L() );
- const TInt count = aStream.ReadInt8L();
- for( TInt i=0; i<count; i++ )
- {
- TMMCScBkupDriveAndSize entry;
- aStream >> entry;
- iEntries.AppendL( entry );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::ExternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSizer::ExternalizeL(RWriteStream& aStream) const
- {
- aStream.WriteInt32L( EStreamFormatVersion1 );
- aStream.WriteInt32L( 0 ); // spare1
- aStream.WriteInt32L( 0 ); // spare2
- //
- aStream.WriteInt8L( iDataType );
-
- // Work out how many non-zero entries we need to write.
- TInt i = 0;
- const TInt count = iEntries.Count();
- TInt numberOfExternalisedEntries = 0;
- //
- for( i=0; i<count; i++ )
- {
- const TMMCScBkupDriveAndSize& entry = iEntries[ i ];
- if ( entry.Size() > 0 )
- {
- ++numberOfExternalisedEntries;
- }
- }
-
- // Now really write the entries...
- aStream.WriteInt8L( numberOfExternalisedEntries );
- if ( numberOfExternalisedEntries > 0 )
- {
- for( i=0; i<count; i++ )
- {
- const TMMCScBkupDriveAndSize& entry = iEntries[ i ];
- if ( entry.Size() > 0 )
- {
- aStream << entry;
- }
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSizer::EntryByDrive()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupDriveAndSize* CMMCScBkupDriveSizer::EntryByDrive( TDriveNumber aDrive )
- {
- TMMCScBkupDriveAndSize* ret = NULL;
- //
- const TInt count = iEntries.Count();
- for( TInt i=0; i<count; i++ )
- {
- TMMCScBkupDriveAndSize& entry = iEntries[ i ];
- //
- if ( entry.Drive() == aDrive )
- {
- ret = &entry;
- break;
- }
- }
- //
- return ret;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::CMMCScBkupDataTypeSizer()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDataTypeSizer::CMMCScBkupDataTypeSizer()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::~CMMCScBkupDataTypeSizer()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupDataTypeSizer::~CMMCScBkupDataTypeSizer()
- {
- iSizers.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataTypeSizer::ConstructL()
- {
- iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypeDataOwner ) );
- CleanupStack::Pop(); // sizer
- iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypeJavaData ) );
- CleanupStack::Pop(); // sizer
- iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypePublicData ) );
- CleanupStack::Pop(); // sizer
- iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypeSystemData ) );
- CleanupStack::Pop(); // sizer
- iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypeActiveData ) );
- CleanupStack::Pop(); // sizer
- iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypePassiveData ) );
- CleanupStack::Pop(); // sizer
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataTypeSizer* CMMCScBkupDataTypeSizer::NewL()
- {
- CMMCScBkupDataTypeSizer* self = new(ELeave) CMMCScBkupDataTypeSizer();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataTypeSizer* CMMCScBkupDataTypeSizer::NewLC( RReadStream& aStream )
- {
- CMMCScBkupDataTypeSizer* self = new(ELeave) CMMCScBkupDataTypeSizer();
- CleanupStack::PushL(self);
- aStream >> *self;
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::AddToSizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataTypeSizer::AddToSizeL( TMMCScBkupOwnerDataType aDataType, TInt64 aAmount, TDriveNumber aDrive )
- {
- CMMCScBkupDriveSizer* sizer = SizerByDataType( aDataType );
- ASSERT( sizer != NULL );
- sizer->AddToSizeL( aAmount, aDrive );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::Reset()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataTypeSizer::Reset( TMMCScBkupOwnerDataType aDataType )
- {
- CMMCScBkupDriveSizer* sizer = SizerByDataType( aDataType );
- ASSERT( sizer != NULL );
- sizer->Reset();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::Reset()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataTypeSizer::Reset( TMMCScBkupOwnerDataType aDataType, TDriveNumber aDrive )
- {
- CMMCScBkupDriveSizer* sizer = SizerByDataType( aDataType );
- ASSERT( sizer != NULL );
- sizer->Reset( aDrive );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::Size()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupDataTypeSizer::Size( TMMCScBkupOwnerDataType aDataType ) const
- {
- CMMCScBkupDriveSizer* sizer = const_cast< CMMCScBkupDataTypeSizer* >( this )->SizerByDataType( aDataType );
- ASSERT( sizer != NULL );
- const TInt64 size = sizer->Size();
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::Size()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupDataTypeSizer::Size( TMMCScBkupOwnerDataType aDataType, TDriveNumber aDrive ) const
- {
- CMMCScBkupDriveSizer* sizer = const_cast< CMMCScBkupDataTypeSizer* >( this )->SizerByDataType( aDataType );
- ASSERT( sizer != NULL );
- const TInt64 size = sizer->Size( aDrive );
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::GetSizesL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataTypeSizer::GetSizesL( RArray<TMMCScBkupDriveAndSize>& aSizes ) const
- {
- CleanupClosePushL( aSizes );
- aSizes.Reset();
- //
- for( TInt d = EDriveA; d<=EDriveZ; d++ )
- {
- // Get the size of each data type for this drive.
- const TDriveNumber drive = static_cast< TDriveNumber >( d );
- TMMCScBkupDriveAndSize driveAndSize( drive, 0 );
-
- const TInt count = iSizers.Count();
- for( TInt i=0; i<count; i++ )
- {
- const CMMCScBkupDriveSizer* sizer = iSizers[ i ];
- const TInt sizeOfDataForDrive = sizer->Size( drive );
- //
- driveAndSize.AddToSize( sizeOfDataForDrive );
- }
-
- // Add the entry if the size is more than 0
- if ( driveAndSize.Size() > 0 )
- {
- aSizes.AppendL( driveAndSize );
- }
- }
- CleanupStack::Pop( &aSizes );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::CombinedSize()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupDataTypeSizer::CombinedSize( TDriveNumber aDrive ) const
- {
- TInt64 size = 0;
- //
- const TInt count = iSizers.Count();
- for( TInt i=0; i<count; i++ )
- {
- const CMMCScBkupDriveSizer* sizer = iSizers[ i ];
- size += sizer->Size( aDrive );
- }
- //
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::InternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataTypeSizer::InternalizeL(RReadStream& aStream)
- {
- aStream.ReadInt32L(); // EStreamFormatVersion1
- aStream.ReadInt32L(); // spare1
- aStream.ReadInt32L(); // spare2
- //
- const TInt count = aStream.ReadInt8L();
- for( TInt i=0; i<count; i++ )
- {
- CMMCScBkupDriveSizer* sizer = CMMCScBkupDriveSizer::NewLC( aStream );
- iSizers.AppendL( sizer );
- CleanupStack::Pop( sizer );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::ExternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDataTypeSizer::ExternalizeL(RWriteStream& aStream) const
- {
- aStream.WriteInt32L( EStreamFormatVersion1 );
- aStream.WriteInt32L( 0 ); // spare1
- aStream.WriteInt32L( 0 ); // spare2
- //
- const TInt count = iSizers.Count();
- aStream.WriteInt8L( count );
- //
- for( TInt i=0; i<count; i++ )
- {
- CMMCScBkupDriveSizer* sizer = iSizers[ i ];
- aStream << *sizer;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDataTypeSizer::SizerByDataType()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDriveSizer* CMMCScBkupDataTypeSizer::SizerByDataType( TMMCScBkupOwnerDataType aDataType )
- {
- CMMCScBkupDriveSizer* ret = NULL;
- //
- const TInt count = iSizers.Count();
- for( TInt i=0; i<count; i++ )
- {
- CMMCScBkupDriveSizer* sizer = iSizers[ i ];
- //
- if ( sizer->DataType() == aDataType )
- {
- ret = sizer;
- break;
- }
- }
- //
- return ret;
- }
-
--- a/filemanager/bkupengine/src/CMMCScBkupDriveSpecificRequest.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupDriveSpecificRequest implementation
-*
-*
-*/
-
-#include "CMMCScBkupDriveSpecificRequest.h"
-
-// User includes
-#include "CMMCScBkupDriveAndOperationTypeManager.h"
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::CMMCScBkupDriveSpecificRequest()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDriveSpecificRequest::CMMCScBkupDriveSpecificRequest( const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperations, TMMCScBkupOwnerDataType aDataType, CActive::TPriority aPriority )
-: CActive(aPriority), iDriveAndOperations(aDriveAndOperations), iDataType( aDataType )
- {
- CActiveScheduler::Add(this);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::~CMMCScBkupDriveSpecificRequest()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDriveSpecificRequest::~CMMCScBkupDriveSpecificRequest( )
- {
- Cancel();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSpecificRequest::ConstructL( )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::RequestL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSpecificRequest::RequestL( TRequestStatus& aObserver )
- {
- // Set to -1 so that when RunL is called, the next drive will be calculated
- // as 0 == EDriveA
- iCurrentDrive = -1;
- iObserver = &aObserver;
- *iObserver = KRequestPending;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::NextValidDrive()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDriveSpecificRequest::NextValidDrive(TDriveNumber& aDrive)
- {
- // If we've already reached Z then there isn't any sense in continuing
- // as all drives have been processed.
- TBool driveAvailable = EFalse;
-
- // Keep checking drives until we go past Z
- while( ++iCurrentDrive <= EDriveZ )
- {
- if ( iDriveAndOperations.DriveList()[ iCurrentDrive ] != 0 )
- {
- const TDriveNumber drive = static_cast< TDriveNumber >( iCurrentDrive );
-
- // Drive is allowable according to master list.
- // But is this data type allowed to access that drive?
- if ( iDataType == EMMCScBkupOwnerDataTypeAny )
- {
- // Found an available drive - data type filtering is not in play...
- aDrive = drive;
- driveAvailable = ETrue;
- break;
- }
- else if ( iDriveAndOperations.IsDataTypeAllowedToAccessDrive( drive, iDataType ) )
- {
- // Found an available drive - this data type is allowed to access that drive...
- aDrive = drive;
- driveAvailable = ETrue;
- break;
- }
- }
- }
- //
- return driveAvailable;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::NextValidDrive()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupDriveSpecificRequest::NextValidDrive(TDriveNumber& aDrive, const TDriveList& aCrossCheckList)
- {
- TDriveNumber drive;
- TBool driveAvailable = NextValidDrive(drive);
-
- while(driveAvailable)
- {
- // Check if aCrossCheckList also supports the same drive
- if (aCrossCheckList[drive] != 0)
- {
- aDrive = drive;
- break;
- }
- else
- {
- // Try another drive from our master list
- driveAvailable = NextValidDrive(drive);
- }
- }
- //
- return driveAvailable;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::CurrentDrive()
-//
-//
-// ---------------------------------------------------------------------------
-TDriveNumber CMMCScBkupDriveSpecificRequest::CurrentDrive() const
- {
- return static_cast<TDriveNumber>(iCurrentDrive);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::DoCancel()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSpecificRequest::DoCancel()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::RunError()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupDriveSpecificRequest::RunError(TInt aError)
- {
-#ifdef MMCSCBKUP_USE_BREAKPOINTS
- __BREAKPOINT();
-#endif
- //
- CompleteObserverRequest(aError);
- return KErrNone;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::CompleteObserverRequest()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSpecificRequest::CompleteObserverRequest(TInt aCompletionCode)
- {
- __ASSERT_ALWAYS(iObserver != NULL, User::Invariant());
- User::RequestComplete(iObserver, aCompletionCode);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupDriveSpecificRequest::CompleteSelf()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupDriveSpecificRequest::CompleteSelf(TInt aCompletionCode)
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, aCompletionCode);
- }
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupEngine.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/*
-* Copyright (c) 2005-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: CMMCScBkupEngine implementation
-*
-*
-*/
-
-#include "CMMCScBkupEngine.h"
-
-// User includes
-#include "CMMCScBkupEngineImpl.h"
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngine::CMMCScBkupEngine()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupEngine::CMMCScBkupEngine()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngine::~CMMCScBkupEngine()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-EXPORT_C CMMCScBkupEngine::~CMMCScBkupEngine()
- {
- delete iEngine;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngine::ConstructL()
-//
-// Second phase constructor
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngine::ConstructL( RFs& aFsSession )
- {
- iEngine = CMMCScBkupEngineImpl::NewL( aFsSession );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngine::NewL()
-//
-// Static constructor
-// ---------------------------------------------------------------------------
-EXPORT_C CMMCScBkupEngine* CMMCScBkupEngine::NewL( RFs& aFsSession )
- {
- CMMCScBkupEngine* self = new(ELeave) CMMCScBkupEngine();
- CleanupStack::PushL( self );
- self->ConstructL( aFsSession );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngine::StartOperationL()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C void CMMCScBkupEngine::StartOperationL(TMMCScBkupOperationType aOperation, MMMCScBkupEngineObserver& aObserver, CMMCScBkupOpParamsBase* aParams)
- {
- TRAPD(err, iEngine->StartOperationL( aOperation, aObserver, aParams ));
-
- if(err != KErrNone)
- {
- TRAP_IGNORE( aObserver.HandleBkupEngineEventL( MMMCScBkupEngineObserver::ECommonOperationError, err) );
- TRAP_IGNORE( aObserver.HandleBkupEngineEventL( MMMCScBkupEngineObserver::ECommonOperationEnded, err) );
- // Call cleanup externally, because engine cannot be yet in active state and resources remain unfreed
- iEngine->CleanupL(KErrCancel);
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngine::CancelOperation()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C void CMMCScBkupEngine::CancelOperation()
- {
- iEngine->Cancel();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngine::ValidArchiveForRestore()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TBool CMMCScBkupEngine::ValidArchiveForRestore( const TDesC& aFileName )
- {
- TBool archiveOkay = EFalse;
- //
- TRAPD(err, archiveOkay = iEngine->ValidArchiveForRestoreL( aFileName ) );
- if ( err != KErrNone )
- {
- archiveOkay = EFalse;
- }
- //
- return archiveOkay;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngine::TotalOperationSizeL()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TInt64 CMMCScBkupEngine::TotalOperationSizeL() const
- {
- return iEngine->TotalOperationSizeL();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngine::RebootRequired()
-//
-// NOTE: This method is not used in S60 3.x - Sysap handles the reboot
-// ---------------------------------------------------------------------------
-EXPORT_C TBool CMMCScBkupEngine::RebootRequired() const
- {
- return iEngine->RebootRequired();
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngine::ListArchivesL()
-//
-// Provide a list of archives available on all drives
-// ---------------------------------------------------------------------------
-EXPORT_C void CMMCScBkupEngine::ListArchivesL(
- RPointerArray< CMMCScBkupArchiveInfo >& aArchives,
- CMMCScBkupOpParamsBase* aParams,
- const TUint32 aDriveAttMatch,
- const TInt aDriveMatch ) const
- {
- return iEngine->ListArchivesL(
- aArchives, aParams, aDriveAttMatch, aDriveMatch );
- }
--- a/filemanager/bkupengine/src/CMMCScBkupEngineImpl.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1204 +0,0 @@
-/*
-* Copyright (c) 2005-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: CMMCScBkupEngineImpl implementation
-*
-*
-*/
-
-#include "CMMCScBkupEngineImpl.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupState.h"
-#include "MMCScBkupSBEUtils.h"
-#include "CMMCScBkupArchive.h"
-#include "MMCScBkupOperations.h"
-#include "MMCScBkupArchiveUtils.h"
-#include "CMMCScBkupStateFactory.h"
-#include "MMCScBkupPhoneModelUtils.h"
-#include "MMMCScBkupEngineObserver.h"
-#include "CMMCScBkupFileListCollection.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "CMMCScBkupOperationParameters.h"
-#include "CMMCScBkupArchiveInfo.h"
-#include "BkupEngine.hrh"
-#include <pathinfo.h>
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::CMMCScBkupEngineImpl()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupEngineImpl::CMMCScBkupEngineImpl( RFs& aFsSession )
-: CActive( CActive::EPriorityIdle ),
- iFsSession(aFsSession),
- iCurrentArchive(0),
- iTotalProgress(0),
- iActiveDataProcessingOngoing(EFalse)
- {
- CActiveScheduler::Add(this);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::~CMMCScBkupEngineImpl()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupEngineImpl::~CMMCScBkupEngineImpl()
- {
- Cancel();
- //
- TRAP_IGNORE(CleanupL());
-
- iArchives.Close();
- iDataOwners.Close();
- iFileLists.Close();
- delete iSBEClient;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::ConstructL()
-//
-// Second phase constructor
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::ConstructL()
- {
- __LOG("CMMCScBkupEngineImpl::ConstructL() - START");
-
-#ifdef MAKE_SBE_LOGGING_DIRECTORY
- _LIT( KSBELoggingDir, "C:\\Logs\\connect\\" );
- iFsSession.MkDirAll( KSBELoggingDir );
-#endif
-#ifdef MAKE_MMCSCBKUP_LOGGING_DIRECTORY
- iFsSession.MkDirAll( KMMCScBkupLoggingFullPath );
-#endif
-
- __LOG("CMMCScBkupEngineImpl::ConstructL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::NewL()
-//
-// Static constructor
-// ---------------------------------------------------------------------------
-CMMCScBkupEngineImpl* CMMCScBkupEngineImpl::NewL( RFs& aFsSession )
- {
- CMMCScBkupEngineImpl* self = new(ELeave) CMMCScBkupEngineImpl( aFsSession );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::StartOperationL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::StartOperationL(TMMCScBkupOperationType aOperation, MMMCScBkupEngineObserver& aObserver, CMMCScBkupOpParamsBase* aParams)
- {
- __ASSERT_DEBUG(DrvOperation() == EMMCScBkupOperationTypeIdle, User::Invariant()); //
-
- // Setup our observer - we will report progress via this interface
- iObserver = &aObserver;
-
- // Take ownership of the parameters immediately
- SetParameters(aParams);
-
- if(!iSBEClient)
- {
- __LOG("CMMCScBkupEngineImpl::ConstructL() - creating SBE client...");
- iSBEClient = CSBEClient::NewL();
- }
-
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- // Create a logging directory for logging purposes and empty contents
- // in order to have the log only from last backup or restore operation
- CFileMan* fileMan = CFileMan::NewL( iFsSession );
- CleanupStack::PushL( fileMan );
- TParse* path = new(ELeave) TParse();
-
- CleanupStack::PushL(path);
- path->Set(KMMCScBkupLoggingFullPathAndName, NULL, NULL);
- fileMan->Delete( path->Path(), CFileMan::ERecurse ); // Ignore error
- iFsSession.MkDirAll( path->Path() );
-
- CleanupStack::PopAndDestroy(2, fileMan );
-#endif
-
- // Prepare supporting objects
- PrepareObjectsL();
-
- // Work out what to do...
- CreateFactoryL( aOperation );
- //
- switch(aOperation)
- {
- case EMMCScBkupOperationTypeIdle:
- __ASSERT_ALWAYS(EFalse, User::Invariant());
- break;
- case EMMCScBkupOperationTypeFullBackup:
- case EMMCScBkupOperationTypePartialBackup:
- PrepareForBackupL( DrvOperation() == EMMCScBkupOperationTypePartialBackup );
- break;
- case EMMCScBkupOperationTypeFullRestore:
- case EMMCScBkupOperationTypePartialRestore:
- PrepareForRestoreL( DrvOperation() == EMMCScBkupOperationTypePartialRestore );
- break;
- }
-
- // Do this last, after everything that can leave has been executed
- iOperationType = aOperation;
-
- // Notify the observer we're starting up
- NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationStarting);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::ValidArchiveForRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupEngineImpl::ValidArchiveForRestoreL( const TDesC& aFileName )
- {
- const TBool valid = CMMCScBkupArchive::ValidArchiveForRestoreL( iFsSession, aFileName );
- return valid;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::TotalOperationSizeL()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupEngineImpl::TotalOperationSizeL() const
- {
- const TInt64 size = iDataOwners[iCurrentArchive]->TotalOperationalSizeL();
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::RebootRequired()
-//
-// NOTE: This method is not used in S60 3.x - Sysap handles the reboot
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupEngineImpl::RebootRequired() const
- {
- // Criteria for a reboot are:
- //
- // 1) One or more data owners indicate that a reboot is necessary
- // via their backup_registration.xml files.
- //
- // 2) The current operation is some form of restore (partial or full).
-
- const TMMCScBkupOperationType currentOp = DrvOperation();
- __LOG1("CMMCScBkupEngineImpl::RebootRequired() - operation type is: %d", currentOp);
-
- TBool singleDataOwnerNeedsReboot = EFalse;
-
- for(TInt i = 0; i < iDataOwners.Count(); i++)
- {
- singleDataOwnerNeedsReboot |= iDataOwners[i]->RebootRequired();
- }
-
- __LOG1("CMMCScBkupEngineImpl::RebootRequired() - D.O requires reboot?: %d", singleDataOwnerNeedsReboot);
-
- const TBool rebootRequired = singleDataOwnerNeedsReboot &&
- ( currentOp == EMMCScBkupOperationTypeFullRestore ||
- currentOp == EMMCScBkupOperationTypePartialRestore );
- __LOG1("CMMCScBkupEngineImpl::RebootRequired() - final rebootRequired value: %d", rebootRequired);
-
- // We return the value to the caller - the UI will display appropriate
- // UI dialogs and reset the machine as appropriate.
- return rebootRequired;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvADI()
-//
-//
-// ---------------------------------------------------------------------------
-MMMCScBkupArchiveDataInterface& CMMCScBkupEngineImpl::DrvADI() const
- {
- return iArchives[iCurrentArchive]->ADI();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvArchive()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupArchive& CMMCScBkupEngineImpl::DrvArchive() const
- {
- __ASSERT_ALWAYS(iCurrentArchive < iArchives.Count(), User::Invariant());
-
- return *iArchives[iCurrentArchive];
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvSecureBackupClient()
-//
-//
-// ---------------------------------------------------------------------------
-CSBEClient& CMMCScBkupEngineImpl::DrvSecureBackupClient() const
- {
- return *iSBEClient;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvOperation()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupOperationType CMMCScBkupEngineImpl::DrvOperation() const
- {
- return iOperationType;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvParamsBase()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupOpParamsBase& CMMCScBkupEngineImpl::DrvParamsBase() const
- {
- return *iParameters;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvDataOwners()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupDataOwnerCollection& CMMCScBkupEngineImpl::DrvDataOwners() const
- {
- __ASSERT_ALWAYS(iCurrentArchive < iDataOwners.Count(), User::Invariant());
-
- return *iDataOwners[iCurrentArchive];
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvDataOwnersAll()
-//
-//
-// ---------------------------------------------------------------------------
-RPointerArray<CMMCScBkupDataOwnerCollection>& CMMCScBkupEngineImpl::DrvDataOwnersAll()
- {
- return iDataOwners;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvFileList()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupFileListCollection& CMMCScBkupEngineImpl::DrvFileList() const
- {
- __ASSERT_ALWAYS(iCurrentArchive < iFileLists.Count(), User::Invariant());
-
- return *iFileLists[iCurrentArchive];
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvLastCategory()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupEngineImpl::DrvLastCategory() const
- {
- return ( (iCurrentArchive + 1) == iArchives.Count() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvStoreTotalProgress()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::DrvStoreTotalProgress(TInt64 aProgress)
- {
- iTotalProgress += aProgress;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvTotalProgress()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 CMMCScBkupEngineImpl::DrvTotalProgress() const
- {
- return iTotalProgress;
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DrvProgressHandler()
-//
-//
-// ---------------------------------------------------------------------------
-MMMCScBkupProgressObserver& CMMCScBkupEngineImpl::DrvProgressHandler() const
- {
- CMMCScBkupEngineImpl* self = const_cast< CMMCScBkupEngineImpl* > (this);
- return *self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::MMCScBkupHandleProgress()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::MMCScBkupHandleProgress( TInt aAmountCompleted )
- {
- __ASSERT_ALWAYS( aAmountCompleted >= 0, User::Invariant() );
- if (aAmountCompleted > 0)
- {
- __LOG1("CMMCScBkupEngineImpl::MMCScBkupHandleProgress() - amount: %d", aAmountCompleted);
- iCumulativeProgress += aAmountCompleted;
-
- // Notify the observer that we've calculated the operational size
- NotifyObserver( MMMCScBkupEngineObserver::ECommonProgress, iCumulativeProgress );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::MMCScBkupHandleProgressDomainUnderstood()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::MMCScBkupHandleProgressDomainUnderstood( TInt aTotalProgressAmount )
- {
- __LOG1("CMMCScBkupEngineImpl::MMCScBkupHandleProgressDomainUnderstood() - ##### TOTAL PROGRESS AMOUNT IS: %d", aTotalProgressAmount);
-
- // Notify the observer that we've calculated the operational size
- NotifyObserver( MMMCScBkupEngineObserver::ECommonSizeOfTaskUnderstood, aTotalProgressAmount );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::MMCScBkupHandleFreeSpace()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupEngineImpl::MMCScBkupHandleFreeSpace( TInt aPercentualFree )
- {
- TInt error(KErrNone);
-
- TRAP_IGNORE( error = iObserver->HandleBkupEngineEventL( MMMCScBkupEngineObserver::EBackupAnalysingData, aPercentualFree ) );
-
- return error;
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::MMCScBkupStartBackuping()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::MMCScBkupStartBackuping( TBool aProceed )
- {
- __LOG1("CMMCScBkupEngineImpl::MMCScBkupStartBackuping() - Disk space validation done, proceed %d", aProceed);
-
- if( !aProceed )
- {
- // If there is no space to carry out backup, "restore" existing backup file,
- // so that it can still be restored.
- for(TInt i = 0; i < iArchives.Count(); i++)
- {
- iArchives[i]->RestoreOldArchive( );
- }
- }
- else
- {
- // Clean up existing backup files.
- for(TInt i = 0; i < iArchives.Count(); i++)
- {
- iArchives[i]->DeleteOldArchive( );
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::RunL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::RunL()
- {
- __LOG(" ");
- __LOG(" ");
- if ( !CurrentStateAvailable() )
- {
- __LOG2("CMMCScBkupEngineImpl::RunL() - START - iStatus: %d, iCurrentArchive %d",
- iStatus.Int(), iCurrentArchive);
- }
- else
- {
- __LOG3("CMMCScBkupEngineImpl::RunL() - START - iStatus: %d, state: 0x%08x, iCurrentArchive %d",
- iStatus.Int(), CurrentState().StateId().iUid, iCurrentArchive);
- }
-
- User::LeaveIfError(iStatus.Int());
-
- // Get the state that just finished - its always the head item
- const TBool stateStepAvailable = CurrentStateAvailable();
- __ASSERT_ALWAYS(stateStepAvailable, User::Invariant());
- CMMCScBkupState& currentState = CurrentState();
-
- // Store completed state id as we're about to delete the object
- // so it won't be available afterwards...
- const TMMCScBkupStateId completedState = currentState.StateId();
-
- // Identify which state should run next. In effect each state
- // defines the overall state machine. This is required since
- // some states need to dynamically change which state is executed
- // next. A good example is the archive op for active data - when
- // one or more active data clients are not ready, then the next
- // state should be to requery their readyness. After their
- // readyness has been ascertained, then any DO's that have now
- // become ready should be archived. This process continues
- // until all Active Data owners have provided all their data.
- TMMCScBkupStateId nextState;
-
- __LOG3("CMMCScBkupEngineImpl::RunL() - iActiveDataProcessingOngoing %d, completedState 0x%08x, nextState 0x%08x",
- iActiveDataProcessingOngoing, completedState.iUid, currentState.NextStateId().iUid);
-
- // Identify should we run current state again, i.e. run that state
- // for next category. If state does not require processing of same
- // state several times, then move on to next state.
- if( currentState.CategorySpecific() != CMMCScBkupState::EStateOnce )
- {
- // For simplicity let's collect active data for each category in row.
- // This means checking data owner status before proceeding to next category.
- if( iActiveDataProcessingOngoing )
- {
- iActiveDataProcessingOngoing = EFalse;
- nextState = currentState.NextStateId();
- }
- else
- {
- if( completedState == KMMCScBkupStateIdArchiveOpActiveData )
- {
- if( currentState.NextStateId() == KMMCScBkupStateIdGetDataOwnerStatuses )
- {
- // There is still some active data to be processed
- iActiveDataProcessingOngoing = ETrue;
- nextState = KMMCScBkupStateIdGetDataOwnerStatuses;
- }
- }
-
- if( !iActiveDataProcessingOngoing )
- {
- if( ++iCurrentArchive < iArchives.Count() )
- {
- nextState = completedState;
- }
- else
- {
- iCurrentArchive = 0;
- nextState = currentState.NextStateId();
- }
- }
- }
- }
- else
- {
- iCurrentArchive = 0;
- nextState = currentState.NextStateId();
- }
-
- if(nextState == completedState && currentState.CategorySpecific() == CMMCScBkupState::EStatePerCategoryCommon)
- {
- __LOG2("CMMCScBkupEngineImpl::RunL() - object not recreated for state: 0x%08x, iCurrentArchive %d",
- nextState.iUid, iCurrentArchive);
- }
- else
- {
- // Remove the completed state (destroys 'currentState')
- DestroyCurrentState();
- // Identify the next state. Causes RunL to be called when the state
- // has finished executing
- __LOG2("CMMCScBkupEngineImpl::RunL() - preparing state: 0x%08x, iCurrentArchive %d",
- nextState.iUid, iCurrentArchive);
-
- PrepareNextStateL( nextState );
- }
-
- if (CurrentStateAvailable())
- {
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- CMMCScBkupState& newState = CurrentState();
- if( newState.CategorySpecific() != CMMCScBkupState::EStateOnce )
- {
- __LOG2("CMMCScBkupEngineImpl::RunL() - executing category specific state: 0x%08x for category 0x%x",
- nextState.iUid, iArchives[iCurrentArchive]->Category().iFlags);
- }
- else
- {
- __LOG1("CMMCScBkupEngineImpl::RunL() - executing non category specific state: 0x%08x", nextState.iUid);
- }
-#endif
- ExecuteStateL();
- }
- else
- {
- if ( iSBEClient )
- {
- MMCScBkupSBEUtils::EndBackupOrRestoreL( *iSBEClient );
- }
- // Signal we are about to finish, so that bkupchecker can be notified.
- NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationPrepareEnded);
- // We've finished
- CleanupL();
- NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationEnded);
- // Remove observer
- iObserver = NULL;
- }
-
- __LOG3("CMMCScBkupEngineImpl::RunL() - END - nextState: 0x%08x, isActive: %d, iStatus: %d", nextState.iUid, IsActive(), iStatus.Int());
- __LOG(" ");
- __LOG(" ");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DoCancel()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::DoCancel()
- {
- __LOG("CMMCScBkupEngineImpl::DoCancel() - START");
-
- if (CurrentStateAvailable())
- {
- __LOG1("CMMCScBkupEngineImpl::DoCancel() - current state is: 0x%08x", CurrentState().StateId().iUid);
-
- // Our request should be completed by the state
- CurrentState().Cancel();
- }
-
- // Signal we are about to finish, so that bkupchecker can be notified.
- NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationPrepareEnded);
- // Cleanup
- TRAP_IGNORE( CleanupL( KErrCancel ) );
-
- // Ensure observer is informed
- NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationError, KErrCancel);
- NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationEnded, KErrCancel);
- // Remove observer
- iObserver = NULL;
-
- __LOG("CMMCScBkupEngineImpl::DoCancel() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::RunError()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupEngineImpl::RunError(TInt aError)
- {
- __LOG1("CMMCScBkupEngineImpl::RunError() - START - aError: %d", aError);
-
- // Inform observer of error
- NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationError, aError);
- // Signal we are about to finish, so that bkupchecker can be notified.
- NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationPrepareEnded);
- // Cleanup
- TRAP_IGNORE( CleanupL( aError ) );
-
- // Finalize observer
- NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationEnded, aError);
- // Remove observer
- iObserver = NULL;
-
- // Return KErrNone to stop the scheduler from panicking our thread
-
- __LOG("CMMCScBkupEngineImpl::RunError() - END");
- return KErrNone;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::CompleteOwnRequest()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::CompleteOwnRequest(TInt aCompletionCode, TBool aSetActive)
- {
- if (aSetActive)
- {
- SetActive();
- }
- //
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, aCompletionCode);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::NotifyObserver()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::NotifyObserver( MMMCScBkupEngineObserver::TEvent aEvent, TInt aAssociatedData )
- {
- if ( iObserver )
- {
- TRAP_IGNORE( iObserver->HandleBkupEngineEventL( aEvent, aAssociatedData ) );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::PrepareForBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::PrepareForBackupL( TBool aPartial )
- {
-#ifdef DEBUGGING_DATA_TRANSFER
- CleanBackupFilesL();
-#endif
-
- // Open the archives for writing
- for(TInt i = 0; i < iArchives.Count(); i++)
- {
- const TPtrC pArchiveName( DrvParamsBase().FileName(i) );
- iArchives[i]->OpenForWritingL( pArchiveName );
- }
-
- // Initialise our state model
- if ( !aPartial )
- {
- // Starting a FULL BACKUP
- PrepareNextStateL( KMMCScBkupStateArchiveOpArchiveHeader );
- ExecuteStateL();
- }
- else
- {
- User::Leave( KErrNotSupported );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::PrepareForRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::PrepareForRestoreL( TBool aPartial )
- {
-#ifdef DEBUGGING_DATA_TRANSFER
- ClearRestoreFilesL();
-#endif
-
- // Open the archives for reading
- for(TInt i = 0; i < iArchives.Count(); i++)
- {
- const TPtrC pArchiveName( DrvParamsBase().FileName(i) );
- iArchives[i]->OpenForReadingL( pArchiveName );
-
-#ifdef RD_FILE_MANAGER_BACKUP
- // Validate archive content is not altered
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- TUint32 startTime = User::NTickCount();
-#endif
- TInt validArchiveForRestore = MMCScBkupArchiveUtils::ValidateArchiveCrcsL( iFsSession, pArchiveName );
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- __LOG2("CMMCScBkupEngineImpl::PrepareForRestoreL - crcs validation result %d, ticks in ms %u",
- validArchiveForRestore, User::NTickCount() - startTime);
-#endif
- if(validArchiveForRestore == EFalse)
- {
- User::Leave(KErrCorrupt);
- }
-#endif
- }
-
- // Initialise our state model
- if ( !aPartial )
- {
- // Starting a FULL RESTORE
- PrepareNextStateL( KMMCScBkupStateArchiveOpArchiveHeader );
- ExecuteStateL();
- }
- else
- {
- User::Leave( KErrNotSupported );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::SetParameters()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::SetParameters(CMMCScBkupOpParamsBase* aParameters)
- {
- __ASSERT_ALWAYS(aParameters != NULL, User::Invariant());
- //
- delete iParameters;
- iParameters = aParameters;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::CreateFactoryL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::CreateFactoryL(TMMCScBkupOperationType aOperation)
- {
- __ASSERT_DEBUG(iFactory == NULL, User::Invariant());
- //
- CMMCScBkupStateFactory* factory = CMMCScBkupStateFactory::FactoryByOperationTypeLC(aOperation);
- delete iFactory;
- iFactory = factory;
- CleanupStack::Pop( factory );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::CurrentStateAvailable()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupEngineImpl::CurrentStateAvailable() const
- {
- return (iCurrentState != NULL);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::CurrentStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupEngineImpl::CurrentStateId() const
- {
- __ASSERT_ALWAYS(CurrentStateAvailable(), User::Invariant());
- return CurrentState().StateId();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::CurrentState()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupState& CMMCScBkupEngineImpl::CurrentState()
- {
- return *iCurrentState;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::CurrentState()
-//
-//
-// ---------------------------------------------------------------------------
-const CMMCScBkupState& CMMCScBkupEngineImpl::CurrentState() const
- {
- return *iCurrentState;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::PrepareNextStateL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::PrepareNextStateL( TMMCScBkupStateId aNextState )
- {
- if ( aNextState != KMMCScBkupStateIdOperationComplete )
- {
- CMMCScBkupState* nextState = iFactory->GetStateLC( aNextState, *this );
- delete iCurrentState;
- iCurrentState = nextState;
- CleanupStack::Pop( nextState );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::DestroyCurrentState()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::DestroyCurrentState()
- {
- delete iCurrentState;
- iCurrentState = NULL;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::ExecuteStateL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::ExecuteStateL()
- {
- const TBool stateStepAvailable = CurrentStateAvailable();
- __ASSERT_ALWAYS(stateStepAvailable, User::Invariant());
- //
- CMMCScBkupState& currentState = CurrentState();
- //
- currentState.ExecuteL(iStatus);
- SetActive();
-
- // RunL will now be called when the state has completed execution
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::CleanupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::CleanupL( TInt aError )
- {
- __LOG1("CMMCScBkupEngineImpl::CleanupL() - START - aError: %d", aError);
-
- // If SBE died, then recreate
- if ( aError == KErrServerTerminated )
- {
- __LOG("CMMCScBkupEngineImpl::CleanupL() - assuming SBE panicked - re-creating SBE session...");
- CSBEClient* newSBEClient = CSBEClient::NewL();
- delete iSBEClient;
- iSBEClient = newSBEClient;
- }
-
-
- __LOG("CMMCScBkupEngineImpl::CleanupL() - destroying current state...");
- DestroyCurrentState();
-
- const TBool backupOrRestoreUnderway = MMCScBkupSBEUtils::PhoneIsInBackupOrRestoreModeL();
- __LOG1("CMMCScBkupEngineImpl::CleanupL() - backupOrRestoreUnderway: %d", backupOrRestoreUnderway);
- if ( backupOrRestoreUnderway && iSBEClient )
- {
- // Must end backup or restore
- __LOG("CMMCScBkupEngineImpl::CleanupL() - ending backup or restore...");
- MMCScBkupSBEUtils::EndBackupOrRestoreL( *iSBEClient );
- }
-
- // Ensure the archive is closed
- if ( iArchives.Count() )
- {
- __LOG("CMMCScBkupEngineImpl::CleanupL() - closing archives...");
- for(TInt i = 0; i < iArchives.Count(); i++)
- {
- iArchives[i]->Close( aError );
- }
-
- __LOG("CMMCScBkupEngineImpl::CleanupL() - reseting archive array...");
- iArchives.ResetAndDestroy();
- }
-
- // Destroy old parameters
- __LOG("CMMCScBkupEngineImpl::CleanupL() - destroying parameters...");
- delete iParameters;
- iParameters = NULL;
-
- // Set back to idle
- __LOG("CMMCScBkupEngineImpl::CleanupL() - setting operation status to idle...");
- iOperationType = EMMCScBkupOperationTypeIdle;
-
- // Dispose of our collections
- __LOG("CMMCScBkupEngineImpl::CleanupL() - destroying data owners and file lists...");
- iDataOwners.ResetAndDestroy();
- iFileLists.ResetAndDestroy();
-
- // Dispose of state factory
- __LOG("CMMCScBkupEngineImpl::CleanupL() - destroying factory...");
- delete iFactory;
- iFactory = NULL;
-
- // Reset progress
- iCumulativeProgress = 0;
-
- // Reduce memory consumption by deleting SBE client. Session will be closed
- // and SBE frees reserved (e.g. 128 kB...) memory pool.
- if(iSBEClient)
- {
- __LOG("CMMCScBkupEngineImpl::CleanupL() - deleting SBE client...");
- delete iSBEClient;
- iSBEClient = NULL;
- }
-
- __LOG("CMMCScBkupEngineImpl::CleanupL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::PrepareObjectsL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::PrepareObjectsL()
- {
- __LOG("CMMCScBkupEngineImpl::PrepareObjectsL() - creating objects...");
-
- iTotalProgress = 0;
- iCurrentArchive = 0;
-
- const RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& archives = DrvParamsBase().ArchiveInfos();
- TInt count = archives.Count();
-
- if(count == 0)
- {
- __LOG("CMMCScBkupEngineImpl::PrepareObjectsL() - nothing to be done, leaving...");
- User::Leave(KErrCancel);
- }
-
- for(TInt i = 0; i < count; i++)
- {
- CMMCScBkupArchive* archive;
- archive = CMMCScBkupArchive::NewL( iFsSession, DrvProgressHandler(), *this, archives[i]->Category() );
- CleanupStack::PushL( archive );
- iArchives.AppendL( archive );
- CleanupStack::Pop( archive );
-
- CMMCScBkupDataOwnerCollection* dataOwners;
- dataOwners = CMMCScBkupDataOwnerCollection::NewL( *this, archives[i]->Category() );
- CleanupStack::PushL( dataOwners );
- iDataOwners.AppendL( dataOwners );
- CleanupStack::Pop( dataOwners );
-
- CMMCScBkupFileListCollection* fileList;
- fileList = CMMCScBkupFileListCollection::NewL( archives[i]->Category(), iFsSession );
- CleanupStack::PushL( fileList );
- iFileLists.AppendL( fileList );
- CleanupStack::Pop( fileList );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::ResetAndDestroyArchives
-// ---------------------------------------------------------------------------
-//
-void CMMCScBkupEngineImpl::ResetAndDestroyArchives( TAny* aPtr )
- {
- RPointerArray< CMMCScBkupArchiveInfo >* archive =
- static_cast< RPointerArray< CMMCScBkupArchiveInfo >* >( aPtr );
- archive->ResetAndDestroy();
- archive->Close();
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::ListArchivesL()
-//
-// Provide a list of valid (both content and category do match) archives
-// available on all drives' backup folder
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::ListArchivesL(
- RPointerArray< CMMCScBkupArchiveInfo >& aArchives,
- CMMCScBkupOpParamsBase* aParams,
- const TUint32 aDriveAttMatch,
- const TInt aDriveMatch )
- {
- __LOG("CMMCScBkupEngineImpl::ListArchivesL() - START");
-
- TCleanupItem cleanupItem( ResetAndDestroyArchives, &aArchives );
- CleanupStack::PushL( cleanupItem );
-
- for(TInt i = 0; i < KMaxDrives; i++)
- {
- // Check is drive number allowed
- if ( aDriveMatch != KErrNotFound && aDriveMatch != i )
- {
- continue;
- }
- // Check are drive attributes allowed
- TBool supported( EFalse );
- TDriveInfo driveInfo;
- if ( iFsSession.Drive( driveInfo, i ) == KErrNone )
- {
- if ( driveInfo.iDriveAtt & aDriveAttMatch )
- {
- supported = ETrue;
- }
- }
- if ( !supported )
- {
- continue;
- }
-
- const TDriveUnit driveUnit(i);
- const TDriveName driveName(driveUnit.Name());
- CDir* pFiles = NULL;
- TFileName path;
- path.Append(driveName);
- path.Append(KBackUpFolder());
- path.Append(KBackUpFiles());
-
- // Scan for all archives
- iFsSession.GetDir(path, KEntryAttMatchMask, ESortNone, pFiles);
- CleanupStack::PushL(pFiles);
-
- if(pFiles)
- {
- TInt count = pFiles->Count();
- for (TInt x = 0; x < count; x++)
- {
- const TEntry& entryPtr = (*pFiles)[x];
- TEntry entry(entryPtr);
- TFileName pathAndFile;
- pathAndFile.Append(driveName);
- pathAndFile.Append(KBackUpFolder());
- pathAndFile.Append(entry.iName);
-
- entry.iName = pathAndFile;
-
- // Read category information from archive
- TBitFlags category;
- TRAPD(err, category = MMCScBkupArchiveUtils::ReadBkUpCategoryInformationL( iFsSession, pathAndFile ));
-
- if(err == KErrNone)
- {
- // Append archive in list when valid
- if((category.Value() & aParams->Categories().Value()) && ValidArchiveForRestoreL( pathAndFile ))
- {
- __LOG2("CMMCScBkupEngineImpl::ListArchivesL() - adding archive %S of category 0x%x",
- &pathAndFile, category.Value());
- CMMCScBkupArchiveInfo* archiveInfo = CMMCScBkupArchiveInfo::NewLC( entry );
- // Set category in archive info - can be used for filtering
- archiveInfo->SetCategory( category );
- // Move ownership to array
- aArchives.AppendL(archiveInfo);
- CleanupStack::Pop(archiveInfo);
- }
- else
- {
- __LOG3("CMMCScBkupEngineImpl::ListArchivesL() - archive %S of category 0x%x (vs. 0x%x) not included",
- &pathAndFile, category.Value(), aParams->Categories().Value());
- }
- }
- }
- }
-
- CleanupStack::PopAndDestroy(pFiles);
- }
- CleanupStack::Pop( &aArchives );
- __LOG("CMMCScBkupEngineImpl::ListArchivesL() - END");
- }
-
-
-#ifdef DEBUGGING_DATA_TRANSFER
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::CleanBackupFilesL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::CleanBackupFilesL()
- {
- CFileMan* fileMan = CFileMan::NewL( iFsSession );
- CleanupStack::PushL( fileMan );
-
- // Make directory, ignore error, ugly, functionise later on...
- _LIT(KMMCScBkupFormatDes, "%S%S%S%S");
- TFileName cleanPath;
- const TDesC& path = PathInfo::MemoryCardRootPath();
-
- //
- cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataJava, &KMMCScBkupDataTransferDebuggingPathDataBackup);
- fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
- iFsSession.MkDirAll( cleanPath );
- cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataSystem, &KMMCScBkupDataTransferDebuggingPathDataBackup);
- fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
- iFsSession.MkDirAll( cleanPath );
- cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataPassive, &KMMCScBkupDataTransferDebuggingPathDataBackup);
- fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
- iFsSession.MkDirAll( cleanPath );
- cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataActive, &KMMCScBkupDataTransferDebuggingPathDataBackup);
- fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
- iFsSession.MkDirAll( cleanPath );
- //
- CleanupStack::PopAndDestroy( fileMan );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupEngineImpl::ClearRestoreFilesL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupEngineImpl::ClearRestoreFilesL()
- {
- CFileMan* fileMan = CFileMan::NewL( iFsSession );
- CleanupStack::PushL( fileMan );
-
- // Make directory, ignore error, ugly, functionise later on...
- _LIT(KMMCScBkupFormatDes, "%S%S%S%S");
- TFileName cleanPath;
- const TDesC& path = PathInfo::MemoryCardRootPath();
-
- //
- cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataJava, &KMMCScBkupDataTransferDebuggingPathDataRestore);
- fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
- iFsSession.MkDirAll( cleanPath );
- cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataSystem, &KMMCScBkupDataTransferDebuggingPathDataRestore);
- fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
- iFsSession.MkDirAll( cleanPath );
- cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataPassive, &KMMCScBkupDataTransferDebuggingPathDataRestore);
- fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
- iFsSession.MkDirAll( cleanPath );
- cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataActive, &KMMCScBkupDataTransferDebuggingPathDataRestore);
- fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
- iFsSession.MkDirAll( cleanPath );
- //
- CleanupStack::PopAndDestroy( fileMan );
- }
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupFileInfo.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupFileInfo implementation
-*
-*
-*/
-
-#include "CMMCScBkupFileInfo.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::CMMCScBkupFileInfo()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupFileInfo::CMMCScBkupFileInfo()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::CMMCScBkupFileInfo()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupFileInfo::CMMCScBkupFileInfo( const TEntry& aEntry, TSecureId aAssociatedSID )
-: iSecureId(aAssociatedSID)
- {
- iSize = aEntry.iSize;
- iDateTime = aEntry.iModified;
- iAttributes = aEntry.iAtt;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::~CMMCScBkupFileInfo()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupFileInfo::~CMMCScBkupFileInfo()
- {
- delete iFileName;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupFileInfo::ConstructL( const TEntry& aEntry )
- {
- iFileName = aEntry.iName.AllocL();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupFileInfo* CMMCScBkupFileInfo::NewL( const TEntry& aEntry, TSecureId aAssociatedSID )
- {
- CMMCScBkupFileInfo* self = NewLC( aEntry, aAssociatedSID );
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupFileInfo* CMMCScBkupFileInfo::NewLC( const TEntry& aEntry, TSecureId aAssociatedSID )
- {
- CMMCScBkupFileInfo* self = new(ELeave) CMMCScBkupFileInfo( aEntry, aAssociatedSID );
- CleanupStack::PushL(self);
- self->ConstructL(aEntry);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupFileInfo* CMMCScBkupFileInfo::NewLC( RReadStream& aStream )
- {
- CMMCScBkupFileInfo* self = new(ELeave) CMMCScBkupFileInfo();
- CleanupStack::PushL(self);
- aStream >> *self;
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::Drive()
-//
-//
-// ---------------------------------------------------------------------------
-TDriveNumber CMMCScBkupFileInfo::Drive() const
- {
- const TDriveUnit driveUnit( FileName() );
- const TDriveNumber drive = static_cast< TDriveNumber > ( driveUnit.operator TInt() );
- //
- return drive;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::InternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupFileInfo::InternalizeL(RReadStream& aStream)
- {
- aStream.ReadInt32L(); // EStreamFormatVersion1
- aStream.ReadInt32L(); // spare1
- aStream.ReadInt32L(); // spare2
- aStream.ReadInt32L(); // spare3
- //
- HBufC* fileName = HBufC::NewL(aStream, KMaxFileName);
- delete iFileName;
- iFileName = fileName;
- //
- TInt64 intermediateDateTime;
- aStream >> intermediateDateTime;
- iDateTime = TTime(intermediateDateTime);
- //
- TUid intermediateSID;
- aStream >> intermediateSID;
- iSecureId = intermediateSID;
- //
- iSize = aStream.ReadInt32L();
- iAttributes = aStream.ReadUint32L();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::ExternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupFileInfo::ExternalizeL(RWriteStream& aStream) const
- {
- aStream.WriteInt32L( EStreamFormatVersion1 );
- aStream.WriteInt32L( 0 ); // spare1
- aStream.WriteInt32L( 0 ); // spare2
- aStream.WriteInt32L( 0 ); // spare3
- //
- aStream << *iFileName;
- aStream << iDateTime.Int64();
- aStream << iSecureId.operator TUid();
- aStream.WriteInt32L(iSize);
- aStream.WriteUint32L(iAttributes);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::OrderByFileName()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupFileInfo::OrderByFileName(const CMMCScBkupFileInfo& aLeft, const CMMCScBkupFileInfo& aRight)
- {
- const TPtrC pLeft(aLeft.FileName());
- const TPtrC pRight(aRight.FileName());
- //
- const TInt ret = pLeft.Compare(pRight);
- //
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileInfo::CompareByFileName()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupFileInfo::CompareByFileName(const CMMCScBkupFileInfo& aLeft, const CMMCScBkupFileInfo& aRight)
- {
- const TPtrC pLeft(aLeft.FileName());
- const TPtrC pRight(aRight.FileName());
- //
- const TBool same = (pLeft.Compare(pRight) == 0);
- return same;
- }
-
--- a/filemanager/bkupengine/src/CMMCScBkupFileListCollection.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,233 +0,0 @@
-/*
-* Copyright (c) 2005-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: CMMCScBkupFileListCollection implementation
-*
-*
-*/
-
-#include "CMMCScBkupFileListCollection.h"
-
-#include <bldvariant.hrh>
-#include <pathinfo.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#ifdef RD_FILE_MANAGER_BACKUP
-#include <driveinfo.h>
-#include "BkupEngine.hrh"
-#include "pathconfiguration.hrh"
-#endif
-
-// Constants
-const TInt KMMCScBkupDataOwnerGranularity = 50;
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileListCollection::CMMCScBkupFileListCollection()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupFileListCollection::CMMCScBkupFileListCollection( TBitFlags aCategory,
- RFs& aFsSession )
- :iEntries(KMMCScBkupDataOwnerGranularity),
- iCategory( aCategory ),
- iFsSession( aFsSession )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileListCollection::~CMMCScBkupFileListCollection()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupFileListCollection::~CMMCScBkupFileListCollection()
- {
- Reset();
- iEntries.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileListCollection::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupFileListCollection::ConstructL()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileListCollection::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupFileListCollection* CMMCScBkupFileListCollection::NewL( TBitFlags aCategory,
- RFs& aFsSession )
- {
- CMMCScBkupFileListCollection* self = new(ELeave) CMMCScBkupFileListCollection( aCategory, aFsSession );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileListCollection::AppendL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupFileListCollection::AppendL( const RArray<TEntry>& aArray, RArray< const CMMCScBkupFileInfo* >& aAddedItems, TSecureId aAssociatedSID )
- {
- const TInt count = aArray.Count();
-
- __LOG2("CMMCScBkupFileListCollection::AppendL() - Number of files %d to check for category %x", count, Category().Value() );
-
- for(TInt i=0; i<count; i++)
- {
- const TEntry& entry = aArray[i];
-#ifdef RD_FILE_MANAGER_BACKUP
- TBool skipFile = EFalse;
-
- if(Category().Value() != EBUCatUserFiles && Category().Value() != EBUCatAllInOne)
- {
- // Check whether public file in system user data folder. If it is and not part of
- // user file category, then discard file from collection
- const TDesC& path = PathInfo::PhoneMemoryRootPath();
- TInt error = entry.iName.FindF(path);
- if(error != KErrNotFound)
- {
- __LOG1("CMMCScBkupFileListCollection::AppendL() - Skipping file %S", &entry.iName );
- skipFile = ETrue;
- }
- }
- else if(Category().Value() == EBUCatUserFiles)
- {
- // Check also if public file is from mass-storage. If yes and user-files category in
- // question, prevent file getting backed up, because otherwise it is probable 2 GB
- // get exceeded and we cannot save larger than 2 GB archive. Allow public files being
- // backed up in other categories.
- TUint drvStatus( 0 );
- TInt drive( KErrNotFound );
-
- if( RFs::CharToDrive( entry.iName[0], drive ) != KErrNone )
- {
- drive = KErrNotFound;
- }
-
- TInt err = DriveInfo::GetDriveStatus(iFsSession, drive, drvStatus );
-
- if ( err == KErrNone && ( drvStatus & DriveInfo::EDriveInternal ) &&
- ( drvStatus & DriveInfo::EDriveExternallyMountable ) )
- {
- __LOG1("CMMCScBkupFileListCollection::AppendL() - Skipping file %S due it in mass storage", &entry.iName );
- skipFile = ETrue;
- }
- }
-
- if(!skipFile)
-#endif // RD_FILE_MANAGER_BACKUP
- {
- // Check whether the file is already present before adding it (avoid duplicate
- // public files)
- CMMCScBkupFileInfo* fileInfo = CMMCScBkupFileInfo::NewLC( entry, aAssociatedSID );
-
- TLinearOrder<CMMCScBkupFileInfo> comparer( CMMCScBkupFileInfo::OrderByFileName );
- const TInt indexIfFound = iEntries.FindInOrder( fileInfo, comparer );
- if (indexIfFound < 0)
- {
- // Item wasn't found - insert it in sorted order
- AppendL( fileInfo );
- CleanupStack::Pop( fileInfo );
-
- __LOG1("CMMCScBkupFileListCollection::AppendL() - Adding file %S", &fileInfo->FileName() );
-
- // Add a copy to our return array.
- aAddedItems.AppendL( fileInfo );
- }
- else
- {
- // Duplicate, discard
- __LOG1("CMMCScBkupFileListCollection::AppendL() - Duplicate file %S", &fileInfo->FileName() );
- CleanupStack::PopAndDestroy( fileInfo );
- }
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileListCollection::AppendL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupFileListCollection::AppendL( CMMCScBkupFileInfo* aFileInfo )
- {
- TLinearOrder<CMMCScBkupFileInfo> comparer( CMMCScBkupFileInfo::OrderByFileName );
- iEntries.InsertInOrderL( aFileInfo, comparer );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileListCollection::Count()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupFileListCollection::Count() const
- {
- return iEntries.Count();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileListCollection::Entry()
-//
-//
-// ---------------------------------------------------------------------------
-const CMMCScBkupFileInfo& CMMCScBkupFileListCollection::Entry(TInt aIndex) const
- {
- const CMMCScBkupFileInfo& entry = *iEntries[aIndex];
- return entry;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileListCollection::Remove()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupFileListCollection::Remove( TInt aIndex )
- {
- CMMCScBkupFileInfo* entry = iEntries[aIndex];
- delete entry;
- iEntries.Remove(aIndex);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupFileListCollection::Reset()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupFileListCollection::Reset()
- {
- iEntries.ResetAndDestroy();
- }
-
--- a/filemanager/bkupengine/src/CMMCScBkupIndexActiveData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupIndexActiveData implementation
-*
-*
-*/
-
-#include "CMMCScBkupIndexActiveData.h"
-
-// User includes
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
- /**
- * Active Data
- * ===========
- *
- * This is the format of the data written by the
- * CMMCScBkupStateArchiveOpActiveData object
- *
- * E.g.:
- *
- * ACTIVE DATA for DO 0
- * {
- * AD for DO 0, 1st drive
- * AD for DO 0, 2nd drive
- * AD for DO 0, 'n'th drive
- * },
- * ACTIVE DATA for DO 1
- * {
- * AD for DO 0, 1st drive - (AD is only on
- * AD for DO 0, 2nd drive two drives)
- * },
- * ACTIVE DATA for DO n
- * {
- * AD for DO 0, 1st drive - (AD is only on one drive)
- * }
- *
- * Active Data Index
- * =================
- *
- * This is the format of the data written by this object.
- * The format allows the possibility of a future partial
- * restore (hopefully).
- *
- *
- * 4 bytes = count of active data entries
- *
- * FOR EACH DATA OWNER
- * {
- * 4 bytes = secure id associated with a active data owner
- * 4 bytes = the number of different active data packages
- * for this particular active data owner (one for each
- * drive that was backed up)
- * ENTRY
- * {
- * 1 byte = Associated TDriveNumber of the active data
- * 8 bytes = offset and length of raw data
- * }
- * }
- *
- *
- **/
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexActiveData::CMMCScBkupIndexActiveData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexActiveData::CMMCScBkupIndexActiveData()
-: CMMCScBkupIndexWithIdentifier< TSecureId >( EMMCScBkupOwnerDataTypeActiveData )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexActiveData::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexActiveData* CMMCScBkupIndexActiveData::NewLC()
- {
- CMMCScBkupIndexActiveData* self = new(ELeave) CMMCScBkupIndexActiveData();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupIndexBase.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupIndexBase implementation
-*
-*
-*/
-
-#include "CMMCScBkupIndexBase.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexBase::CMMCScBkupIndexBase()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexBase::CMMCScBkupIndexBase( TMMCScBkupOwnerDataType aType )
-: iType(aType)
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexBase::~CMMCScBkupIndexBase()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexBase::~CMMCScBkupIndexBase()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexBase::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexBase::ConstructL()
- {
- }
-
--- a/filemanager/bkupengine/src/CMMCScBkupIndexDataOwners.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupIndexDataOwners implementation
-*
-*
-*/
-
-#include "CMMCScBkupIndexDataOwners.h"
-
-// User includes
-#include "MMMCScBkupArchiveDataInterface.h"
-
-// Constants
-const TInt KMMCScBkupDataOwnerIndexGranularity = 50;
-
-
- /**
- * Registration Data
- * =================
- *
- * This is the format of the data written by the
- * CMMCScBkupStateGetDataOwners object
- *
- *
- * REG DATA for DO 0
- * {
- * RD for DO 0, 1st drive
- * RD for DO 0, 2nd drive
- * RD for DO 0, 'n'th drive
- * },
- * REG DATA for DO 1
- * {
- * RD for DO 0, 1st drive
- * RD for DO 0, 2nd drive
- * RD for DO 0, 'n'th drive
- * },
- * REG DATA for DO n
- * {
- * RD for DO 0, 1st drive
- * RD for DO 0, 2nd drive
- * RD for DO 0, 'n'th drive
- * }
- *
- * Registration Data Index
- * =======================
- *
- * This is the format of the data written by this method.
- * The format allows the possibility of a future partial
- * restore (hopefully).
- *
- *
- * 4 bytes = count of data owners
- *
- * FOR EACH DATA OWNER
- * {
- * 4 bytes = secure id of data owner's process
- * 4 bytes = the number of different registration data files
- * for this particular data owner (one for each drive that
- * was backed up)
- * ENTRY
- * {
- * 1 byte = Associated TDriveNumber of the registration data
- * n bytes = raw drive data
- * }
- * }
- *
- *
- **/
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexDataOwners::CMMCScBkupIndexDataOwners()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexDataOwners::CMMCScBkupIndexDataOwners()
-: CMMCScBkupIndexBase( EMMCScBkupOwnerDataTypeDataOwner ), iEntries( KMMCScBkupDataOwnerIndexGranularity )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexDataOwners::~CMMCScBkupIndexDataOwners()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexDataOwners::~CMMCScBkupIndexDataOwners()
- {
- iEntries.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexDataOwners::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexDataOwners* CMMCScBkupIndexDataOwners::NewLC()
- {
- CMMCScBkupIndexDataOwners* self = new(ELeave) CMMCScBkupIndexDataOwners();
- CleanupStack::PushL(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexDataOwners::AddIndexRecordL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexDataOwners::AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo )
- {
- iEntries.AppendL( aInfo );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexDataOwners::StoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexDataOwners::StoreL(MMMCScBkupDriver& aDriver)
- {
- MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
- RWriteStream& stream = archiveDataInterface.ADIWriteStreamUncompressedLC();
- //
- stream.WriteInt32L( EStreamFormatVersion1 );
- stream.WriteInt32L( 0 ); // spare1
- stream.WriteInt32L( 0 ); // spare2
- stream.WriteInt32L( 0 ); // spare3
- //
- const TInt count = iEntries.Count();
- stream.WriteInt32L(count);
- //
- for(TInt i=0; i<count; i++)
- {
- const TMMCScBkupArchiveVector& entry = iEntries[i];
- stream << entry;
- //
- stream.WriteInt32L( 0 ); // spare1
- stream.WriteInt32L( 0 ); // spare2
- }
- //
- stream.CommitL();
- CleanupStack::PopAndDestroy(); // stream
-
- // Update our base class info with the offset to the index
- const TMMCScBkupArchiveVector& writeInfo = archiveDataInterface.ADICurrentArchiveVectorInfo();
- SetVector( writeInfo );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexDataOwners::RestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexDataOwners::RestoreL(MMMCScBkupDriver& aDriver)
- {
- MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
- RReadStream& stream = archiveDataInterface.ADIReadStreamUncompressedLC( Vector().Offset() );
- //
- stream.ReadInt32L(); // EStreamFormatVersion1
- stream.ReadInt32L(); // spare1
- stream.ReadInt32L(); // spare2
- stream.ReadInt32L(); // spare3
- //
- const TInt count = stream.ReadInt32L();
- //
- for(TInt i=0; i<count; i++)
- {
- TMMCScBkupArchiveVector entry;
- stream >> entry;
- //
- stream.ReadInt32L(); // spare1
- stream.ReadInt32L(); // spare2
- //
- iEntries.AppendL( entry );
- }
- //
- CleanupStack::PopAndDestroy(); // stream
- //
- const TMMCScBkupArchiveVector& readInfo = archiveDataInterface.ADICurrentArchiveVectorInfo();
- if ( readInfo.Length() > Vector().Length() )
- {
- // We've read too much!
- User::Leave( KErrCorrupt );
- }
- }
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupIndexJavaData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,402 +0,0 @@
-/*
-* Copyright (c) 2006 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: CMMCScBkupIndexJavaDataEntry implementation
-*
-*
-*/
-
-#include "CMMCScBkupIndexJavaData.h"
-
-// User includes
-#include "MMMCScBkupArchiveDataInterface.h"
-#include "MMCScBkupLogger.h"
-
-
- /**
- * Registration Data
- * =================
- *
- *
- * REG DATA for DO 0
- * {
- * RD for DO 0, 1st drive
- * RD for DO 0, 2nd drive
- * RD for DO 0, 'n'th drive
- * },
- * REG DATA for DO 1
- * {
- * RD for DO 0, 1st drive
- * RD for DO 0, 2nd drive
- * RD for DO 0, 'n'th drive
- * },
- * REG DATA for DO n
- * {
- * RD for DO 0, 1st drive
- * RD for DO 0, 2nd drive
- * RD for DO 0, 'n'th drive
- * }
- *
- * Registration Data Index
- * =======================
- *
- * This is the format of the data written by this object.
- * The format allows the possibility of a future partial
- * restore (hopefully).
- *
- *
- * 4 bytes = count of registration data entries
- *
- * FOR EACH DATA OWNER
- * {
- * 4 bytes = secure id of data owner's process
- * 4 bytes = the number of different registration data files
- * for this particular data owner (one for each drive that
- * was backed up)
- * ENTRY
- * {
- * 1 byte = Associated TDriveNumber of the registration data
- * 8 bytes = offset & length of actual registration data
- * }
- * }
- *
- **/
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaDataEntry::CMMCScBkupIndexJavaDataEntry()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexJavaDataEntry::CMMCScBkupIndexJavaDataEntry()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaDataEntry::CMMCScBkupIndexJavaDataEntry()
-//
-// C++ destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexJavaDataEntry::~CMMCScBkupIndexJavaDataEntry()
- {
- delete iHash;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaDataEntry::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexJavaDataEntry::ConstructL()
- {
- iHash = KNullDesC().AllocL();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaDataEntry::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexJavaDataEntry* CMMCScBkupIndexJavaDataEntry::NewLC()
- {
- CMMCScBkupIndexJavaDataEntry* self = new(ELeave) CMMCScBkupIndexJavaDataEntry();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaDataEntry::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexJavaDataEntry* CMMCScBkupIndexJavaDataEntry::NewLC( RReadStream& aStream )
- {
- CMMCScBkupIndexJavaDataEntry* self = new(ELeave) CMMCScBkupIndexJavaDataEntry();
- CleanupStack::PushL( self );
- aStream >> *self;
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaDataEntry::SetHashL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexJavaDataEntry::SetHashL( const TDesC& aHash )
- {
- HBufC* hash = aHash.AllocL();
- delete iHash;
- iHash = hash;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaDataEntry::InternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexJavaDataEntry::InternalizeL( RReadStream& aStream )
- {
- aStream.ReadInt32L(); // EStreamFormatVersion1
- aStream.ReadInt32L(); // spare1
- aStream.ReadInt32L(); // spare2
- aStream.ReadInt32L(); // spare3
- //
- HBufC* hash = HBufC::NewL( aStream, KMaxTInt );
- delete iHash;
- iHash = hash;
- //
- aStream >> iMidletInfo;
- aStream >> iMidletDataInfo;
- iDrive = static_cast< TDriveNumber>( aStream.ReadInt8L() );
- //
- __LOG6("CMMCScBkupIndexJavaDataEntry::InternalizeL() - hash: %S, iDrive: %c:, MIDLET[offset: %8d, length: %8d], MIDLETDATA[offset: %8d, length: %8d]", iHash, iDrive + 'A', iMidletInfo.Offset(), iMidletInfo.Length(), iMidletDataInfo.Offset(), iMidletDataInfo.Length() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaDataEntry::ExternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexJavaDataEntry::ExternalizeL( RWriteStream& aStream ) const
- {
- aStream.WriteInt32L( EStreamFormatVersion1 );
- aStream.WriteInt32L( 0 ); // spare1
- aStream.WriteInt32L( 0 ); // spare2
- aStream.WriteInt32L( 0 ); // spare3
- //
- aStream << Hash();
- aStream << iMidletInfo;
- aStream << iMidletDataInfo;
- aStream.WriteInt8L( iDrive );
- //
- __LOG6("CMMCScBkupIndexJavaDataEntry::ExternalizeL() - hash: %S, iDrive: %c:, MIDLET[offset: %8d, length: %8d], MIDLETDATA[offset: %8d, length: %8d]", iHash, iDrive + 'A', iMidletInfo.Offset(), iMidletInfo.Length(), iMidletDataInfo.Offset(), iMidletDataInfo.Length() );
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaData::CMMCScBkupIndexJavaData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexJavaData::CMMCScBkupIndexJavaData()
-: CMMCScBkupIndexBase( EMMCScBkupOwnerDataTypeJavaData )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaData::~CMMCScBkupIndexJavaData()
-//
-// C++ destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexJavaData::~CMMCScBkupIndexJavaData()
- {
- iEntries.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaData::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexJavaData* CMMCScBkupIndexJavaData::NewLC()
- {
- CMMCScBkupIndexJavaData* self = new(ELeave) CMMCScBkupIndexJavaData();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaData::AddIndexRecordL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexJavaData::AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, const TDesC& aHash, TDriveNumber aDrive, TJavaTransferType aType )
- {
- // Check if we already have an entry for this item...
- CMMCScBkupIndexJavaDataEntry* entry = EntryByHash( aHash, aDrive );
-
- if ( !entry )
- {
- __LOG1("CMMCScBkupIndexJavaData::AddIndexRecordL() - making new entry for hash: %S", &aHash);
- //
- entry = CMMCScBkupIndexJavaDataEntry::NewLC();
- //
- entry->SetHashL( aHash );
- entry->SetDrive( aDrive );
- iEntries.AppendL( entry );
- //
- CleanupStack::Pop( entry );
- }
- else
- {
- __LOG1("CMMCScBkupIndexJavaData::AddIndexRecordL() - found existing entry for hash: %S", &aHash);
- }
-
- if ( aType == EJavaMIDlet )
- {
- entry->SetMidletInfo( aInfo );
- }
- else if ( aType == EJavaMIDletData )
- {
- entry->SetMidletDataInfo( aInfo );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaData::At()
-//
-//
-// ---------------------------------------------------------------------------
-const CMMCScBkupIndexJavaDataEntry& CMMCScBkupIndexJavaData::At( TInt aIndex ) const
- {
- const CMMCScBkupIndexJavaDataEntry* entry = iEntries[ aIndex ];
- return *entry;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaData::StoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexJavaData::StoreL(MMMCScBkupDriver& aDriver)
- {
- MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
- RWriteStream stream(archiveDataInterface.ADIWriteStreamUncompressedLC());
- //
- stream.WriteInt32L( EStreamFormatVersion1 );
- stream.WriteInt32L( 0 ); // spare1
- stream.WriteInt32L( 0 ); // spare2
- stream.WriteInt32L( 0 ); // spare3
- //
- const TInt count = iEntries.Count();
- stream.WriteInt32L(count);
- //
- for(TInt i=0; i<count; i++)
- {
- const CMMCScBkupIndexJavaDataEntry* entry = iEntries[i];
- stream << *entry;
- }
- //
- stream.CommitL();
- CleanupStack::PopAndDestroy(); // stream
-
- // Update our base class info with the offset to the index
- SetVector( archiveDataInterface.ADICurrentArchiveVectorInfo() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaData::RestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexJavaData::RestoreL(MMMCScBkupDriver& aDriver)
- {
- MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
- RReadStream& stream = archiveDataInterface.ADIReadStreamUncompressedLC( Vector().Offset() );
- //
- stream.ReadInt32L(); // EStreamFormatVersion1
- stream.ReadInt32L(); // spare1
- stream.ReadInt32L(); // spare2
- stream.ReadInt32L(); // spare3
- //
- const TInt count = stream.ReadInt32L();
- for(TInt i=0; i<count; i++)
- {
- CMMCScBkupIndexJavaDataEntry* entry = CMMCScBkupIndexJavaDataEntry::NewLC( stream );
- iEntries.AppendL( entry );
- CleanupStack::Pop( entry );
- }
- //
- CleanupStack::PopAndDestroy(); // stream
- //
- const TMMCScBkupArchiveVector& readInfo = archiveDataInterface.ADICurrentArchiveVectorInfo();
- if ( readInfo.Length() > Vector().Length() )
- {
- // We've read too much!
- User::Leave( KErrCorrupt );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexJavaData::EntryByHash()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexJavaDataEntry* CMMCScBkupIndexJavaData::EntryByHash( const TDesC& aHash, TDriveNumber aDrive ) const
- {
- CMMCScBkupIndexJavaDataEntry* ret = NULL;
- const TInt count = iEntries.Count();
- //
- for(TInt i=0; i<count; i++)
- {
- CMMCScBkupIndexJavaDataEntry* entry = iEntries[ i ];
- //
- if ( entry->Hash() == aHash && entry->Drive() == aDrive )
- {
- ret = entry;
- break;
- }
- }
- //
- return ret;
- }
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupIndexPassiveData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupIndexPassiveData implementation
-*
-*
-*/
-
-#include "CMMCScBkupIndexPassiveData.h"
-
-// User includes
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
- /**
- * Passive Data
- * ===========
- *
- *
- *
- * Passive Data Index
- * =================
- *
- * This is the format of the data written by this object.
- * The format allows the possibility of a future partial
- * restore (hopefully).
- *
- *
- * 4 bytes = count of passive data entries
- *
- * FOR EACH DATA OWNER
- * {
- * 4 bytes = secure id associated with a passive data owner
- * 4 bytes = the number of different data entries for this
- * particular passive data owner (one for each
- * drive that was backed up)
- * ENTRY
- * {
- * 1 byte = Associated TDriveNumber of the system data
- * 8 bytes = offset and size to passive data
- * }
- * }
- *
- *
- **/
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexPassiveData::CMMCScBkupIndexPassiveData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexPassiveData::CMMCScBkupIndexPassiveData()
-: CMMCScBkupIndexWithIdentifier< TSecureId >( EMMCScBkupOwnerDataTypePassiveData )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexPassiveData::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexPassiveData* CMMCScBkupIndexPassiveData::NewLC()
- {
- CMMCScBkupIndexPassiveData* self = new(ELeave) CMMCScBkupIndexPassiveData();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupIndexPublicDataFiles.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupIndexPublicDataFiles implementation
-*
-*
-*/
-
-#include "CMMCScBkupIndexPublicDataFiles.h"
-
-// User includes
-#include "MMMCScBkupArchiveDataInterface.h"
-#include "CMMCScBkupFileInfo.h"
-#include "CMMCScBkupFileListCollection.h"
-
-
- /**
- * Public File Data
- * ================
- *
- * This is the format of the data written by the
- * CMMCScBkupStateArchiveOpPublicDataFiles object
- *
- * PUB FILE DATA for file 0
- * PUB FILE DATA for file 1
- * PUB FILE DATA for file n
- *
- * Public File Data Index
- * ======================
- *
- * This is the format of the data written by this object.
- * The format allows the possibility of a future partial
- * restore (hopefully).
- *
- * 4 bytes = count of data owners
- *
- * FOR EACH PUBLIC FILE
- * {
- * externalised CMMCScBkupFileInfo object
- * externalised TMMCScBkupArchiveVector (offset & compressed size) object
- * }
- *
- **/
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexPublicDataFiles::CMMCScBkupIndexPublicDataFiles()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexPublicDataFiles::CMMCScBkupIndexPublicDataFiles()
-: CMMCScBkupIndexBase( EMMCScBkupOwnerDataTypePublicData )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexPublicDataFiles::~CMMCScBkupIndexPublicDataFiles()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexPublicDataFiles::~CMMCScBkupIndexPublicDataFiles()
- {
- iEntries.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexPublicDataFiles::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexPublicDataFiles* CMMCScBkupIndexPublicDataFiles::NewLC()
- {
- CMMCScBkupIndexPublicDataFiles* self = new(ELeave) CMMCScBkupIndexPublicDataFiles();
- CleanupStack::PushL(self);
- self->ConstructL();
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexPublicDataFiles::AddIndexRecordL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexPublicDataFiles::AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, const CMMCScBkupFileInfo& aFile )
- {
- // Create new entry
- TMMCScBkupPublicFileEntry entry( aInfo, aFile );
-
- // Add it to our index
- iEntries.AppendL( entry );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexPublicDataFiles::At()
-//
-//
-// ---------------------------------------------------------------------------
-const CMMCScBkupFileInfo& CMMCScBkupIndexPublicDataFiles::At( TInt aIndex, TMMCScBkupArchiveVector& aInfo ) const
- {
- const TMMCScBkupPublicFileEntry& entry = iEntries[ aIndex ];
- aInfo = entry.iInfo;
- return *entry.iFile;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexPublicDataFiles::StoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexPublicDataFiles::StoreL(MMMCScBkupDriver& aDriver)
- {
- MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
- RWriteStream stream(archiveDataInterface.ADIWriteStreamUncompressedLC());
- //
- const TInt count = iEntries.Count();
- stream.WriteInt32L(count);
- //
- for(TInt i=0; i<count; i++)
- {
- const TMMCScBkupPublicFileEntry& entry = iEntries[i];
- stream << *entry.iFile;
- stream << entry.iInfo;
- }
- //
- stream.CommitL();
- CleanupStack::PopAndDestroy(); // stream
-
- // Update our base class info with the offset to the index
- SetVector( archiveDataInterface.ADICurrentArchiveVectorInfo() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexPublicDataFiles::RestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupIndexPublicDataFiles::RestoreL(MMMCScBkupDriver& aDriver)
- {
- CMMCScBkupFileListCollection& fileList = aDriver.DrvFileList();
- //
- MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
- RReadStream& stream = archiveDataInterface.ADIReadStreamUncompressedLC( Vector().Offset() );
- //
- const TInt count = stream.ReadInt32L();
- for(TInt i=0; i<count; i++)
- {
- TMMCScBkupPublicFileEntry entry;
-
- // Reconstruct the CMMCScBkupFileInfo entry in the stream
- CMMCScBkupFileInfo* fileInfo = CMMCScBkupFileInfo::NewLC( stream );
-
- // Give ownership to the file list collection
- fileList.AppendL( fileInfo );
- CleanupStack::Pop( fileInfo );
- entry.iFile = fileInfo;
-
- // Then read the offset to the file...
- stream >> entry.iInfo;
-
- // And finally add a new record to our index, so client's can
- // retrieve the info.
- iEntries.AppendL( entry );
- }
- //
- CleanupStack::PopAndDestroy(); // stream
- //
- const TMMCScBkupArchiveVector& readInfo = archiveDataInterface.ADICurrentArchiveVectorInfo();
- if ( readInfo.Length() > Vector().Length() )
- {
- // We've read too much!
- User::Leave( KErrCorrupt );
- }
- }
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupIndexSystemData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupIndexSystemData implementation
-*
-*
-*/
-
-#include "CMMCScBkupIndexSystemData.h"
-
-// User includes
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
- /**
- * System Data
- * ===========
- *
- * This is the format of the data written by the
- * CMMCScBkupStateArchiveOpSystemData object
- *
- *
- * SYSTEM DATA for DO 0
- * {
- * SD for DO 0, 1st drive
- * SD for DO 0, 2nd drive
- * SD for DO 0, 'n'th drive
- * },
- * SYSTEM DATA for DO 1
- * {
- * SD for DO 0, 1st drive - (System data is only on
- * SD for DO 0, 2nd drive two drives)
- * },
- * SYSTEM DATA for DO n
- * {
- * SD for DO 0, 1st drive - (System Data is only on one drive)
- * }
- *
- * System Data Index
- * =================
- *
- * This is the format of the data written by this object.
- * The format allows the possibility of a future partial
- * restore (hopefully).
- *
- *
- * 4 bytes = count of system data entries
- *
- * FOR EACH DATA OWNER
- * {
- * 4 bytes = package id associated with a system data owner
- * 4 bytes = the number of different system data packages
- * for this particular system data owner (one for each
- * drive that was backed up)
- * ENTRY
- * {
- * 1 byte = Associated TDriveNumber of the system data
- * 8 bytes = offset & length of actual registration data
- * }
- * }
- *
- *
- **/
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexSystemData::CMMCScBkupIndexSystemData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexSystemData::CMMCScBkupIndexSystemData()
-: CMMCScBkupIndexWithIdentifier< TInt32 >( EMMCScBkupOwnerDataTypeSystemData )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupIndexSystemData::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupIndexSystemData* CMMCScBkupIndexSystemData::NewLC()
- {
- CMMCScBkupIndexSystemData* self = new(ELeave) CMMCScBkupIndexSystemData();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupIndexWithIdentifier.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupIndexWithIdentifier implementation
-*
-*
-*/
-
-#include "CMMCScBkupIndexWithIdentifier.h"
-
--- a/filemanager/bkupengine/src/CMMCScBkupOperationParameters.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,490 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupOpParamsBase implementation
-*
-*
-*/
-
-#include "CMMCScBkupOperationParameters.h"
-
-// System includes
-#include <e32std.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDriveAndOperationTypeManager.h"
-#include "CMMCScBkupArchiveInfo.h"
-#include "BkupEngine.hrh"
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBase::CMMCScBkupOpParamsBase()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupOpParamsBase::CMMCScBkupOpParamsBase()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBase::~CMMCScBkupOpParamsBase()
-//
-// C++ destructor.
-// ---------------------------------------------------------------------------
-EXPORT_C CMMCScBkupOpParamsBase::~CMMCScBkupOpParamsBase()
- {
- delete iDriveAndOperations;
- iArchiveInfos.ResetAndDestroy();
- iArchiveInfos.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBase::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupOpParamsBase::ConstructL( TResourceReader& aDriveReader, TBitFlags aCategories )
- {
- iCategories = aCategories;
- iDriveAndOperations = CMMCScBkupDriveAndOperationTypeManager::NewL( aDriveReader );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBase::DriveAndOperations()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C const CMMCScBkupDriveAndOperationTypeManager& CMMCScBkupOpParamsBase::DriveAndOperations() const
- {
- return *iDriveAndOperations;
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBase::SetArchiveInfosL()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C void CMMCScBkupOpParamsBase::SetArchiveInfosL(RPointerArray<CMMCScBkupArchiveInfo>& aInfos)
- {
- iArchiveInfos.ResetAndDestroy();
-
- for(TInt i = 0; i < aInfos.Count(); i++)
- {
- iArchiveInfos.AppendL(aInfos[i]);
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBase::ArchiveInfos()
-//
-//
-// ---------------------------------------------------------------------------
-RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& CMMCScBkupOpParamsBase::ArchiveInfos()
- {
- return iArchiveInfos;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBase::ArchiveInfo()
-//
-//
-// ---------------------------------------------------------------------------
-const CMMCScBkupArchiveInfo& CMMCScBkupOpParamsBase::ArchiveInfo(TBitFlags aCategory) const
- {
- CMMCScBkupArchiveInfo* archiveInfo = NULL;
-
- for(TInt i = 0; i < iArchiveInfos.Count(); i++)
- {
- archiveInfo = iArchiveInfos[i];
- if(archiveInfo->Category() == aCategory)
- {
- break;
- }
- }
-
- return *archiveInfo;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBase::FileName()
-//
-//
-// ---------------------------------------------------------------------------
-const TDesC& CMMCScBkupOpParamsBase::FileName(TInt aIndex) const
- {
- const TDesC* ret = &KNullDesC;
- const CMMCScBkupArchiveInfo& archiveInfo = *iArchiveInfos[aIndex];
-
- if( archiveInfo.FileName().Length() )
- {
- ret = &archiveInfo.FileName();
- }
-
- return *ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::ReadFromResourceL()
-//
-// Read categories with associated data from resource
-// ---------------------------------------------------------------------------
-void CMMCScBkupOpParamsBackupFull::ReadFromResourceL( TResourceReader& aReader )
- {
- TInt count( aReader.ReadInt16() );
-
- for ( TInt i( 0 ); i < count; i++ )
- {
- // Read category
- TBitFlags category = static_cast< TBitFlags >(aReader.ReadUint32());
-
- // Read archive name
- const TDriveUnit driveUnit(iDrive);
- const TDriveName driveName(driveUnit.Name());
- TFileName name;
- TPtrC archiveName( aReader.ReadTPtrC() );
-
- name.Append(driveName);
- name.Append(KBackUpFolder());
- name.Append(archiveName);
-
- // Read special flags
- TBitFlags flags = static_cast< TBitFlags >(aReader.ReadUint32());
- TBitFlags excludedFlags = static_cast< TBitFlags >(aReader.ReadUint32());
-
- // Read SIDs belonging to category
- TInt16 subCount = aReader.ReadInt16();
- RArray<TSecureId> sids;
- CleanupClosePushL( sids );
-
- for(TInt j = 0; j < subCount; j++)
- {
- sids.AppendL(static_cast<TSecureId>(aReader.ReadUint32()));
- }
-
- // Read excluded SIDs for category
- subCount = aReader.ReadInt16();
- RArray<TSecureId> excludeSids;
- CleanupClosePushL( excludeSids );
-
- for(TInt j = 0; j < subCount; j++)
- {
- excludeSids.AppendL(static_cast<TSecureId>(aReader.ReadUint32()));
- }
-
- TEntry entry;
- entry.iName = name;
- CMMCScBkupArchiveInfo* archiveInfo = CMMCScBkupArchiveInfo::NewLC( entry );
- archiveInfo->SetCategory( category );
- archiveInfo->SetSpecialFlags( flags );
- archiveInfo->SetExcludedSpecialFlags( excludedFlags );
- archiveInfo->SetSIDs( sids );
- archiveInfo->SetExcludedSIDs( excludeSids );
-
- // If the category is specified, then add it in list of categories to be archived
-#ifdef RD_FILE_MANAGER_BACKUP
- if( Categories().Value() & category.Value() )
-#else
- if( category.Value() == EBUCatAllInOne )
-#endif
- {
- __LOG1("CMMCScBkupOpParamsBase::ReadFromResourceL() - adding category 0x%x", category.Value());
- RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& archives = ArchiveInfos();
- archives.AppendL( archiveInfo );
- CleanupStack::Pop( archiveInfo );
- }
- else
- {
- __LOG1("CMMCScBkupOpParamsBase::ReadFromResourceL() - category 0x%x not included", category.Value());
- CleanupStack::PopAndDestroy( archiveInfo );
- }
-
- CleanupStack::PopAndDestroy( &excludeSids );
- CleanupStack::PopAndDestroy( &sids );
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::CMMCScBkupOpParamsBackupFull()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupOpParamsBackupFull::CMMCScBkupOpParamsBackupFull( TDriveNumber aDrive )
- : iDrive( aDrive )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::~CMMCScBkupOpParamsBackupFull()
-//
-// C++ destructor.
-// ---------------------------------------------------------------------------
-EXPORT_C CMMCScBkupOpParamsBackupFull::~CMMCScBkupOpParamsBackupFull()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupOpParamsBackupFull::ConstructL( TResourceReader& aDriveReader, TResourceReader& aCategoryReader,
- TBitFlags aCategories )
- {
- CMMCScBkupOpParamsBase::ConstructL( aDriveReader, aCategories );
- ReadFromResourceL( aCategoryReader );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C CMMCScBkupOpParamsBackupFull* CMMCScBkupOpParamsBackupFull::NewL( TResourceReader& aDriveReader, TResourceReader& aCategoryReader,
- TDriveNumber aDrive, TBitFlags aCategories )
- {
- CMMCScBkupOpParamsBackupFull* self = new(ELeave) CMMCScBkupOpParamsBackupFull( aDrive );
- CleanupStack::PushL( self );
- self->ConstructL( aDriveReader, aCategoryReader, aCategories );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::AssociatedOpType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TMMCScBkupOperationType CMMCScBkupOpParamsBackupFull::AssociatedOpType() const
- {
- return EMMCScBkupOperationTypeFullBackup;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::PartType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TBURPartType CMMCScBkupOpParamsBackupFull::PartType() const
- {
- return EBURBackupFull;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::IncrementType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TBackupIncType CMMCScBkupOpParamsBackupFull::IncrementType() const
- {
- return EBackupBase;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::PassiveTransferType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TTransferDataType CMMCScBkupOpParamsBackupFull::PassiveTransferType() const
- {
- return EPassiveBaseData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::ActiveTransferType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TTransferDataType CMMCScBkupOpParamsBackupFull::ActiveTransferType() const
- {
- return EActiveBaseData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsBackupFull::PackageTransferType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TPackageDataType CMMCScBkupOpParamsBackupFull::PackageTransferType() const
- {
- return ESystemData;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsRestoreFull::CMMCScBkupOpParamsRestoreFull()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupOpParamsRestoreFull::CMMCScBkupOpParamsRestoreFull()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsRestoreFull::~CMMCScBkupOpParamsRestoreFull()
-//
-// C++ destructor.
-// ---------------------------------------------------------------------------
-EXPORT_C CMMCScBkupOpParamsRestoreFull::~CMMCScBkupOpParamsRestoreFull()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsRestoreFull::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C CMMCScBkupOpParamsRestoreFull* CMMCScBkupOpParamsRestoreFull::NewL( TResourceReader& aDriveReader, TBitFlags aCategories )
- {
- CMMCScBkupOpParamsRestoreFull* self = new(ELeave) CMMCScBkupOpParamsRestoreFull( );
- CleanupStack::PushL( self );
- self->ConstructL( aDriveReader, aCategories );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsRestoreFull::AssociatedOpType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TMMCScBkupOperationType CMMCScBkupOpParamsRestoreFull::AssociatedOpType() const
- {
- return EMMCScBkupOperationTypeFullRestore;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsRestoreFull::PartType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TBURPartType CMMCScBkupOpParamsRestoreFull::PartType() const
- {
- return EBURRestoreFull;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsRestoreFull::IncrementType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TBackupIncType CMMCScBkupOpParamsRestoreFull::IncrementType() const
- {
- return EBackupBase;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsRestoreFull::PassiveTransferType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TTransferDataType CMMCScBkupOpParamsRestoreFull::PassiveTransferType() const
- {
- return EPassiveBaseData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsRestoreFull::ActiveTransferType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TTransferDataType CMMCScBkupOpParamsRestoreFull::ActiveTransferType() const
- {
- return EActiveBaseData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupOpParamsRestoreFull::PackageTransferType()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TPackageDataType CMMCScBkupOpParamsRestoreFull::PackageTransferType() const
- {
- return ESystemData;
- }
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupState.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,243 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupState implementation
-*
-*
-*/
-
-#include "CMMCScBkupState.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::CMMCScBkupState()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupState::CMMCScBkupState( MMMCScBkupDriver& aDriver, TInt aPriority )
-: CActive( aPriority ), iDriver( aDriver )
- {
- CActiveScheduler::Add(this);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::~CMMCScBkupState()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupState::~CMMCScBkupState()
- {
- Cancel();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::RunL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupState::RunL()
- {
- User::LeaveIfError(iStatus.Int());
- //
- PerformAsynchronousStateStepL();
- //
- if (!IsActive())
- {
- // If we've processed all the asynchronous steps, then
- // perform the last rights on the state.
- //
- // If this causes a leave, then we cascade the failure
- // to the observer - i.e. the error is treated as fatal.
- TRAPD(err, PerformLastRightsL() );
- CompleteObserver( err );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::DoCancel()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupState::DoCancel()
- {
- __LOG3("CMMCScBkupState::DoCancel() - START - state: 0x%08x, IsActive: %d, status: %d", StateId().iUid, IsActive(), iStatus.Int() );
- PerformAsynchronousCancellation();
- CompleteObserver( KErrCancel );
- __LOG3("CMMCScBkupState::DoCancel() - END - state: 0x%08x, IsActive: %d, status: %d", StateId().iUid, IsActive(), iStatus.Int() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::RunError()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupState::RunError(TInt aError)
- {
-#ifdef MMCSCBKUP_USE_BREAKPOINTS
- __BREAKPOINT();
-#endif
- //
- if ( aError == KErrNoMemory || aError == KErrDiskFull || aError == KErrNotReady || aError == KErrServerTerminated || aError == KErrWrite )
- {
- __LOGFILE2("CMMCScBkupState::RunError() - **** - FATAL ERROR - state: 0x%08x, aError: %d - Notifying Observer (Engine)", StateId().iUid, aError );
- CompleteObserver( aError );
- }
- else
- {
- __LOGFILE2("CMMCScBkupState::RunError() - **** - ATTEMPT TO HANDLE ERROR - state: 0x%08x, aError: %d...", StateId().iUid, aError );
-
- const TBool errorHandled = PerformAsynchronousErrorCleanup( aError );
-
- __LOGFILE1("CMMCScBkupState::RunError() - **** - handle error result: %d", errorHandled );
-
- // If the cleanup callback didn't set us active again, then
- // assume the object didn't perform any recovery. Therefore
- // inform our observer about the error and give up.
- if (!errorHandled || !IsActive())
- {
- CompleteObserver( aError );
- }
- }
- //
- return KErrNone;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::ExecuteL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupState::ExecuteL(TRequestStatus& aObserver)
- {
- SetObserver(aObserver);
- TRAPD(error, PerformStateInitL());
-
- // If the object is active, then it is making use of asynchronous
- // functionality, in which case we do nothing.
- //
- // If the object is not active or the call to PerformStateActionL left,
- // then we complete the observer with the result of the trap
- if (error != KErrNone || IsActive() == EFalse)
- {
- if (error == KErrNone)
- {
- PerformLastRightsL();
- }
- //
- CompleteObserver(error);
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::PerformAsynchronousStateStepL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupState::PerformAsynchronousStateStepL()
- {
- // Derived classes should override this if they implement
- // asynchronous behaviour
- User::Invariant();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupState::PerformAsynchronousCancellation()
- {
- // Derived classes are expected to implement this if they have
- // resources to free. For calls to CompleteSelf(), no action is needed.
- __LOG3("CMMCScBkupState::PerformAsynchronousCancellation() - ERROR - cancellation not implemented for state: 0x%08x, IsActive: %d, status: %d", StateId().iUid, IsActive(), iStatus.Int() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::PerformLastRightsL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupState::PerformLastRightsL()
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::PerformAsynchronousErrorCleanup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupState::PerformAsynchronousErrorCleanup( TInt aError )
- {
- (void) aError;
- __LOGFILE2("CMMCScBkupState::PerformAsynchronousErrorCleanup() - error: %d, state id: 0x%08x", aError, StateId().iUid );
- return EFalse;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::CompleteSelf()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupState::CompleteSelf( TInt aCompletionCode )
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, aCompletionCode );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::CompleteObserver()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupState::CompleteObserver( TInt aCompletionCode )
- {
- __ASSERT_ALWAYS(iObserver != NULL, User::Invariant());
- User::RequestComplete( iObserver, aCompletionCode );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupState::SetObserver()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupState::SetObserver(TRequestStatus& aStatus)
- {
- __ASSERT_ALWAYS(iObserver == NULL, User::Invariant());
- aStatus = KRequestPending;
- iObserver = &aStatus;
- }
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateArchiveOpActiveData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,467 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpActiveData implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateArchiveOpActiveData.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMCScBkupSBEUtils.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupIndexWithIdentifier.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-// Constants
-const TInt KMMCScBkupActiveDataOwnerDelayBeforeRetry = 2 * 1000000; // 2 seconds
-const TInt KMMCScBkupNumberOfAttemptsToAllowADOToBecomeReady = 4; // corresponds to 8 seconds of waiting
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::CMMCScBkupStateArchiveOpActiveData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpActiveData::CMMCScBkupStateArchiveOpActiveData( MMMCScBkupDriver& aDriver )
-: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
- {
- __LOG1("CMMCScBkupStateArchiveOpActiveData::CMMCScBkupStateArchiveOpActiveData() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::~CMMCScBkupStateArchiveOpActiveData()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpActiveData::~CMMCScBkupStateArchiveOpActiveData()
- {
- Cancel();
- //
- iTimer.Close();
- //
- delete iBackupTransferObject;
- delete iRestoreTransferObject;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpActiveData* CMMCScBkupStateArchiveOpActiveData::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateArchiveOpActiveData* self = new(ELeave) CMMCScBkupStateArchiveOpActiveData( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpActiveData::StateId() const
- {
- return KMMCScBkupStateIdArchiveOpActiveData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::NextStateBackupId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpActiveData::NextStateBackupId( TBool /*aPartial*/ ) const
- {
- // If we still have unprocessed active data owners remaining, then
- // we must
- //
- // a) check their status again - to see if they are ready, then
- // b) process them once again via this method
- //
- // The 'get data owner statuses' object will trigger us again
- // when it has performed an update of all statuses
-
- // By default, we want to move onto the passive data...
- TMMCScBkupStateId nextState = KMMCScBkupStateIdArchiveOpPassiveData;
- if (AllDataOwnersHandled() == EFalse)
- {
- // ... but we've still got at least one data owner who's not yet
- // finished preparing their data... so we have to retry
- nextState = KMMCScBkupStateIdGetDataOwnerStatuses;
- }
- //
- return nextState;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::NextStateRestoreId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpActiveData::NextStateRestoreId( TBool /*aPartial*/ ) const
- {
- // If we still have unprocessed active data owners remaining, then
- // we must
- //
- // a) check their status again - to see if they are ready, then
- // b) process them once again via this method
- //
- // The 'get data owner statuses' object will trigger us again
- // when it has performed an update of all statuses
-
- // By default, we want to move onto the passive data...
- TMMCScBkupStateId nextState = KMMCScBkupStateIdArchiveOpPublicDataFiles;
- if (AllDataOwnersHandled() == EFalse)
- {
- // ... but we've still got at least one data owner who's not yet
- // finished preparing their data... so we have to retry
- nextState = KMMCScBkupStateIdGetDataOwnerStatuses;
- }
- //
- return nextState;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::PerformStateInitBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpActiveData::PerformStateInitBackupL( TBool /*aPartial*/ )
- {
- __DEBUG_TESTING_SKIP_BACKUP_ACT_DATA;
- __LOG("CMMCScBkupStateArchiveOpActiveData::PerformStateInitBackupL() - START");
-
- iBackupTransferObject = CMMCScBkupWriteDataTransferRequest< TTransferDataType >::NewL(
- Driver(),
- *this,
- EMMCScBkupOwnerDataTypeActiveData,
- ESIDTransferDerivedType,
- Driver().DrvParamsBase().ActiveTransferType()
- );
- CompleteSelf();
- __LOG("CMMCScBkupStateArchiveOpActiveData::PerformStateInitBackupL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::PerformStateInitRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpActiveData::PerformStateInitRestoreL( TBool /*aPartial*/ )
- {
- __DEBUG_TESTING_SKIP_RESTORE_ACT_DATA;
- __LOG("CMMCScBkupStateArchiveOpActiveData::PerformStateInitRestoreL() - START");
-
- iRestoreTransferObject = CMMCScBkupReadDataTransferRequest< TTransferDataType >::NewL(
- Driver(),
- EMMCScBkupOwnerDataTypeActiveData,
- Driver().DrvParamsBase().ActiveTransferType()
- );
-
- CompleteSelf();
- __LOG("CMMCScBkupStateArchiveOpActiveData::PerformStateInitRestoreL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- const TInt count = dataOwners.Count();
- __LOG2("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - START - iIndexValueCurrent: %d/%d", iIndexValueCurrent, count);
- //
- while ( ++iIndexValueCurrent < count )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner(iIndexValueCurrent);
-
- // Has this data owner been processed?
- // Is the data owner even ready?
- const TBool activeDataAlreadyProcessed = owner.CompletionStatus( EMMCScBkupOwnerDataTypeActiveData );
- const TBool dataOwnerIsReady = ( owner.Status() == EDataOwnerReady ||
- owner.Status() == EDataOwnerReadyNoImpl );
- const TBool dataHasRealActiveData = ( owner.Status() == EDataOwnerReady );
- //
- __LOG5("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - DO: 0x%08x has status: %d, alreadyProcessed: %d, isReady: %d, dataHasRealActiveData: %d", owner.SecureId().iId, owner.Status(), activeDataAlreadyProcessed, dataOwnerIsReady, dataHasRealActiveData);
- //
- if (!activeDataAlreadyProcessed)
- {
- __LOG("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - active data hasnt already been processed...");
-
- if (dataOwnerIsReady)
- {
- __LOG("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - data owner is ready...");
-
- if ( dataHasRealActiveData )
- {
- __LOG("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - data owner has real active data...");
-
- // Try and obtain the active data for this client
- __ASSERT_ALWAYS(iBackupTransferObject->IsActive() == EFalse, User::Invariant());
- //
- iBackupTransferObject->RequestL( owner,
- iStatus,
- Driver().DrvParamsBase().DriveAndOperations() );
- SetActive();
- break; // while loop
- }
- else
- {
- // The data owner is a hybrid - we shouldn't request data for a data owner that
- // doesn't provide an active data interface callback implementation.
- __LOG("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - DO is a hybrid - set completion status to ETrue");
- owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
- }
- }
- else
- {
- // Retry a number of times, but eventually we'll give up
- const TInt attemptsSoFar = owner.ActiveDataRetryCount();
- owner.SetActiveDataRetryCount( attemptsSoFar + 1 );
-
- if ( attemptsSoFar >= KMMCScBkupNumberOfAttemptsToAllowADOToBecomeReady )
- {
- // Give up, this DO is taking too long
- owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
- __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - ADO with SID: 0x%08x has taken too long to prepare, skipping", owner.SecureId().iId);
- }
- else
- {
- // DO is not yet ready, we're going to have to check its
- // status again in a while...
- __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - attemptsSoFar %d", attemptsSoFar);
- iAtLeastOneDataOwnerIsNotYetReady = ETrue;
- }
- }
- }
- }
- //
- CheckNeedToStartRetryTimerL();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeActiveData );
- CMMCScBkupIndexWithIdentifier< TSecureId >& index = static_cast< CMMCScBkupIndexWithIdentifier< TSecureId >& >( indexBase );
- const TInt count = index.Count();
- //
- //
- while ( ++iIndexValueCurrent < count )
- {
- // Get the associated data owner
- const CMMCScBkupIndexEntry<TSecureId>& entry = index.At( iIndexValueCurrent );
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Identifier() );
-
- // Has this data owner been processed?
- // Is the data owner even ready?
- const TBool activeDataAlreadyProcessed = owner.CompletionStatus(EMMCScBkupOwnerDataTypeActiveData);
- const TBool dataOwnerIsReady = ( owner.Status() == EDataOwnerReady ||
- owner.Status() == EDataOwnerReadyNoImpl );
- //
- if (!activeDataAlreadyProcessed)
- {
- if (dataOwnerIsReady)
- {
- __ASSERT_ALWAYS(iRestoreTransferObject->IsActive() == EFalse, User::Invariant());
- //
- const RArray<TMMCScBkupArchiveDriveAndVector>& subEntries = entry.Entries();
- iRestoreTransferObject->RequestL( owner,
- iStatus,
- subEntries );
- __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepRestoreL() - trying to restore ACTIVE DATA for SID: 0x%08x", owner.SecureId().iId );
- //
- SetActive();
- break; // while loop
- }
- else
- {
- // Retry a number of times, but eventually we'll give up
- const TInt attemptsSoFar = owner.ActiveDataRetryCount();
- owner.SetActiveDataRetryCount( attemptsSoFar + 1 );
-
- if ( attemptsSoFar >= KMMCScBkupNumberOfAttemptsToAllowADOToBecomeReady )
- {
- // Give up, this DO is taking too long
- owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
- __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepRestoreL() - ADO with SID: 0x%08x has taken too long to prepare, skipping", owner.SecureId().iId);
- }
- else
- {
- // DO is not yet ready, we're going to have to check its
- // status again in a while...
- iAtLeastOneDataOwnerIsNotYetReady = ETrue;
- }
- }
- }
- }
- //
- CheckNeedToStartRetryTimerL();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupBackup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d", aError );
-
- // Reset state and move to next item. Treat the current (badly behaving) item
- // as completed/processed.
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- if ( iIndexValueCurrent < dataOwners.Count() )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
- owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
-
- __LOGFILE2("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d, SID: 0x%08x - ACTIVE data skipped for DO", aError, owner.SecureId().iId );
- }
-
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupRestore()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOGFILE1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
-
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousCancellation()
- {
- if (iTimer.Handle() != KNullHandle )
- {
- iTimer.Cancel();
- }
- if (iBackupTransferObject)
- {
- iBackupTransferObject->Cancel();
- }
- if (iRestoreTransferObject)
- {
- iRestoreTransferObject->Cancel();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::PerformLastRightsBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpActiveData::PerformLastRightsBackupL( TBool /*aPartial*/ )
- {
- __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformLastRightsBackupL() - iAtLeastOneDataOwnerIsNotYetReady %d", iAtLeastOneDataOwnerIsNotYetReady );
-
- if ( AllDataOwnersHandled() )
- {
- // Only write the index if we've handled all the active data owners
- CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeActiveData );
- index.StoreL(Driver());
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::AddIndexRecordL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpActiveData::AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive )
- {
- CMMCScBkupIndexBase& indexBase = aFooter.IndexByType( EMMCScBkupOwnerDataTypeActiveData );
- CMMCScBkupIndexWithIdentifier< TSecureId>& index = static_cast< CMMCScBkupIndexWithIdentifier< TSecureId>& >( indexBase );
- //
- index.AddIndexRecordL( aInfo, aDrive, aDataOwner.SecureId() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpActiveData::CheckNeedToStartRetryTimerL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpActiveData::CheckNeedToStartRetryTimerL()
- {
- // We need to delay until the remaining active data owners are ready
- const TBool processingDataHandler = IsActive();
- if ( !processingDataHandler && !AllDataOwnersHandled() && iTimer.Handle() == KNullHandle )
- {
- // Implicitly, we have at least one DO that's not yet ready, and
- // we have processed as many of the ready DO's as is possible on this
- // cycle. Let's wait a few seconds to give the DO's a time to finish
- // preparing and then try again. See NextStateId() for how this works.
- User::LeaveIfError( iTimer.CreateLocal() );
-
- __LOG("CMMCScBkupStateArchiveOpActiveData::CheckNeedToStartRetryTimerL() - SetActive");
- SetActive();
- const TTimeIntervalMicroSeconds32 delay(KMMCScBkupActiveDataOwnerDelayBeforeRetry);
- iTimer.After( iStatus, delay );
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateArchiveOpArchiveFooter.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpArchiveFooter implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateArchiveOpArchiveFooter.h"
-
-// System includes
-#include <e32std.h>
-#include <s32strm.h>
-#include <s32mem.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupArchiveHeader.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveFooter::CMMCScBkupStateArchiveOpArchiveFooter()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpArchiveFooter::CMMCScBkupStateArchiveOpArchiveFooter( MMMCScBkupDriver& aDriver )
-: CMMCScBkupState( aDriver )
- {
- __LOG1("CMMCScBkupStateArchiveOpArchiveFooter::CMMCScBkupStateArchiveOpArchiveFooter() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveFooter::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpArchiveFooter* CMMCScBkupStateArchiveOpArchiveFooter::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateArchiveOpArchiveFooter* self = new(ELeave) CMMCScBkupStateArchiveOpArchiveFooter( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveFooter::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpArchiveFooter::StateId() const
- {
- return KMMCScBkupStateIdArchiveOpArchiveFooter;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveFooter::NextStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpArchiveFooter::NextStateId() const
- {
- TMMCScBkupStateId nextState = KMMCScBkupStateIdOperationComplete;
- //
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- nextState = KMMCScBkupStateIdOperationComplete;
- break;
- case EMMCScBkupOperationTypeFullRestore:
- nextState = KMMCScBkupStateIdArchiveOpDataOwners;
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- //
- return nextState;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveFooter::PerformStateInitL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpArchiveFooter::PerformStateInitL()
- {
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL()
- {
- CMMCScBkupArchive& archive = Driver().DrvArchive();
- CMMCScBkupArchiveFooter& footer = archive.Footer();
- CMMCScBkupArchiveHeader& header = archive.Header();
- //
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- __LOG("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - EMMCScBkupOperationTypeFullBackup - storing footer..." );
- footer.StoreL();
- break;
- case EMMCScBkupOperationTypeFullRestore:
- {
- __LOG("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - EMMCScBkupOperationTypeFullRestore - restoring footer..." );
-
- const TMMCScBkupArchiveVector& archiveVector = Driver().DrvADI().ADIOverallArchiveVectorInfo();
- __LOG1("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - overall archive length: %d", archiveVector.Length() );
-
- const TInt footerLengthFromHeader = header.FooterLength();
- __LOG1("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - footer length (read from header): %d", footerLengthFromHeader );
-
- const TInt footerStartingOffset = archiveVector.Length() - footerLengthFromHeader;
- __LOG1("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - footer starting offset: %d", footerStartingOffset );
-
- footer.RestoreL( footerStartingOffset );
-
- __LOG("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - restoring all indicies");
-
- // Restore all indicies
- CMMCScBkupIndexBase& indexDataOwner = footer.IndexByType(EMMCScBkupOwnerDataTypeDataOwner);
- indexDataOwner.RestoreL( Driver() );
-
- CMMCScBkupIndexBase& indexSystem = footer.IndexByType( EMMCScBkupOwnerDataTypeSystemData );
- indexSystem.RestoreL( Driver() );
-
- CMMCScBkupIndexBase& indexJava = footer.IndexByType( EMMCScBkupOwnerDataTypeJavaData );
- indexJava.RestoreL( Driver() );
-
- CMMCScBkupIndexBase& indexPassive = footer.IndexByType( EMMCScBkupOwnerDataTypePassiveData );
- indexPassive.RestoreL( Driver() );
-
- CMMCScBkupIndexBase& indexActive = footer.IndexByType( EMMCScBkupOwnerDataTypeActiveData );
- indexActive.RestoreL( Driver() );
-
- CMMCScBkupIndexBase& indexPublic = footer.IndexByType( EMMCScBkupOwnerDataTypePublicData );
- indexPublic.RestoreL( Driver() );
-
- __LOG("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - all indicies restored");
-
- break;
- }
- default:
- User::Leave(KErrNotSupported);
- break;
- }
- }
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateArchiveOpArchiveHeader.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpArchiveHeader implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateArchiveOpArchiveHeader.h"
-
-// System includes
-#include <e32std.h>
-#include <s32strm.h>
-#include <s32mem.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupArchiveHeader.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveHeader::CMMCScBkupStateArchiveOpArchiveHeader()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpArchiveHeader::CMMCScBkupStateArchiveOpArchiveHeader( MMMCScBkupDriver& aDriver )
-: CMMCScBkupState( aDriver )
- {
- __LOG1("CMMCScBkupStateArchiveOpArchiveHeader::CMMCScBkupStateArchiveOpArchiveHeader() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveHeader::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpArchiveHeader* CMMCScBkupStateArchiveOpArchiveHeader::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateArchiveOpArchiveHeader* self = new(ELeave) CMMCScBkupStateArchiveOpArchiveHeader( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveHeader::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpArchiveHeader::StateId() const
- {
- return KMMCScBkupStateArchiveOpArchiveHeader;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveHeader::NextStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpArchiveHeader::NextStateId() const
- {
- TMMCScBkupStateId nextState = KMMCScBkupStateIdGetDataOwners;
- //
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- nextState = KMMCScBkupStateIdGetDataOwners;
- break;
- case EMMCScBkupOperationTypeFullRestore:
- nextState = KMMCScBkupStateIdArchiveOpArchiveFooter;
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- //
- return nextState;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveHeader::PerformStateInitL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpArchiveHeader::PerformStateInitL()
- {
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpArchiveHeader::PerformAsynchronousStateStepL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpArchiveHeader::PerformAsynchronousStateStepL()
- {
- CMMCScBkupArchive& archive = Driver().DrvArchive();
- CMMCScBkupArchiveHeader& header = archive.Header();
- //
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- header.StoreL(archive.Category());
-#ifdef RD_FILE_MANAGER_BACKUP
- // Activate crc-calculation for payload data. Header crc'd separately
- Driver().DrvADI().ADIActivateCrcCalculation(ETrue);
-#endif
- break;
- case EMMCScBkupOperationTypeFullRestore:
- header.RestoreL();
- break;
- default:
- User::Leave(KErrNotSupported);
- break;
- }
- }
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateArchiveOpDataOwners.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,272 +0,0 @@
-/*
-* Copyright (c) 2005-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: CMMCScBkupStateArchiveOpDataOwners implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateArchiveOpDataOwners.h"
-
-// System includes
-#include <e32std.h>
-#include <s32strm.h>
-#include <s32mem.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupArchive.h"
-#include "RMMCScBkupProgressSizer.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "CMMCScBkupIndexDataOwners.h"
-#include "MMMCScBkupProgressObserver.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::CMMCScBkupStateArchiveOpDataOwners()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpDataOwners::CMMCScBkupStateArchiveOpDataOwners( MMMCScBkupDriver& aDriver )
-: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
- {
- __LOG1("CMMCScBkupStateArchiveOpDataOwners::CMMCScBkupStateArchiveOpDataOwners() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::~CMMCScBkupStateArchiveOpDataOwners()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpDataOwners::~CMMCScBkupStateArchiveOpDataOwners()
- {
- Cancel();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpDataOwners* CMMCScBkupStateArchiveOpDataOwners::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateArchiveOpDataOwners* self = new(ELeave) CMMCScBkupStateArchiveOpDataOwners( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpDataOwners::StateId() const
- {
- return KMMCScBkupStateIdArchiveOpDataOwners;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::NextStateBackupId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpDataOwners::NextStateBackupId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdArchiveOpArchiveFooter;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::NextStateRestoreId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpDataOwners::NextStateRestoreId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdValidateDiskSpace;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::PerformStateInitBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpDataOwners::PerformStateInitBackupL( TBool /*aPartial*/ )
- {
- // Work is carried out inside asynchronous step
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::PerformStateInitRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpDataOwners::PerformStateInitRestoreL( TBool /*aPartial*/ )
- {
- // Restore each data owner asynchronously
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
- CMMCScBkupIndexBase& indexBase = footer.IndexByType(EMMCScBkupOwnerDataTypeDataOwner);
- CMMCScBkupIndexDataOwners& index = static_cast< CMMCScBkupIndexDataOwners& >( indexBase );
- const TInt count = dataOwners.Count();
- //
- if ( ++iIndexValueCurrent < count )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
-
- // Externalise
- MMMCScBkupArchiveDataInterface& archiveDataInterface = ADI();
- RWriteStream stream( archiveDataInterface.ADIWriteStreamUncompressedLC() );
- stream << owner;
- stream.CommitL();
- CleanupStack::PopAndDestroy(); // stream
-
-
- // Save the offset of the data owner
- const TMMCScBkupArchiveVector& info = archiveDataInterface.ADICurrentArchiveVectorInfo();
- index.AddIndexRecordL( info );
-
- // Now move on to the next data owner
- CompleteSelf();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
- CMMCScBkupIndexBase& indexBase = footer.IndexByType( EMMCScBkupOwnerDataTypeDataOwner );
- CMMCScBkupIndexDataOwners& index = static_cast< CMMCScBkupIndexDataOwners& >( indexBase );
- const TInt count = index.Count();
- __LOG1( "CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepRestoreL() - %d data owner index records...", count );
- //
- if ( ++iIndexValueCurrent < count )
- {
- const TMMCScBkupArchiveVector& entry = index.At( iIndexValueCurrent );
- __LOG3( "CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepRestoreL() - entry[%03d] at offset: 0x%08x, length: %4d", iIndexValueCurrent, entry.Offset(), entry.Length() );
-
- MMMCScBkupArchiveDataInterface& archiveDataInterface = ADI();
- RReadStream stream( archiveDataInterface.ADIReadStreamUncompressedLC( entry.Offset() ) );
-
- // Internalize a new entry and add it to the data owner collection
- CMMCScBkupDataOwnerInfo* dataOwner = CMMCScBkupDataOwnerInfo::NewLC( stream );
- dataOwners.AppendL( dataOwner );
- CleanupStack::Pop( dataOwner );
-
- // Tidy up & check that we didn't read too much - oops
- const TMMCScBkupArchiveVector& readInfo = archiveDataInterface.ADICurrentArchiveVectorInfo();
- if ( readInfo.Length() > entry.Length() )
- {
- __LOG( "CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepRestoreL() - ERROR - Read too much data! -> leave with KErrCorrupt" );
- User::Leave( KErrCorrupt );
- }
- CleanupStack::PopAndDestroy(); // stream
-
- // Continue to next entry
- CompleteSelf();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeDataOwner );
- index.StoreL( Driver() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsRestoreL( TBool /*aPartial*/ )
- {
- // Calculate restore byte size (for all drives)
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- const TInt64 totalDataRestoreSize = dataOwners.TotalOperationalSizeL();
-
- // Inform progress manager
- if(Driver().DrvLastCategory())
- {
- __LOG2("CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsRestoreL() - report progress understood (%Ld + %Ld)",
- totalDataRestoreSize, Driver().DrvTotalProgress());
- Driver().DrvProgressHandler().MMCScBkupHandleProgressDomainUnderstood( totalDataRestoreSize + Driver().DrvTotalProgress());
- }
- else
- {
- __LOG2("CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsRestoreL() - adding progress amount %Ld to existing %Ld)",
- totalDataRestoreSize, Driver().DrvTotalProgress());
- Driver().DrvStoreTotalProgress( totalDataRestoreSize );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousErrorCleanupRestore()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOGFILE1("CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
-
- // Just try to skip the data owner.
- CompleteSelf();
- return ETrue;
- }
-
-
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateArchiveOpJavaData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,548 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpJavaData implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateArchiveOpJavaData.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMCScBkupSBEUtils.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupIndexJavaData.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::CMMCScBkupStateArchiveOpJavaData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpJavaData::CMMCScBkupStateArchiveOpJavaData( MMMCScBkupDriver& aDriver )
-: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
- {
- __LOG1("CMMCScBkupStateArchiveOpJavaData::CMMCScBkupStateArchiveOpJavaData() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::~CMMCScBkupStateArchiveOpJavaData()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpJavaData::~CMMCScBkupStateArchiveOpJavaData()
- {
- Cancel();
- //
- delete iBackupTransferObjectMidlet;
- delete iBackupTransferObjectMidletData;
- delete iRestoreTransferObjectMidlet;
- delete iRestoreTransferObjectMidletData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpJavaData* CMMCScBkupStateArchiveOpJavaData::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateArchiveOpJavaData* self = new(ELeave) CMMCScBkupStateArchiveOpJavaData( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpJavaData::StateId() const
- {
- return KMMCScBkupStateIdArchiveOpJavaData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::NextStateBackupId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpJavaData::NextStateBackupId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdGetDataOwnerStatuses;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::NextStateRestoreId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpJavaData::NextStateRestoreId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdArchiveOpPassiveData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformStateInitBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformStateInitBackupL( TBool /*aPartial*/ )
- {
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformStateInitBackupL() - START" );
- __DEBUG_TESTING_SKIP_BACKUP_JAV_DATA;
-
- iBackupTransferObjectMidlet = CMMCScBkupWriteDataTransferRequest< TJavaTransferType >::NewL(
- Driver(),
- *this,
- EMMCScBkupOwnerDataTypeJavaData,
- EJavaTransferDerivedType,
- EJavaMIDlet
- );
-
- iBackupTransferObjectMidletData = CMMCScBkupWriteDataTransferRequest< TJavaTransferType >::NewL(
- Driver(),
- *this,
- EMMCScBkupOwnerDataTypePassiveData,
- EJavaTransferDerivedType,
- EJavaMIDletData
- );
-
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL( TBool /*aPartial*/ )
- {
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL() - START" );
- __DEBUG_TESTING_SKIP_RESTORE_JAV_DATA;
-
-
- iRestoreTransferObjectMidlet = CMMCScBkupReadDataTransferRequest< TJavaTransferType >::NewL(
- Driver(),
- EMMCScBkupOwnerDataTypeJavaData,
- EJavaMIDlet
- );
-
- iRestoreTransferObjectMidletData = CMMCScBkupReadDataTransferRequest< TJavaTransferType >::NewL(
- Driver(),
- EMMCScBkupOwnerDataTypePassiveData,
- EJavaMIDletData
- );
-
- CompleteSelf();
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL() - END" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
- {
- __LOG1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - START - iCurrentJavaState: %d", iCurrentJavaState );
-
- switch( iCurrentJavaState )
- {
- case EJavaStateIdle:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - EJavaStateIdle");
- BackupMidletL();
- break;
- case EJavaStateMidlet:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - EJavaStateMidlet");
- BackupMidletDataL();
- break;
- case EJavaStateMidletData:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - EJavaStateMidletData");
- iCurrentJavaState = EJavaStateIdle;
- CompleteSelf();
- break;
- default:
- break;
- }
-
- __LOG2("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - END - iCurrentJavaState: %d, IsActive: %d", iCurrentJavaState, IsActive() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
- {
- __LOG1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - START - iCurrentJavaState: %d", iCurrentJavaState );
-
- switch( iCurrentJavaState )
- {
- case EJavaStateIdle:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - EJavaStateIdle");
- RestoreMidletL();
- break;
- case EJavaStateMidlet:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - EJavaStateMidlet");
- RestoreMidletDataL();
- break;
- case EJavaStateMidletData:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - EJavaStateMidletData");
- iCurrentJavaState = EJavaStateIdle;
- CompleteSelf();
- break;
- default:
- break;
- }
-
- __LOG2("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - END - iCurrentJavaState: %d, IsActive: %d", iCurrentJavaState, IsActive() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOG1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup() - error: %d", aError );
-
- // Reset state and move to next item. Treat the current (badly behaving) item
- // as completed/processed.
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- if ( iIndexValueCurrent < dataOwners.Count() )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
- owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeJavaData, ETrue );
- iCurrentJavaState = EJavaStateIdle;
-
- __LOGFILE2("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d, SID: 0x%08x - JAVA data skipped for DO", aError, owner.SecureId().iId );
- }
-
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupRestore()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOGFILE1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
-
- iCurrentJavaState = EJavaStateIdle;
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousCancellation()
- {
- if (iBackupTransferObjectMidlet)
- {
- iBackupTransferObjectMidlet->Cancel();
- }
- if (iBackupTransferObjectMidletData)
- {
- iBackupTransferObjectMidletData->Cancel();
- }
- if (iRestoreTransferObjectMidlet)
- {
- iRestoreTransferObjectMidlet->Cancel();
- }
- if (iRestoreTransferObjectMidletData)
- {
- iRestoreTransferObjectMidletData->Cancel();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformLastRightsBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformLastRightsBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeJavaData );
- index.StoreL( Driver() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformLastRightsRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformLastRightsRestoreL( TBool /*aPartial*/ )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive )
- {
- CMMCScBkupIndexBase& indexBase = aFooter.IndexByType( EMMCScBkupOwnerDataTypeJavaData );
- CMMCScBkupIndexJavaData& index = static_cast< CMMCScBkupIndexJavaData& >( indexBase );
- //
- TJavaTransferType type = EJavaMIDlet;
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( aDataOwner.Owner().Identifier() );
- //
- if ( iCurrentJavaState == EJavaStateMidlet )
- {
- __LOG4("CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL() - hash: %S, aDrive: %c:, offset: %8d, length: %8d, type: EJavaMIDlet", hash, aDrive + 'A', aInfo.Offset(), aInfo.Length() );
- type = EJavaMIDlet;
- }
- else if ( iCurrentJavaState == EJavaStateMidletData )
- {
- __LOG4("CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL() - hash: %S, aDrive: %c:, offset: %8d, length: %8d, type: EJavaMIDletData", hash, aDrive + 'A', aInfo.Offset(), aInfo.Length() );
- type = EJavaMIDletData;
- }
- //
- index.AddIndexRecordL( aInfo, *hash, aDrive, type );
- CleanupStack::PopAndDestroy( hash );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::BackupMidletL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::BackupMidletL()
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- const TInt count = dataOwners.Count();
- //
- while ( ++iIndexValueCurrent < count )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
- //
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeJavaData ) == EFalse )
- {
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( owner.Owner().Identifier() );
- __LOG1("CMMCScBkupStateArchiveOpJavaData::BackupMidletL() - trying to get midlet for hash: %S", hash );
- CleanupStack::PopAndDestroy( hash );
-#endif
-
- iBackupTransferObjectMidlet->RequestL( owner,
- iStatus,
- Driver().DrvParamsBase().DriveAndOperations() );
- SetActive();
- iCurrentJavaState = EJavaStateMidlet;
-
- break; // while loop
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::BackupMidletDataL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::BackupMidletDataL()
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
-
- // We only need to request the midlet's passive data if it has a non-zero
- // size.
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypePassiveData ) == EFalse )
- {
- if ( owner.OperationalSize( EMMCScBkupOwnerDataTypePassiveData ) > 0 )
- {
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( owner.Owner().Identifier() );
- __LOG1("CMMCScBkupStateArchiveOpJavaData::BackupMidletDataL() - trying to get midlet data for hash: %S", hash );
- CleanupStack::PopAndDestroy( hash );
-#endif
-
- iBackupTransferObjectMidletData->RequestL( owner,
- iStatus,
- Driver().DrvParamsBase().DriveAndOperations() );
- SetActive();
- }
- else
- {
- CompleteSelf();
- }
- }
- else
- {
- CompleteSelf();
- }
-
- iCurrentJavaState = EJavaStateMidletData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::RestoreMidletL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::RestoreMidletL()
- {
- CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeJavaData );
- CMMCScBkupIndexJavaData& index = static_cast< CMMCScBkupIndexJavaData& >( indexBase );
-
- const TInt count = index.Count();
- __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - START - %d data owners...", count );
- //
- if ( ++iIndexValueCurrent < count )
- {
- __LOG2("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - getting java data index record [%03d/%03d]", iIndexValueCurrent, count);
- const CMMCScBkupIndexJavaDataEntry& entry = index.At( iIndexValueCurrent );
-
- // Get the associated data owner
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
-
- __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - trying to get data owner info for hash: %S", &entry.Hash() );
- CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Hash() );
-
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeJavaData ) == EFalse )
- {
- // Request all the java data (on all supported drives) for this
- // particular data owner
- __LOG3("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - trying to restore JAVA MIDLET for hash: %S [offset: %8d, length: %8d]", &entry.Hash(), entry.MidletInfo().Offset(), entry.MidletInfo().Length() );
-
- // Build restore entry list (will only contain one entry - the
- // reader API forces an array interface on us, so let's do ou best
- // to please it...)
- const TMMCScBkupArchiveDriveAndVector driveAndVector( entry.Drive(), entry.MidletInfo() );
- iRestoreEntries.Reset();
- iRestoreEntries.AppendL( driveAndVector );
-
- // Start the asynchronous restore op...
- iRestoreTransferObjectMidlet->RequestL( owner,
- iStatus,
- iRestoreEntries );
- SetActive();
- }
- else
- {
- CompleteSelf();
- }
-
- iCurrentJavaState = EJavaStateMidlet;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL()
- {
- CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeJavaData );
- CMMCScBkupIndexJavaData& index = static_cast< CMMCScBkupIndexJavaData& >( indexBase );
-
- const TInt count = index.Count();
- __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - START - %d data owners...", count );
- //
- if ( iIndexValueCurrent < count )
- {
- __LOG2("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - getting java data index record [%03d/%03d]", iIndexValueCurrent, count);
- const CMMCScBkupIndexJavaDataEntry& entry = index.At( iIndexValueCurrent );
-
- if ( entry.HasMidletDataInfo() )
- {
- // Get the associated data owner
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
-
- __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - trying to get data owner info for hash: %S", &entry.Hash() );
- CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Hash() );
-
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypePassiveData ) == EFalse )
- {
- // Request all the java data (on all supported drives) for this
- // particular data owner
- __LOG3("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - trying to restore JAVA MIDLET DATA for hash: %S [offset: %8d, length: %8d]", &entry.Hash(), entry.MidletDataInfo().Offset(), entry.MidletDataInfo().Length() );
-
- // Build restore entry list (will only contain one entry - the
- // reader API forces an array interface on us, so let's do ou best
- // to please it...)
- const TMMCScBkupArchiveDriveAndVector driveAndVector( entry.Drive(), entry.MidletDataInfo() );
- iRestoreEntries.Reset();
- iRestoreEntries.AppendL( driveAndVector );
-
- // Start the asynchronous restore op...
- iRestoreTransferObjectMidletData->RequestL( owner,
- iStatus,
- iRestoreEntries );
- SetActive();
- }
- else
- {
- CompleteSelf();
- }
- }
- else
- {
- CompleteSelf();
- }
- }
- else
- {
- CompleteSelf();
- }
-
- iCurrentJavaState = EJavaStateMidletData;
- }
-
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateArchiveOpPassiveData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpPassiveData implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateArchiveOpPassiveData.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMCScBkupSBEUtils.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "CMMCScBkupIndexWithIdentifier.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::CMMCScBkupStateArchiveOpPassiveData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpPassiveData::CMMCScBkupStateArchiveOpPassiveData( MMMCScBkupDriver& aDriver )
-: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
- {
- __LOG1("CMMCScBkupStateArchiveOpPassiveData::CMMCScBkupStateArchiveOpPassiveData() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::~CMMCScBkupStateArchiveOpPassiveData()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpPassiveData::~CMMCScBkupStateArchiveOpPassiveData()
- {
- Cancel();
- //
- delete iBackupTransferObject;
- delete iRestoreTransferObject;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpPassiveData* CMMCScBkupStateArchiveOpPassiveData::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateArchiveOpPassiveData* self = new(ELeave) CMMCScBkupStateArchiveOpPassiveData( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpPassiveData::StateId() const
- {
- return KMMCScBkupStateIdArchiveOpPassiveData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::NextStateBackupId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpPassiveData::NextStateBackupId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdArchiveOpDataOwners;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::NextStateRestoreId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpPassiveData::NextStateRestoreId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdGetDataOwnerStatuses;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::PerformStateInitBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPassiveData::PerformStateInitBackupL( TBool /*aPartial*/ )
- {
- __DEBUG_TESTING_SKIP_BACKUP_PAS_DATA;
-
- iBackupTransferObject = CMMCScBkupWriteDataTransferRequest<TTransferDataType>::NewL(
- Driver(),
- *this,
- EMMCScBkupOwnerDataTypePassiveData,
- ESIDTransferDerivedType,
- Driver().DrvParamsBase().PassiveTransferType()
- );
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::PerformStateInitRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPassiveData::PerformStateInitRestoreL( TBool /*aPartial*/ )
- {
- __DEBUG_TESTING_SKIP_RESTORE_PAS_DATA;
-
- iRestoreTransferObject = CMMCScBkupReadDataTransferRequest< TTransferDataType >::NewL(
- Driver(),
- EMMCScBkupOwnerDataTypePassiveData,
- Driver().DrvParamsBase().PassiveTransferType()
- );
-
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- const TInt count = dataOwners.Count();
- //
- while ( ++iIndexValueCurrent < count )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
- //
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypePassiveData ) == EFalse )
- {
- __LOG1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepBackupL() - trying to backup DO 0x%08x", owner.SecureId().iId );
-
- // Request all the passive data (on all supported drives) for this
- // particular data owner
- __ASSERT_ALWAYS( iBackupTransferObject->IsActive() == EFalse, User::Invariant() );
- //
- iBackupTransferObject->RequestL( owner,
- iStatus,
- Driver().DrvParamsBase().DriveAndOperations() );
- SetActive();
- break; // while loop
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypePassiveData );
- CMMCScBkupIndexWithIdentifier< TSecureId>& index = static_cast< CMMCScBkupIndexWithIdentifier<TSecureId>& >( indexBase );
- const TInt count = index.Count();
- //
- if ( ++iIndexValueCurrent < count )
- {
- const CMMCScBkupIndexEntry<TSecureId>& entry = index.At( iIndexValueCurrent );
- const RArray<TMMCScBkupArchiveDriveAndVector>& subEntries = entry.Entries();
-
- // Get the associated data owner
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Identifier() );
-
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypePassiveData ) == EFalse )
- {
- __LOG1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepRestoreL() - trying to restore DO 0x%08x", owner.SecureId().iId );
-
-
- // Request all the registration data (on all supported drives) for this
- // particular data owner
- __ASSERT_ALWAYS( iRestoreTransferObject->IsActive() == EFalse, User::Invariant() );
- //
- __LOG1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepRestoreL() - trying to restore PASSIVE DATA for SID: 0x%08x", owner.SecureId().iId );
- //
- iRestoreTransferObject->RequestL( owner,
- iStatus,
- subEntries );
- SetActive();
- }
- else
- {
- CompleteSelf();
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupBackup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOG1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d", aError );
-
- // Reset state and move to next item. Treat the current (badly behaving) item
- // as completed/processed.
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- if ( iIndexValueCurrent < dataOwners.Count() )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
- owner.SetCompletionStatus( EMMCScBkupOwnerDataTypePassiveData, ETrue );
-
- __LOGFILE1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupBackup() - **** - PASSIVE data skipped for SID: 0x%08x", owner.SecureId().iId );
- }
-
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupRestore()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOGFILE1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
-
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousCancellation()
- {
- if (iBackupTransferObject)
- {
- iBackupTransferObject->Cancel();
- }
- if (iRestoreTransferObject)
- {
- iRestoreTransferObject->Cancel();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::PerformLastRightsBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPassiveData::PerformLastRightsBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType(EMMCScBkupOwnerDataTypePassiveData);
- index.StoreL(Driver());
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPassiveData::AddIndexRecordL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPassiveData::AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive )
- {
- CMMCScBkupIndexBase& indexBase = aFooter.IndexByType( EMMCScBkupOwnerDataTypePassiveData );
- CMMCScBkupIndexWithIdentifier< TSecureId>& index = static_cast< CMMCScBkupIndexWithIdentifier< TSecureId>& >( indexBase );
- //
- index.AddIndexRecordL( aInfo, aDrive, aDataOwner.SecureId() );
- __LOG3("CMMCScBkupStateArchiveOpPassiveData::AddIndexRecordL() - offset: %6d, length: %6d, secureId: 0x%08x", aInfo.Offset(), aInfo.Length(), aDataOwner.SecureId().iId );
- }
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateArchiveOpPublicDataFiles.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,443 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpPublicDataFiles implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateArchiveOpPublicDataFiles.h"
-
-// System includes
-#include <e32std.h>
-#include <s32strm.h>
-#include <s32mem.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMCScBkupConfig.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupIndexPublicDataFiles.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-#include "CMMCScBkupFileInfo.h"
-#include "CMMCScBkupFileListCollection.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "MMCScBkupOperations.h"
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::CMMCScBkupStateArchiveOpPublicDataFiles()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpPublicDataFiles::CMMCScBkupStateArchiveOpPublicDataFiles( MMMCScBkupDriver& aDriver )
-: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
- {
- __LOG1("CMMCScBkupStateArchiveOpPublicDataFiles::CMMCScBkupStateArchiveOpPublicDataFiles() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpPublicDataFiles* CMMCScBkupStateArchiveOpPublicDataFiles::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateArchiveOpPublicDataFiles* self = new(ELeave) CMMCScBkupStateArchiveOpPublicDataFiles( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpPublicDataFiles::StateId() const
- {
- return KMMCScBkupStateIdArchiveOpPublicDataFiles;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::NextStateBackupId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpPublicDataFiles::NextStateBackupId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdArchiveOpSystemData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::NextStateRestoreId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpPublicDataFiles::NextStateRestoreId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdOperationComplete;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::PerformStateInitBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::PerformStateInitBackupL( TBool /*aPartial*/ )
- {
- __DEBUG_TESTING_SKIP_BACKUP_PUB_DATA;
-
- CompleteSelf();
- SetState( EStateCommonKickOff );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::PerformStateInitRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::PerformStateInitRestoreL( TBool /*aPartial*/ )
- {
- __DEBUG_TESTING_SKIP_RESTORE_PUB_DATA;
-
- CompleteSelf();
- SetState( EStateCommonKickOff );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousStateStepBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
- {
- const TState justFinishedExecutingState = State();
- //
- switch( justFinishedExecutingState )
- {
- case EStateCommonKickOff:
- CompressingAndWritingFileL();
- break;
- case EStateCommonProcessingFile:
- AddIndexRecordL();
- break;
- case EStateBackupAddIndexRecord:
- SetState( EStateCommonKickOff );
- CompleteSelf();
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousStateStepRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
- {
- const TState justFinishedExecutingState = State();
- //
- switch( justFinishedExecutingState )
- {
- case EStateCommonKickOff:
- DecompressingAndWritingFileL();
- break;
- case EStateCommonProcessingFile:
- RestoreFileAttributesL();
- break;
- case EStateRestoreResetAttributes:
- SetState( EStateCommonKickOff );
- CompleteSelf();
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupBackup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOG1("CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupBackup() - **** - error: %d", aError );
- TBool continueProcessing = ETrue;
-
- // Reset state and move to next item. Treat the current (badly behaving) item
- // as completed/processed.
- const CMMCScBkupFileListCollection& fileList = Driver().DrvFileList();
- if ( iIndexValueCurrent < fileList.Count() )
- {
- const CMMCScBkupFileInfo& fileInfo = fileList.Entry(iIndexValueCurrent);
- (void) fileInfo;
-
- __LOGFILE2("CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupBackup() - **** - error: %d, file: %S - public data skipped", aError, &fileInfo.FileName());
-
- // Ensures that asynchronous state step is called again..
- CompleteSelf();
- SetState( EStateCommonKickOff );
- }
-
- return continueProcessing;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupRestore()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOG1("CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
- TBool continueProcessing = ETrue;
-
- CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
- CMMCScBkupIndexPublicDataFiles& index = static_cast<CMMCScBkupIndexPublicDataFiles&>( footer.IndexByType( EMMCScBkupOwnerDataTypePublicData ) );
- const TInt count = index.Count();
- //
- if ( iIndexValueCurrent < count )
- {
- // Get the entry to restore
- TMMCScBkupArchiveVector entryInfo;
- const CMMCScBkupFileInfo& fileInfo = index.At( iIndexValueCurrent, entryInfo );
- (void) fileInfo;
-
- __LOGFILE2("CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupRestore() - **** - error: %d, file: %S - public data skipped", aError, &fileInfo.FileName());
-
- // Try to restore the next public file
- //SetState( EStateCommonKickOff );
- SetState( EStateCommonProcessingFile );
- CompleteSelf();
- }
-
- return continueProcessing;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousCancellation()
- {
- switch( State() )
- {
- case EStateCommonProcessingFile:
- // Asynchronous request issued to ADI.
- Driver().DrvADI().ADIAsynchronousCancel();
- break;
-
- case EStateCommonKickOff:
- case EStateBackupAddIndexRecord:
- case EStateRestoreResetAttributes:
- // Other states complete this objects own request status => no action
- // needed.
- break;
-
- default:
- case EStateCommonIdle:
- ASSERT( EFalse );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::PerformLastRightsBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::PerformLastRightsBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypePublicData );
- index.StoreL( Driver() );
-
- Driver().DrvADI().ADIResetResources(EMMCScBkupOperationTypeFullBackup);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::PerformLastRightsRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::PerformLastRightsRestoreL( TBool /*aPartial*/ )
- {
- Driver().DrvADI().ADIResetResources(EMMCScBkupOperationTypeFullRestore);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::CompressingAndWritingFileL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::CompressingAndWritingFileL()
- {
- const CMMCScBkupFileListCollection& fileList = Driver().DrvFileList();
- const TInt count = fileList.Count();
- //
- if ( ++iIndexValueCurrent < count )
- {
- const CMMCScBkupFileInfo& fileInfo = fileList.Entry(iIndexValueCurrent);
-
- __LOG1("CMMCScBkupStateArchiveOpPublicDataFiles::CompressingAndWritingFileL() - BACKUP - compressing file: %S", &fileInfo.FileName());
-
- // Compress the file & externalise it to the archive
- Driver().DrvADI().ADIWriteFileL( fileInfo.FileName(), iStatus );
-
- // Indicate the state we are in
- SetActive();
- SetState( EStateCommonProcessingFile );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::DecompressingAndWritingFileL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::DecompressingAndWritingFileL()
- {
- CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
- CMMCScBkupIndexPublicDataFiles& index = static_cast<CMMCScBkupIndexPublicDataFiles&>( footer.IndexByType( EMMCScBkupOwnerDataTypePublicData ) );
- const TInt count = index.Count();
- //
- if ( ++iIndexValueCurrent < count )
- {
- // Get the entry to restore
- TMMCScBkupArchiveVector entryInfo;
- const CMMCScBkupFileInfo& fileInfo = index.At( iIndexValueCurrent, entryInfo );
-
- __LOG3("CMMCScBkupStateArchiveOpPublicDataFiles::DecompressingAndWritingFileL() - RESTORE - decompressing file: %S, offset: %8d, length: %8d", &fileInfo.FileName(), entryInfo.Offset(), entryInfo.Length());
-
- // Restore it!
- Driver().DrvADI().ADIReadFileL( fileInfo.FileName(), entryInfo, iStatus );
-
- // Indicate the state we are in
- SetActive();
- SetState( EStateCommonProcessingFile );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::AddIndexRecordL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::AddIndexRecordL()
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
- CMMCScBkupIndexPublicDataFiles& index = static_cast<CMMCScBkupIndexPublicDataFiles&>(footer.IndexByType(EMMCScBkupOwnerDataTypePublicData));
- const CMMCScBkupFileListCollection& fileList = Driver().DrvFileList();
- const CMMCScBkupFileInfo& fileInfo = fileList.Entry(iIndexValueCurrent);
-
- // Save the offset of the data owner
- const TMMCScBkupArchiveVector& info = Driver().DrvADI().ADICurrentArchiveVectorInfo();
- index.AddIndexRecordL( info, fileInfo );
-
- // And update the file info so that we can know how much compressed
- // data must be read during restore. This allows us to report accurate
- // progress info. See CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL()
- // for the point when the public data size is zeroed.
-
- // First, find the associated data owner.
- CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( fileInfo.SecureId() );
-
- __LOG3("CMMCScBkupStateArchiveOpPublicDataFiles::AddIndexRecordL() - offset: %6d, length: %6d, file: %S", info.Offset(), info.Length(), &fileInfo.FileName());
-
- // Indicate the state we are in
- SetState( EStateBackupAddIndexRecord );
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpPublicDataFiles::RestoreFileAttributesL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpPublicDataFiles::RestoreFileAttributesL()
- {
- RFs& fsSession = Driver().DrvADI().ADIFsSession();
- CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
- CMMCScBkupIndexPublicDataFiles& index = static_cast<CMMCScBkupIndexPublicDataFiles&>( footer.IndexByType( EMMCScBkupOwnerDataTypePublicData ) );
-
- // Get the entry who's attributes need restoring
- TMMCScBkupArchiveVector entryInfo;
- const CMMCScBkupFileInfo& fileInfo = index.At( iIndexValueCurrent, entryInfo );
-
- // If file is in Photo Album Thumbnail folder
- // or file in videocenter folder and its subfolders
- if ( fileInfo.FileName().MatchF( KMMCScBkupMediaGalleryThumbnailFolder ) != KErrNotFound )
- {
- // Get folder path length
- const TChar backslash('\\');
- const TInt pathlength = fileInfo.FileName().LocateReverseF( backslash ) + 1;
-
- // Set hidden attribute for Thumbnail folder.
- // If folder does not exist, create it
- fsSession.SetAtt( fileInfo.FileName().Left( pathlength ), KEntryAttHidden, KEntryAttNormal );
- }
-
- if ( fileInfo.FileName().MatchF( KMMCScBkupVideoCenterFolder ) != KErrNotFound)
- {
- // Get folder path length
- const TChar backslash('\\');
- const TInt pathlength = fileInfo.FileName().LocateReverseF( backslash ) + 1;
-
- // Set hidden attribute for the video center's sub folder.
- // If foler does not exist, create it
- fsSession.SetAtt( fileInfo.FileName().Left( pathlength ), KEntryAttHidden, KEntryAttNormal );
-
- //Manually set the videocenter main folder to be hidden
- fsSession.SetAtt( KMMCScBkupVideoCenterFolderPath, KEntryAttHidden, KEntryAttNormal );
- }
- // Set the original attributes, clear the others
- const TInt error = fsSession.SetEntry( fileInfo.FileName(),
- fileInfo.DateTime(),
- fileInfo.Attributes(),
- !fileInfo.Attributes() );
-
- (void) error;
-
-
- // Indicate the state we are in
- SetState( EStateRestoreResetAttributes );
- CompleteSelf();
- }
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateArchiveOpSystemData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpSystemData implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateArchiveOpSystemData.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMCScBkupSBEUtils.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupIndexWithIdentifier.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::CMMCScBkupStateArchiveOpSystemData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpSystemData::CMMCScBkupStateArchiveOpSystemData( MMMCScBkupDriver& aDriver )
-: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
- {
- __LOG1("CMMCScBkupStateArchiveOpSystemData::CMMCScBkupStateArchiveOpSystemData() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::~CMMCScBkupStateArchiveOpSystemData()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpSystemData::~CMMCScBkupStateArchiveOpSystemData()
- {
- Cancel();
- //
- delete iBackupTransferObject;
- delete iRestoreTransferObject;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpSystemData* CMMCScBkupStateArchiveOpSystemData::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateArchiveOpSystemData* self = new(ELeave) CMMCScBkupStateArchiveOpSystemData( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpSystemData::StateId() const
- {
- return KMMCScBkupStateIdArchiveOpSystemData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::NextStateBackupId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpSystemData::NextStateBackupId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdArchiveOpJavaData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::NextStateRestoreId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpSystemData::NextStateRestoreId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdArchiveOpJavaData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformStateInitBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformStateInitBackupL( TBool /*aPartial*/ )
- {
- __DEBUG_TESTING_SKIP_BACKUP_SYS_DATA;
-
- iBackupTransferObject = CMMCScBkupWriteDataTransferRequest< TPackageDataType >::NewL(
- Driver(),
- *this,
- EMMCScBkupOwnerDataTypeSystemData,
- EPackageTransferDerivedType,
- ESystemData
- );
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL( TBool /*aPartial*/ )
- {
- __LOG("CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL() - START" );
- __DEBUG_TESTING_SKIP_RESTORE_SYS_DATA;
-
- iRestoreTransferObject = CMMCScBkupReadDataTransferRequest< TPackageDataType >::NewL(
- Driver(),
- EMMCScBkupOwnerDataTypeSystemData,
- ESystemData
- );
-
- CompleteSelf();
- __LOG("CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL() - END" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- const TInt count = dataOwners.Count();
- //
- while ( ++iIndexValueCurrent < count )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
- //
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeSystemData ) == EFalse )
- {
- // Request all the system data (on all supported drives) for this
- // particular data owner
- __ASSERT_ALWAYS( iBackupTransferObject->IsActive() == EFalse, User::Invariant() );
- iBackupTransferObject->RequestL( owner,
- iStatus,
- Driver().DrvParamsBase().DriveAndOperations() );
- SetActive();
- break; // while loop
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeSystemData );
- CMMCScBkupIndexWithIdentifier< TInt32 >& index = static_cast< CMMCScBkupIndexWithIdentifier< TInt32 >& >( indexBase );
- const TInt count = index.Count();
- __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - START - %d data owners...", count );
- //
- if ( ++iIndexValueCurrent < count )
- {
- __LOG2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - getting system data index record [%03d/%03d]", iIndexValueCurrent + 1, count);
- const CMMCScBkupIndexEntry< TInt32 >& entry = index.At( iIndexValueCurrent );
- iSecureId = entry.Identifier();
-
- __LOG("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - getting sub-entries for index record...");
- const RArray< TMMCScBkupArchiveDriveAndVector >& subEntries = entry.Entries();
- __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - got %d sub-entries for index record", subEntries.Count());
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- for(TInt i=0; i<subEntries.Count(); i++)
- {
- const TMMCScBkupArchiveDriveAndVector& item = subEntries[i];
- __LOG4("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - subentry[%2d] = %c:\\ [Offset: %8d, Length: %d] ", i, item.iDrive + 'A', item.iVector.Offset(), item.iVector.Length() );
- }
-#endif
-
- // Get the associated data owner
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
-
- __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - trying to supply system data for SID: 0x%08x", entry.Identifier() );
-
- // The owner in question should be a package type object.
- CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Identifier() );
-
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeSystemData ) == EFalse )
- {
- // The owner in question should be a package type object.
- const TSBDerivedType ownersDerivedType = owner.Owner().Identifier().DerivedTypeL();
- __ASSERT_ALWAYS( ownersDerivedType == EPackageDerivedType || ownersDerivedType == EPackageTransferDerivedType, User::Invariant() );
-
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- const TUid packageUid = MMCScBkupSBEUtils::PackageIdFromGenericL( owner.Owner().Identifier() );
- __LOG2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - trying to restore SYSTEM DATA for SID: 0x%08x, packageUID: 0x%08x", entry.Identifier(), packageUid.iUid );
-#endif
-
- // Safety check
- __ASSERT_ALWAYS( iRestoreTransferObject->IsActive() == EFalse, User::Invariant() );
-
- // Request all the system data (on all supported drives) for this
- // particular data owner
- iRestoreTransferObject->RequestL( owner,
- iStatus,
- subEntries );
- SetActive();
- }
- else
- {
- CompleteSelf();
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup() - error: %d", aError );
-
- // Reset state and move to next item. Treat the current (badly behaving) item
- // as completed/processed.
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- if ( iIndexValueCurrent < dataOwners.Count() )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
- owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeSystemData, ETrue );
-
- __LOGFILE2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d, SID: 0x%08x - system data skipped for DO", aError, owner.SecureId().iId );
- }
-
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOGFILE1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
-
- // If system data restore phase returns "not supported", let's treat it as
- // such an error, that other data types for this data owner are not
- // allowed to restore either.
-
- if( aError == KErrNotSupported || aError == KErrAlreadyExists )
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- CMMCScBkupDataOwnerInfo* owner = NULL;
- TRAPD( err, owner = &dataOwners.OwnerL( iSecureId ) );
- if( err == KErrNone && owner )
- {
- owner->SetCompletionStatus( EMMCScBkupOwnerDataTypeJavaData, ETrue );
- owner->SetCompletionStatus( EMMCScBkupOwnerDataTypePublicData, ETrue );
- owner->SetCompletionStatus( EMMCScBkupOwnerDataTypeSystemData, ETrue );
- owner->SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
- owner->SetCompletionStatus( EMMCScBkupOwnerDataTypePassiveData, ETrue );
-
- __LOGFILE2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d, SID: 0x%08x - all data types skipped for DO", aError, owner->SecureId().iId );
- }
- }
-
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousCancellation()
- {
- if (iBackupTransferObject)
- {
- iBackupTransferObject->Cancel();
- }
- if (iRestoreTransferObject)
- {
- iRestoreTransferObject->Cancel();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformLastRightsBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformLastRightsBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeSystemData );
- index.StoreL( Driver() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformLastRightsRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformLastRightsRestoreL( TBool /*aPartial*/ )
- {
- Driver().DrvSecureBackupClient().AllSystemFilesRestored();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::AddIndexRecordL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive )
- {
- CMMCScBkupIndexBase& indexBase = aFooter.IndexByType( EMMCScBkupOwnerDataTypeSystemData );
- CMMCScBkupIndexWithIdentifier< TInt32 >& index = static_cast< CMMCScBkupIndexWithIdentifier< TInt32 >& >( indexBase );
- index.AddIndexRecordL( aInfo, aDrive, aDataOwner.SecureId().iId );
- }
-
-
-
-
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateFactory.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,332 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateFactory implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateFactory.h"
-
-// System includes
-#include <e32err.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupStateGetDataOwners.h"
-#include "CMMCScBkupStateSetPhoneMode.h"
-#include "CMMCScBkupStateRequestSizeOfBackupData.h"
-#include "CMMCScBkupStateRequestListOfPublicFiles.h"
-#include "CMMCScBkupStateGetDataOwnerStatuses.h"
-#include "CMMCScBkupStateNotifyAllSnapshotsSupplied.h"
-//
-#include "CMMCScBkupStateArchiveOpSystemData.h"
-#include "CMMCScBkupStateArchiveOpDataOwners.h"
-#include "CMMCScBkupStateArchiveOpPublicDataFiles.h"
-#include "CMMCScBkupStateArchiveOpActiveData.h"
-#include "CMMCScBkupStateArchiveOpJavaData.h"
-#include "CMMCScBkupStateArchiveOpPassiveData.h"
-#include "CMMCScBkupStateArchiveOpArchiveHeader.h"
-#include "CMMCScBkupStateArchiveOpArchiveFooter.h"
-#include "CMMCScBkupStateValidateDiskSpace.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateFactory::CMMCScBkupStateFactory()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateFactory::CMMCScBkupStateFactory()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateFactory::FactoryByOperationTypeLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateFactory* CMMCScBkupStateFactory::FactoryByOperationTypeLC( TMMCScBkupOperationType aOperationType )
- {
- CMMCScBkupStateFactory* factory = NULL;
- //
- switch(aOperationType)
- {
- case EMMCScBkupOperationTypeFullBackup:
- factory = CMMCScBkupStateFactoryBackup::NewL();
- break;
- case EMMCScBkupOperationTypeFullRestore:
- factory = CMMCScBkupStateFactoryRestore::NewL();
- break;
- case EMMCScBkupOperationTypePartialBackup:
- case EMMCScBkupOperationTypePartialRestore:
- default:
- __ASSERT_ALWAYS(EFalse, User::Invariant());
- break;
- }
- //
- CleanupStack::PushL(factory);
- return factory;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateFactoryBackup::CMMCScBkupStateFactoryBackup()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateFactoryBackup::CMMCScBkupStateFactoryBackup()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateFactoryBackup::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateFactoryBackup* CMMCScBkupStateFactoryBackup::NewL()
- {
- CMMCScBkupStateFactoryBackup* self = new(ELeave) CMMCScBkupStateFactoryBackup();
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateFactoryBackup::GetStateLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupState* CMMCScBkupStateFactoryBackup::GetStateLC( TMMCScBkupStateId aRequiredType, MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupState* state = NULL;
- //
- switch(aRequiredType.iUid)
- {
- case KMMCScBkupStateIdValueArchiveOpArchiveHeader:
- state = CMMCScBkupStateArchiveOpArchiveHeader::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueGetDataOwners:
- state = CMMCScBkupStateGetDataOwners::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueSetPhoneMode:
- state = CMMCScBkupStateSetPhoneMode::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueNotifyAllSnapshotsSupplied:
- state = CMMCScBkupStateNotifyAllSnapshotsSupplied::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueRequestSizeOfBackupData:
- state = CMMCScBkupStateRequestSizeOfBackupData::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpDataOwners:
- state = CMMCScBkupStateArchiveOpDataOwners::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueRequestListOfPublicFiles:
- state = CMMCScBkupStateRequestListOfPublicFiles::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpPublicDataFiles:
- state = CMMCScBkupStateArchiveOpPublicDataFiles::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpSystemData:
- state = CMMCScBkupStateArchiveOpSystemData::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpJavaData:
- state = CMMCScBkupStateArchiveOpJavaData::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueGetDataOwnerStatuses:
- state = CMMCScBkupStateGetDataOwnerStatuses::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpActiveData:
- state = CMMCScBkupStateArchiveOpActiveData::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpPassiveData:
- state = CMMCScBkupStateArchiveOpPassiveData::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpArchiveFooter:
- state = CMMCScBkupStateArchiveOpArchiveFooter::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueValidateDiskSpace:
- state = CMMCScBkupStateValidateDiskSpace::NewL( aDriver );
- break;
- default:
- case KMMCScBkupStateIdValueSupplyDataSnapshots:
- ASSERT( EFalse );
- User::Leave(KErrNotSupported);
- break;
- }
- //
- CleanupStack::PushL(state);
- return state;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateFactoryRestore::CMMCScBkupStateFactoryRestore()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateFactoryRestore::CMMCScBkupStateFactoryRestore()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateFactoryRestore::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateFactoryRestore* CMMCScBkupStateFactoryRestore::NewL()
- {
- CMMCScBkupStateFactoryRestore* self = new(ELeave) CMMCScBkupStateFactoryRestore();
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateFactoryRestore::GetStateLC()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupState* CMMCScBkupStateFactoryRestore::GetStateLC( TMMCScBkupStateId aRequiredType, MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupState* state = NULL;
- //
- switch(aRequiredType.iUid)
- {
- case KMMCScBkupStateIdValueArchiveOpArchiveHeader:
- state = CMMCScBkupStateArchiveOpArchiveHeader::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpArchiveFooter:
- state = CMMCScBkupStateArchiveOpArchiveFooter::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpDataOwners:
- state = CMMCScBkupStateArchiveOpDataOwners::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueSetPhoneMode:
- state = CMMCScBkupStateSetPhoneMode::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpSystemData:
- state = CMMCScBkupStateArchiveOpSystemData::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueNotifyAllSnapshotsSupplied:
- state = CMMCScBkupStateNotifyAllSnapshotsSupplied::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpJavaData:
- state = CMMCScBkupStateArchiveOpJavaData::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpPassiveData:
- state = CMMCScBkupStateArchiveOpPassiveData::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueGetDataOwnerStatuses:
- state = CMMCScBkupStateGetDataOwnerStatuses::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpActiveData:
- state = CMMCScBkupStateArchiveOpActiveData::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueArchiveOpPublicDataFiles:
- state = CMMCScBkupStateArchiveOpPublicDataFiles::NewL( aDriver );
- break;
- case KMMCScBkupStateIdValueValidateDiskSpace:
- state = CMMCScBkupStateValidateDiskSpace::NewL( aDriver );
- break;
- default:
- ASSERT( EFalse );
- User::Leave(KErrNotSupported);
- break;
- }
- //
- CleanupStack::PushL(state);
- return state;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateGetDataOwnerStatuses.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateGetDataOwnerStatuses implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateGetDataOwnerStatuses.h"
-
-// System includes
-#include <e32std.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwnerStatuses::CMMCScBkupStateGetDataOwnerStatuses()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateGetDataOwnerStatuses::CMMCScBkupStateGetDataOwnerStatuses( MMMCScBkupDriver& aDriver )
-: CMMCScBkupState( aDriver )
- {
- __LOG1("CMMCScBkupStateGetDataOwnerStatuses::CMMCScBkupStateGetDataOwnerStatuses() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwnerStatuses::~CMMCScBkupStateGetDataOwnerStatuses()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateGetDataOwnerStatuses::~CMMCScBkupStateGetDataOwnerStatuses()
- {
- Cancel();
- //
- iStatusArray.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwnerStatuses::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateGetDataOwnerStatuses* CMMCScBkupStateGetDataOwnerStatuses::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateGetDataOwnerStatuses* self = new(ELeave) CMMCScBkupStateGetDataOwnerStatuses( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwnerStatuses::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateGetDataOwnerStatuses::StateId() const
- {
- return KMMCScBkupStateIdGetDataOwnerStatuses;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwnerStatuses::NextStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateGetDataOwnerStatuses::NextStateId() const
- {
- return KMMCScBkupStateIdArchiveOpActiveData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwnerStatuses::PerformStateInitL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateGetDataOwnerStatuses::PerformStateInitL()
- {
- SetState( EPrearingQuery );
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwnerStatuses::PerformAsynchronousStateStepL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateGetDataOwnerStatuses::PerformAsynchronousStateStepL()
- {
- switch( State() )
- {
- case EPrearingQuery:
- PrepareQueryL();
- break;
- case EGettingStatus:
- Driver().DrvSecureBackupClient().SIDStatusL( iStatusArray );
- SetState( EProcessingResults );
- CompleteSelf();
- break;
- case EProcessingResults:
- ProcessStatusResultsL();
- break;
- default:
- ASSERT( EFalse );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwnerStatuses::PrepareQueryL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateGetDataOwnerStatuses::PrepareQueryL()
- {
- const TDataOwnerStatus KMMCScBkupDefaultOwnerStatus = EUnset;
- const TInt KMMCScBkupDefaultOwnerStatusError = 0;
-
- // Build an array of all of the active data owners that we require
- // the statuses for.
- CMMCScBkupDataOwnerCollection& ownerCollection = Driver().DrvDataOwners();
- const TInt count = ownerCollection.Count();
- for(TInt i=0; i<count; i++)
- {
- CMMCScBkupDataOwnerInfo& owner = ownerCollection.Owner(i);
- //
- if (owner.Owner().CommonSettings() & EActiveBUR)
- {
- const TDataOwnerAndStatus ownerStatus(
- owner.SecureId(),
- KMMCScBkupDefaultOwnerStatus,
- KMMCScBkupDefaultOwnerStatusError);
- iStatusArray.AppendL( ownerStatus );
- __LOG1("CMMCScBkupStateGetDataOwnerStatuses::PrepareQueryL() - DO 0x%08x *is* active", owner.SecureId().iId );
- }
- else
- {
- __LOG1("CMMCScBkupStateGetDataOwnerStatuses::PrepareQueryL() - DO 0x%08x is not active", owner.SecureId().iId );
- }
- }
-
- SetState( EGettingStatus );
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwnerStatuses::ProcessStatusResultsL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateGetDataOwnerStatuses::ProcessStatusResultsL()
- {
- CMMCScBkupDataOwnerCollection& ownerCollection = Driver().DrvDataOwners();
- const TInt count = iStatusArray.Count();
- __LOG1("CMMCScBkupStateGetDataOwnerStatuses::ProcessStatusResultsL() - received %d entries from SBE...", count );
- for(TInt i=0; i<count; i++)
- {
- const TDataOwnerAndStatus& ownerStatus = iStatusArray[i];
- __LOG4("CMMCScBkupStateGetDataOwnerStatuses::ProcessStatusResultsL() - ownerStatus[%3d] sid: 0x%08x, status: %d, err: %d",
- i, ownerStatus.iSID.iId, ownerStatus.iStatus, ownerStatus.iDataOwnerError );
- //
- CMMCScBkupDataOwnerInfo* owner = NULL;
- TRAPD(err, owner = &ownerCollection.OwnerL( ownerStatus.iSID ));
- if (err == KErrNone && owner)
- {
- owner->SetStatus( ownerStatus.iStatus );
- }
- }
- }
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateGetDataOwners.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateGetDataOwners implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateGetDataOwners.h"
-
-#include <bldvariant.hrh>
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "MMCScBkupSBEUtils.h"
-
-// Constants
-const TInt KMMCScBkupDataOwnerGranularity = 20;
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwners::CMMCScBkupStateGetDataOwners()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateGetDataOwners::CMMCScBkupStateGetDataOwners( MMMCScBkupDriver& aDriver )
-: CMMCScBkupState( aDriver )
- {
- __LOG1("CMMCScBkupStateGetDataOwners::CMMCScBkupStateGetDataOwners() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwners::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateGetDataOwners* CMMCScBkupStateGetDataOwners::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateGetDataOwners* self = new(ELeave) CMMCScBkupStateGetDataOwners( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwners::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateGetDataOwners::StateId() const
- {
- return KMMCScBkupStateIdGetDataOwners;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwners::NextStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateGetDataOwners::NextStateId() const
- {
- // This is the same for backup & restore
- return KMMCScBkupStateIdSetPhoneMode;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwners::PerformStateInitL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateGetDataOwners::PerformStateInitL()
- {
- // Query asynchronously
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL()
- {
- RMMCScBkupPointerArray<CDataOwnerInfo> dataOwners(KMMCScBkupDataOwnerGranularity);
- CleanupClosePushL( dataOwners );
-
- // Get data owner listing from secure backup engine
- Driver().DrvSecureBackupClient().ListOfDataOwnersL(dataOwners);
-
- // Inform driver of result
-#ifdef RD_FILE_MANAGER_BACKUP
- RPointerArray<CMMCScBkupDataOwnerCollection>& dataOwnerLists = Driver().DrvDataOwnersAll();
- TInt count = dataOwners.Count();
-
- // Construct an info array to get introduced for every category
- for(TInt i = count-1; i >= 0; i--)
- {
- // Ownership is immediately transferred to the backup owner info object
- // so we should remove it from the array prior to passing into NewLC
- conn::CDataOwnerInfo* sbDataOwner = dataOwners[i];
-
- dataOwners.Remove( i ); // Ensures it won't be deleted twice
-
- const TSBDerivedType type = sbDataOwner->Identifier().DerivedTypeL();
- if ( type == EJavaDerivedType || type == EJavaTransferDerivedType )
- {
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( sbDataOwner->Identifier() );
- __LOG1("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - Assigning java owner with hash %S for categories",
- hash );
- CleanupStack::PopAndDestroy( hash );
- }
- else
- {
- __LOG1("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - Assigning data owner 0x%08x for categories",
- MMCScBkupSBEUtils::SecureIdFromGenericL( sbDataOwner->Identifier() ).iId );
- }
-
- // We have to create copy of original data owner for each category, so we have to externalize it
- RPointerArray<CDataOwnerInfo> sbDataOwnerCopies(dataOwnerLists.Count());
- CleanupClosePushL( sbDataOwnerCopies );
- HBufC8* dataOwner = sbDataOwner->ExternaliseL();
- CleanupStack::PushL( dataOwner );
- // Delete original data owner instance
- delete sbDataOwner;
-
- // Create copies for each category (even if they do not eventually end up to those lists)
- for(TInt j = 0; j < dataOwnerLists.Count(); j++)
- {
- conn::CDataOwnerInfo* sbDataOwnerCopy = conn::CDataOwnerInfo::NewL(*dataOwner);
- CleanupStack::PushL( sbDataOwnerCopy );
- sbDataOwnerCopies.AppendL(sbDataOwnerCopy);
- CleanupStack::Pop( sbDataOwnerCopy );
- }
- CleanupStack::PopAndDestroy( dataOwner );
-
- // Loop through all lists and assign copied data owners there
- for(TInt j = 0; j < dataOwnerLists.Count(); j++)
- {
- // Again we have to create instances for each category,
- // because each has to have own copy of data owner
- CMMCScBkupDataOwnerInfo* info = CMMCScBkupDataOwnerInfo::NewLC( sbDataOwnerCopies[j] );
-
- if(dataOwnerLists[j]->AssignL( *info ))
- {
- CleanupStack::Pop( info );
- }
- else
- {
- CleanupStack::PopAndDestroy( info );
- }
- }
-
- CleanupStack::PopAndDestroy( &sbDataOwnerCopies );
- }
-
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- __LOG("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - Data owners per categories:");
-
- for(TInt i = 0; i < dataOwnerLists.Count(); i++)
- {
- __LOG2("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - Category 0x%x contains %d data owners",
- dataOwnerLists[i]->Category().iFlags, dataOwnerLists[i]->Count() );
-
- for(TInt j = 0; j < dataOwnerLists[i]->Count(); j++)
- {
- CMMCScBkupDataOwnerInfo* entry = &dataOwnerLists[i]->Owner(j);
-
- const TSBDerivedType type = entry->Owner().Identifier().DerivedTypeL();
- if ( type == EJavaDerivedType || type == EJavaTransferDerivedType )
- {
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( entry->Owner().Identifier() );
- __LOG1("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - java data owner with hash %S",
- hash );
- CleanupStack::PopAndDestroy( hash );
- }
- else
- {
- __LOG1("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - data owner 0x%08x",
- MMCScBkupSBEUtils::SecureIdFromGenericL( entry->Owner().Identifier() ).iId );
- }
- }
- }
-#endif
-
-#else // RD_FILE_MANAGER_BACKUP
- Driver().DrvDataOwners().AssignL( dataOwners );
-#endif // RD_FILE_MANAGER_BACKUP
-
- CleanupStack::PopAndDestroy( &dataOwners );
- }
--- a/filemanager/bkupengine/src/CMMCScBkupStateNotifyAllSnapshotsSupplied.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateNotifyAllSnapshotsSupplied implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateNotifyAllSnapshotsSupplied.h"
-
-// System includes
-#include <e32std.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateNotifyAllSnapshotsSupplied::CMMCScBkupStateNotifyAllSnapshotsSupplied()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateNotifyAllSnapshotsSupplied::CMMCScBkupStateNotifyAllSnapshotsSupplied( MMMCScBkupDriver& aDriver )
-: CMMCScBkupState( aDriver )
- {
- __LOG1("CMMCScBkupStateNotifyAllSnapshotsSupplied::CMMCScBkupStateNotifyAllSnapshotsSupplied() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateNotifyAllSnapshotsSupplied::NewL()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateNotifyAllSnapshotsSupplied* CMMCScBkupStateNotifyAllSnapshotsSupplied::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateNotifyAllSnapshotsSupplied* self = new(ELeave) CMMCScBkupStateNotifyAllSnapshotsSupplied( aDriver);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateNotifyAllSnapshotsSupplied::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateNotifyAllSnapshotsSupplied::StateId() const
- {
- return KMMCScBkupStateIdNotifyAllSnapshotsSupplied;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateNotifyAllSnapshotsSupplied::NextStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateNotifyAllSnapshotsSupplied::NextStateId() const
- {
- TMMCScBkupStateId nextState = KMMCScBkupStateIdRequestSizeOfBackupData;
- //
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- nextState = KMMCScBkupStateIdRequestSizeOfBackupData;
- break;
- case EMMCScBkupOperationTypeFullRestore:
- nextState = KMMCScBkupStateIdArchiveOpSystemData;
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- //
- return nextState;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateNotifyAllSnapshotsSupplied::PerformStateInitL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateNotifyAllSnapshotsSupplied::PerformStateInitL()
- {
- Driver().DrvSecureBackupClient().AllSnapshotsSuppliedL();
- }
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateOpAware.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,275 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateOpAware implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateOpAware.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::CMMCScBkupStateOpAware()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateOpAware::CMMCScBkupStateOpAware( MMMCScBkupDriver& aDriver, TInt aPriority )
-: CMMCScBkupState( aDriver, aPriority )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::NextStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateOpAware::NextStateId() const
- {
- TMMCScBkupStateId state = KMMCScBkupStateIdOperationComplete;
- //
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- case EMMCScBkupOperationTypePartialBackup:
- state = NextStateBackupId( type == EMMCScBkupOperationTypePartialBackup );
- break;
- case EMMCScBkupOperationTypeFullRestore:
- case EMMCScBkupOperationTypePartialRestore:
- state = NextStateRestoreId( type == EMMCScBkupOperationTypePartialRestore );
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- //
- return state;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformAsynchronousStateStepBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateOpAware::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformAsynchronousStateStepRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateOpAware::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformAsynchronousCancellationBackup()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateOpAware::PerformAsynchronousCancellationBackup( TBool /*aPartial*/ )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformAsynchronousCancellationRestore()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateOpAware::PerformAsynchronousCancellationRestore( TBool /*aPartial*/ )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformLastRightsBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateOpAware::PerformLastRightsBackupL( TBool /*aPartial*/ )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformLastRightsRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateOpAware::PerformLastRightsRestoreL( TBool /*aPartial*/ )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanupBackup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt /*aError*/ )
- {
- return EFalse;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanupRestore()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt /*aError*/ )
- {
- return EFalse;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformStateInitL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateOpAware::PerformStateInitL()
- {
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- case EMMCScBkupOperationTypePartialBackup:
- PerformStateInitBackupL( type == EMMCScBkupOperationTypePartialBackup );
- break;
- case EMMCScBkupOperationTypeFullRestore:
- case EMMCScBkupOperationTypePartialRestore:
- PerformStateInitRestoreL( type == EMMCScBkupOperationTypePartialRestore );
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformAsynchronousStateStepL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateOpAware::PerformAsynchronousStateStepL()
- {
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- case EMMCScBkupOperationTypePartialBackup:
- PerformAsynchronousStateStepBackupL( type == EMMCScBkupOperationTypePartialBackup );
- break;
- case EMMCScBkupOperationTypeFullRestore:
- case EMMCScBkupOperationTypePartialRestore:
- PerformAsynchronousStateStepRestoreL( type == EMMCScBkupOperationTypePartialRestore );
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateOpAware::PerformAsynchronousCancellation()
- {
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- case EMMCScBkupOperationTypePartialBackup:
- PerformAsynchronousCancellationBackup( type == EMMCScBkupOperationTypePartialBackup );
- break;
- case EMMCScBkupOperationTypeFullRestore:
- case EMMCScBkupOperationTypePartialRestore:
- PerformAsynchronousCancellationRestore( type == EMMCScBkupOperationTypePartialRestore );
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformLastRightsL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateOpAware::PerformLastRightsL()
- {
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- case EMMCScBkupOperationTypePartialBackup:
- PerformLastRightsBackupL( type == EMMCScBkupOperationTypePartialBackup );
- break;
- case EMMCScBkupOperationTypeFullRestore:
- case EMMCScBkupOperationTypePartialRestore:
- PerformLastRightsRestoreL( type == EMMCScBkupOperationTypePartialRestore );
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanup( TInt aError )
- {
- TBool handled = EFalse;
- //
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- case EMMCScBkupOperationTypePartialBackup:
- handled = PerformAsynchronousErrorCleanupBackup( type == EMMCScBkupOperationTypePartialBackup, aError );
- break;
- case EMMCScBkupOperationTypeFullRestore:
- case EMMCScBkupOperationTypePartialRestore:
- handled = PerformAsynchronousErrorCleanupRestore( type == EMMCScBkupOperationTypePartialRestore, aError );
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- //
- return handled;
- }
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateRequestListOfPublicFiles.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,447 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateRequestListOfPublicFiles implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateRequestListOfPublicFiles.h"
-
-// System includes
-#include <e32std.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMCScBkupSBEUtils.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "RMMCScBkupProgressSizer.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMMCScBkupProgressObserver.h"
-#include "CMMCScBkupFileListCollection.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::CMMCScBkupStateRequestListOfPublicFiles()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateRequestListOfPublicFiles::CMMCScBkupStateRequestListOfPublicFiles( MMMCScBkupDriver& aDriver )
-: CMMCScBkupState( aDriver )
- {
- __LOG1("CMMCScBkupStateRequestListOfPublicFiles::CMMCScBkupStateRequestListOfPublicFiles() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::~CMMCScBkupStateRequestListOfPublicFiles()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateRequestListOfPublicFiles::~CMMCScBkupStateRequestListOfPublicFiles()
- {
- Cancel();
- //
- delete iRequestObject;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestListOfPublicFiles::ConstructL()
- {
- iRequestObject = CMMCScBkupStateRequestSpecificPublicFileInfo::NewL(Driver());
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateRequestListOfPublicFiles* CMMCScBkupStateRequestListOfPublicFiles::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateRequestListOfPublicFiles* self = new(ELeave) CMMCScBkupStateRequestListOfPublicFiles( aDriver );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateRequestListOfPublicFiles::StateId() const
- {
- return KMMCScBkupStateIdRequestListOfPublicFiles;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::NextStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateRequestListOfPublicFiles::NextStateId() const
- {
- return KMMCScBkupStateIdValidateDiskSpace;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::PerformStateInitL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestListOfPublicFiles::PerformStateInitL()
- {
- // Set to -1 so that the first time RunL is called, we start with
- // the data owner at index 0.
- iCurrentDataOwnerIndex = -1;
- CompleteSelf(KErrNone);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousStateStepL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousStateStepL()
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- if (++iCurrentDataOwnerIndex < dataOwners.Count())
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner(iCurrentDataOwnerIndex);
-
- const TBool hasPublicFiles = (owner.Owner().PassiveSettings() & EHasPublicFiles);
- if (hasPublicFiles)
- {
- // Request all the public files (on all supported drives) for this
- // particular data owner
- __ASSERT_ALWAYS(iRequestObject->IsActive() == EFalse, User::Invariant());
- //
- iRequestObject->RequestL(owner, iStatus);
- SetActive();
- }
- else
- {
- // Try next data owner
- CompleteSelf();
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousErrorCleanup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousErrorCleanup(TInt aError)
- {
- (void) aError;
- __LOG1("CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousErrorCleanup() - **** - error: %d", aError );
-
- // Cancel requester. Its probably already inactive, but just in case...
- PerformAsynchronousCancellation();
-
- // Reset state and move to next item. Treat the current (badly behaving) item
- // as completed/processed.
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- if ( iCurrentDataOwnerIndex < dataOwners.Count() )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iCurrentDataOwnerIndex );
- (void) owner;
- __LOGFILE2("CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousErrorCleanup() - **** - error: %d, SID: 0x%08x - PUBLIC data skipped for DO", aError, owner.SecureId().iId );
-
- // Ensures that asynchronous state step is called again..
- CompleteSelf();
- }
-
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousCancellation()
- {
- if ( iRequestObject )
- {
- iRequestObject->Cancel();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL()
- {
- // Now we can calculate the progress
- TInt64 totalProgressAmount = 0;
-
- // Calculate the total progress required for the entire backup operation
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- const TInt count = dataOwners.Count();
- //
- RMMCScBkupProgressSizer sizer( Driver().DrvParamsBase().DriveAndOperations() );
- for(TInt i=0; i<count; i++)
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( i );
- //
- totalProgressAmount += sizer.BackupTotalProgressValueL( owner );
- }
-
- // Check whether all categories have been processed and either store current
- // progress information in driver or inform progress handler about cumulative progress.
- // If size is getting beyond file system limitation (2GB), leave with KErrxxx.
- if(Driver().DrvLastCategory())
- {
- __LOG2("CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL() - report progress understood (%Ld + %Ld)",
- totalProgressAmount, Driver().DrvTotalProgress());
-
- Driver().DrvStoreTotalProgress( totalProgressAmount );
-
- if( Driver().DrvTotalProgress() > KMaxTInt )
- {
- __LOG1("CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL() - leaving with KErrNotSupported due amount of data (%Ld)",
- Driver().DrvTotalProgress());
- Driver().DrvProgressHandler().MMCScBkupStartBackuping( EFalse );
- User::Leave( KErrNotSupported );
- }
- else
- {
- Driver().DrvProgressHandler().MMCScBkupHandleProgressDomainUnderstood( Driver().DrvTotalProgress() );
- }
- }
- else
- {
- __LOG2("CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL() - adding progress amount %Ld to existing %Ld)",
- totalProgressAmount, Driver().DrvTotalProgress());
-
- if( (totalProgressAmount + Driver().DrvTotalProgress()) > KMaxTInt )
- {
- __LOG1("CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL() - leaving due amount of data (%Ld)",
- totalProgressAmount + Driver().DrvTotalProgress());
- User::Leave(KErrNotSupported);
- }
- else
- {
- Driver().DrvStoreTotalProgress( totalProgressAmount );
- }
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSpecificPublicFileInfo::CMMCScBkupStateRequestSpecificPublicFileInfo()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateRequestSpecificPublicFileInfo::CMMCScBkupStateRequestSpecificPublicFileInfo( MMMCScBkupDriver& aDriver )
-: CMMCScBkupDriveSpecificRequest( aDriver.DrvParamsBase().DriveAndOperations(), EMMCScBkupOwnerDataTypePublicData ), iDriver(aDriver)
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSpecificPublicFileInfo::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateRequestSpecificPublicFileInfo* CMMCScBkupStateRequestSpecificPublicFileInfo::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateRequestSpecificPublicFileInfo* self = new (ELeave) CMMCScBkupStateRequestSpecificPublicFileInfo(aDriver);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSpecificPublicFileInfo::RequestL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestSpecificPublicFileInfo::RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver )
- {
- iOwner = &aOwner;
- CMMCScBkupDriveSpecificRequest::RequestL( aObserver );
-
- // Start the asynchronous request.
- CompleteSelf(KErrNone);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSpecificPublicFileInfo::RunL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestSpecificPublicFileInfo::RunL()
- {
- __LOG1("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - START - iStatus: %d", iStatus.Int());
- User::LeaveIfError(iStatus.Int());
- //
- CDataOwnerInfo& owner = iOwner->Owner();
- const TDriveList& ownerDrives = owner.DriveList();
- TDriveNumber drive = EDriveA;
- const TBool driveAvailable = NextValidDrive(drive, ownerDrives);
- const TSecureId secureId = iOwner->SecureId();
-
- __LOG3("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - secureId: 0x%08x, driveAvailable: %d, drive: %c", secureId.iId, driveAvailable, drive + 'A');
-
- if (driveAvailable)
- {
- // This drive needs to be scanned...
- TInt err( KErrNone );
- RFileArray files;
- CleanupClosePushL(files);
-
- // Get a copy of the generic data type for which we are
- // requesting file listings...
- CSBGenericDataType* genericDataType = CSBSecureId::NewL( secureId );
- CleanupStack::PushL( genericDataType );
- TRAP( err, Driver().DrvSecureBackupClient().PublicFileListL( drive, *genericDataType, files ) );
- if( err != KErrNone && err != KErrNotFound )
- {
- User::Leave( err );
- }
- CleanupStack::PopAndDestroy( genericDataType );
- // Additionally we need to request list of public files registered for packages.
- if( MMCScBkupSBEUtils::HasSystemDataL( owner ) )
- {
- RFileArray pkgFiles;
- CleanupClosePushL( pkgFiles );
- __LOG2("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - have %d files before package listing for DO, err %d", files.Count(), err);
- TRAP( err, Driver().DrvSecureBackupClient().PublicFileListL( drive, owner.Identifier(), pkgFiles ) );
- __LOG2("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - have %d package files for DO, err %d", files.Count(), err);
- const TInt pkgCount = pkgFiles.Count();
- for(TInt i = 0; i < pkgCount; i++)
- {
- files.AppendL( pkgFiles[i] );
- }
- CleanupStack::PopAndDestroy( &pkgFiles );
- }
-
- // Add to the file list
- __LOG1("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - have %d files for DO", files.Count());
- if (files.Count())
- {
-
- // We want to be told by the public file collection exactly which files
- // it added... We need to do this in order to report progress as accurately
- // as possible during the backup operation.
- RArray< const CMMCScBkupFileInfo* > addedItems;
- CleanupClosePushL(addedItems);
-
- // Add them to the public data file collection
- Driver().DrvFileList().AppendL( files, addedItems, secureId );
-
- // For each identified file, update the data owner with the size of public data
- const TInt count = addedItems.Count();
- for(TInt i=0; i<count; i++)
- {
- const CMMCScBkupFileInfo& file = *addedItems[i];
- const TInt size = file.Size();
- //
- __LOG3("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - file[%04d] = %S, size: %d", i, &file.FileName(), size);
- iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypePublicData, drive, size );
- }
- //
- CleanupStack::PopAndDestroy( &addedItems );
- }
- //
- CleanupStack::PopAndDestroy( &files );
-
- // Complete ourself to try the next drive
- CompleteSelf( KErrNone );
- }
- else
- {
- CompleteObserverRequest( KErrNone );
- }
-
- __LOG("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSpecificPublicFileInfo::DoCancel()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestSpecificPublicFileInfo::DoCancel()
- {
- }
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateRequestSizeOfBackupData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,515 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateRequestSizeOfBackupData implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateRequestSizeOfBackupData.h"
-
-// System includes
-#include <e32std.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMCScBkupSBEUtils.h"
-#include "TMMCScBkupOwnerDataType.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMMCScBkupProgressObserver.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "CMMCScBkupDriveAndOperationTypeManager.h"
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfBackupData::CMMCScBkupStateRequestSizeOfBackupData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateRequestSizeOfBackupData::CMMCScBkupStateRequestSizeOfBackupData( MMMCScBkupDriver& aDriver )
-: CMMCScBkupState( aDriver )
- {
- __LOG1("CMMCScBkupStateRequestSizeOfBackupData::CMMCScBkupStateRequestSizeOfBackupData() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfBackupData::~CMMCScBkupStateRequestSizeOfBackupData()
-//
-// C++ destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateRequestSizeOfBackupData::~CMMCScBkupStateRequestSizeOfBackupData()
- {
- Cancel();
- //
- delete iRequestObject;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfBackupData::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestSizeOfBackupData::ConstructL()
- {
- iRequestObject = CMMCScBkupStateRequestSizeOfDataOwner::NewL( Driver() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfBackupData::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateRequestSizeOfBackupData* CMMCScBkupStateRequestSizeOfBackupData::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateRequestSizeOfBackupData* self = new(ELeave) CMMCScBkupStateRequestSizeOfBackupData( aDriver);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfBackupData::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateRequestSizeOfBackupData::StateId() const
- {
- return KMMCScBkupStateIdRequestSizeOfBackupData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfBackupData::NextStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateRequestSizeOfBackupData::NextStateId() const
- {
- return KMMCScBkupStateIdRequestListOfPublicFiles;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfBackupData::PerformStateInitL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestSizeOfBackupData::PerformStateInitL()
- {
- // Set to -1 so that the first time RunL is called, we start with
- // the data owner at index 0.
- iCurrentDataOwnerIndex = -1;
- CompleteSelf(KErrNone);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousStateStepL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousStateStepL()
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- const TInt count = dataOwners.Count();
- //
- if ( ++iCurrentDataOwnerIndex < dataOwners.Count() )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner(iCurrentDataOwnerIndex);
-
- // Request all the public files (on all supported drives) for this
- // particular data owner
- __ASSERT_ALWAYS(iRequestObject->IsActive() == EFalse, User::Invariant());
- //
- __LOG3("CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousStateStepL() - START - owner[%3d/%3d], sid: 0x%08x", iCurrentDataOwnerIndex, count, owner.SecureId().iId);
- iRequestObject->RequestL(owner, iStatus);
- SetActive();
- }
- else
- {
- __LOG("CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousStateStepL() - END");
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousErrorCleanup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousErrorCleanup( TInt aError )
- {
- (void) aError;
- __LOG1("CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousErrorCleanup() - **** - error: %d", aError );
- TBool continueProcessing = ETrue;
-
- // Cancel requester. Its probably already inactive, but just in case...
- PerformAsynchronousCancellation();
-
- // Reset state and move to next item. Treat the current (badly behaving) item
- // as completed/processed.
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- if ( iCurrentDataOwnerIndex < dataOwners.Count() )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iCurrentDataOwnerIndex );
-
- (void) owner;
- __LOGFILE2("CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousErrorCleanup() - **** - error: %d, SID: 0x%08x - SIZE OF DATA skipped for DO", aError, owner.SecureId().iId );
-
- // Ensures that asynchronous state step is called again..
- CompleteSelf();
- }
- else
- {
- continueProcessing = EFalse;
- }
- //
- __LOG1("CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousErrorCleanup() - END - continueProcessing: %d", continueProcessing );
- return continueProcessing;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousCancellation()
- {
- if ( iRequestObject )
- {
- iRequestObject->Cancel();
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfDataOwner::CMMCScBkupStateRequestSizeOfDataOwner()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateRequestSizeOfDataOwner::CMMCScBkupStateRequestSizeOfDataOwner( MMMCScBkupDriver& aDriver )
-: CMMCScBkupDriveSpecificRequest( aDriver.DrvParamsBase().DriveAndOperations(), EMMCScBkupOwnerDataTypeAny ), iDriver(aDriver)
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfDataOwner::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateRequestSizeOfDataOwner* CMMCScBkupStateRequestSizeOfDataOwner::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateRequestSizeOfDataOwner* self = new (ELeave) CMMCScBkupStateRequestSizeOfDataOwner(aDriver);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfDataOwner::RequestL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestSizeOfDataOwner::RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver )
- {
- iOwner = &aOwner;
- CMMCScBkupDriveSpecificRequest::RequestL( aObserver );
-
- // Start the asynchronous request.
- CompleteSelf(KErrNone);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfDataOwner::RunL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestSizeOfDataOwner::RunL()
- {
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::RunL() - START - iStatus: %d, sid: 0x%08x", iStatus.Int(), iOwner->SecureId().iId);
-
- User::LeaveIfError(iStatus.Int());
- //
- TDriveNumber drive = EDriveA;
- const TDriveList& ownerDrives = iOwner->Owner().DriveList();
- const TBool driveAvailable = NextValidDrive(drive, ownerDrives);
- //
- if (driveAvailable)
- {
- CDataOwnerInfo& owner = iOwner->Owner();
- CSBGenericDataType& identifier = owner.Identifier();
-
- // Size any active and passive data
- GetActiveAndPassiveDataSizesL( owner, identifier, drive );
-
- // Size any system package data
- GetSystemDataSizesL( owner, identifier, drive );
-
- // Size any java data
- GetJavaDataSizesL( owner, identifier, drive );
-
- // Complete ourself to try the next drive
- CompleteSelf(KErrNone);
- __LOG1("CMMCScBkupStateRequestSizeOfDataOwner::RunL() - END - sid: 0x%08x, checking next drive...", iOwner->SecureId().iId);
- }
- else
- {
- __LOG1("CMMCScBkupStateRequestSizeOfDataOwner::RunL() - END - sid: 0x%08x, last drive scanned => notifying observer", iOwner->SecureId().iId);
- CompleteObserverRequest(KErrNone);
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfDataOwner::DoCancel()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateRequestSizeOfDataOwner::DoCancel()
- {
- CompleteObserverRequest( KErrCancel );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfDataOwner::GetActiveAndPassiveDataSizesL()
-//
-//
-// ---------------------------------------------------------------------------
-TUint CMMCScBkupStateRequestSizeOfDataOwner::GetActiveAndPassiveDataSizesL( const CDataOwnerInfo& aOwner,
- CSBGenericDataType& /*aIdentifier*/, TDriveNumber aDrive )
- {
- // Passive Data
- const TBool passiveBURSupported = MMCScBkupSBEUtils::HasPassiveDataL( aOwner );
- const TBool passiveDataTransferAllowedForDrive = DriveAndOperations().IsDataTypeAllowedToAccessDrive( aDrive, EMMCScBkupOwnerDataTypePassiveData );
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - passiveBURSupported: %d, passiveDataTransferAllowedForDrive: %d", passiveBURSupported, passiveDataTransferAllowedForDrive );
-
- TUint ret = 0;
- TUint itemSize = 0;
- if ( passiveBURSupported && passiveDataTransferAllowedForDrive )
- {
- const TSecureId secureId = iOwner->SecureId();
- const TTransferDataType type = Driver().DrvParamsBase().PassiveTransferType();
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - sid: 0x%08x claims PASSIVE Data... type: %d", iOwner->SecureId().iId, type);
-
- itemSize = GetSIDSpecificSizeL( secureId, aDrive, type );
- iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypePassiveData, aDrive, itemSize );
- ret += itemSize;
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - sid: 0x%08x, passive size: %8d", secureId.iId, itemSize);
- }
-
- // Active Data
- const TBool activeBURSupported = MMCScBkupSBEUtils::HasActiveDataL( aOwner );
- const TBool activeDataTransferAllowedForDrive = DriveAndOperations().IsDataTypeAllowedToAccessDrive( aDrive, EMMCScBkupOwnerDataTypeActiveData );
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - activeBURSupported: %d, activeDataTransferAllowedForDrive: %d", activeBURSupported, activeDataTransferAllowedForDrive );
-
- if ( activeBURSupported && activeDataTransferAllowedForDrive )
- {
- const TSecureId secureId = iOwner->SecureId();
- const TTransferDataType type = Driver().DrvParamsBase().ActiveTransferType();
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - sid: 0x%08x claims ACTIVE Data... type: %d", iOwner->SecureId().iId, type);
-
-
- // Technically, we should wait for an active data owner to become ready before we ask
- // for its sizing information. If we don't wait, we might receive KErrNotReady back
- // from our SBE request.
- //
- // Currently, the MMC engine doesn't actually make any use of the active data sizing
- // info, so we trap (and ignore) the error in this situation. In the future, we will
- // have to change the state machine in order to request the active data statuses
- // before the sizing can be requested.
- itemSize = 0;
- TRAPD(err, GetSIDSpecificSizeL( secureId, aDrive, type ));
- __LOG3("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - sid: 0x%08x, active size: %8d, fetchError: %d", secureId.iId, itemSize, err);
-
- if ( err == KErrNone || err == KErrNotReady )
- {
- err = KErrNone;
- }
- else
- {
- User::LeaveIfError( err );
- }
-
- iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypeActiveData, aDrive, itemSize );
- ret += itemSize;
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - sid: 0x%08x, active size: %8d", secureId.iId, itemSize);
- }
-
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSpecificSizeL()
-//
-//
-// ---------------------------------------------------------------------------
-TUint CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSpecificSizeL( TSecureId aSecureID, TDriveNumber aDrive, TTransferDataType aDataType )
- {
- CSBSIDTransferType* transferType = CSBSIDTransferType::NewL( aSecureID,
- aDrive,
- aDataType
- );
- CleanupStack::PushL( transferType );
- const TUint size = Driver().DrvSecureBackupClient().ExpectedDataSizeL( *transferType );
- CleanupStack::PopAndDestroy( transferType );
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfDataOwner::GetSystemDataSizesL()
-//
-//
-// ---------------------------------------------------------------------------
-TUint CMMCScBkupStateRequestSizeOfDataOwner::GetSystemDataSizesL( const CDataOwnerInfo& aOwner, CSBGenericDataType& aIdentifier, TDriveNumber aDrive )
- {
- TUint size = 0;
- //
- const TBool systemBURSupported = MMCScBkupSBEUtils::HasSystemDataL( aOwner );
- const TBool systemDataTransferAllowedForDrive = DriveAndOperations().IsDataTypeAllowedToAccessDrive( aDrive, EMMCScBkupOwnerDataTypeSystemData );
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSystemDataSizesL() - systemBURSupported: %d, systemDataTransferAllowedForDrive: %d", systemBURSupported, systemDataTransferAllowedForDrive );
-
- if ( systemBURSupported && systemDataTransferAllowedForDrive )
- {
- __LOG1("CMMCScBkupStateRequestSizeOfDataOwner::GetSystemDataSizesL() - sid: 0x%08x claims SYSTEM Data...", iOwner->SecureId().iId);
-
- // Again we have to create a temporary in order to actually retrieve the info...
- CSBPackageId* packageGeneric = static_cast<CSBPackageId*>( MMCScBkupSBEUtils::CopyLC( aIdentifier ) );
- const TUid packageId = packageGeneric->PackageIdL();
- //
- const TPackageDataType type = Driver().DrvParamsBase().PackageTransferType();
- CSBPackageTransferType* transferType = CSBPackageTransferType::NewL( packageId,
- aDrive,
- type
- );
- CleanupStack::PushL( transferType );
- size = Driver().DrvSecureBackupClient().ExpectedDataSizeL( *transferType );
- __LOG3("CMMCScBkupStateRequestSizeOfDataOwner::GetSystemDataSizesL() - packageId: 0x%08x, sid: 0x%08x, package size: %8d", packageId.iUid, iOwner->SecureId().iId, size);
- CleanupStack::PopAndDestroy( transferType );
- //
- iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypeSystemData, aDrive, size );
- CleanupStack::PopAndDestroy( packageGeneric );
- }
-
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfDataOwner::GetJavaDataSizesL()
-//
-//
-// ---------------------------------------------------------------------------
-TUint CMMCScBkupStateRequestSizeOfDataOwner::GetJavaDataSizesL( const CDataOwnerInfo& aOwner, CSBGenericDataType& aIdentifier, TDriveNumber aDrive )
- {
- TUint size = 0;
- //
- const TBool javaBURSupported = MMCScBkupSBEUtils::HasJavaDataL( aOwner );
- const TBool javaDataTransferAllowedForDrive = DriveAndOperations().IsDataTypeAllowedToAccessDrive( aDrive, EMMCScBkupOwnerDataTypeJavaData );
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSizesL() - javaBURSupported: %d, javaDataTransferAllowedForDrive: %d", javaBURSupported, javaDataTransferAllowedForDrive );
-
- if ( javaBURSupported && javaDataTransferAllowedForDrive )
- {
- // Again we have to create a temporary in order to actually retrieve the info...
- CSBJavaId* packageGeneric = static_cast<CSBJavaId*>(MMCScBkupSBEUtils::CopyLC( aIdentifier ));
- const TPtrC pHash(packageGeneric->SuiteHashL());
- __LOG1("CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSizesL() - midlet hash: %S", &pHash );
-
- const TUint midletSize = GetJavaSpecificSizeL( pHash, aDrive, EJavaMIDlet);
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSizesL() - EJavaMIDlet, sid: 0x%08x, size: %8d", iOwner->SecureId().iId, midletSize);
-
- const TUint midletDataSize = GetJavaSpecificSizeL( pHash, aDrive, EJavaMIDletData);
- __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSizesL() - EJavaMIDletData, sid: 0x%08x, size: %8d", iOwner->SecureId().iId, midletDataSize);
-
- // We put the midlet itself in the special 'java data' category (the 'system data' equivalent for
- // java midlets).
- iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypeJavaData, aDrive, midletSize );
-
- // We put the midlet's data (e.g. any data files that it created) inside
- // the 'passive data' bucket.
- iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypePassiveData, aDrive, midletDataSize );
-
- // Java abuses the passive data slot. We would've initially set passive data's completion status
- // to ETrue inside CMMCScBkupDataOwnerInfo::ConstructL() as a result of receiving a Java
- // transfer type... but we can reset it back to "not yet completed" if the midlet
- // does indeed have some 'passive data'.
- iOwner->SetCompletionStatus( EMMCScBkupOwnerDataTypePassiveData, ( midletDataSize == 0 ) );
-
- CleanupStack::PopAndDestroy( packageGeneric );
- //
- size = midletSize + midletDataSize;
- }
-
- return size;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSpecificSizeL()
-//
-//
-// ---------------------------------------------------------------------------
-TUint CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSpecificSizeL( const TDesC& aHash, TDriveNumber aDrive, TJavaTransferType aDataType )
- {
- CSBJavaTransferType* transferType = CSBJavaTransferType::NewL( aHash,
- aDrive,
- aDataType
- );
- CleanupStack::PushL( transferType );
- const TUint size = Driver().DrvSecureBackupClient().ExpectedDataSizeL( *transferType );
- CleanupStack::PopAndDestroy( transferType );
- return size;
- }
--- a/filemanager/bkupengine/src/CMMCScBkupStateSetPhoneMode.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateSetPhoneMode implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateSetPhoneMode.h"
-
-// System includes
-#include <e32std.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDriveAndOperationTypeManager.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateSetPhoneMode::CMMCScBkupStateSetPhoneMode()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateSetPhoneMode::CMMCScBkupStateSetPhoneMode( MMMCScBkupDriver& aDriver )
-: CMMCScBkupState( aDriver )
- {
- __LOG1("CMMCScBkupStateSetPhoneMode::CMMCScBkupStateSetPhoneMode() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateSetPhoneMode::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateSetPhoneMode* CMMCScBkupStateSetPhoneMode::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateSetPhoneMode* self = new(ELeave) CMMCScBkupStateSetPhoneMode( aDriver);
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateSetPhoneMode::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateSetPhoneMode::StateId() const
- {
- return KMMCScBkupStateIdSetPhoneMode;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateSetPhoneMode::NextStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateSetPhoneMode::NextStateId() const
- {
- TMMCScBkupStateId nextState = KMMCScBkupStateIdNotifyAllSnapshotsSupplied;
- //
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- nextState = KMMCScBkupStateIdNotifyAllSnapshotsSupplied;
- break;
- case EMMCScBkupOperationTypeFullRestore:
- nextState = KMMCScBkupStateIdArchiveOpSystemData;
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- //
- return nextState;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateSetPhoneMode::PerformStateInitL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateSetPhoneMode::PerformStateInitL()
- {
- __LOG("CMMCScBkupStateSetPhoneMode::PerformStateInitL()" );
- //
- const CMMCScBkupOpParamsBase& params = Driver().DrvParamsBase();
- //
- Driver().DrvSecureBackupClient().SetBURModeL( params.DriveAndOperations().DriveList(),
- params.PartType(),
- params.IncrementType(),
- iStatus );
- SetActive();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateSetPhoneMode::PerformAsynchronousStateStepL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateSetPhoneMode::PerformAsynchronousStateStepL()
- {
- __LOG("CMMCScBkupStateSetPhoneMode::PerformAsynchronousStateStepL()" );
- }
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupStateValidateDiskSpace.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,393 +0,0 @@
-/*
-* Copyright (c) 2005-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: CMMCScBkupStateValidateDiskSpace implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateValidateDiskSpace.h"
-
-// System includes
-#include <e32std.h>
-#include <s32strm.h>
-#include <s32mem.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupFileInfo.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupArchiveHeader.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "RMMCScBkupProgressSizer.h"
-#include "MMMCScBkupProgressObserver.h"
-#include "CMMCScBkupFileListCollection.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "CMMCScBkupIndexPublicDataFiles.h"
-#include "CMMCScBkupDataStrategies.h"
-#include "MMCScBkupSBEUtils.h"
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateValidateDiskSpace::~CMMCScBkupStateValidateDiskSpace()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateValidateDiskSpace::~CMMCScBkupStateValidateDiskSpace()
- {
- iDriveSizes.Close();
- iDriveMaxFileSizes.Close();
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateValidateDiskSpace::CMMCScBkupStateValidateDiskSpace()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateValidateDiskSpace::CMMCScBkupStateValidateDiskSpace( MMMCScBkupDriver& aDriver )
-: CMMCScBkupState( aDriver ), iCumulatedSize(0)
- {
- __LOG1("CMMCScBkupStateValidateDiskSpace::CMMCScBkupStateValidateDiskSpace() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateValidateDiskSpace::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateValidateDiskSpace* CMMCScBkupStateValidateDiskSpace::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateValidateDiskSpace* self = new(ELeave) CMMCScBkupStateValidateDiskSpace( aDriver );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateValidateDiskSpace::ConstructL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateValidateDiskSpace::ConstructL( )
- {
- for( TInt i = EDriveA; i<=EDriveZ; i++ )
- {
- const TDriveNumber drive = static_cast< TDriveNumber >( i );
-
- // Zero-initialize max. file sizing info arrays
- TMMCScBkupDriveAndSize newEntry( drive, 0 );
- iDriveSizes.AppendL( newEntry );
- TMMCScBkupDriveAndSize maxEntry( drive, 0 );
- iDriveMaxFileSizes.AppendL( maxEntry );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateValidateDiskSpace::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateValidateDiskSpace::StateId() const
- {
- return KMMCScBkupStateIdValidateDiskSpace;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateValidateDiskSpace::NextStateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateValidateDiskSpace::NextStateId() const
- {
- TMMCScBkupStateId nextState = KMMCScBkupStateIdOperationComplete;
- //
- const TMMCScBkupOperationType type = Driver().DrvOperation();
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- nextState = KMMCScBkupStateIdArchiveOpPublicDataFiles;
- break;
- case EMMCScBkupOperationTypeFullRestore:
- nextState = KMMCScBkupStateIdSetPhoneMode;
- break;
- default:
- ASSERT( EFalse );
- break;
- }
- //
- return nextState;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateValidateDiskSpace::PerformStateInitL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateValidateDiskSpace::PerformStateInitL()
- {
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateValidateDiskSpace::PerformAsynchronousStateStepL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateValidateDiskSpace::PerformAsynchronousStateStepL()
- {
- const TMMCScBkupOperationType type = Driver().DrvOperation();
-
- switch(type)
- {
- case EMMCScBkupOperationTypeFullBackup:
- {
- ValidateFreeSpaceBeforeBackupL();
- break;
- }
- case EMMCScBkupOperationTypeFullRestore:
- {
- ValidateFreeSpaceBeforeRestoreL();
- break;
- }
- default:
- User::Leave(KErrNotSupported);
- break;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL()
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- TInt64 uncompressedSize;
-
- __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - START");
-
- // Calculate the total progress required for the entire backup operation
- uncompressedSize = dataOwners.TotalOperationalSizeL();
- __LOG1("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - Total estimated uncompressed size for archive %Ld", uncompressedSize);
- const TInt ownerCount = dataOwners.Count();
-
- for( TInt i=0; i<ownerCount; i++ )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( i );
- // Reset the size of public data to 0. We update this value
- // with the compressed size during the compression stage. This
- // is needed in order to create accurate restore information (since
- // all of the data owner sizing info is written to disk).
- // owner.ResetOperationalSize( EMMCScBkupOwnerDataTypePublicData );
- }
-
- // Let's check do public files fit in target drive
- TInt driveNumber;
- TDriveInfo driveInfo;
- TVolumeInfo volInfo;
- TInt8 percentFree(100);
-
- // First get the drive number, where archive resides and then get drive's free space.
- TInt err = ADI().ADIRawArchiveFile().Drive( driveNumber, driveInfo );
- if( err == KErrNone)
- {
- err = ADI().ADIFsSession().Volume( volInfo, driveNumber );
- if( err == KErrNone)
- {
- iCumulatedSize += uncompressedSize;
-
- if(Driver().DrvLastCategory())
- {
- __LOG3("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - Final cumulated size %Ld, free size on drive %c is %Ld",
- iCumulatedSize, driveNumber + 'A', volInfo.iFree);
-
- if( iCumulatedSize > volInfo.iFree)
- {
- percentFree = TInt( (volInfo.iFree * 100 ) / iCumulatedSize ); // accurate enough, no rounding
- }
-
- err = Driver().DrvProgressHandler().MMCScBkupHandleFreeSpace( percentFree );
- if( err != KErrNone )
- {
- // Error indicates backup creation no more allowed
- Driver().DrvProgressHandler().MMCScBkupStartBackuping( EFalse );
- User::Leave( err );
- }
- else
- {
- Driver().DrvProgressHandler().MMCScBkupStartBackuping( ETrue );
- }
- }
- else
- {
- __LOG3("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - Cumulated size now %Ld, free size on drive %c is %Ld",
- iCumulatedSize, driveNumber + 'A', volInfo.iFree);
- }
- }
- else
- {
- __LOG1("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - Volume info error %d", err);
- }
- }
-
- __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL()
- {
- CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
- CMMCScBkupIndexPublicDataFiles& index = static_cast<CMMCScBkupIndexPublicDataFiles&>( footer.IndexByType( EMMCScBkupOwnerDataTypePublicData ) );
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- CMMCScBkupFileListCollection& fileList = Driver().DrvFileList();
- TInt indexValueCurrent(0);
-
- __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - START");
-
- const TInt ownerCount = dataOwners.Count();
-
- // We can only make a direct comparison for public data
- for( TInt i=0; i<ownerCount; i++ )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( i );
- const CDataOwnerInfo& sbeDataOwner = owner.Owner();
-
- if ( MMCScBkupSBEUtils::HasPublicDataL( sbeDataOwner ) )
- {
- for( TInt i = EDriveA; i<=EDriveZ; i++ )
- {
- const TDriveNumber drive = static_cast< TDriveNumber >( i );
-
- const TInt64 size = owner.OperationalSize( EMMCScBkupOwnerDataTypePublicData, drive );
- TMMCScBkupDriveAndSize& entry = iDriveSizes[ drive ];
- entry.SetSize(entry.Size() + size);
- __LOG4("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - DO: 0x%08x has %Ld bytes for drive %c (total %Ld)",
- owner.SecureId().iId, size, entry.Drive() + 'A', entry.Size());
- }
- }
- }
-
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- for( TInt i = EDriveA; i<=EDriveZ; i++ )
- {
- TMMCScBkupDriveAndSize& entry = iDriveSizes[ i ];
- __LOG2("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Initially %Ld bytes required on drive %c",
- entry.Size(), entry.Drive() + 'A');
- }
-#endif
-
- const TInt count = index.Count();
-
- __LOG1("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Public files to compare %d", count);
-
- // Check needed size by comparing archived public files to files in disk - decrease size if matching file found
- while( ++indexValueCurrent < count )
- {
- // Get the entry to restore
- TMMCScBkupArchiveVector entryInfo;
- //const CMMCScBkupFileInfo& fileInfo = index.At( indexValueCurrent, entryInfo );
- const CMMCScBkupFileInfo& fileInfo = fileList.Entry(indexValueCurrent);
- const TDriveNumber drive = fileInfo.Drive();
-
- __LOG2("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Archived file: %S, of size %d", &fileInfo.FileName(), fileInfo.Size());
-
- // Check file (if any) size in disk
- RFile64 restoreFile;
- TInt64 fileSize = 0;
- TInt error = restoreFile.Open(ADI().ADIFsSession(), fileInfo.FileName(), EFileShareReadersOnly | EFileRead);
- if(error == KErrNone)
- {
- error = restoreFile.Size(fileSize);
- if(error == KErrNone)
- {
- __LOG1("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Found matching file of size %d", fileInfo.Size());
-
- // Take into account biggest file already on disk, because reserves that much space temporarily
- if(iDriveMaxFileSizes[ drive ].Size() < fileSize && KMMCScBkupUseTempFile)
- {
- TMMCScBkupDriveAndSize& bigFile = iDriveMaxFileSizes[ drive ];
- bigFile.SetSize(fileSize);
- }
- }
- else
- {
- fileSize = 0;
- __LOG1("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Error % requesting file size", error);
- }
-
- restoreFile.Close();
- }
-
- TMMCScBkupDriveAndSize& entry = iDriveSizes[ drive ];
- entry.SetSize(entry.Size() - fileSize);
-
- __LOG2("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - %Ld bytes required now on drive %c", entry.Size(), entry.Drive() + 'A');
- }
-
- __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - No estimation for private and system files");
-
- if(Driver().DrvLastCategory())
- {
- TVolumeInfo volInfo;
- TInt spaceCheck(KErrNone);
-
- // Let user interrupt restore if necessary in future. Currently if any of drives cannot be restored, we interrupt restore.
- for( TInt i = EDriveA; i<=EDriveZ; i++ )
- {
- // Check whether data fits into this drive.
- const TDriveNumber drive = static_cast< TDriveNumber >( i );
-
- TInt err = ADI().ADIFsSession().Volume( volInfo, drive );
- if( err == KErrNone)
- {
- // Total compressed size. If this exceeds total size of drive, then restore does not succeed for sure.
- const TInt64 size = dataOwners.DiskSpaceRequiredForRestore( drive );
- __LOG3("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - drive %c requires %Ld + %Ld for temporary file",
- iDriveSizes[ drive ].Drive() + 'A', iDriveSizes[ drive ].Size(), iDriveMaxFileSizes[ drive ].Size());
-
- if ( (( iDriveSizes[ drive ].Size() + iDriveMaxFileSizes[ drive ].Size() ) > volInfo.iFree ) ||
- ( size > volInfo.iSize ) )
- {
- __LOG2("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Not enough space (%Ld) on drive %c",
- TInt(volInfo.iFree), iDriveSizes[ drive ].Drive() + 'A');
- spaceCheck = KErrDiskFull;
- break;
- }
- }
- }
-
- User::LeaveIfError(spaceCheck);
- }
- else
- {
- __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Checking next category...");
- }
-
- __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - END");
- }
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupTransferReadRequest.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,517 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupReadDataTransferRequestBase implementation
-*
-*
-*/
-
-#include "CMMCScBkupTransferReadRequest.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMMCScBkupDriver.h"
-#include "CMMCScBkupArchive.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-#include "MMMCScBkupProgressObserver.h"
-#include <pathinfo.h>
-
-// Constants
-const TBool KMMCScBkupDontUpdateOpSizes = EFalse;
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::CMMCScBkupReadDataTransferRequestBase()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupReadDataTransferRequestBase::CMMCScBkupReadDataTransferRequestBase(
- MMMCScBkupDriver& aDriver,
- TMMCScBkupOwnerDataType aElementType,
- TInt aChunkSize,
- TInt aPriority )
-: CMMCScBkupTransferRequestBase( aDriver, aElementType, KMMCScBkupDontUpdateOpSizes, aPriority ),
- iReadChunkSize( aChunkSize ),
- iCurrentIndex( -1 )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::~CMMCScBkupReadDataTransferRequestBase()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupReadDataTransferRequestBase::~CMMCScBkupReadDataTransferRequestBase()
- {
- delete iTransferType;
- delete iTemporaryTransferSink;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::RequestL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupReadDataTransferRequestBase::RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver, const RArray<TMMCScBkupArchiveDriveAndVector>& aEntries )
- {
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- if ( ElementType() == EMMCScBkupOwnerDataTypeJavaData )
- {
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( aOwner.Owner().Identifier() );
- __LOG2("CMMCScBkupReadDataTransferRequestBase::RequestL() - START - reading data from SBE for JavaHash: %S, ElementType: %S", hash, &MMCScBkupLogger::DataType( ElementType() ));
- CleanupStack::PopAndDestroy( hash );
- }
- else
- {
- __LOG2("CMMCScBkupReadDataTransferRequestBase::RequestL() - START - reading data from SBE for DO: 0x%08x, ElementType: %S", aOwner.SecureId().iId, &MMCScBkupLogger::DataType( ElementType() ));
- }
-#endif
-
- CMMCScBkupTransferRequestBase::RequestL( aOwner, aObserver );
- //
- if ( !iTemporaryTransferSink )
- {
- iTemporaryTransferSink = HBufC8::NewL( iReadChunkSize );
- }
- //
- iEntries = &aEntries;
- iCurrentIndex = -1; // Increased by one in PrepareForNextEntry
- //
- TState nextState = EProcessData;
- const TBool entryAvailable = PrepareForNextEntry();
- if ( !entryAvailable )
- {
- nextState = EFinished;
- }
- //
- SetState( nextState );
- CompleteSelf();
- __LOG1("CMMCScBkupReadDataTransferRequestBase::RequestL() - END - nextState: %d", nextState);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::ProcessChunkOfDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupReadDataTransferRequestBase::ProcessChunkOfDataL()
- {
- __ASSERT_ALWAYS( iCurrentIndex >= 0, User::Invariant() );
-
- TBool callAgain = EFalse;
-
- // Do we need to move to the next entry?
- TBool entryAvailable = ( iCurrentIndex < iEntries->Count() );
- if ( entryAvailable )
- {
- // At least one more entry left to process.. but have we finished
- // the current entry? If we've read all the data, then the
- // answer is yes...
- const TMMCScBkupArchiveDriveAndVector& entry = (*iEntries)[ iCurrentIndex ];
- const TInt endOffset = entry.iVector.EndOffset();
-
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- if ( ElementType() == EMMCScBkupOwnerDataTypeJavaData )
- {
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( DataOwner().Owner().Identifier() );
- __LOG6("CMMCScBkupReadDataTransferRequestBase::ProcessChunkOfDataL() - START - JavaHash: %S, ElementType: %S, offset: %8d, length: %8d, endOffset: %8d, drive: %c:", hash, &MMCScBkupLogger::DataType( ElementType() ), entry.iVector.Offset(), entry.iVector.Length(), endOffset, entry.iDrive + 'A' );
- CleanupStack::PopAndDestroy( hash );
- }
- else
- {
- __LOG6("CMMCScBkupReadDataTransferRequestBase::ProcessChunkOfDataL() - START - DO: 0x%08x, ElementType: %S, offset: %8d, length: %8d, endOffset: %8d, drive: %c:", DataOwner().SecureId().iId, &MMCScBkupLogger::DataType( ElementType() ), entry.iVector.Offset(), entry.iVector.Length(), endOffset, entry.iDrive + 'A' );
- }
-#endif
-
- // Check bounds
- if ( CurrentOffset() < 0 || CurrentOffset() > endOffset )
- {
- ASSERT( EFalse );
- User::Leave( KErrCorrupt );
- }
- //
- if ( iCurrentOffset == endOffset )
- {
- // We're done with this entry - move to the next
- entryAvailable = PrepareForNextEntry();
- }
- }
- //
- if ( entryAvailable )
- {
- // We need to read more archive data in order to transfer this
- // entry to the SBE
- callAgain = DoProcessChunkOfDataL();
- }
- else
- {
- // No more left to process - we're finished!
- SetState( EFinished );
- CompleteSelf();
- }
- //
- return callAgain;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::PrepareDataTransferL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupReadDataTransferRequestBase::PrepareDataTransferL()
- {
- __ASSERT_ALWAYS(iTransferChunkPointer != NULL, User::Invariant());
- const CSBGenericDataType& generic = DataOwner().Owner().Identifier();
-
- // Prepare the transfer type with a virtual function call...
- CSBGenericTransferType* transferType = PrepareTransferTypeL( generic, CurrentDrive(),
- DataOwner().Version());
- delete iTransferType;
- iTransferType = transferType;
-
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- TInt lengthOfDataReadyForTransfer = 0;
- if ( iTransferChunkPointer != NULL )
- {
- lengthOfDataReadyForTransfer = iTransferChunkPointer->Length();
- }
-
- if ( iTransferType->DerivedTypeL() == EJavaTransferDerivedType )
- {
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( DataOwner().Owner().Identifier() );
- __LOG5("CMMCScBkupReadDataTransferRequestBase::PrepareDataTransferL() - supplying %d bytes of data for has: %S, drive: %c, iTransferChunkPointer addr: 0x%08x, iTransferChunkPointer length: %d", lengthOfDataReadyForTransfer, hash, 'A' + CurrentDrive(), iTransferChunkPointer->Ptr(), iTransferChunkPointer->Length() );
- CleanupStack::PopAndDestroy( hash );
- }
- else
- {
- const TSecureId sid = DataOwner().SecureId();
- __LOG5("CMMCScBkupReadDataTransferRequestBase::PrepareDataTransferL() - supplying %d bytes of data for sid: 0x%08x, drive: %c, iTransferChunkPointer addr: 0x%08x, iTransferChunkPointer length: %d", lengthOfDataReadyForTransfer, sid.iId, 'A' + CurrentDrive(), iTransferChunkPointer->Ptr(), iTransferChunkPointer->Length() );
- }
-#endif
-
- //
- Driver().DrvSecureBackupClient().SupplyDataL( *iTransferType, iFinishedSupplyingData, iStatus );
- SetActive();
-
- // Reset
- ResetDataTransferCounter();
- iTransferChunkPointer = NULL; // Address is retrieved from global chunk in DoProcessChunkOfDataL
-
- __LOG("CMMCScBkupReadDataTransferRequestBase::PrepareDataTransferL() - data transmitted, waiting for request completion...");
-
- // When the SBE informs us that it has read the data, we'll need to send it the next
- // chunk.
- SetState( EProcessData );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::ReadChunkL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupReadDataTransferRequestBase::ReadChunkL( TDes8& aSink, TInt aLength )
- {
- const TInt endOffset = CurrentReadInfo().EndOffset();
- __LOG4("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - START - aLength: %d, endOffset: %d, iCurrentOffset: %d, sinkLength: %d", aLength, endOffset, iCurrentOffset, aSink.Length());
- //
- if ( iCurrentOffset >= 0 && iCurrentOffset <= endOffset )
- {
- if ( aLength > 0 )
- {
- MMMCScBkupArchiveDataInterface& archiveDataInterface = Driver().DrvADI();
-
- // We read based upon the current offset and the specified length
- TPtr8 sink( iTemporaryTransferSink->Des() );
- const TMMCScBkupArchiveVector readRequest( iCurrentOffset, aLength );
- const TMMCScBkupArchiveVector& readResult = archiveDataInterface.ADIReadL( sink, readRequest );
- __LOG2("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - read result - offset: %d, length: %d", readResult.Offset(), readResult.Length());
-
- // Update offset
- iCurrentOffset += readResult.Length();
- aSink.Append( sink );
- __LOG2("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - new offset (iCurrentOffset): %d, sink Length: %d", iCurrentOffset, aSink.Length());
-
-#ifdef DEBUGGING_DATA_TRANSFER
- TRAP_IGNORE( DumpTransferDataL( archiveDataInterface.ADIFsSession(), sink) );
-#endif
-
- if ( iCurrentOffset > CurrentReadInfo().EndOffset() )
- {
- __LOG("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - Fatal Error - read went beyond archive entry boundary!");
- ASSERT( EFalse );
- User::Leave( KErrCorrupt );
- }
- else
- {
- __LOG("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - read was okay - updating stats & reporting progress...");
-
- // We managed to read the data okay, so let's update our stats
- DataTransferred( readResult.Length() );
-
- // ... and also update progress
- Driver().DrvProgressHandler().MMCScBkupHandleProgress( readResult.Length() );
- }
- }
- }
- else
- {
- __LOG("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - Fatal Error - current offset out of bounds!");
- ASSERT( EFalse );
- User::Leave( KErrCorrupt );
- }
-
- __LOG("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL()
- {
- MMMCScBkupDriver& driver = Driver();
- const TInt startingOffset = CurrentOffset();
- const TInt finalOffset = CurrentReadInfo().EndOffset();
-
- // Calculate how much data is remaining
- const TInt amountOfDataStillToBeRead = finalOffset - startingOffset;
-
- __LOG4("CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL() - START - startingOffset: 0x%08x, finalOffset: 0x%08x, amountToBeRead: %8d, iFinishedSupplyingData: %d",
- startingOffset, finalOffset, amountOfDataStillToBeRead, iFinishedSupplyingData);
-
- // Get a handle to the received data - but only if we don't already
- // have a handle to it! Calling this method resets whatever is already
- // in the transfer chunk - hence we must only call it once (at the beginning
- // of a multi-chunked transfer)
- if ( iTransferChunkPointer == NULL )
- {
- iTransferChunkPointer = &driver.DrvSecureBackupClient().TransferDataAddressL();
- }
-
- // How much space is available?
- const TInt spaceAvailable = iTransferChunkPointer->MaxLength() - iTransferChunkPointer->Length();
- const TInt amountToRead = Min( spaceAvailable, Min( iReadChunkSize, amountOfDataStillToBeRead ) );
- __LOG2("CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL() - xfer space available: %8d, amountToRead: %8d", spaceAvailable, amountToRead);
-
- // Do the read
- ReadChunkL( *iTransferChunkPointer, amountToRead );
-
- // Was this the last time we needed to perform a read?
- const TBool lastReadFromArchive = ( CurrentOffset() == finalOffset );
- __LOG1("CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL() - read data okay - lastReadFromArchive: %d", lastReadFromArchive);
-
- // Check to see if the data sink chunk is full. If so then we need to let
- // the SBE process what we've prepared so far, then we'll fill it with more
- // data.
- iFinishedSupplyingData = lastReadFromArchive;
- TBool moreToBeRead = !lastReadFromArchive;
- if ( !iFinishedSupplyingData && iTransferChunkPointer->Length() == iTransferChunkPointer->MaxLength() )
- {
- // Also cope with the boundary condition that the sink is full
- // but we've also just given it the last byte anyway. In which case,
- // we don't need to request a repeat transfer. This is actually
- // all the data in one go.
- moreToBeRead = EFalse;
- }
- //
- __LOG1("CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL() - END - more to read: %d", moreToBeRead);
- return moreToBeRead;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::PrepareForNextEntry()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupReadDataTransferRequestBase::PrepareForNextEntry()
- {
- TBool anotherEntryAvailable = EFalse;
-
- // Update our starting offset
- iFinishedSupplyingData = EFalse;
- iCurrentOffset = -1;
- //
- if ( ++iCurrentIndex < iEntries->Count() )
- {
- const TMMCScBkupArchiveVector& currentReadInfo = CurrentReadInfo();
- iCurrentOffset = currentReadInfo.Offset();
-
- __LOG3("CMMCScBkupReadDataTransferRequestBase::PrepareForNextEntry() - offset: %6d, length: %6d, drive: %c:", currentReadInfo.Offset(), currentReadInfo.Length(), 'A' + CurrentDrive() );
-
- anotherEntryAvailable = ETrue;
- }
- //
- return anotherEntryAvailable;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::CurrentDrive()
-//
-//
-// ---------------------------------------------------------------------------
-TDriveNumber CMMCScBkupReadDataTransferRequestBase::CurrentDrive() const
- {
- return CurrentEntry().iDrive;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::CurrentReadInfo()
-//
-//
-// ---------------------------------------------------------------------------
-const TMMCScBkupArchiveVector& CMMCScBkupReadDataTransferRequestBase::CurrentReadInfo() const
- {
- return CurrentEntry().iVector;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::CurrentEntry()
-//
-//
-// ---------------------------------------------------------------------------
-const TMMCScBkupArchiveDriveAndVector& CMMCScBkupReadDataTransferRequestBase::CurrentEntry() const
- {
- __ASSERT_ALWAYS( iCurrentIndex >= 0 && iCurrentIndex < iEntries->Count(), User::Invariant() );
-
- // Get the next entry
- const TMMCScBkupArchiveDriveAndVector& entry = (*iEntries)[ iCurrentIndex ];
- return entry;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::RunError()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupReadDataTransferRequestBase::RunError( TInt aError )
- {
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- const TSecureId sid = DataOwner().SecureId();
- __LOGFILE3("CMMCScBkupReadDataTransferRequestBase::RunError() - **** - aError: %d, sid: 0x%08x, drive: %c", aError, sid.iId, 'A' + CurrentDrive() );
-#endif
-
- TInt ret = KErrNone;
-
- if ( aError == KErrNotFound )
- {
- // KErrNotFound is treated as non-fatal.
- const TBool entryAvailable = PrepareForNextEntry();
-
- // Try the next entry (if any)
- TState nextState = EProcessData;
- if ( entryAvailable )
- {
- __LOGFILE("CMMCScBkupReadDataTransferRequestBase::RunError() - **** - another drive available for same DO - trying the next drive...");
- nextState = EProcessData;
- }
- else
- {
- // Done
- __LOGFILE("CMMCScBkupReadDataTransferRequestBase::RunError() - **** - no drives let for same DO...");
- nextState = EFinished;
- }
-
- SetState( nextState );
- CompleteSelf();
- }
- else
- {
- // Everything else is fatal
- __LOGFILE1( "CMMCScBkupReadDataTransferRequestBase::RunError() - **** - FATAL ERROR (%d)", aError );
- ret = CMMCScBkupTransferRequestBase::RunError( aError );
- }
- //
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupReadDataTransferRequestBase::DumpTransferDataL()
-//
-//
-// ---------------------------------------------------------------------------
-#ifdef DEBUGGING_DATA_TRANSFER
-void CMMCScBkupReadDataTransferRequestBase::DumpTransferDataL( RFs& aFsSession, const TDesC8& aData ) const
- {
- TPtrC subDirectory( KNullDesC );
- //
- switch( ElementType() )
- {
- case EMMCScBkupOwnerDataTypeJavaData:
- subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataJava);
- break;
- case EMMCScBkupOwnerDataTypeSystemData:
- subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataSystem);
- break;
- case EMMCScBkupOwnerDataTypePassiveData:
- subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataPassive);
- break;
- case EMMCScBkupOwnerDataTypeActiveData:
- subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataActive);
- break;
- default:
- User::Leave( KErrNotSupported );
- break;
- }
- //
- const TSecureId secureId = DataOwner().SecureId();
- _LIT(KMMCScBkupFormatDes, "%S%S");
- TFileName transferDumpFileName;
- const TDesC& path = PathInfo::MemoryCardRootPath();
- transferDumpFileName.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot);
-
- transferDumpFileName.Append( subDirectory );
- transferDumpFileName.Append( KMMCScBkupDataTransferDebuggingPathDataRestore );
- transferDumpFileName.AppendFormat( KMMCScBkupDataTransferDebuggingFileName, secureId.iId, 'a' + CurrentDrive() );
- //
- RFile64 file;
- TInt error = KErrNone;
- TEntry entry;
- if ( aFsSession.Entry( transferDumpFileName, entry ) == KErrNone )
- {
- // Already exists - append data
- error = file.Open( aFsSession, transferDumpFileName, EFileWrite | EFileStream | EFileShareExclusive );
- }
- else
- {
- entry.iSize = 0;
- error = file.Create( aFsSession, transferDumpFileName, EFileWrite | EFileStream | EFileShareExclusive );
- }
- //
- User::LeaveIfError( error );
- CleanupClosePushL( file );
- error = file.Write( entry.iSize, aData );
- CleanupStack::PopAndDestroy( &file );
- }
-#endif
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupTransferRequest.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,271 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupTransferRequestBase implementation
-*
-*
-*/
-
-#include "CMMCScBkupTransferRequest.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMMCScBkupDriver.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::CMMCScBkupTransferRequestBase()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupTransferRequestBase::CMMCScBkupTransferRequestBase( MMMCScBkupDriver& aDriver, TMMCScBkupOwnerDataType aElementType, TBool aUpdateOperationalSizes, TInt aPriority )
-: CActive( aPriority ), iDriver( aDriver ), iElementType( aElementType ), iUpdateOperationalSizes( aUpdateOperationalSizes )
- {
- CActiveScheduler::Add( this );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::~CMMCScBkupTransferRequestBase()
-//
-// C++ destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupTransferRequestBase::~CMMCScBkupTransferRequestBase()
- {
- Cancel();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::RequestL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupTransferRequestBase::RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver )
- {
- __ASSERT_ALWAYS( !IsActive(), User::Invariant() );
- //
- iDataOwner = &aOwner;
- SetObserver( aObserver );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::SingleDriveTransferCompleteL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupTransferRequestBase::SingleDriveTransferCompleteL()
- {
- if ( iUpdateOperationalSizes )
- {
- const TDriveNumber drive = CurrentDrive();
- const TInt amount = AmountOfDataTransferred();
- __LOG3("CMMCScBkupTransferRequestBase::SingleDriveTransferCompleteL() - drive: %c:, amount: %8d, elementType: %S", drive + 'A', amount, &MMCScBkupLogger::DataType( ElementType() ) );
- //
- ASSERT( drive >= EDriveA && drive <= EDriveZ );
- }
-
- ResetDataTransferCounter();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::TransferCompleteL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupTransferRequestBase::TransferCompleteL()
- {
- DataOwner().SetCompletionStatus( iElementType, ETrue );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::CompleteSelf()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupTransferRequestBase::CompleteSelf( TInt aCompletionCode )
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, aCompletionCode);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::SetObserver()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupTransferRequestBase::SetObserver( TRequestStatus& aObserver )
- {
- __ASSERT_DEBUG( iObserver == NULL, User::Invariant() );
- iObserver = &aObserver;
- aObserver = KRequestPending;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::CompleteObserverRequest()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupTransferRequestBase::CompleteObserverRequest( TInt aCompletionCode )
- {
- __LOG1("CMMCScBkupTransferRequestBase::CompleteObserverRequest() - aCompletionCode: %d", aCompletionCode);
- __ASSERT_ALWAYS(iObserver != NULL, User::Invariant());
- User::RequestComplete(iObserver, aCompletionCode);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::RunL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupTransferRequestBase::RunL()
- {
- __LOG2("CMMCScBkupTransferRequestBase::RunL() - START - iStatus: %d, iState: %d", iStatus.Int(), iState);
-
- User::LeaveIfError( iStatus.Int() );
- //
- switch( State() )
- {
- case ETransferData:
- __LOG("CMMCScBkupTransferRequestBase::RunL() - ETransferData");
- PrepareDataTransferL();
- break;
-
- case EProcessData:
- __LOG("CMMCScBkupTransferRequestBase::RunL() - EProcessData");
- ProcessDataChunkL();
- break;
-
- case EFinished:
- // Inform any interested derived classes
- __LOG("CMMCScBkupTransferRequestBase::RunL() - EFinished - transfer complete....");
- TransferCompleteL();
-
- // Notify observer
- __LOG("CMMCScBkupTransferRequestBase::RunL() - EFinished - complete observer...");
- CompleteObserverRequest( KErrNone );
- break;
-
- default:
- case EIdle:
- __LOG("CMMCScBkupTransferRequestBase::RunL() - EIdle - User::Invariant()");
- ASSERT( EFalse );
- break;
- }
-
- __LOG2("CMMCScBkupTransferRequestBase::RunL() - END - iStatus: %d, iState: %d", iStatus.Int(), iState);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::DoCancel()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupTransferRequestBase::DoCancel()
- {
- CompleteObserverRequest( KErrCancel );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::RunError()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupTransferRequestBase::RunError( TInt aError )
- {
- if ( aError != KErrNone )
- {
- __LOGFILE1("CMMCScBkupTransferRequestBase::RunError() - **** - ERROR (%d) -> complete observer with error code", aError);
- }
- //
- CompleteObserverRequest( aError );
- return KErrNone;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupTransferRequestBase::ProcessDataChunkL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupTransferRequestBase::ProcessDataChunkL()
- {
- __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - START");
-
- // Now call virtual function to do the processing
- const TBool requiresMoreChunkProcessing = ProcessChunkOfDataL();
- __LOG1("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - requiresMoreChunkProcessing: %d", requiresMoreChunkProcessing);
- //
- TState nextState = EProcessData;
- if ( !requiresMoreChunkProcessing )
- {
- __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - didnt require more processing... ");
- SingleDriveTransferCompleteL();
- //
- nextState = ETransferData;
- __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - nextState is: ETransferData");
- }
- else
- {
- __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - nextState is: EProcessData");
- }
-
- // Must check IsActive(), since CMMCScBkupReadDataTransferRequestBase::ProcessChunkOfDataL()
- // changes state and set's active within the ProcessChunkOfDataL callback
- if ( !IsActive() )
- {
- __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - not active - completing self and changing state!");
- SetState( nextState );
- CompleteSelf();
- }
- else
- {
- __LOG1("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - already active - state is: %d", State());
- }
-
- __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - END");
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/CMMCScBkupTransferWriteRequest.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,491 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupWriteDataTransferRequestBase implementation
-*
-*
-*/
-
-#include "CMMCScBkupTransferWriteRequest.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMMCScBkupDriver.h"
-#include "CMMCScBkupArchive.h"
-#include "MMCScBkupSBEUtils.h"
-#include "RMMCScBkupProgressSizer.h"
-#include "MMMCScBkupProgressObserver.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-#include "CMMCScBkupDriveAndOperationTypeManager.h"
-#include <pathinfo.h>
-
-
-
-#ifdef __MMCSCBKUP_DATA_LOGGING_ENABLED__
-
-static void __DebugDump( const TDesC& aFmt, const TUint8* aAddress, const TUint8* aDisplayStartAddress, TInt aLength, TInt aMaxLength)
- {
- const TInt maxLen = aMaxLength;
- TInt len = aLength;
- const TUint8* pDataAddr = aAddress;
-
- TBuf<81> out;
- TBuf<20> ascii;
- TInt offset = 0;
- const TUint8* a = pDataAddr;
- const TUint8* displayAddress = aDisplayStartAddress;
- //
- while(len>0)
- {
- out.Zero();
- ascii.Zero();
- out.AppendNumFixedWidth((TUint) displayAddress, EHex, 8);
- out.Append(_L(": "));
-
- TUint b;
- for (b=0; b<16; b++)
- {
- TUint8 c = ' ';
- if ((pDataAddr + offset + b) < pDataAddr + maxLen)
- {
- c = *(pDataAddr + offset + b);
- out.AppendNumFixedWidth(c, EHex, 2);
- }
- else
- {
- out.Append(_L(" "));
- }
- out.Append(' ');
- if (c<=0x20 || c>=0x7f || c=='%')
- c=0x2e;
- ascii.Append(TChar(c));
- }
- out.Append(ascii);
- out.ZeroTerminate();
-
- RDebug::Print(aFmt, &out);
-
- displayAddress += 16;
- a += 16;
- offset += 16;
- len -= 16;
- }
- }
-
-#endif
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupWriteDataTransferRequestBase::CMMCScBkupWriteDataTransferRequestBase()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupWriteDataTransferRequestBase::CMMCScBkupWriteDataTransferRequestBase(
- MMMCScBkupDriver& aDriver,
- MMMCScBkupIndexHandler& aIndexHandler,
- TMMCScBkupOwnerDataType aElementType,
- TSBDerivedType aExpectedTransferType,
- TInt aPriority )
-
-: CMMCScBkupTransferRequestBase( aDriver, aElementType, aPriority ),
- iIndexHandler( aIndexHandler ),
- iExpectedTransferType( aExpectedTransferType )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupWriteDataTransferRequestBase::~CMMCScBkupWriteDataTransferRequestBase()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupWriteDataTransferRequestBase::~CMMCScBkupWriteDataTransferRequestBase()
- {
- delete iTransferType;
- if ( iStreamIsOpen )
- {
- iStream.Close();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupWriteDataTransferRequestBase::RequestL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupWriteDataTransferRequestBase::RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver, const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperations )
- {
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- if ( ElementType() == EMMCScBkupOwnerDataTypeJavaData )
- {
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( aOwner.Owner().Identifier() );
- __LOG2("CMMCScBkupWriteDataTransferRequestBase::RequestL() - START - reading data from SBE for JavaHash: %S, ElementType: %S", hash, &MMCScBkupLogger::DataType( ElementType() ));
- CleanupStack::PopAndDestroy( hash );
- }
- else
- {
- __LOG2("CMMCScBkupWriteDataTransferRequestBase::RequestL() - START - reading data from SBE for DO: 0x%08x, ElementType: %S", aOwner.SecureId().iId, &MMCScBkupLogger::DataType( ElementType() ));
- }
-#endif
-
- iDriveAndOperations = &aDriveAndOperations;
- CMMCScBkupTransferRequestBase::RequestL( aOwner, aObserver );
- //
- iDriveFilter.Reset();
- iDriveFilter.SetPrimaryDriveFilter( iDriveAndOperations->DriveList() );
- iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() );
-
- // Set us going
- SetState( ETransferData );
- CompleteSelf();
- __LOG("CMMCScBkupWriteDataTransferRequestBase::RequestL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL()
- {
- MMMCScBkupDriver& driver = Driver();
- MMMCScBkupArchiveDataInterface& archiveDataInterface = driver.DrvADI();
-
- // Get a handle to the received data
- TBool finished = EFalse;
- CSBGenericTransferType* receivedTransferInfo = NULL;
- const TPtrC8& pData = driver.DrvSecureBackupClient().TransferDataInfoL( receivedTransferInfo, finished );
- iAdditionalTransferRequired = !finished;
-
- __LOG4("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - received: %d bytes from SBE for SID: 0x%08x, Drive: %c:, ElementType: %S", pData.Length(), DataOwner().SecureId().iId, 'A' + CurrentDrive(), &MMCScBkupLogger::DataType( ElementType() ) );
-
- // Validate the data
- CleanupStack::PushL( receivedTransferInfo );
- ValidateTransferInfoL( receivedTransferInfo );
- CleanupStack::PopAndDestroy( receivedTransferInfo );
-
- // If we've never written any registration data before, then we must
- // request a write stream at the current archive write pos...
- if ( pData.Length() && !iStreamIsOpen )
- {
- __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - stream isnt open - opening now..." );
-
- iStream = archiveDataInterface.ADIWriteStreamUncompressedLC();
- CleanupStack::Pop(); // iWriteStream - gets closed in dtor in case of leave
- iStreamIsOpen = ETrue;
- }
-
- // Write the data - assumes stream already open if this is not the
- // first time that we've received data for this drive...
- //
- // We don't use the externalisation operators, as we want to write
- // only the data (no leading byte count etc).
- if ( pData.Length() )
- {
- __LOG1("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - got %d bytes of data...", pData.Length() );
-
-#ifdef __MMCSCBKUP_DATA_LOGGING_ENABLED__
- _LIT(KDumpFormat, "SBEData - %S - ");
- __DebugDump( KDumpFormat, pData.Ptr(), pData.Ptr(), pData.Length(), pData.Length() );
-#endif
-
- // Write the data to the stream
- __LOG1("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - writing %d bytes to stream...", pData.Length() );
- iStream.WriteL(pData);
- __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - data written OK");
-
- // Update our stats. We overwrite any earlier estimate from the SBE
- // with the actual values that we ultimately end up writing to the
- // archive. This allows us to provide a more accurate restore progress
- // experience.
- DataTransferred( pData.Length() );
-
-#ifdef DEBUGGING_DATA_TRANSFER
- TRAP_IGNORE( DumpTransferDataL( archiveDataInterface.ADIFsSession(), pData ) );
-#endif
- }
-
- // If we've received everything we can commit & close the stream
- if ( finished )
- {
- __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - finished...");
-
- // Implicitly, if the stream is open then we have written some
- // data to the archive. Therefore we only add an index record
- // when the stream is open.
- if ( iStreamIsOpen )
- {
- __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - Committing stream...");
- iStream.CommitL();
-
- __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - Closing stream...");
- iStream.Close();
- iStreamIsOpen = EFalse;
-
- // Must store the position, as we're going to also write an index at
- // the end of this whole process.
- __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - Adding index record...");
- CMMCScBkupArchiveFooter& footer = driver.DrvArchive().Footer();
- const TMMCScBkupArchiveVector& info = archiveDataInterface.ADICurrentArchiveVectorInfo();
-
- // If we actually wrote something to the archive, then add an index record.
- if (info.Length())
- {
- iIndexHandler.AddIndexRecordL( footer, DataOwner(), info, CurrentDrive() );
- }
- }
- }
-
- // Not yet supporting chunked transfer
- __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - END");
- return EFalse;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL()
- {
- // If we must make a repeat transfer request, then we don't yet
- // move to the next drive.
- if ( iAdditionalTransferRequired )
- {
- // Must ask for more of the same data, so no need
- // to rebuild transfer info - we just reuse it
- RequestDataTransferL();
- }
- else
- {
- // Can move to the next drive
- TDriveNumber drive = EDriveA;
- const TBool driveAvailable = iDriveFilter.NextValidDrive( drive );
- __LOG1("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - current drive: %c", drive + 'A');
- __LOG1("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - driveAvailable: %d", driveAvailable);
-
- if ( driveAvailable )
- {
- const TBool dataTransferAllowableForDrive = iDriveAndOperations->IsDataTypeAllowedToAccessDrive( drive, ElementType() );
- __LOG1("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - dataTransferAllowableForDrive: %d", dataTransferAllowableForDrive);
-
- if ( dataTransferAllowableForDrive )
- {
- __LOG1("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - making transfer request for drive: %c", drive + 'A');
-
- // Update the current drive
- SetCurrentDrive( drive );
-
- // Make virtual function call to make transfer object
- const CSBGenericDataType& generic = DataOwner().Owner().Identifier();
- CSBGenericTransferType* transferType = PrepareTransferTypeL( generic, CurrentDrive(), DataOwner().Version() );
- delete iTransferType;
- iTransferType = transferType;
-
- // We have a transfer packet, so now request data
- RequestDataTransferL();
- }
- else
- {
- // Couldn't process this drive, let's try to find another drive.
- // This means we don't change state this time.
- __LOG("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - not allowed to back up this drive... trying next one...");
- CompleteSelf( KErrNone );
- }
- }
- else
- {
- // No more drives left, we've finished!
- __LOG("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - no more drives to process - we're finished!");
- SetState( EFinished );
- CompleteSelf();
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupWriteDataTransferRequestBase::CurrentDrive()
-//
-//
-// ---------------------------------------------------------------------------
-TDriveNumber CMMCScBkupWriteDataTransferRequestBase::CurrentDrive() const
- {
- return iCurrentDrive;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupWriteDataTransferRequestBase::ValidateTransferInfoL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupWriteDataTransferRequestBase::ValidateTransferInfoL( CSBGenericTransferType* aInfo )
- {
- if ( !aInfo )
- {
- User::Leave( KErrCorrupt );
- }
-
- // Check the type is as expected
- const TSBDerivedType type = aInfo->DerivedTypeL();
- if ( type != iExpectedTransferType )
- {
- __LOG2("CMMCScBkupWriteDataTransferRequestBase::ValidateTransferInfoL() - ERROR - types dont match! type: %d vs expected: %d", type, iExpectedTransferType );
- User::Leave( KErrNotSupported );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupWriteDataTransferRequestBase::RequestDataTransferL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupWriteDataTransferRequestBase::RequestDataTransferL()
- {
- __LOG3("CMMCScBkupWriteDataTransferRequestBase::RequestDataTransferL() - requesting data from SBE for SID: 0x%08x, Drive: %c:, ElementType: %S", DataOwner().SecureId().iId, 'A' + CurrentDrive(), &MMCScBkupLogger::DataType( ElementType() ) );
-
- CSBEClient& sbeClient = Driver().DrvSecureBackupClient();
- sbeClient.RequestDataL( *iTransferType, iStatus );
- SetActive();
- SetState( EProcessData );
-
- // Report the progress
- RMMCScBkupProgressSizer progressSizer( Driver().DrvParamsBase().DriveAndOperations() );
- progressSizer.BackupReportFixedProgressForOpL( Driver().DrvProgressHandler(), ElementType() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupWriteDataTransferRequestBase::RunError()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMMCScBkupWriteDataTransferRequestBase::RunError( TInt aError )
- {
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
- const TSecureId sid = DataOwner().SecureId();
- __LOGFILE3("CMMCScBkupWriteDataTransferRequestBase::RunError() - **** - aError: %d, sid: 0x%08x, drive: %c", aError, sid.iId, 'A' + CurrentDrive() );
-#endif
-
- TInt ret = KErrNone;
-
- // Make sure we close the stream (if we had it open)
- if ( iStreamIsOpen )
- {
- iStream.Close();
- iStreamIsOpen = EFalse;
- }
-
- // Now notify the observer or silently try again (depends on type of error)
- if ( aError == KErrNotFound )
- {
- __LOGFILE1("CMMCScBkupWriteDataTransferRequestBase::RunError() - **** - non fatal error (%d) so trying the next drive...", aError);
-
- // Try the next drive - if none is available, it will complete the
- // observer as if nothing went wrong.
- iAdditionalTransferRequired = EFalse;
- SetState( ETransferData );
- CompleteSelf();
- }
- else
- {
- __LOGFILE1("CMMCScBkupWriteDataTransferRequestBase::RunError() - **** - FATAL ERROR (%d)", aError);
- ret = CMMCScBkupTransferRequestBase::RunError( aError );
- }
- //
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupWriteDataTransferRequestBase::DumpTransferDataL()
-//
-//
-// ---------------------------------------------------------------------------
-#ifdef DEBUGGING_DATA_TRANSFER
-void CMMCScBkupWriteDataTransferRequestBase::DumpTransferDataL( RFs& aFsSession, const TDesC8& aData ) const
- {
- TPtrC subDirectory( KNullDesC );
- //
- switch( ElementType() )
- {
- case EMMCScBkupOwnerDataTypeJavaData:
- subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataJava);
- break;
- case EMMCScBkupOwnerDataTypeSystemData:
- subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataSystem);
- break;
- case EMMCScBkupOwnerDataTypePassiveData:
- subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataPassive);
- break;
- case EMMCScBkupOwnerDataTypeActiveData:
- subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataActive);
- break;
- default:
- User::Leave( KErrNotSupported );
- break;
- }
- //
- const TSecureId secureId = DataOwner().SecureId();
- _LIT(KMMCScBkupFormatDes, "%S%S");
- TFileName transferDumpFileName;
- const TDesC& path = PathInfo::MemoryCardRootPath();
- transferDumpFileName.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot);
-
- transferDumpFileName.Append( subDirectory );
- transferDumpFileName.Append( KMMCScBkupDataTransferDebuggingPathDataBackup );
- transferDumpFileName.AppendFormat( KMMCScBkupDataTransferDebuggingFileName, secureId.iId, 'a' + CurrentDrive() );
- //
- RFile64 file;
- TInt error = KErrNone;
- TEntry entry;
- if ( aFsSession.Entry( transferDumpFileName, entry ) == KErrNone )
- {
- // Already exists - append data
- error = file.Open( aFsSession, transferDumpFileName, EFileWrite | EFileStream | EFileShareExclusive );
- }
- else
- {
- entry.iSize = 0;
- error = file.Create( aFsSession, transferDumpFileName, EFileWrite | EFileStream | EFileShareExclusive );
- }
- //
- User::LeaveIfError( error );
- CleanupClosePushL( file );
- error = file.Write( entry.iSize, aData );
- CleanupStack::PopAndDestroy( &file );
- }
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/MMCScBkupArchiveUtils.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,709 +0,0 @@
-/*
-* Copyright (c) 2005 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: MMCScBkupArchiveUtils implementation
-*
-*
-*/
-
-#include "MMCScBkupArchiveUtils.h"
-
-// System includes
-#include <s32file.h>
-#include <s32mem.h>
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMCScBkupDllUids.h"
-#include "MMCScBkupPhoneModelUtils.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupArchiveHeader.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-#include "MMCScBkupArchiveFlags.h"
-
-// Constants
-const TInt8 KMMCScBkupArchiveFileFormatVersionMajor = 1;
-#ifdef RD_FILE_MANAGER_BACKUP
-const TInt8 KMMCScBkupArchiveFileFormatVersionMinor = 1;
-#else
-const TInt8 KMMCScBkupArchiveFileFormatVersionMinor = 0;
-#endif
-const TInt16 KMMCScBkupArchiveFileFormatVersionBuild = 1;
-const TUid KMMCScBkupArchiveFileFormatUid1 = { KMMCAppEngUID3 };
-const TUid KMMCScBkupArchiveFileFormatUid2 = { 0 };
-const TUid KMMCScBkupArchiveFileFormatUid3 = { 0x0BACCCCC }; // FIX
-
- /**
- * Fixed Header
- * ============
- *
- * 12 bytes = 3 uids
- * 4 bytes = 1 uid crc checksum
- *
- * ARCHIVE FILE FORMAT VERSION
- * {
- * 1 byte = version major
- * 1 byte = version minor
- * 2 bytes = version build
- * }
- *
- * 4 bytes = size of footer in bytes - this is always the same
- * fixed length, hence we can write the size here.
- * The value can then be used to work from the back of the
- * archive to the starting position of the footer (where
- * most of the juicy info is).
- *
- * 4 bytes = archive flags
- *
- * 4 bytes = archive payload CRC (activated when RD_FILE_MANAGER_BACKUP)
- *
- * 4 bytes = archive category
- *
- * 4 bytes = archive header CRC (activated when RD_FILE_MANAGER_BACKUP)
- *
- * KMMCScSpareByteCount bytes = spare padding
- *
- * 1 byte = phone model version string length
- * n bytes = phone model version string
- *
- *
- *
- * Note that we deliberately do not use the streaming chevrons
- * as we then risk the problem of running the string through
- * a unicode compressor first.
- */
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::ArchiveUidType()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupArchiveUtils::ArchiveUidType(TUidType& aType)
- {
- aType = TUidType( KMMCScBkupArchiveFileFormatUid1,
- KMMCScBkupArchiveFileFormatUid2,
- KMMCScBkupArchiveFileFormatUid3 );
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::ArchiveCheckedUid()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupArchiveUtils::ArchiveCheckedUid(TCheckedUid& aCheckedUids)
- {
- TUidType uidType;
- ArchiveUidType( uidType );
- aCheckedUids.Set( uidType );
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::PhoneModelFromArchiveLC()
-//
-//
-// ---------------------------------------------------------------------------
-HBufC8* MMCScBkupArchiveUtils::PhoneModelFromArchiveLC( MMMCScBkupArchiveDataInterface& aADI )
- {
- const TInt phoneModelOffset = OffsetOfModelInformation();
- //
- RReadStream stream( aADI.ADIReadStreamUncompressedLC( phoneModelOffset ) );
- HBufC8* modelInfo = PhoneModelFromArchiveLC( stream);
- CleanupStack::PopAndDestroy(); // stream
- //
- return modelInfo;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::ReadPhoneValidityInformationL()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupArchiveUtils::ReadPhoneValidityInformationL( RFs& aFsSession, const TDesC& aFileName, HBufC8*& aPhoneModelData, TBitFlags& aArchiveFlags, TVersion& aArchiveVersion )
- {
- __ASSERT_DEBUG( aPhoneModelData == NULL, User::Invariant() );
- //
- RFile64 file;
- TInt error = file.Open( aFsSession, aFileName, EFileShareReadersOnly | EFileStream | EFileRead );
- User::LeaveIfError( error );
- CleanupClosePushL(file);
-
- // First, read the archive flags
- aArchiveFlags = ReadArchiveFlagsL( file );
-
- // Read version
- ReadArchiveVersionL( file, aArchiveVersion );
-
- // Then, create a stream interface to the file
- const TInt phoneModelOffset = OffsetOfModelInformation();
- RFileReadStream stream( file, phoneModelOffset );
- CleanupStack::Pop( &file );
- CleanupClosePushL( stream ); // stream takes ownership of the file now
- //
- HBufC8* modelInfo = PhoneModelFromArchiveLC( stream );
-
- // Unfortunately we have to juggle the cleanup stack
- CleanupStack::Pop( modelInfo );
- CleanupStack::PopAndDestroy( &stream ); // also closes the file
-
- // Done
- aPhoneModelData = modelInfo;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::ArchiveRunTimeFileFormatVersion()
-//
-//
-// ---------------------------------------------------------------------------
-TVersion MMCScBkupArchiveUtils::ArchiveRunTimeFileFormatVersion()
- {
- return TVersion( KMMCScBkupArchiveFileFormatVersionMajor,
- KMMCScBkupArchiveFileFormatVersionMinor,
- KMMCScBkupArchiveFileFormatVersionBuild );
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::WriteHeaderL()
-//
-//
-// ---------------------------------------------------------------------------
-const TMMCScBkupArchiveVector& MMCScBkupArchiveUtils::WriteHeaderL( MMMCScBkupArchiveDataInterface& aADI,
- TBitFlags aCategory )
- {
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - START");
- RWriteStream stream( aADI.ADIWriteStreamUncompressedLC() );
-
- // 16 bytes = uids + *uid* checksum
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [16] write uids + checksum");
- TCheckedUid checkedUid;
- ArchiveCheckedUid( checkedUid );
- const TPtrC8 pUidAndCRC( checkedUid.Des() );
- stream.WriteL( pUidAndCRC );
-
- // 4 bytes = file format version
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] write version");
- const TVersion version( ArchiveRunTimeFileFormatVersion() );
- stream.WriteInt8L( version.iMajor );
- stream.WriteInt8L( version.iMinor );
- stream.WriteInt16L( version.iBuild );
-
- // 4 bytes = Footer length - starts life as length of 0, and
- // is then written to again later on after the footer has
- // been exteranlised.
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] write size of footer (starts life as 0)");
- const TInt footerLength = 0;
- stream.WriteInt32L( footerLength );
-
- // 4 bytes = Archive flags
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] archive flags (archive starts life invalid)");
- const TUint32 defaultArchiveFlags = DefaultArchiveFlags();
- stream.WriteUint32L( defaultArchiveFlags );
-
- // 4 bytes = Initial payload CRC value, this will be updated with the final
- // CRC once the entire archive has been prepared.
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] archive payload CRC");
- const TUint32 initialPayloadCRC = 0;
- stream.WriteUint32L( initialPayloadCRC );
-
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] archive category");
- stream.WriteUint32L( aCategory.iFlags );
-
- // 4 bytes = Initial header CRC value, this will be updated with the final
- // CRC once the entire archive has been prepared.
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] archive header CRC");
- const TUint32 initialHeaderCRC = 0;
- stream.WriteUint32L( initialHeaderCRC );
-
- // KMMCScSpareByteCount = padding, for future use
- __LOG1("MMCScBkupArchiveUtils::WriteHeaderL() - [%d] padding/spare data", KMMCScSpareByteCount);
- for(TInt i = 0; i < KMMCScSpareByteCount/sizeof(TInt32); i++)
- {
- stream.WriteInt32L( 0 );
- }
-
- // 1 byte = Phone model version string length
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 1] phone model length");
- HBufC8* phoneModelString = MMCScBkupPhoneModelUtils::CurrentPhoneModelLC();
- stream.WriteInt8L( phoneModelString->Length() );
-
- // Then the version string itself
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [??] phone model string");
- stream.WriteL( *phoneModelString );
-
- // Tidy up
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - committing stream...");
- stream.CommitL();
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - destroying stream...");
- CleanupStack::PopAndDestroy( 2 ); // phoneModelString and stream
-
- __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - END");
- return aADI.ADICurrentArchiveVectorInfo();
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::ReadHeaderL()
-//
-//
-// ---------------------------------------------------------------------------
-const TMMCScBkupArchiveVector& MMCScBkupArchiveUtils::ReadHeaderL( MMMCScBkupArchiveDataInterface& aADI, CMMCScBkupArchiveHeader& aHeader )
- {
- __LOG("MMCScBkupArchiveUtils::ReadHeaderL() - START");
- RReadStream stream( aADI.ADIReadStreamUncompressedLC() );
-
- // 16 bytes = uids + *uid* checksum
- TBuf8<16> uidBuffer;
- stream.ReadL( uidBuffer, uidBuffer.MaxLength() );
-
- // Create a UID type objjec
- TCheckedUid checkedUid( uidBuffer );
- const TUidType uids( checkedUid.UidType()) ;
- __LOG3("MMCScBkupArchiveUtils::ReadHeaderL() - uids: 0x%08x/0x%08x/0x%08x", uids[0], uids[1], uids[2] );
- if ( uids[0] == KNullUid && uids[1] == KNullUid && uids[2] == KNullUid )
- {
- // Apparently, TCheckedUid sets the uids to 0 when the CRC doesn't match
- // the value read from the file.
- User::Leave( KErrNotSupported );
- }
- aHeader.SetCheckedUid( checkedUid );
-
- // 4 bytes = file format version
- TVersion version;
- version.iMajor = stream.ReadInt8L();
- version.iMinor = stream.ReadInt8L();
- version.iBuild = stream.ReadInt16L();
- aHeader.SetVersion( version );
- __LOG3("MMCScBkupArchiveUtils::ReadHeaderL() - version: %3d.%3d.%6d", version.iMajor, version.iMinor, version.iBuild );
-
- // 4 bytes = Length of footer
- const TInt footerLength = stream.ReadInt32L();
- aHeader.SetFooterLength( footerLength );
- __LOG1("MMCScBkupArchiveUtils::ReadHeaderL() - footerLength: %d", footerLength);
-
- // 4 bytes = Archive flags
- const TUint32 archiveFlags = stream.ReadUint32L();
- aHeader.SetArchiveFlags( archiveFlags );
- __LOG1("MMCScBkupArchiveUtils::ReadHeaderL() - archiveFlags: %d", archiveFlags);
-
- // 4 bytes = Archive payload CRC
- const TUint32 payloadCRC = stream.ReadUint32L();
- __LOG1("MMCScBkupArchiveUtils::ReadHeaderL() - archive payload CRC: %d", payloadCRC);
-
- // 4 bytes = Archive Category
- const TUint32 archiveCategory = stream.ReadUint32L();
- __LOG1("MMCScBkupArchiveUtils::ReadHeaderL() - archiveCategory: %d", archiveCategory);
-
- // 4 bytes = Archive header CRC
- const TUint32 headerCRC = stream.ReadUint32L();
- __LOG1("MMCScBkupArchiveUtils::ReadHeaderL() - archive header CRC: %d", headerCRC);
-
- // KMMCScSpareByteCount of padding (spare) data. Skip for now
- for(TInt i = 0; i < KMMCScSpareByteCount/sizeof(TInt32); i++)
- {
- (void) stream.ReadInt32L();
- }
-
- // Then the version string itself - which is handled through a separate method:
- HBufC8* phoneModel = PhoneModelFromArchiveLC( stream );
- aHeader.SetPhoneModelIdentifierL( *phoneModel );
- CleanupStack::PopAndDestroy( phoneModel );
-
- // Clean up
- CleanupStack::PopAndDestroy(); // stream
-
- __LOG("MMCScBkupArchiveUtils::ReadHeaderL() - END");
- return aADI.ADICurrentArchiveVectorInfo();
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::OffsetOfModelInformation()
-//
-//
-// ---------------------------------------------------------------------------
-TInt MMCScBkupArchiveUtils::OffsetOfModelInformation()
- {
- return EArchiveOffsetPhoneModelStringLength;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::PhoneModelFromArchiveLC()
-//
-//
-// ---------------------------------------------------------------------------
-HBufC8* MMCScBkupArchiveUtils::PhoneModelFromArchiveLC( RReadStream& aStream )
- {
- const TInt length = aStream.ReadInt8L();
-
- // Validate against preconditions
- const TInt maxLength = MMCScBkupPhoneModelUtils::MaximumPhoneModelIdentifierLength();
- if ( length > maxLength || length < 0 )
- {
- User::Leave( KErrCorrupt );
- }
-
- // Now try to read the model identifier
- HBufC8* model = HBufC8::NewLC( length );
- TPtr8 pModel( model->Des() );
- aStream.ReadL( pModel, length );
-
- // All done
- return model;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::DefaultArchiveFlags()
-//
-//
-// ---------------------------------------------------------------------------
-TUint32 MMCScBkupArchiveUtils::DefaultArchiveFlags()
- {
- return EMMCScBkupArchiveFlagsDefault;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::SetArchiveContentAsValidL()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupArchiveUtils::SetArchiveContentAsValidL( RFile64& aArchive )
- {
- TInt error = KErrNone;
-
- // Calculate the offset to the archive flags:
- const TUint archiveFlagsFileOffset = EArchiveOffsetArchiveFlags;
-
- // Flags are four bytes. Read the existing raw flag data
- TBuf8< KMMCScArchiveFlagsByteCount > flagData;
- error = aArchive.Read( static_cast<TInt64>( archiveFlagsFileOffset ), flagData );
- User::LeaveIfError( error );
-
- // Interpret the flag data as real flags
- RDesReadStream readStream( flagData );
- CleanupClosePushL( readStream );
- TUint32 archiveFlags = readStream.ReadUint32L();
- CleanupStack::PopAndDestroy( &readStream );
-
- // Twiddle the "archive is complete/valid" bits
- archiveFlags |= EMMCScBkupArchiveFlagsContentValid;
-
- // Write the flags back out the descriptor
- flagData.Zero();
- RDesWriteStream writeStream( flagData );
- CleanupClosePushL( writeStream );
- writeStream.WriteUint32L( archiveFlags );
- writeStream.CommitL();
- CleanupStack::PopAndDestroy( &writeStream );
-
- // Then write them to the file itself
- error = aArchive.Write( static_cast<TInt64>( archiveFlagsFileOffset ), flagData );
- User::LeaveIfError( error );
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::SetFooterLengthL()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupArchiveUtils::SetFooterLengthL( RFile64& aArchive, TInt aLength )
- {
- TInt error = KErrNone;
-
- // Calculate the offset to the footer length:
- const TUint archiveFooterLengthOffset = EArchiveOffsetFooterLength;
-
- // Prepare externalized representation of length
- TBuf8< KMMCScArchiveFooterLengthByteCount > footerLengthData;
- RDesWriteStream writeStream( footerLengthData );
- CleanupClosePushL( writeStream );
- writeStream.WriteInt32L( aLength );
- writeStream.CommitL();
- CleanupStack::PopAndDestroy( &writeStream );
-
- // Then write them to the file itself
- error = aArchive.Write( static_cast<TInt64>( archiveFooterLengthOffset ), footerLengthData );
- User::LeaveIfError( error );
- }
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::ReadBkUpCategoryInformationL()
-//
-//
-// ---------------------------------------------------------------------------
-TBitFlags MMCScBkupArchiveUtils::ReadBkUpCategoryInformationL( RFs& aFsSession, const TDesC& aFileName )
- {
- RFile64 file;
- TInt error = file.Open( aFsSession, aFileName, EFileShareReadersOnly | EFileStream | EFileRead );
- User::LeaveIfError( error );
- CleanupClosePushL(file);
-
- // Then, create a stream interface to the file
- RFileReadStream stream( file, EArchiveOffsetArchiveCategory );
- CleanupStack::Pop( &file );
- CleanupClosePushL( stream ); // stream takes ownership of the file now
- //
- TUint category = stream.ReadUint32L();
-
- CleanupStack::PopAndDestroy( &stream ); // also closes the file
-
- TBitFlags ret;
- ret.SetValue( category );
-
- return ret;
- }
-
-
-#ifdef RD_FILE_MANAGER_BACKUP
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::SetArchiveCrcsL()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupArchiveUtils::SetArchiveCrcsL( RFile64& aArchive, TUint32 aCrc )
- {
- TInt error = KErrNone;
-
- // Payload crc
- SetArchiveCrcL( aArchive, aCrc, EArchiveOffsetArchivePayloadCRC );
-
- // Calculate and write header crc also to the file
- TBuf8< KMMCScArchivePhoneModelStringLength > length;
- TUint32 modelLength;
- TUint32 headerCrc = 0;
-
- error = aArchive.Read( static_cast<TInt64>( EArchiveOffsetPhoneModelStringLength ), length );
- User::LeaveIfError(error);
- RDesReadStream readStream( length );
- CleanupClosePushL( readStream );
- modelLength = readStream.ReadUint8L();
- CleanupStack::PopAndDestroy( &readStream );
-
- CalculateCrcFromArchive( headerCrc, aArchive, 0, EArchiveOffsetArchiveHeaderCRC);
- CalculateCrcFromArchive( headerCrc, aArchive, EArchiveOffsetArchiveHeaderCRC + KMMCScArchiveCrcByteCount,
- KMMCScSpareByteCount + KMMCScArchivePhoneModelStringLength + modelLength);
- SetArchiveCrcL( aArchive, headerCrc, EArchiveOffsetArchiveHeaderCRC );
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::ValidateArchiveCrcsL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool MMCScBkupArchiveUtils::ValidateArchiveCrcsL( RFs& aFsSession, const TDesC& aFileName )
- {
- TBool validCrc = EFalse;
-
- RFile64 file;
- TInt64 size;
-
- TInt error = file.Open( aFsSession, aFileName, EFileShareReadersOnly | EFileRead );
-
- if ( error == KErrNone && file.Size(size) == KErrNone)
- {
- TBuf8< KMMCScArchiveFlagsByteCount > headerCrc;
- TBuf8< KMMCScArchiveFlagsByteCount > payloadCrc;
- TBuf8< KMMCScArchivePhoneModelStringLength > length;
- TUint32 archivedHeaderCrc, calculatedHeaderCrc;
- TUint32 archivedPayloadCrc, calculatedPayloadCrc;
- TUint32 modelLength;
-
- // Read crcs from header
- error = file.Read( static_cast<TInt64>( EArchiveOffsetArchiveHeaderCRC ), headerCrc );
- User::LeaveIfError(error);
- error = file.Read( static_cast<TInt64>( EArchiveOffsetArchivePayloadCRC ), payloadCrc );
- User::LeaveIfError(error);
- error = file.Read( static_cast<TInt64>( EArchiveOffsetPhoneModelStringLength ), length );
- User::LeaveIfError(error);
- CleanupClosePushL( file );
-
- RDesReadStream readStream( headerCrc );
- CleanupClosePushL( readStream );
- archivedHeaderCrc = readStream.ReadUint32L();
- readStream.Close();
- readStream.Open(payloadCrc);
- archivedPayloadCrc = readStream.ReadUint32L();
- readStream.Close();
- readStream.Open(length);
- modelLength = readStream.ReadUint8L();
- CleanupStack::PopAndDestroy( &readStream );
-
- // Calculate crc from header in two parts
- calculatedHeaderCrc = 0;
- CalculateCrcFromArchive( calculatedHeaderCrc, file, 0, EArchiveOffsetArchiveHeaderCRC);
- CalculateCrcFromArchive( calculatedHeaderCrc, file, EArchiveOffsetArchiveHeaderCRC + KMMCScArchiveCrcByteCount,
- KMMCScSpareByteCount + KMMCScArchivePhoneModelStringLength + modelLength);
-
- // Calculate crc from payload and footer
- TInt payloadSize = size - (EArchiveOffsetPhoneModelString + modelLength);
- calculatedPayloadCrc = 0;
- CalculateCrcFromArchive( calculatedPayloadCrc, file, EArchiveOffsetPhoneModelString + modelLength, payloadSize);
-
- if(archivedPayloadCrc == calculatedPayloadCrc && archivedHeaderCrc == calculatedHeaderCrc)
- {
- validCrc = ETrue;
- }
- else
- {
- __LOG4("MMCScBkupArchiveUtils::ValidateArchiveCrcsL() - crc mismatch: %u vs. %u - %u vs. %u",
- archivedPayloadCrc, calculatedPayloadCrc, archivedHeaderCrc, calculatedHeaderCrc);
- }
-
- CleanupStack::PopAndDestroy( &file );
- }
-
- return validCrc;
- }
-#endif // RD_FILE_MANAGER_BACKUP
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::ReadArchiveFlagsL()
-//
-//
-// ---------------------------------------------------------------------------
-TBitFlags MMCScBkupArchiveUtils::ReadArchiveFlagsL( RFile64& aArchive )
- {
- TInt error = KErrNone;
-
- // Calculate the offset to the archive flags:
- const TUint archiveFlagsFileOffset = EArchiveOffsetArchiveFlags;
-
- // Flags are four bytes. Read the existing raw flag data
- TBuf8< KMMCScArchiveFlagsByteCount > flagData;
- error = aArchive.Read( static_cast<TInt64>( archiveFlagsFileOffset ), flagData );
- User::LeaveIfError( error );
-
- // Interpret the flag data as real flags
- RDesReadStream readStream( flagData );
- CleanupClosePushL( readStream );
- TUint32 archiveFlags = readStream.ReadUint32L();
- CleanupStack::PopAndDestroy( &readStream );
-
- // Done
- TBitFlags ret;
- ret.SetValue( archiveFlags );
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::ReadArchiveVersionL()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupArchiveUtils::ReadArchiveVersionL( RFile64& aArchive, TVersion& aVersion )
- {
- TInt error = KErrNone;
-
- // Calculate the offset to the archive flags:
- const TUint archiveVersionFileOffset = EArchiveOffsetFileFormatVersion;
-
- // Flags are four bytes. Read the existing raw flag data
- TBuf8< KMMCScArchiveVersionByteCount > versionData;
- error = aArchive.Read( static_cast<TInt64>( archiveVersionFileOffset ), versionData );
- User::LeaveIfError( error );
-
- // Interpret the flag data as real flags
- RDesReadStream readStream( versionData );
- CleanupClosePushL( readStream );
- aVersion.iMajor = readStream.ReadInt8L();
- aVersion.iMinor = readStream.ReadInt8L();
- aVersion.iBuild = readStream.ReadInt16L();
- CleanupStack::PopAndDestroy( &readStream );
- }
-
-
-#ifdef RD_FILE_MANAGER_BACKUP
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::SetArchiveCrcL()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupArchiveUtils::SetArchiveCrcL( RFile64& aArchive, TUint32 aCrc, TUint aOffset )
- {
- TInt error = KErrNone;
-
- // Prepare externalized representation of crc
- TBuf8< KMMCScArchiveCrcByteCount > crcData;
- RDesWriteStream writeStream( crcData );
- CleanupClosePushL( writeStream );
- writeStream.WriteInt32L( aCrc );
- writeStream.CommitL();
- CleanupStack::PopAndDestroy( &writeStream );
-
- // Then write crc to the file itself
- error = aArchive.Write( static_cast<TInt64>( aOffset ), crcData );
- User::LeaveIfError( error );
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupArchiveUtils::CalculateCrcFromArchive()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupArchiveUtils::CalculateCrcFromArchive( TUint32& aCrc, RFile64& aArchive, TUint32 aOffset, TUint32 aLength )
- {
- const TInt KBigBufSize=0x10000;
- const TInt KMediumBufSize=0x8000;
- const TInt KSmallBufSize=0x1000;
-
- // Allocate as large buffer as possible for crc validation, because
- // need to read file content in chunks for crc calculation.
- HBufC8* bufPtr = HBufC8::New(KBigBufSize);
-
- if ( bufPtr == NULL )
- bufPtr = HBufC8::New(KMediumBufSize);
- if ( bufPtr == NULL )
- bufPtr = HBufC8::New(KSmallBufSize);
-
- if ( bufPtr != NULL)
- {
- TPtr8 copyBuf = bufPtr->Des();
- TInt64 pos = aOffset;
- TInt size = aLength;
-
- // Loop through archive file skipping archive crc
- while(size)
- {
- TInt s;
-
- s = Min( size, copyBuf.MaxSize() );
-
- TInt error = aArchive.Read( pos, copyBuf, s );
-
- if ( error == KErrNone && copyBuf.Length() != s )
- break;
-
- pos += s;
- size -= s;
- Mem::Crc32(aCrc, copyBuf.Ptr(), copyBuf.Length());
- }
-
- delete bufPtr;
- }
- }
-#endif // RD_FILE_MANAGER_BACKUP
-
--- a/filemanager/bkupengine/src/MMCScBkupLogger.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,251 +0,0 @@
-/*
-* Copyright (c) 2005 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: MMCScBkupLogger implementation
-*
-*
-*/
-
-#include "MMCScBkupLogger.h"
-
-// System includes
-#include <coemain.h>
-#include <e32svr.h>
-#include <flogger.h>
-
-#if defined(__MMCSCBKUPLOGGING_ENABLED__)
-
-// Constants
-const TInt KMMCScBkupLoggingMaxLogTextLength = 1024;
-const TInt KMMCScBkupLoggingMaxLogSize = 10240;
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// MMCScBkupLogger::LogRaw()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupLogger::LogRaw( const TDesC& aData )
- {
-#if defined(__MMCSCBKUPLOGGING_MODE_FILE__)
-
- _LIT( KMMCScBkupLoggingDir, "FMBkup" );
- _LIT( KMMCScBkupLoggingFileName, "FMBkup.txt" );
-
- /////////////
- // FLOGGER
- /////////////
- RFileLogger::Write( KMMCScBkupLoggingDir, KMMCScBkupLoggingFileName, EFileLoggingModeAppend, aData );
-
-#elif defined(__MMCSCBKUPLOGGING_MODE_RDEBUG__)
-
- /////////////
- // RDEBUG
- /////////////
- _LIT( KLogComponentName, "[MMC] ");
- HBufC* printBuf = HBufC::New( aData.Length() + KLogComponentName().Length() );
- if ( printBuf )
- {
- TPtr pBuf( printBuf->Des() );
- pBuf.Append( KLogComponentName );
- pBuf.Append( aData );
- RDebug::Print( *printBuf );
- delete printBuf;
- }
- else
- {
- RDebug::Print( aData );
- }
-
-#endif
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupLogger::Log()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupLogger::Log( TRefByValue<const TDesC> aFmt, ... )
- {
- VA_LIST list;
- VA_START( list, aFmt );
-
- HBufC* buf = HBufC::New( KMMCScBkupLoggingMaxLogTextLength );
- if ( buf )
- {
- TPtr pBuf( buf->Des() );
- pBuf.FormatList(aFmt, list);
- LogRaw( *buf );
- delete buf;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupLogger::DataType()
-//
-//
-// ---------------------------------------------------------------------------
-const TDesC& MMCScBkupLogger::DataType( TMMCScBkupOwnerDataType aType )
- {
- switch( aType )
- {
- case EMMCScBkupOwnerDataTypeDataOwner:
- {
- _LIT(KRet, "EMMCScBkupOwnerDataTypeDataOwner");
- return KRet;
- }
- case EMMCScBkupOwnerDataTypeJavaData:
- {
- _LIT(KRet, "EMMCScBkupOwnerDataTypeJavaData");
- return KRet;
- }
- case EMMCScBkupOwnerDataTypePublicData:
- {
- _LIT(KRet, "EMMCScBkupOwnerDataTypePublicData");
- return KRet;
- }
- case EMMCScBkupOwnerDataTypeSystemData:
- {
- _LIT(KRet, "EMMCScBkupOwnerDataTypeSystemData");
- return KRet;
- }
- case EMMCScBkupOwnerDataTypeActiveData:
- {
- _LIT(KRet, "EMMCScBkupOwnerDataTypeActiveData");
- return KRet;
- }
- case EMMCScBkupOwnerDataTypePassiveData:
- {
- _LIT(KRet, "EMMCScBkupOwnerDataTypePassiveData");
- return KRet;
- }
- case EMMCScBkupOwnerDataTypeAny:
- {
- _LIT(KRet, "EMMCScBkupOwnerDataTypeAny");
- return KRet;
- }
- default:
- break;
- }
-
- _LIT(KRet, "UNKNOWN!");
- return KRet;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupLogger::FriendlyNameForSID()
-//
-//
-// ---------------------------------------------------------------------------
-const TDesC& MMCScBkupLogger::FriendlyNameForSID( TSecureId aSID )
- {
- switch( aSID.iId )
- {
- case 0x10202be9:
- {
- _LIT(KRet, "[CentRep]");
- return KRet;
- }
- case 0x10008d38:
- {
- _LIT(KRet, "[FavouritesSrv]");
- return KRet;
- }
- case 0x101f51f2:
- {
- _LIT(KRet, "[RightsServer]");
- return KRet;
- }
- case 0x101f7993:
- {
- _LIT(KRet, "[VpnManager]");
- return KRet;
- }
- case 0x101fd288:
- {
- _LIT(KRet, "[EventMediator]");
- return KRet;
- }
- default:
- break;
- }
-
- _LIT(KRet, "");
- return KRet;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupLogger::LogFile()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupLogger::LogFile( TRefByValue<const TDesC> aFmt, ... )
- {
- VA_LIST list;
- VA_START( list, aFmt );
-
- HBufC* buf = HBufC::New( KMMCScBkupLoggingMaxLogTextLength );
- if ( buf )
- {
- TPtr pBuf( buf->Des() );
- pBuf.FormatList(aFmt, list);
-#ifdef _DEBUG
- LogRaw( *buf );
-#endif
- RFile64 file;
- RFs& fsSession(CCoeEnv::Static()->FsSession());
- TEntry entry;
- TInt error;
-
- if ( fsSession.Entry( KMMCScBkupLoggingFullPathAndName, entry ) == KErrNone )
- {
- error = file.Open( fsSession, KMMCScBkupLoggingFullPathAndName, EFileWrite | EFileShareExclusive );
- }
- else
- {
- entry.iSize = 0;
- error = file.Create( fsSession, KMMCScBkupLoggingFullPathAndName, EFileWrite | EFileShareExclusive );
- }
-
- if(error == KErrNone)
- {
- TInt64 size = 0;
-
- error = file.Size( size );
- if(error == KErrNone && size < KMMCScBkupLoggingMaxLogSize)
- {
- HBufC8* buf8 = HBufC8::New( KMMCScBkupLoggingMaxLogTextLength );
- if(buf8)
- {
- const TText8 KLineFeed( '\n' );
- TPtr8 data( buf8->Des() );
-
- data.Copy(buf->Des());
- data.Append(KLineFeed);
- file.Write(static_cast<TInt64>(entry.iSize), data);
- delete buf8;
- }
- }
- }
- file.Close();
- delete buf;
- }
- }
-
-#endif
-
--- a/filemanager/bkupengine/src/MMCScBkupPhoneModelUtils.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* Copyright (c) 2005 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: MMCScBkupPhoneModelUtils implementation
-*
-*
-*/
-
-#include "MMCScBkupPhoneModelUtils.h"
-
-// User includes
-#include "MMCScBkupArchiveFlags.h"
-#include "MMCScBkupArchiveUtils.h"
-
-// System includes
-#include <sysutil.h>
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// MMCScBkupPhoneModelUtils::CurrentPhoneModelLC()
-//
-//
-// ---------------------------------------------------------------------------
-HBufC8* MMCScBkupPhoneModelUtils::CurrentPhoneModelLC()
- {
- HBufC8* ret = HBufC8::NewLC( MaximumPhoneModelIdentifierLength() );
- //
- TBuf<KSysUtilVersionTextLength> version;
- const TInt thirdLine(3);
- const TInt err = SysUtil::GetSWVersion( version);
-
- if ( err == KErrNone )
- {
- // Assume syntax Vxx.xx\ndd-mm-yy\nNHL-vvv\n(c)
- // Extract model version from third line
- for(TInt i(0); i < thirdLine; i++)
- {
- TInt cutPos = version.Locate( '\n' );
-
- if( cutPos == KErrNotFound )
- {
- break;
- }
- else if(i < ( thirdLine - 1 ) )
- {
- version.Delete( 0, cutPos + 1 );
- }
- else
- {
- cutPos = version.Locate( '\n' );
- if( cutPos != KErrNotFound )
- {
- version.Delete( cutPos, (version.Length() - cutPos) );
- }
- ret->Des().Copy( version );
- }
- }
- }
-
- // Implicit requirement - should always be the case though
- __ASSERT_ALWAYS( ret->Length() <= 255, User::Invariant());
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupPhoneModelUtils::MaximumPhoneModelIdentifierLength()
-//
-//
-// ---------------------------------------------------------------------------
-TInt MMCScBkupPhoneModelUtils::MaximumPhoneModelIdentifierLength()
- {
- return KSysUtilVersionTextLength;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupPhoneModelUtils::ArchiveRestorePermissableL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool MMCScBkupPhoneModelUtils::ArchiveRestorePermissableL( const TDesC8& aPhoneModelData, TBitFlags aArchiveFlags, const TVersion& aArchiveVersion )
- {
- TBool restoreOkay = EFalse;
-
- // Check version first
- restoreOkay = ( aArchiveVersion.iMajor >= KMMCScBkupArchiveFileFormatFirstRestorableMajorVersion );
-
- // Check flags next
- if ( restoreOkay )
- {
- restoreOkay = ( aArchiveFlags.Value() & EMMCScBkupArchiveFlagsContentValid );
-
- // Only check model if the flags were alright
- if ( restoreOkay )
- {
- HBufC8* currentData = CurrentPhoneModelLC();
- restoreOkay = ( aPhoneModelData.Compare( *currentData ) == 0 );
- CleanupStack::PopAndDestroy( currentData );
- }
- }
-
- // Done
- return restoreOkay;
- }
-
-
-
-
--- a/filemanager/bkupengine/src/MMCScBkupSBEUtils.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,523 +0,0 @@
-/*
-* Copyright (c) 2005 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: MMCScBkupSBEUtils implementation
-*
-*
-*/
-
-#include "MMCScBkupSBEUtils.h"
-
-// System includes
-#include <e32property.h>
-#include <connect/sbdefs.h>
-#include "CMMCScBkupDataOwnerInfo.h"
-
-// Namespaces
-using namespace conn;
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::SecureIdFromGenericL()
-//
-//
-// ---------------------------------------------------------------------------
-TSecureId MMCScBkupSBEUtils::SecureIdFromGenericL(const CSBGenericDataType& aGeneric)
- {
- TSecureId ret = 0;
- CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aGeneric);
- const TSBDerivedType type = aGeneric.DerivedTypeL();
- //
- switch(type)
- {
- case ESIDDerivedType:
- {
- CSBSecureId* temp = CSBSecureId::NewL( nonConstOriginal );
- CleanupStack::PushL( temp );
- ret = temp->SecureIdL();
- CleanupStack::PopAndDestroy( temp );
- break;
- }
- case ESIDTransferDerivedType:
- {
- // First make a generic transfer type object...
- CSBGenericTransferType* transferTypeTemp = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() );
- CleanupStack::PushL(transferTypeTemp);
-
- // Now make instance transfer type
- CSBSIDTransferType* temp = CSBSIDTransferType::NewL( transferTypeTemp );
- CleanupStack::PushL(temp);
-
- // Now get the result
- ret = temp->SecureIdL();
-
- // Tidy up
- CleanupStack::PopAndDestroy(2, transferTypeTemp);
- break;
- }
- case EPackageDerivedType:
- {
- CSBPackageId* temp = CSBPackageId::NewL( nonConstOriginal );
- CleanupStack::PushL( temp );
- ret = temp->SecureIdL();
- CleanupStack::PopAndDestroy( temp );
- break;
- }
- case EPackageTransferDerivedType:
- case EJavaDerivedType:
- case EJavaTransferDerivedType:
- default:
- __BREAKPOINT();
- User::Leave(KErrNotSupported);
- break;
- }
- //
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::PackageIdFromGenericL()
-//
-//
-// ---------------------------------------------------------------------------
-TUid MMCScBkupSBEUtils::PackageIdFromGenericL(const CSBGenericDataType& aGeneric)
- {
- TUid ret = KNullUid;
- CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aGeneric);
- const TSBDerivedType type = aGeneric.DerivedTypeL();
- //
- switch(type)
- {
- case EPackageDerivedType:
- {
- CSBPackageId* temp = CSBPackageId::NewL( nonConstOriginal );
- CleanupStack::PushL(temp);
- ret = temp->PackageIdL();
- CleanupStack::PopAndDestroy(temp);
- break;
- }
- case EPackageTransferDerivedType:
- {
- // First make a generic transfer type object...
- CSBGenericTransferType* transferTypeTemp = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() );
- CleanupStack::PushL(transferTypeTemp);
-
- // Now make instance transfer type
- CSBPackageTransferType* temp = CSBPackageTransferType::NewL( transferTypeTemp );
- CleanupStack::PushL(temp);
-
- // Now get the result
- ret = temp->PackageIdL();
-
- // Tidy up
- CleanupStack::PopAndDestroy(2, transferTypeTemp);
- break;
- }
- case ESIDDerivedType:
- case ESIDTransferDerivedType:
- case EJavaDerivedType:
- case EJavaTransferDerivedType:
- default:
- __BREAKPOINT();
- User::Leave(KErrNotSupported);
- break;
- }
- //
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::JavaHashFromGenericLC()
-//
-//
-// ---------------------------------------------------------------------------
-HBufC* MMCScBkupSBEUtils::JavaHashFromGenericLC(const CSBGenericDataType& aGeneric)
- {
- HBufC* ret = NULL;
- CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aGeneric);
- const TSBDerivedType type = aGeneric.DerivedTypeL();
- //
- switch(type)
- {
- case EJavaDerivedType:
- {
- CSBJavaId* temp = CSBJavaId::NewL( nonConstOriginal );
- CleanupStack::PushL(temp);
- ret = temp->SuiteHashL().AllocL();
- CleanupStack::PopAndDestroy(temp);
- CleanupStack::PushL( ret );
- break;
- }
- case EJavaTransferDerivedType:
- {
- // First make a generic transfer type object...
- CSBGenericTransferType* transferTypeTemp = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() );
- CleanupStack::PushL(transferTypeTemp);
-
- // Now make a instance transfer type
- CSBJavaTransferType* temp = CSBJavaTransferType::NewL( transferTypeTemp );
- CleanupStack::PushL(temp);
-
- // Now get the result
- ret = temp->SuiteHashL().AllocL();
-
- // Tidy up
- CleanupStack::PopAndDestroy(2, transferTypeTemp);
- CleanupStack::PushL( ret );
- break;
- }
- case ESIDDerivedType:
- case ESIDTransferDerivedType:
- case EPackageDerivedType:
- case EPackageTransferDerivedType:
- default:
- __BREAKPOINT();
- User::Leave(KErrNotSupported);
- break;
- }
- //
- if ( ret == NULL )
- {
- ret = KNullDesC().AllocLC();
- }
- //
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::CopyLC()
-//
-//
-// ---------------------------------------------------------------------------
-CSBGenericDataType* MMCScBkupSBEUtils::CopyLC(const CSBGenericDataType& aToBeCopied)
- {
- CSBGenericDataType* ret = NULL;
-
- // Have to do this through poor implementation of SBE API
- CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aToBeCopied);
- //
- const TSBDerivedType type = nonConstOriginal->DerivedTypeL();
- switch(type)
- {
- case ESIDDerivedType:
- ret = CSBSecureId::NewL(nonConstOriginal);
- break;
- case EPackageDerivedType:
- ret = CSBPackageId::NewL(nonConstOriginal);
- break;
- case EJavaDerivedType:
- ret = CSBJavaId::NewL(nonConstOriginal);
- break;
- case ESIDTransferDerivedType:
- case EPackageTransferDerivedType:
- case EJavaTransferDerivedType:
- {
- // Must first create a generic transfer type object... sigh...
- CSBGenericTransferType* transferType = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() );
- CleanupStack::PushL( transferType );
- if ( ESIDTransferDerivedType == type )
- {
- ret = CSBSIDTransferType::NewL( transferType );
- }
- else if ( EPackageTransferDerivedType == type )
- {
- ret = CSBPackageTransferType::NewL( transferType );
- }
- // Type is EJavaTransferDerivedType
- else
- {
- ret = CSBJavaTransferType::NewL( transferType );
- }
- CleanupStack::PopAndDestroy( transferType );
- }
- default:
- break;
- }
- //
- if (!ret)
- {
- __BREAKPOINT();
- User::Leave(KErrNotSupported);
- }
- CleanupStack::PushL(ret);
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::TransferTypeLC()
-//
-//
-// ---------------------------------------------------------------------------
-CSBGenericTransferType* MMCScBkupSBEUtils::TransferTypeLC( const CSBGenericDataType& aDT, TDriveNumber aDrive,
- TTransferDataType aTransferType, TInt aVersion )
- {
- CSBGenericTransferType* ret = NULL;
-
- // Have to do this through poor implementation of SBE API
- CSBGenericDataType* nonConstOriginal = const_cast< CSBGenericDataType* >( &aDT );
- //
- const TSBDerivedType type = nonConstOriginal->DerivedTypeL();
- switch( type )
- {
- case ESIDDerivedType:
- case ESIDTransferDerivedType:
- {
- const TSecureId secureId = SecureIdFromGenericL( aDT );
- ret = CSBSIDTransferType::NewL( secureId, aDrive, aTransferType );
- break;
- }
-
- case EPackageDerivedType:
- {
- TSecureId secureId = SecureIdFromGenericL( aDT );
- if( secureId.iId == KNullUid.iUid && aVersion > CMMCScBkupDataOwnerInfo::EStreamFormatVersionFirst )
- {
- secureId = MMCScBkupSBEUtils::PackageIdFromGenericL( aDT );
- }
- ret = CSBSIDTransferType::NewL( secureId, aDrive, aTransferType );
- break;
- }
-
- default:
- case EPackageTransferDerivedType:
- case EJavaDerivedType:
- case EJavaTransferDerivedType:
- __BREAKPOINT();
- User::Leave( KErrNotSupported );
- break;
- }
- //
- CleanupStack::PushL( ret );
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::TransferTypeLC()
-//
-//
-// ---------------------------------------------------------------------------
-CSBGenericTransferType* MMCScBkupSBEUtils::TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive,
- TPackageDataType aDataType, TInt /*aVersion*/)
- {
- CSBGenericTransferType* ret = NULL;
-
- // Have to do this through poor implementation of SBE API
- CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aDT);
- //
- const TSBDerivedType type = nonConstOriginal->DerivedTypeL();
- switch(type)
- {
- case EPackageDerivedType:
- case EPackageTransferDerivedType:
- {
- const TUid packageId = PackageIdFromGenericL(aDT);
- ret = CSBPackageTransferType::NewL(packageId, aDrive, aDataType);
- break;
- }
-
- default:
- case ESIDDerivedType:
- case ESIDTransferDerivedType:
- case EJavaDerivedType:
- case EJavaTransferDerivedType:
- __BREAKPOINT();
- User::Leave(KErrNotSupported);
- break;
- }
- //
- CleanupStack::PushL(ret);
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::TransferTypeLC()
-//
-//
-// ---------------------------------------------------------------------------
-CSBGenericTransferType* MMCScBkupSBEUtils::TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive,
- TJavaTransferType aDataType, TInt /*aVersion*/)
- {
- CSBGenericTransferType* ret = NULL;
-
- // Have to do this through poor implementation of SBE API
- CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aDT);
- //
- const TSBDerivedType type = nonConstOriginal->DerivedTypeL();
- switch(type)
- {
- case EJavaDerivedType:
- case EJavaTransferDerivedType:
- {
- HBufC* hash = JavaHashFromGenericLC( aDT );
- ret = CSBJavaTransferType::NewL( *hash, aDrive, aDataType );
- CleanupStack::PopAndDestroy( hash );
- break;
- }
-
- default:
- case ESIDDerivedType:
- case ESIDTransferDerivedType:
- case EPackageDerivedType:
- case EPackageTransferDerivedType:
- __BREAKPOINT();
- User::Leave(KErrNotSupported);
- break;
- }
- //
- CleanupStack::PushL(ret);
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::PhoneIsInBackupOrRestoreModeL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool MMCScBkupSBEUtils::PhoneIsInBackupOrRestoreModeL()
- {
- TBool backupInProgress = EFalse;
- //
- TInt value = 0;
- const TInt error = RProperty::Get( KUidSystemCategory, KUidBackupRestoreKey, value );
- User::LeaveIfError( error );
- //
- const TBURPartType partType = static_cast< TBURPartType >( value & KBURPartTypeMask );
- if (value != 0)
- {
- switch(partType)
- {
- case EBURUnset:
- case EBURNormal:
- break;
- case EBURBackupFull:
- case EBURBackupPartial:
- case EBURRestoreFull:
- case EBURRestorePartial:
- backupInProgress = ETrue;
- break;
- }
- }
- //
- return backupInProgress;
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::EndBackupOrRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void MMCScBkupSBEUtils::EndBackupOrRestoreL( CSBEClient& aSBEClient )
- {
- TDriveList nullDriveList;
- aSBEClient.SetBURModeL( nullDriveList, EBURNormal, ENoBackup);
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::HasSystemDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool MMCScBkupSBEUtils::HasSystemDataL( const CDataOwnerInfo& aDataOwner )
- {
- const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL();
- const TBool systemDataType = ( type == EPackageDerivedType ||
- type == EPackageTransferDerivedType );
- const TBool hasSystemData = ( aDataOwner.CommonSettings() & EHasSystemFiles );
- //
- return ( systemDataType && hasSystemData );
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::HasJavaDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool MMCScBkupSBEUtils::HasJavaDataL( const CDataOwnerInfo& aDataOwner )
- {
- const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL();
- const TBool javaDataType = ( type == EJavaDerivedType ||
- type == EJavaTransferDerivedType );
- const TBool hasSystemData = ( aDataOwner.CommonSettings() & EHasSystemFiles );
-
- // Java abuses the "has system files flag" - this has been confirmed
- // with Symbian.
- return ( javaDataType && hasSystemData );
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::HasPassiveDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool MMCScBkupSBEUtils::HasPassiveDataL( const CDataOwnerInfo& aDataOwner )
- {
- const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL();
- const TBool passiveDataType = ( type == ESIDDerivedType ||
- type == ESIDTransferDerivedType ||
- type == EPackageDerivedType ||
- type == EPackageTransferDerivedType );
- const TBool hasPassiveData = ( aDataOwner.CommonSettings() & EPassiveBUR );
- //
- return ( passiveDataType && hasPassiveData );
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::HasActiveDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool MMCScBkupSBEUtils::HasActiveDataL( const CDataOwnerInfo& aDataOwner )
- {
- const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL();
- const TBool activeDataType = ( type == ESIDDerivedType ||
- type == ESIDTransferDerivedType ||
- type == EPackageDerivedType ||
- type == EPackageTransferDerivedType );
- const TBool hasActiveData = ( aDataOwner.CommonSettings() & EActiveBUR );
- //
- return ( activeDataType && hasActiveData );
- }
-
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::HasPublicDataL()
-//
-//
-// ---------------------------------------------------------------------------
-TBool MMCScBkupSBEUtils::HasPublicDataL( const CDataOwnerInfo& aDataOwner )
- {
- const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL();
- const TBool publicDataType = ( type == ESIDDerivedType ||
- type == ESIDTransferDerivedType ||
- type == EPackageDerivedType ||
- type == EPackageTransferDerivedType );
- const TBool hasPublicData = ( aDataOwner.PassiveSettings() & EHasPublicFiles );
- //
- return ( hasPublicData && publicDataType );
- }
-
--- a/filemanager/bkupengine/src/RMMCScBkupArchiveStreams.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,256 +0,0 @@
-/*
-* Copyright (c) 2005 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: RMMCScBkupArchiveReadStream implementation
-*
-*
-*/
-
-#include "RMMCScBkupArchiveStreams.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupArchiveDataManager.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveBuf::RMMCScBkupArchiveBuf()
-//
-//
-// ---------------------------------------------------------------------------
-RMMCScBkupArchiveBuf::RMMCScBkupArchiveBuf()
-: iADM(NULL)
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveBuf::AttachL()
-//
-//
-// ---------------------------------------------------------------------------
-void RMMCScBkupArchiveBuf::AttachL( CMMCScBkupArchiveDataManager& aADM, RFile64& aFile, TInt aPos, TBool aForWrite )
- {
- //__LOG3("RMMCScBkupArchiveBuf::AttachL() - START - aFile: 0x%08x, aPos: %d, aForWrite: %d", aFile.SubSessionHandle(), aPos, aForWrite);
-
- // Prevent RFileBuf from resetting our file handle
- RFile64 file(aFile);
- RFileBuf::Attach(file, aPos);
-
- // We save the attach pos so that we can update the ADM with the final
- // length of data that was read or written...
- iInfo.Reset();
- iInfo.SetOffset(aPos);
-
- iWriteMode = aForWrite;
- iADM = &aADM;
-
- //__LOG("RMMCScBkupArchiveBuf::AttachL() - END");
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveBuf::Close()
-//
-//
-// ---------------------------------------------------------------------------
-EXPORT_C void RMMCScBkupArchiveBuf::Close()
- {
- //__LOG1("RMMCScBkupArchiveBuf::Close() - START - File: 0x%08x", File().SubSessionHandle());
-
- TRAP_IGNORE(DoSynchL());
- Detach();
- Reset();
-
- //__LOG1("RMMCScBkupArchiveBuf::Close() - END - File: 0x%08x", File().SubSessionHandle());
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveBuf::IsOpen()
-//
-//
-// ---------------------------------------------------------------------------
-TBool RMMCScBkupArchiveBuf::IsOpen() const
- {
- return (File().SubSessionHandle() != KNullHandle);
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveBuf::DoRelease()
-//
-//
-// ---------------------------------------------------------------------------
-void RMMCScBkupArchiveBuf::DoRelease()
- {
- //__LOG1("RMMCScBkupArchiveBuf::DoRelease() - START - File: 0x%08x", File().SubSessionHandle());
-
- TRAP_IGNORE( UpdateInfoL() );
- Detach();
- RFileBuf::DoRelease();
-
- //__LOG1("RMMCScBkupArchiveBuf::DoRelease() - END - File: 0x%08x", File().SubSessionHandle());
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveBuf::DoSynchL()
-//
-//
-// ---------------------------------------------------------------------------
-void RMMCScBkupArchiveBuf::DoSynchL()
- {
- //__LOG1("RMMCScBkupArchiveBuf::DoSynchL() - START - File: 0x%08x", File().SubSessionHandle());
-
- RFileBuf::DoSynchL();
- UpdateInfoL();
-
- //__LOG1("RMMCScBkupArchiveBuf::DoSynchL() - END - File: 0x%08x", File().SubSessionHandle());
- }
-
-
-#ifdef RD_FILE_MANAGER_BACKUP
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveBuf::DoWriteL()
-//
-//
-// ---------------------------------------------------------------------------
-void RMMCScBkupArchiveBuf::DoWriteL(const TAny* aPtr,TInt aLength)
- {
- iADM->CalculateCrc(aPtr, aLength);
- RFileBuf::DoWriteL(aPtr, aLength);
- }
-#endif
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveBuf::UpdateInfoL()
-//
-//
-// ---------------------------------------------------------------------------
-void RMMCScBkupArchiveBuf::UpdateInfoL()
- {
- //__LOG1("RMMCScBkupArchiveBuf::UpdateInfoL() - START - File: 0x%08x", File().SubSessionHandle());
-
- // Update our stats
- if ( iADM && File().SubSessionHandle() != KNullHandle )
- {
- TStreamPos pos;
- if ( iWriteMode )
- {
- pos = TellL( MStreamBuf::EWrite );
- //__LOG("RMMCScBkupArchiveBuf::UpdateInfoL() - write mode...");
- }
- else
- {
- pos = TellL( MStreamBuf::ERead );
- //__LOG("RMMCScBkupArchiveBuf::UpdateInfoL() - read mode...");
- }
- //
- const TInt currentOffset = pos.Offset();
- const TInt length = currentOffset - iInfo.Offset();
-
- //__LOG1("RMMCScBkupArchiveBuf::UpdateInfoL() - currentOffset: %8d", currentOffset);
- //__LOG1("RMMCScBkupArchiveBuf::UpdateInfoL() - length: %8d", length);
- iInfo.SetLength( length );
-
- // Inform ADM of final info
- iADM->SetCurrentVector( iInfo );
- }
-
- //__LOG1("RMMCScBkupArchiveBuf::UpdateInfoL() - END - File: 0x%08x", File().SubSessionHandle());
- }
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveReadStream::OpenLC()
-//
-//
-// ---------------------------------------------------------------------------
-void RMMCScBkupArchiveReadStream::OpenLC( CMMCScBkupArchiveDataManager& aADM, RFile64& aArchiveFile, TInt aPos )
- {
- CleanupClosePushL( *this );
- //
- iSource.AttachL( aADM, aArchiveFile, aPos, EFalse );
- RReadStream::Attach( &iSource );
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveReadStream::IsOpen()
-//
-//
-// ---------------------------------------------------------------------------
-TBool RMMCScBkupArchiveReadStream::IsOpen() const
- {
- return iSource.IsOpen();
- }
-
-
-
-
-
-
-
-
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveWriteStream::OpenLC()
-//
-//
-// ---------------------------------------------------------------------------
-void RMMCScBkupArchiveWriteStream::OpenLC( CMMCScBkupArchiveDataManager& aADM, RFile64& aArchiveFile, TInt aPos )
- {
- CleanupClosePushL( *this );
- //
- iSink.AttachL( aADM, aArchiveFile, aPos, ETrue );
- RWriteStream::Attach( &iSink );
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupArchiveWriteStream::IsOpen()
-//
-//
-// ---------------------------------------------------------------------------
-TBool RMMCScBkupArchiveWriteStream::IsOpen() const
- {
- return iSink.IsOpen();
- }
-
-
-
-
-
-
--- a/filemanager/bkupengine/src/RMMCScBkupProgressSizer.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-/*
-* Copyright (c) 2005-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: RMMCScBkupProgressSizer implementation
-*
-*
-*/
-
-#include "RMMCScBkupProgressSizer.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "MMCScBkupSBEUtils.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMMCScBkupProgressObserver.h"
-#include "CMMCScBkupDriveAndOperationTypeManager.h"
-
-// Constants
-const TInt KMMCScBkupWeightingFactor = 10000;
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupProgressSizer::RMMCScBkupProgressSizer()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-RMMCScBkupProgressSizer::RMMCScBkupProgressSizer( const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperationTypes )
-: iDriveAndOperationTypes( aDriveAndOperationTypes ), iDriveFilter( aDriveAndOperationTypes.DriveList() )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupProgressSizer::BackupTotalProgressValueL()
-//
-// Calculate the total amount of progress steps that a particular data owner
-// requires. This method can only be called after all of the sizing info
-// has been obtained from the SBE
-// ---------------------------------------------------------------------------
-TInt64 RMMCScBkupProgressSizer::BackupTotalProgressValueL( const CMMCScBkupDataOwnerInfo& aDataOwner )
- {
- __LOG(" ");
- __LOG1("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - START - DO: 0x%08x", aDataOwner.SecureId().iId);
- TInt64 totalStepCount = 0;
-
- //////////////////////////////////////////////////////////////////////
- // THESE ELEMENTS HAVE PSEUDO-PROGRESS - that is, the report a fixed
- // number of progress nibbles per operation. For example:
- //
- // TYPE DRIVE PROGRESS
- // =======================================
- // ACTIVE (C:) 1 x 2000
- // PASSIVE (C:) 1 x 2000
- // SYSTEM (C:, E:) 2 x 2000
- // JAVA (C:) 1 x 2000
- // PUBLIC (C: = 12k) 12 x 1024
- // ----------------------------------------
- // total 10000 + (12 x 1024)
- //
- //////////////////////////////////////////////////////////////////////
-
- const CDataOwnerInfo& sbeDataOwner = aDataOwner.Owner();
-
- // Passive data
- if ( MMCScBkupSBEUtils::HasPassiveDataL( sbeDataOwner ) )
- {
- const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypePassiveData );
- __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - passive - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount);
- totalStepCount += ( opsCount * KMMCScBkupWeightingFactor );
- }
-
- // Active data
- if ( MMCScBkupSBEUtils::HasActiveDataL( sbeDataOwner ) )
- {
- const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypeActiveData );
- __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - active - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount);
- totalStepCount += ( opsCount * KMMCScBkupWeightingFactor );
- }
-
- // System data
- if ( MMCScBkupSBEUtils::HasSystemDataL( sbeDataOwner ) )
- {
- const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypeSystemData );
- __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - system - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount);
- totalStepCount += ( opsCount * KMMCScBkupWeightingFactor );
- }
-
- // Java data
- if ( MMCScBkupSBEUtils::HasJavaDataL( sbeDataOwner ) )
- {
- const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypeJavaData );
- __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - java - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount);
- totalStepCount += ( opsCount * KMMCScBkupWeightingFactor );
- }
-
-
- ///////////////////////////////////
- // PUBLIC REPORTS ACTUAL SIZING
- ///////////////////////////////////
-
- // Public data
- if ( MMCScBkupSBEUtils::HasPublicDataL( sbeDataOwner ) )
- {
- const TInt64 size = AmountOfPublicDataToBeRestoredL( aDataOwner );
- __LOG1("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - public - %Ld of progress", size);
- totalStepCount += size;
- }
-
- //
- __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - END - DO: 0x%08x, totalStepCount: %8Ld", aDataOwner.SecureId().iId, totalStepCount);
- return totalStepCount;
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupProgressSizer::BackupReportFixedProgressForOpL()
-//
-//
-// ---------------------------------------------------------------------------
-void RMMCScBkupProgressSizer::BackupReportFixedProgressForOpL( MMMCScBkupProgressObserver& aProgressManager, TMMCScBkupOwnerDataType aType )
- {
- switch( aType )
- {
- case EMMCScBkupOwnerDataTypeSystemData:
- case EMMCScBkupOwnerDataTypeActiveData:
- case EMMCScBkupOwnerDataTypePassiveData:
- case EMMCScBkupOwnerDataTypeJavaData:
- __LOG2("RMMCScBkupProgressSizer::BackupReportFixedProgressForOpL() - aType: %d, amount: %d ", aType, KMMCScBkupWeightingFactor );
- aProgressManager.MMCScBkupHandleProgress( KMMCScBkupWeightingFactor );
- break;
- default:
- case EMMCScBkupOwnerDataTypeDataOwner:
- case EMMCScBkupOwnerDataTypePublicData:
- ASSERT( EFalse );
- break;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupProgressSizer::RestoreCombinedDataSizeL()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 RMMCScBkupProgressSizer::RestoreCombinedDataSizeL( const CMMCScBkupDataOwnerInfo& aOwner )
- {
- TInt64 size = 0;
- //
- iDriveFilter.Reset();
- iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() );
- //
- TDriveNumber drive = EDriveA;
- while ( iDriveFilter.NextValidDrive( drive ) )
- {
- for( TInt i=0; i<EMMCScBkupOwnerDataTypeCount; i++ )
- {
- const TMMCScBkupOwnerDataType dataType = static_cast< TMMCScBkupOwnerDataType > ( i );
- const TBool allowedForDrive = iDriveAndOperationTypes.IsDataTypeAllowedToAccessDrive( drive, dataType );
- //
- if ( allowedForDrive )
- {
- // Get the amount of data for this drive
- size += aOwner.OperationalSize( dataType, drive );
- }
- }
- }
- //
- return size;
- }
-
-
-
-
-
-
-
-
-
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupProgressSizer::NumberOfDriveOpsRequiredL()
-//
-//
-// ---------------------------------------------------------------------------
-TInt RMMCScBkupProgressSizer::NumberOfDriveOpsRequiredL( const CMMCScBkupDataOwnerInfo& aOwner, TMMCScBkupOwnerDataType aType )
- {
- TInt count = 0;
- //
- iDriveFilter.Reset();
- iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() );
- //
- TDriveNumber drive = EDriveA;
- while ( iDriveFilter.NextValidDrive( drive ) )
- {
- const TBool allowedForDrive = iDriveAndOperationTypes.IsDataTypeAllowedToAccessDrive( drive, aType );
- //
- if ( allowedForDrive )
- {
- ++count;
- }
- }
- //
- return count;
- }
-
-
-// ---------------------------------------------------------------------------
-// RMMCScBkupProgressSizer::AmountOfPublicDataToBeRestoredL()
-//
-//
-// ---------------------------------------------------------------------------
-TInt64 RMMCScBkupProgressSizer::AmountOfPublicDataToBeRestoredL( const CMMCScBkupDataOwnerInfo& aOwner )
- {
- TInt64 size = 0;
- //
- iDriveFilter.Reset();
- iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() );
- //
- TDriveNumber drive = EDriveA;
- while ( iDriveFilter.NextValidDrive( drive ) )
- {
- const TBool allowedForDrive = iDriveAndOperationTypes.IsDataTypeAllowedToAccessDrive( drive, EMMCScBkupOwnerDataTypePublicData );
- //
- if ( allowedForDrive )
- {
- // Get the amount of data for this drive
- size += aOwner.OperationalSize( EMMCScBkupOwnerDataTypePublicData, drive );
- }
- }
- //
- return size;
- }
-
-
-
-
--- a/filemanager/bkupengine/src/TMMCScBkupArchiveVector.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/*
-* Copyright (c) 2005 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: TMMCScBkupArchiveVector implementation
-*
-*
-*/
-
-#include "TMMCScBkupArchiveVector.h"
-
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupArchiveVector::ExternalizedSize()
-//
-//
-// ---------------------------------------------------------------------------
-
-TInt TMMCScBkupArchiveVector::ExternalizedSize()
- {
- return 20; // 4 bytes for offset, 4 bytes for length, 4 bytes stream version, 4 bytes spare1, 4 bytes spare2
- }
-
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupArchiveVector::ExternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-
-void TMMCScBkupArchiveVector::ExternalizeL(RWriteStream& aStream) const
- {
- aStream.WriteInt32L( EStreamFormatVersion1 );
- aStream.WriteInt32L( Offset() );
- aStream.WriteInt32L( Length() );
- aStream.WriteInt32L( 0 ); // Spare1
- aStream.WriteInt32L( 0 ); // Spare2
- }
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupArchiveVector::InternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-
-void TMMCScBkupArchiveVector::InternalizeL(RReadStream& aStream)
- {
- aStream.ReadInt32L(); // stream format version
- iOffset = aStream.ReadInt32L();
- iLength = aStream.ReadInt32L();
- aStream.ReadInt32L(); // Spare1
- aStream.ReadInt32L(); // Spare2
- //
- if (iOffset < 0 || iLength < 0)
- {
- User::Leave(KErrCorrupt);
- }
- }
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupArchiveDriveAndVector::InternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void TMMCScBkupArchiveDriveAndVector::InternalizeL( RReadStream& aStream )
- {
- aStream.ReadInt32L(); // EStreamFormatVersion1
- aStream.ReadInt32L(); // spare1
- aStream.ReadInt32L(); // spare2
- aStream.ReadInt32L(); // spare3
- //
- iDrive = static_cast<TDriveNumber>( aStream.ReadUint8L() );
- aStream >> iVector;
- }
-
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupArchiveDriveAndVector::ExternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void TMMCScBkupArchiveDriveAndVector::ExternalizeL( RWriteStream& aStream ) const
- {
- aStream.WriteInt32L( EStreamFormatVersion1 );
- aStream.WriteInt32L( 0 ); // spare1
- aStream.WriteInt32L( 0 ); // spare2
- aStream.WriteInt32L( 0 ); // spare3
- //
- aStream.WriteUint8L( iDrive );
- aStream << iVector;
- }
-
-
--- a/filemanager/bkupengine/src/TMMCScBkupDriveAndSize.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* Copyright (c) 2005-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: TMMCScBkupDriveAndSize implementation
-*
-*
-*/
-
-#include "TMMCScBkupDriveAndSize.h"
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupDriveAndSize::InternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void TMMCScBkupDriveAndSize::InternalizeL( RReadStream& aStream )
- {
- aStream.ReadInt32L(); // EStreamFormatVersion1
- aStream.ReadInt32L(); // spare1
- aStream.ReadInt32L(); // spare2
- //
- iDrive = static_cast<TDriveNumber>( aStream.ReadUint8L() );
-
- iSize = aStream.ReadInt32L();
- // If 64-bit handling will be supported in the future.
- // That will mean in practice a break in archive file format.
- /*
- if ( format == EStreamFormatVersion1 )
- {
- iSize = aStream.ReadInt32L();
- }
- else
- {
- iSize = aStream.ReadReal64L();
- }
- */
- }
-
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupDriveAndSize::ExternalizeL()
-//
-//
-// ---------------------------------------------------------------------------
-void TMMCScBkupDriveAndSize::ExternalizeL( RWriteStream& aStream ) const
- {
- aStream.WriteInt32L( EStreamFormatVersion1 );
- aStream.WriteInt32L( 0 ); // spare1
- aStream.WriteInt32L( 0 ); // spare2
- //
- aStream.WriteUint8L( iDrive );
- aStream.WriteInt32L( iSize );
- //aStream.WriteReal64L( iSize ); // If 64-bit handling will be supported in the future.
- // That will mean in practice a break in archive file format.
- }
-
-
--- a/filemanager/bkupengine/src/TMMCScBkupDriveFilter.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
-* Copyright (c) 2005 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: TMMCScBkupDriveFilter implementation
-*
-*
-*/
-
-#include "TMMCScBkupDriveFilter.h"
-
-// Constants
-const TInt KMMCScBkupInitialDriveIndex = -1;
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupDriveFilter::Reset()
-//
-//
-// ---------------------------------------------------------------------------
-void TMMCScBkupDriveFilter::Reset()
- {
- iCurrentDrive = KMMCScBkupInitialDriveIndex;
- }
-
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupDriveFilter::SetPrimaryDriveFilter()
-//
-//
-// ---------------------------------------------------------------------------
-void TMMCScBkupDriveFilter::SetPrimaryDriveFilter( const TDriveList& aDriveList )
- {
- iPrimaryDriveList = aDriveList;
- }
-
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupDriveFilter::SetSecondaryDriveFilter()
-//
-//
-// ---------------------------------------------------------------------------
-void TMMCScBkupDriveFilter::SetSecondaryDriveFilter( const TDriveList& aDriveList )
- {
- iSecondaryDriveList = aDriveList;
- iHaveSecondaryList = ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupDriveFilter::NextValidDrive()
-//
-//
-// ---------------------------------------------------------------------------
-TBool TMMCScBkupDriveFilter::NextValidDrive( TDriveNumber& aDrive )
- {
- // Always move to the next drive before checking its availability.
- // FindValidDrive takes care of ensuring the value falls within A-Z
- // range.
- ++iCurrentDrive;
-
- // Do we have an available primary drive?
- TBool driveAvailable = EFalse;
- while( iCurrentDrive >= EDriveA && iCurrentDrive <= EDriveZ )
- {
- TDriveNumber drive;
- driveAvailable = FindValidDrive( iPrimaryDriveList, drive );
- if ( driveAvailable && iHaveSecondaryList )
- {
- // Verify against secondary drive list also...
- const TBool makeOnlyOneDirectAttempt = ETrue;
- driveAvailable = FindValidDrive( iSecondaryDriveList, drive, makeOnlyOneDirectAttempt );
- }
- else if (!driveAvailable)
- {
- // No more primary drives left, so we're done here.
- break;
- }
-
- // Did we find a match on (just) the primary drive, or then
- // the primary and secondary drive lists combined?
- if (driveAvailable)
- {
- // Yes, match found - we're finished here.
- aDrive = drive;
- break;
- }
- else
- {
- // Try to search for the next drive that matches both the
- // primary and secondary lists (if supported)
- ++iCurrentDrive;
- }
- }
- //
- return driveAvailable;
- }
-
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupDriveFilter::CurrentDrive()
-//
-//
-// ---------------------------------------------------------------------------
-TDriveNumber TMMCScBkupDriveFilter::CurrentDrive() const
- {
- return static_cast< TDriveNumber >( iCurrentDrive );
- }
-
-
-// ---------------------------------------------------------------------------
-// TMMCScBkupDriveFilter::FindValidDrive()
-//
-//
-// ---------------------------------------------------------------------------
-TBool TMMCScBkupDriveFilter::FindValidDrive( const TDriveList& aList, TDriveNumber& aDrive, TBool aOneAttemptOnly )
- {
- // If we've already reached Z then there isn't any sense in continuing
- // as all drives have been processed.
- TBool driveAvailable = EFalse;
-
- // Keep checking drives until we go past Z
- while( iCurrentDrive >= EDriveA && iCurrentDrive <= EDriveZ )
- {
- if ( aList[ iCurrentDrive ] != 0 )
- {
- // Found an available drive
- aDrive = static_cast< TDriveNumber >( iCurrentDrive );
- driveAvailable = ETrue;
- break;
- }
- else if ( aOneAttemptOnly )
- {
- break;
- }
-
- // Try next drive
- ++iCurrentDrive;
- }
- //
- return driveAvailable;
- }
-
-
-
-
Binary file filemanager/cenrep/keys_s60filemanager.xls has changed
Binary file filemanager/conf/s60filemanager.confml has changed
Binary file filemanager/conf/s60filemanager_1020506B.crml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/examples/demo_fmfiledialog/demo_fmfiledialog.iby Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* 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 "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:
+*
+*/
+
+#ifndef __FMFILEDIALOG_IBY__
+#define __FMFILEDIALOG_IBY__
+
+#include <bldprivate.hrh>
+
+#define HB_UPGRADABLE_APP_REG_RSC(NAME) data=DATAZ_\PRIVATE\10003A3F\IMPORT\APPS\ ## NAME ## _reg.rsc Private\10003a3f\import\apps\ ## NAME ## _reg.rsc
+
+file=ABI_DIR\BUILD_DIR\demo_fmfiledialog.exe SHARED_LIB_DIR\demo_fmfiledialog.exe
+HB_UPGRADABLE_APP_REG_RSC(demo_fmfiledialog)
+S60_APP_RESOURCE(demo_fmfiledialog)
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/examples/demo_fmfiledialog/demo_fmfiledialog.pro Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,31 @@
+# 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 "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:
+#
+#
+
+CONFIG += hb
+TEMPLATE = app
+TARGET =
+DEPENDPATH += .
+INCLUDEPATH += .
+symbian {
+ include(rom.pri)
+}
+
+# Input
+HEADERS += mainwindow.h
+SOURCES += main.cpp mainwindow.cpp
+
+LIBS += -lfmfiledialog
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/examples/demo_fmfiledialog/main.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,35 @@
+/*
+* 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 "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:
+*
+*
+*/
+
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+
+#include "mainwindow.h"
+int main( int argc, char *argv[] )
+{
+ HbApplication app( argc, argv );
+ app.setApplicationName( "filemanager" );
+
+ TestMainWindow *mainWindow = new TestMainWindow;
+ mainWindow->init();
+ mainWindow->show();
+
+
+ return app.exec();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/examples/demo_fmfiledialog/mainwindow.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,193 @@
+/*
+* 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 "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:
+*
+*
+*/
+
+#include "mainwindow.h"
+#include "fmfiledialog.h"
+#include "hbmessagebox.h"
+
+#define getDir "getExistingDirectory"
+#define getFile "getOpenFileName"
+#define saveFile "getSaveFileName"
+
+#define getDir_SetDir "getExistingDirectory_setDir"
+#define getFile_SetDir "getOpenFileName_setDir"
+#define saveFile_SetDir "getSaveFileName_setDir"
+
+#define getDir_SetFilter "getExistingDirectory_setFilter"
+#define getDir_SetFilter_AllDirs "getExistingDirectory_setFilter_AllDirs"
+#define getFile_SetFilter "getOpenFileName_setFilter"
+#define saveFile_SetFilter "getSaveFileName_setFilter"
+
+TestMainWindow::TestMainWindow()
+{
+}
+TestMainWindow::~TestMainWindow()
+{
+}
+
+void TestMainWindow::init()
+{
+ HbView *mainView = new HbView;
+ addView( mainView );
+
+ HbListWidget *listWidget = new HbListWidget( mainView );
+ mainView->setWidget( listWidget );
+
+ listWidget->addItem( getDir );
+ listWidget->addItem( getFile );
+ listWidget->addItem( saveFile );
+ listWidget->addItem( " " );
+ listWidget->addItem( getDir_SetDir );
+ listWidget->addItem( getFile_SetDir );
+ listWidget->addItem( saveFile_SetDir );
+ listWidget->addItem( " " );
+ listWidget->addItem( getDir_SetFilter );
+ listWidget->addItem( getDir_SetFilter_AllDirs );
+ listWidget->addItem( getFile_SetFilter );
+ listWidget->addItem( saveFile_SetFilter );
+ listWidget->addItem( " " );
+ listWidget->addItem( "placeHolderA" );
+ listWidget->addItem( "placeHolderB" );
+ listWidget->addItem( "placeHolderC" );
+ listWidget->addItem( "placeHolderD" );
+ listWidget->addItem( "placeHolderE" );
+ listWidget->addItem( "placeHolderF" );
+ listWidget->addItem( "placeHolderG" );
+ listWidget->addItem( "placeHolderH" );
+ listWidget->addItem( "placeHolderI" );
+ listWidget->addItem( "placeHolderJ" );
+ listWidget->addItem( "placeHolderK" );
+ listWidget->addItem( "placeHolderL" );
+ listWidget->addItem( "placeHolderM" );
+ listWidget->addItem( "placeHolderN" );
+ listWidget->addItem( "placeHolderO" );
+ listWidget->addItem( "placeHolderP" );
+ listWidget->addItem( "placeHolderQ" );
+ listWidget->addItem( "placeHolderR" );
+ listWidget->addItem( "placeHolderS" );
+ listWidget->addItem( "placeHolderT" );
+ listWidget->addItem( "placeHolderU" );
+ listWidget->addItem( "placeHolderV" );
+ listWidget->addItem( "placeHolderW" );
+ listWidget->addItem( "placeHolderX" );
+ listWidget->addItem( "placeHolderY" );
+ listWidget->addItem( "placeHolderZ" );
+
+ connect(listWidget, SIGNAL(activated(HbListWidgetItem*)), this,SLOT(activatedListItem(HbListWidgetItem*)) );
+}
+
+void TestMainWindow::activatedListItem(HbListWidgetItem *item)
+{
+ if( item->text().compare( getDir ) == 0 ) {
+ getExistingDirectory();
+ } else if( item->text().compare( getFile ) == 0 ) {
+ getOpenFileName();
+ } else if( item->text().compare( saveFile ) == 0 ) {
+ getSaveFileName();
+ } else if( item->text().compare( getDir_SetDir ) == 0 ) {
+ getExistingDirectory_SetDir();
+ } else if( item->text().compare( getFile_SetDir ) == 0 ) {
+ getOpenFileName_SetDir();
+ } else if( item->text().compare( saveFile_SetDir ) == 0 ) {
+ getSaveFileName_SetDir();
+ } else if( item->text().compare( getDir_SetFilter ) == 0 ) {
+ getExistingDirectory_SetFilter();
+ } else if( item->text().compare( getDir_SetFilter_AllDirs ) == 0 ) {
+ getExistingDirectory_SetFilter_AllDirs();
+ } else if( item->text().compare( getFile_SetFilter ) == 0 ) {
+ getOpenFileName_SetFilter();
+ } else if( item->text().compare( saveFile_SetFilter ) == 0 ) {
+ getSaveFileName_SetFilter();
+ }
+}
+
+void TestMainWindow::getExistingDirectory()
+{
+ // getExistingDirectory with default parameter.
+ QString path = FmFileDialog::getExistingDirectory();
+ HbMessageBox::information( path );
+}
+void TestMainWindow::getOpenFileName()
+{
+ // getOpenFileName with default parameter.
+ QString path = FmFileDialog::getOpenFileName();
+ HbMessageBox::information( path );
+}
+void TestMainWindow::getSaveFileName()
+{
+ // getSaveFileName with default parameter.
+ QString path = FmFileDialog::getSaveFileName();
+ HbMessageBox::information( path );
+}
+
+void TestMainWindow::getExistingDirectory_SetDir()
+{
+ // getExistingDirectory and set header & default Directory
+ QString path = FmFileDialog::getExistingDirectory( 0, "Look in:", "C:/Data/Images" );
+ HbMessageBox::information( path );
+}
+void TestMainWindow::getOpenFileName_SetDir()
+{
+ // getOpenFileName and set header & default Directory
+ QString path = FmFileDialog::getOpenFileName( 0, "Look in:", "C:/Data/Images" );
+ HbMessageBox::information( path );
+}
+void TestMainWindow::getSaveFileName_SetDir()
+{
+ // getSaveFileName and set header & default Directory
+ QString path = FmFileDialog::getSaveFileName( 0, "Look in:", "C:/Data/Images" );
+ HbMessageBox::information( path );
+}
+
+void TestMainWindow::getExistingDirectory_SetFilter()
+{
+ // getExistingDirectory and set folder&file filter
+ QStringList filterList;
+ filterList<<"*data*"<<"*image*"<<"*sound*";
+ QString path = FmFileDialog::getExistingDirectory( 0, "Look in:", "", filterList );
+ HbMessageBox::information( path );
+}
+
+void TestMainWindow::getExistingDirectory_SetFilter_AllDirs()
+{
+ // getExistingDirectory and set folder&file filter
+ QStringList filterList;
+ filterList<<"*data*"<<"*image*"<<"*sound*";
+ QString path = FmFileDialog::getExistingDirectory( 0, "Look in:", "", filterList, FmFileDialog::DisplayAllDirs );
+ HbMessageBox::information( path );
+}
+
+void TestMainWindow::getOpenFileName_SetFilter()
+{
+ // getOpenFileName and set file filter
+ //Set DisplayAllDirs to display all folders, otherwise folders will also be filted.
+ QStringList filterList;
+ filterList<<"*.jpg"<<"*.gif"<<"*.png";
+ QString path = FmFileDialog::getOpenFileName( 0, "Look in:", "", filterList, FmFileDialog::DisplayAllDirs );
+ HbMessageBox::information( path );
+}
+void TestMainWindow::getSaveFileName_SetFilter()
+{
+ // getSaveFileName and set file filter
+ //Set DisplayAllDirs to display all folders, otherwise folders will also be filted.
+ QStringList filterList;
+ filterList<<"*.jpg"<<"*.gif"<<"*.png";
+ QString path = FmFileDialog::getSaveFileName( 0, "Look in:", "", filterList, FmFileDialog::DisplayAllDirs );
+ HbMessageBox::information( path );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/examples/demo_fmfiledialog/mainwindow.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,57 @@
+/*
+* 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 "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:
+*
+*
+*/
+
+#include <hbdialog.h>
+#include <hblistwidget.h>
+
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbview.h>
+#include <hblabel.h>
+#include <hbaction.h>
+#include <hblistwidgetitem.h>
+
+#include <QGraphicsLinearLayout>
+
+
+class TestMainWindow : public HbMainWindow
+{
+ Q_OBJECT
+public:
+ TestMainWindow();
+ ~TestMainWindow();
+
+ void init();
+private slots:
+ void activatedListItem(HbListWidgetItem *item);
+
+private:
+ void getExistingDirectory();
+ void getOpenFileName();
+ void getSaveFileName();
+
+ void getExistingDirectory_SetDir();
+ void getOpenFileName_SetDir();
+ void getSaveFileName_SetDir();
+
+ void getExistingDirectory_SetFilter();
+ void getExistingDirectory_SetFilter_AllDirs();
+ void getOpenFileName_SetFilter();
+ void getSaveFileName_SetFilter();
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/examples/demo_fmfiledialog/rom.pri Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,28 @@
+# 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 "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 exports for demo_fmfiledialog
+#
+
+symbian {
+ DEMO_FMFILEDIALOG_IBY_DIR = $$section(PWD, ":", 1)
+
+ exists(/epoc32/include/platform_paths.hrh) {
+ BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>"
+ } else {
+ BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <domain\osextensions\platform_paths.hrh>"
+ }
+
+ BLD_INF_RULES.prj_exports += "$$DEMO_FMFILEDIALOG_IBY_DIR/demo_fmfiledialog.iby CORE_APP_LAYER_IBY_EXPORT_PATH(demo_fmfiledialog.iby)"
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/examples/examples.pro Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,18 @@
+#
+# 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 "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:
+#
+
+TEMPLATE = subdirs
+SUBDIRS = demo_fmfiledialog
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/filemanager.pro Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,24 @@
+# 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 "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:
+#
+#
+
+TEMPLATE = subdirs
+
+symbian {
+ include(rom/rom.pri)
+}
+
+SUBDIRS += src/fmbkupenginewrapper
+SUBDIRS += src/filemanager
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/filemanager_plat/inc/filemanager_plat.pri Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,20 @@
+#
+# 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 "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:
+#
+
+PLATFORM_HEADERS += $$PWD/fmglobal.h \
+ $$PWD/fmfiledialog.h
+
+HEADERS += $$PLATFORM_HEADERS
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/filemanager_plat/inc/fmfiledialog.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,126 @@
+/*
+* 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 "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:
+* The header file of the file dialog
+*
+*/
+
+#ifndef FMFILEDIALOG_H
+#define FMFILEDIALOG_H
+
+#include "fmglobal.h"
+
+
+#include <hbdialog.h>
+
+class QString;
+class QStringList;
+class FmFileDialogPrivate;
+
+class FMFILEDIALOG_EXPORT FmFileDialog : public HbDialog
+{
+Q_OBJECT
+public:
+
+ enum Option
+ {
+ /*
+ * Open dir as dialog's working directory and prevent user up to parent directory
+ */
+ PreventDirUp = 0x00000001,
+ /*
+ * Ignore filter for dir, list all directory. Set this when need only filter filename.
+ */
+ DisplayAllDirs = 0x00000002
+ };
+ Q_DECLARE_FLAGS(Options, Option)
+
+ /**
+ * Static function that will return an existing directory selected by the user
+ * @param parent Parent widget
+ * @param title Title for dialog
+ * @param dir Dialog's working directory is set to dir
+ * @param nameFilters used for filter folder
+ * @param Options Options
+ * @return Directory path that user selected.
+ * user can select cancel to close dialog and empty string will be returned
+ */
+ static QString getExistingDirectory( HbWidget *parent = 0,
+ const QString &title = QString(),
+ const QString &dir = QString(),
+ const QStringList &nameFilters = QStringList(),
+ Options options = 0 );
+
+ /**
+ * Static function that returns an existing file selected by the use
+ * @param parent Parent widget
+ * @param title Title for dialog
+ * @param dir Dialog's working directory is set to dir
+ * @param nameFilters used for filter file/folder, such as "*.jpg", "*.txt"
+ * Please set options with "DisplayAllDirs" to avoid folder be filtered when only filter filename.
+ * @param Options Options
+ * @return File path that user selected. It is an esisting file.
+ * user can select cancel to close dialog and empty string will be returned
+ */
+ static QString getOpenFileName( HbWidget *parent = 0,
+ const QString &title = QString(),
+ const QString &dir = QString(),
+ const QStringList &nameFilters = QStringList(),
+ Options options = 0 );
+ /**
+ * Static function that will return a file name selected by the user. The file does not have to exist.
+ * @param parent Parent widget
+ * @param title Title for dialog
+ * @param dir Dialog's working directory is set to dir
+ * @param nameFilters used for filter file/folder, such as "*.jpg", "*.txt"
+ * Please set options with "DisplayAllDirs" to avoid folder be filtered when only filter filename.
+ * @param Options Options
+ * @return File path that user selected or inputted in file name line edit.
+ * This file does not have to exist.
+ * user can select cancel to close dialog and empty string will be returned
+ */
+ static QString getSaveFileName( HbWidget *parent = 0,
+ const QString &title = QString(),
+ const QString &dir = QString(),
+ const QStringList &nameFilters = QStringList(),
+ Options options = 0 );
+
+private slots:
+ void dialogClosed(HbAction *action);
+
+private:
+ explicit FmFileDialog( QGraphicsItem *parent );
+ ~FmFileDialog();
+
+ bool exec();
+ HbAction *primaryAction() const;
+ void setPrimaryAction( HbAction *action );
+
+ HbAction *secondaryAction() const;
+ void setSecondaryAction( HbAction *action );
+
+ FmFileDialogPrivate *d_ptr;
+
+ Q_DISABLE_COPY( FmFileDialog)
+ Q_DECLARE_PRIVATE_D(d_ptr,FmFileDialog)
+ Q_PRIVATE_SLOT(d_func(),void _q_handleUpButton())
+ Q_PRIVATE_SLOT(d_func(),void _q_handleTextChanged(QString))
+ Q_PRIVATE_SLOT(d_func(),void _q_handlePathChanged(QString))
+ Q_PRIVATE_SLOT(d_func(),void _q_handleFileActivated(QString))
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(FmFileDialog::Options)
+
+#endif // FMFILEDIALOG_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/filemanager_plat/inc/fmglobal.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* 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 "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:
+*
+*/
+
+#ifndef FMGLOBAL_H
+#define FMGLOBAL_H
+
+#include <QtGlobal>
+
+#ifdef FMFILEDIALOG_LIBRARY
+# define FMFILEDIALOG_EXPORT Q_DECL_EXPORT
+#else
+# define FMFILEDIALOG_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif
--- a/filemanager/group/FileManager.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
-* Copyright (c) 2002-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: Project specification of FileManager
-*
-*/
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-#include "FileManagerUID.h"
-MACRO _F32_STRICT_64_BIT_MIGRATION
-
-TARGET filemanager.exe
-TARGETTYPE exe
-EPOCSTACKSIZE 0x5000
-EPOCHEAPSIZE 0x20000 0x800000 // Min 128KB, Max 8MB
-UID KEPOCAppUID2 KFileManagerUID3
-
-VENDORID VID_DEFAULT
-CAPABILITY CAP_APPLICATION DiskAdmin AllFiles PowerMgmt
-
-SOURCEPATH ../App/src
-SOURCE CFileManagerApplication.cpp
-SOURCE CFileManagerDocument.cpp
-SOURCE CFileManagerAppUi.cpp
-SOURCE CFileManagerFileSelectionFilter.cpp
-SOURCE CFileManagerStringCache.cpp
-SOURCE CFileManagerViewBase.cpp
-SOURCE CFileManagerContainerBase.cpp
-SOURCE CFileManagerFileListContainer.cpp
-SOURCE CFileManagerFoldersView.cpp
-SOURCE Cfilemanagersearchresultsview.cpp
-SOURCE CFileManagerMainView.cpp
-SOURCE CFileManagerMemoryStoreView.cpp
-#ifdef RD_FILE_MANAGER_BACKUP
-SOURCE CFileManagerBackupView.cpp
-SOURCE CFileManagerRestoreView.cpp
-SOURCE CFileManagerSettingListContainer.cpp
-SOURCE CFileManagerTaskScheduler.cpp
-SOURCE CFileManagerSchBackupHandler.cpp
-#endif // RD_FILE_MANAGER_BACKUP
-
-START RESOURCE ../data/FileManager.rss
-TARGETPATH APP_RESOURCE_DIR
-HEADER
-LANGUAGE_IDS
-END
-
-START RESOURCE ../data/FileManager_reg.rss
-DEPENDS filemanager.rsg
-// Do not change the UID below.
-TARGETPATH /private/10003a3f/apps
-END
-
-USERINCLUDE . ../App/inc
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE . ../View/inc ../Engine/inc
-
-LIBRARY euser.lib cone.lib apparc.lib
-LIBRARY eikcore.lib eikctl.lib eikcoctl.lib
-LIBRARY avkon.lib
-LIBRARY commonengine.lib
-LIBRARY filemanagerview.lib filemanagerengine.lib
-LIBRARY commondialogs.lib
-LIBRARY bafl.lib
-LIBRARY sendui.lib
-LIBRARY memstatepopup.lib
-LIBRARY hlplch.lib
-LIBRARY efsrv.lib
-LIBRARY aknskins.lib
-LIBRARY gdi.lib
-LIBRARY drmhelper.lib
-LIBRARY charconv.lib
-LIBRARY ecom.lib
-LIBRARY centralrepository.lib
-#ifdef RD_FILE_MANAGER_BACKUP
-LIBRARY ws32.lib
-LIBRARY schsvr.lib
-LIBRARY apgrfx.lib
-LIBRARY eikdlg.lib
-#endif // RD_FILE_MANAGER_BACKUP
-LIBRARY caf.lib
-LIBRARY commonui.lib
-LIBRARY servicehandler.lib
-LIBRARY platformenv.lib
-LIBRARY ssmcmn.lib // state manager
-
-// End of File
--- a/filemanager/group/FileManagerEngine.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
-* Copyright (c) 2002-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: Project specification of FileManagerEngine
-*
-*/
-
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-#include "FileManagerUID.h"
-MACRO _F32_STRICT_64_BIT_MIGRATION
-
-TARGET filemanagerengine.dll
-TARGETTYPE dll
-UID KEPOCStaticDllUID2 KFileManagerUID3
-VENDORID VID_DEFAULT
-CAPABILITY CAP_GENERAL_DLL
-
-
-START RESOURCE ../Engine/data/FileManagerEngine.rss
-TARGETPATH RESOURCE_FILES_DIR
-HEADER
-LANGUAGE_IDS
-END
-
-SOURCEPATH ../Engine/src
-SOURCE CFileManagerEngine.cpp
-#ifndef RD_MULTIPLE_DRIVE
-SOURCE CFileManagerFolderEntry.cpp
-#endif // RD_MULTIPLE_DRIVE
-SOURCE Cfilemanagerfolderarray.cpp
-SOURCE CFileManagerItemProperties.cpp
-SOURCE CFilemanagerMimeIconArray.cpp
-SOURCE CFileManagerActiveExecute.cpp
-SOURCE CFileManagerIRReceiver.cpp
-SOURCE CFileManagerFileSystemIterator.cpp
-SOURCE Cfilemanagerindexiterator.cpp
-SOURCE CfilemanageractiveDelete.cpp
-SOURCE CFileManagerRefresher.cpp
-SOURCE Cfilemanagerfilesystemevent.cpp
-SOURCE Cfilemanageractivesize.cpp
-SOURCE CFileManagerUtils.cpp
-SOURCE CfilemanagerActiveCount.cpp
-SOURCE CFileManagerItemFilter.cpp
-SOURCE TFileManagerDriveInfo.cpp
-SOURCE CFileManagerDocHandler.cpp
-SOURCE CFileManagerThreadWrapper.cpp
-SOURCE CFileManagerRemovableDriveHandler.cpp
-SOURCE CFileManagerRemoteDriveHandler.cpp
-SOURCE CFileManagerPropertySubscriber.cpp
-#ifdef RD_FILE_MANAGER_BACKUP
-SOURCE CFileManagerBackupSettingsFull.cpp
-SOURCE CFileManagerRestoreSettingsFull.cpp
-#else // RD_FILE_MANAGER_BACKUP
-SOURCE CFileManagerBackupSettings.cpp
-SOURCE CFileManagerRestoreSettings.cpp
-#endif // RD_FILE_MANAGER_BACKUP
-SOURCE CFileManagerActiveBase.cpp
-SOURCE CFileManagerActiveRename.cpp
-SOURCE CFileManagerFeatureManager.cpp
-
-USERINCLUDE . ../Engine/inc ../GFLM/inc ../bkupengine/inc
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE /epoc32/include/connect
-
-LIBRARY euser.lib
-LIBRARY gflm.lib
-LIBRARY efsrv.lib
-LIBRARY bafl.lib
-LIBRARY cone.lib
-LIBRARY irobex.lib
-LIBRARY esock.lib
-LIBRARY irda.lib
-LIBRARY sysutil.lib
-LIBRARY featmgr.lib
-LIBRARY commonengine.lib
-//LIBRARY MGXMediaFileApi.lib
-LIBRARY tzclient.lib
-LIBRARY caf.lib
-LIBRARY drmdcf.lib
-LIBRARY commonui.lib
-LIBRARY apparc.lib
-LIBRARY apmime.lib
-LIBRARY avkon.lib
-LIBRARY platformenv.lib
-LIBRARY filemanagerbkupengine.lib
-LIBRARY apgrfx.lib
-LIBRARY ws32.lib
-LIBRARY rsfwmountman.lib
-LIBRARY centralrepository.lib
-#ifdef __KEEP_DRM_CONTENT_ON_PHONE
-#ifdef FILE_MANAGER_USE_DISTRIBUTABLECHECKER
-LIBRARY distributablechecker.lib
-#endif // FILE_MANAGER_USE_DISTRIBUTABLECHECKER
-#endif // __KEEP_DRM_CONTENT_ON_PHONE
-LIBRARY directorylocalizer.lib
-//LIBRARY mgexternalservices.lib
-LIBRARY eikcore.lib
-LIBRARY drmutility.lib
-
-// End of File
--- a/filemanager/group/FileManagerUID.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2006 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: File Manager UID definitions
-*
-*/
-
-
-#ifndef __FILEMANAGERUID_H__
-#define __FILEMANAGERUID_H__
-
-
-// MACROS
-
-/// File Manager application UID3
-#define KFileManagerUID3 0x101F84EB
-
-/// File Manager scheduled backup module UID3
-#define KFileManagerSchBkupUID3 0x2000B182
-
-//
-// Common system UIDs
-//
-#define KEPOCAppUID2 0x100039ce
-#define KEPOCStaticDllUID2 0x1000008d
-
-
-#endif // __FILEMANAGERUID_H__
-
-// End of File
--- a/filemanager/group/FileManagerView.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* Copyright (c) 2002-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: Project specification of FileManagerView
-*
-*/
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-#include "FileManagerUID.h"
-MACRO _F32_STRICT_64_BIT_MIGRATION
-
-TARGET filemanagerview.dll
-TARGETTYPE dll
-UID KEPOCStaticDllUID2 KFileManagerUID3
-VENDORID VID_DEFAULT
-CAPABILITY CAP_GENERAL_DLL
-
-START RESOURCE ../View/data/FileManagerView.rss
-TARGETPATH RESOURCE_FILES_DIR
-HEADER
-LANGUAGE_IDS
-END
-
-SOURCEPATH ../View/src
-SOURCE CFileManagerIconArray.cpp
-SOURCE CFileManagerPopupBase.cpp
-SOURCE CFileManagerInfoPopup.cpp
-SOURCE Cfilemanagerfoldernavigationpane.cpp
-SOURCE Cfilemanagerfoldernamequerydlg.cpp
-SOURCE CFileManagerFileNameQueryDlg.cpp
-SOURCE CFileManagerFullOmaDrmInfo.cpp
-SOURCE FileManagerDlgUtils.cpp
-SOURCE CFileManagerCheckBoxSettingPage.cpp
-SOURCE CFileManagerMMCInfoPopup.cpp
-SOURCE CFileManagerGlobalDlgFull.cpp
-SOURCE CFileManagerGlobalQueryDlg.cpp
-
-USERINCLUDE . ../View/inc
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE . ../Engine/inc
-
-LIBRARY euser.lib cone.lib
-LIBRARY eikcore.lib eikcoctl.lib eikdlg.lib
-LIBRARY avkon.lib
-LIBRARY egul.lib
-LIBRARY bafl.lib
-LIBRARY commonengine.lib
-LIBRARY filemanagerengine.lib
-LIBRARY aknskins.lib
-LIBRARY drmhelper.lib
-LIBRARY efsrv.lib
-LIBRARY cdlengine.lib
-LIBRARY aknicon.lib
-LIBRARY gdi.lib
-LIBRARY aknlayout2scalable.lib
-LIBRARY aknnotify.lib
-LIBRARY memstatepopup.lib
-LIBRARY drmrights.lib
-LIBRARY drmuihandling.lib
-
-// ----------- Touch feedback additions start
-#ifdef RD_TACTILE_FEEDBACK
-LIBRARY touchfeedback.lib
-#endif //RD_TACTILE_FEEDBACK
-// ----------- Touch feedback additions end
-
-// End of File
--- a/filemanager/group/GFLM.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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 specification of GFLM
-*
-*/
-
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-#include "../GFLM/inc/GFLMUid.h"
-MACRO _F32_STRICT_64_BIT_MIGRATION
-
-TARGET gflm.dll
-TARGETTYPE DLL
-UID KSymbianDLLUid2 KGflmUid3
-
-VENDORID VID_DEFAULT
-CAPABILITY CAP_GENERAL_DLL
-
-
-SOURCEPATH ../GFLM/src
-SOURCE CGflmNavigatorModel.cpp
-SOURCE CGflmFileListModel.cpp
-SOURCE CGflmItemGroupImpl.cpp
-SOURCE CGflmItemLocalizer.cpp
-SOURCE CGflmGroupItem.cpp
-SOURCE CGflmGlobalActionItem.cpp
-SOURCE CGflmFileSystemItem.cpp
-SOURCE CGflmDirectoryListingCache.cpp
-SOURCE CGflmFileRecognizer.cpp
-SOURCE CGflmDriveResolver.cpp
-SOURCE GflmUtils.cpp
-SOURCE CGflmDriveItem.cpp
-SOURCE CGflmFileFinder.cpp
-SOURCE CGflmFileFinderItem.cpp
-
-SOURCEPATH ../GFLM/data
-START RESOURCE GflmFileExtensionMimeTypes.rss
-HEADER
-TARGETPATH RESOURCE_FILES_DIR
-END
-
-USERINCLUDE ../GFLM/inc
-USERINCLUDE ../Engine/inc // For debug definitions
-
-APP_LAYER_SYSTEMINCLUDE
-
-LIBRARY apgrfx.lib // RApaLsSession
-LIBRARY apmime.lib // TDataType
-LIBRARY bafl.lib
-LIBRARY efsrv.lib
-LIBRARY euser.lib
-LIBRARY directorylocalizer.lib
-
-#ifdef RD_MULTIPLE_DRIVE
-LIBRARY platformenv.lib
-#endif // RD_MULTIPLE_DRIVE
--- a/filemanager/group/backup_registration.xml Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" standalone="yes" ?>
-<backup_registration>
-<public_backup>
- <include_directory name="C:\data" />
- <include_directory name="F:\" />
-</public_backup>
-<restore requires_reboot="no" />
-</backup_registration>
--- a/filemanager/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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 FileManager
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-// Help exports
-#include "../help/group/bld.inf"
-
-PRJ_EXPORTS
-//Configuration tool migration
-../conf/s60filemanager.confml APP_LAYER_CONFML(s60filemanager.confml)
-../conf/s60filemanager_1020506B.crml APP_LAYER_CRML(s60filemanager_1020506b.crml)
-
-../group/backup_registration.xml z:/private/101f84eb/backup_registration.xml
-
-../rom/FileManager.iby CORE_APP_LAYER_IBY_EXPORT_PATH(FileManager.iby)
-../rom/FileManagerResources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(FileManagerResources.iby)
-../loc/FileManager.loc APP_LAYER_LOC_EXPORT_PATH(filemanager.loc)
-
-
-PRJ_EXTENSIONS
-START EXTENSION s60/mifconv
- OPTION TARGETFILE filemanager.mif
- OPTION HEADERFILE filemanager.mbg
-#ifdef RD_MULTIPLE_DRIVE
- OPTION SOURCES \
- -c8,1 qgn_prop_mmc_memc -c8,1 qgn_prop_phone_memc -c8,1 qgn_prop_memc_phone_tab \
- -c8,1 qgn_prop_memc_mmc_tab -c8,1 qgn_prop_folder_tab -c8,1 qgn_prop_memc_phone_tab2 \
- -c8,1 qgn_prop_memc_mmc_tab2 -c8,8 qgn_prop_file_swf_small -c8,8 qgn_prop_fmgr_phone_memc_sub \
- -c8,8 qgn_prop_fmgr_mmc_sub -c8,8 qgn_prop_fmgr_mmc_no_sub -c8,8 qgn_prop_fmgr_backup_sub \
- -c8,8 qgn_indi_connection_on_add -c8,8 qgn_menu_fmgr_remote_drive -c8,8 qgn_prop_fmgr_remote_drive_tab \
- -c8,8 qgn_prop_folder_empty -c8,8 qgn_indi_mmc_add -c8,8 qgn_prop_fmgr_ms_sub \
- -c8,8 qgn_prop_memc_ms_tab -c8,8 qgn_prop_usb_memc_sub.svg -c8,8 qgn_prop_usb_memc_tab \
- -c8,8 qgn_indi_usb_memc.svg
-#else
- OPTION SOURCES \
- -c8,1 qgn_prop_mmc_memc -c8,1 qgn_prop_phone_memc -c8,1 qgn_prop_memc_phone_tab \
- -c8,1 qgn_prop_memc_mmc_tab -c8,1 qgn_prop_folder_tab -c8,1 qgn_prop_memc_phone_tab2 \
- -c8,1 qgn_prop_memc_mmc_tab2 -c8,8 qgn_prop_file_swf_small -c8,8 qgn_prop_fmgr_phone_memc_sub \
- -c8,8 qgn_prop_fmgr_mmc_sub -c8,8 qgn_prop_fmgr_mmc_no_sub -c8,8 qgn_prop_fmgr_backup_sub \
- -c8,8 qgn_indi_connection_on_add -c8,8 qgn_menu_fmgr_remote_drive -c8,8 qgn_prop_fmgr_remote_drive_tab \
- -c8,8 qgn_prop_folder_empty -c8,8 qgn_indi_mmc_add -c8,8 qgn_indi_usb_memc.svg
-#endif
-END
-
-PRJ_EXTENSIONS
-START EXTENSION s60/mifconv
- OPTION TARGETFILE filemanager_aif.mif
- OPTION SOURCES -c8,8 qgn_menu_fmgr
-END
-
-
-
-PRJ_MMPFILES
-/*
- #ifdef RD_MULTIPLE_DRIVE
- gnumakefile fmgr_icons_multiple_drive_dc.mk
- #else // RD_MULTIPLE_DRIVE
- gnumakefile fmgr_icons_merge_dc.mk
- #endif // RD_MULTIPLE_DRIVE
-
- #ifdef __SCALABLE_ICONS
- gnumakefile fmgr_icons_aif_scalable_dc.mk
- #else
- gnumakefile fmgr_icons_aif_bitmaps_dc.mk
- #endif
-*/
-
-GFLM.mmp
-filemanagerbkupengine.mmp
-#ifdef RD_FILE_MANAGER_BACKUP
- filemanagerschbkup.mmp
-#endif // RD_FILE_MANAGER_BACKUP
-FileManagerEngine.mmp
-FileManagerView.mmp
-FileManager.mmp
-filemanagerbkupchecker.mmp
-filemanageraiwprovider.mmp
-
--- a/filemanager/group/filemanageraiwprovider.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +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: Project definition file for project filemanageraiwprovider
-*
-*/
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-MACRO _F32_STRICT_64_BIT_MIGRATION
-TARGET filemanageraiwprovider.dll
-TARGETTYPE PLUGIN
-UID 0x10009D8D 0x200110F8
-
-CAPABILITY CAP_ECOM_PLUGIN
-VENDORID VID_DEFAULT
-
-SOURCEPATH ../aiwprovider/src
-SOURCE filemanageraiwprovider.cpp
-
-USERINCLUDE .
-USERINCLUDE ../aiwprovider/inc
-USERINCLUDE ../Engine/inc
-APP_LAYER_SYSTEMINCLUDE
-
-SOURCEPATH ../aiwprovider/data
-START RESOURCE 200110F8.rss
-TARGET filemanageraiwprovider.rsc
-END
-
-LIBRARY euser.lib
-LIBRARY apparc.lib
-LIBRARY ws32.lib
-LIBRARY apgrfx.lib
-LIBRARY ecom.lib
-LIBRARY servicehandler.lib
-LIBRARY avkon.lib
-LIBRARY centralrepository.lib
--- a/filemanager/group/filemanagerbkupchecker.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2006 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 filemanagerbkupchecker
-*
-*/
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-MACRO _F32_STRICT_64_BIT_MIGRATION
-
-TARGET filemanagerbkupplugin.dll
-TARGETTYPE PLUGIN
-UID 0x10009D8D 0x10205078
-
-CAPABILITY CAP_ECOM_PLUGIN
-VENDORID VID_DEFAULT
-
-SOURCEPATH ../bkupchecker/src
-SOURCE filemanagerbkupchecker.cpp
-USERINCLUDE . ../bkupchecker/inc
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE ../Engine/inc
-
-SOURCEPATH ../bkupchecker/data
-START RESOURCE 10205078.rss
-TARGET filemanagerbkupplugin.rsc
-END
-
-START RESOURCE filemanagerbkupchecker.rss
-TARGET filemanagerbkupchecker.rsc
-TARGETPATH RESOURCE_FILES_DIR
-HEADER
-LANGUAGE_IDS
-END
-
-LIBRARY euser.lib
-LIBRARY efsrv.lib
-LIBRARY bafl.lib
-LIBRARY apfile.lib
-LIBRARY akncapserverclient.lib
-LIBRARY eikcore.lib
-LIBRARY apparc.lib
-
--- a/filemanager/group/filemanagerbkupengine.mmh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-* Copyright (c) 2006 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 header file for project FileManagerBkupEngine
-*
-*/
-
-SOURCE CMMCScBkupArchive.cpp
-SOURCE CMMCScBkupArchiveDataManager.cpp
-SOURCE CMMCScBkupArchiveFooter.cpp
-SOURCE CMMCScBkupArchiveHeader.cpp
-SOURCE CMMCScBkupArchiveInfo.cpp
-SOURCE CMMCScBkupBufferManagers.cpp
-SOURCE CMMCScBkupDataOwnerCollection.cpp
-SOURCE CMMCScBkupDataOwnerInfo.cpp
-SOURCE CMMCScBkupDataStrategies.cpp
-SOURCE CMMCScBkupDriveSpecificRequest.cpp
-SOURCE CMMCScBkupEngine.cpp
-SOURCE CMMCScBkupEngineImpl.cpp
-SOURCE CMMCScBkupFileInfo.cpp
-SOURCE CMMCScBkupFileListCollection.cpp
-SOURCE CMMCScBkupIndexBase.cpp
-SOURCE CMMCScBkupIndexDataOwners.cpp
-SOURCE CMMCScBkupIndexActiveData.cpp
-SOURCE CMMCScBkupIndexPassiveData.cpp
-SOURCE CMMCScBkupIndexPublicDataFiles.cpp
-SOURCE CMMCScBkupIndexJavaData.cpp
-SOURCE CMMCScBkupIndexSystemData.cpp
-SOURCE CMMCScBkupIndexWithIdentifier.cpp
-SOURCE CMMCScBkupOperationParameters.cpp
-SOURCE CMMCScBkupState.cpp
-SOURCE CMMCScBkupStateArchiveOpActiveData.cpp
-SOURCE CMMCScBkupStateArchiveOpArchiveFooter.cpp
-SOURCE CMMCScBkupStateArchiveOpArchiveHeader.cpp
-SOURCE CMMCScBkupStateArchiveOpDataOwners.cpp
-SOURCE CMMCScBkupStateArchiveOpPassiveData.cpp
-SOURCE CMMCScBkupStateArchiveOpPublicDataFiles.cpp
-SOURCE CMMCScBkupStateArchiveOpSystemData.cpp
-SOURCE CMMCScBkupStateArchiveOpJavaData.cpp
-SOURCE CMMCScBkupStateFactory.cpp
-SOURCE CMMCScBkupStateGetDataOwners.cpp
-SOURCE CMMCScBkupStateGetDataOwnerStatuses.cpp
-SOURCE CMMCScBkupStateOpAware.cpp
-SOURCE CMMCScBkupStateRequestListOfPublicFiles.cpp
-SOURCE CMMCScBkupStateRequestSizeOfBackupData.cpp
-SOURCE CMMCScBkupStateSetPhoneMode.cpp
-SOURCE CMMCScBkupStateNotifyAllSnapshotsSupplied.cpp
-SOURCE CMMCScBkupStateValidateDiskSpace.cpp
-SOURCE CMMCScBkupTransferReadRequest.cpp
-SOURCE CMMCScBkupTransferRequest.cpp
-SOURCE CMMCScBkupTransferWriteRequest.cpp
-SOURCE CMMCScBkupDriveAndOperationTypeManager.cpp
-SOURCE CMMCScBkupDriveDataSizeManager.cpp
-SOURCE MMCScBkupArchiveUtils.cpp
-SOURCE MMCScBkupPhoneModelUtils.cpp
-SOURCE MMCScBkupSBEUtils.cpp
-SOURCE MMCScBkupLogger.cpp
-SOURCE RMMCScBkupArchiveStreams.cpp
-SOURCE RMMCScBkupProgressSizer.cpp
-SOURCE TMMCScBkupArchiveVector.cpp
-SOURCE TMMCScBkupDriveFilter.cpp
-SOURCE TMMCScBkupDriveAndSize.cpp
--- a/filemanager/group/filemanagerbkupengine.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2006 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 FileManagerBkupEngine
-*
-*/
-
-
-#include <platform_paths.hrh>
-#include "../bkupengine/inc/MMCScBkupDllUids.h"
-MACRO _F32_STRICT_64_BIT_MIGRATION
-
-TARGET filemanagerbkupengine.dll
-TARGETTYPE dll
-UID KEPOCDLLUID2 KMMCAppEngUID3
-VENDORID VID_DEFAULT
-CAPABILITY CAP_GENERAL_DLL DiskAdmin AllFiles PowerMgmt
-
-SOURCEPATH ../bkupengine/src
-#include "filemanagerbkupengine.mmh"
-
-USERINCLUDE ../bkupengine/inc
-
-APP_LAYER_SYSTEMINCLUDE
-//SYSTEMINCLUDE /epoc32/include/connect
-
-LIBRARY sbeclient.lib
-LIBRARY euser.lib
-LIBRARY ezlib.lib
-LIBRARY bafl.lib
-LIBRARY efsrv.lib
-LIBRARY sysutil.lib
-LIBRARY commonengine.lib
-LIBRARY featmgr.lib
-LIBRARY estor.lib
-LIBRARY centralrepository.lib
-LIBRARY platformenv.lib
-LIBRARY cone.lib
-
-
-// End of File
--- a/filemanager/group/filemanagerschbkup.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2006 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 FileManagerSchBkup
-*
-*/
-
-
-#include <platform_paths.hrh>
-#include "FileManagerUID.h"
-MACRO _F32_STRICT_64_BIT_MIGRATION
-TARGET filemanagerschbkup.exe
-TARGETTYPE exe
-UID KEPOCAppUID2 KFileManagerSchBkupUID3
-
-VENDORID VID_DEFAULT
-CAPABILITY CAP_APPLICATION
-
-SOURCEPATH ../schbkup/src
-SOURCE filemanagerschbackupmain.cpp
-SOURCE filemanagerschbackuptask.cpp
-SOURCE filemanagerschsubscriber.cpp
-SOURCE fmsystemstatemonitor.cpp
-
-USERINCLUDE . ../schbkup/inc ../Engine/inc
-
-APP_LAYER_SYSTEMINCLUDE
-
-LIBRARY euser.lib
-LIBRARY efsrv.lib
-LIBRARY estor.lib
-LIBRARY schsvr.lib
-LIBRARY ws32.lib
-LIBRARY apgrfx.lib
-LIBRARY apparc.lib
-LIBRARY centralrepository.lib
-LIBRARY ssmcmn.lib // state manager
-
Binary file filemanager/help/data/xhtml.zip has changed
--- a/filemanager/help/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* 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 "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 help related files.
-*
-*/
-
-#include <platform_paths.hrh>
-PRJ_EXPORTS
-:zip ../data/xhtml.zip /epoc32/data/z/resource/ overwrite
-:zip ../data/xhtml.zip /epoc32/winscw/c/resource/ overwrite
-
-../inc/fmgr.hlp.hrh MW_LAYER_PLATFORM_EXPORT_PATH(csxhelp/fmgr.hlp.hrh)
-../rom/filemanagerhelps_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(filemanagerhelps_variant.iby)
--- a/filemanager/help/inc/fmgr.hlp.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* 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 "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:
-*
-*/
-
-//
-// fmgr.hlp.hrh generated by CSXHelp Utilities.
-//
-
-#ifndef __FMGR_HLP_HRH__
-#define __FMGR_HLP_HRH__
-
-_LIT(KFMGR_HLP_MEM_STORE_VIEW, "FMGR_HLP_MEM_STORE_VIEW"); //
-_LIT(KFMGR_HLP_MAIN_VIEW, "FMGR_HLP_MAIN_VIEW"); //
-_LIT(KFMGR_HLP_SEARCH_RESULTS, "FMGR_HLP_SEARCH_RESULTS"); //
-_LIT(KFMGR_HLP_BACKUP_VIEW, "FMGR_HLP_BACKUP_VIEW"); //
-
-#endif
\ No newline at end of file
--- a/filemanager/help/rom/filemanagerhelps_variant.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* 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 "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:
-*
-*/
-
-#ifndef __FILEMANAGERHELPS_VARIANT_IBY__
-#define __FILEMANAGERHELPS_VARIANT_IBY__
-
-#if defined(FF_S60_HELPS_IN_USE)
- data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x101F84EB\contents.zip, RESOURCE_FILES_DIR\xhtml\%02d\0x101F84EB\contents.zip)
- data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x101F84EB\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x101F84EB\index.xml)
- data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x101F84EB\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x101F84EB\keywords.xml)
- data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x101F84EB\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x101F84EB\meta.xml)
-#endif
-
-#endif
\ No newline at end of file
--- a/filemanager/loc/FileManager.loc Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2138 +0,0 @@
-/*
-* Copyright (c) 2002-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: Localization strings for project FileManager
-*
-*/
-
-
-/*
- The syntax of a logical name entry in this file is the following:
-
- // d:context description (line 1)
- // d:context description (line N)
- // l:layout id
- // w:
- // r:release information
- //
- #define qtn_<?feature_or_application>_?freetext "?text"
-
- where
- "qtn_" starts a logical name. Note: "text_" has been used in
- old logical names, but is deprecated.
- "?feature/application" is 2-5 lower-case characters and/or numbers
- identifying the larger context of the display text.
- "?freetext" is the free text portion of the logical name.
- It may contain only lower-case letters ('a' to 'z'), numbers
- ('0' to '9'), and the underscore ('_'). The total length of
- the logical name does must not exceed 50 characters.
- "d:" Starts a description line clarifying the entry's context with
- information like:
- - Is a word a verb in imperative or is it a noun? (For instance,
- what does "Set" mean?)
- - What will replace %U (unicode text parameter) or %N (number
- parameter) included in texts? (For instance, is it a phone
- number or an e-mail address?)
- "l:" Starts a layout id information (one line).
- "P" and "No" are symbols in LAF's information table
- - "P" is parent pane or current pane
- - "No" is reference number in table
- "r:" Starts a release information: one line indicating in which
- S60 release the text was used for the first time.
-
- Refer to the S60 localization instructions for more information.
-
- Examples:
-
-// d:Command in options list in short term memories.
-// d:Opens the call list view that is focused.
-// l:list_single_popup_menu_pane_1
-// r:3.1
-//
-#define text_logs_stm_cmd_open "Open"
-
-// d:Title pane text in converter main state.
-// l:title_pane_1
-// r:3.0
-//
-#define qtn_cnv_title "Converter"
-
-// d:Prompt text for currency data query in converter.
-// l:popup_query_data_window_1
-// r:4.0
-//
-#define qtn_cnv_edit_name_prompt "Currency name"
-
-// d:Active call is terminated and a held call becomes active.
-// d:Operation is confirmed with this info note.
-// d:%U stands for the call identification of the activated call.
-// l:popup_note_window_1
-// r:3.1
-//
-#define qtn_multc_unhold_done_note "%U active"
-
-*/
-
-// LOCALISATION STRINGS
-
-//d:Title pane text in File Manager main state.
-//d:Application name.
-//l:title_pane_t2/opt9
-//w:
-//r:3.0
-//
-#define qtn_fmgr_main_title "File Manager"
-
-//d:Caption string for AIF file (short)
-//l:cell_app_pane_t1
-//w:
-//r:3.0
-//
-#define qtn_apps_fmgr_grid "File Manager"
-
-//d:Caption string for AIF file (long)
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.0
-//
-#define qtn_apps_fmgr_list "File Manager"
-
-//d:Command in options list
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_fmgr_options_find_file "Find"
-
-//d:Command in options list
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_album_cmd_receive_via_ir "Receive via infrared"
-
-//d:Title text for info popup (when focus is on file)
-//l:heading_pane_t1
-//w:
-//r:3.0
-//
-#define qtn_fmgr_info_heading_file "File details:"
-
-//d:Title text for info popup (when focus is on folder)
-//l:heading_pane_t1
-//w:
-//r:3.0
-//
-#define qtn_fmgr_info_heading_fldr "Folder details:"
-
-//d:Title text for info popup (when focus is on link)
-//l:heading_pane_t1
-//w:
-//r:3.0
-//
-#define qtn_fmgr_info_heading_link "Link details:"
-
-//d:heading item text for the info popup listbox
-//l:list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_fmgr_info_fldr_default "Folder:"
-
-//d:heading item text for the info popup listbox
-//l:list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_fmgr_info_contain_fldr "Sub folders:"
-
-//d:heading item text for the info popup listbox
-//l:list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_fmgr_info_contain_file "Files:"
-
-//d:data item text for the info popup listbox when focus is on default folder.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_fmgr_info_def_fldr_text "Default folder"
-
-//d:heading item text for the info popup listbox
-//l:list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_swins_lsh2_apps_name "Name:"
-
-//d:heading item text for the info popup listbox
-//l:list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_swins_lsh2_apps_type "Type:"
-
-//d:heading item text for the info popup listbox
-//l:list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_album_datim_date "Date:"
-
-//d:heading item text for the info popup listbox
-//l:list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_album_datim_time "Time:"
-
-//d:heading item text for the info popup listbox
-//l:list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_album_litxt_size "Size:"
-
-//d:Title text for memory state popup
-//l:heading_pane_t1
-//w:
-//r:3.0
-//
-#define qtn_fmgr_mstate_heading "Memory state:"
-
-//d:Information note text
-//d:if focused file type is not supported, this text is shown
-//l:popup_note_window
-//w:
-//r:3.0
-//
-#define qtn_fmgr_error_unsupport "File is unsupported and can't be opened"
-
-//d:Information note text
-//d:if focused file type is not supported, this text is shown
-//l:popup_note_window
-//w:
-//r:3.0
-//
-#define qtn_fmgr_error_cant_open "File can't be opened"
-
-//d:Information note text
-//d:if user tries to delete default folder, this text is shown
-//l:popup_note_window
-//w:
-//r:3.0
-//
-#define qtn_fmgr_error_del_def_fldr "The folder is used as default folder for some other application. You can't delete it."
-
-//d:Information note text
-//d:if user tries to delete a file that is currently in use, this text is shown
-//l:popup_note_window
-//w:
-//r:3.0
-//
-#define qtn_fmgr_error_delete_file_open "The file is currently open. Can't be deleted"
-
-//d:Prompt text in common file dialog
-//d:shown when user is prompted to select memory to be searched
-//l:heading_pane_t1
-//w:
-//r:3.0
-//
-#define qtn_fmgr_find_prtx "Look in:"
-
-//d:a prompt for entering text to be searched
-//l:popup_query_data_window_t3/opt2
-//w:
-//r:3.0
-//
-#define qtn_fmgr_find_dataq_prtx "Searched text:"
-
-//d:text displayed in wait dialog when searching files
-//l:popup_note_wait_window
-//w:
-//r:3.0
-//
-#define qtn_fmgr_wnote_search "Searching"
-
-//d:text displayed in search view if there are no results
-//l:main_list_empty_pane
-//w:
-//r:3.0
-//
-#define qtn_fmgr_search_not_found "No found files or folders"
-
-//d: a progress note when connecting to other device before receiving a file
-//l: popup_note_wait_window
-//w:
-//r:3.0
-//
-#define qtn_ir_connecting "Connecting via infrared"
-
-//d:text displayed in progress dialog when receiving file
-//l:popup_note_wait_window
-//w:
-//r:3.0
-//
-#define qtn_fmgr_note_receive_ir "Receiving file %N%"
-
-//d:Separates folder icons in navipane when subfolders are browsed.
-//d:only for __SERIES60_MMC
-//l:list_cale_time_pane_t2/opt10
-//w:
-//r:3.0
-//
-#define qtn_memc_main_separator "\\"
-
-//d:End character for navipane when subfolders are browsed beyond the maximum
-//d:navigation depth
-//l:list_cale_time_pane_t2/opt10
-//w:
-//r:3.0
-//
-#define qtn_memc_main_end "..."
-
-//d:Information note text
-//d: User is trying to delete a folder, one file is open in that folder so it cannot be deleted and this text is shown
-//l:popup_note_window
-//w:
-//r:3.0
-//
-#define qtn_fmgr_error_del_fldr_open_1 "The folder contains open file. Folder can't be deleted"
-
-//d:Information note text
-//d: User is trying to delete a folder, several files are open in that folder so it cannot be deleted
-//l:popup_note_window
-//w:
-//r:3.0
-//
-#define qtn_fmgr_error_del_fldr_open_se "The folder contains several open files. Folder can't be deleted"
-
-///////////////////////////////////////////////////////////////
-// DRM view info, these are also introduced in Rights Manager.
-///////////////////////////////////////////////////////////////
-
-//d: This is displayed in view info popup
-//d: Type of rights, play
-//l: navi_navi_text_pane_srt_t1
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det2_play "Play"
-
-//d: This is displayed in view info popup
-//d: Type of rights, display
-//l: navi_navi_text_pane_srt_t1
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det2_display "Display"
-
-//d: This is displayed in view info popup
-//d: Type of rights, execute
-//l: navi_navi_text_pane_srt_t1
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det2_execute "Execute"
-
-//d: This is displayed in view info popup
-//d: Type of rights, print
-//l: navi_navi_text_pane_srt_t1
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det2_print "Print"
-
-//d: This is displayed in view info popup
-//d: Full Rights label. In parentheses there will be either play, display, execute or print word
-//l: list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_full_x "Rights (%U)"
-
-//d: This is displayed in view info popup
-//d: Full Rights data, unlimited usage
-//l: list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_unlimited "Unlimited"
-
-//d: This is displayed in view info popup
-//d: Count label. In parentheses there will be either play, display, execute or print word
-//l: list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_utl_x "Times left (%U)"
-
-//d: This is displayed in view info popup
-//d: Count data. 1 count
-//l: list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_1_count "1 count"
-
-//d: This is displayed in view info popup
-//d: Count data. more than 1 count
-//l: list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_n_counts "%N counts"
-
-//d: This is displayed in view info popup
-//d: Interval label, which is not activated. In parentheses there will be either play,
-// display, execute or print word
-//l: list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_uts_x "Times status (%U)"
-
-//d: This is displayed in view info popup
-//d: Interval data. Not activated
-//l: list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_not_act "Not activated"
-
-//d: This is displayed in view info popup
-//d: Interval time left label. In parentheses there will be either play,
-// display, execute or print word
-//l: list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_udl_x "Time left (%U)"
-
-//d: This is displayed in view info popup
-//d: Interval data. One measurement
-//l: list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_inter "%U"
-
-//d: This is displayed in view info popup
-//d: Interval data. Two measurement
-//l: list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_inter_two "%0U, %1U"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:It reports that the time constraint for this type of object is 1 year.
-//d:Other quantities of time may follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_years_one "1 year"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of years of an interval
-//d:It is used for period of years ending with 1 from 21 (21, 31, 41,etc.)
-//d:It reports that the time constraint for this type of object is %N years.
-//d:Other quantities of time may follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_years_one_final "%N years"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of years of an interval
-//d:It is used for period of years ending from 2 to 4, excluded 12-14 (2-4,
-//d:22-24, 32-34, etc.)
-//d:It reports that the time constraint for this type of object is %N years.
-//d:Other quantities of time may follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_years_two_four "%N years"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of years of an interval
-//d:It is used for period of years ending from 5 to 0 plus range between 11 and
-//d:14 (5-20, 25-30, 35-40, etc.)
-//d:It reports that the time constraint for this type of object is %N years.
-//d:Other quantities of time may follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_years_five_zero "%N years"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:It reports that the time constraint for this type of object is 1 month.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_months_one "1 month"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of months of an interval
-//d:It is used for period from two to four months
-//d:It reports that the time constraint for this type of object is %N months.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_months_two_four "%N months"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of months of an interval
-//d:It is used for period greater than four months
-//d:It reports that the time constraint for this type of object is %N months.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_months_five_zero "%N months"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:It reports that the time constraint for this type of object is 1 day.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_days_one "1 day"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of days of an interval
-//d:It is used for a period of 21 days
-//d:It reports that the time constraint for this type of object is %N days.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_days_one_final "%N days"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of days of an interval
-//d:It is used for period of days ending from 2 to 4, excluded 12-14 (2-4,
-//d:22-24)
-//d:It reports that the time constraint for this type of object is %N days.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_days_two_four "%N days"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of days of an interval
-//d:It is used for period of days ending from 5 to 0 plus range between 11 and
-//d:14 (5-20, 25-30)
-//d:It reports that the time constraint for this type of object is %N days.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_days_five_zero "%N days"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:It reports that the time constraint for this type of object is 1 hour.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_hours_one "1 hour"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of hours of an interval
-//d:It is used for a period of 21 hours
-//d:It reports that the time constraint for this type of object is %N hours.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_hours_one_final "%N hours"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of hours of an interval
-//d:It is used for period of hours ending from 2 to 4, excluded 12-14 (2-4,
-//d:22-23)
-//d:It reports that the time constraint for this type of object is %N hours.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_hours_two_four "%N hours"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of hours of an interval
-//d:It is used for a period included from 5 to 20 hours
-//d:It reports that the time constraint for this type of object is %N hours.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_hours_five_zero "%N hours"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:It reports that the time constraint for this type of object is 1 minute.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_mins_one "1 minute"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of minutes of an interval
-//d:It is used for period of minutes ending with 1 from 21 (21, 31, 41, 51)
-//d:It reports that the time constraint for this type of object is %N minutes.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_mins_one_final "%N minutes"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of minutes of an interval
-//d:It is used for period of minutes ending from 2 to 4, excluded 12-14 (2-4,
-//d:22-24, 32-34, 42-44, 52-54)
-//d:It reports that the time constraint for this type of object is %N minutes.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_mins_two_four "%N minutes"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of minutes of an interval
-//d:It is used for period of minutes ending from 5 to 0 plus range between 11
-//d:and 14 (5-20, 25-30, 35-40, 45-50, 53-59)
-//d:It reports that the time constraint for this type of object is %N minutes.
-//d:Other quantities of time may precede or follow.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_mins_five_zero "%N minutes"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:It reports that the time constraint for this type of object is 1 second.
-//d:Other quantities of time may precede.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_secs_one "1 second"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of seconds of an interval
-//d:It is used for period of seconds ending with 1 from 21 (21, 31, 41, 51)
-//d:It reports that the time constraint for this type of object is %N seconds.
-//d:Other quantities of time may precede.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_secs_one_final "%N seconds"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of seconds of an interval
-//d:It is used for period of seconds ending from 2 to 4, excluded 12-14 (2-4,
-//d:22-24, 32-34, 42-44, 52-54)
-//d:It reports that the time constraint for this type of object is %N seconds.
-//d:Other quantities of time may precede.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_secs_two_four "%N seconds"
-
-//d:Possible second line for fourth entry of Details View listbox
-//d:%N number of seconds of an interval
-//d:It is used for period of minutes ending from 5 to 0 plus range between 11
-//d:and 14 (5-20, 25-30, 35-40, 45-50, 53-59)
-//d:It reports that the time constraint for this type of object is %N seconds.
-//d:Other quantities of time may precede.
-//l:list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_nbr_of_secs_five_zero "%N seconds"
-
-//d: This is displayed in view info popup
-//d: Date and time label. Beginning time. In parentheses there will be either play,
-// display, execute or print word
-//l: list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_rvf_x "Valid from (%U)"
-
-//d: This is displayed in view info popup
-//d: Date and time label. Ending time. In parentheses there will be either play,
-// display, execute or print word
-//l: list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_rvt_x "Valid until (%U)"
-
-//d: This is displayed in view info popup
-//d: Sending label.
-//l: list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_cs "Content sending"
-
-//d: This is displayed in view info popup
-//d: Sending data. Item sending is allowed
-//l: list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_allowed "Allowed"
-
-//d: This is displayed in view info popup
-//d: Sending data. Item sending is forbidden
-//l: list_double_pane_t2_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_forbid "Forbidden"
-
-//d:First line of first entry of Details View listbox
-//d:It indicates the current status of the selected Right Object
-//d:Second line is qtn_drm_mgr_det_valid or qtn_drm_mgr_det_exp
-//l:list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_stat "Status"
-
-//d:Possible first line for fourth entry of Details View listbox
-//d:Second line is qtn_drm_mgr_det_inter or qtn_drm_mgr_det_inter_two, meaning
-//d:a quantity of time that specifies how long this object can be used.
-//l:list_double_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_det_accum_time_left "Usage time left"
-
-//d:Title pane text in main view
-//l:title_pane_t2/opt9
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_title_pane "Activation Keys"
-
-//d:Menu item used in Group view to see the details of a Media Object.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.0
-//
-#define qtn_drm_mgr_group_mo_view_det "View details"
-
-///////////////////////////////////////////////////////////////
-// End of DRM view info logical names
-///////////////////////////////////////////////////////////////
-
-//d:Warning note
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_fm_warning_file_extension "If file extension is changed file may become unusable"
-
-//d:Phone memory name in main page, item data
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_main_phone "Phone memory"
-
-//d:Default memory card name in main page, item data
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_main_card_default "Memory card"
-
-//d:Caption string.
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_title_phone_mem "Phone memory"
-
-//d:Caption string.
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_title_mem_card "Memory card"
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_eject "Eject"
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2/opt3
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_organise "Organise"
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2/opt3
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_details "Details"
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2/opt3
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_card "Memory card"
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2/opt3
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_card_password "Memory card password"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_set_password "Set"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_change_passwd "Change"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_remove_passwd "Remove"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_card_name "Name"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_card_rename "Rename"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_card_format "Format"
-
-//d:Caption string for memory card details popup
-//l:heading_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_memcard_info_heading "Memory card details"
-
-//d:This is displayed in memory card details info popup
-//l:list_single_heading_pane_t2_cp2
-//w:
-//r:3.1
-//
-#define qtn_fmgr_card_info_name "Name"
-
-//d:This is displayed in memory card details info popup
-//l:list_single_heading_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_card_info_default_name "Memory card"
-
-//d:This is displayed in memory card details info popup
-//l:list_single_heading_pane_t2_cp2
-//w:
-//r:3.1
-//
-#define qtn_fmgr_card_info_size "Capacity"
-
-//d:This is displayed in memory card details info popup
-//l:list_single_heading_pane_t2_cp2
-//w:
-//r:3.1
-//
-#define qtn_fmgr_card_info_used "Used"
-
-//d:This is displayed in memory card details info popup
-//l:list_single_heading_pane_t2_cp2
-//w:
-//r:3.1
-//
-#define qtn_fmgr_card_info_free "Free"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_card_details "Memory card"
-
-
-// OPTIONS MENU TEXTS
-
-//d:Options menu command.
-//d:Start backup.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_memc_options_backup "Backup to memory card"
-
-//d:Options menu command.
-//d:Start restore.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_memc_options_restore "Restore from memory card"
-
-//d:Options menu command.
-//d:Start format.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_memc_options_format "Format memory card"
-
-//d:Options menu command.
-//d:Unlock card.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_memc_options_unlock "Unlock memory card"
-
-
-// BACKUP TEXTS
-
-//d:Backup confirmation.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_backup_query1 "Do you want to make a backup to memory card?"
-
-//d:Backup confirmation, earlier backup exists.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_backup_query2 "Do you want to make a backup to memory card? Previous backup will be overwritten."
-
-//d:Confirmation for continuing, when there's little space.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_backup_query3 "There might not be enough space on memory card, do you want to continue?"
-
-//d:Not enough space error.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_backup_enoughspace "There isn’t enough space on the memory card! (Backup can’t be done)"
-
-//d:Progress note text.
-//l:popup_note_wait_window
-//w:
-//r:3.1
-//
-#define qtn_memc_backup_inprogress "Backup is in progress!"
-
-//d:Completion note.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_backup_completed "Backup is completed!"
-
-//d:Notify about files not backed up.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_backup_info1 "%N files could not be backed up!"
-
-//d:Notify about a file not backed up.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_backup_info2 "1 file could not be backed up!"
-
-
-
-// RESTORE TEXTS
-
-//d:Restore confirmation.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_restore_query1 "Do you want to restore backup files to phone memory?"
-
-//d:Not enough space error.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_restore_enoughspace "There isn’t enough space to restore the entire memory card! (Restore can’t be done)"
-
-//d:Progress note text.
-//l:popup_note_wait_window
-//w:
-//r:3.1
-//
-#define qtn_memc_restore_inprogress "Restore is in progress! Avoid using other applications during restore."
-
-//d:Completion note.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_restore_completed "Restore is completed!"
-
-//d:Notify about files not restored
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_restore_info1 "%N files could not be restored!"
-
-//d:Notify about a file not restored
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_restore_info2 "1 file could not be restored!"
-
-
-// FORMAT TEXTS
-
-//d:Format confirmation.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_format_query1 "Do you want to format the memory card? (Data will be erased)"
-
-//d:Progress note text.
-//l:popup_note_wait_window
-//w:
-//r:3.1
-//
-#define qtn_memc_format_inprogress "Format is in progress!"
-
-//d:Completion note.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_format_completed "Format is completed!"
-
-
-// MMC NAME TEXTS
-
-//d:Default memory card label to be written to MMC.
-//d:Limited by FAT to maximum of 11 ascii characters.
-//d:Limited by FAT to maximum of 5 characters in Chinese variant.
-//l:query_popup_data_pane_t1/opt4
-//w:
-//r:3.1
-//
-#define qtn_memc_mmc_default_label "Mcard"
-
-//d:Card name query.
-//l:popup_query_data_window_t3/opt2
-//w:
-//r:3.1
-//
-#define qtn_memc_name_prompt "Card name:"
-
-//d:Illegal characters note.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_name_note1 "Illegal characters! Use only letters and numbers."
-
-//d:Name changed note.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_name_note2 "The card name has been changed!"
-
-
-// SET PASSWORD TEXTS
-
-//d:Password query.
-//l:popup_query_data_window_t3/opt2
-//w:
-//r:3.1
-//
-#define qtn_memc_set_password_prompt1 "New password:"
-
-//d:Password confirmation query.
-//l:popup_query_data_window_t3/opt2
-//w:
-//r:3.1
-//
-#define qtn_memc_set_password_prompt2 "Confirm new password:"
-
-//d:The passwords don't match.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_set_password_error "The passwords don’t match, try again!"
-
-//d:Password set note.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_set_password_info "The password has been set!"
-
-
-// CHANGE PASSWORD TEXTS
-
-//d:Old password query.
-//l:popup_query_data_window_t3/opt2
-//w:
-//r:3.1
-//
-#define qtn_memc_change_pwd_prompt1 "Old password:"
-
-//d:Wrong password note, changing password.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_change_pwd_error1 "The password is incorrect, try again!"
-
-//d:Password changed note.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_change_pwd_info "The password has been changed!"
-
-//d:Wrong password note, unlocking.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_unlock_pwd_error "The password is incorrect, try again!"
-
-
-// REMOVE PASSWORD TEXTS
-
-//d:Remove password query.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_remove_pwd_query "Do you want to remove the password? Memory card becomes unlocked."
-
-//d:Password removed note.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_remove_pwd_info "The password has been removed!"
-
-
-// PASSWORD QUERY TEXTS
-
-//d:Password query.
-//l:popup_query_data_window_t3/opt2
-//w:
-//r:3.1
-//
-#define qtn_memc_remove_pwd_prompt "Password:"
-
-//d:Unlock password query.
-//l:popup_query_data_window_t3/opt2
-//w:
-//r:3.1
-//
-#define qtn_memc_unlock_pwd_prompt "Password:"
-
-
-// ERROR CASE TEXTS
-
-//d:Corrupt note.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_memorycard_error "Memory card is corrupted!"
-
-//d:General error.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_gen_error "Error occurred, operation cancelled!"
-
-//d:Format error. Memory card in use.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_memc_format_card_used "Formatting failed. Memory card used by other application."
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_rd_opt_connect "Connect"
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_rd_opt_disconnect "Disconnect"
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_fmgr_opt_remote_drives "Remote drives"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_opt_rd_settings "Settings"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_opt_rd_new_drive "Map new drive"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_opt_rd_delete_drive "Delete drive"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_file_details "File"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_folder_details "Folder"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_memory_details "Memory"
-
-// REMOTE DRIVE ERRORS
-
-//d:Text in confirmation query when deleting a drive
-//l:popup_note_window
-//w:
-//r:3.1
-#define qtn_rd_query_delete_drive "Delete configuration for %U?"
-
-//d:Error text when remote drive is not connected.
-//l:main_list_empty_pane
-//w:
-//r:3.1
-//
-#define qtn_fmgr_empty_remote_drive "(Not connected)"
-
-//d:This is displayed in memory card details info popup
-//l:list_single_heading_pane_t2_cp2
-//w:
-//r:3.1
-//
-#define qtn_fmgr_card_info_data "%N %U"
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_fmgr_rd_opt_refresh "Refresh"
-
-//d:Information note text
-//d:if focused file is not supported remotely, this text is shown
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_infonote_unable_open_remotely "Unable to open the file remotely. Copy file to phone and try opening it again."
-
-//d:Backup name in main page, item data
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_main_backup "Backup"
-
-//d:Backup caption string.
-//l:title_pane_t2/opt9
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_title "Backup"
-
-//d:Backup setting item title
-//l:list_setting_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_contents "Backup contents"
-
-//d:Backup setting item title
-//l:list_setting_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_scheduling "Backup scheduling"
-
-//d:Backup setting item title
-//l:list_setting_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_weekday "Weekday"
-
-//d:Backup setting item title
-//l:list_setting_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_time "Time"
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_backup_now "Backup now"
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.1
-//
-#define qtn_fmgr_options_restore "Restore"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_content_all "All"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_content_selected "%N selected"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_content_settings "Settings"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_content_messages "Messages"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_content_contacts "Contacts"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_content_calendar "Calendar"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_content_bookmarks "Bookmarks"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_content_userfiles "User files"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_no_scheduling "No scheduling"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_daily "Daily"
-
-//d:Backup setting item value
-//l:list_set_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_weekly "Weekly"
-
-//d:Backup confirmation.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_query "Create backup to %U?"
-
-//d:Backup confirmation.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_query_exists "Create backup to %U? Existing data will be overwritten."
-
-//d:Scheduled backup inprogress note.
-//l:popup_note_wait_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_scheduled_backup_progress "Scheduled backup. Do not remove %U"
-
-//d:Backup confirmation.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_tight_memory "%U may not contain enough space. Continue anyway?"
-
-//d:No space for backup note
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_destination_full "Not enough space in %U. Backup cancelled."
-
-//d:Scheduled backup error note
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_scheduled_backup_error "Backup was scheduled but destination memory store was unavailable."
-
-//d:Restore caption string.
-//l:title_pane_t2/opt9
-//w:
-//r:3.1
-//
-#define qtn_fmgr_restore_title "Restore"
-
-//d:Restore item name.
-//l:list_double_large_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_restore_settings "Settings"
-
-//d:Restore item name.
-//l:list_double_large_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_restore_messages "Messages"
-
-//d:Restore item name.
-//l:list_double_large_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_restore_contacts "Contacts"
-
-//d:Restore item name.
-//l:list_double_large_graphic_pane_t1
-//
-#define qtn_fmgr_restore_calendar "Calendar"
-
-//d:Restore item name.
-//l:list_double_large_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_restore_bookmarks "Bookmarks"
-
-//d:Restore item name.
-//l:list_double_large_graphic_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_restore_userfiles "User files"
-
-//d:Restore item name.
-//l:main_list_empty_pane
-//w:
-//r:3.1
-//
-#define qtn_fmgr_restore_no_backups "No backup items available"
-
-//d:Restore confirmation
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_restore_query "Restore selected backed up content to phone memory?"
-
-//d:Restore error
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_restore_space_error "Not enough space for restore"
-
-//d:Scheduled backup query.
-//l:popup_note_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_scheduled_backup_query "Scheduled backup is starting. Continue?"
-
-//d:Backup setting item title
-//l:list_setting_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_backup_destination "Backup destination"
-
-//d:Prompt text in common file dialog
-//d:shown when user is prompted to select memory to be backup target
-//l:heading_pane_t1
-//w:
-//r:3.1
-//
-#define qtn_fmgr_select_backup_destination "Select destination:"
-
-//d:Progress note text.
-//l:popup_note_wait_window
-//w:
-//r:3.1
-//
-#define qtn_fmgr_progress_preparing_backup "Preparing for backup."
-
-//d:Progress note text.
-//l:popup_note_wait_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_progress_preparing_restore "Preparing for restoring."
-
-//d:General error.
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_error_corrupted_backup_file "Backup file is corrupted. Operation cancelled."
-
-//d:Error note for unavailable backup destination
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_error_backup_memorycard_not_available "Backup destination is not available."
-
-//d:Application launch prevented during backup info text
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_backup_applaunch_prevented "Cannot start application during backup"
-
-//d:Application launch prevented during restore info text
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_restore_applaunch_prevented "Cannot start application during restore"
-
-//d:Format query when memory card in use.
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memc_format_query2 "Memory card in use by other application. Proceed anyway?"
-
-//d:error note; not able to add a new drive
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_rd_error_max_drives "Maximum number of remote drives configured. Remove old configurations to create new."
-
-//d:Device memory name in main page, item data
-//d:%U is the drive letter
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_main_device_memory "%U Device memory"
-
-//d:Mass storage name in main page, item data
-//d:%U is the drive letter
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_main_mass_storage "%U Mass storage"
-
-//d:Memory card in main page, item data
-//d:%U is the drive letter
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_main_memory_card_default "%U Memory card"
-
-//d:Named memory card in main page, item data
-//d:%0U is the drive letter and %1U is the name of the memory card
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_main_named_memory_card "%0U %1U"
-
-//d:Caption string.
-//d:%U is the drive letter
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_title_device_memory "%U Device memory"
-
-//d:Caption string.
-//d:%U is the drive letter
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_title_mass_storage "%U Mass storage"
-
-//d:Caption string.
-//d:%0U is the drive letter and %1U is the name of the memory card
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_title_named_memory_card "%0U %1U"
-
-//d:Caption string.
-//d:%U is the drive letter
-//l:list_single_large_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_title_memory_card_default "%U Memory card"
-
-//d:Error text when mass storage is in use
-//l:main_list_empty_pane
-//w:
-//r:3.2
-//
-#define qtn_memc_mass_storage_in_use "(Memory is in use)"
-
-//d:Error text when mass storage is corrupted
-//l:main_list_empty_pane
-//w:
-//r:3.2
-//
-#define qtn_memc_mass_storage_corrupted "(Memory is corrupted)"
-
-//d:Named memory card eject confirmation query.
-//d:%0U is the drive letter and %1U is the name of the memory card
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memc_conf_eject_multiple "Eject %0U %1U? Some applications will be closed."
-
-//d:Memory card eject confirmation query.
-//d:%U is the drive letter
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memc_conf_eject_multiple_defaultname "Eject %U memory card? Some applications will be closed."
-
-//d:Swap named memory card note.
-//d:%0U is the drive letter and %1U is the name of the memory card
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memc_info_eject_multiple "Remove %0U %1U and press OK."
-
-//d:Swap memory card note.
-//d:%U is the drive letter
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memc_info_eject_multiple_defaultname "Remove %U memory card and press OK."
-
-//d:Password query for named memory card.
-//d:%0U is the drive letter and %1U is the name of the memory card
-//l:popup_query_data_window_t3/opt2
-//w:
-//r:3.2
-//
-#define qtn_memc_unlock_password_multiple "Password for %0U %1U:"
-
-//d:Password query for memory card.
-//d:%U is the drive letter
-//l:popup_query_data_window_t3/opt2
-//w:
-//r:3.2
-//
-#define qtn_memc_unlock_password_multiple_defaultname "Password for %U memory card:"
-
-//d:Information note text
-//d:%U is the drive letter
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memc_multiple_memc_read_only "Unable to perform operation. %U memory card is read only."
-
-//d:Information note text
-//d:%U is the drive letter
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memc_memory_card_corrupted_multiple "%U memory card is corrupted."
-
-//d:Options menu command.
-//d:Start mass storage format.
-//l:list_single_pane_t1_cp2
-//w:
-//r:3.2
-//
-#define qtn_fmgr_options_format_mass "Format mass storage"
-
-//d:Mass storage format query
-//d:%U is the drive letter
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_format_mass_query1 "Format %U mass storage. Data will be deleted during formatting."
-
-//d:Progress note text
-//l:popup_note_wait_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_mass_format_inprogress "Formatting mass storage"
-
-//d:Completion note.
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_mass_format_completed "Formatting complete"
-
-//d:Format query when mass storage is in use
-//l:popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_format_mass_query2 "Mass storage in use by other application. Proceed anyway?"
-
-//d:Possible second line for first entry of Details View listbox
-//l:list_double_pane_t2_cp2
-//w:
-//r:5.0
-//
-#define qtn_drm_mgr_det_not_valid_yet "Activation key not valid yet"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1/opt1
-//w:
-//r:5.0
-//
-#define qtn_fmgr_options_sort_by_match "By match"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1/opt1
-//w:
-//r:5.0
-//
-#define qtn_fmgr_options_sort_by_name "By name"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1/opt1
-//w:
-//r:5.0
-//
-#define qtn_fmgr_options_sort_by_type "By type"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1/opt1
-//w:
-//r:5.0
-//
-#define qtn_fmgr_options_sort_recent_first "Most recent first"
-
-//d:Options menu command.
-//l:list_single_popup_submenu_pane_t1/opt1
-//w:
-//r:5.0
-//
-#define qtn_fmgr_options_sort_largest_first "Largest first"
-
-//d:Scheduled backup info note
-//l:popup_note_window
-//w:
-//r:5.0
-//
-#define qtn_fmgr_scheduled_backup_cancelled_ps "Power saving is active, scheduled backup is cancelled."
-
-//d:Options menu command.
-//l:list_single_pane_t1_cp2/opt3
-//w:
-//r:5.0
-//
-#define qtn_fmgr_options_sort_submenu "Sort"
-
-//d:Free memory amount in main page, item data
-//d:%0U is the size and %1U is the unit, for example 15.5 MB
-//l:list_double_large_graphic_pane_t2
-//w:
-//r:3.2
-//
-#define qtn_fmgr_free_memory_var_units "Free: %0U %1U"
-
-//d:Free memory unit in main page, item data
-//l:list_double_large_graphic_pane_t2
-//w:
-//r:3.2
-//
-#define qtn_fmgr_units_byte "B"
-
-//d:Free memory unit in main page, item data
-//l:list_double_large_graphic_pane_t2
-//w:
-//r:3.2
-//
-#define qtn_fmgr_units_kilobyte "kB"
-
-//d:Free memory unit in main page, item data
-//l:list_double_large_graphic_pane_t2
-//w:
-//r:3.2
-//
-#define qtn_fmgr_units_megabyte "MB"
-
-//d:Free memory unit in main page, item data
-//l:list_double_large_graphic_pane_t2
-//w:
-//r:3.2
-//
-#define qtn_fmgr_units_gigabyte "GB"
-
-//d: Note when there is not enough memory to execute operation on device memory.
-//d: %U is the drive letter of the drive.
-//l: popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memlo_not_enough_device_memory "Not enough memory to perform operation. Delete some data from %U Device memory."
-
-//d: Note when there is not enough memory to execute operation on memory card.
-//d:%0U is the drive letter and %1U is the name of the memory card
-//l: popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memlo_not_enough_memory_card_name "Not enough memory to perform operation. Delete some data from %0U %1U."
-
-//d: Note when there is not enough memory to execute operation on memory card.
-//d: %U is the drive letter of the drive.
-//l: popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memlo_not_enough_memory_card_defaultname "Not enough memory to perform operation. Delete some data from %U Memory card."
-
-//d: Note when there is not enough memory to execute operation on mass storage.
-//d: %U is the drive letter of the drive.
-//l: popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_memlo_not_enough_mass_memory "Not enough memory to perform operation. Delete some data from %U Mass storage."
-
-//d: Primary text for an unnamed USB memory storage.
-//d: %U is the drive letter of the drive.
-//l: list_double_large_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_main_usb_default "%U USB memory"
-
-//d: When the view is on the root of an unnamed USB memory.
-//d: %U is the drive letter of the drive.
-//l: list_single_large_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_title_usb_default "%U USB memory"
-
-//d: Main view Options menu item.
-//l: list_single_pane_t1_cp2/opt3
-//w:
-//r:3.2
-//
-#define qtn_fmgr_options_memory_sub "Memory storage"
-
-//d: Memory storage submenu items
-//l: list_single_popup_submenu_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_unlock_memory "Unlock memory"
-
-//d: Memory storage submenu items
-//l: list_single_popup_submenu_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_options_memory_storage_details "Details"
-
-//d: Memory storage submenu items
-//l: list_single_popup_submenu_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_options_set_memc_passwd "Set password"
-
-//d: Memory storage submenu items
-//l: list_single_popup_submenu_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_options_change_memc_passwd "Change password"
-
-//d: Memory storage submenu items
-//l: list_single_popup_submenu_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_options_remove_memc_passwd "Remove password"
-
-//d: Default name of the query when naming or renaming a memory store
-//l: query_popup_data_pane_t1/opt4
-//w:
-//r:3.2
-//
-#define qtn_fmgr_usb_memory_default_name "USB memory"
-
-//d: confirmation query text when want to format USB memory
-//d: %0U is the drive letter, %1U is the drive name.
-//l: popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_usb_memory_format_query "Format USB memory %0U %1U? All data will be deleted."
-
-//d: progress text when formatting memory storage
-//l: popup_note_wait_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_formatting_memory_progress "Formatting memory storage"
-
-//d: Prompt text of the query when naming or renaming a memory store
-//l: popup_query_data_window_t3/opt2
-//w:
-//r:3.2
-//
-#define qtn_fmgr_memory_name_prompt "Memory storage name"
-
-//d: After a successful operation of naming or renaming
-//l: popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_confirm_memory_name_changed "Memory storage name changed"
-
-//d: confirmation text if memory used when want to format the memory store
-//l: popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_memory_in_use_format "Memory storage is being used by another application. Proceed anyway?"
-
-//d: Backup view Options menu if backup exists
-//l: list_single_pane_t1_cp2
-//w:
-//r:3.2
-//
-#define qtn_fmgr_options_delete_backup "Delete backup"
-
-//d: Delete backup view title pane
-//l: title_pane_t2/opt9
-//w:
-//r:3.2
-//
-#define qtn_fmgr_delete_backup_title "Delete backup"
-
-//d: query text when want to delete backup content
-//l: popup_note_window
-//w:
-//r:3.2
-//
-#define qtn_fmgr_delete_backup_query "Delete selected backup content?"
-
-//d: backup content
-//d: %U is the drive letter of the drive.
-//l: list_set_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_backup_content_device_memory "Files from %U Device memory"
-
-//d: backup content
-//d: %U is the drive letter of the drive.
-//l: list_set_graphic_pane_t1
-//w:
-//r:3.2
-//
-#define qtn_fmgr_backup_content_mass_storage "Files from %U Mass storage"
-
-//d: restore content
-//d: %U is the drive letter of the drive.
-//l: list_double_graphic_pane_t1_cp2
-//w:
-//r:3.2
-//
-#define qtn_fmgr_restore_device_memory "Files from %U Device memory"
-
-//d: restore content
-//d: %U is the drive letter of the drive.
-//l: list_double_graphic_pane_t1_cp2
-//w:
-//r:3.2
-//
-#define qtn_fmgr_restore_mass_storage "Files from %U Mass storage"
-
-//d:Error text when memory is not available
-//l:main_list_empty_pane
-//w:
-//r:3.2
-//
-#define qtn_memc_not_available "(Memory is not available)"
-
-//d: note text when the system is not ready for user to do backup&restore operation
-//l: popup_note_window
-//w:
-//r:5.2
-//
-#define qtn_fmgr_system_not_ready "System is not ready. Please try again"
-
-// End of File
--- a/filemanager/rom/FileManager.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* Copyright (c) 2002-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: Image description file for project File Manager
-*
-*/
-
-
-#ifndef __FILEMANAGER_IBY__
-#define __FILEMANAGER_IBY__
-
-S60_APP_EXE(FileManager)
-S60_APP_AIF_ICONS(FileManager)
-S60_APP_AIF_RSC(FileManager)
-
-ECOM_PLUGIN(filemanagerbkupplugin.dll, 0x10205078.rsc)
-ECOM_PLUGIN(filemanageraiwprovider.dll, 0x200110F8.rsc)
-
-file=ABI_DIR\BUILD_DIR\FILEMANAGERENGINE.DLL SHARED_LIB_DIR\FileManagerEngine.dll
-file=ABI_DIR\BUILD_DIR\FILEMANAGERVIEW.DLL SHARED_LIB_DIR\FileManagerView.dll
-SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,FileManager)
-file=ABI_DIR\BUILD_DIR\GFLM.dll SHARED_LIB_DIR\GFLM.dll
-data=DATAZ_\RESOURCE_FILES_DIR\GflmFileExtensionMimeTypes.rsc RESOURCE_FILES_DIR\GflmFileExtensionMimeTypes.rsc
-
-file=ABI_DIR\BUILD_DIR\filemanagerbkupengine.dll SHARED_LIB_DIR\filemanagerbkupengine.dll
-#ifdef RD_FILE_MANAGER_BACKUP
- file=ABI_DIR\BUILD_DIR\filemanagerschbkup.exe SHARED_LIB_DIR\filemanagerschbkup.exe
-#endif // RD_FILE_MANAGER_BACKUP
-
-data=DATAZ_\private\101F84EB\backup_registration.xml private\101F84EB\backup_registration.xml
-
-#endif // __FILEMANAGER_IBY__
--- a/filemanager/rom/FileManagerResources.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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 File Manager resources
-*
-*/
-
-
-#ifndef __FILEMANAGERRESOURCES_IBY__
-#define __FILEMANAGERRESOURCES_IBY__
-
-REM Filemanager Localized Data
-
-data=DATAZ_\RESOURCE_FILES_DIR\FILEMANAGERENGINE.rsc RESOURCE_FILES_DIR\FILEMANAGERENGINE.rsc
-data=DATAZ_\RESOURCE_FILES_DIR\FILEMANAGERVIEW.rsc RESOURCE_FILES_DIR\FILEMANAGERVIEW.rsc
-data=DATAZ_\APP_RESOURCE_DIR\FILEMANAGER.rsc APP_RESOURCE_DIR\FileManager.rsc
-data=DATAZ_\RESOURCE_FILES_DIR\filemanagerbkupchecker.rsc RESOURCE_FILES_DIR\filemanagerbkupchecker.rsc
-
-#endif // __FILEMANAGERRESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/rom/filemngr.iby Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* 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 "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:
+*
+*/
+
+#ifndef __FILEMNGR_IBY__
+#define __FILEMNGR_IBY__
+
+#include <bldprivate.hrh>
+
+#define HB_UPGRADABLE_APP_REG_RSC(NAME) data=DATAZ_\PRIVATE\10003A3F\IMPORT\APPS\ ## NAME ## _reg.rsc Private\10003a3f\import\apps\ ## NAME ## _reg.rsc
+
+file=ABI_DIR\BUILD_DIR\filemngr.exe SHARED_LIB_DIR\filemngr.exe
+data = ZRESOURCE\apps\filemngr.mif APP_RESOURCE_DIR\filemngr.mif
+HB_UPGRADABLE_APP_REG_RSC(filemngr)
+
+
+file=ABI_DIR\BUILD_DIR\fmbkupengine.dll SHARED_LIB_DIR\fmbkupengine.dll
+file=ABI_DIR\BUILD_DIR\fmfiledialog.dll SHARED_LIB_DIR\fmfiledialog.dll
+file=ABI_DIR\BUILD_DIR\fmbkupenginewrapper.dll SHARED_LIB_DIR\fmbkupenginewrapper.dll
+
+data=DATAZ_\private\2002BCC0\backup_registration.xml private\2002BCC0\backup_registration.xml
+data=DATAZ_\private\2002BCC0\burconfig.xml private\2002BCC0\burconfig.xml
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/rom/filemngr_resources.iby Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* 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 "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:
+*
+*/
+
+#ifndef __FILEMNGR_RESOURCES_IBY__
+#define __FILEMNGR_RESOURCES_IBY__
+
+#include <data_caging_paths_for_iby.hrh>
+
+data=DATAZ_\QT_TRANSLATIONS_DIR\filemanager.qm QT_TRANSLATIONS_DIR\filemanager.qm
+data=DATAZ_\APP_RESOURCE_DIR\filemngr.rsc APP_RESOURCE_DIR\filemngr.rsc
+
+#endif
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/rom/rom.pri Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,24 @@
+# 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 "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:
+# Zhiqiang Yang <zhiqiang.yang@nokia.com>
+#
+# Description:
+# Rom exports for filemngr
+#
+
+symbian {
+ FILEMNGR_IBY_DIR = $$section(PWD, ":", 1)
+
+ BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include<platform_paths.hrh>"
+ BLD_INF_RULES.prj_exports += "$$FILEMNGR_IBY_DIR/filemngr.iby CORE_APP_LAYER_IBY_EXPORT_PATH(filemngr.iby)"
+ BLD_INF_RULES.prj_exports += "$$FILEMNGR_IBY_DIR/filemngr_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(filemngr_resources.iby)"
+}
--- a/filemanager/schbkup/inc/filemanagerschbackuptask.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/*
-* Copyright (c) 2006 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: Handles file manager scheduled backup task start
-*
-*/
-
-
-#ifndef C_FILEMANAGERSCHBACKUPTASK_H
-#define C_FILEMANAGERSCHBACKUPTASK_H
-
-
-// INCLUDE FILES
-#include <e32base.h>
-#include "filemanagerschobserver.h"
-#include "fmsystemstatemonitor.h"
-
-// FORWARD DECLARATIONS
-class CScheduledTask;
-class CFileManagerSchSubscriber;
-class CRepository;
-
-
-// CLASS DECLARATION
-/**
- * This class handles scheduled backup task start functionality
- *
- * @since S60 3.1
- */
-class CFileManagerSchBackupTask : public CActive,
- public MFileManagerSchObserver,
- public MFmSystemStateMonitorObserver
- {
-
-public:
- /**
- * Two-phased constructor.
- */
- static CFileManagerSchBackupTask* NewL( const CScheduledTask& aTask );
-
- /**
- * Destructor
- */
- ~CFileManagerSchBackupTask();
-
-private: // From CActive
- void RunL();
-
- void DoCancel();
-
- TInt RunError( TInt aError );
-
-private: // From FileManagerSchObserver
- void NotifyKeyChangeOrTimeoutL(
- const TUid& aCategory,
- const TUint aKey,
- const TBool aTimeout );
-
-public: // From MFmSystemStateMonitorObserver
- /**
- * Called when the system state changed
- * @since 5.2
- */
- void SystemStateChangedEvent();
-
-private: // New methods
- /**
- * Constructors
- */
- CFileManagerSchBackupTask();
-
- void ConstructL( const CScheduledTask& aTask );
-
- /**
- * Starts backup task start procedure
- */
- void StartL();
-
- /**
- * Exists backup task start procedure
- */
- void Exit();
-
- /**
- * Retries backup task start procedure
- */
- void Retry();
-
- /**
- * Starts file manager to run backup
- */
- void StartFileManagerL();
-
- /**
- * Checks is backup required
- */
- TBool CheckBackupRequired();
-
- /**
- * Checks phone state is it ok to start backup
- */
- TBool CheckPhoneStateL();
-
-private: // Data
- /**
- * Backup weekday, given from originator
- */
- TInt iDay;
-
- /**
- * Subscriber to observe phone and backup start states
- * Own.
- */
- CFileManagerSchSubscriber* iSubscriber;
-
- /**
- * Pointer to file manager settings in CenRep
- * Own.
- */
- CRepository* iCenRep;
-
- /**
- * Start attempts left
- */
- TInt iAttemptsLeft;
-
- /**
- * Own: Pointer to system state monitor
- */
- CFmSystemStateMonitor* iSystemStateMonitor;
-
- };
-
-
-#endif // C_FILEMANAGERSCHBACKUPTASK_H
-
-// End of file
--- a/filemanager/schbkup/inc/filemanagerschobserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2006 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: Observes subscribed notifications
-*
-*/
-
-
-#ifndef M_FILEMANAGERSCHOBSERVER_H
-#define M_FILEMANAGERSCHOBSERVER_H
-
-
-// INCLUDES
-#include <e32base.h>
-
-
-// CLASS DECLARATION
-/**
- * This class observes subscribed notifications
- *
- * @since S60 3.1
- */
-class MFileManagerSchObserver
- {
-
-public:
- /**
- * Handles notification
- *
- * @since S60 3.1
- * @param aCategory Subcribed category uid
- * @param aKey Subcribed key id
- * @param aTimeout Is triggered by timeout or actual event
- */
- virtual void NotifyKeyChangeOrTimeoutL(
- const TUid& aCategory,
- const TUint aKey,
- const TBool aTimeout ) = 0;
-
- };
-
-#endif // M_FILEMANAGERSCHOBSERVER_H
-
-// End of File
--- a/filemanager/schbkup/inc/filemanagerschsubscriber.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-/*
-* Copyright (c) 2006 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: Handles P&S and CenRep notifications
-*
-*/
-
-
-#ifndef C_FILEMANAGERSCHSUBSCRIBER_H
-#define C_FILEMANAGERSCHSUBSCRIBER_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <e32property.h>
-
-
-// FORWARD DECLARATIONS
-class MFileManagerSchObserver;
-class CRepository;
-
-
-// CLASS DECLARATION
-/**
- * This class handles P&S and CenRep notifications
- *
- * @since S60 3.1
- */
-class CFileManagerSchSubscriber : public CActive
- {
-
-public:
- /** Type of subscribed notifications */
- enum TType
- {
- ESubscribePS = 0,
- ESubscribeCR
- };
-
- /**
- * Two-phased constructor.
- */
- static CFileManagerSchSubscriber* NewL(
- MFileManagerSchObserver& aObserver,
- const TUid& aCategory,
- const TUint aKey,
- const TType aType,
- const TInt aTimeoutSecs );
-
- /**
- * Destructor
- */
- ~CFileManagerSchSubscriber();
-
-private: // New methods
- /**
- * Constructors
- */
- CFileManagerSchSubscriber(
- MFileManagerSchObserver& aObserver,
- const TUid& aCategory,
- const TUint aKey,
- const TType aType,
- const TInt aTimeoutSecs );
-
- void ConstructL();
-
- /**
- * Subscribes notification
- */
- void SubscribeL();
-
- /**
- * Timeout callback
- * @param aPtr Pointer to subcriber
- * @return System wide error code
- */
- static TInt TimeoutCB( void* aPtr );
-
- /**
- * Handles timeout
- */
- void Timeout();
-
-private: // From CActive
- void RunL();
-
- TInt RunError( TInt aError );
-
- void DoCancel();
-
-private: // Data
- /**
- * Reference to observer interface
- * Not own.
- */
- MFileManagerSchObserver& iObserver;
-
- /**
- * Pointer to CenRep
- * Own.
- */
- CRepository* iCenRep;
-
- /**
- * Handle to PS
- */
- RProperty iProperty;
-
- /**
- * Category Uid
- */
- TUid iCategory;
-
- /**
- * Key id
- */
- TUint iKey;
-
- /**
- * Subscriber type
- */
- TType iType;
-
- /**
- * Timeout seconds
- */
- TInt iTimeoutSecs;
-
- /**
- * Timer for timeout
- * Own.
- */
- CPeriodic* iTimer;
-
- /**
- * Indicates timeout status
- */
- TBool iTimeout;
-
- };
-
-#endif // C_FILEMANAGERSCHSUBSCRIBER_H
-
-// End of File
--- a/filemanager/schbkup/inc/fmsystemstatemonitor.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
-* Copyright (c) 2002-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: system State monitor
-*
-*/
-
-#ifndef __FM_SYSTEMSTATE_MONITOR__
-#define __FM_SYSTEMSTATE_MONITOR__
-
-#include <e32base.h>
-#include <ssm/ssmstateawaresession.h>
-
-/**
- * MFmSystemStateMonitorObserver
- *
- * Monitor component observer.
- *
- * @since S60 5.2
- */
-class MFmSystemStateMonitorObserver
- {
- public:
- /**
- * Called when the system State changed
- */
- virtual void SystemStateChangedEvent() = 0;
- };
-
-/**
- * CFmSystemStateMonitor
- *
- * Component for monitoring system state
- *
- * @since S60 5.2
- */
-class CFmSystemStateMonitor : public CActive
- {
- public:
- /**
- * Create new monitor
- *
- * @param aObserver monitor observer
- * @since S60 5.2
- */
- static CFmSystemStateMonitor* NewL(
- MFmSystemStateMonitorObserver& aObserver );
-
- /**
- * Destructor
- *
- * @since S60 5.2
- */
- ~CFmSystemStateMonitor();
-
- /**
- * Start monitor
- *
- * @param aStateToMonitor the state needs monitored
- * @since S60 5.2
- */
- void StartMonitor( TUint aStateToMonitor );
-
- /**
- * Indicate system state is normal or not
- *
- * @since S60 5.2
- * @return ETrue if system state is normal, EFalse if not
- */
- TBool IsSystemStateNormal();
-
- private:
- /**
- * C++ constructor
- *
- * @param aObserver monitor observer.
- * @since S60 5.2
- */
- CFmSystemStateMonitor( MFmSystemStateMonitorObserver& aObserver );
-
- /**
- * Symbian 2nd phase constructor
- *
- * @since S60 5.2
- */
- void ConstructL();
-
- private: // From CActive
- /**
- * From CActive
- */
- void RunL();
-
- /**
- * From CActive
- * @since S60 5.2
- */
- void DoCancel();
-
- /**
- * From CActive
- * @since S60 5.2
- */
- TInt RunError( TInt aError );
-
- private:
- // observer used to inform try schedule backup again when system state become normal
- MFmSystemStateMonitorObserver& iObserver;
-
- // State aware session.
- RSsmStateAwareSession iSAS;
-
- // State to monitor
- TUint iStateToMonitor;
- };
-
-#endif // __FM_SYSTEMSTATE_MONITOR__
--- a/filemanager/schbkup/src/filemanagerschbackupmain.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
-* Copyright (c) 2006 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: Launches file manager scheduled backup task
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <f32file.h>
-#include <s32file.h>
-#include <schtask.h>
-#include "FileManagerDebug.h"
-#include "filemanagerschbackuptask.h"
-
-
-// CONSTANTS
-_LIT_SECURE_ID( KTaskSchedulerSID, 0x10005399 );
-
-
-// ======== LOCAL FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// StartSchTaskL
-// ---------------------------------------------------------------------------
-//
-LOCAL_C void StartSchTaskL( RFile& aTaskFile )
- {
- INFO_LOG( "StartSchTaskL()-Started" )
-
- // Create and install the active scheduler we need
- CActiveScheduler* scheduler = new ( ELeave ) CActiveScheduler();
- CleanupStack::PushL( scheduler );
- CActiveScheduler::Install( scheduler );
-
- // Get scheduled task parameters
- CFileStore* store = CDirectFileStore::FromLC( aTaskFile );
- RStoreReadStream instream;
- instream.OpenLC( *store, store->Root() );
-
- TInt count( instream.ReadInt32L() );
- if ( !count )
- {
- User::Leave( KErrNotFound );
- }
-
- // Create the task to be started
- CScheduledTask* task = CScheduledTask::NewLC( instream );
- CFileManagerSchBackupTask* fmTask =
- CFileManagerSchBackupTask::NewL( *task );
- CleanupStack::PopAndDestroy( task );
- CleanupStack::PopAndDestroy( &instream );
- CleanupStack::PopAndDestroy( store );
-
- // Start scheduler to handle the backup launch.
- // This call exists after backup launch has finished.
- CActiveScheduler::Start();
-
- // Cleanup the task and scheduler
- delete fmTask;
- CleanupStack::PopAndDestroy( scheduler );
-
- INFO_LOG( "StartSchTaskL()-Finished" )
- }
-
-
-// ======== GLOBAL FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// E32Main
-// ---------------------------------------------------------------------------
-//
-GLDEF_C TInt E32Main()
- {
- __UHEAP_MARK;
-
- INFO_LOG( "FileManagerSchBackup-E32Main()-Started" )
-
- TInt err( KErrPermissionDenied );
-
- // Check process creator and start scheduled task
- if( User::CreatorSecureId() == KTaskSchedulerSID )
- {
- CTrapCleanup* cleanupStack = CTrapCleanup::New();
- if ( cleanupStack )
- {
- INFO_LOG( "FileManagerSchBkup-E32Main()-Adopt task file" )
-
- RFile file;
- err = file.AdoptFromCreator(
- TScheduledTaskFile::FsHandleIndex(),
- TScheduledTaskFile::FileHandleIndex() );
- if ( err == KErrNone )
- {
- TRAP( err, StartSchTaskL( file ) );
- file.Close();
- }
- delete cleanupStack;
- }
- else
- {
- err = KErrNoMemory;
- }
- }
-
- LOG_IF_ERROR1( err, "FileManagerSchBackup-E32Main()-Error=%d", err )
-
- INFO_LOG( "FileManagerSchBackup-E32Main()-Finished" )
-
- __UHEAP_MARKEND;
-
- return err;
- }
-
-// End of file
--- a/filemanager/schbkup/src/filemanagerschbackuptask.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,499 +0,0 @@
-/*
-* Copyright (c) 2006-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: Handles file manager scheduled backup task start
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <schtask.h>
-#include <w32std.h>
-#include <apgtask.h>
-#include <apgcli.h>
-#include <apgwgnam.h>
-#include <apacmdln.h>
-#include <centralrepository.h>
-#include <ctsydomainpskeys.h>
-#include <UsbWatcherInternalPSKeys.h>
-#include <usbpersonalityids.h>
-#include <DataSyncInternalPSKeys.h>
-#include <connect/sbdefs.h>
-#include "filemanagerschbackuptask.h"
-#include "filemanagerschsubscriber.h"
-#include "FileManagerUID.h"
-#include "FileManagerDebug.h"
-#include "FileManagerSchDefinitions.h"
-#include "FileManagerPrivateCRKeys.h"
-
-using namespace conn;
-
-// CONSTANTS
-const TUid KUidFileManager = { KFileManagerUID3 };
-_LIT_SECURE_ID( KFileManagerSID, KFileManagerUID3 );
-const TInt KStartStateChangeTimeoutSecs = 30;
-const TInt KPhoneStateChangeTimeoutSecs = 120;
-const TInt KNumAttempts = -1; // Try forever
-
-
-// ======== LOCAL FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// FindStandaloneAppL
-// ---------------------------------------------------------------------------
-//
-static TBool FindStandaloneAppL(
- RWsSession& aWs, const TUid& aUid, TInt& aWgId )
- {
- FUNC_LOG
-
- aWgId = 0; // Used window group id is always greater than zero
- RArray< RWsSession::TWindowGroupChainInfo > windowChain;
- User::LeaveIfError( aWs.WindowGroupList( &windowChain ) );
- CleanupClosePushL( windowChain );
- TInt count( windowChain.Count() );
- for( TInt i( 0 ); i < count; ++i )
- {
- const RWsSession::TWindowGroupChainInfo& entry( windowChain[ i ] );
- CApaWindowGroupName* app = CApaWindowGroupName::NewLC(
- aWs, entry.iId );
- TUid appUid( app->AppUid() );
- CleanupStack::PopAndDestroy( app );
- // Match the app's UID and the embedded status.
- // The app is standalone when there is no parent window group.
- if ( appUid == aUid && entry.iParentId <= 0 )
- {
- // Standalone application found
- aWgId = entry.iId;
- break;
- }
- }
- CleanupStack::PopAndDestroy( &windowChain );
- return aWgId > 0;
- }
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::CFileManagerSchBackupTask
-// ---------------------------------------------------------------------------
-//
-CFileManagerSchBackupTask::CFileManagerSchBackupTask() :
- CActive( EPriorityStandard ),
- iDay( KErrNotFound ),
- iAttemptsLeft( KNumAttempts )
- {
- FUNC_LOG
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::NewL
-// ---------------------------------------------------------------------------
-//
-CFileManagerSchBackupTask* CFileManagerSchBackupTask::NewL(
- const CScheduledTask& aTask )
- {
- FUNC_LOG
-
- CFileManagerSchBackupTask* self =
- new ( ELeave ) CFileManagerSchBackupTask();
- CleanupStack::PushL( self );
- self->ConstructL( aTask );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::~CFileManagerSchBackupTask
-// ---------------------------------------------------------------------------
-//
-CFileManagerSchBackupTask::~CFileManagerSchBackupTask()
- {
- FUNC_LOG
-
- delete iSubscriber;
- delete iCenRep;
- delete iSystemStateMonitor;
- Cancel();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::RunL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchBackupTask::RunL()
- {
- StartL();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::DoCancel
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchBackupTask::DoCancel()
- {
- delete iSubscriber;
- iSubscriber = NULL;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::RunError()
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerSchBackupTask::RunError(
-#ifdef FILE_MANAGER_ERROR_LOG_ENABLED
- TInt aError
-#else // FILE_MANAGER_ERROR_LOG_ENABLED
- TInt /*aError*/
-#endif // FILE_MANAGER_ERROR_LOG_ENABLED
- )
- {
- ERROR_LOG1( "CFileManagerSchBackupTask::RunError()-Error=%d", aError )
-
- // Try again
- Retry();
-
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchBackupTask::ConstructL( const CScheduledTask& aTask )
- {
- FUNC_LOG
-
- INFO_LOG1( "CFileManagerTaskScheduler::ConstructL()-Repeat=%d",
- aTask.Info().iRepeat )
-
- CActiveScheduler::Add( this );
-
- // Check task creator
- if( aTask.SecurityInfo().iSecureId.iId != KFileManagerSID )
- {
- User::Leave( KErrPermissionDenied );
- }
-
- // Get pointer to file manager settings
- iCenRep = CRepository::NewL( KCRUidFileManagerSettings );
-
- // Get backup weekday if given from originator
- const HBufC& data( aTask.Data() );
- if ( data.Length() )
- {
- TLex parse;
- parse.Assign( data );
- User::LeaveIfError( parse.Val( iDay ) );
- }
-
- // Get pointer to system state monitor
- iSystemStateMonitor = CFmSystemStateMonitor::NewL( *this );
-
- Retry();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::CheckBackupRequired
-// ---------------------------------------------------------------------------
-//
-TBool CFileManagerSchBackupTask::CheckBackupRequired()
- {
- TBool ret( ETrue );
-
- // Check schedule type
- TInt scheduling( 0 );
- iCenRep->Get( KFileManagerBackupScheduling, scheduling );
- if ( scheduling == EFileManagerBackupScheduleNone )
- {
- // Backup is not required
- ret = EFalse;
- }
-
- // Check weekday
- if ( ret && iDay != KErrNotFound )
- {
- TTime time;
- time.HomeTime();
- if ( time.DayNoInWeek() != iDay )
- {
- // Backup is not required today
- ret = EFalse;
- }
- }
-
- if ( !ret )
- {
- INFO_LOG( "CFileManagerSchBackupTask::CheckBackupRequired()-No" )
- Exit();
- }
-
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::CheckPhoneStateL
-// ---------------------------------------------------------------------------
-//
-TBool CFileManagerSchBackupTask::CheckPhoneStateL()
- {
-
- // Check phone is normal state or not
- if ( !iSystemStateMonitor->IsSystemStateNormal() )
- {
- INFO_LOG( "CFileManagerSchBackupTask::CheckPhoneStateL()-System State is not normal" )
- iSystemStateMonitor->StartMonitor( ESsmNormal );
- return EFalse;
- }
-
- // Check call state
- TInt callState( 0 );
- RProperty::Get(
- KPSUidCtsyCallInformation, KCTsyCallState, callState );
- if ( callState != EPSCTsyCallStateNone )
- {
- INFO_LOG1( "CFileManagerSchBackupTask::CheckPhoneStateL()-callState=%d",
- callState )
-
- // Set subscriber to wait call to finish
- iSubscriber = CFileManagerSchSubscriber::NewL(
- *this,
- KPSUidCtsyCallInformation,
- KCTsyCallState,
- CFileManagerSchSubscriber::ESubscribePS,
- KPhoneStateChangeTimeoutSecs );
- return EFalse;
- }
-
- // Check usb transfer state
- TInt usbState( 0 );
- RProperty::Get(
- KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbState );
- if ( usbState == KUsbPersonalityIdMS )
- {
- INFO_LOG( "CFileManagerSchBackupTask::CheckPhoneStateL()-Usb transfer on" )
-
- // Set subscriber to wait usb transfer to finish
- iSubscriber = CFileManagerSchSubscriber::NewL(
- *this,
- KPSUidUsbWatcher,
- KUsbWatcherSelectedPersonality,
- CFileManagerSchSubscriber::ESubscribePS,
- KPhoneStateChangeTimeoutSecs );
- return EFalse;
- }
-
- // Check synchronization state
- TInt syncState( 0 );
- RProperty::Get(
- KPSUidDataSynchronizationInternalKeys, KDataSyncStatus, syncState );
- if ( syncState > 0 )
- {
- INFO_LOG( "CFileManagerSchBackupTask::CheckPhoneStateL()-Synchronization on" )
-
- // Set subscriber to wait usb transfer to finish
- iSubscriber = CFileManagerSchSubscriber::NewL(
- *this,
- KPSUidDataSynchronizationInternalKeys,
- KDataSyncStatus,
- CFileManagerSchSubscriber::ESubscribePS,
- KPhoneStateChangeTimeoutSecs );
- return EFalse;
- }
-
- // Check backup/restore (e.g. PC Suite initiated) state
- TInt burState( 0 );
- RProperty::Get(
- KUidSystemCategory, KUidBackupRestoreKey, burState );
-
- const TBURPartType partType = static_cast< TBURPartType >
- ( burState & KBURPartTypeMask );
-
- if ( partType != EBURUnset && partType != EBURNormal )
- {
- INFO_LOG( "CFileManagerSchBackupTask::CheckPhoneStateL()-Backup/restore on" )
-
- // Set subscriber to wait backup or restore to finish
- iSubscriber = CFileManagerSchSubscriber::NewL(
- *this,
- KUidSystemCategory,
- KUidBackupRestoreKey,
- CFileManagerSchSubscriber::ESubscribePS,
- KPhoneStateChangeTimeoutSecs );
- return EFalse;
- }
-
- return ETrue;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::StartL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchBackupTask::StartL()
- {
- FUNC_LOG
-
- delete iSubscriber;
- iSubscriber = NULL;
-
- if ( !CheckBackupRequired() )
- {
- return;
- }
- if ( !CheckPhoneStateL() )
- {
- return;
- }
-
- // Set backup starting state
- iCenRep->Set(
- KFileManagerLastSchBackupStatus,
- EFileManagerSchBackupStatusStarting );
-
- // Set subscriber to watch backup start success
- iSubscriber = CFileManagerSchSubscriber::NewL(
- *this,
- KCRUidFileManagerSettings,
- KFileManagerLastSchBackupStatus,
- CFileManagerSchSubscriber::ESubscribeCR,
- KStartStateChangeTimeoutSecs );
-
- // Start file manager for backup and ensure that it starts properly
- StartFileManagerL();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::Exit
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchBackupTask::Exit()
- {
- FUNC_LOG
-
- Cancel();
- CActiveScheduler::Stop();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::Retry
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchBackupTask::Retry()
- {
- if ( iAttemptsLeft != 0 )
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrNone );
- SetActive();
-
- if ( iAttemptsLeft > 0 )
- {
- --iAttemptsLeft;
- }
- }
- else
- {
- Exit();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::StartFileManagerL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchBackupTask::StartFileManagerL()
- {
- FUNC_LOG
-
- RWsSession wsSession;
- User::LeaveIfError( wsSession.Connect() );
- CleanupClosePushL( wsSession );
- // Backup cannot be done from embedded file manager.
- // Backup operation closes the app where file manager is started and
- // the backup operation stops because file manager gets closed as well.
- TInt wgId( 0 );
- if ( FindStandaloneAppL( wsSession, KUidFileManager, wgId ) )
- {
- // Notify running standalone file manager to start backup
- HBufC8* param8 = HBufC8::NewLC( KSchBackupTaskName().Length() );
- TPtr8 paramPtr( param8->Des() );
- paramPtr.Copy( KSchBackupTaskName );
- wsSession.SendMessageToWindowGroup(
- wgId,
- TUid::Uid( KUidApaMessageSwitchOpenFileValue ),
- *param8 );
- CleanupStack::PopAndDestroy( param8 );
- }
- else
- {
- // Start standalone file manager for backup
- TApaAppInfo appInfo;
- RApaLsSession apaLsSession;
- User::LeaveIfError( apaLsSession.Connect() );
- CleanupClosePushL( apaLsSession );
- User::LeaveIfError( apaLsSession.GetAppInfo(
- appInfo, KUidFileManager ) );
- CApaCommandLine* apaCmdLine = CApaCommandLine::NewLC();
- apaCmdLine->SetExecutableNameL( appInfo.iFullName );
- apaCmdLine->SetCommandL( EApaCommandBackground );
- TThreadId fmThreadId;
- User::LeaveIfError( apaLsSession.StartApp(
- *apaCmdLine, fmThreadId ) );
- CleanupStack::PopAndDestroy( apaCmdLine );
- CleanupStack::PopAndDestroy( &apaLsSession );
- }
- CleanupStack::PopAndDestroy( &wsSession );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::NotifyKeyChangeOrTimeoutL
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchBackupTask::NotifyKeyChangeOrTimeoutL(
- const TUid& aCategory,
- const TUint aKey,
- const TBool aTimeout )
- {
- FUNC_LOG
-
- if ( aCategory == KCRUidFileManagerSettings &&
- aKey == KFileManagerLastSchBackupStatus &&
- !aTimeout )
- {
- // Backup was started, the task starter can be finished
- Exit();
- }
- else
- {
- // Backup was not started, try starting it again
- Retry();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchBackupTask::SystemStateChangedEvent
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchBackupTask::SystemStateChangedEvent()
- {
- FUNC_LOG
-
- // Backup was not started, try starting it again
- Retry();
- }
-
-// End of file
--- a/filemanager/schbkup/src/filemanagerschsubscriber.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-/*
-* Copyright (c) 2006 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: Handles P&S and CenRep notifications
-*
-*/
-
-
-
-// INCLUDES
-#include <centralrepository.h>
-#include "filemanagerschsubscriber.h"
-#include "filemanagerschobserver.h"
-#include "FileManagerDebug.h"
-
-
-// CONSTANTS
-const TUint32 KMicroSecsPerSec = 1000000;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchSubscriber::NewL()
-// ---------------------------------------------------------------------------
-//
-CFileManagerSchSubscriber* CFileManagerSchSubscriber::NewL(
- MFileManagerSchObserver& aObserver,
- const TUid& aCategory,
- const TUint aKey,
- const TType aType,
- const TInt aTimeoutSecs )
- {
- CFileManagerSchSubscriber* self =
- new (ELeave)CFileManagerSchSubscriber(
- aObserver, aCategory, aKey, aType, aTimeoutSecs );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchSubscriber::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchSubscriber::ConstructL()
- {
- CActiveScheduler::Add( this );
-
- if ( iType == ESubscribePS )
- {
- User::LeaveIfError( iProperty.Attach( iCategory, iKey ) );
- }
- else
- {
- iCenRep = CRepository::NewL( iCategory );
- }
-
- SubscribeL();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchSubscriber::SubscribeL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchSubscriber::SubscribeL()
- {
- iTimeout = EFalse;
-
- if ( iType == ESubscribePS )
- {
- iProperty.Subscribe( iStatus );
- }
- else
- {
- User::LeaveIfError( iCenRep->NotifyRequest( iKey, iStatus ) );
- }
-
- if ( iTimeoutSecs > 0 )
- {
- delete iTimer;
- iTimer = NULL;
-
- iTimer = CPeriodic::NewL( EPriorityStandard );
- TUint32 us( iTimeoutSecs * KMicroSecsPerSec );
- iTimer->Start( us, us, TCallBack( TimeoutCB, this ) );
- }
-
- SetActive();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchSubscriber::TimeoutCB()
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerSchSubscriber::TimeoutCB( void* aPtr )
- {
- CFileManagerSchSubscriber* self =
- static_cast< CFileManagerSchSubscriber* >( aPtr );
-
- self->Timeout();
-
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchSubscriber::Timeout()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchSubscriber::Timeout()
- {
- delete iTimer;
- iTimer = NULL;
-
- Cancel();
-
- // Set timeout status
- iTimeout = ETrue;
-
- // Complete
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrNone );
- SetActive();
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchSubscriber::CFileManagerSchSubscriber()
-// ---------------------------------------------------------------------------
-//
-CFileManagerSchSubscriber::CFileManagerSchSubscriber(
- MFileManagerSchObserver& aObserver,
- const TUid& aCategory,
- const TUint aKey,
- const TType aType,
- const TInt aTimeoutSecs ) :
- CActive( EPriorityStandard ),
- iObserver( aObserver ),
- iCategory( aCategory),
- iKey( aKey ),
- iType( aType ),
- iTimeoutSecs ( aTimeoutSecs )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchSubscriber::RunL()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchSubscriber::RunL()
- {
- // If timeout, no need to resubscribe
- if ( !iTimeout )
- {
- SubscribeL();
- }
-
- iObserver.NotifyKeyChangeOrTimeoutL( iCategory, iKey, iTimeout );
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchSubscriber::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CFileManagerSchSubscriber::DoCancel()
- {
- delete iTimer;
- iTimer = NULL;
-
- if ( iType == ESubscribePS )
- {
- iProperty.Cancel();
- }
- else
- {
- iCenRep->NotifyCancel( iKey );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchSubscriber::RunError()
-// ---------------------------------------------------------------------------
-//
-TInt CFileManagerSchSubscriber::RunError( TInt aError )
- {
- ERROR_LOG1( "CFileManagerSchSubscriber::RunError()-Error=%d", aError )
- return aError;
- }
-
-// ---------------------------------------------------------------------------
-// CFileManagerSchSubscriber::~CFileManagerSchSubscriber()
-// ---------------------------------------------------------------------------
-//
-CFileManagerSchSubscriber::~CFileManagerSchSubscriber()
- {
- Cancel();
- iProperty.Close();
- delete iCenRep;
- delete iTimer;
- }
-
-// End of File
-
-
--- a/filemanager/schbkup/src/fmsystemstatemonitor.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
-* Copyright (c) 2002-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: system state monitor
-*
-*/
-
-#include <ssm/ssmstate.h>
-#include <ssm/ssmdomaindefs.h>
-#include "fmsystemstatemonitor.h"
-
-// ========================= MEMBER FUNCTIONS ==================================
-
-// -----------------------------------------------------------------------------
-// CFmSystemStateMonitor::NewL()
-// Two-phased constructor
-// -----------------------------------------------------------------------------
-CFmSystemStateMonitor* CFmSystemStateMonitor::NewL(
- MFmSystemStateMonitorObserver& aObserver )
- {
- CFmSystemStateMonitor* self = new ( ELeave ) CFmSystemStateMonitor( aObserver );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFmSystemStateMonitor::~CFmSystemStateMonitor()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CFmSystemStateMonitor::~CFmSystemStateMonitor()
- {
- Cancel();
- iSAS.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CFmSystemStateMonitor::StartMonitor()
-// Start monitor
-// -----------------------------------------------------------------------------
-//
-void CFmSystemStateMonitor::StartMonitor( TUint aStateToMonitor )
- {
- if( !IsActive() )
- {
- iStateToMonitor = aStateToMonitor;
- iSAS.RequestStateNotification( iStatus );
- SetActive();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFmSystemStateMonitor::IsSystemStateNormal()
-// Indicate the system state normal or not
-// -----------------------------------------------------------------------------
-//
-TBool CFmSystemStateMonitor::IsSystemStateNormal()
- {
- TSsmState state = iSAS.State();
- return ( state.MainState() == ESsmNormal );
- }
-
-// -----------------------------------------------------------------------------
-// CFmSystemStateMonitor::CFmSystemStateMonitor()
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-CFmSystemStateMonitor::CFmSystemStateMonitor( MFmSystemStateMonitorObserver& aObserver ) :
- CActive( EPriorityStandard ),iObserver( aObserver )
- {
- CActiveScheduler::Add( this );
- }
-
-// -----------------------------------------------------------------------------
-// CFmSystemStateMonitor::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CFmSystemStateMonitor::ConstructL()
- {
- User::LeaveIfError( iSAS.Connect( KSM2GenMiddlewareDomain3 ) );
- }
-
-// -----------------------------------------------------------------------------
-// CFmSystemStateMonitor::RunL
-// -----------------------------------------------------------------------------
-//
-void CFmSystemStateMonitor::RunL()
- {
- User::LeaveIfError( iStatus.Int() );
-
- TSsmState state = iSAS.State();
- if ( state.MainState() == iStateToMonitor )
- {
- iObserver.SystemStateChangedEvent();
- iSAS.AcknowledgeStateNotification( KErrNone );
- }
- else
- {
- iSAS.AcknowledgeAndRequestStateNotification( KErrNone, iStatus );
- SetActive();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFmSystemStateMonitor::DoCancel()
-// From CActive.
-// -----------------------------------------------------------------------------
-//
-void CFmSystemStateMonitor::DoCancel()
- {
- iSAS.RequestStateNotificationCancel();
- }
-
-// -----------------------------------------------------------------------------
-// CFmSystemStateMonitor::RunError()
-// From CActive.
-// -----------------------------------------------------------------------------
-//
-TInt CFmSystemStateMonitor::RunError( TInt aError )
- {
- return aError;
- }
-
-// End of File
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/common.pri Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,65 @@
+#
+# 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 "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: filemanager project - common qmake settings
+#
+
+CONFIG += debug_and_release
+
+# On win32 and mac, debug and release libraries are named differently.
+# We must follow the debug and release settings Qt was compiled with:
+# build debug iff Qt built debug, build release iff Qt built release.
+
+win32|mac {
+ !contains(QT_CONFIG,debug)|!contains(QT_CONFIG,release) {
+ CONFIG -= debug_and_release debug release
+ contains(QT_CONFIG,debug): CONFIG+=debug
+ contains(QT_CONFIG,release):CONFIG+=release
+ }
+}
+
+CONFIG(debug, debug|release) {
+ SUBDIRPART = debug
+} else {
+ SUBDIRPART = release
+}
+
+win32 {
+ DESTDIR = $$PWD/../bin
+ OBJECTS_DIR = $$PWD/../$$SUBDIRPART/tmp/$$TARGET
+}
+
+# Add the output dirs to the link path too
+LIBS += -L$$DESTDIR
+
+MOC_DIR = moc
+OBJECT_DIR = obj
+RCC_DIR = rcc
+
+#For some reason the default include path doesn't include MOC_DIR on symbian
+symbian {
+ INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+ INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+ INCLUDEPATH += $$MOC_DIR
+ TARGET.CAPABILITY = ALL -TCB
+ TARGET.EPOCALLOWDLLDATA = 1
+}
+
+INCLUDEPATH += $$PWD/inc
+win32 {
+ # add platfrom API for windows
+ INCLUDEPATH += $$PWD/../filemanager_plat/inc
+}
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/backup_registration.xml Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,7 @@
+<?xml version="1.0" standalone="yes" ?>
+<backup_registration>
+<public_backup>
+ <include_directory name="C:\data" />
+</public_backup>
+<restore requires_reboot="no" />
+</backup_registration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/burconfig.xml Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<fmbackup>
+ <backup_drivesAndOperations>
+ <drivesAndOperation>
+ <drive>EBkupDeviceMemories|EBkupInternalMassStorages</drive>
+ <type>EMMCScBkupOwnerDataTypeDataOwner</type>
+ </drivesAndOperation>
+
+ <drivesAndOperation>
+ <drive>EBkupDeviceMemories|EBkupInternalMassStorages</drive>
+ <type>EMMCScBkupOwnerDataTypeJavaData</type>
+ </drivesAndOperation>
+
+ <drivesAndOperation>
+ <drive>EBkupDeviceMemories|EBkupInternalMassStorages</drive>
+ <type>EMMCScBkupOwnerDataTypePublicData</type>
+ </drivesAndOperation>
+
+ <drivesAndOperation>
+ <drive>EBkupDeviceMemories|EBkupInternalMassStorages</drive>
+ <type>EMMCScBkupOwnerDataTypeSystemData</type>
+ </drivesAndOperation>
+
+ <drivesAndOperation>
+ <drive>EBkupDeviceMemories|EBkupInternalMassStorages</drive>
+ <type>EMMCScBkupOwnerDataTypeActiveData</type>
+ </drivesAndOperation>
+
+ <drivesAndOperation>
+ <drive>EBkupDeviceMemories|EBkupInternalMassStorages</drive>
+ <type>EMMCScBkupOwnerDataTypePassiveData</type>
+ </drivesAndOperation>
+ </backup_drivesAndOperations>
+
+ <backup_categories>
+ <backupCategory>
+ <category>EBUCatAllInOne</category>
+ <archive_name>Backup.arc</archive_name>
+ <special_flags>EBUCatSpecAll</special_flags>
+ <exclude_special_flags>EBUCatSpecNone</exclude_special_flags>
+ <uids></uids>
+ <exclude_uids></exclude_uids>
+ </backupCategory>
+
+ <backupCategory>
+ <category>EBUCatSettings</category>
+ <archive_name>Settings.arc</archive_name>
+ <special_flags>EBUCatSpecAll</special_flags>
+ <exclude_special_flags>EBUCatSpecSystem+EBUCatSpecJava</exclude_special_flags>
+ <uids></uids>
+ <exclude_uids>0x1000484b</exclude_uids> <!--Message store (EBUCatMessages)-->
+ <exclude_uids>0x100058db</exclude_uids> <!--MMS-settings (EBUCatMessages)-->
+ <exclude_uids>0x100058eb</exclude_uids> <!--E-mail-settings (EBUCatMessages)-->
+ <exclude_uids>0x2001FE79</exclude_uids> <!--Messaging 101 (EBUCatMessages)-->
+ <exclude_uids>0x2002A542</exclude_uids> <!--CsServer.exe (EBUCatMessages)-->
+ <exclude_uids>0x10003a73</exclude_uids> <!--Contacts model (EBUCatContacts)-->
+ <exclude_uids>0x101f4cce</exclude_uids> <!--Phonebook-app (EBUCatContacts)-->
+ <exclude_uids>0x10003a5b</exclude_uids> <!--Agenda model (EBUCatCalendar)-->
+ <exclude_uids>0x10005901</exclude_uids> <!--Calendar-app (EBUCatCalendar)-->
+ <exclude_uids>0x10008d38</exclude_uids> <!--Bookmarks (EBUCatBookmarks)-->
+ <exclude_uids>0x101f401d</exclude_uids> <!--Logs (EBUCatUserFiles)-->
+ <exclude_uids>0x101f8599</exclude_uids> <!--MediaGallery, i.e. basically all user data (EBUCatUserFiles)-->
+ <exclude_uids>0x101f84eb</exclude_uids> <!--FileManager-->
+ <exclude_uids>0x20029f80</exclude_uids> <!--Notepad (EBUCatUserFiles) changed from 0x10005907-->
+ <exclude_uids>0x1028246F</exclude_uids> <!--Java Backup process-->
+ <exclude_uids>0x10282475</exclude_uids> <!--Java Registry process-->
+ <exclude_uids>0x102033E6</exclude_uids> <!--MIDP2 Runtime process-->
+ </backupCategory>
+
+ <backupCategory>
+ <category>EBUCatMessages</category>
+ <archive_name>Messages.arc</archive_name>
+ <special_flags>EBUCatSpecNone</special_flags>
+ <exclude_special_flags>EBUCatSpecNone</exclude_special_flags>
+ <uids>0x1000484b</uids><!--Message store-->
+ <uids>0x100058db</uids><!--MMS-settings-->
+ <uids>0x100058eb</uids><!--E-mail-settings-->
+ <uids>0x2001FE79</uids><!--Messaging 101 -->
+ <uids>0x2002A542</uids><!--CsServer.exe -->
+ <exclude_uids></exclude_uids>
+ </backupCategory>
+
+ <backupCategory>
+ <category>EBUCatContacts</category>
+ <archive_name>Contacts.arc</archive_name>
+ <special_flags>EBUCatSpecNone</special_flags>
+ <exclude_special_flags>EBUCatSpecNone</exclude_special_flags>
+ <uids>0x10003a73</uids><!--Contacts model-->
+ <uids>0x101f4cce</uids><!--Phonebook-app-->
+ <exclude_uids></exclude_uids>
+ </backupCategory>
+
+ <backupCategory>
+ <category>EBUCatCalendar</category>
+ <archive_name>Calendar.arc</archive_name>
+ <special_flags>EBUCatSpecNone</special_flags>
+ <exclude_special_flags>EBUCatSpecNone</exclude_special_flags>
+ <uids>0x10003a5b</uids><!--Agenda model-->
+ <uids>0x10005901</uids><!--Calendar-app-->
+ <exclude_uids></exclude_uids>
+ </backupCategory>
+
+ <backupCategory>
+ <category>EBUCatBookmarks</category>
+ <archive_name>Bookmarks.arc</archive_name>
+ <special_flags>EBUCatSpecNone</special_flags>
+ <exclude_special_flags>EBUCatSpecNone</exclude_special_flags>
+ <uids>0x10008d38</uids>
+ <exclude_uids></exclude_uids>
+ </backupCategory>
+
+ <backupCategory>
+ <category>EBUCatUserFiles</category>
+ <archive_name>UserFiles.arc</archive_name>
+ <special_flags>EBUCatSpecSystem+EBUCatSpecJava</special_flags>
+ <exclude_special_flags>EBUCatSpecNone</exclude_special_flags>
+ <uids>0x101f401d</uids><!--Logs-->
+ <!-- removed MediaGallery <uids>0x101f8599</uids>MediaGallery, i.e. basically all user data-->
+ <uids>0x2002bcc0</uids><!--FileManager instead of MediaGallery backup c:/data/ -->
+ <uids>0x20029f80</uids><!--Notepad changed from 0x10005907-->
+ <uids>0x1028246F</uids><!--Java Backup process-->
+ <uids>0x200211DC</uids><!--Java Captain. And Java registry process removed-->
+ <uids>0x102033E6</uids><!--MIDP2 Runtime process-->
+ <exclude_uids></exclude_uids>
+ </backupCategory>
+ </backup_categories>
+</fmbackup>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/filemanager.pri Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,109 @@
+#
+# 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 "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: filemanager source files
+#
+
+INCLUDEPATH += ./src
+INCLUDEPATH += ./src/components
+INCLUDEPATH += ./src/backuprestore
+INCLUDEPATH += ./src/operationservice
+
+HEADERS += src/fmdriverlistwidget.h \
+ src/fmfileview.h \
+ src/fmfilebrowsewidget.h \
+ src/fmdriverview.h \
+ src/fmmainwindow.h \
+ src/fmsplitview.h \
+ src/fmfindthread.h \
+ src/fmfindresultmodel.h \
+ src/fmfindview.h \
+ src/fmfindwidget.h \
+ src/fmviewmanager.h \
+ src/fmviewbase.h \
+ src/operationservice/fmoperationservice.h \
+ src/operationservice/fmoperationthread.h \
+ src/operationservice/fmoperationbase.h \
+ src/operationservice/fmoperationresultprocesser.h \
+ src/operationservice/fmoperationcopyormove.h \
+ src/operationservice/fmoperationremove.h \
+ src/operationservice/fmoperationformat.h \
+ src/operationservice/fmoperationviewdetails.h \
+ src/backuprestore/fmbackupview.h \
+ src/backuprestore/fmbackupwidget.h \
+ src/backuprestore/fmrestoreview.h \
+ src/backuprestore/fmrestorewidget.h \
+ src/backuprestore/fmrestoreviewitem.h \
+ src/backuprestore/fmbackupconfigloader.h \
+ src/backuprestore/fmbackuprestorehandler.h \
+ src/backuprestore/fmdeletebackupview.h \
+ src/backuprestore/fmdeletebackupwidget.h \
+ src/components/fmcombinedquery.h \
+ src/components/fmdlgutils.h \
+ src/components/fmtimequery.h \
+ src/components/fmsingletextquery.h \
+ src/components/fmmultitextquery.h \
+ src/components/fmviewdetailsdialog.h \
+ src/components/fmviewdetailsitem.h \
+ src/components/fmdrivedetailstype.h \
+ src/components/fmmessagebox.h \
+ src/components/fmdialog.h \
+ src/components/fmdrivequery.h
+
+SOURCES += src/main.cpp \
+ src/fmdriverlistwidget.cpp \
+ src/fmfileview.cpp \
+ src/fmfilebrowsewidget.cpp \
+ src/fmdriverview.cpp \
+ src/fmmainwindow.cpp \
+ src/fmsplitview.cpp \
+ src/fmfindthread.cpp \
+ src/fmfindresultmodel.cpp \
+ src/fmfindview.cpp \
+ src/fmfindwidget.cpp \
+ src/fmviewmanager.cpp \
+ src/fmviewbase.cpp \
+ src/operationservice/fmoperationservice.cpp \
+ src/operationservice/fmoperationthread.cpp \
+ src/operationservice/fmoperationbase.cpp \
+ src/operationservice/fmoperationresultprocesser.cpp \
+ src/operationservice/fmoperationcopyormove.cpp \
+ src/operationservice/fmoperationremove.cpp \
+ src/operationservice/fmoperationviewdetails.cpp \
+ src/backuprestore/fmbackupview.cpp \
+ src/backuprestore/fmbackupwidget.cpp \
+ src/backuprestore/fmrestoreview.cpp \
+ src/backuprestore/fmrestorewidget.cpp \
+ src/backuprestore/fmrestoreviewitem.cpp \
+ src/backuprestore/fmbackupconfigloader.cpp \
+ src/backuprestore/fmbackuprestorehandler.cpp \
+ src/backuprestore/fmdeletebackupview.cpp \
+ src/backuprestore/fmdeletebackupwidget.cpp \
+ src/components/fmcombinedquery.cpp \
+ src/components/fmdlgutils.cpp \
+ src/components/fmtimequery.cpp \
+ src/components/fmsingletextquery.cpp \
+ src/components/fmmultitextquery.cpp \
+ src/components/fmviewdetailsdialog.cpp \
+ src/components/fmviewdetailsitem.cpp \
+ src/components/fmdrivedetailstype.cpp \
+ src/components/fmmessagebox.cpp \
+ src/components/fmdialog.cpp \
+ src/components/fmdrivequery.cpp
+
+win32 {
+ SOURCES += src/operationservice/fmoperationformat_win.cpp
+}
+symbian {
+ SOURCES += src/operationservice/fmoperationformat_s60.cpp
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/filemanager.pro Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,55 @@
+# 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 "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:
+# Zhiqiang Yang <zhiqiang.yang@nokia.com>
+#
+# Description:
+# The project file of file manager
+#
+
+CONFIG += hb
+TEMPLATE = app
+TARGET = filemngr
+ICON = resources/qtg_large_filemgr.svg
+RESOURCES += filemanager.qrc
+INCLUDEPATH += ../fmbkupenginewrapper/inc
+# remove this path when export plat header to app layer path
+# INCLUDEPATH += ../../filemanager_plat/inc
+
+include ( ../common.pri )
+include ( ../inc/commoninc.pri )
+include ( ../inc/commonutils.pri )
+include ( filemanager.pri )
+
+LIBS += -lfmbkupenginewrapper
+LIBS += -lfmfiledialog
+
+symbian {
+ SKINICON = qtg_large_filemgr
+ LIBS += -lplatformenv \
+ -lapmime \
+ -lxqservice \
+ -lxqutils \
+ -lshareui \
+ -lefsrv \
+ -lapgrfx \
+ -lcone \
+ -lsysutil
+
+ TARGET.UID3 = 0x2002BCC0
+ TARGET.EPOCHEAPSIZE = 0x020000 0x1000000
+ TARGET.CAPABILITY = CAP_APPLICATION DiskAdmin AllFiles PowerMgmt
+
+ BLD_INF_RULES.prj_exports += "./backup_registration.xml z:/private/2002BCC0/backup_registration.xml"
+ BLD_INF_RULES.prj_exports += "./burconfig.xml z:/private/2002BCC0/burconfig.xml"
+}
+
+TRANSLATIONS = filemanager.ts
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/filemanager.qrc Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,13 @@
+<RCC>
+ <qresource prefix="/">
+ <file>image/qtg_indi_status_back.svg</file>
+ <file>image/qgn_prop_mmc_locked.svg</file>
+ <file>image/qgn_prop_mmc_memc.svg</file>
+ <file>image/qgn_prop_fmgr_mmc_no_sub.svg</file>
+ <file>image/qgn_prop_phone_memc.svg</file>
+ <file>image/qgn_prop_usb_memc.svg</file>
+ <file>image/qgn_prop_fmgr_ms.svg</file>
+ <file>resources/hblistviewitem.css</file>
+ <file>resources/hblistviewitem.widgetml</file>
+ </qresource>
+</RCC>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/image/qgn_prop_fmgr_mmc_no_sub.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="57px" version="1.1" viewBox="0 0 67 57" width="67px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<path d="M49.375,9.715c-0.012,0-0.029-0.002-0.041-0.002l-38.13,0.004h38.027 C49.231,9.717,49.289,9.713,49.375,9.715z M60.67,19.506l-8.727-8.727c-0.896-0.896-1.979-1.046-2.498-1.063 c0.371,0.018,1.154,0.133,1.791,0.77l8.728,8.728c0,0,0.366,0.316,0.637,0.97C60.6,20.182,60.6,20.18,60.6,20.179 c0.314,0.412,0.783,1.231,0.783,2.49v23.125c0,2.044-1.662,3.706-3.706,3.706H11.204c-2.042,0-3.704-1.662-3.704-3.706V13.922 c0-0.823,0.279-1.577,0.735-2.193c-0.002,0.004-0.002,0.01-0.004,0.014c0.394-0.99,1.262-1.742,2.328-1.961 C8.547,10.096,7,11.824,7,13.922v31.872C7,48.113,8.886,50,11.204,50h46.473c2.319,0,4.206-1.887,4.206-4.206V22.669 C61.883,20.556,60.694,19.524,60.67,19.506z" fill-opacity="0.08" stroke-opacity="0.08"/>
+<path d="M60.6,20.179c0.157,0.38,0.283,0.874,0.283,1.49v24.125c0,1.771-1.436,3.206-3.206,3.206H11.204 C9.436,49,8,47.564,8,45.794V12.922c0-0.422,0.086-0.824,0.235-1.193C7.779,12.345,7.5,13.099,7.5,13.922v31.872 c0,2.044,1.662,3.706,3.704,3.706h46.473c2.044,0,3.706-1.662,3.706-3.706V22.669C61.383,21.41,60.914,20.591,60.6,20.179z" fill-opacity="0.15" stroke-opacity="0.15"/>
+<path d="M57.677,48H11.204C9.436,48,8,46.564,8,44.794v1C8,47.564,9.436,49,11.204,49h46.473 c1.771,0,3.206-1.436,3.206-3.206v-1C60.883,46.564,59.447,48,57.677,48z" fill-opacity="0.3" stroke-opacity="0.3"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="34.4414" x2="34.4414" y1="-6.5947" y2="62.0571">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path d="M59.257,19.921l-8.728-8.728c-0.446-0.445-1.028-0.48-1.195-0.48l-38.13,0.004 C9.988,10.717,9,11.706,9,12.922v31.872C9,46.01,9.988,47,11.204,47h46.473c1.217,0,2.206-0.99,2.206-2.206V21.669 C59.883,20.521,59.321,19.982,59.257,19.921z M58.065,45H47.78v-5.144h10.285V45z M58.065,38.743H47.78V33.6h10.285V38.743z M58.065,32.48H47.78v-5.143h10.285V32.48z M58.065,26.219H47.78v-5.143h10.285V26.219z" fill="url(#SVGID_1_)" fill-opacity="0.5" stroke-opacity="0.5"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="34.4414" x2="34.4414" y1="-0.6313" y2="58.201">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path d="M59.964,19.214l-8.728-8.728c-0.865-0.865-2.005-0.77-2.005-0.77H11.204 C9.436,9.717,8,11.151,8,12.922v31.872C8,46.564,9.436,48,11.204,48h46.473c1.771,0,3.206-1.436,3.206-3.206V21.669 C60.883,20,59.964,19.214,59.964,19.214z M59.883,44.794c0,1.216-0.989,2.206-2.206,2.206H11.204C9.988,47,9,46.01,9,44.794V12.922 c0-1.216,0.988-2.205,2.204-2.205l38.13-0.004c0.167,0,0.749,0.035,1.195,0.48l8.728,8.728c0.064,0.062,0.626,0.601,0.626,1.748 V44.794z" fill="url(#SVGID_2_)" fill-opacity="0.5" stroke-opacity="0.5"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="33.27" x2="33.27" y1="35.7666" y2="7.9984">
+<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M9,12.922v26.053c7.021-11.342,26.082-20.758,48.54-20.771l-7.011-7.01 c-0.446-0.445-1.028-0.48-1.195-0.48l-38.13,0.004C9.988,10.717,9,11.706,9,12.922z" fill="url(#SVGID_3_)" fill-opacity="0.1" stroke-opacity="0.1"/>
+<path d="M59.065,21.076c0-0.553-0.447-1-1-1H47.78c-0.553,0-1,0.447-1,1v5.143c0,0.207,0.063,0.4,0.171,0.56 c-0.107,0.159-0.171,0.353-0.171,0.56v5.143c0,0.208,0.063,0.4,0.171,0.561C46.844,33.2,46.78,33.393,46.78,33.6v5.144 c0,0.206,0.063,0.397,0.169,0.557c-0.106,0.159-0.169,0.351-0.169,0.557V45c0,0.552,0.447,1,1,1h10.285c0.553,0,1-0.448,1-1v-5.144 c0-0.206-0.063-0.397-0.169-0.557c0.106-0.159,0.169-0.351,0.169-0.557V33.6c0-0.207-0.063-0.399-0.171-0.559 c0.107-0.16,0.171-0.353,0.171-0.561v-5.143c0-0.207-0.063-0.4-0.171-0.56c0.107-0.159,0.171-0.353,0.171-0.56V21.076z M58.065,45 H47.78v-5.144h10.285V45z M58.065,38.743H47.78V33.6h10.285V38.743z M58.065,32.48H47.78v-5.143h10.285V32.48z M58.065,26.219H47.78 v-5.143h10.285V26.219z" fill-opacity="0.1" stroke-opacity="0.1"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="52.9229" x2="52.9229" y1="49.0088" y2="25.5829">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect fill="url(#SVGID_4_)" fill-opacity="0.5" height="5.144" stroke-opacity="0.5" width="10.285" x="47.78" y="39.856"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5_" x1="52.9229" x2="52.9229" y1="42.752" y2="19.3261">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect fill="url(#SVGID_5_)" fill-opacity="0.5" height="5.144" stroke-opacity="0.5" width="10.285" x="47.78" y="33.6"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_6_" x1="52.9229" x2="52.9229" y1="36.4883" y2="13.0691">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect fill="url(#SVGID_6_)" fill-opacity="0.5" height="5.143" stroke-opacity="0.5" width="10.285" x="47.78" y="27.338"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_7_" x1="52.9229" x2="52.9229" y1="30.2275" y2="6.8061">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect fill="url(#SVGID_7_)" fill-opacity="0.5" height="5.143" stroke-opacity="0.5" width="10.285" x="47.78" y="21.076"/>
+<path d="M47.78,44.99l1-0.99v-3.144h8.285l1-1H47.78V44.99z M47.78,38.724l1-0.991V34.59h8.285l1-1H47.78V38.724z M47.78,32.461l1-0.99v-3.144h8.285l1-1H47.78V32.461z M48.78,22.065h8.285l1-1H47.78v5.134l1-0.99V22.065z" fill-opacity="0.15" stroke-opacity="0.15"/>
+<path d="M57.065,44H48.78l-0.99,1h10.275v-5.132l-1,0.988V44z M57.065,37.732H48.78l-0.99,1h10.275 v-5.131l-1,0.988V37.732z M57.065,31.471H48.78l-0.99,1h10.275v-5.132l-1,0.988V31.471z M57.065,22.065v3.144H48.78l-0.99,1h10.275 v-5.132L57.065,22.065z" fill="#FFFFFF" fill-opacity="0.25" stroke-opacity="0.25"/>
+<rect fill="none" height="57" width="67"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/image/qgn_prop_fmgr_ms.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="57px" version="1.1" viewBox="0 0 67 57" width="67px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<path d="M63.977,26.966c0.079-1.848-0.215-3.706-0.903-5.479c-1.959-5.042-6.597-8.367-11.943-8.646 c-0.548-1.742-2.165-3.016-4.086-3.016H9.106c-2.369,0-4.296,1.927-4.296,4.296V40.49c0,2.369,1.927,4.296,4.296,4.296h2.296V44.9 c0,1.158,0.941,2.1,2.099,2.1h29.665c1.157,0,2.099-0.941,2.099-2.1v-0.114h1.779c2.208,0,4.031-1.674,4.27-3.819 c1.369-0.092,2.717-0.392,4.012-0.895c3.379-1.313,6.046-3.865,7.512-7.191C63.672,30.986,64.042,28.973,63.977,26.966z" fill-opacity="0.15" stroke-opacity="0.15"/>
+<path d="M62.606,22.666c-1.911-4.92-6.472-8.151-11.767-8.341v-0.204c0-2.093-1.703-3.796-3.796-3.796H9.106 c-2.093,0-3.796,1.703-3.796,3.796V40.49c0,2.094,1.703,3.796,3.796,3.796h2.796V44.9c0,0.883,0.717,1.6,1.599,1.6h29.665 c0.882,0,1.599-0.717,1.599-1.6v-0.614h2.279c2.093,0,3.796-1.702,3.796-3.796c1.471-0.049,2.917-0.346,4.305-0.884 c3.254-1.264,5.823-3.724,7.234-6.927S63.871,25.921,62.606,22.666z M50.874,28.611c-0.012,0.005-0.022,0.01-0.034,0.014v-2.439 c0.349,0.122,0.632,0.391,0.772,0.752C51.87,27.602,51.538,28.354,50.874,28.611z" fill-opacity="0.15" stroke-opacity="0.15"/>
+<path d="M62.141,22.848c-1.896-4.881-56.33,16.535-56.33,16.535v1.107c0,1.82,1.475,3.296,3.296,3.296h3.296V44.9 c0,0.604,0.495,1.1,1.099,1.1h29.665c0.604,0,1.099-0.495,1.099-1.1v-1.114h2.779c1.819,0,3.296-1.476,3.296-3.296v-0.495 c0.023,0,0.045,0.003,0.068,0.003c0.001,0,0.001,0,0.001,0c1.558,0,3.09-0.289,4.555-0.857 C61.434,36.627,64.654,29.318,62.141,22.848z M50.406,29.2c-0.023,0-0.044-0.009-0.066-0.01v-3.573c0.022,0,0.044-0.006,0.066-0.006 c0.745,0,1.402,0.449,1.672,1.145c0.357,0.922-0.102,1.964-1.023,2.322C50.846,29.159,50.628,29.2,50.406,29.2z" fill-opacity="0.4" stroke-opacity="0.4"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="51.7969" x2="58.3651" y1="25.7554" y2="22.6821">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="0.5401" style="stop-color:#B3B3B3"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M61.544,22.079c-2.391-6.15-9.313-9.199-15.464-6.81c-6.151,2.389-9.2,9.312-6.812,15.462 c2.389,6.151,9.313,9.2,15.463,6.812C60.883,35.154,63.933,28.23,61.544,22.079z M51.567,29.395c-1.65,0.642-3.51-0.178-4.15-1.828 c-0.642-1.65,0.178-3.508,1.828-4.149c1.651-0.642,3.509,0.178,4.149,1.827C54.037,26.895,53.218,28.754,51.567,29.395z" fill="url(#SVGID_1_)"/>
+<path d="M49.551,13.843c0.283-0.02,0.568-0.029,0.854-0.029c5.233,0,9.841,3.153,11.736,8.034 c2.514,6.471-0.707,13.779-7.177,16.293c-1.465,0.568-2.997,0.857-4.555,0.857c0,0,0,0-0.001,0c-0.373,0-0.742-0.017-1.108-0.049 L49.551,13.843z M50.404,24.295c-0.26,0-2.387,1.791-1.966,2.875c0.318,0.818,1.091,1.347,1.968,1.347 c0.261,0,0.518-0.048,0.764-0.144c0.526-0.205,0.94-0.602,1.168-1.117c0.227-0.516,0.239-1.088,0.035-1.614 C52.055,24.823,51.282,24.295,50.404,24.295L50.404,24.295z" fill="#F2F2F2"/>
+<path d="M49.883,38.176c1.586,0.07,3.212-0.18,4.787-0.791c6.063-2.355,9.07-9.181,6.716-15.243 c-1.888-4.86-6.646-7.756-11.581-7.503L49.883,38.176z M51.551,29.352c-1.628,0.633-3.459-0.174-4.092-1.801 c-0.632-1.627,0.176-3.459,1.803-4.092c1.627-0.631,3.458,0.176,4.091,1.802C53.985,26.889,53.179,28.721,51.551,29.352z" fill="url(#SVGID_2_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="45.5869" x2="54.5387" y1="20.1924" y2="31.7645">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="0.546" style="stop-color:#B2B2B2"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M50.402,15.176c-6.208,0-11.24,5.033-11.24,11.241s5.032,11.241,11.24,11.241 s11.24-5.033,11.24-11.241S56.61,15.176,50.402,15.176z M51.135,28.282c-1.035,0.402-2.201-0.112-2.604-1.147 c-0.403-1.036,0.111-2.202,1.147-2.605c1.035-0.402,2.202,0.112,2.604,1.148C52.686,26.713,52.171,27.879,51.135,28.282z" fill="url(#SVGID_3_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="57.3125" x2="57.6039" y1="29.4717" y2="26.0613">
+<stop offset="0" style="stop-color:#EEE3B1;stop-opacity:0.5918"/>
+<stop offset="1" style="stop-color:#D8A9A9;stop-opacity:0.57"/>
+</linearGradient>
+<path d="M61.643,26.417c0-0.136-0.005-0.269-0.011-0.401l-8.021,0.289c0.027,0.516-0.106,0.985-0.253,1.334 l7.539,2.805C61.377,29.193,61.643,27.836,61.643,26.417z" fill="url(#SVGID_4_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5_" x1="55.5752" x2="58.5098" y1="31.2334" y2="28.1805">
+<stop offset="0" style="stop-color:#B7B4E6;stop-opacity:0"/>
+<stop offset="0.1879" style="stop-color:#B7B4E6;stop-opacity:0.5"/>
+<stop offset="0.4036" style="stop-color:#BAEABA;stop-opacity:0.75"/>
+<stop offset="0.9036" style="stop-color:#BAEABA;stop-opacity:0.247"/>
+<stop offset="1" style="stop-color:#BAEABA;stop-opacity:0"/>
+</linearGradient>
+<path d="M61.069,29.961l-7.635-2.525c-0.135,0.378-0.302,0.658-0.37,0.763l5.303,6.149 C59.582,33.129,60.515,31.632,61.069,29.961z" fill="url(#SVGID_5_)"/>
+<path d="M53.827,25.077c-0.734-1.89-2.86-2.827-4.75-2.093s-2.826,2.86-2.093,4.75s2.861,2.827,4.75,2.093 C53.625,29.094,54.562,26.967,53.827,25.077z M51.485,29.182c-1.533,0.596-3.259-0.166-3.854-1.697 c-0.596-1.533,0.166-3.26,1.697-3.855c1.534-0.595,3.259,0.166,3.854,1.699C53.778,26.859,53.018,28.586,51.485,29.182z" fill="url(#SVGID_6_)"/>
+<path d="M53.282,25.289c-0.617-1.59-2.405-2.377-3.993-1.76c-1.589,0.617-2.377,2.405-1.76,3.994 c0.617,1.588,2.405,2.376,3.994,1.759S53.899,26.877,53.282,25.289z M51.055,28.078c-0.209,0.081-0.427,0.122-0.648,0.122 c-0.746,0-1.402-0.449-1.672-1.145c-0.174-0.446,0.575-2.148,1.021-2.321c0.21-0.082,0.429-0.123,0.65-0.123 c0.745,0,1.402,0.449,1.672,1.145C52.436,26.678,51.977,27.72,51.055,28.078z" fill="url(#SVGID_7_)"/>
+<linearGradient gradientTransform="matrix(-0.0913 -0.2351 0.2351 -0.0913 -494.9365 2956.155)" gradientUnits="userSpaceOnUse" id="SVGID_8_" x1="10037.0195" x2="10053.5957" y1="6220.8838" y2="6220.8838">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="0.5401" style="stop-color:#B3B3B3"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M53.527,25.193c-0.67-1.724-2.61-2.578-4.334-1.908c-1.724,0.669-2.577,2.609-1.909,4.332 c0.67,1.725,2.61,2.578,4.334,1.91C53.342,28.857,54.196,26.917,53.527,25.193z M51.417,29.01c-1.438,0.559-3.057-0.154-3.615-1.592 c-0.559-1.439,0.154-3.059,1.593-3.616c1.438-0.56,3.058,0.154,3.616,1.593C53.568,26.833,52.855,28.451,51.417,29.01z" fill="url(#SVGID_8_)"/>
+<path d="M49.756,24.734c0.21-0.082,0.429-0.123,0.65-0.123c0.581,0,1.102,0.279,1.434,0.729V13.902 c-0.473-0.053-2.006-0.079-2.289-0.06l0.08,25.132c0.258,0.016,1.734-0.014,2.209-0.068V27.475 c-0.194,0.262-0.459,0.477-0.785,0.604c-0.209,0.081-0.427,0.122-0.648,0.122c-0.187,0-0.367-0.028-0.539-0.081L49.756,24.734z" fill-opacity="0.1" stroke-opacity="0.1"/>
+<path d="M49.756,24.734c0.21-0.082,0.429-0.123,0.65-0.123c0.341,0,0.658,0.104,0.934,0.272V13.849 c-0.31-0.022-1.282-0.032-1.455-0.024l-0.254,25.15c0.258,0.016,1.399,0.003,1.709-0.021V27.933 c-0.09,0.056-0.184,0.106-0.285,0.146c-0.209,0.081-0.427,0.122-0.648,0.122c-0.186,0-0.365-0.028-0.534-0.08L49.756,24.734z" fill-opacity="0.1" stroke-opacity="0.1"/>
+<path d="M49.799,38.982c0.202,0.01,0.897,0,1.041-0.005V28.14c-0.143,0.036-0.286,0.061-0.434,0.061 c-0.186,0-0.365-0.028-0.534-0.08c-0.514-0.157-0.935-0.542-1.138-1.064c-0.174-0.446-0.163-0.935,0.03-1.373 c0.192-0.438,0.545-0.775,0.991-0.948c0.099-0.039,0.199-0.068,0.302-0.089c0.114-0.022,0.231-0.034,0.349-0.034 c0.15,0,0.293,0.03,0.434,0.065V13.83c-0.146-0.005-0.782-0.014-0.955-0.006L49.799,38.982z" fill-opacity="0.3" stroke-opacity="0.3"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_9_" x1="28.0747" x2="28.0747" y1="1.3354" y2="49.4483">
+<stop offset="0" style="stop-color:#E6E6E6"/>
+<stop offset="1" style="stop-color:#808080"/>
+</linearGradient>
+<path d="M50.34,39.49c0,1.82-1.477,3.296-3.296,3.296H9.106c-1.821,0-3.296-1.476-3.296-3.296V13.121 c0-1.821,1.475-3.296,3.296-3.296h37.938c1.819,0,3.296,1.475,3.296,3.296V39.49z" fill="url(#SVGID_9_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_10_" x1="5.7827" x2="7.8687" y1="26.3057" y2="26.3057">
+<stop offset="0" style="stop-color:#000000"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M9.106,9.825c-1.821,0-3.296,1.475-3.296,3.296V39.49c0,1.82,1.475,3.296,3.296,3.296 V9.825z" fill="url(#SVGID_10_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_11_" x1="48.4219" x2="50.5078" y1="26.3057" y2="26.3057">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path d="M47.044,9.825v32.961c1.819,0,3.296-1.476,3.296-3.296V13.121 C50.34,11.3,48.863,9.825,47.044,9.825z" fill="url(#SVGID_11_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientTransform="matrix(0 1 -1 0 709.498 -875.5039)" gradientUnits="userSpaceOnUse" id="SVGID_12_" x1="885.5039" x2="887.4564" y1="681.4229" y2="681.4229">
+<stop offset="0" style="stop-color:#000000"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M50.34,13.121c0-1.821-1.475-3.296-3.296-3.296H9.106 c-1.819,0-3.296,1.475-3.296,3.296H50.34z" fill="url(#SVGID_12_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_13_" x1="28.0747" x2="28.0747" y1="8.6724" y2="28.815">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+</linearGradient>
+<path d="M49.34,21.205v-8.084c0-1.266-1.03-2.296-2.296-2.296H9.106 c-1.266,0-2.296,1.03-2.296,2.296v17.393C13.689,26.037,36.434,22.624,49.34,21.205z" fill="url(#SVGID_13_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_14_" x1="28.0435" x2="28.0435" y1="42.6533" y2="39.7841">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+</linearGradient>
+<path d="M48.11,40.039c0,0.91-0.738,1.648-1.648,1.648H9.624 c-0.912,0-1.648-0.738-1.648-1.648l0,0c0-0.909,0.736-1.647,1.648-1.647h36.838C47.372,38.392,48.11,39.13,48.11,40.039 L48.11,40.039z" fill="url(#SVGID_14_)" fill-opacity="0.5" stroke-opacity="0.5"/>
+<path d="M43.166,35.809H13.501c-1.433,0-2.599,1.166-2.599,2.6v4.378h34.862v-4.378 C45.765,36.975,44.599,35.809,43.166,35.809z" fill-opacity="0.1" stroke-opacity="0.1"/>
+<path d="M43.166,36.309H13.501c-1.157,0-2.099,0.941-2.099,2.1v4.378h33.862v-4.378 C45.265,37.25,44.323,36.309,43.166,36.309z" fill-opacity="0.1" stroke-opacity="0.1"/>
+<path d="M43.166,36.809H13.501c-0.882,0-1.599,0.718-1.599,1.6v4.378h32.862v-4.378 C44.765,37.526,44.048,36.809,43.166,36.809z" fill-opacity="0.3" stroke-opacity="0.3"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_15_" x1="28.3335" x2="28.3335" y1="26.687" y2="52.4374">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="0.6688" style="stop-color:#565656"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path d="M44.265,43.9c0,0.604-0.494,1.1-1.099,1.1H13.501c-0.604,0-1.099-0.495-1.099-1.1v-5.492 c0-0.604,0.495-1.1,1.099-1.1h29.665c0.604,0,1.099,0.495,1.099,1.1V43.9z" fill="url(#SVGID_15_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_16_" x1="12.3906" x2="13.2769" y1="41.1543" y2="41.1543">
+<stop offset="0" style="stop-color:#000000"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M13.501,45h0.302v-7.691h-0.302c-0.604,0-1.099,0.495-1.099,1.1V43.9 C12.402,44.505,12.897,45,13.501,45z" fill="url(#SVGID_16_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_17_" x1="43.4502" x2="44.3365" y1="41.1543" y2="41.1543">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path d="M43.166,37.309h-0.302V45h0.302c0.604,0,1.099-0.495,1.099-1.1v-5.492 C44.265,37.804,43.771,37.309,43.166,37.309z" fill="url(#SVGID_17_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_18_" x1="28.3335" x2="28.3335" y1="37.3086" y2="38.466">
+<stop offset="0" style="stop-color:#000000"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M43.166,37.309H13.501c-0.604,0-1.099,0.495-1.099,1.1h31.862 C44.265,37.804,43.771,37.309,43.166,37.309z" fill="url(#SVGID_18_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_19_" x1="28.3335" x2="28.3335" y1="37.793" y2="42.6174">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+</linearGradient>
+<path d="M43.166,38.309H13.501c-0.052,0-0.099,0.047-0.099,0.1v4.616 c5.909-1.655,20.551-2.927,29.862-3.53v-1.086C43.265,38.355,43.218,38.309,43.166,38.309z" fill="url(#SVGID_19_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_20_" x1="28.1343" x2="28.1343" y1="44.5771" y2="43.2538">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+</linearGradient>
+<path d="M42.963,43.468c0,0.386-0.177,0.699-0.865,0.699H14.173 c-0.69,0-0.868-0.313-0.868-0.699l0,0c0-0.388,0.178-0.7,0.868-0.7h27.925C42.786,42.768,42.963,43.08,42.963,43.468L42.963,43.468z " fill="url(#SVGID_20_)" fill-opacity="0.5" stroke-opacity="0.5"/>
+<rect fill="none" height="57" width="67"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/image/qgn_prop_mmc_locked.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="16px" version="1.1" viewBox="0 0 16 16" width="16px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<rect fill="none" height="16" width="16"/>
+<path d="M15.713,4.934L12.87,2.043c-0.185-0.208-0.452-0.34-0.751-0.34c0,0,0,0-0.002,0 H1.824C0.819,1.703,0,2.521,0,3.524v8.648c0,1.008,0.819,1.826,1.824,1.826h3.673v1C5.497,15.553,5.945,16,6.498,16h7.501 c0.553,0,1-0.447,1-1.001v-1.205C15.59,13.491,16,12.882,16,12.173V5.634C16,5.37,15.896,5.12,15.713,4.934z" fill-opacity="0.7" stroke-opacity="0.7"/>
+<linearGradient gradientTransform="matrix(-1 0 0 -1 -1181.5664 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-1189.5679" x2="-1189.5679" y1="9.6611" y2="0.1906">
+<stop offset="0" style="stop-color:#B2B2B2"/>
+<stop offset="1" style="stop-color:#666666"/>
+</linearGradient>
+<path d="M12.119,2.704L12.119,2.704H1.824c-0.452,0-0.823,0.37-0.823,0.822v8.648 c0,0.452,0.371,0.823,0.823,0.823h12.354c0.452,0,0.823-0.371,0.823-0.823V5.635L12.119,2.704z" fill="url(#SVGID_1_)"/>
+<path d="M14.001,7.57h-0.073V5.891c0-1.229-0.974-1.892-1.892-1.892H8.463 c-0.917,0-1.892,0.663-1.892,1.892V7.57H6.499c-0.553,0-1.001,0.448-1.001,1v4.427h8.68c0.452,0,0.823-0.371,0.823-0.823V8.57 C15.001,8.018,14.555,7.57,14.001,7.57z M10.857,7.57H9.643V7.072h1.215V7.57L10.857,7.57z" fill-opacity="0.4" stroke-opacity="0.4"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="10.1123" x2="10.1123" y1="10.6953" y2="2.1215">
+<stop offset="0" style="stop-color:#E3E3E3"/>
+<stop offset="1" style="stop-color:#404040"/>
+</linearGradient>
+<path d="M12.928,9.643h-1.07V6.07H8.643v3.573H7.572v-3.75c0-0.707,0.585-0.893,0.893-0.893h3.572 c0.309,0,0.893,0.186,0.893,0.893v3.75H12.928z" fill="url(#SVGID_2_)"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="10.1113" x2="10.1113" y1="7.2837" y2="0.3186">
+<stop offset="0" style="stop-color:#E6E6E6"/>
+<stop offset="1" style="stop-color:#B2B2B2"/>
+</linearGradient>
+<rect fill="url(#SVGID_3_)" height="6.429" width="7.5" x="6.5" y="8.57"/>
+<path d="M11.32,10.893c0-0.593-0.479-1.072-1.07-1.072S9.18,10.3,9.18,10.893c0,0.396,0.215,0.735,0.534,0.922v1.936h1.072v-1.936 C11.104,11.628,11.32,11.287,11.32,10.893z"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/image/qgn_prop_mmc_memc.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="16px" version="1.1" viewBox="0 0 16 16" width="16px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<rect fill="none" height="16" width="16"/>
+<path d="M15.713,4.934l-2.843-2.89c-0.185-0.208-0.452-0.34-0.751-0.34c0,0,0,0-0.002,0 H1.824C0.819,1.703,0,2.522,0,3.525v8.648C0,13.182,0.819,14,1.824,14h12.352C15.182,14,16,13.182,16,12.174V5.635 C16,5.371,15.896,5.121,15.713,4.934z" fill-opacity="0.7" stroke-opacity="0.7"/>
+<linearGradient gradientTransform="matrix(-1 0 0 -1 -1181.5664 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-1189.5679" x2="-1189.5679" y1="9.6611" y2="0.1897">
+<stop offset="0" style="stop-color:#B2B2B2"/>
+<stop offset="1" style="stop-color:#666666"/>
+</linearGradient>
+<path d="M12.119,2.704L12.119,2.704H1.824c-0.452,0-0.823,0.37-0.823,0.822v8.648 c0,0.453,0.371,0.824,0.823,0.824h12.354c0.452,0,0.823-0.371,0.823-0.824V5.635L12.119,2.704z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="12.2109" x2="12.2109" y1="8.7246" y2="0.6938">
+<stop offset="0" style="stop-color:#FFE23D"/>
+<stop offset="0.2239" style="stop-color:#FAD337"/>
+<stop offset="0.6537" style="stop-color:#EFAB26"/>
+<stop offset="1" style="stop-color:#E48717"/>
+</linearGradient>
+<path d="M11.32,11.762h2.06v-1.234h-2.06V11.762z M11.32,9.703h2.06V8.469h-2.06V9.703z M11.32,6.408v1.236 h2.06V6.408H11.32z" fill="url(#SVGID_2_)"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/image/qgn_prop_phone_memc.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="16px" version="1.1" viewBox="0 0 16 16" width="16px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<polygon fill="none" points="16,16 0.008,16 0,0 15.992,0 "/>
+<path d="M5,0C3.897,0,3,0.896,3,2v11c0,1.104,0.897,2,2,2h6 c1.104,0,2-0.896,2-2V2c0-1.104-0.896-2-2-2H5z" fill="#030303" fill-opacity="0.7" stroke-opacity="0.7"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="7.8623" x2="7.8623" y1="15.2266" y2="-1.9516">
+<stop offset="0" style="stop-color:#3687FF"/>
+<stop offset="1" style="stop-color:#051F7D"/>
+</linearGradient>
+<path d="M5,1C4.448,1,4,1.447,4,2v11c0,0.553,0.448,1,1,1h6c0.553,0,1-0.447,1-1V2c0-0.553-0.447-1-1-1H5z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="7.8623" x2="7.8623" y1="15.9453" y2="-0.4995">
+<stop offset="0" style="stop-color:#F2F2F2"/>
+<stop offset="0.1364" style="stop-color:#E4EDF0"/>
+<stop offset="0.3929" style="stop-color:#C0DFEB"/>
+<stop offset="0.7391" style="stop-color:#86C8E3"/>
+<stop offset="0.9945" style="stop-color:#57B6DD"/>
+<stop offset="1" style="stop-color:#57B6DD"/>
+</linearGradient>
+<rect fill="url(#SVGID_2_)" height="8" width="6" x="5" y="2"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="7.8623" x2="7.8623" y1="3.8335" y2="1.8335">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#B2B2B2"/>
+</linearGradient>
+<rect fill="url(#SVGID_3_)" height="2" width="2" x="7" y="11"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/image/qgn_prop_usb_memc.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="16px" version="1.1" viewBox="0 0 16 16" width="16px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<path d="M16,4h-4V3H2.769C1.24,3,0,5.239,0,8c0,2.762,1.24,5,2.769,5H12 v-1h4V4z" fill="#030303" fill-opacity="0.7" stroke-opacity="0.7"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="13.8613" x2="13.8613" y1="9.834" y2="5.9063">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#B2B2C9"/>
+</linearGradient>
+<rect fill="url(#SVGID_1_)" height="2" width="2" x="13" y="5"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="13.8613" x2="13.8613" y1="5.8335" y2="1.9049">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#B2B2C9"/>
+</linearGradient>
+<rect fill="url(#SVGID_2_)" height="2" width="2" x="13" y="9"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="5.8623" x2="5.8623" y1="10.834" y2="-4.8804">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#B2B2C9"/>
+</linearGradient>
+<path d="M2.818,4C1.959,4,1,5.71,1,8c0,2.289,0.959,4,1.818,4H11V4H2.818z" fill="url(#SVGID_3_)"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="5.7031" x2="5.7031" y1="9.6699" y2="3.834">
+<stop offset="0" style="stop-color:#5487E3"/>
+<stop offset="1" style="stop-color:#051F7D"/>
+</linearGradient>
+<path d="M8.445,8.869V8.376H5.513l1.219,1.836h0.517V9.854H8.45V11H7.249v-0.252h-0.65L4.856,8.376h-1.33 c-0.097,0.369-0.396,0.64-0.747,0.64C2.348,9.016,2,8.616,2,8.122C2,7.63,2.348,7.229,2.777,7.229c0.347,0,0.638,0.256,0.741,0.609 h0.599l1.582-2.275l0.96-0.015C6.757,5.32,6.961,5.165,7.194,5.165c0.501,0,0.702,0.309,0.702,0.688 c0,0.381-0.189,0.688-0.702,0.689c-0.26,0-0.48-0.194-0.564-0.459H6.027l-1.25,1.754h3.667V7.226l1.238,0.823L8.445,8.869z" fill="url(#SVGID_4_)"/>
+<rect fill="none" height="16" width="16"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/image/qtg_indi_status_back.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="36px" height="36px" viewBox="0 0 36 36" enable-background="new 0 0 36 36" xml:space="preserve">
+<defs>
+</defs>
+<path fill="#FFFFFF" d="M2.631,9.923l9.245-7.078c0.286-0.164,0.637-0.164,0.923,0c0.285,0.166,0.461,0.471,0.461,0.801v4.633h7.069
+ c7.455,0.001,13.498,5.043,13.501,12.498c-0.003,7.459-6.046,12.498-13.501,12.502c0,0-0.604,0-1.207,0s-1-0.473-1-1.129
+ c0-0.654,0-2.432,0-2.871s0.493-1.002,1-1.002s2.207,0,2.207,0c4.137-0.008,7.492-3.361,7.499-7.5
+ c-0.007-4.139-3.362-7.493-7.499-7.5H13.26V17.8c0,0.33-0.176,0.635-0.461,0.799c-0.286,0.164-0.637,0.166-0.923,0l-9.245-7.078
+ c-0.285-0.164-0.461-0.469-0.461-0.799C2.17,10.394,2.346,10.089,2.631,9.923z"/>
+<rect fill-rule="evenodd" clip-rule="evenodd" fill="none" width="36" height="36"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/resources/hblistviewitem.css Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,57 @@
+
+HbListViewItem[layoutName="drive"]:portrait{
+ layout: drive-portrait;
+}
+
+
+HbListViewItem[layoutName="drive"]:landscape{
+ layout: drive-landscape;
+}
+
+HbListViewItem::text-1[layoutName="drive"]:portrait{
+ top: -var(hb-param-margin-gene-middle-vertical);
+ font-variant: primary;
+ text-align: left;
+}
+
+HbListViewItem::text-2[layoutName="drive"]:portrait{
+ font-variant: secondary;
+ text-align: left;
+}
+HbListViewItem::text-3[layoutName="drive"]:portrait{
+ bottom: var(hb-param-margin-gene-middle-vertical);
+ font-variant: secondary-small;
+ text-align: left;
+}
+HbListViewItem::icon-1[layoutName="drive"]:portrait{
+ top: -var(hb-param-margin-gene-top);
+ left: -var(hb-param-margin-gene-middle-horizontal);
+
+ fixed-height: var(hb-param-graphic-size-primary-large);
+ fixed-width: var(hb-param-graphic-size-primary-large);
+}
+
+HbListViewItem::text-1[layoutName="drive"]:landscape{
+ top: -var(hb-param-margin-gene-top);
+ font-variant: primary;
+ text-align: left;
+}
+
+HbListViewItem::text-2[layoutName="drive"]:landscape {
+ top: -var(hb-param-margin-gene-top);
+ font-variant: secondary;
+ text-align: left;
+}
+HbListViewItem::text-3[layoutName="drive"]:landscape{
+ bottom: var(hb-param-margin-gene-top);
+ font-variant: secondary-small;
+ text-align: left;
+}
+HbListViewItem::icon-1[layoutName="drive"]:landscape{
+ top: -var(hb-param-margin-gene-top);
+ left: -var(hb-param-margin-gene-middle-horizontal);
+ bottom: var(hb-param-margin-gene-bottom);
+ fixed-height: var(hb-param-graphic-size-primary-large);
+ fixed-width: var(hb-param-graphic-size-primary-large);
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/resources/hblistviewitem.widgetml Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,46 @@
+<hbwidget version="0.1" type="HbListViewItem">
+ <layout name="drive-portrait" type="mesh">
+
+ <meshitem src="icon-1" srcEdge="LEFT" dst="" dstEdge="LEFT" />
+ <meshitem src="icon-1" srcEdge="TOP" dst="" dstEdge="TOP" />
+
+
+ <meshitem src="text-1" srcEdge="LEFT" dst="icon-1" dstEdge="RIGHT" />
+ <meshitem src="text-1" srcEdge="TOP" dst="" dstEdge="TOP" />
+ <meshitem src="text-1" srcEdge="RIGHT" dst="" dstEdge="RIGHT" />
+
+
+ <meshitem src="text-2" srcEdge="LEFT" dst="text-1" dstEdge="LEFT" />
+ <meshitem src="text-2" srcEdge="TOP" dst="text-1" dstEdge="BOTTOM" />
+ <meshitem src="text-2" srcEdge="RIGHT" dst="" dstEdge="RIGHT" />
+
+
+ <meshitem src="text-3" srcEdge="LEFT" dst="text-1" dstEdge="LEFT" />
+ <meshitem src="text-3" srcEdge="TOP" dst="text-2" dstEdge="BOTTOM" />
+ <meshitem src="text-3" srcEdge="RIGHT" dst="" dstEdge="RIGHT" />
+ <meshitem src="text-3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" />
+
+
+ </layout>
+ <layout name="drive-landscape" type="mesh">
+
+ <meshitem src="icon-1" srcEdge="LEFT" dst="" dstEdge="LEFT" />
+ <meshitem src="icon-1" srcEdge="TOP" dst="" dstEdge="TOP" />
+
+
+ <meshitem src="text-1" srcEdge="LEFT" dst="icon-1" dstEdge="RIGHT" spacing ="-3un"/>
+ <meshitem src="text-1" srcEdge="TOP" dst="" dstEdge="TOP" />
+
+
+ <meshitem src="text-2" srcEdge="LEFT" dst="text-1" dstEdge="RIGHT" spacing ="-4un"/>
+ <meshitem src="text-2" srcEdge="TOP" dst="" dstEdge="TOP" />
+ <meshitem src="text-2" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing ="20un"/>
+
+
+ <meshitem src="text-3" srcEdge="LEFT" dst="text-2" dstEdge="LEFT" />
+ <meshitem src="text-3" srcEdge="TOP" dst="text-2" dstEdge="BOTTOM" />
+ <meshitem src="text-3" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing ="20un"/>
+ <meshitem src="text-3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" />
+
+ </layout>
+</hbwidget>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/resources/qtg_large_filemgr.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="60" viewBox="0 0 60 60" width="60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g>
+<rect fill="none" height="60" width="60"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="30" x2="30" y1="2.9995" y2="57.1831">
+<stop offset="0" style="stop-color:#989C9E"/>
+<stop offset="0.8182" style="stop-color:#44454A"/>
+<stop offset="1" style="stop-color:#5D5F63"/>
+</linearGradient>
+<path d="M53.578,55.479c0,0.839-0.68,1.521-1.521,1.521H7.943c-0.84,0-1.521-0.681-1.521-1.521V4.521 C6.422,3.68,7.104,3,7.943,3h44.113c0.842,0,1.521,0.681,1.521,1.521V55.479z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="30" x2="30" y1="2.9995" y2="57.1831">
+<stop offset="0" style="stop-color:#D8DDE0"/>
+<stop offset="0.8182" style="stop-color:#5F6169"/>
+<stop offset="1" style="stop-color:#7D7F85"/>
+</linearGradient>
+<path d="M52.057,3H7.943C7.104,3,6.422,3.68,6.422,4.521v50.958C6.422,56.318,7.104,57,7.943,57h44.113 c0.842,0,1.521-0.681,1.521-1.521V4.521C53.578,3.68,52.898,3,52.057,3z M52.816,55.479c0,0.419-0.34,0.76-0.76,0.76H7.943 c-0.42,0-0.76-0.341-0.76-0.76V4.521c0-0.42,0.34-0.76,0.76-0.76h44.113c0.42,0,0.76,0.34,0.76,0.76V55.479z" fill="url(#SVGID_2_)"/>
+<path d="M49.773,26.578c0,0.839-0.68,1.521-1.52,1.521H11.746c-0.84,0-1.52-0.682-1.52-1.521V8.323 c0-0.84,0.68-1.521,1.52-1.521h36.508c0.84,0,1.52,0.68,1.52,1.521V26.578z" fill="url(#SVGID_3_)"/>
+<path d="M11.746,28.859c-1.258,0-2.281-1.023-2.281-2.281V8.323c0-1.258,1.023-2.281,2.281-2.281 h36.508c1.258,0,2.281,1.023,2.281,2.281v18.254c0,1.258-1.023,2.281-2.281,2.281H11.746z" fill="#020202" fill-opacity="0.2" stroke-opacity="0.2"/>
+<path d="M49.773,26.578c0,0.839-0.68,1.521-1.52,1.521H11.746c-0.84,0-1.52-0.682-1.52-1.521V8.323 c0-0.84,0.68-1.521,1.52-1.521h36.508c0.84,0,1.52,0.68,1.52,1.521V26.578z" fill="url(#SVGID_3_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5_" x1="30" x2="30" y1="14.4082" y2="22.0395">
+<stop offset="0" style="stop-color:#5B5B5B"/>
+<stop offset="1" style="stop-color:#B0B0B0"/>
+</linearGradient>
+<rect fill="url(#SVGID_5_)" height="7.605" width="12.168" x="23.916" y="14.408"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_6_" x1="30" x2="30" y1="15.1685" y2="21.2736">
+<stop offset="0" style="stop-color:#E8E8E8"/>
+<stop offset="1" style="stop-color:#828282"/>
+</linearGradient>
+<rect fill="url(#SVGID_6_)" height="6.084" width="10.648" x="24.676" y="15.168"/>
+<path d="M48.254,6.803H11.746c-0.84,0-1.52,0.68-1.52,1.521v18.254c0,0.839,0.68,1.521,1.52,1.521 h36.508c0.84,0,1.52-0.682,1.52-1.521V8.323C49.773,7.483,49.094,6.803,48.254,6.803z M49.014,26.578c0,0.418-0.34,0.761-0.76,0.761 H11.746c-0.42,0-0.76-0.342-0.76-0.761V8.323c0-0.419,0.34-0.76,0.76-0.76h36.508c0.42,0,0.76,0.34,0.76,0.76V26.578z" fill="#FFFFFF" fill-opacity="0.5" stroke-opacity="0.5"/>
+<polygon fill="#FFFFFF" fill-opacity="0.6" points="23.916,22.014 36.084,22.014 35.324,21.253 23.916,21.253 " stroke-opacity="0.6"/>
+<path d="M10.227,36.464v-15.12c0-1.757,1.346-3.133,3.066-3.133h13.936 c2.424,0,2.928,2.088,3.094,2.775l-0.025,0.006c0.133,0.336,0.297,0.863,0.549,1.69c0.023,0.003,0.049,0.005,0.074,0.005 l15.703-0.001c1.738,0,3.15,1.404,3.15,3.131v10.647H10.227z" fill="#020202" fill-opacity="0.2" stroke-opacity="0.2"/>
+<path d="M10.986,35.704v-14.36c0-1.331,1.012-2.373,2.307-2.373h13.936 c1.824,0,2.182,1.479,2.354,2.193c0,0,0.408,1.323,0.633,2.06c0.1,0.144,0.43,0.223,0.705,0.223l15.703-0.002 c1.318,0,2.391,1.064,2.391,2.371v9.887H10.986z" fill="#020202" fill-opacity="0.3" stroke-opacity="0.3"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_7_" x1="30" x2="30" y1="18.1982" y2="34.3475">
+<stop offset="0" style="stop-color:#FEEFA7"/>
+<stop offset="0.3273" style="stop-color:#FEE570"/>
+<stop offset="0.6485" style="stop-color:#F0C12B"/>
+<stop offset="1" style="stop-color:#E6A501"/>
+</linearGradient>
+<path d="M46.623,23.446H30.992c0,0-1.135,0.069-1.484-0.693c-0.221-0.728-0.666-2.17-0.666-2.17 c-0.219-0.919-0.506-1.611-1.613-1.611H13.293c-0.881,0-1.547,0.722-1.547,1.611v13.6h36.508v-9.126 C48.254,24.168,47.502,23.446,46.623,23.446z" fill="url(#SVGID_7_)"/>
+<path d="M46.623,23.446H30.992c0,0-1.135,0.069-1.484-0.693c-0.221-0.728-0.666-2.17-0.666-2.17 c-0.219-0.919-0.506-1.611-1.613-1.611H13.293c-0.881,0-1.547,0.722-1.547,1.611v0.761c0-0.89,0.666-1.612,1.547-1.612h13.936 c1.107,0,1.395,0.693,1.613,1.612c0,0,0.445,1.44,0.666,2.17c0.35,0.76,1.484,0.692,1.484,0.692h15.631 c0.879,0,1.631,0.722,1.631,1.61v-0.761C48.254,24.168,47.502,23.446,46.623,23.446z" fill="#FCF3D0" fill-opacity="0.8" stroke-opacity="0.8"/>
+<path d="M50.535,52.436c0,0.839-0.682,1.521-1.521,1.521H10.986c-0.84,0-1.521-0.682-1.521-1.521V33.421 c0-0.84,0.682-1.52,1.521-1.52h38.027c0.84,0,1.521,0.68,1.521,1.52V52.436z" fill="url(#SVGID_8_)"/>
+<path d="M10.986,56.239c-1.678,0-3.043-1.365-3.043-3.042V34.183c0-1.678,1.365-3.042,3.043-3.042 h38.027c1.678,0,3.043,1.364,3.043,3.042v19.014c0,1.677-1.365,3.042-3.043,3.042H10.986z" fill="#020202" fill-opacity="0.2" stroke-opacity="0.2"/>
+<path d="M10.986,55.479c-1.26,0-2.283-1.023-2.283-2.282V34.183c0-1.258,1.023-2.281,2.283-2.281 h38.027c1.258,0,2.283,1.023,2.283,2.281v19.014c0,1.259-1.025,2.282-2.283,2.282H10.986z" fill="#020202" fill-opacity="0.3" stroke-opacity="0.3"/>
+<path d="M50.535,52.436c0,0.839-0.682,1.521-1.521,1.521H10.986c-0.84,0-1.521-0.682-1.521-1.521V33.421 c0-0.84,0.682-1.52,1.521-1.52h38.027c0.84,0,1.521,0.68,1.521,1.52V52.436z" fill="url(#SVGID_8_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_10_" x1="30" x2="30" y1="40.2671" y2="48.6622">
+<stop offset="0" style="stop-color:#5B5B5B"/>
+<stop offset="1" style="stop-color:#B0B0B0"/>
+</linearGradient>
+<rect fill="url(#SVGID_10_)" height="8.367" width="13.691" x="23.154" y="40.267"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_11_" x1="30" x2="30" y1="41.0278" y2="47.8963">
+<stop offset="0" style="stop-color:#E8E8E8"/>
+<stop offset="1" style="stop-color:#828282"/>
+</linearGradient>
+<rect fill="url(#SVGID_11_)" height="6.845" width="12.168" x="23.916" y="41.028"/>
+<path d="M49.014,31.901H10.986c-0.84,0-1.521,0.68-1.521,1.52v19.015c0,0.839,0.682,1.521,1.521,1.521 h38.027c0.84,0,1.521-0.682,1.521-1.521V33.421C50.535,32.581,49.854,31.901,49.014,31.901z M49.773,52.436 c0,0.419-0.34,0.761-0.76,0.761H10.986c-0.42,0-0.76-0.341-0.76-0.761V33.421c0-0.419,0.34-0.759,0.76-0.759h38.027 c0.42,0,0.76,0.34,0.76,0.759V52.436z" fill="#FFFFFF" fill-opacity="0.5" stroke-opacity="0.5"/>
+<polygon fill="#FFFFFF" points="20.814,31.901 22.639,37.226 37.359,37.226 39.184,31.901 "/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_12_" x1="30" x2="30" y1="31.9014" y2="36.4799">
+<stop offset="0" style="stop-color:#989C9E"/>
+<stop offset="0.8182" style="stop-color:#44454A"/>
+<stop offset="1" style="stop-color:#5D5F63"/>
+</linearGradient>
+<polygon fill="url(#SVGID_12_)" points="36.846,36.464 23.154,36.464 21.635,31.901 38.365,31.901 "/>
+<polygon fill="#FFFFFF" points="21.576,6.803 23.4,11.366 36.6,11.366 38.424,6.803 "/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_13_" x1="30" x2="30" y1="6.8027" y2="10.6184">
+<stop offset="0" style="stop-color:#989C9E"/>
+<stop offset="0.8182" style="stop-color:#44454A"/>
+<stop offset="1" style="stop-color:#5D5F63"/>
+</linearGradient>
+<polygon fill="url(#SVGID_13_)" points="36.084,10.605 23.916,10.605 22.395,6.803 37.605,6.803 "/>
+<rect fill="#020202" fill-opacity="0.2" height="1.522" stroke-opacity="0.2" width="36.508" x="11.746" y="30.379"/>
+<rect fill="#020202" fill-opacity="0.1" height="0.76" stroke-opacity="0.1" width="36.508" x="11.746" y="29.62"/>
+<rect fill="#020202" fill-opacity="0.05" height="0.761" stroke-opacity="0.05" width="36.508" x="11.746" y="28.859"/>
+<polygon fill="#FFFFFF" fill-opacity="0.8" points="36.846,48.634 23.154,48.634 23.916,47.873 36.084,47.873 " stroke-opacity="0.8"/>
+<rect fill="none" height="60" width="60"/>
+<defs>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="30" x2="30" y1="6.8027" y2="28.1705">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="0.7879" style="stop-color:#A6A6A6"/>
+<stop offset="1" style="stop-color:#B1B1B1"/>
+</linearGradient>
+</defs>
+<defs>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_8_" x1="30" x2="30" y1="31.9014" y2="54.0325">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="0.7879" style="stop-color:#A6A6A6"/>
+<stop offset="1" style="stop-color:#B1B1B1"/>
+</linearGradient>
+</defs>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmbackupconfigloader.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,261 @@
+/*
+ * 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 "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:
+ * The source file of the back up config loader of file manager
+ */
+
+#include "fmbackupconfigloader.h"
+#include "fmbkupengine.h"
+#include "fmbkupcommon.h"
+#include "fmutils.h"
+
+#include <QFile>
+#include <QByteArray>
+#include <QCoreApplication>
+
+FmBackupConfigLoader::FmBackupConfigLoader(void)
+{
+
+}
+
+FmBackupConfigLoader::~FmBackupConfigLoader(void)
+{
+ /*
+ if( mProgressDialog )
+ delete mProgressDialog;
+ */
+}
+
+void FmBackupConfigLoader::loadData()
+{
+ if( mDrivesAndOperationList.count() != 0 || mBackupCategoryList.count() != 0 ) {
+ return;
+ }
+
+ QString path = QCoreApplication::applicationDirPath ();
+ path = FmUtils::getBurConfigPath( path );
+ QFile file( path );
+ if( !file.exists() ) {
+ Q_ASSERT( false );
+ return;
+ }
+ if( !file.open( QIODevice::ReadOnly ) ) {
+ Q_ASSERT( false );
+ return;
+ }
+ QByteArray data = file.readAll();
+ xml.clear();
+ xml.addData(data);
+ file.close();
+ parseXml();
+
+// mBackupSettings->load();
+}
+
+QList<FmBkupDrivesAndOperation* > FmBackupConfigLoader::driversAndOperationList()
+{
+ loadData();
+ return mDrivesAndOperationList;
+}
+QList<FmBkupBackupCategory*> FmBackupConfigLoader::backupCategoryList()
+{
+ loadData();
+ return mBackupCategoryList;
+}
+
+void FmBackupConfigLoader::parseXml()
+{
+ while(!xml.atEnd()){
+ xml.readNext();
+ if( xml.isStartElement() ){
+ currentTag = xml.name().toString();
+ if( xml.name() == "drivesAndOperation" ){
+ parseDrivesAndOperation();
+ }
+ else if( xml.name() == "backupCategory" ){
+ parseBackupCategory();
+ }
+ }
+ }
+ if (xml.error() && xml.error() != QXmlStreamReader::PrematureEndOfDocumentError) {
+ qDebug("XML ERROR: %d :%s"), xml.lineNumber() ,xml.errorString().toAscii().data();
+ }
+}
+
+
+void FmBackupConfigLoader::parseDrivesAndOperation()
+{
+ FmBkupDrivesAndOperation* driversAndOperation =
+ new FmBkupDrivesAndOperation;
+
+ while( !( xml.isEndElement() && xml.name() == "drivesAndOperation" ) )
+ {
+ xml.readNext();
+ currentTag = xml.name().toString();
+ if( xml.name() == "drive" )
+ {
+ driveString = xml.readElementText();
+ }
+ else if( xml.name() == "type" )
+ {
+ typeString = xml.readElementText();
+ }
+ }
+
+ bool ok = false;
+ bool everyParamOk = true;
+
+ unsigned int driveInt =
+ ConfigStringConverter::drivesAndOperations_DriveToUInt( &ok, driveString );
+ if( !ok ){
+ everyParamOk = false;
+ }
+
+ unsigned int typeInt =
+ ConfigStringConverter::drivesAndOperations_TypeToUInt( &ok, typeString );
+ if( !ok ){
+ everyParamOk = false;
+ }
+
+ if( everyParamOk ){
+ driversAndOperation->setDrvCategories( driveInt );
+ driversAndOperation->setOwnerDataType( typeInt );
+ mDrivesAndOperationList.append(driversAndOperation);
+ }
+ else{
+ delete driversAndOperation;
+ }
+
+ QString debugString;
+ debugString = debugString + "drive = " + driveString;
+ debugString = debugString + "\n type = " + typeString;
+ //QMessageBox::notifyation( NULL, "drive&Type = ", debugString, QMessageBox::Ok, QMessageBox::NoButton );
+
+ driveString.clear();
+ typeString.clear();
+}
+
+void FmBackupConfigLoader::parseBackupCategory()
+{
+ FmBkupBackupCategory* backupCategory =
+ new FmBkupBackupCategory();
+
+ while( !( xml.isEndElement() && xml.name() == "backupCategory" ) )
+ {
+ xml.readNext();
+ currentTag = xml.name().toString();
+ if( xml.name() == "category" )
+ {
+ categoryString = xml.readElementText();
+ }
+ else if( xml.name() == "archive_name" )
+ {
+ archive_nameString = xml.readElementText();
+ }
+ else if( xml.name() == "special_flags" )
+ {
+ special_flagsString = xml.readElementText();
+ }
+ else if( xml.name() == "exclude_special_flags" )
+ {
+ exclude_special_flagsString = xml.readElementText();
+ }
+ else if( xml.name() == "uids" ){
+ QString tempString = xml.readElementText();
+ if( tempString.length()>0 ){
+ /// debug-----------
+ uidsString += '|';
+ uidsString += tempString;
+ /// debug-----------
+
+ bool ok = false;
+ unsigned int value = tempString.toUInt( &ok, 16);
+ if( ok ){
+ backupCategory->addUids( value );
+ }
+ }
+ }
+ else if( xml.name() == "exclude_uids" ){
+ QString tempString = xml.readElementText();
+ if( tempString.length()>0 ){
+ /// debug-----------
+ exclude_uidsString += '|';
+ exclude_uidsString += tempString;
+ /// debug-----------
+
+ bool ok = false;
+ unsigned int value = tempString.toUInt( &ok, 16);
+ if( ok ){
+ backupCategory->addExclude_uids( value );
+ }
+ }
+ }
+ }
+
+
+ bool ok = false;
+ bool everyParamOk = true;
+
+ unsigned int categoryInt =
+ ConfigStringConverter::backupCategory_CategoryToUInt( &ok, categoryString );
+ if( !ok ){
+ everyParamOk = false;
+ }
+
+ if( archive_nameString.length() <= 0 ){
+ everyParamOk = false;
+ }
+
+ unsigned int special_flagsInt =
+ ConfigStringConverter::backupCategory_Special_flagsToUInt( &ok, special_flagsString );
+ if( !ok ){
+ everyParamOk = false;
+ }
+
+ unsigned int exclude_special_flagsInt =
+ ConfigStringConverter::backupCategory_Special_flagsToUInt( &ok, exclude_special_flagsString );
+ if( !ok ){
+ everyParamOk = false;
+ }
+
+ if( everyParamOk ){
+ backupCategory->setCategory( categoryInt );
+ backupCategory->setArchive_name( archive_nameString );
+ backupCategory->setSpecial_flags( special_flagsInt );
+ backupCategory->setExclude_special_flags( exclude_special_flagsInt );
+ mBackupCategoryList.append( backupCategory );
+ }
+ else{
+ delete backupCategory;
+ }
+
+ QString debugString;
+ debugString = debugString + "category = " + categoryString;
+ debugString = debugString + "\n archive_name = " + archive_nameString;
+ debugString = debugString + "\n special_flags = " + special_flagsString;
+ debugString = debugString + "\n exclude_special_flags = " + special_flagsString;
+ debugString = debugString + "\n exclude_special_flags = " + exclude_special_flagsString;
+ debugString = debugString + "\n uids = " + uidsString;
+ debugString = debugString + "\n exclude_uids = " + exclude_uidsString;
+ //QMessageBox::notifyation( NULL, "category = ", debugString, QMessageBox::Ok, QMessageBox::NoButton );
+
+ categoryString.clear();
+ archive_nameString.clear();
+ special_flagsString.clear();
+ exclude_special_flagsString.clear();
+ uidsString.clear();
+ exclude_uidsString.clear();
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmbackupconfigloader.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,71 @@
+/*
+ * 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 "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:
+ * The header file of the back up config loader of file manager
+ */
+
+#ifndef FMBACKUPCONFIGLOADER_H
+#define FMBACKUPCONFIGLOADER_H
+
+#include <QXmlStreamReader>
+#include <QString>
+
+#include "fmcommon.h"
+
+class FmBkupDrivesAndOperation;
+class FmBkupBackupCategory;
+class FmBackupSettings;
+
+class FmBackupConfigLoader : public QObject
+{
+Q_OBJECT
+
+public:
+ FmBackupConfigLoader(void);
+ ~FmBackupConfigLoader(void);
+
+public:
+ void loadData();
+ QList<FmBkupDrivesAndOperation* > driversAndOperationList();
+ QList<FmBkupBackupCategory*> backupCategoryList();
+
+private:
+ void parseXml();
+ void parseDrivesAndOperation();
+ void parseBackupCategory();
+
+private:
+
+ QXmlStreamReader xml;
+
+ QString currentTag;
+
+ QString driveString;
+ QString typeString;
+
+ QString categoryString;
+ QString archive_nameString;
+ QString special_flagsString;
+ QString exclude_special_flagsString;
+ QString uidsString;
+ QString exclude_uidsString;
+
+ QList<FmBkupDrivesAndOperation* > mDrivesAndOperationList;
+ QList<FmBkupBackupCategory*> mBackupCategoryList;
+};
+
+#endif
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmbackuprestorehandler.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,155 @@
+/*
+ * 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 "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:
+ * The source file of backup and restore handler of file manager
+ */
+
+#include "fmbackuprestorehandler.h"
+#include "fmbackupsettings.h"
+#include "fmrestoresettings.h"
+#include "fmoperationservice.h"
+#include "fmbackupconfigloader.h"
+#include "fmbkupengine.h"
+#include "fmoperationbase.h"
+#include "fmcommon.h"
+#include "fmdlgutils.h"
+
+FmBackupRestoreHandler::FmBackupRestoreHandler( QObject *parent ) : QObject( parent ), mBackupConfigLoader( 0 )
+{
+ mBkupEngine = new FmBkupEngine( this );
+
+ mCurrentProcess = ProcessNone;
+
+ connect( mBkupEngine, SIGNAL( notifyPreparing( bool ) ), this, SLOT( onNotifyPreparing( bool ) ), Qt::QueuedConnection );
+ connect( mBkupEngine, SIGNAL( notifyStart( bool, int) ), this, SLOT( onNotifyStart( bool, int ) ), Qt::QueuedConnection );
+ connect( mBkupEngine, SIGNAL( notifyUpdate(int) ), this, SLOT( onNotifyUpdate(int) ), Qt::QueuedConnection );
+ connect( mBkupEngine, SIGNAL( notifyFinish(int) ),
+ this, SLOT( onNotifyFinish(int) ), Qt::DirectConnection );
+ connect( mBkupEngine, SIGNAL( notifyMemoryLow(int, int& ) ),
+ this, SLOT( onNotifyMemoryLow(int, int&) ) );
+ connect( mBkupEngine, SIGNAL( notifyBackupFilesExist( bool& )), this, SLOT( onNotifyBackupFilesExist( bool& )));
+
+}
+FmBackupRestoreHandler::~FmBackupRestoreHandler()
+{
+ delete mBkupEngine;
+ delete mBackupConfigLoader;
+}
+
+FmBkupEngine *FmBackupRestoreHandler::bkupEngine()
+{
+ return mBkupEngine;
+}
+
+FmBackupConfigLoader *FmBackupRestoreHandler::backupConfigLoader()
+{
+ if( !mBackupConfigLoader ) {
+ mBackupConfigLoader = new FmBackupConfigLoader();
+ }
+ return mBackupConfigLoader;
+}
+
+int FmBackupRestoreHandler::error()
+{
+ return mBkupEngine->error();
+}
+
+bool FmBackupRestoreHandler::startBackup( FmOperationBackup *operationBackup )
+{
+ Q_UNUSED( operationBackup );
+ mCurrentProcess = ProcessBackup;
+ bool ret = mBkupEngine->startBackup( backupConfigLoader()->driversAndOperationList(),
+ backupConfigLoader()->backupCategoryList(),
+ operationBackup->targetDrive(), // targetDrive is stored in FmOperationBackup
+ operationBackup->content() ); // content is stored in FmOperationBackup
+
+ if( !ret ) {
+ mCurrentProcess = ProcessNone;
+ }
+ return ret;
+}
+void FmBackupRestoreHandler::cancelBackup()
+{
+ mBkupEngine->cancelBackup();
+}
+bool FmBackupRestoreHandler::startRestore( FmOperationRestore *operationRestore )
+{
+ mCurrentProcess = ProcessRestore;
+ mBkupEngine->RestoreSettingsL()->SetSelection( operationRestore->selection() );
+ bool ret = mBkupEngine->startRestore( backupConfigLoader()->driversAndOperationList() );
+ if( !ret ) {
+ mCurrentProcess = ProcessNone;
+ }
+ return ret;
+}
+
+int FmBackupRestoreHandler::deleteBackup( quint64 selection )
+{
+ mBkupEngine->RestoreSettingsL()->SetSelection( selection );
+ mBkupEngine->deleteBackup( backupConfigLoader()->driversAndOperationList() );
+ return FmErrNone;
+}
+
+void FmBackupRestoreHandler::onNotifyMemoryLow( int memoryValue, int &userError )
+{
+ userError = FmErrNone;
+ if( memoryValue < FmEstimateLowerLimit ) {
+ userError = FmErrDiskFull;
+ } else if( memoryValue < FmEstimateUpperLimit ) {
+ if ( !FmDlgUtils::question( "memory low, continue?" ) ){
+ userError = FmErrCancel;
+ }
+ }
+}
+void FmBackupRestoreHandler::onNotifyBackupFilesExist( bool &isContinue )
+ {
+ if ( FmDlgUtils::question( "some backup files exist, continue?" ) )
+ {
+ isContinue = true;
+ }
+ else
+ {
+ isContinue = false;
+ }
+ }
+
+
+void FmBackupRestoreHandler::onNotifyPreparing( bool cancelable )
+{
+ emit notifyPreparing( cancelable );
+}
+void FmBackupRestoreHandler::onNotifyStart( bool cancelable, int maxSteps )
+{
+ emit notifyStart( cancelable, maxSteps );
+}
+void FmBackupRestoreHandler::onNotifyUpdate( int currentStep )
+{
+ emit notifyProgress( currentStep );
+}
+void FmBackupRestoreHandler::onNotifyFinish( int err )
+{
+ if( err == FmErrNone ) {
+ emit notifyFinish();
+ } else if( err == FmErrCancel ){
+ emit notifyCanceled();
+ } else {
+ emit notifyError( err, QString("") );
+ }
+}
+
+void FmBackupRestoreHandler::getBackupDriveList( QStringList &driveList )
+{
+ mBkupEngine->getBackupDriveList( driveList );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmbackuprestorehandler.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,82 @@
+/*
+ * 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 "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:
+ * The header file of backup and restore handler of file manager
+ */
+
+#ifndef FMBACKUPRESTOREHANDLER_H
+#define FMBACKUPRESTOREHANDLER_H
+
+#include <QObject>
+
+#include "fmoperationservice.h"
+
+class FmBkupEngine;
+class FmOperationBackup;
+class FmOperationRestore;
+class FmBackupConfigLoader;
+
+class FmBackupRestoreHandler : public QObject
+{
+Q_OBJECT
+
+public:
+
+ FmBackupRestoreHandler( QObject *parent );
+ ~FmBackupRestoreHandler();
+
+ int error();
+
+ bool startBackup( FmOperationBackup *operationBackup );
+ void cancelBackup();
+
+ bool startRestore( FmOperationRestore *operationRestore );
+
+ int deleteBackup( quint64 selection );
+ FmBkupEngine *bkupEngine();
+ FmBackupConfigLoader *backupConfigLoader();
+ void getBackupDriveList( QStringList &driveList );
+
+signals:
+ void notifyPreparing( bool cancelable );
+ void notifyStart( bool cancelable, int maxSteps );
+ void notifyProgress( int currentStep );
+ void notifyFinish();
+ void notifyError( int error, QString errString );
+ void notifyCanceled();
+
+
+public slots:
+ void onNotifyPreparing( bool cancelable );
+ void onNotifyMemoryLow( int memoryValue, int &userError );
+
+ void onNotifyStart( bool cancelable, int maxSteps );
+ void onNotifyUpdate( int currentStep );
+ void onNotifyFinish( int err );
+
+ void onNotifyBackupFilesExist( bool &isContinue );
+private:
+ enum Process{
+ ProcessNone = 0,
+ ProcessBackup,
+ ProcessRestore
+ };
+private:
+ FmBkupEngine *mBkupEngine;
+ FmBackupConfigLoader *mBackupConfigLoader;
+ Process mCurrentProcess;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmbackupview.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,151 @@
+/*
+ * 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 "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:
+ * The source file of the back up view of file manager
+ */
+
+#include "fmbackupview.h"
+#include "fmbackupwidget.h"
+#include "fmviewmanager.h"
+#include "fmoperationbase.h"
+#include "fmdlgutils.h"
+
+#include <QApplication>
+
+#include <hbaction.h>
+#include <hbtoolbar.h>
+#include <hbmenu.h>
+#include <hbmainwindow.h>
+
+FmBackupView::FmBackupView() : FmViewBase( EBackupView )
+{
+ setTitle( hbTrId( "Backup" ) );
+
+ initToolBar();
+ initMainWidget();
+ initMenu();
+ mOperationService = FmViewManager::viewManager()->operationService();
+
+}
+
+FmBackupView::~FmBackupView()
+{
+ removeToolBarAction();
+}
+
+void FmBackupView::initMenu()
+{
+ HbAction *action = 0;
+
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ action = new HbAction( this );
+ action->setObjectName( "rotateAction" );
+ action->setText( hbTrId( "Change orientation" ) );
+ menu()->addAction( action );
+ connect( action, SIGNAL(triggered()), this, SLOT( on_rotateAction_triggered() ), Qt::QueuedConnection );
+#endif
+
+ action = new HbAction( this );
+ action->setObjectName( "backupAction" );
+ action->setText( hbTrId( "Start backup" ) );
+ menu()->addAction( action );
+ connect( action, SIGNAL(triggered()), this, SLOT( on_backupAction_triggered() ), Qt::QueuedConnection );
+
+ action = new HbAction( this );
+ action->setObjectName( "deleteBackupAction" );
+ action->setText( hbTrId( "Delete backup" ) );
+ menu()->addAction( action );
+ connect( action, SIGNAL(triggered()), this, SLOT( on_deleteBackupAction_triggered() ), Qt::QueuedConnection );
+}
+
+void FmBackupView::initMainWidget()
+{
+ mMainWidget = new FmBackupWidget( this );
+ setWidget( mMainWidget );
+
+}
+
+void FmBackupView::initToolBar()
+{
+ mToolBarAction = new HbAction( this );
+ mToolBarAction->setObjectName( "leftAction" );
+ mToolBarAction->setText( hbTrId("Start backup") );
+ toolBar()->addAction( mToolBarAction );
+ connect( mToolBarAction, SIGNAL(triggered()), this, SLOT( on_leftAction_triggered() ), Qt::QueuedConnection );
+
+ toolBar()->setOrientation( Qt::Horizontal );
+}
+
+void FmBackupView::on_leftAction_triggered()
+{
+ int ret = mOperationService->asyncBackup();
+ FM_LOG( "FmBackupView_asyncBackup: ret= " + QString::number(ret) );
+ switch( ret )
+ {
+ case FmErrNone:
+ break;
+ case FmErrWrongParam:
+ FmDlgUtils::information( QString( hbTrId("Operation canceled with wrong param!") ) );
+ break;
+ case FmErrAlreadyStarted:
+ FmDlgUtils::information( QString( hbTrId("Operation canceled because already started!") ) );
+ break;
+ case FmErrPathNotFound:
+ FmDlgUtils::information( QString( hbTrId("Operation canceled because can not find target path or drive is not available!") ) );
+ break;
+ case FmErrAlreadyExists:
+ FmDlgUtils::information( QString( hbTrId("backup canceled") ) );
+ break;
+ default:
+ FmDlgUtils::information( QString( hbTrId("backup failed") ) );
+ break;
+ }
+}
+#ifdef FM_CHANGE_ORIENT_ENABLE
+void FmBackupView::on_rotateAction_triggered()
+{
+ if ( mainWindow()->orientation() == Qt::Vertical ) {
+ mainWindow()->setOrientation( Qt::Horizontal );
+ }
+ else {
+ mainWindow()->setOrientation( Qt::Vertical );
+ }
+}
+#endif //FM_CHANGE_ORIENT_ENABLE
+
+void FmBackupView::on_backupAction_triggered()
+{
+ on_leftAction_triggered();
+}
+
+void FmBackupView::on_deleteBackupAction_triggered()
+{
+ FmViewManager::viewManager()->createDeleteBackupView();
+}
+
+void FmBackupView::removeToolBarAction()
+{
+ toolBar()->removeAction( mToolBarAction );
+}
+
+void FmBackupView::refreshBackupDate()
+{
+ mMainWidget->updateBackupDate();
+}
+
+void FmBackupView::refreshModel()
+{
+ mMainWidget->refreshModel();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmbackupview.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,70 @@
+/*
+ * 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 "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:
+ * The header file of the back up view of file manager
+ */
+
+#ifndef FMBACKUPVIEW_H
+#define FMBACKUPVIEW_H
+
+#include "fmoperationservice.h"
+#include "fmviewbase.h"
+
+class FmBackupWidget;
+class FmOperationService;
+
+class HbAction;
+
+class FmBackupView : public FmViewBase
+{
+ Q_OBJECT
+
+public:
+ FmBackupView();
+ ~FmBackupView();
+
+signals:
+ void activateRestoreView();
+
+private:
+ void initMenu();
+ void initMainWidget();
+ void initToolBar();
+
+ void removeToolBarAction();
+
+public slots:
+ void refreshBackupDate();
+ void refreshModel();
+
+private slots:
+ void on_leftAction_triggered();
+
+ void on_backupAction_triggered();
+ void on_deleteBackupAction_triggered();
+
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ void on_rotateAction_triggered();
+#endif
+
+private:
+ FmBackupWidget *mMainWidget;
+ FmOperationService *mOperationService;
+
+ HbAction *mToolBarAction;
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmbackupwidget.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,351 @@
+/*
+ * 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 "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:
+ * The header file of the back up widget of file manager
+ */
+
+#include "fmbackupwidget.h"
+#include "fmbackupsettings.h"
+#include "fmdlgutils.h"
+#include "fmviewmanager.h"
+#include "fmoperationservice.h"
+#include "fmbkupengine.h"
+#include "fmbackuprestorehandler.h"
+#include "fmutils.h"
+
+
+#include <QGraphicsLinearLayout>
+#include <QDir>
+
+#include <hbdataform.h>
+#include <hbdataformmodel.h>
+#include <hbdataformmodelitem.h>
+#include <hbdataformviewitem.h>
+
+
+FmBackupWidget::FmBackupWidget( QGraphicsItem *parent )
+: HbWidget( parent )
+{
+ init();
+}
+
+FmBackupWidget::~FmBackupWidget()
+{
+ mDataForm->setModel( 0 );
+ delete mModel;
+}
+
+
+void FmBackupWidget::on_list_activated( const QModelIndex &index )
+{
+ // change item data when receive activated signal
+ HbDataFormModelItem *item = mModel->itemFromIndex(index);
+ if( item == mContentsItem ){
+ emit changeContents();
+ } else if( item == mTargetItem ){
+ emit changeTargetDrive();
+ } else if( item == mSchedulingItem ){
+ emit changeScheduling();
+ } else if( item == mWeekdayItem ){
+ emit changeWeekday();
+ } else if( item == mTimeItem ){
+ emit changeTime();
+ }
+}
+
+void FmBackupWidget::init()
+{
+ QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout( this );
+ vLayout->setOrientation( Qt::Vertical );
+
+
+ mModel = new HbDataFormModel();
+ initModel();
+
+ mDataForm = new HbDataForm( this );
+ mDataForm->setModel( mModel );
+ vLayout->addItem( mDataForm );
+
+ connect( mDataForm, SIGNAL( activated( const QModelIndex & ) ),
+ this, SLOT( on_list_activated( const QModelIndex & ) ) );
+
+ connect( this, SIGNAL( doModelRefresh() ),
+ this, SLOT( refreshModel() ), Qt::QueuedConnection );
+
+ connect( this, SIGNAL(changeContents()), this, SLOT(on_changeContents()), Qt::QueuedConnection);
+ connect( this, SIGNAL(changeScheduling()), this, SLOT(on_changeScheduling()), Qt::QueuedConnection);
+ connect( this, SIGNAL(changeWeekday()), this, SLOT(on_changeWeekday()), Qt::QueuedConnection);
+ connect( this, SIGNAL(changeTime()), this, SLOT(on_changeTime()), Qt::QueuedConnection);
+ connect( this, SIGNAL(changeTargetDrive()), this, SLOT(on_changeTargetDrive()), Qt::QueuedConnection);
+
+ //mBackupSettings = new FmBackupSettings();
+ mBackupSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->BackupSettingsL();
+ mBackupSettings->load();
+
+ emit doModelRefresh();
+
+}
+
+void FmBackupWidget::expandAllGroup()
+{
+ FM_LOG( QString( "function expandAllGroup start" ) );
+
+ mDataForm->setModel( 0 );
+ mDataForm->setModel( mModel );
+
+ HbDataFormViewItem *itemScheduling =
+ (HbDataFormViewItem *)(mDataForm->itemByIndex(mModel->indexFromItem(mSchedulingGroup)));
+ if( itemScheduling ){
+ FM_LOG( QString( "expand itemScheduling start" ) );
+ itemScheduling->setExpanded( true );
+ FM_LOG( QString( "expand itemScheduling end" ) );
+ }
+
+ HbDataFormViewItem *itemGroup =
+ (HbDataFormViewItem *)(mDataForm->itemByIndex(mModel->indexFromItem(mContentsGroup)));
+ if( itemGroup ){
+ FM_LOG( QString( "expand itemGroup start" ) );
+ itemGroup->setExpanded( true );
+ FM_LOG( QString( "expand itemGroup end" ) );
+ }
+ FM_LOG( QString( "function expandAllGroup end" ) );
+}
+
+void FmBackupWidget::initModel()
+{
+ mContentsGroup = mModel->appendDataFormGroup(
+ QString( hbTrId( "Contents" ) ), mModel->invisibleRootItem());
+
+ mContentsItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString( "" ), mContentsGroup );
+ mContentsItem->setContentWidgetData( QString("readOnly"), QString("true") );
+ mContentsItem->setContentWidgetData( QString("objectName"), QString("backupContentItem") );
+
+ mTargetItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString( "" ), mContentsGroup );
+ mTargetItem->setContentWidgetData( QString("readOnly"), QString("true") );
+ mTargetItem->setContentWidgetData( QString("objectName"), QString("backupTargetItem") );
+
+ mSchedulingGroup = mModel->appendDataFormGroup(
+ QString( hbTrId( "Scheduling" ) ), mModel->invisibleRootItem());
+
+ mSchedulingItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup );
+ mSchedulingItem->setContentWidgetData( QString("readOnly"), QString("true") );
+ mSchedulingItem->setContentWidgetData( QString("objectName"), QString("backupSchedulingItem") );
+
+ mWeekdayItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup );
+ mWeekdayItem->setContentWidgetData( QString("readOnly"), QString("true") );
+ mWeekdayItem->setContentWidgetData( QString("objectName"), QString("backupWeekdayItem") );
+
+ mTimeItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup );
+ mTimeItem->setContentWidgetData( QString("readOnly"), QString("true") );
+ mTimeItem->setContentWidgetData( QString("objectName"), QString("backupTimeItem") );
+
+ mLastBackupDateItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString( ( "" )), mModel->invisibleRootItem() );
+ mLastBackupDateItem->setContentWidgetData( QString("readOnly"), QString("true") );
+ mLastBackupDateItem->setContentWidgetData( QString("objectName"), QString("backupLastBackupDateItem") );
+}
+
+
+
+void FmBackupWidget::refreshModel()
+{
+ mDataForm->setModel( 0 );
+
+ mBackupSettings->load();
+
+ int index = 0;
+
+ index = mSchedulingGroup->indexOf( mWeekdayItem );
+ if( index >=0 ){
+ mSchedulingGroup->removeChild( index );
+ mWeekdayItem = 0;
+ }
+
+ index = mSchedulingGroup->indexOf( mTimeItem );
+ if( index >=0 ){
+ mSchedulingGroup->removeChild( index );
+ mTimeItem = 0;
+ }
+
+ index = mContentsGroup->indexOf( mTargetItem );
+ if( index >=0 ){
+ mContentsGroup->removeChild( index );
+ mTargetItem = 0;
+ }
+
+ QList< FmBackupEntry* > backupEntryList = mBackupSettings->backupEntryList();
+
+ QList< FmBackupEntry* >::iterator it;
+
+ for ( it = backupEntryList.begin(); it != backupEntryList.end(); ++it ){
+
+ int type = ( *it )->type();
+
+ QString title = ( *it )->title();
+ QString tips = ( *it )->tips();
+
+ switch ( type )
+ {
+ case FmBackupEntry::EContents:
+ {
+ mContentsItem->setLabel(title);
+ mContentsItem->setContentWidgetData( QString("text"), tips );
+ break;
+ }
+ case FmBackupEntry::ETarget:
+ {
+ mTargetItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString( "" ), mContentsGroup );
+ mTargetItem->setContentWidgetData( QString("readOnly"), QString("true") );
+ mTargetItem->setLabel(title);
+ mTargetItem->setContentWidgetData( QString("text"), tips );
+ break;
+ }
+ case FmBackupEntry::EScheduling:
+ {
+ mSchedulingItem->setLabel(title);
+ mSchedulingItem->setContentWidgetData( QString("text"), tips );
+ break;
+ }
+ case FmBackupEntry::EWeekday:
+ {
+ mWeekdayItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup );
+ mWeekdayItem->setContentWidgetData( QString("readOnly"), QString("true") );
+ mWeekdayItem->setLabel(title);
+ mWeekdayItem->setContentWidgetData( QString("text"), tips );
+ break;
+ }
+ case FmBackupEntry::ETime:
+ {
+ mTimeItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup );
+ mTimeItem->setContentWidgetData( QString("readOnly"), QString("true") );
+ mTimeItem->setLabel(title);
+ mTimeItem->setContentWidgetData( QString("text"), tips );
+ break;
+ }
+ case FmBackupEntry::EBackupdate:
+ {
+ mLastBackupDateItem->setContentWidgetData( QString("text"), tips );
+ break;
+ }
+ }
+ }
+
+ mDataForm->setModel( mModel );
+
+ expandAllGroup();
+}
+
+void FmBackupWidget::on_changeContents()
+{
+
+ QString title = mContentsItem->label();
+ QStringList queryStringList;
+ quint32 contentMask = FmBackupSettings::EFileManagerBackupContentAll;
+ while ( contentMask <= FmBackupSettings::EFileManagerBackupContentLast)
+ {
+ queryStringList.push_back( mBackupSettings->contentToString( contentMask ) );
+ contentMask = contentMask << 1;
+ }
+ quint32 select = mBackupSettings->content();
+ if( FmDlgUtils::showMultiSettingQuery( title, queryStringList, select, 0 ) )
+ {
+ mBackupSettings->setContent( select );
+ emit doModelRefresh();
+ }
+
+}
+
+
+void FmBackupWidget::on_changeScheduling()
+{
+ QString title = mSchedulingItem->label();
+ QStringList queryStringList;
+
+ FmBackupSettings::TFileManagerBackupSchedule schedule = FmBackupSettings::EFileManagerBackupScheduleNever;
+ while ( schedule <= FmBackupSettings::EFileManagerBackupScheduleWeekly )
+ {
+ queryStringList.push_back( mBackupSettings->schedulingToString( schedule ) );
+ schedule = FmBackupSettings::TFileManagerBackupSchedule(((int)schedule)+1);
+ }
+
+ // adjust index offset against monday.
+ int selectIndex = mBackupSettings->scheduling() - FmBackupSettings::EFileManagerBackupScheduleNever;
+ if( FmDlgUtils::showSingleSettingQuery( title, queryStringList, selectIndex ) )
+ {
+ selectIndex += FmBackupSettings::EFileManagerBackupScheduleNever;
+ mBackupSettings->setScheduling( ( FmBackupSettings::TFileManagerBackupSchedule )selectIndex );
+ emit doModelRefresh();
+ }
+}
+
+void FmBackupWidget::on_changeWeekday()
+{
+ QString title = mWeekdayItem->label();
+ QStringList queryStringList;
+
+ FmBackupSettings::TFileManagerBackupWeekday weekday = FmBackupSettings::EFileManagerBackupWeekdayMonday;
+ while ( weekday <= FmBackupSettings::EFileManagerBackupWeekdaySunday )
+ {
+ queryStringList.push_back( mBackupSettings->weekdayToString( weekday ) );
+ weekday = FmBackupSettings::TFileManagerBackupWeekday(((int)weekday)+1);
+ }
+
+ // adjust index offset against monday.
+ int selectIndex = mBackupSettings->weekday() - FmBackupSettings::EFileManagerBackupWeekdayMonday;
+ if( FmDlgUtils::showSingleSettingQuery( title, queryStringList, selectIndex ) )
+ {
+ selectIndex += FmBackupSettings::EFileManagerBackupWeekdayMonday;
+ mBackupSettings->setWeekday( (FmBackupSettings::TFileManagerBackupWeekday)selectIndex );
+ emit doModelRefresh();
+ }
+}
+
+void FmBackupWidget::on_changeTime()
+{
+ QString title = mTimeItem->label();
+ QTime queryTime = mBackupSettings->time();
+
+ if( FmDlgUtils::showTimeSettingQuery( title, queryTime ) )
+ {
+ mBackupSettings->setTime( queryTime );
+ emit doModelRefresh();
+ }
+}
+
+
+void FmBackupWidget::on_changeTargetDrive()
+{
+ QString title = mTargetItem->label();
+ QString drive = FmDlgUtils::showBackupDriveQuery( title );
+ if( ( !drive.isEmpty() ) &&
+ ( mBackupSettings->targetDrive().compare( drive, Qt::CaseInsensitive ) != 0 ) ) {
+ mBackupSettings->setTargetDrive( drive );
+ emit doModelRefresh();
+ }
+}
+
+void FmBackupWidget::updateBackupDate()
+{
+ mBackupSettings->updateBackupDate();
+ emit doModelRefresh();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmbackupwidget.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,84 @@
+/*
+ * 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 "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:
+ * The header file of the back up widget of file manager
+ */
+
+#ifndef FMBACKUPWIDGET_H
+#define FMBACKUPWIDGET_H
+
+#include <hbwidget.h>
+
+class FmBackupSettings;
+
+class HbDataForm;
+class HbDataFormModel;
+class HbDataFormModelItem;
+class FmBackupConfigLoader;
+
+class FmBackupWidget : public HbWidget
+{
+ Q_OBJECT
+
+public:
+ FmBackupWidget( QGraphicsItem *parent = 0 );
+ ~FmBackupWidget();
+ void updateBackupDate();
+
+signals:
+ void doModelRefresh();
+ void changeContents();
+ void changeScheduling();
+ void changeWeekday();
+ void changeTime();
+ void changeTargetDrive();
+
+public slots:
+ // refresh whole model immediately.
+ void refreshModel();
+
+private slots:
+ void on_list_activated( const QModelIndex &index );
+
+ void on_changeContents();
+ void on_changeScheduling();
+ void on_changeWeekday();
+ void on_changeTime();
+ void on_changeTargetDrive();
+
+private:
+
+ void initModel();
+ void init();
+ void expandAllGroup();
+
+private:
+
+ HbDataForm *mDataForm;
+ HbDataFormModel *mModel;
+ HbDataFormModelItem *mContentsGroup;
+ HbDataFormModelItem *mSchedulingGroup;
+
+ HbDataFormModelItem *mContentsItem;
+ HbDataFormModelItem *mTargetItem;
+ HbDataFormModelItem *mSchedulingItem;
+ HbDataFormModelItem *mWeekdayItem;
+ HbDataFormModelItem *mTimeItem;
+ HbDataFormModelItem *mLastBackupDateItem;
+ FmBackupSettings *mBackupSettings;
+ FmBackupConfigLoader *mBackupConfigLoader;
+};
+
+#endif // FMBACKUPWIDGET_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmdeletebackupview.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,143 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The source file of the delete backup view of file manager
+ */
+
+#include "fmdeletebackupview.h"
+#include "fmdeletebackupwidget.h"
+#include "fmviewmanager.h"
+#include "fmoperationbase.h"
+#include "fmdlgutils.h"
+
+#include <QApplication>
+
+#include <hbaction.h>
+#include <hbtoolbar.h>
+#include <hbmenu.h>
+#include <hbmainwindow.h>
+
+FmDeleteBackupView::FmDeleteBackupView() : FmViewBase( EDeleteBackupView )
+{
+ setTitle( hbTrId( "Delete Backup" ) );
+
+ initMainWidget();
+ initToolBar();
+ initMenu();
+ mOperationService = FmViewManager::viewManager()->operationService();
+}
+
+FmDeleteBackupView::~FmDeleteBackupView()
+{
+ removeToolBarAction();
+}
+
+void FmDeleteBackupView::initMenu()
+{
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ HbAction *action = 0;
+ action = new HbAction( this );
+ action->setObjectName( "rotateAction" );
+ action->setText( hbTrId( "Change orientation" ) );
+ menu()->addAction( action );
+ connect( action, SIGNAL(triggered()), this, SLOT( on_rotateAction_triggered() ), Qt::QueuedConnection );
+#endif
+
+ mDeleteAction = new HbAction( this );
+ mDeleteAction->setObjectName( "deleteAction" );
+ mDeleteAction->setText( hbTrId( "Delete backups" ) );
+ menu()->addAction( mDeleteAction );
+ mDeleteAction->setEnabled(false);
+ connect( mDeleteAction, SIGNAL(triggered()), this, SLOT( on_deleteAction_triggered() ), Qt::QueuedConnection );
+}
+
+void FmDeleteBackupView::initMainWidget()
+{
+ mDeleteBackupWidget = new FmDeleteBackupWidget( this );
+ mDeleteBackupWidget->setObjectName( "deleteBackupWidget" );
+ setWidget( mDeleteBackupWidget );
+ connect(mDeleteBackupWidget, SIGNAL(stateChanged(int)), this, SLOT(on_deleteBackupWidget_stateChanged(int)));
+
+}
+
+void FmDeleteBackupView::on_deleteBackupWidget_stateChanged(int state)
+{
+ Q_UNUSED(state);
+ QList<int> items = mDeleteBackupWidget->selectionIndexes();
+ if (items.count() > 0) {
+ mLeftAction->setEnabled(true);
+ mDeleteAction->setEnabled(true);
+ } else {
+ mLeftAction->setEnabled(false);
+ mDeleteAction->setEnabled(false);
+ }
+}
+
+void FmDeleteBackupView::initToolBar()
+{
+ mLeftAction = new HbAction( this );
+ mLeftAction->setObjectName( "leftAction" );
+ mLeftAction->setText( hbTrId( "delete" ) );
+ toolBar()->addAction( mLeftAction );
+ mLeftAction->setEnabled(false);
+ toolBar()->setOrientation( Qt::Horizontal );
+
+ connect( mLeftAction, SIGNAL(triggered()), this, SLOT( on_leftAction_triggered() ), Qt::QueuedConnection );
+}
+
+void FmDeleteBackupView::on_leftAction_triggered()
+{
+ on_deleteAction_triggered();
+}
+
+#ifdef FM_CHANGE_ORIENT_ENABLE
+void FmDeleteBackupView::on_rotateAction_triggered()
+{
+ if ( mainWindow()->orientation() == Qt::Vertical ) {
+ mainWindow()->setOrientation( Qt::Horizontal );
+ }
+ else {
+ mainWindow()->setOrientation( Qt::Vertical );
+ }
+}
+#endif
+
+void FmDeleteBackupView::on_deleteAction_triggered()
+{
+ QList<int > items = mDeleteBackupWidget->selectionIndexes();
+ if( items.count() <= 0 || !FmDlgUtils::question( hbTrId("Confirm Deletion?" ) ) ){
+ return;
+ }
+
+ quint64 selection( 0 );
+ for ( int i( 0 ); i < items.count(); ++i )
+ {
+ selection |= ( ( quint64 ) 1 ) << ( items[ i ] );
+ }
+
+ mOperationService->syncDeleteBackup( selection );
+ mDeleteBackupWidget->refresh();
+ on_deleteBackupWidget_stateChanged(0);
+}
+
+void FmDeleteBackupView::removeToolBarAction()
+{
+ toolBar()->removeAction( mLeftAction );
+}
+
+void FmDeleteBackupView::refreshDeleteBackupView()
+{
+ mDeleteBackupWidget->refresh();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmdeletebackupview.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,63 @@
+/*
+ * 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 "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:
+ * The header file of the delete backup view of file manager
+ */
+
+#ifndef FMDELETEBACKUPVIEW_H
+#define FMDELETEBACKUPVIEW_H
+
+#include "fmoperationservice.h"
+#include "fmviewbase.h"
+
+class FmDeleteBackupWidget;
+class FmOperationService;
+class HbAction;
+
+
+class FmDeleteBackupView : public FmViewBase
+{
+ Q_OBJECT
+
+public:
+ FmDeleteBackupView();
+ ~FmDeleteBackupView();
+
+private slots:
+ void on_leftAction_triggered();
+ void on_deleteAction_triggered();
+ void on_deleteBackupWidget_stateChanged(int state);
+ void refreshDeleteBackupView();
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ void on_rotateAction_triggered();
+#endif
+
+private:
+ void initMenu();
+ void initMainWidget();
+ void initToolBar();
+ void removeToolBarAction();
+
+private:
+
+ FmDeleteBackupWidget *mDeleteBackupWidget;
+ FmOperationService *mOperationService;
+
+ HbAction *mDeleteAction;
+ HbAction *mLeftAction;
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmdeletebackupwidget.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,137 @@
+/*
+ * 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 "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:
+ * The header file of the delete backup widget of file manager
+ */
+#include "fmdeletebackupwidget.h"
+#include "fmrestoresettings.h"
+#include "fmrestoreviewitem.h"
+#include "fmoperationservice.h"
+#include "fmviewmanager.h"
+#include "fmbackupconfigloader.h"
+#include "fmbkupengine.h"
+#include "fmbackuprestorehandler.h"
+
+#include <QGraphicsLinearLayout>
+#include <QStringListModel>
+#include <QDateTime>
+#include <hblistview.h>
+
+FmDeleteBackupWidget::FmDeleteBackupWidget( HbWidget *parent )
+: HbWidget( parent ), mModel( 0 )
+{
+ init();
+}
+
+FmDeleteBackupWidget::~FmDeleteBackupWidget()
+{
+ mListView->setModel( 0 );
+ delete mModel;
+}
+
+void FmDeleteBackupWidget::refresh()
+{
+ mListView->setModel( 0 );
+ loadData();
+ mListView->setModel( mModel );
+ for (int i = 0; i < mModel->rowCount(); ++i) {
+ QModelIndex index = mModel->index(i);
+ FmRestoreViewItem* restoreViewItem = static_cast< FmRestoreViewItem* >
+ (mListView->itemByIndex(index));
+ connect(restoreViewItem, SIGNAL(stateChanged(int)), this, SIGNAL(stateChanged(int)));
+ }
+ emit stateChanged(0);
+}
+
+QList<int> FmDeleteBackupWidget::selectionIndexes()
+{
+ QList<int> selectionList;
+
+ for ( int i=0; i<mModel->rowCount(); i++ ) {
+ FmRestoreViewItem *item = static_cast<FmRestoreViewItem*>(
+ mListView->itemByIndex( mModel->index( i ) ) );
+ if( item && item->getCheckBoxState() ) {
+ selectionList.push_back( i );
+ }
+ }
+
+ return selectionList;
+}
+
+void FmDeleteBackupWidget::loadData()
+{
+ if( !mModel ) {
+ mModel = new QStringListModel();
+ }
+ mModel->removeRows( 0, mModel->rowCount() );
+
+ mRestoreSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->RestoreSettingsL();
+ mBackupConfigLoader = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->backupConfigLoader();
+ mRestoreSettings->load( mBackupConfigLoader->driversAndOperationList() );
+
+ int index = 0;
+
+ QList< FmRestoreEntry* > retoreEntryList = mRestoreSettings->restoreEntryList();
+ mModel->insertRows( 0, retoreEntryList.count() );
+
+ for ( QList< FmRestoreEntry* >::iterator it = retoreEntryList.begin();
+ it != retoreEntryList.end(); ++it ){
+ QString string = ( *it )->text();
+ QDateTime datetime = ( *it )->restoreInfo().dateTime();
+ QString drive = ( *it )->restoreInfo().drive();
+ string.append( '\t' );
+ string.append( datetime.toString( "hh:mm ap dd/MM/yyyy") );
+ string.append( '\t' );
+ string.append( drive );
+ QVariant variant( string );
+ mModel->setData( mModel->index( index ), variant, Qt::DisplayRole );
+ ++index;
+ }
+
+}
+
+void FmDeleteBackupWidget::init()
+{
+ QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout( this );
+ vLayout->setOrientation( Qt::Vertical );
+
+ mListView = new HbListView( this );
+ connect( mListView, SIGNAL( activated( const QModelIndex & ) ),
+ this, SLOT( on_list_activated( const QModelIndex & ) ) );
+
+ mListView->setSelectionMode( HbAbstractItemView::MultiSelection );
+
+ vLayout->addItem( mListView );
+
+ loadData();
+ mListView->setModel( mModel );
+
+ mListView->setItemPrototype( new FmRestoreViewItem( this ) );
+
+
+}
+
+void FmDeleteBackupWidget::on_list_activated( const QModelIndex &index )
+{
+ FmRestoreViewItem *restoreViewItem = static_cast< FmRestoreViewItem* >
+ ( mListView->itemByIndex( index ) );
+
+ restoreViewItem->setCheckBoxState();
+}
+
+int FmDeleteBackupWidget::backupDataCount()
+{
+ return mModel->rowCount();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmdeletebackupwidget.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,59 @@
+/*
+ * 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 "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:
+ * The header file of the delete backup widget of file manager
+ */
+
+#ifndef FMDELETEBACKUPWIDGET_H
+#define FMDELETEBACKUPWIDGET_H
+
+#include <hbwidget.h>
+
+class HbListView;
+class QStringListModel;
+class FmRestoreSettings;
+class FmBackupConfigLoader;
+class FmRestoreViewItem;
+
+class FmDeleteBackupWidget : public HbWidget
+{
+ Q_OBJECT
+
+public:
+
+ explicit FmDeleteBackupWidget( HbWidget *parent = 0 );
+ ~FmDeleteBackupWidget();
+ void refresh();
+ QList<int> selectionIndexes();
+ int backupDataCount();
+signals:
+ void stateChanged(int state);
+private:
+ void loadData();
+ void init();
+
+private slots:
+ void on_list_activated( const QModelIndex &index );
+
+
+private:
+ HbListView *mListView;
+ QStringListModel *mModel;
+
+ FmRestoreSettings *mRestoreSettings;
+ FmBackupConfigLoader *mBackupConfigLoader;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmrestoreview.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,150 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The source file of the restore view of file manager
+ */
+
+#include "fmrestoreview.h"
+#include "fmrestorewidget.h"
+#include "fmviewmanager.h"
+#include "fmoperationbase.h"
+#include "fmdlgutils.h"
+
+#include <QApplication>
+
+#include <hbaction.h>
+#include <hbtoolbar.h>
+#include <hbmenu.h>
+#include <hbmainwindow.h>
+
+FmRestoreView::FmRestoreView(): FmViewBase( ERestoreView )
+{
+ setTitle( hbTrId( "Restore" ) );
+
+ initMainWidget();
+ initToolBar();
+ initMenu();
+ mOperationService = FmViewManager::viewManager()->operationService();
+}
+
+FmRestoreView::~FmRestoreView()
+{
+ removeToolBarAction();
+}
+
+void FmRestoreView::initMenu()
+{
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ HbAction *action = 0;
+ action = new HbAction( this );
+ action->setObjectName( "rotateAction" );
+ action->setText( hbTrId( "Change orientation" ) );
+ menu()->addAction( action );
+ connect( action, SIGNAL(triggered()), this, SLOT( on_rotateAction_triggered() ), Qt::QueuedConnection );
+#endif
+
+ mRestoreAction = new HbAction( this );
+ mRestoreAction->setObjectName( "restoreAction" );
+ mRestoreAction->setText( hbTrId( "Restore data" ) );
+ menu()->addAction( mRestoreAction );
+ mRestoreAction->setEnabled(false);
+ connect( mRestoreAction, SIGNAL(triggered()), this, SLOT( on_restoreAction_triggered() ), Qt::QueuedConnection );
+}
+
+void FmRestoreView::initMainWidget()
+{
+ mRestoreWigdet = new FmRestoreWigdet( this );
+
+ setWidget( mRestoreWigdet );
+ connect(mRestoreWigdet, SIGNAL(stateChanged(int)), this, SLOT(onCheckBoxStateChange()));
+
+}
+
+void FmRestoreView::initToolBar()
+{
+ mLeftAction = new HbAction( this );
+ mLeftAction->setObjectName( "leftAction" );
+ mLeftAction->setText( hbTrId( "Restore" ) );
+ toolBar()->addAction( mLeftAction );
+ connect( mLeftAction, SIGNAL(triggered()), this, SLOT( on_leftAction_triggered() ), Qt::QueuedConnection );
+
+ mLeftAction->setEnabled(false);
+ toolBar()->setOrientation( Qt::Horizontal );
+}
+
+void FmRestoreView::on_leftAction_triggered()
+{
+ QList<int > items = mRestoreWigdet->selectionIndexes();
+ quint64 selection( 0 );
+ for ( int i( 0 ); i < items.count(); ++i )
+ {
+ selection |= ( ( quint64 ) 1 ) << ( items[ i ] );
+ }
+
+ int ret = mOperationService->asyncRestore( selection );
+ switch( ret )
+ {
+ case FmErrNone:
+ break;
+ case FmErrWrongParam:
+ FmDlgUtils::information( QString( hbTrId("Operation canceled with wrong param!") ) );
+ break;
+ case FmErrAlreadyStarted:
+ FmDlgUtils::information( QString( hbTrId("Operation canceled because already started!") ) );
+ break;
+ default:
+ FmDlgUtils::information(hbTrId("restore failed"));
+ break;
+ }
+}
+
+#ifdef FM_CHANGE_ORIENT_ENABLE
+void FmRestoreView::on_rotateAction_triggered()
+{
+ if ( mainWindow()->orientation() == Qt::Vertical ) {
+ mainWindow()->setOrientation( Qt::Horizontal );
+ }
+ else {
+ mainWindow()->setOrientation( Qt::Vertical );
+ }
+}
+#endif
+
+void FmRestoreView::on_restoreAction_triggered()
+{
+ on_leftAction_triggered();
+}
+
+void FmRestoreView::removeToolBarAction()
+{
+ toolBar()->removeAction( mLeftAction );
+}
+
+void FmRestoreView::onCheckBoxStateChange()
+{
+ QList<int> items = mRestoreWigdet->selectionIndexes();
+ if (items.count() > 0) {
+ mLeftAction->setEnabled(true);
+ mRestoreAction->setEnabled(true);
+ } else {
+ mLeftAction->setEnabled(false);
+ mRestoreAction->setEnabled(false);
+ }
+}
+
+void FmRestoreView::refreshRestoreView()
+{
+ mRestoreWigdet->refresh();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmrestoreview.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,61 @@
+/*
+ * 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 "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:
+ * The header file of the restore view of file manager
+ */
+
+#ifndef FMRESTOREVIEW_H
+#define FMRESTOREVIEW_H
+
+#include "fmoperationservice.h"
+#include "fmviewbase.h"
+
+class FmRestoreWigdet;
+class FmOperationService;
+
+
+class FmRestoreView : public FmViewBase
+{
+ Q_OBJECT
+
+public:
+ FmRestoreView();
+ ~FmRestoreView();
+
+private slots:
+ void on_leftAction_triggered();
+ void on_restoreAction_triggered();
+ void onCheckBoxStateChange();
+ void refreshRestoreView();
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ void on_rotateAction_triggered();
+#endif
+
+private:
+ void initMenu();
+ void initMainWidget();
+ void initToolBar();
+ void removeToolBarAction();
+
+private:
+
+ FmRestoreWigdet *mRestoreWigdet;
+ FmOperationService *mOperationService;
+ HbAction *mRestoreAction;
+ HbAction *mLeftAction;
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmrestoreviewitem.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,141 @@
+/*
+ * 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 "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:
+ * The source file of the restore view list item of file manager
+ */
+#include "fmrestoreviewitem.h"
+#include "fmfileiconprovider.h"
+#include <QGraphicsLinearLayout>
+#include <QGraphicsGridLayout>
+#include <hblabel.h>
+#include <hbcheckbox.h>
+#include <hbwidget.h>
+#include <hblineedit.h>
+
+//FmRestoreViewItem
+FmRestoreViewItem::FmRestoreViewItem( QGraphicsItem *parent )
+ : HbListViewItem( parent ),
+ mRestoreContentLabel( 0 ),
+ mDateTimeLabel( 0 ),
+ mCheckBox( 0 ),
+ hLayout( 0 ),
+ mParentWidget((HbWidget *)parent)
+{
+ //init();
+}
+
+FmRestoreViewItem::~FmRestoreViewItem()
+{
+}
+
+
+HbAbstractViewItem *FmRestoreViewItem::createItem()
+{
+ return new FmRestoreViewItem( *this );
+}
+
+void FmRestoreViewItem::polish(HbStyleParameters& params)
+{
+ Q_UNUSED(params);
+}
+
+void FmRestoreViewItem::updateChildItems()
+{
+ if( !hLayout ) {
+ init();
+ }
+ QString string = modelIndex().data( Qt::DisplayRole ).toString();
+
+ QStringList stringList = string.split( '\t' );
+
+ if( stringList.count() == 0 ){
+ return;
+ }
+
+ mRestoreContentLabel->setPlainText(stringList.first());
+
+ if (stringList.size() > 0)
+ {
+ mDateTimeLabel->setPlainText(stringList.at(1));
+ }
+ if (stringList.size() > 1)
+ {
+ QIcon icon = mIconProvider->icon(QFileInfo(stringList.at(2)));
+ // FmFileIconProvider already handle null icon issue
+ mIconLabel->setIcon(HbIcon(icon));
+ }
+
+ connect(this, SIGNAL(stateChanged(int)), mParentWidget,
+ SIGNAL(stateChanged(int)));
+
+}
+
+void FmRestoreViewItem::init()
+{
+ mIconProvider = new FmFileIconProvider();
+ hLayout = new QGraphicsLinearLayout();
+ hLayout->setOrientation(Qt::Horizontal);
+ hLayout->addItem(layout());
+
+ mCheckBox = new HbCheckBox(this);
+ hLayout->addItem(mCheckBox);
+ hLayout->setAlignment(mCheckBox, Qt::AlignVCenter);
+
+ QGraphicsGridLayout *vLayout = new QGraphicsGridLayout();
+
+ mRestoreContentLabel = new HbLabel("");
+ mRestoreContentLabel->setFontSpec(HbFontSpec(HbFontSpec::Primary));
+
+ mIconLabel = new HbLabel();
+
+ mDateTimeLabel = new HbLabel("");
+ mDateTimeLabel->setFontSpec(HbFontSpec(HbFontSpec::Secondary));
+
+ vLayout->addItem(mRestoreContentLabel, 0, 0);
+ vLayout->addItem(mIconLabel, 0, 1);
+ vLayout->addItem(mDateTimeLabel, 1, 0);
+
+ HbWidget *textWidget = new HbWidget();
+ textWidget->setLayout(vLayout);
+
+ hLayout->addItem(textWidget);
+ hLayout->setAlignment(textWidget, Qt::AlignVCenter);
+
+ connect(mCheckBox, SIGNAL(stateChanged(int)), this,
+ SIGNAL(stateChanged(int)));
+ setLayout(hLayout);
+}
+
+void FmRestoreViewItem::setCheckBoxState()
+{
+ if ( mCheckBox->checkState() == Qt::Unchecked ){
+ mCheckBox->setCheckState( Qt::Checked );
+ setSelected( true );
+ }
+ else if( mCheckBox->checkState() == Qt::Checked ){
+ mCheckBox->setCheckState( Qt::Unchecked );
+ setSelected( false );
+ }
+}
+
+bool FmRestoreViewItem::getCheckBoxState()
+{
+ if( mCheckBox->checkState() == Qt::Unchecked ) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmrestoreviewitem.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,65 @@
+/*
+ * 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 "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:
+ * The header file of the restore view list item of file manager
+ */
+
+#ifndef FMRESTOREVIEWITEM_H
+#define FMRESTOREVIEWITEM_H
+
+#include <hblistviewitem.h>
+
+class HbLabel;
+class HbCheckBox;
+class HbLineEdit;
+class QGraphicsLinearLayout;
+class HbWidget;
+class FmFileIconProvider;
+//FmRestoreViewItem
+class FmRestoreViewItem : public HbListViewItem
+{
+ Q_OBJECT
+
+public:
+ FmRestoreViewItem( QGraphicsItem *parent = 0 );
+ ~FmRestoreViewItem();
+
+public:
+ virtual HbAbstractViewItem *createItem();
+ virtual void updateChildItems();
+ void setCheckBoxState();
+ bool getCheckBoxState();
+signals:
+ void stateChanged(int);
+
+
+private:
+ virtual void polish(HbStyleParameters& params);
+
+private:
+ void init();
+
+private:
+ HbLabel *mRestoreContentLabel;
+ HbLabel *mDateTimeLabel;
+
+ HbCheckBox *mCheckBox;
+ QGraphicsLinearLayout *hLayout;
+ HbWidget *mParentWidget;
+ HbLabel *mIconLabel;
+ FmFileIconProvider *mIconProvider;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmrestorewidget.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,160 @@
+/*
+ * 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 "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:
+ * The header file of the restore widget of file manager
+ */
+#include "fmrestorewidget.h"
+#include "fmrestoresettings.h"
+#include "fmbackupsettings.h"
+#include "fmrestoreviewitem.h"
+#include "fmoperationservice.h"
+#include "fmviewmanager.h"
+
+#include "fmbackupconfigloader.h"
+#include "fmbkupengine.h"
+#include "fmbackuprestorehandler.h"
+
+#include <QGraphicsLinearLayout>
+#include <QStringListModel>
+#include <QDateTime>
+
+#include <hblistview.h>
+
+
+
+FmRestoreWigdet::FmRestoreWigdet( QGraphicsItem *parent )
+: HbWidget( parent )
+{
+ init();
+}
+
+FmRestoreWigdet::~FmRestoreWigdet()
+{
+}
+
+QList<int> FmRestoreWigdet::selectionIndexes()
+{
+ QList<int> selectionList;
+
+ for ( int i=0; i<mModel->rowCount(); i++ ) {
+ FmRestoreViewItem *item = static_cast<FmRestoreViewItem*>(
+ mListView->itemByIndex( mModel->index( i ) ) );
+ if( item && item->getCheckBoxState() ) {
+ selectionList.push_back( i );
+ }
+ }
+
+ return selectionList;
+}
+
+void FmRestoreWigdet::init()
+{
+ QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout( this );
+ vLayout->setOrientation( Qt::Vertical );
+
+ mListView = new HbListView( this );
+ connect( mListView, SIGNAL( activated( const QModelIndex & ) ),
+ this, SLOT( on_list_activated( const QModelIndex & ) ) );
+
+ mListView->setSelectionMode( HbAbstractItemView::MultiSelection );
+
+ vLayout->addItem( mListView );
+
+ mModel = new QStringListModel();
+ mListView->setModel( mModel );
+ mRestoreSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->RestoreSettingsL();
+ mBackupConfigLoader = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->backupConfigLoader();
+
+ // load backup settings to refresh default target drive
+ FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->BackupSettingsL()->load();
+ mRestoreSettings->load( mBackupConfigLoader->driversAndOperationList() );
+
+ int index = 0;
+
+ QList< FmRestoreEntry* > retoreEntryList = mRestoreSettings->restoreEntryList();
+ mModel->insertRows( 0, retoreEntryList.count() );
+
+ for ( QList< FmRestoreEntry* >::iterator it = retoreEntryList.begin();
+ it != retoreEntryList.end(); ++it ){
+ QString string = ( *it )->text();
+ QDateTime datetime = ( *it )->restoreInfo().dateTime();
+ string.append( '\t' );
+ string.append( datetime.toString( "hh:mm ap dd/MM/yyyy") );
+ QString drive = ( *it )->restoreInfo().drive();
+ string.append( '\t' );
+ string.append( drive );
+ QVariant variant( string );
+
+ mModel->setData( mModel->index( index ), variant, Qt::DisplayRole );
+
+ ++index;
+ }
+
+ mListView->setItemPrototype( new FmRestoreViewItem(this) );
+}
+
+void FmRestoreWigdet::on_list_activated( const QModelIndex &index )
+{
+ FmRestoreViewItem *restoreViewItem = static_cast< FmRestoreViewItem* >
+ ( mListView->itemByIndex( index ) );
+
+ restoreViewItem->setCheckBoxState();
+}
+
+int FmRestoreWigdet::backupDataCount()
+{
+ return mModel->rowCount();
+}
+
+void FmRestoreWigdet::refresh()
+{
+ mListView->setModel( 0 );
+ if( !mModel ) {
+ mModel = new QStringListModel();
+ }
+ mModel->removeRows( 0, mModel->rowCount() );
+
+ mRestoreSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->RestoreSettingsL();
+ mBackupConfigLoader = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->backupConfigLoader();
+ mRestoreSettings->load( mBackupConfigLoader->driversAndOperationList() );
+
+ int index = 0;
+ QList< FmRestoreEntry* > retoreEntryList = mRestoreSettings->restoreEntryList();
+ mModel->insertRows( 0, retoreEntryList.count() );
+ for ( QList< FmRestoreEntry* >::iterator it = retoreEntryList.begin();
+ it != retoreEntryList.end(); ++it ){
+ QString string = ( *it )->text();
+ QDateTime datetime = ( *it )->restoreInfo().dateTime();
+ QString drive = ( *it )->restoreInfo().drive();
+ string.append( '\t' );
+ string.append( datetime.toString( "hh:mm ap dd/MM/yyyy") );
+ string.append( '\t' );
+ string.append( drive );
+ QVariant variant( string );
+ mModel->setData( mModel->index( index ), variant, Qt::DisplayRole );
+ ++index;
+ }
+ mListView->setModel( mModel );
+ mListView->setItemPrototype( new FmRestoreViewItem( this ) );
+
+ for (int i = 0; i < mModel->rowCount(); ++i) {
+ QModelIndex index = mModel->index(i);
+ FmRestoreViewItem* restoreViewItem = static_cast< FmRestoreViewItem* >
+ (mListView->itemByIndex(index));
+ connect(restoreViewItem, SIGNAL(stateChanged(int)), this, SIGNAL(stateChanged(int)));
+ }
+ emit stateChanged(0);
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmrestorewidget.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,57 @@
+/*
+ * 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 "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:
+ * The header file of the restore widget of file manager
+ */
+
+#ifndef FMRESTOREWIDGET_H
+#define FMRESTOREWIDGET_H
+
+#include <hbwidget.h>
+
+class HbListView;
+class QStringListModel;
+class FmRestoreSettings;
+class FmBackupConfigLoader;
+
+class FmRestoreWigdet : public HbWidget
+{
+ Q_OBJECT
+
+public:
+ FmRestoreWigdet( QGraphicsItem *parent = 0 );
+ ~FmRestoreWigdet();
+
+ QList<int> selectionIndexes();
+ int backupDataCount();
+ void refresh();
+private:
+ void init();
+
+signals:
+ void stateChanged(int state);
+
+private slots:
+ void on_list_activated( const QModelIndex &index );
+
+private:
+ HbListView *mListView;
+ QStringListModel *mModel;
+
+ FmRestoreSettings *mRestoreSettings;
+ FmBackupConfigLoader *mBackupConfigLoader;
+};
+
+#endif // FMRESTOREWIDGET_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmcombinedquery.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,200 @@
+/*
+ * 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 "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:
+ * The source file of combined query of file manager
+ */
+
+#include "fmcombinedquery.h"
+
+#include <QGraphicsLinearLayout>
+
+#include <hblistwidget.h>
+#include <hbaction.h>
+#include <hblistwidgetitem.h>
+#include <hbabstractviewitem.h>
+
+FmCombinedQuery::FmCombinedQuery( QGraphicsItem *parent ) : FmDialog( parent ),
+ mSelectMode ( MultiSelectMode ), mDominantIndex ( -1 )
+{
+ setObjectName( "combinedQueryDialog" );
+ mContentWidget = new QGraphicsWidget();
+ mContentWidget->setObjectName( "CombinedQueryContentWidget" );
+ setContentWidget(mContentWidget);
+
+ QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout();
+ vLayout->setOrientation( Qt::Vertical );
+
+ mListWidget = new HbListWidget();
+ vLayout->addItem( mListWidget );
+
+ mListWidget->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+ mListWidget->setObjectName( "CombinedQueryListWidget" );
+ this->setTimeout( NoTimeout );
+ mContentWidget->setLayout( vLayout );
+
+ setSelectMode( mSelectMode );
+ connect( mListWidget, SIGNAL( activated ( const QModelIndex& ) ), this, SLOT( activated( const QModelIndex& ) ) );
+ connect( this, SIGNAL( doCheckForPrimaryAction () ), this, SLOT( checkForPrimaryAction() ), Qt::QueuedConnection );
+ this->setDismissPolicy( NoDismiss );
+
+ doCheckForPrimaryAction();
+}
+
+void FmCombinedQuery::setSelectMode( SelectMode mode )
+{
+ mSelectMode = mode;
+ switch ( mSelectMode )
+ {
+ case SingleSelectMode:
+ mListWidget->setSelectionMode( HbAbstractItemView::SingleSelection );
+ break;
+
+ case MultiSelectMode:
+ mListWidget->setSelectionMode( HbAbstractItemView::MultiSelection );
+ break;
+
+ case NoSelectMode:
+ default:
+ mListWidget->setSelectionMode( HbAbstractItemView::NoSelection );
+ break;
+ }
+}
+
+FmCombinedQuery::~FmCombinedQuery(void)
+{
+}
+
+void FmCombinedQuery::setMarkedListItem( int row, bool mark )
+{
+ QModelIndex index = mListWidget->model()->index( row, 0 );
+ if ( mark ){
+ mListWidget->selectionModel()->select( index, QItemSelectionModel::Select );
+ }
+ else{
+ mListWidget->selectionModel()->select( index, QItemSelectionModel::Deselect );
+ }
+}
+
+void FmCombinedQuery::setDominantIndex( int index )
+{
+ mDominantIndex = index;
+}
+
+void FmCombinedQuery::setListItems( const QMap< int, QString > &list )
+{
+ mListWidget->clear();
+
+ for( QMap< int, QString >::const_iterator it = list.begin();
+ it != list.end(); ++it ){
+ HbListWidgetItem* modelItem = new HbListWidgetItem();
+ if( !modelItem ){
+ return;
+ }
+
+ modelItem->setText( it.value() );
+ modelItem->setData( it.key() );
+
+ mListWidget->addItem( modelItem );
+ }
+}
+
+void FmCombinedQuery::activated( const QModelIndex &index )
+{
+ int selectedRow = index.row();
+ if( selectedRow == mDominantIndex ){
+ QModelIndexList modelIndexList = mListWidget->selectionModel()->selectedIndexes();
+ for( QModelIndexList::const_iterator it = modelIndexList.begin(); it != modelIndexList.end(); ++it ){
+ if( ( *it ) == index ){
+ mListWidget->clearSelection();
+ setMarkedListItem( selectedRow );
+ }
+ }
+ }
+ else if( mDominantIndex >= 0 ){
+ setMarkedListItem( mDominantIndex, false );
+ }
+
+ emit doCheckForPrimaryAction();
+}
+
+QStringList FmCombinedQuery::selectedValues() const
+{
+ QStringList selList;
+ QItemSelectionModel *selectionModel = 0;
+ QList<int> selIndexes;
+
+ if( !mListWidget ){
+ return selList;
+ }
+
+ selectionModel = mListWidget->selectionModel();
+
+ if( selectionModel ){
+ QModelIndexList indexes = selectionModel->selectedIndexes();
+ int count = indexes.count();
+ QModelIndex index;
+ for( int i = 0; i < count; ++i ){
+ index = indexes[i];
+ HbListWidgetItem *item = mListWidget->item( index.row() );
+ if (item) {
+ QString text = item->text();
+ selList.append( text );
+ }
+ }
+ }
+
+ return selList;
+}
+
+
+QList<int> FmCombinedQuery::selectedKeys() const
+{
+ QList<int> selList;
+ QItemSelectionModel *selectionModel = 0;
+ QList<int> selIndexes;
+
+ if( !mListWidget ){
+ return selList;
+ }
+
+ selectionModel = mListWidget->selectionModel();
+
+ if( selectionModel ){
+ QModelIndexList indexes = selectionModel->selectedIndexes();
+ int count = indexes.count();
+ QModelIndex index;
+ for( int i = 0; i < count; ++i ){
+ index = indexes[i];
+ HbListWidgetItem *item = mListWidget->item( index.row() );
+ if ( item ) {
+ int key = item->data().toInt();
+ selList.append( key );
+ }
+ }
+ }
+
+ return selList;
+}
+
+void FmCombinedQuery::checkForPrimaryAction()
+{
+ QItemSelectionModel *selectionModel = mListWidget->selectionModel();
+
+ if( selectionModel->selectedIndexes().count() <= 0 ) {
+ primaryAction()->setDisabled( true );
+ } else {
+ primaryAction()->setDisabled( false );
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmcombinedquery.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,119 @@
+/*
+ * 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 "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:
+ * The header file of combined query of of file manager
+ */
+#ifndef FMCOMBINEDQUERY_H
+#define FMCOMBINEDQUERY_H
+
+#include "fmcommon.h"
+#include "fmdialog.h"
+
+#include <QString>
+#include <QMap>
+#include <QStringList>
+#include <QGraphicsItem>
+
+class HbListWidget;
+class QGraphicsWidget;
+
+// CLASS DECLARATION
+/**
+ * This class is used for popup query dialog
+ * Support multi, single select
+ *
+ */
+class FmCombinedQuery : public FmDialog
+{
+ Q_OBJECT
+public:
+ enum SelectMode
+ {
+ NoSelectMode = 0,
+ SingleSelectMode = 1,
+ MultiSelectMode = 2,
+ };
+
+ FmCombinedQuery( QGraphicsItem *parent = 0 );
+ ~FmCombinedQuery( void );
+
+ /**
+ * Set select mode
+ * @param mode select mode
+ * @see SelectMode
+ */
+ void setSelectMode( SelectMode mode );
+
+ /**
+ * Set select mode
+ * @param mode select mode
+ * @return return select mode
+ * @see SelectMode
+ */
+ inline SelectMode selectMode() const
+ {
+ return mSelectMode;
+ }
+
+ /**
+ * Set one row as marked
+ * @param row the row number which need be marked
+ */
+ void setMarkedListItem( int row, bool mark = true );
+
+ /**
+ * Set dominant index for query list, if click dominant item, clear check status of other items.
+ * @param index dominant index
+ */
+ void setDominantIndex( int index );
+
+ /**
+ * Set list item data
+ * @param list item data as QMap, key is the userdata of list item as value will be displayed.
+ * @see selectedValues
+ * @see selectedKeys
+ */
+ void setListItems(const QMap< int, QString > &list);
+
+ /**
+ * Fetch the selected result of vaules from QMap those are set by setListItems function
+ * @return QStringList of selected values
+ * @see setListItems
+ * @see selectedKeys
+ */
+ QStringList selectedValues() const;
+
+ /**
+ * Fetch the selected result of keys from QMap those are set by setListItems function
+ * @return QList with int of selected keys
+ * @see setListItems
+ * @see selectedValues
+ */
+ QList<int> selectedKeys() const;
+
+signals:
+ void doCheckForPrimaryAction();
+
+public slots:
+ void activated(const QModelIndex &index);
+ void checkForPrimaryAction();
+private:
+ SelectMode mSelectMode; /// select mode , MultiSelectMode is default value
+ QGraphicsWidget *mContentWidget; /// Content widget of popup dialog
+ HbListWidget *mListWidget; /// list widget
+ int mDominantIndex; /// index of dominant item. -1 for none
+};
+
+#endif //FMCOMBINEDQUERY_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmdialog.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,91 @@
+/*
+ * 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 "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:
+ * The source file of filemanager base dialog class
+ */
+
+#include "fmdialog.h"
+#include <hbdialog.h>
+
+FmDialog::FmDialog( QGraphicsItem *parent) : HbDialog( parent ), mRetAction( 0 )
+{
+
+}
+
+HbAction *FmDialog::exec()
+{
+ HbDialog::open( this, SLOT(dialogClosed(HbAction*)) );
+ mEventLoop.exec();
+ return mRetAction;
+}
+
+void FmDialog::dialogClosed(HbAction *action)
+{
+ mRetAction = action;
+ mEventLoop.exit();
+}
+
+HbAction *FmDialog::primaryAction() const
+{
+ QList<QAction *> actionList = QGraphicsWidget::actions();
+ if (actionList.size() > 0) {
+ return (HbAction *)(actionList.at(0));
+ } else {
+ return 0;
+ }
+
+}
+
+void FmDialog::setPrimaryAction( HbAction *action )
+{
+ action->setObjectName( "primaryAction" );
+ QList<QAction *> actionList = QGraphicsWidget::actions();
+ if (actionList.size() == 0) {
+ QGraphicsWidget::addAction(action);
+ } else if (actionList.size() == 1) {
+ actionList.clear();
+ QGraphicsWidget::addAction(action);
+ } else if (actionList.size() == 2) {
+ actionList.removeAt(0);
+ actionList.insert(0, action);
+ }
+}
+
+HbAction *FmDialog::secondaryAction() const
+{
+ QList<QAction *> actionList = QGraphicsWidget::actions();
+ if (actionList.size() > 1) {
+ return (HbAction *)(actionList.at(1));
+ } else {
+ return 0;
+ }
+}
+
+void FmDialog::setSecondaryAction( HbAction *action )
+{
+ action->setObjectName( "secondaryAction" );
+ QList<QAction *> actionList = QGraphicsWidget::actions();
+ if (actionList.size() == 0) {
+ HbAction *primaryAction = new HbAction(hbTrId("txt_common_button_ok"));
+ primaryAction->setObjectName( "primaryAction" );
+ QGraphicsWidget::addAction(primaryAction);
+ QGraphicsWidget::addAction(action);
+ } else if (actionList.size() == 1) {
+ QGraphicsWidget::addAction(action);
+ } else if (actionList.size() == 2) {
+ actionList.removeAt(1);
+ actionList.insert(1, action);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmdialog.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,45 @@
+/*
+ * 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 "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:
+ * The header file of filemanager base dialog class
+ */
+
+#ifndef FMDIALOG_H
+#define FMDIALOG_H
+
+#include <QEventLoop>
+#include <hbaction.h>
+#include <hbdialog.h>
+#include <hbmenu.h>
+class FmDialog : public HbDialog
+{
+Q_OBJECT
+public:
+ explicit FmDialog( QGraphicsItem *parent = 0 );
+ HbAction *exec();
+
+ HbAction *primaryAction() const;
+ void setPrimaryAction( HbAction *action );
+
+ HbAction *secondaryAction() const;
+ void setSecondaryAction( HbAction *action );
+public slots:
+ void dialogClosed(HbAction *action);
+private:
+ QEventLoop mEventLoop;
+ HbAction *mRetAction;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmdlgutils.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,495 @@
+/*
+ * 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 "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:
+ * The source file of the query sdialog utility of file manager
+ */
+
+#include "fmdlgutils.h"
+#include "fmcombinedquery.h"
+#include "fmtimequery.h"
+#include "fmsingletextquery.h"
+#include "fmmultitextquery.h"
+#include "fmutils.h"
+#include "fmviewmanager.h"
+#include "fmmessagebox.h"
+#include "fmdrivequery.h"
+
+#include <QString>
+#include <QStringList>
+#include <QMap>
+
+#include <hblabel.h>
+#include <hbaction.h>
+
+/*
+ Private Constructor
+*/
+FmDlgUtils::FmDlgUtils()
+{
+}
+
+/*!
+ Destructor
+*/
+FmDlgUtils::~FmDlgUtils()
+{
+}
+
+/*!
+ Shows single select setting query dialog
+ \a title used for title text
+ \a textList used for text list for available settings
+ \a selectedIndex used for storing selected index
+ Dialog will be closed as canceled while drive in \a associatedDrives is removed
+ return true if selection made, otherwise false
+*/
+bool FmDlgUtils::showSingleSettingQuery(
+ const QString &title,
+ const QStringList &textList,
+ int &selectedIndex, const QString &associatedDrives )
+{
+ bool ret( false );
+
+ int i = 0;
+ QMap< int, QString > items; // Maps list item with corresponding text in viewer
+ for( QStringList::const_iterator it = textList.begin(); it!= textList.end(); ++it ){
+ items.insert( i, *it );
+ ++i;
+ }
+ bool ok ( false ); // SK return (out parameter)
+
+ FmCombinedQuery *cQuery=new FmCombinedQuery;
+ cQuery->setSelectMode( FmCombinedQuery::SingleSelectMode );
+ cQuery->setHeadingWidget( new HbLabel( title ) );
+ cQuery->setListItems( items );
+
+ if( selectedIndex != -1 ){
+ cQuery->setMarkedListItem( selectedIndex );
+ }
+
+ QString sk1 ( hbTrId( "txt_common_button_ok" ) );
+ QString sk2 ( hbTrId("txt_common_button_cancel" ) );
+
+ if( !sk1.isEmpty() ) {
+ HbAction *primary = new HbAction( sk1 );
+ cQuery->setPrimaryAction( primary );
+ }
+
+ if( !sk2.isEmpty() ) {
+ HbAction *secondary = new HbAction( sk2 );
+ cQuery->setSecondaryAction( secondary );
+ }
+
+ //HbAction* action = cQuery->exec();
+ HbAction* action = executeDialog( cQuery, associatedDrives );
+ if( action == cQuery->primaryAction() ){
+ ok = true;
+ }
+ else{
+ ok = false;
+ }
+ if( ok ){
+ //get selected key list.
+ QList<int> selectedKeyList = cQuery->selectedKeys();
+
+ // Get new selection and notify changes
+ int selectionResult( 0 );
+ int i = 0;
+ for ( QMap< int, QString >::const_iterator it = items.begin(); it != items.end(); ++it ){
+ // if one item has been selected( judge if the key is in the selected key list)
+ if ( selectedKeyList.indexOf( it.key() ) >= 0 ) {
+ selectionResult = i;
+ break;
+ }
+ ++i;
+ }
+ if ( selectionResult != selectedIndex ){
+ selectedIndex = selectionResult;
+ ret = true;
+ }
+ }
+ delete cQuery;
+ return ret;
+}
+
+/*!
+ Shows multi select setting query dialog
+ \a title used for title text
+ \a textList used for text list for available settings
+ \a selection used for storing selected indexes as bitmask
+ \a dominantIndex used for dominant index for select all behaviour
+ Dialog will be closed as canceled while drive in \a associatedDrives is removed
+ return true if selection made, otherwise false
+*/
+bool FmDlgUtils::showMultiSettingQuery(
+ const QString &title,
+ const QStringList &textList,
+ quint32 &selection,
+ int dominantIndex, const QString &associatedDrives )
+{
+ bool ret( false );
+
+ int i = 0;
+ QMap<int, QString> items; // Maps list item with corresponding text in viewer
+ for( QStringList::const_iterator it = textList.begin(); it!= textList.end(); ++it){
+ items.insert( i, *it );
+ ++i;
+ }
+ bool ok ( false ); // SK return (out parameter)
+
+ FmCombinedQuery *cQuery=new FmCombinedQuery;
+ cQuery->setSelectMode( FmCombinedQuery::MultiSelectMode );
+ cQuery->setHeadingWidget( new HbLabel( title ) );
+ cQuery->setListItems( items );
+ cQuery->setDominantIndex( dominantIndex );
+
+ // Create selection array
+ int count( textList.count() );
+ for ( int i( 0 ); i < count; ++i ){
+ if ( selection & ( 1 << i ) ){
+ cQuery->setMarkedListItem( i );
+ }
+ }
+
+
+ QString sk1 ( hbTrId( "txt_common_button_ok" ) );
+ QString sk2 ( hbTrId( "txt_common_button_cancel" ) );
+
+ if( !sk1.isEmpty() ) {
+ HbAction *primary = new HbAction( sk1 );
+ cQuery->setPrimaryAction( primary );
+ }
+
+ if( !sk2.isEmpty() ) {
+ HbAction *secondary = new HbAction( sk2 );
+ cQuery->setSecondaryAction( secondary );
+ }
+
+ HbAction* action = executeDialog( cQuery, associatedDrives );
+ if( action == cQuery->primaryAction() ){
+ ok = true;
+ }
+ else{
+ ok = false;
+ }
+ if( ok )
+ {
+ //get selected key list.
+ QList<int> selectedKeyList = cQuery->selectedKeys();
+
+ // Get new selection and notify changes
+ quint32 selectionResult( 0 );
+ int i = 0;
+ for ( QMap< int, QString >::const_iterator it = items.begin(); it != items.end(); ++it ){
+ // if one item has been selected( judge if the key is in the selected key list)
+ if ( selectedKeyList.indexOf( it.key() ) >= 0 ) {
+ selectionResult |= 1 << i;
+ }
+ ++i;
+ }
+ if ( selectionResult != selection ){
+ selection = selectionResult;
+ ret = true;
+ }
+ }
+ delete cQuery;
+ return ret;
+}
+
+/*!
+ Shows time setting query dialog
+ \a title used for title text
+ \a time used for selected time
+ Dialog will be closed as canceled while drive in \a associatedDrives is removed
+ return true if selection made, otherwise false
+*/
+bool FmDlgUtils::showTimeSettingQuery(
+ const QString &title, QTime &time, const QString &associatedDrives )
+{
+ bool ret( false );
+ bool ok ( false ); // SK return (out parameter)
+
+ FmTimeQuery *cQuery=new FmTimeQuery;
+ cQuery->setHeadingWidget( new HbLabel( title ) );
+ cQuery->setTime( time );
+
+ QString sk1 ( hbTrId( "txt_common_button_ok" ) );
+ QString sk2 ( hbTrId( "txt_common_button_cancel" ) );
+
+ if( !sk1.isEmpty() ) {
+ HbAction *primary = new HbAction( sk1 );
+ cQuery->setPrimaryAction( primary );
+ }
+
+ if( !sk2.isEmpty() ) {
+ HbAction *secondary = new HbAction( sk2 );
+ cQuery->setSecondaryAction( secondary );
+ }
+
+ HbAction* action = executeDialog( cQuery, associatedDrives );
+ if( action == cQuery->primaryAction() ){
+ ok = true;
+ }
+ else{
+ ok = false;
+ }
+ if( ok )
+ {
+ QTime resultTime = cQuery->getTime();
+ if ( resultTime != time ){
+ time = resultTime;
+ ret = true;
+ }
+ }
+ delete cQuery;
+ return ret;
+}
+
+/*!
+ Shows text query dialog
+ \a title used for title text
+ \a text used for receiving user input text
+ \a validRegExpStringList used for set valid regExp string list
+ \a maxLength used for setting max length of input text
+ Dialog will be closed as canceled while drive in \a associatedDrives is removed
+ Set \a isReturnFalseWhenNoTextChanged true if need make return value as true while no text changed
+ return true if text change is made, otherwise false
+*/
+bool FmDlgUtils::showTextQuery(
+ const QString& title, QString& text, QStringList validRegExpStringList,
+ int maxLength, const QString &associatedDrives, bool isReturnFalseWhenNoTextChanged )
+{
+ bool ret( false );
+ bool ok ( true ); // SK return (out parameter)
+
+ FmSingleTextQuery *cQuery = new FmSingleTextQuery();
+ if( maxLength != -1 ){
+ cQuery->setLineEditMaxLength( maxLength );
+ }
+ cQuery->setHeadingWidget( new HbLabel( title ) );
+
+ cQuery->setRegExpStringList( validRegExpStringList );
+
+ QString sk1 ( hbTrId ( "txt_common_button_ok" ) );
+ QString sk2 ( hbTrId ( "txt_common_button_cancel" ) );
+
+ if( !sk1.isEmpty() ) {
+ HbAction *primary = new HbAction( sk1 );
+ cQuery->setPrimaryAction( primary );
+ }
+
+ if( !sk2.isEmpty() ) {
+ HbAction *secondary = new HbAction( sk2 );
+ cQuery->setSecondaryAction( secondary );
+ }
+ cQuery->setLineEditText( text );
+ cQuery->checkActions();
+
+ HbAction* action = executeDialog( cQuery, associatedDrives );
+ if( action == cQuery->primaryAction() ){
+ ok = true;
+ }
+ else{
+ ok = false;
+ }
+
+ if( ok ){
+ QString newName = cQuery->getLineEditText();
+ if ( newName == text ){
+ if( isReturnFalseWhenNoTextChanged ) {
+ ret = false;
+ }
+ else {
+ ret = true;
+ }
+ } else {
+ text = newName;
+ ret = true;
+ }
+ }
+ delete cQuery;
+ return ret;
+}
+
+/*!
+ Shows single-line password query dialog
+ \a title used for title text
+ \a pwd used for receiving user input password
+ \a maxLength used for setting max length of input password
+ Dialog will be closed as canceled while drive in \a associatedDrives is removed
+ return true if password text is inputted, otherwise false
+*/
+bool FmDlgUtils::showSinglePasswordQuery( const QString &title, QString &pwd, int maxLength, const QString &associatedDrives )
+{
+ bool ret( false );
+
+ FmSingleTextQuery *cQuery = new FmSingleTextQuery( HbLineEdit::Password );
+ if( maxLength != -1 ){
+ cQuery->setLineEditMaxLength( maxLength );
+ }
+ cQuery->setHeadingWidget( new HbLabel( title ) );
+
+ // validate that length is not zero. space is acceptable character.
+ cQuery->setRegExpStringList( QStringList( Regex_ValidUnZeroLength ) );
+ QString sk1 ( hbTrId("txt_common_button_ok" ) );
+ QString sk2 ( hbTrId("txt_common_button_cancel" ) );
+
+ if( !sk1.isEmpty() ) {
+ HbAction *primary = new HbAction( sk1 );
+ cQuery->setPrimaryAction( primary );
+ }
+
+ if( !sk2.isEmpty() ) {
+ HbAction *secondary = new HbAction( sk2 );
+ cQuery->setSecondaryAction( secondary );
+ }
+ cQuery->checkActions();
+
+ HbAction* action = executeDialog( cQuery, associatedDrives );
+ if( action == cQuery->primaryAction() ){
+ ret = true;
+ pwd = cQuery->getLineEditText();
+ }
+ else{
+ ret = false;
+ }
+
+ delete cQuery;
+ return ret;
+}
+
+/*!
+ Shows mulit-line password query dialog. If two password is not equal, primary action is dimmed
+ \a firstLabel used for first line title text
+ \a secondLabel used for second line title text
+ \a pwd used for receiving user input password
+ \a maxLength used for setting max length of input password
+ Dialog will be closed as canceled while drive in \a associatedDrives is removed
+ return true if password text is inputted, otherwise false
+*/
+bool FmDlgUtils::showMultiPasswordQuery(
+ const QString &firstLabel, const QString &secondLabel, QString &pwd, int maxLength, const QString &associatedDrives )
+{
+ bool ret( false );
+
+ FmMultiTextQuery *cQuery = new FmMultiTextQuery( HbLineEdit::Password );
+ if( maxLength != -1 ){
+ cQuery->setLineEditMaxLength( maxLength );
+ }
+ cQuery->setFirstLabelText( firstLabel );
+ cQuery->setSecondLabelText( secondLabel );
+
+ QString sk1 = ( hbTrId( "txt_common_button_ok" ) );
+ QString sk2 = ( hbTrId( "txt_common_button_cancel" ) );
+
+ if( !sk1.isEmpty() ) {
+ HbAction *primary = new HbAction( sk1 );
+ cQuery->setPrimaryAction( primary );
+ }
+
+ if( !sk2.isEmpty() ) {
+ HbAction *secondary = new HbAction( sk2 );
+ cQuery->setSecondaryAction( secondary );
+ }
+ cQuery->checkActions();
+
+ HbAction* action = executeDialog( cQuery, associatedDrives );
+ if( action == cQuery->primaryAction() ){
+ QString firstPwd = cQuery->getFirstEditText();
+ QString secondPwd = cQuery->getSecondEditText();
+ if ( firstPwd == secondPwd ){
+ pwd = secondPwd;
+ ret = true;
+ }
+ }
+ else{
+ ret = false;
+ }
+
+ delete cQuery;
+ return ret;
+}
+
+/*!
+ This is a convenience function for showing a question dialog with \a questionText
+ Default buttons are Yes and No.
+*/
+bool FmDlgUtils::question( const QString &questionText,
+ HbMessageBox::StandardButtons buttons )
+{
+ FmMessageBox msgBox;
+ return msgBox.question( questionText, buttons );
+}
+
+/*!
+ This is a convenience function for showing an information dialog with \a informationText
+ Default button is OK.
+*/
+void FmDlgUtils::information( const QString &informationText,
+ HbMessageBox::StandardButtons buttons )
+{
+ FmMessageBox msgBox;
+ return msgBox.information( informationText, buttons );
+}
+
+/*!
+ Shows query dialog for select backup drive
+ \a title used for title text
+ only backup target drives will be shown.
+ return selected drive, and empty string for cancel.
+*/
+QString FmDlgUtils::showBackupDriveQuery( const QString& title )
+{
+ QString ret;
+
+ FmDriveQuery *cQuery = new FmDriveQuery();
+ cQuery->setHeadingWidget( new HbLabel( title ) );
+
+ QString sk = ( hbTrId( "txt_common_button_cancel" ) );
+
+ HbAction *primary = new HbAction( sk );
+ cQuery->setPrimaryAction( primary );
+
+ executeDialog( cQuery, QString() );
+ ret = cQuery->selectedDrive();
+
+ delete cQuery;
+ return ret;
+}
+
+/*
+ Private function used to popup \a dialog
+ If want popup dialog in class FmDlgUtils, please call this function.
+ Dialog will be closed as canceled while drive in \a associatedDrives is removed
+ return selected action.
+*/
+HbAction *FmDlgUtils::executeDialog( FmDialog *dialog, const QString &associatedDrives )
+{
+ for( int i = 0; i < associatedDrives.length(); i++ ) {
+ QString drive( associatedDrives[i] + QString( ":/" ) );
+ if( !FmUtils::isDriveAvailable( drive ) ) {
+ FM_LOG( "executeDialog return 0_ " + associatedDrives );
+ return 0;
+ }
+ }
+
+ FmDlgCloseUnit dlgCloseUnit( dialog );
+ dlgCloseUnit.addAssociatedDrives( associatedDrives );
+
+ FmViewManager::viewManager()->addDlgCloseUnit( &dlgCloseUnit );
+ HbAction* action = dialog->exec();
+ FmViewManager::viewManager()->removeDlgCloseUnit( &dlgCloseUnit );
+ return action;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmdlgutils.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,86 @@
+/*
+ * 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 "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:
+ * The header file of the query dialog utility of file manager
+ */
+
+#ifndef FMDLGUTILS_H
+#define FMDLGUTILS_H
+
+#include "fmcommon.h"
+
+#include <QString>
+#include <QStringList>
+#include <QTime>
+
+#include <hbglobal.h>
+#include <hbmessagebox.h>
+
+class FmDialog;
+class HbAction;
+
+/*!
+ \class FmDlgUtils
+ \brief The class FmDlgUtils is static utility class. Used to popup dialogs
+ */
+class FmDlgUtils : public QObject
+{
+ Q_OBJECT
+public:
+ static bool showSingleSettingQuery(
+ const QString &title,
+ const QStringList &textList,
+ int &selectedIndex,
+ const QString &associatedDrives = QString() );
+
+ static bool showMultiSettingQuery(
+ const QString &title,
+ const QStringList &textList,
+ quint32 &selection,
+ int dominantIndex,
+ const QString &associatedDrives = QString() );
+
+ static bool showTimeSettingQuery(
+ const QString &title, QTime &time,
+ const QString &associatedDrives = QString() );
+
+ static bool showTextQuery(
+ const QString &title, QString &text, QStringList validRegExpStringList = QStringList( Regex_ValidUnEmpty ),
+ int maxLength = -1, const QString &associatedDrives = QString(), bool isReturnFalseWhenNoTextChanged = true );
+
+ static bool showSinglePasswordQuery(
+ const QString &title, QString &pwd, int maxLength = -1,
+ const QString &associatedDrives = QString() );
+
+ static bool showMultiPasswordQuery(
+ const QString &firstLabel, const QString &secondLabel, QString &pwd, int maxLength = -1,
+ const QString &associatedDrives = QString() );
+
+ static bool question( const QString &questionText,
+ HbMessageBox::StandardButtons buttons = HbMessageBox::Yes | HbMessageBox::No );
+
+ static void information( const QString &informationText,
+ HbMessageBox::StandardButtons buttons = HbMessageBox::Ok );
+
+ static QString showBackupDriveQuery( const QString& title );
+
+ ~FmDlgUtils();
+private:
+ FmDlgUtils();
+ static HbAction *executeDialog( FmDialog *dialog, const QString &associatedDrives );
+};
+
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmdrivedetailstype.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,225 @@
+/*
+ * 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 "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:
+ * The source file of the drive details type
+ */
+
+#include "fmdrivedetailstype.h"
+#include "fmfiletyperecognizer.h"
+#include "fmutils.h"
+
+#include <QDir>
+#include <QFileInfo>
+#include <QStringList>
+
+int FmDriveDetailsContent::querySizeofContent( const QString &driveName,
+ QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped )
+{
+ int err = FmErrNone;
+ detailsSizeList.clear();
+ err = getDataSizeByTraversePath( driveName, detailsSizeList, isStopped );
+ if( err != FmErrNone ) {
+ return err;
+ }
+
+ QStringList dataPathList;
+ dataPathList.append( QString( FmViewDetail_Contacts ) );
+ FmDriveDetailsDataGroup driveDetailsDataGroup( FmDriveDetailsSize::ETypeContacts, dataPathList );
+
+ err = getDataSizeByAbsolutePath(driveName, driveDetailsDataGroup, detailsSizeList, isStopped);
+ if( err != FmErrNone ) {
+ return err;
+ }
+
+ return FmErrNone;
+}
+int FmDriveDetailsContent::getDataSizeByTraversePath( const QString &driveName,
+ QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped )
+{
+ qint64 imageSize( 0 );
+ qint64 soundSize( 0 );
+ qint64 midpJavaSize( 0 );
+ qint64 nativeAppsSize( 0 );
+ qint64 videoSize( 0 );
+ qint64 documentsSize( 0 );
+
+ FmFileTypeRecognizer fileTypeRecognizer;
+
+ QList<QDir> dirs;
+ dirs.append( QDir( driveName ) );
+
+ // traverse the whole drive
+ while (!dirs.isEmpty()) {
+ QDir::Filters filter = QDir::NoDotAndDotDot | QDir::AllEntries;
+ // do not summarize system and hidden files, these size will go into others category
+ // if( isSysHiddenIncluded ) {
+ // filter = filter | QDir::Hidden | QDir::System;
+ // }
+
+ QFileInfoList infoList = dirs.first().entryInfoList( filter );
+ for ( QFileInfoList::const_iterator it = infoList.begin(); it != infoList.end(); ++it ) {
+ if ( *isStopped ){
+ return FmErrCancel;
+ }
+
+ if ( it->isFile() ) {
+ FmFileTypeRecognizer::FileType fileType =
+ fileTypeRecognizer.getType( it->absoluteFilePath() );
+ switch ( fileType )
+ {
+ case FmFileTypeRecognizer::FileTypeImage:
+ imageSize += it->size();
+ break;
+ case FmFileTypeRecognizer::FileTypeTone:
+ soundSize += it->size();
+ break;
+ case FmFileTypeRecognizer::FileTypeJava:
+ midpJavaSize += it->size();
+ break;
+ case FmFileTypeRecognizer::FileTypeSisx:
+ nativeAppsSize += it->size();
+ break;
+ case FmFileTypeRecognizer::FileTypeVideo:
+ videoSize += it->size();
+ break;
+ case FmFileTypeRecognizer::FileTypeText:
+ documentsSize += it->size();
+ break;
+ default:
+ // do not need handle other type
+ break;
+ }
+ }
+ else if ( it->isDir() ) {
+ dirs.append( QDir( it->absoluteFilePath() ) );
+ }
+ }
+ dirs.removeFirst();
+ }
+
+ // store result to detailsSizeList.
+ detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeImages, imageSize ) ) ;
+ detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeSoundFiles, soundSize ) );
+ detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeMidpJava, midpJavaSize ) );
+ detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeNativeApps, nativeAppsSize ) );
+ detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeVideos, videoSize ) );
+ detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeDocuments, documentsSize ) );
+ return FmErrNone;
+}
+
+int FmDriveDetailsContent::getDataSizeByAbsolutePath( const QString &driveName,
+ const FmDriveDetailsDataGroup &dataGroup,
+ QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped )
+{
+ quint64 totalSize = 0;
+ QStringList typeFilter = dataGroup.pathList();
+
+ for( QStringList::const_iterator it = typeFilter.begin();
+ it!= typeFilter.end(); ++it ) {
+ if ( *isStopped ){
+ return FmErrCancel;
+ }
+ QString driver(FmUtils::removePathSplash(FmUtils::getDriveNameFromPath(driveName)));
+ QFileInfo fileInfo(QString(driver + (*it)));
+ if (fileInfo.exists()) {
+ totalSize += fileInfo.size();
+ }
+ }
+
+ detailsSizeList.append( new FmDriveDetailsSize( dataGroup.dataType(), totalSize ) );
+ return FmErrNone;
+}
+
+int FmFolderDetails::queryDetailOfContentList( const QStringList folderPathList,int &numofFolders,
+ int &numofFiles, quint64 &totalSize,
+ volatile bool *isStopped, bool isSysHiddenIncluded )
+{
+ numofFolders = 0;
+ numofFiles = 0;
+ totalSize = 0;
+
+ int tempNumofFolders = 0;
+ int tempNumofFiles = 0;
+ quint64 tempSize = 0;
+
+ int ret = FmErrNone;
+
+ foreach( const QString& folderPath, folderPathList ) {
+ QFileInfo fileInfo( folderPath );
+ if( fileInfo.isDir() ){
+ int tempNumofSubFolders = 0;
+ ret = getNumofSubfolders( folderPath, tempNumofSubFolders,
+ tempNumofFiles, tempSize, isStopped, isSysHiddenIncluded );
+ tempNumofFolders = tempNumofSubFolders + 1; // add itself to folder count;
+ } else if( fileInfo.isFile() ) {
+ tempNumofFiles = 1;
+ tempSize = fileInfo.size();
+ ret = FmErrNone;
+ } else {
+ ret = FmErrIsNotFileOrFolder;
+ }
+ if( ret != FmErrNone ) {
+ return ret;
+ }
+ numofFolders+= tempNumofFolders;
+ numofFiles += tempNumofFiles;
+ totalSize += tempSize;
+
+ tempNumofFolders = 0;
+ tempNumofFiles = 0;
+ tempSize = 0;
+ }
+
+ return ret;
+}
+
+int FmFolderDetails::getNumofSubfolders( const QString &folderPath, int &numofSubFolders,
+ int &numofFiles, quint64 &sizeofFolder,
+ volatile bool *isStopped, bool isSysHiddenIncluded )
+{
+ numofSubFolders = 0;
+ numofFiles = 0;
+ sizeofFolder = 0;
+
+ QList<QDir> dirs;
+ dirs.append( QDir( folderPath ) );
+
+ while (!dirs.isEmpty()) {
+ QDir::Filters filter = QDir::NoDotAndDotDot | QDir::AllEntries;
+ if( isSysHiddenIncluded ) {
+ filter = filter | QDir::Hidden | QDir::System;
+ }
+
+ QFileInfoList infoList = dirs.first().entryInfoList( filter );
+ for ( QFileInfoList::const_iterator it = infoList.begin(); it != infoList.end(); ++it ) {
+ if ( *isStopped ){
+ return FmErrCancel;
+ }
+
+ if ( it->isFile() ) {
+ ++numofFiles;
+ sizeofFolder += it->size();
+ }
+ else if ( it->isDir() ) {
+ ++numofSubFolders;
+ dirs.append( QDir( it->absoluteFilePath() ) );
+ }
+ }
+
+ dirs.removeFirst();
+ }
+
+ return FmErrNone;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmdrivedetailstype.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,194 @@
+/*
+ * 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 "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:
+ * The header file of the drive details type
+ */
+
+#ifndef FMDRIVEDETAILSTYPE_H
+#define FMDRIVEDETAILSTYPE_H
+
+#include <QString>
+#include <QList>
+#include <QStringList>
+
+/*
+ \class FmDriveDetailsSize
+ \brief The class FmDriveDetailsSize used to store view details result.
+ */
+class FmDriveDetailsSize
+{
+public:
+ enum TDataType{
+ ETypeImages = 0,
+ ETypeSoundFiles,
+ ETypeMidpJava,
+ ETypeNativeApps,
+ ETypeVideos,
+ ETypeDocuments,
+ ETypeCalendar,
+ ETypeContacts,
+ ETypeMessages,
+ ETypeOthers
+ };
+
+public:
+ FmDriveDetailsSize( TDataType dataType, quint64 size )
+ : mDataType( dataType ), mSize( size ) {}
+ FmDriveDetailsSize( const FmDriveDetailsSize &other )
+ {
+ *this = other;
+ }
+
+ FmDriveDetailsSize &operator= ( const FmDriveDetailsSize &rhs )
+ {
+ this->mDataType = rhs.mDataType;
+ this->mSize = rhs.mSize;
+ return *this;
+ }
+
+ /*!
+ request the stored data type
+ */
+ TDataType dataType() const { return mDataType; }
+
+ /*!
+ request the stored size that related to data type
+ */
+ quint64 size() const { return mSize; }
+
+private:
+ /*!
+ store the data type
+ */
+ TDataType mDataType;
+
+ /*!
+ store the size that related to mDataType
+ */
+ quint64 mSize;
+};
+
+/*
+ \class FmDriveDetailsDataGroup
+ \brief The class FmDriveDetailsDataGroup used to store command of get size of absolute file path.
+ */
+class FmDriveDetailsDataGroup
+{
+public:
+ FmDriveDetailsDataGroup( FmDriveDetailsSize::TDataType dataType,
+ QStringList filePathList )
+ : mDataType( dataType ), mFilePath( filePathList )
+ {
+ }
+ FmDriveDetailsDataGroup( const FmDriveDetailsDataGroup &other )
+ {
+ *this = other;
+ }
+
+ FmDriveDetailsDataGroup &operator= ( const FmDriveDetailsDataGroup &rhs )
+ {
+ this->mDataType = rhs.mDataType;
+ this->mFilePath = rhs.mFilePath;
+ return *this;
+ }
+
+ FmDriveDetailsSize::TDataType dataType() const { return mDataType; }
+ QStringList pathList() const { return mFilePath; }
+private:
+ /*!
+ Store which data type does mFilePath belong to.
+ */
+ FmDriveDetailsSize::TDataType mDataType;
+
+ /*!
+ Store absolute file path that will used to calcuate whole data size related to mDataType
+ */
+ QStringList mFilePath;
+};
+
+/*
+ \class FmDriveDetailsContent
+ \brief The class FmDriveDetailsContent is the interface of view details feature
+ */
+class FmDriveDetailsContent
+{
+public:
+ /*!
+ Gets data size for drive
+ \a driveName which drive is searching
+ \a detailsSizeList if got result, new FmDriveDetailsSize will be appended to detailsSizeList
+ \a isStopped isStopped will be set as true if user cancel this operation
+ return Filemanage wide error. Please refer to fmdefine.h
+ */
+ static int querySizeofContent(
+ const QString &driveName, QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped );
+
+private:
+ /*!
+ Gets data size(related to file type,e.g. image, sound) by traverse designated drive name.
+ provide size except the path related to absolute path(getDataSizeByAbsolutePath)
+ \sa driveName which drive is searching
+ \a detailsSizeList if got result, new FmDriveDetailsSize will be appended to detailsSizeList
+ \a isStopped isStopped will be set as true if user cancel this operation
+ return Filemanage wide error. Please refer to fmdefine.h
+ */
+ static int getDataSizeByTraversePath( const QString &driveName,
+ QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped );
+
+ /*!
+ Gets data size for single FmDriveDetailsDataGroup, the method is find file of absolute path
+ \a driveName which drive is searching
+ \a dataGroup which dataGroup is searching, for example, EGroupContacts...
+ \a detailsSizeList if got result, new FmDriveDetailsSize will be appended to detailsSizeList
+ \a isStopped isStopped will be set as true if user cancel this operation
+ return Filemanage wide error. Please refer to fmdefine.h
+ */
+ static int getDataSizeByAbsolutePath( const QString &driveName, const FmDriveDetailsDataGroup &dataGroup,
+ QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped );
+};
+
+class FmFolderDetails
+{
+public:
+
+ /*!
+ Gets details for a list of folders
+ \a folderPathList folder path list
+ \a numofFolders output how many folders and subfolders in the list
+ \a numofFiles output how many files in the list
+ \a totalSize output the total size
+ \a isStopped isStopped will be set as true if user cancel this operation
+ \a isSysHiddenIncluded will add QDir::Hidden | QDir::System into filter if true
+ return Filemanage wide error. Please refer to fmdefine.h
+ */
+ static int queryDetailOfContentList( const QStringList folderPathList,int &numofFolders,
+ int &numofFiles, quint64 &totalSize, volatile bool *isStopped, bool isSysHiddenIncluded = false );
+ /*!
+ Gets details for a folder
+ \a folderPath path of the folder
+ \a numofSubFolders output how many subfolders in the list, not include itself
+ \a numofFiles output how many files in the folder
+ \a sizeofFolder output the size of folder
+ \a isStopped isStopped will be set as true if user cancel this operation
+ \a isSysHiddenIncluded will add QDir::Hidden | QDir::System into filter if true
+ return Filemanage wide error. Please refer to fmdefine.h
+ */
+ static int getNumofSubfolders( const QString &folderPath, int &numofSubFolders,
+ int &numofFiles, quint64 &sizeofFolder,
+ volatile bool *isStopped, bool isSysHiddenIncluded = false );
+};
+
+#endif /* FMDRIVEDETAILSTYPE_H */
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmdrivequery.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,96 @@
+/*
+ * 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 "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:
+ * The source file of backup drive query of file manager
+ */
+
+#include "fmdrivequery.h"
+#include "fmviewmanager.h"
+#include "fmbackuprestorehandler.h"
+
+#include <QGraphicsLinearLayout>
+#include "hblistview.h"
+
+FmDriveQuery::FmDriveQuery( QGraphicsItem *parent ) : FmDialog( parent )
+{
+ setObjectName( "driveQueryDialog" );
+ mContentWidget = new QGraphicsWidget();
+ mContentWidget->setObjectName( "driveQueryContentWidget" );
+ setContentWidget(mContentWidget);
+
+ QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout();
+ vLayout->setOrientation( Qt::Vertical );
+
+ mListView = new HbListView();
+ mListView->setObjectName( "driveQueryListView" );
+ vLayout->addItem( mListView );
+
+ mListView->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+
+ this->setTimeout( NoTimeout );
+ mContentWidget->setLayout( vLayout );
+
+ connect( mListView, SIGNAL( activated ( const QModelIndex& ) ), this, SLOT( activated( const QModelIndex& ) ) );
+ this->setDismissPolicy( NoDismiss );
+
+
+ mDriveModel = new FmDriveModel( this,
+ FmDriveModel::FillWithVolume | FmDriveModel::FillWithDefaultVolume, this );
+ mListView->setModel( mDriveModel );
+
+ // connect refreshModel signal of viewmanager for drive insert/remove event.
+ connect( FmViewManager::viewManager(), SIGNAL( refreshModel( QString ) ),
+ this, SLOT( refreshModel( QString ) ) );
+}
+
+FmDriveQuery::~FmDriveQuery(void)
+{
+ delete mDriveModel;
+ mDriveModel = 0;
+}
+
+void FmDriveQuery::getDriveList( QStringList &driveList )
+{
+ // provide drive list which is got from backup engine wrapper.
+ FmViewManager::viewManager()->operationService()->backupRestoreHandler()->getBackupDriveList( driveList );
+}
+
+void FmDriveQuery::activated( const QModelIndex &index )
+{
+ QString driveName( mDriveModel->driveName( index ) );
+
+ // if drive is not available, ignore activate signal.
+ FmDriverInfo driveInfo = FmUtils::queryDriverInfo( driveName );
+ if( !( driveInfo.driveState() & FmDriverInfo::EDriveAvailable ) ) {
+ return;
+ }
+
+ mSelectedDrive = driveName;
+ close();
+}
+
+QString FmDriveQuery::selectedDrive() const
+{
+ return mSelectedDrive;
+}
+
+void FmDriveQuery::refreshModel( QString path )
+{
+ if( !path.isEmpty() ) {
+ // ignore non-empty refresh signal as it means change of folder/file, not drive.
+ return;
+ }
+ mDriveModel->refresh();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmdrivequery.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,60 @@
+/*
+ * 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 "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:
+ * The header file of backup drive query of of file manager
+ */
+#ifndef FMDRIVEQUERY_H
+#define FMDRIVEQUERY_H
+
+#include "fmcommon.h"
+#include "fmdialog.h"
+#include "fmdrivemodel.h"
+
+#include <QString>
+#include <QMap>
+#include <QStringList>
+#include <QGraphicsItem>
+
+class HbListView;
+class QGraphicsWidget;
+
+// CLASS DECLARATION
+/**
+ * This class is used for drive select query dialog
+ *
+ */
+class FmDriveQuery : public FmDialog, public FmDriveListProvider
+{
+ Q_OBJECT
+public:
+ FmDriveQuery( QGraphicsItem *parent = 0 );
+ ~FmDriveQuery();
+ QString selectedDrive() const;
+
+ // from FmDriveListProvider
+ virtual void getDriveList( QStringList &driveList );
+
+public slots:
+ void activated(const QModelIndex &index);
+ void refreshModel( QString path );
+private:
+ QGraphicsWidget *mContentWidget; /// Content widget of popup dialog
+ HbListView *mListView; /// list view
+ FmDriveModel *mDriveModel; /// drive model
+
+ QString mSelectedDrive;
+};
+
+#endif //FMDRIVEQUERY_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmmessagebox.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,57 @@
+/*
+ * 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 "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:
+ * The source file of filemanager messagebox
+ */
+
+#include "fmmessagebox.h"
+#include <hbmessagebox.h>
+
+/*!
+ This is a convenience function for showing an information dialog with \a informationText
+*/
+void FmMessageBox::information( const QString &informationText,
+ HbMessageBox::StandardButtons buttons )
+{
+ HbMessageBox::information ( informationText,
+ this, SLOT(dialogClosed(HbAction*)), buttons );
+ mEventLoop.exec();
+}
+
+/*!
+ This is a convenience function for showing a question dialog with \a questionText
+*/
+bool FmMessageBox::question( const QString &questionText,
+ HbMessageBox::StandardButtons buttons )
+{
+ HbMessageBox::question ( questionText,
+ this, SLOT(dialogClosed(HbAction*)), buttons );
+ mEventLoop.exec();
+ return mRet;
+}
+
+void FmMessageBox::dialogClosed(HbAction *action)
+{
+ HbMessageBox *dlg = static_cast<HbMessageBox*>(sender());
+ if(action == dlg->actions().at(0))
+ {
+ mRet = true;
+ }
+ else
+ {
+ mRet = false;
+ }
+ mEventLoop.exit();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmmessagebox.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,49 @@
+/*
+ * 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 "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:
+ * The header file of filemanager messagebox
+ */
+
+#ifndef FMMESSAGEBOX_H
+#define FMMESSAGEBOX_H
+
+#include <QEventLoop>
+#include <hbmessagebox.h>
+#include <hbaction.h>
+
+class FmMessageBox : public QObject
+{
+Q_OBJECT
+public:
+ FmMessageBox()
+ {
+ }
+ ~FmMessageBox()
+ {
+ }
+ void information( const QString &informationText,
+ HbMessageBox::StandardButtons buttons );
+
+ bool question( const QString &questionText,
+ HbMessageBox::StandardButtons buttons );
+
+public slots:
+ void dialogClosed(HbAction *action);
+private:
+ QEventLoop mEventLoop;
+ bool mRet;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmmultitextquery.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,127 @@
+/*
+ * 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 "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:
+ * The source file of the multi text query of file manager
+ */
+
+#include "fmmultitextquery.h"
+
+#include <QGraphicsLinearLayout>
+
+#include <hbwidget.h>
+#include <hblineedit.h>
+#include <hblabel.h>
+#include <hbaction.h>
+
+FmMultiTextQuery::FmMultiTextQuery( HbLineEdit::EchoMode echoMode, QGraphicsItem *parent ) :
+ FmDialog( parent ), mEchoMode( echoMode )
+{
+ init();
+}
+
+FmMultiTextQuery::~FmMultiTextQuery()
+{
+}
+
+void FmMultiTextQuery::init()
+{
+ setObjectName( "MultiTextQuery" );
+ setDismissPolicy( HbPopup::NoDismiss );
+ mContentWidget = new HbWidget();
+ mContentWidget->setObjectName( "MultiTextContentWidget" );
+ setContentWidget( mContentWidget );
+
+ QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout();
+ vLayout->setOrientation( Qt::Vertical );
+
+ mFirstLabel = new HbLabel();
+ mFirstLabel->setObjectName( "MutiTextFirstLabel" );
+ mFirstLabel->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+ vLayout->addItem( mFirstLabel );
+
+ mFirstEdit = new HbLineEdit();
+ mFirstEdit->setEchoMode( mEchoMode );
+ mFirstEdit->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+ mFirstEdit->setObjectName("firstLineEdit");
+ vLayout->addItem( mFirstEdit );
+
+ mSecondLabel = new HbLabel();
+ mSecondLabel->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+ mSecondLabel->setObjectName( "MutiTextSecondLabel" );
+ vLayout->addItem( mSecondLabel );
+
+ mSecondEdit = new HbLineEdit();
+ mSecondEdit->setEchoMode( mEchoMode );
+ mSecondEdit->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+ mSecondEdit->setObjectName("secondLineEdit");
+ vLayout->addItem( mSecondEdit );
+
+ mContentWidget->setLayout( vLayout );
+
+ setTimeout( NoTimeout );
+ connect( mFirstEdit, SIGNAL(contentsChanged()), this, SLOT(checkActions()) );
+ connect( mSecondEdit, SIGNAL(contentsChanged()), this, SLOT(checkActions()) );
+
+}
+
+void FmMultiTextQuery::setLineEditMaxLength( int length )
+{
+ mFirstEdit->setMaxLength( length );
+ mSecondEdit->setMaxLength( length );
+}
+
+void FmMultiTextQuery::setFirstEditText( const QString &text )
+{
+ mFirstEdit->setText( text );
+}
+
+void FmMultiTextQuery::setSecondEditText( const QString &text )
+{
+ mSecondEdit->setText( text );
+}
+
+QString FmMultiTextQuery::getFirstEditText()
+{
+ QString text = mFirstEdit->text();
+
+ return text;
+}
+
+QString FmMultiTextQuery::getSecondEditText()
+{
+ QString text = mSecondEdit->text();
+
+ return text;
+}
+
+void FmMultiTextQuery::setFirstLabelText( const QString &text )
+{
+ mFirstLabel->setPlainText( text );
+}
+
+void FmMultiTextQuery::setSecondLabelText( const QString &text )
+{
+ mSecondLabel->setPlainText( text );
+}
+
+void FmMultiTextQuery::checkActions()
+{
+ if( !mFirstEdit->text().isEmpty() &&
+ mFirstEdit->text().compare( mSecondEdit->text(), Qt::CaseSensitive ) == 0 ){
+ this->primaryAction()->setEnabled( true );
+ } else {
+ this->primaryAction()->setEnabled( false );
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmmultitextquery.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,62 @@
+/*
+ * 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 "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:
+ * The header file of the multi text query of file manager
+ */
+
+#ifndef FMMULTITEXTQUERY_H
+#define FMMULTITEXTQUERY_H
+
+#include "fmcommon.h"
+#include "fmdialog.h"
+
+#include <hblineedit.h>
+
+class HbWidget;
+class HbLabel;
+
+class FmMultiTextQuery : public FmDialog
+{
+Q_OBJECT
+public:
+ explicit FmMultiTextQuery( HbLineEdit::EchoMode echoMode = HbLineEdit::Normal, QGraphicsItem *parent = 0 );
+ ~FmMultiTextQuery();
+
+public:
+ void setLineEditMaxLength( int length );
+ void setFirstEditText( const QString &text );
+ void setSecondEditText( const QString &text );
+ void setFirstLabelText( const QString &text );
+ void setSecondLabelText( const QString &text );
+ QString getFirstEditText();
+ QString getSecondEditText();
+
+public slots:
+ void checkActions();
+
+private:
+ void init();
+
+private:
+ HbWidget *mContentWidget;
+ HbLineEdit *mFirstEdit;
+ HbLineEdit *mSecondEdit;
+ HbLabel *mFirstLabel;
+ HbLabel *mSecondLabel;
+ HbLineEdit::EchoMode mEchoMode;
+
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmsingletextquery.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,103 @@
+/*
+ * 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 "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:
+ * The source file of the drive rename query of file manager
+ */
+
+#include "fmsingletextquery.h"
+
+#include <QGraphicsLinearLayout>
+#include <QRegExp>
+
+#include <hbwidget.h>
+#include <hblineedit.h>
+#include <hbaction.h>
+
+FmSingleTextQuery::FmSingleTextQuery( HbLineEdit::EchoMode echoMode, QGraphicsItem *parent ) :
+ FmDialog( parent ), mEchoMode( echoMode )
+{
+ init();
+}
+
+FmSingleTextQuery::~FmSingleTextQuery()
+{
+}
+
+void FmSingleTextQuery::init()
+{
+ setObjectName( "SingleTextQuery " );
+ setDismissPolicy( HbPopup::NoDismiss );
+ mContentWidget = new HbWidget();
+ mContentWidget->setObjectName( "SingleTextContentWidget" );
+ setContentWidget( mContentWidget );
+
+
+ QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout();
+ vLayout->setOrientation( Qt::Vertical );
+
+ mTextEdit = new HbLineEdit();
+ mTextEdit->setEchoMode( mEchoMode );
+ mTextEdit->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+ mTextEdit->setObjectName( "textLineEdit" );
+ vLayout->addItem( mTextEdit );
+
+ mContentWidget->setLayout( vLayout );
+
+ setTimeout( NoTimeout );
+
+ connect( mTextEdit, SIGNAL(contentsChanged()), this, SLOT(checkActions()) );
+}
+
+void FmSingleTextQuery::setLineEditText( const QString &text )
+{
+ mTextEdit->setText( text );
+ mTextEdit->setSelection( 0, text.length() );
+}
+
+QString FmSingleTextQuery::getLineEditText()
+{
+ QString text = mTextEdit->text();
+
+ return text;
+}
+
+void FmSingleTextQuery::setLineEditMaxLength( int length )
+{
+ mTextEdit->setMaxLength( length );
+}
+
+void FmSingleTextQuery::setRegExpStringList( QStringList regExpStringList )
+{
+ mRegExpStringList = regExpStringList;
+}
+
+void FmSingleTextQuery::checkActions()
+{
+ // check if all regExp match, disable primary action if not match
+ bool validateResult = true;
+ foreach( const QString ®ExpString, mRegExpStringList ) {
+ if( !regExpString.isEmpty() ) {
+ QRegExp regExp( regExpString );
+ if( !regExp.exactMatch( mTextEdit->text() ) ) {
+ validateResult = false;
+ }
+ }
+ }
+ if( validateResult ) {
+ this->primaryAction()->setEnabled( true );
+ } else {
+ this->primaryAction()->setEnabled( false );
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmsingletextquery.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,56 @@
+/*
+ * 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 "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:
+ * The header file of the drive rename query of file manager
+ */
+
+#ifndef FMSINGLETEXTQUERY_H
+#define FMSINGLETEXTQUERY_H
+
+#include "fmdialog.h"
+#include <hblineedit.h>
+
+class HbWidget;
+
+class FmSingleTextQuery : public FmDialog
+{
+Q_OBJECT
+public:
+
+ explicit FmSingleTextQuery( HbLineEdit::EchoMode echoMode = HbLineEdit::Normal, QGraphicsItem *parent = 0 );
+ ~FmSingleTextQuery();
+
+public:
+ void setLineEditText( const QString &text );
+ QString getLineEditText();
+ void setLineEditMaxLength( int length );
+ void setRegExpStringList( QStringList regExpStringList );
+
+public slots:
+ void checkActions();
+
+private:
+ void init();
+
+private:
+ HbWidget *mContentWidget;
+ HbLineEdit *mTextEdit;
+ HbLineEdit::EchoMode mEchoMode;
+
+ // used to check if input text is valid. Disable primary action when text is not valid
+ QStringList mRegExpStringList;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmtimequery.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,62 @@
+/*
+ * 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 "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:
+ * The source file of the time query of file manager
+ */
+
+#include "fmtimequery.h"
+
+#include <QGraphicsItem>
+#include <QGraphicsLinearLayout>
+
+#include <hbdatetimepicker.h>
+
+
+FmTimeQuery::FmTimeQuery( QGraphicsItem *parent ) : FmDialog( parent )
+{
+ setObjectName( "timeQueryDialog" );
+ mContentWidget = new QGraphicsWidget();
+ setContentWidget(mContentWidget);
+ mContentWidget->setObjectName( "timeQueryContentWidget" );
+ QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout();
+ vLayout->setOrientation( Qt::Vertical );
+
+ mTimeWidget = new HbDateTimePicker();
+ mTimeWidget->setObjectName( "timeQueryTimeWidget" );
+ vLayout->addItem( mTimeWidget );
+
+ mTimeWidget->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+ mTimeWidget->setDisplayFormat( "hh:mm" );
+ mTimeWidget->setDateTime( QDateTime::currentDateTime() );
+
+ this->setTimeout( NoTimeout );
+ mContentWidget->setLayout( vLayout );
+}
+
+FmTimeQuery::~FmTimeQuery(void)
+{
+}
+
+void FmTimeQuery::setTime( const QTime &time )
+{
+ QDateTime dateTime = QDateTime::currentDateTime();
+ dateTime.setTime( time );
+ mTimeWidget->setDateTime( dateTime );
+}
+
+QTime FmTimeQuery::getTime()
+{
+ return mTimeWidget->dateTime().time();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmtimequery.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,53 @@
+/*
+ * 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 "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:
+ * The header file of the time query of file manager
+ */
+
+#ifndef FMTIMEQUERY_H
+#define FMTIMEQUERY_H
+
+#include "fmcommon.h"
+#include "fmdialog.h"
+
+#include <QTime>
+
+class QGraphicsWidget;
+class HbDateTimePicker;
+class FmTimeQuery : public FmDialog
+{
+public:
+ FmTimeQuery(QGraphicsItem *parent=0);
+ ~FmTimeQuery( void );
+
+ /**
+ * Set time to query
+ * @param time time whant to display when query dialog shown
+ */
+ void setTime( const QTime &time );
+
+ /**
+ * Get the time that set by user
+ * @return time
+ */
+ QTime getTime();
+
+private:
+ QGraphicsWidget *mContentWidget;
+ HbDateTimePicker *mTimeWidget;
+
+};
+
+#endif //FMTIMEQUERY_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmviewdetailsdialog.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,395 @@
+/*
+ * 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 "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:
+ * The source file of view details dialog of file manager
+ */
+
+#include "fmviewdetailsdialog.h"
+#include "fmutils.h"
+#include "fmviewdetailsitem.h"
+#include "fmdrivedetailstype.h"
+#include "fmviewmanager.h"
+
+#include <QFileInfo>
+#include <QDateTime>
+#include <QStandardItemModel>
+#include <QStringList>
+
+#include <hblabel.h>
+#include <hblistview.h>
+#include <hbaction.h>
+
+FmViewDetailsDialog::FmViewDetailsDialog( QGraphicsItem *parent )
+ : FmDialog( parent ),
+ mNumofSubFolers( 0 ),
+ mNumofFiles( 0 ),
+ mSizeofFolder( 0 ),
+ mSizeofImage( 0 ),
+ mSizeofSounds( 0 ),
+ mSizeofVideo( 0 ),
+ mSizeofJava( 0 ),
+ mSizeofNativeFiles( 0 ),
+ mSizeofDocument( 0 ),
+ mSizeofCalendar( 0 ),
+ mSizeofContacts( 0 )
+{
+ init();
+
+ setTimeout( NoTimeout );
+}
+
+FmViewDetailsDialog::~FmViewDetailsDialog()
+{
+ if( mDataListModel ){
+ mListView->setModel( 0 );
+ delete mListView;
+ }
+}
+
+void FmViewDetailsDialog::init()
+{
+ setObjectName( "viewDetailsDialog" );
+ mHeaderLabel = new HbLabel( this );
+ setHeadingWidget( mHeaderLabel );
+ mHeaderLabel->setObjectName( "viewDetailsHeaderLabel" );
+
+ mListView = new HbListView( this );
+ mListView->setObjectName( "viewDetailsListView" );
+ setContentWidget( mListView );
+
+ // init QStardardItemModel as 0 row and 1 column
+ mDataListModel = new QStandardItemModel( 0, 1 );
+ mListView->setModel( mDataListModel );
+ mListView->listItemPrototype()->setStretchingStyle(HbListViewItem::StretchLandscape);
+
+ mOkAction = new HbAction( this );
+ mOkAction->setText( hbTrId("txt_common_button_ok") );
+ setPrimaryAction( mOkAction );
+}
+
+void FmViewDetailsDialog::setDriveDetails( const QString &driverName )
+{
+ const QString dataDir = "C:\\data";
+ QStringList dataList;
+ mHeaderLabel->setPlainText( hbTrId( "txt_fmgr_title_memory_details" ) );
+
+ quint64 sizeOfOthers = 0;
+
+ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( driverName );
+ QString detailString( "" );
+
+ mDataListModel->removeRows( 0, mDataListModel->rowCount() );
+ mDataListModel->insertRows( 0, EDriveDetailEntryEnd );
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_memory_name" );
+ dataList << FmUtils::fillDriveVolume( driverInfo.name(), true ) ;
+ mDataListModel->setData( mDataListModel->index( EMemoryName, 0 ), dataList, Qt::DisplayRole );
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_size_memory" );
+ dataList << FmUtils::formatStorageSize( driverInfo.size() ) ;
+ mDataListModel->setData( mDataListModel->index( EMemorySize, 0 ), dataList, Qt::DisplayRole );
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_free_memory" );
+ dataList << FmUtils::formatStorageSize( driverInfo.freeSize() );
+ mDataListModel->setData( mDataListModel->index( EMemoryFree, 0 ), dataList, Qt::DisplayRole );
+
+ sizeOfOthers = driverInfo.size() - driverInfo.freeSize();
+
+// getContentDetails( dataDir );
+
+ dataList.clear();
+ dataList << hbTrId ( "Images:" ) ;
+ dataList << FmUtils::formatStorageSize( mSizeofImage );
+ mDataListModel->setData( mDataListModel->index( EMemoryImages, 0 ), dataList, Qt::DisplayRole );
+
+ sizeOfOthers -= mSizeofImage;
+
+ dataList.clear();
+ dataList << hbTrId ( "Sounds:" );
+ dataList << FmUtils::formatStorageSize( mSizeofSounds );
+ mDataListModel->setData( mDataListModel->index( EMemorySounds, 0 ), dataList, Qt::DisplayRole );
+
+ sizeOfOthers -= mSizeofSounds;
+
+ dataList.clear();
+ dataList << hbTrId ( "Video:" );
+ dataList << FmUtils::formatStorageSize( mSizeofVideo );
+ mDataListModel->setData( mDataListModel->index( EMemoryVideos, 0 ), dataList, Qt::DisplayRole );
+
+ sizeOfOthers -= mSizeofVideo;
+
+ dataList.clear();
+ dataList << hbTrId ( "Java Files:" );
+ dataList << FmUtils::formatStorageSize( mSizeofJava );
+ mDataListModel->setData( mDataListModel->index( EMemoryMidpJava, 0 ), dataList, Qt::DisplayRole );
+
+ sizeOfOthers -= mSizeofJava;
+
+ dataList.clear();
+ dataList << hbTrId ( "Sis files:" );
+ dataList << FmUtils::formatStorageSize( mSizeofNativeFiles );
+ mDataListModel->setData( mDataListModel->index( EMemoryNativeApps, 0 ), dataList, Qt::DisplayRole );
+
+ sizeOfOthers -= mSizeofNativeFiles;
+
+ dataList.clear();
+ dataList << hbTrId ( "Documents:" );
+ dataList << FmUtils::formatStorageSize( mSizeofDocument );
+ mDataListModel->setData( mDataListModel->index( EMemoryDocuments, 0 ), dataList, Qt::DisplayRole );
+
+ sizeOfOthers -= mSizeofDocument;
+
+ dataList.clear();
+ dataList << hbTrId ( "Calendars:" );
+ dataList << FmUtils::formatStorageSize( mSizeofCalendar );
+ mDataListModel->setData( mDataListModel->index( EMemoryCalendar, 0 ), dataList, Qt::DisplayRole );
+
+ sizeOfOthers -= mSizeofCalendar;
+
+ dataList.clear();
+ dataList << hbTrId ( "Contacts:" );
+ dataList << FmUtils::formatStorageSize( mSizeofContacts );
+ mDataListModel->setData( mDataListModel->index( EMemoryContacts, 0 ), dataList, Qt::DisplayRole );
+
+ sizeOfOthers -= mSizeofContacts;
+
+ dataList.clear();
+ dataList << hbTrId ( "Others:" );
+ dataList << FmUtils::formatStorageSize( sizeOfOthers );
+ mDataListModel->setData( mDataListModel->index( EMemoryOthers, 0 ), dataList, Qt::DisplayRole );
+}
+
+void FmViewDetailsDialog::setFolderDetails( const QString &folderPath )
+{
+ mHeaderLabel->setPlainText( hbTrId( "txt_fmgr_title_folder_details" ) );
+
+ QString detailString( "" );
+ QStringList dataList;
+ QFileInfo fileInfo( folderPath );
+
+ mDataListModel->removeRows( 0, mDataListModel->rowCount() );
+ mDataListModel->insertRows( 0, EFolderDetailEntryEnd );
+
+ dataList << hbTrId ( "txt_fmgr_dblist_name_folder" );
+ dataList << fileInfo.fileName();
+ mDataListModel->setData( mDataListModel->index( EFolderName, 0 ), dataList, Qt::DisplayRole );
+
+ QDateTime modifiedDateTime = fileInfo.lastModified ();
+ QDate modifiedDate = modifiedDateTime.date();
+ QTime modifiedTime = modifiedDateTime.time();
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_date_folder" );
+ dataList << modifiedDate.toString();
+ mDataListModel->setData( mDataListModel->index( EModifiedDate, 0 ), dataList, Qt::DisplayRole );
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_time_folder" );
+ dataList << modifiedTime.toString();
+ mDataListModel->setData( mDataListModel->index( EModifiedTime, 0 ), dataList, Qt::DisplayRole );
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_size_folder" );
+ dataList << FmUtils::formatStorageSize( mSizeofFolder );
+ mDataListModel->setData( mDataListModel->index( EFolderSize, 0 ), dataList, Qt::DisplayRole );
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_subfolders" );
+ dataList << QString::number( mNumofSubFolers );
+ mDataListModel->setData( mDataListModel->index( ENumofSubFolders, 0 ), dataList, Qt::DisplayRole );
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_files" );
+ dataList << QString::number( mNumofFiles );
+ mDataListModel->setData( mDataListModel->index( ENumofFiles, 0 ), dataList, Qt::DisplayRole );
+}
+
+void FmViewDetailsDialog::setFileDetails( const QString &filePath )
+{
+ mHeaderLabel->setPlainText( hbTrId( "txt_fmgr_title_file_details") );
+
+ QString detailString( "" );
+ QStringList dataList;
+
+ QFileInfo fileInfo( filePath );
+
+ mDataListModel->removeRows( 0, mDataListModel->rowCount() );
+ mDataListModel->insertRows( 0, EFileDetailEntryEnd );
+
+ dataList << hbTrId ( "txt_fmgr_dblist_name_file" );
+ dataList << fileInfo.fileName();
+ mDataListModel->setData( mDataListModel->index( EFileName, 0 ), dataList, Qt::DisplayRole );
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_type_file" );
+
+
+
+ QString fileType = FmUtils::getFileType( filePath );
+ if( fileType.isEmpty() ){
+ fileType.append( fileInfo.suffix() );
+ }
+ dataList << fileType;
+ mDataListModel->setData( mDataListModel->index( EFileType, 0 ), dataList, Qt::DisplayRole );
+
+ QDateTime modifiedDateTime = fileInfo.lastModified ();
+ QDate modifiedDate = modifiedDateTime.date();
+ QTime modifiedTime = modifiedDateTime.time();
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_date_file" );
+ dataList << modifiedDate.toString();
+ mDataListModel->setData( mDataListModel->index( EFileModifiedDate, 0 ), dataList, Qt::DisplayRole );
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_time_file" );
+ dataList << modifiedTime.toString();
+ mDataListModel->setData( mDataListModel->index( EFileModifiedTime, 0 ), dataList, Qt::DisplayRole );
+
+ dataList.clear();
+ dataList << hbTrId ( "txt_fmgr_dblist_size_file" );
+ dataList << FmUtils::formatStorageSize( fileInfo.size() );
+ mDataListModel->setData( mDataListModel->index( EFileSize, 0 ), dataList, Qt::DisplayRole );
+}
+
+void FmViewDetailsDialog::setNumofSubfolders( int numofSubFolders, int numofFiles, quint64 sizeofFolder )
+{
+ mNumofSubFolers = 0;
+ mNumofFiles = 0;
+ mSizeofFolder = 0;
+
+ mNumofSubFolers = numofSubFolders;
+ mNumofFiles = numofFiles;
+ mSizeofFolder = sizeofFolder;
+}
+
+void FmViewDetailsDialog::setSizeofContent( QList<FmDriveDetailsSize*> detailsSizeList )
+{
+ mSizeofImage = 0;
+ mSizeofSounds = 0;
+ mSizeofVideo = 0;
+ mSizeofJava = 0;
+ mSizeofNativeFiles = 0;
+ mSizeofDocument = 0;
+ mSizeofCalendar = 0;
+ mSizeofContacts = 0;
+
+ for( QList< FmDriveDetailsSize* >::const_iterator it = detailsSizeList.begin();
+ it!= detailsSizeList.end(); ++it ){
+
+ switch( ( *it )->dataType() ){
+ case FmDriveDetailsSize::ETypeImages:
+ {
+ mSizeofImage = ( *it )->size();
+ break;
+ }
+ case FmDriveDetailsSize::ETypeSoundFiles:
+ {
+ mSizeofSounds = ( *it )->size();
+ break;
+ }
+ case FmDriveDetailsSize::ETypeMidpJava:
+ {
+ mSizeofJava = ( *it )->size();
+ break;
+ }
+ case FmDriveDetailsSize::ETypeNativeApps:
+ {
+ mSizeofNativeFiles = ( *it )->size();
+ break;
+ }
+ case FmDriveDetailsSize::ETypeVideos:
+ {
+ mSizeofVideo = ( *it )->size();
+ break;
+ }
+ case FmDriveDetailsSize::ETypeDocuments:
+ {
+ mSizeofDocument = ( *it )->size();
+ break;
+ }
+ case FmDriveDetailsSize::ETypeCalendar:
+ {
+ mSizeofCalendar = ( *it )->size();
+ break;
+ }
+ case FmDriveDetailsSize::ETypeContacts:
+ {
+ mSizeofContacts = ( *it )->size();
+ break;
+ }
+ default:
+ break;
+ }
+ }
+}
+
+HbAction *FmViewDetailsDialog::executeDialog( FmDialog *dialog, const QString &associatedDrives )
+{
+ for( int i = 0; i < associatedDrives.length(); i++ ) {
+ QString drive( associatedDrives[i] + QString( ":/" ) );
+ if( !FmUtils::isDriveAvailable( drive ) ) {
+ FM_LOG( "executeDialog return 0_ " + associatedDrives );
+ return 0;
+ }
+ }
+
+ FmDlgCloseUnit dlgCloseUnit( dialog );
+ dlgCloseUnit.addAssociatedDrives( associatedDrives );
+
+ FmViewManager::viewManager()->addDlgCloseUnit( &dlgCloseUnit );
+ FM_LOG( " Exec Dialog start " );
+ HbAction* action = dialog->exec();
+ FM_LOG( " Exec Dialog end " );
+ FmViewManager::viewManager()->removeDlgCloseUnit( &dlgCloseUnit );
+ return action;
+}
+
+void FmViewDetailsDialog::showDriveViewDetailsDialog( const QString &driverName,
+ QList<FmDriveDetailsSize*> detailsSizeList, const QString& associatedDrives )
+{
+ FM_LOG( "showDriveViewDetailsDialog_" + associatedDrives );
+ FmViewDetailsDialog viewDetailsDialog;
+
+ viewDetailsDialog.setSizeofContent( detailsSizeList );
+ viewDetailsDialog.setDriveDetails( driverName );
+
+ //viewDetailsDialog.exec();
+ executeDialog( &viewDetailsDialog , associatedDrives );
+}
+
+void FmViewDetailsDialog::showFolderViewDetailsDialog( const QString &folderPath,
+ int numofSubFolders, int numofFiles, quint64 sizeofFolder, const QString& associatedDrives )
+{
+ FmViewDetailsDialog viewDetailsDialog;
+
+ viewDetailsDialog.setNumofSubfolders( numofSubFolders, numofFiles, sizeofFolder );
+ viewDetailsDialog.setFolderDetails( folderPath );
+
+ //viewDetailsDialog.exec();
+ executeDialog( &viewDetailsDialog , associatedDrives );
+}
+
+void FmViewDetailsDialog::showFileViewDetailsDialog( const QString &filePath, const QString& associatedDrives )
+{
+ FmViewDetailsDialog viewDetailsDialog;
+ viewDetailsDialog.setFileDetails( filePath );
+
+ //viewDetailsDialog.exec();
+ executeDialog( &viewDetailsDialog , associatedDrives );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmviewdetailsdialog.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,114 @@
+/*
+ * 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 "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:
+ * The header file of view details dialog of file manager
+ */
+
+#ifndef FMVIEWDETAILSDIALOG_H
+#define FMVIEWDETAILSDIALOG_H
+
+#include "fmcommon.h"
+#include "fmdialog.h"
+
+class QStandardItemModel;
+class HbListView;
+class HbLabel;
+class HbAction;
+class FmDriveDetailsSize;
+
+class FmViewDetailsDialog : public FmDialog
+{
+ Q_OBJECT
+
+public:
+ enum driveDetailEntry{
+ EMemoryName = 0,
+ EMemorySize,
+ EMemoryFree,
+ EMemoryImages,
+ EMemorySounds,
+ EMemoryVideos,
+ EMemoryMidpJava,
+ EMemoryNativeApps,
+ EMemoryDocuments,
+ EMemoryCalendar,
+ EMemoryContacts,
+ EMemoryOthers,
+ EDriveDetailEntryEnd
+ };
+
+ enum folderDetailEntry{
+ EFolderName = 0,
+ EModifiedDate,
+ EModifiedTime,
+ EFolderSize,
+ ENumofSubFolders,
+ ENumofFiles,
+ EFolderDetailEntryEnd
+ };
+
+ enum fileDetailEntry{
+ EFileName = 0,
+ EFileType,
+ EFileModifiedDate,
+ EFileModifiedTime,
+ EFileSize,
+ EFileDetailEntryEnd
+ };
+
+public:
+ virtual ~FmViewDetailsDialog();
+
+ static void showDriveViewDetailsDialog( const QString &driverName,
+ QList<FmDriveDetailsSize*> detailsSizeList,
+ const QString& associatedDrives = QString() );
+ static void showFolderViewDetailsDialog( const QString &folderPath,
+ int numofSubFolders, int numofFiles,
+ quint64 sizeofFolder, const QString& associatedDrives = QString() );
+ static void showFileViewDetailsDialog( const QString &filePath, const QString& associatedDrives = QString() );
+
+private:
+ FmViewDetailsDialog( QGraphicsItem *parent = 0 );
+
+ void init();
+ void setDriveDetails( const QString &driverName );
+ void setFolderDetails( const QString &folderPath );
+ void setFileDetails( const QString &filePath );
+ void setNumofSubfolders( int numofSubFolders, int numofFiles, quint64 sizeofFolder );
+ void setSizeofContent( QList<FmDriveDetailsSize*> detailsSizeList );
+
+ static HbAction *executeDialog( FmDialog *dialog, const QString &associatedDrives );
+private:
+ HbListView *mListView;
+ HbLabel *mHeaderLabel;
+ HbAction *mOkAction;
+
+ QStandardItemModel *mDataListModel;
+ QString mDrive;
+
+ int mNumofSubFolers;
+ int mNumofFiles;
+ quint64 mSizeofFolder;
+ quint64 mSizeofImage;
+ quint64 mSizeofSounds;
+ quint64 mSizeofVideo;
+ quint64 mSizeofJava;
+ quint64 mSizeofNativeFiles;
+ quint64 mSizeofDocument;
+ quint64 mSizeofCalendar;
+ quint64 mSizeofContacts;
+};
+
+#endif /* FMVIEWDETAILSDIALOG_H_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmviewdetailsitem.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,95 @@
+/*
+ * 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 "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:
+ * The source file of the view details list item of file manager
+ */
+
+#include "fmviewdetailsitem.h"
+#include "fmviewmanager.h"
+
+#include <QGraphicsLinearLayout>
+
+#include <hblabel.h>
+
+FmViewDetailsItem::FmViewDetailsItem( QGraphicsItem *parent )
+ : HbListViewItem( parent ),
+ mDetailsContentLabel( 0 ),
+ mDetailsLabel( 0 ),
+ mLayout( 0 )
+
+{
+}
+
+FmViewDetailsItem::~FmViewDetailsItem()
+{
+}
+
+HbAbstractViewItem *FmViewDetailsItem::createItem()
+{
+ return new FmViewDetailsItem( *this );
+}
+
+bool FmViewDetailsItem::canSetModelIndex( const QModelIndex &index ) const
+{
+ Q_UNUSED( index );
+ return true;
+}
+
+void FmViewDetailsItem::polish(HbStyleParameters& params)
+{
+ Q_UNUSED(params);
+}
+
+void FmViewDetailsItem::updateChildItems()
+{
+ if( !mLayout ) {
+ init();
+ }
+ QString string = modelIndex().data( Qt::DisplayRole ).toString();
+
+ mDetailsContentLabel->setPlainText( string );
+
+ string = modelIndex().data( Qt::UserRole ).toString();
+
+ mDetailsLabel->setPlainText( string );
+
+}
+
+void FmViewDetailsItem::init()
+{
+ mLayout = new QGraphicsLinearLayout();
+
+ if( FmViewManager::viewManager()->orientation() == Qt::Vertical ){
+ mLayout->setOrientation( Qt::Vertical );
+ }
+ else{
+ mLayout->setOrientation( Qt::Horizontal );
+ }
+
+
+ mDetailsContentLabel = new HbLabel("");
+ mDetailsContentLabel->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+ mDetailsContentLabel->setObjectName( "detaisContentLabel" );
+ mLayout->addItem( mDetailsContentLabel );
+ mLayout->setAlignment( mDetailsContentLabel, Qt::AlignLeft );
+
+ mDetailsLabel = new HbLabel("");
+ mDetailsLabel->setFontSpec( HbFontSpec( HbFontSpec::Secondary ) );
+ mDetailsLabel->setObjectName( "detailsLabel" );
+ mLayout->addItem( mDetailsLabel );
+ mLayout->setAlignment( mDetailsLabel, Qt::AlignLeft );
+
+ setLayout( mLayout );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmviewdetailsitem.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,53 @@
+/*
+ * 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 "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:
+ * The header file of the view details list item of file manager
+ */
+
+#ifndef FMVIEWDETAILSITEM_H
+#define FMVIEWDETAILSITEM_H
+
+#include <hblistviewitem.h>
+
+class HbLabel;
+class QGraphicsLinearLayout;
+
+class FmViewDetailsItem : public HbListViewItem
+{
+ Q_OBJECT
+
+public:
+ FmViewDetailsItem( QGraphicsItem *parent = 0 );
+ virtual ~FmViewDetailsItem();
+
+public:
+ virtual bool canSetModelIndex( const QModelIndex &index ) const;
+ virtual HbAbstractViewItem *createItem();
+ virtual void updateChildItems();
+
+private:
+ virtual void polish(HbStyleParameters& params);
+
+private:
+ void init();
+
+private:
+ HbLabel *mDetailsContentLabel;
+ HbLabel *mDetailsLabel;
+
+ QGraphicsLinearLayout *mLayout;
+};
+
+#endif /* FMVIEWDETAILSITEM_H */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmdriverlistwidget.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,459 @@
+/*
+ * 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 "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:
+ * Yong Zhang <yong.5.zhang@nokia.com>
+ *
+ * Description:
+ * The driver model file for file manager
+ */
+#include "fmdriverlistwidget.h"
+#include "fmutils.h"
+#include "fmdlgutils.h"
+#include "fmviewmanager.h"
+#include "fmviewdetailsdialog.h"
+#include "fmoperationbase.h"
+#include "fmdrivemodel.h"
+#include "fmfiledialog.h"
+#include "fmoperationservice.h"
+#include <hbabstractviewitem.h>
+#include <QDir>
+#include <QGraphicsLinearLayout>
+#include <QFileSystemWatcher>
+
+#include <hblistview.h>
+#include <hbmenu.h>
+#include <hbaction.h>
+#include <hbsearchpanel.h>
+
+FmDriverListWidget::FmDriverListWidget( QGraphicsItem *parent )
+: HbWidget( parent ), mListView(0), mModel(0),
+ mCurrentItem(0), mSearchPanel(0),
+ mFileSystemWatcher(0), mLayout(0), mContextMenu(0), mListLongPressed( false )
+{
+ init();
+ mFileSystemWatcher = new QFileSystemWatcher( this );
+ connect( mFileSystemWatcher, SIGNAL( directoryChanged ( const QString & ) ),
+ this, SLOT( on_directoryChanged( const QString & ) ) );
+
+ QMetaObject::connectSlotsByName( this );
+}
+
+FmDriverListWidget::~FmDriverListWidget()
+{
+ if (mContextMenu) {
+ mContextMenu->deleteLater();
+ }
+}
+
+void FmDriverListWidget::on_list_activated( const QModelIndex &index )
+{
+ FM_LOG("FmDriverListWidget::on_list_activated");
+ if( mListLongPressed ) {
+ FM_LOG("FmDriverListWidget::on_list_activated return because long pressed");
+ return;
+ }
+ FM_LOG("FmDriverListWidget::on_list_activated emit activate to open drive");
+ emit activated( mModel->driveName( index ) );
+}
+
+void FmDriverListWidget::init()
+{
+ mLayout = new QGraphicsLinearLayout( this );
+ mLayout->setOrientation( Qt::Vertical );
+
+ mListView = new HbListView( this );
+ mListView->setLayoutName( "drive" );
+ mModel = new FmDriveModel( this,
+ FmDriveModel::FillWithVolume | FmDriveModel::FillWithDefaultVolume |
+ FmDriveModel::FillWithTotalSize | FmDriveModel::FillWithFreeSize );
+ mListView->setModel( mModel );
+ mLayout->addItem( mListView );
+ mSearchPanel = new HbSearchPanel( this );
+ mSearchPanel->setObjectName( "searchPanel" );
+ mSearchPanel->setSearchOptionsEnabled( true );
+ mSearchPanel->setProgressive( false );
+ mSearchPanel->hide();
+ connect( mListView, SIGNAL( activated( const QModelIndex & ) ),
+ this, SLOT( on_list_activated( const QModelIndex & ) ) );
+ connect( mListView, SIGNAL( pressed( const QModelIndex & ) ),
+ this, SLOT( on_list_pressed( const QModelIndex & ) ) );
+
+ connect( mListView, SIGNAL( longPressed( HbAbstractViewItem *, const QPointF & ) ),
+ this, SLOT( on_list_longPressed( HbAbstractViewItem *, const QPointF & ) ) );
+
+ connect( mSearchPanel, SIGNAL( searchOptionsClicked() ),
+ this, SLOT( on_searchPanel_searchOptionsClicked() ), Qt::QueuedConnection );
+
+ connect( mSearchPanel, SIGNAL( criteriaChanged( const QString & ) ),
+ this, SLOT( on_searchPanel_criteriaChanged( const QString & ) ) );
+
+ connect( mSearchPanel, SIGNAL( exitClicked() ),
+ this, SLOT( on_searchPanel_exitClicked() ) );
+
+ setLayout( mLayout );
+}
+
+void FmDriverListWidget::refreshDrive()
+{
+ mModel->refresh();
+}
+
+void FmDriverListWidget::on_list_longPressed( HbAbstractViewItem *item, const QPointF &coords )
+{
+ FM_LOG("FmDriverListWidget::on_list_longPressed");
+ mListLongPressed = true;
+ mCurrentItem = item;
+ QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
+
+ if( !mContextMenu ) {
+ mContextMenu = new HbMenu();
+ } else {
+ mContextMenu->clearActions();
+ }
+ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName );
+ FmDriverInfo::DriveType driveType = driverInfo.driveType();
+ FmDriverInfo::DriveState state = driverInfo.driveState();
+ if( !( state & FmDriverInfo::EDriveNotPresent ) ) {
+ if( state & FmDriverInfo::EDriveAvailable ) {
+ HbAction *viewAction = new HbAction();
+ viewAction->setObjectName( "viewAction" );
+ viewAction->setText( hbTrId( "txt_fmgr_menu_view_details_memory" ) );
+ mContextMenu->addAction( viewAction );
+ connect( viewAction, SIGNAL( triggered() ),
+ this, SLOT( on_viewAction_triggered() ), Qt::QueuedConnection );
+
+ if( driveType == FmDriverInfo::EDriveTypeMemoryCard || driveType == FmDriverInfo::EDriveTypeUsbMemory ) {
+ // MMC or Usb memory
+
+ // Name/Rename action
+ if ( driverInfo.volumeName().length() ){
+ HbAction *renameAction = new HbAction();
+ renameAction->setObjectName( "renameAction" );
+ renameAction->setText( hbTrId( "txt_fmgr_menu_rename" ) );
+ mContextMenu->addAction( renameAction );
+
+ connect( renameAction, SIGNAL( triggered() ),
+ this, SLOT( on_renameAction_triggered() ), Qt::QueuedConnection );
+ } else {
+ HbAction *nameAction = new HbAction();
+ nameAction->setObjectName( "nameAction" );
+ nameAction->setText( hbTrId( "txt_fmgr_menu_name" ) );
+ mContextMenu->addAction( nameAction );
+
+ connect( nameAction, SIGNAL( triggered() ),
+ this, SLOT( on_nameAction_triggered() ), Qt::QueuedConnection );
+ }
+
+ // Set/Change/Remove password action
+ if( driveType == FmDriverInfo::EDriveTypeMemoryCard ) { // MMC
+ if( state & FmDriverInfo::EDrivePasswordProtected ){
+ HbAction *changePwdAction = new HbAction();
+ changePwdAction->setObjectName( "changePwdAction" );
+ changePwdAction->setText( hbTrId( "txt_fmgr_menu_change_password" ) );
+ mContextMenu->addAction( changePwdAction );
+
+ HbAction *removePwdAction = new HbAction();
+ removePwdAction->setObjectName( "removePwdAction" );
+ removePwdAction->setText( hbTrId( "txt_fmgr_menu_remove_password" ) );
+ mContextMenu->addAction( removePwdAction );
+
+ connect( changePwdAction, SIGNAL( triggered() ),
+ this, SLOT( on_changePwdAction_triggered() ), Qt::QueuedConnection );
+ connect( removePwdAction, SIGNAL( triggered() ),
+ this, SLOT( on_removePwdAction_triggered() ), Qt::QueuedConnection );
+ }
+ else{
+ HbAction *setPwdAction = new HbAction();
+ setPwdAction->setObjectName( "setPwdAction" );
+ setPwdAction->setText( hbTrId( "txt_fmgr_menu_set_password" ) );
+ mContextMenu->addAction( setPwdAction );
+
+ connect( setPwdAction, SIGNAL( triggered() ),
+ this, SLOT( on_setPwdAction_triggered() ), Qt::QueuedConnection );
+ }
+ }
+ } //if( driveType == FmDriverInfo::EDriveTypeMemoryCard || driveType == FmDriverInfo::EDriveTypeUsbMemory )
+ } //if( state & FmDriverInfo::EDriveAvailable )
+
+ // Eject action
+ // put outside of EDriveAvailable so that removable drive which is corrupted or locked can be removed
+ if( state & FmDriverInfo::EDriveEjectable ){
+ HbAction *ejectAction = new HbAction();
+ ejectAction->setObjectName( "ejectAction" );
+ ejectAction->setText( hbTrId( "txt_fmgr_menu_eject" ) );
+ mContextMenu->addAction( ejectAction );
+
+ connect( ejectAction, SIGNAL( triggered() ),
+ this, SLOT( on_ejectAction_triggered() ), Qt::QueuedConnection );
+ }
+
+ // Format action
+ if ( ( state & FmDriverInfo::EDriveRemovable ) || ( state & FmDriverInfo::EDriveCorrupted )
+ || ( state & FmDriverInfo::EDriveLocked ) ){
+ HbAction *formatAction = new HbAction();
+ formatAction->setObjectName( "formatAction" );
+ formatAction->setText( hbTrId( "txt_fmgr_menu_format" ) );
+ mContextMenu->addAction( formatAction );
+
+ connect( formatAction, SIGNAL( triggered() ),
+ this, SLOT( on_formatAction_triggered() ), Qt::QueuedConnection );
+ }
+ } //if( !( state & FmDriverInfo::EDriveNotPresent ) )
+
+ // Unlock action
+ // put ouside of !EDriveNotPresent judgment so that
+ // user could unlock drive if connected to PC with mass storage mode
+ if( state & FmDriverInfo::EDriveLocked ){
+ HbAction *unLockedAction = new HbAction();
+ unLockedAction->setObjectName( "unLockedAction" );
+ unLockedAction->setText( hbTrId( "Unlock" ) );
+ mContextMenu->addAction( unLockedAction );
+
+ connect( unLockedAction, SIGNAL( triggered() ),
+ this, SLOT( on_unLockedAction_triggered() ), Qt::QueuedConnection );
+ }
+
+ // Pop up menu or open drive
+ if( mContextMenu->actions().count() > 0 ) {
+ mContextMenu->setPreferredPos( coords );
+ mContextMenu->open();
+ } else {
+ emit activated( diskName );
+ }
+}
+
+void FmDriverListWidget::on_list_pressed( const QModelIndex & index )
+{
+ Q_UNUSED( index );
+ mListLongPressed = false;
+}
+
+void FmDriverListWidget::on_viewAction_triggered()
+{
+ QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
+ FmViewManager::viewManager()->operationService()->asyncViewDriveDetails( diskName );
+}
+
+void FmDriverListWidget::on_renameAction_triggered()
+{
+ QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
+
+ FmDriverInfo::DriveState state = FmUtils::queryDriverInfo( diskName ).driveState();
+ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName );
+
+ if ( state & FmDriverInfo::EDriveWriteProtected ){
+ FmDlgUtils::information( hbTrId( "Unable to perform operation. Memory card is read only." ) );
+ return;
+ }
+
+ QString title( hbTrId( "Drive name ") );
+ //save the volume status, empty or set
+ bool needToSetVolume = false;
+ QString volumeName = FmUtils::getVolumeNameWithDefaultNameIfNull( diskName, needToSetVolume );
+ QString oldVolumeName( volumeName );
+ QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) );
+ //use isReturnFalseWhenNoTextChanged = false in order that FmUtils::renameDrive( driveName, volumeName ) will
+ //be excuted at lease once to set the volume name.
+ while( FmDlgUtils::showTextQuery( title, volumeName, QStringList(), FmMaxLengthofDriveName, associatedDrives, false ) ){
+ //if volume is not set or oldVolumeName != volumeName , FmUtils::renameDrive will be called
+ if ( oldVolumeName == volumeName && !needToSetVolume ) {
+ break;
+ }
+ int err = FmUtils::renameDrive( diskName, volumeName );
+ if ( err == FmErrNone ) {
+ FmDlgUtils::information( hbTrId( "The name has been changed!" ) );
+ mModel->refresh();
+ break;
+ } else if( err == FmErrBadName ) {
+ FmDlgUtils::information( hbTrId( "Illegal characters! Use only letters and numbers." ) );
+ } else{
+ FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) );
+ break;
+ }
+ }
+}
+
+void FmDriverListWidget::on_nameAction_triggered()
+{
+ on_renameAction_triggered();
+}
+
+void FmDriverListWidget::on_setPwdAction_triggered()
+{
+ QString firstLabel( hbTrId( "New Password: ") );
+ QString secondLabel( hbTrId( "Confirm new Password: ") );
+
+ QString oldPwd;
+ QString newPwd;
+
+ FmUtils::emptyPwd( oldPwd );
+
+ QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
+
+ QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) );
+ if( FmDlgUtils::showMultiPasswordQuery( firstLabel, secondLabel, newPwd, FmMaxLengthofDrivePassword, associatedDrives ) ) {
+ if ( FmUtils::setDrivePwd( diskName, oldPwd, newPwd ) == 0 ){
+ FmDlgUtils::information( hbTrId( "The password has been set!" ) );
+ }
+ else{
+ FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) );
+ }
+ }
+}
+
+void FmDriverListWidget::on_changePwdAction_triggered()
+{
+ QString title( hbTrId( "txt_common_dialog_password") );
+ QString firstLabel( hbTrId( "txt_common_dialog_new_password") );
+ QString secondLabel( hbTrId( "Confirm new Password: ") );
+
+ QString oldPwd;
+ QString newPwd;
+
+ QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
+
+ QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) );
+ while( FmDlgUtils::showSinglePasswordQuery( title, oldPwd, FmMaxLengthofDrivePassword, associatedDrives ) ) {
+ if ( FmUtils::checkDrivePwd( diskName, oldPwd ) == 0 ){
+ if( FmDlgUtils::showMultiPasswordQuery( firstLabel, secondLabel, newPwd, FmMaxLengthofDrivePassword, associatedDrives ) ){
+ if ( FmUtils::setDrivePwd( diskName, oldPwd, newPwd ) == 0 ){
+ FmDlgUtils::information( hbTrId( "The password has been changed!" ) );
+ } else {
+ FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) );
+ }
+ break;
+ } else {
+ //cancel muti password query
+ break;
+ }
+ } else {
+ FmDlgUtils::information( hbTrId( "The password is incorrect, try again!" ) );
+ }
+
+ }
+}
+
+void FmDriverListWidget::on_removePwdAction_triggered()
+{
+ QString title( hbTrId( "Password: ") );
+
+ QString oldPwd;
+
+ QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
+ if( FmDlgUtils::question( hbTrId( "Do you want to remove the password? Memory card becomes unlocked." ) ) ){
+ QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) );
+ while( FmDlgUtils::showSinglePasswordQuery( title, oldPwd, FmMaxLengthofDrivePassword, associatedDrives ) ) {
+ if ( FmUtils::checkDrivePwd( diskName, oldPwd ) == 0 ) {
+ if ( FmUtils::removeDrivePwd( diskName, oldPwd ) == 0 ){
+ FmDlgUtils::information( hbTrId( "The password has been removed!" ) );
+ }
+ else{
+ FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) );
+ }
+ break;
+ }
+ else {
+ FmDlgUtils::information( hbTrId( "The password is incorrect, try again!" ) );
+ }
+
+ }
+ }
+}
+
+void FmDriverListWidget::on_unLockedAction_triggered()
+{
+ QString title( hbTrId( "Password: ") );
+
+ QString oldPwd;
+
+ QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
+
+ //Do not add associatedDrives as Locked MMC is not available Drive but only present Drive
+ while( FmDlgUtils::showSinglePasswordQuery( title, oldPwd, FmMaxLengthofDrivePassword ) ) {
+ int err = FmUtils::unlockDrive( diskName, oldPwd );
+ if( err == FmErrNone ) {
+ FmDlgUtils::information( hbTrId( "The memory is unlocked!" ) );
+ break;
+ } else if ( err == FmErrAccessDenied ) {
+ FmDlgUtils::information( hbTrId( "The password is incorrect, try again!" ) );
+ } else if (err == FmErrAlreadyExists ) {
+ FmDlgUtils::information( hbTrId( "The disk has already been unlocked!" ) );
+ break;
+ } else if( err == FmErrNotSupported ) {
+ FmDlgUtils::information( hbTrId( "The media does not support password locking!" ) );
+ break;
+ } else {
+ FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) );
+ break;
+ }
+ }
+}
+
+void FmDriverListWidget::on_formatAction_triggered()
+{
+ QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
+
+ if( FmDlgUtils::question( hbTrId( "Format? Data will be deleted during formatting." ) ) ){
+ if( FmErrNone != FmViewManager::viewManager()->operationService()->asyncFormat( diskName ) )
+ FmDlgUtils::information( hbTrId( "Formatting failed." ) );
+ }
+}
+
+void FmDriverListWidget::on_ejectAction_triggered()
+{
+ QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
+
+ if( FmDlgUtils::question( hbTrId( "Eject memory card? Some applications will be closed." ) ) ){
+ FmUtils::ejectDrive( diskName );
+ }
+}
+
+void FmDriverListWidget::on_directoryChanged( const QString &path )
+{
+ Q_UNUSED( path );
+ mModel->refresh();
+}
+
+void FmDriverListWidget::activeSearchPanel()
+{
+ QStringList driveList;
+ FmUtils::getDriveList( driveList, true );
+ if(driveList.count() > 0 ) {
+ mFindTargetPath = driveList.first();
+ if( FmUtils::isDriveC( mFindTargetPath ) ) {
+ mFindTargetPath = QString( Folder_C_Data );
+ }
+ } else {
+ mFindTargetPath.clear();
+ }
+ mLayout->addItem( mSearchPanel );
+ mSearchPanel->show();
+}
+
+void FmDriverListWidget::on_searchPanel_searchOptionsClicked()
+{
+ mFindTargetPath = FmUtils::fillPathWithSplash( FmFileDialog::getExistingDirectory( 0, hbTrId( "Look in:" ),
+ QString(""), QStringList() ) );
+}
+
+void FmDriverListWidget::on_searchPanel_criteriaChanged( const QString &criteria )
+{
+ emit startSearch( mFindTargetPath, criteria );
+ mSearchPanel->hide();
+ mLayout->removeItem( mSearchPanel );
+}
+
+void FmDriverListWidget::on_searchPanel_exitClicked()
+{
+ mSearchPanel->hide();
+ mLayout->removeItem( mSearchPanel );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmdriverlistwidget.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,88 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The header file of file manager disk list widget
+ */
+
+#ifndef FMDRIVERLISTWIDGET_H
+#define FMDRIVERLISTWIDGET_H
+
+#include "fmcommon.h"
+#include <hbwidget.h>
+
+class FmDriveModel;
+class HbListView;
+class HbAbstractViewItem;
+class HbSearchPanel;
+class HbMenu;
+class QFileSystemWatcher;
+
+class QGraphicsLinearLayout;
+
+class FmDriverListWidget : public HbWidget
+{
+ Q_OBJECT
+public:
+ FmDriverListWidget( QGraphicsItem *parent = 0 );
+ ~FmDriverListWidget();
+
+public:
+ int updatePwd( const QString& oldPwd, const QString& pwd);
+ void refreshDrive();
+ void activeSearchPanel();
+
+signals:
+ void activated( const QString &path );
+ void startSearch( const QString &targetPath, const QString &criteria );
+
+private slots:
+ void on_list_activated( const QModelIndex &index );
+ void on_list_longPressed( HbAbstractViewItem *item, const QPointF &coords );
+ void on_list_pressed( const QModelIndex & index ) ;
+
+ void on_viewAction_triggered();
+ void on_renameAction_triggered();
+ void on_nameAction_triggered();
+ void on_changePwdAction_triggered();
+ void on_removePwdAction_triggered();
+ void on_setPwdAction_triggered();
+ void on_unLockedAction_triggered();
+ void on_formatAction_triggered();
+ void on_ejectAction_triggered();
+ void on_directoryChanged( const QString &path );
+
+ void on_searchPanel_searchOptionsClicked();
+ void on_searchPanel_criteriaChanged( const QString &criteria );
+ void on_searchPanel_exitClicked();
+private:
+ void init();
+
+private:
+ HbListView *mListView;
+ FmDriveModel *mModel;
+ HbAbstractViewItem* mCurrentItem;
+ HbSearchPanel* mSearchPanel;
+
+ QFileSystemWatcher *mFileSystemWatcher;
+
+ QString mFindTargetPath;
+ QGraphicsLinearLayout *mLayout;
+ HbMenu *mContextMenu;
+
+ //used to avoid activate when long press list.
+ bool mListLongPressed;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmdriverview.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,174 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The source file of File Manager driver view
+ */
+
+#include "fmdriverview.h"
+#include "fmdriverlistwidget.h"
+#include "fmviewmanager.h"
+#include "fmcommon.h"
+
+#include <QApplication>
+
+#include <hbmenu.h>
+#include <hbaction.h>
+#include <hbtoolbar.h>
+#include <hbmainwindow.h>
+#include <hbsearchpanel.h>
+
+FmDriverView::FmDriverView() : FmViewBase( EDriverView )
+{
+ FM_LOG( "FmDriverView::FmDriverView" );
+ initMenu();
+ initToolBar();
+ initDiskListWidget();
+
+ QMetaObject::connectSlotsByName( this );
+}
+
+FmDriverView::~FmDriverView()
+{
+ removeToolBarAction();
+}
+
+void FmDriverView::initMenu()
+{
+ HbAction *action = 0;
+
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ action = new HbAction( this );
+ action->setObjectName( "rotateAction" );
+ action->setText( hbTrId( "Change orientation" ) );
+ menu()->addAction( action );
+#endif
+
+ action = new HbAction( this );
+ action->setObjectName( "findAction" );
+ action->setText( hbTrId( "txt_fmgr_opt_find" ) );
+ menu()->addAction( action );
+
+ action = new HbAction( this );
+ action->setObjectName( "backupAction" );
+ action->setText( hbTrId( "txt_fmgr_opt_backup" ) );
+ menu()->addAction( action );
+
+ action = new HbAction( this );
+ action->setObjectName( "restoreAction" );
+ action->setText( hbTrId( "txt_fmgr_opt_restore" ) );
+ menu()->addAction( action );
+
+ action = new HbAction( this );
+ action->setObjectName( "exitAction" );
+ action->setText( hbTrId( "Exit" ) );
+ menu()->addAction( action );
+
+}
+
+void FmDriverView::initDiskListWidget()
+{
+ mDriverList = new FmDriverListWidget( this );
+ connect( mDriverList, SIGNAL( activated( const QString& ) ),
+ this, SLOT( activated( const QString& ) ), Qt::QueuedConnection );
+
+ connect( mDriverList, SIGNAL( startSearch( const QString&, const QString& ) ),
+ this, SLOT( startSearch( const QString&, const QString& ) ) );
+
+ setWidget( mDriverList );
+}
+
+void FmDriverView::initToolBar()
+{
+ mToolBarLeftAction = new HbAction( this );
+ mToolBarLeftAction->setObjectName( "leftAction" );
+ mToolBarLeftAction->setText( hbTrId( "txt_fmgr_opt_backup" ) );
+ toolBar()->addAction( mToolBarLeftAction );
+
+ mToolBarRightAction = new HbAction( this );
+ mToolBarRightAction->setObjectName( "rightAction" );
+ mToolBarRightAction->setText( hbTrId( "txt_fmgr_opt_restore" ) );
+ toolBar()->addAction( mToolBarRightAction );
+
+ toolBar()->setOrientation( Qt::Horizontal );
+}
+
+void FmDriverView::activated( const QString& pathName )
+{
+ FmViewManager::viewManager()->createFileView( pathName );
+}
+
+void FmDriverView::refreshDrive()
+{
+ FM_LOG( QString( "FmDriverView::refreshDrive start" ) );
+ mDriverList->refreshDrive();
+ FM_LOG( QString( "FmDriverView::refreshDrive end" ) );
+}
+
+void FmDriverView::on_leftAction_triggered()
+{
+ FmViewManager::viewManager()->createBackupView();
+}
+
+void FmDriverView::on_rightAction_triggered()
+{
+ FmViewManager::viewManager()->createRestoreView();
+}
+
+#ifdef FM_CHANGE_ORIENT_ENABLE
+void FmDriverView::on_rotateAction_triggered()
+{
+ if ( mainWindow()->orientation() == Qt::Vertical ) {
+ mainWindow()->setOrientation( Qt::Horizontal );
+ }
+ else {
+ mainWindow()->setOrientation( Qt::Vertical );
+ }
+}
+#endif
+
+void FmDriverView::on_exitAction_triggered()
+{
+ qApp->quit();
+}
+
+void FmDriverView::on_backupAction_triggered()
+{
+ FmViewManager::viewManager()->createBackupView();
+}
+
+void FmDriverView::on_restoreAction_triggered()
+{
+ FmViewManager::viewManager()->createRestoreView();
+}
+
+void FmDriverView::on_findAction_triggered()
+{
+ mDriverList->activeSearchPanel();
+}
+
+void FmDriverView::startSearch( const QString &targetPath, const QString &criteria )
+{
+ if ( !criteria.isEmpty() && !targetPath.isEmpty() ) {
+ FmViewManager::viewManager()->createFindView( criteria, targetPath );
+ }
+}
+
+void FmDriverView::removeToolBarAction()
+{
+ toolBar()->removeAction( mToolBarLeftAction );
+ toolBar()->removeAction( mToolBarRightAction );
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmdriverview.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,69 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The header file of File Manager driver view
+ */
+
+#ifndef FMDRIVERVIEW_H
+#define FMDRIVERVIEW_H
+
+#include "fmcommon.h"
+#include "fmviewbase.h"
+
+class FmDriverListWidget;
+class FmOperationService;
+class HbSearchPanel;
+class HbAction;
+
+class FmDriverView : public FmViewBase
+{
+ Q_OBJECT
+public:
+ FmDriverView();
+ virtual ~FmDriverView();
+
+private slots:
+ void on_leftAction_triggered();
+ void on_rightAction_triggered();
+ void on_exitAction_triggered();
+ void on_backupAction_triggered();
+ void on_restoreAction_triggered();
+ void on_findAction_triggered();
+
+ void activated( const QString &pathName );
+ void refreshDrive();
+ void startSearch( const QString &targetPath, const QString &criteria );
+
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ void on_rotateAction_triggered();
+#endif
+
+private:
+ void initMenu();
+ void initDiskListWidget();
+ void initToolBar();
+
+ void removeToolBarAction();
+
+private:
+ FmDriverListWidget *mDriverList;
+ HbSearchPanel* mSearchPanel;
+
+ HbAction *mToolBarLeftAction;
+ HbAction *mToolBarRightAction;
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfilebrowsewidget.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,740 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+* Steven Yao <steven.yao@nokia.com>
+* Yong Zhang <yong.5.zhang@nokia.com>
+*
+* Description:
+* The source file of the widget to browse files
+*
+*/
+
+#include "fmfilebrowsewidget.h"
+#include "fmviewdetailsdialog.h"
+#include "fmviewmanager.h"
+#include "fmfiledialog.h"
+#include "fmdlgutils.h"
+#include "fmfileiconprovider.h"
+
+#include <QFile>
+#include <QFileSystemModel>
+#include <QSizePolicy>
+#include <QGraphicsLinearLayout>
+
+#include <hbmenu.h>
+#include <hblistview.h>
+#include <hbtreeview.h>
+#include <hbabstractviewitem.h>
+#include <hbaction.h>
+#include <hbsearchpanel.h>
+#include <hblabel.h>
+
+// These define comes from implementation of QFileSystemModel
+#define QFileSystemSortName 0
+#define QFileSystemSortSize 1
+#define QFileSystemSortType 2
+#define QFileSystemSortTime 3
+
+FmFileBrowseWidget::FmFileBrowseWidget( HbWidget *parent, FmFileBrowseWidget::Style style )
+ : HbWidget( parent ),
+ mTreeView( 0 ),
+ mListView( 0 ),
+ mLayout( 0 ),
+ mModel( 0 ),
+ mSelectable( false ),
+ mStyle( NoStyle ),
+ mFileBrowseStyle( style ),
+ mCurrentItem( 0 ),
+ mOperationService( 0 ),
+ mSearchPanel( 0 ),
+ mListLongPressed( false )
+{
+ initFileModel();
+ initListView();
+ initTreeView();
+ initSearchPanel();
+ initEmptyTipsLabel();
+ initLayout();
+
+ mOperationService = FmViewManager::viewManager()->operationService();
+ setStyle( style );
+}
+
+FmFileBrowseWidget::~FmFileBrowseWidget()
+{
+ //take the model out from view and delete it.
+ //so that the model could be destroy earlier
+ //since there is a thread running in background
+ //if the model destroy later, the thread might not quit properly.
+
+ mTreeView->setModel( 0 );
+ mListView->setModel( 0 );
+ delete mModel;
+
+ delete mFileIconProvider;
+}
+
+QFileInfo FmFileBrowseWidget::currentPath() const
+{
+ QModelIndex index = mListView->rootIndex();
+ if( !index.isValid() ) {
+ return QFileInfo();
+ }
+
+ if (mStyle == ListStyle) {
+ return mModel->fileInfo( mListView->rootIndex() );
+ } else if ( mStyle == TreeStyle ) {
+ return QFileInfo();
+ } else {
+ return QFileInfo();
+ }
+}
+
+QList<QFileInfo> FmFileBrowseWidget::checkedItems() const
+{
+ QList<QFileInfo> infos;
+
+ QItemSelection selection;
+ if (mStyle == ListStyle) {
+ selection = mListView->selectionModel()->selection();
+ }
+
+ QModelIndexList indexes = selection.indexes();
+ for (int i = 0; i < indexes.size(); ++i) {
+ infos.append( mModel->fileInfo( indexes.at(i) ) );
+ }
+
+ return infos;
+}
+
+void FmFileBrowseWidget::setRootPath( const QString &pathName )
+{
+ QString logString = "FmFileBrowseWidget::setRootPath(" + pathName + ')';
+ FM_LOG( logString );
+
+ int err = checkPathAndSetStyle( pathName );
+ switch( err )
+ {
+ case FmErrNone:
+ {
+ mListView->setRootIndex( mModel->setRootPath( pathName ) );
+ emit currentPathChanged( pathName );
+ break;
+ }
+ case FmErrPathNotExist:
+ {
+ FmDlgUtils::information( hbTrId( "Path is not exist" ) );
+ break;
+ }
+ case FmErrDriveNotAvailable:
+ {
+ // do not take any action as widget set note in label already.
+ break;
+ }
+ case FmErrDriveDenied:
+ case FmErrPathDenied:
+ {
+ FmDlgUtils::information( hbTrId( "Can not access" ) );
+ break;
+ }
+ default:
+ Q_ASSERT_X( false, "setRootPath", "please handle all error from isPathAccessabel" );
+ break;
+ }
+ mCurrentDrive = pathName.left( 3 );
+}
+
+void FmFileBrowseWidget::setStyle( FmFileBrowseWidget::Style style )
+{
+ if ( mStyle == style ) {
+ return;
+ }
+
+ if ( mStyle == ListStyle ) {
+ mLayout->removeItem( mListView );
+ mListView->hide();
+ } else if ( mStyle == TreeStyle ) {
+ mLayout->removeItem( mTreeView );
+ mTreeView->hide();
+ } else if( mStyle == LabelStyle ){
+ mLayout->removeItem( mEmptyTipLabel );
+ mEmptyTipLabel->hide();
+ }
+
+ if ( style == ListStyle ) {
+ mLayout->addItem( mListView );
+ mListView->show();
+ mFileBrowseStyle = ListStyle;
+ } else if ( style == TreeStyle ) {
+ mLayout->addItem( mTreeView );
+ mTreeView->show();
+ mFileBrowseStyle = TreeStyle;
+ } else if ( style == LabelStyle ){
+ mLayout->addItem( mEmptyTipLabel );
+ mEmptyTipLabel->show();
+ }
+
+ mStyle = style;
+}
+
+bool FmFileBrowseWidget::selectable() const
+{
+ return mSelectable;
+}
+
+void FmFileBrowseWidget::setSelectable( bool enable )
+{
+ if (mSelectable != enable) {
+ mSelectable = enable;
+ if (mStyle == ListStyle) {
+ mListView->setSelectionMode( mSelectable ? HbAbstractItemView::MultiSelection
+ : HbAbstractItemView::NoSelection );
+ }
+ }
+}
+
+void FmFileBrowseWidget::clearSelection()
+{
+ QItemSelectionModel *selectionModel = 0;
+
+ if (mStyle == ListStyle) {
+ selectionModel = mListView->selectionModel();
+ } else if (mStyle == TreeStyle) {
+ selectionModel = mTreeView->selectionModel();
+ }
+
+ if( selectionModel ){
+ selectionModel->clear();
+ }
+
+}
+
+
+bool FmFileBrowseWidget::rename( const QString &oldName, const QString &newName )
+{
+ return QFile::rename( oldName, newName );
+}
+
+
+
+
+bool FmFileBrowseWidget::cdUp()
+{
+ if (mStyle == ListStyle) {
+ QModelIndex parentIndex = mListView->rootIndex().parent();
+ // QFileSystemModel will auto refresh for file/folder change
+ if (parentIndex.isValid()) {
+ changeRootIndex( parentIndex );
+ return true;
+ }
+ }
+
+ return false;
+}
+
+void FmFileBrowseWidget::on_list_activated( const QModelIndex &index )
+{
+ mActivatedModelIndex = index;
+ emit listActivated();
+}
+
+void FmFileBrowseWidget::on_listActivated()
+{
+ FM_LOG("FmFileBrowseWidget::on_listActivated start");
+ if( mListLongPressed ) {
+ FM_LOG("FmFileBrowseWidget::on_list_activated end because longPressed");
+ return;
+ }
+ if (!mSelectable) {
+ if (mModel->isDir(mActivatedModelIndex) ) {
+ FM_LOG("FmFileBrowseWidget::on_list_activated changeRootIndex>>");
+ changeRootIndex( mActivatedModelIndex );
+ FM_LOG("FmFileBrowseWidget::on_list_activated changeRootIndex<<");
+ } else {
+ QString filePath( mModel->filePath( mActivatedModelIndex ) );
+ QFileInfo fileInfo( filePath );
+ if ( fileInfo.isFile() ) {
+ mOperationService->syncLaunchFileOpen( filePath );
+ }
+ }
+ }
+ FM_LOG("FmFileBrowseWidget::on_listActivated end");
+}
+
+void FmFileBrowseWidget::on_tree_activated( const QModelIndex &index )
+{
+ if (!mSelectable) {
+ mTreeView->setExpanded( index, !mTreeView->isExpanded( index ) );
+ }
+}
+
+void FmFileBrowseWidget::on_list_longPressed( HbAbstractViewItem *item, const QPointF &coords )
+{
+ mListLongPressed = true;
+ HbMenu *contextMenu = new HbMenu();
+ mCurrentItem = item;
+
+ HbAction *viewAction = new HbAction();
+ viewAction->setObjectName( "viewAction" );
+ viewAction->setText( hbTrId( "txt_fmgr_menu_view_details_file" ) );
+ contextMenu->addAction( viewAction );
+
+ connect( viewAction, SIGNAL( triggered() ),
+ this, SLOT( on_viewAction_triggered() ), Qt::QueuedConnection );
+
+ //copy
+ HbAction *copyAction = new HbAction();
+ copyAction->setObjectName( "copyAction" );
+ copyAction->setText( hbTrId( "txt_fmgr_menu_copy" ) );
+ contextMenu->addAction( copyAction );
+
+ connect( copyAction, SIGNAL( triggered() ),
+ this, SLOT( on_copyAction_triggered() ), Qt::QueuedConnection );
+
+
+ QString filePath( mModel->filePath( item->modelIndex() ) );
+ QString formatFilePath( FmUtils::fillPathWithSplash( filePath ) );
+ QFileInfo fileInfo( filePath );
+
+ if( ( fileInfo.isFile() ) || ( fileInfo.isDir() && !( FmUtils::isDefaultFolder( formatFilePath ) ) ) ){
+ //Move
+ HbAction *moveAction = new HbAction();
+ moveAction->setObjectName( "moveAction" );
+ moveAction->setText( hbTrId( "txt_fmgr_menu_move" ) );
+ contextMenu->addAction( moveAction );
+
+ connect( moveAction, SIGNAL( triggered() ),
+ this, SLOT( on_moveAction_triggered() ), Qt::QueuedConnection );
+
+ //Delete
+ HbAction *deleteAction = new HbAction();
+ deleteAction->setObjectName( "deleteAction" );
+ deleteAction->setText( hbTrId( "txt_fmgr_menu_delete" ) );
+ contextMenu->addAction( deleteAction );
+
+ connect( deleteAction, SIGNAL( triggered() ),
+ this, SLOT( on_deleteAction_triggered() ), Qt::QueuedConnection );
+
+ //rename
+ HbAction *renameAction = new HbAction();
+ renameAction->setObjectName( "renameAction" );
+ renameAction->setText( hbTrId( "txt_fmgr_menu_rename" ) );
+ contextMenu->addAction( renameAction );
+
+ connect( renameAction, SIGNAL( triggered() ),
+ this, SLOT( on_renameAction_triggered() ), Qt::QueuedConnection );
+ }
+
+// if( fileInfo.isFile() ){
+// HbAction *sendAction = new HbAction();
+// sendAction->setObjectName( "sendAction" );
+// sendAction->setText( hbTrId( "txt_fmgr_menu_send" ) );
+// contextMenu->addAction( sendAction );
+//
+// connect( sendAction, SIGNAL( triggered() ),
+// this, SLOT( on_sendAction_triggered() ) );
+// }
+
+ contextMenu->setPreferredPos( coords );
+ contextMenu->open();
+}
+
+void FmFileBrowseWidget::on_list_pressed( const QModelIndex & index )
+{
+ mListLongPressed = false;
+}
+
+void FmFileBrowseWidget::on_tree_longPressed( HbAbstractViewItem *item, const QPointF &coords )
+{
+ Q_UNUSED( item );
+ Q_UNUSED( coords );
+ /*
+ HbMenu *contextMenu = new HbMenu( this );
+
+ if ( isFolder( item->modelIndex() ) ) {
+ contextMenu->addAction("View details");
+ contextMenu->addAction("Copy");
+ contextMenu->addAction("Rename");
+ contextMenu->addAction("Delete");
+ } else {
+ contextMenu->addAction("View details");
+ contextMenu->addAction("Open");
+ contextMenu->addAction("Copy");
+ contextMenu->addAction("Rename");
+ contextMenu->addAction("Delete");
+ }
+
+ contextMenu->exec( coords );
+ */
+}
+
+void FmFileBrowseWidget::initListView()
+{
+ mListView = new HbListView();
+ mListView->setObjectName( "list" );
+ mListView->setModel( mModel );
+
+ connect( mListView, SIGNAL( activated( const QModelIndex& ) ),
+ this, SLOT( on_list_activated( const QModelIndex& ) ) );
+ connect( this, SIGNAL( listActivated() ),
+ this, SLOT( on_listActivated() ), Qt::QueuedConnection );
+ connect( mListView, SIGNAL( pressed( const QModelIndex & ) ),
+ this, SLOT( on_list_pressed( const QModelIndex & ) ) );
+ connect( mListView, SIGNAL( longPressed( HbAbstractViewItem *, const QPointF & ) ),
+ this, SLOT( on_list_longPressed( HbAbstractViewItem *, const QPointF & ) ) );
+}
+
+void FmFileBrowseWidget::initTreeView()
+{
+ mTreeView = new HbTreeView();
+ mTreeView->setObjectName( "tree" );
+ mTreeView->setModel( mModel );
+
+ connect( mTreeView, SIGNAL( activated( const QModelIndex& ) ),
+ this, SLOT( on_tree_activated( const QModelIndex& ) ) );
+ connect( mTreeView, SIGNAL( longPressed( HbAbstractViewItem *, const QPointF & ) ),
+ this, SLOT( on_tree_longPressed( HbAbstractViewItem *, const QPointF & ) ) );
+}
+
+void FmFileBrowseWidget::initFileModel()
+{
+ mModel = new QFileSystemModel( this );
+ mModel->setReadOnly( false );
+
+ mFileIconProvider = new FmFileIconProvider();
+ mModel->setIconProvider( mFileIconProvider );
+}
+
+void FmFileBrowseWidget::initLayout()
+{
+ mLayout = new QGraphicsLinearLayout( this );
+ mLayout->setOrientation( Qt::Vertical );
+
+ setLayout( mLayout );
+}
+
+void FmFileBrowseWidget::initSearchPanel()
+{
+ mSearchPanel = new HbSearchPanel( this );
+ mSearchPanel->setObjectName( "searchPanel" );
+ mSearchPanel->setSearchOptionsEnabled( true );
+ mSearchPanel->setProgressive( false );
+ mSearchPanel->hide();
+
+ connect( mSearchPanel, SIGNAL( searchOptionsClicked() ),
+ this, SLOT( on_searchPanel_searchOptionsClicked() ), Qt::QueuedConnection );
+
+ connect( mSearchPanel, SIGNAL( criteriaChanged( const QString & ) ),
+ this, SLOT( on_searchPanel_criteriaChanged( const QString & ) ) );
+
+ connect( mSearchPanel, SIGNAL( exitClicked() ),
+ this, SLOT( on_searchPanel_exitClicked() ) );
+}
+
+void FmFileBrowseWidget::initEmptyTipsLabel()
+{
+ mEmptyTipLabel = new HbLabel( this );
+ mEmptyTipLabel->setObjectName( "searchPanel" );
+ mEmptyTipLabel->hide();
+}
+
+
+void FmFileBrowseWidget::changeRootIndex( const QModelIndex &index )
+{
+ QString filePath = mModel->fileInfo( index ).absoluteFilePath();
+ setRootPath( filePath );
+}
+
+bool FmFileBrowseWidget::isDriver(const QModelIndex &index) const
+{
+ QString path = mModel->filePath(index);
+ return path.right(1) == ":";
+}
+
+bool FmFileBrowseWidget::isFolder(const QModelIndex &index) const
+{
+ if( isDriver( index ) ) {
+ return false;
+ }
+
+ return mModel->isDir(index);
+}
+
+void FmFileBrowseWidget::setModelFilter( QDir::Filters filters )
+{
+ mModel->setFilter( filters );
+}
+
+void FmFileBrowseWidget::on_driveChanged()
+{
+ FM_LOG( "FmFileBrowseWidget::on_driveChanged start" );
+ QString currPath( currentPath().absoluteFilePath() );
+
+ if(style()==ListStyle) {
+ // display normally, setRootPath again to check if drive is available
+ setRootPath( currPath );
+ } else{
+ // display label style, setRootPath to drive root
+ setRootPath( mCurrentDrive );
+ }
+ emit setTitle( FmUtils::fillDriveVolume( mCurrentDrive, true ) );
+ FM_LOG( "FmFileBrowseWidget::on_driveChanged end" );
+}
+
+int FmFileBrowseWidget::checkPathAndSetStyle( const QString& path )
+{
+ FM_LOG( "FmFileBrowseWidget::checkPathAndSetStyle start_" + path );
+ int err = FmUtils::isPathAccessabel( path );
+ switch( err )
+ {
+ case FmErrNone:
+ {
+ setStyle( mFileBrowseStyle );
+ emit setEmptyMenu( false );
+ break;
+ }
+ case FmErrDriveNotAvailable:
+ {
+ QString driveName = FmUtils::getDriveNameFromPath( path );
+ FmDriverInfo::DriveState state = FmUtils::queryDriverInfo( driveName ).driveState();
+
+ if( state & FmDriverInfo::EDriveLocked ) {
+ mEmptyTipLabel->setPlainText( hbTrId( "Drive is locked" ) );
+ } else if( state & FmDriverInfo::EDriveNotPresent ) {
+ mEmptyTipLabel->setPlainText( hbTrId( "Drive is not present" ) );
+ } else if( state & FmDriverInfo::EDriveCorrupted ) {
+ mEmptyTipLabel->setPlainText( hbTrId( "Drive is Corrupted" ) );
+ } else {
+ mEmptyTipLabel->setPlainText( hbTrId( "Drive can not be opened " ) );
+ }
+ setStyle( LabelStyle );
+ //hide search panel when the drive is removed
+ if ( mSearchPanel->isVisible() ){
+ mSearchPanel->hide();
+ mLayout->removeItem( mSearchPanel );
+ }
+ emit setEmptyMenu( true );
+ break;
+ }
+ case FmErrPathNotExist:
+ case FmErrDriveDenied:
+ case FmErrPathDenied:
+ {
+ // do not tack any action, error note shoule be shown by invoker.
+ // checkPathAndSetStyle just check path and set style.
+ break;
+ }
+ default:
+ Q_ASSERT_X( false, "checkPathAndSetStyle", "please handle all error from isPathAccessabel" );
+ break;
+ }
+ return err;
+}
+
+void FmFileBrowseWidget::sortFiles( TSortType sortType )
+{
+ switch( sortType ){
+ case ESortByName:{
+ mModel->sort( QFileSystemSortName );
+ }
+ break;
+ case ESortByTime:{
+ mModel->sort( QFileSystemSortTime );
+ }
+ break;
+ case ESortBySize:{
+ mModel->sort( QFileSystemSortSize );
+ }
+ break;
+ case ESortByType:{
+ mModel->sort( QFileSystemSortType );
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void FmFileBrowseWidget::activeSearchPanel()
+{
+ mFindTargetPath.clear();
+ mLayout->addItem( mSearchPanel );
+ mSearchPanel->show();
+}
+
+void FmFileBrowseWidget::on_searchPanel_searchOptionsClicked()
+{
+ mFindTargetPath = FmUtils::fillPathWithSplash( FmFileDialog::getExistingDirectory( 0, hbTrId( "Look in:" ), QString(""),
+ QStringList() ) );
+}
+
+void FmFileBrowseWidget::on_searchPanel_criteriaChanged( const QString &criteria )
+{
+ if( mFindTargetPath.isEmpty() ){
+ mFindTargetPath = currentPath().filePath();
+ }
+ emit startSearch( mFindTargetPath, criteria );
+
+ mSearchPanel->hide();
+ mLayout->removeItem( mSearchPanel );
+}
+
+void FmFileBrowseWidget::on_searchPanel_exitClicked()
+{
+ mSearchPanel->hide();
+ mLayout->removeItem( mSearchPanel );
+}
+
+void FmFileBrowseWidget::on_sendAction_triggered()
+{
+ QString filePath = mModel->filePath( mCurrentItem->modelIndex() );
+ QStringList list;
+ list.append( filePath );
+ FmUtils::sendFiles( list );
+}
+
+void FmFileBrowseWidget::on_viewAction_triggered()
+{
+ QString filePath = mModel->filePath( mCurrentItem->modelIndex() );
+ QFileInfo fileInfo = mModel->fileInfo( mCurrentItem->modelIndex() );
+
+ if( fileInfo.isDir() ){
+ mOperationService->asyncViewFolderDetails( filePath );
+ }
+ else if( fileInfo.isFile() ){
+ FmViewDetailsDialog::showFileViewDetailsDialog( filePath, FmUtils::getDriveLetterFromPath( filePath ) );
+ }
+}
+
+void FmFileBrowseWidget::on_deleteAction_triggered()
+{
+ QStringList fileList;
+ fileList.push_back( mModel->filePath( mCurrentItem->modelIndex() ) );
+ if ( FmDlgUtils::question( hbTrId("Confirm Deletion?" ) )) {
+ int ret = mOperationService->asyncRemove( fileList );
+ switch( ret ) {
+ case FmErrNone:
+ // no error, do not show note to user
+ break;
+ case FmErrAlreadyStarted:
+ // last operation have not finished
+ FmDlgUtils::information( hbTrId( "Operatin already started!" ) );
+ break;
+ case FmErrWrongParam:
+ FmDlgUtils::information( hbTrId( "Wrong parameters!" ) );
+ break;
+ default:
+ FmDlgUtils::information( hbTrId( "Operation fail to start!" ) );
+ }
+ }
+}
+
+void FmFileBrowseWidget::on_copyAction_triggered()
+{
+ QStringList srcFileList;
+ srcFileList.push_back( mModel->filePath( mCurrentItem->modelIndex() ) );
+
+ QString targetPathName = FmFileDialog::getExistingDirectory( 0, hbTrId( "copy to" ),
+ QString(""), QStringList() );
+ if( !targetPathName.isEmpty() ) {
+ targetPathName = FmUtils::fillPathWithSplash( targetPathName );
+
+ int ret = mOperationService->asyncCopy(
+ srcFileList, targetPathName );
+ switch( ret ) {
+ case FmErrNone:
+ // no error, do not show note to user
+ break;
+ case FmErrAlreadyStarted:
+ // last operation have not finished
+ FmDlgUtils::information( hbTrId( "Operatin already started!" ) );
+ break;
+ case FmErrWrongParam:
+ FmDlgUtils::information( hbTrId( "Wrong parameters!" ) );
+ break;
+ default:
+ FmDlgUtils::information( hbTrId( "Operation fail to start!" ) );
+ }
+ }
+
+}
+
+void FmFileBrowseWidget::on_moveAction_triggered()
+{
+ QStringList fileList;
+ fileList.push_back( mModel->filePath( mCurrentItem->modelIndex() ) );
+
+ QString targetPathName = FmFileDialog::getExistingDirectory( 0, hbTrId( "move to" ),
+ QString(""), QStringList() );
+
+ if( !targetPathName.isEmpty() ) {
+ targetPathName = FmUtils::fillPathWithSplash( targetPathName );
+
+ int ret = mOperationService->asyncMove( fileList, targetPathName );
+ switch( ret ) {
+ case FmErrNone:
+ // no error, do not show note to user
+ break;
+ case FmErrAlreadyStarted:
+ // last operation have not finished
+ FmDlgUtils::information( hbTrId( "Operatin already started!" ) );
+ break;
+ case FmErrWrongParam:
+ FmDlgUtils::information( hbTrId( "Wrong parameters!" ) );
+ break;
+ default:
+ FmDlgUtils::information( hbTrId( "Operation fail to start!" ) );
+ }
+ }
+}
+
+
+void FmFileBrowseWidget::on_renameAction_triggered()
+{
+ QString filePath = mModel->filePath( mCurrentItem->modelIndex() );
+ QFileInfo fileInfo = mModel->fileInfo( mCurrentItem->modelIndex() );
+ int maxFileNameLength = FmUtils::getMaxFileNameLength();
+ // regExpList used to disable primary action of text query dialog if input text is not match
+ QStringList regExpList = (QStringList() << Regex_ValidFileFolderName << Regex_ValidNotEndWithDot );
+
+ QString oldSuffix( fileInfo.suffix() );
+ QString newName( fileInfo.fileName() );
+ while( FmDlgUtils::showTextQuery( hbTrId( "Enter new name for %1" ).arg( newName ), newName, regExpList,
+ maxFileNameLength, QString() , true ) ){
+ // remove whitespace from the start and the end.
+ newName = newName.trimmed();
+ QString newTargetPath = FmUtils::fillPathWithSplash(
+ fileInfo.absolutePath() ) + newName;
+ QFileInfo newFileInfo( newTargetPath );
+ QString errString;
+ // check if name/path is available for use
+ // add new Name to check, in order to avoid problem of newName is empty
+ if( !FmUtils::checkNewFolderOrFile( newName, newTargetPath, errString ) ) {
+ FmDlgUtils::information( errString );
+ continue;
+ }
+ if( !rename( fileInfo.absoluteFilePath(), newTargetPath ) ) {
+ FmDlgUtils::information( hbTrId("Rename failed!") );
+ }
+ else {
+ // Rename succeed
+ if ( ( oldSuffix.compare( newFileInfo.suffix(), Qt::CaseInsensitive ) != 0 )
+ && newFileInfo.isFile() ) {
+ // popup warning when the suffix of file is changed.
+ FmDlgUtils::information( hbTrId( "File may become unusable when file name extension is changed" ) );
+ }
+ }
+ break;
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfilebrowsewidget.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,152 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The header file of the widget to browse files
+*
+*/
+
+#ifndef FMFILEBROWSEWIDGET_H
+#define FMFILEBROWSEWIDGET_H
+
+#include "fmcommon.h"
+#include "fmoperationservice.h"
+
+#include <QFileInfo>
+
+#include <hbwidget.h>
+#include <QDir>
+
+class QFileSystemModel;
+class QGraphicsLinearLayout;
+class HbListView;
+class HbTreeView;
+class HbAbstractViewItem;
+class HbSearchPanel;
+class HbLabel;
+
+class FmFileIconProvider;
+
+class FmFileBrowseWidget : public HbWidget
+{
+ Q_OBJECT
+
+public:
+ enum Style {
+ NoStyle,
+ ListStyle,
+ TreeStyle,
+ LabelStyle
+ };
+
+ enum TSortType{
+ ESortByName,
+ ESortByTime,
+ ESortBySize,
+ ESortByType
+ };
+
+ explicit FmFileBrowseWidget( HbWidget *parent = 0, FmFileBrowseWidget::Style style = ListStyle );
+ ~FmFileBrowseWidget();
+
+ QFileInfo currentPath() const;
+ QList<QFileInfo> checkedItems() const;
+ Style style() const { return mStyle; }
+ void setStyle( FmFileBrowseWidget::Style style );
+ bool selectable() const;
+ void setSelectable( bool enable );
+ void clearSelection();
+
+ bool rename( const QString &oldName, const QString &newName );
+ void setModelFilter( QDir::Filters filters );
+
+ int checkPathAndSetStyle( const QString& path );
+ void sortFiles( TSortType sortType );
+ void activeSearchPanel();
+
+public slots:
+ bool cdUp();
+ void setRootPath( const QString &pathName );
+
+ // triggered when drive is ejected/inserted
+ void on_driveChanged();
+
+ void on_searchPanel_searchOptionsClicked();
+ void on_searchPanel_criteriaChanged( const QString &criteria );
+ void on_searchPanel_exitClicked();
+
+signals:
+ void currentPathChanged( const QString& );
+ void startSearch( const QString &targetPath, const QString &criteria );
+ void setEmptyMenu( bool isMenuEmpty );
+ void setTitle( const QString &title );
+ void listActivated();
+
+private slots:
+ void on_list_activated( const QModelIndex &index );
+ void on_listActivated();
+ void on_tree_activated( const QModelIndex &index );
+ void on_list_longPressed( HbAbstractViewItem *item, const QPointF &coords );
+ void on_list_pressed( const QModelIndex & index ) ;
+ void on_tree_longPressed( HbAbstractViewItem *item, const QPointF &coords );
+
+ void on_viewAction_triggered();
+ void on_copyAction_triggered();
+ void on_moveAction_triggered();
+ void on_deleteAction_triggered();
+ void on_renameAction_triggered();
+ void on_sendAction_triggered();
+
+private:
+ void initListView();
+ void initTreeView();
+ void initFileModel();
+ void initLayout();
+ void initSearchPanel();
+ void initEmptyTipsLabel();
+
+ void changeRootIndex( const QModelIndex &index );
+ bool isDriver(const QModelIndex &index) const;
+ bool isFolder(const QModelIndex &index) const;
+
+ HbTreeView *mTreeView;
+ HbListView *mListView;
+ QGraphicsLinearLayout *mLayout;
+ QFileSystemModel *mModel;
+
+ bool mSelectable;
+
+ //currentStyle
+ Style mStyle;
+ //used to store original tree/list style
+ Style mFileBrowseStyle;
+
+ HbAbstractViewItem* mCurrentItem;
+ FmOperationService *mOperationService;
+
+ QString mFindTargetPath;
+ HbSearchPanel *mSearchPanel;
+ HbLabel *mEmptyTipLabel;
+
+ QString mCurrentDrive;
+
+ //used to avoid activate when long press list.
+ bool mListLongPressed;
+ QModelIndex mActivatedModelIndex;
+
+ // provide icon from filemanger
+ FmFileIconProvider *mFileIconProvider;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfileview.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,531 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+* Steven Yao <steven.yao@nokia.com>
+*
+* Description:
+* The source file of the file browse view of file manager
+*
+*/
+
+#include "fmfileview.h"
+#include "fmutils.h"
+#include "fmfiledialog.h"
+#include "fmfilebrowsewidget.h"
+#include "fmviewmanager.h"
+#include "fmoperationservice.h"
+#include "fmdlgutils.h"
+
+#include <QApplication>
+#include <QGraphicsLinearLayout>
+
+#include <hbinstance.h>
+#include <hbmenu.h>
+#include <hbaction.h>
+#include <hbtoolbar.h>
+#include <hblineedit.h>
+#include <hbpushbutton.h>
+#include <hbmainwindow.h>
+
+FmFileView::FmFileView() : FmViewBase( EFileView ), mWidget( 0 ),
+ mUpButton( 0 ), mStyleAction( 0 ), mSelectableAction( 0 ),
+ mFindAction( 0 ), mOperationService( 0 ), mMenu( 0 ), mIsFindDisabled( false )
+{
+ mOperationService = FmViewManager::viewManager()->operationService();
+ initMenu();
+ initMainWidget();
+ initToolBar();
+
+ QMetaObject::connectSlotsByName( this );
+}
+
+FmFileView::~FmFileView()
+{
+ removeToolBarAction();
+}
+
+void FmFileView::setRootPath( const QString &pathName )
+{
+ if( pathName.isEmpty() ) {
+ return;
+ }
+ mWidget->setRootPath( pathName );
+ QString driveName = FmUtils::getDriveNameFromPath( pathName );
+ /*
+ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( driveName );
+ QString volumeName = driverInfo.volumeName();
+ if( volumeName.isEmpty() ){
+ FmDriverInfo::DriveState driveState = FmUtils::queryDriverInfo( driveName ).driveState();
+ if( !( driveState & FmDriverInfo::EDriveNotPresent ) ){
+ if( driveState & FmDriverInfo::EDriveRemovable ) {
+ if( driveState & FmDriverInfo::EDriveMassStorage ) {
+ volumeName.append( hbTrId( "Mass Storage" ) );
+ }
+ else{
+ volumeName.append( hbTrId( "Memory Card" ) );
+ }
+ }
+ else{
+ volumeName.append( hbTrId( "Phone Memory" ) );
+ }
+ }
+ }
+ */
+ //QString titleText = FmUtils::removePathSplash( driverInfo.name() ) + ' ' + volumeName;
+ QString titleText( FmUtils::fillDriveVolume( driveName, true ) );
+ setTitle( titleText );
+}
+
+void FmFileView::setRootLevelPath( const QString &pathName )
+{
+ rootLevelPath = FmUtils::fillPathWithSplash( pathName );
+}
+
+void FmFileView::setFindDisabled( bool disable )
+{
+ mIsFindDisabled = disable;
+ if( mFindAction ) {
+ mFindAction->setDisabled( mIsFindDisabled );
+ }
+}
+
+void FmFileView::initMenu()
+{
+ HbAction *action = 0;
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ action = new HbAction( this );
+ action->setObjectName( "rotateAction" );
+ action->setText( hbTrId( "Change orientation" ) );
+ menu()->addAction( action );
+#endif
+
+// mStyleAction = new HbAction();
+// mStyleAction->setObjectName( "switchStyle" );
+// menu()->addAction( mStyleAction );
+
+ mSelectableAction = new HbAction();
+ mSelectableAction->setObjectName( "setSelectable" );
+ menu()->addAction( mSelectableAction );
+ connect( mSelectableAction, SIGNAL( triggered() ),
+ this, SLOT( on_setSelectable_triggered() ), Qt::QueuedConnection );
+
+
+ action = new HbAction();
+ action->setObjectName( "delete" );
+ action->setText( hbTrId( "txt_fmgr_menu_delete" ) );
+ menu()->addAction( action );
+ connect( action, SIGNAL( triggered() ),
+ this, SLOT( on_delete_triggered() ), Qt::QueuedConnection );
+
+ action = new HbAction();
+ action->setObjectName( "copy" );
+ action->setText( hbTrId( "txt_fmgr_menu_copy" ) );
+ menu()->addAction( action );
+ connect( action, SIGNAL( triggered() ),
+ this, SLOT( on_copy_triggered() ), Qt::QueuedConnection );
+
+ action = new HbAction();
+ action->setObjectName( "move" );
+ action->setText( hbTrId( "txt_fmgr_menu_move" ) );
+ menu()->addAction( action );
+ connect( action, SIGNAL( triggered() ),
+ this, SLOT( on_move_triggered() ), Qt::QueuedConnection );
+
+ action = new HbAction();
+ action->setObjectName( "newFolder" );
+ action->setText( hbTrId( "txt_fmgr_opt_new_folder" ) );
+ menu()->addAction( action );
+ connect( action, SIGNAL( triggered() ),
+ this, SLOT( on_newFolder_triggered() ), Qt::QueuedConnection );
+
+ HbMenu *subMenu = new HbMenu( hbTrId( "Sort" ) );
+ HbAction *sortNameAction = new HbAction( subMenu );
+ sortNameAction->setObjectName( "sortNameAction" );
+ sortNameAction->setText( hbTrId( "Sort by name" ) );
+ subMenu->addAction( sortNameAction );
+
+ HbAction *sortTimeAction = new HbAction( subMenu );
+ sortTimeAction->setObjectName( "sortTimeAction" );
+ sortTimeAction->setText( hbTrId( "Sort by time" ) );
+ subMenu->addAction( sortTimeAction );
+
+ HbAction *sortSizeAction = new HbAction( subMenu );
+ sortSizeAction->setObjectName( "sortSizeAction" );
+ sortSizeAction->setText( hbTrId( "Sort by size" ) );
+ subMenu->addAction( sortSizeAction );
+
+ HbAction* sortTypeAction = new HbAction( subMenu );
+ sortTypeAction->setObjectName( "sortTypeAction" );
+ sortTypeAction->setText( hbTrId( "Sort by type" ) );
+ subMenu->addAction( sortTypeAction );
+
+ menu()->addMenu( subMenu );
+
+ connect( sortNameAction, SIGNAL( triggered() ),
+ this, SLOT( on_sortNameAction_triggered() ), Qt::QueuedConnection );
+ connect( sortTimeAction, SIGNAL( triggered() ),
+ this, SLOT( on_sortTimeAction_triggered() ), Qt::QueuedConnection );
+ connect( sortSizeAction, SIGNAL( triggered() ),
+ this, SLOT( on_sortSizeAction_triggered() ), Qt::QueuedConnection );
+ connect( sortTypeAction, SIGNAL( triggered() ),
+ this, SLOT( on_sortTypeAction_triggered() ), Qt::QueuedConnection );
+
+ mMenu = takeMenu();
+}
+
+void FmFileView::initMainWidget()
+{
+ QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout( this );
+ vLayout->setOrientation( Qt::Vertical );
+
+ mWidget = new FmFileBrowseWidget( this );
+ mWidget->setObjectName( "mainWidget" );
+ setStyle( FmFileBrowseWidget::ListStyle );
+ setSelectable( false );
+
+ vLayout->addItem( mWidget );
+ //set stretch factor to file browser widget, so that it could fully cover the client area.
+ vLayout->setStretchFactor( mWidget, 1 );
+
+ setLayout( vLayout );
+
+ connect( mWidget, SIGNAL( startSearch( const QString&, const QString& ) ),
+ this, SLOT( startSearch( const QString&, const QString& ) ) );
+ connect( mWidget, SIGNAL( setEmptyMenu( bool ) ),
+ this, SLOT( on_mainWidget_setEmptyMenu( bool ) ) );
+ connect( mWidget, SIGNAL( setTitle( const QString & ) ),
+ this, SLOT( on_mainWidget_setTitle( const QString & ) ) );
+}
+
+void FmFileView::initToolBar()
+{
+ toolBar()->clearActions();
+ mFindAction = new HbAction( this );
+ mFindAction->setObjectName( "leftAction" );
+ mFindAction->setText( hbTrId("txt_fmgr_opt_find") );
+ mFindAction->setDisabled( mIsFindDisabled );
+ toolBar()->addAction( mFindAction );
+
+ mToolBarRightAction = new HbAction( this );
+ mToolBarRightAction->setObjectName( "rightAction" );
+ mToolBarRightAction->setText( hbTrId( "up" ) );
+ toolBar()->addAction( mToolBarRightAction );
+
+ toolBar()->setOrientation( Qt::Horizontal );
+
+ //mToolBar = takeToolBar();
+ connect( mFindAction, SIGNAL( triggered() ),
+ this, SLOT( on_leftAction_triggered() ) );
+ connect( mToolBarRightAction, SIGNAL( triggered() ),
+ this, SLOT( on_rightAction_triggered() ), Qt::QueuedConnection );
+
+}
+
+void FmFileView::setStyle( FmFileBrowseWidget::Style style )
+{
+ /*
+ if ( style == FmFileBrowseWidget::ListStyle ) {
+ mStyleAction->setText( hbTrId("Tree") );
+ } else if ( style == FmFileBrowseWidget::TreeStyle ) {
+ mStyleAction->setText( hbTrId("List") );
+ }
+ */
+ mWidget->setStyle( style );
+}
+
+void FmFileView::setSelectable( bool enable )
+{
+ if (enable) {
+ mSelectableAction->setText( hbTrId("No Select") );
+ } else {
+ mSelectableAction->setText( hbTrId("Select") );
+ }
+
+ mWidget->setSelectable( enable );
+}
+
+void FmFileView::infoNoFileSelected()
+{
+ FmDlgUtils::information( hbTrId("No File/Folder selected" ) );
+}
+
+#ifdef FM_CHANGE_ORIENT_ENABLE
+void FmFileView::on_rotateAction_triggered()
+{
+ if ( mainWindow()->orientation() == Qt::Vertical ) {
+ mainWindow()->setOrientation( Qt::Horizontal );
+ }
+ else {
+ mainWindow()->setOrientation( Qt::Vertical );
+ }
+}
+#endif
+
+void FmFileView::on_switchStyle_triggered()
+{
+ if (mWidget->style() == FmFileBrowseWidget::ListStyle) {
+ setStyle( FmFileBrowseWidget::TreeStyle );
+ } else if (mWidget->style() == FmFileBrowseWidget::TreeStyle) {
+ setStyle( FmFileBrowseWidget::ListStyle );
+ }
+}
+
+void FmFileView::on_setSelectable_triggered()
+{
+ setSelectable( !mWidget->selectable() );
+}
+
+void FmFileView::on_delete_triggered()
+{
+ QList<QFileInfo> files = mWidget->checkedItems();
+ if (files.size() == 0) {
+ infoNoFileSelected();
+ } else {
+ if (FmDlgUtils::question( hbTrId("Confirm Deletion?" ) )) {
+ QStringList fileList;
+ for (int i = 0; i < files.size(); ++i) {
+ fileList.push_back( files[i].absoluteFilePath() );
+ }
+ int ret = mOperationService->asyncRemove( fileList );
+ switch( ret ) {
+ case FmErrNone:
+ // no error, do not show note to user
+ break;
+ case FmErrAlreadyStarted:
+ // last operation have not finished
+ FmDlgUtils::information( hbTrId( "Operatin already started!" ) );
+ break;
+ case FmErrWrongParam:
+ FmDlgUtils::information( hbTrId( "Wrong parameters!" ) );
+ break;
+ default:
+ FmDlgUtils::information( hbTrId( "Operation fail to start!" ) );
+ }
+ setSelectable( false );
+ }
+ }
+}
+
+void FmFileView::on_copy_triggered()
+{
+ QList<QFileInfo> files = mWidget->checkedItems();
+ QStringList srcFileList;
+
+ if (files.size() == 0) {
+ infoNoFileSelected();
+ } else {
+ QString targetPathName = FmFileDialog::getExistingDirectory( 0, hbTrId( "copy to" ),
+ QString(""), QStringList() );
+ if( !targetPathName.isEmpty() && files.size() > 0 ) {
+ targetPathName = FmUtils::fillPathWithSplash( targetPathName );
+
+ foreach( QFileInfo fileInfo, files ){
+ srcFileList.push_back( fileInfo.absoluteFilePath() );
+ }
+
+ int ret = mOperationService->asyncCopy(
+ srcFileList, targetPathName );
+ switch( ret ) {
+ case FmErrNone:
+ // no error, do not show note to user
+ break;
+ case FmErrAlreadyStarted:
+ // last operation have not finished
+ FmDlgUtils::information( hbTrId( "Operatin already started!" ) );
+ break;
+ case FmErrWrongParam:
+ FmDlgUtils::information( hbTrId( "Wrong parameters!" ) );
+ break;
+ default:
+ FmDlgUtils::information( hbTrId( "Operation fail to start!" ) );
+ }
+ setSelectable( false );
+ }
+ }
+
+}
+
+void FmFileView::on_move_triggered()
+{
+ QList<QFileInfo> files = mWidget->checkedItems();
+
+ if (files.size() == 0) {
+ infoNoFileSelected();
+ } else {
+ QString targetPathName = FmFileDialog::getExistingDirectory( 0, hbTrId( "move to" ),
+ QString(""), QStringList() );
+
+ if( !targetPathName.isEmpty() && files.size() > 0 ) {
+ targetPathName = FmUtils::fillPathWithSplash( targetPathName );
+
+ QStringList fileList;
+ for (int i = 0; i < files.size(); ++i) {
+ fileList.push_back( files[i].absoluteFilePath() );
+ }
+ int ret = mOperationService->asyncMove( fileList, targetPathName );
+ switch( ret ) {
+ case FmErrNone:
+ // no error, do not show note to user
+ break;
+ case FmErrAlreadyStarted:
+ // last operation have not finished
+ FmDlgUtils::information( hbTrId( "Operatin already started!" ) );
+ break;
+ case FmErrWrongParam:
+ FmDlgUtils::information( hbTrId( "Wrong parameters!" ) );
+ break;
+ default:
+ FmDlgUtils::information( hbTrId( "Operation fail to start!" ) );
+ }
+ setSelectable( false );
+ }
+ }
+}
+
+void FmFileView::on_newFolder_triggered()
+{
+ int maxFileNameLength = FmUtils::getMaxFileNameLength();
+ QString associatedDrive = FmUtils::getDriveLetterFromPath( mWidget->currentPath().absoluteFilePath() );
+ QString path = FmUtils::fillPathWithSplash( mWidget->currentPath().absoluteFilePath() );
+ QString dirName = createDefaultFolderName( path );
+ QStringList regExpList = (QStringList() << Regex_ValidFileFolderName << Regex_ValidNotEndWithDot );
+
+ QDir dir( path );
+ if( dir.exists() ) {
+ while( FmDlgUtils::showTextQuery( hbTrId( "txt_fmgr_title_new_folder" ), dirName,
+ regExpList, maxFileNameLength, associatedDrive , false ) ){
+ // remove whitespace from the start and the end.
+ dirName = dirName.trimmed();
+ QString newTargetPath = FmUtils::fillPathWithSplash(
+ dir.absolutePath() ) + dirName;
+ QString errString;
+ // check if name/path is available for use
+ if( !FmUtils::checkNewFolderOrFile( dirName, newTargetPath, errString ) ) {
+ FmDlgUtils::information( errString );
+ continue;
+ }
+ if( !dir.mkdir( dirName ) ) {
+ FmDlgUtils::information( hbTrId("Operation failed!") );
+ }
+ break;
+ }
+
+ }
+}
+
+void FmFileView::on_upAction_triggered()
+{
+ mWidget->cdUp();
+}
+
+void FmFileView::on_leftAction_triggered()
+{
+ mWidget->activeSearchPanel();
+}
+
+void FmFileView::on_rightAction_triggered()
+{
+ QString currentPath(
+ FmUtils::fillPathWithSplash( mWidget->currentPath().filePath() ) );
+ if( rootLevelPath.length() != 0 &&
+ rootLevelPath.compare( currentPath, Qt::CaseInsensitive ) == 0 ) {
+ emit popViewAndShow();
+ } else if ( !mWidget->cdUp() ) {
+ //hbInstance->allMainWindows()[0]->softKeyAction(Hb::SecondarySoftKey)->trigger();
+ emit popViewAndShow();
+ }
+}
+
+void FmFileView::on_driveChanged()
+{
+ mWidget->on_driveChanged();
+}
+
+void FmFileView::on_sortNameAction_triggered()
+{
+ mWidget->sortFiles( FmFileBrowseWidget::ESortByName );
+}
+
+void FmFileView::on_sortTimeAction_triggered()
+{
+ mWidget->sortFiles( FmFileBrowseWidget::ESortByTime );
+}
+
+void FmFileView::on_sortSizeAction_triggered()
+{
+ mWidget->sortFiles( FmFileBrowseWidget::ESortBySize );
+}
+
+void FmFileView::on_sortTypeAction_triggered()
+{
+ mWidget->sortFiles( FmFileBrowseWidget::ESortByType );
+}
+
+void FmFileView::startSearch( const QString &targetPath, const QString &criteria )
+{
+ if ( !criteria.isEmpty() && !targetPath.isEmpty() ) {
+ FmViewManager::viewManager()->createFindView( criteria, targetPath );
+ }
+}
+
+void FmFileView::removeToolBarAction()
+{
+ toolBar()->clearActions();
+}
+
+void FmFileView::on_mainWidget_setEmptyMenu( bool isMenuEmpty )
+{
+ if( isMenuEmpty ){
+ FM_LOG( "setEmptyMenu true" );
+ if( !mMenu ) {
+ mMenu = takeMenu();
+ }
+ toolBar()->clearActions();
+ }
+ else {
+ FM_LOG( "setEmptyMenu false" );
+ if( mMenu ) {
+ setMenu( mMenu );
+ mMenu = 0;
+ }
+ initToolBar();
+ }
+}
+
+void FmFileView::on_mainWidget_setTitle( const QString &title )
+{
+ this->setTitle( title );
+}
+
+QString FmFileView::createDefaultFolderName( const QString &path )
+{
+ // create new folder name, for example, New folder(01), New folder(02)
+ QString checkedPath( FmUtils::fillPathWithSplash( path ) );
+ QString dirName( hbTrId( "txt_fmgr_dialog_entry_new_folder" ) );
+ QString dirAbsolutePath( checkedPath + dirName );
+ QFileInfo fileInfo( dirAbsolutePath );
+ int i = 0;
+ while ( fileInfo.exists() ) {
+ ++i;
+ QString numName;
+ if ( i < 10 ) {
+ numName.append( QString::number(0) );
+ }
+ numName.append( QString::number(i) );
+ // txt_fmgr_dialog_entry_new_folder_l1 is not available now. use actual text instead of it.
+ dirName = hbTrId( "New folder (%L1)" ).arg( numName );
+ dirAbsolutePath = checkedPath + dirName;
+ fileInfo.setFile( dirAbsolutePath );
+ }
+ return dirName;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfileview.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,114 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The header file of the file browse view of file manager
+*
+*/
+
+#ifndef FMFILEVIEW_H
+#define FMFILEVIEW_H
+
+#include "fmcommon.h"
+#include "fmfilebrowsewidget.h"
+#include "fmviewbase.h"
+
+
+class HbLineEdit;
+class HbPushButton;
+class HbMenu;
+class FmOperationService;
+
+class FmFileView : public FmViewBase
+{
+ Q_OBJECT
+public:
+ FmFileView();
+ virtual ~FmFileView();
+
+ void setRootLevelPath( const QString &pathName );
+ void setFindDisabled( bool display );
+
+public slots:
+ void setRootPath( const QString &pathName );
+
+ // triggered when drive is ejected/inserted. connected by FmViewManager
+ void on_driveChanged();
+
+signals:
+ // connected by viewmanager to close view
+ void popViewAndShow();
+
+private slots:
+
+ void on_switchStyle_triggered();
+ void on_setSelectable_triggered();
+ void on_delete_triggered();
+ void on_copy_triggered();
+ void on_move_triggered();
+ void on_newFolder_triggered();
+ void on_upAction_triggered();
+ void on_leftAction_triggered();
+ void on_rightAction_triggered();
+ void on_sortNameAction_triggered();
+ void on_sortTimeAction_triggered();
+ void on_sortSizeAction_triggered();
+ void on_sortTypeAction_triggered();
+
+ void startSearch( const QString &targetPath, const QString &criteria );
+ void on_mainWidget_setEmptyMenu( bool isMenuEmpty );
+ void on_mainWidget_setTitle( const QString &title );
+
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ void on_rotateAction_triggered();
+#endif
+
+private:
+ void initMenu();
+ void initMainWidget();
+ void initToolBar();
+
+ void setStyle( FmFileBrowseWidget::Style style );
+ void setSelectable( bool enable );
+ void infoNoFileSelected();
+ void removeToolBarAction();
+
+ /**
+ * Create Default folder name while create folder.
+ *
+ * @param path Current path.
+ * @return Default folder name for new folder.
+ */
+ QString createDefaultFolderName( const QString &path );
+
+private:
+ FmFileBrowseWidget *mWidget;
+ HbPushButton *mUpButton;
+ //HbLineEdit *mLineEdit;
+ HbAction *mStyleAction;
+ HbAction *mSelectableAction;
+ HbAction *mFindAction;
+ QString rootLevelPath;
+
+ FmOperationService *mOperationService;
+
+ HbAction *mToolBarRightAction;
+ HbMenu *mMenu;
+
+ // store the disable state of find action. true for disabled
+ bool mIsFindDisabled;
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfindresultmodel.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,354 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The find result model source file of file manager
+ */
+
+#include "fmfindresultmodel.h"
+#include "fmfindthread.h"
+#include "fmfileiconprovider.h"
+
+#include <QDateTime>
+
+#include <hbglobal.h>
+
+/*!
+ \fn void finished()
+ This signal is emitted when find is finished.
+*/
+
+/*!
+ \fn void modelCountChanged( int count )
+ This signal is emitted when data count in model is changed
+ \a count is current data count in model.
+ Currently only start find and get more find result will emit this signal.
+*/
+
+FmFindResultModel::FmFindResultModel( QObject *parent )
+ : QAbstractListModel( parent )
+{
+ init();
+ connect( mFindThread, SIGNAL(finished()), this, SIGNAL(finished()) );
+ connect( mFindThread, SIGNAL(found(QStringList)), this, SLOT(on_findThread_found( QStringList) ), Qt::BlockingQueuedConnection );
+}
+
+FmFindResultModel::~FmFindResultModel()
+{
+ delete mIconProvider;
+}
+
+/*!
+ Returns the number of rows in the model. This value corresponds to the
+ number of items in the model's internal string list.
+
+ The optional \a parent argument is in most models used to specify
+ the parent of the rows to be counted. Because this is a list if a
+ valid parent is specified, the result will always be 0.
+
+ \sa insertRows(), removeRows(), QAbstractItemModel::rowCount()
+*/
+int FmFindResultModel::rowCount( const QModelIndex &parent ) const
+{
+ if ( !parent.isValid() )
+ return mFindResult.count();
+
+ return 0;
+}
+
+int FmFindResultModel::columnCount( const QModelIndex &parent ) const
+{
+ if ( !parent.isValid() )
+ return 4;
+
+ return 0;
+}
+
+QVariant FmFindResultModel::data( const QModelIndex &index, int role ) const
+{
+ if (!indexValid( index ))
+ return QVariant();
+
+ if (role == Qt::DisplayRole) {
+ switch (index.column()) {
+ case 0: return fileInfo( index ).fileName();
+ case 1: return fileInfo( index ).size();
+ case 2: return mIconProvider->type( fileInfo( index ) );
+ case 3: return fileInfo( index ).lastModified().toString( Qt::LocalDate );
+ default:
+ qWarning( "FmFindResultData: invalid display value column %d", index.column() );
+ return QVariant();
+ }
+ }
+
+ if (index.column() == 0) {
+ if (role == FileIconRole) {
+ return mIconProvider->icon( fileInfo( index ) );
+ }
+ }
+
+ if (index.column() == 1 && role == Qt::TextAlignmentRole) {
+ return Qt::AlignRight;
+ }
+
+ return QVariant();
+}
+
+QString FmFindResultModel::filePath ( const QModelIndex & index ) const
+{
+ return fileInfo( index ).filePath();
+}
+
+QVariant FmFindResultModel::headerData( int section, Qt::Orientation orientation, int role ) const
+{
+ if (orientation == Qt::Horizontal) {
+ if (role != Qt::DisplayRole)
+ return QVariant();
+
+ switch (section) {
+ case 0: return hbTrId("Name");
+ case 1: return hbTrId("Size");
+ case 2: return hbTrId("Type");
+ case 3: return hbTrId("Date Modified");
+ default: return QVariant();
+ }
+ }
+
+ return QAbstractItemModel::headerData( section, orientation, role );
+}
+
+/*!
+ Inserts \a dataList into the model, beginning at the given \a row.
+
+ The \a parent index of the rows is optional and is only used for
+ consistency with QAbstractItemModel. By default, a null index is
+ specified, indicating that the rows are inserted in the top level of
+ the model.
+
+ \sa QAbstractItemModel::insertRows()
+*/
+
+bool FmFindResultModel::insertRows( int row, const QStringList &dataList, const QModelIndex &parent )
+{
+ if ( row < 0 || dataList.count() < 1 || row > rowCount(parent) )
+ return false;
+
+ beginInsertRows( QModelIndex(), row, row + dataList.count() - 1 );
+ mFindResult.append( dataList );
+ endInsertRows();
+
+ // emit modelCountChanged could let FmFindWidget switch style between EmptyTipWidget and ResultListview
+ // FmFindWidget will show an empty tip widget such as "No found files or folderss" if set 0 as parameter
+ emit modelCountChanged( rowCount() );
+
+ return true;
+}
+
+/*!
+ Removes \a count rows from the model, beginning at the given \a row.
+
+ The \a parent index of the rows is optional and is only used for
+ consistency with QAbstractItemModel. By default, a null index is
+ specified, indicating that the rows are removed in the top level of
+ the model.
+
+ \sa QAbstractItemModel::removeRows()
+*/
+bool FmFindResultModel::removeRows( int row, int count, const QModelIndex &parent )
+{
+ if (row < 0 || count < 1 || (row + count) > rowCount(parent) )
+ return false;
+
+ beginRemoveRows( QModelIndex(), row, row + count - 1 );
+
+ for (int i = 0; i < count; ++i)
+ mFindResult.removeAt(row);
+
+ endRemoveRows();
+
+ // emit modelCountChanged could let FmFindWidget switch style between EmptyTipWidget and ResultListview
+ // FmFindWidget will show an empty tip widget such as "No found files or folderss" if set 0 as parameter
+ emit modelCountChanged( rowCount() );
+
+ return true;
+}
+
+QFileInfo FmFindResultModel::fileInfo( const QModelIndex &index ) const
+{
+ if (index.row() >= 0 && index.row() < mFindResult.size())
+ return QFileInfo( mFindResult[index.row()] );
+ else
+ return QFileInfo();
+}
+
+QString FmFindResultModel::findPath() const
+{
+ return mFindThread->findPath();
+}
+
+void FmFindResultModel::setFindPath( const QString &path )
+{
+ mFindThread->setFindPath( path );
+}
+
+QRegExp FmFindResultModel::pattern() const
+{
+ return mFindThread->pattern();
+}
+
+void FmFindResultModel::setPattern( const QRegExp ®Exp )
+{
+ mFindThread->setPattern( regExp );
+}
+
+void FmFindResultModel::find()
+{
+ if(mFindThread->isRunning())
+ return;
+
+ if( findPath().isEmpty() ){
+ mFindThread->setLastResult( mFindResult );
+ }
+ removeRows( 0, rowCount() );
+ mFindThread->start();
+}
+
+void FmFindResultModel::stop()
+{
+ mFindThread->stop();
+ mFindThread->wait();
+}
+
+bool FmFindResultModel::isFinding() const
+{
+ return mFindThread->isRunning();
+}
+
+/*
+ Receive \a dataList as some found result
+ Then insert dataList to model
+*/
+void FmFindResultModel::on_findThread_found( const QStringList &dataList )
+{
+ if( dataList.isEmpty() ) {
+ return;
+ }
+ insertRows( rowCount(), dataList );
+}
+
+bool FmFindResultModel::indexValid( const QModelIndex &index ) const
+{
+ Q_UNUSED( index );
+ return true;
+}
+
+void FmFindResultModel::init()
+{
+ mFindThread = new FmFindThread( this );
+ mFindThread->setObjectName( "findThread" );
+ mIconProvider = new FmFileIconProvider();
+}
+
+bool FmFindResultModel::caseNameLessThan(const QPair<QString,int> &s1,
+ const QPair<QString,int> &s2)
+{
+ QFileInfo info1( s1.first );
+ QFileInfo info2( s2.first );
+
+ return info1.fileName() < info2.fileName();
+}
+
+bool FmFindResultModel::caseTimeLessThan(const QPair<QString,int> &s1,
+ const QPair<QString,int> &s2)
+{
+ QFileInfo info1( s1.first );
+ QFileInfo info2( s2.first );
+
+ return info1.lastModified() < info2.lastModified();
+}
+
+bool FmFindResultModel::caseSizeLessThan(const QPair<QString,int> &s1,
+ const QPair<QString,int> &s2)
+{
+ QFileInfo info1( s1.first );
+ QFileInfo info2( s2.first );
+
+ return info1.size() < info2.size();
+}
+
+bool FmFindResultModel::caseTypeLessThan(const QPair<QString,int> &s1,
+ const QPair<QString,int> &s2)
+{
+ QFileInfo info1( s1.first );
+ QFileInfo info2( s2.first );
+
+ if( info1.isDir() != info2.isDir() ){
+ return info1.isDir();
+ }
+ else{
+ return info1.suffix().toLower() < info2.suffix().toLower();
+ }
+}
+
+/*!
+ \reimp
+ Sort by \a column, which is aligned to \a SortFlag
+ \sa SortFlag
+*/
+void FmFindResultModel::sort ( int column, Qt::SortOrder order )
+{
+ // Sort algorithm comes from
+ // void QListModel::sort(int column, Qt::SortOrder order)
+
+ Q_UNUSED( order );
+ emit layoutAboutToBeChanged();
+
+ // store value and row pair.
+ QVector < QPair<QString,int> > sorting(mFindResult.count());
+ for (int i = 0; i < mFindResult.count(); ++i) {
+ QString item = mFindResult.at(i);
+ sorting[i].first = item;
+ sorting[i].second = i;
+ }
+
+ // sort in "sorting"
+ switch( ( SortFlag )column )
+ {
+ case Name:
+ qSort( sorting.begin(), sorting.end(), caseNameLessThan );
+ break;
+ case Time:
+ qSort( sorting.begin(), sorting.end(), caseTimeLessThan );
+ break;
+ case Size:
+ qSort( sorting.begin(), sorting.end(), caseSizeLessThan );
+ break;
+ case Type:
+ qSort( sorting.begin(), sorting.end(), caseTypeLessThan );
+ break;
+ }
+
+ // create from Indexes and toIndexes, then set sorted data back to mFindResult
+ QModelIndexList fromIndexes;
+ QModelIndexList toIndexes;
+ for (int r = 0; r < sorting.count(); ++r) {
+ QString item = sorting.at(r).first;
+ toIndexes.append(createIndex(r, 0));
+ fromIndexes.append(createIndex(sorting.at(r).second, 0));
+ mFindResult[r] = sorting.at(r).first;
+ }
+ changePersistentIndexList(fromIndexes, toIndexes);
+
+ emit layoutChanged();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfindresultmodel.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,97 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The find result model header file of file manager
+ */
+
+#ifndef FMFINDRESULTMODEL_H
+#define FMFINDRESULTMODEL_H
+
+#include "fmcommon.h"
+
+#include <QPair>
+#include <QFileInfo>
+#include <QStringList>
+#include <QAbstractListModel>
+
+class FmFindThread;
+class FmFileIconProvider;
+
+class FmFindResultModel : public QAbstractListModel
+{
+ Q_OBJECT
+public:
+ enum Roles {
+ FileIconRole = Qt::DecorationRole
+ };
+
+ enum SortFlag {
+ Name = 0,
+ Time = 1,
+ Size = 2,
+ Type = 3
+ };
+
+ FmFindResultModel( QObject *parent = 0 );
+ ~FmFindResultModel();
+
+ int rowCount( const QModelIndex &parent = QModelIndex() ) const;
+ int columnCount( const QModelIndex &parent = QModelIndex() ) const;
+ QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
+ QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
+ bool insertRows( int row, const QStringList &dataList, const QModelIndex &parent = QModelIndex() );
+ bool removeRows( int row, int count, const QModelIndex &parent = QModelIndex() );
+ QString filePath ( const QModelIndex & index ) const;
+
+ QFileInfo fileInfo( const QModelIndex &index ) const;
+
+ QString findPath() const;
+ void setFindPath( const QString &path );
+
+ QRegExp pattern() const;
+ void setPattern( const QRegExp ®Exp );
+
+ void find();
+ void stop();
+ bool isFinding() const;
+
+ virtual void sort ( int column, Qt::SortOrder order = Qt::AscendingOrder );
+
+ static bool caseNameLessThan( const QPair<QString,int> &s1,
+ const QPair<QString,int> &s2 );
+ static bool caseTimeLessThan( const QPair<QString,int> &s1,
+ const QPair<QString,int> &s2 );
+ static bool caseSizeLessThan( const QPair<QString,int> &s1,
+ const QPair<QString,int> &s2 );
+ static bool caseTypeLessThan( const QPair<QString,int> &s1,
+ const QPair<QString,int> &s2 );
+
+signals:
+ void finished();
+ void modelCountChanged( int count );
+
+private slots:
+ void on_findThread_found( const QStringList &dataList );
+
+private:
+ bool indexValid( const QModelIndex &index ) const;
+ void init();
+
+ FmFindThread *mFindThread;
+ QStringList mFindResult;
+ FmFileIconProvider *mIconProvider;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfindthread.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,173 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The find thread header file of file manager
+ */
+
+#include "fmfindthread.h"
+
+#include <QDir>
+
+// current path, it may come from findDirs.first().entryInfoList()
+#define CurrentDir QString( "." )
+
+// parent path, it may come from findDirs.first().entryInfoList()
+#define ParentDir QString( ".." )
+
+// if got 5 result and have not send notify event, then send notify event
+const int notifyPerCount = 5;
+
+// if got notifyPerElapsedTime milliseconds and have not send notify event, then send notify event.
+const int notifyPerElapsedTime = 500;
+
+/*!
+ \fn void found( const QStringList &dataList )
+ This signal is emitted when some data has been found and \a dataList is provided as data list.
+ Please connect this signal by Qt::BlockingQueuedConnection as dataList will be cleared immediately
+*/
+
+FmFindThread::FmFindThread( QObject *parent )
+ : QThread( parent )
+{
+ setPriority( LowPriority );
+}
+
+FmFindThread::~FmFindThread()
+{
+}
+
+QString FmFindThread::findPath() const
+{
+ return mFindPath;
+}
+
+void FmFindThread::setFindPath( const QString &path )
+{
+ mFindPath = path;
+}
+
+QRegExp FmFindThread::pattern() const
+{
+ return findPattern;
+}
+
+void FmFindThread::setPattern( const QRegExp ®Exp )
+{
+ findPattern = regExp;
+}
+
+void FmFindThread::stop()
+{
+ mStop = true;
+}
+
+void FmFindThread::run()
+{
+ mStop = false;
+ tempResultList.clear();
+ if (findPattern.isEmpty() || !findPattern.isValid())
+ return;
+
+ QDir dir( mFindPath );
+ if (!dir.exists())
+ return;
+
+ if( mFindPath.isEmpty() ){
+ findInResult();
+ return;
+ }
+
+ QList<QDir> findDirs;
+ findDirs.append( dir );
+ time.restart();
+ mStop = false;
+ while (!findDirs.isEmpty()) {
+ QFileInfoList infoList = findDirs.first().entryInfoList();
+ for (QFileInfoList::Iterator it = infoList.begin(); it != infoList.end(); ++it) {
+ QString name = it->fileName();
+ QString absolutPath = it->absoluteFilePath();
+ if (findPattern.exactMatch( it->fileName() )) {
+ tempResultList.append( it->absoluteFilePath() );
+ if (tempResultList.count() > notifyPerCount) {
+ emitFound();
+ } else if (time.elapsed() > notifyPerElapsedTime && tempResultList.count() > 0) {
+ emitFound();
+ }
+ }
+
+ //We are stopped;
+ if (mStop) {
+ if( tempResultList.count() > 0 ) {
+ emitFound();
+ }
+ return;
+ }
+
+ // exclude directory named ".." and "."
+ if (it->isDir() && it->fileName() != ParentDir && it->fileName() != CurrentDir ) {
+ findDirs.append( QDir( it->absoluteFilePath() ) );
+ }
+ }
+
+ findDirs.removeFirst();
+ }
+
+ emitFound();
+}
+
+/*
+ Emit signal "found" to send out found data
+*/
+void FmFindThread::emitFound()
+{
+ if( tempResultList.count() > 0 ) {
+ emit found( tempResultList );
+ tempResultList.clear();
+ time.restart();
+ }
+}
+
+void FmFindThread::setLastResult( QStringList r )
+{
+ mLastResult = r;
+}
+
+/*
+ Find keyword in last result
+ \sa setLastResult, this function must be called to set last result for findInResult
+*/
+void FmFindThread::findInResult()
+{
+ if( mFindPath.isEmpty() ){
+ for (QStringList::Iterator it = mLastResult.begin(); it != mLastResult.end(); ++it) {
+ if (mStop){
+ return;
+ }
+ QString absolutPath = (*it);
+ QFileInfo fileInfo( absolutPath );
+ QString fileName = fileInfo.fileName();
+
+ if (findPattern.exactMatch( fileName ) ) {
+ tempResultList.append( absolutPath );
+ if ( tempResultList.count() > notifyPerCount ) {
+ emitFound();
+ } else if (time.elapsed() > notifyPerElapsedTime && tempResultList.count() > 0) {
+ emitFound();
+ }
+ }
+ }
+ }
+ emitFound();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfindthread.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,66 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The find thread header file of file manager
+ */
+
+#ifndef FMFINDTHREAD_H
+#define FMFINDTHREAD_H
+
+#include "fmcommon.h"
+
+#include <QTime>
+#include <QThread>
+#include <QRegExp>
+#include <QStringList>
+
+class FmFindThread : public QThread
+{
+ Q_OBJECT
+public:
+ explicit FmFindThread( QObject *parent = 0 );
+ ~FmFindThread();
+
+ QString findPath() const;
+ void setFindPath( const QString &path );
+
+ QRegExp pattern() const;
+ void setPattern( const QRegExp ®Exp );
+
+ void setLastResult( QStringList r );
+
+ void stop();
+
+signals:
+ void found( const QStringList &dataList );
+
+protected:
+ void run();
+
+private:
+ void emitFound();
+ void findInResult();
+
+ volatile bool mStop;
+ int count;
+ QString mFindPath;
+ QTime time;
+ QRegExp findPattern;
+ QStringList mLastResult;
+ // Used to store temp search result. if emit found, the result will be cleared.
+ QStringList tempResultList;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfindview.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,183 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The source file of the file find view of file manager
+*
+*/
+
+#include "fmfindview.h"
+#include "fmfindwidget.h"
+#include "fmviewmanager.h"
+
+#include <hbprogressdialog.h>
+#include <hbaction.h>
+#include <hbmenu.h>
+
+FmFindView::FmFindView() : FmViewBase( EFindView ),
+ mWaitNote( 0 ),
+ mMenu( 0 )
+{
+ initMenu();
+ initMainWidget();
+ initToolBar();
+
+ QMetaObject::connectSlotsByName( this );
+}
+
+FmFindView::~FmFindView()
+{
+ delete mWaitNote;
+ mWaitNote = 0;
+}
+
+void FmFindView::activated( const QString& pathName )
+{
+ FM_LOG( QString( "activate path from findview:" ) + pathName );
+ FmViewManager::viewManager()->createFileView( pathName, true, true );
+}
+
+void FmFindView::find( const QString &keyword, const QString &path )
+{
+ setTitle( keyword );
+ mFindWidget->find( keyword, path );
+ mWaitNote->open();
+}
+
+void FmFindView::stopFind()
+{
+ mFindWidget->stopFind();
+}
+
+void FmFindView::findFinished()
+{
+ if( mWaitNote ){
+ mWaitNote->close();
+ }
+// mFindWidget->activeSearchPanel();
+}
+
+void FmFindView::initMenu()
+{
+ HbAction *findAction = new HbAction( this );
+ findAction->setObjectName( "findAction" );
+ findAction->setText( hbTrId( "Find" ) );
+ menu()->addAction( findAction );
+
+ HbMenu *subMenu = new HbMenu( hbTrId( "Sort" ) );
+
+ HbAction *sortNameAction = new HbAction( subMenu );
+ sortNameAction->setObjectName( "sortNameAction" );
+ sortNameAction->setText( hbTrId( "Sort by name" ) );
+ subMenu->addAction( sortNameAction );
+
+ HbAction *sortTimeAction = new HbAction( subMenu );
+ sortTimeAction->setObjectName( "sortTimeAction" );
+ sortTimeAction->setText( hbTrId( "Sort by time" ) );
+ subMenu->addAction( sortTimeAction );
+
+ HbAction *sortSizeAction = new HbAction( subMenu );
+ sortSizeAction->setObjectName( "sortSizeAction" );
+ sortSizeAction->setText( hbTrId( "Sort by size" ) );
+ subMenu->addAction( sortSizeAction );
+
+ HbAction *sortTypeAction = new HbAction( subMenu );
+ sortTypeAction->setObjectName( "sortTypeAction" );
+ sortTypeAction->setText( hbTrId( "Sort by type" ) );
+ subMenu->addAction( sortTypeAction );
+
+ menu()->addMenu( subMenu );
+
+ connect( findAction, SIGNAL( triggered() ),
+ this, SLOT( on_findAction_triggered() ) );
+ connect( sortNameAction, SIGNAL( triggered() ),
+ this, SLOT( on_sortNameAction_triggered() ) );
+ connect( sortTimeAction, SIGNAL( triggered() ),
+ this, SLOT( on_sortTimeAction_triggered() ) );
+ connect( sortSizeAction, SIGNAL( triggered() ),
+ this, SLOT( on_sortSizeAction_triggered() ) );
+ connect( sortTypeAction, SIGNAL( triggered() ),
+ this, SLOT( on_sortTypeAction_triggered() ) );
+
+ mMenu = takeMenu();
+}
+
+void FmFindView::initMainWidget()
+{
+ mFindWidget = new FmFindWidget( this );
+ connect( mFindWidget, SIGNAL(finished()), this, SLOT(findFinished()) );
+ setWidget( mFindWidget );
+
+ if( !mWaitNote ){
+ mWaitNote = new HbProgressDialog( HbProgressDialog::WaitDialog );
+ mWaitNote->setText( hbTrId( "Finding..." ) );
+ }
+ connect( mWaitNote, SIGNAL(cancelled()), this, SLOT(stopFind()) );
+ connect( mFindWidget, SIGNAL(activated( const QString&)), this, SLOT( activated(const QString&)) );
+ connect( mFindWidget, SIGNAL( startSearch( const QString&, const QString& ) ),
+ this, SLOT( startSearch( const QString&, const QString& ) ) );
+ connect( mFindWidget, SIGNAL( setEmptyMenu( bool ) ),
+ this, SLOT( on_findWidget_setEmptyMenu( bool ) ) );
+}
+
+void FmFindView::initToolBar()
+{
+}
+
+void FmFindView::on_sortNameAction_triggered()
+{
+ mFindWidget->sortFiles( FmFindResultModel::Name );
+}
+
+void FmFindView::on_sortTimeAction_triggered()
+{
+ mFindWidget->sortFiles( FmFindResultModel::Time );
+}
+
+void FmFindView::on_sortSizeAction_triggered()
+{
+ mFindWidget->sortFiles( FmFindResultModel::Size );
+}
+
+void FmFindView::on_sortTypeAction_triggered()
+{
+ mFindWidget->sortFiles( FmFindResultModel::Type );
+}
+
+void FmFindView::startSearch( const QString &targetPath, const QString &criteria )
+{
+ if ( !criteria.isEmpty( ) ) {
+ find( criteria, targetPath );
+ }
+}
+
+void FmFindView::on_findAction_triggered()
+{
+ mFindWidget->activeSearchPanel();
+}
+
+void FmFindView::on_findWidget_setEmptyMenu( bool isMenuEmpty )
+{
+ if( isMenuEmpty ){
+ if( !mMenu ) {
+ mMenu = takeMenu();
+ }
+ }
+ else{
+ if( mMenu ) {
+ setMenu( mMenu );
+ mMenu = 0;
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfindview.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,65 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The header file of the file find view of file manager
+*
+*/
+
+#ifndef FMFINDVIEW_H
+#define FMFINDVIEW_H
+
+#include "fmcommon.h"
+#include "fmviewbase.h"
+
+class HbProgressDialog;
+class HbMenu;
+class FmFindWidget;
+
+class FmFindView : public FmViewBase
+{
+ Q_OBJECT
+public:
+ FmFindView();
+ virtual ~FmFindView();
+
+ void find( const QString &keyword, const QString &path );
+
+public slots:
+ void activated( const QString &pathName );
+ void stopFind();
+
+private slots:
+ void findFinished();
+ void on_findAction_triggered();
+ void on_sortNameAction_triggered();
+ void on_sortTimeAction_triggered();
+ void on_sortSizeAction_triggered();
+ void on_sortTypeAction_triggered();
+
+ void startSearch( const QString &targetPath, const QString &criteria );
+
+ void on_findWidget_setEmptyMenu( bool isMenuEmpty );
+
+private:
+ void initMenu();
+ void initMainWidget();
+ void initToolBar();
+
+ FmFindWidget *mFindWidget;
+ HbProgressDialog *mWaitNote;
+ HbMenu *mMenu;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfindwidget.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,203 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The source file of the file find widget of file manager
+*
+*/
+
+#include "fmfindwidget.h"
+#include "fmfindresultmodel.h"
+#include "fmviewmanager.h"
+#include "fmoperationservice.h"
+
+#include <QGraphicsLinearLayout>
+#include <QFileInfo>
+
+#include <hblistview.h>
+#include <hbsearchpanel.h>
+#include <hblabel.h>
+#include <hbwidget.h>
+
+FmFindWidget::FmFindWidget( QGraphicsItem *parent )
+ : HbWidget( parent )
+{
+ init();
+}
+
+FmFindWidget::~FmFindWidget()
+{
+}
+
+void FmFindWidget::itemActivated(const QModelIndex &index)
+{
+ FmOperationService *operationService = FmViewManager::viewManager()->operationService();
+ if( !operationService ) {
+ return;
+ }
+
+ QFileInfo fileInfo = mModel->fileInfo( index );
+ if ( fileInfo.isFile() ) {
+ operationService->syncLaunchFileOpen( fileInfo.filePath() );
+ }else if( fileInfo.isDir() ) {
+ emit activated( fileInfo.filePath() );
+ }
+}
+
+void FmFindWidget::find( const QString &keyword, const QString &path )
+{
+ mModel->setFindPath( path );
+
+ QRegExp regExp( '*' + keyword + '*' );
+ regExp.setPatternSyntax( QRegExp::Wildcard );
+ regExp.setCaseSensitivity( Qt::CaseInsensitive );
+ mModel->setPattern( regExp );
+
+ mModel->find();
+}
+
+void FmFindWidget::stopFind()
+{
+ mModel->stop();
+}
+
+void FmFindWidget::on_resultModel_finished()
+{
+ emit finished();
+}
+
+void FmFindWidget::on_resultModel_modelCountChanged( int count )
+{
+ if( count > 0 ) {
+ activateContentWidget( ResultListView );
+ } else {
+ activateContentWidget( EmptyTipWidget );
+ }
+}
+
+void FmFindWidget::activateContentWidget( ContentWidgetType contentWidgetType )
+{
+ switch( contentWidgetType )
+ {
+ case EmptyTipWidget:
+ {
+ if( mLayout->count() > 0 ) {
+ if( mLayout->itemAt( 0 ) == mListView ) {
+ mLayout->removeItem( mListView );
+ mLayout->addItem( mEmptyTipWidget );
+ }
+ } else {
+ mLayout->addItem( mEmptyTipWidget );
+ }
+ mListView->hide();
+ mEmptyTipWidget->show();
+ deActiveSearchPanel();
+ emit setEmptyMenu( true );
+ }
+ break;
+ case ResultListView:
+ {
+ if( mLayout->count() > 0 ) {
+ if( mLayout->itemAt( 0 ) == mEmptyTipWidget ) {
+ mLayout->removeItem( mEmptyTipWidget );
+ mLayout->addItem( mListView );
+ }
+ } else {
+ mLayout->addItem( mListView );
+ }
+ mEmptyTipWidget->hide();
+ mListView->show();
+ activeSearchPanel();
+ emit setEmptyMenu( false );
+ }
+ break;
+ }
+}
+
+void FmFindWidget::init()
+{
+ mLayout = new QGraphicsLinearLayout( this );
+ mLayout->setOrientation( Qt::Vertical );
+
+ mModel = new FmFindResultModel( this );
+ mModel->setObjectName( "resultModel" );
+
+ connect( mModel, SIGNAL(finished()), this, SLOT( on_resultModel_finished()) );
+
+ connect( mModel, SIGNAL( modelCountChanged( int )),
+ this, SLOT( on_resultModel_modelCountChanged( int )) );
+
+ mListView = new HbListView( this );
+ mListView->setModel( mModel );
+
+ mEmptyTipWidget = new HbWidget( this );
+ QGraphicsLinearLayout *emptyTipLayout = new QGraphicsLinearLayout( mEmptyTipWidget );
+ HbLabel *emptyTipLable = new HbLabel( hbTrId( "No found files or folders" ), mEmptyTipWidget );
+ emptyTipLayout->addItem( emptyTipLable );
+
+ initSearchPanel();
+ activateContentWidget( EmptyTipWidget );
+
+ setLayout( mLayout );
+
+ connect( mListView, SIGNAL(activated(QModelIndex)), this, SLOT(itemActivated(QModelIndex)));
+}
+
+void FmFindWidget::initSearchPanel()
+{
+ mSearchPanel = new HbSearchPanel( this );
+ mSearchPanel->setObjectName( "searchPanel" );
+// mSearchPanel->setSearchOptionsEnabled( true );
+ mSearchPanel->setProgressive( false );
+ mSearchPanel->hide();
+
+ connect( mSearchPanel, SIGNAL( criteriaChanged( const QString & ) ),
+ this, SLOT( on_searchPanel_criteriaChanged( const QString & ) ) );
+
+ connect( mSearchPanel, SIGNAL( exitClicked() ),
+ this, SLOT( on_searchPanel_exitClicked() ) );
+}
+
+void FmFindWidget::sortFiles( FmFindResultModel::SortFlag sortFlag )
+{
+ mModel->sort( sortFlag );
+}
+
+void FmFindWidget::activeSearchPanel()
+{
+ mLayout->addItem( mSearchPanel );
+ mSearchPanel->show();
+}
+
+void FmFindWidget::on_searchPanel_criteriaChanged( const QString &criteria )
+{
+ mFindTargetPath.clear();
+ emit startSearch( mFindTargetPath, criteria );
+}
+
+void FmFindWidget::on_searchPanel_exitClicked()
+{
+ mSearchPanel->hide();
+ mLayout->removeItem( mSearchPanel );
+}
+
+void FmFindWidget::deActiveSearchPanel()
+{
+ mSearchPanel->hide();
+ mLayout->removeItem( mSearchPanel );
+
+}
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmfindwidget.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,84 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The header file of the file find widget of file manager
+*
+*/
+
+#ifndef FMFINDWIDGET_H
+#define FMFINDWIDGET_H
+
+#include "fmcommon.h"
+#include "fmfindresultmodel.h"
+
+#include <hbwidget.h>
+
+class HbListView;
+class HbSearchPanel;
+class HbWidget;
+
+class QGraphicsLinearLayout;
+
+class FmFindWidget : public HbWidget
+{
+ Q_OBJECT
+public:
+ enum ContentWidgetType
+ {
+ EmptyTipWidget,
+ ResultListView
+ };
+ FmFindWidget( QGraphicsItem *parent = 0 );
+ ~FmFindWidget();
+
+ void find( const QString &keyword, const QString &path );
+ void stopFind();
+ void sortFiles( FmFindResultModel::SortFlag sortFlag );
+
+ void activeSearchPanel();
+ void deActiveSearchPanel();
+
+signals:
+ void finished();
+ void activated( const QString &pathName );
+
+ void startSearch( const QString &targetPath, const QString &criteria );
+ void setEmptyMenu( bool isMenuEmpty );
+
+private slots:
+ void itemActivated(const QModelIndex &index);
+
+ void on_searchPanel_criteriaChanged( const QString &criteria );
+ void on_searchPanel_exitClicked();
+
+ void on_resultModel_finished();
+ void on_resultModel_modelCountChanged( int count );
+
+private:
+ void init();
+ void initSearchPanel();
+ void activateContentWidget( ContentWidgetType contentWidgetType );
+
+private:
+ HbListView *mListView;
+ FmFindResultModel *mModel;
+ HbWidget *mEmptyTipWidget;
+
+ QGraphicsLinearLayout *mLayout;
+ HbSearchPanel* mSearchPanel;
+ QString mFindTargetPath;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmmainwindow.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,77 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The source file of File Manager main window
+ */
+
+#include "fmmainwindow.h"
+#include "fmcommon.h"
+
+#include <hbaction.h>
+
+FmMainWindow::FmMainWindow() : mViewManager( 0 ), mFirstViewLoaded( false )
+{
+ // connect(this, SIGNAL(viewReady()), this, SLOT(delayedLoading()));
+ init();
+}
+
+FmMainWindow::~FmMainWindow()
+{
+ //save file manager activity to activity manager.
+ mViewManager->saveActivity();
+ FmViewManager::RemoveViewManager();
+}
+
+void FmMainWindow::onOrientationChanged( Qt::Orientation orientation )
+{
+ Q_UNUSED( orientation );
+ /*
+ if ( orientation == Qt::Vertical ) {
+ activateDriverView();
+ } else {
+ activateSplitView();
+ }
+ */
+}
+
+void FmMainWindow::init()
+{
+ FM_LOG("FmMainWindow::init start");
+ mViewManager = FmViewManager::CreateViewManager( this );
+ mViewManager->createDriverView();
+ connect(this, SIGNAL(aboutToChangeView(HbView *, HbView *)),
+ mViewManager, SLOT(onAboutToChangeView(HbView *, HbView *)));
+ connect( this, SIGNAL( orientationChanged( Qt::Orientation ) ),
+ this, SLOT( onOrientationChanged( Qt::Orientation ) ) );
+
+ FM_LOG("FmMainWindow::init end");
+// if ( orientation() == Qt::Vertical ) {
+// createDriverView();
+// } else {
+// createSplitView();
+// }
+}
+
+void FmMainWindow::delayedLoading()
+{
+ FM_LOG("FmMainWindow::delayedLoading start");
+ if( mFirstViewLoaded ) {
+ return;
+ }
+ init();
+ mFirstViewLoaded = true;
+ FM_LOG("FmMainWindow::delayedLoading end");
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmmainwindow.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,47 @@
+/*
+ * 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 "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:
+ * Zhiqiang Yang <zhiqiang.yang@nokia.com>
+ *
+ * Description:
+ * The header file of File Manager main window
+ */
+
+#ifndef FMMAINWINDOW_H
+#define FMMAINWINDOW_H
+
+#include "fmcommon.h"
+#include "fmviewmanager.h"
+
+#include <hbmainwindow.h>
+
+class HbAction;
+
+class FmMainWindow : public HbMainWindow
+{
+ Q_OBJECT
+public:
+ FmMainWindow();
+ ~FmMainWindow();
+
+private slots:
+ void onOrientationChanged( Qt::Orientation orientation );
+ void delayedLoading();
+private:
+ void init();
+
+ FmViewManager *mViewManager;
+ bool mFirstViewLoaded;
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmsplitview.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,86 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The source file of the split view of file manager
+*
+*/
+#include "fmsplitview.h"
+#include "fmfilebrowsewidget.h"
+#include "fmdriverlistwidget.h"
+#include <QGraphicsLinearLayout>
+
+#include <hbmenu.h>
+#include <hbaction.h>
+#include <hbmainwindow.h>
+
+FmSplitView::FmSplitView() : FmViewBase( ESplitView )
+{
+ initMenu();
+ initMainWidget();
+
+ QMetaObject::connectSlotsByName( this );
+}
+
+FmSplitView::~FmSplitView()
+{
+}
+
+void FmSplitView::on_rotateAction_triggered()
+{
+ if ( mainWindow()->orientation() == Qt::Vertical ) {
+ mainWindow()->setOrientation( Qt::Horizontal );
+ }
+ else {
+ mainWindow()->setOrientation( Qt::Vertical );
+ }
+}
+
+void FmSplitView::on_normalViewAction_triggered()
+{
+ mainWindow()->setCurrentView( mainWindow()->views().first() );
+}
+
+void FmSplitView::initMenu()
+{
+ HbAction *action = 0;
+#ifdef FM_CHANGE_ORIENT_ENABLE
+ action = new HbAction( this );
+ action->setObjectName( "rotateAction" );
+ action->setText( hbTrId( "Change orientation" ) );
+ menu()->addAction( action );
+#endif
+
+ action = new HbAction( this );
+ action->setObjectName( "normalViewAction" );
+ action->setText( hbTrId( "Switch to normal view" ) );
+ menu()->addAction( action );
+}
+
+void FmSplitView::initMainWidget()
+{
+ QGraphicsLinearLayout *hLayout = new QGraphicsLinearLayout( this );
+ hLayout->setOrientation( Qt::Horizontal );
+
+ mDriverWidget = new FmDriverListWidget( this );
+ mDriverWidget->setMaximumWidth( 200.0 );
+ hLayout->addItem( mDriverWidget );
+
+
+ mFileWidget = new FmFileBrowseWidget( this, FmFileBrowseWidget::TreeStyle );
+ hLayout->addItem( mFileWidget );
+
+ connect( mDriverWidget, SIGNAL( activated( const QString & ) ),
+ mFileWidget, SLOT( setRootPath( const QString & ) ) );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmsplitview.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,48 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The header file of the split view of file manager
+*
+*/
+#ifndef FMSPLITVIEW_H
+#define FMSPLITVIEW_H
+
+#include "fmcommon.h"
+#include "fmviewbase.h"
+
+class FmDriverListWidget;
+class FmFileBrowseWidget;
+
+class FmSplitView : public FmViewBase
+{
+ Q_OBJECT
+public:
+ FmSplitView();
+ virtual ~FmSplitView();
+
+private slots:
+ void on_normalViewAction_triggered();
+ void on_rotateAction_triggered();
+
+private:
+ void initMenu();
+ void initMainWidget();
+
+
+ FmDriverListWidget *mDriverWidget;
+ FmFileBrowseWidget *mFileWidget;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmviewbase.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* 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 "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:
+* The source file of filemanager view base
+*
+*/
+
+#include "fmviewbase.h"
+#include "fmviewmanager.h"
+
+#include <hbaction.h>
+
+FmViewBase::FmViewBase( TViewType viewType )
+{
+ mViewType = viewType;
+ init();
+ QMetaObject::connectSlotsByName( this );
+}
+
+FmViewBase::~FmViewBase(void)
+{
+}
+
+void FmViewBase::init()
+{
+ mBackAction = new HbAction( Hb::BackNaviAction, this );
+ mBackAction->setObjectName( "backAction" );
+ setNavigationAction( mBackAction );
+}
+
+void FmViewBase::on_backAction_triggered()
+{
+ FmViewManager::viewManager()->popViewAndShow();
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmviewbase.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,66 @@
+/*
+* 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 "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:
+* The source file of filemanager view base
+*
+*/
+
+#ifndef FMVIEWBASE_H
+#define FMVIEWBASE_H
+
+#include <HbView>
+
+class HbAction;
+
+class FmViewBase : public HbView
+{
+Q_OBJECT
+public:
+ enum TViewType
+ {
+ ENone = 0,
+ EDriverView,
+ EFileView,
+ EFindView,
+ EBackupView,
+ ERestoreView,
+ ESplitView,
+ EDeleteBackupView
+ };
+
+
+ explicit FmViewBase( TViewType viewType );
+ virtual ~FmViewBase(void);
+
+ TViewType viewType()
+ {
+ return mViewType;
+ }
+
+private slots:
+ void on_backAction_triggered();
+
+signals:
+ void tryToExit();
+
+private:
+ void init();
+private:
+ TViewType mViewType;
+
+ HbAction *mBackAction;
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmviewmanager.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,345 @@
+/*
+* 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 "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:
+* The source file of filemanager view manager
+*
+*/
+
+#include "fmviewmanager.h"
+#include "fmmainwindow.h"
+#include "fmdriverview.h"
+#include "fmfileview.h"
+#include "fmfindview.h"
+#include "fmbackupview.h"
+#include "fmrestoreview.h"
+#include "fmdeletebackupview.h"
+#include "fmsplitview.h"
+#include "fmoperationservice.h"
+#include "fmoperationbase.h"
+#include "fmdrivewatcher.h"
+#include "fmdialog.h"
+#include "fmdlgutils.h"
+
+#include <hbview.h>
+#include <hbmainwindow.h>
+#include <hbapplication.h>
+#include <hbactivitymanager.h>
+#include <QFileSystemWatcher>
+#include <QFileInfo>
+#include <QPixmap>
+
+FmViewManager *FmViewManager::mViewManager = 0;
+
+
+FmDlgCloseUnit::FmDlgCloseUnit( FmDialog *dialog ) : mDialog( dialog )
+{
+}
+FmDlgCloseUnit::~FmDlgCloseUnit()
+{
+}
+
+void FmDlgCloseUnit::addAssociatedDrives( QString drives )
+{
+ for( int i = 0; i< drives.length(); ++i ) {
+ if( !mAssociatedDrives.contains( drives[i], Qt::CaseInsensitive ) ) {
+ mAssociatedDrives += drives[i];
+ }
+ }
+}
+void FmDlgCloseUnit::removeAssociatedDrives( QString drives )
+{
+ for( int i = 0; i < drives.length(); ++i ){
+ mAssociatedDrives.remove( drives[i], Qt::CaseInsensitive );
+ }
+}
+QString FmDlgCloseUnit::associatedDrives()
+{
+ return mAssociatedDrives;
+}
+
+FmDialog *FmDlgCloseUnit::dialog()
+{
+ return mDialog;
+}
+
+FmViewManager::FmViewManager( FmMainWindow* mainWindow ) : mOperationService( 0 )
+{
+ mMainWindow = mainWindow;
+ mDriveWatcher = new FmDriveWatcher( this );
+ mDriveWatcher->setObjectName( "driveWatcher" );
+ mDriveWatcher->startWatch();
+
+ QMetaObject::connectSlotsByName( this );
+}
+
+FmViewManager::~FmViewManager(void)
+{
+ FmViewBase *view = static_cast<FmViewBase *>( mMainWindow->currentView() );
+ while( view ) {
+ mMainWindow->removeView( view );
+ delete view;
+ view = static_cast<FmViewBase *>( mMainWindow->currentView() );
+ }
+
+ delete mOperationService;
+ mOperationService = 0;
+
+ mDriveWatcher->cancelWatch();
+ delete mDriveWatcher;
+ mDriveWatcher = 0;
+
+}
+
+FmViewManager *FmViewManager::CreateViewManager( FmMainWindow* mainWindow )
+{
+ if( !mViewManager ){
+ mViewManager = new FmViewManager( mainWindow );
+ }
+
+ return mViewManager;
+}
+void FmViewManager::RemoveViewManager()
+{
+ delete mViewManager;
+ mViewManager = 0;
+}
+
+FmViewManager *FmViewManager::viewManager()
+{
+ return mViewManager;
+}
+
+FmOperationService *FmViewManager::operationService()
+{
+ if ( !mOperationService ) {
+ mOperationService = new FmOperationService( this );
+ mOperationService->setObjectName( "operationService" );
+ }
+ return mOperationService;
+}
+
+void FmViewManager::popViewAndShow()
+{
+ FmViewBase *view = static_cast<FmViewBase *>( mMainWindow->currentView() );
+ view->setNavigationAction( 0 );
+ // grap the screen when only the drive view is in view stack.
+ if( viewCount() == 1 ) {
+ mScreenShot = QPixmap::grabWidget(mMainWindow, mMainWindow->rect());
+ }
+ mMainWindow->removeView( view );
+ delete view;
+
+ if( viewCount() < 1 )
+ {
+ mMainWindow->close();
+ }
+}
+
+void FmViewManager::on_operationService_driveSpaceChanged( FmOperationBase *operationBase )
+{
+ Q_UNUSED( operationBase );
+ // request drive view to refresh
+ emit driveSpaceChanged();
+}
+
+void FmViewManager::on_operationService_notifyFinish( FmOperationBase *operationBase )
+{
+ if( !operationBase ){
+ Q_ASSERT_X( false, "FmViewManager",
+ "NULL is not accepted in on_operationService_notifyFinish()" );
+ return;
+ }
+
+ if( operationBase->operationType() == FmOperationService::EOperationTypeBackup )
+ {
+ // after finish backup, we need refresh backup date in backup view.
+ emit refreshBackupDate();
+ }
+}
+
+
+int FmViewManager::viewCount()
+{
+ return mMainWindow->views().count();
+}
+
+
+void FmViewManager::createDriverView()
+{
+ FmDriverView *driverView= new FmDriverView();
+
+ mMainWindow->addView( driverView );
+ mMainWindow->setCurrentView( driverView );
+ HbActivityManager* activityManager = qobject_cast<HbApplication*>(qApp)->activityManager();
+ bool ok = activityManager->removeActivity("FMMemoryStoragesList");
+
+ connect( this, SIGNAL( driveSpaceChanged() ),
+ driverView, SLOT( refreshDrive() ) );
+ // Refresh drive view when gaining foreground
+ // ( switch back to filemanager from home screen or any other applications )
+ connect( mMainWindow, SIGNAL( revealed() ),
+ driverView, SLOT( refreshDrive() ) );
+
+ // use Qt::QueuedConnection because synchronous refresh is not work well while
+ // connected with another OTG device which have more than one external drive in it.
+ // File server only give driveChanged event once, but two drive is inserted.
+ // Synchronous refresh will miss another drive.
+ // So use Qt::QueuedConnection to performance asynchronous refresh.
+ connect( this, SIGNAL( driveChanged() ),
+ driverView, SLOT( refreshDrive() ), Qt::QueuedConnection );
+}
+
+void FmViewManager::createFileView( const QString &path,
+ bool enableBackPathCheck, bool disableFind )
+{
+ QFileInfo fileInfo( path );
+ QString absolutePath = fileInfo.absoluteFilePath();
+
+ QString checkedPath = FmUtils::checkDriveToFolderFilter( absolutePath );
+ if( FmUtils::isDriveAvailable( path ) ) {
+ if( FmErrNone != FmUtils::isPathAccessabel( checkedPath ) ) {
+ checkedPath.clear();
+ }
+ }
+
+ if( checkedPath.isEmpty() ) {
+ FmDlgUtils::information( QString( hbTrId("Path: %1 is unavailable!").arg( path )) );
+ return;
+ }
+
+ FmFileView *fileView= new FmFileView();
+ fileView->setRootPath( checkedPath );
+ if( enableBackPathCheck ) {
+ fileView->setRootLevelPath( checkedPath );
+ }
+
+ fileView->setFindDisabled( disableFind );
+
+ mMainWindow->addView( fileView );
+ mMainWindow->setCurrentView( fileView );
+
+ connect( this, SIGNAL( driveChanged() ), //emit when drive changed.
+ fileView, SLOT( on_driveChanged() ) );
+
+ connect( fileView, SIGNAL( popViewAndShow() ), //emit when fileView need delete itself and pop&show view from stack.
+ this, SLOT( popViewAndShow() ), Qt::QueuedConnection );
+}
+
+void FmViewManager::createFindView( const QString &keyword, const QString &path )
+{
+ FmFindView *findView= new FmFindView();
+
+ mMainWindow->addView( findView );
+ mMainWindow->setCurrentView( findView );
+
+ findView->find( keyword, path );
+ }
+
+void FmViewManager::createSplitView()
+{
+ FmSplitView *splitView = new FmSplitView();
+ mMainWindow->addView( splitView );
+ mMainWindow->setCurrentView( splitView );
+
+}
+
+void FmViewManager::createBackupView()
+{
+ FmBackupView *backupView= new FmBackupView();
+
+ mMainWindow->addView( backupView );
+ mMainWindow->setCurrentView( backupView );
+ connect( this, SIGNAL( driveChanged() ), //emit when need refresh model
+ backupView, SLOT( refreshModel() ) );
+ connect( this, SIGNAL( refreshBackupDate() ), //emit when need refresh backup date
+ backupView, SLOT( refreshBackupDate() ) );
+}
+
+void FmViewManager::createRestoreView()
+{
+ FmRestoreView *restoreView= new FmRestoreView();
+
+ mMainWindow->addView( restoreView );
+ mMainWindow->setCurrentView( restoreView );
+ connect( this, SIGNAL( driveChanged() ), restoreView, SLOT( refreshRestoreView() ) );
+
+}
+
+void FmViewManager::createDeleteBackupView()
+{
+ FmDeleteBackupView *deleteBackupView= new FmDeleteBackupView();
+
+ mMainWindow->addView( deleteBackupView );
+ mMainWindow->setCurrentView( deleteBackupView );
+ connect( this, SIGNAL( driveChanged() ), deleteBackupView, SLOT( refreshDeleteBackupView() ) );
+
+}
+
+Qt::Orientation FmViewManager::orientation(){
+ return mMainWindow->orientation();
+}
+
+void FmViewManager::on_driveWatcher_driveAddedOrChanged()
+{
+ FM_LOG( QString( "FmViewManager::on_driveWatcher_driveAddedOrChanged start" ) );
+ emit driveChanged();
+ checkDlgCloseUnit();
+ FM_LOG( QString( "FmViewManager::on_driveWatcher_driveAddedOrChanged end" ) );
+
+}
+
+
+void FmViewManager::checkDlgCloseUnit()
+{
+ foreach( FmDlgCloseUnit* unit, mDlgCloseUnitList ) {
+ QString drives( unit->associatedDrives() );
+ for( int i = 0; i < drives.length(); i++ ) {
+ QString drive( drives[i] + QString( ":/" ) );
+ if( !FmUtils::isDriveAvailable( drive ) ) {
+ FM_LOG( " close Dialog start " );
+ unit->dialog()->close();
+ FM_LOG( " close Dialog end " );
+ }
+ }
+ }
+}
+
+void FmViewManager::saveActivity()
+{
+ //grap the screen when current view is drive view.
+ FmDriverView *driveView = qobject_cast<FmDriverView *>(mMainWindow->currentView());
+ if ( ( driveView != 0 ) && ( driveView->viewType() == FmViewBase::EDriverView ) ) {
+ mScreenShot = QPixmap::grabWidget(mMainWindow, mMainWindow->rect());
+ }
+ QVariantHash metadata;
+ metadata.insert("screenshot", mScreenShot);
+ HbActivityManager* activityManager = qobject_cast<HbApplication*>(qApp)->activityManager();
+ // add the activity to the activity manager
+ bool ok = activityManager->addActivity("FMMemoryStoragesList", QVariant(), metadata);
+ if ( !ok )
+ {
+ qFatal("Add failed" );
+ }
+
+}
+
+void FmViewManager::onAboutToChangeView(HbView * oldView, HbView *newView)
+{
+ Q_UNUSED(newView);
+ //grap the screen when oldView is drive view.
+ FmDriverView *driveView = qobject_cast<FmDriverView *>(oldView);
+ if ( ( driveView != 0 ) && ( driveView->viewType() == FmViewBase::EDriverView ) ) {
+ mScreenShot = QPixmap::grabWidget(mMainWindow, mMainWindow->rect());
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/fmviewmanager.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,157 @@
+/*
+* 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 "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:
+* The header file of filemanager view manager
+*
+*/
+
+#ifndef FMVIEWMANAGER_H
+#define FMVIEWMANAGER_H
+
+#include <QObject>
+#include <QList>
+#include "fmcommon.h"
+#include <QPixmap>
+
+class FmMainWindow;
+class HbView;
+class FmViewManager;
+class FmOperationService;
+class FmOperationBase;
+class QFileSystemWatcher;
+class FmDriveWatcher;
+class FmDialog;
+
+/*
+ * this class is used to record relationship between dialog and drive name
+ * FmViewManager will auto-close dialog which related drive is not available again.
+ * for example. set name to MMC will pop a dialog, if add the dialog to FmViewManager::addDlgCloseUnit
+ * then after eject MMC, the dialog will be auto-closed by FmViewManager::checkDlgCloseUnit()
+ */
+class FmDlgCloseUnit
+{
+public:
+ FmDlgCloseUnit( FmDialog *dialog );
+ ~FmDlgCloseUnit();
+
+ void addAssociatedDrives( QString drives );
+ void removeAssociatedDrives( QString drives );
+ QString associatedDrives();
+ FmDialog *dialog();
+
+private:
+ FmDialog *mDialog;
+ QString mAssociatedDrives;
+};
+
+class FmViewManager : public QObject
+{
+ Q_OBJECT
+
+public:
+ int viewCount();
+ static FmViewManager *CreateViewManager( FmMainWindow* mainWindow );
+ static void RemoveViewManager();
+ static FmViewManager *viewManager();
+ FmOperationService *operationService();
+
+ Qt::Orientation orientation();
+
+ void createFileView( const QString &path,
+ bool enableBackPathCheck = true, bool disableFind = false );
+ void createFindView( const QString &keyword, const QString &path );
+ void createDriverView();
+ void createSplitView();
+ void createBackupView();
+ void createRestoreView();
+ void createDeleteBackupView();
+ void saveActivity();
+ // add a close unit. this is used to auto-close dialog which related drive is not available again.
+ void addDlgCloseUnit( FmDlgCloseUnit* unit )
+ {
+ FM_LOG( "FmViewManager::addDlgCloseUnit_" + unit->associatedDrives() );
+ mDlgCloseUnitList.append( unit );
+ }
+
+ // remove a close unit.
+ void removeDlgCloseUnit( FmDlgCloseUnit* unit )
+ {
+ FM_LOG( "FmViewManager::removeDlgCloseUnit_" + unit->associatedDrives() );
+ mDlgCloseUnitList.removeOne( unit );
+ }
+
+protected:
+ explicit FmViewManager( FmMainWindow* mainWindow );
+ ~FmViewManager();
+
+public slots:
+ /// popViewAndShow will delete current view and pop view from stack, then show it.
+ void popViewAndShow();
+
+ // triggered when drive space is changed
+ // this slots is used to watch filemanager internal events
+ // drive space event from other applictaion will not be observed here
+ void on_operationService_driveSpaceChanged( FmOperationBase* operationBase );
+
+ // triggered when drive is ejected/inserted, or other drive event. it will impact available property
+ void on_driveWatcher_driveAddedOrChanged();
+
+ // if operation finished, some addition works( such as refresh... ) should be done in some views
+ // so this is the central controller function
+ void on_operationService_notifyFinish( FmOperationBase *operationBase );
+
+ void onAboutToChangeView(HbView * oldView, HbView *newView);
+
+signals:
+ // emit when drive space is changed by some operation inside filemanager.
+ void driveSpaceChanged();
+
+ // emit when drive is ejected/inserted, this is watched by FmDriveWatcher
+ void driveChanged();
+
+ // when backup is created, backup date should be updated.
+ void refreshBackupDate();
+
+private:
+ // when drive is ejected, this function will be called and exam dialogs in mDlgCloseUnitList
+ // it will colse dialogs if related drive is not available
+ void checkDlgCloseUnit();
+
+private:
+ static FmViewManager *mViewManager;
+
+private:
+ // main window
+ FmMainWindow *mMainWindow;
+
+ // operation service, used to start operations such as copy, move, delete, format...
+ FmOperationService *mOperationService;
+
+ // used to watch drive event, for example, eject/insert drive
+ FmDriveWatcher *mDriveWatcher;
+
+ // used to record some dialogs that related to drive
+ // the dialog should be closed in checkDlgCloseUnit if drive is not available
+ QList<FmDlgCloseUnit*> mDlgCloseUnitList;
+
+ QPixmap mScreenShot;
+};
+
+
+
+
+
+#endif
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/main.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+* Steven Yao <steven.yao@nokia.com>
+* Yong Zhang <yong.5.zhang@nokia.com>
+*
+* Description:
+* The main application file for file manager
+*
+*/
+
+
+#include "fmmainwindow.h"
+
+#include <hbapplication.h>
+#include <hbstyleloader.h>
+#include <hbtranslator.h>
+#include <QTranslator>
+#include <QLocale>
+
+int main( int argc, char *argv[] )
+{
+ FM_LOG( "main start" );
+ HbApplication app( argc, argv );
+
+ HbTranslator translator("filemanager");
+ translator.loadCommon();
+ app.setApplicationName( hbTrId("txt_fmgr_title_file_manager") );
+
+ HbStyleLoader::registerFilePath(":/resources/hblistviewitem.css");
+ HbStyleLoader::registerFilePath(":/resources/hblistviewitem.widgetml");
+
+ FM_LOG( "main_createMainwindow start" );
+ FmMainWindow mw;
+ FM_LOG( "main_createMainwindow end" );
+
+ mw.show();
+ FM_LOG( "main end" );
+ return app.exec();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationbase.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,166 @@
+/*
+* 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 "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:
+* The source file of the operation param of file manager
+*
+*/
+
+#include "fmoperationbase.h"
+#include "fmdrivedetailstype.h"
+#include <QtAlgorithms>
+/*
+ * \fn void showNote( const QString ¬e )
+ * This signal is emitted when operation needs operation service to show some note.
+ * \a note indicates the note to show.
+ */
+
+/* \fn void notifyWaiting( bool cancelable )
+ * This signal is emitted when operation needs operation service to wait.
+ * \a cancelable indicates whether it could be canceled.
+ */
+
+/* \fn void notifyPreparing( bool cancelable )
+ * This signal is emitted when operation needs operation service to prepare.
+ * \a cancelable indicates whether it could be canceled.
+ */
+
+/* \fn void notifyStart( bool cancelable, int maxSteps )
+ * This signal is emitted when operation starts and operation service shows progress bar.
+ * \a cancelable indicates whether it could be canceled.
+ * \a maxStep indicates the max of progress bar.
+ */
+
+/* \fn void notifyProgress( int currentStep )
+ * This signal is emitted when operation needs operation service update progress bar.
+ * \a currentStep the current step.
+ */
+
+/* \fn void notifyFinish()
+ * This signal is emitted when operation finished.
+ */
+
+/* \fn void notifyError( int error, const QString &errString )
+ * This signal is used to notify error.
+ * \a error the error id.
+ * \a errString the error string.
+ */
+
+/*
+ Constructs the base operation with
+ \a parent parent
+ \a operationType the type of current operation.
+*/
+FmOperationBase::FmOperationBase( QObject *parent, FmOperationService::TOperationType operationType ) :
+ QObject( parent ), mOperationType( operationType )
+{
+}
+
+/*
+ Destructs the operation
+*/
+FmOperationBase::~FmOperationBase()
+{
+
+}
+
+/*
+ Returns the current operation type
+*/
+FmOperationService::TOperationType FmOperationBase::operationType()
+{
+ return mOperationType;
+}
+
+/*
+ Starts the operation, called by FmOperationThread.
+ Use empty implementation because Backup and Restore
+ are not done within thread, so they will not reimplement
+ this function.
+ \sa FmOperationThread::run
+*/
+void FmOperationBase::start( volatile bool */*isStopped*/ )
+{
+
+}
+
+/*
+ Does some additional work before starting the operation.
+ Returns the error number.
+*/
+int FmOperationBase::prepare()
+{
+ return FmErrNone;
+}
+
+
+/*
+ Constructs a backup operation with
+ \a parent parent
+ \a targetDrive backup target drive
+ backup \a content is mask for contents want to backup. Refer to mContent in FmBackupSettings
+*/
+FmOperationBackup::FmOperationBackup( QObject *parent, const QString &targetDrive, quint32 content )
+ : FmOperationBase( parent, FmOperationService::EOperationTypeBackup ),
+ mTargetDrive( targetDrive ), mContent( content )
+{
+}
+
+
+/*
+ Destructs the backup operation
+*/
+FmOperationBackup::~FmOperationBackup()
+{
+}
+
+/*
+ Get target backup drive
+*/
+QString FmOperationBackup::targetDrive() const
+{
+ return mTargetDrive;
+}
+
+/*
+ Get backup content mask. Refer to mContent in FmBackupSettings
+*/
+quint32 FmOperationBackup::content() const
+{
+ return mContent;
+}
+
+/*
+ Constructs a restore operation with
+ \a parent parent
+ \a selection the selected backup items
+*/
+FmOperationRestore::FmOperationRestore( QObject *parent, quint64 selection )
+ : FmOperationBase( parent, FmOperationService::EOperationTypeRestore ), mSelection( selection )
+{
+}
+
+/*
+ Destructs the restore operation
+*/
+FmOperationRestore::~FmOperationRestore()
+{
+}
+
+/*
+ Returns the backup items
+*/
+quint64 FmOperationRestore::selection() const
+{
+ return mSelection;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationbase.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,82 @@
+/*
+* 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 "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:
+* The header file of the operation param of file manager
+*
+*/
+
+#ifndef FMOPERATIONBASE_H
+#define FMOPERATIONBASE_H
+
+#include "fmoperationservice.h"
+
+#include <QObject>
+#include <QString>
+
+class FmOperationBase : public QObject
+{
+Q_OBJECT
+public:
+ explicit FmOperationBase( QObject* parent, FmOperationService::TOperationType operationType );
+ virtual ~FmOperationBase();
+
+ FmOperationService::TOperationType operationType();
+ virtual int prepare();
+ virtual void start( volatile bool *isStopped );
+
+signals:
+ void showNote( const QString ¬e );
+ void notifyWaiting( bool cancelable );
+ void notifyPreparing( bool cancelable );
+ void notifyStart( bool cancelable, int maxSteps );
+ void notifyProgress( int currentStep );
+ void notifyFinish();
+ void notifyError( int error, const QString &errString );
+
+private:
+ FmOperationService::TOperationType mOperationType;
+
+};
+
+
+class FmOperationBackup : public FmOperationBase
+{
+Q_OBJECT
+public:
+ explicit FmOperationBackup( QObject *parent, const QString &targetDrive, quint32 content );
+ virtual ~FmOperationBackup();
+
+ QString targetDrive() const;
+ quint32 content() const ;
+private:
+ // used to save backup target drive
+ QString mTargetDrive;
+
+ // used to save FmBackupSettings::content()
+ quint32 mContent;
+};
+
+class FmOperationRestore : public FmOperationBase
+{
+Q_OBJECT
+public:
+ explicit FmOperationRestore( QObject *parent, quint64 selection );
+ virtual ~FmOperationRestore();
+
+ quint64 selection() const;
+private:
+ quint64 mSelection;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationcopyormove.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,446 @@
+/*
+* 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 "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:
+*
+*/
+
+#include "fmoperationcopyormove.h"
+#include "fmcommon.h"
+#include "fmoperationbase.h"
+#include "fmdrivedetailstype.h"
+#include "fmutils.h"
+
+#include <QDir>
+#include <QFileInfo>
+#include <QStringList>
+#include <QStack>
+
+/* \fn void askForReplace( const QString &srcFile, const QString &destFile, bool *isAccepted )
+ * This signal is emitted when the same file as \a srcFile exists.
+ * \a destFile the destination file.
+ * \a isAccepted whether to replace the destination file.
+ */
+
+/* \fn void askForRename( const QString &srcFile, QString *destFile )
+ * This signal is emitted when \a srcFile needs to be renamed.
+ * \a destFile return the new name.
+ */
+
+/* \fn void driveSpaceChanged()
+ * This signal is emitted when copy or move is completed, and used to update the drive size.
+ */
+
+//the size of one time copy
+const int FmOneTimeCopyOrMoveSize = 1024;
+//the total steps of progress bar
+const int FmTotalProgressBarSteps = 100;
+/*
+ * Constructs a copy or move operation with
+ * \a operationService parent
+ * \a type the type of operation(EOperationTypeCopy or EOperationTypeMove)
+ * \a sourceList the source file or path lists that will be copied
+ * \a targetPath the target path where the source file will be copied
+ */
+FmOperationCopyOrMove::FmOperationCopyOrMove( FmOperationService *operationService, FmOperationService::TOperationType type, const QStringList &sourceList, const QString &targetPath )
+ : FmOperationBase( operationService, type ),
+ mOperationService( operationService ), mSourceList( sourceList ), mTargetPath( targetPath ),
+ mStop( 0 ), mTotalSize( 0 ), mCopiedOrMovedSize( 0 ), mTotalSteps( FmTotalProgressBarSteps ), mCurrentStep( 0 )
+{
+ mTargetPath = FmUtils::fillPathWithSplash( mTargetPath );
+ connect( this, SIGNAL( askForRename( QString, QString* ) ),
+ mOperationService, SLOT( on_operation_askForRename( QString, QString* )), Qt::BlockingQueuedConnection );
+ connect( this, SIGNAL( askForReplace( QString, QString, bool* ) ),
+ mOperationService, SLOT( on_operation_askForReplace( QString, QString, bool* )), Qt::BlockingQueuedConnection );
+ connect( this, SIGNAL( driveSpaceChanged() ),
+ mOperationService, SLOT( on_operation_driveSpaceChanged() ) );
+}
+
+/*
+ * Destructs the copy or move operation.
+ */
+FmOperationCopyOrMove::~FmOperationCopyOrMove()
+{
+}
+
+/*
+ * Returns the source file or path list
+ */
+QStringList FmOperationCopyOrMove::sourceList()
+{
+ return mSourceList;
+}
+
+/*
+ * Returns the target path
+ */
+QString FmOperationCopyOrMove::targetPath()
+{
+ return mTargetPath;
+}
+
+/*
+ * Starts the operation.
+ * \a isStopped flag the outside stop operation
+ */
+void FmOperationCopyOrMove::start( volatile bool *isStopped )
+{
+ mStop = isStopped;
+ mTotalSize = 0;
+ mCopiedOrMovedSize = 0;
+ mCurrentStep = 0;
+
+ if ( mSourceList.empty() ) {
+ emit notifyError( FmErrWrongParam, mErrString );
+ return ;
+ }
+ emit notifyPreparing( true );
+
+ int numofFolders = 0;
+ int numofFiles = 0;
+
+ int ret = FmFolderDetails::queryDetailOfContentList( mSourceList, numofFolders,
+ numofFiles, mTotalSize, mStop, true );
+ if( ret != FmErrNone ) {
+ emit notifyError( ret, mErrString );
+ return;
+ }
+ if ( !targetHasEnoughSpace() ) {
+ emit notifyError( FmErrDiskFull, mErrString );
+ return;
+ }
+ emit notifyStart( true, mTotalSteps );
+
+ foreach( const QString& source, mSourceList ) {
+ // formatPath, but do not append splash in the end
+ // Otherwise could not get fileName in QFileInfo::fileName
+ QString checkedSource( FmUtils::formatPath( source ) );
+ QFileInfo fi( checkedSource );
+ if( !fi.exists() ) {
+ mErrString = checkedSource;
+ emit notifyError( FmErrSrcPathDoNotExist, mErrString );
+ return;
+ }
+ QString newName;
+ bool isAcceptReplace = false;
+ QFileInfo destFi( mTargetPath + fi.fileName() );
+
+ // while for duplicated file/dir
+ while( destFi.exists() ) {
+ if( destFi.isFile() && destFi.absoluteFilePath().compare( fi.absoluteFilePath(), Qt::CaseInsensitive ) != 0 ) {
+ emit askForReplace( destFi.absoluteFilePath(), fi.absoluteFilePath(), &isAcceptReplace );
+ if( isAcceptReplace ) {
+ //delete src file
+ if( !QFile::remove( destFi.absoluteFilePath() ) ) {
+ mErrString = destFi.absoluteFilePath();
+ ret = FmErrCannotRemove;
+ break;
+ }
+ destFi.setFile( destFi.absoluteFilePath() );
+ } else {
+ queryForRename( destFi.absoluteFilePath(), &newName );
+ if( newName.isEmpty() ) {
+ ret = FmErrCancel;
+ break;
+ }
+ QString targetName = mTargetPath + newName;
+ destFi.setFile( targetName );
+ }
+ } else{
+ // destination is dir
+ queryForRename( destFi.absoluteFilePath(), &newName );
+ if( newName.isEmpty() ) {
+ ret = FmErrCancel;
+ break;
+ }
+ QString targetName = mTargetPath + newName;
+ destFi.setFile( targetName );
+ }
+ }
+ if( ret != FmErrNone ) {
+ emit notifyError( ret, mErrString );
+ // refresh drive space no care if cancel, error or finished.
+ // as filemanger cannot notify drive space changed
+ // do not refresh path as QFileSystemModel will do auto-refresh
+ emit driveSpaceChanged();
+ return;
+ }
+ ret = copyOrMove( checkedSource, mTargetPath, newName );
+ if( ret != FmErrNone ) {
+ emit notifyError( ret, mErrString );
+ emit driveSpaceChanged();
+ return;
+ }
+ }
+ emit notifyFinish();
+ emit driveSpaceChanged();
+}
+
+/*
+ * Copy or move the \a source to \a targetPath
+ * with \a newTargetName
+ */
+int FmOperationCopyOrMove::copyOrMove( const QString &source, const QString &targetPath,
+ const QString &newTargetName )
+{
+ if( *mStop ) {
+ return FmErrCancel;
+ }
+
+ QFileInfo fi( source );
+ if( !fi.exists() ) {
+ mErrString = source;
+ return FmErrSrcPathDoNotExist;
+ }
+ QString newName;
+ if( !newTargetName.isEmpty() ) {
+ newName = targetPath + newTargetName;
+ } else {
+ newName = targetPath + fi.fileName();
+ }
+
+ int ret = FmErrNone;
+
+ if ( fi.isFile() ) {
+ if ( FmUtils::getDriveLetterFromPath( source ) ==
+ FmUtils::getDriveLetterFromPath( targetPath ) &&
+ operationType() == FmOperationService::EOperationTypeMove )
+ {
+ return FmUtils::moveInsideDrive( source, newName );
+
+ }
+ quint64 fileSize = fi.size();
+ ret = copyOneFile( source, newName );
+ if (ret != FmErrNone) {
+ mErrString = source;
+ return ret;
+ }
+ if ( operationType() == FmOperationService::EOperationTypeMove
+ && !QFile::remove( source ) ) {
+ mErrString = source;
+ return FmErrCannotRemove;
+ }
+ } else if ( fi.isDir() ) {
+ if( operationType() == FmOperationService::EOperationTypeMove
+ && FmUtils::isDefaultFolder( source ) ){
+ ret = FmErrRemoveDefaultFolder;
+ }
+ else{
+ ret = copyOrMoveDirInsideContent( source, newName );
+ }
+ if( ret!= FmErrNone ) {
+ return ret;
+ }
+ if ( operationType() == FmOperationService::EOperationTypeMove
+ && !fi.dir().rmdir( fi.absoluteFilePath() ) ) {
+ mErrString = fi.absolutePath();
+ return FmErrCannotRemove;
+ }
+ } else {
+ qWarning( "Things other than file and directory are not copied" );
+ ret = FmErrIsNotFileOrFolder;
+ }
+
+ return ret;
+}
+
+/*
+ copy \a srcPath as \a destPath
+ both \a srcPath and \a destPath are Directory
+*/
+int FmOperationCopyOrMove::copyOrMoveDirInsideContent( const QString &srcPath, const QString &destPath )
+{
+ QFileInfo srcInfo( srcPath );
+ QFileInfo destInfo( destPath );
+
+ if( FmUtils::isSubLevelPath( srcPath, destPath ) ) {
+ mErrString = destPath;
+ if ( operationType() == FmOperationService::EOperationTypeMove ) {
+ return FmErrMoveDestToSubFolderInSrc;
+ } else {
+ return FmErrCopyDestToSubFolderInSrc;
+ }
+
+ }
+
+ if( !srcInfo.isDir() || !srcInfo.exists() ) {
+ mErrString = srcPath;
+ return FmErrSrcPathDoNotExist;
+ }
+
+ if( !destInfo.exists() ) {
+ if( !destInfo.dir().mkdir( destInfo.absoluteFilePath() ) ) {
+ mErrString = destPath;
+ return FmErrCannotMakeDir;
+ }
+ }
+ destInfo.setFile( destPath );
+ if( !destInfo.isDir() ) {
+ mErrString = destPath;
+ return FmErrCannotMakeDir;
+ }
+
+ //start to copy
+ QFileInfoList infoList = QDir( srcPath ).entryInfoList( QDir::NoDotAndDotDot | QDir::AllEntries | QDir::Hidden | QDir::System );
+ while( !infoList.isEmpty() ) {
+ if( *mStop ) {
+ return FmErrCancel;
+ }
+
+ QFileInfo fileInfo = infoList.takeFirst();
+ if( fileInfo.isFile() ){
+ //copy file
+ QString newFilePath = destPath + fileInfo.absoluteFilePath().mid( srcPath.length() );
+ int ret = copyOneFile( fileInfo.absoluteFilePath(), newFilePath );
+ if ( ret != FmErrNone ) {
+ mErrString = fileInfo.absoluteFilePath();
+ return ret;
+ }
+ if( operationType() == FmOperationService::EOperationTypeMove
+ && !QFile::remove( fileInfo.absoluteFilePath() ) ) {
+ mErrString = fileInfo.absoluteFilePath();
+ return FmErrCannotRemove;
+ }
+ } else if( fileInfo.isDir() ) {
+ //makedir
+ QString newDirPath = destPath + fileInfo.absoluteFilePath().mid( srcPath.length() );
+ if( !QDir( newDirPath ).exists() && !QDir( destPath ).mkdir( newDirPath ) ) {
+ mErrString = newDirPath;
+ return FmErrCannotMakeDir;
+ }
+ // add dir content to list.
+ QFileInfoList infoListDir = QDir( fileInfo.absoluteFilePath() ).entryInfoList(
+ QDir::NoDotAndDotDot | QDir::AllEntries );
+ if ( operationType() == FmOperationService::EOperationTypeMove ) {
+ if( infoListDir.isEmpty() ) {
+ if ( !fileInfo.dir().rmdir( fileInfo.absoluteFilePath() ) ) {
+ mErrString = fileInfo.absolutePath();
+ return FmErrCannotRemove;
+ }
+ } else {
+ infoList.push_front( fileInfo );
+ }
+ }
+ while( !infoListDir.isEmpty() ) {
+ infoList.push_front( infoListDir.takeLast() );
+ }
+
+ } else {
+ mErrString = fileInfo.absoluteFilePath();
+ return FmErrIsNotFileOrFolder;
+ }
+
+ }
+
+ return FmErrNone;
+}
+
+/*
+ * Increase the progress bar
+ * \a size the current copy or moved size
+ */
+void FmOperationCopyOrMove::increaseProgress( quint64 size )
+{
+ if( mTotalSize <=0 ) {
+ return;
+ }
+ mCopiedOrMovedSize += size;
+ int step = ( mCopiedOrMovedSize * FmTotalProgressBarSteps ) / mTotalSize;
+ if( step > mCurrentStep ) {
+ mCurrentStep = step;
+ emit notifyProgress( mCurrentStep );
+ }
+}
+
+/*
+ * Emits askForRename signal.
+ * \a srcFile the source file path.
+ * \a destFile get the new name from user input
+ */
+void FmOperationCopyOrMove::queryForRename( const QString &srcFile, QString *destFile )
+{
+ emit askForRename( srcFile, destFile );
+}
+
+/*
+ * Copies one file from \a srcFile to \a desFile
+ */
+int FmOperationCopyOrMove::copyOneFile( const QString &srcFile, const QString &desFile )
+{
+ QFile src( srcFile );
+ QFile des( desFile );
+ if ( !src.open( QIODevice::ReadOnly ) || !des.open( QIODevice::WriteOnly ) ) {
+ return FmErrCannotCopy;
+ }
+ QDataStream outputStream( &src );
+ QDataStream inputStream( &des );
+ //used to cache data from source file to target file during one copy
+ QScopedPointer<char> tempString( new char[FmOneTimeCopyOrMoveSize] );
+ memset( tempString.data(), 0, FmOneTimeCopyOrMoveSize );
+ while ( !outputStream.atEnd() ) {
+ if ( *mStop ) {
+ src.close();
+ des.close();
+ QFile::remove( desFile );
+ return FmErrCancel;
+ }
+ int ret = outputStream.readRawData(tempString.data(), FmOneTimeCopyOrMoveSize );
+ if (ret == -1) {
+ src.close();
+ des.close();
+ QFile::remove( desFile );
+ return FmErrCannotCopy;
+ }
+ ret = inputStream.writeRawData(tempString.data(), ret);
+ if (ret == -1) {
+ src.close();
+ des.close();
+ QFile::remove( desFile );
+ return FmErrCannotCopy;
+ }
+ memset( tempString.data(), 0, FmOneTimeCopyOrMoveSize );
+ increaseProgress( ret );
+ }
+ src.close();
+ des.close();
+ if ( FmUtils::setFileAttributes( srcFile, desFile ) != FmErrNone ) {
+ QFile::remove( desFile );
+ return FmErrCannotCopy;
+ }
+ return FmErrNone;
+}
+
+/*
+ * Prepare some work before starting operation.
+ * Returns error number.
+ */
+int FmOperationCopyOrMove::prepare()
+{
+ if( mSourceList.empty() ) {
+ return FmErrWrongParam;
+ } else {
+ return FmErrNone;
+ }
+}
+
+bool FmOperationCopyOrMove::targetHasEnoughSpace()
+{
+ QString sourceDrive = FmUtils::getDriveLetterFromPath( mSourceList.front() );
+ QString targetDrive = FmUtils::getDriveLetterFromPath( mTargetPath );
+ if ( sourceDrive == targetDrive &&
+ operationType() == FmOperationService::EOperationTypeMove ) {
+ return true;
+ } else {
+ return FmUtils::hasEnoughSpace( targetDrive, mTotalSize );
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationcopyormove.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* 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 "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:
+*
+*/
+
+#ifndef FMOPERATIONCOPYORMOVE_H
+#define FMOPERATIONCOPYORMOVE_H
+
+#include <QObject>
+#include <QString>
+
+#include "fmoperationbase.h"
+
+class FmOperationCopyOrMove : public FmOperationBase
+{
+ Q_OBJECT
+
+public:
+ explicit FmOperationCopyOrMove( FmOperationService *operationService, FmOperationService::TOperationType type, const QStringList &sourceList, const QString &targetPath );
+ virtual ~FmOperationCopyOrMove();
+ virtual int prepare();
+ virtual void start( volatile bool *isStopped );
+ QStringList sourceList();
+ QString targetPath();
+
+signals:
+ void askForReplace( const QString &srcFile, const QString &destFile, bool *isAccepted );
+ void askForRename( const QString &srcFile, QString *destFile );
+ void driveSpaceChanged();
+
+private:
+ int copyOrMove( const QString &source, const QString &targetPath, const QString &newTargetName = QString() );
+ int copyOrMoveDirInsideContent( const QString &srcPath, const QString &destPath );
+ void increaseProgress( quint64 size );
+ void queryForRename( const QString &srcFile, QString *destFile );
+ int copyOneFile( const QString &srcFile, const QString &desFile );
+ bool targetHasEnoughSpace();
+
+private:
+ FmOperationService *mOperationService;
+ QStringList mSourceList;
+ QString mTargetPath;
+ volatile bool *mStop;
+ QString mErrString;
+
+ quint64 mTotalSize;
+ quint64 mCopiedOrMovedSize;
+ int mTotalSteps;
+ int mCurrentStep;
+};
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationformat.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* 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 "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:
+* The header file of the operation param of file manager
+*
+*/
+
+#ifndef FMOPERATIONFORMAT_H
+#define FMOPERATIONFORMAT_H
+
+#include "fmoperationbase.h"
+
+#include <QObject>
+#include <QString>
+
+class FmOperationFormat : public FmOperationBase
+{
+ Q_OBJECT
+public:
+ explicit FmOperationFormat( QObject *parent, const QString &mDriverName );
+ virtual ~FmOperationFormat();
+ QString driverName();
+ virtual void start( volatile bool *isStopped );
+
+signals:
+ void driveSpaceChanged();
+
+private:
+ QString mDriverName;
+
+ int mTotalSteps;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationformat_s60.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,213 @@
+/*
+* 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 "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:
+*
+*/
+
+#include "fmoperationformat.h"
+#include "fmcommon.h"
+#include "fmoperationbase.h"
+#include "fmutils.h"
+
+#include <QString>
+
+#include <f32file.h>
+#include <e32property.h>
+#include <coreapplicationuisdomainpskeys.h>
+
+/* \fn void driveSpaceChanged()
+ * This signal is emitted when copy or move is completed, and used to update the drive size.
+ */
+
+/*
+ * Constructs a format operation with \a parent
+ * \a mDriverName the drive to be formatted.
+ */
+FmOperationFormat::FmOperationFormat( QObject *parent, const QString &mDriverName ) : FmOperationBase( parent, FmOperationService::EOperationTypeFormat ),
+ mDriverName( mDriverName )
+{
+ connect( this, SIGNAL( driveSpaceChanged() ),
+ parent, SLOT( on_operation_driveSpaceChanged() ) );
+}
+
+/*
+ * Destructs the operation.
+ */
+FmOperationFormat::~FmOperationFormat()
+{
+}
+
+/*
+ * Returns the to be formatted drive name
+ */
+QString FmOperationFormat::driverName()
+{
+ return mDriverName;
+}
+
+/*
+ * Starts to format.
+ * \a isStopped not used
+ */
+void FmOperationFormat::start( volatile bool */*isStopped*/ )
+{
+ QString logString = "FmOperationFormat::start";
+ FM_LOG( logString );
+
+ emit notifyPreparing( false );
+
+ if( mDriverName.isEmpty() ) {
+ emit notifyError( FmErrWrongParam, QString() );
+ return;
+ }
+
+ RFormat format;
+
+ RFs fs;
+ int err = fs.Connect();
+
+ if( err != KErrNone ){
+ emit notifyError( FmErrTypeFormatFailed, QString() );
+ return;
+ }
+
+ TInt drive = 0;
+ drive = mDriverName[0].toUpper().toAscii() - 'A' + EDriveA;
+
+ TDriveName formatDriveName( TDriveUnit( drive ).Name() );
+
+ int finalValue = 0;
+
+ format.Close();
+
+ err = format.Open(
+ fs, formatDriveName, EFullFormat | ESpecialFormat, finalValue );
+
+ if( err == KErrNone ){
+ logString = "emit notifyStart";
+ FM_LOG( logString );
+ mTotalSteps = finalValue;
+ emit notifyStart( false, finalValue );
+ }
+
+ logString = "Format open error:" + QString::number( err );
+ FM_LOG( logString );
+
+ if( err == KErrLocked ){
+ err = fs.ErasePassword( drive );
+
+ logString = "ErasePassword error:" + QString::number( err );
+ FM_LOG( logString );
+
+ if( err == KErrNone ){
+ err = format.Open(
+ fs, formatDriveName, EFullFormat, finalValue );
+
+ if( err == KErrNone ){
+ logString = "emit notifyStart";
+ FM_LOG( logString );
+ mTotalSteps = finalValue;
+ emit notifyStart( false, finalValue );
+ }
+ logString = "Second format open error:" + QString::number( err );
+ FM_LOG( logString );
+ }
+ }
+
+ if (err == KErrInUse){
+ TBool reallyFormat = ETrue;
+ if (reallyFormat){
+ err = format.Open(
+ fs, formatDriveName, EFullFormat | EForceFormat, finalValue );
+
+ if( err == KErrNone ){
+ logString = "emit notifyStart";
+ FM_LOG( logString );
+ mTotalSteps = finalValue;
+ emit notifyStart( false, finalValue );
+ }
+
+ logString = "Reallyformat open error:" + QString::number( err );
+ FM_LOG( logString );
+ }
+ }
+
+ TFullName fsName;
+ if ( err == KErrNone )
+ {
+ err = fs.FileSystemName( fsName, drive );
+
+ logString = "FileSystemName error:" + QString::number( err );
+ FM_LOG( logString );
+
+ if ( err == KErrNone && fsName.Length() > 0 )
+ {
+ // Prevent SysAp shutting down applications
+ RProperty::Set(
+ KPSUidCoreApplicationUIs,
+ KCoreAppUIsMmcRemovedWithoutEject,
+ ECoreAppUIsEjectCommandUsed );
+
+ logString = "Prevent SysAp shutting down applications" ;
+ FM_LOG( logString );
+ }
+ else
+ {
+ // Don't continue with format if there is no file system name
+ // or file system name could not be obtained.
+ err = KErrCancel;
+
+ logString = QString( "Format cancel" );
+ FM_LOG( logString );
+ }
+ }
+
+ if( err == KErrNone && finalValue ){
+
+ while ( finalValue ){
+ logString = "Format tracks:" + QString::number( finalValue );
+ FM_LOG( logString );
+ err = format.Next( finalValue );
+
+ if( err != KErrNone ){
+ logString = "Format error:" + QString::number( err );
+ FM_LOG( logString );
+ break;
+ }
+
+ logString = "emit notifyProgress";
+ FM_LOG( logString );
+ emit notifyProgress( mTotalSteps - finalValue );
+ }
+ }
+
+ if( !finalValue || err != KErrNone ){
+ format.Close();
+ fs.Close();
+
+ FmUtils::createDefaultFolders( mDriverName );
+ }
+
+ if( err == KErrNone ){
+ emit notifyFinish();
+ }
+ else{
+ emit notifyError( FmErrTypeFormatFailed, QString() );
+ }
+ // refresh drive space no care if cancel, error or finished.
+ // as filemanger cannot notify drive space changed
+ // do not refresh path as QFileSystemModel will do auto-refresh
+ emit driveSpaceChanged();
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationformat_win.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,75 @@
+/*
+* 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 "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:
+*
+*/
+
+#include "fmoperationformat.h"
+#include "fmcommon.h"
+#include "fmoperationbase.h"
+#include "fmutils.h"
+
+#include <QString>
+
+/* \fn void driveSpaceChanged()
+ * This signal is emitted when copy or move is completed, and used to update the drive size.
+ */
+
+/*
+ * Constructs a format operation with \a parent
+ * \a mDriverName the drive to be formatted.
+ */
+FmOperationFormat::FmOperationFormat( QObject *parent, const QString &mDriverName ) : FmOperationBase( parent, FmOperationService::EOperationTypeFormat ),
+ mDriverName( mDriverName )
+{
+}
+
+/*
+ * Destructs the operation.
+ */
+FmOperationFormat::~FmOperationFormat()
+{
+}
+
+/*
+ * Returns the to be formatted drive name
+ */
+QString FmOperationFormat::driverName()
+{
+ return mDriverName;
+}
+
+/*
+ * Starts to format.
+ * \a isStopped not used
+ */
+void FmOperationFormat::start( volatile bool */*isStopped*/ )
+{
+ QString logString = "FmOperationFormat::start";
+ FM_LOG( logString );
+
+ if( mDriverName.isEmpty() ) {
+ emit notifyError( FmErrWrongParam, QString() );
+ return;
+ }
+ int totalCount( 100 );
+ emit notifyStart( totalCount, false );
+ for( int i = 0; i < totalCount; i++ ) {
+ emit notifyProgress( i );
+ }
+
+ emit notifyFinish();
+ emit driveSpaceChanged();
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationremove.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,203 @@
+/*
+* 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 "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:
+*
+*/
+
+#include "fmoperationremove.h"
+#include "fmcommon.h"
+#include "fmoperationbase.h"
+#include "fmdrivedetailstype.h"
+#include "fmutils.h"
+
+#include <QDir>
+#include <QFileInfo>
+#include <QStringList>
+#include <QStack>
+
+/* \fn void driveSpaceChanged()
+ * This signal is emitted when copy or move is completed, and used to update the drive size.
+ */
+
+/*
+ * Constructs a remove operation with
+ * \a parent parent
+ * \a pathList the file or path to be removed.
+ */
+FmOperationRemove::FmOperationRemove(QObject *parent, const QStringList &pathList ) :
+ FmOperationBase( parent, FmOperationService::EOperationTypeRemove ),
+ mPathList( pathList ),
+ mStop( 0 ),
+ mTotalCount( 0 ), mRemovedCount( 0 ), mTotalSteps( 100 ), mCurrentStep( 0 )
+{
+ connect( this, SIGNAL( driveSpaceChanged() ),
+ parent, SLOT( on_operation_driveSpaceChanged() ) );
+}
+
+/*
+ * Destructs the operation.
+ */
+FmOperationRemove::~FmOperationRemove()
+{
+}
+
+/*
+ * Returns the path list
+ */
+QStringList FmOperationRemove::pathList()
+{
+ return mPathList;
+}
+
+/*
+ * Starts the operation.
+ * \a isStopped flag the outside stop operation
+ */
+void FmOperationRemove::start( volatile bool *isStopped )
+{
+ mStop = isStopped;
+ mTotalCount = 0;
+ mRemovedCount = 0;
+ mCurrentStep = 0;
+
+ if( mPathList.empty() ) {
+ emit notifyError( FmErrWrongParam, mErrString );
+ return ;
+ }
+
+ emit notifyPreparing( true );
+
+ quint64 totalSize= 0;
+ int numofFolders = 0;
+ int numofFiles = 0;
+
+ int ret = FmFolderDetails::queryDetailOfContentList( mPathList, numofFolders,
+ numofFiles, totalSize, mStop, true );
+ if( ret != FmErrNone ) {
+ emit notifyError( ret, mErrString );
+ return;
+ }
+ mTotalCount = numofFolders + numofFiles;
+
+ emit notifyStart( true, mTotalSteps );
+
+ foreach( const QString& srcPath, mPathList ) {
+ int ret = remove( srcPath );
+ if( ret != FmErrNone ) {
+ emit notifyError( ret, mErrString );
+ // refresh drive space no care if cancel, error or finished.
+ // as filemanger cannot notify drive space changed
+ // do not refresh path as QFileSystemModel will do auto-refresh
+ emit driveSpaceChanged();
+ return;
+ }
+ }
+ emit notifyFinish();
+ emit driveSpaceChanged();
+}
+
+/*
+ * Removes the file or dir with name \a fileName
+ */
+int FmOperationRemove::remove( const QString &fileName )
+{
+ if( *mStop ) {
+ return FmErrCancel;
+ }
+
+ int ret = FmErrNone;
+ QFileInfo fi( fileName );
+ if (fi.isFile()) {
+ if( !QFile::remove( fileName ) ) {
+ mErrString = fileName;
+ ret = FmErrCannotRemove;
+ }
+ IncreaseProgressOnce();
+ } else if (fi.isDir()) {
+ if( FmUtils::isDefaultFolder( fileName ) ){
+ ret = FmErrRemoveDefaultFolder;
+ }
+ else{
+ ret = recursiveRemoveDir( fileName );
+ }
+
+
+ } else {
+ qWarning( "Things other than file and directory are not copied" );
+ ret = FmErrIsNotFileOrFolder;
+ }
+ return ret;
+}
+
+/*
+ * Remove the dir with name \a pathName
+ */
+int FmOperationRemove::recursiveRemoveDir( const QString &pathName )
+{
+ QFileInfo fi( pathName );
+ if (!fi.exists() || !fi.isDir())
+ return FmErrSrcPathDoNotExist;
+
+ QStack<QDir> dirs;
+ dirs.push( QDir( pathName ) );
+
+ while (!dirs.isEmpty()) {
+ QFileInfoList infoList = dirs.top().entryInfoList( QDir::NoDotAndDotDot | QDir::AllEntries | QDir::Hidden | QDir::System );
+ if (infoList.size() == 0) {
+ QDir dirToRemove( dirs.pop() );
+ if ( !dirToRemove.rmdir( dirToRemove.absolutePath() ) ) {
+ mErrString = dirToRemove.absolutePath();
+ return FmErrCannotRemove;
+ }
+ IncreaseProgressOnce();
+
+ } else {
+ QList<QDir> dirList;
+ for (QFileInfoList::Iterator it = infoList.begin(); it != infoList.end(); ++it) {
+ if( *mStop ) {
+ return FmErrCancel;
+ }
+
+ if (it->isDir()) {
+ dirList.push_front( QDir( it->absoluteFilePath() ) );
+ } else {
+ if ( !QFile::remove( it->absoluteFilePath() ) ) {
+ mErrString = it->absoluteFilePath();
+ return FmErrCannotRemove;
+ }
+ IncreaseProgressOnce();
+ }
+ }
+ foreach( const QDir& dir, dirList ) {
+ dirs.push( dir );
+ }
+ }
+ }
+ return FmErrNone;
+}
+
+/*
+ * Increase the progress bar
+ */
+void FmOperationRemove::IncreaseProgressOnce()
+{
+ if( mTotalCount <= 0 )
+ return;
+ mRemovedCount++;
+ int step = ( mRemovedCount * 100 ) / mTotalCount;
+ if( step > mCurrentStep ) {
+ mCurrentStep = step;
+ emit notifyProgress( mCurrentStep );
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationremove.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,55 @@
+/*
+* 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 "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:
+*
+*/
+
+#ifndef FMOPERATIONREMOVE_H
+#define FMOPERATIONREMOVE_H
+#include <QObject>
+
+#include "fmoperationbase.h"
+
+class FmOperationRemove : public FmOperationBase
+{
+ Q_OBJECT
+
+public:
+ explicit FmOperationRemove( QObject *parent, const QStringList &pathList );
+ virtual ~FmOperationRemove();
+
+ QStringList pathList();
+ void start( volatile bool *isStopped );
+
+signals:
+ void driveSpaceChanged();
+
+private:
+ int remove( const QString &fileName );
+ int recursiveRemoveDir( const QString &path );
+ void IncreaseProgressOnce();
+
+private:
+ QStringList mPathList;
+
+ volatile bool *mStop;
+ QString mErrString;
+
+ quint64 mTotalCount;
+ quint64 mRemovedCount;
+ int mTotalSteps;
+ int mCurrentStep;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationresultprocesser.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,593 @@
+/*
+* 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 "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:
+*
+*/
+#include "fmoperationresultprocesser.h"
+#include "fmoperationbase.h"
+#include "fmoperationservice.h"
+#include "fmoperationformat.h"
+#include "fmbkupengine.h"
+#include "fmbackupsettings.h"
+#include "fmbackuprestorehandler.h"
+#include "fmoperationviewdetails.h"
+#include "fmviewdetailsdialog.h"
+#include "fmdlgutils.h"
+#include "fmutils.h"
+#include <hbaction.h>
+#include <hbprogressdialog.h>
+#include <hbaction.h>
+#include <hbglobal.h>
+#include <QFileInfo>
+
+/*
+ * Constructs one operation result processer with \a operation Service.
+ */
+FmOperationResultProcesser::FmOperationResultProcesser( FmOperationService *operationService )
+ : mOperationService( operationService ), mNote( 0 )
+{
+}
+
+/*
+ * Destructs the operation result processer
+ */
+FmOperationResultProcesser::~FmOperationResultProcesser(void)
+{
+}
+
+/*
+ * Called by operation service on_operation_askForRename
+ * \sa FmOperationService::on_operation_askForRename
+ */
+void FmOperationResultProcesser::onAskForRename(
+ FmOperationBase* operationBase, const QString &srcFile, QString *destFile )
+{
+ Q_UNUSED( operationBase );
+ int maxFileNameLength = FmUtils::getMaxFileNameLength();
+
+ QString questionText = QString( "file " ) +
+ srcFile + QString( " already exist, please rename:" );
+ QString value;
+ QFileInfo srcFileInfo(srcFile);
+ QStringList regExpList = (QStringList() << Regex_ValidFileFolderName << Regex_ValidNotEndWithDot );
+
+ bool ret = FmDlgUtils::showTextQuery( questionText, value, regExpList,
+ maxFileNameLength, QString(), false );
+ while ( ret ) {
+ // remove whitespace from the start and the end.
+ value = value.trimmed();
+ QString newTargetPath = FmUtils::fillPathWithSplash(
+ srcFileInfo.absolutePath() ) + value;
+ QString errString;
+ // check if name/path is available for use.
+ if( !FmUtils::checkNewFolderOrFile( value, newTargetPath, errString ) ) {
+ FmDlgUtils::information( errString );
+ ret = FmDlgUtils::showTextQuery( questionText, value, regExpList, maxFileNameLength, QString(), false );
+ continue;
+ } else {
+ break;
+ }
+ }
+ if( ret ) {
+ // Got file/folder name for rename, save it to destFile
+ *destFile = value;
+ QFileInfo destFileInfo( *destFile );
+ if ( ( srcFileInfo.suffix().compare( destFileInfo.suffix(), Qt::CaseInsensitive ) != 0 )
+ && srcFileInfo.isFile() ) {
+ // popup warning when the suffix of file is changed.
+ FmDlgUtils::information( hbTrId( "File may become unusable when file name extension is changed" ) );
+ }
+ }
+}
+
+/*
+ * Called by operation service on_operation_askForReplace
+ * \sa FmOperationService::on_operation_askForReplace
+ */
+void FmOperationResultProcesser::onAskForReplace(
+ FmOperationBase* operationBase, const QString &srcFile, const QString &destFile, bool *isAccepted )
+{
+ Q_UNUSED( operationBase );
+ Q_UNUSED( destFile );
+
+ QString questionText = QString( "file " ) +
+ srcFile + QString( " already exist, replace it?" );
+ if( FmDlgUtils::question( questionText ) ) {
+ *isAccepted = true;
+ } else {
+ *isAccepted = false;
+ }
+}
+
+/*
+ * Called by operation service on_operation_showNote
+ * \sa FmOperationService::on_operation_showNote
+ */
+void FmOperationResultProcesser::onShowNote( FmOperationBase* operationBase, const char *noteString )
+{
+ Q_UNUSED( operationBase );
+ FmDlgUtils::information(hbTrId(noteString));
+}
+
+/*
+ * Called by operation service on_operation_notifyWaiting
+ * \sa FmOperationService::on_operation_notifyWaiting
+ */
+void FmOperationResultProcesser::onNotifyWaiting( FmOperationBase* operationBase, bool cancelable )
+{
+ QString title = hbTrId("Operation");
+ switch( operationBase->operationType() )
+ {
+ case FmOperationService::EOperationTypeBackup:
+ title = hbTrId("backuping");
+ break;
+ case FmOperationService::EOperationTypeRestore:
+ title = hbTrId("restoring");
+ break;
+ case FmOperationService::EOperationTypeDriveDetails:
+ title = hbTrId( "Scaning memory..." );
+ break;
+
+ case FmOperationService::EOperationTypeFolderDetails:
+ title = hbTrId( "Scaning folder..." );
+ break;
+ default:
+ break;
+ }
+
+ showWaiting( title, cancelable );
+}
+
+/*
+ * Called by operation service on_operation_notifyPreparing
+ * \sa FmOperationService::on_operation_notifyPreparing
+ */
+void FmOperationResultProcesser::onNotifyPreparing( FmOperationBase* operationBase, bool cancelable )
+{
+ QString title = hbTrId("Operation");
+ switch( operationBase->operationType() )
+ {
+ case FmOperationService::EOperationTypeBackup:
+ title = hbTrId("backup preparing");
+ break;
+ case FmOperationService::EOperationTypeRestore:
+ title = hbTrId("restore preparing");
+ break;
+ case FmOperationService::EOperationTypeCopy:
+ title = hbTrId("copy preparing");
+ break;
+ case FmOperationService::EOperationTypeMove:
+ title = hbTrId("move preparing");
+ break;
+ case FmOperationService::EOperationTypeRemove:
+ title = hbTrId("delete preparing");
+ break;
+ case FmOperationService::EOperationTypeFormat:
+ title = hbTrId("format preparing");
+ break;
+ default:
+ break;
+ }
+
+ showPreparing( title, cancelable );
+}
+
+/*
+ * Called by operation service on_operation_notifyStart
+ * \sa FmOperationService::on_operation_notifyStart
+ */
+void FmOperationResultProcesser::onNotifyStart( FmOperationBase* operationBase, bool cancelable, int maxSteps )
+{
+ QString title = hbTrId("Operation");
+ switch( operationBase->operationType() )
+ {
+ case FmOperationService::EOperationTypeBackup:
+ title = hbTrId("backup...");
+ break;
+ case FmOperationService::EOperationTypeRestore:
+ title = hbTrId("restore...");
+ break;
+ case FmOperationService::EOperationTypeCopy:
+ title = hbTrId("copy...");
+ break;
+ case FmOperationService::EOperationTypeMove:
+ title = hbTrId("move...");
+ break;
+ case FmOperationService::EOperationTypeRemove:
+ title = hbTrId("delete...");
+ break;
+ case FmOperationService::EOperationTypeFormat:
+ title = hbTrId("formating...");
+ break;
+ default:
+ break;
+ }
+
+ showProgress( title, cancelable, maxSteps );
+}
+
+/*
+ * Called by operation service on_operation_notifyProgress
+ * \sa FmOperationService::on_operation_notifyProgress
+ */
+void FmOperationResultProcesser::onNotifyProgress( FmOperationBase* operationBase, int currentStep )
+{
+ Q_UNUSED( operationBase );
+ setProgress( currentStep );
+}
+
+/*
+ * Called by operation service on_operation_notifyFinish
+ * \sa FmOperationService::on_operation_notifyFinish
+ */
+void FmOperationResultProcesser::onNotifyFinish( FmOperationBase* operationBase )
+{
+
+ finishProgress();
+ switch( operationBase->operationType() )
+ {
+ case FmOperationService::EOperationTypeDriveDetails:
+ {
+ FmOperationDriveDetails *paramDriveDetails = static_cast<FmOperationDriveDetails*>( operationBase );
+ QString diskName = paramDriveDetails->driverName();
+ FmViewDetailsDialog::showDriveViewDetailsDialog( diskName, paramDriveDetails->detailsSizeList(),
+ FmUtils::getDriveLetterFromPath( diskName ) );
+ break;
+ }
+ case FmOperationService::EOperationTypeFolderDetails:
+ {
+ FmOperationFolderDetails *paramFolderDetails = static_cast<FmOperationFolderDetails*>( operationBase );
+ FmViewDetailsDialog::showFolderViewDetailsDialog( paramFolderDetails->folderPath(),
+ paramFolderDetails->numofSubFolders(),
+ paramFolderDetails->numofFiles(),
+ paramFolderDetails->sizeofFolder(),
+ FmUtils::getDriveLetterFromPath( paramFolderDetails->folderPath() ) );
+ break;
+ }
+ case FmOperationService::EOperationTypeFormat:
+ {
+ FmDlgUtils::information( QString( hbTrId("Format succeed!")) );
+ FmOperationFormat *paramFormat = static_cast<FmOperationFormat*>( operationBase );
+ QString title( hbTrId( "Drive name ") );
+ QString driveName( paramFormat->driverName() );
+ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( driveName );
+ FmDriverInfo::DriveState state = driverInfo.driveState();
+ FmDriverInfo::DriveType driveType = driverInfo.driveType();
+
+ // If drive is available and it is mmc or usb memory
+ if( ( state & FmDriverInfo::EDriveAvailable ) &&
+ ( driveType == FmDriverInfo::EDriveTypeMemoryCard ||
+ driveType == FmDriverInfo::EDriveTypeUsbMemory ) ) {
+ bool needToSetVolume = false;
+ QString volumeName = FmUtils::getVolumeNameWithDefaultNameIfNull( driveName, needToSetVolume );
+ //use isReturnFalseWhenNoTextChanged = false in order that FmUtils::renameDrive( driveName, volumeName ) will
+ //be excuted at lease once to set the volume name.
+ while( FmDlgUtils::showTextQuery( title, volumeName, QStringList(), FmMaxLengthofDriveName, QString(), false ) ){
+ int err = FmUtils::renameDrive( driveName, volumeName );
+ if ( err == FmErrNone ) {
+ FmDlgUtils::information( hbTrId( "The name has been changed!" ) );
+ mOperationService->on_operation_driveSpaceChanged();
+ break;
+ } else if( err == FmErrBadName ) {
+ FmDlgUtils::information( hbTrId( "Illegal characters! Use only letters and numbers." ) );
+ } else{
+ FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) );
+ break;
+ }
+ }
+ }
+ break;
+ }
+ case FmOperationService::EOperationTypeBackup:
+ {
+ FmDlgUtils::information( QString( hbTrId("Backup succeed!")) );
+ break;
+ }
+ case FmOperationService::EOperationTypeRestore:
+ {
+ FmDlgUtils::information( QString( hbTrId("Restore succeed!")) );
+ break;
+ }
+ default:
+ FmDlgUtils::information( QString( hbTrId("Operation finished")) );
+
+ }
+}
+
+/*
+ * Called by operation service on_operation_notifyError
+ * \sa FmOperationService::on_operation_notifyError
+ */
+void FmOperationResultProcesser::onNotifyError( FmOperationBase* operationBase, int error, const QString &errString )
+{
+ Q_UNUSED( errString );
+ failAndCloseProgress();
+ switch( error )
+ {
+ case FmErrCancel:
+ cancelProgress();
+ // Do not pop up general cancel note as it is not needed( according to TB9.2 ).
+ // If it should be added later, please do not use blocking note.
+ // Blocking note will cause second backup operaion freeze after cancel previous backup operation
+ // as QEventLoop::exec will cause some problem when used for blocking dialog.
+ // HbDialog has already removed exec function which is implemented with QEventLoop::exec.
+ // If need use QEventLoop::exec to block code execute sequence, It should be invoked in a Qt::QueuedConnection slot.
+ return;
+ case FmErrAlreadyStarted:
+ FmDlgUtils::information( QString( hbTrId("Operation already started!")) );
+ return;
+ case FmErrLocked:
+ {
+ FmOperationBackup *operationBackup = qobject_cast<FmOperationBackup*>(operationBase);
+ if( operationBackup ) {
+ // special error note for backup
+ QString targetDrive( operationBackup->targetDrive() );
+ QString defaultDriveVolume( FmUtils::getDefaultVolumeName( targetDrive ) );
+ QString driveString( defaultDriveVolume.isEmpty()? targetDrive:defaultDriveVolume );
+ FmDlgUtils::information( QString( hbTrId("txt_fmgr_info_backup_locked") ).arg( driveString ) );
+ } else {
+ FmDlgUtils::information( QString( hbTrId("Operation failed because drive is locked!")) );
+ }
+ return;
+ }
+ case FmErrPathNotFound:
+ FmDlgUtils::information( QString( hbTrId("Operation failed because can not find target path or drive is not available!") ) );
+ return;
+ case FmErrCorrupt:
+ {
+ FmOperationBackup *operationBackup = qobject_cast<FmOperationBackup*>(operationBase);
+ if( operationBackup ) {
+ // special error note for backup
+ QString targetDrive( operationBackup->targetDrive() );
+ QString defaultDriveVolume( FmUtils::getDefaultVolumeName( targetDrive ) );
+ QString driveString( defaultDriveVolume.isEmpty()? targetDrive:defaultDriveVolume );
+ FmDlgUtils::information( QString( hbTrId("txt_fmgr_info_backup_corrupted") ).arg( driveString ) );
+ } else {
+ FmDlgUtils::information( QString( hbTrId("Operation failed because target media is corrupted!") ) );
+ }
+ return;
+ }
+ case FmErrNotReady: // Caused when MMC & OTG is not inserted when start backup
+ {
+ FmOperationBackup *operationBackup = qobject_cast<FmOperationBackup*>(operationBase);
+ if( operationBackup ) {
+ // special error note for backup
+ QString targetDrive( operationBackup->targetDrive() );
+ QString defaultDriveVolume( FmUtils::getDefaultVolumeName( targetDrive ) );
+ QString driveString( defaultDriveVolume.isEmpty()? targetDrive:defaultDriveVolume );
+ FmDlgUtils::information( QString( hbTrId("txt_fmgr_info_backup_unavailable") ).arg( driveString ) );
+ } else {
+ FmDlgUtils::information( QString( hbTrId("Operation failed because device is not ready!") ) );
+ }
+ return;
+ }
+ case FmErrDisMounted: // Caused by eject MMC when preparing backup, will be localized later
+ FmDlgUtils::information( QString( hbTrId("Operation failed because backup target drive has been removed!") ) );
+ return;
+ case FmErrDiskFull:
+ FmDlgUtils::information( QString( hbTrId("Not enough space. Operation cancelled!")) );
+ return;
+ case FmErrCopyDestToSubFolderInSrc:
+ FmDlgUtils::information( QString( hbTrId("Can not copy to sub folder!")) );
+ return;
+ case FmErrMoveDestToSubFolderInSrc:
+ FmDlgUtils::information( QString( hbTrId("Can not move to sub folder!")) );
+ return;
+ case FmErrCannotRemove:{
+ if( operationBase->operationType() == FmOperationService::EOperationTypeCopy ) {
+ // when copy a file/dir to same name destination, and delete dest fail, this error will occur
+ FmDlgUtils::information( QString( hbTrId( "Can not copy because %1 can not be deleted!" ).arg( errString ) ) );
+ return;
+ }
+ else if( operationBase->operationType() == FmOperationService::EOperationTypeMove ) {
+ // when move a file/dir to same name destination, and delete dest fail, this error will occur
+ FmDlgUtils::information( QString( hbTrId( "Can not move because %1 can not be deleted!" ).arg( errString ) ) );
+ return;
+ }
+ // when delete file/dir fail, this error will occur
+ FmDlgUtils::information( QString( hbTrId( "Can not delete %1!" ).arg( errString ) ) );
+ return;
+ }
+ case FmErrRemoveDefaultFolder:{
+ if( operationBase->operationType() == FmOperationService::EOperationTypeMove ) {
+ // when move a default folder
+ FmDlgUtils::information( QString( hbTrId( "Could not move because the default folder %1 can not be deleted!" ).arg( errString ) ) );
+ return;
+ }
+ else {
+ // when delete the default folder
+ FmDlgUtils::information( QString( hbTrId( "Could not remove the default folder %1 " ).arg( errString ) ) );
+ return;
+ }
+ }
+ }
+
+ switch( operationBase->operationType() )
+ {
+ case FmOperationService::EOperationTypeFormat:
+ FmDlgUtils::information( QString( hbTrId("Format failed!")) );
+ break;
+ default:
+ FmDlgUtils::information( QString( hbTrId("Operation failed")) );
+ }
+
+}
+
+/*
+ * Responds to waiting note's cancel signal.
+ */
+void FmOperationResultProcesser::onProgressCancelled()
+{
+ mOperationService->cancelOperation();
+}
+
+
+/*
+ * Shows the waiting dialog with
+ * \a title the title of the dialog.
+ * \a cancelable whether it could be cancelled.
+ */
+void FmOperationResultProcesser::showWaiting( QString title, bool cancelable )
+{
+ qDebug("show warning");
+ if( mNote ){
+ mNote->close();
+ delete mNote;
+ }
+
+ mNote = new HbProgressDialog( HbProgressDialog::WaitDialog );
+ connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
+// if( !mNote ) {
+// mNote = new HbProgressDialog( HbProgressDialog::WaitNote );
+// connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
+// } else {
+// mNote->setProgressDialogType( HbProgressDialog::WaitNote );
+// }
+ mNote->setText( title );
+ //KRAZY: ignore krazy warning because QAction must be used.
+ QList<QAction *> actionList = mNote->actions();
+ if (actionList.size() > 0) {
+ QAction *cancelAction = actionList.at(0);
+ if (!cancelable) {
+ cancelAction->setDisabled( true );
+ } else {
+ cancelAction->setDisabled( false );
+ }
+ }
+ mNote->open();
+
+}
+
+/*
+ * Shows the preparing dialog with
+ * \a title the title of the dialog.
+ * \a cancelable whether it could be cancelled.
+ */
+void FmOperationResultProcesser::showPreparing( QString title, bool cancelable )
+{
+ qDebug("show preparing");
+
+ if( mNote ){
+ mNote->close();
+ delete mNote;
+ }
+
+ mNote = new HbProgressDialog( HbProgressDialog::ProgressDialog );
+ connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
+// if( !mNote ) {
+// mNote = new HbProgressDialog( HbProgressDialog::ProgressDialog );
+// connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
+// } else {
+// mNote->setProgressDialogType( HbProgressDialog::ProgressDialog );
+// }
+ mNote->setMinimum(0);
+ mNote->setMaximum( 65535 );
+ mNote->setProgressValue( 0 );
+ mNote->setText( title );
+ //KRAZY: ignore krazy warning because QAction must be used.
+ QList<QAction *> actionList = mNote->actions();
+ if (actionList.size() > 0) {
+ QAction *cancelAction = actionList.at(0);
+ if (!cancelable) {
+ cancelAction->setDisabled( true );
+ } else {
+ cancelAction->setDisabled( false );
+ }
+ }
+ mNote->open();
+}
+
+/*
+ * Shows the progress dialog with
+ * \a title the title of the dialog.
+ * \a cancelable whether it could be cancelled.
+ */
+void FmOperationResultProcesser::showProgress( QString title, bool cancelable, int maxValue )
+{
+ qDebug("show progress");
+
+ if( mNote ){
+ mNote->close();
+ delete mNote;
+ }
+
+ mNote = new HbProgressDialog( HbProgressDialog::ProgressDialog );
+ connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
+// if( !mNote ) {
+// mNote = new HbProgressDialog( HbProgressDialog::ProgressDialog );
+// connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
+// } else {
+// mNote->setProgressDialogType( HbProgressDialog::ProgressDialog );
+// }
+ mNote->setText( title );
+
+ mNote->setMinimum(0);
+ mNote->setMaximum( maxValue );
+
+ mNote->setProgressValue( 0 );
+ //KRAZY: ignore krazy warning because QAction must be used.
+ QList<QAction *> actionList = mNote->actions();
+ if (actionList.size() > 0) {
+ QAction *cancelAction = actionList.at(0);
+ if(!cancelable) {
+ cancelAction->setDisabled( true );
+ } else {
+ cancelAction->setDisabled( false );
+ }
+ }
+ mNote->open();
+}
+
+/*
+ * Sets the current progress value to be \a value
+ */
+void FmOperationResultProcesser::setProgress( int value )
+{
+ qDebug("set progress");
+ if( mNote )
+ mNote->setProgressValue( value );
+}
+
+/*
+ * Finishes the progress.
+ */
+void FmOperationResultProcesser::finishProgress()
+{
+ qDebug("finish progress");
+ if( mNote ) {
+ mNote->close();
+ }
+}
+
+/*
+ * Cancels the progress bar.
+ */
+void FmOperationResultProcesser::cancelProgress()
+{
+ qDebug("cancel progress");
+ if( mNote ) {
+ mNote->close();
+ }
+}
+
+/*
+ * Fails and closes the progress bar.
+ */
+void FmOperationResultProcesser::failAndCloseProgress()
+{
+ qDebug("fail progress");
+ if( mNote ) {
+ mNote->close();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationresultprocesser.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* 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 "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:
+*
+*/
+
+#ifndef FMOPERATIONRESULTPROCESSER_H
+#define FMOPERATIONRESULTPROCESSER_H
+#include <QObject>
+
+class FmOperationBase;
+class FmOperationService;
+class HbProgressDialog;
+
+class FmOperationResultProcesser :
+ public QObject
+{
+Q_OBJECT
+public:
+ explicit FmOperationResultProcesser( FmOperationService* );
+ ~FmOperationResultProcesser(void);
+
+ void onAskForRename( FmOperationBase* operationBase, const QString &srcFile, QString *destFile );
+ void onAskForReplace( FmOperationBase* operationBase, const QString &srcFile, const QString &destFile, bool *isAccepted );
+ void onShowNote( FmOperationBase* operationBase, const char *noteString );
+ void onNotifyWaiting( FmOperationBase* operationBase, bool cancelable );
+ void onNotifyPreparing( FmOperationBase* operationBase, bool cancelable );
+ void onNotifyStart( FmOperationBase* operationBase, bool cancelable, int maxSteps );
+ void onNotifyProgress( FmOperationBase* operationBase, int currentStep );
+
+
+ void onNotifyFinish( FmOperationBase* operationBase );
+ void onNotifyError( FmOperationBase* operationBase, int error, const QString &errString );
+
+private slots:
+ void onProgressCancelled();
+private:
+ void showWaiting( QString title, bool cancelable );
+ void showPreparing( QString title, bool cancelable );
+ void showProgress( QString title, bool cancelable, int maxValue );
+ void setProgress( int value );
+ void finishProgress();
+ void cancelProgress();
+ void failAndCloseProgress();
+private:
+ FmOperationService *mOperationService;
+ HbProgressDialog *mNote;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationservice.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,549 @@
+/*
+ * 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 "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:
+ * The source file of the operation service of file manager
+ */
+
+#include "fmoperationservice.h"
+#include "fmoperationthread.h"
+#include "fmbackupconfigloader.h"
+#include "fmbkupengine.h"
+#include "fmbackupsettings.h"
+#include "fmviewdetailsdialog.h"
+#include "fmoperationresultprocesser.h"
+#include "fmoperationcopyormove.h"
+#include "fmoperationremove.h"
+#include "fmoperationformat.h"
+#include "fmoperationviewdetails.h"
+#include "fmbackuprestorehandler.h"
+#include <hbaction.h>
+
+/* \fn void driveSpaceChanged( FmOperationBase* operationBase )
+ * This signal is emitted when disk size changed.
+ */
+
+/* \fn void notifyWaiting( FmOperationBase* operationBase, bool cancelable )
+ * This signal is emitted when the operation emits notifyWaiting.
+ */
+
+/* \fn void notifyPreparing( FmOperationBase* operationBase, bool cancelable )
+ * This signal is emitted when the operation emits notifyPreparing.
+ */
+
+/* \fn void notifyStart( FmOperationBase* operationBase, bool cancelable, int maxSteps )
+ * This signal is emitted when the operation emits notifyStart.
+ */
+
+/* \fn void notifyProgress( FmOperationBase* operationBase, int currentStep )
+ * This signal is emitted when the operation emits notifyProgress.
+ */
+
+/* \fn void notifyFinish( FmOperationBase* operationBase )
+ * This signal is emitted when the operation emits notifyFinish.
+ */
+
+/* \fn void notifyError( FmOperationBase* operationBase, int error, QString errString )
+ * This signal is emitted when the operation emits notifyError.
+ */
+
+/* \fn void notifyCanceled( FmOperationBase* operationBase )
+ * This signal is emitted when the operation emits notifyCanceled.
+ */
+
+/*
+ * Constructs one operation Service with \a parent.
+ */
+FmOperationService::FmOperationService( QObject *parent ) : QObject( parent ),
+ mCurrentOperation( 0 ), mBackupRestoreHandler( 0 )
+{
+ mThread = new FmOperationThread( this );
+ mThread->setObjectName( "operationThread" );
+ mOperationResultProcesser = new FmOperationResultProcesser( this );
+
+ QMetaObject::connectSlotsByName( this );
+}
+
+/*
+ * Destructs the operation service.
+ */
+FmOperationService::~FmOperationService()
+{
+ delete mThread;
+ mThread = 0;
+ delete mBackupRestoreHandler;
+ mBackupRestoreHandler = 0;
+}
+
+/*
+ * Returns true if the thread is running, false if not.
+ */
+bool FmOperationService::isRunning()
+{
+ return mThread->isRunning();
+}
+
+/*
+ * Copies the file or foler \a targetPath asynchronously.
+ */
+int FmOperationService::asyncCopy( const QStringList &sourceList, const QString &targetPath )
+{
+ Q_ASSERT( !mCurrentOperation );
+ mCurrentOperation = new FmOperationCopyOrMove( this, FmOperationService::EOperationTypeCopy, sourceList, targetPath );
+ connectSignalsAndSlots( mCurrentOperation );
+ int ret = mThread->prepareOperationAndStart( mCurrentOperation );
+ if ( ret!= FmErrNone ) {
+ resetOperation();
+ return ret;
+ }
+ return FmErrNone;
+}
+
+/*
+ * Moves the file or foler \a sourceList to \a targetPath asynchronously.
+ */
+int FmOperationService::asyncMove( const QStringList &sourceList, const QString &targetPath )
+{
+ Q_ASSERT( !mCurrentOperation );
+
+ mCurrentOperation = new FmOperationCopyOrMove( this, FmOperationService::EOperationTypeMove, sourceList, targetPath );
+ connectSignalsAndSlots( mCurrentOperation );
+ int ret = mThread->prepareOperationAndStart( mCurrentOperation );
+ if ( ret!= FmErrNone ) {
+ resetOperation();
+ return ret;
+ }
+ return FmErrNone;
+}
+
+/*
+ * Removes the file or dir \a pathList asynchronously.
+ */
+int FmOperationService::asyncRemove( const QStringList &pathList )
+{
+ Q_ASSERT( !mCurrentOperation );
+
+ mCurrentOperation = new FmOperationRemove( this, pathList );
+ connectSignalsAndSlots( mCurrentOperation );
+ int ret = mThread->prepareOperationAndStart( mCurrentOperation );
+ if ( ret!= FmErrNone ) {
+ resetOperation();
+ return ret;
+ }
+ return FmErrNone;
+}
+
+/*
+ * Formats the drive \a driverName asynchronously.
+ */
+int FmOperationService::asyncFormat( const QString &driverName )
+{
+ Q_ASSERT( !mCurrentOperation );
+
+ mCurrentOperation = new FmOperationFormat( this, driverName );
+ connectSignalsAndSlots( mCurrentOperation );
+ int ret = mThread->prepareOperationAndStart( mCurrentOperation );
+ if ( ret!= FmErrNone ) {
+ resetOperation();
+ return ret;
+ }
+ return FmErrNone;
+}
+
+/*
+ * Views drive \a driverName details asynchronously.
+ */
+int FmOperationService::asyncViewDriveDetails( const QString &driverName )
+{
+ Q_ASSERT( !mCurrentOperation );
+
+ mCurrentOperation = new FmOperationDriveDetails( this, driverName );
+ connectSignalsAndSlots( mCurrentOperation );
+ int ret = mThread->prepareOperationAndStart( mCurrentOperation );
+ if ( ret!= FmErrNone ) {
+ resetOperation();
+ return ret;
+ }
+ return FmErrNone;
+}
+
+/*
+ * Views folder \a folderPath details asynchronously.
+ */
+int FmOperationService::asyncViewFolderDetails( const QString &folderPath )
+{
+ Q_ASSERT( !mCurrentOperation );
+
+ mCurrentOperation = new FmOperationFolderDetails( this, folderPath );
+ connectSignalsAndSlots( mCurrentOperation );
+ int ret = mThread->prepareOperationAndStart( mCurrentOperation );
+ if ( ret!= FmErrNone ) {
+ resetOperation();
+ return ret;
+ }
+ return FmErrNone;
+}
+
+/*
+ * Backups asynchronously.
+ */
+int FmOperationService::asyncBackup()
+{
+ if ( isRunning() )
+ return FmErrAlreadyStarted;
+ Q_ASSERT( !mCurrentOperation );
+
+ // BackupSettingsL will not leave, coding convention will be improvied in another task.
+ QString targetDrive( backupRestoreHandler()->bkupEngine()->BackupSettingsL()->availableTargetDrive() );
+ quint32 content( backupRestoreHandler()->bkupEngine()->BackupSettingsL()->content() );
+ FmOperationBackup *operationBackup =
+ new FmOperationBackup( backupRestoreHandler(), targetDrive, content );
+ mCurrentOperation = operationBackup;
+ int ret = backupRestoreHandler()->startBackup( operationBackup );
+ if( ret ){
+ return FmErrNone;
+ } else {
+ resetOperation();
+ return backupRestoreHandler()->error();
+ }
+}
+
+/*
+ * Restores asynchronously.
+ * \a selection selected restore items
+ */
+int FmOperationService::asyncRestore( quint64 selection )
+{
+ if ( isRunning() )
+ return FmErrAlreadyStarted;
+ Q_ASSERT( !mCurrentOperation );
+
+ FmOperationRestore* operationRestore = new FmOperationRestore( mBackupRestoreHandler, selection );
+ mCurrentOperation = operationRestore;
+ int ret = backupRestoreHandler()->startRestore( operationRestore );
+ if( ret ){
+ return FmErrNone;
+ } else {
+ resetOperation();
+ return backupRestoreHandler()->error();
+ }
+}
+
+/*
+ * Delete backup synchronously.
+ * \a selection selected backup items
+ */
+int FmOperationService::syncDeleteBackup( quint64 selection )
+{
+ return backupRestoreHandler()->deleteBackup( selection );
+}
+
+/*
+ * Cancels current operation.
+ */
+void FmOperationService::cancelOperation()
+{
+ switch( mCurrentOperation->operationType() )
+ {
+ case EOperationTypeBackup:
+ backupRestoreHandler()->cancelBackup();
+ break;
+ case EOperationTypeDriveDetails:
+ mThread->stop();
+ break;
+ case EOperationTypeFolderDetails:
+ mThread->stop();
+ break;
+ case EOperationTypeFormat:
+ //can not cancel format
+ break;
+ case EOperationTypeCopy:
+ mThread->stop();
+ break;
+ case EOperationTypeMove:
+ mThread->stop();
+ break;
+ case EOperationTypeRemove:
+ mThread->stop();
+ break;
+ default:
+ Q_ASSERT( false );
+ }
+}
+
+/*
+ * Set valume synchronously. not used.
+ */
+int FmOperationService::syncSetVolume( const QString &driverName, const QString &volume )
+{
+ Q_UNUSED( driverName );
+ Q_UNUSED( volume );
+ return FmErrNone;
+}
+
+/*
+ * Set drive password synchronously. not used.
+ */
+int FmOperationService::syncSetdDriverPassword( const QString &driverName,
+ const QString &oldPassword,
+ const QString &newPassword )
+{
+ Q_UNUSED( driverName );
+ Q_UNUSED( oldPassword );
+ Q_UNUSED( newPassword );
+ return FmErrNone;
+}
+
+/*
+ * Rename synchronously. not used.
+ */
+int FmOperationService::syncRename( const QString &oldPath, const QString &newName )
+{
+ Q_UNUSED( oldPath );
+ Q_UNUSED( newName );
+ return FmErrNone;
+}
+
+/*
+ * Launches the file in synchronous way.
+ */
+int FmOperationService::syncLaunchFileOpen( const QString &filePath )
+{
+ return FmUtils::launchFile( filePath );
+}
+
+/*
+ * Returns the backup handler.
+ */
+FmBackupRestoreHandler *FmOperationService::backupRestoreHandler()
+{
+ if( !mBackupRestoreHandler ) {
+ mBackupRestoreHandler = new FmBackupRestoreHandler( this );
+ mBackupRestoreHandler->setObjectName( "backupRestore" ) ;
+ QMetaObject::connectSlotsByName( this );
+ }
+ return mBackupRestoreHandler;
+}
+
+/*
+ * Deletes the operation and set it to be 0.
+ */
+void FmOperationService::resetOperation()
+{
+ if( mCurrentOperation ) {
+ delete mCurrentOperation;
+ mCurrentOperation = 0;
+ }
+}
+
+/*
+ * Connects \a operation's sinals to slots
+ */
+void FmOperationService::connectSignalsAndSlots( FmOperationBase *operation )
+{
+
+ connect( operation, SIGNAL( showNote( QString ) ),
+ this, SLOT( on_operation_showNote( QString )), Qt::BlockingQueuedConnection );
+ connect( operation, SIGNAL( notifyError( int, QString ) ),
+ this, SLOT( on_operation_notifyError( int, QString ) ) );
+ connect( operation, SIGNAL( notifyStart( bool, int ) ),
+ this, SLOT( on_operation_notifyStart( bool, int ) ) );
+ connect( operation, SIGNAL( notifyProgress( int ) ),
+ this, SLOT( on_operation_notifyProgress( int ) ) );
+ connect( operation, SIGNAL( notifyFinish() ),
+ this, SLOT( on_operation_notifyFinish()) );
+ connect( operation, SIGNAL( notifyWaiting( bool ) ),
+ this, SLOT( on_operation_notifyWaiting( bool )) );
+
+}
+
+/*
+ * Responds to mCurrentOperation's askForRename signal.
+ * \a srcFile the source file.
+ * \a destFile the new file name.
+ */
+void FmOperationService::on_operation_askForRename( const QString &srcFile, QString *destFile )
+{
+ mOperationResultProcesser->onAskForRename(
+ mCurrentOperation, srcFile, destFile );
+}
+
+/*
+ * Responds to mCurrentOperation's askForReplace signal.
+ * \a srcFile the source file.
+ * \a destFile the target file.
+ * \a isAccepted whether to replace the target file.
+ */
+void FmOperationService::on_operation_askForReplace( const QString &srcFile, const QString &destFile, bool *isAccepted )
+{
+ mOperationResultProcesser->onAskForReplace(
+ mCurrentOperation, srcFile, destFile, isAccepted );
+}
+
+/*
+ * Responds to mCurrentOperation's showNote signal.
+ * \a noteString the note content.
+ */
+void FmOperationService::on_operation_showNote( const char *noteString )
+{
+ mOperationResultProcesser->onShowNote( mCurrentOperation, noteString );
+}
+
+/*
+ * Responds to mCurrentOperation's showNote signal.
+ * \a noteString the note content.
+ */
+void FmOperationService::on_operation_notifyWaiting( bool cancelable )
+{
+ mOperationResultProcesser->onNotifyWaiting(
+ mCurrentOperation, cancelable );
+ emit notifyWaiting( mCurrentOperation, cancelable );
+}
+
+/*
+ * Responds to mCurrentOperation's notifyPreparing signal.
+ * \a cancelable indicates whether the progress bar could be cancelled.
+ */
+void FmOperationService::on_operation_notifyPreparing( bool cancelable )
+{
+ mOperationResultProcesser->onNotifyPreparing(
+ mCurrentOperation, cancelable );
+ emit notifyPreparing( mCurrentOperation, cancelable );
+}
+
+/*
+ * Responds to mCurrentOperation's notifyPreparing signal.
+ * \a cancelable indicates whether the progress bar could be cancelled.
+ * \maxSteps the length of progress bar.
+ */
+void FmOperationService::on_operation_notifyStart( bool cancelable, int maxSteps )
+{
+ mOperationResultProcesser->onNotifyStart(
+ mCurrentOperation, cancelable, maxSteps );
+ emit notifyStart( mCurrentOperation, cancelable, maxSteps );
+}
+
+/*
+ * Responds to mCurrentOperation's notifyPreparing signal.
+ * \a currentStep indicates the current length of progress bar.
+ */
+void FmOperationService::on_operation_notifyProgress( int currentStep )
+{
+ mOperationResultProcesser->onNotifyProgress(
+ mCurrentOperation, currentStep );
+ emit notifyProgress( mCurrentOperation, currentStep );
+}
+
+/*
+ * Responds to mCurrentOperation's notifyFinish signal, indicate the
+ * progress is over.
+ */
+void FmOperationService::on_operation_notifyFinish()
+{
+ mOperationResultProcesser->onNotifyFinish( mCurrentOperation );
+ emit notifyFinish( mCurrentOperation );
+ resetOperation();
+}
+
+/*
+ * Responds to mCurrentOperation's notifyError signal.
+ * \a error error id.
+ * \a errString the error string.
+ */
+void FmOperationService::on_operation_notifyError(int error, QString errString )
+{
+ mOperationResultProcesser->onNotifyError(
+ mCurrentOperation, error, errString );
+ emit notifyError( mCurrentOperation, error, errString );
+ resetOperation();
+}
+
+/*
+ * Responds to mCurrentOperation's driveSpaceChanged
+ */
+void FmOperationService::on_operation_driveSpaceChanged()
+{
+ emit driveSpaceChanged( mCurrentOperation );
+}
+
+/*
+ * Responds to mBackupRestoreHandler's notifyPreparing
+ * \a cancelable indicates whether it could be cancelled.
+ */
+void FmOperationService::on_backupRestore_notifyPreparing( bool cancelable )
+{
+ mOperationResultProcesser->onNotifyPreparing(
+ mCurrentOperation, cancelable );
+ emit notifyPreparing( mCurrentOperation, cancelable );
+}
+
+/*
+ * Responds to mBackupRestoreHandler's notifyStart
+ * \a cancelable indicates whether it could be cancelled.
+ * \a maxSteps the lenth of progress bar.
+ */
+void FmOperationService::on_backupRestore_notifyStart( bool cancelable, int maxSteps )
+{
+ mOperationResultProcesser->onNotifyStart(
+ mCurrentOperation, cancelable, maxSteps );
+ emit notifyStart( mCurrentOperation, cancelable, maxSteps );
+}
+
+/*
+ * Responds to mBackupRestoreHandler's notifyProgress
+ * \a currentStep the current progress bar's step.
+ */
+void FmOperationService::on_backupRestore_notifyProgress( int currentStep )
+{
+ mOperationResultProcesser->onNotifyProgress(
+ mCurrentOperation, currentStep );
+ emit notifyProgress( mCurrentOperation, currentStep );
+}
+
+/*
+ * Responds to mBackupRestoreHandler's notifyFinish
+ */
+void FmOperationService::on_backupRestore_notifyFinish()
+{
+ mOperationResultProcesser->onNotifyFinish( mCurrentOperation );
+ emit notifyFinish( mCurrentOperation );
+ resetOperation();
+}
+
+/*
+ * Responds to mBackupRestoreHandler's notifyError
+ * \a error the error id.
+ * \a errString the error string.
+ */
+void FmOperationService::on_backupRestore_notifyError(int error, const QString &errString )
+{
+ mOperationResultProcesser->onNotifyError(
+ mCurrentOperation, error, errString );
+ emit notifyError( mCurrentOperation, error, errString );
+ resetOperation();
+}
+
+/*
+ * Responds to mBackupRestoreHandler's notifyCanceled
+ */
+void FmOperationService::on_backupRestore_notifyCanceled()
+{
+ mOperationResultProcesser->onNotifyError(
+ mCurrentOperation, FmErrCancel, QString() );
+ emit notifyError( mCurrentOperation, FmErrCancel, QString() );
+ resetOperation();
+}
+
+///
+/////////////////////////////////////////////////////
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationservice.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,135 @@
+/*
+ * 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 "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:
+ * The header file of the operation service of file manager
+ */
+
+#ifndef FMOPERATIONSERVICE_H
+#define FMOPERATIONSERVICE_H
+#include <QObject>
+#include "fmutils.h"
+#include "fmcommon.h"
+
+#include <QString>
+#include <QStringList>
+
+class FmOperationThread;
+class FmOperationFormat;
+class FmOperationBase;
+
+class FmBackupRestoreHandler;
+class FmDriveDetailsSize;
+class FmOperationResultProcesser;
+
+class FmOperationService : public QObject
+{
+ Q_OBJECT
+public:
+
+ enum TOperationType
+ {
+ EOperationTypeNone,
+ EOperationTypeCopy,
+ EOperationTypeRemove,
+ EOperationTypeMove,
+ EOperationTypeFormat,
+ EOperationTypeBackup,
+ EOperationTypeRestore,
+ EOperationTypeDriveDetails,
+ EOperationTypeFolderDetails
+ };
+
+public:
+ explicit FmOperationService( QObject *parent );
+ ~FmOperationService();
+
+ //return error if any path exist.
+ //renturn error if list count is not as the same the other.
+ int asyncCopy( const QStringList &sourceList, const QString &targetPath );
+
+ int asyncMove( const QStringList &sourceList, const QString &targetPath );
+
+ int asyncRemove( const QStringList &pathList );
+
+ //return error if can not be format.
+ //notify error while format error.
+ int asyncFormat( const QString &driverName );
+ int asyncViewDriveDetails( const QString &driverName );
+ int asyncViewFolderDetails( const QString &folderPath );
+ int asyncBackup();
+ int asyncRestore( quint64 selection );
+
+ void cancelOperation();
+
+
+ int syncSetVolume( const QString &driverName, const QString &volume );
+ int syncSetdDriverPassword( const QString &driverName,
+ const QString &oldPassword, const QString &newPassword );
+ int syncRename( const QString &oldPath, const QString &newName );
+ int syncLaunchFileOpen( const QString &filePath );
+ int syncDeleteBackup( quint64 selection );
+
+ FmBackupRestoreHandler *backupRestoreHandler();
+ bool isRunning();
+
+public slots:
+ void on_backupRestore_notifyPreparing( bool cancelable );
+ void on_backupRestore_notifyStart( bool cancelable, int maxSteps );
+ void on_backupRestore_notifyProgress( int currentStep );
+ void on_backupRestore_notifyFinish();
+ void on_backupRestore_notifyError(int error, const QString &errString );
+ void on_backupRestore_notifyCanceled();
+ void on_operation_askForRename( const QString &srcFile, QString *destFile );
+ void on_operation_askForReplace( const QString &srcFile, const QString &destFile, bool *isAccepted );
+ void on_operation_showNote( const char *noteString );
+ void on_operation_notifyWaiting( bool cancelable );
+ void on_operation_notifyPreparing( bool cancelable );
+ void on_operation_notifyStart( bool cancelable, int maxSteps );
+ void on_operation_notifyProgress( int currentStep );
+ void on_operation_notifyFinish();
+ void on_operation_notifyError(int error, QString errString );
+ void on_operation_driveSpaceChanged();
+
+signals:
+
+ void driveSpaceChanged( FmOperationBase* operationBase );
+
+ void notifyWaiting( FmOperationBase* operationBase, bool cancelable );
+ void notifyPreparing( FmOperationBase* operationBase, bool cancelable ); // this step could not be used if not needed.
+ void notifyStart( FmOperationBase* operationBase, bool cancelable, int maxSteps );
+ void notifyProgress( FmOperationBase* operationBase, int currentStep );
+
+ void notifyFinish( FmOperationBase* operationBase );
+ void notifyError( FmOperationBase* operationBase, int error, QString errString );
+ void notifyCanceled( FmOperationBase* operationBase );
+
+private:
+ void resetOperation();
+ void connectSignalsAndSlots( FmOperationBase *operation );
+
+private:
+ FmOperationThread *mThread;
+ FmBackupRestoreHandler *mBackupRestoreHandler;
+ FmOperationBase* mCurrentOperation;
+ FmOperationResultProcesser *mOperationResultProcesser;
+
+};
+
+
+
+
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationthread.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,75 @@
+/*
+* 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 "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:
+* The source file of the operation thread of file manager
+*
+*/
+
+#include "fmoperationthread.h"
+#include "fmbackuprestorehandler.h"
+
+#include <QDir>
+#include <QStack>
+
+/*
+ * Constructs the operation thread with \a parent.
+ */
+FmOperationThread::FmOperationThread( QObject *parent ) : QThread( parent ),
+ mStop( false), mOperationBase( 0 )
+{
+ setPriority( LowestPriority );
+}
+
+/*
+ * Destructs the operation thread.
+ */
+FmOperationThread::~FmOperationThread()
+{
+}
+
+/*
+ * Prepare some conditions before starts the operation.
+ * Returns the error id.
+ * \a operationBase the operation to be prepared.
+ */
+int FmOperationThread::prepareOperationAndStart( FmOperationBase* operationBase )
+{
+ if ( isRunning() ) {
+ return FmErrAlreadyStarted;
+ }
+ mOperationBase = operationBase;
+ int ret = mOperationBase->prepare();
+ if ( ret == FmErrNone ) {
+ mStop = false;
+ start();
+ }
+ return ret;
+}
+
+/* Stops the current thread.
+ * Caused by user interaction.
+ */
+void FmOperationThread::stop()
+{
+ mStop = true;
+}
+
+/*
+ * reimp
+ */
+void FmOperationThread::run()
+{
+ mOperationBase->start( &mStop );
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationthread.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,48 @@
+/*
+* 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 "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:
+* The header file of the operation thread of file manager
+*
+*/
+
+#ifndef FMOPERATIONTHREAD_H
+#define FMOPERATIONTHREAD_H
+
+#include "fmoperationbase.h"
+#include "fmcommon.h"
+
+#include <QString>
+#include <QStringList>
+
+#include <QThread>
+
+class FmOperationThread : public QThread
+{
+ Q_OBJECT
+public:
+ FmOperationThread( QObject *parent );
+ ~FmOperationThread();
+ int prepareOperationAndStart( FmOperationBase* operationBase );
+ void stop();
+
+protected:
+ void run();
+
+private:
+ volatile bool mStop;
+ FmOperationBase* mOperationBase;
+ QString mErrString;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationviewdetails.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,143 @@
+/*
+* 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 "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:
+* The source file of the operation param of file manager
+*
+*/
+
+#include "fmoperationviewdetails.h"
+#include "fmdrivedetailstype.h"
+#include <QtAlgorithms>
+
+/*
+ * Constructs one view drive details operation with
+ * \a parent parent.
+ * \a driverName the drive name.
+ */
+FmOperationDriveDetails::FmOperationDriveDetails( QObject *parent, const QString &driverName ) :
+ FmOperationBase( parent, FmOperationService::EOperationTypeDriveDetails ),
+ mDriverName( driverName ), mStop( 0 )
+{
+}
+
+/*
+ * Destructs the operation.
+ */
+FmOperationDriveDetails::~FmOperationDriveDetails()
+{
+ qDeleteAll(mDetailsSizeList);
+}
+
+/*
+ * Returns the drive name.
+ */
+QString FmOperationDriveDetails::driverName()
+{
+ return mDriverName;
+}
+
+/*
+ * reimp.
+ */
+void FmOperationDriveDetails::start( volatile bool *isStopped )
+{
+ mStop = isStopped;
+ emit notifyWaiting( true );
+ //FmOperationDriveDetails *operationDriverDetails = static_cast<FmOperationDriveDetails*>( mOperationBase );
+ int ret = FmDriveDetailsContent::querySizeofContent( driverName(), detailsSizeList(), mStop );
+ if( ret == FmErrNone ) {
+ emit notifyFinish();
+ } else {
+ emit notifyError( ret, QString() );
+ }
+}
+
+/*
+ * Returns detail items size list.
+ */
+QList<FmDriveDetailsSize*> &FmOperationDriveDetails::detailsSizeList()
+{
+ return mDetailsSizeList;
+}
+
+/*
+ * Constructs one view folder details operation with
+ * \a parent parent.
+ * \a driverName the drive name.
+ */
+FmOperationFolderDetails::FmOperationFolderDetails( QObject *parent, const QString &folderPath ) :
+ FmOperationBase( parent, FmOperationService::EOperationTypeFolderDetails ),
+ mFolderPath( folderPath ),
+ mNumofSubFolders( 0 ),
+ mNumofFiles( 0 ),
+ mSizeofFolder( 0 )
+
+{
+}
+
+/*
+ * Destructs the operation.
+ */
+FmOperationFolderDetails::~FmOperationFolderDetails()
+{
+
+}
+
+/*
+ * Returns the folder path.
+ */
+QString FmOperationFolderDetails::folderPath()
+{
+ return mFolderPath;
+}
+
+/*
+ * Returns the number of sub folders.
+ */
+int &FmOperationFolderDetails::numofSubFolders()
+{
+ return mNumofSubFolders;
+}
+
+/*
+ * Returns the number of files
+ */
+int &FmOperationFolderDetails::numofFiles()
+{
+ return mNumofFiles;
+}
+
+/*
+ * Returns the size of folder.
+ */
+quint64 &FmOperationFolderDetails::sizeofFolder()
+{
+ return mSizeofFolder;
+}
+
+/*
+ * Reimp.
+ */
+void FmOperationFolderDetails::start( volatile bool *isStopped )
+{
+ mStop = isStopped;
+ emit notifyWaiting( true );
+ int ret = FmFolderDetails::getNumofSubfolders( folderPath(), numofSubFolders(),
+ numofFiles(), sizeofFolder(), mStop );
+ if( ret == FmErrNone ) {
+ emit notifyFinish();
+ } else {
+ emit notifyError( ret, QString() );
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/operationservice/fmoperationviewdetails.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,64 @@
+/*
+* 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 "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:
+* The header file of the operation param of file manager
+*
+*/
+
+#ifndef FMOPERATIONVIEWDETAILS_H
+#define FMOPERATIONVIEWDETAILS_H
+
+#include "fmoperationservice.h"
+#include "fmoperationbase.h"
+
+#include <QObject>
+#include <QString>
+
+class FmOperationDriveDetails : public FmOperationBase
+{
+public:
+ explicit FmOperationDriveDetails( QObject *parent, const QString &driverName );
+
+ virtual ~FmOperationDriveDetails();
+ QString driverName();
+ virtual void start( volatile bool *isStopped );
+ QList<FmDriveDetailsSize*> &detailsSizeList();
+
+private:
+ QString mDriverName;
+ QList<FmDriveDetailsSize*> mDetailsSizeList;
+ volatile bool *mStop;
+};
+
+class FmOperationFolderDetails : public FmOperationBase
+{
+public:
+ explicit FmOperationFolderDetails( QObject *parent, const QString &folderPath );
+
+ virtual ~FmOperationFolderDetails();
+ virtual void start( volatile bool *isStopped );
+
+ QString folderPath();
+ int &numofSubFolders();
+ int &numofFiles();
+ quint64 &sizeofFolder();
+
+private:
+ QString mFolderPath;
+ int mNumofSubFolders;
+ int mNumofFiles;
+ quint64 mSizeofFolder;
+ volatile bool *mStop;
+};
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/bwins/fmbkupengineu.def Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,37 @@
+EXPORTS
+ ?Category@CMMCScBkupArchiveInfo@@QBE?AV?$TBitFlagsT@K@@XZ @ 1 NONAME ; class TBitFlagsT<unsigned long> CMMCScBkupArchiveInfo::Category(void) const
+ ?CancelOperation@CMMCScBkupEngine@@QAEXXZ @ 2 NONAME ; void CMMCScBkupEngine::CancelOperation(void)
+ ?PackageTransferType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TPackageDataType@conn@@XZ @ 3 NONAME ; enum conn::TPackageDataType CMMCScBkupOpParamsRestoreFull::PackageTransferType(void) const
+ ?PassiveTransferType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TTransferDataType@conn@@XZ @ 4 NONAME ; enum conn::TTransferDataType CMMCScBkupOpParamsRestoreFull::PassiveTransferType(void) const
+ ??1CMMCScBkupEngine@@UAE@XZ @ 5 NONAME ; CMMCScBkupEngine::~CMMCScBkupEngine(void)
+ ?NewL@CMMCScBkupEngine@@SAPAV1@AAVRFs@@@Z @ 6 NONAME ; class CMMCScBkupEngine * CMMCScBkupEngine::NewL(class RFs &)
+ ?TotalOperationSizeL@CMMCScBkupEngine@@QBE_JXZ @ 7 NONAME ; long long CMMCScBkupEngine::TotalOperationSizeL(void) const
+ ?StartOperationL@CMMCScBkupEngine@@QAEXW4TMMCScBkupOperationType@@AAVMMMCScBkupEngineObserver@@PAVCMMCScBkupOpParamsBase@@@Z @ 8 NONAME ; void CMMCScBkupEngine::StartOperationL(enum TMMCScBkupOperationType, class MMMCScBkupEngineObserver &, class CMMCScBkupOpParamsBase *)
+ ?IncrementType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TBackupIncType@conn@@XZ @ 9 NONAME ; enum conn::TBackupIncType CMMCScBkupOpParamsBackupFull::IncrementType(void) const
+ ?Close@RMMCScBkupArchiveBuf@@QAEXXZ @ 10 NONAME ; void RMMCScBkupArchiveBuf::Close(void)
+ ?PartType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TBURPartType@conn@@XZ @ 11 NONAME ; enum conn::TBURPartType CMMCScBkupOpParamsRestoreFull::PartType(void) const
+ ??1CMMCScBkupOpParamsRestoreFull@@UAE@XZ @ 12 NONAME ; CMMCScBkupOpParamsRestoreFull::~CMMCScBkupOpParamsRestoreFull(void)
+ ?NewL@CMMCScBkupOpParamsRestoreFull@@SAPAV1@PAV?$CArrayFixFlat@VTBkupDrivesAndOperation@@@@V?$TBitFlagsT@K@@@Z @ 13 NONAME ; class CMMCScBkupOpParamsRestoreFull * CMMCScBkupOpParamsRestoreFull::NewL(class CArrayFixFlat<class TBkupDrivesAndOperation> *, class TBitFlagsT<unsigned long>)
+ ?ActiveTransferType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TTransferDataType@conn@@XZ @ 14 NONAME ; enum conn::TTransferDataType CMMCScBkupOpParamsRestoreFull::ActiveTransferType(void) const
+ ?ListArchivesL@CMMCScBkupEngine@@QBEXAAV?$RPointerArray@VCMMCScBkupArchiveInfo@@@@PAVCMMCScBkupOpParamsBase@@KH@Z @ 15 NONAME ; void CMMCScBkupEngine::ListArchivesL(class RPointerArray<class CMMCScBkupArchiveInfo> &, class CMMCScBkupOpParamsBase *, unsigned long, int) const
+ ?ActiveTransferType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TTransferDataType@conn@@XZ @ 16 NONAME ; enum conn::TTransferDataType CMMCScBkupOpParamsBackupFull::ActiveTransferType(void) const
+ ?NewL@CMMCScBkupDriveAndOperationTypeManager@@SAPAV1@PAV?$CArrayFixFlat@VTBkupDrivesAndOperation@@@@@Z @ 17 NONAME ; class CMMCScBkupDriveAndOperationTypeManager * CMMCScBkupDriveAndOperationTypeManager::NewL(class CArrayFixFlat<class TBkupDrivesAndOperation> *)
+ ?AssociatedOpType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TMMCScBkupOperationType@@XZ @ 18 NONAME ; enum TMMCScBkupOperationType CMMCScBkupOpParamsRestoreFull::AssociatedOpType(void) const
+ ?SetArchiveInfosL@CMMCScBkupOpParamsBase@@QAEXAAV?$RPointerArray@VCMMCScBkupArchiveInfo@@@@@Z @ 19 NONAME ; void CMMCScBkupOpParamsBase::SetArchiveInfosL(class RPointerArray<class CMMCScBkupArchiveInfo> &)
+ ?IncrementType@CMMCScBkupOpParamsRestoreFull@@UBE?AW4TBackupIncType@conn@@XZ @ 20 NONAME ; enum conn::TBackupIncType CMMCScBkupOpParamsRestoreFull::IncrementType(void) const
+ ??1CMMCScBkupOpParamsBackupFull@@UAE@XZ @ 21 NONAME ; CMMCScBkupOpParamsBackupFull::~CMMCScBkupOpParamsBackupFull(void)
+ ?PackageTransferType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TPackageDataType@conn@@XZ @ 22 NONAME ; enum conn::TPackageDataType CMMCScBkupOpParamsBackupFull::PackageTransferType(void) const
+ ?PartType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TBURPartType@conn@@XZ @ 23 NONAME ; enum conn::TBURPartType CMMCScBkupOpParamsBackupFull::PartType(void) const
+ ??1CMMCScBkupDriveAndOperationTypeManager@@UAE@XZ @ 24 NONAME ; CMMCScBkupDriveAndOperationTypeManager::~CMMCScBkupDriveAndOperationTypeManager(void)
+ ?DriveAndOperations@CMMCScBkupOpParamsBase@@QBEABVCMMCScBkupDriveAndOperationTypeManager@@XZ @ 25 NONAME ; class CMMCScBkupDriveAndOperationTypeManager const & CMMCScBkupOpParamsBase::DriveAndOperations(void) const
+ ?ValidArchiveForRestore@CMMCScBkupEngine@@QAEHABVTDesC16@@@Z @ 26 NONAME ; int CMMCScBkupEngine::ValidArchiveForRestore(class TDesC16 const &)
+ ?FileName@CMMCScBkupArchiveInfo@@QBEABVTDesC16@@XZ @ 27 NONAME ; class TDesC16 const & CMMCScBkupArchiveInfo::FileName(void) const
+ ?NewL@CMMCScBkupOpParamsBackupFull@@SAPAV1@PAV?$CArrayFixFlat@VTBkupDrivesAndOperation@@@@PAV?$RPointerArray@VCBkupCategory@@@@W4TDriveNumber@@V?$TBitFlagsT@K@@@Z @ 28 NONAME ; class CMMCScBkupOpParamsBackupFull * CMMCScBkupOpParamsBackupFull::NewL(class CArrayFixFlat<class TBkupDrivesAndOperation> *, class RPointerArray<class CBkupCategory> *, enum TDriveNumber, class TBitFlagsT<unsigned long>)
+ ?PassiveTransferType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TTransferDataType@conn@@XZ @ 29 NONAME ; enum conn::TTransferDataType CMMCScBkupOpParamsBackupFull::PassiveTransferType(void) const
+ ?DateTime@CMMCScBkupArchiveInfo@@QBEABVTTime@@XZ @ 30 NONAME ; class TTime const & CMMCScBkupArchiveInfo::DateTime(void) const
+ ??1CMMCScBkupOpParamsBase@@UAE@XZ @ 31 NONAME ; CMMCScBkupOpParamsBase::~CMMCScBkupOpParamsBase(void)
+ ?AssociatedOpType@CMMCScBkupOpParamsBackupFull@@UBE?AW4TMMCScBkupOperationType@@XZ @ 32 NONAME ; enum TMMCScBkupOperationType CMMCScBkupOpParamsBackupFull::AssociatedOpType(void) const
+ ?Drive@CMMCScBkupArchiveInfo@@QBE?AW4TDriveNumber@@XZ @ 33 NONAME ; enum TDriveNumber CMMCScBkupArchiveInfo::Drive(void) const
+ ?RebootRequired@CMMCScBkupEngine@@QBEHXZ @ 34 NONAME ; int CMMCScBkupEngine::RebootRequired(void) const
+ ?DeleteArchivesL@CMMCScBkupEngine@@QBEHAAV?$RPointerArray@VCMMCScBkupArchiveInfo@@@@@Z @ 35 NONAME ; int CMMCScBkupEngine::DeleteArchivesL(class RPointerArray<class CMMCScBkupArchiveInfo> &) const
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/eabi/fmbkupengineu.def Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,53 @@
+EXPORTS
+ _ZN16CMMCScBkupEngine15CancelOperationEv @ 1 NONAME
+ _ZN16CMMCScBkupEngine15StartOperationLE23TMMCScBkupOperationTypeR24MMMCScBkupEngineObserverP22CMMCScBkupOpParamsBase @ 2 NONAME
+ _ZN16CMMCScBkupEngine22ValidArchiveForRestoreERK7TDesC16 @ 3 NONAME
+ _ZN16CMMCScBkupEngine4NewLER3RFs @ 4 NONAME
+ _ZN16CMMCScBkupEngineD0Ev @ 5 NONAME
+ _ZN16CMMCScBkupEngineD1Ev @ 6 NONAME
+ _ZN16CMMCScBkupEngineD2Ev @ 7 NONAME
+ _ZN20RMMCScBkupArchiveBuf5CloseEv @ 8 NONAME
+ _ZN22CMMCScBkupOpParamsBase16SetArchiveInfosLER13RPointerArrayI21CMMCScBkupArchiveInfoE @ 9 NONAME
+ _ZN22CMMCScBkupOpParamsBaseD0Ev @ 10 NONAME
+ _ZN22CMMCScBkupOpParamsBaseD1Ev @ 11 NONAME
+ _ZN22CMMCScBkupOpParamsBaseD2Ev @ 12 NONAME
+ _ZN28CMMCScBkupOpParamsBackupFull4NewLEP13CArrayFixFlatI23TBkupDrivesAndOperationEP13RPointerArrayI13CBkupCategoryE12TDriveNumber10TBitFlagsTImE @ 13 NONAME
+ _ZN28CMMCScBkupOpParamsBackupFullD0Ev @ 14 NONAME
+ _ZN28CMMCScBkupOpParamsBackupFullD1Ev @ 15 NONAME
+ _ZN28CMMCScBkupOpParamsBackupFullD2Ev @ 16 NONAME
+ _ZN29CMMCScBkupOpParamsRestoreFull4NewLEP13CArrayFixFlatI23TBkupDrivesAndOperationE10TBitFlagsTImE @ 17 NONAME
+ _ZN29CMMCScBkupOpParamsRestoreFullD0Ev @ 18 NONAME
+ _ZN29CMMCScBkupOpParamsRestoreFullD1Ev @ 19 NONAME
+ _ZN29CMMCScBkupOpParamsRestoreFullD2Ev @ 20 NONAME
+ _ZN38CMMCScBkupDriveAndOperationTypeManager4NewLEP13CArrayFixFlatI23TBkupDrivesAndOperationE @ 21 NONAME
+ _ZN38CMMCScBkupDriveAndOperationTypeManagerD0Ev @ 22 NONAME
+ _ZN38CMMCScBkupDriveAndOperationTypeManagerD1Ev @ 23 NONAME
+ _ZN38CMMCScBkupDriveAndOperationTypeManagerD2Ev @ 24 NONAME
+ _ZNK16CMMCScBkupEngine13ListArchivesLER13RPointerArrayI21CMMCScBkupArchiveInfoEP22CMMCScBkupOpParamsBasemi @ 25 NONAME
+ _ZNK16CMMCScBkupEngine14RebootRequiredEv @ 26 NONAME
+ _ZNK16CMMCScBkupEngine19TotalOperationSizeLEv @ 27 NONAME
+ _ZNK21CMMCScBkupArchiveInfo5DriveEv @ 28 NONAME
+ _ZNK21CMMCScBkupArchiveInfo8CategoryEv @ 29 NONAME
+ _ZNK21CMMCScBkupArchiveInfo8DateTimeEv @ 30 NONAME
+ _ZNK21CMMCScBkupArchiveInfo8FileNameEv @ 31 NONAME
+ _ZNK22CMMCScBkupOpParamsBase18DriveAndOperationsEv @ 32 NONAME
+ _ZNK28CMMCScBkupOpParamsBackupFull13IncrementTypeEv @ 33 NONAME
+ _ZNK28CMMCScBkupOpParamsBackupFull16AssociatedOpTypeEv @ 34 NONAME
+ _ZNK28CMMCScBkupOpParamsBackupFull18ActiveTransferTypeEv @ 35 NONAME
+ _ZNK28CMMCScBkupOpParamsBackupFull19PackageTransferTypeEv @ 36 NONAME
+ _ZNK28CMMCScBkupOpParamsBackupFull19PassiveTransferTypeEv @ 37 NONAME
+ _ZNK28CMMCScBkupOpParamsBackupFull8PartTypeEv @ 38 NONAME
+ _ZNK29CMMCScBkupOpParamsRestoreFull13IncrementTypeEv @ 39 NONAME
+ _ZNK29CMMCScBkupOpParamsRestoreFull16AssociatedOpTypeEv @ 40 NONAME
+ _ZNK29CMMCScBkupOpParamsRestoreFull18ActiveTransferTypeEv @ 41 NONAME
+ _ZNK29CMMCScBkupOpParamsRestoreFull19PackageTransferTypeEv @ 42 NONAME
+ _ZNK29CMMCScBkupOpParamsRestoreFull19PassiveTransferTypeEv @ 43 NONAME
+ _ZNK29CMMCScBkupOpParamsRestoreFull8PartTypeEv @ 44 NONAME
+ _ZTI22CMMCScBkupDataStrategy @ 45 NONAME
+ _ZTI37CMMCScBkupStateRequestSizeOfDataOwner @ 46 NONAME
+ _ZTI44CMMCScBkupStateRequestSpecificPublicFileInfo @ 47 NONAME
+ _ZTV22CMMCScBkupDataStrategy @ 48 NONAME
+ _ZTV37CMMCScBkupStateRequestSizeOfDataOwner @ 49 NONAME
+ _ZTV44CMMCScBkupStateRequestSpecificPublicFileInfo @ 50 NONAME
+ _ZNK16CMMCScBkupEngine15DeleteArchivesLER13RPointerArrayI21CMMCScBkupArchiveInfoE @ 51 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/group/bld.inf Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2005 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: bld file
+*
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_MMPFILES
+
+fmbkupengine.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/group/fmbkupengine.mmh Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2006 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 header file for project FileManagerBkupEngine
+*
+*/
+
+SOURCE CMMCScBkupArchive.cpp
+SOURCE CMMCScBkupArchiveDataManager.cpp
+SOURCE CMMCScBkupArchiveFooter.cpp
+SOURCE CMMCScBkupArchiveHeader.cpp
+SOURCE CMMCScBkupArchiveInfo.cpp
+SOURCE CMMCScBkupBufferManagers.cpp
+SOURCE CMMCScBkupDataOwnerCollection.cpp
+SOURCE CMMCScBkupDataOwnerInfo.cpp
+SOURCE CMMCScBkupDataStrategies.cpp
+SOURCE CMMCScBkupDriveSpecificRequest.cpp
+SOURCE CMMCScBkupEngine.cpp
+SOURCE CMMCScBkupEngineImpl.cpp
+SOURCE CMMCScBkupFileInfo.cpp
+SOURCE CMMCScBkupFileListCollection.cpp
+SOURCE CMMCScBkupIndexBase.cpp
+SOURCE CMMCScBkupIndexDataOwners.cpp
+SOURCE CMMCScBkupIndexActiveData.cpp
+SOURCE CMMCScBkupIndexPassiveData.cpp
+SOURCE CMMCScBkupIndexPublicDataFiles.cpp
+SOURCE CMMCScBkupIndexJavaData.cpp
+SOURCE CMMCScBkupIndexSystemData.cpp
+SOURCE CMMCScBkupIndexWithIdentifier.cpp
+SOURCE CMMCScBkupOperationParameters.cpp
+SOURCE CMMCScBkupState.cpp
+SOURCE CMMCScBkupStateArchiveOpActiveData.cpp
+SOURCE CMMCScBkupStateArchiveOpArchiveFooter.cpp
+SOURCE CMMCScBkupStateArchiveOpArchiveHeader.cpp
+SOURCE CMMCScBkupStateArchiveOpDataOwners.cpp
+SOURCE CMMCScBkupStateArchiveOpPassiveData.cpp
+SOURCE CMMCScBkupStateArchiveOpPublicDataFiles.cpp
+SOURCE CMMCScBkupStateArchiveOpSystemData.cpp
+SOURCE CMMCScBkupStateArchiveOpJavaData.cpp
+SOURCE CMMCScBkupStateFactory.cpp
+SOURCE CMMCScBkupStateGetDataOwners.cpp
+SOURCE CMMCScBkupStateGetDataOwnerStatuses.cpp
+SOURCE CMMCScBkupStateOpAware.cpp
+SOURCE CMMCScBkupStateRequestListOfPublicFiles.cpp
+SOURCE CMMCScBkupStateRequestSizeOfBackupData.cpp
+SOURCE CMMCScBkupStateSetPhoneMode.cpp
+SOURCE CMMCScBkupStateNotifyAllSnapshotsSupplied.cpp
+SOURCE CMMCScBkupStateValidateDiskSpace.cpp
+SOURCE CMMCScBkupTransferReadRequest.cpp
+SOURCE CMMCScBkupTransferRequest.cpp
+SOURCE CMMCScBkupTransferWriteRequest.cpp
+SOURCE CMMCScBkupDriveAndOperationTypeManager.cpp
+SOURCE CMMCScBkupDriveDataSizeManager.cpp
+SOURCE MMCScBkupArchiveUtils.cpp
+SOURCE MMCScBkupPhoneModelUtils.cpp
+SOURCE MMCScBkupSBEUtils.cpp
+SOURCE MMCScBkupLogger.cpp
+SOURCE RMMCScBkupArchiveStreams.cpp
+SOURCE RMMCScBkupProgressSizer.cpp
+SOURCE TMMCScBkupArchiveVector.cpp
+SOURCE TMMCScBkupDriveFilter.cpp
+SOURCE TMMCScBkupDriveAndSize.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/group/fmbkupengine.mmp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2006 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 FileManagerBkupEngine
+*
+*/
+
+
+#include <platform_paths.hrh>
+#include "../inc/MMCScBkupDllUids.h"
+MACRO _F32_STRICT_64_BIT_MIGRATION
+
+TARGET fmbkupengine.dll
+TARGETTYPE dll
+UID KEPOCDLLUID2 KMMCAppEngUID3
+VENDORID VID_DEFAULT
+CAPABILITY CAP_GENERAL_DLL DiskAdmin AllFiles PowerMgmt
+
+SOURCEPATH ../src
+#include "fmbkupengine.mmh"
+
+USERINCLUDE ../inc
+
+APP_LAYER_SYSTEMINCLUDE
+//SYSTEMINCLUDE /epoc32/include/connect
+
+LIBRARY sbeclient.lib
+LIBRARY euser.lib
+LIBRARY ezlib.lib
+LIBRARY bafl.lib
+LIBRARY efsrv.lib
+LIBRARY sysutil.lib
+LIBRARY commonengine.lib
+LIBRARY featmgr.lib
+LIBRARY estor.lib
+LIBRARY centralrepository.lib
+LIBRARY platformenv.lib
+LIBRARY cone.lib
+
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/BKupEngine.rh Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,109 @@
+/*
+* Copyright (c) 2002-2007 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:
+* This file contains declarations for resources.
+* The file can be included only in resource file.
+*
+*
+*/
+
+
+// INCLUDES
+#include <bldvariant.hrh>
+
+// STRUCTURE DEFINITIONS
+
+// ---------------------------------------------------------
+// BACKUPITEM
+// Defines a file or folder to be backed up
+// Note! Remember to use a trailing backslash!
+// ---------------------------------------------------------
+//
+STRUCT BACKUPITEM
+ {
+ LTEXT item_path;
+ WORD item_flags;
+ }
+
+
+
+// ---------------------------------------------------------
+// MMC_SECURE_BACKUP_DRIVE_LIST
+//
+// Defines an array of drive numbers, starting at 0
+// (EDriveA), to a maximum of 25 (EDriveZ)
+// which are included in a backup/restore to/from MMC
+// operation
+//
+// See TMMCDriveNumber and TBkupDriveCategory (BkupEngine.hrh)
+// See TMMCScBkupOwnerDataType in TMMCScBkupOwnerDataType.hrh
+// ---------------------------------------------------------
+//
+STRUCT MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
+ {
+ BYTE drive; // See TMMCDriveNumber and TBkupDriveCategory (BkupEngine.hrh)
+ BYTE type; // See TMMCScBkupOwnerDataType (TMMCScBkupOwnerDataType.h)
+ }
+
+
+
+// ---------------------------------------------------------
+// MMC_SECURE_BACKUP_DRIVES_AND_OPERATIONS
+//
+// Defines an array of drive numbers and operations.
+// The drive starts at 0 (EDriveA), to a maximum of 25 (EDriveZ)
+// which are included in a backup/restore to/from MMC
+// operation. Each drive should include a number of associated
+// operations. For example, for drive C:\ we wish to carry
+// out all SBE backup/restore ops. For MMC we wish to only
+// back up & restore package data (Required to ensure that
+// hashes for MMC-based binaries are recreated on C:\ after
+// the internal drive is formatted & a restore is performed).
+//
+// ---------------------------------------------------------
+//
+STRUCT MMC_SECURE_BACKUP_DRIVES_AND_OPERATIONS
+ {
+ LEN BYTE STRUCT drivesAndOperations[]; // SEE MMC_SECURE_BACKUP_DRIVE_AND_OPERATION_TYPE
+ }
+
+// ---------------------------------------------------------
+// BACKUPCATEGORY
+// Defines a category, name for archive and uids,
+// from which backup category consists of
+// ---------------------------------------------------------
+//
+STRUCT BACKUPCATEGORY
+ {
+ LONG category;
+ LTEXT archive_name;
+ LONG special_flags;
+ LONG exclude_special_flags;
+ LONG uids[];
+ LONG exclude_uids[];
+ }
+
+
+// ---------------------------------------------------------
+// BACKUPCATEGORY
+// Defines a category, name for archive and uids,
+// from which backup category consists of
+// ---------------------------------------------------------
+//
+STRUCT BACKUPCATEGORYARRAY
+ {
+ STRUCT backupcategory[];
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/BkupEngine.hrh Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,91 @@
+/*
+* Copyright (c) 2004-2007 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:
+* FileManager / FileManagerBkupEngine constants.
+*
+*/
+
+
+
+#ifndef __BAENGINE_HRH__
+#define __BAENGINE_HRH__
+
+// Partial backup categories bitmask values
+enum MAEngineBackupCategories
+ {
+ EBUCatSettings = 0x1,
+ EBUCatMessages = 0x2,
+ EBUCatContacts = 0x4,
+ EBUCatCalendar = 0x8,
+ EBUCatBookmarks = 0x10,
+ EBUCatUserFiles = 0x20,
+ EBUCatAllInOne = 0x8000000,
+ EBUCatAllSeparately = 0x7FFFFFF
+ // Set as 0xFFFFFFF (EBUCatAllInOne+EBUCatAllSeparately) if archive containing
+ // data from all data owners needs to be created.
+ };
+
+// Bitmask values for special ruling of which category data owner belongs to
+#define EBUCatSpecNone 0x0
+#define EBUCatSpecSystem 0x1
+#define EBUCatSpecJava 0x2
+#define EBUCatSpecPublic 0x4
+#define EBUCatSpecAll 0x8
+
+#ifndef RD_MULTIPLE_DRIVE
+
+// Drive list enumeration - see TDriveNumber
+// (these must match F32's TDriveNumber exactly)
+enum TMMCDriveNumber
+ {
+ EMMCDriveNumberA = 0,
+ EMMCDriveNumberB,
+ EMMCDriveNumberC,
+ EMMCDriveNumberD,
+ EMMCDriveNumberE,
+ EMMCDriveNumberF,
+ EMMCDriveNumberG,
+ EMMCDriveNumberH,
+ EMMCDriveNumberI,
+ EMMCDriveNumberJ,
+ EMMCDriveNumberK,
+ EMMCDriveNumberL,
+ EMMCDriveNumberM,
+ EMMCDriveNumberN,
+ EMMCDriveNumberO,
+ EMMCDriveNumberP,
+ EMMCDriveNumberQ,
+ EMMCDriveNumberR,
+ EMMCDriveNumberS,
+ EMMCDriveNumberT,
+ EMMCDriveNumberU,
+ EMMCDriveNumberV,
+ EMMCDriveNumberW,
+ EMMCDriveNumberX,
+ EMMCDriveNumberY,
+ EMMCDriveNumberZ
+ };
+
+#else // RD_MULTIPLE_DRIVE
+
+// Defines drive caterories for multiple drives to setup backup sources and restore targets
+#define EBkupDeviceMemories 0x1
+#define EBkupInternalMassStorages 0x2
+#define EBkupExternalMassStorages 0x4
+
+#endif // RD_MULTIPLE_DRIVE
+
+#endif // __BAENGINE_HRH__
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupArchive.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,184 @@
+/*
+* Copyright (c) 2005-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: Declaration of CMMCScBkupArchive
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPARCHIVE_H__
+#define __CMMCSCBKUPARCHIVE_H__
+
+// System includes
+#include <f32file.h>
+#include <babitflags.h>
+
+// Classes referenced
+class MMMCScBkupDriver;
+class CMMCScBkupArchiveHeader;
+class CMMCScBkupArchiveFooter;
+class MMMCScBkupProgressObserver;
+class CMMCScBkupArchiveDataManager;
+class MMMCScBkupArchiveDataInterface;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupArchive) : public CBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupArchive* NewL( RFs& aFsSession, MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupDriver& aDriver, TBitFlags aCategory );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupArchive();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupArchive( RFs& aFsSession, MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupDriver& aDriver, TBitFlags aCategory );
+
+ /**
+ *
+ */
+ void ConstructL();
+
+ public: // API
+
+ /**
+ *
+ */
+ void OpenForReadingL(const TDesC& aName);
+
+ /**
+ *
+ */
+ void OpenForWritingL(const TDesC& aName);
+
+ /**
+ *
+ */
+ void RestoreOldArchive();
+
+ /**
+ *
+ */
+ void DeleteOldArchive();
+
+ /**
+ *
+ */
+ void Close( TInt aError );
+
+ /**
+ *
+ */
+ CMMCScBkupArchiveHeader& Header() const;
+
+ /**
+ *
+ */
+ CMMCScBkupArchiveFooter& Footer() const;
+
+ /**
+ *
+ */
+ MMMCScBkupArchiveDataInterface& ADI() const;
+
+ /**
+ *
+ */
+ static TBool ValidArchiveForRestoreL( RFs& aFsSession, const TDesC& aFileName );
+
+ /**
+ *
+ */
+ TBitFlags Category() const { return iCategory; }
+
+ private: // Internal enumerations
+
+ /**
+ *
+ */
+ enum TMode
+ {
+ EModeUninitialised = 0,
+ //
+ EModeReading,
+ EModeWriting
+ };
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ TInt PrepareToOverwrite( const TDesC& aFile );
+
+ /**
+ *
+ */
+ void SetMode(TMode aMode);
+
+ /**
+ *
+ */
+ void PrepareObjectsL();
+
+ /**
+ *
+ */
+ inline TMode Mode() const { return iMode; }
+
+ private: // Member data
+
+ //
+ RFs& iFsSession;
+ //
+ RFile64 iArchiveFile;
+ //
+ MMMCScBkupProgressObserver& iProgressManager;
+ //
+ MMMCScBkupDriver& iDriver;
+ //
+ TMode iMode;
+ //
+ CMMCScBkupArchiveDataManager* iDataManager;
+ //
+ CMMCScBkupArchiveHeader* iHeader;
+ //
+ CMMCScBkupArchiveFooter* iFooter;
+ //
+ HBufC* iArchiveFileName;
+ //
+ HBufC* iOldArchiveFileName;
+ //
+ TBitFlags iCategory;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPARCHIVE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupArchiveDataManager.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,223 @@
+/*
+* Copyright (c) 2005 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: Declaration of CMMCScBkupArchiveDataManager
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPARCHIVEDATAMANAGER_H__
+#define __CMMCSCBKUPARCHIVEDATAMANAGER_H__
+
+// System includes
+#include <f32file.h>
+#include <s32strm.h>
+
+// User includes
+#include "CMMCScBkupBufferManagers.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+#include "TMMCScBkupArchiveVector.h"
+#include "RMMCScBkupArchiveStreams.h"
+#include "MMCScBkupOperations.h"
+#include "MMCScBkupConfig.h"
+
+// Classes referenced
+class CEZCompressor;
+class CEZDecompressor;
+class RMMCScBkupArchiveBuf;
+class MMMCScBkupProgressObserver;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupArchiveDataManager) : public CActive, public MMMCScBkupArchiveDataInterface
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupArchiveDataManager* NewL( RFs& aFsSession, RFile64& aFile, MMMCScBkupProgressObserver& aProgressManager );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupArchiveDataManager();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupArchiveDataManager( RFs& aFsSession, RFile64& aFile, MMMCScBkupProgressObserver& aProgressManager );
+
+ /**
+ *
+ */
+ void ConstructL();
+
+ public: // API
+
+ /**
+ * Leaves on error, returns offset
+ */
+ TInt CurrentOffsetL() const;
+
+ /**
+ * Returns error or offset
+ */
+ TInt CurrentOffset() const;
+
+ private: // For RMMCScBkupArchiveBuf only
+
+ /**
+ *
+ */
+ void SetCurrentVector(const TMMCScBkupArchiveVector& aInfo);
+
+
+ private: // From MMMCScBkupArchiveDataInterface
+ RFs& ADIFsSession() const;
+ RFile64& ADIRawArchiveFile() const;
+ //
+ const TMMCScBkupArchiveVector& ADICurrentArchiveVectorInfo() const;
+ const TMMCScBkupArchiveVector& ADIOverallArchiveVectorInfo() const;
+ //
+ RWriteStream& ADIWriteStreamUncompressedLC( TInt aPos );
+ RReadStream& ADIReadStreamUncompressedLC( TInt aPos );
+ //
+ const TMMCScBkupArchiveVector& ADIWriteL( const TDesC8& aData );
+ const TMMCScBkupArchiveVector& ADIReadL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo );
+ //
+ void ADIWriteFileL( const TDesC& aSourceFileName, TRequestStatus& aObserver );
+ void ADIReadFileL( const TDesC& aDestinationFileName, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus );
+ //
+ void ADIWriteCompressedL( const TDesC8& aData, TRequestStatus& aObserver );
+ void ADIReadDecompressedL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus ) ;
+ //
+ void ADIAsynchronousCancel();
+ void ADIResetResources(TMMCScBkupOperationType aType);
+#ifdef RD_FILE_MANAGER_BACKUP
+ void ADIActivateCrcCalculation(TBool aType) { iCrcCalcActivated = aType; }
+ TUint32 ADIArchiveCrc() { return iCrc; }
+#endif
+
+
+ private: // Internal enumerations
+
+ /**
+ *
+ */
+ enum TOperation
+ {
+ EOperationIdle = 0,
+ EOperationCompressing,
+ EOperationDecompressing
+ };
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ void EnsureCompressorExistsL(MEZBufferManager& aBufferManager);
+
+ /**
+ *
+ */
+ void EnsureDecompressorExistsL(MEZBufferManager& aBufferManager);
+
+ /**
+ *
+ */
+ void SetObserver(TRequestStatus& aStatus);
+
+ /**
+ *
+ */
+ void CompleteSelf(TInt aCompletionCode = KErrNone);
+
+ /**
+ *
+ */
+ void CompleteObserver(TInt aCompletionCode = KErrNone);
+
+ /**
+ *
+ */
+ void SetOperation(TOperation aOperation);
+
+#ifdef RD_FILE_MANAGER_BACKUP
+ /**
+ *
+ */
+ void CalculateCrc( const TAny* aPtr,TInt aLength );
+#endif
+
+
+ private: // From CActive
+ void RunL();
+ void DoCancel();
+ TInt RunError(TInt aError);
+
+ private: // Member data
+
+ // Owned externally:
+ //
+ RFs& iFsSession;
+ //
+ RFile64& iFile;
+ //
+ MMMCScBkupProgressObserver& iProgressManager;
+ //
+ TRequestStatus* iObserverStatus;
+
+ // Owned by this object
+ //
+ TOperation iOperation;
+ //
+ CMMCScBkupBufferManagerBase* iBufferManager;
+ //
+ CEZCompressor* iCompressor;
+ //
+ CEZDecompressor* iDecompressor;
+ //
+ TMMCScBkupArchiveVector iCurrentVectorInfo;
+ //
+ TMMCScBkupArchiveVector iOverallArchiveVectorInfo;
+ //
+ RMMCScBkupArchiveWriteStream iWriteStream;
+ //
+ RMMCScBkupArchiveReadStream iReadStream;
+#ifdef RD_FILE_MANAGER_BACKUP
+ //
+ TBool iCrcCalcActivated;
+ //
+ TUint32 iCrc;
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ TUint32 iTotalTickCount;
+#endif
+#endif // RD_FILE_MANAGER_BACKUP
+
+ friend class RMMCScBkupArchiveBuf;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPARCHIVEDATAMANAGER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupArchiveFooter.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,113 @@
+/*
+* Copyright (c) 2005 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: Declaration of CMMCScBkupArchiveFooter
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPARCHIVEFOOTER_H__
+#define __CMMCSCBKUPARCHIVEFOOTER_H__
+
+// System includes
+#include <e32base.h>
+
+// User includes
+#include "CMMCScBkupIndexBase.h"
+#include "RMMCScBkupPointerArray.h"
+#include "TMMCScBkupDriveAndSize.h"
+
+// Classes referenced
+class MMMCScBkupDriver;
+class MMMCScBkupArchiveDataInterface;
+class CMMCScBkupIndexRegistrationData;
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupArchiveFooter) : public CBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupArchiveFooter* NewL( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupArchiveFooter();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupArchiveFooter( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver );
+
+ /**
+ *
+ */
+ void ConstructL();
+
+ public: // API
+
+ /**
+ *
+ */
+ CMMCScBkupIndexBase& IndexByType( TMMCScBkupOwnerDataType aType );
+
+ /**
+ *
+ */
+ CMMCScBkupIndexBase* IndexByTypeOrNull( TMMCScBkupOwnerDataType aType );
+
+ public: // Store/Restore
+
+ /**
+ *
+ */
+ void StoreL();
+
+ /**
+ *
+ */
+ void RestoreL( TInt aCalculatedFooterOffsetWithinArchive );
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ private: // Member data
+
+ //
+ MMMCScBkupArchiveDataInterface& iDataInterface;
+ //
+ MMMCScBkupDriver& iDriver;
+ //
+ RMMCScBkupPointerArray< CMMCScBkupIndexBase > iIndicies;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPARCHIVEFOOTER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupArchiveHeader.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,152 @@
+/*
+* Copyright (c) 2005 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: Declaration of CMMCScBkupArchiveHeader
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPARCHIVEHEADER_H__
+#define __CMMCSCBKUPARCHIVEHEADER_H__
+
+// System includes
+#include <f32file.h>
+#include <babitflags.h>
+
+// User includes
+#include "MMCScBkupArchiveFlags.h"
+
+// Classes referenced
+class MMMCScBkupDriver;
+class MMMCScBkupArchiveDataInterface;
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupArchiveHeader) : public CBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupArchiveHeader* NewL( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupArchiveHeader();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupArchiveHeader( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver );
+
+ /**
+ *
+ */
+ void ConstructL();
+
+ public: // API
+
+ /**
+ *
+ */
+ void StoreL(TBitFlags aCategory);
+
+ /**
+ *
+ */
+ void RestoreL();
+
+ public: // For Archive Utils
+
+ /**
+ *
+ */
+ inline void SetCheckedUid( const TCheckedUid& aCheckedUid ) { iCheckedUid = aCheckedUid; }
+
+ /**
+ *
+ */
+ inline const TCheckedUid& CheckedUid() const { return iCheckedUid; }
+
+ /**
+ *
+ */
+ inline void SetVersion( const TVersion& aVersion ) { iVersion = aVersion; }
+
+ /**
+ *
+ */
+ inline const TVersion& Version() const { return iVersion; }
+
+ /**
+ *
+ */
+ inline void SetFooterLength( TInt aLength ) { iFooterLength = aLength; }
+
+ /**
+ *
+ */
+ inline TInt FooterLength() const { return iFooterLength; }
+
+ /**
+ *
+ */
+ void SetPhoneModelIdentifierL( const TDesC8& aModel );
+
+ /**
+ *
+ */
+ inline const TDesC8& PhoneModelIdentifier() const { return *iPhoneModelIdentifier; }
+
+ /**
+ *
+ */
+ inline void SetArchiveFlags( TUint32 aFlagsValue ) { iArchiveFlags.SetValue( aFlagsValue ); }
+
+ /**
+ *
+ */
+ inline const TBitFlags32& ArchiveFlags() const { return iArchiveFlags; }
+
+ private: // Member data
+
+ //
+ MMMCScBkupArchiveDataInterface& iDataInterface;
+ //
+ MMMCScBkupDriver& iDriver;
+ //
+ TCheckedUid iCheckedUid;
+ //
+ TVersion iVersion;
+ //
+ TInt iFooterLength;
+ //
+ HBufC8* iPhoneModelIdentifier;
+ //
+ TBitFlags32 iArchiveFlags;
+
+ };
+
+
+
+
+#endif // __CMMCSCBKUPARCHIVEHEADER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupArchiveInfo.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 2005 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: Declaration of CMMCScBkupArchiveInfo
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPARCHIVEINFO_H__
+#define __CMMCSCBKUPARCHIVEINFO_H__
+
+// System includes
+#include <f32file.h>
+#include <babitflags.h>
+#include <barsread.h>
+
+#include "CMMCScBkupFileInfo.h"
+
+/**
+* Class for encapsulating category specific information
+*
+* @since 3.2
+*/
+NONSHARABLE_CLASS(CMMCScBkupArchiveInfo) : public CBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupArchiveInfo* NewL( TResourceReader& aReader );
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupArchiveInfo* NewL( const TEntry& aEntry );
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupArchiveInfo* NewLC( const TEntry& aEntry );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupArchiveInfo();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupArchiveInfo();
+
+ /**
+ * C++ default constructor
+ */
+ //CMMCScBkupArchiveInfo( const TEntry& aEntry );
+
+ /**
+ *
+ */
+ void ConstructL( const TEntry& aEntry );
+
+ public: // API - Setters
+
+ /**
+ *
+ */
+ void SetTargetDrive( TDriveUnit aDrive ) { iTargetDrive = aDrive; }
+
+ /**
+ *
+ */
+ void SetCategory(TBitFlags aCategories) { iCategory = aCategories; }
+
+ /**
+ *
+ */
+ void SetSpecialFlags(TBitFlags aFlags) { iSpecialFlags = aFlags; }
+
+ /**
+ *
+ */
+ void SetExcludedSpecialFlags(TBitFlags aFlags) { iExcludedSpecialFlags = aFlags; }
+
+ /**
+ *
+ */
+ void SetSIDs( RArray<TSecureId>& aSIDs );
+
+ /**
+ *
+ */
+ void SetExcludedSIDs( RArray<TSecureId>& aExcludedSIDs );
+
+ public: // API - Getters
+
+ /**
+ *
+ */
+ IMPORT_C TBitFlags Category() const;
+
+ /**
+ *
+ */
+ IMPORT_C const TDesC& FileName() const;
+
+ /**
+ *
+ */
+ IMPORT_C const TTime& DateTime() const;
+
+ /**
+ *
+ */
+ IMPORT_C TDriveNumber Drive() const;
+
+ /**
+ *
+ */
+ TBitFlags SpecialFlags() const { return iSpecialFlags; }
+
+ /**
+ *
+ */
+ TBitFlags ExcludedSpecialFlags() const { return iExcludedSpecialFlags; }
+
+ /**
+ *
+ */
+ const RArray<TSecureId>& SIDs( TBitFlags aCategory ) const;
+
+ /**
+ *
+ */
+ const RArray<TSecureId>& ExcludedSIDs( TBitFlags aCategory ) const;
+
+ private: // Member data
+
+ //
+ TDriveUnit iTargetDrive;
+ //
+ TBitFlags iCategory;
+ //
+ TBitFlags iSpecialFlags;
+ //
+ TBitFlags iExcludedSpecialFlags;
+ //
+ CMMCScBkupFileInfo* iFileInfo;
+ //
+ RArray<TSecureId> iSecureIds;
+ //
+ RArray<TSecureId> iExcludedSecureIds;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPARCHIVEINFO_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupBufferManagers.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,428 @@
+/*
+* Copyright (c) 2005 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: Declaration of CMMCScBkupBufferManagerBase
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPBUFFERMANAGERS_H__
+#define __CMMCSCBKUPBUFFERMANAGERS_H__
+
+// User includes
+#include <e32std.h>
+#include <e32cmn.h>
+#include <f32file.h>
+#include <ezbufman.h>
+
+// User includes
+#include "TMMCScBkupArchiveVector.h"
+
+// Classes referenced
+class MMMCScBkupArchiveDataInterface;
+class CMMCScBkupDataStrategy;
+class MMMCScBkupProgressObserver;
+
+// Constants
+const TInt KScBkupDefaultBufferSize = 0x4000;
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupBufferManagerBase) : public CBase, public MEZBufferManager
+ {
+ public: // Enumerations
+
+ /**
+ *
+ */
+ enum TType
+ {
+ ETypeDescriptorToArchive = 0,
+ ETypeFileToArchive,
+ ETypeArchiveToDescriptor,
+ ETypeArchiveToFile
+ };
+
+ public: // Construct / destruct
+
+ /**
+ *
+ */
+ static CMMCScBkupBufferManagerBase* NewByTypeL( TType aType, MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI, TAny* aParam1 = NULL, TAny* aParam2 = NULL );
+
+ /**
+ *
+ */
+ ~CMMCScBkupBufferManagerBase();
+
+ protected: // Internal construct
+
+ /**
+ *
+ */
+ CMMCScBkupBufferManagerBase( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI, TType aType );
+
+ /**
+ *
+ */
+ virtual void ConstructL( TInt aBufferSize = KScBkupDefaultBufferSize );
+
+ public: // Framework API
+
+ /**
+ *
+ */
+ inline TType Type() const { return iType; }
+
+ /**
+ *
+ */
+ inline const TMMCScBkupArchiveVector& Info() const { return iInfo; }
+
+ /**
+ *
+ */
+ inline TMMCScBkupArchiveVector& Info() { return iInfo; }
+
+ /**
+ *
+ */
+ virtual void InitializeL( TAny* aParam1 = NULL, TAny* aParam2 = NULL ) = 0;
+
+ protected: // Internal methods
+
+ /**
+ *
+ */
+ inline TPtr8& WriteBuffer() { return iBufferPointer; }
+
+ /**
+ *
+ */
+ inline const TDesC8& DataView() const { return *iBuffer; }
+
+ /**
+ *
+ */
+ inline MMMCScBkupProgressObserver& ProgressManager() const { return iProgressManager; }
+
+ /**
+ *
+ */
+ inline MMMCScBkupArchiveDataInterface& ADI() const { return iADI; }
+
+ /**
+ *
+ */
+ void WriteToArchiveAndUpdateStatsL( const TDesC8& aData );
+
+ private:
+
+ /**
+ *
+ */
+ TType iType;
+
+ /**
+ *
+ */
+ HBufC8* iBuffer;
+
+ /**
+ *
+ */
+ TPtr8 iBufferPointer;
+
+ /**
+ *
+ */
+ MMMCScBkupProgressObserver& iProgressManager;
+
+ /**
+ *
+ */
+ MMMCScBkupArchiveDataInterface& iADI;
+
+ /**
+ *
+ */
+ TMMCScBkupArchiveVector iInfo;
+ };
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupBufferManagerDescriptorToArchive) : public CMMCScBkupBufferManagerBase
+ {
+ private:
+
+ /**
+ *
+ */
+ CMMCScBkupBufferManagerDescriptorToArchive( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
+
+ /**
+ *
+ */
+ static CMMCScBkupBufferManagerDescriptorToArchive* NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
+
+ public: // From CMMCScBkupBufferManagerBase
+ void InitializeL(TAny* aParam1, TAny* aParam2);
+
+ private: // From MEZBufferManager
+ void InitializeL( CEZZStream& aZStream );
+ void NeedInputL( CEZZStream& aZStream );
+ void NeedOutputL( CEZZStream& aZStream );
+ void FinalizeL( CEZZStream& aZStream );
+
+ private: // Data members
+
+ /**
+ *
+ */
+ TPtrC8 iSource;
+
+ friend class CMMCScBkupBufferManagerBase;
+ };
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupBufferManagerFileToArchive) : public CMMCScBkupBufferManagerBase
+ {
+ public:
+
+ /**
+ *
+ */
+ ~CMMCScBkupBufferManagerFileToArchive();
+
+ private:
+
+ /**
+ *
+ */
+ CMMCScBkupBufferManagerFileToArchive( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
+
+ /**
+ *
+ */
+ void ConstructL(const TDesC& aFileName);
+
+ /**
+ *
+ */
+ static CMMCScBkupBufferManagerFileToArchive* NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
+
+ public: // From CMMCScBkupBufferManagerBase
+ void InitializeL(TAny* aParam1, TAny* aParam2);
+
+ private: // From MEZBufferManager
+ void InitializeL( CEZZStream& aZStream );
+ void NeedInputL( CEZZStream& aZStream );
+ void NeedOutputL( CEZZStream& aZStream );
+ void FinalizeL( CEZZStream& aZStream );
+
+ private: // Data members
+
+ /**
+ *
+ */
+ CMMCScBkupDataStrategy* iReadStrategy;
+
+ /**
+ *
+ */
+ HBufC8* iOutput;
+
+ /**
+ *
+ */
+ TPtr8 iOutputPointer;
+
+ /**
+ * Useful for debugging
+ */
+ TPtrC iFileName;
+
+ friend class CMMCScBkupBufferManagerBase;
+ };
+
+
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupBufferManagerArchiveToDescriptor) : public CMMCScBkupBufferManagerBase
+ {
+ public:
+
+ /**
+ *
+ */
+ ~CMMCScBkupBufferManagerArchiveToDescriptor();
+
+ private:
+
+ /**
+ *
+ */
+ CMMCScBkupBufferManagerArchiveToDescriptor( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
+
+ /**
+ *
+ */
+ static CMMCScBkupBufferManagerArchiveToDescriptor* NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
+
+ public: // From CMMCScBkupBufferManagerBase
+ void InitializeL(TAny* aParam1, TAny* aParam2);
+
+ private: // From MEZBufferManager
+ void InitializeL( CEZZStream& aZStream );
+ void NeedInputL( CEZZStream& aZStream );
+ void NeedOutputL( CEZZStream& aZStream );
+ void FinalizeL( CEZZStream& aZStream );
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ void TryToReadMoreSourceDataL();
+
+ private: // Data members
+
+ /**
+ *
+ */
+ TPtr8 iOutputPointer;
+
+ friend class CMMCScBkupBufferManagerBase;
+ };
+
+
+
+
+
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupBufferManagerArchiveToFile) : public CMMCScBkupBufferManagerBase
+ {
+ public:
+
+ /**
+ *
+ */
+ ~CMMCScBkupBufferManagerArchiveToFile();
+
+ private:
+
+ /**
+ *
+ */
+ CMMCScBkupBufferManagerArchiveToFile( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
+
+ /**
+ *
+ */
+ void ConstructL(const TDesC& aFileName);
+
+ /**
+ *
+ */
+ static CMMCScBkupBufferManagerArchiveToFile* NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI );
+
+ public: // From CMMCScBkupBufferManagerBase
+ void InitializeL(TAny* aParam1, TAny* aParam2);
+
+ private: // From MEZBufferManager
+ void InitializeL( CEZZStream& aZStream );
+ void NeedInputL( CEZZStream& aZStream );
+ void NeedOutputL( CEZZStream& aZStream );
+ void FinalizeL( CEZZStream& aZStream );
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ void TryToReadMoreSourceDataL();
+
+ private: // Data members
+
+ /**
+ *
+ */
+ CMMCScBkupDataStrategy* iWriteStrategy;
+
+ /**
+ *
+ */
+ HBufC8* iOutput;
+
+ /**
+ *
+ */
+ TPtr8 iOutputPointer;
+
+ /**
+ * Needed, since we restore to temporary file
+ * and then delete and rename temp file if
+ * extraction succeeds.
+ */
+ TPtrC iFileName;
+
+ friend class CMMCScBkupBufferManagerBase;
+ };
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#endif // __CMMCSCBKUPBUFFERMANAGERS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupDataOwnerCollection.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,219 @@
+/*
+* Copyright (c) 2005-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: Declaration of CMMCScBkupDataOwnerCollection
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPDATAOWNERCOLLECTION_H__
+#define __CMMCSCBKUPDATAOWNERCOLLECTION_H__
+
+// System includes
+#include <connect/sbtypes.h>
+#include <s32strm.h>
+#include <babitflags.h>
+#include <bldvariant.hrh>
+
+// User includes
+#include "RMMCScBkupPointerArray.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class MMMCScBkupDriver;
+class CMMCScBkupDriveSizer;
+class CMMCScBkupDataOwnerInfo;
+
+#ifndef RD_FILE_MANAGER_BACKUP
+// Type definitions
+typedef RPointerArray<CDataOwnerInfo> RDataOwnerInfoArray;
+#endif
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupDataOwnerCollection) : public CBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupDataOwnerCollection* NewL( MMMCScBkupDriver& aDriver, TBitFlags aCategory );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupDataOwnerCollection();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupDataOwnerCollection( MMMCScBkupDriver& aDriver, TBitFlags aCategory );
+
+ /**
+ *
+ */
+ void ConstructL();
+
+ public: // API
+
+ /**
+ *
+ */
+#ifdef RD_FILE_MANAGER_BACKUP
+ TBool AssignL( const CMMCScBkupDataOwnerInfo& dataOwnersInfo );
+#else
+ void AssignL( RDataOwnerInfoArray& aArray );
+#endif
+
+ /**
+ *
+ */
+ void AppendL( CMMCScBkupDataOwnerInfo* aNewEntry );
+
+ /**
+ *
+ */
+ TInt Count() const;
+
+ /**
+ *
+ */
+ CMMCScBkupDataOwnerInfo& Owner( TInt aIndex );
+
+ /**
+ *
+ */
+ const CMMCScBkupDataOwnerInfo& Owner( TInt aIndex ) const;
+
+ /**
+ *
+ */
+ CMMCScBkupDataOwnerInfo& OwnerL( TSecureId aSID );
+
+ /**
+ *
+ */
+ const CMMCScBkupDataOwnerInfo& OwnerL( TSecureId aSID ) const;
+
+ /**
+ *
+ */
+ CMMCScBkupDataOwnerInfo& OwnerL( TUid aPackageId );
+
+ /**
+ *
+ */
+ const CMMCScBkupDataOwnerInfo& OwnerL( TUid aPackageId ) const;
+
+ /**
+ *
+ */
+ CMMCScBkupDataOwnerInfo& OwnerL( const TDesC& aHash );
+
+ /**
+ *
+ */
+ const CMMCScBkupDataOwnerInfo& OwnerL( const TDesC& aHash ) const;
+
+ /**
+ *
+ */
+ void Remove( TInt aIndex );
+
+ /**
+ *
+ */
+ void Reset();
+
+ /**
+ * The amount of space required spanning all drives.
+ * This is used as the total progress amount during
+ * restore operations.
+ */
+ TInt64 TotalOperationalSizeL() const;
+
+ /**
+ * Whether one or more data owners require a reboot
+ * after restore has completed.
+ */
+ TBool RebootRequired() const;
+
+ /**
+ *
+ */
+ TInt64 DiskSpaceRequiredForRestore( TDriveNumber aDrive ) const;
+
+ /**
+ *
+ */
+ void CalculateDiskSpaceRequiredForRestoreL();
+
+ /**
+ *
+ */
+ TBitFlags Category() const { return iCategory; }
+
+ public:
+
+ /**
+ * Internalize 'iRestoreSizer' from stream
+ */
+ void InternalizeL( RReadStream& aStream );
+
+ /**
+ * Externalize 'iRestoreSizer' to stream
+ */
+ void ExternalizeL( RWriteStream& aStream ) const;
+
+ private:
+
+#ifdef RD_FILE_MANAGER_BACKUP
+ /**
+ *
+ */
+ TBool BelongsToL(const CMMCScBkupDataOwnerInfo& aInfo, TBitFlags aFlags, TBitFlags aExcludedFlags,
+ const RArray<TSecureId> aSecureIds, const RArray<TSecureId> aExcludedSecureIds) const;
+#endif
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ private: // Member data
+
+ //
+ MMMCScBkupDriver& iDriver;
+ // Array of data owners
+ RMMCScBkupPointerArray<CMMCScBkupDataOwnerInfo> iOwners;
+ //
+ CMMCScBkupDriveSizer* iRestoreSizer;
+ //
+ TBitFlags iCategory;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPDATAOWNERCOLLECTION_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupDataOwnerInfo.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,253 @@
+/*
+* Copyright (c) 2005-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: Declaration of CMMCScBkupDataOwnerInfo
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPDATAOWNERINFO_H__
+#define __CMMCSCBKUPDATAOWNERINFO_H__
+
+// System includes
+#include <e32std.h>
+#include <s32strm.h>
+#include <connect/sbtypes.h>
+
+// User includes
+#include "TMMCScBkupOwnerDataType.h"
+
+// Classes referenced
+class TMMCScBkupDriveAndSize;
+class CMMCScBkupDataTypeSizer;
+class MMMCScBkupArchiveDataInterface;
+
+// Namespaces
+using namespace conn;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupDataOwnerInfo) : public CBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupDataOwnerInfo* NewLC( CDataOwnerInfo* aOwner );
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupDataOwnerInfo* NewLC( RReadStream& aStream );
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupDataOwnerInfo* New( TSecureId aSecureId );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupDataOwnerInfo();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupDataOwnerInfo( CDataOwnerInfo* aOwner = NULL );
+
+ /**
+ *
+ */
+ void ConstructL();
+
+ public: // API
+
+ /**
+ *
+ */
+ CDataOwnerInfo& Owner();
+
+ /**
+ *
+ */
+ const CDataOwnerInfo& Owner() const;
+
+ /**
+ *
+ */
+ TDataOwnerStatus Status() const;
+
+ /**
+ *
+ */
+ void SetStatus( TDataOwnerStatus aStatus );
+
+ /**
+ *
+ */
+ void AddToOperationalSizeL( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive, TInt64 aSize );
+
+ /**
+ *
+ */
+ void SetOperationalSizeL( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive, TInt64 aSize );
+
+ /**
+ *
+ */
+ void ResetOperationalSize( TMMCScBkupOwnerDataType aType );
+
+ /**
+ *
+ */
+ TInt64 OperationalSize( TMMCScBkupOwnerDataType aType ) const;
+
+ /**
+ *
+ */
+ TInt64 OperationalSize( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive ) const;
+
+ /**
+ *
+ */
+ TInt64 OperationalSize( TDriveNumber aDrive ) const;
+
+ /**
+ *
+ */
+ void OperationalSizesL( RArray<TMMCScBkupDriveAndSize>& aSizes ) const;
+
+ /**
+ *
+ */
+ inline TSecureId SecureId() const { return iSecureId; }
+
+ /**
+ *
+ */
+ TInt NumberOfOperationsRequiredL() const;
+
+ /**
+ *
+ */
+ void SetCompletionStatus( TMMCScBkupOwnerDataType aType, TBool aCompleted );
+
+ /**
+ *
+ */
+ TBool CompletionStatus( TMMCScBkupOwnerDataType aType ) const;
+
+ /**
+ *
+ */
+ TInt ActiveDataRetryCount() const;
+
+ /**
+ *
+ */
+ void SetActiveDataRetryCount( TInt aCount );
+
+ /**
+ *
+ */
+ inline TInt Version() const { return iVersion; }
+
+ public: // Store/Restore
+
+ /**
+ *
+ */
+ void InternalizeL( RReadStream& aStream );
+
+ /**
+ *
+ */
+ void ExternalizeL( RWriteStream& aStream ) const;
+
+ public: // Comparison support
+
+ /**
+ *
+ */
+ static TBool CompareDataOwnerBySIDL( const CMMCScBkupDataOwnerInfo& aLeft, const CMMCScBkupDataOwnerInfo& aRight );
+
+ /**
+ *
+ */
+ TBool HasJavaDataL() const;
+
+ /**
+ *
+ */
+ TBool HasActiveDataL() const;
+
+ /**
+ *
+ */
+ TBool HasPassiveDataL() const;
+
+ /**
+ *
+ */
+ TBool HasPublicDataL() const;
+
+ /**
+ *
+ */
+ TBool HasSystemDataL() const;
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1,
+ EStreamFormatVersion2,
+ EStreamFormatVersionLatest
+ };
+
+ public: // Public enumerations
+ enum
+ {
+ EStreamFormatVersionFirst = EStreamFormatVersion1
+ };
+
+ private: // Member data
+
+ // Underlying data owner - owned by this object
+ CDataOwnerInfo* iDataOwner;
+ // Associated secure id of the data owner (if it has one)
+ TSecureId iSecureId;
+ // Ready status of the data owner
+ TDataOwnerStatus iStatus;
+ // Size of data that the owner has to backup/restore
+ CMMCScBkupDataTypeSizer* iOperationalSize;
+ // The completion status of each individual element
+ TFixedArray<TBool, EMMCScBkupOwnerDataTypeCount> iCompletionStatus;
+ // For active data, we record how many times the SID has returned "not ready"
+ TInt iActiveDataRetryCount;
+ // Version information
+ TInt iVersion;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPDATAOWNERINFO_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupDataStrategies.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,224 @@
+/*
+* Copyright (c) 2005 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: Declaration of CMMCScBkupDataStrategy
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPDATASTRATEGIES_H__
+#define __CMMCSCBKUPDATASTRATEGIES_H__
+
+// User includes
+#include <f32file.h>
+
+// Constants
+const TBool KMMCScBkupUseTempFile = EFalse;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+class CMMCScBkupDataStrategy : public CBase
+ {
+ public:
+
+ /**
+ * Factory method
+ */
+ static CMMCScBkupDataStrategy* ReadStrategyLC( const TDesC& aName, RFs& aFsSession );
+
+ /**
+ * Factory method
+ */
+ static CMMCScBkupDataStrategy* ReadStrategyLC( const TDesC& aName, RFs& aFsSession, TInt aStartOffset, TInt aLengthToRead );
+
+ /**
+ * Factory method
+ */
+ static CMMCScBkupDataStrategy* WriteStrategyLC( const TDesC& aName, RFs& aFsSession, TBool aUseTempFile );
+
+ public: // Framework API
+
+ /**
+ * Read data from the source
+ *
+ * @return TInt The amount of data read, or 0 if the end of file has been reached
+ */
+ virtual TInt Read(TDes8& aSink) = 0;
+
+ /**
+ * Write data to the source
+ *
+ * @return TInt KErrNone if success, KErrNotSupported if the strategy doesn't support writing
+ * or any of the other System-Wide error codes upon failure.
+ */
+ virtual TInt Write(const TDesC8& aSource);
+
+ /**
+ * Perform any final actions
+ *
+ * @return TInt an error code.
+ */
+ virtual TInt Finalize();
+
+ protected:
+
+ /**
+ * C++ Constructor
+ */
+ CMMCScBkupDataStrategy();
+
+ private: // Internal methods
+
+ /**
+ * Sets the offset and length
+ */
+ void SetOffsetAndLength(TInt aStartOffset, TInt aLengthToRead);
+
+ protected: // Internal
+ inline TInt Offset() const { return iOffset; }
+ inline TInt LengthToRead() const { return iLengthToRead; }
+ inline void SetOffset(TInt64 aOffset) { iOffset = aOffset; }
+
+ private: // Data members
+
+ //
+ TInt iOffset;
+ //
+ TInt iLengthToRead;
+ };
+
+
+
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupDataFileStrategy) : public CMMCScBkupDataStrategy
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupDataFileStrategy* NewForReadingL( const TDesC& aName, RFs& aFsSession );
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupDataFileStrategy* NewForWritingL( const TDesC& aName, RFs& aFsSession, TBool aUseTempFile );
+
+ /**
+ * C++ Destructor
+ */
+ ~CMMCScBkupDataFileStrategy();
+
+ private:
+
+ /**
+ * C++ Constructor
+ */
+ CMMCScBkupDataFileStrategy( RFs& aFsSession, TBool aUseTempFile = EFalse );
+
+ /**
+ * Second phase construction
+ */
+ void ConstructL( const TDesC& aName, TUint aMode );
+
+ public: // From CMMCScBkupDataStrategy
+ TInt Read(TDes8& aSink);
+ TInt Write(const TDesC8& aSource);
+ TInt Finalize();
+
+ private: // Internal functions
+
+ /**
+ *
+ */
+ static TInt PrepareToOverwriteFile( RFs& aFsSession, const TDesC& aFileName );
+
+ private: // Data members
+
+ RFs& iFsSession;
+ //
+ RFile64 iFile;
+ //
+ TBool iUseTempFile;
+ //
+ HBufC* iFileName;
+ //
+ TFileName iTempFileName;
+ };
+
+
+
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupDataFileSectionReadStrategy) : public CMMCScBkupDataStrategy
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupDataFileSectionReadStrategy* NewL(const TDesC& aName, RFs& aFsSession);
+
+ /**
+ * C++ Destructor
+ */
+ ~CMMCScBkupDataFileSectionReadStrategy();
+
+ private:
+
+ /**
+ * C++ Constructor
+ */
+ CMMCScBkupDataFileSectionReadStrategy(RFs& aFsSession);
+
+ /**
+ *
+ */
+ void ConstructL(const TDesC& aName);
+
+ public: // From CMMCScBkupDataStrategy
+ TInt Read(TDes8& aSink);
+
+ private: // Data members
+
+ //
+ RFs& iFsSession;
+ //
+ HBufC* iFileName;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPDATASTRATEGIES_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupDriveAndOperationTypeManager.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,154 @@
+/*
+* Copyright (c) 2005 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: Declaration of CMMCScBkupDriveAndOperationTypeManager
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPDRIVEANDOPERATIONTYPEMANAGER_H__
+#define __CMMCSCBKUPDRIVEANDOPERATIONTYPEMANAGER_H__
+
+// System includes
+#include <connect/sbdefs.h>
+#include <connect/sbtypes.h>
+#include <barsread.h>
+
+// User includes
+#include "TMMCScBkupOwnerDataType.h"
+#include "CMMCScBkupOperationParameters.h"
+// Namespaces
+using namespace conn;
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(TMMCScBkupDriveAndOperationType)
+ {
+ public:
+ inline TMMCScBkupDriveAndOperationType()
+ : iDrive( EDriveC ), iType( EMMCScBkupOwnerDataTypeAny ) { }
+
+ inline TMMCScBkupDriveAndOperationType( TDriveNumber aDrive, TMMCScBkupOwnerDataType aType )
+ : iDrive( aDrive ), iType( aType ) { }
+
+ public: // Common attributes
+
+ /**
+ *
+ */
+ inline TDriveNumber Drive() const { return iDrive; }
+
+ /**
+ *
+ */
+ inline void SetDrive( TDriveNumber aDrive ) { iDrive = aDrive; }
+
+ /**
+ *
+ */
+ inline TMMCScBkupOwnerDataType DataType() const { return iType; }
+
+ /**
+ *
+ */
+ inline void SetDataType( TMMCScBkupOwnerDataType aType ) { iType = aType; }
+
+ private: // Data members
+
+ //
+ TDriveNumber iDrive;
+ //
+ TMMCScBkupOwnerDataType iType;
+ };
+
+
+
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupDriveAndOperationTypeManager) : public CBase
+ {
+ public:
+
+ /**
+ *
+ */
+ IMPORT_C static CMMCScBkupDriveAndOperationTypeManager* NewL(
+ BkupDrivesAndOperationList *aDriveList );
+
+ /**
+ *
+ */
+ IMPORT_C ~CMMCScBkupDriveAndOperationTypeManager();
+
+ private:
+
+ /**
+ *
+ */
+ CMMCScBkupDriveAndOperationTypeManager();
+
+ /**
+ *
+ */
+ void ConstructL( BkupDrivesAndOperationList *aDriveList );
+
+
+ public: // API
+
+ /**
+ *
+ */
+ TInt Count() const;
+
+ /**
+ *
+ */
+ const TMMCScBkupDriveAndOperationType& At( TInt aIndex ) const;
+
+ /**
+ *
+ */
+ inline const TDriveList& DriveList() const { return iCalculatedDriveList; }
+
+ /**
+ *
+ */
+ TBool IsDataTypeAllowedToAccessDrive( TDriveNumber aDrive, TMMCScBkupOwnerDataType aDataType ) const;
+
+ private: // Internal methods
+
+
+ private: // Data members
+
+ //
+ RArray< TMMCScBkupDriveAndOperationType > iEntries;
+ //
+ TDriveList iCalculatedDriveList;
+
+ };
+
+#endif // __CMMCSCBKUPDRIVEANDOPERATIONTYPEMANAGER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupDriveDataSizeManager.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,247 @@
+/*
+* Copyright (c) 2005-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: Declaration of CMMCScBkupDriveSizer
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPDRIVEDATASIZEMANAGER_H__
+#define __CMMCSCBKUPDRIVEDATASIZEMANAGER_H__
+
+// System includes
+#include <s32strm.h>
+#include <f32file.h>
+
+// User includes
+#include "TMMCScBkupDriveAndSize.h"
+#include "RMMCScBkupPointerArray.h"
+#include "TMMCScBkupOwnerDataType.h"
+
+
+/**
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupDriveSizer) : public CBase
+ {
+ public:
+
+ /**
+ *
+ */
+ static CMMCScBkupDriveSizer* NewLC( TMMCScBkupOwnerDataType aType );
+
+ /**
+ *
+ */
+ static CMMCScBkupDriveSizer* NewLC( RReadStream& aStream );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupDriveSizer();
+
+ private:
+
+ /**
+ * C++ constructor
+ */
+ CMMCScBkupDriveSizer( TMMCScBkupOwnerDataType aType );
+
+ /**
+ *
+ */
+ void ConstructL();
+
+ public: // API
+
+ /**
+ *
+ */
+ inline TMMCScBkupOwnerDataType DataType() const { return iDataType; }
+
+ /**
+ *
+ */
+ void AddToSizeL( TInt64 aAmount, TDriveNumber aDrive );
+
+ /**
+ *
+ */
+ void Reset();
+
+ /**
+ *
+ */
+ void Reset( TDriveNumber aDrive );
+
+ /**
+ *
+ */
+ TInt64 Size() const;
+
+ /**
+ *
+ */
+ TInt64 Size( TDriveNumber aDrive ) const;
+
+ public:
+
+ /**
+ * Internalize object from stream
+ */
+ void InternalizeL( RReadStream& aStream );
+
+ /**
+ * Externalize object to stream
+ */
+ void ExternalizeL( RWriteStream& aStream ) const;
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ TMMCScBkupDriveAndSize* EntryByDrive( TDriveNumber aDrive );
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ private: // Data members
+
+ //
+ RArray<TMMCScBkupDriveAndSize> iEntries;
+ //
+ TMMCScBkupOwnerDataType iDataType;
+ };
+
+
+
+
+
+
+/**
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupDataTypeSizer) : public CBase
+ {
+ public:
+
+ /**
+ *
+ */
+ static CMMCScBkupDataTypeSizer* NewL();
+
+ /**
+ *
+ */
+ static CMMCScBkupDataTypeSizer* NewLC( RReadStream& aStream );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupDataTypeSizer();
+
+ private:
+
+ /**
+ * C++ constructor
+ */
+ CMMCScBkupDataTypeSizer();
+
+ /**
+ *
+ */
+ void ConstructL();
+
+ public: // API
+
+ /**
+ *
+ */
+ void AddToSizeL( TMMCScBkupOwnerDataType aDataType, TInt64 aAmount, TDriveNumber aDrive );
+
+ /**
+ *
+ */
+ void Reset( TMMCScBkupOwnerDataType aDataType );
+
+ /**
+ *
+ */
+ void Reset( TMMCScBkupOwnerDataType aDataType, TDriveNumber aDrive );
+
+ /**
+ *
+ */
+ TInt64 Size( TMMCScBkupOwnerDataType aDataType ) const;
+
+ /**
+ *
+ */
+ TInt64 Size( TMMCScBkupOwnerDataType aDataType, TDriveNumber aDrive ) const;
+
+ /**
+ *
+ */
+ void GetSizesL( RArray<TMMCScBkupDriveAndSize>& aSizes ) const;
+
+ /**
+ *
+ */
+ TInt64 CombinedSize( TDriveNumber aDrive ) const;
+
+ public:
+
+ /**
+ * Internalize object from stream
+ */
+ void InternalizeL( RReadStream& aStream );
+
+ /**
+ * Externalize object to stream
+ */
+ void ExternalizeL( RWriteStream& aStream ) const;
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ CMMCScBkupDriveSizer* SizerByDataType( TMMCScBkupOwnerDataType aDataType );
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ private: // Data members
+
+ //
+ RMMCScBkupPointerArray<CMMCScBkupDriveSizer> iSizers;
+ };
+
+
+
+
+
+
+#endif // __CMMCSCBKUPDRIVEDATASIZEMANAGER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupDriveSpecificRequest.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,132 @@
+/*
+* Copyright (c) 2005 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: Declaration of CMMCScBkupDriveSpecificRequest
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPDRIVESPECIFICREQUEST_H__
+#define __CMMCSCBKUPDRIVESPECIFICREQUEST_H__
+
+// System includes
+#include <e32base.h>
+#include <f32file.h>
+
+// User includes
+#include "TMMCScBkupOwnerDataType.h"
+
+// Classes referenced
+class CMMCScBkupDriveAndOperationTypeManager;
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupDriveSpecificRequest) : public CActive
+ {
+ protected:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupDriveSpecificRequest( const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperations, TMMCScBkupOwnerDataType aDataType, CActive::TPriority aPriority = CActive::EPriorityIdle );
+
+ /**
+ * Second phase constructor
+ */
+ void ConstructL( );
+
+ public:
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupDriveSpecificRequest();
+
+ protected: // API
+
+ /**
+ *
+ */
+ virtual void RequestL( TRequestStatus& aObserver );
+
+ protected: // Internal methods
+
+ /**
+ *
+ */
+ TBool NextValidDrive(TDriveNumber& aDrive);
+
+ /**
+ *
+ */
+ TBool NextValidDrive(TDriveNumber& aDrive, const TDriveList& aCrossCheckList);
+
+ /**
+ * Return the current drive
+ */
+ TDriveNumber CurrentDrive() const;
+
+ /**
+ *
+ */
+ void CompleteObserverRequest(TInt aCompletionCode);
+
+ /**
+ *
+ */
+ void CompleteSelf(TInt aCompletionCode = KErrNone);
+
+ /**
+ *
+ */
+ inline const CMMCScBkupDriveAndOperationTypeManager& DriveAndOperations() const { return iDriveAndOperations; }
+
+ private: // From CActive
+
+ /**
+ * Default behaviour is to do nothing
+ */
+ void DoCancel();
+
+ /**
+ * Complete's observer with the error code
+ */
+ TInt RunError(TInt aError);
+
+ private: // Member data
+
+ //
+ const CMMCScBkupDriveAndOperationTypeManager& iDriveAndOperations;
+ //
+ TMMCScBkupOwnerDataType iDataType;
+ //
+ TInt iCurrentDrive;
+ //
+ TRequestStatus* iObserver;
+ };
+
+
+
+
+
+
+
+
+#endif // __CMMCSCBKUPARCHIVE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupEngine.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2002-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:
+* Scans for names of the files according to array.
+*
+*/
+
+#ifndef __CMMCSCBKUPENGINE_H__
+#define __CMMCSCBKUPENGINE_H__
+
+// User includes
+#include "MMCScBkupOperations.h"
+
+// Classes referenced
+class RFs;
+class CMMCScBkupEngineImpl;
+class CMMCScBkupOpParamsBase;
+class MMMCScBkupEngineObserver;
+class CMMCScBkupArchiveInfo;
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupEngine) : public CBase
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CMMCScBkupEngine* NewL( RFs& aFsSession );
+
+ /**
+ * Destructor
+ */
+ IMPORT_C ~CMMCScBkupEngine();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupEngine();
+
+ /**
+ * Second phase constructor
+ */
+ void ConstructL( RFs& aFsSession );
+
+
+ public: // API
+
+ /**
+ * NB. aParams are IMMEDIATELY owned by the engine. Do not pass them in
+ * left on the cleanup stack.
+ */
+ IMPORT_C void StartOperationL(TMMCScBkupOperationType aOperation, MMMCScBkupEngineObserver& aObserver, CMMCScBkupOpParamsBase* aParams );
+
+ /**
+ *
+ */
+ IMPORT_C void CancelOperation();
+
+ /**
+ *
+ */
+ IMPORT_C TBool ValidArchiveForRestore( const TDesC& aFileName );
+
+ /**
+ *
+ */
+ IMPORT_C TInt64 TotalOperationSizeL() const;
+
+ /**
+ *
+ */
+ IMPORT_C TBool RebootRequired() const;
+
+ /**
+ *
+ */
+ IMPORT_C TBool DeleteArchivesL( RPointerArray< CMMCScBkupArchiveInfo >& aArchives ) const;
+
+ /**
+ *
+ */
+ IMPORT_C void ListArchivesL(
+ RPointerArray< CMMCScBkupArchiveInfo >& aArchives,
+ CMMCScBkupOpParamsBase* aParams,
+ const TUint32 aDriveAttMatch,
+ const TInt aDriveMatch = KErrNotFound ) const;
+
+ private: // Member data
+
+ // Real engine
+ CMMCScBkupEngineImpl* iEngine;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPENGINE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupEngineImpl.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,277 @@
+/*
+* Copyright (c) 2002-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:
+* Scans for names of the files according to array.
+*
+*/
+
+#ifndef __CMMCSCBKUPENGINEIMPL_H__
+#define __CMMCSCBKUPENGINEIMPL_H__
+
+// System includes
+#include <connect/sbeclient.h>
+
+// User includes
+#include "MMCScBkupConfig.h"
+#include "MMMCScBkupDriver.h"
+#include "MMCScBkupStateIds.h"
+#include "MMCScBkupOperations.h"
+#include "MMMCScBkupEngineObserver.h"
+#include "MMMCScBkupProgressObserver.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class RFs;
+class CMMCScBkupState;
+class CMMCScBkupArchive;
+class CMMCScBkupStateFactory;
+class CMMCScBkupOpParamsBase;
+class MMMCScBkupEngineObserver;
+class CMMCScBkupFileListCollection;
+class CMMCScBkupDataOwnerCollection;
+class MMMCScBkupArchiveDataInterface;
+class CMMCScBkupArchiveInfo;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupEngineImpl) : public CActive, public MMMCScBkupDriver, public MMMCScBkupProgressObserver
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CMMCScBkupEngineImpl* NewL( RFs& aFsSession );
+
+ /**
+ * Destructor
+ */
+ ~CMMCScBkupEngineImpl();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupEngineImpl( RFs& aFsSession );
+
+ /**
+ * Second phase constructor
+ */
+ void ConstructL( );
+
+
+ public: // API
+
+ /**
+ *
+ */
+ void StartOperationL(TMMCScBkupOperationType aOperation, MMMCScBkupEngineObserver& aObserver, CMMCScBkupOpParamsBase* aParams );
+
+ /**
+ *
+ */
+ void CleanupL( TInt aError = KErrNone );
+
+ /**
+ *
+ */
+ TBool ValidArchiveForRestoreL( const TDesC& aFileName );
+
+ /**
+ *
+ */
+ TInt64 TotalOperationSizeL() const;
+
+ /**
+ *
+ */
+ TBool RebootRequired() const;
+
+ /**
+ *
+ */
+ TBool DeleteArchivesL( RPointerArray< CMMCScBkupArchiveInfo >& aArchives ) const;
+
+ /**
+ *
+ */
+ void ListArchivesL(
+ RPointerArray< CMMCScBkupArchiveInfo >& aArchives,
+ CMMCScBkupOpParamsBase* aParams,
+ const TUint32 aDriveAttMatch,
+ const TInt aDriveMatch );
+
+ private: // From MMMCScBkupDriver
+ void DrvHandleStateExecutionCompleteL( const CMMCScBkupState& aState );
+ void DrvHandleStateExecutionCompleteL( const CMMCScBkupState& aState, TMMCScBkupStateId aNextState );
+ void DrvHandleStateExecutionErrorL( const CMMCScBkupState& aState, TInt aError );
+
+ private: // From MMMCScBkupDriver
+ MMMCScBkupArchiveDataInterface& DrvADI() const;
+ CMMCScBkupArchive& DrvArchive() const;
+ CSBEClient& DrvSecureBackupClient() const;
+ TMMCScBkupOperationType DrvOperation() const;
+ CMMCScBkupOpParamsBase& DrvParamsBase() const;
+ CMMCScBkupDataOwnerCollection& DrvDataOwners() const;
+ RPointerArray<CMMCScBkupDataOwnerCollection>& DrvDataOwnersAll();
+ CMMCScBkupFileListCollection& DrvFileList() const;
+ TBool DrvLastCategory() const;
+ void DrvStoreTotalProgress(TInt64 aProgress);
+ TInt64 DrvTotalProgress() const;
+ MMMCScBkupProgressObserver& DrvProgressHandler() const;
+
+ private: // From MMMCScBkupProgressObserver
+ void MMCScBkupHandleProgress( TInt aAmountCompleted );
+ void MMCScBkupHandleProgressDomainUnderstood( TInt aTotalProgressAmount );
+ TInt MMCScBkupHandleFreeSpace( TInt aPercentualFree );
+ void MMCScBkupStartBackuping( TBool aProceed );
+
+ private: // From CActive
+ void RunL();
+ void DoCancel();
+ TInt RunError(TInt aError);
+
+ private: // Internal
+
+ /**
+ *
+ */
+ void CompleteOwnRequest(TInt aCompletionCode = KErrNone, TBool aSetActive = ETrue);
+
+ /**
+ *
+ */
+ void NotifyObserver(MMMCScBkupEngineObserver::TEvent aEvent, TInt aAssociatedData = KErrNone);
+
+ /**
+ *
+ */
+ void PrepareForBackupL(TBool aPartial);
+
+ /**
+ *
+ */
+ void PrepareForRestoreL(TBool aPartial);
+
+ /**
+ *
+ */
+ void SetParameters(CMMCScBkupOpParamsBase* aParameters);
+
+ /**
+ *
+ */
+ void CreateFactoryL(TMMCScBkupOperationType aOperation);
+
+ /**
+ *
+ */
+ TBool CurrentStateAvailable() const;
+
+ /**
+ *
+ */
+ TMMCScBkupStateId CurrentStateId() const;
+
+ /**
+ *
+ */
+ CMMCScBkupState& CurrentState();
+
+ /**
+ *
+ */
+ const CMMCScBkupState& CurrentState() const;
+
+ /**
+ *
+ */
+ void PrepareNextStateL( TMMCScBkupStateId aCurrentStateId );
+
+ /**
+ *
+ */
+ void DestroyCurrentState();
+
+ /**
+ *
+ */
+ void ExecuteStateL();
+
+ /**
+ *
+ */
+ void PrepareObjectsL();
+
+#ifdef DEBUGGING_DATA_TRANSFER
+
+ /**
+ *
+ */
+ void CleanBackupFilesL();
+
+ /**
+ *
+ */
+ void ClearRestoreFilesL();
+#endif
+
+ private: // Member data
+
+ // Referenced objects
+ // file server session
+ RFs& iFsSession;
+ // backup engine observer
+ MMMCScBkupEngineObserver* iObserver;
+
+ // Owned objects
+ //
+ TInt64 iCumulativeProgress;
+ // Secure backup engine client
+ CSBEClient* iSBEClient;
+ // Archive array
+ RMMCScBkupPointerArray<CMMCScBkupArchive> iArchives;
+ // Current operation
+ TMMCScBkupOperationType iOperationType;
+ // Operational parameters
+ CMMCScBkupOpParamsBase* iParameters;
+ //
+ CMMCScBkupState* iCurrentState;
+ // Current factory
+ CMMCScBkupStateFactory* iFactory;
+ //
+ RPointerArray<CMMCScBkupDataOwnerCollection> iDataOwners;
+ //
+ RPointerArray<CMMCScBkupFileListCollection> iFileLists;
+ //
+ TInt iCurrentArchive;
+ //
+ TInt64 iTotalProgress;
+ //
+ TBool iActiveDataProcessingOngoing;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPENGINEIMPL_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupFileInfo.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,156 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupFileInfo
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPFILEINFO_H__
+#define __CMMCSCBKUPFILEINFO_H__
+
+// System includes
+#include <f32file.h>
+#include <s32strm.h>
+
+
+/**
+* Represents a public file within an archive. Each public file
+* has an associated data owner. This is encapsulated by the SID
+* of the owning process.
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupFileInfo) : public CBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupFileInfo* NewL( const TEntry& aEntry, TSecureId aAssociatedSID );
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupFileInfo* NewLC( const TEntry& aEntry, TSecureId aAssociatedSID );
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupFileInfo* NewLC( RReadStream& aStream );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupFileInfo();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupFileInfo();
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupFileInfo( const TEntry& aEntry, TSecureId aAssociatedSID );
+
+ /**
+ *
+ */
+ void ConstructL( const TEntry& aEntry );
+
+ public: // API - Getters
+
+ /**
+ *
+ */
+ inline const TDesC& FileName() const { return *iFileName; }
+
+ /**
+ *
+ */
+ inline TInt Size() const { return iSize; }
+
+ /**
+ *
+ */
+ inline const TTime& DateTime() const { return iDateTime; }
+
+ /**
+ *
+ */
+ inline TUint Attributes() const { return iAttributes; }
+
+ /**
+ *
+ */
+ inline TSecureId SecureId() const { return iSecureId; }
+
+ /**
+ *
+ */
+ TDriveNumber Drive() const;
+
+ public: // Store/Restore
+
+ /**
+ *
+ */
+ void InternalizeL(RReadStream& aStream);
+
+ /**
+ *
+ */
+ void ExternalizeL(RWriteStream& aStream) const;
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ public: // Comparison support
+
+ /**
+ *
+ */
+ static TInt OrderByFileName(const CMMCScBkupFileInfo& aLeft, const CMMCScBkupFileInfo& aRight);
+
+ /**
+ *
+ */
+ static TBool CompareByFileName(const CMMCScBkupFileInfo& aLeft, const CMMCScBkupFileInfo& aRight);
+
+ private: // Member data
+
+ // File name
+ HBufC* iFileName;
+ //
+ TInt iSize;
+ //
+ TTime iDateTime;
+ //
+ TUint iAttributes;
+ //
+ TSecureId iSecureId;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPFILEINFO_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupFileListCollection.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,114 @@
+/*
+* Copyright (c) 2005-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: Declaration for CMMCScBkupFileListCollection
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPFILELISTCOLLECTION_H__
+#define __CMMCSCBKUPFILELISTCOLLECTION_H__
+
+// System includes
+#include <f32file.h>
+
+// User includes
+#include "RMMCScBkupPointerArray.h"
+#include "CMMCScBkupFileInfo.h"
+#include <babitflags.h>
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupFileListCollection) : public CBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupFileListCollection* NewL( TBitFlags aCategory, RFs& aFsSession );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupFileListCollection();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupFileListCollection( TBitFlags aCategory, RFs& aFsSession );
+
+ /**
+ *
+ */
+ void ConstructL();
+
+ public: // API
+
+ /**
+ *
+ */
+ void AppendL( const RArray<TEntry>& aArray, RArray< const CMMCScBkupFileInfo* >& aAddedItems, TSecureId aAssociatedSID );
+
+ /**
+ *
+ */
+ void AppendL( CMMCScBkupFileInfo* aFileInfo );
+
+ /**
+ *
+ */
+ TInt Count() const;
+
+ /**
+ *
+ */
+ const CMMCScBkupFileInfo& Entry(TInt aIndex) const;
+
+ /**
+ *
+ */
+ void Remove( TInt aIndex );
+
+ /**
+ *
+ */
+ void Reset();
+
+ /**
+ *
+ */
+ TBitFlags Category() const { return iCategory; }
+
+ private: // Member data
+
+ // Array of data owners
+ RMMCScBkupPointerArray<CMMCScBkupFileInfo> iEntries;
+ //
+ TBitFlags iCategory;
+ //
+ RFs& iFsSession;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPFILELISTCOLLECTION_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupIndexActiveData.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexActiveData
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPINDEXACTIVEDATA_H__
+#define __CMMCSCBKUPINDEXACTIVEDATA_H__
+
+// User includes
+#include "CMMCScBkupIndexWithIdentifier.h"
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupIndexActiveData) : public CMMCScBkupIndexWithIdentifier< TSecureId >
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupIndexActiveData* NewLC();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupIndexActiveData();
+
+ };
+
+
+
+
+#endif // __CMMCSCBKUPINDEXACTIVEDATA_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupIndexBase.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,100 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexBase
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPINDEXBASE_H__
+#define __CMMCSCBKUPINDEXBASE_H__
+
+// System includes
+#include <e32base.h>
+
+// User includes
+#include "MMMCScBkupDriver.h"
+#include "TMMCScBkupOwnerDataType.h"
+#include "RMMCScBkupPointerArray.h"
+#include "TMMCScBkupArchiveVector.h"
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupIndexBase) : public CBase
+ {
+ public:
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupIndexBase();
+
+ protected:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupIndexBase(TMMCScBkupOwnerDataType aType);
+
+ /**
+ *
+ */
+ virtual void ConstructL();
+
+ public: // API
+
+ /**
+ *
+ */
+ inline TMMCScBkupOwnerDataType Type() const { return iType; }
+
+ /**
+ *
+ */
+ inline const TMMCScBkupArchiveVector& Vector() const { return iVector; }
+
+ /**
+ *
+ */
+ inline void SetVector( const TMMCScBkupArchiveVector& aVector ) { iVector = aVector; }
+
+ public: // Store/Restore
+
+ /**
+ *
+ */
+ virtual void StoreL(MMMCScBkupDriver& aDriver) = 0;
+
+ /**
+ *
+ */
+ virtual void RestoreL(MMMCScBkupDriver& aDriver) = 0;
+
+ private: // Member data
+
+ //
+ TMMCScBkupOwnerDataType iType;
+ //
+ TMMCScBkupArchiveVector iVector;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPINDEXBASE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupIndexDataOwners.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,103 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexDataOwners
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPINDEXDATAOWNERS_H__
+#define __CMMCSCBKUPINDEXDATAOWNERS_H__
+
+// System includes
+#include <f32file.h>
+
+// User includes
+#include "CMMCScBkupIndexBase.h"
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupIndexDataOwners) : public CMMCScBkupIndexBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupIndexDataOwners* NewLC();
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupIndexDataOwners();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupIndexDataOwners();
+
+ public: // API
+
+ /**
+ *
+ */
+ void AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo );
+
+ /**
+ *
+ */
+ inline TInt Count() const
+ { return iEntries.Count(); }
+
+ /**
+ *
+ */
+ inline const TMMCScBkupArchiveVector& At( TInt aIndex ) const
+ { return iEntries[ aIndex ]; }
+
+ public: // From CMMCScBkupIndexBase
+
+ /**
+ *
+ */
+ void StoreL(MMMCScBkupDriver& aDriver);
+
+ /**
+ *
+ */
+ void RestoreL(MMMCScBkupDriver& aDriver);
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ private: // Member data
+
+ //
+ RArray<TMMCScBkupArchiveVector> iEntries;
+
+ };
+
+
+
+
+#endif // __CMMCSCBKUPINDEXDATAOWNERS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupIndexJavaData.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,222 @@
+/*
+* Copyright (c) 2006 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: Declaration for CMMCScBkupIndexJavaDataEntry and
+* CMMCScBkupIndexJavaData
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPINDEXJAVADATA_H__
+#define __CMMCSCBKUPINDEXJAVADATA_H__
+
+// User includes
+#include "CMMCScBkupIndexWithIdentifier.h"
+
+
+
+/**
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS( CMMCScBkupIndexJavaDataEntry ) : public CBase
+ {
+ public:
+
+ /**
+ *
+ */
+ static CMMCScBkupIndexJavaDataEntry* NewLC();
+
+ /**
+ *
+ */
+ static CMMCScBkupIndexJavaDataEntry* NewLC( RReadStream& aStream );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupIndexJavaDataEntry();
+
+ private:
+
+ /**
+ *
+ */
+ CMMCScBkupIndexJavaDataEntry();
+
+ /**
+ *
+ */
+ void ConstructL();
+
+ public: // API
+
+ /**
+ *
+ */
+ inline const TDesC& Hash() const { return *iHash; }
+
+ /**
+ *
+ */
+ void SetHashL( const TDesC& aHash );
+
+ /**
+ *
+ */
+ inline TDriveNumber Drive() const { return iDrive; }
+
+ /**
+ *
+ */
+ inline void SetDrive( TDriveNumber aDrive ) { iDrive = aDrive; }
+
+ /**
+ *
+ */
+ inline const TMMCScBkupArchiveVector& MidletInfo() const { return iMidletInfo; }
+
+ /**
+ *
+ */
+ inline void SetMidletInfo( const TMMCScBkupArchiveVector& aInfo ) { iMidletInfo = aInfo; }
+
+ /**
+ *
+ */
+ inline const TMMCScBkupArchiveVector& MidletDataInfo() const { return iMidletDataInfo; }
+
+ /**
+ *
+ */
+ inline void SetMidletDataInfo( const TMMCScBkupArchiveVector& aInfo ) { iMidletDataInfo = aInfo; }
+
+ /**
+ *
+ */
+ inline TBool HasMidletDataInfo() const { return iMidletDataInfo.Length() > 0 && iMidletDataInfo.Offset() > 0; }
+
+ public: // Store & restore
+
+ /**
+ *
+ */
+ void InternalizeL( RReadStream& aStream );
+
+ /**
+ *
+ */
+ void ExternalizeL( RWriteStream& aStream ) const;
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ private: // Data members
+ //
+ HBufC* iHash;
+ //
+ TDriveNumber iDrive;
+ //
+ TMMCScBkupArchiveVector iMidletInfo;
+ //
+ TMMCScBkupArchiveVector iMidletDataInfo;
+ };
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupIndexJavaData) : public CMMCScBkupIndexBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupIndexJavaData* NewLC();
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupIndexJavaData();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupIndexJavaData();
+
+ public: // API
+
+ /**
+ *
+ */
+ void AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, const TDesC& aHash, TDriveNumber aDrive, TJavaTransferType aType );
+
+ /**
+ *
+ */
+ inline TInt Count() const { return iEntries.Count(); }
+
+ /**
+ *
+ */
+ const CMMCScBkupIndexJavaDataEntry& At( TInt aIndex ) const;
+
+ public: // From CMMCScBkupIndexBase
+
+ /**
+ *
+ */
+ void StoreL( MMMCScBkupDriver& aDriver );
+
+ /**
+ *
+ */
+ void RestoreL( MMMCScBkupDriver& aDriver );
+
+ private: // Internal classes
+
+ /**
+ *
+ */
+ CMMCScBkupIndexJavaDataEntry* EntryByHash( const TDesC& aHash, TDriveNumber aDrive ) const;
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ private: // Member data
+
+ //
+ RMMCScBkupPointerArray< CMMCScBkupIndexJavaDataEntry > iEntries;
+
+ };
+
+
+
+
+
+#endif // __CMMCSCBKUPINDEXJAVADATA_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupIndexPassiveData.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexPassiveData
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPINDEXPASSIVEDATA_H__
+#define __CMMCSCBKUPINDEXPASSIVEDATA_H__
+
+// System includes
+#include <f32file.h>
+
+// User includes
+#include "CMMCScBkupIndexWithIdentifier.h"
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupIndexPassiveData) : public CMMCScBkupIndexWithIdentifier< TSecureId >
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupIndexPassiveData* NewLC();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupIndexPassiveData();
+
+ };
+
+
+
+
+#endif // __CMMCScBkupIndexPassiveData_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupIndexPublicDataFiles.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexPublicDataFiles
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPINDEXPUBLICDATAFILES_H__
+#define __CMMCSCBKUPINDEXPUBLICDATAFILES_H__
+
+// System includes
+#include <f32file.h>
+
+// User includes
+#include "CMMCScBkupIndexBase.h"
+
+// Classes referenced
+class CMMCScBkupFileInfo;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupIndexPublicDataFiles) : public CMMCScBkupIndexBase
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupIndexPublicDataFiles* NewLC();
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupIndexPublicDataFiles();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupIndexPublicDataFiles();
+
+ public: // API
+
+ /**
+ *
+ */
+ void AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, const CMMCScBkupFileInfo& aFile );
+
+ /**
+ *
+ */
+ inline TInt Count() const { return iEntries.Count(); }
+
+ /**
+ *
+ */
+ const CMMCScBkupFileInfo& At( TInt aIndex, TMMCScBkupArchiveVector& aInfo ) const;
+
+ public: // From CMMCScBkupIndexBase
+
+ /**
+ *
+ */
+ void StoreL( MMMCScBkupDriver& aDriver );
+
+ /**
+ *
+ */
+ void RestoreL( MMMCScBkupDriver& aDriver );
+
+ private: // Internal classes
+
+ /**
+ *
+ * @since 3.0
+ */
+ class TMMCScBkupPublicFileEntry
+ {
+ public:
+ inline TMMCScBkupPublicFileEntry() { }
+ inline TMMCScBkupPublicFileEntry(const TMMCScBkupArchiveVector& aInfo, const CMMCScBkupFileInfo& aFile)
+ : iInfo(aInfo), iFile(&aFile)
+ {
+ }
+
+ public: // Data members
+ TMMCScBkupArchiveVector iInfo;
+ const CMMCScBkupFileInfo* iFile;
+ };
+
+ private: // Member data
+
+ //
+ RArray<TMMCScBkupPublicFileEntry> iEntries;
+
+ };
+
+
+#endif // __CMMCSCBKUPINDEXPUBLICDATAFILES_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupIndexSystemData.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexSystemData
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPINDEXSYSTEMDATA_H__
+#define __CMMCSCBKUPINDEXSYSTEMDATA_H__
+
+// System includes
+#include <f32file.h>
+
+// User includes
+#include "CMMCScBkupIndexWithIdentifier.h"
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupIndexSystemData) : public CMMCScBkupIndexWithIdentifier< TInt32 >
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupIndexSystemData* NewLC();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupIndexSystemData();
+
+ };
+
+
+
+
+
+#endif // __CMMCSCBKUPINDEXSYSTEMDATA_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupIndexWithIdentifier.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,329 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupIndexWithIdentifier
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPINDEXWITHIDENTIFIER_H__
+#define __CMMCSCBKUPINDEXWITHIDENTIFIER_H__
+
+// User includes
+#include "CMMCScBkupIndexBase.h"
+#include "TMMCScBkupOwnerDataType.h"
+#include "TMMCScBkupArchiveVector.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+template < class TIdentifier >
+class CMMCScBkupIndexEntry : public CBase
+ {
+ public:
+ inline static CMMCScBkupIndexEntry* NewLC( const TIdentifier& aIdentifier )
+ {
+ CMMCScBkupIndexEntry* self = new(ELeave) CMMCScBkupIndexEntry( aIdentifier );
+ CleanupStack::PushL( self );
+ return self;
+ }
+
+ inline static CMMCScBkupIndexEntry* NewLC( RReadStream& aStream )
+ {
+ CMMCScBkupIndexEntry* self = new(ELeave) CMMCScBkupIndexEntry();
+ CleanupStack::PushL( self );
+ aStream >> *self;
+ return self;
+ }
+
+ inline ~CMMCScBkupIndexEntry()
+ {
+ iAssociatedData.Close();
+ }
+
+ private:
+
+ inline CMMCScBkupIndexEntry()
+ {
+ }
+
+ inline CMMCScBkupIndexEntry( const TIdentifier& aIdentifier )
+ : iIdentifier( aIdentifier )
+ {
+ }
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ public:// Store & Restore
+
+ inline void InternalizeL( RReadStream& aStream )
+ {
+ aStream.ReadInt32L(); // EStreamFormatVersion1
+ aStream.ReadInt32L(); // spare1
+ aStream.ReadInt32L(); // spare2
+ aStream.ReadInt32L(); // spare3
+ //
+ iIdentifier = aStream.ReadInt32L();
+ //
+ const TInt count = aStream.ReadInt32L();
+ for(TInt i=0; i<count; i++)
+ {
+ TMMCScBkupArchiveDriveAndVector entry;
+ aStream >> entry;
+ //
+ iAssociatedData.AppendL( entry );
+ }
+ }
+
+ inline void ExternalizeL( RWriteStream& aStream ) const
+ {
+ aStream.WriteInt32L( EStreamFormatVersion1 );
+ aStream.WriteInt32L( 0 ); // spare1
+ aStream.WriteInt32L( 0 ); // spare2
+ aStream.WriteInt32L( 0 ); // spare3
+ //
+ aStream.WriteInt32L( iIdentifier );
+ //
+ const TInt count = iAssociatedData.Count();
+ aStream.WriteInt32L(count);
+ //
+ for(TInt i=0; i<count; i++)
+ {
+ const TMMCScBkupArchiveDriveAndVector& entry = iAssociatedData[i];
+ aStream << entry;
+ }
+ }
+
+ public: // General access
+
+ inline const TIdentifier& Identifier() const
+ { return iIdentifier; }
+
+ inline void AddEntryL( const TMMCScBkupArchiveDriveAndVector& aEntry )
+ { iAssociatedData.AppendL(aEntry); }
+
+ inline TInt Count() const
+ { return iAssociatedData.Count(); }
+
+ inline const TMMCScBkupArchiveDriveAndVector& Entry(TInt aIndex) const
+ { return iAssociatedData[ aIndex ]; }
+
+ inline const RArray<TMMCScBkupArchiveDriveAndVector>& Entries() const
+ { return iAssociatedData; }
+
+ private:
+
+ /**
+ *
+ */
+ TIdentifier iIdentifier;
+
+ /**
+ *
+ */
+ RArray<TMMCScBkupArchiveDriveAndVector> iAssociatedData;
+ };
+
+
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+template < class TIdentifier >
+class CMMCScBkupIndexWithIdentifier : public CMMCScBkupIndexBase
+ {
+
+ public:
+
+ /**
+ * C++ destructor
+ */
+ inline ~CMMCScBkupIndexWithIdentifier()
+ {
+ iEntries.Close();
+ }
+
+ protected:
+
+ /**
+ * C++ default constructor
+ */
+ inline CMMCScBkupIndexWithIdentifier( TMMCScBkupOwnerDataType aType )
+ : CMMCScBkupIndexBase( aType )
+ {
+ }
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ public: // API
+
+ /**
+ *
+ */
+ inline void AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive, const TIdentifier& aIdentifier )
+ {
+ // Locate the parent
+ CMMCScBkupIndexEntry< TIdentifier >& entry = EntryByIdentifierL( aIdentifier );
+
+ // Create new sub-entry
+ TMMCScBkupArchiveDriveAndVector subItem;
+ subItem.iDrive = aDrive;
+ subItem.iVector = aInfo;
+
+ // Add it to our index
+ entry.AddEntryL( subItem );
+ }
+
+ /**
+ *
+ */
+ inline TInt Count() const
+ { return iEntries.Count(); }
+
+ /**
+ *
+ */
+ inline const CMMCScBkupIndexEntry< TIdentifier >& At( TInt aIndex ) const
+ { return *iEntries[ aIndex ]; }
+
+ /**
+ *
+ */
+ inline void StoreL(MMMCScBkupDriver& aDriver)
+ {
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
+ RWriteStream stream( archiveDataInterface.ADIWriteStreamUncompressedLC() );
+ //
+ stream.WriteInt32L( EStreamFormatVersion1 );
+ stream.WriteInt32L( 0 ); // spare1
+ stream.WriteInt32L( 0 ); // spare2
+ stream.WriteInt32L( 0 ); // spare3
+
+ const TInt count = iEntries.Count();
+ stream.WriteInt32L( count );
+ //
+ for(TInt i=0; i<count; i++)
+ {
+ const CMMCScBkupIndexEntry< TIdentifier > & entry = *iEntries[ i ];
+ stream << entry;
+ }
+ //
+ stream.CommitL();
+ CleanupStack::PopAndDestroy(); // stream
+
+ // Update our base class info with the offset to the index
+ SetVector( archiveDataInterface.ADICurrentArchiveVectorInfo() );
+ }
+
+ /**
+ *
+ */
+ inline void RestoreL(MMMCScBkupDriver& aDriver)
+ {
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
+ RReadStream stream( archiveDataInterface.ADIReadStreamUncompressedLC( Vector().Offset() ) );
+ //
+ stream.ReadInt32L(); // EStreamFormatVersion1
+ stream.ReadInt32L(); // spare1
+ stream.ReadInt32L(); // spare2
+ stream.ReadInt32L(); // spare3
+ //
+ const TInt count = stream.ReadInt32L();
+ for(TInt i=0; i<count; i++)
+ {
+ CMMCScBkupIndexEntry< TIdentifier >* entry = CMMCScBkupIndexEntry< TIdentifier >::NewLC( stream );
+ iEntries.AppendL( entry );
+ CleanupStack::Pop( entry );
+ }
+ //
+ CleanupStack::PopAndDestroy(); // stream
+ //
+ if ( archiveDataInterface.ADICurrentArchiveVectorInfo().Length() > Vector().Length() )
+ {
+ // We've read too much!
+ User::Leave( KErrCorrupt );
+ }
+ }
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ inline CMMCScBkupIndexEntry< TIdentifier >* EntryByIdentifier( const TIdentifier& aIdentifier )
+ {
+ CMMCScBkupIndexEntry< TIdentifier >* ret = NULL;
+ //
+ const TInt count = iEntries.Count();
+ for( TInt i=count-1; i>=0; i-- )
+ {
+ CMMCScBkupIndexEntry< TIdentifier >* entry = iEntries[ i ];
+ if ( entry->Identifier() == aIdentifier )
+ {
+ ret = entry;
+ break;
+ }
+ }
+ //
+ return ret;
+ }
+
+ /**
+ *
+ */
+ inline CMMCScBkupIndexEntry< TIdentifier >& EntryByIdentifierL( const TIdentifier& aIdentifier )
+ {
+ CMMCScBkupIndexEntry< TIdentifier >* ret = EntryByIdentifier( aIdentifier );
+ if ( !ret )
+ {
+ // Need to make a new entry
+ ret = CMMCScBkupIndexEntry< TIdentifier >::NewLC( aIdentifier );
+ iEntries.AppendL( ret );
+ CleanupStack::Pop( ret );
+ }
+ //
+ return *ret;
+ }
+
+ private: // Member Data
+
+ //
+ RMMCScBkupPointerArray< CMMCScBkupIndexEntry< TIdentifier > > iEntries;
+ };
+
+
+
+
+
+
+#endif // __CMMCSCBKUPINDEXWITHIDENTIFIER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupOperationParameters.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,356 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupOpParamsBase
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPOPERATIONPARAMETERS_H__
+#define __CMMCSCBKUPOPERATIONPARAMETERS_H__
+
+// System includes
+#include <connect/sbdefs.h>
+#include <connect/sbtypes.h>
+#include <barsread.h>
+#include <babitflags.h>
+
+// User includes
+#include "MMCScBkupOperations.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "RMMCScBkupPointerArray.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class CMMCScBkupDriveAndOperationTypeManager;
+class CMMCScBkupArchiveInfo;
+
+_LIT( KBackUpFolder, "\\Backup\\" );
+_LIT( KBackUpFiles, "*.arc" );
+const TInt KCArrayGranularity = 10;
+
+class TBkupDrivesAndOperation
+{
+public:
+ TBkupDrivesAndOperation(){}
+ TBkupDrivesAndOperation( unsigned int drvCategories, unsigned int ownerDataType );
+ TBkupDrivesAndOperation( const TBkupDrivesAndOperation &other )
+ {
+ mDrvCategories = other.mDrvCategories;
+ mOwnerDataType = other.mOwnerDataType;
+ }
+
+ void setDrvCategories( unsigned int drvCategories ){ mDrvCategories = drvCategories; }
+ void setOwnerDataType( unsigned int ownerDataType ){ mOwnerDataType = ownerDataType; }
+
+ unsigned int drvCategories(){ return mDrvCategories; }
+ unsigned int ownerDataType(){ return mOwnerDataType; }
+private:
+ unsigned int mDrvCategories;
+ unsigned int mOwnerDataType;
+};
+
+class CBkupCategory: CBase
+{
+private:
+
+ CBkupCategory()
+ {
+ }
+public:
+
+ static CBkupCategory* NewL()
+ {
+ CBkupCategory* self = NewLC();
+ CleanupStack::Pop(self);
+ return self;
+ }
+ static CBkupCategory* NewLC()
+ {
+ CBkupCategory* self = new(ELeave) CBkupCategory();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+ void ConstructL()
+ {
+ mUids = new ( ELeave ) CArrayFixFlat<unsigned int>( KCArrayGranularity );
+ mExclude_uids = new ( ELeave ) CArrayFixFlat<unsigned int>( KCArrayGranularity );
+ mArchive_name = 0;
+ }
+
+ ~CBkupCategory()
+ {
+ mUids->Reset();
+ mExclude_uids->Reset();
+ delete mArchive_name;
+ }
+
+ void setCategory( unsigned int category )
+ {
+ mCategory = category;
+ }
+
+ void setArchive_name( TDesC16& archive_name )
+ {
+ if ( mArchive_name != 0 )
+ {
+ delete mArchive_name;
+ }
+ TRAP_IGNORE( mArchive_name = HBufC::NewL( archive_name.Length() ) );
+ *mArchive_name = archive_name;
+ }
+
+ void setSpecial_flags( unsigned int special_flags )
+ {
+ mSpecial_flags = special_flags;
+ }
+
+ void setExclude_special_flags( unsigned int exclude_special_flags )
+ {
+ mExclude_special_flags = exclude_special_flags;
+ }
+
+ void addUids( unsigned int uid )
+ {
+ TRAP_IGNORE( mUids->AppendL( uid, sizeof(unsigned int) ) );
+ }
+
+ void addExclude_uids( unsigned int exclude_uid )
+ {
+ TRAP_IGNORE( mExclude_uids->AppendL( exclude_uid, sizeof(unsigned int) ) );
+ }
+
+ unsigned int category() { return mCategory; }
+ HBufC* archive_name() { return mArchive_name; }
+ unsigned int special_flags() { return mSpecial_flags; }
+ unsigned int exclude_special_flags() { return mExclude_special_flags; }
+ CArrayFixFlat<unsigned int>* uids() { return mUids; }
+ CArrayFixFlat<unsigned int>* exclude_uids() { return mExclude_uids; }
+
+private:
+ unsigned int mCategory;
+ HBufC* mArchive_name;
+ unsigned int mSpecial_flags;
+ unsigned int mExclude_special_flags;
+ CArrayFixFlat<unsigned int>* mUids;
+ CArrayFixFlat<unsigned int>* mExclude_uids;
+};
+
+typedef CArrayFixFlat<TBkupDrivesAndOperation> BkupDrivesAndOperationList;
+typedef RPointerArray<CBkupCategory> BkupCategoryList;
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupOpParamsBase) : public CBase
+ {
+ public:
+
+ /**
+ *
+ */
+ IMPORT_C ~CMMCScBkupOpParamsBase();
+
+ protected:
+
+ /**
+ *
+ */
+ CMMCScBkupOpParamsBase( );
+
+ /**
+ *
+ */
+ void ConstructL( BkupDrivesAndOperationList *aDriveList, TBitFlags aCategories );
+
+ public: // Common mandatory framework methods
+
+ /**
+ *
+ */
+ virtual TMMCScBkupOperationType AssociatedOpType() const = 0;
+
+ /**
+ *
+ */
+ virtual TBURPartType PartType() const = 0;
+
+ /**
+ *
+ */
+ virtual TBackupIncType IncrementType() const = 0;
+
+ /**
+ *
+ */
+ virtual TTransferDataType PassiveTransferType() const = 0;
+
+ /**
+ *
+ */
+ virtual TTransferDataType ActiveTransferType() const = 0;
+
+ /**
+ *
+ */
+ virtual TPackageDataType PackageTransferType() const = 0;
+
+ public: // Common attributes
+
+ /**
+ *
+ */
+ IMPORT_C const CMMCScBkupDriveAndOperationTypeManager& DriveAndOperations() const;
+
+ /**
+ *
+ */
+ IMPORT_C void SetArchiveInfosL(RPointerArray<CMMCScBkupArchiveInfo>& aInfos);
+
+ /**
+ *
+ */
+ RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& ArchiveInfos();
+
+ /**
+ *
+ */
+ const CMMCScBkupArchiveInfo& ArchiveInfo(TBitFlags aCategory) const;
+
+ /**
+ *
+ */
+ const TDesC& FileName(TInt aIndex) const;
+
+ /**
+ *
+ */
+ TBitFlags Categories() { return iCategories; }
+
+ private: // Data members
+
+ //
+ CMMCScBkupDriveAndOperationTypeManager* iDriveAndOperations;
+ //
+ RMMCScBkupPointerArray< CMMCScBkupArchiveInfo > iArchiveInfos;
+ //
+ TBitFlags iCategories;
+ };
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupOpParamsBackupFull) : public CMMCScBkupOpParamsBase
+ {
+ public:
+
+ /**
+ *
+ */
+ IMPORT_C static CMMCScBkupOpParamsBackupFull* NewL(
+ BkupDrivesAndOperationList *aDriveList,
+ BkupCategoryList *aCategoryList,
+ TDriveNumber aDrive, TBitFlags aCategories );
+
+ /**
+ *
+ */
+ IMPORT_C ~CMMCScBkupOpParamsBackupFull();
+
+ private:
+
+ /**
+ *
+ */
+ CMMCScBkupOpParamsBackupFull( TDriveNumber aDrive );
+
+ /**
+ *
+ */
+ void ConstructL( BkupDrivesAndOperationList *aDriveList,
+ BkupCategoryList *aCategoryList, TBitFlags aCategories );
+
+ /**
+ *
+ */
+ void ReadFromResourceL( BkupCategoryList *aCategoryList );
+
+ public: // From CMMCScBkupOpParamsBase
+ IMPORT_C TMMCScBkupOperationType AssociatedOpType() const;
+ IMPORT_C TBURPartType PartType() const;
+ IMPORT_C TBackupIncType IncrementType() const;
+ IMPORT_C TTransferDataType PassiveTransferType() const;
+ IMPORT_C TTransferDataType ActiveTransferType() const;
+ IMPORT_C TPackageDataType PackageTransferType() const;
+
+ private: // Data members
+
+ //
+ TDriveNumber iDrive;
+ };
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupOpParamsRestoreFull) : public CMMCScBkupOpParamsBase
+ {
+ public:
+
+ /**
+ *
+ */
+ IMPORT_C static CMMCScBkupOpParamsRestoreFull* NewL(
+ BkupDrivesAndOperationList *aDriveList, TBitFlags aCategories );
+
+ /**
+ *
+ */
+ IMPORT_C ~CMMCScBkupOpParamsRestoreFull();
+
+ private:
+
+ /**
+ *
+ */
+ CMMCScBkupOpParamsRestoreFull();
+
+ public: // From CMMCScBkupOpParamsBase
+ IMPORT_C TMMCScBkupOperationType AssociatedOpType() const;
+ IMPORT_C TBURPartType PartType() const;
+ IMPORT_C TBackupIncType IncrementType() const;
+ IMPORT_C TTransferDataType PassiveTransferType() const;
+ IMPORT_C TTransferDataType ActiveTransferType() const;
+ IMPORT_C TPackageDataType PackageTransferType() const;
+ };
+
+
+
+
+
+#endif // __CMMCSCBKUPOPERATIONPARAMETERS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupState.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,183 @@
+/*
+* Copyright (c) 2002 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: Declaration for CMMCScBkupState
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATE_H__
+#define __CMMCSCBKUPSTATE_H__
+
+// System includes
+#include <e32base.h>
+
+// User includes
+#include "MMMCScBkupDriver.h"
+#include "MMCScBkupStateIds.h"
+#include "RMMCScBkupPointerArray.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class CMMCScBkupState;
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupState) : public CActive
+ {
+ public:
+
+ /**
+ * Enumeration specifying how state is supposed to be handled
+ */
+ enum TStateExecution
+ {
+ EStateOnce = 0,
+ EStatePerCategory,
+ EStatePerCategoryCommon
+ };
+
+ /**
+ * Destructor
+ */
+ ~CMMCScBkupState();
+
+ protected:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupState( MMMCScBkupDriver& aDriver, TInt aPriority = CActive::EPriorityIdle );
+
+ public:
+
+ /**
+ * Return the unique RTTI id of this state
+ */
+ virtual TMMCScBkupStateId StateId() const = 0;
+
+ /**
+ * Return the next state that should be executed
+ * after this state has finished. This allows
+ * for dynamic changes in the state machine
+ */
+ virtual TMMCScBkupStateId NextStateId() const = 0;
+
+ /**
+ * Return false if no need for category specific actions, otherwise true
+ */
+ virtual TStateExecution CategorySpecific() const { return EStateOnce; }
+
+ /**
+ * Perform the action associated with this
+ * state
+ */
+ void ExecuteL(TRequestStatus& aObserver);
+
+ protected: // Virtual framework
+
+ /**
+ * Perform the initial action associated with this
+ * state
+ */
+ virtual void PerformStateInitL() = 0;
+
+ /**
+ * Perform some asynchronous operation
+ */
+ virtual void PerformAsynchronousStateStepL();
+
+ /**
+ * Perform some asynchronous cancellation
+ */
+ virtual void PerformAsynchronousCancellation();
+
+ /**
+ * Called just before observer's request is completed
+ * in the case of an error-free operation. Not called
+ * when errors occur during state processing.
+ */
+ virtual void PerformLastRightsL();
+
+ /**
+ * Called from RunError
+ */
+ virtual TBool PerformAsynchronousErrorCleanup(TInt aError);
+
+ private: // Virtual framework
+
+ /**
+ * Default behaviour is to panic if called
+ */
+ void RunL();
+
+ /**
+ *
+ */
+ void DoCancel();
+
+ /**
+ * Default behaviour is to return KErrNone
+ */
+ TInt RunError(TInt aError);
+
+ protected: // Internal API
+
+ /**
+ *
+ */
+ inline MMMCScBkupDriver& Driver() const { return iDriver; }
+
+ /**
+ *
+ */
+ inline MMMCScBkupArchiveDataInterface& ADI() const { return iDriver.DrvADI(); }
+
+ /**
+ *
+ */
+ void CompleteSelf(TInt aCompletionCode = KErrNone);
+
+ /**
+ *
+ */
+ void SetObserver(TRequestStatus& aStatus);
+
+ private: // Internal API
+
+ /**
+ *
+ */
+ void CompleteObserver(TInt aCompletionCode);
+
+ private: // Member data
+
+ // Driver
+ MMMCScBkupDriver& iDriver;
+ // Observer
+ TRequestStatus* iObserver;
+ };
+
+
+
+
+
+#endif // __CMMCSCBKUPSTATE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateArchiveOpActiveData.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,121 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpActiveData
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEARCHIVEOPACTIVEDATA_H__
+#define __CMMCSCBKUPSTATEARCHIVEOPACTIVEDATA_H__
+
+// System includes
+#include <connect/sbtypes.h>
+
+// User includes
+#include "CMMCScBkupStateOpAware.h"
+#include "TMMCScBkupArchiveVector.h"
+#include "CMMCScBkupTransferWriteRequest.h"
+#include "CMMCScBkupTransferReadRequest.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class CMMCScBkupDataOwnerInfo;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpActiveData) : public CMMCScBkupStateOpAware, public MMMCScBkupIndexHandler
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateArchiveOpActiveData* NewL( MMMCScBkupDriver& aDriver );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupStateArchiveOpActiveData( );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateArchiveOpActiveData( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+
+ public: // From CMMCScBkupStateOpAware
+ TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
+ TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
+
+ private: // From CMMCScBkupStateOpAware
+ void PerformStateInitBackupL( TBool aPartial );
+ void PerformStateInitRestoreL( TBool aPartial );
+ void PerformAsynchronousStateStepBackupL( TBool aPartial );
+ void PerformAsynchronousStateStepRestoreL( TBool aPartial );
+ void PerformLastRightsBackupL( TBool aPartial );
+ TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
+ TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
+
+ private: // From CMMCScBkupState
+ void PerformAsynchronousCancellation();
+
+ private: // From MMMCScBkupIndexHandler
+ void AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive );
+
+ private: // Internal members
+
+ /**
+ *
+ */
+ inline TBool AllDataOwnersHandled() const { return !iAtLeastOneDataOwnerIsNotYetReady; }
+
+ /**
+ *
+ */
+ void CheckNeedToStartRetryTimerL();
+
+ private: // Member data
+
+ //
+ TInt iIndexValueCurrent;
+ //
+ TBool iAtLeastOneDataOwnerIsNotYetReady;
+ //
+ RTimer iTimer;
+ //
+ CMMCScBkupWriteDataTransferRequest< TTransferDataType >* iBackupTransferObject;
+ //
+ CMMCScBkupReadDataTransferRequest< TTransferDataType >* iRestoreTransferObject;
+ };
+
+
+
+
+
+
+
+
+#endif // __CMMCSCBKUPSTATEARCHIVEOPACTIVEDATA_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateArchiveOpArchiveFooter.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpArchiveFooter
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEARCHIVEOPARCHIVEFOOTER_H__
+#define __CMMCSCBKUPSTATEARCHIVEOPARCHIVEFOOTER_H__
+
+// User includes
+#include "CMMCScBkupState.h"
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpArchiveFooter) : public CMMCScBkupState
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateArchiveOpArchiveFooter* NewL( MMMCScBkupDriver& aDriver );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateArchiveOpArchiveFooter( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+ TMMCScBkupStateId NextStateId() const;
+ TStateExecution CategorySpecific() const { return EStatePerCategory; }
+
+ private: // From CMMCScBkupState
+ void PerformStateInitL();
+ void PerformAsynchronousStateStepL();
+ };
+
+
+#endif // __CMMCSCBKUPSTATEARCHIVEOPARCHIVEFOOTER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateArchiveOpArchiveHeader.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpArchiveHeader
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEARCHIVEOPARCHIVEHEADER_H__
+#define __CMMCSCBKUPSTATEARCHIVEOPARCHIVEHEADER_H__
+
+// User includes
+#include "CMMCScBkupState.h"
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpArchiveHeader) : public CMMCScBkupState
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateArchiveOpArchiveHeader* NewL( MMMCScBkupDriver& aDriver );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateArchiveOpArchiveHeader( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+ TMMCScBkupStateId NextStateId() const;
+ TStateExecution CategorySpecific() const { return EStatePerCategory; }
+
+ private: // From CMMCScBkupState
+ void PerformStateInitL();
+ void PerformAsynchronousStateStepL();
+ };
+
+
+#endif // __CMMCSCBKUPSTATEARCHIVEOPARCHIVEHEADER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateArchiveOpDataOwners.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,82 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpDataOwners
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEARCHIVEOPDATAOWNERS_H__
+#define __CMMCSCBKUPSTATEARCHIVEOPDATAOWNERS_H__
+
+// User includes
+#include "CMMCScBkupStateOpAware.h"
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpDataOwners) : public CMMCScBkupStateOpAware
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateArchiveOpDataOwners* NewL( MMMCScBkupDriver& aDriver );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupStateArchiveOpDataOwners();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateArchiveOpDataOwners( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+
+ public: // From CMMCScBkupStateOpAware
+ TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
+ TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
+
+ private: // From CMMCScBkupStateOpAware
+
+ private: // From CMMCScBkupState
+ void PerformStateInitBackupL( TBool aPartial );
+ void PerformStateInitRestoreL( TBool aPartial );
+ //
+ void PerformAsynchronousStateStepBackupL( TBool aPartial );
+ void PerformAsynchronousStateStepRestoreL( TBool aPartial );
+ //
+ void PerformLastRightsBackupL( TBool aPartial );
+ void PerformLastRightsRestoreL( TBool aPartial );
+ //
+ TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
+
+ private: // Member data
+
+ //
+ TInt iIndexValueCurrent;
+ };
+
+
+#endif // __CMMCSCBKUPSTATEARCHIVEOPDATAOWNERS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateArchiveOpJavaData.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpJavaData
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEARCHIVEOPJAVADATA_H__
+#define __CMMCSCBKUPSTATEARCHIVEOPJAVADATA_H__
+
+// System includes
+#include <connect/sbtypes.h>
+
+// User includes
+#include "CMMCScBkupStateOpAware.h"
+#include "TMMCScBkupArchiveVector.h"
+#include "CMMCScBkupTransferWriteRequest.h"
+#include "CMMCScBkupTransferReadRequest.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class CMMCScBkupDataOwnerInfo;
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpJavaData) : public CMMCScBkupStateOpAware, public MMMCScBkupIndexHandler
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateArchiveOpJavaData* NewL( MMMCScBkupDriver& aDriver );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupStateArchiveOpJavaData( );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateArchiveOpJavaData( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+
+ public: // From CMMCScBkupStateOpAware
+ TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
+ TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
+
+ private: // From CMMCScBkupStateOpAware
+ void PerformStateInitBackupL( TBool aPartial );
+ void PerformStateInitRestoreL( TBool aPartial );
+ void PerformAsynchronousStateStepBackupL( TBool aPartial );
+ void PerformAsynchronousStateStepRestoreL( TBool aPartial );
+ void PerformLastRightsBackupL( TBool aPartial );
+ void PerformLastRightsRestoreL( TBool aPartial );
+ TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
+ TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
+
+ private: // From CMMCScBkupState
+ void PerformAsynchronousCancellation();
+
+ private: // From MMMCScBkupIndexHandler
+ void AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive );
+
+ private: // Internal enumerations
+ enum TJavaState
+ {
+ EJavaStateIdle = 0,
+ EJavaStateMidlet,
+ EJavaStateMidletData
+ };
+
+ private: // Internal methods
+ void BackupMidletL();
+ void BackupMidletDataL();
+ void RestoreMidletL();
+ void RestoreMidletDataL();
+
+ private: // Member data
+
+ //
+ TInt iIndexValueCurrent;
+ //
+ TJavaState iCurrentJavaState;
+ //
+ RArray<TMMCScBkupArchiveDriveAndVector> iRestoreEntries;
+ //
+ CMMCScBkupWriteDataTransferRequest< TJavaTransferType >* iBackupTransferObjectMidlet;
+ CMMCScBkupWriteDataTransferRequest< TJavaTransferType >* iBackupTransferObjectMidletData;
+ CMMCScBkupReadDataTransferRequest< TJavaTransferType >* iRestoreTransferObjectMidlet;
+ CMMCScBkupReadDataTransferRequest< TJavaTransferType >* iRestoreTransferObjectMidletData;
+ };
+
+
+
+
+
+#endif // __CMMCSCBKUPSTATEARCHIVEOPJAVADATA_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateArchiveOpPassiveData.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,101 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpPassiveData
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEARCHIVEOPPASSIVEDATA_H__
+#define __CMMCSCBKUPSTATEARCHIVEOPPASSIVEDATA_H__
+
+// System includes
+#include <connect/sbtypes.h>
+
+// User includes
+#include "CMMCScBkupStateOpAware.h"
+#include "TMMCScBkupArchiveVector.h"
+#include "CMMCScBkupTransferWriteRequest.h"
+#include "CMMCScBkupTransferReadRequest.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class CMMCScBkupDataOwnerInfo;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpPassiveData) : public CMMCScBkupStateOpAware, public MMMCScBkupIndexHandler
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateArchiveOpPassiveData* NewL( MMMCScBkupDriver& aDriver );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupStateArchiveOpPassiveData( );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateArchiveOpPassiveData( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+
+ public: // From CMMCScBkupStateOpAware
+ TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
+ TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
+
+ private: // From CMMCScBkupStateOpAware
+ void PerformStateInitBackupL( TBool aPartial );
+ void PerformStateInitRestoreL( TBool aPartial );
+ void PerformAsynchronousStateStepBackupL( TBool aPartial );
+ void PerformAsynchronousStateStepRestoreL( TBool aPartial );
+ void PerformLastRightsBackupL( TBool aPartial );
+ TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
+ TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
+
+ private: // From CMMCScBkupState
+ void PerformAsynchronousCancellation();
+
+ private: // From MMMCScBkupIndexHandler
+ void AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive );
+
+ private: // Member data
+
+ //
+ TInt iIndexValueCurrent;
+ //
+ CMMCScBkupWriteDataTransferRequest< TTransferDataType >* iBackupTransferObject;
+ //
+ CMMCScBkupReadDataTransferRequest< TTransferDataType >* iRestoreTransferObject;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPSTATEARCHIVEOPPASSIVEDATA_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateArchiveOpPublicDataFiles.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpPublicDataFiles
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEARCHIVEOPPUBLICDATAFILES_H__
+#define __CMMCSCBKUPSTATEARCHIVEOPPUBLICDATAFILES_H__
+
+// System includes
+#include <connect/sbtypes.h>
+
+// User includes
+#include "CMMCScBkupStateOpAware.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class CMMCScBkupDataOwnerInfo;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpPublicDataFiles) : public CMMCScBkupStateOpAware
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateArchiveOpPublicDataFiles* NewL( MMMCScBkupDriver& aDriver );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateArchiveOpPublicDataFiles( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+
+ public: // From CMMCScBkupStateOpAware
+ TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
+ TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
+
+ private: // From CMMCScBkupStateOpAware
+ void PerformStateInitBackupL( TBool aPartial );
+ void PerformStateInitRestoreL( TBool aPartial );
+ void PerformAsynchronousStateStepBackupL( TBool aPartial );
+ void PerformAsynchronousStateStepRestoreL( TBool aPartial );
+ void PerformLastRightsBackupL( TBool aPartial );
+ void PerformLastRightsRestoreL( TBool aPartial );
+ TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
+ TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
+ void PerformAsynchronousCancellation();
+
+ private: // Internal enumerations
+
+ /**
+ *
+ */
+ enum TState
+ {
+ EStateCommonIdle = 0,
+ EStateCommonKickOff,
+ EStateCommonProcessingFile,
+ EStateBackupAddIndexRecord,
+ EStateRestoreResetAttributes
+ };
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ void CompressingAndWritingFileL();
+
+ /**
+ *
+ */
+ void DecompressingAndWritingFileL();
+
+ /**
+ *
+ */
+ void AddIndexRecordL();
+
+ /**
+ *
+ */
+ void RestoreFileAttributesL();
+
+ /**
+ *
+ */
+ inline void SetState(TState aState) { iState = aState; }
+
+ /**
+ *
+ */
+ inline TState State() const { return iState; }
+
+ private: // Member data
+
+ //
+ TInt iIndexValueCurrent;
+ //
+ TState iState;
+ };
+
+
+#endif // __CMMCSCBKUPSTATEARCHIVEOPPUBLICDATAFILES_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateArchiveOpSystemData.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateArchiveOpSystemData
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEARCHIVEOPSYSTEMDATA_H__
+#define __CMMCSCBKUPSTATEARCHIVEOPSYSTEMDATA_H__
+
+// System includes
+#include <connect/sbtypes.h>
+
+// User includes
+#include "CMMCScBkupStateOpAware.h"
+#include "TMMCScBkupArchiveVector.h"
+#include "CMMCScBkupTransferWriteRequest.h"
+#include "CMMCScBkupTransferReadRequest.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class CMMCScBkupDataOwnerInfo;
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateArchiveOpSystemData) : public CMMCScBkupStateOpAware, public MMMCScBkupIndexHandler
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateArchiveOpSystemData* NewL( MMMCScBkupDriver& aDriver );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupStateArchiveOpSystemData( );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateArchiveOpSystemData( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+
+ public: // From CMMCScBkupStateOpAware
+ TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const;
+ TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const;
+
+ private: // From CMMCScBkupStateOpAware
+ void PerformStateInitBackupL( TBool aPartial );
+ void PerformStateInitRestoreL( TBool aPartial );
+ void PerformAsynchronousStateStepBackupL( TBool aPartial );
+ void PerformAsynchronousStateStepRestoreL( TBool aPartial );
+ void PerformLastRightsBackupL( TBool aPartial );
+ void PerformLastRightsRestoreL( TBool aPartial );
+ TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
+ TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
+
+ private: // From CMMCScBkupState
+ void PerformAsynchronousCancellation();
+
+ private: // From MMMCScBkupIndexHandler
+ void AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive );
+
+ private: // Member data
+
+ //
+ TInt iIndexValueCurrent;
+ // Associated secure id of the data owner (if it has one)
+ TSecureId iSecureId;
+ //
+ CMMCScBkupWriteDataTransferRequest< TPackageDataType >* iBackupTransferObject;
+ CMMCScBkupReadDataTransferRequest< TPackageDataType >* iRestoreTransferObject;
+ };
+
+
+
+
+
+#endif // __CMMCSCBKUPSTATEARCHIVEOPSYSTEMDATA_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateFactory.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateFactory
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEFACTORY_H__
+#define __CMMCSCBKUPSTATEFACTORY_H__
+
+// User includes
+#include "MMCScBkupStateIds.h"
+#include "MMCScBkupOperations.h"
+
+// Classes referenced
+class CMMCScBkupState;
+class MMMCScBkupDriver;
+
+// Type definitions
+typedef RPointerArray<CMMCScBkupState> RMMCScBkupStateArray;
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+class CMMCScBkupStateFactory : public CBase
+ {
+ public:
+ /**
+ *
+ */
+ static CMMCScBkupStateFactory* FactoryByOperationTypeLC( TMMCScBkupOperationType aOperationType );
+
+ protected:
+
+ /**
+ *
+ */
+ CMMCScBkupStateFactory();
+
+ public: // From CMMCScBkupStateFactory
+
+ /**
+ *
+ */
+ virtual CMMCScBkupState* GetStateLC(TMMCScBkupStateId aCurrentState, MMMCScBkupDriver& aDriver) = 0;
+ };
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateFactoryBackup) : public CMMCScBkupStateFactory
+ {
+ public:
+ static CMMCScBkupStateFactoryBackup* NewL();
+
+ private:
+ CMMCScBkupStateFactoryBackup();
+
+ public: // From CMMCScBkupStateFactory
+ CMMCScBkupState* GetStateLC(TMMCScBkupStateId aRequiredType, MMMCScBkupDriver& aDriver);
+ };
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateFactoryRestore) : public CMMCScBkupStateFactory
+ {
+ public:
+ static CMMCScBkupStateFactoryRestore* NewL();
+
+ private:
+ CMMCScBkupStateFactoryRestore();
+
+ public: // From CMMCScBkupStateFactory
+ CMMCScBkupState* GetStateLC(TMMCScBkupStateId aRequiredType, MMMCScBkupDriver& aDriver);
+ };
+
+
+
+
+#endif // __CMMCSCBKUPSTATEFACTORY_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateGetDataOwnerStatuses.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateGetDataOwnerStatuses
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEGETDATAOWNERSTATUSES_H__
+#define __CMMCSCBKUPSTATEGETDATAOWNERSTATUSES_H__
+
+// User includes
+#include "CMMCScBkupState.h"
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateGetDataOwnerStatuses) : public CMMCScBkupState
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateGetDataOwnerStatuses* NewL( MMMCScBkupDriver& aDriver );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupStateGetDataOwnerStatuses( );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateGetDataOwnerStatuses( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+ TMMCScBkupStateId NextStateId() const;
+ TStateExecution CategorySpecific() const { return EStatePerCategory; }
+
+ private: // From CMMCScBkupState
+ void PerformStateInitL();
+ void PerformAsynchronousStateStepL();
+
+ private: // Internal state enumeration
+
+ /**
+ *
+ */
+ enum TState
+ {
+ EPrearingQuery = 0,
+ EGettingStatus,
+ EProcessingResults
+ };
+
+ private: // Internal methods
+ inline TState State() const { return iState; }
+ inline void SetState(TState aState) { iState = aState; }
+ //
+ void PrepareQueryL();
+ void ProcessStatusResultsL();
+
+ private: // Member data
+
+ //
+ RSIDStatusArray iStatusArray;
+ //
+ TState iState;
+ };
+
+
+
+
+#endif // __CMMCSCBKUPSTATEGETDATAOWNERSTATUSES_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateGetDataOwners.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateGetDataOwners
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEGETDATAOWNERS_H__
+#define __CMMCSCBKUPSTATEGETDATAOWNERS_H__
+
+// User includes
+#include "CMMCScBkupState.h"
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateGetDataOwners) : public CMMCScBkupState
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateGetDataOwners* NewL( MMMCScBkupDriver& aDriver );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateGetDataOwners( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+ TMMCScBkupStateId NextStateId() const;
+
+ private: // From CMMCScBkupState
+ void PerformStateInitL();
+ void PerformAsynchronousStateStepL();
+ };
+
+
+
+
+#endif // __CMMCSCBKUPSTATEGETDATAOWNERS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateNotifyAllSnapshotsSupplied.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateNotifyAllSnapshotsSupplied
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATENOTIFYALLSNAPSHOTSSUPPLIED_H__
+#define __CMMCSCBKUPSTATENOTIFYALLSNAPSHOTSSUPPLIED_H__
+
+// User includes
+#include "MMCScBkupOperations.h"
+#include "CMMCScBkupState.h"
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateNotifyAllSnapshotsSupplied) : public CMMCScBkupState
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateNotifyAllSnapshotsSupplied* NewL( MMMCScBkupDriver& aDriver );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateNotifyAllSnapshotsSupplied( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+ TMMCScBkupStateId NextStateId() const;
+
+ private: // From CMMCScBkupState
+ void PerformStateInitL();
+ };
+
+
+
+
+#endif // __CMMCSCBKUPSTATENOTIFYALLSNAPSHOTSSUPPLIED_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateOpAware.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,130 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateOpAware
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEOPAWARE_H__
+#define __CMMCSCBKUPSTATEOPAWARE_H__
+
+// User includes
+#include "CMMCScBkupState.h"
+#include "MMCScBkupOperations.h"
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateOpAware) : public CMMCScBkupState
+ {
+ protected:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateOpAware( MMMCScBkupDriver& aDriver, TInt aPriority = CActive::EPriorityIdle );
+
+ public: // From CMMCScBkupState
+
+ /**
+ *
+ */
+ TMMCScBkupStateId NextStateId() const;
+
+ /**
+ *
+ */
+ TStateExecution CategorySpecific() const { return EStatePerCategory; }
+
+ protected: // New Framework
+
+ /**
+ *
+ */
+ virtual TMMCScBkupStateId NextStateBackupId( TBool aPartial ) const = 0;
+
+ /**
+ *
+ */
+ virtual TMMCScBkupStateId NextStateRestoreId( TBool aPartial ) const = 0;
+
+ protected: // New Framework
+
+ /**
+ *
+ */
+ virtual void PerformStateInitBackupL( TBool aPartial ) = 0;
+
+ /**
+ *
+ */
+ virtual void PerformStateInitRestoreL( TBool aPartial ) = 0;
+
+ /**
+ *
+ */
+ virtual void PerformAsynchronousStateStepBackupL( TBool aPartial );
+
+ /**
+ *
+ */
+ virtual void PerformAsynchronousStateStepRestoreL( TBool aPartial );
+
+ /**
+ *
+ */
+ virtual void PerformAsynchronousCancellationBackup( TBool aPartial );
+
+ /**
+ *
+ */
+ virtual void PerformAsynchronousCancellationRestore( TBool aPartial );
+
+ /**
+ *
+ */
+ virtual void PerformLastRightsBackupL( TBool aPartial );
+
+ /**
+ *
+ */
+ virtual void PerformLastRightsRestoreL( TBool aPartial );
+
+ /**
+ *
+ */
+ virtual TBool PerformAsynchronousErrorCleanupBackup( TBool aPartial, TInt aError );
+
+ /**
+ *
+ */
+ virtual TBool PerformAsynchronousErrorCleanupRestore( TBool aPartial, TInt aError );
+
+ protected: // From CMMCScBkupState
+ void PerformStateInitL();
+ void PerformAsynchronousStateStepL();
+ void PerformAsynchronousCancellation();
+ void PerformLastRightsL();
+ TBool PerformAsynchronousErrorCleanup( TInt aError );
+ };
+
+
+
+
+
+#endif // __CMMCSCBKUPSTATEOPAWARE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateRequestListOfPublicFiles.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,142 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateRequestListOfPublicFiles
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEREQUESTLISTOFPUBLICFILES_H__
+#define __CMMCSCBKUPSTATEREQUESTLISTOFPUBLICFILES_H__
+
+// User includes
+#include "CMMCScBkupState.h"
+#include "CMMCScBkupDriveSpecificRequest.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class CMMCScBkupDataOwnerInfo;
+class CMMCScBkupStateRequestSpecificPublicFileInfo;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateRequestListOfPublicFiles) : public CMMCScBkupState
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateRequestListOfPublicFiles* NewL( MMMCScBkupDriver& aDriver );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupStateRequestListOfPublicFiles( );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateRequestListOfPublicFiles( MMMCScBkupDriver& aDriver );
+
+ /**
+ * Second phase constructor
+ */
+ void ConstructL( );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+ TMMCScBkupStateId NextStateId() const;
+ TStateExecution CategorySpecific() const { return EStatePerCategory; }
+
+ private: // From CMMCScBkupState
+ void PerformStateInitL();
+ void PerformAsynchronousStateStepL();
+ TBool PerformAsynchronousErrorCleanup(TInt aError);
+ void PerformAsynchronousCancellation();
+ void PerformLastRightsL();
+
+ private: // Data members
+
+ //
+ TInt iCurrentDataOwnerIndex;
+ //
+ CMMCScBkupStateRequestSpecificPublicFileInfo* iRequestObject;
+ };
+
+
+
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+class CMMCScBkupStateRequestSpecificPublicFileInfo : public CMMCScBkupDriveSpecificRequest
+ {
+ public:
+
+ /**
+ *
+ */
+ static CMMCScBkupStateRequestSpecificPublicFileInfo* NewL( MMMCScBkupDriver& aDriver );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateRequestSpecificPublicFileInfo( MMMCScBkupDriver& aDriver );
+
+ public: // API
+
+ /**
+ *
+ */
+ void RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver );
+
+ private: // From CActive
+ void RunL();
+ void DoCancel();
+
+ private: // Internal methods
+ inline MMMCScBkupDriver& Driver() { return iDriver; }
+
+ private: // Member data
+
+ //
+ MMMCScBkupDriver& iDriver;
+ //
+ CMMCScBkupDataOwnerInfo* iOwner;
+ };
+
+
+
+
+
+
+
+#endif // __CMMCSCBKUPSTATEREQUESTLISTOFPUBLICFILES_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateRequestSizeOfBackupData.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,144 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateRequestSizeOfBackupData
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEREQUESTSIZEOFBACKUPDATA_H__
+#define __CMMCSCBKUPSTATEREQUESTSIZEOFBACKUPDATA_H__
+
+// User includes
+#include "MMCScBkupOperations.h"
+#include "CMMCScBkupState.h"
+#include "CMMCScBkupDriveSpecificRequest.h"
+
+// Classes referenced
+class CMMCScBkupDataOwnerInfo;
+class CMMCScBkupStateRequestSizeOfDataOwner;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateRequestSizeOfBackupData) : public CMMCScBkupState
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateRequestSizeOfBackupData* NewL( MMMCScBkupDriver& aDriver );
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupStateRequestSizeOfBackupData( );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateRequestSizeOfBackupData( MMMCScBkupDriver& aDriver );
+
+ /**
+ * Second phase constructor
+ */
+ void ConstructL( );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+ TMMCScBkupStateId NextStateId() const;
+ TStateExecution CategorySpecific() const { return EStatePerCategory; }
+
+ private: // From CMMCScBkupState
+ void PerformStateInitL();
+ void PerformAsynchronousStateStepL();
+ TBool PerformAsynchronousErrorCleanup( TInt aError );
+ void PerformAsynchronousCancellation();
+
+ private: // Data members
+
+ //
+ TInt iCurrentDataOwnerIndex;
+ //
+ CMMCScBkupStateRequestSizeOfDataOwner* iRequestObject;
+ };
+
+
+
+
+
+
+
+/**
+* NB. This class only sizes active, passive, system and java data. Public
+* data is sized elsewhere.
+*
+* @since 3.0
+*/
+class CMMCScBkupStateRequestSizeOfDataOwner : public CMMCScBkupDriveSpecificRequest
+ {
+ public:
+
+ /**
+ *
+ */
+ static CMMCScBkupStateRequestSizeOfDataOwner* NewL( MMMCScBkupDriver& aDriver );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateRequestSizeOfDataOwner( MMMCScBkupDriver& aDriver );
+
+ public: // API
+
+ /**
+ *
+ */
+ void RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver );
+
+ private: // From CActive
+ void RunL();
+ void DoCancel();
+
+ private: // Internal methods
+ inline MMMCScBkupDriver& Driver() { return iDriver; }
+ //
+ TUint GetActiveAndPassiveDataSizesL( const CDataOwnerInfo& aOwner, CSBGenericDataType& aIdentifier, TDriveNumber aDrive );
+ TUint GetSIDSpecificSizeL( TSecureId aSecureID, TDriveNumber aDrive, TTransferDataType aDataType );
+ TUint GetSystemDataSizesL( const CDataOwnerInfo& aOwner, CSBGenericDataType& aIdentifier, TDriveNumber aDrive );
+ TUint GetJavaDataSizesL( const CDataOwnerInfo& aOwner, CSBGenericDataType& aIdentifier, TDriveNumber aDrive );
+ TUint GetJavaSpecificSizeL( const TDesC& aHash, TDriveNumber aDrive, TJavaTransferType aDataType );
+
+ private: // Member data
+
+ //
+ MMMCScBkupDriver& iDriver;
+ //
+ CMMCScBkupDataOwnerInfo* iOwner;
+ };
+
+
+
+
+
+#endif // __CMMCSCBKUPSTATEREQUESTSIZEOFBACKUPDATA_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateSetPhoneMode.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupStateSetPhoneMode
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATESETPHONEMODE_H__
+#define __CMMCSCBKUPSTATESETPHONEMODE_H__
+
+// User includes
+#include "MMCScBkupOperations.h"
+#include "CMMCScBkupState.h"
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateSetPhoneMode) : public CMMCScBkupState
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateSetPhoneMode* NewL( MMMCScBkupDriver& aDriver );
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateSetPhoneMode( MMMCScBkupDriver& aDriver );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+ TMMCScBkupStateId NextStateId() const;
+
+ private: // From CMMCScBkupState
+ void PerformStateInitL();
+ void PerformAsynchronousStateStepL();
+ };
+
+
+
+
+#endif // __CMMCSCBKUPSTATESETPHONEMODE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupStateValidateDiskSpace.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2005-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: Declaration for CMMCScBkupStateValidateDiskSpace
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPSTATEVALIDATEDISKSPACE_H__
+#define __CMMCSCBKUPSTATEVALIDATEDISKSPACE_H__
+
+// User includes
+#include "CMMCScBkupState.h"
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupStateValidateDiskSpace) : public CMMCScBkupState
+ {
+ public:
+
+ /**
+ * Static constructor
+ */
+ static CMMCScBkupStateValidateDiskSpace* NewL( MMMCScBkupDriver& aDriver );
+
+ /**
+ * Destructor
+ */
+ ~CMMCScBkupStateValidateDiskSpace();
+
+ private:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupStateValidateDiskSpace( MMMCScBkupDriver& aDriver );
+
+ // Second phase
+ void ConstructL( );
+
+ public: // From CMMCScBkupState
+ TMMCScBkupStateId StateId() const;
+ TMMCScBkupStateId NextStateId() const;
+ TStateExecution CategorySpecific() const { return EStatePerCategoryCommon; }
+
+ private: // From CMMCScBkupState
+ void PerformStateInitL();
+ void PerformAsynchronousStateStepL();
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ void ValidateFreeSpaceBeforeBackupL();
+ void ValidateFreeSpaceBeforeRestoreL();
+
+ private: // Member data
+
+ //
+ TInt64 iCumulatedSize;
+ //
+ RArray<TMMCScBkupDriveAndSize> iDriveSizes;
+ //
+ RArray<TMMCScBkupDriveAndSize> iDriveMaxFileSizes;
+ };
+
+
+#endif // __CMMCSCBKUPSTATEVALIDATEDISKSPACE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupTransferReadRequest.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,223 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupReadDataTransferRequestBase
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPTRANSFERREADREQUEST_H__
+#define __CMMCSCBKUPTRANSFERREADREQUEST_H__
+
+// User includes
+#include "MMCScBkupConfig.h"
+#include "MMCScBkupSBEUtils.h"
+#include "TMMCScBkupOwnerDataType.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "CMMCScBkupTransferRequest.h"
+#include "CMMCScBkupIndexWithIdentifier.h"
+
+// Classes referenced
+class MMMCScBkupDriver;
+class CMMCScBkupArchiveFooter;
+
+// Constants
+const TInt KMMCScBkupDefaultChunkReadSize = 4096; // 4k read chunks
+
+// CMMCScBkupIndexEntry
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupReadDataTransferRequestBase) : public CMMCScBkupTransferRequestBase
+ {
+ public:
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupReadDataTransferRequestBase();
+
+ protected:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupReadDataTransferRequestBase( MMMCScBkupDriver& aDriver,
+ TMMCScBkupOwnerDataType aElementType,
+ TInt aChunkSize = KMMCScBkupDefaultChunkReadSize,
+ TInt aPriority = CActive::EPriorityIdle );
+
+ public: // API
+
+ /**
+ *
+ */
+ void RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver, const RArray<TMMCScBkupArchiveDriveAndVector>& aEntries );
+
+ protected: // New Framework API
+
+ /**
+ *
+ */
+ virtual CSBGenericTransferType* PrepareTransferTypeL( const CSBGenericDataType& aGeneric,
+ TDriveNumber aDrive, TInt aVersion ) const = 0;
+
+ private: // From CMMCScBkupTransferRequest
+ TBool ProcessChunkOfDataL();
+ void PrepareDataTransferL();
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ void ReadChunkL( TDes8& aSink, TInt aLength );
+
+ /**
+ *
+ */
+ TBool DoProcessChunkOfDataL();
+
+ /**
+ *
+ */
+ TBool PrepareForNextEntry();
+
+ /**
+ *
+ */
+ TDriveNumber CurrentDrive() const;
+
+ /**
+ *
+ */
+ const TMMCScBkupArchiveVector& CurrentReadInfo() const;
+
+ /**
+ *
+ */
+ const TMMCScBkupArchiveDriveAndVector& CurrentEntry() const;
+
+ /**
+ *
+ */
+ inline TInt CurrentOffset() const { return iCurrentOffset; }
+
+ private: // From CActive
+ TInt RunError( TInt aError );
+
+ private: // Debugging support
+
+ /**
+ *
+ */
+#ifdef DEBUGGING_DATA_TRANSFER
+ void DumpTransferDataL( RFs& aFsSession, const TDesC8& aData ) const;
+#endif
+
+ private: // Member data
+
+ // Owned externally
+ //
+ const RArray<TMMCScBkupArchiveDriveAndVector>* iEntries;
+
+ // Owned by this object
+
+ // Pointer to the SBE's shared chunk. It *must* be a reference
+ // because otherwise the SBE loses track of what we actually write
+ // to the chunk!
+ TPtr8* iTransferChunkPointer;
+ //
+ const TInt iReadChunkSize;
+ //
+ TInt iCurrentIndex;
+ //
+ TBool iFinishedSupplyingData;
+ //
+ CSBGenericTransferType* iTransferType;
+ //
+ TInt iCurrentOffset;
+ //
+ HBufC8* iTemporaryTransferSink;
+ };
+
+
+
+
+
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+template <class Type>
+class CMMCScBkupReadDataTransferRequest : public CMMCScBkupReadDataTransferRequestBase
+ {
+ public: // Construction
+
+ /**
+ *
+ */
+ inline static CMMCScBkupReadDataTransferRequest* NewL( MMMCScBkupDriver& aDriver,
+ TMMCScBkupOwnerDataType aElementType,
+ Type aTransferEnumType,
+ TInt aChunkSize = KMMCScBkupDefaultChunkReadSize,
+ TInt aPriority = CActive::EPriorityIdle )
+ {
+ CMMCScBkupReadDataTransferRequest<Type>* self = new(ELeave) CMMCScBkupReadDataTransferRequest<Type>( aDriver, aElementType, aTransferEnumType, aChunkSize, aPriority );
+ return self;
+ }
+
+ private: // Internal construction
+
+ /**
+ * C++ default constructor
+ */
+ inline CMMCScBkupReadDataTransferRequest( MMMCScBkupDriver& aDriver,
+ TMMCScBkupOwnerDataType aElementType,
+ Type aTransferEnumType,
+ TInt aChunkSize = KMMCScBkupDefaultChunkReadSize,
+ TInt aPriority = CActive::EPriorityIdle )
+ : CMMCScBkupReadDataTransferRequestBase( aDriver, aElementType, aChunkSize, aPriority),
+ iTransferEnumType( aTransferEnumType )
+ {
+ }
+
+ private: // From CMMCScBkupTransferRequest
+ inline CSBGenericTransferType* PrepareTransferTypeL( const CSBGenericDataType& aGeneric,
+ TDriveNumber aDrive, TInt aVersion ) const
+ {
+ CSBGenericTransferType* transferType = MMCScBkupSBEUtils::TransferTypeLC( aGeneric, aDrive,
+ iTransferEnumType, aVersion );
+ CleanupStack::Pop( transferType );
+ return transferType;
+ }
+
+ private: // Member data
+
+ //
+ Type iTransferEnumType;
+ };
+
+
+
+#endif // __CMMCSCBKUPTRANSFERREADREQUEST_H__
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupTransferRequest.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,225 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupTransferRequestBase
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPTRANSFERREQUEST_H__
+#define __CMMCSCBKUPTRANSFERREQUEST_H__
+
+// System includes
+#include <e32base.h>
+#include <connect/sbeclient.h>
+
+// User includes
+#include "TMMCScBkupDriveFilter.h"
+#include "TMMCScBkupOwnerDataType.h"
+#include "TMMCScBkupArchiveVector.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class CMMCScBkupDataOwnerInfo;
+class MMMCScBkupDriver;
+class TMMCScBkupArchiveVector;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupTransferRequestBase) : public CActive
+ {
+ public:
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupTransferRequestBase();
+
+ protected:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupTransferRequestBase( MMMCScBkupDriver& aDriver, TMMCScBkupOwnerDataType aElementType, TBool aUpdateOperationalSizes = ETrue, TInt aPriority = CActive::EPriorityIdle );
+
+ public: // API
+
+ /**
+ *
+ */
+ virtual void RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver );
+
+ protected: // From CActive
+ void RunL();
+ void DoCancel();
+ TInt RunError( TInt aError );
+
+ protected: // State relation
+
+ /**
+ *
+ */
+ enum TState
+ {
+ EIdle = 0,
+ EFinished,
+ //
+ ETransferData,
+ EProcessData
+ };
+
+ /**
+ *
+ */
+ inline TState State() const { return iState; }
+
+ /**
+ *
+ */
+ inline void SetState( TState aState ) { iState = aState; }
+
+ protected: // Internal framework API
+
+ /**
+ *
+ */
+ virtual TBool ProcessChunkOfDataL() = 0;
+
+ /**
+ *
+ */
+ virtual void PrepareDataTransferL() = 0;
+
+ /**
+ *
+ */
+ virtual TDriveNumber CurrentDrive() const = 0;
+
+ /**
+ *
+ */
+ virtual void SingleDriveTransferCompleteL();
+
+ /**
+ *
+ */
+ virtual void TransferCompleteL();
+
+ protected: // Internal methods
+
+ /**
+ *
+ */
+ void CompleteSelf( TInt aCompletionCode = KErrNone );
+
+ /**
+ *
+ */
+ inline MMMCScBkupDriver& Driver() { return iDriver; }
+
+ /**
+ *
+ */
+ inline CMMCScBkupDataOwnerInfo& DataOwner() { return *iDataOwner; }
+
+ /**
+ *
+ */
+ inline const CMMCScBkupDataOwnerInfo& DataOwner() const { return *iDataOwner; }
+
+ /**
+ *
+ */
+ inline TMMCScBkupArchiveVector& Info() { return iCurrentInfo; }
+
+ /**
+ *
+ */
+ inline const TMMCScBkupArchiveVector& Info() const { return iCurrentInfo; }
+
+ /**
+ *
+ */
+ inline TMMCScBkupOwnerDataType ElementType() const { return iElementType; }
+
+ /**
+ *
+ */
+ inline void DataTransferred( TInt aAmount ) { iDataTransferred += aAmount; }
+
+ /**
+ *
+ */
+ inline TInt AmountOfDataTransferred() const { return iDataTransferred; }
+
+ /**
+ *
+ */
+ inline void ResetDataTransferCounter() { iDataTransferred = 0; }
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ void SetObserver( TRequestStatus& aObserver );
+
+ /**
+ *
+ */
+ void CompleteObserverRequest( TInt aCompletionCode );
+
+ private: // Internal state methods
+
+ /**
+ *
+ */
+ void ProcessDataChunkL();
+
+ private: // Member data
+
+ // Owned externally
+ //
+ MMMCScBkupDriver& iDriver;
+ //
+ CMMCScBkupDataOwnerInfo* iDataOwner;
+ //
+ TRequestStatus* iObserver;
+
+ // Owned by this class
+ //
+ TInt iDataTransferred;
+ //
+ TState iState;
+ //
+ TMMCScBkupArchiveVector iCurrentInfo;
+ //
+ const TMMCScBkupOwnerDataType iElementType;
+ //
+ const TBool iUpdateOperationalSizes;
+ };
+
+
+
+
+
+
+#endif // __CMMCSCBKUPTRANSFERREQUEST_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupTransferWriteRequest.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,235 @@
+/*
+* Copyright (c) 2005 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: Declaration for CMMCScBkupWriteDataTransferRequestBase
+*
+*
+*/
+
+#ifndef __CMMCSCBKUPTRANSFERWRITEREQUEST_H__
+#define __CMMCSCBKUPTRANSFERWRITEREQUEST_H__
+
+// User includes
+#include "MMCScBkupConfig.h"
+#include "MMCScBkupSBEUtils.h"
+#include "TMMCScBkupOwnerDataType.h"
+#include "CMMCScBkupTransferRequest.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+
+// Classes referenced
+class CMMCScBkupArchiveFooter;
+class CMMCScBkupDriveAndOperationTypeManager;
+
+/**
+*
+*
+* @since 3.0
+*/
+class MMMCScBkupIndexHandler
+ {
+ public:
+
+ /**
+ *
+ */
+ virtual void AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive ) = 0;
+ };
+
+
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupWriteDataTransferRequestBase) : public CMMCScBkupTransferRequestBase
+ {
+ public:
+
+ /**
+ * C++ destructor
+ */
+ ~CMMCScBkupWriteDataTransferRequestBase();
+
+ public: // API
+
+ /**
+ *
+ */
+ void RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver, const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperations );
+
+ protected:
+
+ /**
+ * C++ default constructor
+ */
+ CMMCScBkupWriteDataTransferRequestBase( MMMCScBkupDriver& aDriver,
+ MMMCScBkupIndexHandler& aIndexHandler,
+ TMMCScBkupOwnerDataType aElementType,
+ TSBDerivedType aExpectedTransferType,
+ TInt aPriority = CActive::EPriorityIdle );
+
+ protected: // New Framework API
+
+ /**
+ *
+ */
+ virtual CSBGenericTransferType* PrepareTransferTypeL( const CSBGenericDataType& aGeneric,
+ TDriveNumber aDrive, TInt aVersion ) const = 0;
+
+ protected: // From CMMCScBkupTransferRequestBase
+
+ /**
+ *
+ */
+ TBool ProcessChunkOfDataL();
+
+ /**
+ *
+ */
+ void PrepareDataTransferL();
+
+ /**
+ *
+ */
+ TDriveNumber CurrentDrive() const;
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ inline void SetCurrentDrive( TDriveNumber aDrive ) { iCurrentDrive = aDrive; }
+
+ /**
+ *
+ */
+ void ValidateTransferInfoL( CSBGenericTransferType* aInfo );
+
+ /**
+ *
+ */
+ void RequestDataTransferL();
+
+ private: // From CActive
+ TInt RunError( TInt aError );
+
+ private:
+
+ /**
+ *
+ */
+#ifdef DEBUGGING_DATA_TRANSFER
+ void DumpTransferDataL( RFs& aFsSession, const TDesC8& aData ) const;
+#endif
+
+
+ private: // Member data
+
+ // Owned by this class
+ //
+ TMMCScBkupDriveFilter iDriveFilter;
+ //
+ MMMCScBkupIndexHandler& iIndexHandler;
+ //
+ const TSBDerivedType iExpectedTransferType;
+ //
+ const CMMCScBkupDriveAndOperationTypeManager* iDriveAndOperations;
+ //
+ RWriteStream iStream;
+ //
+ TBool iStreamIsOpen;
+ //
+ CSBGenericTransferType* iTransferType;
+ //
+ TBool iAdditionalTransferRequired;
+ //
+ TDriveNumber iCurrentDrive;
+ };
+
+
+
+
+
+
+
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+template <class Type>
+class CMMCScBkupWriteDataTransferRequest : public CMMCScBkupWriteDataTransferRequestBase
+ {
+ public: // Construction
+
+ /**
+ * Static constructor
+ */
+ inline static CMMCScBkupWriteDataTransferRequest* NewL( MMMCScBkupDriver& aDriver,
+ MMMCScBkupIndexHandler& aIndexHandler,
+ TMMCScBkupOwnerDataType aElementType,
+ TSBDerivedType aExpectedTransferType,
+ Type aTransferEnumType,
+ TInt aPriority = CActive::EPriorityIdle )
+ {
+ CMMCScBkupWriteDataTransferRequest<Type>* self = new(ELeave) CMMCScBkupWriteDataTransferRequest<Type>( aDriver, aIndexHandler, aElementType, aExpectedTransferType, aTransferEnumType, aPriority );
+ return self;
+ }
+
+ private: // Internal construction
+
+ /**
+ * C++ default constructor
+ */
+ inline CMMCScBkupWriteDataTransferRequest( MMMCScBkupDriver& aDriver,
+ MMMCScBkupIndexHandler& aIndexHandler,
+ TMMCScBkupOwnerDataType aElementType,
+ TSBDerivedType aExpectedTransferType,
+ Type aTransferEnumType,
+ TInt aPriority )
+ : CMMCScBkupWriteDataTransferRequestBase( aDriver, aIndexHandler, aElementType, aExpectedTransferType, aPriority ),
+ iTransferEnumType( aTransferEnumType )
+ {
+ }
+
+ private: // From CMMCScBkupTransferRequest
+ inline CSBGenericTransferType* PrepareTransferTypeL( const CSBGenericDataType& aGeneric,
+ TDriveNumber aDrive, TInt aVersion ) const
+ {
+ CSBGenericTransferType* transferType = MMCScBkupSBEUtils::TransferTypeLC( aGeneric, aDrive,
+ iTransferEnumType, aVersion );
+ CleanupStack::Pop( transferType );
+ return transferType;
+ }
+
+ private: // Member data
+
+ //
+ Type iTransferEnumType;
+ };
+
+
+
+
+
+#endif // __CMMCSCBKUPTRANSFERWRITEREQUEST_H__
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMCScBkupArchiveFlags.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2005 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: Declaration for TMMCScBkupArchiveFlags
+*
+*
+*/
+
+#ifndef __MMCSCBKUPARCHIVEFLAGS_H__
+#define __MMCSCBKUPARCHIVEFLAGS_H__
+
+enum TMMCScBkupArchiveFlags
+ {
+ EMMCScBkupArchiveFlagsDefault = 0x000,
+ EMMCScBkupArchiveFlagsContentValid = 0x001
+ };
+
+
+#endif // __MMCSCBKUPARCHIVEFLAGS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMCScBkupArchiveUtils.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,176 @@
+/*
+* Copyright (c) 2005 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: Declaration for MMCScBkupArchiveUtils
+*
+*
+*/
+
+#ifndef __MMCSCBKUPARCHIVEUTILS_H__
+#define __MMCSCBKUPARCHIVEUTILS_H__
+
+// System includes
+#include <f32file.h>
+#include <s32strm.h>
+#include <babitflags.h>
+
+// User includes
+#include "TMMCScBkupArchiveVector.h"
+
+// Classes referenced
+class CMMCScBkupArchiveHeader;
+class MMMCScBkupArchiveDataInterface;
+
+// Constants
+const TInt KMMCScBkupArchiveFileFormatFirstRestorableMajorVersion = 1;
+const TInt KMMCScArchiveUidsByteCount = sizeof( TCheckedUid );
+const TInt KMMCScArchiveVersionByteCount = sizeof( TInt8 ) + sizeof( TInt8 ) + sizeof( TInt16 );
+const TInt KMMCScArchiveFooterLengthByteCount = sizeof( TUint32 );
+const TInt KMMCScArchiveFlagsByteCount = sizeof( TUint32 );
+const TInt KMMCScArchiveCrcByteCount = sizeof( TUint32 );
+const TInt KMMCScArchiveCategoryByteCount = sizeof( TUint32 );
+const TInt KMMCScSpareByteCount = 5 * sizeof(TInt32);
+const TInt KMMCScArchivePhoneModelStringLength = sizeof(TUint8);
+
+/**
+*
+*
+* @since 3.0
+*/
+class MMCScBkupArchiveUtils
+ {
+ public: // API
+
+ /**
+ *
+ */
+ static void ArchiveUidType( TUidType& aType );
+
+ /**
+ *
+ */
+ static void ArchiveCheckedUid( TCheckedUid& aCheckedUids );
+
+ /**
+ *
+ */
+ static HBufC8* PhoneModelFromArchiveLC( MMMCScBkupArchiveDataInterface& aADI );
+
+ /**
+ *
+ */
+ static void ReadPhoneValidityInformationL( RFs& aFsSession, const TDesC& aFileName, HBufC8*& aPhoneModelData, TBitFlags& aArchiveFlags, TVersion& aArchiveVersion );
+
+ /**
+ *
+ */
+ static TVersion ArchiveRunTimeFileFormatVersion();
+
+ /**
+ *
+ */
+ static const TMMCScBkupArchiveVector& WriteHeaderL( MMMCScBkupArchiveDataInterface& aADI, TBitFlags aCategory );
+
+ /**
+ *
+ */
+ static const TMMCScBkupArchiveVector& ReadHeaderL( MMMCScBkupArchiveDataInterface& aADI, CMMCScBkupArchiveHeader& aHeader );
+
+ /**
+ *
+ */
+ static void SetArchiveContentAsValidL( RFile64& aArchive );
+
+ /**
+ *
+ */
+ static void SetFooterLengthL( RFile64& aArchive, TInt aLength );
+
+ /**
+ *
+ */
+ static TBitFlags ReadBkUpCategoryInformationL( RFs& aFsSession, const TDesC& aFileName );
+
+#ifdef RD_FILE_MANAGER_BACKUP
+ /**
+ *
+ */
+ static void SetArchiveCrcsL( RFile64& aArchive, TUint32 aCrc );
+
+ /**
+ *
+ */
+ static TBool ValidateArchiveCrcsL( RFs& aFsSession, const TDesC& aFileName );
+#endif
+
+ private: // Offsets
+ enum
+ {
+ EArchiveOffsetUids = 0,
+ EArchiveOffsetFileFormatVersion = EArchiveOffsetUids + KMMCScArchiveUidsByteCount,
+ EArchiveOffsetFooterLength = EArchiveOffsetFileFormatVersion + KMMCScArchiveVersionByteCount,
+ EArchiveOffsetArchiveFlags = EArchiveOffsetFooterLength + KMMCScArchiveFooterLengthByteCount,
+ EArchiveOffsetArchivePayloadCRC = EArchiveOffsetArchiveFlags + KMMCScArchiveFlagsByteCount,
+ EArchiveOffsetArchiveCategory = EArchiveOffsetArchivePayloadCRC + KMMCScArchiveCrcByteCount,
+ EArchiveOffsetArchiveHeaderCRC = EArchiveOffsetArchiveCategory + KMMCScArchiveCategoryByteCount,
+ EArchiveOffsetPadding = EArchiveOffsetArchiveHeaderCRC + KMMCScArchiveCrcByteCount,
+ EArchiveOffsetPhoneModelStringLength = EArchiveOffsetPadding + KMMCScSpareByteCount,
+ EArchiveOffsetPhoneModelString = EArchiveOffsetPhoneModelStringLength + KMMCScArchivePhoneModelStringLength
+ };
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ static TInt OffsetOfModelInformation();
+
+ /**
+ *
+ */
+ static HBufC8* PhoneModelFromArchiveLC( RReadStream& aStream );
+
+ /**
+ *
+ */
+ static TUint32 DefaultArchiveFlags();
+
+ /**
+ *
+ */
+ static TBitFlags ReadArchiveFlagsL( RFile64& aFile );
+
+ /**
+ *
+ */
+ static void ReadArchiveVersionL( RFile64& aFile, TVersion& aVersion );
+
+#ifdef RD_FILE_MANAGER_BACKUP
+ /**
+ *
+ */
+ static void SetArchiveCrcL( RFile64& aArchive, TUint32 aCrc, TUint aOffset );
+
+ /**
+ *
+ */
+ static void CalculateCrcFromArchive( TUint32& aCrc, RFile64& aArchive, TUint32 aOffset, TUint32 aLength );
+#endif
+ };
+
+
+
+
+#endif // __MMCSCBKUPARCHIVEUTILS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMCScBkupConfig.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,154 @@
+/*
+* Copyright (c) 2005 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: Macros for scheduled backup configuration
+*
+*
+*/
+
+#ifndef __MMCSCBKUPCONFIG_H__
+#define __MMCSCBKUPCONFIG_H__
+
+// System includes
+#include <e32std.h>
+#include <f32file.h>
+
+
+/**
+*
+*
+* @since 3.0
+*/
+const TDriveNumber KMMCScBkupTempFileDrive = EDriveC;
+
+
+/**
+*
+* Folder for temporary files, which will be cleaned by Starter if temporary files not deleted.
+* Currently in 3.0/3.1 folder from C and E drives is cleaned.
+*
+* @since 3.0
+*/
+_LIT(KMMCScBkupTempDir, ":\\System\\Temp\\");
+
+
+/**
+*
+*
+* @since 3.0
+*/
+_LIT(KMMCScBkupMediaGalleryThumbnailFolder, "*\\_PAlbTN\\*"); //Photo Album Thumbnail folder
+_LIT(KMMCScBkupVideoCenterFolderPath, "C:\\Data\\videocenter\\"); //video center folder
+_LIT(KMMCScBkupVideoCenterFolder, "*\\videocenter\\*"); //video center folder
+/**
+*
+* Allows the data that is received from the SBE or sent to the SBE to be dumped to individual
+* files for comparison and inspection purposes.
+*
+* @since 3.0
+*/
+//#define DEBUGGING_DATA_TRANSFER
+
+/**
+*
+* Controls the various directories and files that are generated when debugging
+* data transfer
+*
+* @since 3.0
+*/
+#ifdef DEBUGGING_DATA_TRANSFER
+ _LIT(KMMCScBkupDataTransferDebuggingAllFiles, "*.*");
+ _LIT(KMMCScBkupDataTransferDebuggingFileName, "MMCBackupDataTransfer_0x%08x_(%c).dat");
+ //
+ _LIT(KMMCScBkupDataTransferDebuggingPathRoot, "MMCDataDump\\");
+ _LIT(KMMCScBkupDataTransferDebuggingPathDataJava, "JavData\\");
+ _LIT(KMMCScBkupDataTransferDebuggingPathDataSystem, "SysData\\");
+ _LIT(KMMCScBkupDataTransferDebuggingPathDataPassive, "PasData\\");
+ _LIT(KMMCScBkupDataTransferDebuggingPathDataActive, "ActData\\");
+ //
+ _LIT(KMMCScBkupDataTransferDebuggingPathDataBackup, "Backup\\");
+ _LIT(KMMCScBkupDataTransferDebuggingPathDataRestore, "Restore\\");
+#endif
+
+/**
+*
+* Always makes the SBE logging directory - ensures logs are available
+*
+* @since 3.0
+*/
+//#define MAKE_SBE_LOGGING_DIRECTORY
+
+/**
+*
+* Always makes the MMC Engine logging directory
+*
+* @since 3.0
+*/
+//#define MAKE_MMCSCBKUP_LOGGING_DIRECTORY
+
+/**
+*
+* Controls whether logging is to file or to RDebug
+*
+* @since 3.0
+*/
+//#ifdef _DEBUG
+//# define __MMCSCBKUPLOGGING_ENABLED__
+//#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+//# define __MMCSCBKUP_DATA_LOGGING_ENABLED__
+//#endif
+# define __MMCSCBKUPLOGGING_MODE_FILE__
+//# define __MMCSCBKUPLOGGING_MODE_RDEBUG__
+//#endif
+
+
+/**
+* Use these to disable backup for the various data types.
+*
+* E.g:
+*
+* __DEBUG_TESTING_SKIP_BACKUP_REG_DATA return
+*
+* ... will ensure that registration data is not backed up (for any DO).
+*
+* @since 3.0
+*/
+#define __DEBUG_TESTING_SKIP_BACKUP_REG_DATA
+#define __DEBUG_TESTING_SKIP_BACKUP_ACT_DATA
+#define __DEBUG_TESTING_SKIP_BACKUP_PAS_DATA
+#define __DEBUG_TESTING_SKIP_BACKUP_SYS_DATA
+#define __DEBUG_TESTING_SKIP_BACKUP_JAV_DATA
+#define __DEBUG_TESTING_SKIP_BACKUP_PUB_DATA
+
+/**
+* Use these to disable restore for the various data types
+*
+* E.g:
+*
+* __DEBUG_TESTING_SKIP_RESTORE_REG_DATA return
+*
+* ... will ensure that registration data is not restored (for any DO).
+*
+* @since 3.0
+*/
+#define __DEBUG_TESTING_SKIP_RESTORE_REG_DATA
+#define __DEBUG_TESTING_SKIP_RESTORE_ACT_DATA
+#define __DEBUG_TESTING_SKIP_RESTORE_PAS_DATA
+#define __DEBUG_TESTING_SKIP_RESTORE_SYS_DATA
+#define __DEBUG_TESTING_SKIP_RESTORE_JAV_DATA
+#define __DEBUG_TESTING_SKIP_RESTORE_PUB_DATA
+
+
+#endif // __MMCSCBKUPCONFIG_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMCScBkupDllUids.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2002 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:
+* Contains the UIDs for FileManager / FileManagerBkupEngine
+*
+*/
+
+#ifndef __MMCSCBKUPDLLUIDS_H__
+#define __MMCSCBKUPDLLUIDS_H__
+
+// Module UIDs
+#define KEPOCDLLUID2 0x1000008d // Symbian defined
+#define KMMCAppEngUID3 0x2002BCC2
+
+#endif // __MMCSCBKUPDLLUIDS_H__
+
+// End Of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMCScBkupLogger.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,84 @@
+/*
+* Copyright (c) 2005 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:
+* Macro definition file for logging.
+*
+*
+*/
+
+#ifndef __MMCSCBKUPLOGGER_H__
+#define __MMCSCBKUPLOGGER_H__
+
+// System includes
+#include <e32std.h>
+
+// User includes
+#include "MMCScBkupConfig.h"
+#include "TMMCScBkupOwnerDataType.h"
+
+class MMCScBkupLogger
+ {
+ public:
+ static void LogRaw( const TDesC& aData );
+ static void Log( TRefByValue<const TDesC> aFmt, ... );
+ static void LogFile( TRefByValue<const TDesC> aFmt, ... );
+ static const TDesC& DataType( TMMCScBkupOwnerDataType aType );
+ static const TDesC& FriendlyNameForSID( TSecureId aSID );
+ };
+
+
+// Logging Macros
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+
+ _LIT( KMMCScBkupLoggingFullPath, "C:\\Logs\\MMCScBkup\\" );
+
+ #define __LOG(aFmt) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes); }
+ #define __LOG1(aFmt, A) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A); }
+ #define __LOG2(aFmt, A, B) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B); }
+ #define __LOG3(aFmt, A, B, C) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C); }
+ #define __LOG4(aFmt, A, B, C, D) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C, D); }
+ #define __LOG5(aFmt, A, B, C, D, E) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C, D, E); }
+ #define __LOG6(aFmt, A, B, C, D, E, F) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C, D, E, F); }
+ #define __LOG7(aFmt, A, B, C, D, E, F, G) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C, D, E, F, G); }
+ #define __LOG8(aFmt, A, B, C, D, E, F, G, H) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::Log(tempLogDes, A, B, C, D, E, F, G, H); }
+
+ // Path for backup log containing possible errors encountered during backup
+ // or restore. This is needed because all errors won't interrupt operation.
+ _LIT( KMMCScBkupLoggingFullPathAndName, "C:\\Private\\101F84EB\\BURLog\\bur.txt" );
+
+ #define __LOGFILE(aFmt) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::LogFile(tempLogDes); }
+ #define __LOGFILE1(aFmt, A) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::LogFile(tempLogDes, A); }
+ #define __LOGFILE2(aFmt, A, B) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::LogFile(tempLogDes, A, B); }
+ #define __LOGFILE3(aFmt, A, B, C) { _LIT(tempLogDes, aFmt); MMCScBkupLogger::LogFile(tempLogDes, A, B, C); }
+
+#else
+
+ #define __LOG(aFmt)
+ #define __LOG1(aFmt, A)
+ #define __LOG2(aFmt, A, B)
+ #define __LOG3(aFmt, A, B, C)
+ #define __LOG4(aFmt, A, B, C, D)
+ #define __LOG5(aFmt, A, B, C, D, E)
+ #define __LOG6(aFmt, A, B, C, D, E, F)
+ #define __LOG7(aFmt, A, B, C, D, E, F, G)
+ #define __LOG8(aFmt, A, B, C, D, E, F, G, H)
+
+ #define __LOGFILE(aFmt)
+ #define __LOGFILE1(aFmt, A)
+ #define __LOGFILE2(aFmt, A, B)
+ #define __LOGFILE3(aFmt, A, B, C)
+
+#endif
+
+#endif // __MMCSCBKUPLOGGER_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMCScBkupOperations.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2005 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: Declaration for TMMCScBkupOperationType
+*
+*
+*/
+
+#ifndef __MMCSCBKUPOPERATIONS_H__
+#define __MMCSCBKUPOPERATIONS_H__
+
+// System includes
+#include <e32base.h>
+
+
+/**
+*
+*
+* @since 3.0
+*/
+enum TMMCScBkupOperationType
+ {
+ EMMCScBkupOperationTypeIdle = 0,
+ EMMCScBkupOperationTypeFullBackup,
+ EMMCScBkupOperationTypeFullRestore,
+ EMMCScBkupOperationTypePartialBackup,
+ EMMCScBkupOperationTypePartialRestore
+ };
+
+
+
+
+#endif // __MMCSCBKUPOPERATIONS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMCScBkupPhoneModelUtils.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2005 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: Declaration for MMCScBkupPhoneModelUtils
+*
+*
+*/
+
+#ifndef __MMCSCBKUPPHONEMODELUTILS_H__
+#define __MMCSCBKUPPHONEMODELUTILS_H__
+
+// System includes
+#include <f32file.h>
+#include <babitflags.h>
+
+/**
+*
+*
+* @since 3.0
+*/
+class MMCScBkupPhoneModelUtils
+ {
+ public:
+
+ /**
+ *
+ */
+ static HBufC8* CurrentPhoneModelLC();
+
+ /**
+ *
+ */
+ static TInt MaximumPhoneModelIdentifierLength();
+
+ /**
+ *
+ */
+ static TBool ArchiveRestorePermissableL( const TDesC8& aPhoneModelData, TBitFlags aArchiveFlags, const TVersion& aArchiveVersion );
+ };
+
+
+
+
+#endif // __MMCScBkupPhoneModelUtils_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMCScBkupSBEUtils.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2005 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: Declaration for MMCScBkupSBEUtils
+*
+*
+*/
+
+#ifndef __MMCSCBKUPSBEUTILS_H__
+#define __MMCSCBKUPSBEUTILS_H__
+
+// System includes
+#include <f32file.h>
+#include <connect/sbtypes.h>
+#include <connect/sbeclient.h>
+
+// Namespaces
+using namespace conn;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+class MMCScBkupSBEUtils
+ {
+ public:
+
+ /**
+ *
+ */
+ static TSecureId SecureIdFromGenericL(const CSBGenericDataType& aGeneric);
+
+ /**
+ *
+ */
+ static TUid PackageIdFromGenericL(const CSBGenericDataType& aGeneric);
+
+ /**
+ *
+ */
+ static HBufC* JavaHashFromGenericLC(const CSBGenericDataType& aGeneric);
+
+ /**
+ *
+ */
+ static CSBGenericDataType* CopyLC(const CSBGenericDataType& aToBeCopied);
+
+ /**
+ *
+ */
+ static CSBGenericTransferType* TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive,
+ TTransferDataType aTransferType, TInt aVersion);
+
+ /**
+ *
+ */
+ static CSBGenericTransferType* TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive,
+ TPackageDataType aDataType, TInt aVersion);
+
+ /**
+ *
+ */
+ static CSBGenericTransferType* TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive,
+ TJavaTransferType aDataType, TInt aVersion);
+
+ /**
+ *
+ */
+ static TBool PhoneIsInBackupOrRestoreModeL();
+
+ /**
+ *
+ */
+ static void EndBackupOrRestoreL( CSBEClient& aSBEClient );
+
+ /**
+ *
+ */
+ static TBool HasSystemDataL( const CDataOwnerInfo& aDataOwner );
+
+ /**
+ *
+ */
+ static TBool HasJavaDataL( const CDataOwnerInfo& aDataOwner );
+
+ /**
+ *
+ */
+ static TBool HasPassiveDataL( const CDataOwnerInfo& aDataOwner );
+
+ /**
+ *
+ */
+ static TBool HasActiveDataL( const CDataOwnerInfo& aDataOwner );
+
+ /**
+ *
+ */
+ static TBool HasPublicDataL( const CDataOwnerInfo& aDataOwner );
+ };
+
+
+
+
+#endif // __MMCSCBKUPSBEUTILS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMCScBkupStateIds.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,247 @@
+/*
+* Copyright (c) 2005 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: Constants for scheduled backup state IDs
+*
+*
+*/
+
+#ifndef __MMCSCBKUPSTATEIDS_H__
+#define __MMCSCBKUPSTATEIDS_H__
+
+// System includes
+#include <e32std.h>
+
+// Type definitions
+typedef TUid TMMCScBkupStateId;
+
+// Constants
+
+
+/**
+* Archive Header
+* ===========================
+*
+* BACKUP: Step 1 - first archive write operation: store archive header
+* RESTORE: Step 1 - first archive read operation: restore archive header
+*/
+const TInt32 KMMCScBkupStateIdValueArchiveOpArchiveHeader = 0x0BAC001;
+const TMMCScBkupStateId KMMCScBkupStateArchiveOpArchiveHeader = { KMMCScBkupStateIdValueArchiveOpArchiveHeader };
+
+/**
+* Obtain List of Data Owners
+* ==========================
+*
+* BACKUP: Step 2 - Get list of data owners from SBE
+*/
+const TInt32 KMMCScBkupStateIdValueGetDataOwners = 0x0BAC0002;
+const TMMCScBkupStateId KMMCScBkupStateIdGetDataOwners = { KMMCScBkupStateIdValueGetDataOwners };
+
+/**
+* Set Smartphone into Backup Mode
+* ===============================
+*
+* BACKUP: Step 3
+* RESTORE:
+*/
+const TInt32 KMMCScBkupStateIdValueSetPhoneMode = 0x0BAC0003;
+const TMMCScBkupStateId KMMCScBkupStateIdSetPhoneMode = { KMMCScBkupStateIdValueSetPhoneMode };
+
+/**
+* Supply Data Snapshots (Not Currently Supported)
+* ===============================================
+*
+* BACKUP: Step 4
+*/
+const TInt32 KMMCScBkupStateIdValueSupplyDataSnapshots = 0x0BAC0004; // Not supported
+const TMMCScBkupStateId KMMCScBkupStateIdSupplyDataSnapshots = { KMMCScBkupStateIdValueSupplyDataSnapshots };
+
+/**
+* Inform the Device that All Snapshots Have Been Supplied
+* =======================================================
+*
+* BACKUP: Step 5
+*/
+const TInt32 KMMCScBkupStateIdValueNotifyAllSnapshotsSupplied = 0x0BAC0005;
+const TMMCScBkupStateId KMMCScBkupStateIdNotifyAllSnapshotsSupplied = { KMMCScBkupStateIdValueNotifyAllSnapshotsSupplied };
+
+/**
+* Request Size of Backup Data
+* ===========================
+*
+* BACKUP: Step 6
+*/
+const TInt32 KMMCScBkupStateIdValueRequestSizeOfBackupData = 0x0BAC0006;
+const TMMCScBkupStateId KMMCScBkupStateIdRequestSizeOfBackupData = { KMMCScBkupStateIdValueRequestSizeOfBackupData };
+
+/**
+* Archive Operation: data owners
+* ==============================
+*
+* BACKUP: Step 7 - second archive write operation: store data owners
+*/
+const TInt32 KMMCScBkupStateIdValueArchiveOpDataOwners = 0x0BAC0007;
+const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpDataOwners = { KMMCScBkupStateIdValueArchiveOpDataOwners };
+
+/**
+* Request List of Public Files
+* ============================
+*
+* BACKUP: Step 8
+*/
+const TInt32 KMMCScBkupStateIdValueRequestListOfPublicFiles = 0x0BAC0008;
+const TMMCScBkupStateId KMMCScBkupStateIdRequestListOfPublicFiles = { KMMCScBkupStateIdValueRequestListOfPublicFiles };
+
+/**
+* Calculate disk space required for backup or restore
+* ============================
+*
+* BACKUP: Step 8
+*/
+const TInt32 KMMCScBkupStateIdValueValidateDiskSpace = 0x0BAC0009;
+const TMMCScBkupStateId KMMCScBkupStateIdValidateDiskSpace = { KMMCScBkupStateIdValueValidateDiskSpace };
+
+
+/**
+* Archive Operation: public data files
+* ====================================
+*
+* BACKUP: Step 10 - forth archive write operation: store public data files
+*/
+const TInt32 KMMCScBkupStateIdValueArchiveOpPublicDataFiles = 0x0BAC000A;
+const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpPublicDataFiles = { KMMCScBkupStateIdValueArchiveOpPublicDataFiles };
+
+/**
+* Request System Data
+* ===================
+*
+* BACKUP: Step 11 - fifth archive write operation: store system data
+*/
+const TInt32 KMMCScBkupStateIdValueArchiveOpSystemData = 0x0BAC000B;
+const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpSystemData = { KMMCScBkupStateIdValueArchiveOpSystemData };
+
+/**
+* Request Java Data
+* ===================
+*
+* BACKUP: Step 12 - sixth archive write operation: store system data
+*/
+const TInt32 KMMCScBkupStateIdValueArchiveOpJavaData = 0x0BAC000C;
+const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpJavaData = { KMMCScBkupStateIdValueArchiveOpJavaData };
+
+/**
+* Request Request State of Active Data Owners
+* ===========================================
+*
+* BACKUP: Step 13
+*/
+const TInt32 KMMCScBkupStateIdValueGetDataOwnerStatuses = 0x0BAC000D;
+const TMMCScBkupStateId KMMCScBkupStateIdGetDataOwnerStatuses = { KMMCScBkupStateIdValueGetDataOwnerStatuses };
+
+/**
+* Request Active Private Data
+* ===========================
+*
+* BACKUP: Step 14 - seventh archive write operation: store active data
+*/
+const TInt32 KMMCScBkupStateIdValueArchiveOpActiveData = 0x0BAC000E;
+const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpActiveData = { KMMCScBkupStateIdValueArchiveOpActiveData };
+
+/**
+* Request Passive Private Data
+* ===========================
+*
+* BACKUP: Step 15 - eighth archive write operation: store passive data
+*/
+const TInt32 KMMCScBkupStateIdValueArchiveOpPassiveData = 0x0BAC000F;
+const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpPassiveData = { KMMCScBkupStateIdValueArchiveOpPassiveData };
+
+/**
+* Archive Footer
+* ===========================
+*
+* BACKUP: Step 16 - nineth archive write operation: store footer
+*/
+const TInt32 KMMCScBkupStateIdValueArchiveOpArchiveFooter = 0x0BAC0010;
+const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpArchiveFooter = { KMMCScBkupStateIdValueArchiveOpArchiveFooter };
+
+/**
+* Archive Header
+* ===========================
+*
+* COMMON: Special step to indicate no more steps required
+*/
+const TInt32 KMMCScBkupStateIdValueOperationComplete = 0x0BAC0011;
+const TMMCScBkupStateId KMMCScBkupStateIdOperationComplete = { KMMCScBkupStateIdValueOperationComplete };
+
+
+
+/**
+* Archive Operation: read data owners
+* ===================================
+*
+* RESTORE: Step 2 - read from archive, inform to secure backup engine
+*/
+const TInt32 KMMCScBkupStateIdValueArchiveOpReadDataOwners = 0x0BAC0012;
+const TMMCScBkupStateId KMMCScBkupStateIdArchiveOpReadDataOwners = { KMMCScBkupStateIdValueArchiveOpReadDataOwners };
+
+
+
+
+/**
+* BACKUP STATE FLOW
+* =================
+*
+* 1) KMMCScBkupStateIdArchiveOpArchiveHeader
+* 2) KMMCScBkupStateIdGetDataOwners
+* 3) KMMCScBkupStateIdSetPhoneMode
+* 4) KMMCScBkupStateIdNotifyAllSnapshotsSupplied
+* 5) KMMCScBkupStateIdRequestSizeOfBackupData
+* 6) KMMCScBkupStateIdRequestListOfPublicFiles
+* 7) KMMCScBkupStateIdValidateDiskSpace
+* 8) KMMCScBkupStateIdArchiveOpPublicDataFiles
+* 9) KMMCScBkupStateIdArchiveOpSystemData
+* 10) KMMCScBkupStateIdArchiveOpJavaData
+* 11) KMMCScBkupStateIdGetDataOwnerStatuses
+* 12) KMMCScBkupStateIdArchiveOpActiveData
+* 13) KMMCScBkupStateIdArchiveOpPassiveData
+* 14) KMMCScBkupStateIdArchiveOpDataOwners
+* 15) KMMCScBkupStateIdArchiveOpArchiveFooter
+* 16) KMMCScBkupStateIdOperationComplete
+*
+*/
+
+
+
+/**
+* RESTORE STATE FLOW
+* =================
+*
+* 1) KMMCScBkupStateIdArchiveOpArchiveHeader
+* 2) KMMCScBkupStateIdArchiveOpArchiveFooter
+* 3) KMMCScBkupStateIdArchiveOpDataOwners
+* 4) KMMCScBkupStateIdValidateDiskSpace
+* 5) KMMCScBkupStateIdSetPhoneMode
+* 6) KMMCScBkupStateIdArchiveOpSystemData
+* 7) KMMCScBkupStateIdArchiveOpJavaData
+* 8) KMMCScBkupStateIdArchiveOpPassiveData
+* 9) KMMCScBkupStateIdGetDataOwnerStatuses
+* 10) KMMCScBkupStateIdArchiveOpActiveData
+* 11) KMMCScBkupStateIdArchiveOpPublicDataFiles
+* 12) KMMCScBkupStateIdOperationComplete
+*
+*/
+
+#endif // __MMCSCBKUPSTATEIDS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMMCScBkupArchiveDataInterface.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2002 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: Declaration for MMMCScBkupArchiveDataInterface
+*
+*
+*/
+
+#ifndef __MMMCSCBKUPARCHIVEDATAINTERFACE_H__
+#define __MMMCSCBKUPARCHIVEDATAINTERFACE_H__
+
+// System includes
+#include <e32std.h>
+#include <f32file.h>
+
+// User includes
+#include "TMMCScBkupArchiveVector.h"
+#include "MMCScBkupOperations.h"
+
+// Constants
+const TInt KMMCScBkupArchiveWriteStreamCurrentPos = -1;
+const TInt KMMCScBkupArchiveReadStreamCurrentPos = -1;
+
+/**
+*
+*
+* @since 3.0
+*/
+class MMMCScBkupArchiveDataInterface
+ {
+ public: // From MMMCScBkupArchiveDataInterface
+
+ /**
+ *
+ */
+ virtual RFs& ADIFsSession() const = 0;
+
+ /**
+ *
+ */
+ virtual RFile64& ADIRawArchiveFile() const = 0;
+
+ /**
+ *
+ */
+ virtual const TMMCScBkupArchiveVector& ADICurrentArchiveVectorInfo() const = 0;
+
+ /**
+ *
+ */
+ virtual const TMMCScBkupArchiveVector& ADIOverallArchiveVectorInfo() const = 0;
+
+ /**
+ *
+ */
+ virtual RWriteStream& ADIWriteStreamUncompressedLC( TInt aPos = KMMCScBkupArchiveWriteStreamCurrentPos ) = 0;
+
+ /**
+ *
+ */
+ virtual RReadStream& ADIReadStreamUncompressedLC( TInt aPos = KMMCScBkupArchiveReadStreamCurrentPos ) = 0;
+
+ /**
+ *
+ */
+ virtual const TMMCScBkupArchiveVector& ADIWriteL( const TDesC8& aData ) = 0;
+
+ /**
+ *
+ */
+ virtual const TMMCScBkupArchiveVector& ADIReadL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo ) = 0;
+
+ /**
+ *
+ */
+ virtual void ADIWriteFileL( const TDesC& aSourceFileName, TRequestStatus& aStatus ) = 0;
+
+ /**
+ *
+ */
+ virtual void ADIReadFileL( const TDesC& aDestinationFileName, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus ) = 0;
+
+ /**
+ *
+ */
+ virtual void ADIWriteCompressedL( const TDesC8& aData, TRequestStatus& aStatus ) = 0;
+
+ /**
+ *
+ */
+ virtual void ADIReadDecompressedL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus ) = 0;
+
+ /**
+ *
+ */
+ virtual void ADIAsynchronousCancel() = 0;
+
+ /**
+ *
+ */
+ virtual void ADIResetResources(TMMCScBkupOperationType aType) = 0;
+
+#ifdef RD_FILE_MANAGER_BACKUP
+ /**
+ *
+ */
+ virtual void ADIActivateCrcCalculation(TBool aType) = 0;
+
+ /**
+ *
+ */
+ virtual TUint32 ADIArchiveCrc() = 0;
+#endif
+ };
+
+
+
+
+#endif // __MMMCSCBKUPARCHIVEDATAINTERFACE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMMCScBkupDriver.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2002-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: Declaration for MMMCScBkupDriver
+*
+*
+*/
+
+#ifndef __MMMCSCBKUPDRIVER_H__
+#define __MMMCSCBKUPDRIVER_H__
+
+// System includes
+#include <connect/sbeclient.h>
+
+// User includes
+#include "MMCScBkupStateIds.h"
+#include "MMCScBkupOperations.h"
+#include "CMMCScBkupOperationParameters.h"
+
+// Classes referenced
+class CMMCScBkupState;
+class CMMCScBkupArchive;
+class MMMCScBkupProgressObserver;
+class CMMCScBkupDataOwnerCollection;
+class CMMCScBkupFileListCollection;
+class MMMCScBkupArchiveDataInterface;
+
+// Namespaces
+using namespace conn;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+class MMMCScBkupDriver
+ {
+ public: // From MMMCScBkupDriver
+
+ /**
+ *
+ */
+ virtual MMMCScBkupArchiveDataInterface& DrvADI() const = 0;
+
+ /**
+ *
+ */
+ virtual CMMCScBkupArchive& DrvArchive() const = 0;
+
+ /**
+ *
+ */
+ virtual CSBEClient& DrvSecureBackupClient() const = 0;
+
+ /**
+ *
+ */
+ virtual TMMCScBkupOperationType DrvOperation() const = 0;
+
+ /**
+ *
+ */
+ virtual CMMCScBkupOpParamsBase& DrvParamsBase() const = 0;
+
+ /**
+ *
+ */
+ virtual CMMCScBkupDataOwnerCollection& DrvDataOwners() const = 0;
+
+ /**
+ *
+ */
+ virtual RPointerArray<CMMCScBkupDataOwnerCollection>& DrvDataOwnersAll() = 0;
+
+ /**
+ *
+ */
+ virtual CMMCScBkupFileListCollection& DrvFileList() const = 0;
+
+ /**
+ *
+ */
+ virtual TBool DrvLastCategory() const = 0;
+
+ /**
+ *
+ */
+ virtual void DrvStoreTotalProgress(TInt64 aProgress) = 0;
+
+ /**
+ *
+ */
+ virtual TInt64 DrvTotalProgress() const = 0;
+
+ /**
+ *
+ */
+ virtual MMMCScBkupProgressObserver& DrvProgressHandler() const = 0;
+ };
+
+
+
+
+#endif // __MMMCSCBKUPDRIVER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMMCScBkupEngineObserver.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2002 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: Declaration for MMMCScBkupEngineObserver
+*
+*
+*/
+
+#ifndef __MMMCSCBKUPENGINEOBSERVER_H__
+#define __MMMCSCBKUPENGINEOBSERVER_H__
+
+/**
+*
+*
+* @since 3.0
+*/
+class MMMCScBkupEngineObserver
+ {
+ public:
+
+ /**
+ *
+ */
+ enum TEvent
+ {
+ // COMMON
+ ECommonEventFirst = 0,
+ ECommonOperationStarting = ECommonEventFirst,
+ ECommonSizeOfTaskUnderstood,
+ ECommonOperationPrepareEnded,
+ ECommonOperationEnded,
+ ECommonOperationError,
+ ECommonProgress,
+ ECommonEventLast,
+
+ // BACKUP
+ EBackupEventFirst = 100,
+ EBackupAnalysingData,
+ EBackupEventLast,
+
+ // RESTORE
+ ERestoreEventFirst = 200,
+ ERestoreEventLast
+ };
+
+ public: // From MMMCScBkupEngineObserver
+
+ /**
+ *
+ */
+ virtual TInt HandleBkupEngineEventL(TEvent aEvent, TInt aAssociatedData) = 0;
+
+ };
+
+
+#endif // __MMMCSCBKUPENGINEOBSERVER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/MMMCScBkupProgressObserver.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2005-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: Declaration for MMMCScBkupProgressObserver
+*
+*
+*/
+
+#ifndef __MMMCSCBKUPPROGRESSOBSERVER_H__
+#define __MMMCSCBKUPPROGRESSOBSERVER_H__
+
+// System includes
+#include <e32std.h>
+
+// User includes
+
+
+/**
+*
+*
+* @since 3.0
+*/
+class MMMCScBkupProgressObserver
+ {
+ public: // From MMMCScBkupProgressObserver
+
+ /**
+ *
+ */
+ virtual void MMCScBkupHandleProgress( TInt aAmountCompleted ) = 0;
+
+
+ /**
+ *
+ */
+ virtual void MMCScBkupHandleProgressDomainUnderstood( TInt aTotalProgressAmount ) = 0;
+
+
+ /**
+ *
+ */
+ virtual TInt MMCScBkupHandleFreeSpace( TInt aPercent ) = 0;
+
+
+ /**
+ *
+ */
+ virtual void MMCScBkupStartBackuping( TBool aProceed ) = 0;
+ };
+
+
+
+
+#endif // __MMMCSCBKUPPROGRESSOBSERVER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/RMMCScBkupArchiveStreams.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,173 @@
+/*
+* Copyright (c) 2005 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: Declaration for RMMCScBkupArchiveReadStream
+*
+*
+*/
+
+#ifndef __RMMCSCBKUPARCHIVESTREAMS_H__
+#define __RMMCSCBKUPARCHIVESTREAMS_H__
+
+// System includes
+#include <s32strm.h>
+#include <s32file.h>
+
+// User includes
+#include "TMMCScBkupArchiveVector.h"
+
+// Classes referenced
+class CMMCScBkupArchiveDataManager;
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(RMMCScBkupArchiveBuf) : public RFileBuf
+ {
+ public:
+
+ /**
+ *
+ */
+ RMMCScBkupArchiveBuf();
+
+ public: // API
+
+ /**
+ *
+ */
+ void AttachL(CMMCScBkupArchiveDataManager& aADM, RFile64& aFile, TInt aPos, TBool aForWrite );
+
+ /**
+ *
+ */
+ IMPORT_C void Close();
+
+ /**
+ *
+ */
+ TBool IsOpen() const;
+
+ private: // From MStreamBuf
+
+ /**
+ *
+ */
+ void DoRelease();
+
+ /**
+ *
+ */
+ void DoSynchL();
+
+#ifdef RD_FILE_MANAGER_BACKUP
+ /**
+ *
+ */
+ void DoWriteL(const TAny* aPtr,TInt aLength);
+#endif
+
+ private:
+
+ /**
+ *
+ */
+ void UpdateInfoL();
+
+ private: // Member data
+
+ //
+ TBool iWriteMode;
+ //
+ CMMCScBkupArchiveDataManager* iADM;
+ //
+ TMMCScBkupArchiveVector iInfo;
+
+ };
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(RMMCScBkupArchiveReadStream) : public RReadStream
+ {
+ public: // Constructors
+
+ /**
+ *
+ */
+ inline RMMCScBkupArchiveReadStream() { }
+
+ public: // API
+
+ /**
+ *
+ */
+ void OpenLC(CMMCScBkupArchiveDataManager& aADM, RFile64& aArchiveFile, TInt aPos=0);
+
+ /**
+ *
+ */
+ TBool IsOpen() const;
+
+ private: // Member data
+
+ //
+ RMMCScBkupArchiveBuf iSource;
+ };
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(RMMCScBkupArchiveWriteStream) : public RWriteStream
+ {
+ public: // Constructors
+
+ /**
+ *
+ */
+ inline RMMCScBkupArchiveWriteStream()
+ {}
+
+ public: // API
+
+ /**
+ *
+ */
+ void OpenLC(CMMCScBkupArchiveDataManager& aADM, RFile64& aArchiveFile, TInt aPos=0);
+
+ /**
+ *
+ */
+ TBool IsOpen() const;
+
+ private: // Member data
+
+ //
+ RMMCScBkupArchiveBuf iSink;
+ };
+
+
+
+#endif // __RMMCSCBKUPARCHIVESTREAMS_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/RMMCScBkupPointerArray.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2005 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: Declaration for RMMCScBkupPointerArray
+*
+*
+*/
+
+#ifndef __RMMCSCBKUPPOINTERARRAY_H__
+#define __RMMCSCBKUPPOINTERARRAY_H__
+
+// User includes
+#include <e32cmn.h>
+
+
+/**
+*
+*
+* @since 3.0
+*/
+template <class T>
+class RMMCScBkupPointerArray : public RPointerArray<T>
+ {
+public:
+ inline RMMCScBkupPointerArray();
+ inline explicit RMMCScBkupPointerArray(TInt aGranularity);
+ inline void Close();
+ };
+
+
+
+
+
+// Inline methods
+
+template <class T>
+inline RMMCScBkupPointerArray<T>::RMMCScBkupPointerArray()
+ : RPointerArray<T>()
+ {}
+
+template <class T>
+inline RMMCScBkupPointerArray<T>::RMMCScBkupPointerArray(TInt aGranularity)
+ : RPointerArray<T>( aGranularity )
+ {}
+
+template <class T>
+inline void RMMCScBkupPointerArray<T>::Close()
+ {
+ RPointerArray<T>::ResetAndDestroy();
+ RPointerArray<T>::Close();
+ }
+
+
+
+
+
+
+#endif // __RMMCSCBKUPPOINTERARRAY_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/RMMCScBkupProgressSizer.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 2005-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: Declaration for RMMCScBkupProgressSizer
+*
+*
+*/
+
+#ifndef __RMMCSCBKUPPROGRESSSIZER_H__
+#define __RMMCSCBKUPPROGRESSSIZER_H__
+
+// System includes
+#include <f32file.h>
+
+// User includes
+#include "TMMCScBkupDriveFilter.h"
+#include "TMMCScBkupOwnerDataType.h"
+
+// Classes referenced
+class CMMCScBkupDataOwnerInfo;
+class MMMCScBkupProgressObserver;
+class CMMCScBkupDriveAndOperationTypeManager;
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(RMMCScBkupProgressSizer)
+ {
+ public:
+
+ /**
+ * C++ default constructor
+ */
+ RMMCScBkupProgressSizer( const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperationTypes );
+
+ public: // BACKUP SIZING API
+
+ /**
+ *
+ */
+ TInt64 BackupTotalProgressValueL( const CMMCScBkupDataOwnerInfo& aDataOwner );
+
+ /**
+ *
+ */
+ void BackupReportFixedProgressForOpL( MMMCScBkupProgressObserver& aProgressManager, TMMCScBkupOwnerDataType aType );
+
+ public: // RESTORE SIZING API
+
+ /**
+ *
+ */
+ TInt64 RestoreCombinedDataSizeL( const CMMCScBkupDataOwnerInfo& aOwner );
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ TInt NumberOfDriveOpsRequiredL( const CMMCScBkupDataOwnerInfo& aOwner, TMMCScBkupOwnerDataType aType );
+
+ /**
+ *
+ */
+ TInt64 AmountOfPublicDataToBeRestoredL( const CMMCScBkupDataOwnerInfo& aOwner );
+
+ private: // Member data
+
+ //
+ const CMMCScBkupDriveAndOperationTypeManager& iDriveAndOperationTypes;
+ //
+ TMMCScBkupDriveFilter iDriveFilter;
+
+ };
+
+
+
+
+#endif // __RMMCSCBKUPPROGRESSSIZER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/TMMCScBkupArchiveVector.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,177 @@
+/*
+* Copyright (c) 2005 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: Declaration for TMMCScBkupArchiveVector
+*
+*
+*/
+
+#ifndef __TMMCSCBKUPARCHIVEVECTOR_H__
+#define __TMMCSCBKUPARCHIVEVECTOR_H__
+
+// System includes
+#include <s32strm.h>
+#include <f32file.h>
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(TMMCScBkupArchiveVector)
+ {
+ public:
+
+ /**
+ * C++ default constructor
+ */
+ inline TMMCScBkupArchiveVector()
+ { Reset(); }
+
+ /**
+ * C++ default constructor
+ */
+ inline TMMCScBkupArchiveVector( TInt aOffset, TInt aLength )
+ : iOffset( aOffset ), iLength( aLength )
+ {}
+
+ /**
+ * C++ copy constructor
+ */
+ inline TMMCScBkupArchiveVector( const TMMCScBkupArchiveVector& aVector )
+ : iOffset( aVector.Offset() ), iLength( aVector.Length() )
+ {}
+
+ public:
+
+ /**
+ *
+ */
+ inline TInt Offset() const { return iOffset; }
+
+ /**
+ *
+ */
+ inline void SetOffset( TInt aOffset ) { iOffset = aOffset; }
+
+ /**
+ *
+ */
+ inline TInt Length() const { return iLength; }
+
+ /**
+ *
+ */
+ inline void SetLength( TInt aLength ) { iLength = aLength; }
+
+ /**
+ *
+ */
+ inline TInt EndOffset() const { return (iOffset + iLength); }
+
+ /**
+ *
+ */
+ inline void AdjustByDelta( TInt aOffsetDelta ) { iOffset += aOffsetDelta; }
+
+ /**
+ *
+ */
+ static TInt ExternalizedSize();
+
+ public:
+
+ /**
+ *
+ */
+ inline void Reset() { iLength = iOffset = 0; }
+
+ /**
+ *
+ */
+ void ExternalizeL( RWriteStream& aStream ) const;
+
+ /**
+ *
+ */
+ void InternalizeL( RReadStream& aStream );
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ private: // Member data
+
+ /**
+ *
+ */
+ TInt iOffset;
+
+ /**
+ *
+ */
+ TInt iLength;
+ };
+
+
+
+/**
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(TMMCScBkupArchiveDriveAndVector)
+ {
+ public:
+
+ /**
+ * C++ default constructor
+ */
+ inline TMMCScBkupArchiveDriveAndVector() : iDrive( EDriveC ) { }
+
+ /**
+ * C++ default constructor
+ */
+ inline TMMCScBkupArchiveDriveAndVector( TDriveNumber aDrive, const TMMCScBkupArchiveVector& aVector ) : iDrive( aDrive), iVector( aVector ) { }
+
+ public:
+
+ /**
+ * Internalize object from stream
+ */
+ void InternalizeL( RReadStream& aStream );
+
+ /**
+ * Externalize object to stream
+ */
+ void ExternalizeL( RWriteStream& aStream ) const;
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ };
+
+ public: // Data members
+ TDriveNumber iDrive;
+ TMMCScBkupArchiveVector iVector;
+ };
+
+
+
+
+#endif // __TMMCSCBKUPARCHIVEVECTOR_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/TMMCScBkupDriveAndSize.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,106 @@
+/*
+* Copyright (c) 2005-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: Declaration for TMMCScBkupDriveAndSize
+*
+*
+*/
+
+#ifndef __TMMCSCBKUPDRIVEANDSIZE_H__
+#define __TMMCSCBKUPDRIVEANDSIZE_H__
+
+// System includes
+#include <s32strm.h>
+#include <f32file.h>
+
+
+
+/**
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(TMMCScBkupDriveAndSize)
+ {
+ public:
+
+ /**
+ * C++ default constructor
+ */
+ inline TMMCScBkupDriveAndSize() : iDrive( EDriveC ), iSize( 0 ) { }
+
+ /**
+ * C++ default constructor
+ */
+ inline TMMCScBkupDriveAndSize( TDriveNumber aDrive, TInt aSize ) : iDrive( aDrive), iSize( aSize ) { }
+
+ public:
+
+ /**
+ * Internalize object from stream
+ */
+ void InternalizeL( RReadStream& aStream );
+
+ /**
+ * Externalize object to stream
+ */
+ void ExternalizeL( RWriteStream& aStream ) const;
+
+ public: // API
+
+ /**
+ *
+ */
+ inline TInt64 Size() const { return iSize; }
+
+ /**
+ *
+ */
+ inline TDriveNumber Drive() const { return iDrive; }
+
+ /**
+ *
+ */
+ inline void SetSize( TInt64 aSize ) { iSize = aSize; }
+
+ /**
+ *
+ */
+ inline void AddToSize( TInt64 aAmount ) { iSize += aAmount; }
+
+ /**
+ *
+ */
+ inline void SetDrive( TDriveNumber aDrive ) { iDrive = aDrive; }
+
+ private: // Internal enumerations
+ enum
+ {
+ EStreamFormatVersion1 = 1
+ //EStreamFormatVersion2 = 2 // If 64-bit handling will be supported in the future.
+ // That will mean in practice a break in archive file format.
+ // Change are also needed in TMMCScBkupArchiveVector class
+ // to support larger than 2 GB files and data in it.
+ };
+
+ private: // Data members
+ TDriveNumber iDrive;
+ TInt64 iSize;
+ };
+
+
+
+
+
+#endif // __TMMCSCBKUPDRIVEANDSIZE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/TMMCScBkupDriveFilter.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,110 @@
+/*
+* Copyright (c) 2005 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: Declaration for TMMCScBkupDriveFilter
+*
+*
+*/
+
+#ifndef __TMMCSCBKUPDRIVEFILTER_H__
+#define __TMMCSCBKUPDRIVEFILTER_H__
+
+// System includes
+#include <e32std.h>
+#include <f32file.h>
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(TMMCScBkupDriveFilter)
+ {
+ public:
+
+ /**
+ * C++ default constructor
+ */
+ inline TMMCScBkupDriveFilter()
+ { Reset(); }
+
+ /**
+ * C++ default constructor
+ */
+ inline TMMCScBkupDriveFilter( const TDriveList& aPrimaryList )
+ : iPrimaryDriveList( aPrimaryList ), iHaveSecondaryList( EFalse )
+ { Reset(); }
+
+ public: // API
+
+ /**
+ *
+ */
+ void Reset();
+
+ /**
+ *
+ */
+ void SetPrimaryDriveFilter( const TDriveList& aDriveList );
+
+ /**
+ *
+ */
+ void SetSecondaryDriveFilter( const TDriveList& aDriveList );
+
+ /**
+ *
+ */
+ TBool NextValidDrive(TDriveNumber& aDrive);
+
+ /**
+ *
+ */
+ TDriveNumber CurrentDrive() const;
+
+ private: // Internal methods
+
+ /**
+ *
+ */
+ TBool FindValidDrive( const TDriveList& aList, TDriveNumber& aDrive, TBool aOneAttemptOnly = EFalse );
+
+ private: // Member data
+
+ /**
+ *
+ */
+ TInt iCurrentDrive;
+
+ /**
+ *
+ */
+ TDriveList iPrimaryDriveList;
+
+ /**
+ *
+ */
+ TDriveList iSecondaryDriveList;
+
+ /**
+ *
+ */
+ TBool iHaveSecondaryList;
+ };
+
+
+
+
+#endif // __TMMCSCBKUPDRIVEFILTER_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/TMMCScBkupOwnerDataType.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2005 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: Declaration for TMMCScBkupOwnerDataType
+*
+*
+*/
+
+#ifndef __TMMCSCBKUPOWNERDATATYPE_H__
+#define __TMMCSCBKUPOWNERDATATYPE_H__
+
+// NB. This file is included inside an HRH file, so do not include
+// C++ constructs.
+
+/**
+* DO NOT CHANGE THE ORDER OF THIS ENUMERATION
+*
+* @since 3.0
+*/
+enum TMMCScBkupOwnerDataType
+ {
+ // Relates to all data owners
+ EMMCScBkupOwnerDataTypeDataOwner = 0,
+
+ // Relates to java data for a particular owner
+ EMMCScBkupOwnerDataTypeJavaData,
+
+ // Relates to public data for a particular owner
+ EMMCScBkupOwnerDataTypePublicData,
+
+ // Relates to system data for a particular owner
+ EMMCScBkupOwnerDataTypeSystemData,
+
+ // Relates to active data for a particular owner
+ EMMCScBkupOwnerDataTypeActiveData,
+
+ // Relates to passive data for a particular owner
+ EMMCScBkupOwnerDataTypePassiveData,
+
+ // Always leave this last, don't assign it
+ // a value. Don't use it either!
+ EMMCScBkupOwnerDataTypeCount,
+
+ // A generic 'any data type' value. Used by the drive-specific-request &
+ // data sizer. Not a real SBE data type, hence it appears after
+ // the last marker.
+ EMMCScBkupOwnerDataTypeAny
+ };
+
+
+
+#endif // __TMMCSCBKUPOWNERDATATYPE_H__
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupArchive.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,364 @@
+/*
+* Copyright (c) 2005-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: CMMCScBkupArchive Implementation
+*
+*
+*/
+
+#include "CMMCScBkupArchive.h"
+
+// System includes
+#include <bautils.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMCScBkupArchiveUtils.h"
+#include "CMMCScBkupArchiveHeader.h"
+#include "CMMCScBkupArchiveFooter.h"
+#include "MMCScBkupPhoneModelUtils.h"
+#include "CMMCScBkupArchiveDataManager.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::CMMCScBkupArchive()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupArchive::CMMCScBkupArchive( RFs& aFsSession, MMMCScBkupProgressObserver& aProgressManager,
+ MMMCScBkupDriver& aDriver, TBitFlags aCategory )
+: iFsSession( aFsSession ), iProgressManager( aProgressManager ), iDriver( aDriver ), iCategory( aCategory )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::~CMMCScBkupArchive()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupArchive::~CMMCScBkupArchive()
+ {
+ Close( KErrNone );
+ DeleteOldArchive();
+ // Must do these last, as we may need to use the file name in order
+ // to delete any partially created or old archives.
+ delete iArchiveFileName;
+ iArchiveFileName = NULL;
+
+ delete iOldArchiveFileName;
+ iOldArchiveFileName = NULL;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupArchive* CMMCScBkupArchive::NewL( RFs& aFsSession, MMMCScBkupProgressObserver& aProgressManager,
+ MMMCScBkupDriver& aDriver, TBitFlags aCategory )
+ {
+ __LOG("CMMCScBkupArchive::NewL() - START");
+ CMMCScBkupArchive* self = new(ELeave) CMMCScBkupArchive( aFsSession, aProgressManager, aDriver, aCategory );
+ __LOG("CMMCScBkupArchive::NewL() - END");
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::OpenForReadingL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchive::OpenForReadingL( const TDesC& aName )
+ {
+ __LOG1("CMMCScBkupArchive::OpenForReadingL() - START - aName: %S", &aName);
+
+ Close( KErrNone );
+ iArchiveFileName = aName.AllocL();
+ //
+ const TInt error = iArchiveFile.Open(iFsSession, *iArchiveFileName, EFileShareReadersOnly | EFileStream | EFileRead);
+ __LOG1("CMMCScBkupArchive::OpenForReadingL() - open error: %d", error);
+ User::LeaveIfError(error);
+ //
+ PrepareObjectsL();
+ SetMode(EModeReading);
+ __LOG1("CMMCScBkupArchive::OpenForReadingL() - END - file handle: 0x%08x", iArchiveFile.SubSessionHandle());
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::OpenForWritingL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchive::OpenForWritingL( const TDesC& aName )
+ {
+ __LOG1("CMMCScBkupArchive::OpenForWritingL() - START - aName: %S", &aName);
+
+ Close( KErrNone );
+ iArchiveFileName = aName.AllocL();
+
+ // Name old archive as .old until disk space validation is carried out.
+ _LIT( KOldSuffix, "old" );
+ const TChar dot('.');
+ iOldArchiveFileName = HBufC::NewL(aName.Length() + KOldSuffix().Length() + 1);
+ TPtr temp( iOldArchiveFileName->Des() );
+ temp.Copy( aName );
+ const TInt location = temp.LocateReverseF( dot ) + 1;
+ TInt length = temp.Length() - location;
+
+ if( location != KErrNotFound && length <= KOldSuffix().Length() )
+ {
+ temp.Delete( location, length );
+ temp.Append( KOldSuffix().Ptr(), length );
+ }
+ else
+ {
+ temp.Append( dot );
+ temp.Append( KOldSuffix().Ptr(), length );
+ }
+
+ // Ensure archive directory and attributes permit writing of file
+ TInt error = PrepareToOverwrite(aName);
+ __LOG1("CMMCScBkupArchive::OpenForWritingL() - prepare to over-write error: %d", error);
+ User::LeaveIfError(error);
+
+ // Open file for writing
+ error = iArchiveFile.Replace(iFsSession, *iArchiveFileName, EFileShareExclusive | EFileStream | EFileWrite);
+ __LOG1("CMMCScBkupArchive::OpenForWritingL() - replace error: %d", error);
+ User::LeaveIfError(error);
+ //
+ PrepareObjectsL();
+ SetMode(EModeWriting);
+ __LOG1("CMMCScBkupArchive::OpenForWritingL() - END - file handle: 0x%08x", iArchiveFile.SubSessionHandle());
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::RestoreOldArchive()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchive::RestoreOldArchive()
+ {
+ Close( KErrCancel );
+ TInt err = iFsSession.Rename( *iOldArchiveFileName, *iArchiveFileName );
+
+ __LOG2("CMMCScBkupArchive::RestoreOldArchive() - %S restore error: %d", iArchiveFileName, err);
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::DeleteOldArchive()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchive::DeleteOldArchive()
+ {
+ if( iOldArchiveFileName != NULL )
+ {
+ TInt err = iFsSession.Delete( *iOldArchiveFileName );
+
+ __LOG2("CMMCScBkupArchive::DeleteOldArchive() - %S delete error: %d", iOldArchiveFileName, err);
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::Close()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchive::Close( TInt aError )
+ {
+ __LOG1("CMMCScBkupArchive::Close() - aError: %d", aError);
+
+ delete iHeader;
+ iHeader = NULL;
+ delete iFooter;
+ iFooter = NULL;
+ delete iDataManager;
+ iDataManager = NULL;
+ //
+ if ( aError != KErrNone && Mode() == EModeWriting )
+ {
+ // Delete the archive if there was an error with the backup operation
+ __LOG1("CMMCScBkupArchive::Close() - ERROR CREATING BACKUP - aError: %d => archive will be deleted", aError);
+
+ // Ignore error when attempting delete
+ iArchiveFile.Close();
+ (void) iFsSession.Delete( *iArchiveFileName );
+ }
+
+ // Close archive. It might have already been closed in an error situation
+ // but that's okay - it doesn't cause any problems to close it twice.
+ iArchiveFile.Close();
+
+ // Ignore error if setting read-only attribute fails, because it is not fatal
+ iFsSession.SetAtt( *iArchiveFileName, KEntryAttReadOnly, !KEntryAttReadOnly );
+
+ // Reset mode back to default, ready for next operation
+ iMode = EModeUninitialised;
+
+ __LOG("CMMCScBkupArchive::Close() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::Header()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveHeader& CMMCScBkupArchive::Header() const
+ {
+ return *iHeader;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::Footer()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveFooter& CMMCScBkupArchive::Footer() const
+ {
+ return *iFooter;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::ADI()
+//
+//
+// ---------------------------------------------------------------------------
+MMMCScBkupArchiveDataInterface& CMMCScBkupArchive::ADI() const
+ {
+ return *iDataManager;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::PrepareToOverwrite()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupArchive::PrepareToOverwrite( const TDesC& aFile )
+ {
+ __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - START - aFile: %S", &aFile);
+ TInt err = KErrNone;
+
+ // Try deleting file with temporary name (one we have created earlier,
+ // but which has potentially remained for some reason).
+ err = iFsSession.Delete( *iOldArchiveFileName );
+ __LOG2("CMMCScBkupArchive::PrepareToOverwrite() - delete %S result: %d", iOldArchiveFileName, err);
+ // Rename the file for possible later "restoration".
+ err = iFsSession.Rename( aFile, *iOldArchiveFileName );
+ __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - rename existing file: %d", err);
+ // Reset file flags in order to make sure file can be deleted
+ err = iFsSession.SetAtt( *iOldArchiveFileName, KEntryAttNormal, !KEntryAttNormal );
+ __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - setFileAttNormal: %d", err);
+
+ // Create the full path, if not exists
+ err = iFsSession.MkDirAll( aFile );
+ __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - mkDirAll: %d", err);
+
+ if (err == KErrAlreadyExists || err == KErrNone )
+ {
+ // Set folder hidden, ignore error
+ err = iFsSession.SetAtt( BaflUtils::DriveAndPathFromFullName( aFile ), KEntryAttHidden, !KEntryAttHidden );
+ __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - setFolderHidden: %d", err);
+
+ // Reset file flags in order to make sure file can be deleted
+ err = iFsSession.SetAtt( aFile, KEntryAttNormal, !KEntryAttNormal );
+ __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - setFileAttNormal: %d", err);
+
+ }
+ //
+ if ( err == KErrNotFound )
+ {
+ // These errors are ignored
+ __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - mapped %d to KErrNone -> everything is okay", err);
+ err = KErrNone;
+ }
+ //
+ __LOG1("CMMCScBkupArchive::PrepareToOverwrite() - END - err: %d", err);
+ return err;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::ValidArchiveForRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupArchive::ValidArchiveForRestoreL( RFs& aFsSession, const TDesC& aFileName )
+ {
+ HBufC8* modelInfo = NULL;
+ TBitFlags archiveFlags( 0 );
+
+ TVersion archiveVersion;
+
+ // Read the header from the specified archive
+ MMCScBkupArchiveUtils::ReadPhoneValidityInformationL( aFsSession, aFileName, modelInfo, archiveFlags, archiveVersion );
+ CleanupStack::PushL( modelInfo );
+
+ // Check whether its okay to restore the archive.
+ const TBool validArchiveForRestore = MMCScBkupPhoneModelUtils::ArchiveRestorePermissableL( *modelInfo, archiveFlags, archiveVersion );
+ CleanupStack::PopAndDestroy(modelInfo);
+ //
+ return validArchiveForRestore;
+ }
+
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::SetMode()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchive::SetMode(TMode aMode)
+ {
+ iMode = aMode;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchive::PrepareObjectsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchive::PrepareObjectsL()
+ {
+ __LOG("CMMCScBkupArchive::PrepareObjectsL() - START");
+
+ __LOG("CMMCScBkupArchive::PrepareObjectsL() - creating data manager...");
+ iDataManager = CMMCScBkupArchiveDataManager::NewL( iFsSession, iArchiveFile, iProgressManager );
+
+ __LOG("CMMCScBkupArchive::PrepareObjectsL() - creating header...");
+ iHeader = CMMCScBkupArchiveHeader::NewL( *iDataManager, iDriver );
+
+ __LOG("CMMCScBkupArchive::PrepareObjectsL() - creating footer...");
+ iFooter = CMMCScBkupArchiveFooter::NewL( *iDataManager, iDriver );
+
+ __LOG("CMMCScBkupArchive::PrepareObjectsL() - END");
+ }
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupArchiveDataManager.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,647 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupArchiveDataManager Implementation
+*
+*
+*/
+
+#include "CMMCScBkupArchiveDataManager.h"
+
+// System includes
+#include <ezcompressor.h>
+#include <ezdecompressor.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "RMMCScBkupArchiveStreams.h"
+#include "MMCScBkupOperations.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::CMMCScBkupArchiveDataManager()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveDataManager::CMMCScBkupArchiveDataManager( RFs& aFsSession, RFile64& aFile, MMMCScBkupProgressObserver& aProgressManager )
+: CActive( CActive::EPriorityIdle ), iFsSession( aFsSession ), iFile( aFile ), iProgressManager( aProgressManager )
+ {
+ __LOG1("CMMCScBkupArchiveDataManager::CMMCScBkupArchiveDataManager() - START - aFile: 0x%08x", aFile.SubSessionHandle() );
+ CActiveScheduler::Add(this);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::~CMMCScBkupArchiveDataManager()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveDataManager::~CMMCScBkupArchiveDataManager()
+ {
+ Cancel();
+ //
+ iWriteStream.Close();
+ //
+ delete iCompressor;
+ delete iDecompressor;
+ delete iBufferManager;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::ConstructL()
+ {
+ TInt64 size = 0;
+ User::LeaveIfError( iFile.Size( size ) );
+ //
+ iOverallArchiveVectorInfo.SetOffset( 0 );
+ iOverallArchiveVectorInfo.SetLength( size );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveDataManager* CMMCScBkupArchiveDataManager::NewL( RFs& aFsSession, RFile64& aFile, MMMCScBkupProgressObserver& aProgressManager )
+ {
+ CMMCScBkupArchiveDataManager* self = new(ELeave) CMMCScBkupArchiveDataManager( aFsSession, aFile, aProgressManager );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::CurrentOffsetL()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupArchiveDataManager::CurrentOffsetL() const
+ {
+ TInt offset = CurrentOffset();
+ User::LeaveIfError(offset);
+ return offset;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::CurrentOffset()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupArchiveDataManager::CurrentOffset() const
+ {
+ TInt64 offsetOrError = 0;
+ TInt error = iFile.Seek( ESeekCurrent, offsetOrError );
+ //
+ if (error != KErrNone)
+ {
+ offsetOrError = error;
+ }
+ //
+ return offsetOrError;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::SetCurrentVector()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::SetCurrentVector( const TMMCScBkupArchiveVector& aVector )
+ {
+ iCurrentVectorInfo = aVector;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIFsSession()
+//
+//
+// ---------------------------------------------------------------------------
+RFs& CMMCScBkupArchiveDataManager::ADIFsSession() const
+ {
+ return iFsSession;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIRawArchiveFile()
+//
+//
+// ---------------------------------------------------------------------------
+RFile64& CMMCScBkupArchiveDataManager::ADIRawArchiveFile() const
+ {
+ return iFile;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADICurrentArchiveVectorInfo()
+//
+//
+// ---------------------------------------------------------------------------
+const TMMCScBkupArchiveVector& CMMCScBkupArchiveDataManager::ADICurrentArchiveVectorInfo() const
+ {
+ return iCurrentVectorInfo;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIOverallArchiveVectorInfo()
+//
+//
+// ---------------------------------------------------------------------------
+const TMMCScBkupArchiveVector& CMMCScBkupArchiveDataManager::ADIOverallArchiveVectorInfo() const
+ {
+ return iOverallArchiveVectorInfo;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIWriteStreamUncompressedLC()
+//
+//
+// ---------------------------------------------------------------------------
+RWriteStream& CMMCScBkupArchiveDataManager::ADIWriteStreamUncompressedLC( TInt aPos )
+ {
+ __LOG1("CMMCScBkupArchiveDataManager::ADIWriteStreamUncompressedLC() - START - aPos: %d", aPos );
+ //
+ __ASSERT_ALWAYS( !iWriteStream.IsOpen(), User::Invariant() );
+ TInt offset = aPos;
+ if (offset == KMMCScBkupArchiveWriteStreamCurrentPos)
+ {
+ offset = CurrentOffsetL();
+ __LOG1("CMMCScBkupArchiveDataManager::ADIWriteStreamUncompressedLC() - current offset is: %d", offset );
+ }
+ //
+ iWriteStream.OpenLC(*this, iFile, offset);
+
+ __LOG("CMMCScBkupArchiveDataManager::ADIWriteStreamUncompressedLC() - END - stream opened and pushed");
+
+ iCurrentVectorInfo.Reset();
+ return iWriteStream;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIReadStreamUncompressedLC()
+//
+//
+// ---------------------------------------------------------------------------
+RReadStream& CMMCScBkupArchiveDataManager::ADIReadStreamUncompressedLC( TInt aPos )
+ {
+ __ASSERT_ALWAYS( !iReadStream.IsOpen(), User::Invariant() );
+ TInt offset = aPos;
+ if (offset == KMMCScBkupArchiveReadStreamCurrentPos)
+ {
+ offset = CurrentOffsetL();
+ }
+ //
+ iReadStream.OpenLC(*this, iFile, offset);
+ iCurrentVectorInfo.Reset();
+ return iReadStream;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIWriteL()
+//
+//
+// ---------------------------------------------------------------------------
+const TMMCScBkupArchiveVector& CMMCScBkupArchiveDataManager::ADIWriteL( const TDesC8& aData )
+ {
+ const TInt offset = CurrentOffsetL();
+ const TInt error = iFile.Write( aData );
+ User::LeaveIfError(error);
+
+#ifdef RD_FILE_MANAGER_BACKUP
+ CalculateCrc(aData.Ptr(), aData.Length());
+#endif
+ //
+ iCurrentVectorInfo.SetOffset( offset );
+ iCurrentVectorInfo.SetLength( aData.Length() );
+ //
+ return iCurrentVectorInfo;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIReadL()
+//
+//
+// ---------------------------------------------------------------------------
+const TMMCScBkupArchiveVector& CMMCScBkupArchiveDataManager::ADIReadL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo )
+ {
+ TMMCScBkupArchiveVector readInfo(aInfo);
+
+ // Read straight into aSink.
+ const TInt maxLength = aSink.MaxLength();
+ if (aInfo.Length() > maxLength)
+ {
+ readInfo.SetLength( maxLength );
+ }
+
+ aSink.Zero();
+ const TInt error = iFile.Read( static_cast<TInt64>(readInfo.Offset()), aSink, readInfo.Length() );
+ User::LeaveIfError( error );
+ //
+ iCurrentVectorInfo.SetOffset( readInfo.Offset() );
+ iCurrentVectorInfo.SetLength( aSink.Length() );
+ //
+ return iCurrentVectorInfo;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIWriteFileL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::ADIWriteFileL( const TDesC& aSourceFileName, TRequestStatus& aStatus )
+ {
+ __LOG1("CMMCScBkupArchiveDataManager::ADIWriteFileL() - START - file: %S", &aSourceFileName);
+
+ if (!iBufferManager || iBufferManager->Type() != CMMCScBkupBufferManagerBase::ETypeFileToArchive)
+ {
+ CMMCScBkupBufferManagerBase* bm =
+ CMMCScBkupBufferManagerBase::NewByTypeL(
+ CMMCScBkupBufferManagerBase::ETypeFileToArchive,
+ iProgressManager,
+ *this,
+ (TAny*) &aSourceFileName);
+ //
+ delete iBufferManager;
+ iBufferManager = bm;
+ }
+ else
+ {
+ iBufferManager->InitializeL( (TAny*) &aSourceFileName );
+ }
+
+ // Setup our observer & op
+ SetOperation(EOperationCompressing);
+ SetObserver(aStatus);
+
+ // Compressing aData to the archive file
+ EnsureCompressorExistsL(*iBufferManager);
+
+ // Do the compression asynchronously
+ CompleteSelf();
+
+ __LOG("CMMCScBkupArchiveDataManager::ADIWriteFileL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIReadFileL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::ADIReadFileL( const TDesC& aDestinationFileName, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus )
+ {
+ __LOG3("CMMCScBkupArchiveDataManager::ADIReadFileL() - START - file: %S, offset: %8d, length: %8d", &aDestinationFileName, aInfo.Offset(), aInfo.Length());
+
+ if (!iBufferManager || iBufferManager->Type() != CMMCScBkupBufferManagerBase::ETypeArchiveToFile)
+ {
+ CMMCScBkupBufferManagerBase* bm =
+ CMMCScBkupBufferManagerBase::NewByTypeL(
+ CMMCScBkupBufferManagerBase::ETypeArchiveToFile,
+ iProgressManager,
+ *this,
+ (TAny*) &aDestinationFileName,
+ (TAny*) &aInfo );
+ //
+ delete iBufferManager;
+ iBufferManager = bm;
+ }
+ else
+ {
+ iBufferManager->InitializeL( (TAny*) &aDestinationFileName, (TAny*) &aInfo );
+ }
+
+ // Setup our observer & op
+ SetOperation(EOperationDecompressing);
+ SetObserver(aStatus);
+
+ // Compressing aData to the archive file
+ EnsureDecompressorExistsL(*iBufferManager);
+
+ // Do the compression asynchronously
+ CompleteSelf();
+
+ __LOG("CMMCScBkupArchiveDataManager::ADIReadFileL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIWriteCompressedL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::ADIWriteCompressedL( const TDesC8& aData, TRequestStatus& aStatus )
+ {
+ if (!iBufferManager || iBufferManager->Type() != CMMCScBkupBufferManagerBase::ETypeDescriptorToArchive)
+ {
+ CMMCScBkupBufferManagerBase* bm =
+ CMMCScBkupBufferManagerBase::NewByTypeL(
+ CMMCScBkupBufferManagerBase::ETypeDescriptorToArchive,
+ iProgressManager,
+ *this,
+ (TAny*) &aData );
+ //
+ delete iBufferManager;
+ iBufferManager = bm;
+ }
+ else
+ {
+ iBufferManager->InitializeL( (TAny*) &aData );
+ }
+
+ // Setup our observer & op
+ SetOperation(EOperationCompressing);
+ SetObserver(aStatus);
+
+ // Compressing aData to the archive file
+ EnsureCompressorExistsL(*iBufferManager);
+
+ // Do the compression asynchronously
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIReadDecompressedL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::ADIReadDecompressedL( TDes8& aSink, const TMMCScBkupArchiveVector& aInfo, TRequestStatus& aStatus )
+ {
+ if (!iBufferManager || iBufferManager->Type() != CMMCScBkupBufferManagerBase::ETypeArchiveToDescriptor)
+ {
+ CMMCScBkupBufferManagerBase* bm =
+ CMMCScBkupBufferManagerBase::NewByTypeL(
+ CMMCScBkupBufferManagerBase::ETypeArchiveToDescriptor,
+ iProgressManager,
+ *this,
+ (TAny*) &aSink,
+ (TAny*) &aInfo );
+ //
+ delete iBufferManager;
+ iBufferManager = bm;
+ }
+ else
+ {
+ iBufferManager->InitializeL( (TAny*) &aSink, (TAny*) &aInfo );
+ }
+
+ // Setup our observer & op
+ SetOperation(EOperationDecompressing);
+ SetObserver(aStatus);
+
+ // Compressing aData to the archive file
+ EnsureDecompressorExistsL(*iBufferManager);
+
+ // Do the compression asynchronously
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIAsynchronousCancel()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::ADIAsynchronousCancel()
+ {
+ Cancel();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::ADIResetResources()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::ADIResetResources(TMMCScBkupOperationType /* aType */)
+ {
+ __LOG("CMMCScBkupArchiveDataManager::ADIResetResources()");
+
+ delete iCompressor;
+ iCompressor = NULL;
+ delete iDecompressor;
+ iDecompressor = NULL;
+ delete iBufferManager;
+ iBufferManager = NULL;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::EnsureCompressorExistsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::EnsureCompressorExistsL( MEZBufferManager& aBufferManager )
+ {
+ delete iDecompressor;
+ iDecompressor = NULL;
+ //
+ if (iCompressor == NULL)
+ {
+ iCompressor = CEZCompressor::NewL( aBufferManager );
+ }
+ else
+ {
+ iCompressor->ResetL(aBufferManager);
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::EnsureDecompressorExistsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::EnsureDecompressorExistsL( MEZBufferManager& aBufferManager )
+ {
+ delete iCompressor;
+ iCompressor = NULL;
+ //
+ if (iDecompressor == NULL)
+ {
+ iDecompressor = CEZDecompressor::NewL( aBufferManager );
+ }
+ else
+ {
+ iDecompressor->ResetL(aBufferManager);
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::SetObserver()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::SetObserver( TRequestStatus& aStatus )
+ {
+ __ASSERT_DEBUG(iObserverStatus == NULL, User::Invariant());
+ iObserverStatus = &aStatus;
+ *iObserverStatus = KRequestPending;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::CompleteSelf()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::CompleteSelf( TInt aCompletionCode )
+ {
+ SetActive();
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, aCompletionCode);
+ }
+
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::CompleteObserver(()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::CompleteObserver( TInt aCompletionCode )
+ {
+ __ASSERT_ALWAYS(iObserverStatus != NULL, User::Invariant());
+ User::RequestComplete(iObserverStatus, aCompletionCode);
+
+ // Implicitly, we must be finished
+ SetOperation(EOperationIdle);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::SetOperation()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::SetOperation( TOperation aOperation )
+ {
+ iOperation = aOperation;
+ }
+
+
+#ifdef RD_FILE_MANAGER_BACKUP
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::CalculateCrc()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::CalculateCrc( const TAny* aPtr,TInt aLength )
+ {
+ if(iCrcCalcActivated)
+ {
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ TUint32 startTime = User::NTickCount();
+#endif
+ Mem::Crc32(iCrc, aPtr, aLength);
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ iTotalTickCount += (User::NTickCount() - startTime);
+ //__LOG5("CMMCScBkupArchiveDataManager::CalculateCrc() - crc %u, addr 0x%08x, len %d, offset %d, ticks in ms %u",
+ // iCrc, aPtr, aLength, CurrentOffset(), iTotalTickCount);
+#endif
+ }
+ }
+#endif
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::RunL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::RunL()
+ {
+ User::LeaveIfError(iStatus.Int());
+ TBool moreToDo = EFalse;
+ //
+ switch(iOperation)
+ {
+ case EOperationIdle:
+ ASSERT( EFalse );
+ break;
+ case EOperationCompressing:
+ __LOG("CMMCScBkupArchiveDataManager::RunL() - START - EOperationCompressing");
+ moreToDo = iCompressor->DeflateL();
+ break;
+ case EOperationDecompressing:
+ __LOG("CMMCScBkupArchiveDataManager::RunL() - START - EOperationDecompressing");
+ moreToDo = iDecompressor->InflateL();
+ break;
+ }
+ //
+ if (moreToDo)
+ {
+ CompleteSelf();
+ }
+ else
+ {
+ // Update current offset & length info based upon buffer manager indications
+ const TMMCScBkupArchiveVector& finalInfo = iBufferManager->Info();
+ iCurrentVectorInfo = finalInfo;
+
+ // Ensure we set the state back to idle, ready for next operation...
+ iOperation = EOperationIdle;
+
+ __LOG2("CMMCScBkupArchiveDataManager::RunL() - operation complete - offset: %8d, length: %8d", iCurrentVectorInfo.Offset(), iCurrentVectorInfo.Length());
+ CompleteObserver();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::DoCancel()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveDataManager::DoCancel()
+ {
+ __ASSERT_DEBUG(iOperation != EOperationIdle, User::Invariant());
+ //
+ CompleteObserver(KErrCancel);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveDataManager::RunError()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupArchiveDataManager::RunError( TInt aError )
+ {
+ __LOG1("CMMCScBkupArchiveDataManager::RunError() - START - aError: %d", aError);
+ CompleteObserver(aError);
+ //
+ return KErrNone;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupArchiveFooter.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,342 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupArchiveFooter Implementation
+*
+*
+*/
+
+#include "CMMCScBkupArchiveFooter.h"
+
+// User includes
+#include "CMMCScBkupIndexPublicDataFiles.h"
+#include "CMMCScBkupIndexDataOwners.h"
+#include "CMMCScBkupIndexJavaData.h"
+#include "CMMCScBkupIndexSystemData.h"
+#include "CMMCScBkupIndexActiveData.h"
+#include "CMMCScBkupIndexJavaData.h"
+#include "CMMCScBkupIndexPassiveData.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "MMCScBkupArchiveUtils.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+
+/**
+
+ UNDERSTANDING ARCHIVE FOOTER
+ ============================
+
+ // Indicies are:
+ //
+ // EMMCScBkupOwnerDataTypeDataOwner
+ // EMMCScBkupOwnerDataTypeJavaData
+ // EMMCScBkupOwnerDataTypePublicData
+ // EMMCScBkupOwnerDataTypeSystemData
+ // EMMCScBkupOwnerDataTypeActiveData
+ // EMMCScBkupOwnerDataTypePassiveData
+ //
+ // 6 (index objects) *
+ // ( 1 byte for object type + TMMCScBkupArchiveVector::ExternalizedSize() )
+ //
+
+ // THIS IS THE SIZE OF AN INDIVIDUAL "INDEX RECORD POINTER"
+ const TInt indexDataSize = 1 // index type
+ + TMMCScBkupArchiveVector::ExternalizedSize() // vector
+ + 4 // spare1
+ + 4 // spare2
+ ;
+
+ // THIS IS THE TOTAL SIZE OF ALL "INDEX RECORD POINTERS"
+ const TInt sizeOfAllIndicies =
+ 4 // stream format version
+ + 4 // spare1
+ + 4 // spare2
+ + 4 // spare3
+ + 4 // spare4
+ + 4 // index object count
+ + ( EMMCScBkupOwnerDataTypeCount * indexDataSize);
+
+ // WE ALSO WRITE THE AMOUNT OF DISK SPACE REQUIRED FOR EACH DRIVE
+ // IN ORDER TO RESTORE THE ARCHIVE
+
+ (not included here)
+*/
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveFooter::CMMCScBkupArchiveFooter()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveFooter::CMMCScBkupArchiveFooter( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver )
+: iDataInterface( aDataInterface ), iDriver( aDriver )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveFooter::~CMMCScBkupArchiveFooter()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveFooter::~CMMCScBkupArchiveFooter()
+ {
+ iIndicies.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveFooter::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveFooter::ConstructL()
+ {
+ CMMCScBkupIndexBase* index = NULL;
+ //
+ index = CMMCScBkupIndexDataOwners::NewLC();
+ iIndicies.AppendL(index);
+ CleanupStack::Pop(index);
+ //
+ index = CMMCScBkupIndexPublicDataFiles::NewLC();
+ iIndicies.AppendL(index);
+ CleanupStack::Pop(index);
+ //
+ index = CMMCScBkupIndexSystemData::NewLC();
+ iIndicies.AppendL(index);
+ CleanupStack::Pop(index);
+ //
+ index = CMMCScBkupIndexJavaData::NewLC();
+ iIndicies.AppendL(index);
+ CleanupStack::Pop(index);
+ //
+ index = CMMCScBkupIndexActiveData::NewLC();
+ iIndicies.AppendL(index);
+ CleanupStack::Pop(index);
+ //
+ index = CMMCScBkupIndexPassiveData::NewLC();
+ iIndicies.AppendL(index);
+ CleanupStack::Pop(index);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveFooter::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveFooter* CMMCScBkupArchiveFooter::NewL( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupArchiveFooter* self = new(ELeave) CMMCScBkupArchiveFooter( aDataInterface, aDriver );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveFooter::IndexByType()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexBase& CMMCScBkupArchiveFooter::IndexByType( TMMCScBkupOwnerDataType aType )
+ {
+ CMMCScBkupIndexBase* ret = IndexByTypeOrNull( aType );
+ __ASSERT_ALWAYS(ret != NULL, User::Invariant());
+ return *ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveFooter::IndexByTypeOrNull()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexBase* CMMCScBkupArchiveFooter::IndexByTypeOrNull( TMMCScBkupOwnerDataType aType )
+ {
+ CMMCScBkupIndexBase* ret = NULL;
+ //
+ const TInt count = iIndicies.Count();
+ for(TInt i=0; i<count; i++)
+ {
+ CMMCScBkupIndexBase* entry = iIndicies[i];
+ if (entry->Type() == aType)
+ {
+ ret = entry;
+ break;
+ }
+ }
+ //
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveFooter::StoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveFooter::StoreL()
+ {
+ RWriteStream stream( iDataInterface.ADIWriteStreamUncompressedLC() );
+ //
+ const TInt count = iIndicies.Count();
+ __ASSERT_DEBUG( count == EMMCScBkupOwnerDataTypeCount, User::Invariant());
+
+ // NEW: write index version
+ stream.WriteInt32L( EStreamFormatVersion1 );
+
+ // NEW: spare1, spare2, spare3, spare4
+ stream.WriteInt32L( 0 );
+ stream.WriteInt32L( 0 );
+ stream.WriteInt32L( 0 );
+ stream.WriteInt32L( 0 );
+
+ // NEW: write the number of indicies...
+ stream.WriteInt32L( count );
+
+ // ...then write each index in turn...
+ for(TInt i=0; i<count; i++)
+ {
+ // First write the index type...
+ const CMMCScBkupIndexBase& index = *iIndicies[i];
+ stream.WriteInt8L( index.Type() );
+
+ // Then write its offset (and length)
+ const TMMCScBkupArchiveVector& vector = index.Vector();
+ stream << vector;
+
+ // NEW: Then write spare bytes for each index record
+ stream.WriteInt32L( 0 ); // per-index spare1
+ stream.WriteInt32L( 0 ); // per-index spare2
+ }
+
+ // NEW: write the amount of disk space required for each drive as
+ // part of the footer information
+ CMMCScBkupDataOwnerCollection& dataOwners = iDriver.DrvDataOwners();
+ dataOwners.CalculateDiskSpaceRequiredForRestoreL();
+ stream << dataOwners;
+
+ // Tidy up...
+ stream.CommitL();
+ CleanupStack::PopAndDestroy(); // stream
+
+#ifdef RD_FILE_MANAGER_BACKUP
+ // Disable crc-calculation for header data. Header crc'd separately
+ iDataInterface.ADIActivateCrcCalculation(EFalse);
+#endif
+
+ // We can now update the header with the total length of the footer, validation bits and crcs
+ const TMMCScBkupArchiveVector& finalWriteInfo = iDataInterface.ADICurrentArchiveVectorInfo();
+ MMCScBkupArchiveUtils::SetFooterLengthL( iDataInterface.ADIRawArchiveFile(), finalWriteInfo.Length() );
+ MMCScBkupArchiveUtils::SetArchiveContentAsValidL( iDataInterface.ADIRawArchiveFile() );
+#ifdef RD_FILE_MANAGER_BACKUP
+ MMCScBkupArchiveUtils::SetArchiveCrcsL( iDataInterface.ADIRawArchiveFile(), iDataInterface.ADIArchiveCrc() );
+#endif
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveFooter::RestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveFooter::RestoreL( TInt aCalculatedFooterOffsetWithinArchive )
+ {
+ RReadStream stream( iDataInterface.ADIReadStreamUncompressedLC( aCalculatedFooterOffsetWithinArchive ) );
+
+ // NEW: Read stream format
+ stream.ReadInt32L(); // EStreamFormatVersion1
+
+ // NEW: spare1, spare2, spare3, spare4
+ stream.ReadInt32L();
+ stream.ReadInt32L();
+ stream.ReadInt32L();
+ stream.ReadInt32L();
+
+ // NEW: Read written index count
+ const TInt inMemoryIndexCount = iIndicies.Count();
+ const TInt archiveIndexCount = stream.ReadInt32L();
+ if ( archiveIndexCount > inMemoryIndexCount )
+ {
+ // Something wrong with file format version info?
+ User::Leave( KErrCorrupt );
+ }
+
+ // Read index offsets
+ for(TInt i=0; i<archiveIndexCount; i++)
+ {
+ // We only read the offset & length information.
+ // The actual respective index restoration is done by other
+ // objects as a result of other states
+ const TMMCScBkupOwnerDataType type = static_cast< TMMCScBkupOwnerDataType >( stream.ReadInt8L() );
+ //
+ if ( type < 0 || type >= EMMCScBkupOwnerDataTypeCount )
+ {
+ User::Leave( KErrCorrupt );
+ }
+ else
+ {
+ // Always read the vector info (in order to keep the stream
+ // position inline with the externalised representation)
+ TMMCScBkupArchiveVector vector;
+ stream >> vector;
+
+ // NEW: Then read spare bytes for each index record
+ stream.ReadInt32L(); // per-index spare1
+ stream.ReadInt32L(); // per-index spare2
+
+ // But only prepare the index if we have a similar type..
+ CMMCScBkupIndexBase* index = IndexByTypeOrNull( type );
+ //
+ if ( index )
+ {
+ index->SetVector( vector );
+ }
+
+ }
+ }
+
+ // NEW: read the amount of disk space required for each drive as
+ // part of the footer information
+ CMMCScBkupDataOwnerCollection& dataOwners = iDriver.DrvDataOwners();
+ stream >> dataOwners;
+
+ //
+ CleanupStack::PopAndDestroy(); // stream
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupArchiveHeader.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,111 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupArchiveHeader Implementation
+*
+*
+*/
+
+#include "CMMCScBkupArchiveHeader.h"
+
+// User includes
+#include "MMCScBkupArchiveUtils.h"
+
+/**
+ * NB. See MMCScBkupArchiveUtils.cpp for archive header file format.
+ */
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveHeader::CMMCScBkupArchiveHeader()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveHeader::CMMCScBkupArchiveHeader( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver )
+: iDataInterface( aDataInterface ), iDriver( aDriver )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveHeader::~CMMCScBkupArchiveHeader()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveHeader::~CMMCScBkupArchiveHeader()
+ {
+ delete iPhoneModelIdentifier;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveHeader::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveHeader::ConstructL()
+ {
+ iPhoneModelIdentifier = KNullDesC8().AllocL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveHeader::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveHeader* CMMCScBkupArchiveHeader::NewL( MMMCScBkupArchiveDataInterface& aDataInterface, MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupArchiveHeader* self = new(ELeave) CMMCScBkupArchiveHeader( aDataInterface, aDriver );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveHeader::StoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveHeader::StoreL(TBitFlags aCategory)
+ {
+ MMCScBkupArchiveUtils::WriteHeaderL( iDataInterface, aCategory );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveHeader::RestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveHeader::RestoreL()
+ {
+ MMCScBkupArchiveUtils::ReadHeaderL( iDataInterface, *this );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveHeader::SetPhoneModelIdentifierL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveHeader::SetPhoneModelIdentifierL( const TDesC8& aModel )
+ {
+ HBufC8* model = aModel.AllocL();
+ delete iPhoneModelIdentifier;
+ iPhoneModelIdentifier = model;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupArchiveInfo.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,177 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupArchiveInfo Implementation
+*
+*
+*/
+
+#include "CMMCScBkupArchiveInfo.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::CMMCScBkupArchiveInfo()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveInfo::CMMCScBkupArchiveInfo()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::~CMMCScBkupArchiveInfo()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveInfo::~CMMCScBkupArchiveInfo()
+ {
+ delete iFileInfo;
+ iSecureIds.Close();
+ iExcludedSecureIds.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveInfo::ConstructL( const TEntry& aEntry )
+ {
+ iFileInfo = CMMCScBkupFileInfo::NewL( aEntry, 0 );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveInfo* CMMCScBkupArchiveInfo::NewL( const TEntry& aEntry )
+ {
+ CMMCScBkupArchiveInfo* self = NewLC( aEntry );
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupArchiveInfo* CMMCScBkupArchiveInfo::NewLC( const TEntry& aEntry )
+ {
+ CMMCScBkupArchiveInfo* self = new(ELeave) CMMCScBkupArchiveInfo( );
+ CleanupStack::PushL(self);
+ self->ConstructL(aEntry);
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::SetSIDs()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveInfo::SetSIDs( RArray<TSecureId>& aSIDs )
+ {
+ TInt count = aSIDs.Count();
+
+ for(TInt i = 0; i < count; i++ )
+ {
+ iSecureIds.Append(aSIDs[i]);
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::SetExcludedSIDs()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupArchiveInfo::SetExcludedSIDs( RArray<TSecureId>& aExcludedSIDs )
+ {
+ TInt count = aExcludedSIDs.Count();
+
+ for(TInt i = 0; i < count; i++ )
+ {
+ iExcludedSecureIds.Append(aExcludedSIDs[i]);
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::SIDs()
+//
+//
+// ---------------------------------------------------------------------------
+const RArray<TSecureId>& CMMCScBkupArchiveInfo::SIDs( TBitFlags aCategory ) const
+ {
+ __ASSERT_ALWAYS(aCategory == iCategory, User::Invariant());
+
+ return iSecureIds;
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::ExcludeSIDs()
+//
+//
+// ---------------------------------------------------------------------------
+const RArray<TSecureId>& CMMCScBkupArchiveInfo::ExcludedSIDs( TBitFlags aCategory ) const
+ {
+ __ASSERT_ALWAYS(aCategory == iCategory, User::Invariant());
+
+ return iExcludedSecureIds;
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::Category()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TBitFlags CMMCScBkupArchiveInfo::Category() const
+ {
+ return iCategory;
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::FileName()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C const TDesC& CMMCScBkupArchiveInfo::FileName() const
+ {
+ return iFileInfo->FileName();
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::DateTime()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C const TTime& CMMCScBkupArchiveInfo::DateTime() const
+ {
+ return iFileInfo->DateTime();
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupArchiveInfo::Drive()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TDriveNumber CMMCScBkupArchiveInfo::Drive() const
+ {
+ return iFileInfo->Drive();
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupBufferManagers.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,837 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupBufferManagerBase implementation
+*
+*
+*/
+
+#include "CMMCScBkupBufferManagers.h"
+
+// System includes
+#include <ezstream.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupDataStrategies.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+#include "MMMCScBkupProgressObserver.h"
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerBase::CMMCScBkupBufferManagerBase()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerBase::CMMCScBkupBufferManagerBase(MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI, TType aType )
+: iType( aType ), iBufferPointer( NULL, 0, 0 ), iProgressManager( aProgressManager ), iADI( aADI )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerBase::~CMMCScBkupBufferManagerBase()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerBase::~CMMCScBkupBufferManagerBase()
+ {
+ delete iBuffer;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerBase::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerBase::ConstructL(TInt aBufferSize)
+ {
+ HBufC8* buffer = HBufC8::NewL(aBufferSize);
+ delete iBuffer;
+ iBuffer = buffer;
+ iBufferPointer.Set(iBuffer->Des());
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerBase::NewByTypeL()
+//
+// Factory
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerBase* CMMCScBkupBufferManagerBase::NewByTypeL(TType aType, MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI, TAny* aParam1, TAny* aParam2)
+ {
+ CMMCScBkupBufferManagerBase* ret = NULL;
+ //
+ switch(aType)
+ {
+ case ETypeDescriptorToArchive:
+ ret = CMMCScBkupBufferManagerDescriptorToArchive::NewL( aProgressManager, aADI );
+ break;
+ case ETypeFileToArchive:
+ ret = CMMCScBkupBufferManagerFileToArchive::NewL( aProgressManager, aADI );
+ break;
+ case ETypeArchiveToDescriptor:
+ ret = CMMCScBkupBufferManagerArchiveToDescriptor::NewL( aProgressManager, aADI );
+ break;
+ case ETypeArchiveToFile:
+ ret = CMMCScBkupBufferManagerArchiveToFile::NewL( aProgressManager, aADI );
+ break;
+ default:
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ //
+ CleanupStack::PushL(ret);
+ ret->InitializeL(aParam1, aParam2);
+ CleanupStack::Pop(ret);
+ //
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerBase::WriteToArchiveAndUpdateStatsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerBase::WriteToArchiveAndUpdateStatsL( const TDesC8& aData )
+ {
+ // Write the data we currently have to file. This reset
+ const TMMCScBkupArchiveVector& writtenInfo = ADI().ADIWriteL( aData );
+
+ // Update our stats. We combined what we've already written with
+ // the amount of data we just wrote.
+ if ( Info().Offset() == 0 )
+ {
+ // Possibly never updated the offset before...
+ Info().SetOffset( writtenInfo.Offset() );
+ }
+ //
+ const TInt existingLength = Info().Length();
+ Info().SetLength( existingLength + writtenInfo.Length() );
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerDescriptorToArchive::CMMCScBkupBufferManagerDescriptorToArchive()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerDescriptorToArchive::CMMCScBkupBufferManagerDescriptorToArchive( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
+: CMMCScBkupBufferManagerBase( aProgressManager, aADI, ETypeDescriptorToArchive ), iSource( KNullDesC8 )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerDescriptorToArchive::CMMCScBkupBufferManagerDescriptorToArchive()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerDescriptorToArchive* CMMCScBkupBufferManagerDescriptorToArchive::NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
+ {
+ CMMCScBkupBufferManagerDescriptorToArchive* self = new(ELeave) CMMCScBkupBufferManagerDescriptorToArchive( aProgressManager, aADI );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerDescriptorToArchive::InitializeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerDescriptorToArchive::InitializeL(TAny* aParam1, TAny* /*aParam2*/)
+ {
+ const TDesC8* pData = reinterpret_cast<const TDesC8*>(aParam1);
+ iSource.Set(*pData);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerDescriptorToArchive::InitializeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerDescriptorToArchive::InitializeL( CEZZStream& aZStream )
+ {
+ // We use the source object as the input buffer. Therefore the
+ // dynamic buffer is used as an intermediate storage depot for compressed
+ // data before it is flushed to disk
+ aZStream.SetInput( iSource );
+ aZStream.SetOutput( WriteBuffer() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerDescriptorToArchive::NeedInputL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerDescriptorToArchive::NeedInputL(CEZZStream& /*aZStream*/)
+ {
+ // Nothing to do here - we have provided all our input in one go
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerDescriptorToArchive::NeedOutputL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerDescriptorToArchive::NeedOutputL( CEZZStream& aZStream )
+ {
+ const TPtrC8 output(aZStream.OutputDescriptor());
+ WriteToArchiveAndUpdateStatsL( output );
+
+ // Reset ready for more writing
+ WriteBuffer().Zero();
+ aZStream.SetOutput( WriteBuffer() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerDescriptorToArchive::FinalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerDescriptorToArchive::FinalizeL( CEZZStream& aZStream )
+ {
+ // Write any remaining data...
+ const TPtrC8 output(aZStream.OutputDescriptor());
+ WriteToArchiveAndUpdateStatsL( output );
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerFileToArchive::CMMCScBkupBufferManagerFileToArchive()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerFileToArchive::CMMCScBkupBufferManagerFileToArchive( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
+: CMMCScBkupBufferManagerBase( aProgressManager, aADI, ETypeDescriptorToArchive ), iOutputPointer( NULL, 0, 0 )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerFileToArchive::~CMMCScBkupBufferManagerFileToArchive()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerFileToArchive::~CMMCScBkupBufferManagerFileToArchive()
+ {
+ delete iReadStrategy;
+ delete iOutput;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerFileToArchive::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerFileToArchive::ConstructL( const TDesC& aFileName )
+ {
+ CMMCScBkupBufferManagerBase::ConstructL();
+ //
+ CMMCScBkupDataStrategy* strategy = CMMCScBkupDataStrategy::ReadStrategyLC(aFileName, ADI().ADIFsSession());
+ delete iReadStrategy;
+ iReadStrategy = strategy;
+ CleanupStack::Pop(strategy);
+ //
+ HBufC8* output = HBufC8::NewL(KScBkupDefaultBufferSize);
+ delete iOutput;
+ iOutput = output;
+ iOutputPointer.Set(iOutput->Des());
+ //
+ iFileName.Set(aFileName);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerFileToArchive::CMMCScBkupBufferManagerFileToArchive()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerFileToArchive* CMMCScBkupBufferManagerFileToArchive::NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
+ {
+ CMMCScBkupBufferManagerFileToArchive* self = new(ELeave) CMMCScBkupBufferManagerFileToArchive( aProgressManager, aADI );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerFileToArchive::InitializeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerFileToArchive::InitializeL(TAny* aParam1, TAny* /*aParam2*/)
+ {
+ const TDesC* pFileName = reinterpret_cast<const TDesC*>(aParam1);
+ const TPtrC fileName(*pFileName);
+ ConstructL(fileName);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerFileToArchive::InitializeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerFileToArchive::InitializeL( CEZZStream& aZStream )
+ {
+ // Seed input buffer
+ TPtr8 pWriteBuffer( WriteBuffer() );
+ iReadStrategy->Read( pWriteBuffer );
+ aZStream.SetInput( pWriteBuffer );
+
+ // Progress during a backup is calculated based upon the amount of the
+ // source file that has been read.
+ ProgressManager().MMCScBkupHandleProgress( pWriteBuffer.Length() );
+
+ // Make ready for output
+ aZStream.SetOutput( iOutputPointer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerFileToArchive::NeedInputL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerFileToArchive::NeedInputL( CEZZStream& aZStream )
+ {
+ // Read some data from the file
+ TPtr8 pWriteBuffer( WriteBuffer() );
+ iReadStrategy->Read( pWriteBuffer );
+
+ // Progress during a backup is calculated based upon the amount of the
+ // source file that has been read.
+ ProgressManager().MMCScBkupHandleProgress( pWriteBuffer.Length() );
+
+ aZStream.SetInput( pWriteBuffer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerFileToArchive::NeedOutputL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerFileToArchive::NeedOutputL( CEZZStream& aZStream )
+ {
+ const TPtrC8 output(aZStream.OutputDescriptor());
+ WriteToArchiveAndUpdateStatsL( output );
+
+ // Reset ready for more writing
+ iOutputPointer.Zero();
+ aZStream.SetOutput( iOutputPointer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerFileToArchive::FinalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerFileToArchive::FinalizeL( CEZZStream& aZStream )
+ {
+ const TPtrC8 output(aZStream.OutputDescriptor());
+
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ const TInt compressedSize = output.Size() + Info().Length();
+ TEntry entry;
+ const TInt error = ADI().ADIFsSession().Entry(iFileName, entry);
+ if (error == KErrNone)
+ {
+ const TReal ratio = (TReal) entry.iSize / (TReal) compressedSize;
+ __LOG4("CMMCScBkupBufferManagerFileToArchive::FinalizeL() - compressing %S - original: %d, compressed: %d, ratio: %f", &iFileName, entry.iSize, compressedSize, ratio);
+ if (compressedSize > entry.iSize)
+ {
+ // We've made this file bigger
+ __LOG3("CMMCScBkupBufferManagerFileToArchive::FinalizeL() - compressing %S had negative effect - originalSize: %d vs compressed: %d", &iFileName, entry.iSize, compressedSize);
+ }
+ }
+#endif
+
+ WriteToArchiveAndUpdateStatsL( output );
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToDescriptor::CMMCScBkupBufferManagerArchiveToDescriptor()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerArchiveToDescriptor::CMMCScBkupBufferManagerArchiveToDescriptor( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
+: CMMCScBkupBufferManagerBase( aProgressManager, aADI, ETypeArchiveToDescriptor ), iOutputPointer( NULL, 0, 0 )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToDescriptor::~CMMCScBkupBufferManagerArchiveToDescriptor()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerArchiveToDescriptor::~CMMCScBkupBufferManagerArchiveToDescriptor()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToDescriptor::CMMCScBkupBufferManagerArchiveToDescriptor()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerArchiveToDescriptor* CMMCScBkupBufferManagerArchiveToDescriptor::NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
+ {
+ CMMCScBkupBufferManagerArchiveToDescriptor* self = new(ELeave) CMMCScBkupBufferManagerArchiveToDescriptor( aProgressManager, aADI );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToDescriptor::InitializeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToDescriptor::InitializeL( TAny* aParam1, TAny* aParam2 )
+ {
+ // Setup sink
+ TDes8* pDataSink = (TDes8*) aParam1;
+ iOutputPointer.Set( const_cast<TUint8*>( pDataSink->Ptr() ), pDataSink->Length(), pDataSink->MaxLength() );
+
+ // Setup max read info
+ const TMMCScBkupArchiveVector* readInfo = (const TMMCScBkupArchiveVector*) aParam2;
+ Info() = *readInfo;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToDescriptor::InitializeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToDescriptor::InitializeL( CEZZStream& aZStream )
+ {
+ // Try to read some data
+ TryToReadMoreSourceDataL();
+
+ // We use the source object as the input buffer. Therefore the
+ // dynamic buffer is used as an intermediate storage depot for compressed
+ // data before it is flushed to disk
+ aZStream.SetInput( DataView() );
+ aZStream.SetOutput( iOutputPointer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToDescriptor::NeedInputL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToDescriptor::NeedInputL(CEZZStream& aZStream)
+ {
+ // Try to read some more data
+ TryToReadMoreSourceDataL();
+ aZStream.SetInput( DataView() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToDescriptor::NeedOutputL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToDescriptor::NeedOutputL( CEZZStream& /*aZStream*/ )
+ {
+ // Nothing to do here, we've got no more space if the sink is full
+ ASSERT( EFalse );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToDescriptor::FinalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToDescriptor::FinalizeL( CEZZStream& /*aZStream*/ )
+ {
+ // Nothing to do here, we've writing straight to the client's descriptor
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToDescriptor::TryToReadMoreSourceDataL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToDescriptor::TryToReadMoreSourceDataL()
+ {
+ if ( Info().Length() > 0 )
+ {
+ // Try to read some source data, but don't read beyond the limits
+ const TMMCScBkupArchiveVector& readInfoResult = ADI().ADIReadL( WriteBuffer(), Info() );
+
+ // Update remaining read info so that we know where from and how much data
+ // to read next time around
+ const TInt newStartingOffset = readInfoResult.Offset() + readInfoResult.Length();
+ const TInt remainingToBeRead = Info().Length() - readInfoResult.Length();
+ //
+ Info().SetOffset( newStartingOffset );
+ Info().SetLength( remainingToBeRead );
+ //
+ __LOG1("CMMCScBkupBufferManagerArchiveToDescriptor::TryToReadMoreSourceDataL() - read: %d bytes from archive", readInfoResult.Length());
+ //
+ ProgressManager().MMCScBkupHandleProgress( readInfoResult.Length() );
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToFile::CMMCScBkupBufferManagerArchiveToFile()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerArchiveToFile::CMMCScBkupBufferManagerArchiveToFile( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
+: CMMCScBkupBufferManagerBase( aProgressManager, aADI, ETypeArchiveToFile ), iOutputPointer( NULL, 0, 0 )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToFile::~CMMCScBkupBufferManagerArchiveToFile()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerArchiveToFile::~CMMCScBkupBufferManagerArchiveToFile()
+ {
+ delete iWriteStrategy;
+ delete iOutput;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToFile::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToFile::ConstructL( const TDesC& aFileName )
+ {
+ CMMCScBkupBufferManagerBase::ConstructL();
+
+ // Create a write strategy that ultimately writes to a temp file in our
+ // private data cage. When the file has been successfully extracted,
+ // we then replace the original. -> see FinalizeL()
+ CMMCScBkupDataStrategy* strategy = CMMCScBkupDataStrategy::WriteStrategyLC( aFileName, ADI().ADIFsSession(), KMMCScBkupUseTempFile );
+ delete iWriteStrategy;
+ iWriteStrategy = strategy;
+ CleanupStack::Pop( strategy );
+ //
+ HBufC8* output = HBufC8::NewL(KScBkupDefaultBufferSize);
+ delete iOutput;
+ iOutput = output;
+ iOutputPointer.Set(iOutput->Des());
+ //
+ iFileName.Set(aFileName);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToFile::CMMCScBkupBufferManagerArchiveToFile()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupBufferManagerArchiveToFile* CMMCScBkupBufferManagerArchiveToFile::NewL( MMMCScBkupProgressObserver& aProgressManager, MMMCScBkupArchiveDataInterface& aADI )
+ {
+ CMMCScBkupBufferManagerArchiveToFile* self = new(ELeave) CMMCScBkupBufferManagerArchiveToFile( aProgressManager, aADI );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToFile::InitializeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToFile::InitializeL(TAny* aParam1, TAny* aParam2)
+ {
+ // Param 1 is the destination file name
+ const TDesC* pFileName = reinterpret_cast<const TDesC*>(aParam1);
+ const TPtrC fileName(*pFileName);
+ ConstructL(fileName);
+
+ // Param 2 defines where we should read archive data from (and how much we should read)
+ const TMMCScBkupArchiveVector* readInfo = (const TMMCScBkupArchiveVector*) aParam2;
+ Info() = *readInfo;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToFile::InitializeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToFile::InitializeL( CEZZStream& aZStream )
+ {
+ // Try to read some data
+ TryToReadMoreSourceDataL();
+
+ // Input comes from the base class buffer. Its effectively the
+ // data from the archive.
+ aZStream.SetInput( WriteBuffer() );
+
+ // Output goes to our secondary buffer - we'll eventually
+ // write this to the destination file.
+ aZStream.SetOutput( iOutputPointer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToFile::NeedInputL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToFile::NeedInputL( CEZZStream& aZStream )
+ {
+ // Try to read some more data
+ TryToReadMoreSourceDataL();
+ aZStream.SetInput( DataView() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToFile::NeedOutputL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToFile::NeedOutputL( CEZZStream& aZStream )
+ {
+ // Flush output to oure write strategy
+ const TPtrC8 output(aZStream.OutputDescriptor());
+ const TInt error = iWriteStrategy->Write( output );
+ User::LeaveIfError( error );
+
+ // Reset ready for more writing
+ iOutputPointer.Zero();
+ aZStream.SetOutput( iOutputPointer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToFile::FinalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToFile::FinalizeL( CEZZStream& aZStream )
+ {
+ const TPtrC8 output(aZStream.OutputDescriptor());
+ TInt error = iWriteStrategy->Write( output );
+ User::LeaveIfError( error );
+
+ // No errors writing to temp file, try to finalise write strategy -
+ // essentially this replaces the original file.
+ error = iWriteStrategy->Finalize();
+ User::LeaveIfError( error );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupBufferManagerArchiveToFile::TryToReadMoreSourceDataL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupBufferManagerArchiveToFile::TryToReadMoreSourceDataL()
+ {
+ if ( Info().Length() > 0 )
+ {
+ // Try to read some source data, but don't read beyond the limits
+ const TMMCScBkupArchiveVector& readInfoResult = ADI().ADIReadL( WriteBuffer(), Info() );
+
+ // Update remaining read info so that we know where from and how much data
+ // to read next time around
+ const TInt newStartingOffset = readInfoResult.Offset() + readInfoResult.Length();
+ const TInt remainingToBeRead = Info().Length() - readInfoResult.Length();
+ //
+ Info().SetOffset( newStartingOffset );
+ Info().SetLength( remainingToBeRead );
+ //
+ __LOG2("CMMCScBkupBufferManagerArchiveToFile::TryToReadMoreSourceDataL() - read: %d bytes from archive when reconstructing: %S", readInfoResult.Length(), &iFileName );
+ //
+ ProgressManager().MMCScBkupHandleProgress( readInfoResult.Length() );
+ }
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupDataOwnerCollection.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,567 @@
+/*
+* Copyright (c) 2005-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: CMMCScBkupDataOwnerCollection implementation
+*
+*
+*/
+
+#include "CMMCScBkupDataOwnerCollection.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "TMMCScBkupDriveAndSize.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "MMCScBkupSBEUtils.h"
+#include "MMMCScBkupDriver.h"
+#include "CMMCScBkupDriveDataSizeManager.h"
+#include "RMMCScBkupProgressSizer.h"
+#ifdef RD_FILE_MANAGER_BACKUP
+#include "CMMCScBkupArchiveInfo.h"
+#include "BkupEngine.hrh"
+#endif
+
+// Constants
+const TInt KMMCScBkupDataOwnerGranularity = 20;
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::CMMCScBkupDataOwnerCollection()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerCollection::CMMCScBkupDataOwnerCollection( MMMCScBkupDriver& aDriver, TBitFlags aCategory )
+: iDriver( aDriver ), iOwners(KMMCScBkupDataOwnerGranularity), iCategory( aCategory )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::~CMMCScBkupDataOwnerCollection()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerCollection::~CMMCScBkupDataOwnerCollection()
+ {
+ Reset();
+ iOwners.Close();
+ delete iRestoreSizer;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerCollection::ConstructL()
+ {
+ // The restore sizer data type is not relevant. It holds
+ // the combined disk space requirements for all drives
+ // for all data types.
+ iRestoreSizer = CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypeAny );
+ CleanupStack::Pop( iRestoreSizer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerCollection* CMMCScBkupDataOwnerCollection::NewL( MMMCScBkupDriver& aDriver, TBitFlags aCategory )
+ {
+ CMMCScBkupDataOwnerCollection* self = new(ELeave) CMMCScBkupDataOwnerCollection( aDriver, aCategory );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::AssignL()
+//
+//
+// ---------------------------------------------------------------------------
+#ifdef RD_FILE_MANAGER_BACKUP
+TBool CMMCScBkupDataOwnerCollection::AssignL( const CMMCScBkupDataOwnerInfo& dataOwnerInfo )
+ {
+ const CMMCScBkupArchiveInfo& archive = iDriver.DrvParamsBase().ArchiveInfo( Category() );
+ const RArray<TSecureId>& secureIds = archive.SIDs( Category() );
+ const RArray<TSecureId>& excludedSecureIds = archive.ExcludedSIDs( Category() );
+ TBitFlags flags = archive.SpecialFlags();
+ TBitFlags excludedFlags = archive.ExcludedSpecialFlags();
+
+ // Check whether data owner belongs to this category
+ if( BelongsToL( dataOwnerInfo, flags, excludedFlags, secureIds, excludedSecureIds) )
+ {
+ iOwners.AppendL(&dataOwnerInfo);
+ return ETrue;
+ }
+
+ return EFalse;
+ }
+#else
+void CMMCScBkupDataOwnerCollection::AssignL( RDataOwnerInfoArray& aArray )
+ {
+ const TInt count = aArray.Count();
+ //
+ for(TInt i=count-1; i>=0; i--)
+ {
+ // Ownership is immediately transferred to the backup owner info object
+ // so we should remove it from the array prior to passing into NewLC
+ conn::CDataOwnerInfo* sbDataOwner = aArray[i];
+ aArray.Remove(i); // Ensures it won't be deleted twice
+ //
+ CMMCScBkupDataOwnerInfo* info = CMMCScBkupDataOwnerInfo::NewLC( sbDataOwner );
+ iOwners.AppendL(info);
+ CleanupStack::Pop(info);
+ }
+ }
+#endif
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::AppendL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerCollection::AppendL( CMMCScBkupDataOwnerInfo* aNewEntry )
+ {
+ iOwners.AppendL( aNewEntry );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::Count()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDataOwnerCollection::Count() const
+ {
+ return iOwners.Count();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::Owner()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::Owner(TInt aIndex)
+ {
+ CMMCScBkupDataOwnerInfo* info = iOwners[aIndex];
+ return *info;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::Owner()
+//
+//
+// ---------------------------------------------------------------------------
+const CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::Owner(TInt aIndex) const
+ {
+ const CMMCScBkupDataOwnerInfo* info = iOwners[aIndex];
+ return *info;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::OwnerL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( TSecureId aSID )
+ {
+ TInt index = KErrNotFound;
+ CMMCScBkupDataOwnerInfo* ret = CMMCScBkupDataOwnerInfo::New( aSID );
+ if (ret)
+ {
+ TIdentityRelation<CMMCScBkupDataOwnerInfo> relation(CMMCScBkupDataOwnerInfo::CompareDataOwnerBySIDL);
+ index = iOwners.Find( ret, relation );
+ delete ret;
+ ret = NULL;
+ }
+ //
+ if (index >= 0)
+ {
+ ret = iOwners[index];
+ }
+ else
+ {
+ User::Leave(KErrNotFound);
+ }
+ //
+ return *ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::OwnerL()
+//
+//
+// ---------------------------------------------------------------------------
+const CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( TSecureId aSID ) const
+ {
+ CMMCScBkupDataOwnerCollection& self = *const_cast<CMMCScBkupDataOwnerCollection*>(this);
+ CMMCScBkupDataOwnerInfo& ret = self.OwnerL( aSID );
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::OwnerL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( TUid aPackageId )
+ {
+ CMMCScBkupDataOwnerInfo* ret = NULL;
+ const TInt count = iOwners.Count();
+ //
+ for(TInt i=0; i<count; i++)
+ {
+ CMMCScBkupDataOwnerInfo* entry = iOwners[ i ];
+ //
+ const TUid packageId = MMCScBkupSBEUtils::PackageIdFromGenericL( entry->Owner().Identifier() );
+ if ( packageId == aPackageId )
+ {
+ ret = entry;
+ }
+ }
+ //
+ if ( !ret )
+ {
+ User::Leave(KErrNotFound);
+ }
+ //
+ return *ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::OwnerL()
+//
+//
+// ---------------------------------------------------------------------------
+const CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( TUid aPackageId ) const
+ {
+ CMMCScBkupDataOwnerCollection& self = *const_cast<CMMCScBkupDataOwnerCollection*>(this);
+ CMMCScBkupDataOwnerInfo& ret = self.OwnerL( aPackageId );
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::OwnerL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( const TDesC& aHash )
+ {
+ CMMCScBkupDataOwnerInfo* ret = NULL;
+ const TInt count = iOwners.Count();
+ //
+ for(TInt i=0; i<count; i++)
+ {
+ CMMCScBkupDataOwnerInfo* entry = iOwners[ i ];
+
+ // Check if its a java item...
+ const TSBDerivedType type = entry->Owner().Identifier().DerivedTypeL();
+ if ( type == EJavaDerivedType || type == EJavaTransferDerivedType )
+ {
+ // Get hash
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( entry->Owner().Identifier() );
+ const TBool foundMatch = ( *hash == aHash );
+ CleanupStack::PopAndDestroy( hash );
+
+ if ( foundMatch )
+ {
+ ret = entry;
+ break;
+ }
+ }
+ }
+ //
+ if ( !ret )
+ {
+ User::Leave(KErrNotFound);
+ }
+ //
+ return *ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::OwnerL()
+//
+//
+// ---------------------------------------------------------------------------
+const CMMCScBkupDataOwnerInfo& CMMCScBkupDataOwnerCollection::OwnerL( const TDesC& aHash ) const
+ {
+ CMMCScBkupDataOwnerCollection& self = *const_cast<CMMCScBkupDataOwnerCollection*>(this);
+ CMMCScBkupDataOwnerInfo& ret = self.OwnerL( aHash );
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::Remove()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerCollection::Remove( TInt aIndex )
+ {
+ CMMCScBkupDataOwnerInfo* info = iOwners[aIndex];
+ delete info;
+ iOwners.Remove(aIndex);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::Reset()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerCollection::Reset()
+ {
+ iOwners.ResetAndDestroy();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::TotalOperationalSizeL()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupDataOwnerCollection::TotalOperationalSizeL() const
+ {
+ RMMCScBkupProgressSizer sizer( iDriver.DrvParamsBase().DriveAndOperations() );
+ TInt64 size = 0;
+ //
+ const TInt count = Count();
+ for(TInt i=0; i<count; i++)
+ {
+ const CMMCScBkupDataOwnerInfo& owner = Owner( i );
+ //
+ const TInt64 restoreSizeForDO = sizer.RestoreCombinedDataSizeL( owner );
+
+ __LOG2("CMMCScBkupDataOwnerCollection::TotalOperationalSizeL() - data transfer amount required for DO: 0x%08x is: %8Ld", owner.SecureId().iId, restoreSizeForDO );
+
+ size += restoreSizeForDO;
+ }
+ //
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::RebootRequired()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDataOwnerCollection::RebootRequired() const
+ {
+ TBool rebootRequired = EFalse;
+ //
+ const TInt count = iOwners.Count();
+ for(TInt i=count-1; i>=0; i--)
+ {
+ // We check the SBE's common settings (for each Data Owner) to identify
+ // if a reboot is required. So long as one data owner requires a
+ // reboot, then we must reset the machine.. hence we break
+ // out of the loop immediately.
+ const CMMCScBkupDataOwnerInfo& info = *iOwners[i];
+ const CDataOwnerInfo& sbeDataOwnerInfo = info.Owner();
+ //
+ if ( sbeDataOwnerInfo.CommonSettings() & ERequiresReboot )
+ {
+ rebootRequired = ETrue;
+ break;
+ }
+ }
+ //
+ return rebootRequired;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::DiskSpaceRequiredForRestore()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupDataOwnerCollection::DiskSpaceRequiredForRestore( TDriveNumber aDrive ) const
+ {
+ return iRestoreSizer->Size( aDrive );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL()
+ {
+ iRestoreSizer->Reset();
+ //
+ RArray<TMMCScBkupDriveAndSize> driveSizes;
+ CleanupClosePushL( driveSizes );
+ //
+ const TInt count = iOwners.Count();
+ for(TInt i=count-1; i>=0; i--)
+ {
+ const CMMCScBkupDataOwnerInfo& owner = *iOwners[i];
+ __LOG(" ");
+ __LOG1("CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL() - owner: 0x%08x...", owner.SecureId().iId);
+ //
+ owner.OperationalSizesL( driveSizes );
+ //
+ const TInt driveSizesCount = driveSizes.Count();
+ for( TInt j=0; j<driveSizesCount; j++ )
+ {
+ const TMMCScBkupDriveAndSize& entry = driveSizes[ j ];
+ __LOG2("CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL() - drive: %c:, size: %8Ld", entry.Drive() + 'A', entry.Size());
+ //
+ iRestoreSizer->AddToSizeL( entry.Size(), entry.Drive() );
+ }
+ }
+ //
+ CleanupStack::PopAndDestroy( &driveSizes );
+
+#ifdef __MMCSCBKUPLOGGING_ENABLED__
+ __LOG(" ");
+ __LOG(" ");
+ __LOG(" ");
+ __LOG(" ");
+ __LOG("CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL() - SUMMARY:");
+ __LOG(" ");
+
+ for( TInt d = EDriveA; d<=EDriveZ; d++ )
+ {
+ // Get the size of each data type for this drive.
+ const TDriveNumber drive = static_cast< TDriveNumber >( d );
+ const TInt64 size = DiskSpaceRequiredForRestore( drive );
+
+ if ( size > 0 )
+ {
+ __LOG2("CMMCScBkupDataOwnerCollection::CalculateDiskSpaceRequiredForRestoreL() - %8Ld bytes required for drive: %c:", size, drive + 'A' );
+ }
+ }
+#endif
+ }
+
+#ifdef RD_FILE_MANAGER_BACKUP
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::BelongsToL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDataOwnerCollection::BelongsToL(const CMMCScBkupDataOwnerInfo& aInfo,
+ TBitFlags aFlags, TBitFlags aExcludedFlags,
+ const RArray<TSecureId> aSecureIds, const RArray<TSecureId> aExcludedSecureIds) const
+ {
+ // First of all check if data owner has system or java data. If it has and these
+ // types have been declared as excluded data types, then skip owner in this catecory.
+ // Public data is more common to data owners together with other data types meaning it
+ // cannot be a reason to invalidate data owner. System's user data folder (e.g. C:\Data) files
+ // are being skipped later on in public data backup phase if category is not EBUCatUserFiles
+ // It would be possible to just skip excluded types per data owner, but it
+ // might make data owner unstable after restore
+
+ if( ((aExcludedFlags.Value() & EBUCatSpecSystem) && aInfo.HasSystemDataL()) ||
+ ((aExcludedFlags.Value() & EBUCatSpecJava) && aInfo.HasJavaDataL()) ||
+ ((aExcludedFlags.Value() & EBUCatSpecPublic) && aInfo.HasPublicDataL()) )
+ {
+ return EFalse;
+ }
+
+ // Then check whether all specified and SID not in list of excluded owners
+ if( (aFlags.Value() & EBUCatSpecAll) )
+ {
+ TBool excluded = EFalse;
+
+ for(TInt i = 0; i < aExcludedSecureIds.Count(); i++)
+ {
+ if(aInfo.SecureId().iId == aExcludedSecureIds[i].iId)
+ {
+ excluded = ETrue;
+ break;
+ }
+ }
+
+ return !excluded;
+ }
+
+ // Then check whether special rules apply
+ if( ((aFlags.Value() & EBUCatSpecSystem) && aInfo.HasSystemDataL()) ||
+ ((aFlags.Value() & EBUCatSpecJava) && aInfo.HasJavaDataL()) ||
+ ((aFlags.Value() & EBUCatSpecPublic) && aInfo.HasPublicDataL()) )
+ {
+ return ETrue;
+ }
+
+ // Finally check whether SID matches
+ for(TInt i = 0; i < aSecureIds.Count(); i++)
+ {
+ if(aInfo.SecureId().iId == aSecureIds[i].iId)
+ {
+ return ETrue;
+ }
+ }
+
+ return EFalse;
+ }
+#endif
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::InternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerCollection::InternalizeL( RReadStream& aStream )
+ {
+ aStream.ReadInt32L(); // EStreamFormatVersion1
+ aStream.ReadInt32L(); // spare1
+ aStream.ReadInt32L(); // spare2
+ aStream.ReadInt32L(); // spare3
+
+ CMMCScBkupDriveSizer* restoreSizer = CMMCScBkupDriveSizer::NewLC( aStream );
+ delete iRestoreSizer;
+ iRestoreSizer = restoreSizer;
+ CleanupStack::Pop( restoreSizer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerCollection::ExternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerCollection::ExternalizeL( RWriteStream& aStream ) const
+ {
+ aStream.WriteInt32L( EStreamFormatVersion1 );
+ aStream.WriteInt32L( 0 ); // spare1
+ aStream.WriteInt32L( 0 ); // spare2
+ aStream.WriteInt32L( 0 ); // spare3
+
+ aStream << *iRestoreSizer;
+ }
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupDataOwnerInfo.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,560 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupDataOwnerInfo implementation
+*
+*
+*/
+
+#include "CMMCScBkupDataOwnerInfo.h"
+
+// System includes
+#include <s32strm.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMCScBkupSBEUtils.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+#include "CMMCScBkupDriveDataSizeManager.h"
+
+// Constants
+_LIT_SECURE_ID(KMMCScBkupUninitialisedSecureId, 0);
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::CMMCScBkupDataOwnerInfo()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerInfo::CMMCScBkupDataOwnerInfo( CDataOwnerInfo* aOwner )
+: iDataOwner(aOwner), iVersion(EStreamFormatVersionLatest-1)
+ {
+ SetStatus(EUnset);
+ //
+ iSecureId = KMMCScBkupUninitialisedSecureId;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::~CMMCScBkupDataOwnerInfo()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerInfo::~CMMCScBkupDataOwnerInfo()
+ {
+ delete iDataOwner;
+ delete iOperationalSize;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerInfo::ConstructL()
+ {
+ if ( iOperationalSize == NULL )
+ {
+ iOperationalSize = CMMCScBkupDataTypeSizer::NewL();
+ }
+
+ // Try and extract the SID if its a package or a SID type
+ const TSBDerivedType type = iDataOwner->Identifier().DerivedTypeL();
+ //
+ if (type == ESIDDerivedType || type == EPackageDerivedType)
+ {
+ iSecureId = MMCScBkupSBEUtils::SecureIdFromGenericL(iDataOwner->Identifier());
+ if( iSecureId.iId == KNullUid.iUid && iVersion > EStreamFormatVersion1 )
+ {
+ iSecureId = MMCScBkupSBEUtils::PackageIdFromGenericL(iDataOwner->Identifier());
+ }
+ }
+
+ // The following code sets the completion status to ETrue
+ // for any irrelevant items associated with a data owner. I.e. if
+ // a data owner doesn't support active backup, then it sets the completion
+ // of active backup to ETrue. This makes writing the logic inside the
+ // active/passive/system backup items a little easier (active in particular)
+ const TBool hasJavaData = HasJavaDataL();
+ const TBool hasActiveData = HasActiveDataL();
+ const TBool hasPassiveData = HasPassiveDataL();
+ const TBool hasPublicData = HasPublicDataL();
+ const TBool hasSystemData = HasSystemDataL();
+
+ // Update completion statuses (i.e. "what work must be done")
+ SetCompletionStatus( EMMCScBkupOwnerDataTypeJavaData, !hasJavaData );
+ SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, !hasActiveData );
+ SetCompletionStatus( EMMCScBkupOwnerDataTypePassiveData, !hasPassiveData );
+ SetCompletionStatus( EMMCScBkupOwnerDataTypePublicData, !hasPublicData );
+ SetCompletionStatus( EMMCScBkupOwnerDataTypeSystemData, !hasSystemData );
+
+ // Be aware that CMMCScBkupStateRequestSizeOfDataOwner::GetJavaDataSizesL() can
+ // manipulate the passive data completion status depending on whether the midlet
+ // has associated data files.
+
+ // If we're logging, then we write out some useful debugging info that shows
+ // which operations must be performed for each D.O.
+#ifdef __MMCSCBKUPLOGGING_ENABLED__
+ TBuf<256> drivePrint;
+ const TDriveList& driveList = iDataOwner->DriveList();
+
+ for(TInt i=0; i<KMaxDrives; i++)
+ {
+ if (driveList[i] != 0)
+ {
+ const TDriveUnit driveUnit(i);
+ const TDriveName name(driveUnit.Name());
+ drivePrint.Append(name);
+ if (i < KMaxDrives - 1)
+ {
+ drivePrint.Append(_L(", "));
+ }
+ }
+ }
+
+ if ( hasJavaData )
+ {
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( iDataOwner->Identifier() );
+ __LOG7("CMMCScBkupDataOwnerInfo::ConstructL() - PubD: %d, ActD: %d, PasD: %d, JavD: %d, SysD: %d, drives: %S, hash: %S", hasPublicData, hasActiveData, hasPassiveData, hasJavaData, hasSystemData, &drivePrint, hash);
+ CleanupStack::PopAndDestroy( hash );
+ }
+ else
+ {
+ __LOG8("CMMCScBkupDataOwnerInfo::ConstructL() - PubD: %d, ActD: %d, PasD: %d, JavD: %d, SysD: %d, drives: %S, SID : 0x%08x %S", hasPublicData, hasActiveData, hasPassiveData, hasJavaData, hasSystemData, &drivePrint, iSecureId.iId, &MMCScBkupLogger::FriendlyNameForSID( iSecureId ));
+ }
+#endif
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::New()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerInfo* CMMCScBkupDataOwnerInfo::New( TSecureId aSecureId )
+ {
+ CMMCScBkupDataOwnerInfo* self = new CMMCScBkupDataOwnerInfo( NULL );
+ if (self)
+ {
+ self->iSecureId = aSecureId;
+ }
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerInfo* CMMCScBkupDataOwnerInfo::NewLC( CDataOwnerInfo* aOwner )
+ {
+ CleanupStack::PushL(aOwner);
+ CMMCScBkupDataOwnerInfo* self = new(ELeave) CMMCScBkupDataOwnerInfo( aOwner );
+ CleanupStack::Pop(aOwner);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerInfo* CMMCScBkupDataOwnerInfo::NewLC( RReadStream& aStream )
+ {
+ CMMCScBkupDataOwnerInfo* self = new(ELeave) CMMCScBkupDataOwnerInfo();
+ CleanupStack::PushL(self);
+ aStream >> *self;
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::Owner()
+//
+//
+// ---------------------------------------------------------------------------
+CDataOwnerInfo& CMMCScBkupDataOwnerInfo::Owner()
+ {
+ return *iDataOwner;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::Owner()
+//
+//
+// ---------------------------------------------------------------------------
+const CDataOwnerInfo& CMMCScBkupDataOwnerInfo::Owner() const
+ {
+ return *iDataOwner;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::Status()
+//
+//
+// ---------------------------------------------------------------------------
+TDataOwnerStatus CMMCScBkupDataOwnerInfo::Status() const
+ {
+ return iStatus;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::SetStatus()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerInfo::SetStatus(TDataOwnerStatus aStatus)
+ {
+ iStatus = aStatus;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::AddToOperationalSizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerInfo::AddToOperationalSizeL( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive, TInt64 aSize )
+ {
+ iOperationalSize->AddToSizeL( aType, aSize, aDrive );
+
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ const TInt64 newSize = iOperationalSize->Size( aType, aDrive );
+ __LOG5("CMMCScBkupDataOwnerInfo::AddToOperationalSizeL() - [0x%08x] - aSize: %8Ld, newSize: %8Ld, aDrive: %c:, aType: %S", iSecureId.iId, aSize, newSize, aDrive + 'A', &MMCScBkupLogger::DataType( aType ) );
+#endif
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::SetOperationalSizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerInfo::SetOperationalSizeL( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive, TInt64 aSize )
+ {
+ iOperationalSize->Reset( aType, aDrive );
+ iOperationalSize->AddToSizeL( aType, aSize, aDrive );
+
+ __LOG4("CMMCScBkupDataOwnerInfo::SetOperationalSizeL() - [0x%08x] - aSize: %8Ld, aDrive: %c:, aType: %S", iSecureId.iId, aSize, aDrive + 'A', &MMCScBkupLogger::DataType( aType ) );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::ResetOperationalSize()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerInfo::ResetOperationalSize( TMMCScBkupOwnerDataType aType )
+ {
+ iOperationalSize->Reset( aType );
+ __LOG2("CMMCScBkupDataOwnerInfo::ResetOperationalSize() - [0x%08x] - aType: %S", iSecureId.iId, &MMCScBkupLogger::DataType( aType ) );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::OperationalSize()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupDataOwnerInfo::OperationalSize( TMMCScBkupOwnerDataType aType, TDriveNumber aDrive ) const
+ {
+ const TInt64 size = iOperationalSize->Size( aType, aDrive );
+
+ __LOG4("CMMCScBkupDataOwnerInfo::OperationalSize() - [0x%08x] - size: %8Ld, aDrive: %c:, aType: %S", iSecureId.iId, size, aDrive + 'A', &MMCScBkupLogger::DataType( aType ) );
+
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::OperationalSize()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupDataOwnerInfo::OperationalSize( TMMCScBkupOwnerDataType aType ) const
+ {
+ const TInt64 size = iOperationalSize->Size( aType );
+
+ //__LOG3("CMMCScBkupDataOwnerInfo::OperationalSize() - [0x%08x] - size: %8Ld, aType: %S", iSecureId.iId, size, &MMCScBkupLogger::DataType( aType ) );
+
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::OperationalSize()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupDataOwnerInfo::OperationalSize( TDriveNumber aDrive ) const
+ {
+ const TInt64 size = iOperationalSize->CombinedSize( aDrive );
+
+ //__LOG3("CMMCScBkupDataOwnerInfo::OperationalSize() - [0x%08x] - size: %8Ld, aDrive: %c:", iSecureId.iId, size, aDrive + 'A' );
+
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::OperationalSizesL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerInfo::OperationalSizesL( RArray<TMMCScBkupDriveAndSize>& aSizes ) const
+ {
+ iOperationalSize->GetSizesL( aSizes );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::SetCompletionStatus()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerInfo::SetCompletionStatus( TMMCScBkupOwnerDataType aType, TBool aCompleted )
+ {
+ iCompletionStatus[aType] = aCompleted;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::CompletionStatus()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDataOwnerInfo::CompletionStatus( TMMCScBkupOwnerDataType aType ) const
+ {
+ return iCompletionStatus[aType];
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::ActiveDataRetryCount()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDataOwnerInfo::ActiveDataRetryCount() const
+ {
+ return iActiveDataRetryCount;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::SetActiveDataRetryCount()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerInfo::SetActiveDataRetryCount(TInt aCount)
+ {
+ iActiveDataRetryCount = aCount;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::InternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerInfo::InternalizeL(RReadStream& aStream)
+ {
+ iVersion = aStream.ReadInt32L(); // EStreamFormatVersionX
+ aStream.ReadInt32L(); // spare1
+ aStream.ReadInt32L(); // spare2
+ aStream.ReadInt32L(); // spare3
+
+ // Secure ID
+ iSecureId = aStream.ReadInt32L();
+
+ // Data sizes
+ CMMCScBkupDataTypeSizer* operationalSize = CMMCScBkupDataTypeSizer::NewLC( aStream );
+ delete iOperationalSize;
+ iOperationalSize = operationalSize;
+ CleanupStack::Pop( operationalSize );
+
+ // Read data owner buffer length
+ TCardinality dataOwnerLength;
+ aStream >> dataOwnerLength;
+
+ // Internalize the data owner (as raw descriptor)
+ HBufC8* dataOwnerBuffer = HBufC8::NewLC( dataOwnerLength );
+ TPtr8 pDataOwnerBuffer( dataOwnerBuffer->Des() );
+ aStream.ReadL( pDataOwnerBuffer, dataOwnerLength );
+ //
+ CDataOwnerInfo* dataOwner = CDataOwnerInfo::NewL( *dataOwnerBuffer );
+ delete iDataOwner;
+ iDataOwner = dataOwner;
+ CleanupStack::PopAndDestroy( dataOwnerBuffer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::ExternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataOwnerInfo::ExternalizeL(RWriteStream& aStream) const
+ {
+ aStream.WriteInt32L( EStreamFormatVersion2 );
+ aStream.WriteInt32L( 0 ); // spare1
+ aStream.WriteInt32L( 0 ); // spare2
+ aStream.WriteInt32L( 0 ); // spare3
+
+ // Always write secure id
+ aStream.WriteInt32L( iSecureId );
+
+ // ... and always write the data sizes
+ aStream << *iOperationalSize;
+
+ // Externalize the data owner to an HBufC8
+ HBufC8* dataOwnerBuffer = iDataOwner->ExternaliseL();
+ CleanupStack::PushL( dataOwnerBuffer );
+
+ // Write leading byte count - helps us when it comes to internalising
+ const TCardinality dataOwnerLength( dataOwnerBuffer->Length() );
+ aStream << dataOwnerLength;
+
+ // Now write the data owner buffer - not using chevrons just in case it
+ // does funny unicode compression stuff...
+ aStream.WriteL( *dataOwnerBuffer );
+
+ CleanupStack::PopAndDestroy(dataOwnerBuffer);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::CompareDataOwnerBySIDL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDataOwnerInfo::CompareDataOwnerBySIDL(const CMMCScBkupDataOwnerInfo& aLeft, const CMMCScBkupDataOwnerInfo& aRight)
+ {
+ TBool same = EFalse;
+
+ // If we have an owner object, then we first compare the derived types.
+ // If not, we just directly compare the SIDs
+ if ( aLeft.iDataOwner && aRight.iDataOwner )
+ {
+ const TSBDerivedType leftType = aLeft.Owner().Identifier().DerivedTypeL();
+ const TSBDerivedType rightType = aRight.Owner().Identifier().DerivedTypeL();
+ //
+ same = ((leftType == rightType) ||
+ (leftType == ESIDDerivedType && rightType == EPackageDerivedType) ||
+ (leftType == EPackageDerivedType && rightType == ESIDDerivedType)
+ );
+ }
+ else if ( aRight.iDataOwner )
+ {
+ // Check that it is not Java data owner in question. Java DOs all have
+ // secure id 0x0, but it could also be the case for certain package
+ // data owners (see for KDummyId in SBE implementation).
+ if( !MMCScBkupSBEUtils::HasJavaDataL( aRight.Owner() ) )
+ {
+ // ..set to ETrue to trip next if-statement
+ same = ETrue;
+ }
+ }
+
+ // Now compare the SID's themselves
+ if ( same )
+ {
+ same = (aLeft.SecureId() == aRight.SecureId());
+ }
+ //
+ return same;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::HasJavaDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDataOwnerInfo::HasJavaDataL() const
+ {
+ const TBool hasJavaData = MMCScBkupSBEUtils::HasJavaDataL( *iDataOwner );
+ const TInt64 opSize = OperationalSize( EMMCScBkupOwnerDataTypeJavaData );
+ //
+ return hasJavaData || (opSize > 0 );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::HasActiveDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDataOwnerInfo::HasActiveDataL() const
+ {
+ const TBool hasActiveData = MMCScBkupSBEUtils::HasActiveDataL( *iDataOwner );
+ const TInt64 opSize = OperationalSize( EMMCScBkupOwnerDataTypeActiveData );
+ //
+ return hasActiveData || (opSize > 0 );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::HasPassiveDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDataOwnerInfo::HasPassiveDataL() const
+ {
+ const TBool hasPassiveData = MMCScBkupSBEUtils::HasPassiveDataL( *iDataOwner );
+ const TInt64 opSize = OperationalSize( EMMCScBkupOwnerDataTypePassiveData );
+ //
+ return hasPassiveData || (opSize > 0 );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::HasPublicDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDataOwnerInfo::HasPublicDataL() const
+ {
+ const TBool hasPublicData = MMCScBkupSBEUtils::HasPublicDataL( *iDataOwner );
+ const TInt64 opSize = OperationalSize( EMMCScBkupOwnerDataTypePublicData );
+ //
+ return hasPublicData || (opSize > 0 );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataOwnerInfo::HasSystemDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDataOwnerInfo::HasSystemDataL() const
+ {
+ const TBool hasSystemData = MMCScBkupSBEUtils::HasSystemDataL( *iDataOwner );
+ const TInt64 opSize = OperationalSize( EMMCScBkupOwnerDataTypeSystemData );
+ //
+ return hasSystemData || (opSize > 0 );
+ }
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupDataStrategies.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,542 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupDataStrategy implementation
+*
+*
+*/
+
+#include "CMMCScBkupDataStrategies.h"
+
+// User includes
+#include "MMCScBkupConfig.h"
+#include "MMCScBkupLogger.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataStrategy::CMMCScBkupDataStrategy()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDataStrategy::CMMCScBkupDataStrategy()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataStrategy::ReadStrategyLC()
+//
+// Factory function
+// ---------------------------------------------------------------------------
+CMMCScBkupDataStrategy* CMMCScBkupDataStrategy::ReadStrategyLC(const TDesC& aName, RFs& aFsSession)
+ {
+ // Fetch the size
+ TEntry entry;
+ const TInt error = aFsSession.Entry(aName, entry);
+ User::LeaveIfError(error);
+
+ // Construct
+ return CMMCScBkupDataStrategy::ReadStrategyLC(aName, aFsSession, 0, entry.iSize);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataStrategy::ReadStrategyLC()
+//
+// Factory function
+// ---------------------------------------------------------------------------
+CMMCScBkupDataStrategy* CMMCScBkupDataStrategy::ReadStrategyLC(const TDesC& aName, RFs& aFsSession, TInt aOffset, TInt aLength)
+ {
+ CMMCScBkupDataStrategy* ret = NULL;
+
+ // First, try a normal read strategy
+ TRAPD(err, ret = CMMCScBkupDataFileStrategy::NewForReadingL(aName, aFsSession));
+ if (err != KErrNone)
+ {
+ // Try the file section read strategy - don't trap this - if it fails
+ // then this file cannot be read...
+ ret = CMMCScBkupDataFileSectionReadStrategy::NewL(aName, aFsSession);
+ }
+ //
+ if (ret)
+ {
+ ret->SetOffsetAndLength(aOffset, aLength);
+ }
+ //
+ CleanupStack::PushL( ret );
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataStrategy::WriteStrategyLC()
+//
+// Factory function
+// ---------------------------------------------------------------------------
+CMMCScBkupDataStrategy* CMMCScBkupDataStrategy::WriteStrategyLC( const TDesC& aName, RFs& aFsSession, TBool aUseTempFile )
+ {
+ CMMCScBkupDataStrategy* ret = CMMCScBkupDataFileStrategy::NewForWritingL( aName, aFsSession, aUseTempFile );
+ CleanupStack::PushL(ret);
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataStrategy::Write()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDataStrategy::Write(const TDesC8& /*aSource*/)
+ {
+ return KErrNotSupported;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataStrategy::Finalize()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDataStrategy::Finalize()
+ {
+ return KErrNone;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataStrategy::SetOffsetAndLength()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataStrategy::SetOffsetAndLength(TInt aStartOffset, TInt aLengthToRead)
+ {
+ iOffset = aStartOffset;
+ iLengthToRead = aLengthToRead;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileStrategy::CMMCScBkupDataFileStrategy()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDataFileStrategy::CMMCScBkupDataFileStrategy( RFs& aFsSession, TBool aUseTempFile )
+: iFsSession( aFsSession ), iUseTempFile( aUseTempFile )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileStrategy::~CMMCScBkupDataFileStrategy()
+//
+// C++ destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDataFileStrategy::~CMMCScBkupDataFileStrategy()
+ {
+ iFile.Close();
+ delete iFileName;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileStrategy::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataFileStrategy::ConstructL( const TDesC& aName, TUint aMode )
+ {
+ iFileName = aName.AllocL();
+
+ // The previous version of this engine would attempt to use the old
+ // backup & restore API to close this file.
+ //
+ // With the new Symbian Secure Backup Architecture, data owners are expected
+ // to release file locks on public files as soon as they receive
+ // notification that a backup is beginning.
+ TInt error = KErrNone;
+ //
+ if ( iUseTempFile )
+ {
+ // Ensure path for temporary files exists on same drive where file will eventually
+ // be stored. This is important, because we estimate available size on target drive
+ // and so also temporary file size affects whether restore can be carried out.
+ HBufC* tempPath = HBufC::NewLC( KMaxFileName );
+ TPtr pTempPath( tempPath->Des() );
+ pTempPath.Zero();
+ if(aName.Length())
+ {
+ pTempPath.Append( aName[0] );
+ }
+ else
+ {
+ const TDriveUnit driveUnit( KMMCScBkupTempFileDrive );
+ const TDriveName drive( driveUnit.Name() );
+ pTempPath.Append( drive );
+ }
+ pTempPath.Append( KMMCScBkupTempDir );
+
+ error = iFsSession.MkDirAll( pTempPath );
+ if ( ! (error == KErrNone || error == KErrAlreadyExists) )
+ {
+ User::LeaveIfError( error );
+ }
+
+ // Make a temporary file
+ error = iFile.Temp( iFsSession, pTempPath, iTempFileName, aMode );
+ __LOG2("CMMCScBkupDataFileStrategy::ConstructL() - Created temporary file: %S, error code: %d", &iTempFileName, error);
+
+ // Clean up
+ CleanupStack::PopAndDestroy( tempPath );
+ }
+ else
+ {
+ if( aMode & EFileWrite )
+ {
+ error = PrepareToOverwriteFile( iFsSession, *iFileName );
+
+ if ( error == KErrNone )
+ {
+ error = iFile.Create( iFsSession, *iFileName, aMode );
+ __LOG2("CMMCScBkupDataFileStrategy::ConstructL() - Created file %S, error code: %d", iFileName, error);
+ }
+ }
+ else
+ {
+ error = iFile.Open( iFsSession, aName, aMode );
+ }
+ }
+ //
+ User::LeaveIfError(error);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileStrategy::NewForReadingL()
+//
+// Factory function
+// ---------------------------------------------------------------------------
+CMMCScBkupDataFileStrategy* CMMCScBkupDataFileStrategy::NewForReadingL( const TDesC& aName, RFs& aFsSession )
+ {
+ const TUint mode = EFileRead | EFileShareReadersOnly | EFileStream;
+ //
+ CMMCScBkupDataFileStrategy* self = new(ELeave) CMMCScBkupDataFileStrategy( aFsSession );
+ CleanupStack::PushL(self);
+ self->ConstructL( aName, mode );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileStrategy::NewForWritingL()
+//
+// Factory function
+// ---------------------------------------------------------------------------
+CMMCScBkupDataFileStrategy* CMMCScBkupDataFileStrategy::NewForWritingL( const TDesC& aName, RFs& aFsSession, TBool aUseTempFile )
+ {
+ const TUint mode = EFileWrite | EFileStream;
+ //
+ CMMCScBkupDataFileStrategy* self = new(ELeave) CMMCScBkupDataFileStrategy( aFsSession, aUseTempFile );
+ CleanupStack::PushL(self);
+ self->ConstructL( aName, mode );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileStrategy::Read()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDataFileStrategy::Read(TDes8& aSink)
+ {
+ TInt error = KErrNone;
+ //
+ aSink.Zero();
+ TInt amountToRead = (LengthToRead() - Offset());
+ if (amountToRead > aSink.MaxLength())
+ {
+ amountToRead = aSink.MaxLength();
+ }
+ //
+ if (amountToRead > 0)
+ {
+ // Do the read
+ error = iFile.Read( static_cast<TInt64>(Offset()), aSink, amountToRead );
+ if (error == KErrNone)
+ {
+ SetOffset( Offset() + aSink.Length() );
+ }
+ }
+ //
+ return error;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileStrategy::Write()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDataFileStrategy::Write(const TDesC8& aSource)
+ {
+ // Offset writing not supported (no requirement)
+ const TInt error = iFile.Write( aSource );
+ return error;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileStrategy::Finalize()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDataFileStrategy::Finalize()
+ {
+ TInt error = KErrNone;
+ //
+ if ( iUseTempFile )
+ {
+ // Prepare for over-write
+ error = PrepareToOverwriteFile( iFsSession, *iFileName );
+ //
+ if ( error == KErrNone )
+ {
+ // Finally, do the rename
+ error = iFile.Rename( *iFileName );
+ __LOG2("CMMCScBkupDataFileStrategy::Finalize() - Renamed temporary file as: %S, error code: %d", iFileName, error);
+ }
+ }
+
+ // Whatever the situation, we close the file now
+ iFile.Close();
+ return error;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileStrategy::PrepareToOverwriteFile()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDataFileStrategy::PrepareToOverwriteFile( RFs& aFsSession, const TDesC& aFileName )
+ {
+ TInt err = KErrNone;
+
+ // Create the full path, if not exists
+ err = aFsSession.MkDirAll( aFileName );
+
+ if( err == KErrAlreadyExists || !err )
+ {
+ // Reset file flags
+ err = aFsSession.SetAtt( aFileName, KEntryAttNormal, !KEntryAttNormal );
+ }
+
+ if( !err )
+ {
+ // Delete the file
+ err = aFsSession.Delete( aFileName );
+ }
+
+ if( err == KErrNotFound )
+ {
+ // These errors are ignored
+ err = KErrNone;
+ }
+
+ return err;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileSectionReadStrategy::CMMCScBkupDataFileSectionReadStrategy()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDataFileSectionReadStrategy::CMMCScBkupDataFileSectionReadStrategy(RFs& aFsSession)
+: iFsSession(aFsSession)
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileSectionReadStrategy::~CMMCScBkupDataFileSectionReadStrategy()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataFileSectionReadStrategy::~CMMCScBkupDataFileSectionReadStrategy()
+ {
+ delete iFileName;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileSectionReadStrategy::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataFileSectionReadStrategy::ConstructL(const TDesC& aName)
+ {
+ iFileName = aName.AllocL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileSectionReadStrategy::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataFileSectionReadStrategy* CMMCScBkupDataFileSectionReadStrategy::NewL(const TDesC& aName, RFs& aFsSession)
+ {
+ CMMCScBkupDataFileSectionReadStrategy* self = new(ELeave) CMMCScBkupDataFileSectionReadStrategy(aFsSession);
+ CleanupStack::PushL(self);
+ self->ConstructL(aName);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataFileSectionReadStrategy::Read()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDataFileSectionReadStrategy::Read(TDes8& aSink)
+ {
+ TInt error = KErrNone;
+ //
+ aSink.Zero();
+ TInt amountToRead = (LengthToRead() - Offset());
+ if (amountToRead > aSink.MaxLength())
+ {
+ amountToRead = aSink.MaxLength();
+ }
+ //
+ if (amountToRead > 0)
+ {
+ // Do the read
+ error = iFsSession.ReadFileSection( *iFileName, Offset(), aSink, amountToRead );
+ if (error == KErrNone)
+ {
+ SetOffset( Offset() + aSink.Length() );
+ }
+ }
+ return error;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupDriveAndOperationTypeManager.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,218 @@
+/*
+* Copyright (c) 2006-2007 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: CMMCScBkupDriveAndOperationTypeManager implementation
+*
+*
+*/
+
+#include "CMMCScBkupDriveAndOperationTypeManager.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#ifdef RD_MULTIPLE_DRIVE
+#include "BkupEngine.hrh"
+#include <driveinfo.h>
+#include <coemain.h>
+#endif // RD_MULTIPLE_DRIVE
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveAndOperationTypeManager::CMMCScBkupDriveAndOperationTypeManager()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDriveAndOperationTypeManager::CMMCScBkupDriveAndOperationTypeManager()
+ {
+ iCalculatedDriveList.SetMax();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveAndOperationTypeManager::CMMCScBkupDriveAndOperationTypeManager()
+//
+// C++ destructor.
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupDriveAndOperationTypeManager::~CMMCScBkupDriveAndOperationTypeManager()
+ {
+ iEntries.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveAndOperationTypeManager::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveAndOperationTypeManager::ConstructL( BkupDrivesAndOperationList *aDriveList )
+ {
+#ifdef RD_MULTIPLE_DRIVE
+ RFs& fs( CCoeEnv::Static()->FsSession() );
+
+ // Get all user visible drives
+ TInt numDrives( 0 );
+ TDriveList drvList;
+ User::LeaveIfError( DriveInfo::GetUserVisibleDrives(
+ fs, drvList, numDrives ) );
+ TInt drvListLen( drvList.Length() );
+ TMMCScBkupDriveAndOperationType op;
+ TInt count( aDriveList->Count() );
+
+ // Get default system drive
+ TInt sysDrive( 0 );
+ User::LeaveIfError( DriveInfo::GetDefaultDrive(
+ DriveInfo::EDefaultSystem, sysDrive ) );
+
+ for( TInt i( 0 ); i < count; ++i )
+ {
+ TBkupDrivesAndOperation *drvAndOp = &((*aDriveList)[i]);
+ TUint drvCategories( drvAndOp->drvCategories() );
+ TMMCScBkupOwnerDataType dataType(
+ static_cast< TMMCScBkupOwnerDataType >( drvAndOp->ownerDataType() ) );
+
+ if ( drvCategories & EBkupDeviceMemories )
+ {
+ // Default system drive is always backed up when
+ // device memories are defined
+ op.SetDrive( static_cast< TDriveNumber >( sysDrive ) );
+ op.SetDataType( dataType );
+ iEntries.AppendL( op );
+ iCalculatedDriveList[ op.Drive() ] = ETrue;
+ }
+
+ for ( TInt j( 0 ); j < drvListLen; ++j )
+ {
+ if ( sysDrive != j && drvList[ j ] )
+ {
+ // Check for other drives
+ TBool append( EFalse );
+ TUint drvStatus( 0 );
+ User::LeaveIfError( DriveInfo::GetDriveStatus(
+ fs, j, drvStatus ) );
+ if ( ( drvCategories & EBkupDeviceMemories ) &&
+ ( drvStatus & DriveInfo::EDriveInternal ) &&
+ !( drvStatus & DriveInfo::EDriveExternallyMountable ) &&
+ !( drvStatus & DriveInfo::EDriveReadOnly ) )
+ {
+ append = ETrue; // Allow additional device memory
+ }
+ else if ( ( drvCategories & EBkupInternalMassStorages ) &&
+ ( drvStatus & DriveInfo::EDriveInternal ) &&
+ ( drvStatus & DriveInfo::EDriveExternallyMountable ) )
+ {
+ append = ETrue; // Allow internal mass storage
+ }
+ else if ( ( drvCategories & EBkupExternalMassStorages ) &&
+ ( drvStatus & DriveInfo::EDriveRemovable ) )
+ {
+ append = ETrue; // Allow external mass storage
+ }
+ if ( append )
+ {
+ op.SetDrive( static_cast< TDriveNumber >( j ) );
+ op.SetDataType( dataType );
+ iEntries.AppendL( op );
+ iCalculatedDriveList[ op.Drive() ] = ETrue;
+ }
+ }
+ }
+ }
+#else // RD_MULTIPLE_DRIVE
+ TMMCScBkupDriveAndOperationType op;
+ const TInt count = aReader.ReadInt8();
+ //
+ for( TInt i=0; i<count; i++ )
+ {
+ op.SetDrive( static_cast< TDriveNumber >( aReader.ReadInt8() ) );
+ op.SetDataType( static_cast< TMMCScBkupOwnerDataType >( aReader.ReadInt8() ) );
+ //
+ iEntries.AppendL( op );
+ //
+ iCalculatedDriveList[ op.Drive() ] = ETrue;
+ }
+#endif // RD_MULTIPLE_DRIVE
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveAndOperationTypeManager::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupDriveAndOperationTypeManager* CMMCScBkupDriveAndOperationTypeManager::NewL(\
+ BkupDrivesAndOperationList *aDriveList )
+ {
+ CMMCScBkupDriveAndOperationTypeManager* self = new(ELeave) CMMCScBkupDriveAndOperationTypeManager();
+ CleanupStack::PushL( self );
+ self->ConstructL( aDriveList );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveAndOperationTypeManager::Count()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDriveAndOperationTypeManager::Count() const
+ {
+ return iEntries.Count();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveAndOperationTypeManager::At()
+//
+//
+// ---------------------------------------------------------------------------
+const TMMCScBkupDriveAndOperationType& CMMCScBkupDriveAndOperationTypeManager::At( TInt aIndex ) const
+ {
+ return iEntries[ aIndex ];
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveAndOperationTypeManager::IsDataTypeAllowedToAccessDrive()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDriveAndOperationTypeManager::IsDataTypeAllowedToAccessDrive( TDriveNumber aDrive, TMMCScBkupOwnerDataType aDataType ) const
+ {
+// __LOG2("CMMCScBkupDriveAndOperationTypeManager::IsDataTypeAllowedToAccessDrive() - START - aDrive: %c, aDataType: %S", aDrive + 'A', &MMCScBkupLogger::DataType( aDataType ));
+
+ TBool allowed = EFalse;
+ //
+ const TInt count = iEntries.Count();
+ //
+ for( TInt i=0; i<count; i++ )
+ {
+ const TMMCScBkupDriveAndOperationType& entry = iEntries[ i ];
+ //
+ if ( entry.DataType() == aDataType )
+ {
+ // Check drive...
+ if ( entry.Drive() == aDrive )
+ {
+ allowed = ETrue;
+ break;
+ }
+ }
+ }
+ //
+// __LOG1("CMMCScBkupDriveAndOperationTypeManager::IsDataTypeAllowedToAccessDrive() - END - allowed: %d", allowed);
+ return allowed;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupDriveDataSizeManager.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,571 @@
+/*
+* Copyright (c) 2005-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: CMMCScBkupDriveSizer implementation
+*
+*
+*/
+
+#include "CMMCScBkupDriveDataSizeManager.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::CMMCScBkupDriveSizer()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDriveSizer::CMMCScBkupDriveSizer( TMMCScBkupOwnerDataType aType )
+: iDataType( aType )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::~CMMCScBkupDriveSizer()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDriveSizer::~CMMCScBkupDriveSizer()
+ {
+ iEntries.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSizer::ConstructL()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDriveSizer* CMMCScBkupDriveSizer::NewLC( TMMCScBkupOwnerDataType aType )
+ {
+ CMMCScBkupDriveSizer* self = new(ELeave) CMMCScBkupDriveSizer( aType );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDriveSizer* CMMCScBkupDriveSizer::NewLC( RReadStream& aStream )
+ {
+ CMMCScBkupDriveSizer* self = new(ELeave) CMMCScBkupDriveSizer( EMMCScBkupOwnerDataTypeAny );
+ CleanupStack::PushL(self);
+ aStream >> *self;
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::AddToSizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSizer::AddToSizeL( TInt64 aAmount, TDriveNumber aDrive )
+ {
+ TMMCScBkupDriveAndSize* entry = EntryByDrive( aDrive );
+ //
+ if ( entry == NULL )
+ {
+ if ( aAmount > 0 )
+ {
+ TMMCScBkupDriveAndSize newEntry( aDrive, aAmount );
+ iEntries.AppendL( newEntry );
+ }
+ }
+ else
+ {
+ entry->AddToSize( aAmount );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::Reset()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSizer::Reset()
+ {
+ const TInt count = iEntries.Count();
+ for( TInt i=0; i<count; i++ )
+ {
+ TMMCScBkupDriveAndSize& entry = iEntries[ i ];
+ entry.SetSize( 0 );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::Reset()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSizer::Reset( TDriveNumber aDrive )
+ {
+ TMMCScBkupDriveAndSize* entry = EntryByDrive( aDrive );
+ //
+ if ( entry != NULL )
+ {
+ entry->SetSize( 0 );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::Size()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupDriveSizer::Size() const
+ {
+ TInt64 size = 0;
+ //
+ const TInt count = iEntries.Count();
+ for( TInt i=0; i<count; i++ )
+ {
+ const TMMCScBkupDriveAndSize& entry = iEntries[ i ];
+ size += entry.Size();
+ }
+ //
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::Size()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupDriveSizer::Size( TDriveNumber aDrive ) const
+ {
+ TInt64 size = 0;
+ TMMCScBkupDriveAndSize* entry = const_cast< CMMCScBkupDriveSizer* >( this )->EntryByDrive( aDrive );
+ //
+ if ( entry != NULL )
+ {
+ size = entry->Size();
+ }
+ //
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::InternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSizer::InternalizeL(RReadStream& aStream)
+ {
+ aStream.ReadInt32L(); // EStreamFormatVersion1
+ aStream.ReadInt32L(); // spare1
+ aStream.ReadInt32L(); // spare2
+ //
+ iDataType = static_cast< TMMCScBkupOwnerDataType >( aStream.ReadInt8L() );
+ const TInt count = aStream.ReadInt8L();
+ for( TInt i=0; i<count; i++ )
+ {
+ TMMCScBkupDriveAndSize entry;
+ aStream >> entry;
+ iEntries.AppendL( entry );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::ExternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSizer::ExternalizeL(RWriteStream& aStream) const
+ {
+ aStream.WriteInt32L( EStreamFormatVersion1 );
+ aStream.WriteInt32L( 0 ); // spare1
+ aStream.WriteInt32L( 0 ); // spare2
+ //
+ aStream.WriteInt8L( iDataType );
+
+ // Work out how many non-zero entries we need to write.
+ TInt i = 0;
+ const TInt count = iEntries.Count();
+ TInt numberOfExternalisedEntries = 0;
+ //
+ for( i=0; i<count; i++ )
+ {
+ const TMMCScBkupDriveAndSize& entry = iEntries[ i ];
+ if ( entry.Size() > 0 )
+ {
+ ++numberOfExternalisedEntries;
+ }
+ }
+
+ // Now really write the entries...
+ aStream.WriteInt8L( numberOfExternalisedEntries );
+ if ( numberOfExternalisedEntries > 0 )
+ {
+ for( i=0; i<count; i++ )
+ {
+ const TMMCScBkupDriveAndSize& entry = iEntries[ i ];
+ if ( entry.Size() > 0 )
+ {
+ aStream << entry;
+ }
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSizer::EntryByDrive()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupDriveAndSize* CMMCScBkupDriveSizer::EntryByDrive( TDriveNumber aDrive )
+ {
+ TMMCScBkupDriveAndSize* ret = NULL;
+ //
+ const TInt count = iEntries.Count();
+ for( TInt i=0; i<count; i++ )
+ {
+ TMMCScBkupDriveAndSize& entry = iEntries[ i ];
+ //
+ if ( entry.Drive() == aDrive )
+ {
+ ret = &entry;
+ break;
+ }
+ }
+ //
+ return ret;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::CMMCScBkupDataTypeSizer()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDataTypeSizer::CMMCScBkupDataTypeSizer()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::~CMMCScBkupDataTypeSizer()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupDataTypeSizer::~CMMCScBkupDataTypeSizer()
+ {
+ iSizers.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataTypeSizer::ConstructL()
+ {
+ iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypeDataOwner ) );
+ CleanupStack::Pop(); // sizer
+ iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypeJavaData ) );
+ CleanupStack::Pop(); // sizer
+ iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypePublicData ) );
+ CleanupStack::Pop(); // sizer
+ iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypeSystemData ) );
+ CleanupStack::Pop(); // sizer
+ iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypeActiveData ) );
+ CleanupStack::Pop(); // sizer
+ iSizers.AppendL( CMMCScBkupDriveSizer::NewLC( EMMCScBkupOwnerDataTypePassiveData ) );
+ CleanupStack::Pop(); // sizer
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataTypeSizer* CMMCScBkupDataTypeSizer::NewL()
+ {
+ CMMCScBkupDataTypeSizer* self = new(ELeave) CMMCScBkupDataTypeSizer();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataTypeSizer* CMMCScBkupDataTypeSizer::NewLC( RReadStream& aStream )
+ {
+ CMMCScBkupDataTypeSizer* self = new(ELeave) CMMCScBkupDataTypeSizer();
+ CleanupStack::PushL(self);
+ aStream >> *self;
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::AddToSizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataTypeSizer::AddToSizeL( TMMCScBkupOwnerDataType aDataType, TInt64 aAmount, TDriveNumber aDrive )
+ {
+ CMMCScBkupDriveSizer* sizer = SizerByDataType( aDataType );
+ ASSERT( sizer != NULL );
+ sizer->AddToSizeL( aAmount, aDrive );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::Reset()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataTypeSizer::Reset( TMMCScBkupOwnerDataType aDataType )
+ {
+ CMMCScBkupDriveSizer* sizer = SizerByDataType( aDataType );
+ ASSERT( sizer != NULL );
+ sizer->Reset();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::Reset()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataTypeSizer::Reset( TMMCScBkupOwnerDataType aDataType, TDriveNumber aDrive )
+ {
+ CMMCScBkupDriveSizer* sizer = SizerByDataType( aDataType );
+ ASSERT( sizer != NULL );
+ sizer->Reset( aDrive );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::Size()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupDataTypeSizer::Size( TMMCScBkupOwnerDataType aDataType ) const
+ {
+ CMMCScBkupDriveSizer* sizer = const_cast< CMMCScBkupDataTypeSizer* >( this )->SizerByDataType( aDataType );
+ ASSERT( sizer != NULL );
+ const TInt64 size = sizer->Size();
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::Size()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupDataTypeSizer::Size( TMMCScBkupOwnerDataType aDataType, TDriveNumber aDrive ) const
+ {
+ CMMCScBkupDriveSizer* sizer = const_cast< CMMCScBkupDataTypeSizer* >( this )->SizerByDataType( aDataType );
+ ASSERT( sizer != NULL );
+ const TInt64 size = sizer->Size( aDrive );
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::GetSizesL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataTypeSizer::GetSizesL( RArray<TMMCScBkupDriveAndSize>& aSizes ) const
+ {
+ aSizes.Reset();
+ //
+ for( TInt d = EDriveA; d<=EDriveZ; d++ )
+ {
+ // Get the size of each data type for this drive.
+ const TDriveNumber drive = static_cast< TDriveNumber >( d );
+ TMMCScBkupDriveAndSize driveAndSize( drive, 0 );
+
+ const TInt count = iSizers.Count();
+ for( TInt i=0; i<count; i++ )
+ {
+ const CMMCScBkupDriveSizer* sizer = iSizers[ i ];
+ const TInt sizeOfDataForDrive = sizer->Size( drive );
+ //
+ driveAndSize.AddToSize( sizeOfDataForDrive );
+ }
+
+ // Add the entry if the size is more than 0
+ if ( driveAndSize.Size() > 0 )
+ {
+ aSizes.AppendL( driveAndSize );
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::CombinedSize()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupDataTypeSizer::CombinedSize( TDriveNumber aDrive ) const
+ {
+ TInt64 size = 0;
+ //
+ const TInt count = iSizers.Count();
+ for( TInt i=0; i<count; i++ )
+ {
+ const CMMCScBkupDriveSizer* sizer = iSizers[ i ];
+ size += sizer->Size( aDrive );
+ }
+ //
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::InternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataTypeSizer::InternalizeL(RReadStream& aStream)
+ {
+ aStream.ReadInt32L(); // EStreamFormatVersion1
+ aStream.ReadInt32L(); // spare1
+ aStream.ReadInt32L(); // spare2
+ //
+ const TInt count = aStream.ReadInt8L();
+ for( TInt i=0; i<count; i++ )
+ {
+ CMMCScBkupDriveSizer* sizer = CMMCScBkupDriveSizer::NewLC( aStream );
+ iSizers.AppendL( sizer );
+ CleanupStack::Pop( sizer );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::ExternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDataTypeSizer::ExternalizeL(RWriteStream& aStream) const
+ {
+ aStream.WriteInt32L( EStreamFormatVersion1 );
+ aStream.WriteInt32L( 0 ); // spare1
+ aStream.WriteInt32L( 0 ); // spare2
+ //
+ const TInt count = iSizers.Count();
+ aStream.WriteInt8L( count );
+ //
+ for( TInt i=0; i<count; i++ )
+ {
+ CMMCScBkupDriveSizer* sizer = iSizers[ i ];
+ aStream << *sizer;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDataTypeSizer::SizerByDataType()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDriveSizer* CMMCScBkupDataTypeSizer::SizerByDataType( TMMCScBkupOwnerDataType aDataType )
+ {
+ CMMCScBkupDriveSizer* ret = NULL;
+ //
+ const TInt count = iSizers.Count();
+ for( TInt i=0; i<count; i++ )
+ {
+ CMMCScBkupDriveSizer* sizer = iSizers[ i ];
+ //
+ if ( sizer->DataType() == aDataType )
+ {
+ ret = sizer;
+ break;
+ }
+ }
+ //
+ return ret;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupDriveSpecificRequest.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,204 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupDriveSpecificRequest implementation
+*
+*
+*/
+
+#include "CMMCScBkupDriveSpecificRequest.h"
+
+// User includes
+#include "CMMCScBkupDriveAndOperationTypeManager.h"
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::CMMCScBkupDriveSpecificRequest()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDriveSpecificRequest::CMMCScBkupDriveSpecificRequest( const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperations, TMMCScBkupOwnerDataType aDataType, CActive::TPriority aPriority )
+: CActive(aPriority), iDriveAndOperations(aDriveAndOperations), iDataType( aDataType )
+ {
+ CActiveScheduler::Add(this);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::~CMMCScBkupDriveSpecificRequest()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDriveSpecificRequest::~CMMCScBkupDriveSpecificRequest( )
+ {
+ Cancel();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSpecificRequest::ConstructL( )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::RequestL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSpecificRequest::RequestL( TRequestStatus& aObserver )
+ {
+ // Set to -1 so that when RunL is called, the next drive will be calculated
+ // as 0 == EDriveA
+ iCurrentDrive = -1;
+ iObserver = &aObserver;
+ *iObserver = KRequestPending;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::NextValidDrive()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDriveSpecificRequest::NextValidDrive(TDriveNumber& aDrive)
+ {
+ // If we've already reached Z then there isn't any sense in continuing
+ // as all drives have been processed.
+ TBool driveAvailable = EFalse;
+
+ // Keep checking drives until we go past Z
+ while( ++iCurrentDrive <= EDriveZ )
+ {
+ if ( iDriveAndOperations.DriveList()[ iCurrentDrive ] != 0 )
+ {
+ const TDriveNumber drive = static_cast< TDriveNumber >( iCurrentDrive );
+
+ // Drive is allowable according to master list.
+ // But is this data type allowed to access that drive?
+ if ( iDataType == EMMCScBkupOwnerDataTypeAny )
+ {
+ // Found an available drive - data type filtering is not in play...
+ aDrive = drive;
+ driveAvailable = ETrue;
+ break;
+ }
+ else if ( iDriveAndOperations.IsDataTypeAllowedToAccessDrive( drive, iDataType ) )
+ {
+ // Found an available drive - this data type is allowed to access that drive...
+ aDrive = drive;
+ driveAvailable = ETrue;
+ break;
+ }
+ }
+ }
+ //
+ return driveAvailable;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::NextValidDrive()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupDriveSpecificRequest::NextValidDrive(TDriveNumber& aDrive, const TDriveList& aCrossCheckList)
+ {
+ TDriveNumber drive;
+ TBool driveAvailable = NextValidDrive(drive);
+
+ while(driveAvailable)
+ {
+ // Check if aCrossCheckList also supports the same drive
+ if (aCrossCheckList[drive] != 0)
+ {
+ aDrive = drive;
+ break;
+ }
+ else
+ {
+ // Try another drive from our master list
+ driveAvailable = NextValidDrive(drive);
+ }
+ }
+ //
+ return driveAvailable;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::CurrentDrive()
+//
+//
+// ---------------------------------------------------------------------------
+TDriveNumber CMMCScBkupDriveSpecificRequest::CurrentDrive() const
+ {
+ return static_cast<TDriveNumber>(iCurrentDrive);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::DoCancel()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSpecificRequest::DoCancel()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::RunError()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupDriveSpecificRequest::RunError(TInt aError)
+ {
+#ifdef MMCSCBKUP_USE_BREAKPOINTS
+ __BREAKPOINT();
+#endif
+ //
+ CompleteObserverRequest(aError);
+ return KErrNone;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::CompleteObserverRequest()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSpecificRequest::CompleteObserverRequest(TInt aCompletionCode)
+ {
+ __ASSERT_ALWAYS(iObserver != NULL, User::Invariant());
+ User::RequestComplete(iObserver, aCompletionCode);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupDriveSpecificRequest::CompleteSelf()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupDriveSpecificRequest::CompleteSelf(TInt aCompletionCode)
+ {
+ SetActive();
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, aCompletionCode);
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupEngine.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,161 @@
+/*
+* Copyright (c) 2005-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: CMMCScBkupEngine implementation
+*
+*
+*/
+
+#include "CMMCScBkupEngine.h"
+
+// User includes
+#include "CMMCScBkupEngineImpl.h"
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngine::CMMCScBkupEngine()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupEngine::CMMCScBkupEngine()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngine::~CMMCScBkupEngine()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupEngine::~CMMCScBkupEngine()
+ {
+ delete iEngine;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngine::ConstructL()
+//
+// Second phase constructor
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngine::ConstructL( RFs& aFsSession )
+ {
+ iEngine = CMMCScBkupEngineImpl::NewL( aFsSession );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngine::NewL()
+//
+// Static constructor
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupEngine* CMMCScBkupEngine::NewL( RFs& aFsSession )
+ {
+ CMMCScBkupEngine* self = new(ELeave) CMMCScBkupEngine();
+ CleanupStack::PushL( self );
+ self->ConstructL( aFsSession );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngine::StartOperationL()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C void CMMCScBkupEngine::StartOperationL(TMMCScBkupOperationType aOperation, MMMCScBkupEngineObserver& aObserver, CMMCScBkupOpParamsBase* aParams)
+ {
+ TRAPD(err, iEngine->StartOperationL( aOperation, aObserver, aParams ));
+
+ if(err != KErrNone)
+ {
+ TRAP_IGNORE( aObserver.HandleBkupEngineEventL( MMMCScBkupEngineObserver::ECommonOperationError, err) );
+ TRAP_IGNORE( aObserver.HandleBkupEngineEventL( MMMCScBkupEngineObserver::ECommonOperationEnded, err) );
+ // Call cleanup externally, because engine cannot be yet in active state and resources remain unfreed
+ iEngine->CleanupL(KErrCancel);
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngine::CancelOperation()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C void CMMCScBkupEngine::CancelOperation()
+ {
+ iEngine->Cancel();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngine::ValidArchiveForRestore()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TBool CMMCScBkupEngine::ValidArchiveForRestore( const TDesC& aFileName )
+ {
+ TBool archiveOkay = EFalse;
+ //
+ TRAPD(err, archiveOkay = iEngine->ValidArchiveForRestoreL( aFileName ) );
+ if ( err != KErrNone )
+ {
+ archiveOkay = EFalse;
+ }
+ //
+ return archiveOkay;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngine::TotalOperationSizeL()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TInt64 CMMCScBkupEngine::TotalOperationSizeL() const
+ {
+ return iEngine->TotalOperationSizeL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngine::RebootRequired()
+//
+// NOTE: This method is not used in S60 3.x - Sysap handles the reboot
+// ---------------------------------------------------------------------------
+EXPORT_C TBool CMMCScBkupEngine::RebootRequired() const
+ {
+ return iEngine->RebootRequired();
+ }
+
+EXPORT_C TBool CMMCScBkupEngine::DeleteArchivesL( RPointerArray< CMMCScBkupArchiveInfo >& aArchives ) const
+ {
+ return iEngine->DeleteArchivesL( aArchives );
+ }
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngine::ListArchivesL()
+//
+// Provide a list of archives available on all drives
+// ---------------------------------------------------------------------------
+EXPORT_C void CMMCScBkupEngine::ListArchivesL(
+ RPointerArray< CMMCScBkupArchiveInfo >& aArchives,
+ CMMCScBkupOpParamsBase* aParams,
+ const TUint32 aDriveAttMatch,
+ const TInt aDriveMatch ) const
+ {
+ return iEngine->ListArchivesL(
+ aArchives, aParams, aDriveAttMatch, aDriveMatch );
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupEngineImpl.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,1208 @@
+/*
+* Copyright (c) 2005-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: CMMCScBkupEngineImpl implementation
+*
+*
+*/
+
+#include "CMMCScBkupEngineImpl.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupState.h"
+#include "MMCScBkupSBEUtils.h"
+#include "CMMCScBkupArchive.h"
+#include "MMCScBkupOperations.h"
+#include "MMCScBkupArchiveUtils.h"
+#include "CMMCScBkupStateFactory.h"
+#include "MMCScBkupPhoneModelUtils.h"
+#include "MMMCScBkupEngineObserver.h"
+#include "CMMCScBkupFileListCollection.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+#include "CMMCScBkupOperationParameters.h"
+#include "CMMCScBkupArchiveInfo.h"
+#include "BkupEngine.hrh"
+#include <pathinfo.h>
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::CMMCScBkupEngineImpl()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupEngineImpl::CMMCScBkupEngineImpl( RFs& aFsSession )
+: CActive( CActive::EPriorityIdle ),
+ iFsSession(aFsSession),
+ iCurrentArchive(0),
+ iTotalProgress(0),
+ iActiveDataProcessingOngoing(EFalse)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::~CMMCScBkupEngineImpl()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupEngineImpl::~CMMCScBkupEngineImpl()
+ {
+ Cancel();
+ //
+ TRAP_IGNORE(CleanupL());
+
+ iArchives.Close();
+ iDataOwners.Close();
+ iFileLists.Close();
+ delete iSBEClient;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::ConstructL()
+//
+// Second phase constructor
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::ConstructL()
+ {
+ __LOG("CMMCScBkupEngineImpl::ConstructL() - START");
+
+#ifdef MAKE_SBE_LOGGING_DIRECTORY
+ _LIT( KSBELoggingDir, "C:\\Logs\\connect\\" );
+ iFsSession.MkDirAll( KSBELoggingDir );
+#endif
+#ifdef MAKE_MMCSCBKUP_LOGGING_DIRECTORY
+ iFsSession.MkDirAll( KMMCScBkupLoggingFullPath );
+#endif
+
+ __LOG("CMMCScBkupEngineImpl::ConstructL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::NewL()
+//
+// Static constructor
+// ---------------------------------------------------------------------------
+CMMCScBkupEngineImpl* CMMCScBkupEngineImpl::NewL( RFs& aFsSession )
+ {
+ CMMCScBkupEngineImpl* self = new(ELeave) CMMCScBkupEngineImpl( aFsSession );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::StartOperationL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::StartOperationL(TMMCScBkupOperationType aOperation, MMMCScBkupEngineObserver& aObserver, CMMCScBkupOpParamsBase* aParams)
+ {
+ __ASSERT_DEBUG(DrvOperation() == EMMCScBkupOperationTypeIdle, User::Invariant()); //
+
+ // Setup our observer - we will report progress via this interface
+ iObserver = &aObserver;
+
+ // Take ownership of the parameters immediately
+ SetParameters(aParams);
+
+ if(!iSBEClient)
+ {
+ __LOG("CMMCScBkupEngineImpl::ConstructL() - creating SBE client...");
+ iSBEClient = CSBEClient::NewL();
+ }
+
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ // Create a logging directory for logging purposes and empty contents
+ // in order to have the log only from last backup or restore operation
+ CFileMan* fileMan = CFileMan::NewL( iFsSession );
+ CleanupStack::PushL( fileMan );
+ TParse* path = new(ELeave) TParse();
+
+ CleanupStack::PushL(path);
+ path->Set(KMMCScBkupLoggingFullPathAndName, NULL, NULL);
+ fileMan->Delete( path->Path(), CFileMan::ERecurse ); // Ignore error
+ iFsSession.MkDirAll( path->Path() );
+
+ CleanupStack::PopAndDestroy(2, fileMan );
+#endif
+
+ // Prepare supporting objects
+ PrepareObjectsL();
+
+ // Work out what to do...
+ CreateFactoryL( aOperation );
+ //
+ switch(aOperation)
+ {
+ case EMMCScBkupOperationTypeIdle:
+ __ASSERT_ALWAYS(EFalse, User::Invariant());
+ break;
+ case EMMCScBkupOperationTypeFullBackup:
+ case EMMCScBkupOperationTypePartialBackup:
+ PrepareForBackupL( DrvOperation() == EMMCScBkupOperationTypePartialBackup );
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ case EMMCScBkupOperationTypePartialRestore:
+ PrepareForRestoreL( DrvOperation() == EMMCScBkupOperationTypePartialRestore );
+ break;
+ }
+
+ // Do this last, after everything that can leave has been executed
+ iOperationType = aOperation;
+
+ // Notify the observer we're starting up
+ NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationStarting);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::ValidArchiveForRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupEngineImpl::ValidArchiveForRestoreL( const TDesC& aFileName )
+ {
+ const TBool valid = CMMCScBkupArchive::ValidArchiveForRestoreL( iFsSession, aFileName );
+ return valid;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::TotalOperationSizeL()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupEngineImpl::TotalOperationSizeL() const
+ {
+ const TInt64 size = iDataOwners[iCurrentArchive]->TotalOperationalSizeL();
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::RebootRequired()
+//
+// NOTE: This method is not used in S60 3.x - Sysap handles the reboot
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupEngineImpl::RebootRequired() const
+ {
+ // Criteria for a reboot are:
+ //
+ // 1) One or more data owners indicate that a reboot is necessary
+ // via their backup_registration.xml files.
+ //
+ // 2) The current operation is some form of restore (partial or full).
+
+ const TMMCScBkupOperationType currentOp = DrvOperation();
+ __LOG1("CMMCScBkupEngineImpl::RebootRequired() - operation type is: %d", currentOp);
+
+ TBool singleDataOwnerNeedsReboot = EFalse;
+
+ for(TInt i = 0; i < iDataOwners.Count(); i++)
+ {
+ singleDataOwnerNeedsReboot |= iDataOwners[i]->RebootRequired();
+ }
+
+ __LOG1("CMMCScBkupEngineImpl::RebootRequired() - D.O requires reboot?: %d", singleDataOwnerNeedsReboot);
+
+ const TBool rebootRequired = singleDataOwnerNeedsReboot &&
+ ( currentOp == EMMCScBkupOperationTypeFullRestore ||
+ currentOp == EMMCScBkupOperationTypePartialRestore );
+ __LOG1("CMMCScBkupEngineImpl::RebootRequired() - final rebootRequired value: %d", rebootRequired);
+
+ // We return the value to the caller - the UI will display appropriate
+ // UI dialogs and reset the machine as appropriate.
+ return rebootRequired;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvADI()
+//
+//
+// ---------------------------------------------------------------------------
+MMMCScBkupArchiveDataInterface& CMMCScBkupEngineImpl::DrvADI() const
+ {
+ return iArchives[iCurrentArchive]->ADI();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvArchive()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupArchive& CMMCScBkupEngineImpl::DrvArchive() const
+ {
+ __ASSERT_ALWAYS(iCurrentArchive < iArchives.Count(), User::Invariant());
+
+ return *iArchives[iCurrentArchive];
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvSecureBackupClient()
+//
+//
+// ---------------------------------------------------------------------------
+CSBEClient& CMMCScBkupEngineImpl::DrvSecureBackupClient() const
+ {
+ return *iSBEClient;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvOperation()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupOperationType CMMCScBkupEngineImpl::DrvOperation() const
+ {
+ return iOperationType;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvParamsBase()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupOpParamsBase& CMMCScBkupEngineImpl::DrvParamsBase() const
+ {
+ return *iParameters;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvDataOwners()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupDataOwnerCollection& CMMCScBkupEngineImpl::DrvDataOwners() const
+ {
+ __ASSERT_ALWAYS(iCurrentArchive < iDataOwners.Count(), User::Invariant());
+
+ return *iDataOwners[iCurrentArchive];
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvDataOwnersAll()
+//
+//
+// ---------------------------------------------------------------------------
+RPointerArray<CMMCScBkupDataOwnerCollection>& CMMCScBkupEngineImpl::DrvDataOwnersAll()
+ {
+ return iDataOwners;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvFileList()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupFileListCollection& CMMCScBkupEngineImpl::DrvFileList() const
+ {
+ __ASSERT_ALWAYS(iCurrentArchive < iFileLists.Count(), User::Invariant());
+
+ return *iFileLists[iCurrentArchive];
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvLastCategory()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupEngineImpl::DrvLastCategory() const
+ {
+ return ( (iCurrentArchive + 1) == iArchives.Count() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvStoreTotalProgress()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::DrvStoreTotalProgress(TInt64 aProgress)
+ {
+ iTotalProgress += aProgress;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvTotalProgress()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 CMMCScBkupEngineImpl::DrvTotalProgress() const
+ {
+ return iTotalProgress;
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DrvProgressHandler()
+//
+//
+// ---------------------------------------------------------------------------
+MMMCScBkupProgressObserver& CMMCScBkupEngineImpl::DrvProgressHandler() const
+ {
+ CMMCScBkupEngineImpl* self = const_cast< CMMCScBkupEngineImpl* > (this);
+ return *self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::MMCScBkupHandleProgress()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::MMCScBkupHandleProgress( TInt aAmountCompleted )
+ {
+ __ASSERT_ALWAYS( aAmountCompleted >= 0, User::Invariant() );
+ if (aAmountCompleted > 0)
+ {
+ __LOG1("CMMCScBkupEngineImpl::MMCScBkupHandleProgress() - amount: %d", aAmountCompleted);
+ iCumulativeProgress += aAmountCompleted;
+
+ // Notify the observer that we've calculated the operational size
+ NotifyObserver( MMMCScBkupEngineObserver::ECommonProgress, iCumulativeProgress );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::MMCScBkupHandleProgressDomainUnderstood()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::MMCScBkupHandleProgressDomainUnderstood( TInt aTotalProgressAmount )
+ {
+ __LOG1("CMMCScBkupEngineImpl::MMCScBkupHandleProgressDomainUnderstood() - ##### TOTAL PROGRESS AMOUNT IS: %d", aTotalProgressAmount);
+
+ // Notify the observer that we've calculated the operational size
+ NotifyObserver( MMMCScBkupEngineObserver::ECommonSizeOfTaskUnderstood, aTotalProgressAmount );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::MMCScBkupHandleFreeSpace()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupEngineImpl::MMCScBkupHandleFreeSpace( TInt aPercentualFree )
+ {
+ TInt error(KErrNone);
+
+ TRAP_IGNORE( error = iObserver->HandleBkupEngineEventL( MMMCScBkupEngineObserver::EBackupAnalysingData, aPercentualFree ) );
+
+ return error;
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::MMCScBkupStartBackuping()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::MMCScBkupStartBackuping( TBool aProceed )
+ {
+ __LOG1("CMMCScBkupEngineImpl::MMCScBkupStartBackuping() - Disk space validation done, proceed %d", aProceed);
+
+ if( !aProceed )
+ {
+ // If there is no space to carry out backup, "restore" existing backup file,
+ // so that it can still be restored.
+ for(TInt i = 0; i < iArchives.Count(); i++)
+ {
+ iArchives[i]->RestoreOldArchive( );
+ }
+ }
+ else
+ {
+ // Clean up existing backup files.
+ for(TInt i = 0; i < iArchives.Count(); i++)
+ {
+ iArchives[i]->DeleteOldArchive( );
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::RunL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::RunL()
+ {
+ __LOG(" ");
+ __LOG(" ");
+ if ( !CurrentStateAvailable() )
+ {
+ __LOG2("CMMCScBkupEngineImpl::RunL() - START - iStatus: %d, iCurrentArchive %d",
+ iStatus.Int(), iCurrentArchive);
+ }
+ else
+ {
+ __LOG3("CMMCScBkupEngineImpl::RunL() - START - iStatus: %d, state: 0x%08x, iCurrentArchive %d",
+ iStatus.Int(), CurrentState().StateId().iUid, iCurrentArchive);
+ }
+
+ User::LeaveIfError(iStatus.Int());
+
+ // Get the state that just finished - its always the head item
+ const TBool stateStepAvailable = CurrentStateAvailable();
+ __ASSERT_ALWAYS(stateStepAvailable, User::Invariant());
+ CMMCScBkupState& currentState = CurrentState();
+
+ // Store completed state id as we're about to delete the object
+ // so it won't be available afterwards...
+ const TMMCScBkupStateId completedState = currentState.StateId();
+
+ // Identify which state should run next. In effect each state
+ // defines the overall state machine. This is required since
+ // some states need to dynamically change which state is executed
+ // next. A good example is the archive op for active data - when
+ // one or more active data clients are not ready, then the next
+ // state should be to requery their readyness. After their
+ // readyness has been ascertained, then any DO's that have now
+ // become ready should be archived. This process continues
+ // until all Active Data owners have provided all their data.
+ TMMCScBkupStateId nextState;
+
+ __LOG3("CMMCScBkupEngineImpl::RunL() - iActiveDataProcessingOngoing %d, completedState 0x%08x, nextState 0x%08x",
+ iActiveDataProcessingOngoing, completedState.iUid, currentState.NextStateId().iUid);
+
+ // Identify should we run current state again, i.e. run that state
+ // for next category. If state does not require processing of same
+ // state several times, then move on to next state.
+ if( currentState.CategorySpecific() != CMMCScBkupState::EStateOnce )
+ {
+ // For simplicity let's collect active data for each category in row.
+ // This means checking data owner status before proceeding to next category.
+ if( iActiveDataProcessingOngoing )
+ {
+ iActiveDataProcessingOngoing = EFalse;
+ nextState = currentState.NextStateId();
+ }
+ else
+ {
+ if( completedState == KMMCScBkupStateIdArchiveOpActiveData )
+ {
+ if( currentState.NextStateId() == KMMCScBkupStateIdGetDataOwnerStatuses )
+ {
+ // There is still some active data to be processed
+ iActiveDataProcessingOngoing = ETrue;
+ nextState = KMMCScBkupStateIdGetDataOwnerStatuses;
+ }
+ }
+
+ if( !iActiveDataProcessingOngoing )
+ {
+ if( ++iCurrentArchive < iArchives.Count() )
+ {
+ nextState = completedState;
+ }
+ else
+ {
+ iCurrentArchive = 0;
+ nextState = currentState.NextStateId();
+ }
+ }
+ }
+ }
+ else
+ {
+ iCurrentArchive = 0;
+ nextState = currentState.NextStateId();
+ }
+
+ if(nextState == completedState && currentState.CategorySpecific() == CMMCScBkupState::EStatePerCategoryCommon)
+ {
+ __LOG2("CMMCScBkupEngineImpl::RunL() - object not recreated for state: 0x%08x, iCurrentArchive %d",
+ nextState.iUid, iCurrentArchive);
+ }
+ else
+ {
+ // Remove the completed state (destroys 'currentState')
+ DestroyCurrentState();
+ // Identify the next state. Causes RunL to be called when the state
+ // has finished executing
+ __LOG2("CMMCScBkupEngineImpl::RunL() - preparing state: 0x%08x, iCurrentArchive %d",
+ nextState.iUid, iCurrentArchive);
+
+ PrepareNextStateL( nextState );
+ }
+
+ if (CurrentStateAvailable())
+ {
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ CMMCScBkupState& newState = CurrentState();
+ if( newState.CategorySpecific() != CMMCScBkupState::EStateOnce )
+ {
+ __LOG2("CMMCScBkupEngineImpl::RunL() - executing category specific state: 0x%08x for category 0x%x",
+ nextState.iUid, iArchives[iCurrentArchive]->Category().iFlags);
+ }
+ else
+ {
+ __LOG1("CMMCScBkupEngineImpl::RunL() - executing non category specific state: 0x%08x", nextState.iUid);
+ }
+#endif
+ ExecuteStateL();
+ }
+ else
+ {
+ if ( iSBEClient )
+ {
+ MMCScBkupSBEUtils::EndBackupOrRestoreL( *iSBEClient );
+ }
+ // Signal we are about to finish, so that bkupchecker can be notified.
+ NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationPrepareEnded);
+ // We've finished
+ CleanupL();
+ NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationEnded);
+ // Remove observer
+ iObserver = NULL;
+ }
+
+ __LOG3("CMMCScBkupEngineImpl::RunL() - END - nextState: 0x%08x, isActive: %d, iStatus: %d", nextState.iUid, IsActive(), iStatus.Int());
+ __LOG(" ");
+ __LOG(" ");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DoCancel()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::DoCancel()
+ {
+ __LOG("CMMCScBkupEngineImpl::DoCancel() - START");
+
+ if (CurrentStateAvailable())
+ {
+ __LOG1("CMMCScBkupEngineImpl::DoCancel() - current state is: 0x%08x", CurrentState().StateId().iUid);
+
+ // Our request should be completed by the state
+ CurrentState().Cancel();
+ }
+
+ // Signal we are about to finish, so that bkupchecker can be notified.
+ NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationPrepareEnded);
+ // Cleanup
+ TRAP_IGNORE( CleanupL( KErrCancel ) );
+
+ // Ensure observer is informed
+ NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationError, KErrCancel);
+ NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationEnded, KErrCancel);
+ // Remove observer
+ iObserver = NULL;
+
+ __LOG("CMMCScBkupEngineImpl::DoCancel() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::RunError()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupEngineImpl::RunError(TInt aError)
+ {
+ __LOG1("CMMCScBkupEngineImpl::RunError() - START - aError: %d", aError);
+
+ // Inform observer of error
+ NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationError, aError);
+ // Signal we are about to finish, so that bkupchecker can be notified.
+ NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationPrepareEnded);
+ // Cleanup
+ TRAP_IGNORE( CleanupL( aError ) );
+
+ // Finalize observer
+ NotifyObserver(MMMCScBkupEngineObserver::ECommonOperationEnded, aError);
+ // Remove observer
+ iObserver = NULL;
+
+ // Return KErrNone to stop the scheduler from panicking our thread
+
+ __LOG("CMMCScBkupEngineImpl::RunError() - END");
+ return KErrNone;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::CompleteOwnRequest()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::CompleteOwnRequest(TInt aCompletionCode, TBool aSetActive)
+ {
+ if (aSetActive)
+ {
+ SetActive();
+ }
+ //
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, aCompletionCode);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::NotifyObserver()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::NotifyObserver( MMMCScBkupEngineObserver::TEvent aEvent, TInt aAssociatedData )
+ {
+ if ( iObserver )
+ {
+ TRAP_IGNORE( iObserver->HandleBkupEngineEventL( aEvent, aAssociatedData ) );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::PrepareForBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::PrepareForBackupL( TBool aPartial )
+ {
+#ifdef DEBUGGING_DATA_TRANSFER
+ CleanBackupFilesL();
+#endif
+
+ // Open the archives for writing
+ for(TInt i = 0; i < iArchives.Count(); i++)
+ {
+ const TPtrC pArchiveName( DrvParamsBase().FileName(i) );
+ iArchives[i]->OpenForWritingL( pArchiveName );
+ }
+
+ // Initialise our state model
+ if ( !aPartial )
+ {
+ // Starting a FULL BACKUP
+ PrepareNextStateL( KMMCScBkupStateArchiveOpArchiveHeader );
+ ExecuteStateL();
+ }
+ else
+ {
+ User::Leave( KErrNotSupported );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::PrepareForRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::PrepareForRestoreL( TBool aPartial )
+ {
+#ifdef DEBUGGING_DATA_TRANSFER
+ ClearRestoreFilesL();
+#endif
+
+ // Open the archives for reading
+ for(TInt i = 0; i < iArchives.Count(); i++)
+ {
+ const TPtrC pArchiveName( DrvParamsBase().FileName(i) );
+ iArchives[i]->OpenForReadingL( pArchiveName );
+
+#ifdef RD_FILE_MANAGER_BACKUP
+ // Validate archive content is not altered
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ TUint32 startTime = User::NTickCount();
+#endif
+ TInt validArchiveForRestore = MMCScBkupArchiveUtils::ValidateArchiveCrcsL( iFsSession, pArchiveName );
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ __LOG2("CMMCScBkupEngineImpl::PrepareForRestoreL - crcs validation result %d, ticks in ms %u",
+ validArchiveForRestore, User::NTickCount() - startTime);
+#endif
+ if(validArchiveForRestore == EFalse)
+ {
+ User::Leave(KErrCorrupt);
+ }
+#endif
+ }
+
+ // Initialise our state model
+ if ( !aPartial )
+ {
+ // Starting a FULL RESTORE
+ PrepareNextStateL( KMMCScBkupStateArchiveOpArchiveHeader );
+ ExecuteStateL();
+ }
+ else
+ {
+ User::Leave( KErrNotSupported );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::SetParameters()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::SetParameters(CMMCScBkupOpParamsBase* aParameters)
+ {
+ __ASSERT_ALWAYS(aParameters != NULL, User::Invariant());
+ //
+ delete iParameters;
+ iParameters = aParameters;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::CreateFactoryL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::CreateFactoryL(TMMCScBkupOperationType aOperation)
+ {
+ __ASSERT_DEBUG(iFactory == NULL, User::Invariant());
+ //
+ CMMCScBkupStateFactory* factory = CMMCScBkupStateFactory::FactoryByOperationTypeLC(aOperation);
+ delete iFactory;
+ iFactory = factory;
+ CleanupStack::Pop( factory );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::CurrentStateAvailable()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupEngineImpl::CurrentStateAvailable() const
+ {
+ return (iCurrentState != NULL);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::CurrentStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupEngineImpl::CurrentStateId() const
+ {
+ __ASSERT_ALWAYS(CurrentStateAvailable(), User::Invariant());
+ return CurrentState().StateId();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::CurrentState()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupState& CMMCScBkupEngineImpl::CurrentState()
+ {
+ return *iCurrentState;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::CurrentState()
+//
+//
+// ---------------------------------------------------------------------------
+const CMMCScBkupState& CMMCScBkupEngineImpl::CurrentState() const
+ {
+ return *iCurrentState;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::PrepareNextStateL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::PrepareNextStateL( TMMCScBkupStateId aNextState )
+ {
+ if ( aNextState != KMMCScBkupStateIdOperationComplete )
+ {
+ CMMCScBkupState* nextState = iFactory->GetStateLC( aNextState, *this );
+ delete iCurrentState;
+ iCurrentState = nextState;
+ CleanupStack::Pop( nextState );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::DestroyCurrentState()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::DestroyCurrentState()
+ {
+ delete iCurrentState;
+ iCurrentState = NULL;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::ExecuteStateL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::ExecuteStateL()
+ {
+ const TBool stateStepAvailable = CurrentStateAvailable();
+ __ASSERT_ALWAYS(stateStepAvailable, User::Invariant());
+ //
+ CMMCScBkupState& currentState = CurrentState();
+ //
+ currentState.ExecuteL(iStatus);
+ SetActive();
+
+ // RunL will now be called when the state has completed execution
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::CleanupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::CleanupL( TInt aError )
+ {
+ __LOG1("CMMCScBkupEngineImpl::CleanupL() - START - aError: %d", aError);
+
+ // If SBE died, then recreate
+ if ( aError == KErrServerTerminated )
+ {
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - assuming SBE panicked - re-creating SBE session...");
+ CSBEClient* newSBEClient = CSBEClient::NewL();
+ delete iSBEClient;
+ iSBEClient = newSBEClient;
+ }
+
+
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - destroying current state...");
+ DestroyCurrentState();
+
+ const TBool backupOrRestoreUnderway = MMCScBkupSBEUtils::PhoneIsInBackupOrRestoreModeL();
+ __LOG1("CMMCScBkupEngineImpl::CleanupL() - backupOrRestoreUnderway: %d", backupOrRestoreUnderway);
+ if ( backupOrRestoreUnderway && iSBEClient )
+ {
+ // Must end backup or restore
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - ending backup or restore...");
+ MMCScBkupSBEUtils::EndBackupOrRestoreL( *iSBEClient );
+ }
+
+ // Ensure the archive is closed
+ if ( iArchives.Count() )
+ {
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - closing archives...");
+ for(TInt i = 0; i < iArchives.Count(); i++)
+ {
+ iArchives[i]->Close( aError );
+ }
+
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - reseting archive array...");
+ iArchives.ResetAndDestroy();
+ }
+
+ // Destroy old parameters
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - destroying parameters...");
+ delete iParameters;
+ iParameters = NULL;
+
+ // Set back to idle
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - setting operation status to idle...");
+ iOperationType = EMMCScBkupOperationTypeIdle;
+
+ // Dispose of our collections
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - destroying data owners and file lists...");
+ iDataOwners.ResetAndDestroy();
+ iFileLists.ResetAndDestroy();
+
+ // Dispose of state factory
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - destroying factory...");
+ delete iFactory;
+ iFactory = NULL;
+
+ // Reset progress
+ iCumulativeProgress = 0;
+
+ // Reduce memory consumption by deleting SBE client. Session will be closed
+ // and SBE frees reserved (e.g. 128 kB...) memory pool.
+ if(iSBEClient)
+ {
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - deleting SBE client...");
+ delete iSBEClient;
+ iSBEClient = NULL;
+ }
+
+ __LOG("CMMCScBkupEngineImpl::CleanupL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::PrepareObjectsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::PrepareObjectsL()
+ {
+ __LOG("CMMCScBkupEngineImpl::PrepareObjectsL() - creating objects...");
+
+ iTotalProgress = 0;
+ iCurrentArchive = 0;
+
+ const RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& archives = DrvParamsBase().ArchiveInfos();
+ TInt count = archives.Count();
+
+ if(count == 0)
+ {
+ __LOG("CMMCScBkupEngineImpl::PrepareObjectsL() - nothing to be done, leaving...");
+ User::Leave(KErrCancel);
+ }
+
+ for(TInt i = 0; i < count; i++)
+ {
+ CMMCScBkupArchive* archive;
+ archive = CMMCScBkupArchive::NewL( iFsSession, DrvProgressHandler(), *this, archives[i]->Category() );
+ CleanupStack::PushL( archive );
+ iArchives.AppendL( archive );
+ CleanupStack::Pop( archive );
+
+ CMMCScBkupDataOwnerCollection* dataOwners;
+ dataOwners = CMMCScBkupDataOwnerCollection::NewL( *this, archives[i]->Category() );
+ CleanupStack::PushL( dataOwners );
+ iDataOwners.AppendL( dataOwners );
+ CleanupStack::Pop( dataOwners );
+
+ CMMCScBkupFileListCollection* fileList;
+ fileList = CMMCScBkupFileListCollection::NewL( archives[i]->Category(), iFsSession );
+ CleanupStack::PushL( fileList );
+ iFileLists.AppendL( fileList );
+ CleanupStack::Pop( fileList );
+ }
+ }
+
+TBool CMMCScBkupEngineImpl::DeleteArchivesL( RPointerArray< CMMCScBkupArchiveInfo >& aArchives ) const
+ {
+ TBool ret( ETrue );
+ TInt i( 0 );
+ TInt err;
+ while ( i < aArchives.Count() )
+ {
+ CMMCScBkupArchiveInfo* archiveInfo = aArchives[ i ];
+ err = iFsSession.SetAtt( archiveInfo->FileName(), KEntryAttNormal, !KEntryAttNormal );
+ err = iFsSession.Delete( archiveInfo->FileName() );
+ if( err!=KErrNone )
+ {
+ ret = EFalse ;
+ }
+ aArchives.Remove( i );
+ delete archiveInfo;
+ }
+ return ret;
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::ListArchivesL()
+//
+// Provide a list of valid (both content and category do match) archives
+// available on all drives' backup folder
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::ListArchivesL(
+ RPointerArray< CMMCScBkupArchiveInfo >& aArchives,
+ CMMCScBkupOpParamsBase* aParams,
+ const TUint32 aDriveAttMatch,
+ const TInt aDriveMatch )
+ {
+ __LOG("CMMCScBkupEngineImpl::ListArchivesL() - START");
+
+ for(TInt i = 0; i < KMaxDrives; i++)
+ {
+ // Check is drive number allowed
+ if ( aDriveMatch != KErrNotFound && aDriveMatch != i )
+ {
+ continue;
+ }
+ // Check are drive attributes allowed
+ TBool supported( EFalse );
+ TDriveInfo driveInfo;
+ if ( iFsSession.Drive( driveInfo, i ) == KErrNone )
+ {
+ if ( driveInfo.iDriveAtt & aDriveAttMatch )
+ {
+ supported = ETrue;
+ }
+ }
+ if ( !supported )
+ {
+ continue;
+ }
+
+ const TDriveUnit driveUnit(i);
+ const TDriveName driveName(driveUnit.Name());
+ CDir* pFiles = NULL;
+ TFileName path;
+ path.Append(driveName);
+ path.Append(KBackUpFolder());
+ path.Append(KBackUpFiles());
+
+ // Scan for all archives
+ iFsSession.GetDir(path, KEntryAttMatchMask, ESortNone, pFiles);
+ CleanupStack::PushL(pFiles);
+
+ if(pFiles)
+ {
+ TInt count = pFiles->Count();
+ for (TInt x = 0; x < count; x++)
+ {
+ const TEntry& entryPtr = (*pFiles)[x];
+ TEntry entry(entryPtr);
+ TFileName pathAndFile;
+ pathAndFile.Append(driveName);
+ pathAndFile.Append(KBackUpFolder());
+ pathAndFile.Append(entry.iName);
+
+ entry.iName = pathAndFile;
+
+ // Read category information from archive
+ TBitFlags category;
+ TRAPD(err, category = MMCScBkupArchiveUtils::ReadBkUpCategoryInformationL( iFsSession, pathAndFile ));
+
+ if(err == KErrNone)
+ {
+ // Append archive in list when valid
+ if((category.Value() & aParams->Categories().Value()) && ValidArchiveForRestoreL( pathAndFile ))
+ {
+ __LOG2("CMMCScBkupEngineImpl::ListArchivesL() - adding archive %S of category 0x%x",
+ &pathAndFile, category.Value());
+ CMMCScBkupArchiveInfo* archiveInfo = CMMCScBkupArchiveInfo::NewLC( entry );
+ // Set category in archive info - can be used for filtering
+ archiveInfo->SetCategory( category );
+ // Move ownership to array
+ aArchives.AppendL(archiveInfo);
+ CleanupStack::Pop(archiveInfo);
+ }
+ else
+ {
+ __LOG3("CMMCScBkupEngineImpl::ListArchivesL() - archive %S of category 0x%x (vs. 0x%x) not included",
+ &pathAndFile, category.Value(), aParams->Categories().Value());
+ }
+ }
+ }
+ }
+
+ CleanupStack::PopAndDestroy(pFiles);
+ }
+
+ __LOG("CMMCScBkupEngineImpl::ListArchivesL() - END");
+ }
+
+
+#ifdef DEBUGGING_DATA_TRANSFER
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::CleanBackupFilesL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::CleanBackupFilesL()
+ {
+ CFileMan* fileMan = CFileMan::NewL( iFsSession );
+ CleanupStack::PushL( fileMan );
+
+ // Make directory, ignore error, ugly, functionise later on...
+ _LIT(KMMCScBkupFormatDes, "%S%S%S%S");
+ TFileName cleanPath;
+ const TDesC& path = PathInfo::MemoryCardRootPath();
+
+ //
+ cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataJava, &KMMCScBkupDataTransferDebuggingPathDataBackup);
+ fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
+ iFsSession.MkDirAll( cleanPath );
+ cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataSystem, &KMMCScBkupDataTransferDebuggingPathDataBackup);
+ fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
+ iFsSession.MkDirAll( cleanPath );
+ cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataPassive, &KMMCScBkupDataTransferDebuggingPathDataBackup);
+ fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
+ iFsSession.MkDirAll( cleanPath );
+ cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataActive, &KMMCScBkupDataTransferDebuggingPathDataBackup);
+ fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
+ iFsSession.MkDirAll( cleanPath );
+ //
+ CleanupStack::PopAndDestroy( fileMan );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupEngineImpl::ClearRestoreFilesL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupEngineImpl::ClearRestoreFilesL()
+ {
+ CFileMan* fileMan = CFileMan::NewL( iFsSession );
+ CleanupStack::PushL( fileMan );
+
+ // Make directory, ignore error, ugly, functionise later on...
+ _LIT(KMMCScBkupFormatDes, "%S%S%S%S");
+ TFileName cleanPath;
+ const TDesC& path = PathInfo::MemoryCardRootPath();
+
+ //
+ cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataJava, &KMMCScBkupDataTransferDebuggingPathDataRestore);
+ fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
+ iFsSession.MkDirAll( cleanPath );
+ cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataSystem, &KMMCScBkupDataTransferDebuggingPathDataRestore);
+ fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
+ iFsSession.MkDirAll( cleanPath );
+ cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataPassive, &KMMCScBkupDataTransferDebuggingPathDataRestore);
+ fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
+ iFsSession.MkDirAll( cleanPath );
+ cleanPath.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot, &KMMCScBkupDataTransferDebuggingPathDataActive, &KMMCScBkupDataTransferDebuggingPathDataRestore);
+ fileMan->Delete( cleanPath, CFileMan::ERecurse ); // Ignore error
+ iFsSession.MkDirAll( cleanPath );
+ //
+ CleanupStack::PopAndDestroy( fileMan );
+ }
+
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupFileInfo.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,205 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupFileInfo implementation
+*
+*
+*/
+
+#include "CMMCScBkupFileInfo.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::CMMCScBkupFileInfo()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupFileInfo::CMMCScBkupFileInfo()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::CMMCScBkupFileInfo()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupFileInfo::CMMCScBkupFileInfo( const TEntry& aEntry, TSecureId aAssociatedSID )
+: iSecureId(aAssociatedSID)
+ {
+ iSize = aEntry.iSize;
+ iDateTime = aEntry.iModified;
+ iAttributes = aEntry.iAtt;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::~CMMCScBkupFileInfo()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupFileInfo::~CMMCScBkupFileInfo()
+ {
+ delete iFileName;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupFileInfo::ConstructL( const TEntry& aEntry )
+ {
+ iFileName = aEntry.iName.AllocL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupFileInfo* CMMCScBkupFileInfo::NewL( const TEntry& aEntry, TSecureId aAssociatedSID )
+ {
+ CMMCScBkupFileInfo* self = NewLC( aEntry, aAssociatedSID );
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupFileInfo* CMMCScBkupFileInfo::NewLC( const TEntry& aEntry, TSecureId aAssociatedSID )
+ {
+ CMMCScBkupFileInfo* self = new(ELeave) CMMCScBkupFileInfo( aEntry, aAssociatedSID );
+ CleanupStack::PushL(self);
+ self->ConstructL(aEntry);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupFileInfo* CMMCScBkupFileInfo::NewLC( RReadStream& aStream )
+ {
+ CMMCScBkupFileInfo* self = new(ELeave) CMMCScBkupFileInfo();
+ CleanupStack::PushL(self);
+ aStream >> *self;
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::Drive()
+//
+//
+// ---------------------------------------------------------------------------
+TDriveNumber CMMCScBkupFileInfo::Drive() const
+ {
+ const TDriveUnit driveUnit( FileName() );
+ const TDriveNumber drive = static_cast< TDriveNumber > ( driveUnit.operator TInt() );
+ //
+ return drive;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::InternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupFileInfo::InternalizeL(RReadStream& aStream)
+ {
+ aStream.ReadInt32L(); // EStreamFormatVersion1
+ aStream.ReadInt32L(); // spare1
+ aStream.ReadInt32L(); // spare2
+ aStream.ReadInt32L(); // spare3
+ //
+ HBufC* fileName = HBufC::NewL(aStream, KMaxFileName);
+ delete iFileName;
+ iFileName = fileName;
+ //
+ TInt64 intermediateDateTime;
+ aStream >> intermediateDateTime;
+ iDateTime = TTime(intermediateDateTime);
+ //
+ TUid intermediateSID;
+ aStream >> intermediateSID;
+ iSecureId = intermediateSID;
+ //
+ iSize = aStream.ReadInt32L();
+ iAttributes = aStream.ReadUint32L();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::ExternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupFileInfo::ExternalizeL(RWriteStream& aStream) const
+ {
+ aStream.WriteInt32L( EStreamFormatVersion1 );
+ aStream.WriteInt32L( 0 ); // spare1
+ aStream.WriteInt32L( 0 ); // spare2
+ aStream.WriteInt32L( 0 ); // spare3
+ //
+ aStream << *iFileName;
+ aStream << iDateTime.Int64();
+ aStream << iSecureId.operator TUid();
+ aStream.WriteInt32L(iSize);
+ aStream.WriteUint32L(iAttributes);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::OrderByFileName()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupFileInfo::OrderByFileName(const CMMCScBkupFileInfo& aLeft, const CMMCScBkupFileInfo& aRight)
+ {
+ const TPtrC pLeft(aLeft.FileName());
+ const TPtrC pRight(aRight.FileName());
+ //
+ const TInt ret = pLeft.Compare(pRight);
+ //
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileInfo::CompareByFileName()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupFileInfo::CompareByFileName(const CMMCScBkupFileInfo& aLeft, const CMMCScBkupFileInfo& aRight)
+ {
+ const TPtrC pLeft(aLeft.FileName());
+ const TPtrC pRight(aRight.FileName());
+ //
+ const TBool same = (pLeft.Compare(pRight) == 0);
+ return same;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupFileListCollection.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,233 @@
+/*
+* Copyright (c) 2005-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: CMMCScBkupFileListCollection implementation
+*
+*
+*/
+
+#include "CMMCScBkupFileListCollection.h"
+
+#include <bldvariant.hrh>
+#include <pathinfo.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#ifdef RD_FILE_MANAGER_BACKUP
+#include <driveinfo.h>
+#include "BkupEngine.hrh"
+#include "pathconfiguration.hrh"
+#endif
+
+// Constants
+const TInt KMMCScBkupDataOwnerGranularity = 50;
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileListCollection::CMMCScBkupFileListCollection()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupFileListCollection::CMMCScBkupFileListCollection( TBitFlags aCategory,
+ RFs& aFsSession )
+ :iEntries(KMMCScBkupDataOwnerGranularity),
+ iCategory( aCategory ),
+ iFsSession( aFsSession )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileListCollection::~CMMCScBkupFileListCollection()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupFileListCollection::~CMMCScBkupFileListCollection()
+ {
+ Reset();
+ iEntries.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileListCollection::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupFileListCollection::ConstructL()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileListCollection::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupFileListCollection* CMMCScBkupFileListCollection::NewL( TBitFlags aCategory,
+ RFs& aFsSession )
+ {
+ CMMCScBkupFileListCollection* self = new(ELeave) CMMCScBkupFileListCollection( aCategory, aFsSession );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileListCollection::AppendL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupFileListCollection::AppendL( const RArray<TEntry>& aArray, RArray< const CMMCScBkupFileInfo* >& aAddedItems, TSecureId aAssociatedSID )
+ {
+ const TInt count = aArray.Count();
+
+ __LOG2("CMMCScBkupFileListCollection::AppendL() - Number of files %d to check for category %x", count, Category().Value() );
+
+ for(TInt i=0; i<count; i++)
+ {
+ const TEntry& entry = aArray[i];
+#ifdef RD_FILE_MANAGER_BACKUP
+ TBool skipFile = EFalse;
+
+ if(Category().Value() != EBUCatUserFiles && Category().Value() != EBUCatAllInOne)
+ {
+ // Check whether public file in system user data folder. If it is and not part of
+ // user file category, then discard file from collection
+ const TDesC& path = PathInfo::PhoneMemoryRootPath();
+ TInt error = entry.iName.FindF(path);
+ if(error != KErrNotFound)
+ {
+ __LOG1("CMMCScBkupFileListCollection::AppendL() - Skipping file %S", &entry.iName );
+ skipFile = ETrue;
+ }
+ }
+ else if(Category().Value() == EBUCatUserFiles)
+ {
+ // Check also if public file is from mass-storage. If yes and user-files category in
+ // question, prevent file getting backed up, because otherwise it is probable 2 GB
+ // get exceeded and we cannot save larger than 2 GB archive. Allow public files being
+ // backed up in other categories.
+ TUint drvStatus( 0 );
+ TInt drive( KErrNotFound );
+
+ if( RFs::CharToDrive( entry.iName[0], drive ) != KErrNone )
+ {
+ drive = KErrNotFound;
+ }
+
+ TInt err = DriveInfo::GetDriveStatus(iFsSession, drive, drvStatus );
+
+ if ( err == KErrNone && ( drvStatus & DriveInfo::EDriveInternal ) &&
+ ( drvStatus & DriveInfo::EDriveExternallyMountable ) )
+ {
+ __LOG1("CMMCScBkupFileListCollection::AppendL() - Skipping file %S due it in mass storage", &entry.iName );
+ skipFile = ETrue;
+ }
+ }
+
+ if(!skipFile)
+#endif // RD_FILE_MANAGER_BACKUP
+ {
+ // Check whether the file is already present before adding it (avoid duplicate
+ // public files)
+ CMMCScBkupFileInfo* fileInfo = CMMCScBkupFileInfo::NewLC( entry, aAssociatedSID );
+
+ TLinearOrder<CMMCScBkupFileInfo> comparer( CMMCScBkupFileInfo::OrderByFileName );
+ const TInt indexIfFound = iEntries.FindInOrder( fileInfo, comparer );
+ if (indexIfFound < 0)
+ {
+ // Item wasn't found - insert it in sorted order
+ AppendL( fileInfo );
+ CleanupStack::Pop( fileInfo );
+
+ __LOG1("CMMCScBkupFileListCollection::AppendL() - Adding file %S", &fileInfo->FileName() );
+
+ // Add a copy to our return array.
+ aAddedItems.AppendL( fileInfo );
+ }
+ else
+ {
+ // Duplicate, discard
+ __LOG1("CMMCScBkupFileListCollection::AppendL() - Duplicate file %S", &fileInfo->FileName() );
+ CleanupStack::PopAndDestroy( fileInfo );
+ }
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileListCollection::AppendL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupFileListCollection::AppendL( CMMCScBkupFileInfo* aFileInfo )
+ {
+ TLinearOrder<CMMCScBkupFileInfo> comparer( CMMCScBkupFileInfo::OrderByFileName );
+ iEntries.InsertInOrderL( aFileInfo, comparer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileListCollection::Count()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupFileListCollection::Count() const
+ {
+ return iEntries.Count();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileListCollection::Entry()
+//
+//
+// ---------------------------------------------------------------------------
+const CMMCScBkupFileInfo& CMMCScBkupFileListCollection::Entry(TInt aIndex) const
+ {
+ const CMMCScBkupFileInfo& entry = *iEntries[aIndex];
+ return entry;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileListCollection::Remove()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupFileListCollection::Remove( TInt aIndex )
+ {
+ CMMCScBkupFileInfo* entry = iEntries[aIndex];
+ delete entry;
+ iEntries.Remove(aIndex);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupFileListCollection::Reset()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupFileListCollection::Reset()
+ {
+ iEntries.ResetAndDestroy();
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupIndexActiveData.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupIndexActiveData implementation
+*
+*
+*/
+
+#include "CMMCScBkupIndexActiveData.h"
+
+// User includes
+#include "MMMCScBkupArchiveDataInterface.h"
+
+
+ /**
+ * Active Data
+ * ===========
+ *
+ * This is the format of the data written by the
+ * CMMCScBkupStateArchiveOpActiveData object
+ *
+ * E.g.:
+ *
+ * ACTIVE DATA for DO 0
+ * {
+ * AD for DO 0, 1st drive
+ * AD for DO 0, 2nd drive
+ * AD for DO 0, 'n'th drive
+ * },
+ * ACTIVE DATA for DO 1
+ * {
+ * AD for DO 0, 1st drive - (AD is only on
+ * AD for DO 0, 2nd drive two drives)
+ * },
+ * ACTIVE DATA for DO n
+ * {
+ * AD for DO 0, 1st drive - (AD is only on one drive)
+ * }
+ *
+ * Active Data Index
+ * =================
+ *
+ * This is the format of the data written by this object.
+ * The format allows the possibility of a future partial
+ * restore (hopefully).
+ *
+ *
+ * 4 bytes = count of active data entries
+ *
+ * FOR EACH DATA OWNER
+ * {
+ * 4 bytes = secure id associated with a active data owner
+ * 4 bytes = the number of different active data packages
+ * for this particular active data owner (one for each
+ * drive that was backed up)
+ * ENTRY
+ * {
+ * 1 byte = Associated TDriveNumber of the active data
+ * 8 bytes = offset and length of raw data
+ * }
+ * }
+ *
+ *
+ **/
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexActiveData::CMMCScBkupIndexActiveData()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexActiveData::CMMCScBkupIndexActiveData()
+: CMMCScBkupIndexWithIdentifier< TSecureId >( EMMCScBkupOwnerDataTypeActiveData )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexActiveData::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexActiveData* CMMCScBkupIndexActiveData::NewLC()
+ {
+ CMMCScBkupIndexActiveData* self = new(ELeave) CMMCScBkupIndexActiveData();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupIndexBase.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupIndexBase implementation
+*
+*
+*/
+
+#include "CMMCScBkupIndexBase.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexBase::CMMCScBkupIndexBase()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexBase::CMMCScBkupIndexBase( TMMCScBkupOwnerDataType aType )
+: iType(aType)
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexBase::~CMMCScBkupIndexBase()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexBase::~CMMCScBkupIndexBase()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexBase::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexBase::ConstructL()
+ {
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupIndexDataOwners.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,210 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupIndexDataOwners implementation
+*
+*
+*/
+
+#include "CMMCScBkupIndexDataOwners.h"
+
+// User includes
+#include "MMMCScBkupArchiveDataInterface.h"
+
+// Constants
+const TInt KMMCScBkupDataOwnerIndexGranularity = 50;
+
+
+ /**
+ * Registration Data
+ * =================
+ *
+ * This is the format of the data written by the
+ * CMMCScBkupStateGetDataOwners object
+ *
+ *
+ * REG DATA for DO 0
+ * {
+ * RD for DO 0, 1st drive
+ * RD for DO 0, 2nd drive
+ * RD for DO 0, 'n'th drive
+ * },
+ * REG DATA for DO 1
+ * {
+ * RD for DO 0, 1st drive
+ * RD for DO 0, 2nd drive
+ * RD for DO 0, 'n'th drive
+ * },
+ * REG DATA for DO n
+ * {
+ * RD for DO 0, 1st drive
+ * RD for DO 0, 2nd drive
+ * RD for DO 0, 'n'th drive
+ * }
+ *
+ * Registration Data Index
+ * =======================
+ *
+ * This is the format of the data written by this method.
+ * The format allows the possibility of a future partial
+ * restore (hopefully).
+ *
+ *
+ * 4 bytes = count of data owners
+ *
+ * FOR EACH DATA OWNER
+ * {
+ * 4 bytes = secure id of data owner's process
+ * 4 bytes = the number of different registration data files
+ * for this particular data owner (one for each drive that
+ * was backed up)
+ * ENTRY
+ * {
+ * 1 byte = Associated TDriveNumber of the registration data
+ * n bytes = raw drive data
+ * }
+ * }
+ *
+ *
+ **/
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexDataOwners::CMMCScBkupIndexDataOwners()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexDataOwners::CMMCScBkupIndexDataOwners()
+: CMMCScBkupIndexBase( EMMCScBkupOwnerDataTypeDataOwner ), iEntries( KMMCScBkupDataOwnerIndexGranularity )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexDataOwners::~CMMCScBkupIndexDataOwners()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexDataOwners::~CMMCScBkupIndexDataOwners()
+ {
+ iEntries.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexDataOwners::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexDataOwners* CMMCScBkupIndexDataOwners::NewLC()
+ {
+ CMMCScBkupIndexDataOwners* self = new(ELeave) CMMCScBkupIndexDataOwners();
+ CleanupStack::PushL(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexDataOwners::AddIndexRecordL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexDataOwners::AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo )
+ {
+ iEntries.AppendL( aInfo );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexDataOwners::StoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexDataOwners::StoreL(MMMCScBkupDriver& aDriver)
+ {
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
+ RWriteStream& stream = archiveDataInterface.ADIWriteStreamUncompressedLC();
+ //
+ stream.WriteInt32L( EStreamFormatVersion1 );
+ stream.WriteInt32L( 0 ); // spare1
+ stream.WriteInt32L( 0 ); // spare2
+ stream.WriteInt32L( 0 ); // spare3
+ //
+ const TInt count = iEntries.Count();
+ stream.WriteInt32L(count);
+ //
+ for(TInt i=0; i<count; i++)
+ {
+ const TMMCScBkupArchiveVector& entry = iEntries[i];
+ stream << entry;
+ //
+ stream.WriteInt32L( 0 ); // spare1
+ stream.WriteInt32L( 0 ); // spare2
+ }
+ //
+ stream.CommitL();
+ CleanupStack::PopAndDestroy(); // stream
+
+ // Update our base class info with the offset to the index
+ const TMMCScBkupArchiveVector& writeInfo = archiveDataInterface.ADICurrentArchiveVectorInfo();
+ SetVector( writeInfo );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexDataOwners::RestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexDataOwners::RestoreL(MMMCScBkupDriver& aDriver)
+ {
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
+ RReadStream& stream = archiveDataInterface.ADIReadStreamUncompressedLC( Vector().Offset() );
+ //
+ stream.ReadInt32L(); // EStreamFormatVersion1
+ stream.ReadInt32L(); // spare1
+ stream.ReadInt32L(); // spare2
+ stream.ReadInt32L(); // spare3
+ //
+ const TInt count = stream.ReadInt32L();
+ //
+ for(TInt i=0; i<count; i++)
+ {
+ TMMCScBkupArchiveVector entry;
+ stream >> entry;
+ //
+ stream.ReadInt32L(); // spare1
+ stream.ReadInt32L(); // spare2
+ //
+ iEntries.AppendL( entry );
+ }
+ //
+ CleanupStack::PopAndDestroy(); // stream
+ //
+ const TMMCScBkupArchiveVector& readInfo = archiveDataInterface.ADICurrentArchiveVectorInfo();
+ if ( readInfo.Length() > Vector().Length() )
+ {
+ // We've read too much!
+ User::Leave( KErrCorrupt );
+ }
+ }
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupIndexJavaData.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,402 @@
+/*
+* Copyright (c) 2006 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: CMMCScBkupIndexJavaDataEntry implementation
+*
+*
+*/
+
+#include "CMMCScBkupIndexJavaData.h"
+
+// User includes
+#include "MMMCScBkupArchiveDataInterface.h"
+#include "MMCScBkupLogger.h"
+
+
+ /**
+ * Registration Data
+ * =================
+ *
+ *
+ * REG DATA for DO 0
+ * {
+ * RD for DO 0, 1st drive
+ * RD for DO 0, 2nd drive
+ * RD for DO 0, 'n'th drive
+ * },
+ * REG DATA for DO 1
+ * {
+ * RD for DO 0, 1st drive
+ * RD for DO 0, 2nd drive
+ * RD for DO 0, 'n'th drive
+ * },
+ * REG DATA for DO n
+ * {
+ * RD for DO 0, 1st drive
+ * RD for DO 0, 2nd drive
+ * RD for DO 0, 'n'th drive
+ * }
+ *
+ * Registration Data Index
+ * =======================
+ *
+ * This is the format of the data written by this object.
+ * The format allows the possibility of a future partial
+ * restore (hopefully).
+ *
+ *
+ * 4 bytes = count of registration data entries
+ *
+ * FOR EACH DATA OWNER
+ * {
+ * 4 bytes = secure id of data owner's process
+ * 4 bytes = the number of different registration data files
+ * for this particular data owner (one for each drive that
+ * was backed up)
+ * ENTRY
+ * {
+ * 1 byte = Associated TDriveNumber of the registration data
+ * 8 bytes = offset & length of actual registration data
+ * }
+ * }
+ *
+ **/
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaDataEntry::CMMCScBkupIndexJavaDataEntry()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexJavaDataEntry::CMMCScBkupIndexJavaDataEntry()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaDataEntry::CMMCScBkupIndexJavaDataEntry()
+//
+// C++ destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexJavaDataEntry::~CMMCScBkupIndexJavaDataEntry()
+ {
+ delete iHash;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaDataEntry::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexJavaDataEntry::ConstructL()
+ {
+ iHash = KNullDesC().AllocL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaDataEntry::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexJavaDataEntry* CMMCScBkupIndexJavaDataEntry::NewLC()
+ {
+ CMMCScBkupIndexJavaDataEntry* self = new(ELeave) CMMCScBkupIndexJavaDataEntry();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaDataEntry::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexJavaDataEntry* CMMCScBkupIndexJavaDataEntry::NewLC( RReadStream& aStream )
+ {
+ CMMCScBkupIndexJavaDataEntry* self = new(ELeave) CMMCScBkupIndexJavaDataEntry();
+ CleanupStack::PushL( self );
+ aStream >> *self;
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaDataEntry::SetHashL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexJavaDataEntry::SetHashL( const TDesC& aHash )
+ {
+ HBufC* hash = aHash.AllocL();
+ delete iHash;
+ iHash = hash;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaDataEntry::InternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexJavaDataEntry::InternalizeL( RReadStream& aStream )
+ {
+ aStream.ReadInt32L(); // EStreamFormatVersion1
+ aStream.ReadInt32L(); // spare1
+ aStream.ReadInt32L(); // spare2
+ aStream.ReadInt32L(); // spare3
+ //
+ HBufC* hash = HBufC::NewL( aStream, KMaxTInt );
+ delete iHash;
+ iHash = hash;
+ //
+ aStream >> iMidletInfo;
+ aStream >> iMidletDataInfo;
+ iDrive = static_cast< TDriveNumber>( aStream.ReadInt8L() );
+ //
+ __LOG6("CMMCScBkupIndexJavaDataEntry::InternalizeL() - hash: %S, iDrive: %c:, MIDLET[offset: %8d, length: %8d], MIDLETDATA[offset: %8d, length: %8d]", iHash, iDrive + 'A', iMidletInfo.Offset(), iMidletInfo.Length(), iMidletDataInfo.Offset(), iMidletDataInfo.Length() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaDataEntry::ExternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexJavaDataEntry::ExternalizeL( RWriteStream& aStream ) const
+ {
+ aStream.WriteInt32L( EStreamFormatVersion1 );
+ aStream.WriteInt32L( 0 ); // spare1
+ aStream.WriteInt32L( 0 ); // spare2
+ aStream.WriteInt32L( 0 ); // spare3
+ //
+ aStream << Hash();
+ aStream << iMidletInfo;
+ aStream << iMidletDataInfo;
+ aStream.WriteInt8L( iDrive );
+ //
+ __LOG6("CMMCScBkupIndexJavaDataEntry::ExternalizeL() - hash: %S, iDrive: %c:, MIDLET[offset: %8d, length: %8d], MIDLETDATA[offset: %8d, length: %8d]", iHash, iDrive + 'A', iMidletInfo.Offset(), iMidletInfo.Length(), iMidletDataInfo.Offset(), iMidletDataInfo.Length() );
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaData::CMMCScBkupIndexJavaData()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexJavaData::CMMCScBkupIndexJavaData()
+: CMMCScBkupIndexBase( EMMCScBkupOwnerDataTypeJavaData )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaData::~CMMCScBkupIndexJavaData()
+//
+// C++ destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexJavaData::~CMMCScBkupIndexJavaData()
+ {
+ iEntries.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaData::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexJavaData* CMMCScBkupIndexJavaData::NewLC()
+ {
+ CMMCScBkupIndexJavaData* self = new(ELeave) CMMCScBkupIndexJavaData();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaData::AddIndexRecordL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexJavaData::AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, const TDesC& aHash, TDriveNumber aDrive, TJavaTransferType aType )
+ {
+ // Check if we already have an entry for this item...
+ CMMCScBkupIndexJavaDataEntry* entry = EntryByHash( aHash, aDrive );
+
+ if ( !entry )
+ {
+ __LOG1("CMMCScBkupIndexJavaData::AddIndexRecordL() - making new entry for hash: %S", &aHash);
+ //
+ entry = CMMCScBkupIndexJavaDataEntry::NewLC();
+ //
+ entry->SetHashL( aHash );
+ entry->SetDrive( aDrive );
+ iEntries.AppendL( entry );
+ //
+ CleanupStack::Pop( entry );
+ }
+ else
+ {
+ __LOG1("CMMCScBkupIndexJavaData::AddIndexRecordL() - found existing entry for hash: %S", &aHash);
+ }
+
+ if ( aType == EJavaMIDlet )
+ {
+ entry->SetMidletInfo( aInfo );
+ }
+ else if ( aType == EJavaMIDletData )
+ {
+ entry->SetMidletDataInfo( aInfo );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaData::At()
+//
+//
+// ---------------------------------------------------------------------------
+const CMMCScBkupIndexJavaDataEntry& CMMCScBkupIndexJavaData::At( TInt aIndex ) const
+ {
+ const CMMCScBkupIndexJavaDataEntry* entry = iEntries[ aIndex ];
+ return *entry;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaData::StoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexJavaData::StoreL(MMMCScBkupDriver& aDriver)
+ {
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
+ RWriteStream stream(archiveDataInterface.ADIWriteStreamUncompressedLC());
+ //
+ stream.WriteInt32L( EStreamFormatVersion1 );
+ stream.WriteInt32L( 0 ); // spare1
+ stream.WriteInt32L( 0 ); // spare2
+ stream.WriteInt32L( 0 ); // spare3
+ //
+ const TInt count = iEntries.Count();
+ stream.WriteInt32L(count);
+ //
+ for(TInt i=0; i<count; i++)
+ {
+ const CMMCScBkupIndexJavaDataEntry* entry = iEntries[i];
+ stream << *entry;
+ }
+ //
+ stream.CommitL();
+ CleanupStack::PopAndDestroy(); // stream
+
+ // Update our base class info with the offset to the index
+ SetVector( archiveDataInterface.ADICurrentArchiveVectorInfo() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaData::RestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexJavaData::RestoreL(MMMCScBkupDriver& aDriver)
+ {
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
+ RReadStream& stream = archiveDataInterface.ADIReadStreamUncompressedLC( Vector().Offset() );
+ //
+ stream.ReadInt32L(); // EStreamFormatVersion1
+ stream.ReadInt32L(); // spare1
+ stream.ReadInt32L(); // spare2
+ stream.ReadInt32L(); // spare3
+ //
+ const TInt count = stream.ReadInt32L();
+ for(TInt i=0; i<count; i++)
+ {
+ CMMCScBkupIndexJavaDataEntry* entry = CMMCScBkupIndexJavaDataEntry::NewLC( stream );
+ iEntries.AppendL( entry );
+ CleanupStack::Pop( entry );
+ }
+ //
+ CleanupStack::PopAndDestroy(); // stream
+ //
+ const TMMCScBkupArchiveVector& readInfo = archiveDataInterface.ADICurrentArchiveVectorInfo();
+ if ( readInfo.Length() > Vector().Length() )
+ {
+ // We've read too much!
+ User::Leave( KErrCorrupt );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexJavaData::EntryByHash()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexJavaDataEntry* CMMCScBkupIndexJavaData::EntryByHash( const TDesC& aHash, TDriveNumber aDrive ) const
+ {
+ CMMCScBkupIndexJavaDataEntry* ret = NULL;
+ const TInt count = iEntries.Count();
+ //
+ for(TInt i=0; i<count; i++)
+ {
+ CMMCScBkupIndexJavaDataEntry* entry = iEntries[ i ];
+ //
+ if ( entry->Hash() == aHash && entry->Drive() == aDrive )
+ {
+ ret = entry;
+ break;
+ }
+ }
+ //
+ return ret;
+ }
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupIndexPassiveData.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,90 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupIndexPassiveData implementation
+*
+*
+*/
+
+#include "CMMCScBkupIndexPassiveData.h"
+
+// User includes
+#include "MMMCScBkupArchiveDataInterface.h"
+
+
+ /**
+ * Passive Data
+ * ===========
+ *
+ *
+ *
+ * Passive Data Index
+ * =================
+ *
+ * This is the format of the data written by this object.
+ * The format allows the possibility of a future partial
+ * restore (hopefully).
+ *
+ *
+ * 4 bytes = count of passive data entries
+ *
+ * FOR EACH DATA OWNER
+ * {
+ * 4 bytes = secure id associated with a passive data owner
+ * 4 bytes = the number of different data entries for this
+ * particular passive data owner (one for each
+ * drive that was backed up)
+ * ENTRY
+ * {
+ * 1 byte = Associated TDriveNumber of the system data
+ * 8 bytes = offset and size to passive data
+ * }
+ * }
+ *
+ *
+ **/
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexPassiveData::CMMCScBkupIndexPassiveData()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexPassiveData::CMMCScBkupIndexPassiveData()
+: CMMCScBkupIndexWithIdentifier< TSecureId >( EMMCScBkupOwnerDataTypePassiveData )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexPassiveData::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexPassiveData* CMMCScBkupIndexPassiveData::NewLC()
+ {
+ CMMCScBkupIndexPassiveData* self = new(ELeave) CMMCScBkupIndexPassiveData();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupIndexPublicDataFiles.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,196 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupIndexPublicDataFiles implementation
+*
+*
+*/
+
+#include "CMMCScBkupIndexPublicDataFiles.h"
+
+// User includes
+#include "MMMCScBkupArchiveDataInterface.h"
+#include "CMMCScBkupFileInfo.h"
+#include "CMMCScBkupFileListCollection.h"
+
+
+ /**
+ * Public File Data
+ * ================
+ *
+ * This is the format of the data written by the
+ * CMMCScBkupStateArchiveOpPublicDataFiles object
+ *
+ * PUB FILE DATA for file 0
+ * PUB FILE DATA for file 1
+ * PUB FILE DATA for file n
+ *
+ * Public File Data Index
+ * ======================
+ *
+ * This is the format of the data written by this object.
+ * The format allows the possibility of a future partial
+ * restore (hopefully).
+ *
+ * 4 bytes = count of data owners
+ *
+ * FOR EACH PUBLIC FILE
+ * {
+ * externalised CMMCScBkupFileInfo object
+ * externalised TMMCScBkupArchiveVector (offset & compressed size) object
+ * }
+ *
+ **/
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexPublicDataFiles::CMMCScBkupIndexPublicDataFiles()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexPublicDataFiles::CMMCScBkupIndexPublicDataFiles()
+: CMMCScBkupIndexBase( EMMCScBkupOwnerDataTypePublicData )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexPublicDataFiles::~CMMCScBkupIndexPublicDataFiles()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexPublicDataFiles::~CMMCScBkupIndexPublicDataFiles()
+ {
+ iEntries.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexPublicDataFiles::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexPublicDataFiles* CMMCScBkupIndexPublicDataFiles::NewLC()
+ {
+ CMMCScBkupIndexPublicDataFiles* self = new(ELeave) CMMCScBkupIndexPublicDataFiles();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexPublicDataFiles::AddIndexRecordL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexPublicDataFiles::AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, const CMMCScBkupFileInfo& aFile )
+ {
+ // Create new entry
+ TMMCScBkupPublicFileEntry entry( aInfo, aFile );
+
+ // Add it to our index
+ iEntries.AppendL( entry );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexPublicDataFiles::At()
+//
+//
+// ---------------------------------------------------------------------------
+const CMMCScBkupFileInfo& CMMCScBkupIndexPublicDataFiles::At( TInt aIndex, TMMCScBkupArchiveVector& aInfo ) const
+ {
+ const TMMCScBkupPublicFileEntry& entry = iEntries[ aIndex ];
+ aInfo = entry.iInfo;
+ return *entry.iFile;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexPublicDataFiles::StoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexPublicDataFiles::StoreL(MMMCScBkupDriver& aDriver)
+ {
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
+ RWriteStream stream(archiveDataInterface.ADIWriteStreamUncompressedLC());
+ //
+ const TInt count = iEntries.Count();
+ stream.WriteInt32L(count);
+ //
+ for(TInt i=0; i<count; i++)
+ {
+ const TMMCScBkupPublicFileEntry& entry = iEntries[i];
+ stream << *entry.iFile;
+ stream << entry.iInfo;
+ }
+ //
+ stream.CommitL();
+ CleanupStack::PopAndDestroy(); // stream
+
+ // Update our base class info with the offset to the index
+ SetVector( archiveDataInterface.ADICurrentArchiveVectorInfo() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexPublicDataFiles::RestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupIndexPublicDataFiles::RestoreL(MMMCScBkupDriver& aDriver)
+ {
+ CMMCScBkupFileListCollection& fileList = aDriver.DrvFileList();
+ //
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
+ RReadStream& stream = archiveDataInterface.ADIReadStreamUncompressedLC( Vector().Offset() );
+ //
+ const TInt count = stream.ReadInt32L();
+ for(TInt i=0; i<count; i++)
+ {
+ TMMCScBkupPublicFileEntry entry;
+
+ // Reconstruct the CMMCScBkupFileInfo entry in the stream
+ CMMCScBkupFileInfo* fileInfo = CMMCScBkupFileInfo::NewLC( stream );
+
+ // Give ownership to the file list collection
+ fileList.AppendL( fileInfo );
+ CleanupStack::Pop( fileInfo );
+ entry.iFile = fileInfo;
+
+ // Then read the offset to the file...
+ stream >> entry.iInfo;
+
+ // And finally add a new record to our index, so client's can
+ // retrieve the info.
+ iEntries.AppendL( entry );
+ }
+ //
+ CleanupStack::PopAndDestroy(); // stream
+ //
+ const TMMCScBkupArchiveVector& readInfo = archiveDataInterface.ADICurrentArchiveVectorInfo();
+ if ( readInfo.Length() > Vector().Length() )
+ {
+ // We've read too much!
+ User::Leave( KErrCorrupt );
+ }
+ }
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupIndexSystemData.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,109 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupIndexSystemData implementation
+*
+*
+*/
+
+#include "CMMCScBkupIndexSystemData.h"
+
+// User includes
+#include "MMMCScBkupArchiveDataInterface.h"
+
+
+ /**
+ * System Data
+ * ===========
+ *
+ * This is the format of the data written by the
+ * CMMCScBkupStateArchiveOpSystemData object
+ *
+ *
+ * SYSTEM DATA for DO 0
+ * {
+ * SD for DO 0, 1st drive
+ * SD for DO 0, 2nd drive
+ * SD for DO 0, 'n'th drive
+ * },
+ * SYSTEM DATA for DO 1
+ * {
+ * SD for DO 0, 1st drive - (System data is only on
+ * SD for DO 0, 2nd drive two drives)
+ * },
+ * SYSTEM DATA for DO n
+ * {
+ * SD for DO 0, 1st drive - (System Data is only on one drive)
+ * }
+ *
+ * System Data Index
+ * =================
+ *
+ * This is the format of the data written by this object.
+ * The format allows the possibility of a future partial
+ * restore (hopefully).
+ *
+ *
+ * 4 bytes = count of system data entries
+ *
+ * FOR EACH DATA OWNER
+ * {
+ * 4 bytes = package id associated with a system data owner
+ * 4 bytes = the number of different system data packages
+ * for this particular system data owner (one for each
+ * drive that was backed up)
+ * ENTRY
+ * {
+ * 1 byte = Associated TDriveNumber of the system data
+ * 8 bytes = offset & length of actual registration data
+ * }
+ * }
+ *
+ *
+ **/
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexSystemData::CMMCScBkupIndexSystemData()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexSystemData::CMMCScBkupIndexSystemData()
+: CMMCScBkupIndexWithIdentifier< TInt32 >( EMMCScBkupOwnerDataTypeSystemData )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupIndexSystemData::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupIndexSystemData* CMMCScBkupIndexSystemData::NewLC()
+ {
+ CMMCScBkupIndexSystemData* self = new(ELeave) CMMCScBkupIndexSystemData();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupIndexWithIdentifier.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,20 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupIndexWithIdentifier implementation
+*
+*
+*/
+
+#include "CMMCScBkupIndexWithIdentifier.h"
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupOperationParameters.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,499 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupOpParamsBase implementation
+*
+*
+*/
+
+#include "CMMCScBkupOperationParameters.h"
+
+// System includes
+#include <e32std.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupDriveAndOperationTypeManager.h"
+#include "CMMCScBkupArchiveInfo.h"
+#include "BkupEngine.hrh"
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::CMMCScBkupOpParamsBase()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupOpParamsBase::CMMCScBkupOpParamsBase()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::~CMMCScBkupOpParamsBase()
+//
+// C++ destructor.
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupOpParamsBase::~CMMCScBkupOpParamsBase()
+ {
+ delete iDriveAndOperations;
+ iArchiveInfos.ResetAndDestroy();
+ iArchiveInfos.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupOpParamsBase::ConstructL( BkupDrivesAndOperationList *aDriveList, TBitFlags aCategories )
+ {
+ iCategories = aCategories;
+ iDriveAndOperations = CMMCScBkupDriveAndOperationTypeManager::NewL( aDriveList );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::DriveAndOperations()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C const CMMCScBkupDriveAndOperationTypeManager& CMMCScBkupOpParamsBase::DriveAndOperations() const
+ {
+ return *iDriveAndOperations;
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::SetArchiveInfosL()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C void CMMCScBkupOpParamsBase::SetArchiveInfosL(RPointerArray<CMMCScBkupArchiveInfo>& aInfos)
+ {
+ iArchiveInfos.ResetAndDestroy();
+
+ for(TInt i = 0; i < aInfos.Count(); i++)
+ {
+ iArchiveInfos.AppendL(aInfos[i]);
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::ArchiveInfos()
+//
+//
+// ---------------------------------------------------------------------------
+RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& CMMCScBkupOpParamsBase::ArchiveInfos()
+ {
+ return iArchiveInfos;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::ArchiveInfo()
+//
+//
+// ---------------------------------------------------------------------------
+const CMMCScBkupArchiveInfo& CMMCScBkupOpParamsBase::ArchiveInfo(TBitFlags aCategory) const
+ {
+ CMMCScBkupArchiveInfo* archiveInfo = NULL;
+
+ for(TInt i = 0; i < iArchiveInfos.Count(); i++)
+ {
+ archiveInfo = iArchiveInfos[i];
+ if(archiveInfo->Category() == aCategory)
+ {
+ break;
+ }
+ }
+
+ return *archiveInfo;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::FileName()
+//
+//
+// ---------------------------------------------------------------------------
+const TDesC& CMMCScBkupOpParamsBase::FileName(TInt aIndex) const
+ {
+ const TDesC* ret = &KNullDesC;
+ const CMMCScBkupArchiveInfo& archiveInfo = *iArchiveInfos[aIndex];
+
+ if( archiveInfo.FileName().Length() )
+ {
+ ret = &archiveInfo.FileName();
+ }
+
+ return *ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::ReadFromResourceL()
+//
+// Read categories with associated data from resource
+// ---------------------------------------------------------------------------
+void CMMCScBkupOpParamsBackupFull::ReadFromResourceL( BkupCategoryList *aCategoryList )
+ {
+ TInt count( aCategoryList->Count() );
+
+ for ( TInt i( 0 ); i < count; i++ )
+ {
+ // Read category
+ CBkupCategory* bkupCategory = (*aCategoryList)[i];
+ CArrayFixFlat<unsigned int>* uidsList = bkupCategory->uids();
+ CArrayFixFlat<unsigned int>* exclude_uidsList = bkupCategory->exclude_uids();
+
+
+ TBitFlags category = static_cast< TBitFlags >( bkupCategory->category() );
+
+ // Read archive name
+ const TDriveUnit driveUnit(iDrive);
+ const TDriveName driveName(driveUnit.Name());
+ TFileName name;
+ TPtrC archiveName( bkupCategory->archive_name()->Des() );
+
+ name.Append(driveName);
+ name.Append(KBackUpFolder());
+ name.Append(archiveName);
+
+ // Read special flags
+ TBitFlags flags = static_cast< TBitFlags >( bkupCategory->special_flags() );
+ TBitFlags excludedFlags = static_cast< TBitFlags >(
+ bkupCategory->exclude_special_flags() );
+
+ // Read SIDs belonging to category
+ TInt16 subCount = uidsList->Count();
+ RArray<TSecureId> sids;
+ CleanupClosePushL( sids );
+
+ for(TInt j = 0; j < subCount; j++)
+ {
+ sids.AppendL(static_cast<TSecureId>( (*uidsList)[j] ) );
+ }
+
+ // Read excluded SIDs for category
+ subCount = exclude_uidsList->Count();
+ RArray<TSecureId> excludeSids;
+ CleanupClosePushL( excludeSids );
+
+ for(TInt j = 0; j < subCount; j++)
+ {
+ excludeSids.AppendL(static_cast<TSecureId>( (*exclude_uidsList)[j] ));
+ }
+
+ TEntry entry;
+ entry.iName = name;
+ CMMCScBkupArchiveInfo* archiveInfo = CMMCScBkupArchiveInfo::NewLC( entry );
+ archiveInfo->SetCategory( category );
+ archiveInfo->SetSpecialFlags( flags );
+ archiveInfo->SetExcludedSpecialFlags( excludedFlags );
+ archiveInfo->SetSIDs( sids );
+ archiveInfo->SetExcludedSIDs( excludeSids );
+
+ // If the category is specified, then add it in list of categories to be archived
+#ifdef RD_FILE_MANAGER_BACKUP
+ if( Categories().Value() & category.Value() )
+#else
+ if( category.Value() == EBUCatAllInOne )
+#endif
+ {
+ __LOG1("CMMCScBkupOpParamsBase::ReadFromResourceL() - adding category 0x%x", category.Value());
+ RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& archives = ArchiveInfos();
+ archives.AppendL( archiveInfo );
+ CleanupStack::Pop( archiveInfo );
+ }
+ else
+ {
+ __LOG1("CMMCScBkupOpParamsBase::ReadFromResourceL() - category 0x%x not included", category.Value());
+ CleanupStack::PopAndDestroy( archiveInfo );
+ }
+
+ CleanupStack::PopAndDestroy( &excludeSids );
+ CleanupStack::PopAndDestroy( &sids );
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::CMMCScBkupOpParamsBackupFull()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupOpParamsBackupFull::CMMCScBkupOpParamsBackupFull( TDriveNumber aDrive )
+ : iDrive( aDrive )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::~CMMCScBkupOpParamsBackupFull()
+//
+// C++ destructor.
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupOpParamsBackupFull::~CMMCScBkupOpParamsBackupFull()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupOpParamsBackupFull::ConstructL( BkupDrivesAndOperationList *aDriveList,
+ BkupCategoryList *aCategoryList, TBitFlags aCategories )
+ {
+ CMMCScBkupOpParamsBase::ConstructL( aDriveList, aCategories );
+ ReadFromResourceL( aCategoryList );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupOpParamsBackupFull* CMMCScBkupOpParamsBackupFull::NewL(
+ BkupDrivesAndOperationList *aDriveList,
+ BkupCategoryList *aCategoryList,
+ TDriveNumber aDrive, TBitFlags aCategories )
+ {
+ CMMCScBkupOpParamsBackupFull* self = new(ELeave) CMMCScBkupOpParamsBackupFull( aDrive );
+ CleanupStack::PushL( self );
+ self->ConstructL( aDriveList, aCategoryList, aCategories );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::AssociatedOpType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TMMCScBkupOperationType CMMCScBkupOpParamsBackupFull::AssociatedOpType() const
+ {
+ return EMMCScBkupOperationTypeFullBackup;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::PartType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TBURPartType CMMCScBkupOpParamsBackupFull::PartType() const
+ {
+ return EBURBackupFull;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::IncrementType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TBackupIncType CMMCScBkupOpParamsBackupFull::IncrementType() const
+ {
+ return EBackupBase;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::PassiveTransferType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TTransferDataType CMMCScBkupOpParamsBackupFull::PassiveTransferType() const
+ {
+ return EPassiveBaseData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::ActiveTransferType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TTransferDataType CMMCScBkupOpParamsBackupFull::ActiveTransferType() const
+ {
+ return EActiveBaseData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::PackageTransferType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TPackageDataType CMMCScBkupOpParamsBackupFull::PackageTransferType() const
+ {
+ return ESystemData;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::CMMCScBkupOpParamsRestoreFull()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupOpParamsRestoreFull::CMMCScBkupOpParamsRestoreFull()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::~CMMCScBkupOpParamsRestoreFull()
+//
+// C++ destructor.
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupOpParamsRestoreFull::~CMMCScBkupOpParamsRestoreFull()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupOpParamsRestoreFull* CMMCScBkupOpParamsRestoreFull::NewL(
+ BkupDrivesAndOperationList *aDriveList, TBitFlags aCategories )
+ {
+ CMMCScBkupOpParamsRestoreFull* self = new(ELeave) CMMCScBkupOpParamsRestoreFull( );
+ CleanupStack::PushL( self );
+ self->ConstructL( aDriveList, aCategories );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::AssociatedOpType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TMMCScBkupOperationType CMMCScBkupOpParamsRestoreFull::AssociatedOpType() const
+ {
+ return EMMCScBkupOperationTypeFullRestore;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::PartType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TBURPartType CMMCScBkupOpParamsRestoreFull::PartType() const
+ {
+ return EBURRestoreFull;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::IncrementType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TBackupIncType CMMCScBkupOpParamsRestoreFull::IncrementType() const
+ {
+ return EBackupBase;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::PassiveTransferType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TTransferDataType CMMCScBkupOpParamsRestoreFull::PassiveTransferType() const
+ {
+ return EPassiveBaseData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::ActiveTransferType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TTransferDataType CMMCScBkupOpParamsRestoreFull::ActiveTransferType() const
+ {
+ return EActiveBaseData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::PackageTransferType()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C TPackageDataType CMMCScBkupOpParamsRestoreFull::PackageTransferType() const
+ {
+ return ESystemData;
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupState.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,243 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupState implementation
+*
+*
+*/
+
+#include "CMMCScBkupState.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::CMMCScBkupState()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupState::CMMCScBkupState( MMMCScBkupDriver& aDriver, TInt aPriority )
+: CActive( aPriority ), iDriver( aDriver )
+ {
+ CActiveScheduler::Add(this);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::~CMMCScBkupState()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupState::~CMMCScBkupState()
+ {
+ Cancel();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::RunL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupState::RunL()
+ {
+ User::LeaveIfError(iStatus.Int());
+ //
+ PerformAsynchronousStateStepL();
+ //
+ if (!IsActive())
+ {
+ // If we've processed all the asynchronous steps, then
+ // perform the last rights on the state.
+ //
+ // If this causes a leave, then we cascade the failure
+ // to the observer - i.e. the error is treated as fatal.
+ TRAPD(err, PerformLastRightsL() );
+ CompleteObserver( err );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::DoCancel()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupState::DoCancel()
+ {
+ __LOG3("CMMCScBkupState::DoCancel() - START - state: 0x%08x, IsActive: %d, status: %d", StateId().iUid, IsActive(), iStatus.Int() );
+ PerformAsynchronousCancellation();
+ CompleteObserver( KErrCancel );
+ __LOG3("CMMCScBkupState::DoCancel() - END - state: 0x%08x, IsActive: %d, status: %d", StateId().iUid, IsActive(), iStatus.Int() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::RunError()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupState::RunError(TInt aError)
+ {
+#ifdef MMCSCBKUP_USE_BREAKPOINTS
+ __BREAKPOINT();
+#endif
+ //
+ if ( aError == KErrNoMemory || aError == KErrDiskFull || aError == KErrNotReady || aError == KErrServerTerminated || aError == KErrWrite )
+ {
+ __LOGFILE2("CMMCScBkupState::RunError() - **** - FATAL ERROR - state: 0x%08x, aError: %d - Notifying Observer (Engine)", StateId().iUid, aError );
+ CompleteObserver( aError );
+ }
+ else
+ {
+ __LOGFILE2("CMMCScBkupState::RunError() - **** - ATTEMPT TO HANDLE ERROR - state: 0x%08x, aError: %d...", StateId().iUid, aError );
+
+ const TBool errorHandled = PerformAsynchronousErrorCleanup( aError );
+
+ __LOGFILE1("CMMCScBkupState::RunError() - **** - handle error result: %d", errorHandled );
+
+ // If the cleanup callback didn't set us active again, then
+ // assume the object didn't perform any recovery. Therefore
+ // inform our observer about the error and give up.
+ if (!errorHandled || !IsActive())
+ {
+ CompleteObserver( aError );
+ }
+ }
+ //
+ return KErrNone;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::ExecuteL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupState::ExecuteL(TRequestStatus& aObserver)
+ {
+ SetObserver(aObserver);
+ TRAPD(error, PerformStateInitL());
+
+ // If the object is active, then it is making use of asynchronous
+ // functionality, in which case we do nothing.
+ //
+ // If the object is not active or the call to PerformStateActionL left,
+ // then we complete the observer with the result of the trap
+ if (error != KErrNone || IsActive() == EFalse)
+ {
+ if (error == KErrNone)
+ {
+ PerformLastRightsL();
+ }
+ //
+ CompleteObserver(error);
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::PerformAsynchronousStateStepL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupState::PerformAsynchronousStateStepL()
+ {
+ // Derived classes should override this if they implement
+ // asynchronous behaviour
+ User::Invariant();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::PerformAsynchronousCancellation()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupState::PerformAsynchronousCancellation()
+ {
+ // Derived classes are expected to implement this if they have
+ // resources to free. For calls to CompleteSelf(), no action is needed.
+ __LOG3("CMMCScBkupState::PerformAsynchronousCancellation() - ERROR - cancellation not implemented for state: 0x%08x, IsActive: %d, status: %d", StateId().iUid, IsActive(), iStatus.Int() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::PerformLastRightsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupState::PerformLastRightsL()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::PerformAsynchronousErrorCleanup()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupState::PerformAsynchronousErrorCleanup( TInt aError )
+ {
+ (void) aError;
+ __LOGFILE2("CMMCScBkupState::PerformAsynchronousErrorCleanup() - error: %d, state id: 0x%08x", aError, StateId().iUid );
+ return EFalse;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::CompleteSelf()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupState::CompleteSelf( TInt aCompletionCode )
+ {
+ SetActive();
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete( status, aCompletionCode );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::CompleteObserver()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupState::CompleteObserver( TInt aCompletionCode )
+ {
+ __ASSERT_ALWAYS(iObserver != NULL, User::Invariant());
+ User::RequestComplete( iObserver, aCompletionCode );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupState::SetObserver()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupState::SetObserver(TRequestStatus& aStatus)
+ {
+ __ASSERT_ALWAYS(iObserver == NULL, User::Invariant());
+ aStatus = KRequestPending;
+ iObserver = &aStatus;
+ }
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpActiveData.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,467 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpActiveData implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateArchiveOpActiveData.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "MMCScBkupSBEUtils.h"
+#include "CMMCScBkupArchive.h"
+#include "CMMCScBkupArchiveFooter.h"
+#include "CMMCScBkupIndexWithIdentifier.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+
+// Constants
+const TInt KMMCScBkupActiveDataOwnerDelayBeforeRetry = 2 * 1000000; // 2 seconds
+const TInt KMMCScBkupNumberOfAttemptsToAllowADOToBecomeReady = 4; // corresponds to 8 seconds of waiting
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::CMMCScBkupStateArchiveOpActiveData()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpActiveData::CMMCScBkupStateArchiveOpActiveData( MMMCScBkupDriver& aDriver )
+: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpActiveData::CMMCScBkupStateArchiveOpActiveData() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::~CMMCScBkupStateArchiveOpActiveData()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpActiveData::~CMMCScBkupStateArchiveOpActiveData()
+ {
+ Cancel();
+ //
+ iTimer.Close();
+ //
+ delete iBackupTransferObject;
+ delete iRestoreTransferObject;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpActiveData* CMMCScBkupStateArchiveOpActiveData::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateArchiveOpActiveData* self = new(ELeave) CMMCScBkupStateArchiveOpActiveData( aDriver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpActiveData::StateId() const
+ {
+ return KMMCScBkupStateIdArchiveOpActiveData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::NextStateBackupId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpActiveData::NextStateBackupId( TBool /*aPartial*/ ) const
+ {
+ // If we still have unprocessed active data owners remaining, then
+ // we must
+ //
+ // a) check their status again - to see if they are ready, then
+ // b) process them once again via this method
+ //
+ // The 'get data owner statuses' object will trigger us again
+ // when it has performed an update of all statuses
+
+ // By default, we want to move onto the passive data...
+ TMMCScBkupStateId nextState = KMMCScBkupStateIdArchiveOpPassiveData;
+ if (AllDataOwnersHandled() == EFalse)
+ {
+ // ... but we've still got at least one data owner who's not yet
+ // finished preparing their data... so we have to retry
+ nextState = KMMCScBkupStateIdGetDataOwnerStatuses;
+ }
+ //
+ return nextState;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::NextStateRestoreId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpActiveData::NextStateRestoreId( TBool /*aPartial*/ ) const
+ {
+ // If we still have unprocessed active data owners remaining, then
+ // we must
+ //
+ // a) check their status again - to see if they are ready, then
+ // b) process them once again via this method
+ //
+ // The 'get data owner statuses' object will trigger us again
+ // when it has performed an update of all statuses
+
+ // By default, we want to move onto the passive data...
+ TMMCScBkupStateId nextState = KMMCScBkupStateIdArchiveOpPublicDataFiles;
+ if (AllDataOwnersHandled() == EFalse)
+ {
+ // ... but we've still got at least one data owner who's not yet
+ // finished preparing their data... so we have to retry
+ nextState = KMMCScBkupStateIdGetDataOwnerStatuses;
+ }
+ //
+ return nextState;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::PerformStateInitBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpActiveData::PerformStateInitBackupL( TBool /*aPartial*/ )
+ {
+ __DEBUG_TESTING_SKIP_BACKUP_ACT_DATA;
+ __LOG("CMMCScBkupStateArchiveOpActiveData::PerformStateInitBackupL() - START");
+
+ iBackupTransferObject = CMMCScBkupWriteDataTransferRequest< TTransferDataType >::NewL(
+ Driver(),
+ *this,
+ EMMCScBkupOwnerDataTypeActiveData,
+ ESIDTransferDerivedType,
+ Driver().DrvParamsBase().ActiveTransferType()
+ );
+ CompleteSelf();
+ __LOG("CMMCScBkupStateArchiveOpActiveData::PerformStateInitBackupL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::PerformStateInitRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpActiveData::PerformStateInitRestoreL( TBool /*aPartial*/ )
+ {
+ __DEBUG_TESTING_SKIP_RESTORE_ACT_DATA;
+ __LOG("CMMCScBkupStateArchiveOpActiveData::PerformStateInitRestoreL() - START");
+
+ iRestoreTransferObject = CMMCScBkupReadDataTransferRequest< TTransferDataType >::NewL(
+ Driver(),
+ EMMCScBkupOwnerDataTypeActiveData,
+ Driver().DrvParamsBase().ActiveTransferType()
+ );
+
+ CompleteSelf();
+ __LOG("CMMCScBkupStateArchiveOpActiveData::PerformStateInitRestoreL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ const TInt count = dataOwners.Count();
+ __LOG2("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - START - iIndexValueCurrent: %d/%d", iIndexValueCurrent, count);
+ //
+ while ( ++iIndexValueCurrent < count )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner(iIndexValueCurrent);
+
+ // Has this data owner been processed?
+ // Is the data owner even ready?
+ const TBool activeDataAlreadyProcessed = owner.CompletionStatus( EMMCScBkupOwnerDataTypeActiveData );
+ const TBool dataOwnerIsReady = ( owner.Status() == EDataOwnerReady ||
+ owner.Status() == EDataOwnerReadyNoImpl );
+ const TBool dataHasRealActiveData = ( owner.Status() == EDataOwnerReady );
+ //
+ __LOG5("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - DO: 0x%08x has status: %d, alreadyProcessed: %d, isReady: %d, dataHasRealActiveData: %d", owner.SecureId().iId, owner.Status(), activeDataAlreadyProcessed, dataOwnerIsReady, dataHasRealActiveData);
+ //
+ if (!activeDataAlreadyProcessed)
+ {
+ __LOG("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - active data has not already been processed...");
+
+ if (dataOwnerIsReady)
+ {
+ __LOG("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - data owner is ready...");
+
+ if ( dataHasRealActiveData )
+ {
+ __LOG("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - data owner has real active data...");
+
+ // Try and obtain the active data for this client
+ __ASSERT_ALWAYS(iBackupTransferObject->IsActive() == EFalse, User::Invariant());
+ //
+ iBackupTransferObject->RequestL( owner,
+ iStatus,
+ Driver().DrvParamsBase().DriveAndOperations() );
+ SetActive();
+ break; // while loop
+ }
+ else
+ {
+ // The data owner is a hybrid - we shouldn't request data for a data owner that
+ // doesn't provide an active data interface callback implementation.
+ __LOG("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - DO is a hybrid - set completion status to ETrue");
+ owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
+ }
+ }
+ else
+ {
+ // Retry a number of times, but eventually we'll give up
+ const TInt attemptsSoFar = owner.ActiveDataRetryCount();
+ owner.SetActiveDataRetryCount( attemptsSoFar + 1 );
+
+ if ( attemptsSoFar >= KMMCScBkupNumberOfAttemptsToAllowADOToBecomeReady )
+ {
+ // Give up, this DO is taking too long
+ owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
+ __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - ADO with SID: 0x%08x has taken too long to prepare, skipping", owner.SecureId().iId);
+ }
+ else
+ {
+ // DO is not yet ready, we're going to have to check its
+ // status again in a while...
+ __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepBackupL() - attemptsSoFar %d", attemptsSoFar);
+ iAtLeastOneDataOwnerIsNotYetReady = ETrue;
+ }
+ }
+ }
+ }
+ //
+ CheckNeedToStartRetryTimerL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeActiveData );
+ CMMCScBkupIndexWithIdentifier< TSecureId >& index = static_cast< CMMCScBkupIndexWithIdentifier< TSecureId >& >( indexBase );
+ const TInt count = index.Count();
+ //
+ //
+ while ( ++iIndexValueCurrent < count )
+ {
+ // Get the associated data owner
+ const CMMCScBkupIndexEntry<TSecureId>& entry = index.At( iIndexValueCurrent );
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Identifier() );
+
+ // Has this data owner been processed?
+ // Is the data owner even ready?
+ const TBool activeDataAlreadyProcessed = owner.CompletionStatus(EMMCScBkupOwnerDataTypeActiveData);
+ const TBool dataOwnerIsReady = ( owner.Status() == EDataOwnerReady ||
+ owner.Status() == EDataOwnerReadyNoImpl );
+ //
+ if (!activeDataAlreadyProcessed)
+ {
+ if (dataOwnerIsReady)
+ {
+ __ASSERT_ALWAYS(iRestoreTransferObject->IsActive() == EFalse, User::Invariant());
+ //
+ const RArray<TMMCScBkupArchiveDriveAndVector>& subEntries = entry.Entries();
+ iRestoreTransferObject->RequestL( owner,
+ iStatus,
+ subEntries );
+ __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepRestoreL() - trying to restore ACTIVE DATA for SID: 0x%08x", owner.SecureId().iId );
+ //
+ SetActive();
+ break; // while loop
+ }
+ else
+ {
+ // Retry a number of times, but eventually we'll give up
+ const TInt attemptsSoFar = owner.ActiveDataRetryCount();
+ owner.SetActiveDataRetryCount( attemptsSoFar + 1 );
+
+ if ( attemptsSoFar >= KMMCScBkupNumberOfAttemptsToAllowADOToBecomeReady )
+ {
+ // Give up, this DO is taking too long
+ owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
+ __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousStateStepRestoreL() - ADO with SID: 0x%08x has taken too long to prepare, skipping", owner.SecureId().iId);
+ }
+ else
+ {
+ // DO is not yet ready, we're going to have to check its
+ // status again in a while...
+ iAtLeastOneDataOwnerIsNotYetReady = ETrue;
+ }
+ }
+ }
+ }
+ //
+ CheckNeedToStartRetryTimerL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupBackup()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d", aError );
+
+ // Reset state and move to next item. Treat the current (badly behaving) item
+ // as completed/processed.
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ if ( iIndexValueCurrent < dataOwners.Count() )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
+ owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
+
+ __LOGFILE2("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d, SID: 0x%08x - ACTIVE data skipped for DO", aError, owner.SecureId().iId );
+ }
+
+ CompleteSelf();
+ return ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupRestore()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOGFILE1("CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
+
+ CompleteSelf();
+ return ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousCancellation()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpActiveData::PerformAsynchronousCancellation()
+ {
+ if (iTimer.Handle() != KNullHandle )
+ {
+ iTimer.Cancel();
+ }
+ if (iBackupTransferObject)
+ {
+ iBackupTransferObject->Cancel();
+ }
+ if (iRestoreTransferObject)
+ {
+ iRestoreTransferObject->Cancel();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::PerformLastRightsBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpActiveData::PerformLastRightsBackupL( TBool /*aPartial*/ )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpActiveData::PerformLastRightsBackupL() - iAtLeastOneDataOwnerIsNotYetReady %d", iAtLeastOneDataOwnerIsNotYetReady );
+
+ if ( AllDataOwnersHandled() )
+ {
+ // Only write the index if we've handled all the active data owners
+ CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeActiveData );
+ index.StoreL(Driver());
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::AddIndexRecordL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpActiveData::AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive )
+ {
+ CMMCScBkupIndexBase& indexBase = aFooter.IndexByType( EMMCScBkupOwnerDataTypeActiveData );
+ CMMCScBkupIndexWithIdentifier< TSecureId>& index = static_cast< CMMCScBkupIndexWithIdentifier< TSecureId>& >( indexBase );
+ //
+ index.AddIndexRecordL( aInfo, aDrive, aDataOwner.SecureId() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpActiveData::CheckNeedToStartRetryTimerL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpActiveData::CheckNeedToStartRetryTimerL()
+ {
+ // We need to delay until the remaining active data owners are ready
+ const TBool processingDataHandler = IsActive();
+ if ( !processingDataHandler && !AllDataOwnersHandled() && iTimer.Handle() == KNullHandle )
+ {
+ // Implicitly, we have at least one DO that's not yet ready, and
+ // we have processed as many of the ready DO's as is possible on this
+ // cycle. Let's wait a few seconds to give the DO's a time to finish
+ // preparing and then try again. See NextStateId() for how this works.
+ User::LeaveIfError( iTimer.CreateLocal() );
+
+ __LOG("CMMCScBkupStateArchiveOpActiveData::CheckNeedToStartRetryTimerL() - SetActive");
+ SetActive();
+ const TTimeIntervalMicroSeconds32 delay(KMMCScBkupActiveDataOwnerDelayBeforeRetry);
+ iTimer.After( iStatus, delay );
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpArchiveFooter.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,174 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpArchiveFooter implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateArchiveOpArchiveFooter.h"
+
+// System includes
+#include <e32std.h>
+#include <s32strm.h>
+#include <s32mem.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupArchive.h"
+#include "CMMCScBkupArchiveFooter.h"
+#include "CMMCScBkupArchiveHeader.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveFooter::CMMCScBkupStateArchiveOpArchiveFooter()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpArchiveFooter::CMMCScBkupStateArchiveOpArchiveFooter( MMMCScBkupDriver& aDriver )
+: CMMCScBkupState( aDriver )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpArchiveFooter::CMMCScBkupStateArchiveOpArchiveFooter() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveFooter::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpArchiveFooter* CMMCScBkupStateArchiveOpArchiveFooter::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateArchiveOpArchiveFooter* self = new(ELeave) CMMCScBkupStateArchiveOpArchiveFooter( aDriver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveFooter::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpArchiveFooter::StateId() const
+ {
+ return KMMCScBkupStateIdArchiveOpArchiveFooter;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveFooter::NextStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpArchiveFooter::NextStateId() const
+ {
+ TMMCScBkupStateId nextState = KMMCScBkupStateIdOperationComplete;
+ //
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ nextState = KMMCScBkupStateIdOperationComplete;
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ nextState = KMMCScBkupStateIdArchiveOpDataOwners;
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ //
+ return nextState;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveFooter::PerformStateInitL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpArchiveFooter::PerformStateInitL()
+ {
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL()
+ {
+ CMMCScBkupArchive& archive = Driver().DrvArchive();
+ CMMCScBkupArchiveFooter& footer = archive.Footer();
+ CMMCScBkupArchiveHeader& header = archive.Header();
+ //
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ __LOG("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - EMMCScBkupOperationTypeFullBackup - storing footer..." );
+ footer.StoreL();
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ {
+ __LOG("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - EMMCScBkupOperationTypeFullRestore - restoring footer..." );
+
+ const TMMCScBkupArchiveVector& archiveVector = Driver().DrvADI().ADIOverallArchiveVectorInfo();
+ __LOG1("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - overall archive length: %d", archiveVector.Length() );
+
+ const TInt footerLengthFromHeader = header.FooterLength();
+ __LOG1("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - footer length (read from header): %d", footerLengthFromHeader );
+
+ const TInt footerStartingOffset = archiveVector.Length() - footerLengthFromHeader;
+ __LOG1("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - footer starting offset: %d", footerStartingOffset );
+
+ footer.RestoreL( footerStartingOffset );
+
+ __LOG("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - restoring all indicies");
+
+ // Restore all indicies
+ CMMCScBkupIndexBase& indexDataOwner = footer.IndexByType(EMMCScBkupOwnerDataTypeDataOwner);
+ indexDataOwner.RestoreL( Driver() );
+
+ CMMCScBkupIndexBase& indexSystem = footer.IndexByType( EMMCScBkupOwnerDataTypeSystemData );
+ indexSystem.RestoreL( Driver() );
+
+ CMMCScBkupIndexBase& indexJava = footer.IndexByType( EMMCScBkupOwnerDataTypeJavaData );
+ indexJava.RestoreL( Driver() );
+
+ CMMCScBkupIndexBase& indexPassive = footer.IndexByType( EMMCScBkupOwnerDataTypePassiveData );
+ indexPassive.RestoreL( Driver() );
+
+ CMMCScBkupIndexBase& indexActive = footer.IndexByType( EMMCScBkupOwnerDataTypeActiveData );
+ indexActive.RestoreL( Driver() );
+
+ CMMCScBkupIndexBase& indexPublic = footer.IndexByType( EMMCScBkupOwnerDataTypePublicData );
+ indexPublic.RestoreL( Driver() );
+
+ __LOG("CMMCScBkupStateArchiveOpArchiveFooter::PerformAsynchronousStateStepL() - all indicies restored");
+
+ break;
+ }
+ default:
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ }
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpArchiveHeader.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,138 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpArchiveHeader implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateArchiveOpArchiveHeader.h"
+
+// System includes
+#include <e32std.h>
+#include <s32strm.h>
+#include <s32mem.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupArchive.h"
+#include "CMMCScBkupArchiveHeader.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveHeader::CMMCScBkupStateArchiveOpArchiveHeader()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpArchiveHeader::CMMCScBkupStateArchiveOpArchiveHeader( MMMCScBkupDriver& aDriver )
+: CMMCScBkupState( aDriver )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpArchiveHeader::CMMCScBkupStateArchiveOpArchiveHeader() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveHeader::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpArchiveHeader* CMMCScBkupStateArchiveOpArchiveHeader::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateArchiveOpArchiveHeader* self = new(ELeave) CMMCScBkupStateArchiveOpArchiveHeader( aDriver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveHeader::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpArchiveHeader::StateId() const
+ {
+ return KMMCScBkupStateArchiveOpArchiveHeader;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveHeader::NextStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpArchiveHeader::NextStateId() const
+ {
+ TMMCScBkupStateId nextState = KMMCScBkupStateIdGetDataOwners;
+ //
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ nextState = KMMCScBkupStateIdGetDataOwners;
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ nextState = KMMCScBkupStateIdArchiveOpArchiveFooter;
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ //
+ return nextState;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveHeader::PerformStateInitL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpArchiveHeader::PerformStateInitL()
+ {
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpArchiveHeader::PerformAsynchronousStateStepL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpArchiveHeader::PerformAsynchronousStateStepL()
+ {
+ CMMCScBkupArchive& archive = Driver().DrvArchive();
+ CMMCScBkupArchiveHeader& header = archive.Header();
+ //
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ header.StoreL(archive.Category());
+#ifdef RD_FILE_MANAGER_BACKUP
+ // Activate crc-calculation for payload data. Header crc'd separately
+ Driver().DrvADI().ADIActivateCrcCalculation(ETrue);
+#endif
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ header.RestoreL();
+ break;
+ default:
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ }
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpDataOwners.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,272 @@
+/*
+* Copyright (c) 2005-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: CMMCScBkupStateArchiveOpDataOwners implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateArchiveOpDataOwners.h"
+
+// System includes
+#include <e32std.h>
+#include <s32strm.h>
+#include <s32mem.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupArchive.h"
+#include "RMMCScBkupProgressSizer.h"
+#include "CMMCScBkupArchiveFooter.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "CMMCScBkupIndexDataOwners.h"
+#include "MMMCScBkupProgressObserver.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::CMMCScBkupStateArchiveOpDataOwners()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpDataOwners::CMMCScBkupStateArchiveOpDataOwners( MMMCScBkupDriver& aDriver )
+: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpDataOwners::CMMCScBkupStateArchiveOpDataOwners() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::~CMMCScBkupStateArchiveOpDataOwners()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpDataOwners::~CMMCScBkupStateArchiveOpDataOwners()
+ {
+ Cancel();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpDataOwners* CMMCScBkupStateArchiveOpDataOwners::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateArchiveOpDataOwners* self = new(ELeave) CMMCScBkupStateArchiveOpDataOwners( aDriver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpDataOwners::StateId() const
+ {
+ return KMMCScBkupStateIdArchiveOpDataOwners;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::NextStateBackupId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpDataOwners::NextStateBackupId( TBool /*aPartial*/ ) const
+ {
+ return KMMCScBkupStateIdArchiveOpArchiveFooter;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::NextStateRestoreId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpDataOwners::NextStateRestoreId( TBool /*aPartial*/ ) const
+ {
+ return KMMCScBkupStateIdValidateDiskSpace;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::PerformStateInitBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpDataOwners::PerformStateInitBackupL( TBool /*aPartial*/ )
+ {
+ // Work is carried out inside asynchronous step
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::PerformStateInitRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpDataOwners::PerformStateInitRestoreL( TBool /*aPartial*/ )
+ {
+ // Restore each data owner asynchronously
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
+ CMMCScBkupIndexBase& indexBase = footer.IndexByType(EMMCScBkupOwnerDataTypeDataOwner);
+ CMMCScBkupIndexDataOwners& index = static_cast< CMMCScBkupIndexDataOwners& >( indexBase );
+ const TInt count = dataOwners.Count();
+ //
+ if ( ++iIndexValueCurrent < count )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
+
+ // Externalise
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = ADI();
+ RWriteStream stream( archiveDataInterface.ADIWriteStreamUncompressedLC() );
+ stream << owner;
+ stream.CommitL();
+ CleanupStack::PopAndDestroy(); // stream
+
+
+ // Save the offset of the data owner
+ const TMMCScBkupArchiveVector& info = archiveDataInterface.ADICurrentArchiveVectorInfo();
+ index.AddIndexRecordL( info );
+
+ // Now move on to the next data owner
+ CompleteSelf();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
+ CMMCScBkupIndexBase& indexBase = footer.IndexByType( EMMCScBkupOwnerDataTypeDataOwner );
+ CMMCScBkupIndexDataOwners& index = static_cast< CMMCScBkupIndexDataOwners& >( indexBase );
+ const TInt count = index.Count();
+ __LOG1( "CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepRestoreL() - %d data owner index records...", count );
+ //
+ if ( ++iIndexValueCurrent < count )
+ {
+ const TMMCScBkupArchiveVector& entry = index.At( iIndexValueCurrent );
+ __LOG3( "CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepRestoreL() - entry[%03d] at offset: 0x%08x, length: %4d", iIndexValueCurrent, entry.Offset(), entry.Length() );
+
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = ADI();
+ RReadStream stream( archiveDataInterface.ADIReadStreamUncompressedLC( entry.Offset() ) );
+
+ // Internalize a new entry and add it to the data owner collection
+ CMMCScBkupDataOwnerInfo* dataOwner = CMMCScBkupDataOwnerInfo::NewLC( stream );
+ dataOwners.AppendL( dataOwner );
+ CleanupStack::Pop( dataOwner );
+
+ // Tidy up & check that we didn't read too much - oops
+ const TMMCScBkupArchiveVector& readInfo = archiveDataInterface.ADICurrentArchiveVectorInfo();
+ if ( readInfo.Length() > entry.Length() )
+ {
+ __LOG( "CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousStateStepRestoreL() - ERROR - Read too much data! -> leave with KErrCorrupt" );
+ User::Leave( KErrCorrupt );
+ }
+ CleanupStack::PopAndDestroy(); // stream
+
+ // Continue to next entry
+ CompleteSelf();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsBackupL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeDataOwner );
+ index.StoreL( Driver() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsRestoreL( TBool /*aPartial*/ )
+ {
+ // Calculate restore byte size (for all drives)
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ const TInt64 totalDataRestoreSize = dataOwners.TotalOperationalSizeL();
+
+ // Inform progress manager
+ if(Driver().DrvLastCategory())
+ {
+ __LOG2("CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsRestoreL() - report progress understood (%Ld + %Ld)",
+ totalDataRestoreSize, Driver().DrvTotalProgress());
+ Driver().DrvProgressHandler().MMCScBkupHandleProgressDomainUnderstood( totalDataRestoreSize + Driver().DrvTotalProgress());
+ }
+ else
+ {
+ __LOG2("CMMCScBkupStateArchiveOpDataOwners::PerformLastRightsRestoreL() - adding progress amount %Ld to existing %Ld)",
+ totalDataRestoreSize, Driver().DrvTotalProgress());
+ Driver().DrvStoreTotalProgress( totalDataRestoreSize );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousErrorCleanupRestore()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOGFILE1("CMMCScBkupStateArchiveOpDataOwners::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
+
+ // Just try to skip the data owner.
+ CompleteSelf();
+ return ETrue;
+ }
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpJavaData.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,548 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpJavaData implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateArchiveOpJavaData.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "MMCScBkupSBEUtils.h"
+#include "CMMCScBkupArchive.h"
+#include "CMMCScBkupArchiveFooter.h"
+#include "CMMCScBkupIndexJavaData.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::CMMCScBkupStateArchiveOpJavaData()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpJavaData::CMMCScBkupStateArchiveOpJavaData( MMMCScBkupDriver& aDriver )
+: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpJavaData::CMMCScBkupStateArchiveOpJavaData() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::~CMMCScBkupStateArchiveOpJavaData()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpJavaData::~CMMCScBkupStateArchiveOpJavaData()
+ {
+ Cancel();
+ //
+ delete iBackupTransferObjectMidlet;
+ delete iBackupTransferObjectMidletData;
+ delete iRestoreTransferObjectMidlet;
+ delete iRestoreTransferObjectMidletData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpJavaData* CMMCScBkupStateArchiveOpJavaData::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateArchiveOpJavaData* self = new(ELeave) CMMCScBkupStateArchiveOpJavaData( aDriver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpJavaData::StateId() const
+ {
+ return KMMCScBkupStateIdArchiveOpJavaData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::NextStateBackupId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpJavaData::NextStateBackupId( TBool /*aPartial*/ ) const
+ {
+ return KMMCScBkupStateIdGetDataOwnerStatuses;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::NextStateRestoreId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpJavaData::NextStateRestoreId( TBool /*aPartial*/ ) const
+ {
+ return KMMCScBkupStateIdArchiveOpPassiveData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::PerformStateInitBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::PerformStateInitBackupL( TBool /*aPartial*/ )
+ {
+ __LOG("CMMCScBkupStateArchiveOpJavaData::PerformStateInitBackupL() - START" );
+ __DEBUG_TESTING_SKIP_BACKUP_JAV_DATA;
+
+ iBackupTransferObjectMidlet = CMMCScBkupWriteDataTransferRequest< TJavaTransferType >::NewL(
+ Driver(),
+ *this,
+ EMMCScBkupOwnerDataTypeJavaData,
+ EJavaTransferDerivedType,
+ EJavaMIDlet
+ );
+
+ iBackupTransferObjectMidletData = CMMCScBkupWriteDataTransferRequest< TJavaTransferType >::NewL(
+ Driver(),
+ *this,
+ EMMCScBkupOwnerDataTypePassiveData,
+ EJavaTransferDerivedType,
+ EJavaMIDletData
+ );
+
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL( TBool /*aPartial*/ )
+ {
+ __LOG("CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL() - START" );
+ __DEBUG_TESTING_SKIP_RESTORE_JAV_DATA;
+
+
+ iRestoreTransferObjectMidlet = CMMCScBkupReadDataTransferRequest< TJavaTransferType >::NewL(
+ Driver(),
+ EMMCScBkupOwnerDataTypeJavaData,
+ EJavaMIDlet
+ );
+
+ iRestoreTransferObjectMidletData = CMMCScBkupReadDataTransferRequest< TJavaTransferType >::NewL(
+ Driver(),
+ EMMCScBkupOwnerDataTypePassiveData,
+ EJavaMIDletData
+ );
+
+ CompleteSelf();
+ __LOG("CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL() - END" );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - START - iCurrentJavaState: %d", iCurrentJavaState );
+
+ switch( iCurrentJavaState )
+ {
+ case EJavaStateIdle:
+ __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - EJavaStateIdle");
+ BackupMidletL();
+ break;
+ case EJavaStateMidlet:
+ __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - EJavaStateMidlet");
+ BackupMidletDataL();
+ break;
+ case EJavaStateMidletData:
+ __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - EJavaStateMidletData");
+ iCurrentJavaState = EJavaStateIdle;
+ CompleteSelf();
+ break;
+ default:
+ break;
+ }
+
+ __LOG2("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - END - iCurrentJavaState: %d, IsActive: %d", iCurrentJavaState, IsActive() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - START - iCurrentJavaState: %d", iCurrentJavaState );
+
+ switch( iCurrentJavaState )
+ {
+ case EJavaStateIdle:
+ __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - EJavaStateIdle");
+ RestoreMidletL();
+ break;
+ case EJavaStateMidlet:
+ __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - EJavaStateMidlet");
+ RestoreMidletDataL();
+ break;
+ case EJavaStateMidletData:
+ __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - EJavaStateMidletData");
+ iCurrentJavaState = EJavaStateIdle;
+ CompleteSelf();
+ break;
+ default:
+ break;
+ }
+
+ __LOG2("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - END - iCurrentJavaState: %d, IsActive: %d", iCurrentJavaState, IsActive() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOG1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup() - error: %d", aError );
+
+ // Reset state and move to next item. Treat the current (badly behaving) item
+ // as completed/processed.
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ if ( iIndexValueCurrent < dataOwners.Count() )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
+ owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeJavaData, ETrue );
+ iCurrentJavaState = EJavaStateIdle;
+
+ __LOGFILE2("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d, SID: 0x%08x - JAVA data skipped for DO", aError, owner.SecureId().iId );
+ }
+
+ CompleteSelf();
+ return ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupRestore()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOGFILE1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
+
+ iCurrentJavaState = EJavaStateIdle;
+ CompleteSelf();
+ return ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousCancellation()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousCancellation()
+ {
+ if (iBackupTransferObjectMidlet)
+ {
+ iBackupTransferObjectMidlet->Cancel();
+ }
+ if (iBackupTransferObjectMidletData)
+ {
+ iBackupTransferObjectMidletData->Cancel();
+ }
+ if (iRestoreTransferObjectMidlet)
+ {
+ iRestoreTransferObjectMidlet->Cancel();
+ }
+ if (iRestoreTransferObjectMidletData)
+ {
+ iRestoreTransferObjectMidletData->Cancel();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::PerformLastRightsBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::PerformLastRightsBackupL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeJavaData );
+ index.StoreL( Driver() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::PerformLastRightsRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::PerformLastRightsRestoreL( TBool /*aPartial*/ )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive )
+ {
+ CMMCScBkupIndexBase& indexBase = aFooter.IndexByType( EMMCScBkupOwnerDataTypeJavaData );
+ CMMCScBkupIndexJavaData& index = static_cast< CMMCScBkupIndexJavaData& >( indexBase );
+ //
+ TJavaTransferType type = EJavaMIDlet;
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( aDataOwner.Owner().Identifier() );
+ //
+ if ( iCurrentJavaState == EJavaStateMidlet )
+ {
+ __LOG4("CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL() - hash: %S, aDrive: %c:, offset: %8d, length: %8d, type: EJavaMIDlet", hash, aDrive + 'A', aInfo.Offset(), aInfo.Length() );
+ type = EJavaMIDlet;
+ }
+ else if ( iCurrentJavaState == EJavaStateMidletData )
+ {
+ __LOG4("CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL() - hash: %S, aDrive: %c:, offset: %8d, length: %8d, type: EJavaMIDletData", hash, aDrive + 'A', aInfo.Offset(), aInfo.Length() );
+ type = EJavaMIDletData;
+ }
+ //
+ index.AddIndexRecordL( aInfo, *hash, aDrive, type );
+ CleanupStack::PopAndDestroy( hash );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::BackupMidletL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::BackupMidletL()
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ const TInt count = dataOwners.Count();
+ //
+ while ( ++iIndexValueCurrent < count )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
+ //
+ if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeJavaData ) == EFalse )
+ {
+#ifdef __MMCSCBKUPLOGGING_ENABLED__
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( owner.Owner().Identifier() );
+ __LOG1("CMMCScBkupStateArchiveOpJavaData::BackupMidletL() - trying to get midlet for hash: %S", hash );
+ CleanupStack::PopAndDestroy( hash );
+#endif
+
+ iBackupTransferObjectMidlet->RequestL( owner,
+ iStatus,
+ Driver().DrvParamsBase().DriveAndOperations() );
+ SetActive();
+ iCurrentJavaState = EJavaStateMidlet;
+
+ break; // while loop
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::BackupMidletDataL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::BackupMidletDataL()
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
+
+ // We only need to request the midlet's passive data if it has a non-zero
+ // size.
+ if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypePassiveData ) == EFalse )
+ {
+ if ( owner.OperationalSize( EMMCScBkupOwnerDataTypePassiveData ) > 0 )
+ {
+#ifdef __MMCSCBKUPLOGGING_ENABLED__
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( owner.Owner().Identifier() );
+ __LOG1("CMMCScBkupStateArchiveOpJavaData::BackupMidletDataL() - trying to get midlet data for hash: %S", hash );
+ CleanupStack::PopAndDestroy( hash );
+#endif
+
+ iBackupTransferObjectMidletData->RequestL( owner,
+ iStatus,
+ Driver().DrvParamsBase().DriveAndOperations() );
+ SetActive();
+ }
+ else
+ {
+ CompleteSelf();
+ }
+ }
+ else
+ {
+ CompleteSelf();
+ }
+
+ iCurrentJavaState = EJavaStateMidletData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::RestoreMidletL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::RestoreMidletL()
+ {
+ CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeJavaData );
+ CMMCScBkupIndexJavaData& index = static_cast< CMMCScBkupIndexJavaData& >( indexBase );
+
+ const TInt count = index.Count();
+ __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - START - %d data owners...", count );
+ //
+ if ( ++iIndexValueCurrent < count )
+ {
+ __LOG2("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - getting java data index record [%03d/%03d]", iIndexValueCurrent, count);
+ const CMMCScBkupIndexJavaDataEntry& entry = index.At( iIndexValueCurrent );
+
+ // Get the associated data owner
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+
+ __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - trying to get data owner info for hash: %S", &entry.Hash() );
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Hash() );
+
+ if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeJavaData ) == EFalse )
+ {
+ // Request all the java data (on all supported drives) for this
+ // particular data owner
+ __LOG3("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - trying to restore JAVA MIDLET for hash: %S [offset: %8d, length: %8d]", &entry.Hash(), entry.MidletInfo().Offset(), entry.MidletInfo().Length() );
+
+ // Build restore entry list (will only contain one entry - the
+ // reader API forces an array interface on us, so let's do ou best
+ // to please it...)
+ const TMMCScBkupArchiveDriveAndVector driveAndVector( entry.Drive(), entry.MidletInfo() );
+ iRestoreEntries.Reset();
+ iRestoreEntries.AppendL( driveAndVector );
+
+ // Start the asynchronous restore op...
+ iRestoreTransferObjectMidlet->RequestL( owner,
+ iStatus,
+ iRestoreEntries );
+ SetActive();
+ }
+ else
+ {
+ CompleteSelf();
+ }
+
+ iCurrentJavaState = EJavaStateMidlet;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL()
+ {
+ CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeJavaData );
+ CMMCScBkupIndexJavaData& index = static_cast< CMMCScBkupIndexJavaData& >( indexBase );
+
+ const TInt count = index.Count();
+ __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - START - %d data owners...", count );
+ //
+ if ( iIndexValueCurrent < count )
+ {
+ __LOG2("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - getting java data index record [%03d/%03d]", iIndexValueCurrent, count);
+ const CMMCScBkupIndexJavaDataEntry& entry = index.At( iIndexValueCurrent );
+
+ if ( entry.HasMidletDataInfo() )
+ {
+ // Get the associated data owner
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+
+ __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - trying to get data owner info for hash: %S", &entry.Hash() );
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Hash() );
+
+ if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypePassiveData ) == EFalse )
+ {
+ // Request all the java data (on all supported drives) for this
+ // particular data owner
+ __LOG3("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - trying to restore JAVA MIDLET DATA for hash: %S [offset: %8d, length: %8d]", &entry.Hash(), entry.MidletDataInfo().Offset(), entry.MidletDataInfo().Length() );
+
+ // Build restore entry list (will only contain one entry - the
+ // reader API forces an array interface on us, so let's do ou best
+ // to please it...)
+ const TMMCScBkupArchiveDriveAndVector driveAndVector( entry.Drive(), entry.MidletDataInfo() );
+ iRestoreEntries.Reset();
+ iRestoreEntries.AppendL( driveAndVector );
+
+ // Start the asynchronous restore op...
+ iRestoreTransferObjectMidletData->RequestL( owner,
+ iStatus,
+ iRestoreEntries );
+ SetActive();
+ }
+ else
+ {
+ CompleteSelf();
+ }
+ }
+ else
+ {
+ CompleteSelf();
+ }
+ }
+ else
+ {
+ CompleteSelf();
+ }
+
+ iCurrentJavaState = EJavaStateMidletData;
+ }
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpPassiveData.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,309 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpPassiveData implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateArchiveOpPassiveData.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMCScBkupSBEUtils.h"
+#include "CMMCScBkupArchive.h"
+#include "CMMCScBkupArchiveFooter.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+#include "CMMCScBkupIndexWithIdentifier.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::CMMCScBkupStateArchiveOpPassiveData()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpPassiveData::CMMCScBkupStateArchiveOpPassiveData( MMMCScBkupDriver& aDriver )
+: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpPassiveData::CMMCScBkupStateArchiveOpPassiveData() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::~CMMCScBkupStateArchiveOpPassiveData()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpPassiveData::~CMMCScBkupStateArchiveOpPassiveData()
+ {
+ Cancel();
+ //
+ delete iBackupTransferObject;
+ delete iRestoreTransferObject;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpPassiveData* CMMCScBkupStateArchiveOpPassiveData::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateArchiveOpPassiveData* self = new(ELeave) CMMCScBkupStateArchiveOpPassiveData( aDriver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpPassiveData::StateId() const
+ {
+ return KMMCScBkupStateIdArchiveOpPassiveData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::NextStateBackupId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpPassiveData::NextStateBackupId( TBool /*aPartial*/ ) const
+ {
+ return KMMCScBkupStateIdArchiveOpDataOwners;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::NextStateRestoreId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpPassiveData::NextStateRestoreId( TBool /*aPartial*/ ) const
+ {
+ return KMMCScBkupStateIdGetDataOwnerStatuses;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::PerformStateInitBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPassiveData::PerformStateInitBackupL( TBool /*aPartial*/ )
+ {
+ __DEBUG_TESTING_SKIP_BACKUP_PAS_DATA;
+
+ iBackupTransferObject = CMMCScBkupWriteDataTransferRequest<TTransferDataType>::NewL(
+ Driver(),
+ *this,
+ EMMCScBkupOwnerDataTypePassiveData,
+ ESIDTransferDerivedType,
+ Driver().DrvParamsBase().PassiveTransferType()
+ );
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::PerformStateInitRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPassiveData::PerformStateInitRestoreL( TBool /*aPartial*/ )
+ {
+ __DEBUG_TESTING_SKIP_RESTORE_PAS_DATA;
+
+ iRestoreTransferObject = CMMCScBkupReadDataTransferRequest< TTransferDataType >::NewL(
+ Driver(),
+ EMMCScBkupOwnerDataTypePassiveData,
+ Driver().DrvParamsBase().PassiveTransferType()
+ );
+
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ const TInt count = dataOwners.Count();
+ //
+ while ( ++iIndexValueCurrent < count )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
+ //
+ if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypePassiveData ) == EFalse )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepBackupL() - trying to backup DO 0x%08x", owner.SecureId().iId );
+
+ // Request all the passive data (on all supported drives) for this
+ // particular data owner
+ __ASSERT_ALWAYS( iBackupTransferObject->IsActive() == EFalse, User::Invariant() );
+ //
+ iBackupTransferObject->RequestL( owner,
+ iStatus,
+ Driver().DrvParamsBase().DriveAndOperations() );
+ SetActive();
+ break; // while loop
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypePassiveData );
+ CMMCScBkupIndexWithIdentifier< TSecureId>& index = static_cast< CMMCScBkupIndexWithIdentifier<TSecureId>& >( indexBase );
+ const TInt count = index.Count();
+ //
+ if ( ++iIndexValueCurrent < count )
+ {
+ const CMMCScBkupIndexEntry<TSecureId>& entry = index.At( iIndexValueCurrent );
+ const RArray<TMMCScBkupArchiveDriveAndVector>& subEntries = entry.Entries();
+
+ // Get the associated data owner
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Identifier() );
+
+ if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypePassiveData ) == EFalse )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepRestoreL() - trying to restore DO 0x%08x", owner.SecureId().iId );
+
+
+ // Request all the registration data (on all supported drives) for this
+ // particular data owner
+ __ASSERT_ALWAYS( iRestoreTransferObject->IsActive() == EFalse, User::Invariant() );
+ //
+ __LOG1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousStateStepRestoreL() - trying to restore PASSIVE DATA for SID: 0x%08x", owner.SecureId().iId );
+ //
+ iRestoreTransferObject->RequestL( owner,
+ iStatus,
+ subEntries );
+ SetActive();
+ }
+ else
+ {
+ CompleteSelf();
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupBackup()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOG1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d", aError );
+
+ // Reset state and move to next item. Treat the current (badly behaving) item
+ // as completed/processed.
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ if ( iIndexValueCurrent < dataOwners.Count() )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
+ owner.SetCompletionStatus( EMMCScBkupOwnerDataTypePassiveData, ETrue );
+
+ __LOGFILE1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupBackup() - **** - PASSIVE data skipped for SID: 0x%08x", owner.SecureId().iId );
+ }
+
+ CompleteSelf();
+ return ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupRestore()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOGFILE1("CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
+
+ CompleteSelf();
+ return ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousCancellation()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPassiveData::PerformAsynchronousCancellation()
+ {
+ if (iBackupTransferObject)
+ {
+ iBackupTransferObject->Cancel();
+ }
+ if (iRestoreTransferObject)
+ {
+ iRestoreTransferObject->Cancel();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::PerformLastRightsBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPassiveData::PerformLastRightsBackupL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType(EMMCScBkupOwnerDataTypePassiveData);
+ index.StoreL(Driver());
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPassiveData::AddIndexRecordL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPassiveData::AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive )
+ {
+ CMMCScBkupIndexBase& indexBase = aFooter.IndexByType( EMMCScBkupOwnerDataTypePassiveData );
+ CMMCScBkupIndexWithIdentifier< TSecureId>& index = static_cast< CMMCScBkupIndexWithIdentifier< TSecureId>& >( indexBase );
+ //
+ index.AddIndexRecordL( aInfo, aDrive, aDataOwner.SecureId() );
+ __LOG3("CMMCScBkupStateArchiveOpPassiveData::AddIndexRecordL() - offset: %6d, length: %6d, secureId: 0x%08x", aInfo.Offset(), aInfo.Length(), aDataOwner.SecureId().iId );
+ }
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpPublicDataFiles.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,442 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpPublicDataFiles implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateArchiveOpPublicDataFiles.h"
+
+// System includes
+#include <e32std.h>
+#include <s32strm.h>
+#include <s32mem.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMCScBkupConfig.h"
+#include "CMMCScBkupArchive.h"
+#include "CMMCScBkupArchiveFooter.h"
+#include "CMMCScBkupIndexPublicDataFiles.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+#include "CMMCScBkupFileInfo.h"
+#include "CMMCScBkupFileListCollection.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+#include "MMCScBkupOperations.h"
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::CMMCScBkupStateArchiveOpPublicDataFiles()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpPublicDataFiles::CMMCScBkupStateArchiveOpPublicDataFiles( MMMCScBkupDriver& aDriver )
+: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpPublicDataFiles::CMMCScBkupStateArchiveOpPublicDataFiles() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpPublicDataFiles* CMMCScBkupStateArchiveOpPublicDataFiles::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateArchiveOpPublicDataFiles* self = new(ELeave) CMMCScBkupStateArchiveOpPublicDataFiles( aDriver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpPublicDataFiles::StateId() const
+ {
+ return KMMCScBkupStateIdArchiveOpPublicDataFiles;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::NextStateBackupId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpPublicDataFiles::NextStateBackupId( TBool /*aPartial*/ ) const
+ {
+ return KMMCScBkupStateIdArchiveOpSystemData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::NextStateRestoreId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpPublicDataFiles::NextStateRestoreId( TBool /*aPartial*/ ) const
+ {
+ return KMMCScBkupStateIdOperationComplete;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::PerformStateInitBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::PerformStateInitBackupL( TBool /*aPartial*/ )
+ {
+ __DEBUG_TESTING_SKIP_BACKUP_PUB_DATA;
+
+ CompleteSelf();
+ SetState( EStateCommonKickOff );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::PerformStateInitRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::PerformStateInitRestoreL( TBool /*aPartial*/ )
+ {
+ __DEBUG_TESTING_SKIP_RESTORE_PUB_DATA;
+
+ CompleteSelf();
+ SetState( EStateCommonKickOff );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousStateStepBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
+ {
+ const TState justFinishedExecutingState = State();
+ //
+ switch( justFinishedExecutingState )
+ {
+ case EStateCommonKickOff:
+ CompressingAndWritingFileL();
+ break;
+ case EStateCommonProcessingFile:
+ AddIndexRecordL();
+ break;
+ case EStateBackupAddIndexRecord:
+ SetState( EStateCommonKickOff );
+ CompleteSelf();
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousStateStepRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
+ {
+ const TState justFinishedExecutingState = State();
+ //
+ switch( justFinishedExecutingState )
+ {
+ case EStateCommonKickOff:
+ DecompressingAndWritingFileL();
+ break;
+ case EStateCommonProcessingFile:
+ RestoreFileAttributesL();
+ break;
+ case EStateRestoreResetAttributes:
+ SetState( EStateCommonKickOff );
+ CompleteSelf();
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupBackup()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOG1("CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupBackup() - **** - error: %d", aError );
+ TBool continueProcessing = ETrue;
+
+ // Reset state and move to next item. Treat the current (badly behaving) item
+ // as completed/processed.
+ const CMMCScBkupFileListCollection& fileList = Driver().DrvFileList();
+ if ( iIndexValueCurrent < fileList.Count() )
+ {
+ const CMMCScBkupFileInfo& fileInfo = fileList.Entry(iIndexValueCurrent);
+ (void) fileInfo;
+
+ __LOGFILE2("CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupBackup() - **** - error: %d, file: %S - public data skipped", aError, &fileInfo.FileName());
+
+ // Ensures that asynchronous state step is called again..
+ CompleteSelf();
+ SetState( EStateCommonKickOff );
+ }
+
+ return continueProcessing;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupRestore()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOG1("CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
+ TBool continueProcessing = ETrue;
+
+ CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
+ CMMCScBkupIndexPublicDataFiles& index = static_cast<CMMCScBkupIndexPublicDataFiles&>( footer.IndexByType( EMMCScBkupOwnerDataTypePublicData ) );
+ const TInt count = index.Count();
+ //
+ if ( iIndexValueCurrent < count )
+ {
+ // Get the entry to restore
+ TMMCScBkupArchiveVector entryInfo;
+ const CMMCScBkupFileInfo& fileInfo = index.At( iIndexValueCurrent, entryInfo );
+ (void) fileInfo;
+
+ __LOGFILE2("CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousErrorCleanupRestore() - **** - error: %d, file: %S - public data skipped", aError, &fileInfo.FileName());
+
+ // Try to restore the next public file
+ //SetState( EStateCommonKickOff );
+ SetState( EStateCommonProcessingFile );
+ CompleteSelf();
+ }
+
+ return continueProcessing;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousCancellation()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::PerformAsynchronousCancellation()
+ {
+ switch( State() )
+ {
+ case EStateCommonProcessingFile:
+ // Asynchronous request issued to ADI.
+ Driver().DrvADI().ADIAsynchronousCancel();
+ break;
+
+ case EStateCommonKickOff:
+ case EStateBackupAddIndexRecord:
+ case EStateRestoreResetAttributes:
+ // Other states complete this objects own request status => no action
+ // needed.
+ break;
+
+ default:
+ case EStateCommonIdle:
+ ASSERT( EFalse );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::PerformLastRightsBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::PerformLastRightsBackupL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypePublicData );
+ index.StoreL( Driver() );
+
+ Driver().DrvADI().ADIResetResources(EMMCScBkupOperationTypeFullBackup);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::PerformLastRightsRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::PerformLastRightsRestoreL( TBool /*aPartial*/ )
+ {
+ Driver().DrvADI().ADIResetResources(EMMCScBkupOperationTypeFullRestore);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::CompressingAndWritingFileL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::CompressingAndWritingFileL()
+ {
+ const CMMCScBkupFileListCollection& fileList = Driver().DrvFileList();
+ const TInt count = fileList.Count();
+ //
+ if ( ++iIndexValueCurrent < count )
+ {
+ const CMMCScBkupFileInfo& fileInfo = fileList.Entry(iIndexValueCurrent);
+
+ __LOG1("CMMCScBkupStateArchiveOpPublicDataFiles::CompressingAndWritingFileL() - BACKUP - compressing file: %S", &fileInfo.FileName());
+
+ // Compress the file & externalise it to the archive
+ Driver().DrvADI().ADIWriteFileL( fileInfo.FileName(), iStatus );
+
+ // Indicate the state we are in
+ SetActive();
+ SetState( EStateCommonProcessingFile );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::DecompressingAndWritingFileL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::DecompressingAndWritingFileL()
+ {
+ CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
+ CMMCScBkupIndexPublicDataFiles& index = static_cast<CMMCScBkupIndexPublicDataFiles&>( footer.IndexByType( EMMCScBkupOwnerDataTypePublicData ) );
+ const TInt count = index.Count();
+ //
+ if ( ++iIndexValueCurrent < count )
+ {
+ // Get the entry to restore
+ TMMCScBkupArchiveVector entryInfo;
+ const CMMCScBkupFileInfo& fileInfo = index.At( iIndexValueCurrent, entryInfo );
+
+ __LOG3("CMMCScBkupStateArchiveOpPublicDataFiles::DecompressingAndWritingFileL() - RESTORE - decompressing file: %S, offset: %8d, length: %8d", &fileInfo.FileName(), entryInfo.Offset(), entryInfo.Length());
+
+ // Restore it!
+ Driver().DrvADI().ADIReadFileL( fileInfo.FileName(), entryInfo, iStatus );
+
+ // Indicate the state we are in
+ SetActive();
+ SetState( EStateCommonProcessingFile );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::AddIndexRecordL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::AddIndexRecordL()
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
+ CMMCScBkupIndexPublicDataFiles& index = static_cast<CMMCScBkupIndexPublicDataFiles&>(footer.IndexByType(EMMCScBkupOwnerDataTypePublicData));
+ const CMMCScBkupFileListCollection& fileList = Driver().DrvFileList();
+ const CMMCScBkupFileInfo& fileInfo = fileList.Entry(iIndexValueCurrent);
+
+ // Save the offset of the data owner
+ const TMMCScBkupArchiveVector& info = Driver().DrvADI().ADICurrentArchiveVectorInfo();
+ index.AddIndexRecordL( info, fileInfo );
+
+ // And update the file info so that we can know how much compressed
+ // data must be read during restore. This allows us to report accurate
+ // progress info. See CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL()
+ // for the point when the public data size is zeroed.
+
+
+
+ __LOG3("CMMCScBkupStateArchiveOpPublicDataFiles::AddIndexRecordL() - offset: %6d, length: %6d, file: %S", info.Offset(), info.Length(), &fileInfo.FileName());
+
+ // Indicate the state we are in
+ SetState( EStateBackupAddIndexRecord );
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpPublicDataFiles::RestoreFileAttributesL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpPublicDataFiles::RestoreFileAttributesL()
+ {
+ RFs& fsSession = Driver().DrvADI().ADIFsSession();
+ CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
+ CMMCScBkupIndexPublicDataFiles& index = static_cast<CMMCScBkupIndexPublicDataFiles&>( footer.IndexByType( EMMCScBkupOwnerDataTypePublicData ) );
+
+ // Get the entry who's attributes need restoring
+ TMMCScBkupArchiveVector entryInfo;
+ const CMMCScBkupFileInfo& fileInfo = index.At( iIndexValueCurrent, entryInfo );
+
+ // If file is in Photo Album Thumbnail folder
+ // or file in videocenter folder and its subfolders
+ if ( fileInfo.FileName().MatchF( KMMCScBkupMediaGalleryThumbnailFolder ) != KErrNotFound )
+ {
+ // Get folder path length
+ const TChar backslash('\\');
+ const TInt pathlength = fileInfo.FileName().LocateReverseF( backslash ) + 1;
+
+ // Set hidden attribute for Thumbnail folder.
+ // If folder does not exist, create it
+ fsSession.SetAtt( fileInfo.FileName().Left( pathlength ), KEntryAttHidden, KEntryAttNormal );
+ }
+
+ if ( fileInfo.FileName().MatchF( KMMCScBkupVideoCenterFolder ) != KErrNotFound)
+ {
+ // Get folder path length
+ const TChar backslash('\\');
+ const TInt pathlength = fileInfo.FileName().LocateReverseF( backslash ) + 1;
+
+ // Set hidden attribute for the video center's sub folder.
+ // If foler does not exist, create it
+ fsSession.SetAtt( fileInfo.FileName().Left( pathlength ), KEntryAttHidden, KEntryAttNormal );
+
+ //Manually set the videocenter main folder to be hidden
+ fsSession.SetAtt( KMMCScBkupVideoCenterFolderPath, KEntryAttHidden, KEntryAttNormal );
+ }
+ // Set the original attributes, clear the others
+ const TInt error = fsSession.SetEntry( fileInfo.FileName(),
+ fileInfo.DateTime(),
+ fileInfo.Attributes(),
+ !fileInfo.Attributes() );
+
+ (void) error;
+
+
+ // Indicate the state we are in
+ SetState( EStateRestoreResetAttributes );
+ CompleteSelf();
+ }
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpSystemData.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,367 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpSystemData implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateArchiveOpSystemData.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "MMCScBkupSBEUtils.h"
+#include "CMMCScBkupArchive.h"
+#include "CMMCScBkupArchiveFooter.h"
+#include "CMMCScBkupIndexWithIdentifier.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::CMMCScBkupStateArchiveOpSystemData()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpSystemData::CMMCScBkupStateArchiveOpSystemData( MMMCScBkupDriver& aDriver )
+: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
+ {
+ __LOG1("CMMCScBkupStateArchiveOpSystemData::CMMCScBkupStateArchiveOpSystemData() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::~CMMCScBkupStateArchiveOpSystemData()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpSystemData::~CMMCScBkupStateArchiveOpSystemData()
+ {
+ Cancel();
+ //
+ delete iBackupTransferObject;
+ delete iRestoreTransferObject;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateArchiveOpSystemData* CMMCScBkupStateArchiveOpSystemData::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateArchiveOpSystemData* self = new(ELeave) CMMCScBkupStateArchiveOpSystemData( aDriver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpSystemData::StateId() const
+ {
+ return KMMCScBkupStateIdArchiveOpSystemData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::NextStateBackupId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpSystemData::NextStateBackupId( TBool /*aPartial*/ ) const
+ {
+ return KMMCScBkupStateIdArchiveOpJavaData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::NextStateRestoreId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateArchiveOpSystemData::NextStateRestoreId( TBool /*aPartial*/ ) const
+ {
+ return KMMCScBkupStateIdArchiveOpJavaData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::PerformStateInitBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpSystemData::PerformStateInitBackupL( TBool /*aPartial*/ )
+ {
+ __DEBUG_TESTING_SKIP_BACKUP_SYS_DATA;
+
+ iBackupTransferObject = CMMCScBkupWriteDataTransferRequest< TPackageDataType >::NewL(
+ Driver(),
+ *this,
+ EMMCScBkupOwnerDataTypeSystemData,
+ EPackageTransferDerivedType,
+ ESystemData
+ );
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL( TBool /*aPartial*/ )
+ {
+ __LOG("CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL() - START" );
+ __DEBUG_TESTING_SKIP_RESTORE_SYS_DATA;
+
+ iRestoreTransferObject = CMMCScBkupReadDataTransferRequest< TPackageDataType >::NewL(
+ Driver(),
+ EMMCScBkupOwnerDataTypeSystemData,
+ ESystemData
+ );
+
+ CompleteSelf();
+ __LOG("CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL() - END" );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ const TInt count = dataOwners.Count();
+ //
+ while ( ++iIndexValueCurrent < count )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
+ //
+ if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeSystemData ) == EFalse )
+ {
+ // Request all the system data (on all supported drives) for this
+ // particular data owner
+ __ASSERT_ALWAYS( iBackupTransferObject->IsActive() == EFalse, User::Invariant() );
+ iBackupTransferObject->RequestL( owner,
+ iStatus,
+ Driver().DrvParamsBase().DriveAndOperations() );
+ SetActive();
+ break; // while loop
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeSystemData );
+ CMMCScBkupIndexWithIdentifier< TInt32 >& index = static_cast< CMMCScBkupIndexWithIdentifier< TInt32 >& >( indexBase );
+ const TInt count = index.Count();
+ __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - START - %d data owners...", count );
+ //
+ if ( ++iIndexValueCurrent < count )
+ {
+ __LOG2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - getting system data index record [%03d/%03d]", iIndexValueCurrent + 1, count);
+ const CMMCScBkupIndexEntry< TInt32 >& entry = index.At( iIndexValueCurrent );
+ iSecureId = entry.Identifier();
+
+ __LOG("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - getting sub-entries for index record...");
+ const RArray< TMMCScBkupArchiveDriveAndVector >& subEntries = entry.Entries();
+ __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - got %d sub-entries for index record", subEntries.Count());
+#ifdef __MMCSCBKUPLOGGING_ENABLED__
+ for(TInt i=0; i<subEntries.Count(); i++)
+ {
+ const TMMCScBkupArchiveDriveAndVector& item = subEntries[i];
+ __LOG4("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - subentry[%2d] = %c:\\ [Offset: %8d, Length: %d] ", i, item.iDrive + 'A', item.iVector.Offset(), item.iVector.Length() );
+ }
+#endif
+
+ // Get the associated data owner
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+
+ __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - trying to supply system data for SID: 0x%08x", entry.Identifier() );
+
+ // The owner in question should be a package type object.
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Identifier() );
+
+ if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeSystemData ) == EFalse )
+ {
+ // The owner in question should be a package type object.
+ const TSBDerivedType ownersDerivedType = owner.Owner().Identifier().DerivedTypeL();
+ __ASSERT_ALWAYS( ownersDerivedType == EPackageDerivedType || ownersDerivedType == EPackageTransferDerivedType, User::Invariant() );
+
+#ifdef __MMCSCBKUPLOGGING_ENABLED__
+ const TUid packageUid = MMCScBkupSBEUtils::PackageIdFromGenericL( owner.Owner().Identifier() );
+ __LOG2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - trying to restore SYSTEM DATA for SID: 0x%08x, packageUID: 0x%08x", entry.Identifier(), packageUid.iUid );
+#endif
+
+ // Safety check
+ __ASSERT_ALWAYS( iRestoreTransferObject->IsActive() == EFalse, User::Invariant() );
+
+ // Request all the system data (on all supported drives) for this
+ // particular data owner
+ iRestoreTransferObject->RequestL( owner,
+ iStatus,
+ subEntries );
+ SetActive();
+ }
+ else
+ {
+ CompleteSelf();
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup() - error: %d", aError );
+
+ // Reset state and move to next item. Treat the current (badly behaving) item
+ // as completed/processed.
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ if ( iIndexValueCurrent < dataOwners.Count() )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
+ owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeSystemData, ETrue );
+
+ __LOGFILE2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d, SID: 0x%08x - system data skipped for DO", aError, owner.SecureId().iId );
+ }
+
+ CompleteSelf();
+ return ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
+ {
+ (void) aError;
+ __LOGFILE1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
+
+ // If system data restore phase returns "not supported", let's treat it as
+ // such an error, that other data types for this data owner are not
+ // allowed to restore either.
+
+ if( aError == KErrNotSupported || aError == KErrAlreadyExists )
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ CMMCScBkupDataOwnerInfo* owner = NULL;
+ TRAPD( err, owner = &dataOwners.OwnerL( iSecureId ) );
+ if( err == KErrNone && owner )
+ {
+ owner->SetCompletionStatus( EMMCScBkupOwnerDataTypeJavaData, ETrue );
+ owner->SetCompletionStatus( EMMCScBkupOwnerDataTypePublicData, ETrue );
+ owner->SetCompletionStatus( EMMCScBkupOwnerDataTypeSystemData, ETrue );
+ owner->SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
+ owner->SetCompletionStatus( EMMCScBkupOwnerDataTypePassiveData, ETrue );
+
+ __LOGFILE2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d, SID: 0x%08x - all data types skipped for DO", aError, owner->SecureId().iId );
+ }
+ }
+
+ CompleteSelf();
+ return ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousCancellation()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousCancellation()
+ {
+ if (iBackupTransferObject)
+ {
+ iBackupTransferObject->Cancel();
+ }
+ if (iRestoreTransferObject)
+ {
+ iRestoreTransferObject->Cancel();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::PerformLastRightsBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpSystemData::PerformLastRightsBackupL( TBool /*aPartial*/ )
+ {
+ CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeSystemData );
+ index.StoreL( Driver() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::PerformLastRightsRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpSystemData::PerformLastRightsRestoreL( TBool /*aPartial*/ )
+ {
+ Driver().DrvSecureBackupClient().AllSystemFilesRestored();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateArchiveOpSystemData::AddIndexRecordL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateArchiveOpSystemData::AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive )
+ {
+ CMMCScBkupIndexBase& indexBase = aFooter.IndexByType( EMMCScBkupOwnerDataTypeSystemData );
+ CMMCScBkupIndexWithIdentifier< TInt32 >& index = static_cast< CMMCScBkupIndexWithIdentifier< TInt32 >& >( indexBase );
+ index.AddIndexRecordL( aInfo, aDrive, aDataOwner.SecureId().iId );
+ }
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateFactory.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,332 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateFactory implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateFactory.h"
+
+// System includes
+#include <e32err.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupStateGetDataOwners.h"
+#include "CMMCScBkupStateSetPhoneMode.h"
+#include "CMMCScBkupStateRequestSizeOfBackupData.h"
+#include "CMMCScBkupStateRequestListOfPublicFiles.h"
+#include "CMMCScBkupStateGetDataOwnerStatuses.h"
+#include "CMMCScBkupStateNotifyAllSnapshotsSupplied.h"
+//
+#include "CMMCScBkupStateArchiveOpSystemData.h"
+#include "CMMCScBkupStateArchiveOpDataOwners.h"
+#include "CMMCScBkupStateArchiveOpPublicDataFiles.h"
+#include "CMMCScBkupStateArchiveOpActiveData.h"
+#include "CMMCScBkupStateArchiveOpJavaData.h"
+#include "CMMCScBkupStateArchiveOpPassiveData.h"
+#include "CMMCScBkupStateArchiveOpArchiveHeader.h"
+#include "CMMCScBkupStateArchiveOpArchiveFooter.h"
+#include "CMMCScBkupStateValidateDiskSpace.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateFactory::CMMCScBkupStateFactory()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateFactory::CMMCScBkupStateFactory()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateFactory::FactoryByOperationTypeLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateFactory* CMMCScBkupStateFactory::FactoryByOperationTypeLC( TMMCScBkupOperationType aOperationType )
+ {
+ CMMCScBkupStateFactory* factory = NULL;
+ //
+ switch(aOperationType)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ factory = CMMCScBkupStateFactoryBackup::NewL();
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ factory = CMMCScBkupStateFactoryRestore::NewL();
+ break;
+ case EMMCScBkupOperationTypePartialBackup:
+ case EMMCScBkupOperationTypePartialRestore:
+ default:
+ __ASSERT_ALWAYS(EFalse, User::Invariant());
+ break;
+ }
+ //
+ CleanupStack::PushL(factory);
+ return factory;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateFactoryBackup::CMMCScBkupStateFactoryBackup()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateFactoryBackup::CMMCScBkupStateFactoryBackup()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateFactoryBackup::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateFactoryBackup* CMMCScBkupStateFactoryBackup::NewL()
+ {
+ CMMCScBkupStateFactoryBackup* self = new(ELeave) CMMCScBkupStateFactoryBackup();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateFactoryBackup::GetStateLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupState* CMMCScBkupStateFactoryBackup::GetStateLC( TMMCScBkupStateId aRequiredType, MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupState* state = NULL;
+ //
+ switch(aRequiredType.iUid)
+ {
+ case KMMCScBkupStateIdValueArchiveOpArchiveHeader:
+ state = CMMCScBkupStateArchiveOpArchiveHeader::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueGetDataOwners:
+ state = CMMCScBkupStateGetDataOwners::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueSetPhoneMode:
+ state = CMMCScBkupStateSetPhoneMode::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueNotifyAllSnapshotsSupplied:
+ state = CMMCScBkupStateNotifyAllSnapshotsSupplied::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueRequestSizeOfBackupData:
+ state = CMMCScBkupStateRequestSizeOfBackupData::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpDataOwners:
+ state = CMMCScBkupStateArchiveOpDataOwners::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueRequestListOfPublicFiles:
+ state = CMMCScBkupStateRequestListOfPublicFiles::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpPublicDataFiles:
+ state = CMMCScBkupStateArchiveOpPublicDataFiles::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpSystemData:
+ state = CMMCScBkupStateArchiveOpSystemData::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpJavaData:
+ state = CMMCScBkupStateArchiveOpJavaData::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueGetDataOwnerStatuses:
+ state = CMMCScBkupStateGetDataOwnerStatuses::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpActiveData:
+ state = CMMCScBkupStateArchiveOpActiveData::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpPassiveData:
+ state = CMMCScBkupStateArchiveOpPassiveData::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpArchiveFooter:
+ state = CMMCScBkupStateArchiveOpArchiveFooter::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueValidateDiskSpace:
+ state = CMMCScBkupStateValidateDiskSpace::NewL( aDriver );
+ break;
+ default:
+ case KMMCScBkupStateIdValueSupplyDataSnapshots:
+ ASSERT( EFalse );
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ //
+ CleanupStack::PushL(state);
+ return state;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateFactoryRestore::CMMCScBkupStateFactoryRestore()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateFactoryRestore::CMMCScBkupStateFactoryRestore()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateFactoryRestore::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateFactoryRestore* CMMCScBkupStateFactoryRestore::NewL()
+ {
+ CMMCScBkupStateFactoryRestore* self = new(ELeave) CMMCScBkupStateFactoryRestore();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateFactoryRestore::GetStateLC()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupState* CMMCScBkupStateFactoryRestore::GetStateLC( TMMCScBkupStateId aRequiredType, MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupState* state = NULL;
+ //
+ switch(aRequiredType.iUid)
+ {
+ case KMMCScBkupStateIdValueArchiveOpArchiveHeader:
+ state = CMMCScBkupStateArchiveOpArchiveHeader::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpArchiveFooter:
+ state = CMMCScBkupStateArchiveOpArchiveFooter::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpDataOwners:
+ state = CMMCScBkupStateArchiveOpDataOwners::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueSetPhoneMode:
+ state = CMMCScBkupStateSetPhoneMode::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpSystemData:
+ state = CMMCScBkupStateArchiveOpSystemData::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueNotifyAllSnapshotsSupplied:
+ state = CMMCScBkupStateNotifyAllSnapshotsSupplied::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpJavaData:
+ state = CMMCScBkupStateArchiveOpJavaData::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpPassiveData:
+ state = CMMCScBkupStateArchiveOpPassiveData::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueGetDataOwnerStatuses:
+ state = CMMCScBkupStateGetDataOwnerStatuses::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpActiveData:
+ state = CMMCScBkupStateArchiveOpActiveData::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueArchiveOpPublicDataFiles:
+ state = CMMCScBkupStateArchiveOpPublicDataFiles::NewL( aDriver );
+ break;
+ case KMMCScBkupStateIdValueValidateDiskSpace:
+ state = CMMCScBkupStateValidateDiskSpace::NewL( aDriver );
+ break;
+ default:
+ ASSERT( EFalse );
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ //
+ CleanupStack::PushL(state);
+ return state;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateGetDataOwnerStatuses.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,194 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateGetDataOwnerStatuses implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateGetDataOwnerStatuses.h"
+
+// System includes
+#include <e32std.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwnerStatuses::CMMCScBkupStateGetDataOwnerStatuses()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateGetDataOwnerStatuses::CMMCScBkupStateGetDataOwnerStatuses( MMMCScBkupDriver& aDriver )
+: CMMCScBkupState( aDriver )
+ {
+ __LOG1("CMMCScBkupStateGetDataOwnerStatuses::CMMCScBkupStateGetDataOwnerStatuses() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwnerStatuses::~CMMCScBkupStateGetDataOwnerStatuses()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateGetDataOwnerStatuses::~CMMCScBkupStateGetDataOwnerStatuses()
+ {
+ Cancel();
+ //
+ iStatusArray.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwnerStatuses::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateGetDataOwnerStatuses* CMMCScBkupStateGetDataOwnerStatuses::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateGetDataOwnerStatuses* self = new(ELeave) CMMCScBkupStateGetDataOwnerStatuses( aDriver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwnerStatuses::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateGetDataOwnerStatuses::StateId() const
+ {
+ return KMMCScBkupStateIdGetDataOwnerStatuses;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwnerStatuses::NextStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateGetDataOwnerStatuses::NextStateId() const
+ {
+ return KMMCScBkupStateIdArchiveOpActiveData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwnerStatuses::PerformStateInitL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateGetDataOwnerStatuses::PerformStateInitL()
+ {
+ SetState( EPrearingQuery );
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwnerStatuses::PerformAsynchronousStateStepL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateGetDataOwnerStatuses::PerformAsynchronousStateStepL()
+ {
+ switch( State() )
+ {
+ case EPrearingQuery:
+ PrepareQueryL();
+ break;
+ case EGettingStatus:
+ Driver().DrvSecureBackupClient().SIDStatusL( iStatusArray );
+ SetState( EProcessingResults );
+ CompleteSelf();
+ break;
+ case EProcessingResults:
+ ProcessStatusResultsL();
+ break;
+ default:
+ ASSERT( EFalse );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwnerStatuses::PrepareQueryL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateGetDataOwnerStatuses::PrepareQueryL()
+ {
+ const TDataOwnerStatus KMMCScBkupDefaultOwnerStatus = EUnset;
+ const TInt KMMCScBkupDefaultOwnerStatusError = 0;
+
+ // Build an array of all of the active data owners that we require
+ // the statuses for.
+ CMMCScBkupDataOwnerCollection& ownerCollection = Driver().DrvDataOwners();
+ const TInt count = ownerCollection.Count();
+ for(TInt i=0; i<count; i++)
+ {
+ CMMCScBkupDataOwnerInfo& owner = ownerCollection.Owner(i);
+ //
+ if (owner.Owner().CommonSettings() & EActiveBUR)
+ {
+ const TDataOwnerAndStatus ownerStatus(
+ owner.SecureId(),
+ KMMCScBkupDefaultOwnerStatus,
+ KMMCScBkupDefaultOwnerStatusError);
+ iStatusArray.AppendL( ownerStatus );
+ __LOG1("CMMCScBkupStateGetDataOwnerStatuses::PrepareQueryL() - DO 0x%08x *is* active", owner.SecureId().iId );
+ }
+ else
+ {
+ __LOG1("CMMCScBkupStateGetDataOwnerStatuses::PrepareQueryL() - DO 0x%08x is not active", owner.SecureId().iId );
+ }
+ }
+
+ SetState( EGettingStatus );
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwnerStatuses::ProcessStatusResultsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateGetDataOwnerStatuses::ProcessStatusResultsL()
+ {
+ CMMCScBkupDataOwnerCollection& ownerCollection = Driver().DrvDataOwners();
+ const TInt count = iStatusArray.Count();
+ __LOG1("CMMCScBkupStateGetDataOwnerStatuses::ProcessStatusResultsL() - received %d entries from SBE...", count );
+ for(TInt i=0; i<count; i++)
+ {
+ const TDataOwnerAndStatus& ownerStatus = iStatusArray[i];
+ __LOG4("CMMCScBkupStateGetDataOwnerStatuses::ProcessStatusResultsL() - ownerStatus[%3d] sid: 0x%08x, status: %d, err: %d",
+ i, ownerStatus.iSID.iId, ownerStatus.iStatus, ownerStatus.iDataOwnerError );
+ //
+ CMMCScBkupDataOwnerInfo* owner = NULL;
+ TRAPD(err, owner = &ownerCollection.OwnerL( ownerStatus.iSID ));
+ if (err == KErrNone && owner)
+ {
+ owner->SetStatus( ownerStatus.iStatus );
+ }
+ }
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateGetDataOwners.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,206 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateGetDataOwners implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateGetDataOwners.h"
+
+#include <bldvariant.hrh>
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+#include "MMCScBkupSBEUtils.h"
+
+// Constants
+const TInt KMMCScBkupDataOwnerGranularity = 20;
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwners::CMMCScBkupStateGetDataOwners()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateGetDataOwners::CMMCScBkupStateGetDataOwners( MMMCScBkupDriver& aDriver )
+: CMMCScBkupState( aDriver )
+ {
+ __LOG1("CMMCScBkupStateGetDataOwners::CMMCScBkupStateGetDataOwners() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwners::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateGetDataOwners* CMMCScBkupStateGetDataOwners::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateGetDataOwners* self = new(ELeave) CMMCScBkupStateGetDataOwners( aDriver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwners::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateGetDataOwners::StateId() const
+ {
+ return KMMCScBkupStateIdGetDataOwners;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwners::NextStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateGetDataOwners::NextStateId() const
+ {
+ // This is the same for backup & restore
+ return KMMCScBkupStateIdSetPhoneMode;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwners::PerformStateInitL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateGetDataOwners::PerformStateInitL()
+ {
+ // Query asynchronously
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL()
+ {
+ RMMCScBkupPointerArray<CDataOwnerInfo> dataOwners(KMMCScBkupDataOwnerGranularity);
+ CleanupClosePushL( dataOwners );
+
+ // Get data owner listing from secure backup engine
+ Driver().DrvSecureBackupClient().ListOfDataOwnersL(dataOwners);
+
+ // Inform driver of result
+#ifdef RD_FILE_MANAGER_BACKUP
+ RPointerArray<CMMCScBkupDataOwnerCollection>& dataOwnerLists = Driver().DrvDataOwnersAll();
+ TInt count = dataOwners.Count();
+
+ // Construct an info array to get introduced for every category
+ for(TInt i = count-1; i >= 0; i--)
+ {
+ // Ownership is immediately transferred to the backup owner info object
+ // so we should remove it from the array prior to passing into NewLC
+ conn::CDataOwnerInfo* sbDataOwner = dataOwners[i];
+
+ dataOwners.Remove( i ); // Ensures it won't be deleted twice
+
+ const TSBDerivedType type = sbDataOwner->Identifier().DerivedTypeL();
+ if ( type == EJavaDerivedType || type == EJavaTransferDerivedType )
+ {
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( sbDataOwner->Identifier() );
+ __LOG1("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - Assigning java owner with hash %S for categories",
+ hash );
+ CleanupStack::PopAndDestroy( hash );
+ }
+ else
+ {
+ __LOG1("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - Assigning data owner 0x%08x for categories",
+ MMCScBkupSBEUtils::SecureIdFromGenericL( sbDataOwner->Identifier() ).iId );
+ }
+
+ // We have to create copy of original data owner for each category, so we have to externalize it
+ RPointerArray<CDataOwnerInfo> sbDataOwnerCopies(dataOwnerLists.Count());
+ CleanupClosePushL( sbDataOwnerCopies );
+ HBufC8* dataOwner = sbDataOwner->ExternaliseL();
+ CleanupStack::PushL( dataOwner );
+ // Delete original data owner instance
+ delete sbDataOwner;
+
+ // Create copies for each category (even if they do not eventually end up to those lists)
+ for(TInt j = 0; j < dataOwnerLists.Count(); j++)
+ {
+ conn::CDataOwnerInfo* sbDataOwnerCopy = conn::CDataOwnerInfo::NewL(*dataOwner);
+ CleanupStack::PushL( sbDataOwnerCopy );
+ sbDataOwnerCopies.AppendL(sbDataOwnerCopy);
+ CleanupStack::Pop( sbDataOwnerCopy );
+ }
+ CleanupStack::PopAndDestroy( dataOwner );
+
+ // Loop through all lists and assign copied data owners there
+ for(TInt j = 0; j < dataOwnerLists.Count(); j++)
+ {
+ // Again we have to create instances for each category,
+ // because each has to have own copy of data owner
+ CMMCScBkupDataOwnerInfo* info = CMMCScBkupDataOwnerInfo::NewLC( sbDataOwnerCopies[j] );
+
+ if(dataOwnerLists[j]->AssignL( *info ))
+ {
+ CleanupStack::Pop( info );
+ }
+ else
+ {
+ CleanupStack::PopAndDestroy( info );
+ }
+ }
+
+ CleanupStack::PopAndDestroy( &sbDataOwnerCopies );
+ }
+
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ __LOG("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - Data owners per categories:");
+
+ for(TInt i = 0; i < dataOwnerLists.Count(); i++)
+ {
+ __LOG2("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - Category 0x%x contains %d data owners",
+ dataOwnerLists[i]->Category().iFlags, dataOwnerLists[i]->Count() );
+
+ for(TInt j = 0; j < dataOwnerLists[i]->Count(); j++)
+ {
+ CMMCScBkupDataOwnerInfo* entry = &dataOwnerLists[i]->Owner(j);
+
+ const TSBDerivedType type = entry->Owner().Identifier().DerivedTypeL();
+ if ( type == EJavaDerivedType || type == EJavaTransferDerivedType )
+ {
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( entry->Owner().Identifier() );
+ __LOG1("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - java data owner with hash %S",
+ hash );
+ CleanupStack::PopAndDestroy( hash );
+ }
+ else
+ {
+ __LOG1("CMMCScBkupStateGetDataOwners::PerformAsynchronousStateStepL() - data owner 0x%08x",
+ MMCScBkupSBEUtils::SecureIdFromGenericL( entry->Owner().Identifier() ).iId );
+ }
+ }
+ }
+#endif
+
+#else // RD_FILE_MANAGER_BACKUP
+ Driver().DrvDataOwners().AssignL( dataOwners );
+#endif // RD_FILE_MANAGER_BACKUP
+
+ CleanupStack::PopAndDestroy( &dataOwners );
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateNotifyAllSnapshotsSupplied.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,109 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateNotifyAllSnapshotsSupplied implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateNotifyAllSnapshotsSupplied.h"
+
+// System includes
+#include <e32std.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateNotifyAllSnapshotsSupplied::CMMCScBkupStateNotifyAllSnapshotsSupplied()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateNotifyAllSnapshotsSupplied::CMMCScBkupStateNotifyAllSnapshotsSupplied( MMMCScBkupDriver& aDriver )
+: CMMCScBkupState( aDriver )
+ {
+ __LOG1("CMMCScBkupStateNotifyAllSnapshotsSupplied::CMMCScBkupStateNotifyAllSnapshotsSupplied() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateNotifyAllSnapshotsSupplied::NewL()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateNotifyAllSnapshotsSupplied* CMMCScBkupStateNotifyAllSnapshotsSupplied::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateNotifyAllSnapshotsSupplied* self = new(ELeave) CMMCScBkupStateNotifyAllSnapshotsSupplied( aDriver);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateNotifyAllSnapshotsSupplied::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateNotifyAllSnapshotsSupplied::StateId() const
+ {
+ return KMMCScBkupStateIdNotifyAllSnapshotsSupplied;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateNotifyAllSnapshotsSupplied::NextStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateNotifyAllSnapshotsSupplied::NextStateId() const
+ {
+ TMMCScBkupStateId nextState = KMMCScBkupStateIdRequestSizeOfBackupData;
+ //
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ nextState = KMMCScBkupStateIdRequestSizeOfBackupData;
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ nextState = KMMCScBkupStateIdArchiveOpSystemData;
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ //
+ return nextState;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateNotifyAllSnapshotsSupplied::PerformStateInitL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateNotifyAllSnapshotsSupplied::PerformStateInitL()
+ {
+ Driver().DrvSecureBackupClient().AllSnapshotsSuppliedL();
+ }
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateOpAware.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,275 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateOpAware implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateOpAware.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::CMMCScBkupStateOpAware()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateOpAware::CMMCScBkupStateOpAware( MMMCScBkupDriver& aDriver, TInt aPriority )
+: CMMCScBkupState( aDriver, aPriority )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::NextStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateOpAware::NextStateId() const
+ {
+ TMMCScBkupStateId state = KMMCScBkupStateIdOperationComplete;
+ //
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ case EMMCScBkupOperationTypePartialBackup:
+ state = NextStateBackupId( type == EMMCScBkupOperationTypePartialBackup );
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ case EMMCScBkupOperationTypePartialRestore:
+ state = NextStateRestoreId( type == EMMCScBkupOperationTypePartialRestore );
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ //
+ return state;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformAsynchronousStateStepBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateOpAware::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformAsynchronousStateStepRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateOpAware::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformAsynchronousCancellationBackup()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateOpAware::PerformAsynchronousCancellationBackup( TBool /*aPartial*/ )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformAsynchronousCancellationRestore()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateOpAware::PerformAsynchronousCancellationRestore( TBool /*aPartial*/ )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformLastRightsBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateOpAware::PerformLastRightsBackupL( TBool /*aPartial*/ )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformLastRightsRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateOpAware::PerformLastRightsRestoreL( TBool /*aPartial*/ )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanupBackup()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt /*aError*/ )
+ {
+ return EFalse;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanupRestore()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt /*aError*/ )
+ {
+ return EFalse;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformStateInitL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateOpAware::PerformStateInitL()
+ {
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ case EMMCScBkupOperationTypePartialBackup:
+ PerformStateInitBackupL( type == EMMCScBkupOperationTypePartialBackup );
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ case EMMCScBkupOperationTypePartialRestore:
+ PerformStateInitRestoreL( type == EMMCScBkupOperationTypePartialRestore );
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformAsynchronousStateStepL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateOpAware::PerformAsynchronousStateStepL()
+ {
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ case EMMCScBkupOperationTypePartialBackup:
+ PerformAsynchronousStateStepBackupL( type == EMMCScBkupOperationTypePartialBackup );
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ case EMMCScBkupOperationTypePartialRestore:
+ PerformAsynchronousStateStepRestoreL( type == EMMCScBkupOperationTypePartialRestore );
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformAsynchronousCancellation()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateOpAware::PerformAsynchronousCancellation()
+ {
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ case EMMCScBkupOperationTypePartialBackup:
+ PerformAsynchronousCancellationBackup( type == EMMCScBkupOperationTypePartialBackup );
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ case EMMCScBkupOperationTypePartialRestore:
+ PerformAsynchronousCancellationRestore( type == EMMCScBkupOperationTypePartialRestore );
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformLastRightsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateOpAware::PerformLastRightsL()
+ {
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ case EMMCScBkupOperationTypePartialBackup:
+ PerformLastRightsBackupL( type == EMMCScBkupOperationTypePartialBackup );
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ case EMMCScBkupOperationTypePartialRestore:
+ PerformLastRightsRestoreL( type == EMMCScBkupOperationTypePartialRestore );
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanup()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateOpAware::PerformAsynchronousErrorCleanup( TInt aError )
+ {
+ TBool handled = EFalse;
+ //
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ case EMMCScBkupOperationTypePartialBackup:
+ handled = PerformAsynchronousErrorCleanupBackup( type == EMMCScBkupOperationTypePartialBackup, aError );
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ case EMMCScBkupOperationTypePartialRestore:
+ handled = PerformAsynchronousErrorCleanupRestore( type == EMMCScBkupOperationTypePartialRestore, aError );
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ //
+ return handled;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateRequestListOfPublicFiles.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,447 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateRequestListOfPublicFiles implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateRequestListOfPublicFiles.h"
+
+// System includes
+#include <e32std.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMCScBkupSBEUtils.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "RMMCScBkupProgressSizer.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "MMMCScBkupProgressObserver.h"
+#include "CMMCScBkupFileListCollection.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::CMMCScBkupStateRequestListOfPublicFiles()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateRequestListOfPublicFiles::CMMCScBkupStateRequestListOfPublicFiles( MMMCScBkupDriver& aDriver )
+: CMMCScBkupState( aDriver )
+ {
+ __LOG1("CMMCScBkupStateRequestListOfPublicFiles::CMMCScBkupStateRequestListOfPublicFiles() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::~CMMCScBkupStateRequestListOfPublicFiles()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateRequestListOfPublicFiles::~CMMCScBkupStateRequestListOfPublicFiles()
+ {
+ Cancel();
+ //
+ delete iRequestObject;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestListOfPublicFiles::ConstructL()
+ {
+ iRequestObject = CMMCScBkupStateRequestSpecificPublicFileInfo::NewL(Driver());
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateRequestListOfPublicFiles* CMMCScBkupStateRequestListOfPublicFiles::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateRequestListOfPublicFiles* self = new(ELeave) CMMCScBkupStateRequestListOfPublicFiles( aDriver );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateRequestListOfPublicFiles::StateId() const
+ {
+ return KMMCScBkupStateIdRequestListOfPublicFiles;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::NextStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateRequestListOfPublicFiles::NextStateId() const
+ {
+ return KMMCScBkupStateIdValidateDiskSpace;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::PerformStateInitL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestListOfPublicFiles::PerformStateInitL()
+ {
+ // Set to -1 so that the first time RunL is called, we start with
+ // the data owner at index 0.
+ iCurrentDataOwnerIndex = -1;
+ CompleteSelf(KErrNone);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousStateStepL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousStateStepL()
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ if (++iCurrentDataOwnerIndex < dataOwners.Count())
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner(iCurrentDataOwnerIndex);
+
+ const TBool hasPublicFiles = (owner.Owner().PassiveSettings() & EHasPublicFiles);
+ if (hasPublicFiles)
+ {
+ // Request all the public files (on all supported drives) for this
+ // particular data owner
+ __ASSERT_ALWAYS(iRequestObject->IsActive() == EFalse, User::Invariant());
+ //
+ iRequestObject->RequestL(owner, iStatus);
+ SetActive();
+ }
+ else
+ {
+ // Try next data owner
+ CompleteSelf();
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousErrorCleanup()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousErrorCleanup(TInt aError)
+ {
+ (void) aError;
+ __LOG1("CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousErrorCleanup() - **** - error: %d", aError );
+
+ // Cancel requester. Its probably already inactive, but just in case...
+ PerformAsynchronousCancellation();
+
+ // Reset state and move to next item. Treat the current (badly behaving) item
+ // as completed/processed.
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ if ( iCurrentDataOwnerIndex < dataOwners.Count() )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iCurrentDataOwnerIndex );
+ (void) owner;
+ __LOGFILE2("CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousErrorCleanup() - **** - error: %d, SID: 0x%08x - PUBLIC data skipped for DO", aError, owner.SecureId().iId );
+
+ // Ensures that asynchronous state step is called again..
+ CompleteSelf();
+ }
+
+ return ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousCancellation()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestListOfPublicFiles::PerformAsynchronousCancellation()
+ {
+ if ( iRequestObject )
+ {
+ iRequestObject->Cancel();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL()
+ {
+ // Now we can calculate the progress
+ TInt64 totalProgressAmount = 0;
+
+ // Calculate the total progress required for the entire backup operation
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ const TInt count = dataOwners.Count();
+ //
+ RMMCScBkupProgressSizer sizer( Driver().DrvParamsBase().DriveAndOperations() );
+ for(TInt i=0; i<count; i++)
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( i );
+ //
+ totalProgressAmount += sizer.BackupTotalProgressValueL( owner );
+ }
+
+ // Check whether all categories have been processed and either store current
+ // progress information in driver or inform progress handler about cumulative progress.
+ // If size is getting beyond file system limitation (2GB), leave with KErrxxx.
+ if(Driver().DrvLastCategory())
+ {
+ __LOG2("CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL() - report progress understood (%Ld + %Ld)",
+ totalProgressAmount, Driver().DrvTotalProgress());
+
+ Driver().DrvStoreTotalProgress( totalProgressAmount );
+
+ if( Driver().DrvTotalProgress() > KMaxTInt )
+ {
+ __LOG1("CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL() - leaving with KErrNotSupported due amount of data (%Ld)",
+ Driver().DrvTotalProgress());
+ Driver().DrvProgressHandler().MMCScBkupStartBackuping( EFalse );
+ User::Leave( KErrNotSupported );
+ }
+ else
+ {
+ Driver().DrvProgressHandler().MMCScBkupHandleProgressDomainUnderstood( Driver().DrvTotalProgress() );
+ }
+ }
+ else
+ {
+ __LOG2("CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL() - adding progress amount %Ld to existing %Ld)",
+ totalProgressAmount, Driver().DrvTotalProgress());
+
+ if( (totalProgressAmount + Driver().DrvTotalProgress()) > KMaxTInt )
+ {
+ __LOG1("CMMCScBkupStateRequestListOfPublicFiles::PerformLastRightsL() - leaving due amount of data (%Ld)",
+ totalProgressAmount + Driver().DrvTotalProgress());
+ User::Leave(KErrNotSupported);
+ }
+ else
+ {
+ Driver().DrvStoreTotalProgress( totalProgressAmount );
+ }
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSpecificPublicFileInfo::CMMCScBkupStateRequestSpecificPublicFileInfo()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateRequestSpecificPublicFileInfo::CMMCScBkupStateRequestSpecificPublicFileInfo( MMMCScBkupDriver& aDriver )
+: CMMCScBkupDriveSpecificRequest( aDriver.DrvParamsBase().DriveAndOperations(), EMMCScBkupOwnerDataTypePublicData ), iDriver(aDriver)
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSpecificPublicFileInfo::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateRequestSpecificPublicFileInfo* CMMCScBkupStateRequestSpecificPublicFileInfo::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateRequestSpecificPublicFileInfo* self = new (ELeave) CMMCScBkupStateRequestSpecificPublicFileInfo(aDriver);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSpecificPublicFileInfo::RequestL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestSpecificPublicFileInfo::RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver )
+ {
+ iOwner = &aOwner;
+ CMMCScBkupDriveSpecificRequest::RequestL( aObserver );
+
+ // Start the asynchronous request.
+ CompleteSelf(KErrNone);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSpecificPublicFileInfo::RunL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestSpecificPublicFileInfo::RunL()
+ {
+ __LOG1("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - START - iStatus: %d", iStatus.Int());
+ User::LeaveIfError(iStatus.Int());
+ //
+ CDataOwnerInfo& owner = iOwner->Owner();
+ const TDriveList& ownerDrives = owner.DriveList();
+ TDriveNumber drive = EDriveA;
+ const TBool driveAvailable = NextValidDrive(drive, ownerDrives);
+ const TSecureId secureId = iOwner->SecureId();
+
+ __LOG3("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - secureId: 0x%08x, driveAvailable: %d, drive: %c", secureId.iId, driveAvailable, drive + 'A');
+
+ if (driveAvailable)
+ {
+ // This drive needs to be scanned...
+ TInt err( KErrNone );
+ RFileArray files;
+ CleanupClosePushL(files);
+
+ // Get a copy of the generic data type for which we are
+ // requesting file listings...
+ CSBGenericDataType* genericDataType = CSBSecureId::NewL( secureId );
+ CleanupStack::PushL( genericDataType );
+ TRAP( err, Driver().DrvSecureBackupClient().PublicFileListL( drive, *genericDataType, files ) );
+ if( err != KErrNone && err != KErrNotFound )
+ {
+ User::Leave( err );
+ }
+ CleanupStack::PopAndDestroy( genericDataType );
+ // Additionally we need to request list of public files registered for packages.
+ if( MMCScBkupSBEUtils::HasSystemDataL( owner ) )
+ {
+ RFileArray pkgFiles;
+ CleanupClosePushL( pkgFiles );
+ __LOG2("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - have %d files before package listing for DO, err %d", files.Count(), err);
+ TRAP( err, Driver().DrvSecureBackupClient().PublicFileListL( drive, owner.Identifier(), pkgFiles ) );
+ __LOG2("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - have %d package files for DO, err %d", files.Count(), err);
+ const TInt pkgCount = pkgFiles.Count();
+ for(TInt i = 0; i < pkgCount; i++)
+ {
+ files.AppendL( pkgFiles[i] );
+ }
+ CleanupStack::PopAndDestroy( &pkgFiles );
+ }
+
+ // Add to the file list
+ __LOG1("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - have %d files for DO", files.Count());
+ if (files.Count())
+ {
+
+ // We want to be told by the public file collection exactly which files
+ // it added... We need to do this in order to report progress as accurately
+ // as possible during the backup operation.
+ RArray< const CMMCScBkupFileInfo* > addedItems;
+ CleanupClosePushL(addedItems);
+
+ // Add them to the public data file collection
+ Driver().DrvFileList().AppendL( files, addedItems, secureId );
+
+ // For each identified file, update the data owner with the size of public data
+ const TInt count = addedItems.Count();
+ for(TInt i=0; i<count; i++)
+ {
+ const CMMCScBkupFileInfo& file = *addedItems[i];
+ const TInt size = file.Size();
+ //
+ __LOG3("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - file[%04d] = %S, size: %d", i, &file.FileName(), size);
+ iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypePublicData, drive, size );
+ }
+ //
+ CleanupStack::PopAndDestroy( &addedItems );
+ }
+ //
+ CleanupStack::PopAndDestroy( &files );
+
+ // Complete ourself to try the next drive
+ CompleteSelf( KErrNone );
+ }
+ else
+ {
+ CompleteObserverRequest( KErrNone );
+ }
+
+ __LOG("CMMCScBkupStateRequestSpecificPublicFileInfo::RunL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSpecificPublicFileInfo::DoCancel()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestSpecificPublicFileInfo::DoCancel()
+ {
+ }
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateRequestSizeOfBackupData.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,515 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateRequestSizeOfBackupData implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateRequestSizeOfBackupData.h"
+
+// System includes
+#include <e32std.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMCScBkupSBEUtils.h"
+#include "TMMCScBkupOwnerDataType.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "MMMCScBkupProgressObserver.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+#include "CMMCScBkupDriveAndOperationTypeManager.h"
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfBackupData::CMMCScBkupStateRequestSizeOfBackupData()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateRequestSizeOfBackupData::CMMCScBkupStateRequestSizeOfBackupData( MMMCScBkupDriver& aDriver )
+: CMMCScBkupState( aDriver )
+ {
+ __LOG1("CMMCScBkupStateRequestSizeOfBackupData::CMMCScBkupStateRequestSizeOfBackupData() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfBackupData::~CMMCScBkupStateRequestSizeOfBackupData()
+//
+// C++ destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateRequestSizeOfBackupData::~CMMCScBkupStateRequestSizeOfBackupData()
+ {
+ Cancel();
+ //
+ delete iRequestObject;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfBackupData::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestSizeOfBackupData::ConstructL()
+ {
+ iRequestObject = CMMCScBkupStateRequestSizeOfDataOwner::NewL( Driver() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfBackupData::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateRequestSizeOfBackupData* CMMCScBkupStateRequestSizeOfBackupData::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateRequestSizeOfBackupData* self = new(ELeave) CMMCScBkupStateRequestSizeOfBackupData( aDriver);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfBackupData::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateRequestSizeOfBackupData::StateId() const
+ {
+ return KMMCScBkupStateIdRequestSizeOfBackupData;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfBackupData::NextStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateRequestSizeOfBackupData::NextStateId() const
+ {
+ return KMMCScBkupStateIdRequestListOfPublicFiles;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfBackupData::PerformStateInitL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestSizeOfBackupData::PerformStateInitL()
+ {
+ // Set to -1 so that the first time RunL is called, we start with
+ // the data owner at index 0.
+ iCurrentDataOwnerIndex = -1;
+ CompleteSelf(KErrNone);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousStateStepL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousStateStepL()
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ const TInt count = dataOwners.Count();
+ //
+ if ( ++iCurrentDataOwnerIndex < dataOwners.Count() )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner(iCurrentDataOwnerIndex);
+
+ // Request all the public files (on all supported drives) for this
+ // particular data owner
+ __ASSERT_ALWAYS(iRequestObject->IsActive() == EFalse, User::Invariant());
+ //
+ __LOG3("CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousStateStepL() - START - owner[%3d/%3d], sid: 0x%08x", iCurrentDataOwnerIndex, count, owner.SecureId().iId);
+ iRequestObject->RequestL(owner, iStatus);
+ SetActive();
+ }
+ else
+ {
+ __LOG("CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousStateStepL() - END");
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousErrorCleanup()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousErrorCleanup( TInt aError )
+ {
+ (void) aError;
+ __LOG1("CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousErrorCleanup() - **** - error: %d", aError );
+ TBool continueProcessing = ETrue;
+
+ // Cancel requester. Its probably already inactive, but just in case...
+ PerformAsynchronousCancellation();
+
+ // Reset state and move to next item. Treat the current (badly behaving) item
+ // as completed/processed.
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ if ( iCurrentDataOwnerIndex < dataOwners.Count() )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iCurrentDataOwnerIndex );
+
+ (void) owner;
+ __LOGFILE2("CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousErrorCleanup() - **** - error: %d, SID: 0x%08x - SIZE OF DATA skipped for DO", aError, owner.SecureId().iId );
+
+ // Ensures that asynchronous state step is called again..
+ CompleteSelf();
+ }
+ else
+ {
+ continueProcessing = EFalse;
+ }
+ //
+ __LOG1("CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousErrorCleanup() - END - continueProcessing: %d", continueProcessing );
+ return continueProcessing;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousCancellation()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestSizeOfBackupData::PerformAsynchronousCancellation()
+ {
+ if ( iRequestObject )
+ {
+ iRequestObject->Cancel();
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfDataOwner::CMMCScBkupStateRequestSizeOfDataOwner()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateRequestSizeOfDataOwner::CMMCScBkupStateRequestSizeOfDataOwner( MMMCScBkupDriver& aDriver )
+: CMMCScBkupDriveSpecificRequest( aDriver.DrvParamsBase().DriveAndOperations(), EMMCScBkupOwnerDataTypeAny ), iDriver(aDriver)
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfDataOwner::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateRequestSizeOfDataOwner* CMMCScBkupStateRequestSizeOfDataOwner::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateRequestSizeOfDataOwner* self = new (ELeave) CMMCScBkupStateRequestSizeOfDataOwner(aDriver);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfDataOwner::RequestL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestSizeOfDataOwner::RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver )
+ {
+ iOwner = &aOwner;
+ CMMCScBkupDriveSpecificRequest::RequestL( aObserver );
+
+ // Start the asynchronous request.
+ CompleteSelf(KErrNone);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfDataOwner::RunL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestSizeOfDataOwner::RunL()
+ {
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::RunL() - START - iStatus: %d, sid: 0x%08x", iStatus.Int(), iOwner->SecureId().iId);
+
+ User::LeaveIfError(iStatus.Int());
+ //
+ TDriveNumber drive = EDriveA;
+ const TDriveList& ownerDrives = iOwner->Owner().DriveList();
+ const TBool driveAvailable = NextValidDrive(drive, ownerDrives);
+ //
+ if (driveAvailable)
+ {
+ CDataOwnerInfo& owner = iOwner->Owner();
+ CSBGenericDataType& identifier = owner.Identifier();
+
+ // Size any active and passive data
+ GetActiveAndPassiveDataSizesL( owner, identifier, drive );
+
+ // Size any system package data
+ GetSystemDataSizesL( owner, identifier, drive );
+
+ // Size any java data
+ GetJavaDataSizesL( owner, identifier, drive );
+
+ // Complete ourself to try the next drive
+ CompleteSelf(KErrNone);
+ __LOG1("CMMCScBkupStateRequestSizeOfDataOwner::RunL() - END - sid: 0x%08x, checking next drive...", iOwner->SecureId().iId);
+ }
+ else
+ {
+ __LOG1("CMMCScBkupStateRequestSizeOfDataOwner::RunL() - END - sid: 0x%08x, last drive scanned => notifying observer", iOwner->SecureId().iId);
+ CompleteObserverRequest(KErrNone);
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfDataOwner::DoCancel()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateRequestSizeOfDataOwner::DoCancel()
+ {
+ CompleteObserverRequest( KErrCancel );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfDataOwner::GetActiveAndPassiveDataSizesL()
+//
+//
+// ---------------------------------------------------------------------------
+TUint CMMCScBkupStateRequestSizeOfDataOwner::GetActiveAndPassiveDataSizesL( const CDataOwnerInfo& aOwner,
+ CSBGenericDataType& /*aIdentifier*/, TDriveNumber aDrive )
+ {
+ // Passive Data
+ const TBool passiveBURSupported = MMCScBkupSBEUtils::HasPassiveDataL( aOwner );
+ const TBool passiveDataTransferAllowedForDrive = DriveAndOperations().IsDataTypeAllowedToAccessDrive( aDrive, EMMCScBkupOwnerDataTypePassiveData );
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - passiveBURSupported: %d, passiveDataTransferAllowedForDrive: %d", passiveBURSupported, passiveDataTransferAllowedForDrive );
+
+ TUint ret = 0;
+ TUint itemSize = 0;
+ if ( passiveBURSupported && passiveDataTransferAllowedForDrive )
+ {
+ const TSecureId secureId = iOwner->SecureId();
+ const TTransferDataType type = Driver().DrvParamsBase().PassiveTransferType();
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - sid: 0x%08x claims PASSIVE Data... type: %d", iOwner->SecureId().iId, type);
+
+ itemSize = GetSIDSpecificSizeL( secureId, aDrive, type );
+ iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypePassiveData, aDrive, itemSize );
+ ret += itemSize;
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - sid: 0x%08x, passive size: %8d", secureId.iId, itemSize);
+ }
+
+ // Active Data
+ const TBool activeBURSupported = MMCScBkupSBEUtils::HasActiveDataL( aOwner );
+ const TBool activeDataTransferAllowedForDrive = DriveAndOperations().IsDataTypeAllowedToAccessDrive( aDrive, EMMCScBkupOwnerDataTypeActiveData );
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - activeBURSupported: %d, activeDataTransferAllowedForDrive: %d", activeBURSupported, activeDataTransferAllowedForDrive );
+
+ if ( activeBURSupported && activeDataTransferAllowedForDrive )
+ {
+ const TSecureId secureId = iOwner->SecureId();
+ const TTransferDataType type = Driver().DrvParamsBase().ActiveTransferType();
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - sid: 0x%08x claims ACTIVE Data... type: %d", iOwner->SecureId().iId, type);
+
+
+ // Technically, we should wait for an active data owner to become ready before we ask
+ // for its sizing information. If we don't wait, we might receive KErrNotReady back
+ // from our SBE request.
+ //
+ // Currently, the MMC engine doesn't actually make any use of the active data sizing
+ // info, so we trap (and ignore) the error in this situation. In the future, we will
+ // have to change the state machine in order to request the active data statuses
+ // before the sizing can be requested.
+ itemSize = 0;
+ TRAPD(err, GetSIDSpecificSizeL( secureId, aDrive, type ));
+ __LOG3("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - sid: 0x%08x, active size: %8d, fetchError: %d", secureId.iId, itemSize, err);
+
+ if ( err == KErrNone || err == KErrNotReady )
+ {
+ err = KErrNone;
+ }
+ else
+ {
+ User::LeaveIfError( err );
+ }
+
+ iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypeActiveData, aDrive, itemSize );
+ ret += itemSize;
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSizesL() - sid: 0x%08x, active size: %8d", secureId.iId, itemSize);
+ }
+
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSpecificSizeL()
+//
+//
+// ---------------------------------------------------------------------------
+TUint CMMCScBkupStateRequestSizeOfDataOwner::GetSIDSpecificSizeL( TSecureId aSecureID, TDriveNumber aDrive, TTransferDataType aDataType )
+ {
+ CSBSIDTransferType* transferType = CSBSIDTransferType::NewL( aSecureID,
+ aDrive,
+ aDataType
+ );
+ CleanupStack::PushL( transferType );
+ const TUint size = Driver().DrvSecureBackupClient().ExpectedDataSizeL( *transferType );
+ CleanupStack::PopAndDestroy( transferType );
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfDataOwner::GetSystemDataSizesL()
+//
+//
+// ---------------------------------------------------------------------------
+TUint CMMCScBkupStateRequestSizeOfDataOwner::GetSystemDataSizesL( const CDataOwnerInfo& aOwner, CSBGenericDataType& aIdentifier, TDriveNumber aDrive )
+ {
+ TUint size = 0;
+ //
+ const TBool systemBURSupported = MMCScBkupSBEUtils::HasSystemDataL( aOwner );
+ const TBool systemDataTransferAllowedForDrive = DriveAndOperations().IsDataTypeAllowedToAccessDrive( aDrive, EMMCScBkupOwnerDataTypeSystemData );
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetSystemDataSizesL() - systemBURSupported: %d, systemDataTransferAllowedForDrive: %d", systemBURSupported, systemDataTransferAllowedForDrive );
+
+ if ( systemBURSupported && systemDataTransferAllowedForDrive )
+ {
+ __LOG1("CMMCScBkupStateRequestSizeOfDataOwner::GetSystemDataSizesL() - sid: 0x%08x claims SYSTEM Data...", iOwner->SecureId().iId);
+
+ // Again we have to create a temporary in order to actually retrieve the info...
+ CSBPackageId* packageGeneric = static_cast<CSBPackageId*>( MMCScBkupSBEUtils::CopyLC( aIdentifier ) );
+ const TUid packageId = packageGeneric->PackageIdL();
+ //
+ const TPackageDataType type = Driver().DrvParamsBase().PackageTransferType();
+ CSBPackageTransferType* transferType = CSBPackageTransferType::NewL( packageId,
+ aDrive,
+ type
+ );
+ CleanupStack::PushL( transferType );
+ size = Driver().DrvSecureBackupClient().ExpectedDataSizeL( *transferType );
+ __LOG3("CMMCScBkupStateRequestSizeOfDataOwner::GetSystemDataSizesL() - packageId: 0x%08x, sid: 0x%08x, package size: %8d", packageId.iUid, iOwner->SecureId().iId, size);
+ CleanupStack::PopAndDestroy( transferType );
+ //
+ iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypeSystemData, aDrive, size );
+ CleanupStack::PopAndDestroy( packageGeneric );
+ }
+
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfDataOwner::GetJavaDataSizesL()
+//
+//
+// ---------------------------------------------------------------------------
+TUint CMMCScBkupStateRequestSizeOfDataOwner::GetJavaDataSizesL( const CDataOwnerInfo& aOwner, CSBGenericDataType& aIdentifier, TDriveNumber aDrive )
+ {
+ TUint size = 0;
+ //
+ const TBool javaBURSupported = MMCScBkupSBEUtils::HasJavaDataL( aOwner );
+ const TBool javaDataTransferAllowedForDrive = DriveAndOperations().IsDataTypeAllowedToAccessDrive( aDrive, EMMCScBkupOwnerDataTypeJavaData );
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSizesL() - javaBURSupported: %d, javaDataTransferAllowedForDrive: %d", javaBURSupported, javaDataTransferAllowedForDrive );
+
+ if ( javaBURSupported && javaDataTransferAllowedForDrive )
+ {
+ // Again we have to create a temporary in order to actually retrieve the info...
+ CSBJavaId* packageGeneric = static_cast<CSBJavaId*>(MMCScBkupSBEUtils::CopyLC( aIdentifier ));
+ const TPtrC pHash(packageGeneric->SuiteHashL());
+ __LOG1("CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSizesL() - midlet hash: %S", &pHash );
+
+ const TUint midletSize = GetJavaSpecificSizeL( pHash, aDrive, EJavaMIDlet);
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSizesL() - EJavaMIDlet, sid: 0x%08x, size: %8d", iOwner->SecureId().iId, midletSize);
+
+ const TUint midletDataSize = GetJavaSpecificSizeL( pHash, aDrive, EJavaMIDletData);
+ __LOG2("CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSizesL() - EJavaMIDletData, sid: 0x%08x, size: %8d", iOwner->SecureId().iId, midletDataSize);
+
+ // We put the midlet itself in the special 'java data' category (the 'system data' equivalent for
+ // java midlets).
+ iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypeJavaData, aDrive, midletSize );
+
+ // We put the midlet's data (e.g. any data files that it created) inside
+ // the 'passive data' bucket.
+ iOwner->AddToOperationalSizeL( EMMCScBkupOwnerDataTypePassiveData, aDrive, midletDataSize );
+
+ // Java abuses the passive data slot. We would've initially set passive data's completion status
+ // to ETrue inside CMMCScBkupDataOwnerInfo::ConstructL() as a result of receiving a Java
+ // transfer type... but we can reset it back to "not yet completed" if the midlet
+ // does indeed have some 'passive data'.
+ iOwner->SetCompletionStatus( EMMCScBkupOwnerDataTypePassiveData, ( midletDataSize == 0 ) );
+
+ CleanupStack::PopAndDestroy( packageGeneric );
+ //
+ size = midletSize + midletDataSize;
+ }
+
+ return size;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSpecificSizeL()
+//
+//
+// ---------------------------------------------------------------------------
+TUint CMMCScBkupStateRequestSizeOfDataOwner::GetJavaSpecificSizeL( const TDesC& aHash, TDriveNumber aDrive, TJavaTransferType aDataType )
+ {
+ CSBJavaTransferType* transferType = CSBJavaTransferType::NewL( aHash,
+ aDrive,
+ aDataType
+ );
+ CleanupStack::PushL( transferType );
+ const TUint size = Driver().DrvSecureBackupClient().ExpectedDataSizeL( *transferType );
+ CleanupStack::PopAndDestroy( transferType );
+ return size;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateSetPhoneMode.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupStateSetPhoneMode implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateSetPhoneMode.h"
+
+// System includes
+#include <e32std.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupDriveAndOperationTypeManager.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateSetPhoneMode::CMMCScBkupStateSetPhoneMode()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateSetPhoneMode::CMMCScBkupStateSetPhoneMode( MMMCScBkupDriver& aDriver )
+: CMMCScBkupState( aDriver )
+ {
+ __LOG1("CMMCScBkupStateSetPhoneMode::CMMCScBkupStateSetPhoneMode() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateSetPhoneMode::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateSetPhoneMode* CMMCScBkupStateSetPhoneMode::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateSetPhoneMode* self = new(ELeave) CMMCScBkupStateSetPhoneMode( aDriver);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateSetPhoneMode::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateSetPhoneMode::StateId() const
+ {
+ return KMMCScBkupStateIdSetPhoneMode;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateSetPhoneMode::NextStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateSetPhoneMode::NextStateId() const
+ {
+ TMMCScBkupStateId nextState = KMMCScBkupStateIdNotifyAllSnapshotsSupplied;
+ //
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ nextState = KMMCScBkupStateIdNotifyAllSnapshotsSupplied;
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ nextState = KMMCScBkupStateIdArchiveOpSystemData;
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ //
+ return nextState;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateSetPhoneMode::PerformStateInitL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateSetPhoneMode::PerformStateInitL()
+ {
+ __LOG("CMMCScBkupStateSetPhoneMode::PerformStateInitL()" );
+ //
+ const CMMCScBkupOpParamsBase& params = Driver().DrvParamsBase();
+ //
+ Driver().DrvSecureBackupClient().SetBURModeL( params.DriveAndOperations().DriveList(),
+ params.PartType(),
+ params.IncrementType(),
+ iStatus );
+ SetActive();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateSetPhoneMode::PerformAsynchronousStateStepL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateSetPhoneMode::PerformAsynchronousStateStepL()
+ {
+ __LOG("CMMCScBkupStateSetPhoneMode::PerformAsynchronousStateStepL()" );
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateValidateDiskSpace.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,393 @@
+/*
+* Copyright (c) 2005-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: CMMCScBkupStateValidateDiskSpace implementation
+*
+*
+*/
+
+#include "CMMCScBkupStateValidateDiskSpace.h"
+
+// System includes
+#include <e32std.h>
+#include <s32strm.h>
+#include <s32mem.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupFileInfo.h"
+#include "CMMCScBkupArchive.h"
+#include "CMMCScBkupArchiveFooter.h"
+#include "CMMCScBkupArchiveHeader.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "RMMCScBkupProgressSizer.h"
+#include "MMMCScBkupProgressObserver.h"
+#include "CMMCScBkupFileListCollection.h"
+#include "CMMCScBkupDataOwnerCollection.h"
+#include "CMMCScBkupIndexPublicDataFiles.h"
+#include "CMMCScBkupDataStrategies.h"
+#include "MMCScBkupSBEUtils.h"
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateValidateDiskSpace::~CMMCScBkupStateValidateDiskSpace()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateValidateDiskSpace::~CMMCScBkupStateValidateDiskSpace()
+ {
+ iDriveSizes.Close();
+ iDriveMaxFileSizes.Close();
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateValidateDiskSpace::CMMCScBkupStateValidateDiskSpace()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupStateValidateDiskSpace::CMMCScBkupStateValidateDiskSpace( MMMCScBkupDriver& aDriver )
+: CMMCScBkupState( aDriver ), iCumulatedSize(0)
+ {
+ __LOG1("CMMCScBkupStateValidateDiskSpace::CMMCScBkupStateValidateDiskSpace() - 0x%08x", StateId().iUid );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateValidateDiskSpace::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+CMMCScBkupStateValidateDiskSpace* CMMCScBkupStateValidateDiskSpace::NewL( MMMCScBkupDriver& aDriver )
+ {
+ CMMCScBkupStateValidateDiskSpace* self = new(ELeave) CMMCScBkupStateValidateDiskSpace( aDriver );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateValidateDiskSpace::ConstructL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateValidateDiskSpace::ConstructL( )
+ {
+ for( TInt i = EDriveA; i<=EDriveZ; i++ )
+ {
+ const TDriveNumber drive = static_cast< TDriveNumber >( i );
+
+ // Zero-initialize max. file sizing info arrays
+ TMMCScBkupDriveAndSize newEntry( drive, 0 );
+ iDriveSizes.AppendL( newEntry );
+ TMMCScBkupDriveAndSize maxEntry( drive, 0 );
+ iDriveMaxFileSizes.AppendL( maxEntry );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateValidateDiskSpace::StateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateValidateDiskSpace::StateId() const
+ {
+ return KMMCScBkupStateIdValidateDiskSpace;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateValidateDiskSpace::NextStateId()
+//
+//
+// ---------------------------------------------------------------------------
+TMMCScBkupStateId CMMCScBkupStateValidateDiskSpace::NextStateId() const
+ {
+ TMMCScBkupStateId nextState = KMMCScBkupStateIdOperationComplete;
+ //
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ nextState = KMMCScBkupStateIdArchiveOpPublicDataFiles;
+ break;
+ case EMMCScBkupOperationTypeFullRestore:
+ nextState = KMMCScBkupStateIdSetPhoneMode;
+ break;
+ default:
+ ASSERT( EFalse );
+ break;
+ }
+ //
+ return nextState;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateValidateDiskSpace::PerformStateInitL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateValidateDiskSpace::PerformStateInitL()
+ {
+ CompleteSelf();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateValidateDiskSpace::PerformAsynchronousStateStepL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateValidateDiskSpace::PerformAsynchronousStateStepL()
+ {
+ const TMMCScBkupOperationType type = Driver().DrvOperation();
+
+ switch(type)
+ {
+ case EMMCScBkupOperationTypeFullBackup:
+ {
+ ValidateFreeSpaceBeforeBackupL();
+ break;
+ }
+ case EMMCScBkupOperationTypeFullRestore:
+ {
+ ValidateFreeSpaceBeforeRestoreL();
+ break;
+ }
+ default:
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL()
+ {
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ TInt64 uncompressedSize;
+
+ __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - START");
+
+ // Calculate the total progress required for the entire backup operation
+ uncompressedSize = dataOwners.TotalOperationalSizeL();
+ __LOG1("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - Total estimated uncompressed size for archive %Ld", uncompressedSize);
+ //const TInt ownerCount = dataOwners.Count();
+
+ //for( TInt i=0; i<ownerCount; i++ )
+ // {
+ // CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( i );
+ // Reset the size of public data to 0. We update this value
+ // with the compressed size during the compression stage. This
+ // is needed in order to create accurate restore information (since
+ // all of the data owner sizing info is written to disk).
+ // owner.ResetOperationalSize( EMMCScBkupOwnerDataTypePublicData );
+ // }
+
+ // Let's check do public files fit in target drive
+ TInt driveNumber;
+ TDriveInfo driveInfo;
+ TVolumeInfo volInfo;
+ TInt8 percentFree(100);
+
+ // First get the drive number, where archive resides and then get drive's free space.
+ TInt err = ADI().ADIRawArchiveFile().Drive( driveNumber, driveInfo );
+ if( err == KErrNone)
+ {
+ err = ADI().ADIFsSession().Volume( volInfo, driveNumber );
+ if( err == KErrNone)
+ {
+ iCumulatedSize += uncompressedSize;
+
+ if(Driver().DrvLastCategory())
+ {
+ __LOG3("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - Final cumulated size %Ld, free size on drive %c is %Ld",
+ iCumulatedSize, driveNumber + 'A', volInfo.iFree);
+
+ if( iCumulatedSize > volInfo.iFree)
+ {
+ percentFree = TInt( (volInfo.iFree * 100 ) / iCumulatedSize ); // accurate enough, no rounding
+ }
+
+ err = Driver().DrvProgressHandler().MMCScBkupHandleFreeSpace( percentFree );
+ if( err != KErrNone )
+ {
+ // Error indicates backup creation no more allowed
+ Driver().DrvProgressHandler().MMCScBkupStartBackuping( EFalse );
+ User::Leave( err );
+ }
+ else
+ {
+ Driver().DrvProgressHandler().MMCScBkupStartBackuping( ETrue );
+ }
+ }
+ else
+ {
+ __LOG3("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - Cumulated size now %Ld, free size on drive %c is %Ld",
+ iCumulatedSize, driveNumber + 'A', volInfo.iFree);
+ }
+ }
+ else
+ {
+ __LOG1("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - Volume info error %d", err);
+ }
+ }
+
+ __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeBackupL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL()
+ {
+ CMMCScBkupArchiveFooter& footer = Driver().DrvArchive().Footer();
+ CMMCScBkupIndexPublicDataFiles& index = static_cast<CMMCScBkupIndexPublicDataFiles&>( footer.IndexByType( EMMCScBkupOwnerDataTypePublicData ) );
+ CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
+ CMMCScBkupFileListCollection& fileList = Driver().DrvFileList();
+ TInt indexValueCurrent(0);
+
+ __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - START");
+
+ const TInt ownerCount = dataOwners.Count();
+
+ // We can only make a direct comparison for public data
+ for( TInt i=0; i<ownerCount; i++ )
+ {
+ CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( i );
+ const CDataOwnerInfo& sbeDataOwner = owner.Owner();
+
+ if ( MMCScBkupSBEUtils::HasPublicDataL( sbeDataOwner ) )
+ {
+ for( TInt i = EDriveA; i<=EDriveZ; i++ )
+ {
+ const TDriveNumber drive = static_cast< TDriveNumber >( i );
+
+ const TInt64 size = owner.OperationalSize( EMMCScBkupOwnerDataTypePublicData, drive );
+ TMMCScBkupDriveAndSize& entry = iDriveSizes[ drive ];
+ entry.SetSize(entry.Size() + size);
+ __LOG4("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - DO: 0x%08x has %Ld bytes for drive %c (total %Ld)",
+ owner.SecureId().iId, size, entry.Drive() + 'A', entry.Size());
+ }
+ }
+ }
+
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ for( TInt i = EDriveA; i<=EDriveZ; i++ )
+ {
+ TMMCScBkupDriveAndSize& entry = iDriveSizes[ i ];
+ __LOG2("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Initially %Ld bytes required on drive %c",
+ entry.Size(), entry.Drive() + 'A');
+ }
+#endif
+
+ const TInt count = index.Count();
+
+ __LOG1("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Public files to compare %d", count);
+
+ // Check needed size by comparing archived public files to files in disk - decrease size if matching file found
+ while( ++indexValueCurrent < count )
+ {
+ // Get the entry to restore
+ TMMCScBkupArchiveVector entryInfo;
+ //const CMMCScBkupFileInfo& fileInfo = index.At( indexValueCurrent, entryInfo );
+ const CMMCScBkupFileInfo& fileInfo = fileList.Entry(indexValueCurrent);
+ const TDriveNumber drive = fileInfo.Drive();
+
+ __LOG2("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Archived file: %S, of size %d", &fileInfo.FileName(), fileInfo.Size());
+
+ // Check file (if any) size in disk
+ RFile64 restoreFile;
+ TInt64 fileSize = 0;
+ TInt error = restoreFile.Open(ADI().ADIFsSession(), fileInfo.FileName(), EFileShareReadersOnly | EFileRead);
+ if(error == KErrNone)
+ {
+ error = restoreFile.Size(fileSize);
+ if(error == KErrNone)
+ {
+ __LOG1("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Found matching file of size %d", fileInfo.Size());
+
+ // Take into account biggest file already on disk, because reserves that much space temporarily
+ if(iDriveMaxFileSizes[ drive ].Size() < fileSize && KMMCScBkupUseTempFile)
+ {
+ TMMCScBkupDriveAndSize& bigFile = iDriveMaxFileSizes[ drive ];
+ bigFile.SetSize(fileSize);
+ }
+ }
+ else
+ {
+ fileSize = 0;
+ __LOG1("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Error % requesting file size", error);
+ }
+
+ restoreFile.Close();
+ }
+
+ TMMCScBkupDriveAndSize& entry = iDriveSizes[ drive ];
+ entry.SetSize(entry.Size() - fileSize);
+
+ __LOG2("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - %Ld bytes required now on drive %c", entry.Size(), entry.Drive() + 'A');
+ }
+
+ __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - No estimation for private and system files");
+
+ if(Driver().DrvLastCategory())
+ {
+ TVolumeInfo volInfo;
+ TInt spaceCheck(KErrNone);
+
+ // Let user interrupt restore if necessary in future. Currently if any of drives cannot be restored, we interrupt restore.
+ for( TInt i = EDriveA; i<=EDriveZ; i++ )
+ {
+ // Check whether data fits into this drive.
+ const TDriveNumber drive = static_cast< TDriveNumber >( i );
+
+ TInt err = ADI().ADIFsSession().Volume( volInfo, drive );
+ if( err == KErrNone)
+ {
+ // Total compressed size. If this exceeds total size of drive, then restore does not succeed for sure.
+ const TInt64 size = dataOwners.DiskSpaceRequiredForRestore( drive );
+ __LOG3("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - drive %c requires %Ld + %Ld for temporary file",
+ iDriveSizes[ drive ].Drive() + 'A', iDriveSizes[ drive ].Size(), iDriveMaxFileSizes[ drive ].Size());
+
+ if ( (( iDriveSizes[ drive ].Size() + iDriveMaxFileSizes[ drive ].Size() ) > volInfo.iFree ) ||
+ ( size > volInfo.iSize ) )
+ {
+ __LOG2("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Not enough space (%Ld) on drive %c",
+ TInt(volInfo.iFree), iDriveSizes[ drive ].Drive() + 'A');
+ spaceCheck = KErrDiskFull;
+ break;
+ }
+ }
+ }
+
+ User::LeaveIfError(spaceCheck);
+ }
+ else
+ {
+ __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - Checking next category...");
+ }
+
+ __LOG("CMMCScBkupStateValidateDiskSpace::ValidateFreeSpaceBeforeRestoreL() - END");
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupTransferReadRequest.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,517 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupReadDataTransferRequestBase implementation
+*
+*
+*/
+
+#include "CMMCScBkupTransferReadRequest.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMMCScBkupDriver.h"
+#include "CMMCScBkupArchive.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+#include "MMMCScBkupProgressObserver.h"
+#include <pathinfo.h>
+
+// Constants
+const TBool KMMCScBkupDontUpdateOpSizes = EFalse;
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::CMMCScBkupReadDataTransferRequestBase()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupReadDataTransferRequestBase::CMMCScBkupReadDataTransferRequestBase(
+ MMMCScBkupDriver& aDriver,
+ TMMCScBkupOwnerDataType aElementType,
+ TInt aChunkSize,
+ TInt aPriority )
+: CMMCScBkupTransferRequestBase( aDriver, aElementType, KMMCScBkupDontUpdateOpSizes, aPriority ),
+ iReadChunkSize( aChunkSize ),
+ iCurrentIndex( -1 )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::~CMMCScBkupReadDataTransferRequestBase()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupReadDataTransferRequestBase::~CMMCScBkupReadDataTransferRequestBase()
+ {
+ delete iTransferType;
+ delete iTemporaryTransferSink;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::RequestL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupReadDataTransferRequestBase::RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver, const RArray<TMMCScBkupArchiveDriveAndVector>& aEntries )
+ {
+#ifdef __MMCSCBKUPLOGGING_ENABLED__
+ if ( ElementType() == EMMCScBkupOwnerDataTypeJavaData )
+ {
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( aOwner.Owner().Identifier() );
+ __LOG2("CMMCScBkupReadDataTransferRequestBase::RequestL() - START - reading data from SBE for JavaHash: %S, ElementType: %S", hash, &MMCScBkupLogger::DataType( ElementType() ));
+ CleanupStack::PopAndDestroy( hash );
+ }
+ else
+ {
+ __LOG2("CMMCScBkupReadDataTransferRequestBase::RequestL() - START - reading data from SBE for DO: 0x%08x, ElementType: %S", aOwner.SecureId().iId, &MMCScBkupLogger::DataType( ElementType() ));
+ }
+#endif
+
+ CMMCScBkupTransferRequestBase::RequestL( aOwner, aObserver );
+ //
+ if ( !iTemporaryTransferSink )
+ {
+ iTemporaryTransferSink = HBufC8::NewL( iReadChunkSize );
+ }
+ //
+ iEntries = &aEntries;
+ iCurrentIndex = -1; // Increased by one in PrepareForNextEntry
+ //
+ TState nextState = EProcessData;
+ const TBool entryAvailable = PrepareForNextEntry();
+ if ( !entryAvailable )
+ {
+ nextState = EFinished;
+ }
+ //
+ SetState( nextState );
+ CompleteSelf();
+ __LOG1("CMMCScBkupReadDataTransferRequestBase::RequestL() - END - nextState: %d", nextState);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::ProcessChunkOfDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupReadDataTransferRequestBase::ProcessChunkOfDataL()
+ {
+ __ASSERT_ALWAYS( iCurrentIndex >= 0, User::Invariant() );
+
+ TBool callAgain = EFalse;
+
+ // Do we need to move to the next entry?
+ TBool entryAvailable = ( iCurrentIndex < iEntries->Count() );
+ if ( entryAvailable )
+ {
+ // At least one more entry left to process.. but have we finished
+ // the current entry? If we've read all the data, then the
+ // answer is yes...
+ const TMMCScBkupArchiveDriveAndVector& entry = (*iEntries)[ iCurrentIndex ];
+ const TInt endOffset = entry.iVector.EndOffset();
+
+#ifdef __MMCSCBKUPLOGGING_ENABLED__
+ if ( ElementType() == EMMCScBkupOwnerDataTypeJavaData )
+ {
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( DataOwner().Owner().Identifier() );
+ __LOG6("CMMCScBkupReadDataTransferRequestBase::ProcessChunkOfDataL() - START - JavaHash: %S, ElementType: %S, offset: %8d, length: %8d, endOffset: %8d, drive: %c:", hash, &MMCScBkupLogger::DataType( ElementType() ), entry.iVector.Offset(), entry.iVector.Length(), endOffset, entry.iDrive + 'A' );
+ CleanupStack::PopAndDestroy( hash );
+ }
+ else
+ {
+ __LOG6("CMMCScBkupReadDataTransferRequestBase::ProcessChunkOfDataL() - START - DO: 0x%08x, ElementType: %S, offset: %8d, length: %8d, endOffset: %8d, drive: %c:", DataOwner().SecureId().iId, &MMCScBkupLogger::DataType( ElementType() ), entry.iVector.Offset(), entry.iVector.Length(), endOffset, entry.iDrive + 'A' );
+ }
+#endif
+
+ // Check bounds
+ if ( CurrentOffset() < 0 || CurrentOffset() > endOffset )
+ {
+ ASSERT( EFalse );
+ User::Leave( KErrCorrupt );
+ }
+ //
+ if ( iCurrentOffset == endOffset )
+ {
+ // We're done with this entry - move to the next
+ entryAvailable = PrepareForNextEntry();
+ }
+ }
+ //
+ if ( entryAvailable )
+ {
+ // We need to read more archive data in order to transfer this
+ // entry to the SBE
+ callAgain = DoProcessChunkOfDataL();
+ }
+ else
+ {
+ // No more left to process - we're finished!
+ SetState( EFinished );
+ CompleteSelf();
+ }
+ //
+ return callAgain;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::PrepareDataTransferL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupReadDataTransferRequestBase::PrepareDataTransferL()
+ {
+ __ASSERT_ALWAYS(iTransferChunkPointer != NULL, User::Invariant());
+ const CSBGenericDataType& generic = DataOwner().Owner().Identifier();
+
+ // Prepare the transfer type with a virtual function call...
+ CSBGenericTransferType* transferType = PrepareTransferTypeL( generic, CurrentDrive(),
+ DataOwner().Version());
+ delete iTransferType;
+ iTransferType = transferType;
+
+#ifdef __MMCSCBKUPLOGGING_ENABLED__
+ TInt lengthOfDataReadyForTransfer = 0;
+ if ( iTransferChunkPointer != NULL )
+ {
+ lengthOfDataReadyForTransfer = iTransferChunkPointer->Length();
+ }
+
+ if ( iTransferType->DerivedTypeL() == EJavaTransferDerivedType )
+ {
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( DataOwner().Owner().Identifier() );
+ __LOG5("CMMCScBkupReadDataTransferRequestBase::PrepareDataTransferL() - supplying %d bytes of data for has: %S, drive: %c, iTransferChunkPointer addr: 0x%08x, iTransferChunkPointer length: %d", lengthOfDataReadyForTransfer, hash, 'A' + CurrentDrive(), iTransferChunkPointer->Ptr(), iTransferChunkPointer->Length() );
+ CleanupStack::PopAndDestroy( hash );
+ }
+ else
+ {
+ const TSecureId sid = DataOwner().SecureId();
+ __LOG5("CMMCScBkupReadDataTransferRequestBase::PrepareDataTransferL() - supplying %d bytes of data for sid: 0x%08x, drive: %c, iTransferChunkPointer addr: 0x%08x, iTransferChunkPointer length: %d", lengthOfDataReadyForTransfer, sid.iId, 'A' + CurrentDrive(), iTransferChunkPointer->Ptr(), iTransferChunkPointer->Length() );
+ }
+#endif
+
+ //
+ Driver().DrvSecureBackupClient().SupplyDataL( *iTransferType, iFinishedSupplyingData, iStatus );
+ SetActive();
+
+ // Reset
+ ResetDataTransferCounter();
+ iTransferChunkPointer = NULL; // Address is retrieved from global chunk in DoProcessChunkOfDataL
+
+ __LOG("CMMCScBkupReadDataTransferRequestBase::PrepareDataTransferL() - data transmitted, waiting for request completion...");
+
+ // When the SBE informs us that it has read the data, we'll need to send it the next
+ // chunk.
+ SetState( EProcessData );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::ReadChunkL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupReadDataTransferRequestBase::ReadChunkL( TDes8& aSink, TInt aLength )
+ {
+ const TInt endOffset = CurrentReadInfo().EndOffset();
+ __LOG4("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - START - aLength: %d, endOffset: %d, iCurrentOffset: %d, sinkLength: %d", aLength, endOffset, iCurrentOffset, aSink.Length());
+ //
+ if ( iCurrentOffset >= 0 && iCurrentOffset <= endOffset )
+ {
+ if ( aLength > 0 )
+ {
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = Driver().DrvADI();
+
+ // We read based upon the current offset and the specified length
+ TPtr8 sink( iTemporaryTransferSink->Des() );
+ const TMMCScBkupArchiveVector readRequest( iCurrentOffset, aLength );
+ const TMMCScBkupArchiveVector& readResult = archiveDataInterface.ADIReadL( sink, readRequest );
+ __LOG2("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - read result - offset: %d, length: %d", readResult.Offset(), readResult.Length());
+
+ // Update offset
+ iCurrentOffset += readResult.Length();
+ aSink.Append( sink );
+ __LOG2("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - new offset (iCurrentOffset): %d, sink Length: %d", iCurrentOffset, aSink.Length());
+
+#ifdef DEBUGGING_DATA_TRANSFER
+ TRAP_IGNORE( DumpTransferDataL( archiveDataInterface.ADIFsSession(), sink) );
+#endif
+
+ if ( iCurrentOffset > CurrentReadInfo().EndOffset() )
+ {
+ __LOG("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - Fatal Error - read went beyond archive entry boundary!");
+ ASSERT( EFalse );
+ User::Leave( KErrCorrupt );
+ }
+ else
+ {
+ __LOG("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - read was okay - updating stats & reporting progress...");
+
+ // We managed to read the data okay, so let's update our stats
+ DataTransferred( readResult.Length() );
+
+ // ... and also update progress
+ Driver().DrvProgressHandler().MMCScBkupHandleProgress( readResult.Length() );
+ }
+ }
+ }
+ else
+ {
+ __LOG("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - Fatal Error - current offset out of bounds!");
+ ASSERT( EFalse );
+ User::Leave( KErrCorrupt );
+ }
+
+ __LOG("CMMCScBkupReadDataTransferRequestBase::ReadChunkL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL()
+ {
+ MMMCScBkupDriver& driver = Driver();
+ const TInt startingOffset = CurrentOffset();
+ const TInt finalOffset = CurrentReadInfo().EndOffset();
+
+ // Calculate how much data is remaining
+ const TInt amountOfDataStillToBeRead = finalOffset - startingOffset;
+
+ __LOG4("CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL() - START - startingOffset: 0x%08x, finalOffset: 0x%08x, amountToBeRead: %8d, iFinishedSupplyingData: %d",
+ startingOffset, finalOffset, amountOfDataStillToBeRead, iFinishedSupplyingData);
+
+ // Get a handle to the received data - but only if we don't already
+ // have a handle to it! Calling this method resets whatever is already
+ // in the transfer chunk - hence we must only call it once (at the beginning
+ // of a multi-chunked transfer)
+ if ( iTransferChunkPointer == NULL )
+ {
+ iTransferChunkPointer = &driver.DrvSecureBackupClient().TransferDataAddressL();
+ }
+
+ // How much space is available?
+ const TInt spaceAvailable = iTransferChunkPointer->MaxLength() - iTransferChunkPointer->Length();
+ const TInt amountToRead = Min( spaceAvailable, Min( iReadChunkSize, amountOfDataStillToBeRead ) );
+ __LOG2("CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL() - xfer space available: %8d, amountToRead: %8d", spaceAvailable, amountToRead);
+
+ // Do the read
+ ReadChunkL( *iTransferChunkPointer, amountToRead );
+
+ // Was this the last time we needed to perform a read?
+ const TBool lastReadFromArchive = ( CurrentOffset() == finalOffset );
+ __LOG1("CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL() - read data okay - lastReadFromArchive: %d", lastReadFromArchive);
+
+ // Check to see if the data sink chunk is full. If so then we need to let
+ // the SBE process what we've prepared so far, then we'll fill it with more
+ // data.
+ iFinishedSupplyingData = lastReadFromArchive;
+ TBool moreToBeRead = !lastReadFromArchive;
+ if ( !iFinishedSupplyingData && iTransferChunkPointer->Length() == iTransferChunkPointer->MaxLength() )
+ {
+ // Also cope with the boundary condition that the sink is full
+ // but we've also just given it the last byte anyway. In which case,
+ // we don't need to request a repeat transfer. This is actually
+ // all the data in one go.
+ moreToBeRead = EFalse;
+ }
+ //
+ __LOG1("CMMCScBkupReadDataTransferRequestBase::DoProcessChunkOfDataL() - END - more to read: %d", moreToBeRead);
+ return moreToBeRead;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::PrepareForNextEntry()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupReadDataTransferRequestBase::PrepareForNextEntry()
+ {
+ TBool anotherEntryAvailable = EFalse;
+
+ // Update our starting offset
+ iFinishedSupplyingData = EFalse;
+ iCurrentOffset = -1;
+ //
+ if ( ++iCurrentIndex < iEntries->Count() )
+ {
+ const TMMCScBkupArchiveVector& currentReadInfo = CurrentReadInfo();
+ iCurrentOffset = currentReadInfo.Offset();
+
+ __LOG3("CMMCScBkupReadDataTransferRequestBase::PrepareForNextEntry() - offset: %6d, length: %6d, drive: %c:", currentReadInfo.Offset(), currentReadInfo.Length(), 'A' + CurrentDrive() );
+
+ anotherEntryAvailable = ETrue;
+ }
+ //
+ return anotherEntryAvailable;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::CurrentDrive()
+//
+//
+// ---------------------------------------------------------------------------
+TDriveNumber CMMCScBkupReadDataTransferRequestBase::CurrentDrive() const
+ {
+ return CurrentEntry().iDrive;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::CurrentReadInfo()
+//
+//
+// ---------------------------------------------------------------------------
+const TMMCScBkupArchiveVector& CMMCScBkupReadDataTransferRequestBase::CurrentReadInfo() const
+ {
+ return CurrentEntry().iVector;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::CurrentEntry()
+//
+//
+// ---------------------------------------------------------------------------
+const TMMCScBkupArchiveDriveAndVector& CMMCScBkupReadDataTransferRequestBase::CurrentEntry() const
+ {
+ __ASSERT_ALWAYS( iCurrentIndex >= 0 && iCurrentIndex < iEntries->Count(), User::Invariant() );
+
+ // Get the next entry
+ const TMMCScBkupArchiveDriveAndVector& entry = (*iEntries)[ iCurrentIndex ];
+ return entry;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::RunError()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupReadDataTransferRequestBase::RunError( TInt aError )
+ {
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ const TSecureId sid = DataOwner().SecureId();
+ __LOGFILE3("CMMCScBkupReadDataTransferRequestBase::RunError() - **** - aError: %d, sid: 0x%08x, drive: %c", aError, sid.iId, 'A' + CurrentDrive() );
+#endif
+
+ TInt ret = KErrNone;
+
+ if ( aError == KErrNotFound )
+ {
+ // KErrNotFound is treated as non-fatal.
+ const TBool entryAvailable = PrepareForNextEntry();
+
+ // Try the next entry (if any)
+ TState nextState = EProcessData;
+ if ( entryAvailable )
+ {
+ __LOGFILE("CMMCScBkupReadDataTransferRequestBase::RunError() - **** - another drive available for same DO - trying the next drive...");
+ nextState = EProcessData;
+ }
+ else
+ {
+ // Done
+ __LOGFILE("CMMCScBkupReadDataTransferRequestBase::RunError() - **** - no drives let for same DO...");
+ nextState = EFinished;
+ }
+
+ SetState( nextState );
+ CompleteSelf();
+ }
+ else
+ {
+ // Everything else is fatal
+ __LOGFILE1( "CMMCScBkupReadDataTransferRequestBase::RunError() - **** - FATAL ERROR (%d)", aError );
+ ret = CMMCScBkupTransferRequestBase::RunError( aError );
+ }
+ //
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupReadDataTransferRequestBase::DumpTransferDataL()
+//
+//
+// ---------------------------------------------------------------------------
+#ifdef DEBUGGING_DATA_TRANSFER
+void CMMCScBkupReadDataTransferRequestBase::DumpTransferDataL( RFs& aFsSession, const TDesC8& aData ) const
+ {
+ TPtrC subDirectory( KNullDesC );
+ //
+ switch( ElementType() )
+ {
+ case EMMCScBkupOwnerDataTypeJavaData:
+ subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataJava);
+ break;
+ case EMMCScBkupOwnerDataTypeSystemData:
+ subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataSystem);
+ break;
+ case EMMCScBkupOwnerDataTypePassiveData:
+ subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataPassive);
+ break;
+ case EMMCScBkupOwnerDataTypeActiveData:
+ subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataActive);
+ break;
+ default:
+ User::Leave( KErrNotSupported );
+ break;
+ }
+ //
+ const TSecureId secureId = DataOwner().SecureId();
+ _LIT(KMMCScBkupFormatDes, "%S%S");
+ TFileName transferDumpFileName;
+ const TDesC& path = PathInfo::MemoryCardRootPath();
+ transferDumpFileName.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot);
+
+ transferDumpFileName.Append( subDirectory );
+ transferDumpFileName.Append( KMMCScBkupDataTransferDebuggingPathDataRestore );
+ transferDumpFileName.AppendFormat( KMMCScBkupDataTransferDebuggingFileName, secureId.iId, 'a' + CurrentDrive() );
+ //
+ RFile64 file;
+ TInt error = KErrNone;
+ TEntry entry;
+ if ( aFsSession.Entry( transferDumpFileName, entry ) == KErrNone )
+ {
+ // Already exists - append data
+ error = file.Open( aFsSession, transferDumpFileName, EFileWrite | EFileStream | EFileShareExclusive );
+ }
+ else
+ {
+ entry.iSize = 0;
+ error = file.Create( aFsSession, transferDumpFileName, EFileWrite | EFileStream | EFileShareExclusive );
+ }
+ //
+ User::LeaveIfError( error );
+ CleanupClosePushL( file );
+ error = file.Write( entry.iSize, aData );
+ CleanupStack::PopAndDestroy( &file );
+ }
+#endif
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupTransferRequest.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,271 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupTransferRequestBase implementation
+*
+*
+*/
+
+#include "CMMCScBkupTransferRequest.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMMCScBkupDriver.h"
+#include "CMMCScBkupArchive.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::CMMCScBkupTransferRequestBase()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupTransferRequestBase::CMMCScBkupTransferRequestBase( MMMCScBkupDriver& aDriver, TMMCScBkupOwnerDataType aElementType, TBool aUpdateOperationalSizes, TInt aPriority )
+: CActive( aPriority ), iDriver( aDriver ), iElementType( aElementType ), iUpdateOperationalSizes( aUpdateOperationalSizes )
+ {
+ CActiveScheduler::Add( this );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::~CMMCScBkupTransferRequestBase()
+//
+// C++ destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupTransferRequestBase::~CMMCScBkupTransferRequestBase()
+ {
+ Cancel();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::RequestL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupTransferRequestBase::RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver )
+ {
+ __ASSERT_ALWAYS( !IsActive(), User::Invariant() );
+ //
+ iDataOwner = &aOwner;
+ SetObserver( aObserver );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::SingleDriveTransferCompleteL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupTransferRequestBase::SingleDriveTransferCompleteL()
+ {
+ if ( iUpdateOperationalSizes )
+ {
+ const TDriveNumber drive = CurrentDrive();
+ const TInt amount = AmountOfDataTransferred();
+ __LOG3("CMMCScBkupTransferRequestBase::SingleDriveTransferCompleteL() - drive: %c:, amount: %8d, elementType: %S", drive + 'A', amount, &MMCScBkupLogger::DataType( ElementType() ) );
+ //
+ ASSERT( drive >= EDriveA && drive <= EDriveZ );
+ }
+
+ ResetDataTransferCounter();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::TransferCompleteL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupTransferRequestBase::TransferCompleteL()
+ {
+ DataOwner().SetCompletionStatus( iElementType, ETrue );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::CompleteSelf()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupTransferRequestBase::CompleteSelf( TInt aCompletionCode )
+ {
+ SetActive();
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, aCompletionCode);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::SetObserver()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupTransferRequestBase::SetObserver( TRequestStatus& aObserver )
+ {
+ __ASSERT_DEBUG( iObserver == NULL, User::Invariant() );
+ iObserver = &aObserver;
+ aObserver = KRequestPending;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::CompleteObserverRequest()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupTransferRequestBase::CompleteObserverRequest( TInt aCompletionCode )
+ {
+ __LOG1("CMMCScBkupTransferRequestBase::CompleteObserverRequest() - aCompletionCode: %d", aCompletionCode);
+ __ASSERT_ALWAYS(iObserver != NULL, User::Invariant());
+ User::RequestComplete(iObserver, aCompletionCode);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::RunL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupTransferRequestBase::RunL()
+ {
+ __LOG2("CMMCScBkupTransferRequestBase::RunL() - START - iStatus: %d, iState: %d", iStatus.Int(), iState);
+
+ User::LeaveIfError( iStatus.Int() );
+ //
+ switch( State() )
+ {
+ case ETransferData:
+ __LOG("CMMCScBkupTransferRequestBase::RunL() - ETransferData");
+ PrepareDataTransferL();
+ break;
+
+ case EProcessData:
+ __LOG("CMMCScBkupTransferRequestBase::RunL() - EProcessData");
+ ProcessDataChunkL();
+ break;
+
+ case EFinished:
+ // Inform any interested derived classes
+ __LOG("CMMCScBkupTransferRequestBase::RunL() - EFinished - transfer complete....");
+ TransferCompleteL();
+
+ // Notify observer
+ __LOG("CMMCScBkupTransferRequestBase::RunL() - EFinished - complete observer...");
+ CompleteObserverRequest( KErrNone );
+ break;
+
+ default:
+ case EIdle:
+ __LOG("CMMCScBkupTransferRequestBase::RunL() - EIdle - User::Invariant()");
+ ASSERT( EFalse );
+ break;
+ }
+
+ __LOG2("CMMCScBkupTransferRequestBase::RunL() - END - iStatus: %d, iState: %d", iStatus.Int(), iState);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::DoCancel()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupTransferRequestBase::DoCancel()
+ {
+ CompleteObserverRequest( KErrCancel );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::RunError()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupTransferRequestBase::RunError( TInt aError )
+ {
+ if ( aError != KErrNone )
+ {
+ __LOGFILE1("CMMCScBkupTransferRequestBase::RunError() - **** - ERROR (%d) -> complete observer with error code", aError);
+ }
+ //
+ CompleteObserverRequest( aError );
+ return KErrNone;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupTransferRequestBase::ProcessDataChunkL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupTransferRequestBase::ProcessDataChunkL()
+ {
+ __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - START");
+
+ // Now call virtual function to do the processing
+ const TBool requiresMoreChunkProcessing = ProcessChunkOfDataL();
+ __LOG1("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - requiresMoreChunkProcessing: %d", requiresMoreChunkProcessing);
+ //
+ TState nextState = EProcessData;
+ if ( !requiresMoreChunkProcessing )
+ {
+ __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - did not require more processing... ");
+ SingleDriveTransferCompleteL();
+ //
+ nextState = ETransferData;
+ __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - nextState is: ETransferData");
+ }
+ else
+ {
+ __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - nextState is: EProcessData");
+ }
+
+ // Must check IsActive(), since CMMCScBkupReadDataTransferRequestBase::ProcessChunkOfDataL()
+ // changes state and set's active within the ProcessChunkOfDataL callback
+ if ( !IsActive() )
+ {
+ __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - not active - completing self and changing state!");
+ SetState( nextState );
+ CompleteSelf();
+ }
+ else
+ {
+ __LOG1("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - already active - state is: %d", State());
+ }
+
+ __LOG("CMMCScBkupTransferRequestBase::ProcessDataChunkL() - END");
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupTransferWriteRequest.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,491 @@
+/*
+* Copyright (c) 2005 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: CMMCScBkupWriteDataTransferRequestBase implementation
+*
+*
+*/
+
+#include "CMMCScBkupTransferWriteRequest.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMMCScBkupDriver.h"
+#include "CMMCScBkupArchive.h"
+#include "MMCScBkupSBEUtils.h"
+#include "RMMCScBkupProgressSizer.h"
+#include "MMMCScBkupProgressObserver.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+#include "CMMCScBkupDriveAndOperationTypeManager.h"
+#include <pathinfo.h>
+
+
+
+#ifdef __MMCSCBKUP_DATA_LOGGING_ENABLED__
+
+static void __DebugDump( const TDesC& aFmt, const TUint8* aAddress, const TUint8* aDisplayStartAddress, TInt aLength, TInt aMaxLength)
+ {
+ const TInt maxLen = aMaxLength;
+ TInt len = aLength;
+ const TUint8* pDataAddr = aAddress;
+
+ TBuf<81> out;
+ TBuf<20> ascii;
+ TInt offset = 0;
+ const TUint8* a = pDataAddr;
+ const TUint8* displayAddress = aDisplayStartAddress;
+ //
+ while(len>0)
+ {
+ out.Zero();
+ ascii.Zero();
+ out.AppendNumFixedWidth((TUint) displayAddress, EHex, 8);
+ out.Append(_L(": "));
+
+ TUint b;
+ for (b=0; b<16; b++)
+ {
+ TUint8 c = ' ';
+ if ((pDataAddr + offset + b) < pDataAddr + maxLen)
+ {
+ c = *(pDataAddr + offset + b);
+ out.AppendNumFixedWidth(c, EHex, 2);
+ }
+ else
+ {
+ out.Append(_L(" "));
+ }
+ out.Append(' ');
+ if (c<=0x20 || c>=0x7f || c=='%')
+ c=0x2e;
+ ascii.Append(TChar(c));
+ }
+ out.Append(ascii);
+ out.ZeroTerminate();
+
+ RDebug::Print(aFmt, &out);
+
+ displayAddress += 16;
+ a += 16;
+ offset += 16;
+ len -= 16;
+ }
+ }
+
+#endif
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupWriteDataTransferRequestBase::CMMCScBkupWriteDataTransferRequestBase()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupWriteDataTransferRequestBase::CMMCScBkupWriteDataTransferRequestBase(
+ MMMCScBkupDriver& aDriver,
+ MMMCScBkupIndexHandler& aIndexHandler,
+ TMMCScBkupOwnerDataType aElementType,
+ TSBDerivedType aExpectedTransferType,
+ TInt aPriority )
+
+: CMMCScBkupTransferRequestBase( aDriver, aElementType, aPriority ),
+ iIndexHandler( aIndexHandler ),
+ iExpectedTransferType( aExpectedTransferType )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupWriteDataTransferRequestBase::~CMMCScBkupWriteDataTransferRequestBase()
+//
+// Destructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupWriteDataTransferRequestBase::~CMMCScBkupWriteDataTransferRequestBase()
+ {
+ delete iTransferType;
+ if ( iStreamIsOpen )
+ {
+ iStream.Close();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupWriteDataTransferRequestBase::RequestL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupWriteDataTransferRequestBase::RequestL( CMMCScBkupDataOwnerInfo& aOwner, TRequestStatus& aObserver, const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperations )
+ {
+#ifdef __MMCSCBKUPLOGGING_ENABLED__
+ if ( ElementType() == EMMCScBkupOwnerDataTypeJavaData )
+ {
+ HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( aOwner.Owner().Identifier() );
+ __LOG2("CMMCScBkupWriteDataTransferRequestBase::RequestL() - START - reading data from SBE for JavaHash: %S, ElementType: %S", hash, &MMCScBkupLogger::DataType( ElementType() ));
+ CleanupStack::PopAndDestroy( hash );
+ }
+ else
+ {
+ __LOG2("CMMCScBkupWriteDataTransferRequestBase::RequestL() - START - reading data from SBE for DO: 0x%08x, ElementType: %S", aOwner.SecureId().iId, &MMCScBkupLogger::DataType( ElementType() ));
+ }
+#endif
+
+ iDriveAndOperations = &aDriveAndOperations;
+ CMMCScBkupTransferRequestBase::RequestL( aOwner, aObserver );
+ //
+ iDriveFilter.Reset();
+ iDriveFilter.SetPrimaryDriveFilter( iDriveAndOperations->DriveList() );
+ iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() );
+
+ // Set us going
+ SetState( ETransferData );
+ CompleteSelf();
+ __LOG("CMMCScBkupWriteDataTransferRequestBase::RequestL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL()
+ {
+ MMMCScBkupDriver& driver = Driver();
+ MMMCScBkupArchiveDataInterface& archiveDataInterface = driver.DrvADI();
+
+ // Get a handle to the received data
+ TBool finished = EFalse;
+ CSBGenericTransferType* receivedTransferInfo = NULL;
+ const TPtrC8& pData = driver.DrvSecureBackupClient().TransferDataInfoL( receivedTransferInfo, finished );
+ iAdditionalTransferRequired = !finished;
+
+ __LOG4("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - received: %d bytes from SBE for SID: 0x%08x, Drive: %c:, ElementType: %S", pData.Length(), DataOwner().SecureId().iId, 'A' + CurrentDrive(), &MMCScBkupLogger::DataType( ElementType() ) );
+
+ // Validate the data
+ CleanupStack::PushL( receivedTransferInfo );
+ ValidateTransferInfoL( receivedTransferInfo );
+ CleanupStack::PopAndDestroy( receivedTransferInfo );
+
+ // If we've never written any registration data before, then we must
+ // request a write stream at the current archive write pos...
+ if ( pData.Length() && !iStreamIsOpen )
+ {
+ __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - stream isnt open - opening now..." );
+
+ iStream = archiveDataInterface.ADIWriteStreamUncompressedLC();
+ CleanupStack::Pop(); // iWriteStream - gets closed in dtor in case of leave
+ iStreamIsOpen = ETrue;
+ }
+
+ // Write the data - assumes stream already open if this is not the
+ // first time that we've received data for this drive...
+ //
+ // We don't use the externalisation operators, as we want to write
+ // only the data (no leading byte count etc).
+ if ( pData.Length() )
+ {
+ __LOG1("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - got %d bytes of data...", pData.Length() );
+
+#ifdef __MMCSCBKUP_DATA_LOGGING_ENABLED__
+ _LIT(KDumpFormat, "SBEData - %S - ");
+ __DebugDump( KDumpFormat, pData.Ptr(), pData.Ptr(), pData.Length(), pData.Length() );
+#endif
+
+ // Write the data to the stream
+ __LOG1("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - writing %d bytes to stream...", pData.Length() );
+ iStream.WriteL(pData);
+ __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - data written OK");
+
+ // Update our stats. We overwrite any earlier estimate from the SBE
+ // with the actual values that we ultimately end up writing to the
+ // archive. This allows us to provide a more accurate restore progress
+ // experience.
+ DataTransferred( pData.Length() );
+
+#ifdef DEBUGGING_DATA_TRANSFER
+ TRAP_IGNORE( DumpTransferDataL( archiveDataInterface.ADIFsSession(), pData ) );
+#endif
+ }
+
+ // If we've received everything we can commit & close the stream
+ if ( finished )
+ {
+ __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - finished...");
+
+ // Implicitly, if the stream is open then we have written some
+ // data to the archive. Therefore we only add an index record
+ // when the stream is open.
+ if ( iStreamIsOpen )
+ {
+ __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - Committing stream...");
+ iStream.CommitL();
+
+ __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - Closing stream...");
+ iStream.Close();
+ iStreamIsOpen = EFalse;
+
+ // Must store the position, as we're going to also write an index at
+ // the end of this whole process.
+ __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - Adding index record...");
+ CMMCScBkupArchiveFooter& footer = driver.DrvArchive().Footer();
+ const TMMCScBkupArchiveVector& info = archiveDataInterface.ADICurrentArchiveVectorInfo();
+
+ // If we actually wrote something to the archive, then add an index record.
+ if (info.Length())
+ {
+ iIndexHandler.AddIndexRecordL( footer, DataOwner(), info, CurrentDrive() );
+ }
+ }
+ }
+
+ // Not yet supporting chunked transfer
+ __LOG("CMMCScBkupWriteDataTransferRequestBase::ProcessChunkOfDataL() - END");
+ return EFalse;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL()
+ {
+ // If we must make a repeat transfer request, then we don't yet
+ // move to the next drive.
+ if ( iAdditionalTransferRequired )
+ {
+ // Must ask for more of the same data, so no need
+ // to rebuild transfer info - we just reuse it
+ RequestDataTransferL();
+ }
+ else
+ {
+ // Can move to the next drive
+ TDriveNumber drive = EDriveA;
+ const TBool driveAvailable = iDriveFilter.NextValidDrive( drive );
+ __LOG1("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - current drive: %c", drive + 'A');
+ __LOG1("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - driveAvailable: %d", driveAvailable);
+
+ if ( driveAvailable )
+ {
+ const TBool dataTransferAllowableForDrive = iDriveAndOperations->IsDataTypeAllowedToAccessDrive( drive, ElementType() );
+ __LOG1("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - dataTransferAllowableForDrive: %d", dataTransferAllowableForDrive);
+
+ if ( dataTransferAllowableForDrive )
+ {
+ __LOG1("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - making transfer request for drive: %c", drive + 'A');
+
+ // Update the current drive
+ SetCurrentDrive( drive );
+
+ // Make virtual function call to make transfer object
+ const CSBGenericDataType& generic = DataOwner().Owner().Identifier();
+ CSBGenericTransferType* transferType = PrepareTransferTypeL( generic, CurrentDrive(), DataOwner().Version() );
+ delete iTransferType;
+ iTransferType = transferType;
+
+ // We have a transfer packet, so now request data
+ RequestDataTransferL();
+ }
+ else
+ {
+ // Couldn't process this drive, let's try to find another drive.
+ // This means we don't change state this time.
+ __LOG("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - not allowed to back up this drive... trying next one...");
+ CompleteSelf( KErrNone );
+ }
+ }
+ else
+ {
+ // No more drives left, we've finished!
+ __LOG("CMMCScBkupWriteDataTransferRequestBase::PrepareDataTransferL() - no more drives to process - we are finished!");
+ SetState( EFinished );
+ CompleteSelf();
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupWriteDataTransferRequestBase::CurrentDrive()
+//
+//
+// ---------------------------------------------------------------------------
+TDriveNumber CMMCScBkupWriteDataTransferRequestBase::CurrentDrive() const
+ {
+ return iCurrentDrive;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupWriteDataTransferRequestBase::ValidateTransferInfoL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupWriteDataTransferRequestBase::ValidateTransferInfoL( CSBGenericTransferType* aInfo )
+ {
+ if ( !aInfo )
+ {
+ User::Leave( KErrCorrupt );
+ }
+
+ // Check the type is as expected
+ const TSBDerivedType type = aInfo->DerivedTypeL();
+ if ( type != iExpectedTransferType )
+ {
+ __LOG2("CMMCScBkupWriteDataTransferRequestBase::ValidateTransferInfoL() - ERROR - types don not match! type: %d vs expected: %d", type, iExpectedTransferType );
+ User::Leave( KErrNotSupported );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupWriteDataTransferRequestBase::RequestDataTransferL()
+//
+//
+// ---------------------------------------------------------------------------
+void CMMCScBkupWriteDataTransferRequestBase::RequestDataTransferL()
+ {
+ __LOG3("CMMCScBkupWriteDataTransferRequestBase::RequestDataTransferL() - requesting data from SBE for SID: 0x%08x, Drive: %c:, ElementType: %S", DataOwner().SecureId().iId, 'A' + CurrentDrive(), &MMCScBkupLogger::DataType( ElementType() ) );
+
+ CSBEClient& sbeClient = Driver().DrvSecureBackupClient();
+ sbeClient.RequestDataL( *iTransferType, iStatus );
+ SetActive();
+ SetState( EProcessData );
+
+ // Report the progress
+ RMMCScBkupProgressSizer progressSizer( Driver().DrvParamsBase().DriveAndOperations() );
+ progressSizer.BackupReportFixedProgressForOpL( Driver().DrvProgressHandler(), ElementType() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupWriteDataTransferRequestBase::RunError()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CMMCScBkupWriteDataTransferRequestBase::RunError( TInt aError )
+ {
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+ const TSecureId sid = DataOwner().SecureId();
+ __LOGFILE3("CMMCScBkupWriteDataTransferRequestBase::RunError() - **** - aError: %d, sid: 0x%08x, drive: %c", aError, sid.iId, 'A' + CurrentDrive() );
+#endif
+
+ TInt ret = KErrNone;
+
+ // Make sure we close the stream (if we had it open)
+ if ( iStreamIsOpen )
+ {
+ iStream.Close();
+ iStreamIsOpen = EFalse;
+ }
+
+ // Now notify the observer or silently try again (depends on type of error)
+ if ( aError == KErrNotFound )
+ {
+ __LOGFILE1("CMMCScBkupWriteDataTransferRequestBase::RunError() - **** - non fatal error (%d) so trying the next drive...", aError);
+
+ // Try the next drive - if none is available, it will complete the
+ // observer as if nothing went wrong.
+ iAdditionalTransferRequired = EFalse;
+ SetState( ETransferData );
+ CompleteSelf();
+ }
+ else
+ {
+ __LOGFILE1("CMMCScBkupWriteDataTransferRequestBase::RunError() - **** - FATAL ERROR (%d)", aError);
+ ret = CMMCScBkupTransferRequestBase::RunError( aError );
+ }
+ //
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupWriteDataTransferRequestBase::DumpTransferDataL()
+//
+//
+// ---------------------------------------------------------------------------
+#ifdef DEBUGGING_DATA_TRANSFER
+void CMMCScBkupWriteDataTransferRequestBase::DumpTransferDataL( RFs& aFsSession, const TDesC8& aData ) const
+ {
+ TPtrC subDirectory( KNullDesC );
+ //
+ switch( ElementType() )
+ {
+ case EMMCScBkupOwnerDataTypeJavaData:
+ subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataJava);
+ break;
+ case EMMCScBkupOwnerDataTypeSystemData:
+ subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataSystem);
+ break;
+ case EMMCScBkupOwnerDataTypePassiveData:
+ subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataPassive);
+ break;
+ case EMMCScBkupOwnerDataTypeActiveData:
+ subDirectory.Set(KMMCScBkupDataTransferDebuggingPathDataActive);
+ break;
+ default:
+ User::Leave( KErrNotSupported );
+ break;
+ }
+ //
+ const TSecureId secureId = DataOwner().SecureId();
+ _LIT(KMMCScBkupFormatDes, "%S%S");
+ TFileName transferDumpFileName;
+ const TDesC& path = PathInfo::MemoryCardRootPath();
+ transferDumpFileName.Format(KMMCScBkupFormatDes, &path, &KMMCScBkupDataTransferDebuggingPathRoot);
+
+ transferDumpFileName.Append( subDirectory );
+ transferDumpFileName.Append( KMMCScBkupDataTransferDebuggingPathDataBackup );
+ transferDumpFileName.AppendFormat( KMMCScBkupDataTransferDebuggingFileName, secureId.iId, 'a' + CurrentDrive() );
+ //
+ RFile64 file;
+ TInt error = KErrNone;
+ TEntry entry;
+ if ( aFsSession.Entry( transferDumpFileName, entry ) == KErrNone )
+ {
+ // Already exists - append data
+ error = file.Open( aFsSession, transferDumpFileName, EFileWrite | EFileStream | EFileShareExclusive );
+ }
+ else
+ {
+ entry.iSize = 0;
+ error = file.Create( aFsSession, transferDumpFileName, EFileWrite | EFileStream | EFileShareExclusive );
+ }
+ //
+ User::LeaveIfError( error );
+ CleanupClosePushL( file );
+ error = file.Write( entry.iSize, aData );
+ CleanupStack::PopAndDestroy( &file );
+ }
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/MMCScBkupArchiveUtils.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,709 @@
+/*
+* Copyright (c) 2005 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: MMCScBkupArchiveUtils implementation
+*
+*
+*/
+
+#include "MMCScBkupArchiveUtils.h"
+
+// System includes
+#include <s32file.h>
+#include <s32mem.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMCScBkupDllUids.h"
+#include "MMCScBkupPhoneModelUtils.h"
+#include "CMMCScBkupArchiveFooter.h"
+#include "CMMCScBkupArchiveHeader.h"
+#include "MMMCScBkupArchiveDataInterface.h"
+#include "MMCScBkupArchiveFlags.h"
+
+// Constants
+const TInt8 KMMCScBkupArchiveFileFormatVersionMajor = 1;
+#ifdef RD_FILE_MANAGER_BACKUP
+const TInt8 KMMCScBkupArchiveFileFormatVersionMinor = 1;
+#else
+const TInt8 KMMCScBkupArchiveFileFormatVersionMinor = 0;
+#endif
+const TInt16 KMMCScBkupArchiveFileFormatVersionBuild = 1;
+const TUid KMMCScBkupArchiveFileFormatUid1 = { KMMCAppEngUID3 };
+const TUid KMMCScBkupArchiveFileFormatUid2 = { 0 };
+const TUid KMMCScBkupArchiveFileFormatUid3 = { 0x0BACCCCC }; // FIX
+
+ /**
+ * Fixed Header
+ * ============
+ *
+ * 12 bytes = 3 uids
+ * 4 bytes = 1 uid crc checksum
+ *
+ * ARCHIVE FILE FORMAT VERSION
+ * {
+ * 1 byte = version major
+ * 1 byte = version minor
+ * 2 bytes = version build
+ * }
+ *
+ * 4 bytes = size of footer in bytes - this is always the same
+ * fixed length, hence we can write the size here.
+ * The value can then be used to work from the back of the
+ * archive to the starting position of the footer (where
+ * most of the juicy info is).
+ *
+ * 4 bytes = archive flags
+ *
+ * 4 bytes = archive payload CRC (activated when RD_FILE_MANAGER_BACKUP)
+ *
+ * 4 bytes = archive category
+ *
+ * 4 bytes = archive header CRC (activated when RD_FILE_MANAGER_BACKUP)
+ *
+ * KMMCScSpareByteCount bytes = spare padding
+ *
+ * 1 byte = phone model version string length
+ * n bytes = phone model version string
+ *
+ *
+ *
+ * Note that we deliberately do not use the streaming chevrons
+ * as we then risk the problem of running the string through
+ * a unicode compressor first.
+ */
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::ArchiveUidType()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupArchiveUtils::ArchiveUidType(TUidType& aType)
+ {
+ aType = TUidType( KMMCScBkupArchiveFileFormatUid1,
+ KMMCScBkupArchiveFileFormatUid2,
+ KMMCScBkupArchiveFileFormatUid3 );
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::ArchiveCheckedUid()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupArchiveUtils::ArchiveCheckedUid(TCheckedUid& aCheckedUids)
+ {
+ TUidType uidType;
+ ArchiveUidType( uidType );
+ aCheckedUids.Set( uidType );
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::PhoneModelFromArchiveLC()
+//
+//
+// ---------------------------------------------------------------------------
+HBufC8* MMCScBkupArchiveUtils::PhoneModelFromArchiveLC( MMMCScBkupArchiveDataInterface& aADI )
+ {
+ const TInt phoneModelOffset = OffsetOfModelInformation();
+ //
+ RReadStream stream( aADI.ADIReadStreamUncompressedLC( phoneModelOffset ) );
+ HBufC8* modelInfo = PhoneModelFromArchiveLC( stream);
+ CleanupStack::PopAndDestroy(); // stream
+ //
+ return modelInfo;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::ReadPhoneValidityInformationL()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupArchiveUtils::ReadPhoneValidityInformationL( RFs& aFsSession, const TDesC& aFileName, HBufC8*& aPhoneModelData, TBitFlags& aArchiveFlags, TVersion& aArchiveVersion )
+ {
+ __ASSERT_DEBUG( aPhoneModelData == NULL, User::Invariant() );
+ //
+ RFile64 file;
+ TInt error = file.Open( aFsSession, aFileName, EFileShareReadersOnly | EFileStream | EFileRead );
+ User::LeaveIfError( error );
+ CleanupClosePushL(file);
+
+ // First, read the archive flags
+ aArchiveFlags = ReadArchiveFlagsL( file );
+
+ // Read version
+ ReadArchiveVersionL( file, aArchiveVersion );
+
+ // Then, create a stream interface to the file
+ const TInt phoneModelOffset = OffsetOfModelInformation();
+ RFileReadStream stream( file, phoneModelOffset );
+ CleanupStack::Pop( &file );
+ CleanupClosePushL( stream ); // stream takes ownership of the file now
+ //
+ HBufC8* modelInfo = PhoneModelFromArchiveLC( stream );
+
+ // Unfortunately we have to juggle the cleanup stack
+ CleanupStack::Pop( modelInfo );
+ CleanupStack::PopAndDestroy( &stream ); // also closes the file
+
+ // Done
+ aPhoneModelData = modelInfo;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::ArchiveRunTimeFileFormatVersion()
+//
+//
+// ---------------------------------------------------------------------------
+TVersion MMCScBkupArchiveUtils::ArchiveRunTimeFileFormatVersion()
+ {
+ return TVersion( KMMCScBkupArchiveFileFormatVersionMajor,
+ KMMCScBkupArchiveFileFormatVersionMinor,
+ KMMCScBkupArchiveFileFormatVersionBuild );
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::WriteHeaderL()
+//
+//
+// ---------------------------------------------------------------------------
+const TMMCScBkupArchiveVector& MMCScBkupArchiveUtils::WriteHeaderL( MMMCScBkupArchiveDataInterface& aADI,
+ TBitFlags aCategory )
+ {
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - START");
+ RWriteStream stream( aADI.ADIWriteStreamUncompressedLC() );
+
+ // 16 bytes = uids + *uid* checksum
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [16] write uids + checksum");
+ TCheckedUid checkedUid;
+ ArchiveCheckedUid( checkedUid );
+ const TPtrC8 pUidAndCRC( checkedUid.Des() );
+ stream.WriteL( pUidAndCRC );
+
+ // 4 bytes = file format version
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] write version");
+ const TVersion version( ArchiveRunTimeFileFormatVersion() );
+ stream.WriteInt8L( version.iMajor );
+ stream.WriteInt8L( version.iMinor );
+ stream.WriteInt16L( version.iBuild );
+
+ // 4 bytes = Footer length - starts life as length of 0, and
+ // is then written to again later on after the footer has
+ // been exteranlised.
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] write size of footer (starts life as 0)");
+ const TInt footerLength = 0;
+ stream.WriteInt32L( footerLength );
+
+ // 4 bytes = Archive flags
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] archive flags (archive starts life invalid)");
+ const TUint32 defaultArchiveFlags = DefaultArchiveFlags();
+ stream.WriteUint32L( defaultArchiveFlags );
+
+ // 4 bytes = Initial payload CRC value, this will be updated with the final
+ // CRC once the entire archive has been prepared.
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] archive payload CRC");
+ const TUint32 initialPayloadCRC = 0;
+ stream.WriteUint32L( initialPayloadCRC );
+
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] archive category");
+ stream.WriteUint32L( aCategory.iFlags );
+
+ // 4 bytes = Initial header CRC value, this will be updated with the final
+ // CRC once the entire archive has been prepared.
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 4] archive header CRC");
+ const TUint32 initialHeaderCRC = 0;
+ stream.WriteUint32L( initialHeaderCRC );
+
+ // KMMCScSpareByteCount = padding, for future use
+ __LOG1("MMCScBkupArchiveUtils::WriteHeaderL() - [%d] padding/spare data", KMMCScSpareByteCount);
+ for(TInt i = 0; i < KMMCScSpareByteCount/sizeof(TInt32); i++)
+ {
+ stream.WriteInt32L( 0 );
+ }
+
+ // 1 byte = Phone model version string length
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [ 1] phone model length");
+ HBufC8* phoneModelString = MMCScBkupPhoneModelUtils::CurrentPhoneModelLC();
+ stream.WriteInt8L( phoneModelString->Length() );
+
+ // Then the version string itself
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - [??] phone model string");
+ stream.WriteL( *phoneModelString );
+
+ // Tidy up
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - committing stream...");
+ stream.CommitL();
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - destroying stream...");
+ CleanupStack::PopAndDestroy( 2 ); // phoneModelString and stream
+
+ __LOG("MMCScBkupArchiveUtils::WriteHeaderL() - END");
+ return aADI.ADICurrentArchiveVectorInfo();
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::ReadHeaderL()
+//
+//
+// ---------------------------------------------------------------------------
+const TMMCScBkupArchiveVector& MMCScBkupArchiveUtils::ReadHeaderL( MMMCScBkupArchiveDataInterface& aADI, CMMCScBkupArchiveHeader& aHeader )
+ {
+ __LOG("MMCScBkupArchiveUtils::ReadHeaderL() - START");
+ RReadStream stream( aADI.ADIReadStreamUncompressedLC() );
+
+ // 16 bytes = uids + *uid* checksum
+ TBuf8<16> uidBuffer;
+ stream.ReadL( uidBuffer, uidBuffer.MaxLength() );
+
+ // Create a UID type objjec
+ TCheckedUid checkedUid( uidBuffer );
+ const TUidType uids( checkedUid.UidType()) ;
+ __LOG3("MMCScBkupArchiveUtils::ReadHeaderL() - uids: 0x%08x/0x%08x/0x%08x", uids[0], uids[1], uids[2] );
+ if ( uids[0] == KNullUid && uids[1] == KNullUid && uids[2] == KNullUid )
+ {
+ // Apparently, TCheckedUid sets the uids to 0 when the CRC doesn't match
+ // the value read from the file.
+ User::Leave( KErrNotSupported );
+ }
+ aHeader.SetCheckedUid( checkedUid );
+
+ // 4 bytes = file format version
+ TVersion version;
+ version.iMajor = stream.ReadInt8L();
+ version.iMinor = stream.ReadInt8L();
+ version.iBuild = stream.ReadInt16L();
+ aHeader.SetVersion( version );
+ __LOG3("MMCScBkupArchiveUtils::ReadHeaderL() - version: %3d.%3d.%6d", version.iMajor, version.iMinor, version.iBuild );
+
+ // 4 bytes = Length of footer
+ const TInt footerLength = stream.ReadInt32L();
+ aHeader.SetFooterLength( footerLength );
+ __LOG1("MMCScBkupArchiveUtils::ReadHeaderL() - footerLength: %d", footerLength);
+
+ // 4 bytes = Archive flags
+ const TUint32 archiveFlags = stream.ReadUint32L();
+ aHeader.SetArchiveFlags( archiveFlags );
+ __LOG1("MMCScBkupArchiveUtils::ReadHeaderL() - archiveFlags: %d", archiveFlags);
+
+ // 4 bytes = Archive payload CRC
+ const TUint32 payloadCRC = stream.ReadUint32L();
+ __LOG1("MMCScBkupArchiveUtils::ReadHeaderL() - archive payload CRC: %d", payloadCRC);
+
+ // 4 bytes = Archive Category
+ const TUint32 archiveCategory = stream.ReadUint32L();
+ __LOG1("MMCScBkupArchiveUtils::ReadHeaderL() - archiveCategory: %d", archiveCategory);
+
+ // 4 bytes = Archive header CRC
+ const TUint32 headerCRC = stream.ReadUint32L();
+ __LOG1("MMCScBkupArchiveUtils::ReadHeaderL() - archive header CRC: %d", headerCRC);
+
+ // KMMCScSpareByteCount of padding (spare) data. Skip for now
+ for(TInt i = 0; i < KMMCScSpareByteCount/sizeof(TInt32); i++)
+ {
+ (void) stream.ReadInt32L();
+ }
+
+ // Then the version string itself - which is handled through a separate method:
+ HBufC8* phoneModel = PhoneModelFromArchiveLC( stream );
+ aHeader.SetPhoneModelIdentifierL( *phoneModel );
+ CleanupStack::PopAndDestroy( phoneModel );
+
+ // Clean up
+ CleanupStack::PopAndDestroy(); // stream
+
+ __LOG("MMCScBkupArchiveUtils::ReadHeaderL() - END");
+ return aADI.ADICurrentArchiveVectorInfo();
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::OffsetOfModelInformation()
+//
+//
+// ---------------------------------------------------------------------------
+TInt MMCScBkupArchiveUtils::OffsetOfModelInformation()
+ {
+ return EArchiveOffsetPhoneModelStringLength;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::PhoneModelFromArchiveLC()
+//
+//
+// ---------------------------------------------------------------------------
+HBufC8* MMCScBkupArchiveUtils::PhoneModelFromArchiveLC( RReadStream& aStream )
+ {
+ const TInt length = aStream.ReadInt8L();
+
+ // Validate against preconditions
+ const TInt maxLength = MMCScBkupPhoneModelUtils::MaximumPhoneModelIdentifierLength();
+ if ( length > maxLength || length < 0 )
+ {
+ User::Leave( KErrCorrupt );
+ }
+
+ // Now try to read the model identifier
+ HBufC8* model = HBufC8::NewLC( length );
+ TPtr8 pModel( model->Des() );
+ aStream.ReadL( pModel, length );
+
+ // All done
+ return model;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::DefaultArchiveFlags()
+//
+//
+// ---------------------------------------------------------------------------
+TUint32 MMCScBkupArchiveUtils::DefaultArchiveFlags()
+ {
+ return EMMCScBkupArchiveFlagsDefault;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::SetArchiveContentAsValidL()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupArchiveUtils::SetArchiveContentAsValidL( RFile64& aArchive )
+ {
+ TInt error = KErrNone;
+
+ // Calculate the offset to the archive flags:
+ const TUint archiveFlagsFileOffset = EArchiveOffsetArchiveFlags;
+
+ // Flags are four bytes. Read the existing raw flag data
+ TBuf8< KMMCScArchiveFlagsByteCount > flagData;
+ error = aArchive.Read( static_cast<TInt64>( archiveFlagsFileOffset ), flagData );
+ User::LeaveIfError( error );
+
+ // Interpret the flag data as real flags
+ RDesReadStream readStream( flagData );
+ CleanupClosePushL( readStream );
+ TUint32 archiveFlags = readStream.ReadUint32L();
+ CleanupStack::PopAndDestroy( &readStream );
+
+ // Twiddle the "archive is complete/valid" bits
+ archiveFlags |= EMMCScBkupArchiveFlagsContentValid;
+
+ // Write the flags back out the descriptor
+ flagData.Zero();
+ RDesWriteStream writeStream( flagData );
+ CleanupClosePushL( writeStream );
+ writeStream.WriteUint32L( archiveFlags );
+ writeStream.CommitL();
+ CleanupStack::PopAndDestroy( &writeStream );
+
+ // Then write them to the file itself
+ error = aArchive.Write( static_cast<TInt64>( archiveFlagsFileOffset ), flagData );
+ User::LeaveIfError( error );
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::SetFooterLengthL()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupArchiveUtils::SetFooterLengthL( RFile64& aArchive, TInt aLength )
+ {
+ TInt error = KErrNone;
+
+ // Calculate the offset to the footer length:
+ const TUint archiveFooterLengthOffset = EArchiveOffsetFooterLength;
+
+ // Prepare externalized representation of length
+ TBuf8< KMMCScArchiveFooterLengthByteCount > footerLengthData;
+ RDesWriteStream writeStream( footerLengthData );
+ CleanupClosePushL( writeStream );
+ writeStream.WriteInt32L( aLength );
+ writeStream.CommitL();
+ CleanupStack::PopAndDestroy( &writeStream );
+
+ // Then write them to the file itself
+ error = aArchive.Write( static_cast<TInt64>( archiveFooterLengthOffset ), footerLengthData );
+ User::LeaveIfError( error );
+ }
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::ReadBkUpCategoryInformationL()
+//
+//
+// ---------------------------------------------------------------------------
+TBitFlags MMCScBkupArchiveUtils::ReadBkUpCategoryInformationL( RFs& aFsSession, const TDesC& aFileName )
+ {
+ RFile64 file;
+ TInt error = file.Open( aFsSession, aFileName, EFileShareReadersOnly | EFileStream | EFileRead );
+ User::LeaveIfError( error );
+ CleanupClosePushL(file);
+
+ // Then, create a stream interface to the file
+ RFileReadStream stream( file, EArchiveOffsetArchiveCategory );
+ CleanupStack::Pop( &file );
+ CleanupClosePushL( stream ); // stream takes ownership of the file now
+ //
+ TUint category = stream.ReadUint32L();
+
+ CleanupStack::PopAndDestroy( &stream ); // also closes the file
+
+ TBitFlags ret;
+ ret.SetValue( category );
+
+ return ret;
+ }
+
+
+#ifdef RD_FILE_MANAGER_BACKUP
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::SetArchiveCrcsL()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupArchiveUtils::SetArchiveCrcsL( RFile64& aArchive, TUint32 aCrc )
+ {
+ TInt error = KErrNone;
+
+ // Payload crc
+ SetArchiveCrcL( aArchive, aCrc, EArchiveOffsetArchivePayloadCRC );
+
+ // Calculate and write header crc also to the file
+ TBuf8< KMMCScArchivePhoneModelStringLength > length;
+ TUint32 modelLength;
+ TUint32 headerCrc = 0;
+
+ error = aArchive.Read( static_cast<TInt64>( EArchiveOffsetPhoneModelStringLength ), length );
+ User::LeaveIfError(error);
+ RDesReadStream readStream( length );
+ CleanupClosePushL( readStream );
+ modelLength = readStream.ReadUint8L();
+ CleanupStack::PopAndDestroy( &readStream );
+
+ CalculateCrcFromArchive( headerCrc, aArchive, 0, EArchiveOffsetArchiveHeaderCRC);
+ CalculateCrcFromArchive( headerCrc, aArchive, EArchiveOffsetArchiveHeaderCRC + KMMCScArchiveCrcByteCount,
+ KMMCScSpareByteCount + KMMCScArchivePhoneModelStringLength + modelLength);
+ SetArchiveCrcL( aArchive, headerCrc, EArchiveOffsetArchiveHeaderCRC );
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::ValidateArchiveCrcsL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool MMCScBkupArchiveUtils::ValidateArchiveCrcsL( RFs& aFsSession, const TDesC& aFileName )
+ {
+ TBool validCrc = EFalse;
+
+ RFile64 file;
+ TInt64 size;
+
+ TInt error = file.Open( aFsSession, aFileName, EFileShareReadersOnly | EFileRead );
+
+ if ( error == KErrNone && file.Size(size) == KErrNone)
+ {
+ TBuf8< KMMCScArchiveFlagsByteCount > headerCrc;
+ TBuf8< KMMCScArchiveFlagsByteCount > payloadCrc;
+ TBuf8< KMMCScArchivePhoneModelStringLength > length;
+ TUint32 archivedHeaderCrc, calculatedHeaderCrc;
+ TUint32 archivedPayloadCrc, calculatedPayloadCrc;
+ TUint32 modelLength;
+
+ // Read crcs from header
+ error = file.Read( static_cast<TInt64>( EArchiveOffsetArchiveHeaderCRC ), headerCrc );
+ User::LeaveIfError(error);
+ error = file.Read( static_cast<TInt64>( EArchiveOffsetArchivePayloadCRC ), payloadCrc );
+ User::LeaveIfError(error);
+ error = file.Read( static_cast<TInt64>( EArchiveOffsetPhoneModelStringLength ), length );
+ User::LeaveIfError(error);
+ CleanupClosePushL( file );
+
+ RDesReadStream readStream( headerCrc );
+ CleanupClosePushL( readStream );
+ archivedHeaderCrc = readStream.ReadUint32L();
+ readStream.Close();
+ readStream.Open(payloadCrc);
+ archivedPayloadCrc = readStream.ReadUint32L();
+ readStream.Close();
+ readStream.Open(length);
+ modelLength = readStream.ReadUint8L();
+ CleanupStack::PopAndDestroy( &readStream );
+
+ // Calculate crc from header in two parts
+ calculatedHeaderCrc = 0;
+ CalculateCrcFromArchive( calculatedHeaderCrc, file, 0, EArchiveOffsetArchiveHeaderCRC);
+ CalculateCrcFromArchive( calculatedHeaderCrc, file, EArchiveOffsetArchiveHeaderCRC + KMMCScArchiveCrcByteCount,
+ KMMCScSpareByteCount + KMMCScArchivePhoneModelStringLength + modelLength);
+
+ // Calculate crc from payload and footer
+ TInt payloadSize = size - (EArchiveOffsetPhoneModelString + modelLength);
+ calculatedPayloadCrc = 0;
+ CalculateCrcFromArchive( calculatedPayloadCrc, file, EArchiveOffsetPhoneModelString + modelLength, payloadSize);
+
+ if(archivedPayloadCrc == calculatedPayloadCrc && archivedHeaderCrc == calculatedHeaderCrc)
+ {
+ validCrc = ETrue;
+ }
+ else
+ {
+ __LOG4("MMCScBkupArchiveUtils::ValidateArchiveCrcsL() - crc mismatch: %u vs. %u - %u vs. %u",
+ archivedPayloadCrc, calculatedPayloadCrc, archivedHeaderCrc, calculatedHeaderCrc);
+ }
+
+ CleanupStack::PopAndDestroy( &file );
+ }
+
+ return validCrc;
+ }
+#endif // RD_FILE_MANAGER_BACKUP
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::ReadArchiveFlagsL()
+//
+//
+// ---------------------------------------------------------------------------
+TBitFlags MMCScBkupArchiveUtils::ReadArchiveFlagsL( RFile64& aArchive )
+ {
+ TInt error = KErrNone;
+
+ // Calculate the offset to the archive flags:
+ const TUint archiveFlagsFileOffset = EArchiveOffsetArchiveFlags;
+
+ // Flags are four bytes. Read the existing raw flag data
+ TBuf8< KMMCScArchiveFlagsByteCount > flagData;
+ error = aArchive.Read( static_cast<TInt64>( archiveFlagsFileOffset ), flagData );
+ User::LeaveIfError( error );
+
+ // Interpret the flag data as real flags
+ RDesReadStream readStream( flagData );
+ CleanupClosePushL( readStream );
+ TUint32 archiveFlags = readStream.ReadUint32L();
+ CleanupStack::PopAndDestroy( &readStream );
+
+ // Done
+ TBitFlags ret;
+ ret.SetValue( archiveFlags );
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::ReadArchiveVersionL()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupArchiveUtils::ReadArchiveVersionL( RFile64& aArchive, TVersion& aVersion )
+ {
+ TInt error = KErrNone;
+
+ // Calculate the offset to the archive flags:
+ const TUint archiveVersionFileOffset = EArchiveOffsetFileFormatVersion;
+
+ // Flags are four bytes. Read the existing raw flag data
+ TBuf8< KMMCScArchiveVersionByteCount > versionData;
+ error = aArchive.Read( static_cast<TInt64>( archiveVersionFileOffset ), versionData );
+ User::LeaveIfError( error );
+
+ // Interpret the flag data as real flags
+ RDesReadStream readStream( versionData );
+ CleanupClosePushL( readStream );
+ aVersion.iMajor = readStream.ReadInt8L();
+ aVersion.iMinor = readStream.ReadInt8L();
+ aVersion.iBuild = readStream.ReadInt16L();
+ CleanupStack::PopAndDestroy( &readStream );
+ }
+
+
+#ifdef RD_FILE_MANAGER_BACKUP
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::SetArchiveCrcL()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupArchiveUtils::SetArchiveCrcL( RFile64& aArchive, TUint32 aCrc, TUint aOffset )
+ {
+ TInt error = KErrNone;
+
+ // Prepare externalized representation of crc
+ TBuf8< KMMCScArchiveCrcByteCount > crcData;
+ RDesWriteStream writeStream( crcData );
+ CleanupClosePushL( writeStream );
+ writeStream.WriteInt32L( aCrc );
+ writeStream.CommitL();
+ CleanupStack::PopAndDestroy( &writeStream );
+
+ // Then write crc to the file itself
+ error = aArchive.Write( static_cast<TInt64>( aOffset ), crcData );
+ User::LeaveIfError( error );
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupArchiveUtils::CalculateCrcFromArchive()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupArchiveUtils::CalculateCrcFromArchive( TUint32& aCrc, RFile64& aArchive, TUint32 aOffset, TUint32 aLength )
+ {
+ const TInt KBigBufSize=0x10000;
+ const TInt KMediumBufSize=0x8000;
+ const TInt KSmallBufSize=0x1000;
+
+ // Allocate as large buffer as possible for crc validation, because
+ // need to read file content in chunks for crc calculation.
+ HBufC8* bufPtr = HBufC8::New(KBigBufSize);
+
+ if ( bufPtr == NULL )
+ bufPtr = HBufC8::New(KMediumBufSize);
+ if ( bufPtr == NULL )
+ bufPtr = HBufC8::New(KSmallBufSize);
+
+ if ( bufPtr != NULL)
+ {
+ TPtr8 copyBuf = bufPtr->Des();
+ TInt64 pos = aOffset;
+ TInt size = aLength;
+
+ // Loop through archive file skipping archive crc
+ while(size)
+ {
+ TInt s;
+
+ s = Min( size, copyBuf.MaxSize() );
+
+ TInt error = aArchive.Read( pos, copyBuf, s );
+
+ if ( error == KErrNone && copyBuf.Length() != s )
+ break;
+
+ pos += s;
+ size -= s;
+ Mem::Crc32(aCrc, copyBuf.Ptr(), copyBuf.Length());
+ }
+
+ delete bufPtr;
+ }
+ }
+#endif // RD_FILE_MANAGER_BACKUP
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/MMCScBkupLogger.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,251 @@
+/*
+* Copyright (c) 2005 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: MMCScBkupLogger implementation
+*
+*
+*/
+
+#include "MMCScBkupLogger.h"
+
+// System includes
+#include <coemain.h>
+#include <e32svr.h>
+#include <flogger.h>
+
+#if defined(__MMCSCBKUPLOGGING_ENABLED__)
+
+// Constants
+const TInt KMMCScBkupLoggingMaxLogTextLength = 1024;
+const TInt KMMCScBkupLoggingMaxLogSize = 10240;
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// MMCScBkupLogger::LogRaw()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupLogger::LogRaw( const TDesC& aData )
+ {
+#if defined(__MMCSCBKUPLOGGING_MODE_FILE__)
+
+ _LIT( KMMCScBkupLoggingDir, "FMBkup" );
+ _LIT( KMMCScBkupLoggingFileName, "FMBkup.txt" );
+
+ /////////////
+ // FLOGGER
+ /////////////
+ RFileLogger::Write( KMMCScBkupLoggingDir, KMMCScBkupLoggingFileName, EFileLoggingModeAppend, aData );
+
+#elif defined(__MMCSCBKUPLOGGING_MODE_RDEBUG__)
+
+ /////////////
+ // RDEBUG
+ /////////////
+ _LIT( KLogComponentName, "[MMC] ");
+ HBufC* printBuf = HBufC::New( aData.Length() + KLogComponentName().Length() );
+ if ( printBuf )
+ {
+ TPtr pBuf( printBuf->Des() );
+ pBuf.Append( KLogComponentName );
+ pBuf.Append( aData );
+ RDebug::Print( *printBuf );
+ delete printBuf;
+ }
+ else
+ {
+ RDebug::Print( aData );
+ }
+
+#endif
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupLogger::Log()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupLogger::Log( TRefByValue<const TDesC> aFmt, ... )
+ {
+ VA_LIST list;
+ VA_START( list, aFmt );
+
+ HBufC* buf = HBufC::New( KMMCScBkupLoggingMaxLogTextLength );
+ if ( buf )
+ {
+ TPtr pBuf( buf->Des() );
+ pBuf.FormatList(aFmt, list);
+ LogRaw( *buf );
+ delete buf;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupLogger::DataType()
+//
+//
+// ---------------------------------------------------------------------------
+const TDesC& MMCScBkupLogger::DataType( TMMCScBkupOwnerDataType aType )
+ {
+ switch( aType )
+ {
+ case EMMCScBkupOwnerDataTypeDataOwner:
+ {
+ _LIT(KRet, "EMMCScBkupOwnerDataTypeDataOwner");
+ return KRet;
+ }
+ case EMMCScBkupOwnerDataTypeJavaData:
+ {
+ _LIT(KRet, "EMMCScBkupOwnerDataTypeJavaData");
+ return KRet;
+ }
+ case EMMCScBkupOwnerDataTypePublicData:
+ {
+ _LIT(KRet, "EMMCScBkupOwnerDataTypePublicData");
+ return KRet;
+ }
+ case EMMCScBkupOwnerDataTypeSystemData:
+ {
+ _LIT(KRet, "EMMCScBkupOwnerDataTypeSystemData");
+ return KRet;
+ }
+ case EMMCScBkupOwnerDataTypeActiveData:
+ {
+ _LIT(KRet, "EMMCScBkupOwnerDataTypeActiveData");
+ return KRet;
+ }
+ case EMMCScBkupOwnerDataTypePassiveData:
+ {
+ _LIT(KRet, "EMMCScBkupOwnerDataTypePassiveData");
+ return KRet;
+ }
+ case EMMCScBkupOwnerDataTypeAny:
+ {
+ _LIT(KRet, "EMMCScBkupOwnerDataTypeAny");
+ return KRet;
+ }
+ default:
+ break;
+ }
+
+ _LIT(KRet, "UNKNOWN!");
+ return KRet;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupLogger::FriendlyNameForSID()
+//
+//
+// ---------------------------------------------------------------------------
+const TDesC& MMCScBkupLogger::FriendlyNameForSID( TSecureId aSID )
+ {
+ switch( aSID.iId )
+ {
+ case 0x10202be9:
+ {
+ _LIT(KRet, "[CentRep]");
+ return KRet;
+ }
+ case 0x10008d38:
+ {
+ _LIT(KRet, "[FavouritesSrv]");
+ return KRet;
+ }
+ case 0x101f51f2:
+ {
+ _LIT(KRet, "[RightsServer]");
+ return KRet;
+ }
+ case 0x101f7993:
+ {
+ _LIT(KRet, "[VpnManager]");
+ return KRet;
+ }
+ case 0x101fd288:
+ {
+ _LIT(KRet, "[EventMediator]");
+ return KRet;
+ }
+ default:
+ break;
+ }
+
+ _LIT(KRet, "");
+ return KRet;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupLogger::LogFile()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupLogger::LogFile( TRefByValue<const TDesC> aFmt, ... )
+ {
+ VA_LIST list;
+ VA_START( list, aFmt );
+
+ HBufC* buf = HBufC::New( KMMCScBkupLoggingMaxLogTextLength );
+ if ( buf )
+ {
+ TPtr pBuf( buf->Des() );
+ pBuf.FormatList(aFmt, list);
+#ifdef _DEBUG
+ LogRaw( *buf );
+#endif
+ RFile64 file;
+ RFs& fsSession(CCoeEnv::Static()->FsSession());
+ TEntry entry;
+ TInt error;
+
+ if ( fsSession.Entry( KMMCScBkupLoggingFullPathAndName, entry ) == KErrNone )
+ {
+ error = file.Open( fsSession, KMMCScBkupLoggingFullPathAndName, EFileWrite | EFileShareExclusive );
+ }
+ else
+ {
+ entry.iSize = 0;
+ error = file.Create( fsSession, KMMCScBkupLoggingFullPathAndName, EFileWrite | EFileShareExclusive );
+ }
+
+ if(error == KErrNone)
+ {
+ TInt64 size = 0;
+
+ error = file.Size( size );
+ if(error == KErrNone && size < KMMCScBkupLoggingMaxLogSize)
+ {
+ HBufC8* buf8 = HBufC8::New( KMMCScBkupLoggingMaxLogTextLength );
+ if(buf8)
+ {
+ const TText8 KLineFeed( '\n' );
+ TPtr8 data( buf8->Des() );
+
+ data.Copy(buf->Des());
+ data.Append(KLineFeed);
+ file.Write(static_cast<TInt64>(entry.iSize), data);
+ delete buf8;
+ }
+ }
+ }
+ file.Close();
+ delete buf;
+ }
+ }
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/MMCScBkupPhoneModelUtils.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,122 @@
+/*
+* Copyright (c) 2005 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: MMCScBkupPhoneModelUtils implementation
+*
+*
+*/
+
+#include "MMCScBkupPhoneModelUtils.h"
+
+// User includes
+#include "MMCScBkupArchiveFlags.h"
+#include "MMCScBkupArchiveUtils.h"
+
+// System includes
+#include <sysutil.h>
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// MMCScBkupPhoneModelUtils::CurrentPhoneModelLC()
+//
+//
+// ---------------------------------------------------------------------------
+HBufC8* MMCScBkupPhoneModelUtils::CurrentPhoneModelLC()
+ {
+ HBufC8* ret = HBufC8::NewLC( MaximumPhoneModelIdentifierLength() );
+ //
+ TBuf<KSysUtilVersionTextLength> version;
+ const TInt thirdLine(3);
+ const TInt err = SysUtil::GetSWVersion( version);
+
+ if ( err == KErrNone )
+ {
+ // Assume syntax Vxx.xx\ndd-mm-yy\nNHL-vvv\n(c)
+ // Extract model version from third line
+ for(TInt i(0); i < thirdLine; i++)
+ {
+ TInt cutPos = version.Locate( '\n' );
+
+ if( cutPos == KErrNotFound )
+ {
+ break;
+ }
+ else if(i < ( thirdLine - 1 ) )
+ {
+ version.Delete( 0, cutPos + 1 );
+ }
+ else
+ {
+ cutPos = version.Locate( '\n' );
+ if( cutPos != KErrNotFound )
+ {
+ version.Delete( cutPos, (version.Length() - cutPos) );
+ }
+ ret->Des().Copy( version );
+ }
+ }
+ }
+
+ // Implicit requirement - should always be the case though
+ __ASSERT_ALWAYS( ret->Length() <= 255, User::Invariant());
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupPhoneModelUtils::MaximumPhoneModelIdentifierLength()
+//
+//
+// ---------------------------------------------------------------------------
+TInt MMCScBkupPhoneModelUtils::MaximumPhoneModelIdentifierLength()
+ {
+ return KSysUtilVersionTextLength;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupPhoneModelUtils::ArchiveRestorePermissableL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool MMCScBkupPhoneModelUtils::ArchiveRestorePermissableL( const TDesC8& aPhoneModelData, TBitFlags aArchiveFlags, const TVersion& aArchiveVersion )
+ {
+ TBool restoreOkay = EFalse;
+
+ // Check version first
+ restoreOkay = ( aArchiveVersion.iMajor >= KMMCScBkupArchiveFileFormatFirstRestorableMajorVersion );
+
+ // Check flags next
+ if ( restoreOkay )
+ {
+ restoreOkay = ( aArchiveFlags.Value() & EMMCScBkupArchiveFlagsContentValid );
+
+ // Only check model if the flags were alright
+ if ( restoreOkay )
+ {
+ HBufC8* currentData = CurrentPhoneModelLC();
+ restoreOkay = ( aPhoneModelData.Compare( *currentData ) == 0 );
+ CleanupStack::PopAndDestroy( currentData );
+ }
+ }
+
+ // Done
+ return restoreOkay;
+ }
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/MMCScBkupSBEUtils.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,523 @@
+/*
+* Copyright (c) 2005 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: MMCScBkupSBEUtils implementation
+*
+*
+*/
+
+#include "MMCScBkupSBEUtils.h"
+
+// System includes
+#include <e32property.h>
+#include <connect/sbdefs.h>
+#include "CMMCScBkupDataOwnerInfo.h"
+
+// Namespaces
+using namespace conn;
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::SecureIdFromGenericL()
+//
+//
+// ---------------------------------------------------------------------------
+TSecureId MMCScBkupSBEUtils::SecureIdFromGenericL(const CSBGenericDataType& aGeneric)
+ {
+ TSecureId ret = 0;
+ CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aGeneric);
+ const TSBDerivedType type = aGeneric.DerivedTypeL();
+ //
+ switch(type)
+ {
+ case ESIDDerivedType:
+ {
+ CSBSecureId* temp = CSBSecureId::NewL( nonConstOriginal );
+ CleanupStack::PushL( temp );
+ ret = temp->SecureIdL();
+ CleanupStack::PopAndDestroy( temp );
+ break;
+ }
+ case ESIDTransferDerivedType:
+ {
+ // First make a generic transfer type object...
+ CSBGenericTransferType* transferTypeTemp = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() );
+ CleanupStack::PushL(transferTypeTemp);
+
+ // Now make instance transfer type
+ CSBSIDTransferType* temp = CSBSIDTransferType::NewL( transferTypeTemp );
+ CleanupStack::PushL(temp);
+
+ // Now get the result
+ ret = temp->SecureIdL();
+
+ // Tidy up
+ CleanupStack::PopAndDestroy(2, transferTypeTemp);
+ break;
+ }
+ case EPackageDerivedType:
+ {
+ CSBPackageId* temp = CSBPackageId::NewL( nonConstOriginal );
+ CleanupStack::PushL( temp );
+ ret = temp->SecureIdL();
+ CleanupStack::PopAndDestroy( temp );
+ break;
+ }
+ case EPackageTransferDerivedType:
+ case EJavaDerivedType:
+ case EJavaTransferDerivedType:
+ default:
+ __BREAKPOINT();
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ //
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::PackageIdFromGenericL()
+//
+//
+// ---------------------------------------------------------------------------
+TUid MMCScBkupSBEUtils::PackageIdFromGenericL(const CSBGenericDataType& aGeneric)
+ {
+ TUid ret = KNullUid;
+ CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aGeneric);
+ const TSBDerivedType type = aGeneric.DerivedTypeL();
+ //
+ switch(type)
+ {
+ case EPackageDerivedType:
+ {
+ CSBPackageId* temp = CSBPackageId::NewL( nonConstOriginal );
+ CleanupStack::PushL(temp);
+ ret = temp->PackageIdL();
+ CleanupStack::PopAndDestroy(temp);
+ break;
+ }
+ case EPackageTransferDerivedType:
+ {
+ // First make a generic transfer type object...
+ CSBGenericTransferType* transferTypeTemp = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() );
+ CleanupStack::PushL(transferTypeTemp);
+
+ // Now make instance transfer type
+ CSBPackageTransferType* temp = CSBPackageTransferType::NewL( transferTypeTemp );
+ CleanupStack::PushL(temp);
+
+ // Now get the result
+ ret = temp->PackageIdL();
+
+ // Tidy up
+ CleanupStack::PopAndDestroy(2, transferTypeTemp);
+ break;
+ }
+ case ESIDDerivedType:
+ case ESIDTransferDerivedType:
+ case EJavaDerivedType:
+ case EJavaTransferDerivedType:
+ default:
+ __BREAKPOINT();
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ //
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::JavaHashFromGenericLC()
+//
+//
+// ---------------------------------------------------------------------------
+HBufC* MMCScBkupSBEUtils::JavaHashFromGenericLC(const CSBGenericDataType& aGeneric)
+ {
+ HBufC* ret = NULL;
+ CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aGeneric);
+ const TSBDerivedType type = aGeneric.DerivedTypeL();
+ //
+ switch(type)
+ {
+ case EJavaDerivedType:
+ {
+ CSBJavaId* temp = CSBJavaId::NewL( nonConstOriginal );
+ CleanupStack::PushL(temp);
+ ret = temp->SuiteHashL().AllocL();
+ CleanupStack::PopAndDestroy(temp);
+ CleanupStack::PushL( ret );
+ break;
+ }
+ case EJavaTransferDerivedType:
+ {
+ // First make a generic transfer type object...
+ CSBGenericTransferType* transferTypeTemp = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() );
+ CleanupStack::PushL(transferTypeTemp);
+
+ // Now make a instance transfer type
+ CSBJavaTransferType* temp = CSBJavaTransferType::NewL( transferTypeTemp );
+ CleanupStack::PushL(temp);
+
+ // Now get the result
+ ret = temp->SuiteHashL().AllocL();
+
+ // Tidy up
+ CleanupStack::PopAndDestroy(2, transferTypeTemp);
+ CleanupStack::PushL( ret );
+ break;
+ }
+ case ESIDDerivedType:
+ case ESIDTransferDerivedType:
+ case EPackageDerivedType:
+ case EPackageTransferDerivedType:
+ default:
+ __BREAKPOINT();
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ //
+ if ( ret == NULL )
+ {
+ ret = KNullDesC().AllocLC();
+ }
+ //
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::CopyLC()
+//
+//
+// ---------------------------------------------------------------------------
+CSBGenericDataType* MMCScBkupSBEUtils::CopyLC(const CSBGenericDataType& aToBeCopied)
+ {
+ CSBGenericDataType* ret = NULL;
+
+ // Have to do this through poor implementation of SBE API
+ CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aToBeCopied);
+ //
+ const TSBDerivedType type = nonConstOriginal->DerivedTypeL();
+ switch(type)
+ {
+ case ESIDDerivedType:
+ ret = CSBSecureId::NewL(nonConstOriginal);
+ break;
+ case EPackageDerivedType:
+ ret = CSBPackageId::NewL(nonConstOriginal);
+ break;
+ case EJavaDerivedType:
+ ret = CSBJavaId::NewL(nonConstOriginal);
+ break;
+ case ESIDTransferDerivedType:
+ case EPackageTransferDerivedType:
+ case EJavaTransferDerivedType:
+ {
+ // Must first create a generic transfer type object... sigh...
+ CSBGenericTransferType* transferType = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() );
+ CleanupStack::PushL( transferType );
+ if ( ESIDTransferDerivedType == type )
+ {
+ ret = CSBSIDTransferType::NewL( transferType );
+ }
+ else if ( EPackageTransferDerivedType == type )
+ {
+ ret = CSBPackageTransferType::NewL( transferType );
+ }
+ // Type is EJavaTransferDerivedType
+ else
+ {
+ ret = CSBJavaTransferType::NewL( transferType );
+ }
+ CleanupStack::PopAndDestroy( transferType );
+ }
+ default:
+ break;
+ }
+ //
+ if (!ret)
+ {
+ __BREAKPOINT();
+ User::Leave(KErrNotSupported);
+ }
+ CleanupStack::PushL(ret);
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::TransferTypeLC()
+//
+//
+// ---------------------------------------------------------------------------
+CSBGenericTransferType* MMCScBkupSBEUtils::TransferTypeLC( const CSBGenericDataType& aDT, TDriveNumber aDrive,
+ TTransferDataType aTransferType, TInt aVersion )
+ {
+ CSBGenericTransferType* ret = NULL;
+
+ // Have to do this through poor implementation of SBE API
+ CSBGenericDataType* nonConstOriginal = const_cast< CSBGenericDataType* >( &aDT );
+ //
+ const TSBDerivedType type = nonConstOriginal->DerivedTypeL();
+ switch( type )
+ {
+ case ESIDDerivedType:
+ case ESIDTransferDerivedType:
+ {
+ const TSecureId secureId = SecureIdFromGenericL( aDT );
+ ret = CSBSIDTransferType::NewL( secureId, aDrive, aTransferType );
+ break;
+ }
+
+ case EPackageDerivedType:
+ {
+ TSecureId secureId = SecureIdFromGenericL( aDT );
+ if( secureId.iId == KNullUid.iUid && aVersion > CMMCScBkupDataOwnerInfo::EStreamFormatVersionFirst )
+ {
+ secureId = MMCScBkupSBEUtils::PackageIdFromGenericL( aDT );
+ }
+ ret = CSBSIDTransferType::NewL( secureId, aDrive, aTransferType );
+ break;
+ }
+
+ default:
+ case EPackageTransferDerivedType:
+ case EJavaDerivedType:
+ case EJavaTransferDerivedType:
+ __BREAKPOINT();
+ User::Leave( KErrNotSupported );
+ break;
+ }
+ //
+ CleanupStack::PushL( ret );
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::TransferTypeLC()
+//
+//
+// ---------------------------------------------------------------------------
+CSBGenericTransferType* MMCScBkupSBEUtils::TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive,
+ TPackageDataType aDataType, TInt /*aVersion*/)
+ {
+ CSBGenericTransferType* ret = NULL;
+
+ // Have to do this through poor implementation of SBE API
+ CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aDT);
+ //
+ const TSBDerivedType type = nonConstOriginal->DerivedTypeL();
+ switch(type)
+ {
+ case EPackageDerivedType:
+ case EPackageTransferDerivedType:
+ {
+ const TUid packageId = PackageIdFromGenericL(aDT);
+ ret = CSBPackageTransferType::NewL(packageId, aDrive, aDataType);
+ break;
+ }
+
+ default:
+ case ESIDDerivedType:
+ case ESIDTransferDerivedType:
+ case EJavaDerivedType:
+ case EJavaTransferDerivedType:
+ __BREAKPOINT();
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ //
+ CleanupStack::PushL(ret);
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::TransferTypeLC()
+//
+//
+// ---------------------------------------------------------------------------
+CSBGenericTransferType* MMCScBkupSBEUtils::TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive,
+ TJavaTransferType aDataType, TInt /*aVersion*/)
+ {
+ CSBGenericTransferType* ret = NULL;
+
+ // Have to do this through poor implementation of SBE API
+ CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&aDT);
+ //
+ const TSBDerivedType type = nonConstOriginal->DerivedTypeL();
+ switch(type)
+ {
+ case EJavaDerivedType:
+ case EJavaTransferDerivedType:
+ {
+ HBufC* hash = JavaHashFromGenericLC( aDT );
+ ret = CSBJavaTransferType::NewL( *hash, aDrive, aDataType );
+ CleanupStack::PopAndDestroy( hash );
+ break;
+ }
+
+ default:
+ case ESIDDerivedType:
+ case ESIDTransferDerivedType:
+ case EPackageDerivedType:
+ case EPackageTransferDerivedType:
+ __BREAKPOINT();
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ //
+ CleanupStack::PushL(ret);
+ return ret;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::PhoneIsInBackupOrRestoreModeL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool MMCScBkupSBEUtils::PhoneIsInBackupOrRestoreModeL()
+ {
+ TBool backupInProgress = EFalse;
+ //
+ TInt value = 0;
+ const TInt error = RProperty::Get( KUidSystemCategory, KUidBackupRestoreKey, value );
+ User::LeaveIfError( error );
+ //
+ const TBURPartType partType = static_cast< TBURPartType >( value & KBURPartTypeMask );
+ if (value != 0)
+ {
+ switch(partType)
+ {
+ case EBURUnset:
+ case EBURNormal:
+ break;
+ case EBURBackupFull:
+ case EBURBackupPartial:
+ case EBURRestoreFull:
+ case EBURRestorePartial:
+ backupInProgress = ETrue;
+ break;
+ }
+ }
+ //
+ return backupInProgress;
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::EndBackupOrRestoreL()
+//
+//
+// ---------------------------------------------------------------------------
+void MMCScBkupSBEUtils::EndBackupOrRestoreL( CSBEClient& aSBEClient )
+ {
+ TDriveList nullDriveList;
+ aSBEClient.SetBURModeL( nullDriveList, EBURNormal, ENoBackup);
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::HasSystemDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool MMCScBkupSBEUtils::HasSystemDataL( const CDataOwnerInfo& aDataOwner )
+ {
+ const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL();
+ const TBool systemDataType = ( type == EPackageDerivedType ||
+ type == EPackageTransferDerivedType );
+ const TBool hasSystemData = ( aDataOwner.CommonSettings() & EHasSystemFiles );
+ //
+ return ( systemDataType && hasSystemData );
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::HasJavaDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool MMCScBkupSBEUtils::HasJavaDataL( const CDataOwnerInfo& aDataOwner )
+ {
+ const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL();
+ const TBool javaDataType = ( type == EJavaDerivedType ||
+ type == EJavaTransferDerivedType );
+ const TBool hasSystemData = ( aDataOwner.CommonSettings() & EHasSystemFiles );
+
+ // Java abuses the "has system files flag" - this has been confirmed
+ // with Symbian.
+ return ( javaDataType && hasSystemData );
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::HasPassiveDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool MMCScBkupSBEUtils::HasPassiveDataL( const CDataOwnerInfo& aDataOwner )
+ {
+ const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL();
+ const TBool passiveDataType = ( type == ESIDDerivedType ||
+ type == ESIDTransferDerivedType ||
+ type == EPackageDerivedType ||
+ type == EPackageTransferDerivedType );
+ const TBool hasPassiveData = ( aDataOwner.CommonSettings() & EPassiveBUR );
+ //
+ return ( passiveDataType && hasPassiveData );
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::HasActiveDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool MMCScBkupSBEUtils::HasActiveDataL( const CDataOwnerInfo& aDataOwner )
+ {
+ const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL();
+ const TBool activeDataType = ( type == ESIDDerivedType ||
+ type == ESIDTransferDerivedType ||
+ type == EPackageDerivedType ||
+ type == EPackageTransferDerivedType );
+ const TBool hasActiveData = ( aDataOwner.CommonSettings() & EActiveBUR );
+ //
+ return ( activeDataType && hasActiveData );
+ }
+
+
+// ---------------------------------------------------------------------------
+// MMCScBkupSBEUtils::HasPublicDataL()
+//
+//
+// ---------------------------------------------------------------------------
+TBool MMCScBkupSBEUtils::HasPublicDataL( const CDataOwnerInfo& aDataOwner )
+ {
+ const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL();
+ const TBool publicDataType = ( type == ESIDDerivedType ||
+ type == ESIDTransferDerivedType ||
+ type == EPackageDerivedType ||
+ type == EPackageTransferDerivedType );
+ const TBool hasPublicData = ( aDataOwner.PassiveSettings() & EHasPublicFiles );
+ //
+ return ( hasPublicData && publicDataType );
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/RMMCScBkupArchiveStreams.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,256 @@
+/*
+* Copyright (c) 2005 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: RMMCScBkupArchiveReadStream implementation
+*
+*
+*/
+
+#include "RMMCScBkupArchiveStreams.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupArchiveDataManager.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveBuf::RMMCScBkupArchiveBuf()
+//
+//
+// ---------------------------------------------------------------------------
+RMMCScBkupArchiveBuf::RMMCScBkupArchiveBuf()
+: iADM(NULL)
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveBuf::AttachL()
+//
+//
+// ---------------------------------------------------------------------------
+void RMMCScBkupArchiveBuf::AttachL( CMMCScBkupArchiveDataManager& aADM, RFile64& aFile, TInt aPos, TBool aForWrite )
+ {
+ //__LOG3("RMMCScBkupArchiveBuf::AttachL() - START - aFile: 0x%08x, aPos: %d, aForWrite: %d", aFile.SubSessionHandle(), aPos, aForWrite);
+
+ // Prevent RFileBuf from resetting our file handle
+ RFile64 file(aFile);
+ RFileBuf::Attach(file, aPos);
+
+ // We save the attach pos so that we can update the ADM with the final
+ // length of data that was read or written...
+ iInfo.Reset();
+ iInfo.SetOffset(aPos);
+
+ iWriteMode = aForWrite;
+ iADM = &aADM;
+
+ //__LOG("RMMCScBkupArchiveBuf::AttachL() - END");
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveBuf::Close()
+//
+//
+// ---------------------------------------------------------------------------
+EXPORT_C void RMMCScBkupArchiveBuf::Close()
+ {
+ //__LOG1("RMMCScBkupArchiveBuf::Close() - START - File: 0x%08x", File().SubSessionHandle());
+
+ TRAP_IGNORE(DoSynchL());
+ Detach();
+ Reset();
+
+ //__LOG1("RMMCScBkupArchiveBuf::Close() - END - File: 0x%08x", File().SubSessionHandle());
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveBuf::IsOpen()
+//
+//
+// ---------------------------------------------------------------------------
+TBool RMMCScBkupArchiveBuf::IsOpen() const
+ {
+ return (File().SubSessionHandle() != KNullHandle);
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveBuf::DoRelease()
+//
+//
+// ---------------------------------------------------------------------------
+void RMMCScBkupArchiveBuf::DoRelease()
+ {
+ //__LOG1("RMMCScBkupArchiveBuf::DoRelease() - START - File: 0x%08x", File().SubSessionHandle());
+
+ TRAP_IGNORE( UpdateInfoL() );
+ Detach();
+ RFileBuf::DoRelease();
+
+ //__LOG1("RMMCScBkupArchiveBuf::DoRelease() - END - File: 0x%08x", File().SubSessionHandle());
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveBuf::DoSynchL()
+//
+//
+// ---------------------------------------------------------------------------
+void RMMCScBkupArchiveBuf::DoSynchL()
+ {
+ //__LOG1("RMMCScBkupArchiveBuf::DoSynchL() - START - File: 0x%08x", File().SubSessionHandle());
+
+ RFileBuf::DoSynchL();
+ UpdateInfoL();
+
+ //__LOG1("RMMCScBkupArchiveBuf::DoSynchL() - END - File: 0x%08x", File().SubSessionHandle());
+ }
+
+
+#ifdef RD_FILE_MANAGER_BACKUP
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveBuf::DoWriteL()
+//
+//
+// ---------------------------------------------------------------------------
+void RMMCScBkupArchiveBuf::DoWriteL(const TAny* aPtr,TInt aLength)
+ {
+ iADM->CalculateCrc(aPtr, aLength);
+ RFileBuf::DoWriteL(aPtr, aLength);
+ }
+#endif
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveBuf::UpdateInfoL()
+//
+//
+// ---------------------------------------------------------------------------
+void RMMCScBkupArchiveBuf::UpdateInfoL()
+ {
+ //__LOG1("RMMCScBkupArchiveBuf::UpdateInfoL() - START - File: 0x%08x", File().SubSessionHandle());
+
+ // Update our stats
+ if ( iADM && File().SubSessionHandle() != KNullHandle )
+ {
+ TStreamPos pos;
+ if ( iWriteMode )
+ {
+ pos = TellL( MStreamBuf::EWrite );
+ //__LOG("RMMCScBkupArchiveBuf::UpdateInfoL() - write mode...");
+ }
+ else
+ {
+ pos = TellL( MStreamBuf::ERead );
+ //__LOG("RMMCScBkupArchiveBuf::UpdateInfoL() - read mode...");
+ }
+ //
+ const TInt currentOffset = pos.Offset();
+ const TInt length = currentOffset - iInfo.Offset();
+
+ //__LOG1("RMMCScBkupArchiveBuf::UpdateInfoL() - currentOffset: %8d", currentOffset);
+ //__LOG1("RMMCScBkupArchiveBuf::UpdateInfoL() - length: %8d", length);
+ iInfo.SetLength( length );
+
+ // Inform ADM of final info
+ iADM->SetCurrentVector( iInfo );
+ }
+
+ //__LOG1("RMMCScBkupArchiveBuf::UpdateInfoL() - END - File: 0x%08x", File().SubSessionHandle());
+ }
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveReadStream::OpenLC()
+//
+//
+// ---------------------------------------------------------------------------
+void RMMCScBkupArchiveReadStream::OpenLC( CMMCScBkupArchiveDataManager& aADM, RFile64& aArchiveFile, TInt aPos )
+ {
+ CleanupClosePushL( *this );
+ //
+ iSource.AttachL( aADM, aArchiveFile, aPos, EFalse );
+ RReadStream::Attach( &iSource );
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveReadStream::IsOpen()
+//
+//
+// ---------------------------------------------------------------------------
+TBool RMMCScBkupArchiveReadStream::IsOpen() const
+ {
+ return iSource.IsOpen();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveWriteStream::OpenLC()
+//
+//
+// ---------------------------------------------------------------------------
+void RMMCScBkupArchiveWriteStream::OpenLC( CMMCScBkupArchiveDataManager& aADM, RFile64& aArchiveFile, TInt aPos )
+ {
+ CleanupClosePushL( *this );
+ //
+ iSink.AttachL( aADM, aArchiveFile, aPos, ETrue );
+ RWriteStream::Attach( &iSink );
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupArchiveWriteStream::IsOpen()
+//
+//
+// ---------------------------------------------------------------------------
+TBool RMMCScBkupArchiveWriteStream::IsOpen() const
+ {
+ return iSink.IsOpen();
+ }
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/RMMCScBkupProgressSizer.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,250 @@
+/*
+* Copyright (c) 2005-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: RMMCScBkupProgressSizer implementation
+*
+*
+*/
+
+#include "RMMCScBkupProgressSizer.h"
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "MMCScBkupSBEUtils.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "MMMCScBkupProgressObserver.h"
+#include "CMMCScBkupDriveAndOperationTypeManager.h"
+
+// Constants
+const TInt KMMCScBkupWeightingFactor = 10000;
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupProgressSizer::RMMCScBkupProgressSizer()
+//
+// C++ constructor.
+// ---------------------------------------------------------------------------
+RMMCScBkupProgressSizer::RMMCScBkupProgressSizer( const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperationTypes )
+: iDriveAndOperationTypes( aDriveAndOperationTypes ), iDriveFilter( aDriveAndOperationTypes.DriveList() )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupProgressSizer::BackupTotalProgressValueL()
+//
+// Calculate the total amount of progress steps that a particular data owner
+// requires. This method can only be called after all of the sizing info
+// has been obtained from the SBE
+// ---------------------------------------------------------------------------
+TInt64 RMMCScBkupProgressSizer::BackupTotalProgressValueL( const CMMCScBkupDataOwnerInfo& aDataOwner )
+ {
+ __LOG(" ");
+ __LOG1("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - START - DO: 0x%08x", aDataOwner.SecureId().iId);
+ TInt64 totalStepCount = 0;
+
+ //////////////////////////////////////////////////////////////////////
+ // THESE ELEMENTS HAVE PSEUDO-PROGRESS - that is, the report a fixed
+ // number of progress nibbles per operation. For example:
+ //
+ // TYPE DRIVE PROGRESS
+ // =======================================
+ // ACTIVE (C:) 1 x 2000
+ // PASSIVE (C:) 1 x 2000
+ // SYSTEM (C:, E:) 2 x 2000
+ // JAVA (C:) 1 x 2000
+ // PUBLIC (C: = 12k) 12 x 1024
+ // ----------------------------------------
+ // total 10000 + (12 x 1024)
+ //
+ //////////////////////////////////////////////////////////////////////
+
+ const CDataOwnerInfo& sbeDataOwner = aDataOwner.Owner();
+
+ // Passive data
+ if ( MMCScBkupSBEUtils::HasPassiveDataL( sbeDataOwner ) )
+ {
+ const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypePassiveData );
+ __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - passive - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount);
+ totalStepCount += ( opsCount * KMMCScBkupWeightingFactor );
+ }
+
+ // Active data
+ if ( MMCScBkupSBEUtils::HasActiveDataL( sbeDataOwner ) )
+ {
+ const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypeActiveData );
+ __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - active - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount);
+ totalStepCount += ( opsCount * KMMCScBkupWeightingFactor );
+ }
+
+ // System data
+ if ( MMCScBkupSBEUtils::HasSystemDataL( sbeDataOwner ) )
+ {
+ const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypeSystemData );
+ __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - system - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount);
+ totalStepCount += ( opsCount * KMMCScBkupWeightingFactor );
+ }
+
+ // Java data
+ if ( MMCScBkupSBEUtils::HasJavaDataL( sbeDataOwner ) )
+ {
+ const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypeJavaData );
+ __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - java - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount);
+ totalStepCount += ( opsCount * KMMCScBkupWeightingFactor );
+ }
+
+
+ ///////////////////////////////////
+ // PUBLIC REPORTS ACTUAL SIZING
+ ///////////////////////////////////
+
+ // Public data
+ if ( MMCScBkupSBEUtils::HasPublicDataL( sbeDataOwner ) )
+ {
+ const TInt64 size = AmountOfPublicDataToBeRestoredL( aDataOwner );
+ __LOG1("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - public - %Ld of progress", size);
+ totalStepCount += size;
+ }
+
+ //
+ __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - END - DO: 0x%08x, totalStepCount: %8Ld", aDataOwner.SecureId().iId, totalStepCount);
+ return totalStepCount;
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupProgressSizer::BackupReportFixedProgressForOpL()
+//
+//
+// ---------------------------------------------------------------------------
+void RMMCScBkupProgressSizer::BackupReportFixedProgressForOpL( MMMCScBkupProgressObserver& aProgressManager, TMMCScBkupOwnerDataType aType )
+ {
+ switch( aType )
+ {
+ case EMMCScBkupOwnerDataTypeSystemData:
+ case EMMCScBkupOwnerDataTypeActiveData:
+ case EMMCScBkupOwnerDataTypePassiveData:
+ case EMMCScBkupOwnerDataTypeJavaData:
+ __LOG2("RMMCScBkupProgressSizer::BackupReportFixedProgressForOpL() - aType: %d, amount: %d ", aType, KMMCScBkupWeightingFactor );
+ aProgressManager.MMCScBkupHandleProgress( KMMCScBkupWeightingFactor );
+ break;
+ default:
+ case EMMCScBkupOwnerDataTypeDataOwner:
+ case EMMCScBkupOwnerDataTypePublicData:
+ ASSERT( EFalse );
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupProgressSizer::RestoreCombinedDataSizeL()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 RMMCScBkupProgressSizer::RestoreCombinedDataSizeL( const CMMCScBkupDataOwnerInfo& aOwner )
+ {
+ TInt64 size = 0;
+ //
+ iDriveFilter.Reset();
+ iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() );
+ //
+ TDriveNumber drive = EDriveA;
+ while ( iDriveFilter.NextValidDrive( drive ) )
+ {
+ for( TInt i=0; i<EMMCScBkupOwnerDataTypeCount; i++ )
+ {
+ const TMMCScBkupOwnerDataType dataType = static_cast< TMMCScBkupOwnerDataType > ( i );
+ const TBool allowedForDrive = iDriveAndOperationTypes.IsDataTypeAllowedToAccessDrive( drive, dataType );
+ //
+ if ( allowedForDrive )
+ {
+ // Get the amount of data for this drive
+ size += aOwner.OperationalSize( dataType, drive );
+ }
+ }
+ }
+ //
+ return size;
+ }
+
+
+
+
+
+
+
+
+
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupProgressSizer::NumberOfDriveOpsRequiredL()
+//
+//
+// ---------------------------------------------------------------------------
+TInt RMMCScBkupProgressSizer::NumberOfDriveOpsRequiredL( const CMMCScBkupDataOwnerInfo& aOwner, TMMCScBkupOwnerDataType aType )
+ {
+ TInt count = 0;
+ //
+ iDriveFilter.Reset();
+ iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() );
+ //
+ TDriveNumber drive = EDriveA;
+ while ( iDriveFilter.NextValidDrive( drive ) )
+ {
+ const TBool allowedForDrive = iDriveAndOperationTypes.IsDataTypeAllowedToAccessDrive( drive, aType );
+ //
+ if ( allowedForDrive )
+ {
+ ++count;
+ }
+ }
+ //
+ return count;
+ }
+
+
+// ---------------------------------------------------------------------------
+// RMMCScBkupProgressSizer::AmountOfPublicDataToBeRestoredL()
+//
+//
+// ---------------------------------------------------------------------------
+TInt64 RMMCScBkupProgressSizer::AmountOfPublicDataToBeRestoredL( const CMMCScBkupDataOwnerInfo& aOwner )
+ {
+ TInt64 size = 0;
+ //
+ iDriveFilter.Reset();
+ iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() );
+ //
+ TDriveNumber drive = EDriveA;
+ while ( iDriveFilter.NextValidDrive( drive ) )
+ {
+ const TBool allowedForDrive = iDriveAndOperationTypes.IsDataTypeAllowedToAccessDrive( drive, EMMCScBkupOwnerDataTypePublicData );
+ //
+ if ( allowedForDrive )
+ {
+ // Get the amount of data for this drive
+ size += aOwner.OperationalSize( EMMCScBkupOwnerDataTypePublicData, drive );
+ }
+ }
+ //
+ return size;
+ }
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/TMMCScBkupArchiveVector.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,110 @@
+/*
+* Copyright (c) 2005 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: TMMCScBkupArchiveVector implementation
+*
+*
+*/
+
+#include "TMMCScBkupArchiveVector.h"
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupArchiveVector::ExternalizedSize()
+//
+//
+// ---------------------------------------------------------------------------
+
+TInt TMMCScBkupArchiveVector::ExternalizedSize()
+ {
+ return 20; // 4 bytes for offset, 4 bytes for length, 4 bytes stream version, 4 bytes spare1, 4 bytes spare2
+ }
+
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupArchiveVector::ExternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+
+void TMMCScBkupArchiveVector::ExternalizeL(RWriteStream& aStream) const
+ {
+ aStream.WriteInt32L( EStreamFormatVersion1 );
+ aStream.WriteInt32L( Offset() );
+ aStream.WriteInt32L( Length() );
+ aStream.WriteInt32L( 0 ); // Spare1
+ aStream.WriteInt32L( 0 ); // Spare2
+ }
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupArchiveVector::InternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+
+void TMMCScBkupArchiveVector::InternalizeL(RReadStream& aStream)
+ {
+ aStream.ReadInt32L(); // stream format version
+ iOffset = aStream.ReadInt32L();
+ iLength = aStream.ReadInt32L();
+ aStream.ReadInt32L(); // Spare1
+ aStream.ReadInt32L(); // Spare2
+ //
+ if (iOffset < 0 || iLength < 0)
+ {
+ User::Leave(KErrCorrupt);
+ }
+ }
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupArchiveDriveAndVector::InternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void TMMCScBkupArchiveDriveAndVector::InternalizeL( RReadStream& aStream )
+ {
+ aStream.ReadInt32L(); // EStreamFormatVersion1
+ aStream.ReadInt32L(); // spare1
+ aStream.ReadInt32L(); // spare2
+ aStream.ReadInt32L(); // spare3
+ //
+ iDrive = static_cast<TDriveNumber>( aStream.ReadUint8L() );
+ aStream >> iVector;
+ }
+
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupArchiveDriveAndVector::ExternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void TMMCScBkupArchiveDriveAndVector::ExternalizeL( RWriteStream& aStream ) const
+ {
+ aStream.WriteInt32L( EStreamFormatVersion1 );
+ aStream.WriteInt32L( 0 ); // spare1
+ aStream.WriteInt32L( 0 ); // spare2
+ aStream.WriteInt32L( 0 ); // spare3
+ //
+ aStream.WriteUint8L( iDrive );
+ aStream << iVector;
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/TMMCScBkupDriveAndSize.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2005-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: TMMCScBkupDriveAndSize implementation
+*
+*
+*/
+
+#include "TMMCScBkupDriveAndSize.h"
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupDriveAndSize::InternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void TMMCScBkupDriveAndSize::InternalizeL( RReadStream& aStream )
+ {
+ aStream.ReadInt32L(); // EStreamFormatVersion1
+ aStream.ReadInt32L(); // spare1
+ aStream.ReadInt32L(); // spare2
+ //
+ iDrive = static_cast<TDriveNumber>( aStream.ReadUint8L() );
+
+ iSize = aStream.ReadInt32L();
+ // If 64-bit handling will be supported in the future.
+ // That will mean in practice a break in archive file format.
+ /*
+ if ( format == EStreamFormatVersion1 )
+ {
+ iSize = aStream.ReadInt32L();
+ }
+ else
+ {
+ iSize = aStream.ReadReal64L();
+ }
+ */
+ }
+
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupDriveAndSize::ExternalizeL()
+//
+//
+// ---------------------------------------------------------------------------
+void TMMCScBkupDriveAndSize::ExternalizeL( RWriteStream& aStream ) const
+ {
+ aStream.WriteInt32L( EStreamFormatVersion1 );
+ aStream.WriteInt32L( 0 ); // spare1
+ aStream.WriteInt32L( 0 ); // spare2
+ //
+ aStream.WriteUint8L( iDrive );
+ aStream.WriteInt32L( iSize );
+ //aStream.WriteReal64L( iSize ); // If 64-bit handling will be supported in the future.
+ // That will mean in practice a break in archive file format.
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/TMMCScBkupDriveFilter.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2005 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: TMMCScBkupDriveFilter implementation
+*
+*
+*/
+
+#include "TMMCScBkupDriveFilter.h"
+
+// Constants
+const TInt KMMCScBkupInitialDriveIndex = -1;
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupDriveFilter::Reset()
+//
+//
+// ---------------------------------------------------------------------------
+void TMMCScBkupDriveFilter::Reset()
+ {
+ iCurrentDrive = KMMCScBkupInitialDriveIndex;
+ }
+
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupDriveFilter::SetPrimaryDriveFilter()
+//
+//
+// ---------------------------------------------------------------------------
+void TMMCScBkupDriveFilter::SetPrimaryDriveFilter( const TDriveList& aDriveList )
+ {
+ iPrimaryDriveList = aDriveList;
+ }
+
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupDriveFilter::SetSecondaryDriveFilter()
+//
+//
+// ---------------------------------------------------------------------------
+void TMMCScBkupDriveFilter::SetSecondaryDriveFilter( const TDriveList& aDriveList )
+ {
+ iSecondaryDriveList = aDriveList;
+ iHaveSecondaryList = ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupDriveFilter::NextValidDrive()
+//
+//
+// ---------------------------------------------------------------------------
+TBool TMMCScBkupDriveFilter::NextValidDrive( TDriveNumber& aDrive )
+ {
+ // Always move to the next drive before checking its availability.
+ // FindValidDrive takes care of ensuring the value falls within A-Z
+ // range.
+ ++iCurrentDrive;
+
+ // Do we have an available primary drive?
+ TBool driveAvailable = EFalse;
+ while( iCurrentDrive >= EDriveA && iCurrentDrive <= EDriveZ )
+ {
+ TDriveNumber drive;
+ driveAvailable = FindValidDrive( iPrimaryDriveList, drive );
+ if ( driveAvailable && iHaveSecondaryList )
+ {
+ // Verify against secondary drive list also...
+ const TBool makeOnlyOneDirectAttempt = ETrue;
+ driveAvailable = FindValidDrive( iSecondaryDriveList, drive, makeOnlyOneDirectAttempt );
+ }
+ else if (!driveAvailable)
+ {
+ // No more primary drives left, so we're done here.
+ break;
+ }
+
+ // Did we find a match on (just) the primary drive, or then
+ // the primary and secondary drive lists combined?
+ if (driveAvailable)
+ {
+ // Yes, match found - we're finished here.
+ aDrive = drive;
+ break;
+ }
+ else
+ {
+ // Try to search for the next drive that matches both the
+ // primary and secondary lists (if supported)
+ ++iCurrentDrive;
+ }
+ }
+ //
+ return driveAvailable;
+ }
+
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupDriveFilter::CurrentDrive()
+//
+//
+// ---------------------------------------------------------------------------
+TDriveNumber TMMCScBkupDriveFilter::CurrentDrive() const
+ {
+ return static_cast< TDriveNumber >( iCurrentDrive );
+ }
+
+
+// ---------------------------------------------------------------------------
+// TMMCScBkupDriveFilter::FindValidDrive()
+//
+//
+// ---------------------------------------------------------------------------
+TBool TMMCScBkupDriveFilter::FindValidDrive( const TDriveList& aList, TDriveNumber& aDrive, TBool aOneAttemptOnly )
+ {
+ // If we've already reached Z then there isn't any sense in continuing
+ // as all drives have been processed.
+ TBool driveAvailable = EFalse;
+
+ // Keep checking drives until we go past Z
+ while( iCurrentDrive >= EDriveA && iCurrentDrive <= EDriveZ )
+ {
+ if ( aList[ iCurrentDrive ] != 0 )
+ {
+ // Found an available drive
+ aDrive = static_cast< TDriveNumber >( iCurrentDrive );
+ driveAvailable = ETrue;
+ break;
+ }
+ else if ( aOneAttemptOnly )
+ {
+ break;
+ }
+
+ // Try next drive
+ ++iCurrentDrive;
+ }
+ //
+ return driveAvailable;
+ }
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/bwins/fmbkupenginewrapperu.def Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,69 @@
+EXPORTS
+ ??0FmRestoreSettings@@QAE@AAVFmBkupEngine@@@Z @ 1 NONAME ; FmRestoreSettings::FmRestoreSettings(class FmBkupEngine &)
+ ?tr@FmBkupEngine@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString FmBkupEngine::tr(char const *, char const *)
+ ?getStaticMetaObject@FmBkupEngine@@SAABUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const & FmBkupEngine::getStaticMetaObject(void)
+ ?trUtf8@FmBkupEngine@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString FmBkupEngine::trUtf8(char const *, char const *, int)
+ ?error@FmBkupEngine@@QBEHXZ @ 5 NONAME ; int FmBkupEngine::error(void) const
+ ?availableTargetDrive@FmBackupSettings@@QBE?AVQString@@XZ @ 6 NONAME ; class QString FmBackupSettings::availableTargetDrive(void) const
+ ?GetSelectionL@FmRestoreSettings@@QBEXAAV?$QList@VFmRestoreInfo@@@@@Z @ 7 NONAME ; void FmRestoreSettings::GetSelectionL(class QList<class FmRestoreInfo> &) const
+ ?content@FmBackupSettings@@QBEIXZ @ 8 NONAME ; unsigned int FmBackupSettings::content(void) const
+ ?getBackupDriveList@FmBkupEngine@@QAEXAAVQStringList@@@Z @ 9 NONAME ; void FmBkupEngine::getBackupDriveList(class QStringList &)
+ ?resetAndDestoryRestoreEntry@FmRestoreSettings@@AAEXXZ @ 10 NONAME ; void FmRestoreSettings::resetAndDestoryRestoreEntry(void)
+ ?targetDriveToString@FmBackupSettings@@QAE?AVQString@@ABV2@@Z @ 11 NONAME ; class QString FmBackupSettings::targetDriveToString(class QString const &)
+ ?setScheduling@FmBackupSettings@@QAEXW4TFileManagerBackupSchedule@1@@Z @ 12 NONAME ; void FmBackupSettings::setScheduling(enum FmBackupSettings::TFileManagerBackupSchedule)
+ ?notifyFinish@FmBkupEngine@@IAEXH@Z @ 13 NONAME ; void FmBkupEngine::notifyFinish(int)
+ ?qt_metacast@FmBkupEngine@@UAEPAXPBD@Z @ 14 NONAME ; void * FmBkupEngine::qt_metacast(char const *)
+ ??0FmBackupSettings@@QAE@PAVFmBkupEngine@@@Z @ 15 NONAME ; FmBackupSettings::FmBackupSettings(class FmBkupEngine *)
+ ?SetSelection@FmRestoreSettings@@QAEXAB_K@Z @ 16 NONAME ; void FmRestoreSettings::SetSelection(unsigned long long const &)
+ ?startBackup@FmBkupEngine@@QAE_NV?$QList@PAVFmBkupDrivesAndOperation@@@@V?$QList@PAVFmBkupBackupCategory@@@@VQString@@I@Z @ 17 NONAME ; bool FmBkupEngine::startBackup(class QList<class FmBkupDrivesAndOperation *>, class QList<class FmBkupBackupCategory *>, class QString, unsigned int)
+ ?notifyMemoryLow@FmBkupEngine@@IAEXHAAH@Z @ 18 NONAME ; void FmBkupEngine::notifyMemoryLow(int, int &)
+ ?CreateEntry@FmRestoreSettings@@AAEPAVFmRestoreEntry@@ABVFmRestoreInfo@@@Z @ 19 NONAME ; class FmRestoreEntry * FmRestoreSettings::CreateEntry(class FmRestoreInfo const &)
+ ?startRestore@FmBkupEngine@@QAE_NV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 20 NONAME ; bool FmBkupEngine::startRestore(class QList<class FmBkupDrivesAndOperation *>)
+ ?resetAndDestoryBackupEntry@FmBackupSettings@@AAEXXZ @ 21 NONAME ; void FmBackupSettings::resetAndDestoryBackupEntry(void)
+ ?weekdayToString@FmBackupSettings@@SA?AVQString@@W4TFileManagerBackupWeekday@1@@Z @ 22 NONAME ; class QString FmBackupSettings::weekdayToString(enum FmBackupSettings::TFileManagerBackupWeekday)
+ ?tr@FmBkupEngine@@SA?AVQString@@PBD0H@Z @ 23 NONAME ; class QString FmBkupEngine::tr(char const *, char const *, int)
+ ?contentToString@FmBackupSettings@@SA?AVQString@@I@Z @ 24 NONAME ; class QString FmBackupSettings::contentToString(unsigned int)
+ ?RestoreSettingsL@FmBkupEngine@@QAEPAVFmRestoreSettings@@XZ @ 25 NONAME ; class FmRestoreSettings * FmBkupEngine::RestoreSettingsL(void)
+ ?createBackupDateEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 26 NONAME ; class FmBackupEntry * FmBackupSettings::createBackupDateEntry(void)
+ ?GetRestoreInfoArray@FmBkupEngine@@QAEXAAV?$QList@PAVFmBkupDrivesAndOperation@@@@AAV?$QList@VFmRestoreInfo@@@@ABVQString@@@Z @ 27 NONAME ; void FmBkupEngine::GetRestoreInfoArray(class QList<class FmBkupDrivesAndOperation *> &, class QList<class FmRestoreInfo> &, class QString const &)
+ ?time@FmBackupSettings@@QBEABVQTime@@XZ @ 28 NONAME ; class QTime const & FmBackupSettings::time(void) const
+ ?createWeekdayEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 29 NONAME ; class FmBackupEntry * FmBackupSettings::createWeekdayEntry(void)
+ ?cancelBackup@FmBkupEngine@@QAEXXZ @ 30 NONAME ; void FmBkupEngine::cancelBackup(void)
+ ?notifyUpdate@FmBkupEngine@@IAEXH@Z @ 31 NONAME ; void FmBkupEngine::notifyUpdate(int)
+ ?save@FmBackupSettings@@QAEXXZ @ 32 NONAME ; void FmBackupSettings::save(void)
+ ??_EFmBkupEngine@@UAE@I@Z @ 33 NONAME ; FmBkupEngine::~FmBkupEngine(unsigned int)
+ ?restoreEntryList@FmRestoreSettings@@QAE?AV?$QList@PAVFmRestoreEntry@@@@XZ @ 34 NONAME ; class QList<class FmRestoreEntry *> FmRestoreSettings::restoreEntryList(void)
+ ?createTimeEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 35 NONAME ; class FmBackupEntry * FmBackupSettings::createTimeEntry(void)
+ ?weekday@FmBackupSettings@@QBE?AW4TFileManagerBackupWeekday@1@XZ @ 36 NONAME ; enum FmBackupSettings::TFileManagerBackupWeekday FmBackupSettings::weekday(void) const
+ ?deleteBackup@FmBkupEngine@@QAEHV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 37 NONAME ; int FmBkupEngine::deleteBackup(class QList<class FmBkupDrivesAndOperation *>)
+ ??1FmBackupSettings@@QAE@XZ @ 38 NONAME ; FmBackupSettings::~FmBackupSettings(void)
+ ?setTime@FmBackupSettings@@QAEXABVQTime@@@Z @ 39 NONAME ; void FmBackupSettings::setTime(class QTime const &)
+ ?backupEntryList@FmBackupSettings@@QAE?AV?$QList@PAVFmBackupEntry@@@@XZ @ 40 NONAME ; class QList<class FmBackupEntry *> FmBackupSettings::backupEntryList(void)
+ ?contentsSelected@FmBackupSettings@@ABEHXZ @ 41 NONAME ; int FmBackupSettings::contentsSelected(void) const
+ ?refreshList@FmBackupSettings@@AAEXXZ @ 42 NONAME ; void FmBackupSettings::refreshList(void)
+ ?trUtf8@FmBkupEngine@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString FmBkupEngine::trUtf8(char const *, char const *)
+ ?CreateEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@ABVQString@@0W4TSettingType@2@@Z @ 44 NONAME ; class FmBackupEntry * FmBackupSettings::CreateEntry(class QString const &, class QString const &, enum FmBackupEntry::TSettingType)
+ ?targetDrive@FmBackupSettings@@QBE?AVQString@@XZ @ 45 NONAME ; class QString FmBackupSettings::targetDrive(void) const
+ ??0FmBkupEngine@@QAE@PAVQObject@@@Z @ 46 NONAME ; FmBkupEngine::FmBkupEngine(class QObject *)
+ ?notifyPreparing@FmBkupEngine@@IAEX_N@Z @ 47 NONAME ; void FmBkupEngine::notifyPreparing(bool)
+ ?load@FmRestoreSettings@@QAEXV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 48 NONAME ; void FmRestoreSettings::load(class QList<class FmBkupDrivesAndOperation *>)
+ ?setWeekday@FmBackupSettings@@QAEXW4TFileManagerBackupWeekday@1@@Z @ 49 NONAME ; void FmBackupSettings::setWeekday(enum FmBackupSettings::TFileManagerBackupWeekday)
+ ??1FmRestoreSettings@@QAE@XZ @ 50 NONAME ; FmRestoreSettings::~FmRestoreSettings(void)
+ ?createContentsEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 51 NONAME ; class FmBackupEntry * FmBackupSettings::createContentsEntry(void)
+ ?notifyBackupFilesExist@FmBkupEngine@@IAEXAA_N@Z @ 52 NONAME ; void FmBkupEngine::notifyBackupFilesExist(bool &)
+ ?updateBackupDate@FmBackupSettings@@QAEXXZ @ 53 NONAME ; void FmBackupSettings::updateBackupDate(void)
+ ?createSchedulingEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 54 NONAME ; class FmBackupEntry * FmBackupSettings::createSchedulingEntry(void)
+ ?metaObject@FmBkupEngine@@UBEPBUQMetaObject@@XZ @ 55 NONAME ; struct QMetaObject const * FmBkupEngine::metaObject(void) const
+ ?createTargetDriveEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 56 NONAME ; class FmBackupEntry * FmBackupSettings::createTargetDriveEntry(void)
+ ?load@FmBackupSettings@@QAEXXZ @ 57 NONAME ; void FmBackupSettings::load(void)
+ ??1FmBkupEngine@@UAE@XZ @ 58 NONAME ; FmBkupEngine::~FmBkupEngine(void)
+ ?BackupSettingsL@FmBkupEngine@@QAEPAVFmBackupSettings@@XZ @ 59 NONAME ; class FmBackupSettings * FmBkupEngine::BackupSettingsL(void)
+ ?setContent@FmBackupSettings@@QAEXI@Z @ 60 NONAME ; void FmBackupSettings::setContent(unsigned int)
+ ?schedulingToString@FmBackupSettings@@QAE?AVQString@@W4TFileManagerBackupSchedule@1@@Z @ 61 NONAME ; class QString FmBackupSettings::schedulingToString(enum FmBackupSettings::TFileManagerBackupSchedule)
+ ?setTargetDrive@FmBackupSettings@@QAEXABVQString@@@Z @ 62 NONAME ; void FmBackupSettings::setTargetDrive(class QString const &)
+ ?staticMetaObject@FmBkupEngine@@2UQMetaObject@@B @ 63 NONAME ; struct QMetaObject const FmBkupEngine::staticMetaObject
+ ?refreshList@FmRestoreSettings@@AAEXAAV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 64 NONAME ; void FmRestoreSettings::refreshList(class QList<class FmBkupDrivesAndOperation *> &)
+ ?notifyStart@FmBkupEngine@@IAEX_NH@Z @ 65 NONAME ; void FmBkupEngine::notifyStart(bool, int)
+ ?scheduling@FmBackupSettings@@QBE?AW4TFileManagerBackupSchedule@1@XZ @ 66 NONAME ; enum FmBackupSettings::TFileManagerBackupSchedule FmBackupSettings::scheduling(void) const
+ ?qt_metacall@FmBkupEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 67 NONAME ; int FmBkupEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/eabi/fmbkupenginewrapperu.def Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,73 @@
+EXPORTS
+ _ZN12FmBkupEngine11notifyStartEbi @ 1 NONAME
+ _ZN12FmBkupEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
+ _ZN12FmBkupEngine11qt_metacastEPKc @ 3 NONAME
+ _ZN12FmBkupEngine11startBackupE5QListIP24FmBkupDrivesAndOperationES0_IP20FmBkupBackupCategoryE7QStringj @ 4 NONAME
+ _ZN12FmBkupEngine12cancelBackupEv @ 5 NONAME
+ _ZN12FmBkupEngine12deleteBackupE5QListIP24FmBkupDrivesAndOperationE @ 6 NONAME
+ _ZN12FmBkupEngine12notifyFinishEi @ 7 NONAME
+ _ZN12FmBkupEngine12notifyUpdateEi @ 8 NONAME
+ _ZN12FmBkupEngine12startRestoreE5QListIP24FmBkupDrivesAndOperationE @ 9 NONAME
+ _ZN12FmBkupEngine15BackupSettingsLEv @ 10 NONAME
+ _ZN12FmBkupEngine15notifyMemoryLowEiRi @ 11 NONAME
+ _ZN12FmBkupEngine15notifyPreparingEb @ 12 NONAME
+ _ZN12FmBkupEngine16RestoreSettingsLEv @ 13 NONAME
+ _ZN12FmBkupEngine16staticMetaObjectE @ 14 NONAME DATA 16
+ _ZN12FmBkupEngine18getBackupDriveListER11QStringList @ 15 NONAME
+ _ZN12FmBkupEngine19GetRestoreInfoArrayER5QListIP24FmBkupDrivesAndOperationERS0_I13FmRestoreInfoERK7QString @ 16 NONAME
+ _ZN12FmBkupEngine19getStaticMetaObjectEv @ 17 NONAME
+ _ZN12FmBkupEngine22notifyBackupFilesExistERb @ 18 NONAME
+ _ZN12FmBkupEngineC1EP7QObject @ 19 NONAME
+ _ZN12FmBkupEngineC2EP7QObject @ 20 NONAME
+ _ZN12FmBkupEngineD0Ev @ 21 NONAME
+ _ZN12FmBkupEngineD1Ev @ 22 NONAME
+ _ZN12FmBkupEngineD2Ev @ 23 NONAME
+ _ZN16FmBackupSettings10setContentEj @ 24 NONAME
+ _ZN16FmBackupSettings10setWeekdayENS_25TFileManagerBackupWeekdayE @ 25 NONAME
+ _ZN16FmBackupSettings11CreateEntryERK7QStringS2_N13FmBackupEntry12TSettingTypeE @ 26 NONAME
+ _ZN16FmBackupSettings11refreshListEv @ 27 NONAME
+ _ZN16FmBackupSettings13setSchedulingENS_26TFileManagerBackupScheduleE @ 28 NONAME
+ _ZN16FmBackupSettings14setTargetDriveERK7QString @ 29 NONAME
+ _ZN16FmBackupSettings15backupEntryListEv @ 30 NONAME
+ _ZN16FmBackupSettings15contentToStringEj @ 31 NONAME
+ _ZN16FmBackupSettings15createTimeEntryEv @ 32 NONAME
+ _ZN16FmBackupSettings15weekdayToStringENS_25TFileManagerBackupWeekdayE @ 33 NONAME
+ _ZN16FmBackupSettings16updateBackupDateEv @ 34 NONAME
+ _ZN16FmBackupSettings18createWeekdayEntryEv @ 35 NONAME
+ _ZN16FmBackupSettings18schedulingToStringENS_26TFileManagerBackupScheduleE @ 36 NONAME
+ _ZN16FmBackupSettings19createContentsEntryEv @ 37 NONAME
+ _ZN16FmBackupSettings19targetDriveToStringERK7QString @ 38 NONAME
+ _ZN16FmBackupSettings21createBackupDateEntryEv @ 39 NONAME
+ _ZN16FmBackupSettings21createSchedulingEntryEv @ 40 NONAME
+ _ZN16FmBackupSettings22createTargetDriveEntryEv @ 41 NONAME
+ _ZN16FmBackupSettings26resetAndDestoryBackupEntryEv @ 42 NONAME
+ _ZN16FmBackupSettings4loadEv @ 43 NONAME
+ _ZN16FmBackupSettings4saveEv @ 44 NONAME
+ _ZN16FmBackupSettings7setTimeERK5QTime @ 45 NONAME
+ _ZN16FmBackupSettingsC1EP12FmBkupEngine @ 46 NONAME
+ _ZN16FmBackupSettingsC2EP12FmBkupEngine @ 47 NONAME
+ _ZN16FmBackupSettingsD1Ev @ 48 NONAME
+ _ZN16FmBackupSettingsD2Ev @ 49 NONAME
+ _ZN17FmRestoreSettings11CreateEntryERK13FmRestoreInfo @ 50 NONAME
+ _ZN17FmRestoreSettings11refreshListER5QListIP24FmBkupDrivesAndOperationE @ 51 NONAME
+ _ZN17FmRestoreSettings12SetSelectionERKy @ 52 NONAME
+ _ZN17FmRestoreSettings16restoreEntryListEv @ 53 NONAME
+ _ZN17FmRestoreSettings27resetAndDestoryRestoreEntryEv @ 54 NONAME
+ _ZN17FmRestoreSettings4loadE5QListIP24FmBkupDrivesAndOperationE @ 55 NONAME
+ _ZN17FmRestoreSettingsC1ER12FmBkupEngine @ 56 NONAME
+ _ZN17FmRestoreSettingsC2ER12FmBkupEngine @ 57 NONAME
+ _ZN17FmRestoreSettingsD1Ev @ 58 NONAME
+ _ZN17FmRestoreSettingsD2Ev @ 59 NONAME
+ _ZNK12FmBkupEngine10metaObjectEv @ 60 NONAME
+ _ZNK12FmBkupEngine5errorEv @ 61 NONAME
+ _ZNK16FmBackupSettings10schedulingEv @ 62 NONAME
+ _ZNK16FmBackupSettings11targetDriveEv @ 63 NONAME
+ _ZNK16FmBackupSettings16contentsSelectedEv @ 64 NONAME
+ _ZNK16FmBackupSettings20availableTargetDriveEv @ 65 NONAME
+ _ZNK16FmBackupSettings4timeEv @ 66 NONAME
+ _ZNK16FmBackupSettings7contentEv @ 67 NONAME
+ _ZNK16FmBackupSettings7weekdayEv @ 68 NONAME
+ _ZNK17FmRestoreSettings13GetSelectionLER5QListI13FmRestoreInfoE @ 69 NONAME
+ _ZTI12FmBkupEngine @ 70 NONAME
+ _ZTV12FmBkupEngine @ 71 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/fmbkupenginewrapper.pri Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,46 @@
+#
+# 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 "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: FmBkupEngineWrapper project - source files
+#
+
+INCLUDEPATH += ./inc
+INCLUDEPATH += ../common
+win32:INCLUDEPATH += ./private/win32
+symbian {
+ INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+ INCLUDEPATH += /epoc32/include/connect
+ INCLUDEPATH += ./private/symbian
+ INCLUDEPATH += ../fmbkupengine/inc
+}
+
+HEADERS += inc/fmbkupengine.h \
+ inc/fmbkupcommon.h \
+ inc/fmbackupsettings.h \
+ inc/fmrestoresettings.h \
+
+
+SOURCES += src/fmbkupengine.cpp \
+ src/fmbackupsettings.cpp \
+ src/fmrestoresettings.cpp \
+
+win32 {
+ HEADERS += private/win32/fmbkupengine_p.h
+ SOURCES += private/win32/fmbkupengine_p.cpp
+}
+
+symbian {
+ HEADERS += inc/FileManagerPrivateCRKeys.h \
+ private/symbian/fmbkupengine_p.h
+ SOURCES += private/symbian/fmbkupengine_p.cpp
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/fmbkupenginewrapper.pro Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,41 @@
+#
+# 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 "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: The project file of FmBkupEngineWrapper
+#
+
+CONFIG += hb
+TARGET =
+TEMPLATE = lib
+QT = core
+DEFINES += FMBKUPENGINE_LIBRARY
+
+include ( ../common.pri )
+include ( ../inc/commoninc.pri )
+include ( fmbkupenginewrapper.pri )
+
+symbian {
+ TARGET.UID3 = 0x2002BCC1
+ TARGET.EPOCALLOWDLLDATA = 1
+ TARGET.CAPABILITY = CAP_GENERAL_DLL DiskAdmin AllFiles PowerMgmt
+ TARGET.VID = VID_DEFAULT
+ LIBS += -lfmbkupengine
+ LIBS += -lefsrv
+ LIBS += -lavkon
+ LIBS += -leikctl
+ LIBS += -leikcore
+ LIBS += -lcone
+ LIBS += -lsysutil
+ LIBS += -lplatformenv
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/inc/filemanagerprivatecrkeys.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,100 @@
+/*
+ * 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 "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:
+ * The header file of the backup const configuration
+ */
+
+
+#ifndef FILEMANAGERPRIVATECRKEYS_H
+#define FILEMANAGERPRIVATECRKEYS_H
+
+
+/** File manager repository uid */
+const TUid KCRUidFileManagerSettings = { 0x1020506B };
+
+/** Defines the backup content */
+const TUint32 KFileManagerBackupContent = 0x1;
+
+/** Defines the backup scheduling mode */
+const TUint32 KFileManagerBackupScheduling = 0x2;
+
+/** Contains the possible values of KFileManagerBackupScheduling key. */
+enum TFileManagerBackupSchedule
+ {
+ EFileManagerBackupScheduleNone = 0,
+ EFileManagerBackupScheduleDaily,
+ EFileManagerBackupScheduleWeekly
+ };
+
+/** Defines the scheduled backup weekday. See day definitions from TDay.
+ * Negative value means the first day of the week.
+ */
+const TUint32 KFileManagerBackupDay = 0x3;
+
+/** Defines the scheduled backup time in minutes starting from 00:00 midnight */
+const TUint32 KFileManagerBackupTime = 0x4;
+
+/** Defines the backup target path as string */
+const TUint32 KFileManagerBackupTargetPath = 0x5;
+
+/** Defines the status of the last scheduled backup */
+const TUint32 KFileManagerLastSchBackupStatus = 0x6;
+
+/** Contains the possible values of KFileManagerLastSchBackupStatus key. */
+enum TFileManagerSchBackupStatus
+ {
+ EFileManagerSchBackupStatusOk = 0,
+ EFileManagerSchBackupStatusFailed,
+ EFileManagerSchBackupStatusStarting,
+ EFileManagerSchBackupStatusInProgress,
+ EFileManagerSchBackupStatusCanceled
+ };
+
+/** Defines file manager local variation configuration */
+const TUint32 KFileManagerFeatures = 0x7;
+
+/** Contains the possible bitmask values of KFileManagerFeatures key. */
+enum TFileManagerFeatures
+ {
+ EFileManagerFeatureBackupAllowAllDrives = 0x1,
+ EFileManagerFeatureNotUsedAnymore = 0x2,
+ EFileManagerFeatureRightLeftNaviSupported = 0x4,
+ EFileManagerFeatureScheduledBackupDisabled = 0x8
+ };
+
+/** Defines the file manager application to be launched for the AIW service.
+The value of this key is an application UID or zero. */
+const TUint32 KFileManagerAppUidForAiwService = 0x8;
+
+/** Defines default volume name for non user nameable mass storage.
+The default name will be used after format only if the stored volume name is undefined
+for the drive. The name is visible only in Windows Explorer during USB mass storage mode and
+in 3rd party File Manager(s). */
+const TUint32 KFileManagerDefaultInternalMassStorageVolumeName = 0x9;
+
+/** Defines a store for keeping existing non user nameable mass storage volume name over
+format operation. The data is stored in binary as TFileManagerVolumeNameStore. */
+const TUint32 KFileManagerStoredInternalMassStorageVolumeName = 0xA;
+
+enum TFileManagerBkupStatusType
+ {
+ EFileManagerBkupStatusUnset = 0x00000000,
+ EFileManagerBkupStatusBackup = 0x00000001,
+ EFileManagerBkupStatusRestore = 0x00000002
+ };
+
+#endif // FILEMANAGERPRIVATECRKEYS_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/inc/fmbackupsettings.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,358 @@
+/*
+ * 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 "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:
+ * The header file of the backup seetings of file manager
+ */
+#ifndef FMBACKUPSETTINGS_H
+#define FMBACKUPSETTINGS_H
+
+#include "fmbkupengine_global.h"
+
+#include <QTime>
+#include <QString>
+#include <QList>
+
+#include <hbglobal.h>
+
+class FmBkupEngine;
+
+// CLASS DECLARATION
+/**
+ * This class is used for storing backup entry which used in backup view
+ * Each row in backup view is a single entry
+ *
+ */
+class FmBackupEntry
+{
+public:
+ /** Backup setting type */
+ enum TSettingType
+ {
+ ENone = 0,
+ EContents,
+ EScheduling,
+ EWeekday,
+ ETime,
+ ETarget,
+ EBackupdate
+ };
+
+public:
+ FmBackupEntry( const QString& title, const QString& tips, const TSettingType type ) :
+ mTitle( title ), mTips( tips ), mType( type )
+ {
+ }
+ ~FmBackupEntry( void )
+ {
+ }
+
+ FmBackupEntry( const FmBackupEntry &other )
+ {
+ mTitle = other.mTitle;
+ mTips = other.mTips;
+ mType = other.mType;
+ }
+
+ FmBackupEntry &operator =( const FmBackupEntry &other )
+ {
+ if( this == &other ){
+ return *this;
+ }
+
+ mTitle = other.mTitle;
+ mTips = other.mTips;
+ mType = other.mType;
+ return *this;
+ }
+
+ QString title()
+ {
+ return mTitle;
+ }
+
+ QString tips()
+ {
+ return mTips;
+ }
+
+ FmBackupEntry::TSettingType type()
+ {
+ return mType;
+ }
+
+
+private:
+ /**
+ * first label for item in backup view
+ */
+ QString mTitle;
+
+ /**
+ * second label for item in backup view
+ */
+ QString mTips;
+
+ /**
+ * type for item in backup view
+ */
+ TSettingType mType;
+};
+
+// CLASS DECLARATION
+/**
+ * This class is used for storing backup settings
+ *
+ */
+class FMBKUPENGINE_EXPORT FmBackupSettings
+{
+public:
+ enum TFileManagerBackupContentMask
+ {
+ EFileManagerBackupContentAll = 0x1,
+ EFileManagerBackupContentSettings = 0x2,
+ EFileManagerBackupContentMessages = 0x4,
+ EFileManagerBackupContentContacts = 0x8,
+ EFileManagerBackupContentCalendar = 0x10,
+ EFileManagerBackupContentBookmarks = 0x20,
+ EFileManagerBackupContentUserFiles = 0x40,
+ EFileManagerBackupContentFirst = 0x2,
+ EFileManagerBackupContentLast = 0x40
+ };
+
+ /** Contains the possible values of KFileManagerBackupScheduling key. */
+ enum TFileManagerBackupSchedule
+ {
+ EFileManagerBackupScheduleNever = 0,
+ EFileManagerBackupScheduleDaily,
+ EFileManagerBackupScheduleWeekly
+ };
+
+ /** Contains the possible values of KFileManagerBackupScheduling key. */
+ enum TFileManagerBackupWeekday
+ {
+ EFileManagerBackupWeekdayMonday = 0,
+ EFileManagerBackupWeekdayTuesday,
+ EFileManagerBackupWeekdayWednesday,
+ EFileManagerBackupWeekdayThursday,
+ EFileManagerBackupWeekdayFriday,
+ EFileManagerBackupWeekdaySaturday,
+ EFileManagerBackupWeekdaySunday,
+ };
+
+public:
+ explicit FmBackupSettings( FmBkupEngine *aFmBkupEngine );
+ ~FmBackupSettings( void );
+
+
+ /**
+ * Sets backup contents
+ * @param aContent Content bitmask
+ */
+ void setContent( const quint32 aContent );
+
+ /**
+ * Sets backup scheduling
+ * @param aScheduling Scheduling type
+ */
+ void setScheduling( const TFileManagerBackupSchedule aScheduling );
+
+ /**
+ * Sets backup weekday
+ * @param weekday Backup weekday
+ */
+ void setWeekday( const TFileManagerBackupWeekday weekday );
+
+ /**
+ * Sets backup time
+ * @param aTime Time from 00:00
+ */
+ void setTime( const QTime& aTime );
+
+ /**
+ * Sets backup target drive
+ * @param aDrive Target drive (See TDriveNumber)
+ */
+ void setTargetDrive( const QString& aDrive );
+
+ /**
+ * Gets backup contents
+ * @return Content bitmask
+ * @see TFileManagerBackupContentMask
+ */
+ quint32 content() const;
+
+ /**
+ * Gets backup scheduling
+ * @return Scheduling type
+ */
+ FmBackupSettings::TFileManagerBackupSchedule scheduling() const;
+
+ /**
+ * Gets backup weekday
+ * @return Backup weekday
+ */
+ FmBackupSettings::TFileManagerBackupWeekday weekday() const;
+
+ /**
+ * Gets backup time
+ * @return Backup time
+ */
+ const QTime& time() const;
+
+ /**
+ * Gets backup target drive
+ * @return Backup time
+ */
+ QString targetDrive() const;
+
+ /**
+ * Gets available backup target drive
+ * if targetDrive exist, return targetDrive
+ * otherwise return other first available backup drive
+ * @return Available backup target drive, empty QString for null
+ */
+ QString availableTargetDrive() const;
+
+ /**
+ * Loads saved backup settings
+ */
+ void load();
+
+ /**
+ * Saves backup settings
+ */
+ void save();
+
+ /**
+ * get backup entry list
+ * @return backup entry list
+ */
+ QList< FmBackupEntry* > backupEntryList();
+
+ /**
+ * Gets String from single content bit
+ * @param aContent content bit
+ * @return Textid
+ */
+ static QString contentToString( const quint32 content );
+
+
+ /**
+ * Gets String from weekday
+ * @param weekday
+ * @return string
+ */
+ static QString weekdayToString( const TFileManagerBackupWeekday weekday );
+
+ /**
+ * Gets String from scheduling
+ * @param scheduling
+ * @return string
+ */
+ QString schedulingToString( const TFileManagerBackupSchedule scheduling );
+ /**
+ * Gets String from targetDrive
+ * @param targetDrive drive name string
+ * @return string
+ */
+ QString targetDriveToString( const QString& targetDrive );
+
+ /**
+ * Updates the backup date
+ */
+ void updateBackupDate();
+private:
+ /**
+ * Gets the count of contents selected
+ */
+ int contentsSelected() const;
+
+ FmBackupEntry* CreateEntry( const QString& title, const QString& tips, const FmBackupEntry::TSettingType type );
+
+ ///////////////////////////////////////////////////////////////////////
+ /**
+ * Creates backup setting entry from all contents bit
+ */
+ FmBackupEntry* createContentsEntry();
+
+ /**
+ * Creates backup setting entry from scheduling
+ */
+ FmBackupEntry* createSchedulingEntry();
+
+ /**
+ * Creates backup setting entry from weekday
+ */
+ FmBackupEntry* createWeekdayEntry();
+
+ /**
+ * Creates backup setting entry from time
+ */
+ FmBackupEntry* createTimeEntry();
+
+ /**
+ * Creates backup setting entry from time
+ */
+ FmBackupEntry* createTargetDriveEntry();
+
+ /**
+ * Creates backup date entry
+ */
+ FmBackupEntry* createBackupDateEntry();
+
+ void refreshList();
+ void resetAndDestoryBackupEntry();
+private:
+ /**
+ * Content bitmask
+ * @see TFileManagerBackupContentMask
+ */
+ quint32 mContent;
+
+ /**
+ * Scheduling type
+ */
+ TFileManagerBackupSchedule mScheduling;
+
+ /**
+ * Scheduled backup weekday
+ */
+ TFileManagerBackupWeekday mWeekday;
+
+ /**
+ * Scheduled backup time from 00:00
+ */
+ QTime mTime;
+
+ /**
+ * Backup target drive
+ */
+ QString mTargetDrive;
+
+ /**
+ * Backup date
+ */
+ QDate mDate;
+
+ /**
+ * Backup setting list items
+ */
+ QList< FmBackupEntry* > mBackupEntryList;
+
+
+ FmBkupEngine *mBkupEngine;
+};
+
+#endif //FMBACKUPSETTINGS_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/inc/fmbkupcommon.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,404 @@
+/*
+ * 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 "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:
+ * The header file of the backup common class
+ */
+
+#ifndef FMBKUPCOMMON_H
+#define FMBKUPCOMMON_H
+
+
+//#define KFileManagerUID3 0x101F84EB
+
+namespace FmBkupEngineCommon
+{
+
+enum TFileManagerBackupContentMask
+ {
+ EFileManagerBackupContentAll = 0x1,
+ EFileManagerBackupContentSettings = 0x2,
+ EFileManagerBackupContentMessages = 0x4,
+ EFileManagerBackupContentContacts = 0x8,
+ EFileManagerBackupContentCalendar = 0x10,
+ EFileManagerBackupContentBookmarks = 0x20,
+ EFileManagerBackupContentUserFiles = 0x40,
+ EFileManagerBackupContentFirst = 0x2,
+ EFileManagerBackupContentLast = 0x40
+ };
+
+
+ // Partial backup categories bitmask values
+ enum MAEngineBackupCategories
+ {
+ EBUCatSettings = 0x1,
+ EBUCatMessages = 0x2,
+ EBUCatContacts = 0x4,
+ EBUCatCalendar = 0x8,
+ EBUCatBookmarks = 0x10,
+ EBUCatUserFiles = 0x20,
+ EBUCatAllInOne = 0x8000000,
+ EBUCatAllSeparately = 0x7FFFFFF
+ // Set as 0xFFFFFFF (EBUCatAllInOne+EBUCatAllSeparately) if archive containing
+ // data from all data owners needs to be created.
+ };
+
+ // Bitmask values for special ruling of which category data owner belongs to
+ enum MAEngineBackupCatSpecFlag
+ {
+ EBUCatSpecNone = 0x0,
+ EBUCatSpecSystem = 0x1,
+ EBUCatSpecJava = 0x2,
+ EBUCatSpecPublic = 0x4,
+ EBUCatSpecAll = 0x8
+ };
+
+ // Defines drive caterories for multiple drives to setup backup sources and restore targets
+ enum MAEngineBackupDriveType
+ {
+ EBkupDeviceMemories = 0x1,
+ EBkupInternalMassStorages = 0x2,
+ EBkupExternalMassStorages = 0x4
+ };
+
+ enum TMMCScBkupOwnerDataType
+ {
+ // Relates to all data owners
+ EMMCScBkupOwnerDataTypeDataOwner = 0,
+
+ // Relates to java data for a particular owner
+ EMMCScBkupOwnerDataTypeJavaData,
+
+ // Relates to public data for a particular owner
+ EMMCScBkupOwnerDataTypePublicData,
+
+ // Relates to system data for a particular owner
+ EMMCScBkupOwnerDataTypeSystemData,
+
+ // Relates to active data for a particular owner
+ EMMCScBkupOwnerDataTypeActiveData,
+
+ // Relates to passive data for a particular owner
+ EMMCScBkupOwnerDataTypePassiveData,
+
+ // Always leave this last, don't assign it
+ // a value. Don't use it either!
+ EMMCScBkupOwnerDataTypeCount,
+
+ // A generic 'any data type' value. Used by the drive-specific-request &
+ // data sizer. Not a real SBE data type, hence it appears after
+ // the last marker.
+ EMMCScBkupOwnerDataTypeAny
+ };
+
+ const QString const_Bkup_EBUCatSettings ( "EBUCatSettings" );
+ const QString const_Bkup_EBUCatMessages ( "EBUCatMessages" );
+ const QString const_Bkup_EBUCatContacts ( "EBUCatContacts" );
+ const QString const_Bkup_EBUCatCalendar ( "EBUCatCalendar" );
+ const QString const_Bkup_EBUCatBookmarks ( "EBUCatBookmarks" );
+ const QString const_Bkup_EBUCatUserFiles ( "EBUCatUserFiles" );
+ const QString const_Bkup_EBUCatAllInOne ( "EBUCatAllInOne" );
+ const QString const_Bkup_EBUCatAllSeparately( "EBUCatAllSeparately" );
+
+ const QString const_bkup_EBUCatSpecNone ( "EBUCatSpecNone" );
+ const QString const_bkup_EBUCatSpecSystem ( "EBUCatSpecSystem" );
+ const QString const_bkup_EBUCatSpecJava ( "EBUCatSpecJava" );
+ const QString const_bkup_EBUCatSpecPublic ( "EBUCatSpecPublic" );
+ const QString const_bkup_EBUCatSpecAll ( "EBUCatSpecAll" );
+
+ const QString const_bkup_EBkupDeviceMemories(
+ "EBkupDeviceMemories"
+ );
+ const QString const_bkup_EBkupInternalMassStorages(
+ "EBkupInternalMassStorages"
+ );
+ const QString const_bkup_EBkupExternalMassStorages(
+ "EBkupExternalMassStorages"
+ );
+
+ const QString const_bkup_EMMCScBkupOwnerDataTypeDataOwner(
+ "EMMCScBkupOwnerDataTypeDataOwner"
+ );
+ const QString const_bkup_EMMCScBkupOwnerDataTypeJavaData(
+ "EMMCScBkupOwnerDataTypeJavaData"
+ );
+ const QString const_bkup_EMMCScBkupOwnerDataTypePublicData(
+ "EMMCScBkupOwnerDataTypePublicData"
+ );
+ const QString const_bkup_EMMCScBkupOwnerDataTypeSystemData(
+ "EMMCScBkupOwnerDataTypeSystemData"
+ );
+ const QString const_bkup_EMMCScBkupOwnerDataTypeActiveData(
+ "EMMCScBkupOwnerDataTypeActiveData"
+ );
+ const QString const_bkup_EMMCScBkupOwnerDataTypePassiveData(
+ "EMMCScBkupOwnerDataTypePassiveData"
+ );
+
+}
+
+class ConfigStringConverter
+{
+public:
+ static unsigned int drivesAndOperations_DriveToUInt( bool* ok, QString paramString )
+ {
+ unsigned int ret = 0;
+ *ok = false;
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EBkupDeviceMemories,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBkupDeviceMemories;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EBkupInternalMassStorages,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBkupInternalMassStorages;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EBkupExternalMassStorages,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBkupExternalMassStorages;
+ }
+ return ret;
+ }
+
+ static unsigned int drivesAndOperations_TypeToUInt(
+ bool* ok, QString paramString )
+ {
+ unsigned int ret = 0;
+ *ok = false;
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypeDataOwner,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypeDataOwner;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypeJavaData,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypeJavaData;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypePublicData,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypePublicData;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypeSystemData,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypeSystemData;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypeActiveData,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypeActiveData;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypePassiveData,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypePassiveData;
+ }
+ return ret;
+ }
+
+ static unsigned int backupCategory_CategoryToUInt(
+ bool* ok, QString paramString )
+ {
+ unsigned int ret = 0;
+ *ok = false;
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_Bkup_EBUCatSettings,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatSettings;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_Bkup_EBUCatMessages,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatMessages;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_Bkup_EBUCatContacts,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatContacts;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_Bkup_EBUCatCalendar,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatCalendar;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_Bkup_EBUCatBookmarks,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatBookmarks;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_Bkup_EBUCatUserFiles,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatUserFiles;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_Bkup_EBUCatAllInOne,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatAllInOne;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_Bkup_EBUCatAllSeparately,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatAllSeparately;
+ }
+ return ret;
+ }
+
+ static unsigned int backupCategory_Special_flagsToUInt(
+ bool* ok, QString paramString )
+ {
+ unsigned int ret = 0;
+ *ok = false;
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EBUCatSpecNone,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatSpecNone;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EBUCatSpecSystem,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatSpecSystem;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EBUCatSpecJava,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatSpecJava;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EBUCatSpecPublic,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatSpecPublic;
+ }
+ if ( paramString.contains(
+ FmBkupEngineCommon::const_bkup_EBUCatSpecAll,
+ Qt::CaseInsensitive ) ){
+ *ok = true;
+ ret |= FmBkupEngineCommon::EBUCatSpecAll;
+ }
+ return ret;
+ }
+};
+class FmBkupDrivesAndOperation
+{
+public:
+ FmBkupDrivesAndOperation(){}
+ FmBkupDrivesAndOperation( unsigned int drvCategories, unsigned int ownerDataType );
+ FmBkupDrivesAndOperation( const FmBkupDrivesAndOperation &other )
+ {
+ mDrvCategories = other.mDrvCategories;
+ mOwnerDataType = other.mOwnerDataType;
+ }
+
+ void setDrvCategories( unsigned int drvCategories ){ mDrvCategories = drvCategories; }
+ void setOwnerDataType( unsigned int ownerDataType ){ mOwnerDataType = ownerDataType; }
+
+ unsigned int drvCategories(){ return mDrvCategories; }
+ unsigned int ownerDataType(){ return mOwnerDataType; }
+private:
+ unsigned int mDrvCategories;
+ unsigned int mOwnerDataType;
+};
+
+class FmBkupBackupCategory
+{
+public:
+ FmBkupBackupCategory(){}
+ FmBkupBackupCategory( const FmBkupBackupCategory &other )
+ {
+ mCategory = other.mCategory;
+ mArchive_name = other.mArchive_name;
+ mSpecial_flags = other.mSpecial_flags;
+ mExclude_special_flags = other.mExclude_special_flags;
+ mUids = other.mUids;
+ mExclude_uids = other.mExclude_uids;
+ }
+ ~FmBkupBackupCategory()
+ {
+ mUids.clear();
+ mExclude_uids.clear();
+ }
+
+ void setCategory( unsigned int category )
+ {
+ mCategory = category;
+ }
+
+ void setArchive_name( QString archive_name )
+ {
+ mArchive_name = archive_name;
+ }
+
+ void setSpecial_flags( unsigned int special_flags )
+ {
+ mSpecial_flags = special_flags;
+ }
+
+ void setExclude_special_flags( unsigned int exclude_special_flags )
+ {
+ mExclude_special_flags = exclude_special_flags;
+ }
+
+ void addUids( unsigned int uid )
+ {
+ mUids.append( uid);
+ }
+
+ void addExclude_uids( unsigned int exclude_uid )
+ {
+ mExclude_uids.append( exclude_uid );
+ }
+
+ unsigned int category() { return mCategory; }
+ QString archive_name() { return mArchive_name; }
+ unsigned int special_flags() { return mSpecial_flags; }
+ unsigned int exclude_special_flags() { return mExclude_special_flags; }
+ QList<unsigned int> *uids() { return &mUids; }
+ QList<unsigned int> *exclude_uids() { return &mExclude_uids; }
+
+private:
+ unsigned int mCategory;
+ QString mArchive_name;
+ unsigned int mSpecial_flags;
+ unsigned int mExclude_special_flags;
+ QList<unsigned int> mUids;
+ QList<unsigned int> mExclude_uids;
+};
+
+
+#endif //FMBKUPCOMMON_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/inc/fmbkupengine.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,109 @@
+/*
+ * 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 "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:
+ * The header file of the backup engine from bkup engine wrapper
+ */
+
+
+#ifndef FMBKUPENGINE_H
+#define FMBKUPENGINE_H
+
+// INCLUDES
+#include <QObject>
+#include <QList>
+#include "fmbkupengine_global.h"
+
+#include "fmdefine.h"
+
+// FORWARD DECLARATIONS
+class FmBkupEnginePrivate;
+
+
+class FmBkupDrivesAndOperation;
+class FmBkupBackupCategory;
+class FmRestoreInfo;
+
+class FmBackupSettings;
+class FmRestoreSettings;
+
+// CLASS DECLARATION
+class FMBKUPENGINE_EXPORT FmBkupEngine : public QObject
+{
+Q_OBJECT
+public:
+
+ enum MAEngineBackupCategories
+ {
+ EBUCatSettings = 0x1,
+ EBUCatMessages = 0x2,
+ EBUCatContacts = 0x4,
+ EBUCatCalendar = 0x8,
+ EBUCatBookmarks = 0x10,
+ EBUCatUserFiles = 0x20,
+ EBUCatAllInOne = 0x8000000,
+ EBUCatAllSeparately = 0x7FFFFFF
+ // Set as 0xFFFFFFF (EBUCatAllInOne+EBUCatAllSeparately) if archive containing
+ // data from all data owners needs to be created.
+ };
+
+
+ enum Process{
+ ProcessNone = 0,
+ ProcessBackup,
+ ProcessRestore
+ };
+
+ FmBkupEngine(QObject* parent = 0);
+ ~FmBkupEngine();
+
+
+ bool startBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+ QList<FmBkupBackupCategory*> backupCategoryList,
+ QString drive, quint32 content);
+
+ void cancelBackup();
+
+ bool startRestore( QList<FmBkupDrivesAndOperation* > drivesAndOperationList );
+ int deleteBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList );
+ int error() const;
+
+ FmBackupSettings* BackupSettingsL();
+ FmRestoreSettings* RestoreSettingsL();
+
+ void GetRestoreInfoArray( QList<FmBkupDrivesAndOperation* > &drivesAndOperationList,
+ QList< FmRestoreInfo > &restoreInfoList,
+ const QString& aDrive );
+
+ void getBackupDriveList( QStringList &driveList );
+
+signals:
+ void notifyPreparing( bool cancelable );
+ void notifyStart( bool cancelable, int totalCount );
+ void notifyUpdate( int count );
+ void notifyFinish( int err );
+ void notifyMemoryLow( int memoryValue, int &userError );
+ void notifyBackupFilesExist( bool &isContinue );
+
+private:
+ friend class FmBkupEnginePrivate;
+ FmBkupEnginePrivate* d;
+
+ FmBackupSettings *iBackupSettings;
+ FmRestoreSettings *iRestoreSettings;
+};
+
+#endif /*FMBKUPENGINE_H*/
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/inc/fmbkupengine_global.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,34 @@
+/*
+ * 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 "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:
+ * The header file of the backup engine wrapper export MACRO
+ */
+
+#ifndef FMBKUPENGINE_GLOBAL_H
+#define FMBKUPENGINE_GLOBAL_H
+
+#include <QtCore/qglobal.h>
+
+#if defined(FMBKUPENGINE_LIBRARY)
+# define FMBKUPENGINE_EXPORT Q_DECL_EXPORT
+#else
+# if defined(FMBKUPENGINE_NO_LIBRARY)
+# define FMBKUPENGINE_EXPORT
+# else
+# define FMBKUPENGINE_EXPORT Q_DECL_IMPORT
+# endif
+#endif
+
+#endif // FMBKUPENGINE_GLOBAL_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/inc/fmrestoresettings.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,186 @@
+/*
+ * 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 "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:
+ * The header file of the restore settings of file manager
+ */
+
+#ifndef FMRESTORESETTINGS_H
+#define FMRESTORESETTINGS_H
+
+#include "fmbkupengine_global.h"
+
+#include <QDateTime>
+#include <QString>
+#include <QList>
+
+class FmBkupDrivesAndOperation;
+class FmBkupEngine;
+// CLASS DECLARATION
+/**
+ * This class is used for storing restore info
+ */
+class FmRestoreInfo
+{
+public:
+ FmRestoreInfo( const quint32 content, const QDateTime &dateTime, const QString &drive ) :
+ mContent( content ), mDateTime ( dateTime ), mDrive ( drive )
+ {
+ }
+ ~FmRestoreInfo( void )
+ {
+ }
+
+ quint32 content() const
+ {
+ return mContent;
+ }
+
+ QDateTime dateTime() const
+ {
+ return mDateTime;
+ }
+ QString drive() const
+ {
+ return mDrive;
+ }
+
+ FmRestoreInfo( const FmRestoreInfo &other )
+ {
+ mContent = other.mContent;
+ mDateTime = other.mDateTime;
+ mDrive = other.mDrive;
+ }
+
+ FmRestoreInfo &operator =( const FmRestoreInfo &other )
+ {
+ if( this == &other ){
+ return *this;
+ }
+
+ mContent = other.mContent;
+ mDateTime = other.mDateTime;
+ mDrive = other.mDrive;
+ return *this;
+ }
+
+private:
+ quint32 mContent; /// single content mask id
+ QDateTime mDateTime;
+ QString mDrive;
+};
+
+// CLASS DECLARATION
+/**
+ * This class is used for storing restore entry which used in restore view
+ * Each row in restore view is a single entry
+ */
+class FmRestoreEntry
+{
+public:
+ FmRestoreEntry( const QString& text, const FmRestoreInfo& info ) :
+ mText( text ), mRestoreInfo( info )
+ {
+ }
+ ~FmRestoreEntry( void )
+ {
+ }
+
+ FmRestoreEntry( const FmRestoreEntry &other ) : mRestoreInfo( other.mRestoreInfo ), mText( other.mText )
+ {
+ }
+
+ FmRestoreEntry &operator =( const FmRestoreEntry &other )
+ {
+ if( this == &other ){
+ return *this;
+ }
+
+ mText = other.mText;
+ mRestoreInfo = other.mRestoreInfo;
+ return *this;
+ }
+
+ QString text() const
+ {
+ return mText;
+ }
+
+ FmRestoreInfo restoreInfo() const
+ {
+ return mRestoreInfo;
+ }
+
+private:
+ QString mText; /// display text
+ FmRestoreInfo mRestoreInfo; /// info
+};
+
+// CLASS DECLARATION
+/**
+ * This class is used for storing resore settings which used in restore view
+ */
+class FMBKUPENGINE_EXPORT FmRestoreSettings
+{
+public:
+
+public:
+ explicit FmRestoreSettings( FmBkupEngine& );
+ ~FmRestoreSettings( void );
+
+ /*
+ * load and refresh data to entry list
+ */
+ void load( QList<FmBkupDrivesAndOperation* > drivesAndOperationList );
+
+ /**
+ * get restore entry list, please invoke load() first.
+ * @return restore entry list
+ */
+ QList< FmRestoreEntry* > restoreEntryList();
+
+ void GetSelectionL( QList< FmRestoreInfo >& infoArray ) const;
+ void SetSelection( const quint64& aSelection );
+
+private:
+ /**
+ * create restore entry that will be used in restore view.
+ */
+ FmRestoreEntry* CreateEntry( const FmRestoreInfo &info );
+
+ /**
+ * delete memory in the entry list
+ */
+ void resetAndDestoryRestoreEntry();
+
+ /*
+ * refresh data to entry list
+ */
+ void refreshList( QList<FmBkupDrivesAndOperation* > &drivesAndOperationList );
+
+private:
+ /**
+ * Restore selection
+ */
+ quint32 iSelection;
+
+ /**
+ * Restore setting list items
+ */
+ QList< FmRestoreEntry* > mRestoreEntryList;
+
+ FmBkupEngine& mEngine;
+};
+
+#endif //FMRESTORESETTINGS_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/private/symbian/fmbkupengine_p.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,839 @@
+/*
+ * 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 "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:
+ * The source file of the backup engine implement for symbian
+ */
+
+#include "fmbkupengine_p.h"
+
+// INCLUDE FILES
+#include <coreapplicationuisdomainpskeys.h>
+#include <coemain.h>
+#include <apgwgnam.h>
+#include <apgtask.h>
+#include <bautils.h>
+#include <tz.h>
+#include <babackup.h>
+#include <pathinfo.h>
+#include <sysutil.h>
+#ifdef RD_MULTIPLE_DRIVE
+#include <driveinfo.h>
+#endif // RD_MULTIPLE_DRIVE
+#include <e32property.h>
+#include <centralrepository.h>
+#include "CMMCScBkupEngine.h"
+#include "MMCScBkupOperations.h"
+#include "CMMCScBkupArchiveInfo.h"
+#include "filemanagerprivatecrkeys.h"
+
+#include <eikdef.h>
+#include <eikenv.h>
+
+#include "fmcommon.h"
+
+#include <f32file.h>
+
+/*
+#include "cfilemanageritemproperties.h"
+#include "cfilemanagerbackupsettings.h"
+#include "filemanagerprivatecrkeys.h"
+#include "bkupengine.hrh"
+#include "filemanagerdebug.h"
+#include "cfilemanagercommondefinitions.h"
+#include "filemanageruid.h"
+#include "filemanagerprivatepskeys.h"
+*/
+
+const TInt KFmgrSystemDrive = EDriveC;
+
+FmBkupEnginePrivate::FmBkupEnginePrivate(FmBkupEngine* bkupEngine): q(bkupEngine),
+ iError( KErrNone )
+{
+ iDrvAndOpList = new ( ELeave ) CArrayFixFlat<TBkupDrivesAndOperation> ( 10 ) ;
+ iBkupCategoryList = new RPointerArray<CBkupCategory> ( 10 );
+ iFs.Connect();
+ iBkupEngine = CMMCScBkupEngine::NewL( iFs );
+}
+
+FmBkupEnginePrivate::~FmBkupEnginePrivate()
+{
+ delete iDrvAndOpList;
+
+ iBkupCategoryList->ResetAndDestroy();
+ delete iBkupCategoryList;
+
+ delete iBkupEngine;
+ iFs.Close();
+}
+
+TUint32 FmBkupEnginePrivate::FmgrToBkupMask(
+ const TUint32 aFmrgMask )
+ {
+ TUint32 ret( 0 );
+
+ for( TInt i( 0 ); i < KMaskLookupLen; ++i )
+ {
+ if ( ( aFmrgMask & FmBkupEngineCommon::EFileManagerBackupContentAll ) ||
+ ( aFmrgMask & KMaskLookup[ i ].iFmgrMask ) )
+ {
+ ret |= KMaskLookup[ i ].iBkupMask;
+ }
+ }
+ return ret;
+ }
+
+bool FmBkupEnginePrivate::startBackup(QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+ QList<FmBkupBackupCategory*> backupCategoryList,
+ QString drive, quint32 content)
+{
+ FM_LOG( "FmBkupEnginePrivate::startBackup_with drive: " + drive +
+ "_number:" + QString::number(DriverNameToNumber( drive )));
+ if( drive.isEmpty() ) {
+ iError = KErrPathNotFound;
+ FM_LOG( "FmBkupEnginePrivate::startBackup_with return with KErrPathNotFound because drive is empty" );
+ return false;
+ }
+ QStringList backupableDriveList;
+ getBackupDriveList( backupableDriveList );
+ if( !backupableDriveList.contains( drive, Qt::CaseInsensitive ) ) {
+ iError = KErrPathNotFound;
+ FM_LOG( "FmBkupEnginePrivate::startBackup_with return with KErrPathNotFound because drive is not available" );
+ return false;
+ }
+ QString logString;
+ logString = "startBackup";
+ FM_LOG( logString );
+ iDrvAndOpList->Reset();
+ iBkupCategoryList->ResetAndDestroy();
+
+ logString = "startBackup_driveroperation count:" + QString::number(drivesAndOperationList.count());
+ FM_LOG( logString );
+
+ for( QList<FmBkupDrivesAndOperation* >::iterator it = drivesAndOperationList.begin();
+ it != drivesAndOperationList.end(); ++it ) {
+ FmBkupDrivesAndOperation* fmDrvAndOp = *it;
+ TBkupDrivesAndOperation drvAndOp;
+ drvAndOp.setOwnerDataType( fmDrvAndOp->ownerDataType() );
+ drvAndOp.setDrvCategories( fmDrvAndOp->drvCategories() );
+ iDrvAndOpList->AppendL( drvAndOp );
+ }
+
+ logString = "startBackup_backupCategoryList count:" + QString::number(backupCategoryList.count());
+ FM_LOG( logString );
+
+
+ for( QList<FmBkupBackupCategory* >::iterator it = backupCategoryList.begin();
+ it != backupCategoryList.end(); ++it ) {
+ FmBkupBackupCategory* fmbkupCategory = *it;
+ CBkupCategory* category = CBkupCategory::NewL();
+
+ category->setCategory( fmbkupCategory->category() );
+
+ HBufC *archiveName = HBufC::NewL( fmbkupCategory->archive_name().length() );
+ *archiveName = fmbkupCategory->archive_name().utf16();
+ category->setArchive_name( *archiveName );
+ delete archiveName;
+
+ category->setSpecial_flags( fmbkupCategory->special_flags() );
+ category->setExclude_special_flags( fmbkupCategory->exclude_special_flags() );
+
+ for( QList<unsigned int>::const_iterator it = fmbkupCategory->uids()->begin();
+ it != fmbkupCategory->uids()->end(); ++it ) {
+ unsigned int value = *it;
+ category->addUids( value );
+ }
+
+
+ for( QList<unsigned int>::const_iterator it = fmbkupCategory->exclude_uids()->begin();
+ it != fmbkupCategory->exclude_uids()->end(); ++it ) {
+ unsigned int value = *it; //( *ex_uidsList )[i];
+ category->addExclude_uids( value );
+ }
+
+
+ iBkupCategoryList->AppendL( category );
+ }
+
+ TUint32 bkupContent( FmgrToBkupMask( content ) );
+ //TUint32 bkupContent = 63;
+
+ logString = "startBackup_new param";
+ FM_LOG( logString );
+
+ CMMCScBkupOpParamsBackupFull* params =
+ CMMCScBkupOpParamsBackupFull::NewL(
+ iDrvAndOpList,
+ iBkupCategoryList,
+ TDriveNumber( DriverNameToNumber( drive ) ),
+ bkupContent );
+
+ mProcess = FmBkupEngine::ProcessBackup;
+
+
+ logString = "startBackup_param ok";
+ FM_LOG( logString );
+
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+ CEikonEnv* eikonEnv = (STATIC_CAST(CEikonEnv*,coeEnv));
+ eikonEnv->SetSystem(ETrue);
+
+ logString = "startBackup_StartOperationL";
+ FM_LOG( logString );
+
+ QList< FmRestoreInfo > restoreInfoList;
+ GetRestoreInfoArray( drivesAndOperationList, restoreInfoList, drive );
+
+ for ( TInt i( 0 ); i < restoreInfoList.count(); ++i )
+ {
+ bool toContinue = false;
+ FmRestoreInfo &info = restoreInfoList[ i ];
+ TUint32 existContent( FmgrToBkupMask( info.content() ) );
+ if ( bkupContent & existContent )
+ {
+ notifyBackupFilesExistInternal( toContinue );
+ if (!toContinue)
+ {
+ iError = KErrAlreadyExists;
+ return false;
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+
+
+ TRAPD( err, iBkupEngine->StartOperationL(
+ EMMCScBkupOperationTypeFullBackup, *this, params ) );
+
+ logString = "startBackup_end with error:" + QString::number(err) ;
+ FM_LOG( logString );
+ return (err == KErrNone);
+}
+
+void FmBkupEnginePrivate::cancelBackup()
+{
+ QString logString = "cancelBackup";
+ FM_LOG(logString);
+ switch( mProcess )
+ {
+ case FmBkupEngine::ProcessBackup: // FALLTHROUGH
+ case FmBkupEngine::ProcessRestore:
+ {
+// PublishBurStatus( EFileManagerBkupStatusUnset );
+ iBkupEngine->CancelOperation();
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+}
+
+
+void FmBkupEnginePrivate::notifyPreparingInternal()
+{
+ iError = KErrNone;
+ bool cancelable = false;
+ switch( mProcess )
+ {
+ case FmBkupEngine::ProcessBackup:
+ cancelable = false;
+ break;
+ case FmBkupEngine::ProcessRestore:
+ cancelable = false;
+ break;
+ case FmBkupEngine::ProcessNone:
+ default:
+ Q_ASSERT( false );
+ }
+
+ emit notifyPreparing( cancelable );
+}
+
+void FmBkupEnginePrivate::notifyStartInternal( int aTotalCount )
+{
+ iError = KErrNone;
+
+ bool cancelable = false;
+ switch( mProcess )
+ {
+ case FmBkupEngine::ProcessBackup:
+ cancelable = true;
+ break;
+ case FmBkupEngine::ProcessRestore:
+ cancelable = false;
+ break;
+ case FmBkupEngine::ProcessNone:
+ default:
+ Q_ASSERT( false );
+ }
+ emit notifyStart( cancelable, aTotalCount );
+}
+
+
+void FmBkupEnginePrivate::notifyUpdateInternal( int aCount )
+ {
+ emit notifyUpdate( aCount );
+ }
+
+void FmBkupEnginePrivate::notifyFinishInternal()
+ {
+// iEngine.ClearDriveInfo();
+// PublishBurStatus( EFileManagerBkupStatusUnset );
+ /* CCoeEnv* coeEnv = CCoeEnv::Static();
+ iEikonEnv->SetSystem( EFalse);
+ */
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+ CEikonEnv* eikonEnv = (STATIC_CAST(CEikonEnv*,coeEnv));
+ eikonEnv->SetSystem(EFalse);
+ mProcess = FmBkupEngine::ProcessNone;
+ emit notifyFinish( error() );
+ }
+
+
+void FmBkupEnginePrivate::notifyMemoryLowInternal( int memoryValue, int &userError )
+ {
+ emit notifyMemoryLow( memoryValue, userError );
+ }
+
+void FmBkupEnginePrivate::notifyBackupFilesExistInternal( bool &isContinue )
+ {
+ emit notifyBackupFilesExist( isContinue );
+ }
+
+TInt FmBkupEnginePrivate::HandleBkupEngineEventL(
+ MMMCScBkupEngineObserver::TEvent aEvent, TInt aAssociatedData )
+ {
+ QString logString;
+ TInt ret( KErrNone );
+ switch( aEvent )
+ {
+ case MMMCScBkupEngineObserver::ECommonOperationStarting:
+ {
+ logString = "ECommonOperationStarting";
+
+ iFinalValue = KMaxTInt;
+// notifyStartInternal( KMaxTInt );
+ notifyPreparingInternal();
+ break;
+ }
+ case MMMCScBkupEngineObserver::ECommonSizeOfTaskUnderstood:
+ {
+ logString = "ECommonSizeOfTaskUnderstood";
+ iFinalValue = aAssociatedData;
+ notifyStartInternal( aAssociatedData );
+ break;
+ }
+ case MMMCScBkupEngineObserver::ECommonOperationPrepareEnded:
+ {
+ logString = "ECommonOperationPrepareEnded";
+// PublishBurStatus( EFileManagerBkupStatusUnset );
+ // In order to show finished dialog prior SysAp's note,
+ // notify observer already at prepare-ended state.
+ if( mProcess == FmBkupEngine::ProcessRestore )
+ {
+ if ( iFinalValue )
+ {
+ notifyUpdateInternal( iFinalValue );
+ }
+ notifyFinishInternal();
+ }
+ break;
+ }
+ case MMMCScBkupEngineObserver::ECommonOperationEnded:
+ {
+ logString = "ECommonOperationEnded";
+// PublishBurStatus( EFileManagerBkupStatusUnset );
+ if( mProcess != FmBkupEngine::ProcessRestore && mProcess != FmBkupEngine::ProcessNone )
+ {
+ if ( iFinalValue )
+ {
+ notifyUpdateInternal( iFinalValue );
+ }
+ notifyFinishInternal();
+ }
+ break;
+ }
+ case MMMCScBkupEngineObserver::ECommonOperationError:
+ {
+ logString = "ECommonOperationError";
+ iError = aAssociatedData;
+ break;
+ }
+ case MMMCScBkupEngineObserver::ECommonProgress:
+ {
+ logString = "ECommonProgress:" + QString::number( aAssociatedData );
+ notifyUpdateInternal( aAssociatedData );
+ break;
+ }
+ case MMMCScBkupEngineObserver::EBackupAnalysingData:
+ {
+ logString = "EBackupAnalysingData:" + QString::number( aAssociatedData );
+ if ( mProcess == FmBkupEngine::ProcessBackup )
+ {
+ int userError = FmErrNone;
+ notifyMemoryLowInternal( aAssociatedData, userError );
+ switch( userError )
+ {
+ case FmErrDiskFull:
+ ret = KErrDiskFull;
+ break;
+ case FmErrCancel:
+ ret = KErrCancel;
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ }
+ default:
+ {
+ logString = "default";
+ break;
+ }
+ }
+ FM_LOG( logString );
+ return ret;
+ }
+
+int FmBkupEnginePrivate::error()
+{
+ FM_LOG( "FmBkupEnginePrivate::error:" + QString::number( iError ) );
+ switch (iError)
+ {
+ case KErrNone:
+ return FmErrNone;
+ case KErrNotFound:
+ return FmErrNotFound;
+ case KErrDiskFull:
+ return FmErrDiskFull;
+ case KErrAlreadyExists:
+ return FmErrAlreadyExists;
+ case KErrCancel:
+ return FmErrCancel;
+ case KErrPathNotFound:
+ return FmErrPathNotFound;
+ case KErrLocked:
+ return FmErrLocked;
+ case KErrCorrupt:
+ return FmErrCorrupt;
+ case KErrNotReady:
+ return FmErrNotReady;
+ case KErrDisMounted:
+ return FmErrDisMounted;
+ default:
+ return FmErrUnKnown;
+ }
+}
+
+
+
+
+
+int FmBkupEnginePrivate::deleteBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList )
+{
+ iError = FmErrNone;
+
+ QList< FmRestoreInfo > selection;
+ FmRestoreSettings& rstSettings( *( q->RestoreSettingsL() ) );
+ rstSettings.GetSelectionL( selection );
+
+ iBkupCategoryList->ResetAndDestroy();
+ for( QList<FmBkupDrivesAndOperation* >::iterator it = drivesAndOperationList.begin();
+ it != drivesAndOperationList.end(); ++it )
+ {
+ FmBkupDrivesAndOperation* fmDrvAndOp = *it;
+ TBkupDrivesAndOperation drvAndOp;
+ drvAndOp.setOwnerDataType( fmDrvAndOp->ownerDataType() );
+ drvAndOp.setDrvCategories( fmDrvAndOp->drvCategories() );
+ iDrvAndOpList->AppendL( drvAndOp );
+ }
+ ////////
+
+ CMMCScBkupOpParamsRestoreFull* params =
+ CMMCScBkupOpParamsRestoreFull::NewL(
+ iDrvAndOpList, FmBkupEngine::EBUCatAllSeparately );
+ CleanupStack::PushL( params );
+
+ // Get list of all archives
+ RPointerArray< CMMCScBkupArchiveInfo > archives;
+ TCleanupItem cleanupItem( ResetAndDestroyArchives, &archives );
+ CleanupStack::PushL( cleanupItem );
+ iBkupEngine->ListArchivesL(
+ archives,
+ params,
+ AllowedDriveAttMatchMask());
+
+ TInt i( 0 );
+ while ( i < archives.Count() )
+ {
+ TBool remove( ETrue );
+
+ // Compare archives category and drive
+ CMMCScBkupArchiveInfo* archiveInfo = archives[ i ];
+ TUint32 fmgrContent(
+ BkupToFmgrMask( archiveInfo->Category().iFlags ) );
+ TInt drive( archiveInfo->Drive() );
+
+ TInt count( selection.count() );
+ for( TInt j( 0 ); j < count; ++j )
+ {
+ const FmRestoreInfo& info( selection[ j ] );
+ if ( ( drive == DriverNameToNumber( info.drive() ) ) && ( fmgrContent & info.content() ) )
+ {
+ // Found user selected archive
+ // Do not check this archive again
+ selection.removeAt( j );
+ remove = EFalse;
+ break;
+ }
+ }
+ if ( remove )
+ {
+ // Remove non selected archive
+ archives.Remove( i );
+ delete archiveInfo;
+ }
+ else
+ {
+ // Move to next archive
+ ++i;
+ }
+ }
+
+ iBkupEngine->DeleteArchivesL( archives );
+
+ CleanupStack::Pop( &archives );
+ archives.Close();
+ CleanupStack::PopAndDestroy( params );
+
+ return iError;
+}
+
+
+bool FmBkupEnginePrivate::StartRestoreL( QList<FmBkupDrivesAndOperation* > drivesAndOperationList )
+ {
+ TBool diskFull( SysUtil::DiskSpaceBelowCriticalLevelL(
+ &iFs, 0, KFmgrSystemDrive ) );
+ if ( diskFull )
+ {
+ mProcess = FmBkupEngine::ProcessRestore;
+ notifyStartInternal( KMaxTInt );
+ iError = KErrDiskFull;
+ notifyFinishInternal();
+ mProcess = FmBkupEngine::ProcessNone;
+ return false;
+ }
+///////
+ iDrvAndOpList->Reset();
+ iBkupCategoryList->ResetAndDestroy();
+
+ for( QList<FmBkupDrivesAndOperation* >::iterator it = drivesAndOperationList.begin();
+ it != drivesAndOperationList.end(); ++it )
+ {
+ FmBkupDrivesAndOperation* fmDrvAndOp = *it;
+ TBkupDrivesAndOperation drvAndOp;
+ drvAndOp.setOwnerDataType( fmDrvAndOp->ownerDataType() );
+ drvAndOp.setDrvCategories( fmDrvAndOp->drvCategories() );
+ iDrvAndOpList->AppendL( drvAndOp );
+ }
+ ////////
+
+ // Create restore params - ownership is transferred to
+ // secure backup engine
+
+#ifdef RD_FILE_MANAGER_BACKUP
+
+ CMMCScBkupOpParamsRestoreFull* params =
+ CMMCScBkupOpParamsRestoreFull::NewL(
+ iDrvAndOpList,
+ FmBkupEngine::EBUCatAllSeparately );
+// CleanupStack::PopAndDestroy(); // driveReader
+ CleanupStack::PushL( params );
+
+ // Get list of all archives
+ RPointerArray< CMMCScBkupArchiveInfo > archives;
+ TCleanupItem cleanupItem( ResetAndDestroyArchives, &archives );
+ CleanupStack::PushL( cleanupItem );
+ iBkupEngine->ListArchivesL(
+ archives,
+ params,
+ AllowedDriveAttMatchMask() );
+
+ // Get user set restore selection
+ QList< FmRestoreInfo > selection;
+// CleanupClosePushL( selection );
+ FmRestoreSettings& rstSettings( *( q->RestoreSettingsL() ) );
+ rstSettings.GetSelectionL( selection );
+
+ // Remove non user selected archives
+ TInt i( 0 );
+ while ( i < archives.Count() )
+ {
+ TBool remove( ETrue );
+
+ // Compare archives category and drive
+ CMMCScBkupArchiveInfo* archiveInfo = archives[ i ];
+ TUint32 fmgrContent(
+ BkupToFmgrMask( archiveInfo->Category().iFlags ) );
+ TInt drive( archiveInfo->Drive() );
+
+ TInt count( selection.count() );
+ for( TInt j( 0 ); j < count; ++j )
+ {
+ const FmRestoreInfo& info( selection[ j ] );
+ if ( ( drive == DriverNameToNumber( info.drive() ) ) && ( fmgrContent & info.content() ) )
+ {
+ // Found user selected archive
+ // Do not check this archive again
+ selection.removeAt( j );
+ remove = EFalse;
+ break;
+ }
+ }
+ if ( remove )
+ {
+ // Remove non selected archive
+ archives.Remove( i );
+ delete archiveInfo;
+ }
+ else
+ {
+ // Move to next archive
+ ++i;
+ }
+ }
+
+// CleanupStack::PopAndDestroy( &selection );
+ params->SetArchiveInfosL( archives );
+ CleanupStack::Pop( &archives );
+ archives.Close();
+ CleanupStack::Pop( params );
+
+#else // RD_FILE_MANAGER_BACKUP
+
+ CMMCScBkupOpParamsRestoreFull* params =
+ CMMCScBkupOpParamsRestoreFull::NewL( driveReader, EBUCatAllInOne );
+ CleanupStack::PopAndDestroy(); // driveReader
+
+ FmBackupSettings& bkupSettings( *( q->BackupSettingsL() ) );
+ // Get list of all archives
+ RPointerArray< CMMCScBkupArchiveInfo > archives;
+ TCleanupItem cleanupItem( ResetAndDestroyArchives, &archives );
+ CleanupStack::PushL( cleanupItem );
+ iBkupEngine->ListArchivesL(
+ archives,
+ params,
+ bkupSettings.AllowedDriveAttMatchMask() );
+ params->SetArchiveInfosL( archives );
+ CleanupStack::Pop( &archives );
+
+#endif // RD_FILE_MANAGER_BACKUP
+
+ // Start the process - engine owns the parameters immediately
+ mProcess = FmBkupEngine::ProcessRestore;
+ PublishBurStatus( EFileManagerBkupStatusRestore );
+
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+ CEikonEnv* eikonEnv = (STATIC_CAST(CEikonEnv*,coeEnv));
+ eikonEnv->SetSystem(ETrue);
+
+ TRAPD( err, iBkupEngine->StartOperationL(
+ EMMCScBkupOperationTypeFullRestore, *this, params ) );
+ if ( err != KErrNone )
+ {
+ PublishBurStatus( EFileManagerBkupStatusUnset );
+ mProcess = FmBkupEngine::ProcessNone;
+ User::Leave( err );
+ }
+ return true;
+ }
+
+void FmBkupEnginePrivate::GetRestoreInfoArray( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+ QList< FmRestoreInfo > &restoreInfoList,
+ const QString& aDrive )
+ {
+ int targetDrive = DriverNameToNumber( aDrive );
+
+ restoreInfoList.clear();
+
+ ///////
+ iDrvAndOpList->Reset();
+ iBkupCategoryList->ResetAndDestroy();
+
+ for( QList<FmBkupDrivesAndOperation* >::iterator it = drivesAndOperationList.begin();
+ it != drivesAndOperationList.end(); ++it )
+ {
+ FmBkupDrivesAndOperation* fmDrvAndOp = *it;
+ TBkupDrivesAndOperation drvAndOp;
+ drvAndOp.setOwnerDataType( fmDrvAndOp->ownerDataType() );
+ drvAndOp.setDrvCategories( fmDrvAndOp->drvCategories() );
+ iDrvAndOpList->AppendL( drvAndOp );
+ }
+ ////////
+
+ CMMCScBkupOpParamsRestoreFull* params =
+ CMMCScBkupOpParamsRestoreFull::NewL(
+ iDrvAndOpList, FmBkupEngine::EBUCatAllSeparately );
+ CleanupStack::PushL( params );
+
+ // Get list of all archives
+ RPointerArray< CMMCScBkupArchiveInfo > archives;
+ TCleanupItem cleanupItem( ResetAndDestroyArchives, &archives );
+ CleanupStack::PushL( cleanupItem );
+ iBkupEngine->ListArchivesL(
+ archives,
+ params,
+ AllowedDriveAttMatchMask(),
+ targetDrive );
+
+ // Fill restore info
+ TInt count( archives.Count() );
+// restoreInfoList.ReserveL( count );
+
+ for( TInt i( 0 ); i < count; ++i )
+ {
+ // Content
+ CMMCScBkupArchiveInfo& archiveInfo( *archives[ i ] );
+
+ TUint32 iContent = BkupToFmgrMask( archiveInfo.Category().iFlags );
+ TTime iTime = archiveInfo.DateTime();
+ TInt iDrive = archiveInfo.Drive();
+ TDateTime iDateTime = iTime.DateTime();
+
+ int h = iDateTime.Hour();
+ int m = iDateTime.Minute();
+ int s = iDateTime.Second();
+ int year = iDateTime.Year();
+ int month = iDateTime.Month() + 1;
+ int day = iDateTime.Day()+1;
+ QTime time( h, m, s);
+ QDate date( year, month, day );
+
+ QDateTime dateTime( date, time );
+ dateTime = dateTime.toLocalTime();
+
+ FmRestoreInfo restoreInfo( iContent, dateTime, NumberToDriverName( iDrive ) );
+ restoreInfoList.append( restoreInfo );
+ }
+
+ CleanupStack::PopAndDestroy( &archives );
+ CleanupStack::PopAndDestroy( params );
+ }
+
+TUint32 FmBkupEnginePrivate::BkupToFmgrMask(
+ const TUint32 aBkupMask )
+ {
+ TUint32 ret( 0 );
+
+ for( TInt i( 0 ); i < KMaskLookupLen; ++i )
+ {
+ if ( aBkupMask & KMaskLookup[ i ].iBkupMask )
+ {
+ ret |= KMaskLookup[ i ].iFmgrMask;
+ }
+ }
+ return ret;
+ }
+
+void FmBkupEnginePrivate::ResetAndDestroyArchives( TAny* aPtr )
+ {
+ RPointerArray< CMMCScBkupArchiveInfo >* archive =
+ static_cast< RPointerArray< CMMCScBkupArchiveInfo >* >( aPtr );
+ archive->ResetAndDestroy();
+ archive->Close();
+ }
+
+TUint32 FmBkupEnginePrivate::AllowedDriveAttMatchMask() const
+ {
+ return KDriveAttRemovable;//KDriveAttRemovable;
+ }
+
+TInt FmBkupEnginePrivate::DriverNameToNumber( QString driverName )
+ {
+ if( driverName.isEmpty() ) {
+ return KErrNotFound;
+ }
+ TInt drive = 0;
+ drive = driverName[0].toUpper().toAscii() - 'A' + EDriveA;
+ return drive;
+ }
+QString FmBkupEnginePrivate::NumberToDriverName( TInt driver )
+ {
+ QChar driverChar( driver - EDriveA + 'A' );
+ QString driverName = QString( driverChar ) + ':';
+ return driverName;
+ }
+
+void FmBkupEnginePrivate::getBackupDriveList( QStringList &driveList )
+ {
+ TUint32 driveAttMask( AllowedDriveAttMatchMask() );
+ RFs fs;
+ fs.Connect();
+ for ( TInt i( 0 ); i < KMaxDrives; ++i )
+ {
+ TDriveInfo driveInfo;
+ if ( fs.Drive( driveInfo, i ) == KErrNone )
+ {
+ // Do not allow backup for internal drives
+ TUint driveStatus( 0 );
+ DriveInfo::GetDriveStatus( fs, i, driveStatus );
+ if ( driveStatus & DriveInfo::EDriveInternal )
+ {
+ continue;
+ }
+ if ( driveInfo.iDriveAtt & driveAttMask )
+ {
+ driveList.append( NumberToDriverName( i ) );
+ }
+ }
+ }
+ fs.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CFileManagerEngine::PublishBurStatus()
+//
+// -----------------------------------------------------------------------------
+//
+void FmBkupEnginePrivate::PublishBurStatus( TInt aType )
+ {
+ Q_UNUSED( aType );
+ /*
+ _LIT_SECURITY_POLICY_S0( KFileManagerBkupWritePolicy, KFileManagerUID3 );
+ _LIT_SECURITY_POLICY_PASS( KFileManagerBkupReadPolicy );
+
+ TInt err( RProperty::Set(
+ KPSUidFileManagerStatus, KFileManagerBkupStatus, aType ) );
+ if ( err != KErrNone )
+ {
+ err = RProperty::Define(
+ KPSUidFileManagerStatus, KFileManagerBkupStatus,
+ RProperty::EInt, KFileManagerBkupReadPolicy,
+ KFileManagerBkupWritePolicy );
+ if ( err == KErrNone || err == KErrAlreadyExists )
+ {
+ err = RProperty::Set(
+ KPSUidFileManagerStatus, KFileManagerBkupStatus, aType );
+ }
+ }
+ LOG_IF_ERROR1(
+ err, "FileManagerRemovableDriveHandler::PublishBurStatus-err=%d", err )
+ */
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/private/symbian/fmbkupengine_p.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,128 @@
+/*
+ * 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 "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:
+ * The header file of the backup engine implement for symbian
+ */
+
+#ifndef FMBKUPENGINEPRIVATE_H
+#define FMBKUPENGINEPRIVATE_H
+
+// INCLUDES
+#include <e32base.h>
+#include "CMMCScBkupOperationParameters.h"
+#include "fmbkupengine.h"
+#include "fmbkupcommon.h"
+
+#include "fmbackupsettings.h"
+#include "fmrestoresettings.h"
+
+#include "MMMCScBkupEngineObserver.h"
+#include <f32file.h>
+
+#include <QObject>
+#include <QStringList>
+
+class CMMCScBkupEngine;
+
+NONSHARABLE_CLASS(TMaskLookup)
+ {
+ public:
+ TUint32 iBkupMask;
+ TUint32 iFmgrMask;
+ };
+
+const TMaskLookup KMaskLookup[] = {
+ { FmBkupEngineCommon::EBUCatSettings, FmBkupEngineCommon::EFileManagerBackupContentSettings },
+ { FmBkupEngineCommon::EBUCatMessages, FmBkupEngineCommon::EFileManagerBackupContentMessages },
+ { FmBkupEngineCommon::EBUCatContacts, FmBkupEngineCommon::EFileManagerBackupContentContacts },
+ { FmBkupEngineCommon::EBUCatCalendar, FmBkupEngineCommon::EFileManagerBackupContentCalendar },
+ { FmBkupEngineCommon::EBUCatBookmarks, FmBkupEngineCommon::EFileManagerBackupContentBookmarks },
+ { FmBkupEngineCommon::EBUCatUserFiles, FmBkupEngineCommon::EFileManagerBackupContentUserFiles }
+};
+const TUint32 KMaskLookupLen =
+ sizeof( KMaskLookup ) / sizeof( KMaskLookup[ 0 ] );
+
+// CLASS DECLARATION
+class FmBkupEnginePrivate: public QObject, public MMMCScBkupEngineObserver
+{
+Q_OBJECT
+public:
+ FmBkupEnginePrivate(FmBkupEngine* bkupEngine);
+ ~FmBkupEnginePrivate();
+
+ bool startBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+ QList<FmBkupBackupCategory*> backupCategoryList,
+ QString drive, quint32 content);
+
+ void cancelBackup();
+ int deleteBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList );
+
+
+ TUint32 FmgrToBkupMask( const TUint32 aFmrgMask );
+ int error();
+
+ //
+ bool StartRestoreL( QList<FmBkupDrivesAndOperation* > drivesAndOperationList );
+ void GetRestoreInfoArray( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+ QList< FmRestoreInfo > &restoreInfoList,
+ const QString& aDrive );
+
+ void getBackupDriveList( QStringList &driveList );
+
+signals:
+ void notifyPreparing( bool cancelable );
+ void notifyStart( bool cancelable, int totalCount );
+ void notifyUpdate( int totalCount );
+ void notifyFinish( int err );
+ void notifyMemoryLow( int memoryValue, int &userError );
+ void notifyBackupFilesExist( bool &isContinue );
+private:
+ void notifyPreparingInternal();
+ void notifyStartInternal( int aTotalCount );
+ void notifyUpdateInternal( int aCount );
+ void notifyFinishInternal();
+ void notifyMemoryLowInternal( int memoryValue, int &userError );
+ void notifyBackupFilesExistInternal( bool &isContinue );
+
+private: // From MMMCScBkupEngineObserver
+ TInt HandleBkupEngineEventL(
+ MMMCScBkupEngineObserver::TEvent aEvent, TInt aAssociatedData );
+
+ static void ResetAndDestroyArchives( TAny* aPtr );
+ TUint32 BkupToFmgrMask( const TUint32 aBkupMask );
+ TUint32 AllowedDriveAttMatchMask() const;
+ TInt DriverNameToNumber( QString driverName );
+ QString NumberToDriverName( TInt driver );
+ void PublishBurStatus( TInt aType );
+
+private:
+ FmBkupEngine* q;
+
+ BkupDrivesAndOperationList *iDrvAndOpList;
+ BkupCategoryList *iBkupCategoryList;
+
+ CMMCScBkupEngine* iBkupEngine;
+
+ RFs iFs;
+
+
+ FmBkupEngine::Process mProcess;
+ int iError;
+ int iFinalValue;
+};
+
+#endif /*FMBKUPENGINEPRIVATE_H*/
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/private/win32/fmbkupengine_p.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,433 @@
+/*
+ * 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 "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:
+ * The source file of the backup engine implement for win32
+ */
+
+#include "FmBkupEngine_p.h"
+#include <QThread>
+
+#include "fmbkupcommon.h"
+#include "fmbackupsettings.h"
+#include "fmrestoresettings.h"
+#include "fmdefine.h"
+
+#include <QSettings>
+
+FmBkupEnginePrivate::FmBkupEnginePrivate(FmBkupEngine* bkupEngine): q(bkupEngine), mError( FmErrNone )
+{
+ mBkupThread = new FmBkupThread( this );
+
+ connect( mBkupThread, SIGNAL( notifyPreparing( bool ) ), this, SLOT( onNotifyPreparing( bool ) ) );
+ connect( mBkupThread, SIGNAL( notifyStart( bool, int ) ), this, SLOT( onNotifyStart( bool, int ) ) );
+ connect( mBkupThread, SIGNAL( notifyUpdate(int) ), this, SLOT( onNotifyUpdate(int) ) );
+ connect( mBkupThread, SIGNAL( notifyFinish(int) ),
+ this, SLOT( onNotifyFinish(int) ) );
+ connect( mBkupThread, SIGNAL( notifyMemoryLow(int, int& ) ), this, SLOT( onNotifyMemoryLow(int, int&) ) );
+}
+
+FmBkupEnginePrivate::~FmBkupEnginePrivate()
+{
+
+}
+
+void FmBkupEnginePrivate::onNotifyPreparing( bool cancelable )
+{
+ emit notifyPreparing( cancelable );
+}
+void FmBkupEnginePrivate::onNotifyStart( bool cancelable, int totalCount )
+{
+ emit notifyStart( cancelable, totalCount );
+}
+void FmBkupEnginePrivate::onNotifyUpdate( int count )
+{
+ emit notifyUpdate( count );
+}
+void FmBkupEnginePrivate::onNotifyFinish( int err )
+{
+ emit notifyFinish( err );
+}
+void FmBkupEnginePrivate::onNotifyMemoryLow( int memoryValue, int &userError )
+{
+ emit notifyMemoryLow( memoryValue, userError );
+}
+
+bool FmBkupEnginePrivate::startBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+QList<FmBkupBackupCategory*> backupCategoryList,QString drive, quint32 content )
+{
+ mError = mBkupThread->asyncBackup( drivesAndOperationList, backupCategoryList, drive, content );
+ return ( mError == FmErrNone );
+}
+
+void FmBkupEnginePrivate::cancelBackup()
+{
+ mBkupThread->stop();
+}
+
+int FmBkupEnginePrivate::deleteBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList )
+{
+ mError = FmErrNone;
+
+ selection.clear();
+ FmRestoreSettings& rstSettings( *( q->RestoreSettingsL() ) );
+ rstSettings.GetSelectionL( selection );
+ QSettings settings("Nokia", "FileManager");
+ foreach( FmRestoreInfo restoreInfo, selection ) {
+ switch( restoreInfo.content() )
+ {
+ case FmBkupEngineCommon::EFileManagerBackupContentSettings:
+ settings.beginGroup("BackupSettings");
+ settings.remove( QString( "" ) );
+ settings.endGroup();
+ break;
+ case FmBkupEngineCommon::EFileManagerBackupContentMessages:
+ settings.beginGroup("BackupMessages");
+ settings.remove( QString( "" ) );
+ settings.endGroup();
+ break;
+ case FmBkupEngineCommon::EFileManagerBackupContentContacts:
+ settings.beginGroup("BackupContacts");
+ settings.remove( QString( "" ) );
+ settings.endGroup();
+ break;
+ case FmBkupEngineCommon::EFileManagerBackupContentCalendar:
+ settings.beginGroup("BackupCalendar");
+ settings.remove( QString( "" ) );
+ settings.endGroup();
+ break;
+ case FmBkupEngineCommon::EFileManagerBackupContentBookmarks:
+ settings.beginGroup("BackupBookmarks");
+ settings.remove( QString( "" ) );
+ settings.endGroup();
+ break;
+ case FmBkupEngineCommon::EFileManagerBackupContentUserFiles:
+ settings.beginGroup("BackupUserFiles");
+ settings.remove( QString( "" ) );
+ settings.endGroup();
+ break;
+ default:
+ break;
+ }
+ }
+
+
+
+ return mError;
+}
+
+// TUint32 FmgrToBkupMask( const TUint32 aFmrgMask );
+int FmBkupEnginePrivate::error()
+{
+ return mError;
+
+}
+
+//
+bool FmBkupEnginePrivate::StartRestoreL( QList<FmBkupDrivesAndOperation* > drivesAndOperationList )
+{
+ selection.clear();
+ FmRestoreSettings& rstSettings( *( q->RestoreSettingsL() ) );
+ rstSettings.GetSelectionL( selection );
+
+ mError = mBkupThread->asyncRestore( drivesAndOperationList,selection );
+ return ( mError == FmErrNone );
+
+}
+
+
+void FmBkupEnginePrivate::GetRestoreInfoArray( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+ QList< FmRestoreInfo > &restoreInfoList,
+ const QString& aDrive )
+{
+ restoreInfoList.clear();
+ QString debugString;
+ QSettings settings("Nokia", "FileManager");
+ QDateTime dateTime;
+
+ settings.beginGroup("BackupSettings");
+ quint32 content = (settings.value("content", 0).toUInt());
+ debugString = settings.value( "dateTime").toString();
+ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() );
+ QString drive = settings.value( "drive" ).toString();
+ settings.endGroup();
+ if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) )
+ {
+ FmRestoreInfo restoreInfo( content, dateTime, drive );
+ restoreInfoList.push_back( restoreInfo );
+ }
+
+ settings.beginGroup("BackupMessages");
+ content = (settings.value("content", 0).toUInt());
+ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() );
+ drive = settings.value( "drive" ).toString();
+ settings.endGroup();
+ if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) )
+ {
+ FmRestoreInfo restoreInfo( content, dateTime, drive );
+ restoreInfoList.push_back( restoreInfo );
+ }
+
+ settings.beginGroup("BackupContacts");
+ content = (settings.value("content", 0).toUInt());
+ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() );
+ drive = settings.value( "drive" ).toString();
+ settings.endGroup();
+ if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) )
+ {
+ FmRestoreInfo restoreInfo( content, dateTime, drive );
+ restoreInfoList.push_back( restoreInfo );
+ }
+
+ settings.beginGroup("BackupCalendar");
+ content = (settings.value("content", 0).toUInt());
+ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() );
+ drive = settings.value( "drive" ).toString();
+ settings.endGroup();
+ if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) )
+ {
+ FmRestoreInfo restoreInfo( content, dateTime, drive );
+ restoreInfoList.push_back( restoreInfo );
+ }
+
+ settings.beginGroup("BackupBookmarks");
+ content = (settings.value("content", 0).toUInt());
+ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() );
+ drive = settings.value( "drive" ).toString();
+ settings.endGroup();
+ if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) )
+ {
+ FmRestoreInfo restoreInfo( content, dateTime, drive );
+ restoreInfoList.push_back( restoreInfo );
+ }
+
+ settings.beginGroup("BackupUserFiles");
+ content = (settings.value("content", 0).toUInt());
+ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() );
+ drive = settings.value( "drive" ).toString();
+ settings.endGroup();
+ if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) )
+ {
+ FmRestoreInfo restoreInfo( content, dateTime, drive );
+ restoreInfoList.push_back( restoreInfo );
+ }
+
+}
+
+
+
+
+FmBkupThread::FmBkupThread( QObject *parent ) : QThread( parent ), mRunType( RunTypeNone ), mStop( false )
+{
+}
+
+FmBkupThread::~FmBkupThread()
+{
+
+}
+
+int FmBkupThread::asyncBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+QList<FmBkupBackupCategory*> backupCategoryList,QString drive, quint32 content )
+{
+ if( this->isRunning() ){
+ return FmErrAlreadyStarted;
+ }
+
+ if( drivesAndOperationList.count() == 0 || backupCategoryList.count() == 0 ){
+ return FmErrWrongParam;
+ }
+
+ mRunType = RunTypeBackup;
+ mDrivesAndOperationList.clear();
+ mBackupCategoryList.clear();
+
+ foreach( FmBkupDrivesAndOperation* driversAndOperation , drivesAndOperationList ) {
+ mDrivesAndOperationList.push_back( driversAndOperation );
+ }
+ foreach( FmBkupBackupCategory* backupCategory , backupCategoryList ) {
+ mBackupCategoryList.push_back( backupCategory );
+ }
+
+ mDrive = drive;
+ mContent = content;
+ start();
+ return FmErrNone;
+}
+int FmBkupThread::asyncRestore( QList<FmBkupDrivesAndOperation* > drivesAndOperationList, QList< FmRestoreInfo > selection )
+{
+ if( this->isRunning() ) {
+ return FmErrAlreadyStarted;
+ }
+
+ if( drivesAndOperationList.count() == 0 ){
+ return FmErrWrongParam;
+ }
+
+ mRunType = RunTypeRestore;
+ mDrivesAndOperationList.clear();
+ foreach( FmBkupDrivesAndOperation* driversAndOperation , drivesAndOperationList ) {
+ mDrivesAndOperationList.push_back( driversAndOperation );
+ }
+
+ foreach( FmRestoreInfo info , selection ) {
+ mSelection.push_back( info );
+ }
+ start();
+ return FmErrNone;
+}
+
+
+
+void FmBkupThread::stop()
+{
+ mStop = true;
+}
+
+
+
+
+void FmBkupThread::run()
+{
+ mStop = false;
+
+
+ if( mRunType == RunTypeBackup )
+ {
+ emit notifyPreparing( true );
+ this->sleep( 1 );
+ emit notifyStart( true, 6 );
+
+ QSettings settings("Nokia", "FileManager");
+
+ if( mContent && FmBkupEngineCommon::EFileManagerBackupContentSettings ) {
+ settings.beginGroup("BackupSettings");
+ settings.setValue( "content", FmBkupEngineCommon::EFileManagerBackupContentSettings );
+ settings.setValue( "dateTime", QDateTime::currentDateTime().toTime_t() );
+ settings.setValue( "drive", mDrive );
+ settings.endGroup();
+ this->msleep( 500 );
+ emit notifyUpdate( 1 );
+ if( mStop ) {
+ emit notifyFinish( FmErrCancel );
+ return;
+ }
+ }
+ if( mContent && FmBkupEngineCommon::EFileManagerBackupContentMessages ) {
+ settings.beginGroup("BackupMessages");
+ settings.setValue( "content", FmBkupEngineCommon::EFileManagerBackupContentMessages );
+ settings.setValue( "dateTime", QDateTime::currentDateTime().toTime_t() );
+ settings.setValue( "drive", mDrive );
+ settings.endGroup();
+ this->msleep( 500 );
+ emit notifyUpdate( 2 );
+ if( mStop ) {
+ emit notifyFinish( FmErrCancel );
+ return;
+ }
+ }
+ if ( mContent && FmBkupEngineCommon::EFileManagerBackupContentContacts ) {
+ settings.beginGroup("BackupContacts");
+ settings.setValue( "content", FmBkupEngineCommon::EFileManagerBackupContentContacts );
+ settings.setValue( "dateTime", QDateTime::currentDateTime().toTime_t() );
+ settings.setValue( "drive", mDrive );
+ settings.endGroup();
+ this->msleep( 500 );
+ emit notifyUpdate( 3 );
+ if( mStop ) {
+ emit notifyFinish( FmErrCancel );
+ return;
+ }
+ }
+ if ( mContent && FmBkupEngineCommon::EFileManagerBackupContentCalendar ) {
+ settings.beginGroup("BackupCalendar");
+ settings.setValue( "content", FmBkupEngineCommon::EFileManagerBackupContentCalendar );
+ settings.setValue( "dateTime", QDateTime::currentDateTime().toTime_t() );
+ settings.setValue( "drive", mDrive );
+ settings.endGroup();
+ this->msleep( 500 );
+ emit notifyUpdate( 4 );
+ if( mStop ) {
+ emit notifyFinish( FmErrCancel );
+ return;
+ }
+ }
+ if ( mContent && FmBkupEngineCommon::EFileManagerBackupContentBookmarks ) {
+ settings.beginGroup("BackupBookmarks");
+ settings.setValue( "content", FmBkupEngineCommon::EFileManagerBackupContentBookmarks );
+ settings.setValue( "dateTime", QDateTime::currentDateTime().toTime_t() );
+ settings.setValue( "drive", mDrive );
+ settings.endGroup();
+ this->msleep( 500 );
+ emit notifyUpdate( 5 );
+ if( mStop ) {
+ emit notifyFinish( FmErrCancel );
+ return;
+ }
+ }
+ if ( mContent && FmBkupEngineCommon::EFileManagerBackupContentUserFiles ) {
+ settings.beginGroup("BackupUserFiles");
+ settings.setValue( "content", FmBkupEngineCommon::EFileManagerBackupContentUserFiles );
+ settings.setValue( "dateTime", QDateTime::currentDateTime().toTime_t() );
+ settings.setValue( "drive", mDrive );
+ settings.endGroup();
+ emit notifyUpdate( 6 );
+ if( mStop ) {
+ emit notifyFinish( FmErrCancel );
+ return;
+ }
+ }
+ } else if( mRunType == RunTypeRestore )
+ {
+
+ emit notifyPreparing( false );
+ this->sleep( 1 );
+ emit notifyStart( false, 6 );
+ this->msleep( 500 );
+ emit notifyUpdate( 1 );
+ this->msleep( 500 );
+ emit notifyUpdate( 2 );
+ this->msleep( 500 );
+ emit notifyUpdate( 3 );
+ this->msleep( 500 );
+ emit notifyUpdate( 4 );
+ this->msleep( 500 );
+ emit notifyUpdate( 5 );
+ this->msleep( 500 );
+ emit notifyUpdate( 6 );
+ this->msleep( 500 );
+ }
+
+ emit notifyFinish( FmErrNone );
+}
+
+
+int FmBkupEnginePrivate::DriverNameToNumber( QString driverName )
+{
+ int drive = 0;
+ drive = driverName[0].toUpper().toAscii() - 'A' + 0/*EDriveA*/;
+ return drive;
+}
+QString FmBkupEnginePrivate::NumberToDriverName( int driver )
+{
+ QChar driverChar( driver - 0/*EDriveA*/ + 'A' );
+ QString driverName = QString( driverChar ) + ':';
+ return driverName;
+}
+
+void FmBkupEnginePrivate::getBackupDriveList( QStringList &driveList )
+ {
+ driveList.append("E:/");
+ driveList.append("F:/");
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/private/win32/fmbkupengine_p.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,140 @@
+/*
+ * 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 "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:
+ * The header file of the backup engine implement for win32
+ */
+
+#ifndef FMBKUPENGINEPRIVATE_H
+#define FMBKUPENGINEPRIVATE_H
+
+// INCLUDES
+#include "fmbkupengine.h"
+
+// FORWARD DECLARATIONS
+
+
+
+#include <QString>
+#include <QStringList>
+
+#include <QThread>
+
+class FmBkupThread;
+
+
+// CLASS DECLARATION
+class FmBkupEnginePrivate : public QObject
+{
+Q_OBJECT
+public:
+ FmBkupEnginePrivate(FmBkupEngine* bkupEngine);
+ ~FmBkupEnginePrivate();
+
+ bool startBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+ QList<FmBkupBackupCategory*> backupCategoryList,
+ QString drive, quint32 content);
+
+ void cancelBackup();
+ int deleteBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList );
+
+// TUint32 FmgrToBkupMask( const TUint32 aFmrgMask );
+ int error();
+
+ //
+ bool StartRestoreL( QList<FmBkupDrivesAndOperation* > drivesAndOperationList );
+ void GetRestoreInfoArray( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+ QList< FmRestoreInfo > &restoreInfoList,
+ const QString& aDrive );
+ void getBackupDriveList( QStringList &driveList );
+private:
+ int DriverNameToNumber( QString driverName );
+ QString NumberToDriverName( int driver );
+
+// TBool HasMultipleBackupTargets();
+
+signals:
+ void notifyPreparing( bool cancelable );
+ void notifyStart( bool cancelable, int totalCount );
+ void notifyUpdate( int count );
+ void notifyFinish( int err );
+ void notifyMemoryLow( int memoryValue, int &userError );
+
+ // win32 source code is used to simulator backup action.
+ // add this signal in win32 to avoid warning when run test case
+ // though it is not used in win32 source code currently
+ void notifyBackupFilesExist( bool &isContinue );
+
+public slots:
+ void onNotifyPreparing( bool cancelable );
+ void onNotifyStart( bool cancelable, int totalCount );
+ void onNotifyUpdate( int count );
+ void onNotifyFinish( int err );
+ void onNotifyMemoryLow( int memoryValue, int &userError );
+
+private:
+ int mError;
+ FmBkupEngine* q;
+ FmBkupThread* mBkupThread;
+
+ QList< FmRestoreInfo > selection;
+};
+
+
+
+class FmBkupThread : public QThread
+{
+ Q_OBJECT
+public:
+ enum RunType
+ {
+ RunTypeNone,
+ RunTypeBackup,
+ RunTypeRestore
+ };
+
+ FmBkupThread( QObject *parent );
+ ~FmBkupThread();
+
+ int asyncBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+QList<FmBkupBackupCategory*> backupCategoryList,QString drive, quint32 content );
+ int asyncRestore( QList<FmBkupDrivesAndOperation* > drivesAndOperationList, QList< FmRestoreInfo > selection );
+ void stop();
+
+signals:
+ void notifyPreparing( bool cancelable );
+ void notifyStart( bool cancelable, int totalCount );
+ void notifyUpdate( int totalCount );
+ void notifyFinish( int err );
+ void notifyMemoryLow( int memoryValue, int &userError );
+
+protected:
+ void run();
+
+private:
+ volatile bool mStop;
+ RunType mRunType;
+
+ QList<FmBkupDrivesAndOperation* > mDrivesAndOperationList;
+ QList<FmBkupBackupCategory*> mBackupCategoryList;
+ QString mDrive;
+ quint32 mContent;
+ QList< FmRestoreInfo > mSelection;
+
+};
+
+
+#endif /*FMBKUPENGINEPRIVATE_H*/
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/src/fmbackupsettings.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,389 @@
+/*
+ * 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 "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:
+ * The source file of the backup settings of file manager
+ */
+
+#include "fmbackupsettings.h"
+#include "fmbkupengine.h"
+#include "fmcommon.h"
+
+#include <QString>
+#include <QStringList>
+#include <QTime>
+#include <QSettings>
+
+#include <hbglobal.h>
+
+FmBackupSettings::FmBackupSettings( FmBkupEngine *aFmBkupEngine ) : mBkupEngine( aFmBkupEngine )
+{
+
+}
+
+FmBackupSettings::~FmBackupSettings( void )
+{
+ resetAndDestoryBackupEntry();
+}
+
+void FmBackupSettings::setContent( const quint32 aContent )
+{
+ mContent = aContent;
+ save();
+}
+
+void FmBackupSettings::setScheduling( const TFileManagerBackupSchedule aScheduling )
+{
+ mScheduling = aScheduling;
+ save();
+}
+
+void FmBackupSettings::setWeekday( const TFileManagerBackupWeekday weekday )
+{
+ mWeekday = weekday;
+ save();
+}
+
+void FmBackupSettings::setTime( const QTime &aTime )
+{
+ mTime = aTime;
+ save();
+}
+
+void FmBackupSettings::setTargetDrive( const QString &aDrive )
+{
+ mTargetDrive = aDrive;
+ save();
+}
+
+quint32 FmBackupSettings::content() const
+{
+ return mContent;
+}
+
+FmBackupSettings::TFileManagerBackupSchedule FmBackupSettings::scheduling() const
+{
+ return mScheduling;
+}
+
+FmBackupSettings::TFileManagerBackupWeekday FmBackupSettings::weekday() const
+{
+ return mWeekday;
+}
+
+const QTime& FmBackupSettings::time() const
+{
+ return mTime;
+}
+
+QString FmBackupSettings::targetDrive() const
+{
+ return mTargetDrive;
+}
+
+QString FmBackupSettings::availableTargetDrive() const
+{
+ QString targetDrive;
+ QStringList driveList;
+ mBkupEngine->getBackupDriveList( driveList );
+ if( !driveList.isEmpty() ) {
+ if( driveList.contains( mTargetDrive ) ) {
+ targetDrive = mTargetDrive;
+ } else {
+ targetDrive = driveList.first();
+ }
+ }
+ return targetDrive;
+}
+
+int FmBackupSettings::contentsSelected() const
+{
+ int ret( 0 );
+ // Count selected only
+ quint32 mask( mContent );
+ while ( mask ){
+ if ( mask & 1 ){
+ ++ret;
+ }
+ mask >>= 1;
+ }
+ return ret;
+}
+
+FmBackupEntry* FmBackupSettings::CreateEntry( const QString &title, const QString &tips, const FmBackupEntry::TSettingType type )
+{
+ FmBackupEntry *entry = new FmBackupEntry( title, tips, type );
+ return entry;
+}
+
+FmBackupEntry* FmBackupSettings::createContentsEntry()
+{
+ QString title;
+ QString tips;
+
+ title = hbTrId( "Backup Contents" );
+
+ int selected( contentsSelected() );
+ if ( !( mContent & EFileManagerBackupContentAll ) && selected > 1 ){
+ // create text as " 5 selected"
+ tips = QString( QString::number(selected) + " selected" );
+ }
+ else
+ {
+ // create single content name
+ tips = contentToString( mContent );
+ }
+
+ return CreateEntry( title, tips, FmBackupEntry::EContents );
+}
+
+FmBackupEntry* FmBackupSettings::createSchedulingEntry()
+{
+ QString title;
+ QString tips;
+
+ title = hbTrId( "Backup scheduling" );
+ tips = schedulingToString( mScheduling );
+
+ return CreateEntry( title, tips, FmBackupEntry::EScheduling );
+}
+
+FmBackupEntry* FmBackupSettings::createWeekdayEntry()
+{
+ QString title;
+ QString tips;
+
+ title = hbTrId( "Weekday" );
+ tips = weekdayToString( mWeekday );
+
+ return CreateEntry( title, tips, FmBackupEntry::EWeekday );
+}
+
+FmBackupEntry* FmBackupSettings::createTimeEntry()
+{
+ QString title;
+ QString tips;
+
+ title = hbTrId( "Time" );
+ tips = mTime.toString( "hh:mm" );
+
+ return CreateEntry( title, tips, FmBackupEntry::ETime );
+}
+
+FmBackupEntry* FmBackupSettings::createTargetDriveEntry()
+{
+ QString title;
+ QString tips;
+
+ title = hbTrId( "Backup destination" );
+ tips = targetDriveToString( mTargetDrive );
+
+ return CreateEntry( title, tips, FmBackupEntry::ETarget );
+}
+
+FmBackupEntry* FmBackupSettings::createBackupDateEntry()
+{
+ QString tips;
+ if( mDate.isNull() )
+ {
+ tips = hbTrId( "No previous backups created");
+ }
+ else
+ {
+ tips = hbTrId( "Backup Created " ) + mDate.toString( "dd.MM.yyyy" );
+ }
+ return CreateEntry( QString(""), tips, FmBackupEntry::EBackupdate);
+}
+QString FmBackupSettings::contentToString( const quint32 content )
+{
+ QString ret( hbTrId( "All" ) );
+
+ if ( content & EFileManagerBackupContentAll ){
+ ret = hbTrId( "All" );
+ }
+ else if ( content & EFileManagerBackupContentSettings ){
+ ret = hbTrId( "Settings" );
+ }
+ else if ( content & EFileManagerBackupContentMessages ){
+ ret = hbTrId( "Messages" );
+ }
+ else if ( content & EFileManagerBackupContentContacts ){
+ ret = hbTrId( "Contacts" );
+ }
+ else if ( content & EFileManagerBackupContentCalendar ){
+ ret = hbTrId( "Calendar" );
+ }
+ else if ( content & EFileManagerBackupContentBookmarks ){
+ ret = hbTrId( "Bookmarks" );
+ }
+ else if ( content & EFileManagerBackupContentUserFiles ){
+ ret = hbTrId( "Files" );
+ }
+ return ret;
+}
+
+QString FmBackupSettings::weekdayToString( const TFileManagerBackupWeekday weekday )
+{
+ QString ret = "";
+ switch (weekday)
+ {
+ case EFileManagerBackupWeekdayMonday:
+ ret = hbTrId( "Monday" );
+ break;
+ case EFileManagerBackupWeekdayTuesday:
+ ret = hbTrId( "Tuesday" );
+ break;
+ case EFileManagerBackupWeekdayWednesday:
+ ret = hbTrId( "Wednesday" );
+ break;
+ case EFileManagerBackupWeekdayThursday:
+ ret = hbTrId( "Thursday" );
+ break;
+ case EFileManagerBackupWeekdayFriday:
+ ret = hbTrId( "Friday" );
+ break;
+ case EFileManagerBackupWeekdaySaturday:
+ ret = hbTrId( "Saturday" );
+ break;
+ case EFileManagerBackupWeekdaySunday:
+ ret = hbTrId( "Sunday" );
+ break;
+ }
+ return ret;
+}
+
+
+QString FmBackupSettings::schedulingToString( const TFileManagerBackupSchedule scheduling )
+{
+ QString ret = "";
+ switch (scheduling)
+ {
+ case EFileManagerBackupScheduleNever:
+ ret = hbTrId( "Never" );
+ break;
+ case EFileManagerBackupScheduleDaily:
+ ret = hbTrId ("Daily" );
+ break;
+ case EFileManagerBackupScheduleWeekly:
+ ret = hbTrId( "Weekly" );
+ break;
+ }
+ return ret;
+}
+
+QString FmBackupSettings::targetDriveToString( const QString &targetDrive )
+{
+ //TODO: Get Volume Name and append to return value
+ return targetDrive;
+}
+
+QList< FmBackupEntry* > FmBackupSettings::backupEntryList()
+{
+ return mBackupEntryList;
+}
+
+void FmBackupSettings::refreshList()
+{
+ resetAndDestoryBackupEntry();
+ FmBackupEntry* entry = 0;
+
+ entry = createContentsEntry();
+ mBackupEntryList.push_back( entry );
+
+ entry = createSchedulingEntry();
+ mBackupEntryList.push_back( entry );
+
+ if ( mScheduling == EFileManagerBackupScheduleWeekly )
+ {
+ entry = createWeekdayEntry();
+ mBackupEntryList.push_back( entry );
+ }
+
+ if ( mScheduling == EFileManagerBackupScheduleWeekly ||
+ mScheduling == EFileManagerBackupScheduleDaily )
+ {
+ entry = createTimeEntry();
+ mBackupEntryList.push_back( entry );
+ }
+
+ QStringList driveList;
+ mBkupEngine->getBackupDriveList( driveList );
+
+ if( driveList.count() > 1 ) {
+ entry = createTargetDriveEntry();
+ mBackupEntryList.push_back( entry );
+ }
+
+ entry = createBackupDateEntry();
+ mBackupEntryList.push_back( entry );
+}
+
+void FmBackupSettings::resetAndDestoryBackupEntry()
+{
+ for( QList< FmBackupEntry* >::iterator it = mBackupEntryList.begin();
+ it!= mBackupEntryList.end(); ++it ){
+ delete *it;
+ }
+ mBackupEntryList.clear();
+}
+
+
+
+// load and save
+
+void FmBackupSettings::load()
+{
+
+ QStringList driveList;
+ mBkupEngine->getBackupDriveList( driveList );
+ QString defaultDrive( driveList.first() );
+
+ QDate date;
+ QSettings settings("Nokia", "FileManager");
+
+ settings.beginGroup("BackupConfigure");
+
+ mContent = (settings.value("content", 1).toUInt()); // All for default value
+ mScheduling = (TFileManagerBackupSchedule)(settings.value("scheduling", EFileManagerBackupScheduleNever ).toInt()); // Never schedule for default value
+ mWeekday = (TFileManagerBackupWeekday)(settings.value("weekday", EFileManagerBackupWeekdayMonday ).toInt()); // monday for default value
+ mTime = (settings.value("time", QTime::currentTime() ).toTime()); // empty for default
+ mTargetDrive = (settings.value("targetDrive", defaultDrive ) ).toString(); // C for default
+ mDate = (settings.value("backupDate", date)).toDate();
+ settings.endGroup();
+ refreshList();
+}
+
+
+void FmBackupSettings::save()
+{
+
+ QSettings settings( "Nokia", "FileManager" );
+ settings.beginGroup( "BackupConfigure" );
+
+ settings.setValue( "content", mContent );
+ settings.setValue( "scheduling", mScheduling );
+ settings.setValue( "weekday", mWeekday );
+ settings.setValue( "time", mTime.toString() );
+ settings.setValue( "targetDrive", mTargetDrive );
+ settings.setValue( "backupDate", mDate.toString( Qt::ISODate ) );
+ settings.endGroup();
+
+ refreshList();
+}
+
+void FmBackupSettings::updateBackupDate()
+{
+ mDate.setDate( QDate::currentDate().year(), QDate::currentDate().month(), QDate::currentDate().day() );
+ save();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/src/fmbkupengine.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,106 @@
+/*
+ * 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 "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:
+ * The source file of the backup engine from backup engine wrapper
+ */
+
+#include "fmbkupengine.h"
+#include "fmbkupengine_p.h"
+
+#include "fmbackupsettings.h"
+#include "fmrestoresettings.h"
+
+#include <QObject>
+FmBkupEngine::FmBkupEngine(QObject* parent):
+ QObject(parent), d(new FmBkupEnginePrivate(this)), iBackupSettings( 0 ), iRestoreSettings( 0 )
+{
+ connect( d, SIGNAL( notifyPreparing( bool ) ), this, SIGNAL( notifyPreparing( bool ) ) );
+ connect( d, SIGNAL( notifyStart( bool, int ) ), this, SIGNAL( notifyStart( bool, int ) ) );
+ connect( d, SIGNAL( notifyUpdate(int) ), this, SIGNAL( notifyUpdate(int) ) );
+ connect( d, SIGNAL( notifyFinish(int) ),
+ this, SIGNAL( notifyFinish(int) ), Qt::DirectConnection );
+ connect( d, SIGNAL( notifyMemoryLow(int, int& ) ), this, SIGNAL( notifyMemoryLow(int, int&) ) );
+ connect( d, SIGNAL( notifyBackupFilesExist( bool& )), this, SIGNAL( notifyBackupFilesExist( bool&) ) );
+}
+
+
+FmBkupEngine::~FmBkupEngine()
+{
+ delete d;
+ if( iBackupSettings ) {
+ delete iBackupSettings;
+ }
+ if( iRestoreSettings ) {
+ delete iRestoreSettings;
+ }
+}
+
+bool FmBkupEngine::startBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList,
+ QList<FmBkupBackupCategory*> backupCategoryList,
+ QString drive, quint32 content)
+{
+ return d->startBackup( drivesAndOperationList, backupCategoryList, drive, content );
+}
+void FmBkupEngine::cancelBackup()
+{
+ d->cancelBackup();
+}
+bool FmBkupEngine::startRestore( QList<FmBkupDrivesAndOperation* > drivesAndOperationList )
+{
+ return d->StartRestoreL( drivesAndOperationList );
+}
+
+
+int FmBkupEngine::error() const
+{
+ return d->error();
+}
+
+FmBackupSettings *FmBkupEngine::BackupSettingsL()
+{
+ if ( !iBackupSettings )
+ {
+ iBackupSettings = new FmBackupSettings( this );
+ }
+ return iBackupSettings;
+}
+
+FmRestoreSettings *FmBkupEngine::RestoreSettingsL()
+{
+ if ( !iRestoreSettings )
+ {
+ iRestoreSettings = new FmRestoreSettings( *this );
+ }
+ return iRestoreSettings;
+}
+
+void FmBkupEngine::GetRestoreInfoArray( QList<FmBkupDrivesAndOperation* > &drivesAndOperationList,
+ QList< FmRestoreInfo > &restoreInfoList,
+ const QString& aDrive )
+{
+ d->GetRestoreInfoArray( drivesAndOperationList, restoreInfoList, aDrive );
+}
+
+int FmBkupEngine::deleteBackup( QList<FmBkupDrivesAndOperation* > drivesAndOperationList )
+{
+ return d->deleteBackup( drivesAndOperationList );
+}
+
+
+void FmBkupEngine::getBackupDriveList( QStringList &driveList )
+{
+ d->getBackupDriveList( driveList );
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/src/fmrestoresettings.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,115 @@
+/*
+ * 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 "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:
+ * The source file of the restore settings of file manager
+ */
+
+#include "fmrestoresettings.h"
+#include "fmbackupsettings.h"
+#include "fmbkupengine.h"
+#include "fmbkupcommon.h"
+
+#include <QString>
+#include <QDateTime>
+#include <QSettings>
+
+FmRestoreSettings::FmRestoreSettings( FmBkupEngine& engine ) : mEngine( engine )
+{
+
+}
+
+FmRestoreSettings::~FmRestoreSettings()
+{
+ resetAndDestoryRestoreEntry();
+}
+
+void FmRestoreSettings::load( QList<FmBkupDrivesAndOperation* > drivesAndOperationList )
+{
+ refreshList( drivesAndOperationList );
+}
+
+QList< FmRestoreEntry* > FmRestoreSettings::restoreEntryList()
+{
+ return mRestoreEntryList;
+}
+
+void FmRestoreSettings::resetAndDestoryRestoreEntry()
+{
+ for( QList< FmRestoreEntry* >::iterator it = mRestoreEntryList.begin();
+ it!= mRestoreEntryList.end(); ++it ){
+ delete *it;
+ }
+ mRestoreEntryList.clear();
+}
+
+void FmRestoreSettings::refreshList( QList<FmBkupDrivesAndOperation* > &drivesAndOperationList )
+{
+ resetAndDestoryRestoreEntry();
+
+ QList< FmRestoreInfo > restoreInfoList;
+
+ QString targetDrive = mEngine.BackupSettingsL()->availableTargetDrive();
+ mEngine.GetRestoreInfoArray( drivesAndOperationList, restoreInfoList, targetDrive );
+
+
+ // fetch info list from engine, and then init the entry list for display
+
+ int count( restoreInfoList.count() );
+ quint32 mask( FmBkupEngineCommon::EFileManagerBackupContentFirst);
+ while ( mask <= FmBkupEngineCommon::EFileManagerBackupContentLast )
+ {
+ for ( int i( 0 ); i < count; ++i )
+ {
+ FmRestoreInfo& info( restoreInfoList[ i ] );
+ if ( info.content() & mask )
+ {
+ FmRestoreEntry* entry = CreateEntry( info );
+ mRestoreEntryList.push_back( entry );
+ }
+ }
+ mask <<= 1;
+ }
+}
+
+
+FmRestoreEntry *FmRestoreSettings::CreateEntry( const FmRestoreInfo &info )
+{
+ QString text = FmBackupSettings::contentToString( info.content() );
+
+ FmRestoreEntry *entry = new FmRestoreEntry( text, info );
+ return entry;
+}
+
+void FmRestoreSettings::SetSelection(
+ const quint64& aSelection )
+ {
+ iSelection = aSelection;
+ }
+
+void FmRestoreSettings::GetSelectionL(
+ QList< FmRestoreInfo >& infoArray ) const
+{
+ infoArray.clear();
+
+ int count( mRestoreEntryList.count() );
+
+ for ( int i( 0 ); i < count; ++i )
+ {
+ if ( ( ( ( quint64 ) 1 ) << i ) & iSelection )
+ {
+ infoArray.append( mRestoreEntryList[ i ]->restoreInfo() );
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/bwins/fmfiledialogu.def Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,25 @@
+EXPORTS
+ ??_EFmFileDialog@@UAE@I@Z @ 1 NONAME ; FmFileDialog::~FmFileDialog(unsigned int)
+ ?qt_metacall@FmFileDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2 NONAME ; int FmFileDialog::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??1FmFileDialog@@EAE@XZ @ 3 NONAME ; FmFileDialog::~FmFileDialog(void)
+ ?tr@FmFileDialog@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString FmFileDialog::tr(char const *, char const *, int)
+ ?getOpenFileName@FmFileDialog@@SA?AVQString@@PAVHbWidget@@ABV2@1ABVQStringList@@V?$QFlags@W4Option@FmFileDialog@@@@@Z @ 5 NONAME ; class QString FmFileDialog::getOpenFileName(class HbWidget *, class QString const &, class QString const &, class QStringList const &, class QFlags<enum FmFileDialog::Option>)
+ ??0FmFileDialog@@AAE@PAVQGraphicsItem@@@Z @ 6 NONAME ; FmFileDialog::FmFileDialog(class QGraphicsItem *)
+ ?tr@FmFileDialog@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString FmFileDialog::tr(char const *, char const *)
+ ?getStaticMetaObject@FmFileDialog@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & FmFileDialog::getStaticMetaObject(void)
+ ?d_func@FmFileDialog@@ABEPBVFmFileDialogPrivate@@XZ @ 9 NONAME ; class FmFileDialogPrivate const * FmFileDialog::d_func(void) const
+ ?exec@FmFileDialog@@AAE_NXZ @ 10 NONAME ; bool FmFileDialog::exec(void)
+ ?trUtf8@FmFileDialog@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString FmFileDialog::trUtf8(char const *, char const *)
+ ?trUtf8@FmFileDialog@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString FmFileDialog::trUtf8(char const *, char const *, int)
+ ?metaObject@FmFileDialog@@UBEPBUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const * FmFileDialog::metaObject(void) const
+ ?staticMetaObject@FmFileDialog@@2UQMetaObject@@B @ 14 NONAME ; struct QMetaObject const FmFileDialog::staticMetaObject
+ ?getSaveFileName@FmFileDialog@@SA?AVQString@@PAVHbWidget@@ABV2@1ABVQStringList@@V?$QFlags@W4Option@FmFileDialog@@@@@Z @ 15 NONAME ; class QString FmFileDialog::getSaveFileName(class HbWidget *, class QString const &, class QString const &, class QStringList const &, class QFlags<enum FmFileDialog::Option>)
+ ?d_func@FmFileDialog@@AAEPAVFmFileDialogPrivate@@XZ @ 16 NONAME ; class FmFileDialogPrivate * FmFileDialog::d_func(void)
+ ?getExistingDirectory@FmFileDialog@@SA?AVQString@@PAVHbWidget@@ABV2@1ABVQStringList@@V?$QFlags@W4Option@FmFileDialog@@@@@Z @ 17 NONAME ; class QString FmFileDialog::getExistingDirectory(class HbWidget *, class QString const &, class QString const &, class QStringList const &, class QFlags<enum FmFileDialog::Option>)
+ ?qt_metacast@FmFileDialog@@UAEPAXPBD@Z @ 18 NONAME ; void * FmFileDialog::qt_metacast(char const *)
+ ?dialogClosed@FmFileDialog@@AAEXPAVHbAction@@@Z @ 19 NONAME ; void FmFileDialog::dialogClosed(class HbAction *)
+ ?setSecondaryAction@FmFileDialog@@AAEXPAVHbAction@@@Z @ 20 NONAME ; void FmFileDialog::setSecondaryAction(class HbAction *)
+ ?secondaryAction@FmFileDialog@@ABEPAVHbAction@@XZ @ 21 NONAME ; class HbAction * FmFileDialog::secondaryAction(void) const
+ ?setPrimaryAction@FmFileDialog@@AAEXPAVHbAction@@@Z @ 22 NONAME ; void FmFileDialog::setPrimaryAction(class HbAction *)
+ ?primaryAction@FmFileDialog@@ABEPAVHbAction@@XZ @ 23 NONAME ; class HbAction * FmFileDialog::primaryAction(void) const
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/eabi/fmfiledialogu.def Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,27 @@
+EXPORTS
+ _ZN12FmFileDialog11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
+ _ZN12FmFileDialog11qt_metacastEPKc @ 2 NONAME
+ _ZN12FmFileDialog15getOpenFileNameEP8HbWidgetRK7QStringS4_RK11QStringList6QFlagsINS_6OptionEE @ 3 NONAME
+ _ZN12FmFileDialog15getSaveFileNameEP8HbWidgetRK7QStringS4_RK11QStringList6QFlagsINS_6OptionEE @ 4 NONAME
+ _ZN12FmFileDialog16staticMetaObjectE @ 5 NONAME DATA 16
+ _ZN12FmFileDialog19getStaticMetaObjectEv @ 6 NONAME
+ _ZN12FmFileDialog20getExistingDirectoryEP8HbWidgetRK7QStringS4_RK11QStringList6QFlagsINS_6OptionEE @ 7 NONAME
+ _ZN12FmFileDialog4execEv @ 8 NONAME
+ _ZN12FmFileDialogC1EP13QGraphicsItem @ 9 NONAME
+ _ZN12FmFileDialogC2EP13QGraphicsItem @ 10 NONAME
+ _ZN12FmFileDialogD0Ev @ 11 NONAME
+ _ZN12FmFileDialogD1Ev @ 12 NONAME
+ _ZN12FmFileDialogD2Ev @ 13 NONAME
+ _ZNK12FmFileDialog10metaObjectEv @ 14 NONAME
+ _ZTI12FmFileDialog @ 15 NONAME
+ _ZTV12FmFileDialog @ 16 NONAME
+ _ZThn16_N12FmFileDialogD0Ev @ 17 NONAME
+ _ZThn16_N12FmFileDialogD1Ev @ 18 NONAME
+ _ZThn8_N12FmFileDialogD0Ev @ 19 NONAME
+ _ZThn8_N12FmFileDialogD1Ev @ 20 NONAME
+ _ZN12FmFileDialog12dialogClosedEP8HbAction @ 21 NONAME
+ _ZN12FmFileDialog16setPrimaryActionEP8HbAction @ 22 NONAME
+ _ZN12FmFileDialog18setSecondaryActionEP8HbAction @ 23 NONAME
+ _ZNK12FmFileDialog13primaryActionEv @ 24 NONAME
+ _ZNK12FmFileDialog15secondaryActionEv @ 25 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/fmfiledialog.pri Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,22 @@
+#
+# 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 "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: FmFileDialog project - source files
+#
+
+HEADERS += ./src/fmfiledialog_p.h \
+ ./src/fmfilewidget.h
+
+SOURCES += ./src/fmfiledialog.cpp \
+ ./src/fmfiledialog_p.cpp \
+ ./src/fmfilewidget.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/fmfiledialog.pro Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,43 @@
+# 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 "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:
+# The project file of FmFileDialog
+
+TARGET =
+CONFIG += hb
+TEMPLATE = lib
+DEFINES += FMFILEDIALOG_LIBRARY
+RESOURCES += fmfiledialog.qrc
+include ( ../common.pri )
+include ( ../inc/commoninc.pri )
+include ( ../inc/commonutils.pri )
+include ( ../../filemanager_plat/inc/filemanager_plat.pri )
+include ( fmfiledialog.pri )
+symbian {
+ LIBS += -lplatformenv \
+ -lapmime \
+ -lxqservice \
+ -lxqutils \
+ -lshareui \
+ -lefsrv \
+ -lapgrfx \
+ -lcone \
+ -lsysutil
+
+ TARGET.UID3 = 0x2002BCC3
+
+ # export headers to app
+ EXPORT_PLATFORM_HEADERS += \
+ ../../filemanager_plat/inc/fmglobal.h \
+ ../../filemanager_plat/inc/fmfiledialog.h
+
+ headers.sources = $$EXPORT_PLATFORM_HEADERS
+ for(header, headers.sources):BLD_INF_RULES.prj_exports += "./$$header $$APP_LAYER_PLATFORM_EXPORT_PATH($$basename(header))"
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/fmfiledialog.qrc Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,11 @@
+<RCC>
+ <qresource prefix="/">
+ <file>image/qtg_indi_status_back.svg</file>
+ <file>image/qgn_prop_mmc_locked.svg</file>
+ <file>image/qgn_prop_mmc_memc.svg</file>
+ <file>image/qgn_prop_fmgr_mmc_no_sub.svg</file>
+ <file>image/qgn_prop_phone_memc.svg</file>
+ <file>image/qgn_prop_usb_memc.svg</file>
+ <file>image/qgn_prop_fmgr_ms.svg</file>
+ </qresource>
+</RCC>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/image/qgn_prop_fmgr_mmc_no_sub.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="57px" version="1.1" viewBox="0 0 67 57" width="67px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<path d="M49.375,9.715c-0.012,0-0.029-0.002-0.041-0.002l-38.13,0.004h38.027 C49.231,9.717,49.289,9.713,49.375,9.715z M60.67,19.506l-8.727-8.727c-0.896-0.896-1.979-1.046-2.498-1.063 c0.371,0.018,1.154,0.133,1.791,0.77l8.728,8.728c0,0,0.366,0.316,0.637,0.97C60.6,20.182,60.6,20.18,60.6,20.179 c0.314,0.412,0.783,1.231,0.783,2.49v23.125c0,2.044-1.662,3.706-3.706,3.706H11.204c-2.042,0-3.704-1.662-3.704-3.706V13.922 c0-0.823,0.279-1.577,0.735-2.193c-0.002,0.004-0.002,0.01-0.004,0.014c0.394-0.99,1.262-1.742,2.328-1.961 C8.547,10.096,7,11.824,7,13.922v31.872C7,48.113,8.886,50,11.204,50h46.473c2.319,0,4.206-1.887,4.206-4.206V22.669 C61.883,20.556,60.694,19.524,60.67,19.506z" fill-opacity="0.08" stroke-opacity="0.08"/>
+<path d="M60.6,20.179c0.157,0.38,0.283,0.874,0.283,1.49v24.125c0,1.771-1.436,3.206-3.206,3.206H11.204 C9.436,49,8,47.564,8,45.794V12.922c0-0.422,0.086-0.824,0.235-1.193C7.779,12.345,7.5,13.099,7.5,13.922v31.872 c0,2.044,1.662,3.706,3.704,3.706h46.473c2.044,0,3.706-1.662,3.706-3.706V22.669C61.383,21.41,60.914,20.591,60.6,20.179z" fill-opacity="0.15" stroke-opacity="0.15"/>
+<path d="M57.677,48H11.204C9.436,48,8,46.564,8,44.794v1C8,47.564,9.436,49,11.204,49h46.473 c1.771,0,3.206-1.436,3.206-3.206v-1C60.883,46.564,59.447,48,57.677,48z" fill-opacity="0.3" stroke-opacity="0.3"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="34.4414" x2="34.4414" y1="-6.5947" y2="62.0571">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path d="M59.257,19.921l-8.728-8.728c-0.446-0.445-1.028-0.48-1.195-0.48l-38.13,0.004 C9.988,10.717,9,11.706,9,12.922v31.872C9,46.01,9.988,47,11.204,47h46.473c1.217,0,2.206-0.99,2.206-2.206V21.669 C59.883,20.521,59.321,19.982,59.257,19.921z M58.065,45H47.78v-5.144h10.285V45z M58.065,38.743H47.78V33.6h10.285V38.743z M58.065,32.48H47.78v-5.143h10.285V32.48z M58.065,26.219H47.78v-5.143h10.285V26.219z" fill="url(#SVGID_1_)" fill-opacity="0.5" stroke-opacity="0.5"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="34.4414" x2="34.4414" y1="-0.6313" y2="58.201">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path d="M59.964,19.214l-8.728-8.728c-0.865-0.865-2.005-0.77-2.005-0.77H11.204 C9.436,9.717,8,11.151,8,12.922v31.872C8,46.564,9.436,48,11.204,48h46.473c1.771,0,3.206-1.436,3.206-3.206V21.669 C60.883,20,59.964,19.214,59.964,19.214z M59.883,44.794c0,1.216-0.989,2.206-2.206,2.206H11.204C9.988,47,9,46.01,9,44.794V12.922 c0-1.216,0.988-2.205,2.204-2.205l38.13-0.004c0.167,0,0.749,0.035,1.195,0.48l8.728,8.728c0.064,0.062,0.626,0.601,0.626,1.748 V44.794z" fill="url(#SVGID_2_)" fill-opacity="0.5" stroke-opacity="0.5"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="33.27" x2="33.27" y1="35.7666" y2="7.9984">
+<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M9,12.922v26.053c7.021-11.342,26.082-20.758,48.54-20.771l-7.011-7.01 c-0.446-0.445-1.028-0.48-1.195-0.48l-38.13,0.004C9.988,10.717,9,11.706,9,12.922z" fill="url(#SVGID_3_)" fill-opacity="0.1" stroke-opacity="0.1"/>
+<path d="M59.065,21.076c0-0.553-0.447-1-1-1H47.78c-0.553,0-1,0.447-1,1v5.143c0,0.207,0.063,0.4,0.171,0.56 c-0.107,0.159-0.171,0.353-0.171,0.56v5.143c0,0.208,0.063,0.4,0.171,0.561C46.844,33.2,46.78,33.393,46.78,33.6v5.144 c0,0.206,0.063,0.397,0.169,0.557c-0.106,0.159-0.169,0.351-0.169,0.557V45c0,0.552,0.447,1,1,1h10.285c0.553,0,1-0.448,1-1v-5.144 c0-0.206-0.063-0.397-0.169-0.557c0.106-0.159,0.169-0.351,0.169-0.557V33.6c0-0.207-0.063-0.399-0.171-0.559 c0.107-0.16,0.171-0.353,0.171-0.561v-5.143c0-0.207-0.063-0.4-0.171-0.56c0.107-0.159,0.171-0.353,0.171-0.56V21.076z M58.065,45 H47.78v-5.144h10.285V45z M58.065,38.743H47.78V33.6h10.285V38.743z M58.065,32.48H47.78v-5.143h10.285V32.48z M58.065,26.219H47.78 v-5.143h10.285V26.219z" fill-opacity="0.1" stroke-opacity="0.1"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="52.9229" x2="52.9229" y1="49.0088" y2="25.5829">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect fill="url(#SVGID_4_)" fill-opacity="0.5" height="5.144" stroke-opacity="0.5" width="10.285" x="47.78" y="39.856"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5_" x1="52.9229" x2="52.9229" y1="42.752" y2="19.3261">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect fill="url(#SVGID_5_)" fill-opacity="0.5" height="5.144" stroke-opacity="0.5" width="10.285" x="47.78" y="33.6"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_6_" x1="52.9229" x2="52.9229" y1="36.4883" y2="13.0691">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect fill="url(#SVGID_6_)" fill-opacity="0.5" height="5.143" stroke-opacity="0.5" width="10.285" x="47.78" y="27.338"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_7_" x1="52.9229" x2="52.9229" y1="30.2275" y2="6.8061">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect fill="url(#SVGID_7_)" fill-opacity="0.5" height="5.143" stroke-opacity="0.5" width="10.285" x="47.78" y="21.076"/>
+<path d="M47.78,44.99l1-0.99v-3.144h8.285l1-1H47.78V44.99z M47.78,38.724l1-0.991V34.59h8.285l1-1H47.78V38.724z M47.78,32.461l1-0.99v-3.144h8.285l1-1H47.78V32.461z M48.78,22.065h8.285l1-1H47.78v5.134l1-0.99V22.065z" fill-opacity="0.15" stroke-opacity="0.15"/>
+<path d="M57.065,44H48.78l-0.99,1h10.275v-5.132l-1,0.988V44z M57.065,37.732H48.78l-0.99,1h10.275 v-5.131l-1,0.988V37.732z M57.065,31.471H48.78l-0.99,1h10.275v-5.132l-1,0.988V31.471z M57.065,22.065v3.144H48.78l-0.99,1h10.275 v-5.132L57.065,22.065z" fill="#FFFFFF" fill-opacity="0.25" stroke-opacity="0.25"/>
+<rect fill="none" height="57" width="67"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/image/qgn_prop_fmgr_ms.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="57px" version="1.1" viewBox="0 0 67 57" width="67px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<path d="M63.977,26.966c0.079-1.848-0.215-3.706-0.903-5.479c-1.959-5.042-6.597-8.367-11.943-8.646 c-0.548-1.742-2.165-3.016-4.086-3.016H9.106c-2.369,0-4.296,1.927-4.296,4.296V40.49c0,2.369,1.927,4.296,4.296,4.296h2.296V44.9 c0,1.158,0.941,2.1,2.099,2.1h29.665c1.157,0,2.099-0.941,2.099-2.1v-0.114h1.779c2.208,0,4.031-1.674,4.27-3.819 c1.369-0.092,2.717-0.392,4.012-0.895c3.379-1.313,6.046-3.865,7.512-7.191C63.672,30.986,64.042,28.973,63.977,26.966z" fill-opacity="0.15" stroke-opacity="0.15"/>
+<path d="M62.606,22.666c-1.911-4.92-6.472-8.151-11.767-8.341v-0.204c0-2.093-1.703-3.796-3.796-3.796H9.106 c-2.093,0-3.796,1.703-3.796,3.796V40.49c0,2.094,1.703,3.796,3.796,3.796h2.796V44.9c0,0.883,0.717,1.6,1.599,1.6h29.665 c0.882,0,1.599-0.717,1.599-1.6v-0.614h2.279c2.093,0,3.796-1.702,3.796-3.796c1.471-0.049,2.917-0.346,4.305-0.884 c3.254-1.264,5.823-3.724,7.234-6.927S63.871,25.921,62.606,22.666z M50.874,28.611c-0.012,0.005-0.022,0.01-0.034,0.014v-2.439 c0.349,0.122,0.632,0.391,0.772,0.752C51.87,27.602,51.538,28.354,50.874,28.611z" fill-opacity="0.15" stroke-opacity="0.15"/>
+<path d="M62.141,22.848c-1.896-4.881-56.33,16.535-56.33,16.535v1.107c0,1.82,1.475,3.296,3.296,3.296h3.296V44.9 c0,0.604,0.495,1.1,1.099,1.1h29.665c0.604,0,1.099-0.495,1.099-1.1v-1.114h2.779c1.819,0,3.296-1.476,3.296-3.296v-0.495 c0.023,0,0.045,0.003,0.068,0.003c0.001,0,0.001,0,0.001,0c1.558,0,3.09-0.289,4.555-0.857 C61.434,36.627,64.654,29.318,62.141,22.848z M50.406,29.2c-0.023,0-0.044-0.009-0.066-0.01v-3.573c0.022,0,0.044-0.006,0.066-0.006 c0.745,0,1.402,0.449,1.672,1.145c0.357,0.922-0.102,1.964-1.023,2.322C50.846,29.159,50.628,29.2,50.406,29.2z" fill-opacity="0.4" stroke-opacity="0.4"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="51.7969" x2="58.3651" y1="25.7554" y2="22.6821">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="0.5401" style="stop-color:#B3B3B3"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M61.544,22.079c-2.391-6.15-9.313-9.199-15.464-6.81c-6.151,2.389-9.2,9.312-6.812,15.462 c2.389,6.151,9.313,9.2,15.463,6.812C60.883,35.154,63.933,28.23,61.544,22.079z M51.567,29.395c-1.65,0.642-3.51-0.178-4.15-1.828 c-0.642-1.65,0.178-3.508,1.828-4.149c1.651-0.642,3.509,0.178,4.149,1.827C54.037,26.895,53.218,28.754,51.567,29.395z" fill="url(#SVGID_1_)"/>
+<path d="M49.551,13.843c0.283-0.02,0.568-0.029,0.854-0.029c5.233,0,9.841,3.153,11.736,8.034 c2.514,6.471-0.707,13.779-7.177,16.293c-1.465,0.568-2.997,0.857-4.555,0.857c0,0,0,0-0.001,0c-0.373,0-0.742-0.017-1.108-0.049 L49.551,13.843z M50.404,24.295c-0.26,0-2.387,1.791-1.966,2.875c0.318,0.818,1.091,1.347,1.968,1.347 c0.261,0,0.518-0.048,0.764-0.144c0.526-0.205,0.94-0.602,1.168-1.117c0.227-0.516,0.239-1.088,0.035-1.614 C52.055,24.823,51.282,24.295,50.404,24.295L50.404,24.295z" fill="#F2F2F2"/>
+<path d="M49.883,38.176c1.586,0.07,3.212-0.18,4.787-0.791c6.063-2.355,9.07-9.181,6.716-15.243 c-1.888-4.86-6.646-7.756-11.581-7.503L49.883,38.176z M51.551,29.352c-1.628,0.633-3.459-0.174-4.092-1.801 c-0.632-1.627,0.176-3.459,1.803-4.092c1.627-0.631,3.458,0.176,4.091,1.802C53.985,26.889,53.179,28.721,51.551,29.352z" fill="url(#SVGID_2_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="45.5869" x2="54.5387" y1="20.1924" y2="31.7645">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="0.546" style="stop-color:#B2B2B2"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M50.402,15.176c-6.208,0-11.24,5.033-11.24,11.241s5.032,11.241,11.24,11.241 s11.24-5.033,11.24-11.241S56.61,15.176,50.402,15.176z M51.135,28.282c-1.035,0.402-2.201-0.112-2.604-1.147 c-0.403-1.036,0.111-2.202,1.147-2.605c1.035-0.402,2.202,0.112,2.604,1.148C52.686,26.713,52.171,27.879,51.135,28.282z" fill="url(#SVGID_3_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="57.3125" x2="57.6039" y1="29.4717" y2="26.0613">
+<stop offset="0" style="stop-color:#EEE3B1;stop-opacity:0.5918"/>
+<stop offset="1" style="stop-color:#D8A9A9;stop-opacity:0.57"/>
+</linearGradient>
+<path d="M61.643,26.417c0-0.136-0.005-0.269-0.011-0.401l-8.021,0.289c0.027,0.516-0.106,0.985-0.253,1.334 l7.539,2.805C61.377,29.193,61.643,27.836,61.643,26.417z" fill="url(#SVGID_4_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5_" x1="55.5752" x2="58.5098" y1="31.2334" y2="28.1805">
+<stop offset="0" style="stop-color:#B7B4E6;stop-opacity:0"/>
+<stop offset="0.1879" style="stop-color:#B7B4E6;stop-opacity:0.5"/>
+<stop offset="0.4036" style="stop-color:#BAEABA;stop-opacity:0.75"/>
+<stop offset="0.9036" style="stop-color:#BAEABA;stop-opacity:0.247"/>
+<stop offset="1" style="stop-color:#BAEABA;stop-opacity:0"/>
+</linearGradient>
+<path d="M61.069,29.961l-7.635-2.525c-0.135,0.378-0.302,0.658-0.37,0.763l5.303,6.149 C59.582,33.129,60.515,31.632,61.069,29.961z" fill="url(#SVGID_5_)"/>
+<path d="M53.827,25.077c-0.734-1.89-2.86-2.827-4.75-2.093s-2.826,2.86-2.093,4.75s2.861,2.827,4.75,2.093 C53.625,29.094,54.562,26.967,53.827,25.077z M51.485,29.182c-1.533,0.596-3.259-0.166-3.854-1.697 c-0.596-1.533,0.166-3.26,1.697-3.855c1.534-0.595,3.259,0.166,3.854,1.699C53.778,26.859,53.018,28.586,51.485,29.182z" fill="url(#SVGID_6_)"/>
+<path d="M53.282,25.289c-0.617-1.59-2.405-2.377-3.993-1.76c-1.589,0.617-2.377,2.405-1.76,3.994 c0.617,1.588,2.405,2.376,3.994,1.759S53.899,26.877,53.282,25.289z M51.055,28.078c-0.209,0.081-0.427,0.122-0.648,0.122 c-0.746,0-1.402-0.449-1.672-1.145c-0.174-0.446,0.575-2.148,1.021-2.321c0.21-0.082,0.429-0.123,0.65-0.123 c0.745,0,1.402,0.449,1.672,1.145C52.436,26.678,51.977,27.72,51.055,28.078z" fill="url(#SVGID_7_)"/>
+<linearGradient gradientTransform="matrix(-0.0913 -0.2351 0.2351 -0.0913 -494.9365 2956.155)" gradientUnits="userSpaceOnUse" id="SVGID_8_" x1="10037.0195" x2="10053.5957" y1="6220.8838" y2="6220.8838">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="0.5401" style="stop-color:#B3B3B3"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M53.527,25.193c-0.67-1.724-2.61-2.578-4.334-1.908c-1.724,0.669-2.577,2.609-1.909,4.332 c0.67,1.725,2.61,2.578,4.334,1.91C53.342,28.857,54.196,26.917,53.527,25.193z M51.417,29.01c-1.438,0.559-3.057-0.154-3.615-1.592 c-0.559-1.439,0.154-3.059,1.593-3.616c1.438-0.56,3.058,0.154,3.616,1.593C53.568,26.833,52.855,28.451,51.417,29.01z" fill="url(#SVGID_8_)"/>
+<path d="M49.756,24.734c0.21-0.082,0.429-0.123,0.65-0.123c0.581,0,1.102,0.279,1.434,0.729V13.902 c-0.473-0.053-2.006-0.079-2.289-0.06l0.08,25.132c0.258,0.016,1.734-0.014,2.209-0.068V27.475 c-0.194,0.262-0.459,0.477-0.785,0.604c-0.209,0.081-0.427,0.122-0.648,0.122c-0.187,0-0.367-0.028-0.539-0.081L49.756,24.734z" fill-opacity="0.1" stroke-opacity="0.1"/>
+<path d="M49.756,24.734c0.21-0.082,0.429-0.123,0.65-0.123c0.341,0,0.658,0.104,0.934,0.272V13.849 c-0.31-0.022-1.282-0.032-1.455-0.024l-0.254,25.15c0.258,0.016,1.399,0.003,1.709-0.021V27.933 c-0.09,0.056-0.184,0.106-0.285,0.146c-0.209,0.081-0.427,0.122-0.648,0.122c-0.186,0-0.365-0.028-0.534-0.08L49.756,24.734z" fill-opacity="0.1" stroke-opacity="0.1"/>
+<path d="M49.799,38.982c0.202,0.01,0.897,0,1.041-0.005V28.14c-0.143,0.036-0.286,0.061-0.434,0.061 c-0.186,0-0.365-0.028-0.534-0.08c-0.514-0.157-0.935-0.542-1.138-1.064c-0.174-0.446-0.163-0.935,0.03-1.373 c0.192-0.438,0.545-0.775,0.991-0.948c0.099-0.039,0.199-0.068,0.302-0.089c0.114-0.022,0.231-0.034,0.349-0.034 c0.15,0,0.293,0.03,0.434,0.065V13.83c-0.146-0.005-0.782-0.014-0.955-0.006L49.799,38.982z" fill-opacity="0.3" stroke-opacity="0.3"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_9_" x1="28.0747" x2="28.0747" y1="1.3354" y2="49.4483">
+<stop offset="0" style="stop-color:#E6E6E6"/>
+<stop offset="1" style="stop-color:#808080"/>
+</linearGradient>
+<path d="M50.34,39.49c0,1.82-1.477,3.296-3.296,3.296H9.106c-1.821,0-3.296-1.476-3.296-3.296V13.121 c0-1.821,1.475-3.296,3.296-3.296h37.938c1.819,0,3.296,1.475,3.296,3.296V39.49z" fill="url(#SVGID_9_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_10_" x1="5.7827" x2="7.8687" y1="26.3057" y2="26.3057">
+<stop offset="0" style="stop-color:#000000"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M9.106,9.825c-1.821,0-3.296,1.475-3.296,3.296V39.49c0,1.82,1.475,3.296,3.296,3.296 V9.825z" fill="url(#SVGID_10_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_11_" x1="48.4219" x2="50.5078" y1="26.3057" y2="26.3057">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path d="M47.044,9.825v32.961c1.819,0,3.296-1.476,3.296-3.296V13.121 C50.34,11.3,48.863,9.825,47.044,9.825z" fill="url(#SVGID_11_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientTransform="matrix(0 1 -1 0 709.498 -875.5039)" gradientUnits="userSpaceOnUse" id="SVGID_12_" x1="885.5039" x2="887.4564" y1="681.4229" y2="681.4229">
+<stop offset="0" style="stop-color:#000000"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M50.34,13.121c0-1.821-1.475-3.296-3.296-3.296H9.106 c-1.819,0-3.296,1.475-3.296,3.296H50.34z" fill="url(#SVGID_12_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_13_" x1="28.0747" x2="28.0747" y1="8.6724" y2="28.815">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+</linearGradient>
+<path d="M49.34,21.205v-8.084c0-1.266-1.03-2.296-2.296-2.296H9.106 c-1.266,0-2.296,1.03-2.296,2.296v17.393C13.689,26.037,36.434,22.624,49.34,21.205z" fill="url(#SVGID_13_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_14_" x1="28.0435" x2="28.0435" y1="42.6533" y2="39.7841">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+</linearGradient>
+<path d="M48.11,40.039c0,0.91-0.738,1.648-1.648,1.648H9.624 c-0.912,0-1.648-0.738-1.648-1.648l0,0c0-0.909,0.736-1.647,1.648-1.647h36.838C47.372,38.392,48.11,39.13,48.11,40.039 L48.11,40.039z" fill="url(#SVGID_14_)" fill-opacity="0.5" stroke-opacity="0.5"/>
+<path d="M43.166,35.809H13.501c-1.433,0-2.599,1.166-2.599,2.6v4.378h34.862v-4.378 C45.765,36.975,44.599,35.809,43.166,35.809z" fill-opacity="0.1" stroke-opacity="0.1"/>
+<path d="M43.166,36.309H13.501c-1.157,0-2.099,0.941-2.099,2.1v4.378h33.862v-4.378 C45.265,37.25,44.323,36.309,43.166,36.309z" fill-opacity="0.1" stroke-opacity="0.1"/>
+<path d="M43.166,36.809H13.501c-0.882,0-1.599,0.718-1.599,1.6v4.378h32.862v-4.378 C44.765,37.526,44.048,36.809,43.166,36.809z" fill-opacity="0.3" stroke-opacity="0.3"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_15_" x1="28.3335" x2="28.3335" y1="26.687" y2="52.4374">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="0.6688" style="stop-color:#565656"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path d="M44.265,43.9c0,0.604-0.494,1.1-1.099,1.1H13.501c-0.604,0-1.099-0.495-1.099-1.1v-5.492 c0-0.604,0.495-1.1,1.099-1.1h29.665c0.604,0,1.099,0.495,1.099,1.1V43.9z" fill="url(#SVGID_15_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_16_" x1="12.3906" x2="13.2769" y1="41.1543" y2="41.1543">
+<stop offset="0" style="stop-color:#000000"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M13.501,45h0.302v-7.691h-0.302c-0.604,0-1.099,0.495-1.099,1.1V43.9 C12.402,44.505,12.897,45,13.501,45z" fill="url(#SVGID_16_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_17_" x1="43.4502" x2="44.3365" y1="41.1543" y2="41.1543">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<path d="M43.166,37.309h-0.302V45h0.302c0.604,0,1.099-0.495,1.099-1.1v-5.492 C44.265,37.804,43.771,37.309,43.166,37.309z" fill="url(#SVGID_17_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_18_" x1="28.3335" x2="28.3335" y1="37.3086" y2="38.466">
+<stop offset="0" style="stop-color:#000000"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M43.166,37.309H13.501c-0.604,0-1.099,0.495-1.099,1.1h31.862 C44.265,37.804,43.771,37.309,43.166,37.309z" fill="url(#SVGID_18_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_19_" x1="28.3335" x2="28.3335" y1="37.793" y2="42.6174">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+</linearGradient>
+<path d="M43.166,38.309H13.501c-0.052,0-0.099,0.047-0.099,0.1v4.616 c5.909-1.655,20.551-2.927,29.862-3.53v-1.086C43.265,38.355,43.218,38.309,43.166,38.309z" fill="url(#SVGID_19_)" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_20_" x1="28.1343" x2="28.1343" y1="44.5771" y2="43.2538">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+</linearGradient>
+<path d="M42.963,43.468c0,0.386-0.177,0.699-0.865,0.699H14.173 c-0.69,0-0.868-0.313-0.868-0.699l0,0c0-0.388,0.178-0.7,0.868-0.7h27.925C42.786,42.768,42.963,43.08,42.963,43.468L42.963,43.468z " fill="url(#SVGID_20_)" fill-opacity="0.5" stroke-opacity="0.5"/>
+<rect fill="none" height="57" width="67"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/image/qgn_prop_mmc_locked.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="16px" version="1.1" viewBox="0 0 16 16" width="16px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<rect fill="none" height="16" width="16"/>
+<path d="M15.713,4.934L12.87,2.043c-0.185-0.208-0.452-0.34-0.751-0.34c0,0,0,0-0.002,0 H1.824C0.819,1.703,0,2.521,0,3.524v8.648c0,1.008,0.819,1.826,1.824,1.826h3.673v1C5.497,15.553,5.945,16,6.498,16h7.501 c0.553,0,1-0.447,1-1.001v-1.205C15.59,13.491,16,12.882,16,12.173V5.634C16,5.37,15.896,5.12,15.713,4.934z" fill-opacity="0.7" stroke-opacity="0.7"/>
+<linearGradient gradientTransform="matrix(-1 0 0 -1 -1181.5664 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-1189.5679" x2="-1189.5679" y1="9.6611" y2="0.1906">
+<stop offset="0" style="stop-color:#B2B2B2"/>
+<stop offset="1" style="stop-color:#666666"/>
+</linearGradient>
+<path d="M12.119,2.704L12.119,2.704H1.824c-0.452,0-0.823,0.37-0.823,0.822v8.648 c0,0.452,0.371,0.823,0.823,0.823h12.354c0.452,0,0.823-0.371,0.823-0.823V5.635L12.119,2.704z" fill="url(#SVGID_1_)"/>
+<path d="M14.001,7.57h-0.073V5.891c0-1.229-0.974-1.892-1.892-1.892H8.463 c-0.917,0-1.892,0.663-1.892,1.892V7.57H6.499c-0.553,0-1.001,0.448-1.001,1v4.427h8.68c0.452,0,0.823-0.371,0.823-0.823V8.57 C15.001,8.018,14.555,7.57,14.001,7.57z M10.857,7.57H9.643V7.072h1.215V7.57L10.857,7.57z" fill-opacity="0.4" stroke-opacity="0.4"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="10.1123" x2="10.1123" y1="10.6953" y2="2.1215">
+<stop offset="0" style="stop-color:#E3E3E3"/>
+<stop offset="1" style="stop-color:#404040"/>
+</linearGradient>
+<path d="M12.928,9.643h-1.07V6.07H8.643v3.573H7.572v-3.75c0-0.707,0.585-0.893,0.893-0.893h3.572 c0.309,0,0.893,0.186,0.893,0.893v3.75H12.928z" fill="url(#SVGID_2_)"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="10.1113" x2="10.1113" y1="7.2837" y2="0.3186">
+<stop offset="0" style="stop-color:#E6E6E6"/>
+<stop offset="1" style="stop-color:#B2B2B2"/>
+</linearGradient>
+<rect fill="url(#SVGID_3_)" height="6.429" width="7.5" x="6.5" y="8.57"/>
+<path d="M11.32,10.893c0-0.593-0.479-1.072-1.07-1.072S9.18,10.3,9.18,10.893c0,0.396,0.215,0.735,0.534,0.922v1.936h1.072v-1.936 C11.104,11.628,11.32,11.287,11.32,10.893z"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/image/qgn_prop_mmc_memc.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="16px" version="1.1" viewBox="0 0 16 16" width="16px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<rect fill="none" height="16" width="16"/>
+<path d="M15.713,4.934l-2.843-2.89c-0.185-0.208-0.452-0.34-0.751-0.34c0,0,0,0-0.002,0 H1.824C0.819,1.703,0,2.522,0,3.525v8.648C0,13.182,0.819,14,1.824,14h12.352C15.182,14,16,13.182,16,12.174V5.635 C16,5.371,15.896,5.121,15.713,4.934z" fill-opacity="0.7" stroke-opacity="0.7"/>
+<linearGradient gradientTransform="matrix(-1 0 0 -1 -1181.5664 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-1189.5679" x2="-1189.5679" y1="9.6611" y2="0.1897">
+<stop offset="0" style="stop-color:#B2B2B2"/>
+<stop offset="1" style="stop-color:#666666"/>
+</linearGradient>
+<path d="M12.119,2.704L12.119,2.704H1.824c-0.452,0-0.823,0.37-0.823,0.822v8.648 c0,0.453,0.371,0.824,0.823,0.824h12.354c0.452,0,0.823-0.371,0.823-0.824V5.635L12.119,2.704z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="12.2109" x2="12.2109" y1="8.7246" y2="0.6938">
+<stop offset="0" style="stop-color:#FFE23D"/>
+<stop offset="0.2239" style="stop-color:#FAD337"/>
+<stop offset="0.6537" style="stop-color:#EFAB26"/>
+<stop offset="1" style="stop-color:#E48717"/>
+</linearGradient>
+<path d="M11.32,11.762h2.06v-1.234h-2.06V11.762z M11.32,9.703h2.06V8.469h-2.06V9.703z M11.32,6.408v1.236 h2.06V6.408H11.32z" fill="url(#SVGID_2_)"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/image/qgn_prop_phone_memc.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="16px" version="1.1" viewBox="0 0 16 16" width="16px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<polygon fill="none" points="16,16 0.008,16 0,0 15.992,0 "/>
+<path d="M5,0C3.897,0,3,0.896,3,2v11c0,1.104,0.897,2,2,2h6 c1.104,0,2-0.896,2-2V2c0-1.104-0.896-2-2-2H5z" fill="#030303" fill-opacity="0.7" stroke-opacity="0.7"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="7.8623" x2="7.8623" y1="15.2266" y2="-1.9516">
+<stop offset="0" style="stop-color:#3687FF"/>
+<stop offset="1" style="stop-color:#051F7D"/>
+</linearGradient>
+<path d="M5,1C4.448,1,4,1.447,4,2v11c0,0.553,0.448,1,1,1h6c0.553,0,1-0.447,1-1V2c0-0.553-0.447-1-1-1H5z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="7.8623" x2="7.8623" y1="15.9453" y2="-0.4995">
+<stop offset="0" style="stop-color:#F2F2F2"/>
+<stop offset="0.1364" style="stop-color:#E4EDF0"/>
+<stop offset="0.3929" style="stop-color:#C0DFEB"/>
+<stop offset="0.7391" style="stop-color:#86C8E3"/>
+<stop offset="0.9945" style="stop-color:#57B6DD"/>
+<stop offset="1" style="stop-color:#57B6DD"/>
+</linearGradient>
+<rect fill="url(#SVGID_2_)" height="8" width="6" x="5" y="2"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="7.8623" x2="7.8623" y1="3.8335" y2="1.8335">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#B2B2B2"/>
+</linearGradient>
+<rect fill="url(#SVGID_3_)" height="2" width="2" x="7" y="11"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/image/qgn_prop_usb_memc.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="16px" version="1.1" viewBox="0 0 16 16" width="16px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<path d="M16,4h-4V3H2.769C1.24,3,0,5.239,0,8c0,2.762,1.24,5,2.769,5H12 v-1h4V4z" fill="#030303" fill-opacity="0.7" stroke-opacity="0.7"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="13.8613" x2="13.8613" y1="9.834" y2="5.9063">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#B2B2C9"/>
+</linearGradient>
+<rect fill="url(#SVGID_1_)" height="2" width="2" x="13" y="5"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="13.8613" x2="13.8613" y1="5.8335" y2="1.9049">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#B2B2C9"/>
+</linearGradient>
+<rect fill="url(#SVGID_2_)" height="2" width="2" x="13" y="9"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="5.8623" x2="5.8623" y1="10.834" y2="-4.8804">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#B2B2C9"/>
+</linearGradient>
+<path d="M2.818,4C1.959,4,1,5.71,1,8c0,2.289,0.959,4,1.818,4H11V4H2.818z" fill="url(#SVGID_3_)"/>
+<linearGradient gradientTransform="matrix(1 0 0 -1 0.1377 14.834)" gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="5.7031" x2="5.7031" y1="9.6699" y2="3.834">
+<stop offset="0" style="stop-color:#5487E3"/>
+<stop offset="1" style="stop-color:#051F7D"/>
+</linearGradient>
+<path d="M8.445,8.869V8.376H5.513l1.219,1.836h0.517V9.854H8.45V11H7.249v-0.252h-0.65L4.856,8.376h-1.33 c-0.097,0.369-0.396,0.64-0.747,0.64C2.348,9.016,2,8.616,2,8.122C2,7.63,2.348,7.229,2.777,7.229c0.347,0,0.638,0.256,0.741,0.609 h0.599l1.582-2.275l0.96-0.015C6.757,5.32,6.961,5.165,7.194,5.165c0.501,0,0.702,0.309,0.702,0.688 c0,0.381-0.189,0.688-0.702,0.689c-0.26,0-0.48-0.194-0.564-0.459H6.027l-1.25,1.754h3.667V7.226l1.238,0.823L8.445,8.869z" fill="url(#SVGID_4_)"/>
+<rect fill="none" height="16" width="16"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/image/qtg_indi_status_back.svg Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="36px" height="36px" viewBox="0 0 36 36" enable-background="new 0 0 36 36" xml:space="preserve">
+<defs>
+</defs>
+<path fill="#FFFFFF" d="M2.631,9.923l9.245-7.078c0.286-0.164,0.637-0.164,0.923,0c0.285,0.166,0.461,0.471,0.461,0.801v4.633h7.069
+ c7.455,0.001,13.498,5.043,13.501,12.498c-0.003,7.459-6.046,12.498-13.501,12.502c0,0-0.604,0-1.207,0s-1-0.473-1-1.129
+ c0-0.654,0-2.432,0-2.871s0.493-1.002,1-1.002s2.207,0,2.207,0c4.137-0.008,7.492-3.361,7.499-7.5
+ c-0.007-4.139-3.362-7.493-7.499-7.5H13.26V17.8c0,0.33-0.176,0.635-0.461,0.799c-0.286,0.164-0.637,0.166-0.923,0l-9.245-7.078
+ c-0.285-0.164-0.461-0.469-0.461-0.799C2.17,10.394,2.346,10.089,2.631,9.923z"/>
+<rect fill-rule="evenodd" clip-rule="evenodd" fill="none" width="36" height="36"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/src/fmfiledialog.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,206 @@
+/*
+* 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 "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:
+* The source file of the file dialog
+*
+*/
+
+#include "fmfiledialog.h"
+#include "fmfiledialog_p.h"
+#include "fmfilewidget.h"
+#include "fmlogger.h"
+#include "fmutils.h"
+#include "fmdrivemodel.h"
+#include "fmcommon.h"
+
+#include "hbwidget.h"
+#include "hblabel.h"
+#include "hbaction.h"
+#include "hbpushbutton.h"
+#include "hblineedit.h"
+
+#include <QGraphicsLinearLayout>
+#include <QEventLoop>
+
+FmFileDialog::FmFileDialog( QGraphicsItem *parent ) :
+ HbDialog( parent ), d_ptr( new FmFileDialogPrivate( this ) )
+{
+}
+
+FmFileDialog::~FmFileDialog()
+{
+ delete d_ptr;
+}
+
+QString FmFileDialog::getExistingDirectory( HbWidget *parent,
+ const QString &title,
+ const QString &dir,
+ const QStringList &nameFilters,
+ Options options )
+{
+
+ QString ret;
+
+ FmFileDialogPrivate::FmFileDialogArgs args;
+ args.mDialogMode = FmFileDialogPrivate::GetDirMode;
+ args.mTitle = title;
+ args.mDirectory = dir;
+ if( options & DisplayAllDirs ) {
+ args.mDirFilters = QDir::AllDirs | QDir::NoDotAndDotDot;
+ } else {
+ args.mDirFilters = QDir::Dirs | QDir::NoDotAndDotDot;
+ }
+ args.mNameFilters = nameFilters;
+ args.mOptions = options;
+
+ FmFileDialog dialog( parent );
+ dialog.d_ptr->init( args );
+ if( dialog.exec() ) {
+ ret = FmUtils::formatPath( dialog.d_ptr->currentPath() );
+ }
+ return ret;
+}
+
+QString FmFileDialog::getOpenFileName( HbWidget *parent,
+ const QString &title,
+ const QString &dir,
+ const QStringList &nameFilters,
+ Options options )
+{
+
+ QString ret;
+
+ FmFileDialogPrivate::FmFileDialogArgs args;
+ args.mDialogMode = FmFileDialogPrivate::GetFileMode;
+ args.mTitle = title;
+ args.mDirectory = dir;
+ if( options & DisplayAllDirs ) {
+ args.mDirFilters = QDir::AllDirs | QDir::NoDotAndDotDot | QDir::Files;
+ } else {
+ args.mDirFilters = QDir::Dirs | QDir::NoDotAndDotDot | QDir::Files;
+ }
+ args.mNameFilters = nameFilters;
+ args.mOptions = options;
+
+ FmFileDialog dialog( parent );
+ dialog.d_ptr->init( args );
+ if( dialog.exec() ) {
+ ret = FmUtils::formatPath( dialog.d_ptr->currentPath() )
+ + dialog.d_ptr->selectedFile();
+ }
+ return ret;
+}
+
+
+QString FmFileDialog::getSaveFileName( HbWidget * parent,
+ const QString &title,
+ const QString &dir,
+ const QStringList &nameFilters,
+ Options options )
+{
+ QString ret;
+
+ FmFileDialogPrivate::FmFileDialogArgs args;
+ args.mDialogMode = FmFileDialogPrivate::SaveFileMode;
+ args.mTitle = title;
+ args.mDirectory = dir;
+ if( options & DisplayAllDirs ) {
+ args.mDirFilters = QDir::AllDirs | QDir::NoDotAndDotDot | QDir::Files;
+ } else {
+ args.mDirFilters = QDir::Dirs | QDir::NoDotAndDotDot | QDir::Files;
+ }
+ args.mNameFilters = nameFilters;
+ args.mOptions = options;
+
+ FmFileDialog dialog( parent );
+ dialog.d_ptr->init( args );
+ if( dialog.exec() ) {
+ ret = FmUtils::formatPath( dialog.d_ptr->currentPath() )
+ + dialog.d_ptr->selectedFile();
+ }
+ return ret;
+}
+
+
+
+bool FmFileDialog::exec()
+{
+ HbDialog::open( this, SLOT(dialogClosed(HbAction*)) );
+ d_ptr->eventLoop().exec();
+
+ if ( d_ptr->isOkAction( d_ptr->retAction() ) ) {
+ return true;
+ } else {
+ return false ;
+ }
+}
+
+void FmFileDialog::dialogClosed(HbAction *action)
+{
+ d_ptr->setRetAction( action );
+ d_ptr->eventLoop().exit();
+}
+
+
+HbAction *FmFileDialog::primaryAction() const
+{
+ QList<QAction *> actionList = QGraphicsWidget::actions();
+ if (actionList.size() > 0) {
+ return (HbAction *)(actionList.at(0));
+ } else {
+ return 0;
+ }
+
+}
+
+void FmFileDialog::setPrimaryAction( HbAction *action )
+{
+ QList<QAction *> actionList = QGraphicsWidget::actions();
+ if (actionList.size() == 0) {
+ QGraphicsWidget::addAction(action);
+ } else if (actionList.size() == 1) {
+ actionList.clear();
+ QGraphicsWidget::addAction(action);
+ } else if (actionList.size() == 2) {
+ actionList.removeAt(0);
+ actionList.insert(0, action);
+ }
+}
+
+HbAction *FmFileDialog::secondaryAction() const
+{
+ QList<QAction *> actionList = QGraphicsWidget::actions();
+ if (actionList.size() > 1) {
+ return (HbAction *)(actionList.at(1));
+ } else {
+ return 0;
+ }
+}
+
+void FmFileDialog::setSecondaryAction( HbAction *action )
+{
+ QList<QAction *> actionList = QGraphicsWidget::actions();
+ if (actionList.size() == 0) {
+ QGraphicsWidget::addAction(new HbAction(hbTrId("Ok")));
+ QGraphicsWidget::addAction(action);
+ } else if (actionList.size() == 1) {
+ QGraphicsWidget::addAction(action);
+ } else if (actionList.size() == 2) {
+ actionList.removeAt(1);
+ actionList.insert(1, action);
+ }
+
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/src/fmfiledialog_p.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,388 @@
+/*
+* 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 "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:
+* The source file of the file dialog implement
+*
+*/
+
+#include "fmfiledialog_p.h"
+#include "fmfilewidget.h"
+#include "fmcommon.h"
+
+#include "hbfontspec.h"
+#include <hbaction.h>
+#include <hbpushbutton.h>
+#include <hblabel.h>
+#include <hblineedit.h>
+#include <QGraphicsLinearLayout>
+
+#define backButtonIcon ":image/qtg_indi_status_back.svg"
+
+/*!
+ constructor
+*/
+FmFileDialogPrivate::FmFileDialogPrivate( FmFileDialog *fileDialog ) :
+ mFileDialog( fileDialog ),
+ mHeadingWidget( 0 ),
+ mCurrentPathLabel( 0 ),
+ mUpButton( 0 ),
+ mTitleLabel( 0 ),
+ mContentWidget( 0 ),
+ mContentLayout( 0 ),
+ mFileWidget( 0 ),
+ mOkAction( 0 ),
+ mCancelAction( 0 ),
+ mFileNameTitleLabel( 0 ),
+ mFileNameLineEdit( 0 )
+{
+ }
+
+/*!
+ destructor
+*/
+FmFileDialogPrivate::~FmFileDialogPrivate()
+{
+
+}
+
+/*!
+ init
+ \param directory .
+*/
+void FmFileDialogPrivate::init( const FmFileDialogArgs &args )
+{
+ mArgs = args;
+ setProperties();
+ createHeadingWidget();
+ createContentWidget();
+ createBottomWidget();
+
+ if( !mFileDialog->primaryAction() && !mFileDialog->secondaryAction() ) {
+ createAndSetActions(mFileDialog->tr("Ok"),mFileDialog->tr("Cancel"));
+ }
+
+ makeConnections();
+ setRootPath( mArgs.mDirectory );
+ mFileWidget->setModelFilter( mArgs.mDirFilters );
+ mFileWidget->setNameFilters( mArgs.mNameFilters );
+}
+
+/*!
+ createAndSetActions
+
+ \param primaryActionText
+ secondaryActionText
+*/
+void FmFileDialogPrivate::createAndSetActions(const QString & primaryActionText,
+ const QString & secondaryActionText)
+{
+ // Create action for ok button and assign it to the primary action of popup
+ mOkAction = new HbAction( primaryActionText, mFileDialog );
+ mOkAction->setObjectName( "okAction" );
+ Q_ASSERT( mOkAction );
+ mFileDialog->setPrimaryAction( mOkAction );
+
+ // Create action for cancel button and assign it to the secondary action of popup
+ mCancelAction = new HbAction( secondaryActionText, mFileDialog );
+ mCancelAction->setObjectName( "cancelAction" );
+ Q_ASSERT( mCancelAction );
+ mFileDialog->setSecondaryAction( mCancelAction );
+}
+
+/*!
+ setProperties
+ sets the properties of the file dialog like timeout,
+ Dismiss policy,modal etc.
+*/
+void FmFileDialogPrivate::setProperties()
+{
+ // set the file dialog as Modal.
+ mFileDialog->setModal(true);
+
+ // no dismiss for File dialog.
+ mFileDialog->setDismissPolicy( HbPopup::NoDismiss );
+
+ // File dialog will not time out.
+ mFileDialog->setTimeout( HbPopup::NoTimeout );
+}
+
+/*!
+ makeConnections
+*/
+void FmFileDialogPrivate::makeConnections()
+{
+ mFileDialog->connect( mUpButton,SIGNAL( clicked() ),
+ mFileDialog, SLOT( _q_handleUpButton() ) );
+
+ if( mFileNameLineEdit ) {
+ mFileDialog->connect( mFileNameLineEdit, SIGNAL( textChanged( QString ) ),
+ mFileDialog, SLOT( _q_handleTextChanged( QString ) ) );
+ }
+
+ mFileDialog->connect( mFileWidget, SIGNAL( pathChanged( QString ) ),
+ mFileDialog, SLOT( _q_handlePathChanged( QString ) ) );
+
+ mFileDialog->connect( mFileWidget, SIGNAL( fileActivated( QString ) ),
+ mFileDialog, SLOT( _q_handleFileActivated( QString ) ) );
+}
+
+/*!
+ creates the heading wiget elements that include
+ a label for showing the current path and a push button for
+ going to the parent directory.
+*/
+void FmFileDialogPrivate::createHeadingWidget()
+{
+ mHeadingWidget = new HbWidget( mFileDialog );
+ mHeadingWidget->setObjectName( "headingWidget" );
+
+ QGraphicsLinearLayout *headingLayout = new QGraphicsLinearLayout;
+ headingLayout->setOrientation(Qt::Horizontal);
+ mHeadingWidget->setLayout(headingLayout);
+
+
+ QGraphicsLinearLayout *titleLayout = new QGraphicsLinearLayout;
+ titleLayout->setOrientation(Qt::Vertical);
+
+ mTitleLabel = new HbLabel();
+ mTitleLabel->setObjectName( "titleLabel" );
+ if( mArgs.mTitle.isEmpty() ){
+ mTitleLabel->setPlainText( QString( FmPlaceholderString ) );
+ } else {
+ mTitleLabel->setPlainText( mArgs.mTitle );
+ }
+
+ mCurrentPathLabel = new HbLabel( QString( FmPlaceholderString ) );
+ mCurrentPathLabel->setObjectName( "currentPathLabel" );
+ mCurrentPathLabel->setElideMode(Qt::ElideRight);
+
+ mUpButton = new HbPushButton;
+ mUpButton->setObjectName( "upButton" );
+ mUpButton->setIcon(HbIcon(backButtonIcon));
+
+ titleLayout->addItem( mTitleLabel );
+ titleLayout->setAlignment( mTitleLabel, Qt::AlignLeft);
+
+ titleLayout->addItem( mCurrentPathLabel );
+ titleLayout->setAlignment( mCurrentPathLabel, Qt::AlignLeft);
+
+ headingLayout->addItem(titleLayout);
+ headingLayout->addItem( mUpButton ) ;
+ headingLayout->setAlignment(mUpButton,Qt::AlignRight);
+
+ mFileDialog->setHeadingWidget( mHeadingWidget );
+}
+
+/*!
+ Creates the content widget. It includes the listview and model.
+
+*/
+
+void FmFileDialogPrivate::createContentWidget()
+{
+ mContentWidget = new HbWidget( mFileDialog );
+ mContentWidget->setObjectName( "contentWidget" );
+
+ mContentLayout = new QGraphicsLinearLayout;
+ mContentLayout->setOrientation(Qt::Vertical);
+
+ mContentWidget->setLayout( mContentLayout );
+
+ mFileWidget = new FmFileWidget( mContentWidget );
+ mFileWidget->setObjectName( "fileWidget" );
+ mContentLayout->addItem( mFileWidget );
+
+ mFileDialog->setContentWidget( mContentWidget );
+}
+
+/*!
+ Creates the content widget. It includes the listview and model.
+
+*/
+
+void FmFileDialogPrivate::createBottomWidget()
+{
+ if( mArgs.mDialogMode == GetDirMode ) {
+ return;
+ }
+ HbWidget *bottomWidget = new HbWidget( mContentWidget );
+ bottomWidget->setObjectName( "bottomWidget" );
+ mContentLayout->addItem( bottomWidget );
+
+ QGraphicsLinearLayout *bottomLayout = new QGraphicsLinearLayout;
+ bottomLayout->setOrientation( Qt::Horizontal );
+
+ mFileNameTitleLabel = new HbLabel( mFileDialog->tr( "file name:" ), bottomWidget );
+ mFileNameTitleLabel->setObjectName( "fileNameTitleLabel" );
+ bottomLayout->addItem( mFileNameTitleLabel );
+
+ mFileNameLineEdit = new HbLineEdit( bottomWidget );
+ mFileNameLineEdit->setObjectName( "fileNameLineEdit" );
+ bottomLayout->addItem( mFileNameLineEdit );
+
+ bottomWidget->setLayout( bottomLayout );
+
+}
+
+void FmFileDialogPrivate::checkUpButton()
+{
+ QString currentPath = mFileWidget->currentPath().absoluteFilePath();
+ bool isPreventDirUp = mArgs.mOptions & FmFileDialog::PreventDirUp;
+
+ if( mFileWidget->currentViewType() == FmFileWidget::DirView ) {
+ if( isPreventDirUp &&
+ mArgs.mDirectory.contains( currentPath, Qt::CaseInsensitive ) ) {
+ // disable up when client lock top leve folder
+ mUpButton->setEnabled( false );
+ } else {
+ mUpButton->setEnabled( true );
+ }
+ } else {
+ // disable up button when at drive view
+ mUpButton->setEnabled( false );
+ }
+}
+
+void FmFileDialogPrivate::checkBottomFileWidget()
+{
+ switch( mArgs.mDialogMode )
+ {
+ case GetDirMode:
+ break;
+ case GetFileMode:
+ if( mFileNameLineEdit ){
+ mFileNameLineEdit->setReadOnly( true );
+ }
+ break;
+ case SaveFileMode:
+ if( mFileNameLineEdit ){
+ if( mFileWidget->currentPath().absoluteFilePath().isEmpty() ) {
+ mFileNameLineEdit->setReadOnly( true );
+ } else {
+ mFileNameLineEdit->setReadOnly( false );
+ }
+ }
+ break;
+ }
+}
+
+void FmFileDialogPrivate::checkActions()
+{
+ switch( mArgs.mDialogMode )
+ {
+ case GetDirMode:
+ if( mFileWidget->currentPath().absoluteFilePath().isEmpty() ) {
+ mOkAction->setDisabled( true );
+ } else {
+ mOkAction->setDisabled( false );
+ }
+ break;
+ case GetFileMode:
+ case SaveFileMode:
+ if( mFileWidget->currentPath().absoluteFilePath().isEmpty() ||
+ ( mFileNameLineEdit && mFileNameLineEdit->text().isEmpty() ) ) {
+ mOkAction->setDisabled( true );
+ } else {
+ mOkAction->setDisabled( false );
+ }
+ break;
+ default:
+ Q_ASSERT( false );
+ }
+}
+
+void FmFileDialogPrivate::_q_handleUpButton()
+{
+ bool isPreventDirUp = mArgs.mOptions & FmFileDialog::PreventDirUp;
+ QString currentPath = mFileWidget->currentPath().absoluteFilePath();
+ if( isPreventDirUp &&
+ mArgs.mDirectory.contains( currentPath, Qt::CaseInsensitive ) ) {
+ return;
+ } else {
+ mFileWidget->cdUp();
+ }
+}
+
+void FmFileDialogPrivate::_q_handleTextChanged(const QString &text)
+{
+ Q_UNUSED( text );
+ checkActions();
+}
+
+void FmFileDialogPrivate::_q_handlePathChanged( const QString &path )
+{
+ if( path.isEmpty() ) {
+ mCurrentPathLabel->setPlainText( QString( FmPlaceholderString ) );
+ } else {
+ mCurrentPathLabel->setPlainText( path );
+ }
+
+ if( mFileNameLineEdit && mArgs.mDialogMode == GetFileMode ) {
+ mFileNameLineEdit->setText( QString() );
+ }
+
+ checkUpButton();
+ checkBottomFileWidget();
+ checkActions();
+}
+
+void FmFileDialogPrivate::_q_handleFileActivated( const QString &path )
+{
+ if( mFileNameLineEdit ) {
+ mFileNameLineEdit->setText( path );
+ }
+ checkActions();
+}
+
+QString FmFileDialogPrivate::currentPath() const
+{
+ return mFileWidget->currentPath().absoluteFilePath();
+}
+
+QString FmFileDialogPrivate::selectedFile() const
+{
+ return mFileNameLineEdit->text();
+}
+
+void FmFileDialogPrivate::setRootPath( const QString &pathName )
+{
+ mFileWidget->setRootPath( pathName );
+}
+
+bool FmFileDialogPrivate::isOkAction( HbAction *action )
+{
+ if( mOkAction == action ) {
+ return true;
+ }
+
+ return false;
+}
+
+void FmFileDialogPrivate::setRetAction( HbAction *action )
+{
+ mRetAction = action;
+}
+
+HbAction *FmFileDialogPrivate::retAction()
+{
+ return mRetAction;
+}
+
+QEventLoop &FmFileDialogPrivate::eventLoop()
+{
+ return mEventLoop;
+}
+
+#include "moc_fmfiledialog.cpp"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/src/fmfiledialog_p.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,125 @@
+/*
+* 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 "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:
+* The header file of the file dialog implement
+*
+*/
+
+#ifndef FMFILEDIALOG_P_H
+#define FMFILEDIALOG_P_H
+
+#include "fmfiledialog.h"
+
+#include <QDir>
+#include <QEventLoop>
+
+class HbPushButton;
+class FmFileWidget;
+class HbLineEdit;
+class HbLabel;
+class HbWidget;
+class HbLabel;
+class HbPushButton;
+class QGraphicsLinearLayout;
+
+class FmFileDialogPrivate
+{
+public:
+ enum DialogCode {
+ Accepted,
+ Canceled
+ };
+
+ enum DialogMode {
+ GetDirMode,
+ GetFileMode,
+ SaveFileMode
+ };
+
+ struct FmFileDialogArgs
+ {
+ FmFileDialogPrivate::DialogMode mDialogMode;
+ QString mTitle;
+ QString mDirectory;
+ QDir::Filters mDirFilters;
+ QStringList mNameFilters;
+ FmFileDialog::Options mOptions;
+ };
+
+ FmFileDialogPrivate( FmFileDialog *fileDialog );
+ ~FmFileDialogPrivate();
+
+ void init( const FmFileDialogArgs &args );
+
+ QString currentPath() const;
+ QString selectedFile() const;
+ bool isOkAction( HbAction *action );
+
+ void setRetAction( HbAction *action );
+ HbAction *retAction();
+ QEventLoop &eventLoop();
+
+protected:
+ void createAndSetActions(const QString & primaryActionText,const QString & secondaryActionText);
+ void createContentWidget();
+ void createHeadingWidget();
+ void populateContentWidget(const QString & directory);
+ void createBottomWidget();
+ void setProperties();
+ void makeConnections();
+
+ void initBottomFileWidget();
+ void checkUpButton();
+ void checkBottomFileWidget();
+ void checkActions();
+
+ void setTitle( const QString &str );
+ void setRootPath( const QString &pathName );
+
+public:
+ void _q_handleUpButton();
+ void _q_handleTextChanged(const QString &text);
+ void _q_handlePathChanged( const QString &path );
+ void _q_handleFileActivated( const QString &path );
+
+private:
+ FmFileDialog *mFileDialog;
+
+ HbWidget *mHeadingWidget;
+ HbLabel *mCurrentPathLabel;
+ HbPushButton *mUpButton;
+ HbLabel *mTitleLabel;
+ HbWidget *mContentWidget;
+ QGraphicsLinearLayout *mContentLayout;
+ FmFileWidget *mFileWidget;
+
+ HbAction *mOkAction;
+ HbAction *mCancelAction;
+
+ QString mDirectory;
+ QString mTitleValue;
+ QStringList mFilterList;
+
+ HbLabel *mFileNameTitleLabel;
+ HbLineEdit *mFileNameLineEdit;
+
+ QString mCaptionHead;
+ FmFileDialogArgs mArgs;
+
+ HbAction *mRetAction;
+ QEventLoop mEventLoop;
+};
+
+#endif // FMFILEDIALOG_P_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/src/fmfilewidget.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,251 @@
+/*
+* 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 "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:
+* The source file of the file widget
+*
+*/
+#include "fmfilewidget.h"
+#include "fmutils.h"
+#include "fmdrivemodel.h"
+#include "fmdrivewatcher.h"
+#include "fmcommon.h"
+#include "fmfileiconprovider.h"
+
+#include "hbstyle.h"
+#include "hbabstractitemview.h"
+#include <hblistview.h>
+
+#include <QModelIndex>
+#include <QGraphicsLinearLayout>
+#include <QFileSystemModel>
+#include <QTime>
+#include <QFileInfo>
+
+
+
+
+FmFileWidget::FmFileWidget( HbWidget *parent ) :
+ HbWidget( parent ), mCurrentModel( 0 )
+{
+ init();
+}
+FmFileWidget::~FmFileWidget()
+{
+ setModel( 0 );
+ delete mFileSystemModel;
+ delete mFileIconProvider;
+ delete mDriveModel;
+
+ mDriveWatcher->cancelWatch();
+ delete mDriveWatcher;
+ mDriveWatcher = 0;
+}
+
+QFileInfo FmFileWidget::currentPath() const
+{
+ QModelIndex index( mListView->rootIndex() );
+ if( !index.isValid() ) {
+ return QFileInfo();
+ }
+ if( mCurrentModel == mFileSystemModel ) {
+ return mFileSystemModel->fileInfo( index );
+ } else {
+ return QFileInfo();
+ }
+}
+
+void FmFileWidget::setRootPath( const QString &pathName )
+{
+ FM_LOG( "FmFileWidget::setRootPath start" );
+ // If path is empty or can not access, set model as DriveModel
+ // Otherwise set model as FileSystemModel, means it will return to drive view if error occur.
+ if( ( pathName.isEmpty() ) || ( FmErrNone != FmUtils::isPathAccessabel( pathName ) ) ) {
+ FM_LOG( "FmFileWidget::setRootPath set drive model" );
+ setModel( mDriveModel );
+ FM_LOG( "FmFileWidget::setRootPath set drive model end" );
+ emit pathChanged( QString() );
+ } else {
+ FM_LOG( "FmFileWidget::setRootPath set dir model end" );
+ setModel( mFileSystemModel );
+ FM_LOG( "FmFileWidget::setRootPath set dir model end" );
+ mListView->setRootIndex( mFileSystemModel->setRootPath( pathName ) );
+ FM_LOG( "FmFileWidget::setRootPath set rootIndex" );
+ emit pathChanged( pathName );
+ }
+ FM_LOG( "FmFileWidget::setRootPath end" );
+}
+void FmFileWidget::on_list_activated( const QModelIndex &index )
+ {
+ mActivatedModelIndex = index;
+ emit listActivated();
+ }
+
+void FmFileWidget::on_listActivated()
+{
+ FM_LOG("FmFileWidget::on_list_activated start" );
+ if( mCurrentModel == mDriveModel ) {
+ //If current model is DriveModel, open drive and set path
+ QString driveName = mDriveModel->driveName( mActivatedModelIndex );
+ QString checkedPath = FmUtils::checkDriveToFolderFilter( driveName );
+ if( checkedPath.isEmpty() ) {
+ FM_LOG("FmFileWidget::on_list_activated end becaise checkedpath empty" );
+ return;
+ }
+
+ FM_LOG("FmFileWidget::on_list_activated setModel dir start" );
+ setModel( mFileSystemModel );
+ FM_LOG("FmFileWidget::on_list_activated setModel dir end" );
+ setRootPath( checkedPath );
+ FM_LOG("FmFileWidget::on_list_activated setRootIndex" );
+ emit pathChanged( checkedPath );
+ FM_LOG("FmFileWidget::on_list_activated finish emit pathChanged" );
+ }
+ else if( mCurrentModel == mFileSystemModel ) {
+ //If current model is FileSystemModel, open path or emit file activate signal.
+ if ( mFileSystemModel->isDir( mActivatedModelIndex ) ) {
+ FM_LOG("FmFileWidget::on_list_activated start changeRootIndex" );
+ changeRootIndex( mActivatedModelIndex );
+ FM_LOG("FmFileWidget::on_list_activated finish changeRootIndex" );
+ } else {
+ QFileInfo fileInfo( mFileSystemModel->filePath( mActivatedModelIndex ) );
+ if( fileInfo.isFile() ) {
+ emit fileActivated( fileInfo.fileName() );
+ FM_LOG("FmFileWidget::on_list_activated finish emit fileActivated" );
+ }
+ }
+ } else {
+ Q_ASSERT( false );
+ }
+ FM_LOG("FmFileWidget::on_list_activated end" );
+}
+
+void FmFileWidget::setModelFilter( QDir::Filters filters )
+{
+ mFileSystemModel->setFilter( filters );
+}
+
+void FmFileWidget::setNameFilters( const QStringList &nameFilters )
+{
+ mFileSystemModel->setNameFilters( nameFilters );
+}
+
+void FmFileWidget::changeRootIndex( const QModelIndex &index )
+{
+ FM_LOG("FmFileWidget::changeRootIndex start" );
+ if( mCurrentModel != mFileSystemModel ) {
+ FM_LOG("FmFileWidget::changeRootIndex end because model not equal mFileSystemModel" );
+ return;
+ }
+
+ mFileSystemModel->fetchMore(index);
+ QString filePath = mFileSystemModel->fileInfo( index ).absoluteFilePath();
+ // pathChanged signal will be emitted in setRootPath
+ setRootPath( filePath );
+ FM_LOG("FmFileWidget::changeRootIndex end" );
+}
+
+void FmFileWidget::init()
+{
+ mLayout = new QGraphicsLinearLayout( this );
+ mLayout->setOrientation( Qt::Vertical );
+ setLayout( mLayout );
+
+ mListView = new HbListView( this );
+ mListView->setObjectName( "list" );
+ mLayout->addItem( mListView );
+
+ mDriveModel = new FmDriveModel( this,
+ FmDriveModel::FillWithVolume | FmDriveModel::FillWithDefaultVolume | FmDriveModel::HideUnAvailableDrive );
+
+ qDebug( QTime::currentTime().toString().toUtf8().data() );
+ mFileSystemModel = new QFileSystemModel( this );
+ mFileIconProvider = new FmFileIconProvider();
+ mFileSystemModel->setIconProvider( mFileIconProvider );
+ qDebug("constructed mFileSystemModel");
+
+ qDebug( QTime::currentTime().toString().toUtf8().data() );
+ setModel( mDriveModel );
+ qDebug("setmodel");
+ qDebug( QTime::currentTime().toString().toUtf8().data() );
+
+ mDriveWatcher = new FmDriveWatcher( this );
+ mDriveWatcher->setObjectName( "driveWatcher" );
+ mDriveWatcher->startWatch();
+
+// QMetaObject::connectSlotsByName( this );
+ connect( mListView, SIGNAL( activated( QModelIndex ) ),
+ this, SLOT( on_list_activated( QModelIndex ) ) );
+ connect( this, SIGNAL( listActivated() ),
+ this, SLOT( on_listActivated() ), Qt::QueuedConnection );
+
+ connect( mDriveWatcher, SIGNAL( driveAddedOrChanged() ),
+ this, SLOT( on_driveWatcher_driveAddedOrChanged() ) );
+
+
+}
+
+void FmFileWidget::setModel( QAbstractItemModel *model )
+{
+ mListView->setModel( model );
+ mCurrentModel = model;
+}
+
+FmFileWidget::ViewType FmFileWidget::currentViewType()
+{
+ ViewType viewType = DriveView;
+ if( mCurrentModel == mDriveModel ) {
+ viewType = DriveView;
+ } else if( mCurrentModel == mFileSystemModel ) {
+ viewType = DirView;
+ } else {
+ Q_ASSERT( false );
+ }
+ return viewType;
+}
+
+
+bool FmFileWidget::cdUp()
+{
+ QString path( FmUtils::checkFolderToDriveFilter( currentPath().absoluteFilePath() ) );
+ QFileInfo fileInfo( path );
+ QString cdUpPath;
+ // path length>3 means current path is a sub folder, then get up level path and navigate to it
+ // Otherwise means current path is a top level drive path, Should navigate to drive view. So setRootPath with empty path string.
+ if( path.length() > 3 ) {
+ cdUpPath = fileInfo.dir().absolutePath();
+ }
+ setRootPath( FmUtils::fillPathWithSplash( cdUpPath ) );
+ return true;
+}
+
+void FmFileWidget::on_driveWatcher_driveAddedOrChanged()
+{
+ FM_LOG( QString( "FmFileDialog_FmFileWidget::on_driveWatcher_driveAddedOrChanged start" ) );
+ mDriveModel->refresh();
+ if( currentViewType() == DriveView ) {
+ setModel( 0 );
+ setModel( mDriveModel );
+ emit pathChanged( QString() );
+ } else if( currentViewType() == DirView ) {
+ if( FmErrNone != FmUtils::isPathAccessabel( currentPath().absoluteFilePath() ) ) {
+ // path not available, set model to drive
+ FM_LOG( QString( "FmFileDialog_FmFileWidget::on_driveWatcher_driveAddedOrChanged path not availeable, set drivemodel:"
+ + currentPath().absoluteFilePath() ) );
+ setModel( mDriveModel );
+ emit pathChanged( QString() );
+ }
+ }
+ FM_LOG( QString( "FmFileDialog_FmFileWidget::on_driveWatcher_driveAddedOrChanged end" ) );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmfiledialog/src/fmfilewidget.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,85 @@
+/*
+* 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 "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:
+* The header file of the file widget
+*
+*/
+#ifndef FMFILEWIDGET_H
+#define FMFILEWIDGET_H
+
+#include "hbwidget.h"
+#include <QFileInfo>
+#include <QDir>
+#include <QString>
+
+class QFileSystemModel;
+class FmDriveModel;
+class FmDriveWatcher;
+class HbListView;
+class QGraphicsLinearLayout;
+
+class FmFileIconProvider;
+
+class FmFileWidget : public HbWidget
+{
+Q_OBJECT
+public:
+ enum ViewType{
+ DirView,
+ DriveView
+ };
+
+ explicit FmFileWidget( HbWidget *parent = 0 );
+ ~FmFileWidget();
+
+ QFileInfo currentPath() const;
+
+ void setModelFilter( QDir::Filters filters );
+ void setNameFilters( const QStringList &nameFilters );
+ void setRootPath( const QString &pathName );
+
+ FmFileWidget::ViewType currentViewType();
+ bool cdUp();
+signals:
+ void pathChanged( const QString &path );
+ void fileActivated( const QString &path );
+ void listActivated();
+
+private slots:
+ void on_list_activated( const QModelIndex &index );
+ void on_listActivated();
+ void on_driveWatcher_driveAddedOrChanged();
+
+private:
+ void init();
+ void changeRootIndex( const QModelIndex &index );
+ void setModel( QAbstractItemModel *model );
+
+private:
+ HbListView *mListView;
+ QGraphicsLinearLayout *mLayout;
+ QFileSystemModel *mFileSystemModel;
+ FmDriveModel *mDriveModel;
+
+ QAbstractItemModel *mCurrentModel;
+ FmDriveWatcher *mDriveWatcher;
+
+ QModelIndex mActivatedModelIndex;
+
+ FmFileIconProvider *mFileIconProvider;
+
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/commoninc.pri Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,22 @@
+#
+# 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 "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:
+#
+
+INTERNAL_HEADERS += $$PWD/fmcommon.h \
+ $$PWD/fmlogger.h \
+ $$PWD/fmdefine.h
+
+HEADERS += $$INTERNAL_HEADERS
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/commonutils.pri Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,51 @@
+#
+# 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 "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:
+#
+
+INTERNAL_HEADERS += $$PWD/fmutils.h \
+ $$PWD/fmdrivemodel.h \
+ $$PWD/fmfileiconprovider.h \
+ $$PWD/fmdrivewatcher/fmdrivewatcher.h \
+ $$PWD/fmfiletyperecognizer.h
+
+INTERNAL_SOURCES += $$PWD/fmdrivemodel.cpp \
+ $$PWD/fmfileiconprovider.cpp \
+ $$PWD/fmdrivewatcher/fmdrivewatcher.cpp \
+ $$PWD/fmfiletyperecognizer.cpp \
+ $$PWD/fmutils.cpp
+
+symbian {
+ INTERNAL_HEADERS += $$PWD/fms60utils.h \
+ $$PWD/fmdrivewatcher/private/symbian/fmdrivewatcherprivate.h \
+ $$PWD/fmdrivewatcher/private/symbian/fmdriveevent.h
+
+ INTERNAL_SOURCES += $$PWD/fmutils_s60.cpp \
+ $$PWD/fms60utils.cpp \
+ $$PWD/fmdrivewatcher/private/symbian/fmdrivewatcherprivate.cpp \
+ $$PWD/fmdrivewatcher/private/symbian/fmdriveevent.cpp
+}
+win32 {
+ INCLUDEPATH += $$PWD/fmdrivewatcher/
+ INCLUDEPATH += $$PWD/fmdrivewatcher/private/win32/
+
+ INTERNAL_HEADERS += $$PWD/fmdrivewatcher/private/win32/fmdrivewatcherprivate.h
+
+ INTERNAL_SOURCES += $$PWD/fmutils_win.cpp \
+ $$PWD/fmdrivewatcher/private/win32/fmdrivewatcherprivate.cpp
+
+}
+
+HEADERS += $$INTERNAL_HEADERS
+SOURCES += $$INTERNAL_SOURCES
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmcommon.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,32 @@
+/*
+* 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 "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:
+* The header file of the file manager
+*/
+
+#ifndef FMCOMMON_H
+#define FMCOMMON_H
+
+// MACRO for enable actions for change orientation
+// #define FM_CHANGE_ORIENT_ENABLE
+
+// MACRO for enable debug log
+// #define _DEBUG_LOG_ENABLE_
+
+
+#include "fmlogger.h"
+#include "fmdefine.h"
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdefine.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* 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 "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:
+*
+*/
+#ifndef FMDEFINE_H
+#define FMDEFINE_H
+
+// define for filemanager error
+#define FmErrNone 0 // No Error
+#define FmErrNotFound -1 // General error for things requested is not found
+#define FmErrGeneral -2 // General error
+#define FmErrAlreadyExists -3 // General for already existed. for example if unlock a drive but it has already been unlocked
+#define FmErrAccessDenied -4 // General for Access is denied, for example, format a drive but access is denied.
+#define FmErrCannotRemove -5 // General error for can not performance remove
+#define FmErrCannotCopy -6 // General error for can not performance copy
+#define FmErrDiskFull -7 // Error for disk is full
+#define FmErrFileUsed -8 // Error for file is in use
+#define FmErrFolderUsed -9 // Error for folder is in use
+#define FmErrTypeFormatFailed -10 // Error reported when format failed
+#define FmErrTypeFormatFailedUsed -11 // Error reported when user try to format a drive but it is in use
+#define FmErrAlreadyStarted -12 // General error for operation is already started
+#define FmErrCancel -13 // General error for operation canceled
+#define FmErrWrongParam -14 // General error for wrong parameter
+#define FmErrUnKnown -15 // Unknown error
+#define FmErrIsNotFileOrFolder -16 // Error for a path which is not a fild or folder.
+#define FmErrCannotMakeDir -17 // Error for can not create directory.
+#define FmErrSrcPathDoNotExist -18 // Error for source path is not exist.
+#define FmErrDestPathDoNotExist -19 // Error for destination path is not exist.
+#define FmErrCopyDestToSubFolderInSrc -20 // If user try to copy a folder to its sub folder, error will occur
+#define FmErrMoveDestToSubFolderInSrc -21 // If user try to move a folder to its sub folder, error will occur
+#define FmErrNotSupported -22 // feature not supported, for example, lock an drive which can not be locked
+#define FmErrNotReady -23 // Error when drive is not ready( means drive is not present )
+#define FmErrInUse -24 // Error for drive is in use.
+#define FmErrPermissionDenied -25 // Permission Denied
+#define FmErrBadName -26 // Bad Drive or file/folder name, currently used when rename drive
+#define FmErrPathNotFound -27 // Error for path is not found
+#define FmErrRemoveDefaultFolder -28 // Error when user try to remove default folder, such as C:/data/images...
+#define FmErrLocked -29 // Disk is locked
+#define FmErrCorrupt -30 // Disk is corrupt
+#define FmErrDisMounted -31 // e.g. If disk dis mounted while backuping.
+#define FmErrDriveNotAvailable -32 // e.g. if user want to access MMC but it is not available
+#define FmErrPathDenied -33 // if user want to access path but it is denied, e.g c:/private
+#define FmErrDriveDenied -34 // if user want to access drive but it is denied, e.g D:/
+#define FmErrPathNotExist -35 // path not existed.
+
+#define FmEstimateUpperLimit 90 // available mem/backup size*100%=90%, User selectable continuation
+#define FmEstimateLowerLimit 10 // available mem/backup size*100%=10%, Backup will be interrupted
+
+#define FmPlaceholderString " " // Placeholder for HbLabel because layout will be wrong when HbLabel is empty
+
+#define Drive_C ( QString( "C:" ) + QDir::separator() )
+#define Drive_D ( QString( "D:" ) + QDir::separator() )
+#define Drive_Z ( QString( "Z:" ) + QDir::separator() )
+#define Folder_C_Data ( QString( "C:" ) + QDir::separator() + QString( "Data" ) + QDir::separator() )
+
+// define contact data path for view details.
+#define FmViewDetail_Contacts ( "\\private\\10003a73\\SQLite__Contacts.cdb" )
+
+#define FmMaxLengthofDriveName 11
+#define FmMaxLengthofDrivePassword 8
+
+// used to match un-zeroLength string, empty character such as space is acceptable
+#define Regex_ValidUnZeroLength QString( "^.+$" )
+
+// used to match un-empty string, and is not totally empty characters.
+#define Regex_ValidUnEmpty QString( "^.*[^\\s].*$" )
+
+// this is regexp for valid file/folder name: no \/:*?"<>| and is not totally empty characters.
+// file name can not end with "." , but it is not include in this RegExp. It should be checked in Regex_ValidNotEndWithDot
+// this expression is composed by two expressions:
+// ^.*[^\\s].*$ used to match un-empty string and is not totally empty characters.
+// [^\\\\/:*?\"<>|] used to math valid file/folder name
+// merge the two regex together:
+// valid file/folder name and is not totally empty.
+#define Regex_ValidFileFolderName QString( "^[^\\\\/:*?\"<>|]*[^\\\\/:*?\"<>|\\s][^\\\\/:*?\"<>|]*$" )
+
+// is not end with dot( trim blank characters in the end first )
+#define Regex_ValidNotEndWithDot QString( "^.*[^\\.\\s][\\s]*$" )
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdrivemodel.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,175 @@
+/*
+* 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 "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:
+*
+*/
+
+#include "fmdrivemodel.h"
+#include "fmfileiconprovider.h"
+#include "fmutils.h"
+
+#include <QDir>
+#include <QFileInfo>
+
+#include <hbglobal.h>
+
+FmDriveModel::FmDriveModel( QObject *parent, Options options,
+ FmDriveListProvider *driveListProvider ) :
+ QAbstractListModel( parent ), mOptions( options ), mDriveListProvider( driveListProvider )
+{
+ mIconProvider = new FmFileIconProvider();
+ refresh();
+}
+
+FmDriveModel::~FmDriveModel()
+{
+ delete mIconProvider;
+}
+
+void FmDriveModel::refresh()
+{
+ emit layoutAboutToBeChanged();
+ mDriveList.clear();
+
+ // if mDriveListProvider existed, use it to fetch drive list
+ // otherwise use FmUtils::getDriveList to fetch drive list.
+ if( mDriveListProvider ) {
+ mDriveListProvider->getDriveList( mDriveList );
+ } else {
+ if( mOptions & HideUnAvailableDrive ) {
+ FM_LOG( QString( "FmDriveModel::refresh HideUnAvailableDrive_true" ) );
+ FmUtils::getDriveList( mDriveList, true );
+ } else {
+ FM_LOG( QString( "FmDriveModel::refresh HideUnAvailableDrive_false" ) );
+ FmUtils::getDriveList( mDriveList, false );
+ }
+ }
+
+ emit layoutChanged();
+ for( int i=0; i<mDriveList.count(); i++ ) {
+ emit dataChanged(index( i, 0 ), index( i, 0 ));
+ }
+}
+
+
+int FmDriveModel::rowCount( const QModelIndex &parent ) const
+{
+ if (!parent.isValid())
+ return mDriveList.size();
+
+ return 0;
+}
+
+int FmDriveModel::columnCount( const QModelIndex &parent ) const
+{
+ Q_UNUSED( parent );
+ return 1;
+}
+
+QVariant FmDriveModel::data( const QModelIndex &index, int role ) const
+{
+ if (!indexValid( index ))
+ return QVariant();
+
+ if (role == Qt::DisplayRole ) {
+ return displayString( index );
+ }
+ if (index.column() == 0) {
+ if (role == Qt::DecorationRole ) {
+ QString path = driveName( index );
+ return mIconProvider->icon( QFileInfo( path ) );
+ }
+ }
+
+ if (index.column() == 1 && role == Qt::TextAlignmentRole) {
+ return Qt::AlignRight;
+ }
+
+ return QVariant();
+}
+
+
+QVariant FmDriveModel::headerData( int section, Qt::Orientation orientation, int role ) const
+{
+ if (orientation == Qt::Horizontal) {
+ if (role != Qt::DisplayRole)
+ return QVariant();
+
+ switch (section) {
+ case 0: return hbTrId("Name");
+ case 1: return hbTrId("Size");
+ case 2: return hbTrId("Type");
+ case 3: return hbTrId("Date Modified");
+ default: return QVariant();
+ }
+ }
+
+ return QAbstractItemModel::headerData( section, orientation, role );
+}
+
+bool FmDriveModel::indexValid( const QModelIndex &index ) const
+{
+ if( !(&index) )
+ return false;
+ return true;
+}
+
+QString FmDriveModel::driveName( const QModelIndex &index ) const
+{
+ QString data;
+ if (index.row() >= 0 && index.row() < mDriveList.size()) {
+ int row = index.row();
+ QString diskName = mDriveList[ row ];
+ data = diskName;
+ }
+ return data;
+}
+
+QVariant FmDriveModel::displayString( const QModelIndex &index ) const
+{
+ QStringList data;
+ if (index.row() >= 0 && index.row() < mDriveList.size()) {
+ int row = index.row();
+ QString diskName = mDriveList[ row ];
+
+ if( mOptions & FillWithVolume ) {
+ data << FmUtils::fillDriveVolume( diskName, mOptions & FillWithDefaultVolume );
+ } else {
+ data << FmUtils::removePathSplash( diskName );
+ }
+ diskName = FmUtils::fillPathWithSplash( diskName );
+ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName );
+ if ( mOptions & FillWithTotalSize ) {
+ if( driverInfo.driveState() & FmDriverInfo::EDriveAvailable ) {
+ data << QString( hbTrId ( "Size: " ) + FmUtils::formatStorageSize( driverInfo.size() ) );
+ } else if( driverInfo.driveState() & FmDriverInfo::EDriveLocked ) {
+ data << QString( hbTrId ( "Locked" ) );
+ } else if( driverInfo.driveState() & FmDriverInfo::EDriveCorrupted ) {
+ data << QString( hbTrId ( "Corrupted" ) );
+ } else if( driverInfo.driveState() & FmDriverInfo::EDriveNotPresent ) {
+ data << QString( hbTrId ( "Not Ready" ) );
+ }
+ }
+ if ( mOptions & FillWithFreeSize ) {
+ if( driverInfo.driveState() & FmDriverInfo::EDriveAvailable ) {
+ data << QString( hbTrId ( "Free: " ) + FmUtils::formatStorageSize( driverInfo.freeSize() ) );
+ } else if( ( driverInfo.driveState() & FmDriverInfo::EDriveLocked ) ||
+ ( driverInfo.driveState() & FmDriverInfo::EDriveCorrupted ) ||
+ ( driverInfo.driveState() & FmDriverInfo::EDriveNotPresent )) {
+ data << QString( QString(" ") );
+ }
+ }
+ }
+ return data;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdrivemodel.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* 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 "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:
+*
+*/
+
+#ifndef FMDRIVEMODEL_H
+#define FMDRIVEMODEL_H
+
+#include <QAbstractItemModel>
+#include <QStringList>
+#include <QModelIndex>
+
+class FmFileIconProvider;
+
+/*!
+ \class FmDriveListProvider
+ \brief The class FmDriveListProvider provide drive list which is used in FmDriveModel
+ */
+class FmDriveListProvider
+{
+public:
+ FmDriveListProvider()
+ {
+ }
+
+ virtual ~FmDriveListProvider()
+ {
+ }
+
+ /*!
+ implement this function to provide drive list.
+ */
+ virtual void getDriveList( QStringList &driveList ) = 0;
+};
+
+class FmDriveModel : public QAbstractListModel
+{
+Q_OBJECT
+public:
+ enum Option
+ {
+ FillWithVolume = 0x00000001, // add volume behind disname
+ FillWithDefaultVolume = 0x00000002, // add default diskname while enable FillWithVolume and volume is empty
+ HideUnAvailableDrive = 0x00000004, // for example: drive F when no MMC card inserted.
+ FillWithTotalSize = 0x00000008, // show the drive's total size.
+ FillWithFreeSize = 0x00000010 //show the drive's free size.
+ };
+ Q_DECLARE_FLAGS(Options, Option)
+
+ explicit FmDriveModel( QObject *parent = 0, Options options = 0,
+ FmDriveListProvider *driveListProvider = 0 );
+ virtual ~FmDriveModel();
+
+ void refresh();
+ int rowCount( const QModelIndex &parent = QModelIndex() ) const;
+ int columnCount( const QModelIndex &parent = QModelIndex() ) const;
+ QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
+ QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
+ bool indexValid( const QModelIndex &index ) const;
+ QString driveName( const QModelIndex &index ) const;
+ QVariant displayString( const QModelIndex &index ) const;
+
+private:
+ QStringList mFindResult;
+ FmFileIconProvider *mIconProvider;
+ QStringList mDriveList;
+ Options mOptions;
+
+ // DriveListProvider will ignore HideUnAvailableDrive option.
+ // DriveListProvide can be set by others to provide special drive list
+ FmDriveListProvider *mDriveListProvider;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(FmDriveModel::Options)
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdrivewatcher/fmdrivewatcher.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* 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 "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:
+* The source file of drive watcher
+*/
+
+#include "fmdrivewatcher.h"
+
+#include "fmdrivewatcherprivate.h"
+
+FmDriveWatcher::FmDriveWatcher( QObject *parent ) : QObject( parent )
+{
+ d = new FmDriveWatcherPrivate( this );
+ connect( d, SIGNAL(driveAddedOrChanged()), this, SLOT( onDriveAddedOrChanged() ));
+}
+
+FmDriveWatcher::~FmDriveWatcher()
+{
+ delete d;
+}
+
+
+void FmDriveWatcher::startWatch()
+{
+ d->startWatch();
+}
+void FmDriveWatcher::cancelWatch()
+{
+ d->cancelWatch();
+}
+
+void FmDriveWatcher::onDriveAddedOrChanged()
+{
+ emit driveAddedOrChanged();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdrivewatcher/fmdrivewatcher.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,44 @@
+/*
+* 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 "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:
+* The header file of drive watcher
+*/
+
+#ifndef FMDRIVEWATCHER_H
+#define FMDRIVEWATCHER_H
+
+#include <QObject>
+
+class FmDriveWatcherPrivate;
+
+class FmDriveWatcher : public QObject
+{
+Q_OBJECT
+public:
+ FmDriveWatcher( QObject *parent = 0 );
+ virtual ~FmDriveWatcher();
+ void startWatch();
+ void cancelWatch();
+
+signals:
+ void driveAddedOrChanged();
+private slots:
+ void onDriveAddedOrChanged();
+private:
+ FmDriveWatcherPrivate *d;
+};
+
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdrivewatcher/private/symbian/fmdriveevent.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,150 @@
+/*
+* 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 "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:
+* The source file of drive event watcher
+*/
+
+
+// INCLUDE FILES
+#include "fmdriveevent.h"
+#include <e32std.h>
+#include "fmcommon.h"
+
+#include <aknnotewrappers.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CFileManagerFileSystemEvent::CFileManagerFileSystemEvent
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+
+CFmDriveEvent::CFmDriveEvent(
+ RFs& aFs,
+ MFmDriveEventObserver *aObserver ) :
+ CActive( CActive::EPriorityLow ),
+ iFs( aFs ),
+ iObserver( aObserver )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CFmDriveEvent::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CFmDriveEvent::ConstructL()
+ {
+ CActiveScheduler::Add( this );
+ }
+
+// -----------------------------------------------------------------------------
+// CFmDriveEvent::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CFmDriveEvent* CFmDriveEvent::NewL(
+ RFs& aFs,
+ MFmDriveEventObserver *aObserver )
+ {
+ CFmDriveEvent* self =
+ new( ELeave ) CFmDriveEvent(
+ aFs,
+ aObserver );
+
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+
+ return self;
+ }
+
+// ------------------------------------------------------------------------------
+// CFmDriveEvent::~CFmDriveEvent
+//
+// ------------------------------------------------------------------------------
+CFmDriveEvent::~CFmDriveEvent()
+ {
+ Cancel();
+ }
+
+// -----------------------------------------------------------------------------
+// CFmDriveEvent::RunError
+// From CActive. Called when error occurred in asynchronous request
+// Notifies the observer
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CFmDriveEvent::RunError( TInt /*aError*/ )
+ {
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CFmDriveEvent::DoCancel
+// From CActive. Called when asynchronous request is canceled
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CFmDriveEvent::DoCancel()
+ {
+ iFs.NotifyChangeCancel( iStatus );
+ }
+
+// ------------------------------------------------------------------------------
+// CFmDriveEvent::Setup
+//
+// ------------------------------------------------------------------------------
+//
+void CFmDriveEvent::Setup()
+ {
+ FM_LOG( QString( "CFmDriveEvent::Setup start" ) );
+ if( IsActive() )
+ {
+ return;
+ }
+
+ iFs.NotifyChange( ENotifyDisk, iStatus );
+ SetActive();
+ FM_LOG( QString( "CFmDriveEvent::Setup end" ) );
+ }
+
+// -----------------------------------------------------------------------------
+// CFmDriveEvent::RunL
+// From CActive. Called when asynchronous request is completed.
+// Notifies the observer
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CFmDriveEvent::RunL()
+ {
+ if( iStatus == KErrNone ){
+ if( iObserver ){
+ iObserver->OnDriveAddedOrChangedL();
+ }
+
+ Setup();
+ }
+
+ /*
+ CAknInformationNote* informationNote;
+ informationNote = new ( ELeave ) CAknInformationNote;
+ informationNote->ExecuteLD( _L( "driveChanged!"));
+ */
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdrivewatcher/private/symbian/fmdriveevent.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,103 @@
+/*
+* 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 "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:
+* The header file of drive event watcher
+*/
+
+#ifndef CFMDRIVEEVENT_H
+#define CFMDRIVEEVENT_H
+
+
+// INCLUDES
+#include <e32base.h>
+#include <f32file.h>
+
+class MFmDriveEventObserver
+ {
+ public:
+ virtual void OnDriveAddedOrChangedL() = 0;
+ };
+// CLASS DECLARATION
+
+/**
+* This class listens file system events
+*
+* @lib FileManagerEngine.lib
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CFmDriveEvent) : public CActive
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CFmDriveEvent* NewL( RFs& aFs, MFmDriveEventObserver* aObserver );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CFmDriveEvent();
+
+ public:
+
+ /**
+ * Sets file system event
+ * @since 2.0
+ */
+ void Setup();
+
+ protected: // Functions from base classes
+
+ /**
+ * From CActive Called when asynchronous request has completed
+ * @since 2.0
+ */
+ void RunL();
+
+ /**
+ * From CActive Called when asynchronous request has failed
+ * @since 2.0
+ */
+ TInt RunError( TInt aError );
+
+ /**
+ * From CActive Called when asynchronous request was cancelled
+ * @since 2.0
+ */
+ void DoCancel();
+
+ private:
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * C++ default constructor.
+ */
+ CFmDriveEvent( RFs& aFs, MFmDriveEventObserver* aObserver );
+
+ private: // Data
+ // Ref: Reference to opened File System session
+ RFs& iFs;
+
+ // Ref: This object is called when RunL occurs
+ MFmDriveEventObserver *iObserver;
+ };
+
+#endif // CFMDRIVEEVENT_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdrivewatcher/private/symbian/fmdrivewatcherprivate.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,53 @@
+/*
+* 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 "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:
+* The source file of drive event watcher private
+*/
+
+#include "fmdrivewatcherprivate.h"
+
+#include "fmdrivewatcher.h"
+#include "fmcommon.h"
+
+FmDriveWatcherPrivate::FmDriveWatcherPrivate( FmDriveWatcher *driveWatcher ) :
+ q( driveWatcher )
+{
+ fs.Connect();
+ mDriveEvent = CFmDriveEvent::NewL( fs, this );
+}
+
+FmDriveWatcherPrivate::~FmDriveWatcherPrivate()
+{
+ fs.Close();
+ delete mDriveEvent;
+}
+
+
+void FmDriveWatcherPrivate::startWatch()
+{
+ mDriveEvent->Setup();
+}
+
+void FmDriveWatcherPrivate::cancelWatch()
+{
+ mDriveEvent->Cancel();
+}
+
+void FmDriveWatcherPrivate::OnDriveAddedOrChangedL()
+{
+ FM_LOG( QString( "FmDriveWatcherPrivate::OnDriveAddedOrChangedL start" ) );
+ emit driveAddedOrChanged();
+ FM_LOG( QString( "FmDriveWatcherPrivate::OnDriveAddedOrChangedL end" ) );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdrivewatcher/private/symbian/fmdrivewatcherprivate.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,53 @@
+/*
+* 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 "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:
+* The header file of drive event watcher private
+*/
+
+#ifndef FMDRIVEWATCHERPRIVATE_H
+#define FMDRIVEWATCHERPRIVATE_H
+
+#include <QObject>
+
+#include "fmdriveevent.h"
+
+#include <f32file.h>
+
+class FmDriveWatcher;
+
+class FmDriveWatcherPrivate : public QObject, public MFmDriveEventObserver
+{
+Q_OBJECT
+public:
+ FmDriveWatcherPrivate( FmDriveWatcher *driveWatcher );
+ virtual ~FmDriveWatcherPrivate();
+
+ void startWatch();
+ void cancelWatch();
+
+ void onDriveAdded();
+ void onDriveRemoved();
+
+ void OnDriveAddedOrChangedL();
+signals:
+ void driveAddedOrChanged();
+
+private:
+ FmDriveWatcher *q;
+ CFmDriveEvent *mDriveEvent;
+ RFs fs;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdrivewatcher/private/win32/fmdrivewatcherprivate.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* 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 "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:
+* The source file of drive event watcher private
+*/
+
+#include "fmdrivewatcherprivate.h"
+
+#include "fmdrivewatcher.h"
+
+FmDriveWatcherPrivate::FmDriveWatcherPrivate( FmDriveWatcher *driveWatcher ) :
+ q( driveWatcher )
+{
+}
+
+FmDriveWatcherPrivate::~FmDriveWatcherPrivate()
+{
+}
+
+
+void FmDriveWatcherPrivate::startWatch()
+{
+
+}
+
+void FmDriveWatcherPrivate::cancelWatch()
+{
+
+}
+
+void FmDriveWatcherPrivate::onDriveAdded()
+{
+
+}
+void FmDriveWatcherPrivate::onDriveRemoved()
+{
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmdrivewatcher/private/win32/fmdrivewatcherprivate.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* 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 "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:
+* The header file of drive event watcher private
+*/
+
+#ifndef FMDRIVEWATCHERPRIVATE_H
+#define FMDRIVEWATCHERPRIVATE_H
+
+#include <QObject>
+
+class FmDriveWatcher;
+
+class FmDriveWatcherPrivate : public QObject
+{
+Q_OBJECT
+public:
+ FmDriveWatcherPrivate( FmDriveWatcher *driveWatcher );
+ virtual ~FmDriveWatcherPrivate();
+
+ void startWatch();
+ void cancelWatch();
+
+ void onDriveAdded();
+ void onDriveRemoved();
+
+signals:
+ void driveAddedOrChanged();
+
+private:
+ FmDriveWatcher *q;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmfileiconprovider.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,174 @@
+/*
+* 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 "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: filemanager file icon provider source file
+*
+*/
+
+#include "fmfileiconprovider.h"
+#include "fmfiletyperecognizer.h"
+#include "fmutils.h"
+
+#include <QDir>
+#include <QFileInfo>
+
+#include "hbicon.h"
+
+//#define mmcIcon ":image/qgn_prop_mmc_memc.svg"
+//#define mmcNoneIcon ":image/qgn_prop_fmgr_mmc_no_sub.svg"
+//#define mmcLockedIcon ":image/qgn_prop_mmc_locked.svg"
+//#define phoneMemoryIcon ":image/qgn_prop_phone_memc.svg"
+//#define usbMemoryIcon ":image/qgn_prop_usb_memc.svg"
+//#define massMemoryIcon ":image/qgn_prop_fmgr_ms.svg"
+
+#define phoneMemoryIcon "qtg_large_mobile"
+#define massMemoryIcon "qtg_large_mass_storage"
+#define mmcIcon "qtg_large_mmc"
+#define mmcNoneIcon "qtg_large_mmc_removed"
+#define usbMemoryIcon "qtg_large_usb_memory"
+
+//TODO: UI_Update: mmcl locked icon have not provided in icon spec
+// Just use original custom-defined icon
+#define mmcLockedIcon ":image/qgn_prop_mmc_locked.svg"
+
+
+#define folderIcon "qtg_large_folder"
+
+#define imageIcon "qtg_large_photos"
+#define videoIcon "qtg_large_video"
+#define toneIcon "qtg_large_tone"
+#define playlistIcon "qtg_large_playlist"
+#define textIcon "qtg_large_text"
+#define sisxIcon "qtg_large_sisx"
+#define javaIcon "qtg_large_java"
+#define flashIcon "qtg_large_flash"
+#define widgetIcon "qtg_large_widget"
+#define weblinkIcon "qtg_large_web_link"
+#define queryIcon "qtg_large_query"
+
+FmFileIconProvider::FmFileIconProvider()
+{
+ mFileTypeRecognizer = new FmFileTypeRecognizer();
+}
+
+FmFileIconProvider::~FmFileIconProvider()
+{
+ delete mFileTypeRecognizer;
+}
+
+QIcon FmFileIconProvider::icon(const QFileInfo &info) const
+{
+ QIcon retIcon;
+
+ QString filePath( info.absoluteFilePath() );
+ FmFileTypeRecognizer::FileType fileType = mFileTypeRecognizer->getType( filePath );
+ switch( fileType )
+ {
+ case FmFileTypeRecognizer::FileTypeDrive:
+ {
+ FmDriverInfo driveInfo = FmUtils::queryDriverInfo( filePath );
+ switch ( driveInfo.driveType() )
+ {
+ case FmDriverInfo::EDriveTypeMassStorage:
+ retIcon = HbIcon( massMemoryIcon ).qicon();
+ break;
+ case FmDriverInfo::EDriveTypeUsbMemory:
+ retIcon = HbIcon( usbMemoryIcon ).qicon();
+ break;
+ case FmDriverInfo::EDriveTypeMemoryCard:
+ if( !( driveInfo.driveState() & FmDriverInfo::EDriveNotPresent ) ) {
+ retIcon = HbIcon( mmcIcon ).qicon();
+ } else {
+ retIcon = HbIcon( mmcNoneIcon ).qicon();
+ }
+ break;
+ case FmDriverInfo::EDriveTypePhoneMemory:
+ retIcon = HbIcon( phoneMemoryIcon ).qicon();
+ break;
+ case FmDriverInfo::EDriveTypeNotExist: // drive not exist, let QFileIconProvider to judge icon
+ default: // filemanger do not provide icon for other drive types, let QFileIconProvider to judge icon
+ break;
+ }
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeFolder:
+ {
+ retIcon = HbIcon( folderIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeImage:
+ {
+ retIcon = HbIcon( imageIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeVideo:
+ {
+ retIcon = HbIcon( videoIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeTone:
+ {
+ retIcon = HbIcon( toneIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypePlaylist:
+ {
+ retIcon = HbIcon( playlistIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeText:
+ {
+ retIcon = HbIcon( textIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeSisx:
+ {
+ retIcon = HbIcon( sisxIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeJava:
+ {
+ retIcon = HbIcon( javaIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeFlash:
+ {
+ retIcon = HbIcon( flashIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeWidget:
+ {
+ retIcon = HbIcon( widgetIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeWebLink:
+ {
+ retIcon = HbIcon( weblinkIcon ).qicon();
+ break;
+ }
+ case FmFileTypeRecognizer::FileTypeUnKnown:
+ {
+ // currently filemanger icon doc is not unified with icon name.
+ // for example, qtg_small_unknown qtg_large_query both means for unknown type
+ // but the two icon name is not the same.
+ retIcon = HbIcon( queryIcon ).qicon();
+ break;
+ }
+ }
+
+ // if cannot get icon, return icon from QFileIconProvider
+ if( retIcon.isNull() ) {
+ retIcon = QFileIconProvider::icon( info );
+ }
+ return retIcon;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmfileiconprovider.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* 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 "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:
+* The header file of file icon provider of filemanager
+*/
+
+#ifndef FMFILEICONPROVIDER_H
+#define FMFILEICONPROVIDER_H
+
+#include <QFileIconProvider>
+
+class FmFileTypeRecognizer;
+
+class FmFileIconProvider : public QFileIconProvider
+{
+public:
+ FmFileIconProvider();
+ virtual ~FmFileIconProvider();
+
+ // from QFileIconProvider
+ virtual QIcon icon(const QFileInfo &info) const;
+
+private:
+
+ FmFileTypeRecognizer *mFileTypeRecognizer;
+
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmfiletyperecognizer.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,109 @@
+/*
+ * 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 "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:
+ * The source file of the file type recognizer
+ */
+
+#include "fmfiletyperecognizer.h"
+#include "fmutils.h"
+#include <QFileInfo>
+#include <QStringList>
+
+FmFileTypeRecognizer::FmFileTypeRecognizer()
+{
+ mFileExtensionMap.insert( QString( "bmp" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "gif" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "jpe" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "jpeg" ),FileTypeImage );
+ mFileExtensionMap.insert( QString( "jpg" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "ota" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "png" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "tif" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "tiff" ),FileTypeImage );
+ mFileExtensionMap.insert( QString( "wbmp" ),FileTypeImage );
+ mFileExtensionMap.insert( QString( "wmf" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "jp2" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "jpg2" ),FileTypeImage );
+ mFileExtensionMap.insert( QString( "jp3" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "ico" ), FileTypeImage );
+ mFileExtensionMap.insert( QString( "vcf" ), FileTypeImage );
+
+ mFileExtensionMap.insert( QString( "3gp" ), FileTypeVideo );
+ mFileExtensionMap.insert( QString( "mp4" ), FileTypeVideo );
+ mFileExtensionMap.insert( QString( "nim" ), FileTypeVideo );
+ mFileExtensionMap.insert( QString( "rm" ), FileTypeVideo );
+ mFileExtensionMap.insert( QString( "rv" ), FileTypeVideo );
+ mFileExtensionMap.insert( QString( "wmv" ), FileTypeVideo );
+ mFileExtensionMap.insert( QString( "3g2" ), FileTypeVideo );
+ mFileExtensionMap.insert( QString( "rmvb" ),FileTypeVideo );
+ mFileExtensionMap.insert( QString( "mkv" ), FileTypeVideo );
+
+
+ mFileExtensionMap.insert( QString( "aac" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "amr" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "au" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "awb" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "mid" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "mp3" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "ra" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "rmf" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "rng" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "snd" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "wav" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "wve" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "wma" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "m4a" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "ott" ), FileTypeTone );
+ mFileExtensionMap.insert( QString( "mxmf" ),FileTypeTone );
+
+ mFileExtensionMap.insert( QString( "doc" ), FileTypeText );
+ mFileExtensionMap.insert( QString( "pdf" ), FileTypeText );
+ mFileExtensionMap.insert( QString( "pps" ), FileTypeText );
+ mFileExtensionMap.insert( QString( "ppt" ), FileTypeText );
+ mFileExtensionMap.insert( QString( "txt" ), FileTypeText );
+ mFileExtensionMap.insert( QString( "xls" ), FileTypeText );
+
+ mFileExtensionMap.insert( QString( "sis" ), FileTypeSisx );
+ mFileExtensionMap.insert( QString( "sisx" ),FileTypeSisx );
+
+ mFileExtensionMap.insert( QString( "jad" ), FileTypeJava );
+ mFileExtensionMap.insert( QString( "jar" ), FileTypeJava );
+
+ mFileExtensionMap.insert( QString( "swf" ), FileTypeFlash );
+
+ // have not handle FileTypePlaylist
+ // have not handle FileTypeWidget
+ // have not handle FileTypeWebLink
+}
+
+FmFileTypeRecognizer::~FmFileTypeRecognizer()
+{
+
+}
+
+FmFileTypeRecognizer::FileType FmFileTypeRecognizer::getType( const QString& path ) const
+{
+ if( FmUtils::isDrive( path ) ) {
+ return FileTypeDrive;
+ }
+
+ QFileInfo fileInfo(path);
+ if( fileInfo.isDir() ) {
+ return FileTypeFolder;
+ }
+
+ //if can not find key, return default value: FileTypeUnKnown
+ return mFileExtensionMap.value( fileInfo.suffix().toLower(), FileTypeUnKnown );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmfiletyperecognizer.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,67 @@
+/*
+ * 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 "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:
+ * The header file of the file type recognizer
+ */
+
+#ifndef FMFILETYPERECOGNIZER_H
+#define FMFILETYPERECOGNIZER_H
+
+#include "fmcommon.h"
+#include <QString>
+#include <QList>
+#include <QStringList>
+#include <QMap>
+
+/*!
+ \class FmFileTypeRecognizer
+ \brief The class FmFileTypeRecognizer used to recognize file type by path.
+ */
+class FmFileTypeRecognizer
+{
+public:
+ enum FileType{
+ FileTypeDrive,
+ FileTypeFolder,
+ FileTypeImage,
+ FileTypeVideo,
+ FileTypeTone,
+ FileTypePlaylist,
+ FileTypeText,
+ FileTypeSisx,
+ FileTypeJava,
+ FileTypeFlash,
+ FileTypeWidget,
+ FileTypeWebLink,
+ FileTypeUnKnown
+ };
+
+
+public:
+ FmFileTypeRecognizer();
+ virtual ~FmFileTypeRecognizer();
+
+ /*!
+ Recognize file type, currently only judge file by its extension name.
+ */
+ FmFileTypeRecognizer::FileType getType( const QString& path ) const ;
+
+private:
+ // used to store single extension name, FileType pare.
+ QMap<QString, FileType> mFileExtensionMap;
+};
+
+#endif /* FMFILETYPERECOGNIZER_H */
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmlogger.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,56 @@
+/*
+ * 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 "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:
+ * The header file of logger
+ */
+#ifndef FMLOGGER_H
+#define FMLOGGER_H
+
+#define FMLOG_PATH QString( "C:\\data\\fileman.txt" )
+
+#include <QString>
+#include <QFile>
+#include <QTextStream>
+#include <QDateTime>
+
+#ifdef _DEBUG_LOG_ENABLE_
+ #define FM_LOG(str) FmLogger::log( str );
+#else
+ #define FM_LOG(str)
+#endif
+
+class FmLogger
+{
+public:
+
+ static bool log( const QString &log )
+ {
+#ifdef _DEBUG_LOG_ENABLE_
+ QString logStr( QDateTime::currentDateTime().toString("hh:mm:ss:zzz") + " " + log + "\r\n" );
+ QFile file( FMLOG_PATH );
+ if ( !file.open( QIODevice::WriteOnly | QIODevice::Append ) )
+ {
+ return false;
+ }
+ QTextStream out( &file );
+ out << logStr;
+#else
+ Q_UNUSED( log );
+#endif
+ return true;
+ }
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fms60utils.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,31 @@
+/*
+* 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 "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:
+* The source file of the file manager s60 utilities
+*/
+
+
+#include "fms60utils.h"
+
+void FmS60Utils::ConvertCharsToPwd(TDesC& aWord, TDes8& aConverted)
+{
+ aConverted.FillZ(aConverted.MaxLength());
+ aConverted.Zero();
+
+ if (aWord.Length())
+ {
+ aConverted.Copy( (TUint8*)(&aWord[0]), aWord.Size() );
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fms60utils.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,31 @@
+/*
+* 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 "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:
+* The header file of the file manager s60 utilities
+*/
+
+#ifndef FMS60UTILS_H
+#define FMS60UTILS_H
+
+#include "fmcommon.h"
+#include <e32des16.h>
+
+class FmS60Utils
+{
+public:
+ static void ConvertCharsToPwd( TDesC& aWord, TDes8& aConverted );
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmutils.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,412 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The source file of the file manager utilities
+*/
+
+#include "fmutils.h"
+
+#include <QDir>
+#include <QFileInfo>
+
+#include <hbglobal.h>
+
+/*!
+ Used to get drive type for convenience.
+*/
+FmDriverInfo::DriveType FmDriverInfo::driveType()
+{
+ FmDriverInfo::DriveType driveType;
+ if( mDriveState & FmDriverInfo::EDriveRemovable ) {
+ // if drive is removable, it may be mass, usb, or remote drive
+ if( mDriveState & FmDriverInfo::EDriveMassStorage ) {
+ driveType = FmDriverInfo::EDriveTypeMassStorage;
+ } else if( mDriveState & FmDriverInfo::EDriveUsbMemory ) {
+ driveType = FmDriverInfo::EDriveTypeUsbMemory;
+ } else if( mDriveState & FmDriverInfo::EDriveRemote ){
+ driveType = FmDriverInfo::EDriveTypeRemote;
+ } else {
+ driveType = FmDriverInfo::EDriveTypeMemoryCard;
+ }
+ } else if( mDriveState & FmDriverInfo::EDriveRom ) {
+ driveType = FmDriverInfo::EDriveTypeRom;
+ } else if( mDriveState & FmDriverInfo::EDriveRam ) {
+ driveType = FmDriverInfo::EDriveTypeRam;
+ } else {
+ // if drive type is not recognized in previous condition,
+ // it should be an un-existed drive or phone memory
+ if( mDriveState & EDriveNotPresent ){
+ // if come here, means 2 conditions:
+ // 1 this drive is not exist( FmUtils::queryDriverInfo will give EDriveNotPresent to mDriveState )
+ // 2 un-mounted removable drive
+ // removable drive filted in previous condifiton. So, give EDriveTypeNotExist
+ driveType = FmDriverInfo::EDriveTypeNotExist;
+ } else {
+ // drive is existed, only remain the type of EDriveTypePhoneMemory
+ driveType = FmDriverInfo::EDriveTypePhoneMemory;
+ }
+ }
+
+ return driveType;
+}
+
+/*!
+ return drive name for \a path
+*/
+QString FmUtils::getDriveNameFromPath( const QString &path )
+{
+ // fillPathWithSplash make sure path length will be at least 3 if it is not empty.
+ QString checkedPath( fillPathWithSplash( path ) );
+ if( checkedPath.length() < 3 ) {
+ return QString();
+ }
+ return checkedPath.left( 3 );
+}
+
+/*!
+ return drive letter for \a path
+*/
+QString FmUtils::getDriveLetterFromPath( const QString &path )
+{
+ if( path.length() <2 ) {
+ return QString();
+ }
+ return path.left( 1 );
+}
+
+/*!
+ return formatted string for size.
+*/
+QString FmUtils::formatStorageSize( quint64 size )
+{
+ if ( size < 1000 ) {
+ return QString::number( size ) + " B";
+ } else if ( size < 1000 * 1000 ) {
+ return QString::number( size / 1024.0, 'f', 2 ) + " KB";
+ } else if ( size < 1000 * 1000 * 1000 ) {
+ return QString::number( size / (1024.0 * 1024.0), 'f', 1 ) + " MB";
+ } else {
+ return QString::number( size / ( 1024.0 * 1024.0 * 1024.0 ), 'f', 1 ) + " GB";
+ }
+}
+
+/*!
+ Judge if a path is drive path, not a folder or a file.
+ For example, true for C:\ while false for C:\data
+*/
+bool FmUtils::isDrive( const QString &path )
+{
+ bool ret( false );
+ if( path.length() <= 3 && path.length() >=2 ) {
+ ret = true;
+ }
+
+ return ret;
+}
+
+/*!
+ All "/" and "\" in \a path will be changed to QDir::separator
+ \sa fillPathWithSplash, fillPathWithSplash will append QDir::separator in the end
+*/
+QString FmUtils::formatPath( const QString &path )
+{
+ QString formatPath;
+ if( path.isEmpty() ) {
+ return formatPath;
+ }
+
+ foreach( const QChar &ch, path ) {
+ if( ch == QChar('\\') || ch == QChar('/') ) {
+ formatPath.append( QDir::separator() );
+ } else {
+ formatPath.append( ch );
+ }
+ }
+
+ return formatPath;
+}
+
+/*!
+ Fill splash in the end of \a filePath. And all "/" and "\" will be changed to QDir::separator
+ Please do not call this function if path is a file.
+ Use \a formatPath instead, \a formatPath will not append QDir::separator in the end.
+ \sa formatPath only changed "/" and "\" to QDir::separator
+*/
+QString FmUtils::fillPathWithSplash( const QString &filePath )
+{
+ QString newFilePath;
+ if( filePath.isEmpty() ) {
+ return newFilePath;
+ }
+
+ newFilePath = formatPath( filePath );
+
+ if( newFilePath.right( 1 )!= QDir::separator() ){
+ newFilePath.append( QDir::separator() );
+ }
+ return newFilePath;
+}
+
+/*!
+ Remove splash in the end of \a filePath.
+*/
+QString FmUtils::removePathSplash( const QString &filePath )
+{
+ QString newFilePath( filePath );
+ if( filePath.right( 1 ) == QChar( '/' ) || filePath.right(1) == QString( "\\" ) ) {
+ newFilePath = filePath.left( filePath.length() - 1 );
+ }
+ return newFilePath;
+}
+
+/*!
+ fill \a driveList of drives can be shown in driveListView
+*/
+void FmUtils::getDriveList( QStringList &driveList, bool isHideUnAvailableDrive )
+{
+ if( isHideUnAvailableDrive ) {
+ FM_LOG( QString( "getDriveList HideUnAvailableDrive_true" ) );
+ } else {
+ FM_LOG( QString( "getDriveList HideUnAvailableDrive_false" ) );
+ }
+ QFileInfoList infoList = QDir::drives();
+
+ foreach( const QFileInfo &fileInfo, infoList ) {
+ QString driveName = fileInfo.absolutePath();
+ if( checkDriveAccessFilter( driveName ) ) {
+ if( !isHideUnAvailableDrive ) {
+ driveList.append( driveName );
+ }
+ else if ( isDriveAvailable( driveName ) ) {
+ driveList.append( driveName );
+ }
+ }
+ }
+ return;
+}
+
+/*!
+ return the combined string of drive name and volume( e.g. C: Phone memory for C drive)
+ \a driveName the drive name.
+ If set \a isFillWithDefaultVolume true, fill result with default volume if drive volume is empty.
+*/
+QString FmUtils::fillDriveVolume( QString driveName, bool isFillWithDefaultVolume )
+{
+ QString ret;
+ if( driveName.isEmpty() ) {
+ return ret;
+ }
+ QString tempDriveName = fillPathWithSplash( driveName );
+
+ QString checkedDriveName( removePathSplash( driveName ) );
+
+ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( tempDriveName );
+ QString volumeName = driverInfo.volumeName();
+
+ if( volumeName.isEmpty() && isFillWithDefaultVolume ){
+ switch ( driverInfo.driveType() )
+ {
+ case FmDriverInfo::EDriveTypeMassStorage:
+ ret = hbTrId( "txt_fmgr_dblist_1_mass_storage" ).arg( checkedDriveName );
+ break;
+ case FmDriverInfo::EDriveTypeUsbMemory:
+ ret = hbTrId( "txt_fmgr_dblist_1_usb_memory" ).arg( checkedDriveName );
+ break;
+ case FmDriverInfo::EDriveTypeMemoryCard:
+ ret = hbTrId( "txt_fmgr_dblist_1_memory_card" ).arg( checkedDriveName );
+ break;
+ case FmDriverInfo::EDriveTypePhoneMemory:
+ ret = hbTrId( "txt_fmgr_dblist_1_device_memory" ).arg( checkedDriveName );
+ break;
+ case FmDriverInfo::EDriveTypeNotExist:// no such drive
+ default:// do not need get volume for other drive types, e.g. Ram, Rom
+ break;
+ }
+ }
+
+ if( ret.isEmpty() ) {
+ // ret is not got. fill ret as default method
+ // txt_fmgr_dblist_1_2 is not correct, can not use.
+ ret = hbTrId( "%1 %2" ).arg( checkedDriveName ).arg( volumeName );
+ }
+ return ret;
+}
+
+/*!
+ return the default volume for drive
+ \a driveName the drive.
+ \sa getVolumeNameWithDefaultNameIfNull
+*/
+QString FmUtils::getDefaultVolumeName( const QString &driveName )
+{
+ QString defaultVolumeName;
+ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( driveName );
+
+ switch ( driverInfo.driveType() )
+ {
+ case FmDriverInfo::EDriveTypeMassStorage:
+ defaultVolumeName = hbTrId("Mass storage");
+ break;
+ case FmDriverInfo::EDriveTypeUsbMemory:
+ defaultVolumeName = hbTrId("USB memory");
+ break;
+ case FmDriverInfo::EDriveTypeMemoryCard:
+ defaultVolumeName = hbTrId("Memory card");
+ break;
+ case FmDriverInfo::EDriveTypePhoneMemory:
+ defaultVolumeName = hbTrId("Device memory");
+ break;
+ case FmDriverInfo::EDriveTypeNotExist:// no such drive, break and return empty string
+ default:// do not have default volume for other drive types, e.g. Ram, Rom
+ break;
+ }
+ return defaultVolumeName;
+}
+
+/*!
+ get the volume name of the drive, if it is null, then return the default name.
+ \a driveName the drive letter.
+ \a defaultName whether it is the default name.
+ return the volume name.
+*/
+QString FmUtils::getVolumeNameWithDefaultNameIfNull( const QString &driveName, bool &defaultName )
+{
+ // do not re-use FmUtils::getDefaultVolumeName to save one time for call FmUtils::queryDriverInfo
+ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( driveName );
+
+ QString volumeName = driverInfo.volumeName();
+ //save the volume status, whether it is default name
+ defaultName = false;
+ //volume name may be null if not set, it will be set at least for one time in the following while cycling.
+ if ( volumeName.isEmpty() ) {
+ switch ( driverInfo.driveType() )
+ {
+ case FmDriverInfo::EDriveTypeMassStorage:
+ volumeName = hbTrId("Mass storage");
+ break;
+ case FmDriverInfo::EDriveTypeUsbMemory:
+ volumeName = hbTrId("USB memory");
+ break;
+ case FmDriverInfo::EDriveTypeMemoryCard:
+ volumeName = hbTrId("Memory card");
+ break;
+ case FmDriverInfo::EDriveTypePhoneMemory:
+ volumeName = hbTrId("Device memory");
+ break;
+ case FmDriverInfo::EDriveTypeNotExist:// no such drive
+ default:// do not need get volume for other drive types, e.g. Ram, Rom
+ break;
+ }
+ if( !volumeName.isEmpty() ) {
+ defaultName = true;
+ }
+ }
+ return volumeName;
+}
+
+/*!
+ Check if two path are the same.
+*/
+bool FmUtils::isPathEqual( const QString &pathFst, const QString &pathLast )
+{
+ QString fst( fillPathWithSplash( pathFst ) );
+ QString last( fillPathWithSplash( pathLast ) );
+ if( fst.compare( last, Qt::CaseInsensitive ) == 0 ) {
+ return true;
+ }
+ return false;
+}
+
+/*!
+ Check if a name is illegal for folder/file naming rule.
+*/
+bool FmUtils::checkFolderFileName( const QString& name )
+{
+ // trim space firest, because there may be some spaces after "." , it is also not valid
+ QString trimmedName( name.trimmed() );
+ if( trimmedName.isEmpty() ) {
+ return false;
+ }
+ if( trimmedName.endsWith( QChar('.'), Qt::CaseInsensitive ) ) {
+ return false;
+ }
+ if( trimmedName.contains( QChar('\\'), Qt::CaseInsensitive ) ||
+ trimmedName.contains( QChar('/'), Qt::CaseInsensitive ) ||
+ trimmedName.contains( QChar(':'), Qt::CaseInsensitive ) ||
+ trimmedName.contains( QChar('*'), Qt::CaseInsensitive ) ||
+ trimmedName.contains( QChar('?'), Qt::CaseInsensitive ) ||
+ trimmedName.contains( QChar('\"'), Qt::CaseInsensitive ) ||
+ trimmedName.contains( QChar('<'), Qt::CaseInsensitive ) ||
+ trimmedName.contains( QChar('>'), Qt::CaseInsensitive ) ||
+ trimmedName.contains( QChar('|'), Qt::CaseInsensitive ) ){
+ return false;
+ }
+ // use original name to exam max size of file name
+ if( name.length() > getMaxFileNameLength() ) {
+ return false;
+ }
+ return true;
+}
+
+/*!
+ check file or folder path is illegal or not.
+ \a fileName file/folder name, used to check illegal characters
+ \a path file/folder path, used to check if path is available to use.
+ \a errString if return false, errString will be set for error note.
+ return true for not illegal and false for illegal path.
+*/
+bool FmUtils::checkNewFolderOrFile( const QString &fileName, const QString &path, QString &errString )
+{
+ // first check if fileName is valid, then check if path length is valid, and check if file/foler is existed at last
+ QFileInfo fileInfo( path );
+ bool ret( true );
+ if (!FmUtils::checkFolderFileName( fileName ) ) {
+ errString = hbTrId( "Invalid file or folder name!" );
+ ret = false;
+ } else if( !FmUtils::checkMaxPathLength( path ) ) {
+ errString = hbTrId( "the path you specified is too long!" );
+ ret = false;
+ } else if (fileInfo.exists()) {
+ errString = hbTrId( "%1 already exist!" ).arg( fileInfo.fileName() );
+ ret = false;
+ }
+ return ret;
+}
+
+/*!
+ Check if \a dest is sub level path of \a src
+ Used to check True/False when copy a folder to itself or its subfolder
+ For example, c:\data\test is sub path of c:\data.
+ But c:\data123\test is not sub path of c:\data.
+ So after got right part of path, the first char must be \ or /
+*/
+bool FmUtils::isSubLevelPath( const QString &src, const QString &dest )
+{
+ FM_LOG("FmUtils::isSubFolder: src=" + src + " dest=" + dest);
+ QString checkedSrc( FmUtils::fillPathWithSplash( src ) );
+ QString checkedDest( FmUtils::fillPathWithSplash( dest ) );
+
+ if( checkedDest.contains( checkedSrc, Qt::CaseInsensitive) &&
+ checkedDest.length() > checkedSrc.length() ) {
+ // for example c:\data\ vs c:\data\123\
+ FM_LOG("FmUtils::isSubFolder: true");
+ return true;
+ }
+ // for example c:\data\ vs c:\data\
+ // for example c:\data\ vs c:\data123\
+
+ FM_LOG("FmUtils::isSubFolder: false");
+ return false;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmutils.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,211 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The header file of the file manager utilities
+*/
+
+#ifndef FMUTILS_H
+#define FMUTILS_H
+
+#include "fmcommon.h"
+
+#include <QString>
+
+/*!
+ \class FmDriverInfo
+ \brief The class FmDriverInfo provide drive info data
+ */
+class FmDriverInfo
+{
+public:
+ /*!
+ Used to get drive status for convenience.
+ /sa DriveType is used to get drive type.
+ */
+ enum driveState
+ {
+ EDriveNotPresent = 0x1, // true when Drive have not inserted, for example, MMC Card
+ EDriveAvailable = 0x2, // false when drive is locked or corrupted, for example MMC Card
+ EDriveLocked = 0x4,
+ EDriveCorrupted = 0x8,
+ EDriveWriteProtected = 0x10,
+ EDriveRemovable = 0x20,
+ EDriveRom = 0x40,
+ EDriveFormattable = 0x80,
+ EDriveFormatted = 0x100,
+ EDriveLockable = 0x200,
+ EDrivePasswordProtected = 0x400,
+ EDriveBackupped = 0x800,
+ EDriveConnected = 0x1000,
+ EDriveEjectable = 0x2000,
+ EDriveInUse = 0x4000,
+ EDriveMassStorage = 0x8000,
+ EDriveRam = 0x10000,
+ EDriveUsbMemory = 0x20000,
+ EDriveRemote = 0x40000,
+ };
+
+ /*!
+ Used to get drive type for convenience.
+ */
+ enum DriveType
+ {
+ EDriveTypeNotExist = -1, // specified drive is not existed in device
+ EDriveTypeRom,
+ EDriveTypeRam,
+ EDriveTypePhoneMemory,
+ EDriveTypeMassStorage,
+ EDriveTypeMemoryCard,
+ EDriveTypeUsbMemory,
+ EDriveTypeRemote,
+ };
+
+ Q_DECLARE_FLAGS( DriveState, driveState )
+
+ FmDriverInfo( quint64 s, quint64 f, const QString &n, const QString &vN, const quint32 driveState ) :
+ mSize( s ), mFreeSize( f ), mName( n ), mVolumeName( vN ), mDriveState( driveState ) {}
+ FmDriverInfo( const FmDriverInfo &other )
+ {
+ *this = other;
+ }
+
+ FmDriverInfo &operator= ( const FmDriverInfo &rhs )
+ {
+ this->mSize = rhs.mSize;
+ this->mFreeSize = rhs.mFreeSize;
+ this->mName = rhs.mName;
+ this->mVolumeName = rhs.mVolumeName;
+ this->mDriveState = rhs.mDriveState;
+ return *this;
+ }
+
+ /*!
+ Total size for drive
+ */
+ quint64 size() const { return mSize; }
+
+ /*!
+ Free size for drive
+ */
+ quint64 freeSize() const { return mFreeSize; }
+
+ /*!
+ path for drive
+ */
+ QString name() const { return mName; }
+
+ /*!
+ volume for drive
+ */
+ QString volumeName() const { return mVolumeName; }
+
+ /*!
+ status for drive
+ */
+ DriveState driveState() const { return mDriveState; }
+
+ /*!
+ drive type
+ */
+ DriveType driveType();
+
+private:
+ quint64 mSize;
+ quint64 mFreeSize;
+ QString mName;
+ QString mVolumeName;
+ DriveState mDriveState;
+ DriveType mDriveType;
+};
+Q_DECLARE_OPERATORS_FOR_FLAGS( FmDriverInfo::DriveState )
+
+/*!
+ \class FmUtils
+ \brief The class FmUtils provide util functions
+ This class is implemented by three parts:
+ fmutils.cpp for Qt Based functions
+ fmutils_s60.cpp is symbian implement version for platform based functions
+ fmutils_win.cpp is win32 implement version for platform based functions( a simple wrapper )
+ */
+class FmUtils
+{
+public:
+ //////////////////////////////////////////////////////////////////
+ // <QtBasedFunctions>
+ static QString getDriveNameFromPath( const QString &path );
+ static QString getDriveLetterFromPath( const QString &path );
+ static QString formatStorageSize( quint64 size );
+ static bool isDrive( const QString &path );
+ static QString formatPath( const QString &path );
+ static QString fillPathWithSplash( const QString &filePath );
+ static QString removePathSplash( const QString &filePath );
+ static void getDriveList( QStringList &driveList, bool isHideUnAvailableDrive );
+ static QString fillDriveVolume( QString driveName, bool isFillWithDefaultVolume );
+ static QString getDefaultVolumeName( const QString &driveName );
+ static QString getVolumeNameWithDefaultNameIfNull( const QString &diskName, bool &defaultName );
+ static bool isPathEqual( const QString &pathFst, const QString &pathLast );
+ static bool checkFolderFileName( const QString& name );
+ static bool checkNewFolderOrFile( const QString& fileName, const QString &path, QString &errString );
+ static bool isSubLevelPath( const QString &src, const QString &dest );
+ // </QtBasedFunctions>
+ //////////////////////////////////////////////////////////////////
+
+
+ //////////////////////////////////////////////////////////////////
+ // <platformBasedFunctions>
+ static FmDriverInfo queryDriverInfo( const QString &driverName );
+
+ // password related functions
+ static int removeDrivePwd( const QString &driverName, const QString &Pwd );
+ static int unlockDrive( const QString &driverName, const QString &Pwd );
+ static int checkDrivePwd( const QString &driverName, const QString &pwd);
+ static int setDrivePwd( const QString &driverName, const QString &oldPwd, const QString &newPwd);
+ static void emptyPwd( QString &pwd );
+
+ // external drive related functions
+ static int renameDrive( const QString &driverName, const QString &newVolumeName);
+ static int ejectDrive( const QString &driverName );
+
+ // drive security related functions
+ static bool checkDriveAccessFilter( const QString &driveName );
+ static QString checkDriveToFolderFilter( const QString &path );
+ static QString checkFolderToDriveFilter( const QString &path );
+ static int isPathAccessabel( const QString &path );
+ static bool isDriveAvailable( const QString &path );
+
+ // system default folder related functions
+ static bool isDefaultFolder( const QString &folderPath );
+ static void createDefaultFolders( const QString &driverName );
+ static QString localize( const QString &path );
+
+ // copy move related functions
+ static int setFileAttributes( const QString &srcFile, const QString &desFile );
+ static bool hasEnoughSpace( const QString &targetDrive, qint64 size );
+ static int moveInsideDrive( const QString &source, const QString &target );
+
+ // other fucntions
+ static int launchFile( const QString &filePath );
+ static void sendFiles( QStringList &filePathList );
+ static QString getBurConfigPath( QString appPath );
+ static QString getFileType( const QString &filePath );
+ static bool isDriveC( const QString &driverName );
+ static int getMaxFileNameLength();
+ static bool checkMaxPathLength( const QString& path );
+ // </platformBasedFunctions>
+ //////////////////////////////////////////////////////////////////
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmutils_s60.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,859 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The source file of the file manager utilities on Symbian
+*/
+
+
+#include "fmutils.h"
+#include "fmcommon.h"
+#include "fms60utils.h"
+
+#include <apgcli.h>
+#include <sysutil.h>
+#include <f32file.h>
+#include <coemain.h>
+#include <pathinfo.h>
+#include <driveinfo.h>
+#include <e32property.h>
+#include <coreapplicationuisdomainpskeys.h>
+
+#include <QDir>
+#include <QFile>
+#include <QRegExp>
+#include <QStringList>
+#include <QFileInfoList>
+
+#include <xqappmgr.h>
+#include <XQConversions>
+#include <xqaiwrequest.h>
+
+#include <shareui.h>
+#include <hbglobal.h>
+#include <hbdirectorynamelocalizer.h>
+
+#define BURCONFIGFILE "z:/private/2002BCC0/burconfig.xml"
+
+/*!
+ query drive info and status for \a driveName
+ return \a FmDriverInfo
+*/
+FmDriverInfo FmUtils::queryDriverInfo( const QString &driveName )
+{
+ if( driveName.isEmpty() ) {
+ return FmDriverInfo( 0, 0, driveName, QString(), FmDriverInfo::EDriveNotPresent );
+ }
+ CCoeEnv *env = CCoeEnv::Static();
+ RFs& fs = env->FsSession();
+
+ TVolumeInfo volumeInfo;
+ TInt drive = 0;
+ drive = driveName[0].toUpper().toAscii() - 'A' + EDriveA;
+
+ quint32 state( 0 );
+
+ int volumeInfoErr( KErrNone );
+ int driveInfoErr( KErrNone );
+ int errorCode( KErrNone );
+ volumeInfoErr = fs.Volume( volumeInfo, drive );
+ errorCode = volumeInfoErr;
+ QString volumeName( (QChar*)( volumeInfo.iName.Des().Ptr() ), volumeInfo.iName.Length() );
+
+ TDriveInfo driveInfo;
+ if( volumeInfoErr == KErrNone ) {
+ driveInfo = volumeInfo.iDrive;
+ } else {
+ driveInfoErr = fs.Drive( driveInfo, drive );
+ if( driveInfoErr != KErrNone ) {
+ errorCode = driveInfoErr;
+ }
+ }
+
+ if( volumeInfoErr == KErrNone || driveInfoErr == KErrNone ) {
+ //TDriveInfo driveInfo = volumeInfo.iDrive;
+
+ quint32 drvStatus( 0 );
+ int err = DriveInfo::GetDriveStatus( fs, drive, drvStatus );
+ if( err == KErrNone ) {
+
+ if ( ( drvStatus & DriveInfo::EDriveInternal ) &&
+ ( drvStatus & DriveInfo::EDriveExternallyMountable ) ){
+ // Handle mass storage bits here
+ state |= FmDriverInfo::EDriveMassStorage | FmDriverInfo::EDriveRemovable;
+ }
+
+ if ( drvStatus & DriveInfo::EDriveUsbMemory )
+ {
+ state |= FmDriverInfo::EDriveUsbMemory;
+ }
+
+ if ( drvStatus & DriveInfo::EDriveRemote )
+ {
+ state |= FmDriverInfo::EDriveRemote;
+ }
+
+ if ( drvStatus & DriveInfo::EDriveRom ){
+ state |= FmDriverInfo::EDriveRom;
+ }
+
+ if ( drvStatus & DriveInfo::EDriveRam ){
+ state |= FmDriverInfo::EDriveRam;
+ }
+
+ if ( driveInfo.iMediaAtt & KMediaAttFormattable ){
+ state |= FmDriverInfo::EDriveFormattable;
+ }
+ if ( driveInfo.iMediaAtt & KMediaAttWriteProtected ){
+ state |= FmDriverInfo::EDriveWriteProtected;
+ }
+ if ( driveInfo.iMediaAtt & KMediaAttHasPassword ){
+ state |= FmDriverInfo::EDrivePasswordProtected;
+ }
+ if ( driveInfo.iMediaAtt & KMediaAttLocked ){
+ state |= FmDriverInfo::EDriveLocked;
+ }
+
+ if ( driveInfo.iDriveAtt & KDriveAttRemovable ){
+ state |= FmDriverInfo::EDriveRemovable;
+
+ if ( drvStatus & DriveInfo::EDriveSwEjectable ){
+ state |= FmDriverInfo::EDriveEjectable;
+ }
+ }
+
+ if( driveInfo.iType == EMediaNotPresent ){
+ state |= FmDriverInfo::EDriveNotPresent;
+ }
+ }
+ // If memory card is not ready but type is present,
+ // then check if it is reserved.
+ if( err == KErrNone && volumeInfoErr == KErrNotReady &&
+ driveInfo.iType != EMediaNotPresent )
+ {
+ // Check USB file transfer state
+ TInt prop( ECoreAppUIsUSBFileTransferUninitialized );
+ RProperty::Get(
+ KPSUidCoreApplicationUIs,
+ KCoreAppUIsUSBFileTransfer, prop );
+ if ( prop == ECoreAppUIsUSBFileTransferActive )
+ {
+ errorCode = KErrInUse; // Reserved for file transfer
+ }
+ }
+ if( err!= KErrNone )
+ {
+ errorCode = err;
+ }
+ }
+
+ // handle error code
+ // volumeInfoErr will occur while drive is lock,corrupted...
+ // driveInfoErr can not be promoted for locked, corrupted drive.
+ // so we can not use driveInfoErr to justify EDriveAvailable
+ switch( errorCode )
+ {
+ case KErrNone:
+ // this drive could be used as it is not be locked, or corrupt.
+ state |= FmDriverInfo::EDriveAvailable;
+ break;
+ case KErrLocked:
+ state |= FmDriverInfo::EDriveLocked;
+ break;
+ case KErrCorrupt:
+ state |= FmDriverInfo::EDriveCorrupted;
+ break;
+ case KErrInUse:
+ state |= FmDriverInfo::EDriveInUse;
+ break;
+ default: // other errors
+ state |= FmDriverInfo::EDriveNotPresent;
+ break;
+ }
+ QString logString ( "FmUtils::queryDriverInfo_" + driveName +
+ "_volumeInfoErr:" + QString::number( volumeInfoErr ) +
+ "_driveInfoErr:" + QString::number( driveInfoErr ) +
+ "_errorCode:" + QString::number( errorCode ) +
+ "_driveSatus:" + QString::number( state ) );
+ FM_LOG( logString );
+ return FmDriverInfo( volumeInfo.iSize, volumeInfo.iFree, driveName, volumeName, state );
+}
+
+/*!
+ remove drive password for \a driveName
+ \a Pwd is original password.
+*/
+int FmUtils::removeDrivePwd( const QString &driveName, const QString &Pwd )
+{
+ if( driveName.isEmpty() || Pwd.length() > FmMaxLengthofDrivePassword ) {
+ return FmErrWrongParam;
+ }
+ QString logString = "Drive name:" + driveName;
+ FM_LOG( logString );
+ logString = "Password:" + Pwd;
+ FM_LOG( logString );
+
+ CCoeEnv *env = CCoeEnv::Static();
+ RFs& fs = env->FsSession();
+
+ TInt drive = 0;
+
+ drive = driveName[0].toUpper().toAscii() - 'A' + EDriveA;
+
+ HBufC* password16 = XQConversions::qStringToS60Desc( Pwd );
+ TMediaPassword password;
+ TPtr ptrPassword16( password16->Des() );
+ FmS60Utils::ConvertCharsToPwd( ptrPassword16, password );
+
+ int err( fs.ClearPassword( drive, password ) );
+
+ logString = "Drive:" + QString::number( drive );
+ FM_LOG( logString );
+
+ logString = "Clear password error:" + QString::number( err );
+ FM_LOG( logString );
+
+ delete password16;
+
+ if( err == KErrNone ){
+ return FmErrNone;
+ }
+ else if( err == KErrAccessDenied ){
+ return FmErrAccessDenied;
+ }
+ else{
+ return FmErrUnKnown;
+ }
+}
+
+/*!
+ Unlock drive \a driveName with provided password \a Pwd
+*/
+int FmUtils::unlockDrive( const QString &driveName, const QString &Pwd )
+{
+ if( driveName.isEmpty() || Pwd.length() > FmMaxLengthofDrivePassword ) {
+ return FmErrWrongParam;
+ }
+ QString logString = "Drive name:" + driveName;
+ FM_LOG( logString );
+ logString = "Password:" + Pwd;
+ FM_LOG( logString );
+
+ CCoeEnv *env = CCoeEnv::Static();
+ RFs& fs = env->FsSession();
+
+ TInt drive = 0;
+ drive = driveName[0].toUpper().toAscii() - 'A' + EDriveA;
+
+ HBufC* password16 = XQConversions::qStringToS60Desc( Pwd );
+ TMediaPassword password;
+ TPtr ptrPassword16( password16->Des() );
+ FmS60Utils::ConvertCharsToPwd( ptrPassword16, password );
+
+ int err( fs.UnlockDrive( drive, password, ETrue) );
+
+ logString = "Drive:" + QString::number( drive );
+ FM_LOG( logString );
+ logString = "Unlock drive error:" + QString::number( err );
+ FM_LOG( logString );
+
+ delete password16;
+
+ if( err == KErrNone ){
+ return FmErrNone;
+ }
+ else if( err == KErrAccessDenied ){
+ return FmErrAccessDenied;
+ }
+ else if( err == KErrAlreadyExists ){
+ return FmErrAlreadyExists;
+ }
+ else if( err == KErrNotSupported ){
+ return FmErrNotSupported;
+ }
+ else{
+ return FmErrUnKnown;
+ }
+}
+
+/*!
+ Check if \a pwd is the right password for drive \a driveName
+*/
+int FmUtils::checkDrivePwd( const QString &driveName, const QString &pwd )
+{
+ if( driveName.isEmpty() || pwd.length() > FmMaxLengthofDrivePassword ) {
+ return FmErrWrongParam;
+ }
+ QString logString = "checkDrivePwd Drive name:" + driveName;
+ logString += " password:" + pwd;
+ FM_LOG( logString );
+
+ return setDrivePwd( driveName, pwd, pwd );
+}
+
+/*!
+ Set new password \a newPwd for drive \a driveName. \a oldPwd is old password
+*/
+int FmUtils::setDrivePwd( const QString &driveName, const QString &oldPwd, const QString &newPwd)
+{
+ if( driveName.isEmpty() ||
+ oldPwd.length() > FmMaxLengthofDrivePassword || newPwd.length() > FmMaxLengthofDrivePassword ) {
+ return FmErrWrongParam;
+ }
+ QString logString = "setDrivePwd Drive name:" + driveName ;
+ logString += " Old password:" + oldPwd;
+ logString += " New password:" + newPwd;
+ FM_LOG( logString );
+
+ CCoeEnv *env = CCoeEnv::Static();
+ RFs& fs = env->FsSession();
+
+ TInt drive = 0;
+ drive = driveName[0].toUpper().toAscii() - 'A' + EDriveA;
+
+ HBufC* newPassword16 = XQConversions::qStringToS60Desc( newPwd);
+ HBufC* oldPassword16 = XQConversions::qStringToS60Desc( oldPwd );
+
+ TMediaPassword oldPassword;
+ TMediaPassword newPassword;
+
+ TPtr ptrNewPassword16( newPassword16->Des() );
+ TPtr ptrOldPassword16( oldPassword16->Des() );
+
+ FmS60Utils::ConvertCharsToPwd( ptrNewPassword16, newPassword );
+ FmS60Utils::ConvertCharsToPwd( ptrOldPassword16, oldPassword );
+
+ int err( fs.LockDrive( drive, oldPassword, newPassword, ETrue ) );
+
+ logString = "Drive:" + QString::number( drive );
+ FM_LOG( logString );
+ logString = "Password set error:" + QString::number( err );
+ FM_LOG( logString );
+
+ delete newPassword16;
+ delete oldPassword16;
+ if( err == KErrNone ){
+ return FmErrNone;
+ }
+ else if( err == KErrNotSupported ){
+ return FmErrNotSupported;
+ }
+ else{
+ return FmErrUnKnown;
+ }
+}
+
+/*!
+ Set \a pwd as empty password
+*/
+void FmUtils::emptyPwd( QString &pwd )
+{
+ TBuf< FmMaxLengthofDrivePassword > nullPwd;
+ nullPwd.FillZ( nullPwd.MaxLength() );
+ nullPwd.Zero();
+ pwd = XQConversions::s60DescToQString( nullPwd );
+}
+
+/*!
+ Set drive volume for drive \a driveName
+*/
+int FmUtils::renameDrive( const QString &driveName, const QString &newVolumeName)
+{
+ if( driveName.isEmpty() ) {
+ return FmErrWrongParam;
+ }
+ foreach( const QChar &ch, newVolumeName )
+ {
+ bool a = ch.isSpace();
+ bool b = ch.isLetterOrNumber();
+ // If not alphadigit or space, return error
+ if( !ch.isLetterOrNumber() && !ch.isSpace() )
+ {
+ return FmErrBadName;
+ }
+ }
+
+ CCoeEnv *env = CCoeEnv::Static();
+ RFs& fs = env->FsSession();
+
+ TInt drive = 0;
+ drive = driveName[0].toUpper().toAscii() - 'A' + EDriveA;
+
+ TPtr newName ( ( XQConversions::qStringToS60Desc( newVolumeName ) )->Des() );
+
+ int err( fs.SetVolumeLabel( newName, drive ));
+
+ QString logString = "Rename error:" + QString::number( err );
+ FM_LOG( logString );
+
+ if( err == KErrNone ){
+ return FmErrNone;
+ }
+ else if( err == KErrNotReady ){
+ return FmErrNotReady;
+ }
+ else{
+ return FmErrUnKnown;
+ }
+}
+
+/*!
+ Eject drive \a driveName
+*/
+int FmUtils::ejectDrive( const QString &driveName )
+{
+ if( driveName.isEmpty() ) {
+ return FmErrWrongParam;
+ }
+ QString logString = "FmUtils::ejectDrive start";
+ FM_LOG( logString );
+
+ TInt drive = 0;
+ drive = driveName[0].toUpper().toAscii() - 'A' + EDriveA;
+
+ const int KDriveShift = 16;
+
+ // Let SysAp handle eject
+ RProperty::Set(
+ KPSUidCoreApplicationUIs,
+ KCoreAppUIsMmcRemovedWithoutEject,
+ ECoreAppUIsEjectCommandUsedToDrive | ( drive << KDriveShift )
+ );
+ return FmErrNone;
+}
+
+/*!
+ Check if drive \a driveName is accessable for user
+*/
+bool FmUtils::checkDriveAccessFilter( const QString &driveName )
+{
+ if( driveName.isEmpty() ) {
+ return false;
+ }
+ FmDriverInfo driveInfo = queryDriverInfo( driveName );
+ if( ( driveInfo.driveState()& FmDriverInfo::EDriveRam ) ||
+ ( driveInfo.driveState()& FmDriverInfo::EDriveRom ) ) {
+ return false;
+ }
+ return true;
+}
+
+/*!
+ This function should be called to adjust path if user goto a drive.
+ data folder will be append to C:\ becuase user could only view C:\data instead C:\
+*/
+QString FmUtils::checkDriveToFolderFilter( const QString &path )
+{
+ QString checkedPath = fillPathWithSplash( path );
+ if( checkedPath.compare( Drive_C, Qt::CaseInsensitive ) == 0 ) {
+ checkedPath += QString( "data" ) + QDir::separator();
+ return checkedPath;
+ }
+ return path;
+
+}
+
+/*!
+ This function should be called to adjust path if user back to up level path.
+ If user is at C:\data then path level should be returned as C:\
+ Becuase C:\data is root path for C drive
+*/
+QString FmUtils::checkFolderToDriveFilter( const QString &path )
+{
+ QString logString;
+ logString = QString( "checkFolderToDriveFilter: " ) + path;
+ FM_LOG( logString );
+ QString checkedPath = fillPathWithSplash( path );
+
+ logString = QString( "checkFolderToDriveFilter_fillPathWithSplash: " ) + checkedPath;
+ FM_LOG( logString );
+
+ if( checkedPath.compare( Folder_C_Data, Qt::CaseInsensitive ) == 0 ) {
+ FM_LOG( QString( " change from c:/data/ to C:/" ) );
+ return Drive_C;
+ }
+ return path;
+
+}
+
+/*!
+ Check if \a path is accessable for user
+*/
+int FmUtils::isPathAccessabel( const QString &path )
+{
+ // Used to check if path is accessable, very important feature
+ // and will return filemanager error.
+ FM_LOG( QString( "isPathAccessabel:" ) + path );
+ if( path.isEmpty() ) {
+ return FmErrPathNotExist;
+ }
+
+ // used to filter locked/ejected/corrupted drive
+ // check if drive is available, no matter if it is a drive, a folder, or a file.
+ if( !isDriveAvailable( path ) ) {
+ FM_LOG( QString( "isPathAccessabel false: path is drive and not available" ) );
+ return FmErrDriveNotAvailable;
+ }
+
+ QFileInfo fileInfo( path );
+
+ if( fileInfo.absoluteFilePath().contains( Drive_C, Qt::CaseInsensitive ) &&
+ !fileInfo.absoluteFilePath().contains( Folder_C_Data, Qt::CaseInsensitive ) ) {
+ FM_LOG( QString( "isPathAccessabel false: path contain C and not in data folder" ) );
+ return FmErrPathDenied;
+ }
+ if( !checkDriveAccessFilter( FmUtils::getDriveNameFromPath( fileInfo.absoluteFilePath() ) ) ){
+ return FmErrDriveDenied;
+ }
+ if( !fileInfo.exists() ) {
+ FM_LOG( QString( "isPathAccessabel false: path not exist" ) );
+ return FmErrPathNotExist;
+ }
+ FM_LOG( QString( "isPathAccessabel FmErrNone" ) );
+ return FmErrNone;
+}
+
+/*!
+ Check if drive related to \a path is available.
+ This function should not check if path is available. Only responsible for checking drive
+ When MMC is not inserted, also return false
+*/
+bool FmUtils::isDriveAvailable( const QString &path )
+{
+ FM_LOG( QString( "isDriveAvailable:" ) + path );
+ if( path.isEmpty() ) {
+ return false;
+ }
+ FmDriverInfo::DriveState driveState = queryDriverInfo( path ).driveState();
+ if( ( driveState & FmDriverInfo::EDriveAvailable ) ) {
+ FM_LOG( QString( "isDriveAvailable true" ) );
+ return true;
+ }
+ FM_LOG( QString( "isDriveAvailable false" ) );
+ return false;
+}
+
+/*!
+ Check if \a folderPath is default folder for system
+*/
+bool FmUtils::isDefaultFolder( const QString &folderPath )
+{
+ HBufC *path = XQConversions::qStringToS60Desc( folderPath );
+ TPtrC desFolderPath( path->Des() );
+
+ bool ret( true );
+ TInt pathType( PathInfo::PathType( desFolderPath ) );
+ switch( pathType ){
+ case PathInfo::ENotSystemPath:{
+ QString locString( localize( folderPath ) );
+ if ( locString.isEmpty() ){
+ ret = false;
+ break;
+ }
+ ret = true;
+ break;
+ }
+ case PathInfo::EPhoneMemoryRootPath: // FALL THROUGH
+ case PathInfo::EMemoryCardRootPath: // FALL THROUGH
+ case PathInfo::ERomRootPath:{
+ ret = false;
+ break;
+ }
+ // Accept other folders
+ default:{
+ ret = true;
+ break;
+ }
+ }
+ delete path;
+ return ret;
+}
+
+/*!
+ Create system default folders for drive \a driveName.
+ Default folders should be created after format a drive.
+*/
+void FmUtils::createDefaultFolders( const QString &driveName )
+{
+ if( driveName.isEmpty() ) {
+ return;
+ }
+ int err;
+
+ TInt drive = 0;
+ drive = driveName[0].toUpper().toAscii() - 'A' + EDriveA;
+
+ RFs fs;
+ err = fs.Connect();
+
+ if( err != KErrNone ){
+ return;
+ }
+
+ quint32 drvStatus( 0 );
+ err = DriveInfo::GetDriveStatus( fs, drive, drvStatus );
+ if ( !( drvStatus & DriveInfo::EDriveUserVisible ) ||
+ ( drvStatus & ( DriveInfo::EDriveRemote |
+ DriveInfo::EDriveReadOnly |
+ DriveInfo::EDriveUsbMemory ) ) ){
+ return;
+ }
+
+ TEntry entry;
+ CDesCArray* array = PathInfo::GetListOfPathsLC( drive );
+
+ TInt count( array->MdcaCount() );
+ for ( TInt i( 0 ); i < count; ++i )
+ {
+ TPtrC fullPath( array->MdcaPoint( i ) );
+ TBool allow( ETrue );
+
+ if ( drvStatus & DriveInfo::EDriveRemovable )
+ {
+ // Filter few folder types from physically removable memory cards
+ TInt pathType( PathInfo::PathType( fullPath ) );
+ switch( pathType )
+ {
+ case PathInfo::EGamesPath: // FALL THROUGH
+ case PathInfo::EInstallsPath: // FALL THROUGH
+ case PathInfo::EGsmPicturesPath: // FALL THROUGH
+ case PathInfo::EMmsBackgroundImagesPath: // FALL THROUGH
+ case PathInfo::EPresenceLogosPath:
+ {
+ allow = EFalse;
+ }
+ default:
+ {
+ break;
+ }
+ }
+ }
+
+ if ( allow ){
+ fs.MkDirAll( fullPath ); // Ignore error
+
+ if ( fs.Entry( fullPath, entry ) == KErrNone ){
+ if( entry.IsHidden() ){
+ // If setting fails, File Manager can still go on
+ fs.SetEntry(
+ fullPath, entry.iModified, 0, KEntryAttHidden );
+ }
+ }
+ }
+ }
+ CleanupStack::PopAndDestroy( array );
+}
+
+/*!
+ In Symbian system, default folders will be localized.
+ So localize is used to check if a path is a default folder
+ \sa isDefaultFolder
+*/
+QString FmUtils::localize( const QString &path )
+{
+ // HbDirectoryNameLocalizer can not recognize path with \ in the end
+ QString locPath( removePathSplash( path ) );
+
+ HbDirectoryNameLocalizer localizer;
+ return localizer.translate( locPath );
+}
+
+/*!
+ set the \a desFile attributes as the same with \a srcFile
+*/
+int FmUtils::setFileAttributes( const QString &srcFile, const QString &desFile )
+{
+ RFs fsSession;
+ User::LeaveIfError( fsSession.Connect() );
+ CleanupClosePushL( fsSession );
+ RFile64 src;
+ RFile64 des;
+ HBufC *buf1 = XQConversions::qStringToS60Desc( removePathSplash( formatPath( srcFile ) ) );
+ HBufC *buf2 = XQConversions::qStringToS60Desc( removePathSplash( formatPath( desFile ) ) );
+ User::LeaveIfError( src.Open( fsSession, *buf1, EFileRead | EFileShareReadersOnly ) );
+ User::LeaveIfError( des.Open( fsSession, *buf2, EFileWrite | EFileShareExclusive ) );
+ TTime mod;
+ int err = src.Modified( mod );;
+ if ( err == FmErrNone ) {
+ err = des.SetModified( mod );
+ }
+ TUint att( 0 );
+ if ( err == FmErrNone ) {
+ err = src.Att( att );
+ }
+ if ( err == FmErrNone ) {
+ des.SetAtt( att, ( ~att ) & KEntryAttMaskSupported );
+ }
+ src.Close();
+ des.Close();
+ fsSession.Close();
+ CleanupStack::PopAndDestroy(); // fsSession
+ return err;
+}
+
+/*!
+ judge whether there is enough space on \a targetDrive for \a size.
+ return true if has, false if not.
+*/
+bool FmUtils::hasEnoughSpace( const QString &targetDrive, qint64 size )
+{
+ RFs fsSession;
+ QT_TRAP_THROWING( fsSession.Connect() );
+ CleanupClosePushL( fsSession );
+ TInt dstDrv(0);
+ HBufC* hbuf = XQConversions::qStringToS60Desc( targetDrive );
+ QT_TRAP_THROWING( RFs::CharToDrive( hbuf->operator [](0), dstDrv ) );
+ bool ret = !SysUtil::DiskSpaceBelowCriticalLevelL( &fsSession, size , dstDrv );
+ CleanupStack::PopAndDestroy(); // fsSession
+ return ret;
+
+}
+
+/*!
+ move one file insice the same drive, from \a source to \a target.
+ return KErrNone if successful, otherwise one of the other system-wide error codes.
+*/
+int FmUtils::moveInsideDrive( const QString &source, const QString &target )
+{
+ RFs fsSession;
+ QT_TRAP_THROWING( fsSession.Connect() );
+ CleanupClosePushL( fsSession );
+ HBufC* oldName = XQConversions::qStringToS60Desc( source );
+ HBufC* newName = XQConversions::qStringToS60Desc( target );
+ int ret = fsSession.Rename( *oldName, *newName );
+ CleanupStack::PopAndDestroy(); // fsSession
+ return ret;
+}
+
+/*!
+ Launch a file with associated application.
+*/
+int FmUtils::launchFile( const QString &filePath )
+
+{
+ QFile file( filePath );
+ if( !file.exists() ) {
+ return false;
+ }
+
+ XQApplicationManager mAiwMgr;
+ XQAiwRequest *request = mAiwMgr.create(file);
+ if ( request == 0 ) {
+ // No handlers for the URI
+ return FmErrUnKnown;
+ }
+
+ // Set function parameters
+ QList<QVariant> args;
+ args << file.fileName();
+ request->setArguments(args);
+
+ // Send the request
+ bool res = request->send();
+ if (!res)
+ {
+ // Request failed.
+ int error = request->lastError();
+
+ delete request;
+ return FmErrUnKnown;
+ }
+
+ delete request;
+ return FmErrNone;
+}
+
+/*!
+ Send files( \a filePathList ) with share ui.
+*/
+void FmUtils::sendFiles( QStringList &filePathList )
+{
+ ShareUi shareui;
+ shareui.send( filePathList, false );
+}
+
+/*!
+ return path for backup restore config file.
+ Currently \a appPath is not used.
+*/
+QString FmUtils::getBurConfigPath( QString appPath )
+{
+ Q_UNUSED( appPath );
+ QString path( BURCONFIGFILE );
+ return path;
+}
+
+/*!
+ return MetaData string for \a filePath
+*/
+QString FmUtils::getFileType( const QString &filePath )
+{
+ RApaLsSession apaSession;
+ TDataType dataType;
+ TUid appUid;
+
+ TBuf<128> mimeTypeBuf;
+
+ int err = apaSession.Connect();
+
+ if ( err == KErrNone ){
+ err = apaSession.AppForDocument( XQConversions::qStringToS60Desc( filePath )->Des(),
+ appUid, dataType );
+
+ if( err == KErrNone ){
+ mimeTypeBuf.Copy(dataType.Des8());
+ }
+ }
+
+ apaSession.Close();
+ return XQConversions::s60DescToQString( mimeTypeBuf );
+}
+
+/*!
+ Check if drive \a driveName is drive C
+*/
+bool FmUtils::isDriveC( const QString &driveName )
+{
+ if( driveName.isEmpty() ) {
+ return false;
+ }
+ TInt drive = 0;
+ drive = driveName[0].toUpper().toAscii() - 'A' + EDriveA;
+ if( drive == EDriveC ){
+ return true;
+ }
+ else{
+ return false;
+ }
+
+}
+
+/*!
+ return max file name length
+*/
+int FmUtils::getMaxFileNameLength()
+{
+ return KMaxFileName;
+}
+
+/*!
+ Check if length of \a path is exceed max path length.
+*/
+bool FmUtils::checkMaxPathLength( const QString& path )
+{
+ if( path.length() > KMaxPath ) {
+ return false;
+ }
+ return true;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmutils_win.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,253 @@
+/*
+* 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 "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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The source file of the file manager utilities on windows
+*/
+
+#include "fmutils.h"
+
+#include <windows.h>
+
+#include <QDir>
+#include <QUrl>
+#include <QVariant>
+#include <QFileInfo>
+#include <QDesktopServices>
+
+#include <hbglobal.h>
+
+#define BURCONFIGFILE "burconfig.xml"
+const int KMaxFileName=0x100;
+const int KMaxPath=0x100;
+
+FmDriverInfo FmUtils::queryDriverInfo( const QString &driveName )
+{
+ quint64 size = 0;
+ quint64 freeSize = 0;
+ QString drive = driveName;
+
+ drive.replace( '/', "\\" );
+ if ( drive.right(1) != "\\" ) {
+ drive.append( "\\" );
+ }
+ GetDiskFreeSpaceEx( (LPCWSTR)drive.constData(),
+ (PULARGE_INTEGER)&freeSize,
+ (PULARGE_INTEGER)&size,
+ 0 );
+
+ TCHAR volumeName[MAX_PATH + 1] = { 0 };
+ GetVolumeInformation( (LPCWSTR)drive.constData(),
+ &volumeName[0],
+ MAX_PATH + 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0 );
+
+ quint32 state( 0 );
+ quint32 drvStatus = GetDriveType( (LPCWSTR)drive.constData() );
+ if ( drvStatus == DRIVE_REMOVABLE ) {
+ state |= FmDriverInfo::EDriveRemovable;
+ }
+
+ if( !(state&FmDriverInfo::EDriveNotPresent) && !(state&FmDriverInfo::EDriveLocked) &&
+ !(state&FmDriverInfo::EDriveCorrupted) ) {
+ state |= FmDriverInfo::EDriveAvailable;
+ }
+ return FmDriverInfo( size, freeSize, driveName, QString::fromWCharArray( &volumeName[0] ), state );
+}
+
+int FmUtils::removeDrivePwd( const QString &driveName, const QString &Pwd )
+{
+ Q_UNUSED( driveName );
+ Q_UNUSED( Pwd );
+ return 0;
+}
+
+int FmUtils::unlockDrive( const QString &driveName, const QString &Pwd )
+{
+ Q_UNUSED( driveName );
+ Q_UNUSED( Pwd );
+ return 0;
+}
+
+int FmUtils::checkDrivePwd( const QString &driveName, const QString &pwd)
+{
+ Q_UNUSED( driveName );
+ Q_UNUSED( pwd );
+ return 0;
+}
+
+int FmUtils::setDrivePwd( const QString &driveName, const QString &oldPwd, const QString &newPwd)
+{
+ Q_UNUSED( driveName );
+ Q_UNUSED( oldPwd );
+ Q_UNUSED( newPwd );
+ return 0;
+}
+
+void FmUtils::emptyPwd( QString &pwd )
+{
+ Q_UNUSED( pwd );
+}
+
+int FmUtils::renameDrive( const QString &driveName, const QString &newVolumeName)
+{
+ Q_UNUSED( driveName );
+ foreach( const QChar &ch, newVolumeName )
+ {
+ // If not alphadigit or space, return error
+ if( !ch.isLetterOrNumber() && !ch.isSpace() )
+ {
+ return FmErrBadName;
+ }
+ }
+ return 0;
+}
+
+int FmUtils::ejectDrive( const QString &driveName )
+{
+ Q_UNUSED( driveName );
+ return FmErrNone;
+}
+
+bool FmUtils::checkDriveAccessFilter( const QString &driveName )
+{
+ Q_UNUSED( driveName );
+ return true;
+}
+
+QString FmUtils::checkDriveToFolderFilter( const QString &path )
+{
+ Q_UNUSED( path );
+ return path;
+
+}
+
+QString FmUtils::checkFolderToDriveFilter( const QString &path )
+{
+ Q_UNUSED( path );
+ return path;
+
+}
+
+int FmUtils::isPathAccessabel( const QString &path )
+{
+ Q_UNUSED( path );
+ return FmErrNone;
+}
+
+bool FmUtils::isDriveAvailable( const QString &path )
+{
+ Q_UNUSED( path );
+ return true;
+}
+
+bool FmUtils::isDefaultFolder( const QString &folderPath )
+{
+ Q_UNUSED( folderPath );
+ return false;
+}
+
+void FmUtils::createDefaultFolders( const QString &driveName )
+{
+ Q_UNUSED( driveName );
+}
+
+/*!
+ set the \a desFile attributes as the same with \a srcFile
+*/
+int FmUtils::setFileAttributes( const QString &srcFile, const QString &desFile )
+{
+ Q_UNUSED( srcFile );
+ Q_UNUSED( desFile );
+ return FmErrNone;
+}
+
+/*!
+ judge whether there is enough space on \a targetDrive for \a size.
+ return true if has, false if not.
+*/
+bool FmUtils::hasEnoughSpace( const QString &targetDrive, qint64 size )
+{
+ Q_UNUSED( targetDrive );
+ Q_UNUSED( size );
+ return true;
+}
+
+/*!
+ move one file insice the same drive, from \a source to \a target.
+ return KErrNone if successful, otherwise one of the other system-wide error codes.
+*/
+int FmUtils::moveInsideDrive( const QString &source, const QString &target )
+{
+ Q_UNUSED( source );
+ Q_UNUSED( target );
+ return FmErrNone;
+}
+
+int FmUtils::launchFile( const QString &filePath )
+{
+ if( QDesktopServices::openUrl( QUrl::fromLocalFile( filePath ) ) ) {
+ return FmErrNone;
+ } else {
+ return FmErrGeneral;
+ }
+}
+
+void FmUtils::sendFiles( QStringList &filePathList )
+{
+ Q_UNUSED( filePathList );
+}
+
+QString FmUtils::getBurConfigPath( QString appPath )
+{
+ QFileInfo fileInfo( appPath );
+ QString testString = fileInfo.absolutePath();
+ QString path = fillPathWithSplash( fileInfo.absolutePath() );
+ path = path + QString( "src/filemanager/" );
+ path = path + QString( BURCONFIGFILE );
+ return path;
+}
+
+QString FmUtils::getFileType( const QString &filePath )
+{
+ Q_UNUSED( filePath );
+ return QString( "" );
+}
+
+bool FmUtils::isDriveC( const QString &driveName )
+{
+ if( driveName.contains(Drive_C,Qt::CaseInsensitive) ){
+ return true;
+ }
+ else{
+ return false;
+ }
+}
+
+int FmUtils::getMaxFileNameLength()
+{
+ return KMaxFileName;
+}
+
+bool FmUtils::checkMaxPathLength( const QString& path )
+{
+ if( path.length() > KMaxPath ) {
+ return false;
+ }
+ return true;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/tsrc/tsrc.pro Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,26 @@
+#
+# 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 "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:
+#
+
+TEMPLATE = subdirs
+SUBDIRS = unit/unit_backuprestoresettings
+
+CONFIG += ordered
+#CONFIG += symbian_test
+test.depends = first
+test.CONFIG += recursive
+autotest.depends = first
+autotest.CONFIG += recursive
+QMAKE_EXTRA_TARGETS += test autotest
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/tsrc/unit/unit_backuprestoresettings/runtest.bat Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,19 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+
+\epoc32\RELEASE\WINSCW\udeb\unit_backuprestoresettings.exe -xml -o c:\unit_backuprestoresettings.xml
+copy \epoc32\winscw\c\unit_backuprestoresettings.xml
+del \epoc32\winscw\c\unit_backuprestoresettings.xml
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/tsrc/unit/unit_backuprestoresettings/src/unit_backuprestoresettings.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,358 @@
+/*
+* 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 "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: This class is test case for backupsettings and restoresettings
+*
+*/
+
+#include <QtTest/QtTest>
+
+#include "fmbackupsettings.h"
+#include "fmrestoresettings.h"
+#include "fmbkupengine.h"
+#include <QStringList>
+
+#include <hbglobal.h>
+#include <QTranslator>
+#include <QLocale>
+
+class TestSettings: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ // init test strings those are used to verify string fetch feature of FmBackupSettings.
+ void initTestCase();
+
+ void testTestSettingsContentAll();
+ void testTestSettingsContentOne();
+ void testTestSettingsContentTwo();
+
+ void testContentToString();
+ void testContentToString_data();
+
+ void testSchedulingToString();
+ void testSchedulingToString_data();
+
+ void testWeekdayToString();
+ void testWeekdayToString_data();
+
+ void testFmBackupEntry();
+
+ void testFmRestoreInfo();
+ void testFmRestoreEntry();
+
+ void cleanupTestCase(); // Finalize test data
+
+private:
+ FmBackupSettings *settings;
+ QString mFileManagerBackupWeekdayMonday;
+ QString mFileManagerBackupWeekdayTuesday;
+ QString mFileManagerBackupWeekdayWednesday;
+ QString mFileManagerBackupWeekdayThursday;
+ QString mFileManagerBackupWeekdayFirday;
+ QString mFileManagerBackupWeekdaySaturday;
+ QString mFileManagerBackupWeekdaySunday;
+
+ QString mFileManagerBackupScheduleNever;
+ QString mFileManagerBackupScheduleDaily;
+ QString mFileManagerBackupScheduleWeekly;
+
+ QString mFileManagerBackupSettingsTitleContents;
+ QString mFileManagerBackupSettingsTitleScheduling;
+ QString mFileManagerBackupSettingsTitleWeekday;
+ QString mFileManagerBackupSettingsTitleTime;
+ QString mFileManagerBackupSettingsTitleTargetDrive;
+
+ QString mFileManagerBackupSettingsContentAll;
+ QString mFileManagerBackupSettingsContentSettings;
+ QString mFileManagerBackupSettingsContentMessages;
+ QString mFileManagerBackupSettingsContentContacts;
+ QString mFileManagerBackupSettingsContentCalendar;
+ QString mFileManagerBackupSettingsContentBookmarks;
+ QString mFileManagerBackupSettingsContentUserFiles;
+};
+
+void TestSettings::initTestCase()
+{
+ // install translator
+ QTranslator translator;
+ QString lang = QLocale::system().name();
+ QString path = "z:/resource/qt/translations/";
+ translator.load( path + "filemanager_" + lang );
+ QCoreApplication::installTranslator(&translator);
+
+ // init localized string
+ mFileManagerBackupWeekdayMonday = hbTrId( "Monday" );
+ mFileManagerBackupWeekdayTuesday = hbTrId( "Tuesday" );
+ mFileManagerBackupWeekdayWednesday = hbTrId( "Wednesday" );
+ mFileManagerBackupWeekdayThursday = hbTrId( "Thursday" );
+ mFileManagerBackupWeekdayFirday = hbTrId( "Friday" );
+ mFileManagerBackupWeekdaySaturday = hbTrId( "Saturday" );
+ mFileManagerBackupWeekdaySunday = hbTrId( "Sunday" );
+
+ mFileManagerBackupScheduleNever = hbTrId( "Never" );
+ mFileManagerBackupScheduleDaily = hbTrId( "Daily" );
+ mFileManagerBackupScheduleWeekly = hbTrId( "Weekly" );
+
+ mFileManagerBackupSettingsTitleContents = hbTrId( "Backup Contents" );
+ mFileManagerBackupSettingsTitleScheduling = hbTrId( "Backup scheduling" );
+ mFileManagerBackupSettingsTitleWeekday = hbTrId( "Weekday" );
+ mFileManagerBackupSettingsTitleTime = hbTrId( "Time" );
+ mFileManagerBackupSettingsTitleTargetDrive = hbTrId( "Backup destination" );
+
+ mFileManagerBackupSettingsContentAll = hbTrId( "All" );
+ mFileManagerBackupSettingsContentSettings = hbTrId( "Settings" );
+ mFileManagerBackupSettingsContentMessages = hbTrId( "Messages" );
+ mFileManagerBackupSettingsContentContacts = hbTrId( "Contacts" );
+ mFileManagerBackupSettingsContentCalendar = hbTrId( "Calendar" );
+ mFileManagerBackupSettingsContentBookmarks = hbTrId( "Bookmarks" );
+ mFileManagerBackupSettingsContentUserFiles = hbTrId( "Files" );
+}
+
+void TestSettings::cleanupTestCase()
+{
+ QCoreApplication::processEvents();
+}
+
+void TestSettings::testTestSettingsContentAll()
+{
+ FmBkupEngine *backupEngine = new FmBkupEngine( this );
+ settings = new FmBackupSettings( backupEngine );
+ QTime time = QTime::currentTime();
+ settings->setContent(FmBackupSettings::EFileManagerBackupContentAll);
+ settings->setScheduling(FmBackupSettings::EFileManagerBackupScheduleWeekly);
+ settings->setWeekday(FmBackupSettings::EFileManagerBackupWeekdayMonday);
+ settings->setTime(time);
+ settings->setTargetDrive("C:");
+
+ settings->save();
+ delete settings;
+
+
+ settings = new FmBackupSettings( backupEngine );
+ settings->load();
+
+ QVERIFY(settings->content() == FmBackupSettings::EFileManagerBackupContentAll);
+ QVERIFY(settings->scheduling() == FmBackupSettings::EFileManagerBackupScheduleWeekly);
+ QVERIFY(settings->weekday() == FmBackupSettings::EFileManagerBackupWeekdayMonday);
+ QVERIFY( settings->time().toString() == time.toString() );
+ QVERIFY(settings->targetDrive() == "C:");
+
+ QList< FmBackupEntry* > backupEntryList = settings->backupEntryList();
+
+ for( int i = 0; i< backupEntryList.count(); i++ )
+ {
+ FmBackupEntry* entry = backupEntryList[i];
+ switch( entry->type() )
+ {
+ case FmBackupEntry::EContents:
+ {
+ QVERIFY( entry->title() == mFileManagerBackupSettingsTitleContents );
+ break;
+ }
+ case FmBackupEntry::EScheduling:
+ {
+ QVERIFY( entry->title() == mFileManagerBackupSettingsTitleScheduling );
+ break;
+ }
+ case FmBackupEntry::EWeekday:
+ {
+ QVERIFY( entry->title() == mFileManagerBackupSettingsTitleWeekday );
+ break;
+ }
+ case FmBackupEntry::ETime:
+ {
+ QVERIFY( entry->title() == mFileManagerBackupSettingsTitleTime );
+ break;
+ }
+ case FmBackupEntry::ETarget:
+ {
+ QVERIFY( entry->title() == mFileManagerBackupSettingsTitleTargetDrive );
+ break;
+ }
+
+ }
+ qDebug( entry->title().toUtf8().data() );
+ qDebug( entry->tips().toUtf8().data() );
+ }
+ delete backupEngine;
+}
+
+
+void TestSettings::testTestSettingsContentOne()
+{
+ FmBkupEngine *backupEngine = new FmBkupEngine( this );
+ settings = new FmBackupSettings( backupEngine );
+ QTime time = QTime::currentTime();
+ settings->setContent(FmBackupSettings::EFileManagerBackupContentSettings |
+ FmBackupSettings::EFileManagerBackupContentMessages);
+ settings->setScheduling(FmBackupSettings::EFileManagerBackupScheduleWeekly);
+ settings->setWeekday(FmBackupSettings::EFileManagerBackupWeekdayWednesday);
+ settings->setTime(time);
+ settings->setTargetDrive("E:");
+
+ settings->save();
+ delete settings;
+
+ settings = new FmBackupSettings( backupEngine );
+ settings->load();
+
+ QVERIFY(settings->content() == quint32(FmBackupSettings::EFileManagerBackupContentSettings |
+ FmBackupSettings::EFileManagerBackupContentMessages));
+ QVERIFY(settings->scheduling() == FmBackupSettings::EFileManagerBackupScheduleWeekly);
+ QVERIFY(settings->weekday() == FmBackupSettings::EFileManagerBackupWeekdayWednesday);
+ QVERIFY( settings->time().toString() == time.toString() );
+ QVERIFY(settings->targetDrive() == "E:");
+ delete backupEngine;
+}
+
+void TestSettings::testTestSettingsContentTwo()
+{
+ FmBkupEngine *backupEngine = new FmBkupEngine( this );
+ settings = new FmBackupSettings( backupEngine );
+ QTime time = QTime::currentTime();
+ settings->setContent(FmBackupSettings::EFileManagerBackupContentSettings |
+ FmBackupSettings::EFileManagerBackupContentMessages);
+ settings->setScheduling(FmBackupSettings::EFileManagerBackupScheduleWeekly);
+ settings->setWeekday(FmBackupSettings::EFileManagerBackupWeekdayWednesday);
+ settings->setTime(time);
+ settings->setTargetDrive("E:");
+
+ settings->save();
+ delete settings;
+
+ settings = new FmBackupSettings( backupEngine );
+ settings->load();
+
+ QVERIFY(settings->content() == quint32( FmBackupSettings::EFileManagerBackupContentSettings |
+ FmBackupSettings::EFileManagerBackupContentMessages ) );
+ QVERIFY(settings->scheduling() == FmBackupSettings::EFileManagerBackupScheduleWeekly);
+ QVERIFY(settings->weekday() == FmBackupSettings::EFileManagerBackupWeekdayWednesday);
+ QVERIFY( settings->time().toString() == time.toString() );
+ QVERIFY(settings->targetDrive() == "E:");
+ delete backupEngine;
+}
+
+void TestSettings::testContentToString()
+{
+ QFETCH(quint32, param);
+ QFETCH(QString, value);
+
+ QCOMPARE(FmBackupSettings::contentToString( param ), value);
+}
+
+void TestSettings::testContentToString_data()
+{
+ QTest::addColumn<quint32>("param");
+ QTest::addColumn<QString>("value");
+
+ QTest::newRow("contentToString_0") << (quint32)FmBackupSettings::EFileManagerBackupContentAll << mFileManagerBackupSettingsContentAll;
+ QTest::newRow("contentToString_1") << (quint32)FmBackupSettings::EFileManagerBackupContentSettings << mFileManagerBackupSettingsContentSettings;
+ QTest::newRow("contentToString_2") << (quint32)FmBackupSettings::EFileManagerBackupContentMessages << mFileManagerBackupSettingsContentMessages;
+ QTest::newRow("contentToString_3") << (quint32)FmBackupSettings::EFileManagerBackupContentContacts << mFileManagerBackupSettingsContentContacts;
+ QTest::newRow("contentToString_4") << (quint32)FmBackupSettings::EFileManagerBackupContentCalendar << mFileManagerBackupSettingsContentCalendar;
+ QTest::newRow("contentToString_5") << (quint32)FmBackupSettings::EFileManagerBackupContentBookmarks << mFileManagerBackupSettingsContentBookmarks;
+ QTest::newRow("contentToString_6") << (quint32)FmBackupSettings::EFileManagerBackupContentUserFiles << mFileManagerBackupSettingsContentUserFiles;
+}
+
+void TestSettings::testSchedulingToString()
+{
+ QFETCH(int, param);
+ QFETCH(QString, value);
+ FmBkupEngine *backupEngine = new FmBkupEngine( this );
+ settings = new FmBackupSettings( backupEngine );
+ QCOMPARE(settings->schedulingToString( (FmBackupSettings::TFileManagerBackupSchedule)param ), value);
+}
+
+void TestSettings::testSchedulingToString_data()
+{
+ QTest::addColumn<int>("param");
+ QTest::addColumn<QString>("value");
+
+ QTest::newRow("schedulingToString_0") << (int)FmBackupSettings::EFileManagerBackupScheduleNever << mFileManagerBackupScheduleNever;
+ QTest::newRow("schedulingToString_1") << (int)FmBackupSettings::EFileManagerBackupScheduleDaily << mFileManagerBackupScheduleDaily;
+ QTest::newRow("schedulingToString_2") << (int)FmBackupSettings::EFileManagerBackupScheduleWeekly << mFileManagerBackupScheduleWeekly;
+}
+
+void TestSettings::testWeekdayToString()
+{
+ QFETCH(int, param);
+ QFETCH(QString, value);
+
+ QCOMPARE(FmBackupSettings::weekdayToString( (FmBackupSettings::TFileManagerBackupWeekday)param ), value);
+}
+
+void TestSettings::testWeekdayToString_data()
+{
+
+ QTest::addColumn<int>("param");
+ QTest::addColumn<QString>("value");
+
+ QTest::newRow("weekdayToString_0") << (int)FmBackupSettings::EFileManagerBackupWeekdayMonday << mFileManagerBackupWeekdayMonday;
+ QTest::newRow("weekdayToString_1") << (int)FmBackupSettings::EFileManagerBackupWeekdayTuesday << mFileManagerBackupWeekdayTuesday;
+ QTest::newRow("weekdayToString_2") << (int)FmBackupSettings::EFileManagerBackupWeekdayWednesday << mFileManagerBackupWeekdayWednesday;
+ QTest::newRow("weekdayToString_3") << (int)FmBackupSettings::EFileManagerBackupWeekdayThursday << mFileManagerBackupWeekdayThursday;
+ QTest::newRow("weekdayToString_4") << (int)FmBackupSettings::EFileManagerBackupWeekdayFriday << mFileManagerBackupWeekdayFirday;
+ QTest::newRow("weekdayToString_5") << (int)FmBackupSettings::EFileManagerBackupWeekdaySaturday << mFileManagerBackupWeekdaySaturday;
+ QTest::newRow("weekdayToString_6") << (int)FmBackupSettings::EFileManagerBackupWeekdaySunday << mFileManagerBackupWeekdaySunday;
+}
+
+
+void TestSettings::testFmBackupEntry()
+{
+ FmBackupEntry backupEntry( "title","tips", FmBackupEntry::EContents );
+ QVERIFY( backupEntry.title() == "title" );
+ QVERIFY( backupEntry.tips() == "tips" );
+ QVERIFY( backupEntry.type() == FmBackupEntry::EContents );
+
+ FmBackupEntry backupEntryCopy( backupEntry );
+ QVERIFY( backupEntryCopy.title() == "title" );
+ QVERIFY( backupEntryCopy.tips() == "tips" );
+ QVERIFY( backupEntryCopy.type() == FmBackupEntry::EContents );
+
+}
+
+void TestSettings::testFmRestoreInfo()
+{
+ QDateTime dateTime = QDateTime::currentDateTime();
+ FmRestoreInfo restoreInfo((quint32)FmBackupSettings::EFileManagerBackupContentSettings, dateTime, "E:" );
+ QVERIFY( restoreInfo.content() == (quint32)FmBackupSettings::EFileManagerBackupContentSettings );
+ QVERIFY( restoreInfo.dateTime().toString() == dateTime.toString() );
+ QVERIFY( restoreInfo.drive() == "E:" );
+
+ FmRestoreInfo restoreInfoCopy( restoreInfo );
+ QVERIFY( restoreInfoCopy.content() == restoreInfo.content() );
+ QVERIFY( restoreInfoCopy.dateTime().toString() == restoreInfo.dateTime().toString() );
+ QVERIFY( restoreInfoCopy.drive() == restoreInfo.drive() );
+
+ FmRestoreInfo restoreInfoNext = restoreInfo;
+ QVERIFY( restoreInfoNext.content() == restoreInfo.content() );
+ QVERIFY( restoreInfoNext.dateTime().toString() == restoreInfo.dateTime().toString() );
+ QVERIFY( restoreInfoNext.drive() == restoreInfo.drive() );
+}
+
+void TestSettings::testFmRestoreEntry()
+{
+ QDateTime dateTime = QDateTime::currentDateTime();
+ FmRestoreInfo restoreInfo((quint32)FmBackupSettings::EFileManagerBackupContentSettings, dateTime, "E:" );
+
+ FmRestoreEntry restoreEntry( "displayText", restoreInfo );
+ QVERIFY( restoreEntry.text() == "displayText");
+ QVERIFY( restoreEntry.restoreInfo().content() == (quint32)FmBackupSettings::EFileManagerBackupContentSettings );
+ QVERIFY( restoreEntry.restoreInfo().dateTime().toString() == dateTime.toString() );
+ QVERIFY( restoreEntry.restoreInfo().drive() == "E:" );
+}
+
+QTEST_MAIN(TestSettings)
+#include "unit_backuprestoresettings.moc"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/tsrc/unit/unit_backuprestoresettings/unit_backuprestoresettings.pro Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,45 @@
+#
+# 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 "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:
+#
+
+QT += testlib
+CONFIG += qtestlib
+CONFIG += symbian_test
+CONFIG += hb
+TEMPLATE = app
+TARGET =
+include ( ../../../src/inc/commoninc.pri )
+include ( ../../../src/common.pri )
+DEPENDPATH += .
+INCLUDEPATH += .
+INCLUDEPATH += ../../../src/fmbkupenginewrapper/inc
+INCLUDEPATH += ../../../src/inc
+TARGET.CAPABILITY = ALL -TCB
+# Input
+SOURCES += src/unit_backuprestoresettings.cpp
+LIBS += -lfmbkupenginewrapper
+
+unix {
+ test.commands = /epoc32/RELEASE/WINSCW/udeb/unit_backuprestoresettings.exe
+ autotest.commands = /epoc32/RELEASE/WINSCW/udeb/unit_backuprestoresettings.exe -xml -o c:/unit_backuprestoresettings.xml
+} else:win32 {
+ test.CONFIG += recursive
+ autotest.CONFIG += recursive
+ build_pass {
+ test.commands =/epoc32/RELEASE/WINSCW/udeb/unit_backuprestoresettings.exe
+ autotest.commands =/epoc32/RELEASE/WINSCW/udeb/unit_backuprestoresettings -xml -o c:/unit_backuprestoresettings.xml
+ }
+}
+QMAKE_EXTRA_TARGETS += test autotest
\ No newline at end of file
--- a/files_plat/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-/*
-* Copyright (c) 2006 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: Includes all the Domain API specific bld.inf files, which
-* export files.
-*
-*/
-
-
-
-#include "../memory_scan_popup_ui_api/group/bld.inf"
--- a/files_plat/memory_scan_popup_ui_api/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* Copyright (c) 2006-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: File that exports the files belonging to
-: Memory Scan Popup UI API
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-../inc/CMemStatePopup.h APP_LAYER_PLATFORM_EXPORT_PATH(cmemstatepopup.h)
-../inc/MSPUtil.h APP_LAYER_PLATFORM_EXPORT_PATH(msputil.h)
--- a/files_plat/memory_scan_popup_ui_api/inc/CMemStatePopup.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* Memory State Popup.
-*
-*
-*/
-
-
-#ifndef __CMEMORYSTATEPOPUP_H__
-#define __CMEMORYSTATEPOPUP_H__
-
-// SYSTEM INCLUDES
-#include <e32base.h>
-
-// USER INCLUDES
-#include "msputil.h"
-
-// CONSTANTS
-const TText KRightToLeftMark = 0x200F;
-
-// CLASS DEFINITION
-class CMemStatePopup : public CBase
- {
- public:
- // Destructor
- virtual ~CMemStatePopup( );
-
- private:
- // C++ constructors
- CMemStatePopup( );
-
- public:
- /**
- * Launches the memory scan popup
- * @param aDrive The drive to be scanned
- * @param aTitle Title of the popup
- */
- IMPORT_C static void RunLD( TDriveNumber aDrive, TDesC& aTitle );
-
- /**
- * Get an instance of CMSPUtil class, containing the unit text array
- * @param aUtil Reference to a CMSPUtil pointer,
- * updated to point to the instance created
- */
- IMPORT_C static void GetUtilL( CMSPUtil*& aUtil );
-
- private:
- // Not implemented
- CMemStatePopup( const CMemStatePopup& );
- CMemStatePopup& operator=( CMemStatePopup& );
-
- private:
- };
-
-#endif // __CMEMORYSTATEPOPUP_H__
-
-// End of File
--- a/files_plat/memory_scan_popup_ui_api/inc/MSPUtil.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
-* Copyright (c) 2002 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:
-* Utility class for Memory State Popup.
-*
-*
-*/
-
-
-#ifndef __CMSPUTIL_H__
-#define __CMSPUTIL_H__
-
-// INCLUDES
-#include <e32base.h>
-#include <badesca.h>
-
-
-// CLASS DEFINITION
-
-class CMSPUtil : public CBase
- {
- public:
- /**
- * Static constructor.
- * @param aArray Array of unit texts.
- * @return Pointer to an instance of CMSPUtil.
- */
- static CMSPUtil* NewL( CDesCArrayFlat* aArray );
-
- /**
- * Virtual D'tor.
- */
- virtual ~CMSPUtil( );
-
- protected:
- /**
- * Default c'tor, protected to prevent using directly.
- */
- CMSPUtil( );
-
- public:
- /**
- * Type of unit.
- */
- enum TUnitType
- {
- EByte = 0,
- EKiloByte,
- EMegaByte,
- EGigaByte,
- ETeraByte
- };
-
- public:
- /**
- * Solves the correct unit for given data size.
- * @param aNumber Amount of data to be solved, changed accordingly.
- * @return Unit text descriptor.
- */
- IMPORT_C TPtrC SolveUnitAndSize( TInt64& aNumber );
-
- private:
- /**
- * Solves the correct unit for given data size, used internally.
- * @param aNumber Amount of data to be solved, changed accordingly.
- * @param aUnit Unit text index in unit array.
- */
- void SolveUnitAndSize( TInt64& aNumber, TInt& aUnit );
-
- private:
- CDesCArrayFlat* iUnitArray;
- };
-
-#endif // __CMSPUTIL_H__
--- a/files_plat/memory_scan_popup_ui_api/memory_scan_popup_ui_api.metaxml Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" ?>
-<api id="3fb9277e3611d81e27f94c61495a3e70" dataversion="2.0">
- <name>Memory Scan Popup UI API</name>
- <description>An interface for showing a pop-up dialog about the memory status of the user data area or memory card.</description>
- <type>c++</type>
- <collection>filesystemuis</collection>
- <libs>
- <lib name="memstatepopup.lib" />
- </libs>
- <release category="platform"/>
- <attributes>
- <!-- This indicates wether the api provedes separate html documentation -->
- <!-- or is the additional documentation generated from headers. -->
- <!-- If you are unsuere then the value is "no" -->
- <htmldocprovided>no</htmldocprovided>
- <adaptation>no</adaptation>
- </attributes>
-</api>
--- a/filesystemuis/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2006 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: bld for filesystemuis
-*
-*/
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-PRJ_MMPFILES
-
-#include "../memscaneng/group/bld.inf"
-#include "../memstatepopup/group/bld.inf"
-
-
-PRJ_TESTMMPFILES
-
-// End of File
--- a/filesystemuis/memscaneng/bwins/MemScanClientU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-EXPORTS
- ??0RMemScanClient@@QAE@XZ @ 1 NONAME ; RMemScanClient::RMemScanClient(void)
- ?Close@RMemScanClient@@QAEXXZ @ 2 NONAME ; void RMemScanClient::Close(void)
- ?Connect@RMemScanClient@@QAEHXZ @ 3 NONAME ; int RMemScanClient::Connect(void)
- ?DataGroupsL@RMemScanClient@@QBEPAVCDesC16Array@@XZ @ 4 NONAME ; class CDesC16Array * RMemScanClient::DataGroupsL(void) const
- ?RequestScanEvents@RMemScanClient@@QAEXAAHAAVTRequestStatus@@@Z @ 5 NONAME ; void RMemScanClient::RequestScanEvents(int &, class TRequestStatus &)
- ?RequestScanEventsCancel@RMemScanClient@@QAEXXZ @ 6 NONAME ; void RMemScanClient::RequestScanEventsCancel(void)
- ?Scan@RMemScanClient@@QAEHW4TDriveNumber@@@Z @ 7 NONAME ; int RMemScanClient::Scan(enum TDriveNumber)
- ?ScanInProgress@RMemScanClient@@QBEHXZ @ 8 NONAME ; int RMemScanClient::ScanInProgress(void) const
- ?ScanResultL@RMemScanClient@@QBEPAV?$CArrayFix@_J@@XZ @ 9 NONAME ; class CArrayFix<long long> * RMemScanClient::ScanResultL(void) const
-
--- a/filesystemuis/memscaneng/bwins/msengu.def Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-EXPORTS
- ??1CMseng@@UAE@XZ @ 1 NONAME ; CMseng::~CMseng(void)
- ?CancelL@CMseng@@QAEXXZ @ 2 NONAME ; void CMseng::CancelL(void)
- ?DataGroupsL@CMseng@@QBEPAVCDesC16Array@@XZ @ 3 NONAME ; class CDesC16Array * CMseng::DataGroupsL(void) const
- ?DiskInfoL@CMseng@@QBEXAA_J0W4TDriveNumber@@@Z @ 4 NONAME ; void CMseng::DiskInfoL(long long &, long long &, enum TDriveNumber) const
- ?MemInfoL@CMseng@@SAXAA_J0@Z @ 5 NONAME ; void CMseng::MemInfoL(long long &, long long &)
- ?NewL@CMseng@@SAPAV1@AAVMMsengUIHandler@@@Z @ 6 NONAME ; class CMseng * CMseng::NewL(class MMsengUIHandler &)
- ?ScanInProgress@CMseng@@QBEHXZ @ 7 NONAME ; int CMseng::ScanInProgress(void) const
- ?ScanL@CMseng@@QAEXW4TDriveNumber@@@Z @ 8 NONAME ; void CMseng::ScanL(enum TDriveNumber)
- ?ScanResultL@CMseng@@QBEPAV?$CArrayFix@_J@@XZ @ 9 NONAME ; class CArrayFix<long long> * CMseng::ScanResultL(void) const
-
--- a/filesystemuis/memscaneng/clientinc/memscanclient.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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: Memory Scan Client
-*
-*/
-
-
-#ifndef __MEMSCANCLIENT_H__
-#define __MEMSCANCLIENT_H__
-
-#include <e32std.h>
-#include <f32file.h> // TDriveNumber
-#include <badesca.h> // Descriptor arrays
-
-#include "memscanclientserver.h"
-
-// ---------------------------------------------------------------------------
-// Client
-// ---------------------------------------------------------------------------
-
-class RMemScanClient : public RSessionBase
- {
-public:
- IMPORT_C RMemScanClient();
- IMPORT_C TInt Connect();
- IMPORT_C void Close();
-
-public: // API
- IMPORT_C TInt Scan(const TDriveNumber aDrive);
- IMPORT_C CDesCArray* DataGroupsL() const;
- IMPORT_C void RequestScanEvents( TInt& aError, TRequestStatus& aRequestStatus );
- IMPORT_C void RequestScanEventsCancel();
- IMPORT_C TBool ScanInProgress( ) const;
- IMPORT_C CArrayFix<TInt64>* ScanResultL() const;
-
-private:
- TPtr8 iScanEventPackagePointer;
- };
-
-
-#endif //__MEMSCANCLIENT_H__
--- a/filesystemuis/memscaneng/clientsrc/memscanclient.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,260 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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: Memory Scan Client
-*
-*/
-
-
-
-// SYSTEM INCLUDES
-#include <e32svr.h>
-#include <s32mem.h> // RBufReadStream
-
-// USER INCLUDES
-#include "memscanclient.h"
-#include "memscanutils.h" // traces
-
-
-// Standard server startup code
-//
-static TInt StartServer()
- {
- TRACES( RDebug::Print(_L("MemScanClient: Starting server...")) );
-
- RProcess server;
- TInt r=server.Create(KMemScanServImg,KNullDesC);
-
- if (r!=KErrNone)
- {
- TRACES( RDebug::Print(_L("MemScanClient: server start failed %d"),r) );
- return r;
- }
- TRequestStatus stat;
- server.Rendezvous(stat);
- if (stat!=KRequestPending)
- server.Kill(0); // abort startup
- else
- server.Resume(); // logon OK - start the server
- TRACES( RDebug::Print(_L("MemScanClient: Started")) );
- User::WaitForRequest(stat); // wait for start or death
- // we can't use the 'exit reason' if the server panicked as this
- // is the panic 'reason' and may be '0' which cannot be distinguished
- // from KErrNone
- r=(server.ExitType()==EExitPanic) ? KErrGeneral : stat.Int();
- server.Close();
- return r;
- }
-
-EXPORT_C RMemScanClient::RMemScanClient()
-: iScanEventPackagePointer( NULL, 0, 0 )
- {
- }
-
-
-// This is the standard retry pattern for server connection
-EXPORT_C TInt RMemScanClient::Connect()
- {
- TVersion version(KMemScanServMajor, KMemScanServMinor, KMemScanServBuild);
- TInt retry=2;
- for (;;)
- {
- TInt r=CreateSession(KMemScanServName, version, 1);
- if (r!=KErrNotFound && r!=KErrServerTerminated)
- return r;
- if (--retry==0)
- return r;
- r=StartServer();
- if (r!=KErrNone && r!=KErrAlreadyExists)
- return r;
- }
- }
-
-EXPORT_C void RMemScanClient::Close()
- {
- RSessionBase::Close(); //basecall
- }
-
-
-// ***************************************************************************
-// Client Server functions
-// ***************************************************************************
-
-
-// ---------------------------------------------------------------------------
-// RMemScanClient::DataGroupsL()
-//
-// ---------------------------------------------------------------------------
-EXPORT_C CDesCArray* RMemScanClient::DataGroupsL() const
- {
- // Ask server to externalize the data group array to buffer
- // and to provide size of buffer
- TPckgBuf<TInt> bufferSize;
- User::LeaveIfError(SendReceive( EMemScanPrepareDataGroups, TIpcArgs(&bufferSize) ));
-
- // Create a buffer of sufficient size in order to fetch the
- // buffer from the server
- CBufBase* buffer = CBufFlat::NewL( bufferSize() ); //buffer granularity
- CleanupStack::PushL( buffer );
- buffer->ResizeL( bufferSize() ); //buffer size
-
- // Now fetch the transfer buffer from the server
- TPtr8 pBuffer(buffer->Ptr(0));
- User::LeaveIfError(SendReceive( EMemScanGetDataGroups, TIpcArgs(&pBuffer) ));
-
- // *** Start internalizing the buffer ***
-
- RBufReadStream stream(*buffer);
- CleanupClosePushL(stream);
-
- // Read the number of data groups from the beginning of the stream
- const TInt count = stream.ReadInt32L();
-
- // Create the array for the data group names with appropriate granularity
- CDesCArray* dataGroupNameArray = new (ELeave) CDesCArrayFlat(count);
- CleanupStack::PushL( dataGroupNameArray );
-
-
- // Read each group name to array
- for(TInt i=0; i<count; i++)
- {
- // Read number of bytes in varying length descriptor
- const TInt length = stream.ReadInt32L();
- // Read datagroup name
- HBufC* group = HBufC::NewLC( stream, length );
- dataGroupNameArray->AppendL( *group );
- CleanupStack::PopAndDestroy( group );
- }
-
- // *** Internalizing done ***
-
- CleanupStack::Pop( dataGroupNameArray );
- CleanupStack::PopAndDestroy( &stream );
- CleanupStack::PopAndDestroy( buffer );
-
-
- return dataGroupNameArray;
- }
-
-
-// ---------------------------------------------------------------------------
-// RMemScanClient::ScanResultL()
-//
-// ---------------------------------------------------------------------------
-EXPORT_C CArrayFix<TInt64>* RMemScanClient::ScanResultL() const
- {
- // Ask server to externalize the scan result array to buffer
- // and to provide size of buffer
- TPckgBuf<TInt> bufferSize;
- User::LeaveIfError(SendReceive(EMemScanPrepareScanResults, TIpcArgs( &bufferSize )));
-
- // Create a buffer of sufficient size in order to fetch the
- // buffer from the server
- CBufBase* buffer = CBufFlat::NewL( bufferSize() ); //buffer granularity
- CleanupStack::PushL( buffer );
- buffer->ResizeL( bufferSize() ); //buffer size
-
- // Now fetch the transfer buffer from the server
- TPtr8 pBuffer(buffer->Ptr(0));
- TIpcArgs args(&pBuffer);
- User::LeaveIfError(SendReceive( EMemScanGetScanResults, args ));
-
- // *** Start internalizing the buffer ***
-
- RBufReadStream stream(*buffer);
- CleanupClosePushL(stream);
-
- // Read the number of results from the beginning of the stream
- const TInt count = stream.ReadInt32L();
-
- // Create the result array with such granularity
- // that reallocations do not happen
- CArrayFix<TInt64>* resultArray = new (ELeave) CArrayFixFlat<TInt64>(count);
- CleanupStack::PushL(resultArray);
-
-
- // Read scan results for each data group and write them to result array
- for(TInt i=0; i<count; i++)
- {
- TInt64 result;
- stream >> result;
- resultArray->AppendL(result);
- }
-
- // *** Internalizing done ***
-
- CleanupStack::Pop( resultArray );
- CleanupStack::PopAndDestroy( &stream );
- CleanupStack::PopAndDestroy( buffer );
-
-
- return resultArray;
- }
-
-// ---------------------------------------------------------------------------
-// RMemScanClient::Scan()
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TInt RMemScanClient::Scan(TDriveNumber aDrive)
- {
- TInt err = SendReceive( EMemScanStartScan, TIpcArgs( aDrive ) );
- return err;
- }
-
-
-// ---------------------------------------------------------------------------
-// RMemScanClient::RequestScanEvents()
-//
-// ---------------------------------------------------------------------------
-EXPORT_C void RMemScanClient::RequestScanEvents( TInt& aError, TRequestStatus& aRequestStatus )
- {
- iScanEventPackagePointer.Set( (TUint8*) &aError, sizeof(TInt), sizeof(TInt) );
-
- TIpcArgs args( &iScanEventPackagePointer );
- SendReceive( EMemScanRequestScanEvents, args, aRequestStatus );
- }
-
-
-// ---------------------------------------------------------------------------
-// RMemScanClient::RequestScanEventsCancel()
-//
-// ---------------------------------------------------------------------------
-EXPORT_C void RMemScanClient::RequestScanEventsCancel()
- {
- // There is nothing client can do if cancelling went wrong,
- // so we don't return any error
- SendReceive( EMemScanRequestScanEventsCancel );
- }
-
-
-// ---------------------------------------------------------------------------
-// RMemScanClient::ScanInProgress()
-//
-// ---------------------------------------------------------------------------
-EXPORT_C TBool RMemScanClient::ScanInProgress() const
- {
- TBool result = EFalse;
- TInt err = SendReceive(EMemScanInProgress);
- if( err < 0 )
- {
- result = EFalse;
- }
- else
- {
- result = static_cast<TBool> (err);
- }
- return result;
- }
-
-
-// End of File
--- a/filesystemuis/memscaneng/data/mseng.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,830 +0,0 @@
-/*
-* Copyright (c) 2005-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:
-* This file contains all the resources for the module.
-*
-*/
-
-
-#include "mseng.hrh"
-#include "mseng.rh"
-#include <mseng.loc>
-#include <eikon.rh>
-#include <pathconfiguration.hrh>
-
-NAME MENG
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF { buf="mseng"; }
-
-/**
-* The directories that are scanned on internal drive (C:).
-*/
-RESOURCE DIRECTORYARRAY c_directories
- {
- directories=
- {
- text_phone_memory_root_path
- };
- }
-
-/**
-* The directories that are scanned on removable drive.
-*/
-RESOURCE DIRECTORYARRAY e_directories
- {
- directories=
- {
- text_memory_card_root_path
- };
- }
-
-/**
-* The directories that are recursively NOT scanned on internal drive,
-* even if they are subdirectories of a root directory
-*/
-RESOURCE DIRECTORYARRAY c_excluded_directories
- {
- directories=
- {
- // Not really needed since this is not under scanning root dir,
- // but BAFL panics if the array is left empty...
- "?:\\private\\",
- "?:\\resource\\",
- "?:\\sys\\",
- "?:\\system\\"
- };
- }
-
-/**
-* The directories that are recursively NOT scanned on removable drive.
-* These directories will be set to hidden.
-*/
-RESOURCE DIRECTORYARRAY e_excluded_directories
- {
- directories=
- {
- "?:\\private\\",
- "?:\\resource\\",
- "?:\\sys\\",
- "?:\\system\\"
- };
- }
-
-/**
-* The files on internal drive (C:) that are not scanned by uid or ext,
-* for example because they are located outside the
-* normally scanned filesystem part (directoryarray).
-*/
-RESOURCE EXTRADATAFILES c_extradatafiles
- {
- extradatafile=
- {
- EXTRADATAFILE
- {
- datagroup=EGroupDocuments;
- filepath="?:\\private\\100012a5\\DBS_101F8878_Notepad.dat";
- // Note: Documents created outside Notepad
- // are scanned separately by extensions.
- },
-
- EXTRADATAFILE
- {
- datagroup=EGroupCalendar;
- filepath="?:\\private\\10003a5b\\calendar";
- },
- EXTRADATAFILE
- {
- datagroup=EGroupContacts;
- filepath="?:\\private\\10003a73\\SQLite__Contacts.cdb";
- }
- };
- }
-
-/**
-* The files on E drive that are not scanned by uid or ext,
-* for example because they are located outside the
-* normally scanned filesystem part (directoryarray).
-*/
-RESOURCE EXTRADATAFILES e_extradatafiles
- {
- extradatafile=
- {
- // No current database files on E drive
- };
- }
-
-/**
-* Another special case are the directories on internal (C:) drive, where all files,
-* regardless of their type, belong to the same data group.
-*/
-RESOURCE SPECIAL_DATADIRS c_special_datadirs
- {
- special_datadir=
- {
- SPECIAL_DATADIR
- {
- datagroup=EGroupMessages;
- path="?:\\private\\1000484b\\Mail2\\";
- excludeddatafiles=
- {
- "Index",
- "00100000",
- "00001000"
- };
- },
- SPECIAL_DATADIR
- {
- datagroup=EGroupMidpJava;
- path="?:\\private\\102033E6\\apps\\";
- // Note: Midlets outside private dirs are scanned by extensions
- excludeddatafiles=
- {
- };
- },
- SPECIAL_DATADIR
- {
- datagroup=EGroupNativeApps;
- path="?:\\private\\10202dce\\";
- // Note: Sis-packages outside private dirs are scanned by extensions
- excludeddatafiles=
- {
- "preInstalledAppsCache.dat"
- };
- }
- };
- }
-
-/**
-* Another special case are the directories on removable drive, where all
-* files regardless of their type, belong to the same data group.
-*/
-RESOURCE SPECIAL_DATADIRS e_special_datadirs
- {
- special_datadir=
- {
- SPECIAL_DATADIR
- {
- datagroup=EGroupContacts;
- path=text_memory_card_contacts_path;
- excludeddatafiles=
- {
- };
- },
- SPECIAL_DATADIR
- {
- datagroup=EGroupMessages;
- path="?:\\private\\1000484b\\Mail2\\";
- excludeddatafiles=
- {
- "Index",
- "00100000",
- "00001000"
- };
- },
- SPECIAL_DATADIR
- {
- datagroup=EGroupMidpJava;
- path="?:\\private\\102033E6\\apps\\";
- // Note: Midlets outside private dirs are scanned by extensions
- excludeddatafiles=
- {
- };
- },
- SPECIAL_DATADIR
- {
- datagroup=EGroupNativeApps;
- path="?:\\private\\10202dce\\";
- // Note: Sis-packages outside private dirs are scanned by extensions
- excludeddatafiles=
- {
- "preInstalledAppsCache.dat"
- };
- }
- };
- }
-
-/**
-* The resources for UIDs.
-* This array creates the mapping between TUidTypes enumeration
-* and the actual application UIDs.
-* Take care that all UIDs from TUidTypes are handled here.
-*
-* These MUST be in the same order as in enum TUidTypes!
-* Otherwise will panic on construction.
-*
-*/
-RESOURCE UIDARRAY uidarray
- {
- uidtypeelements=
- {
- UIDTYPEELEMENT
- {
- uidtype=EUidMsgTypeMultimedia;
- uid=0x100058E1; // from mmsconst.h
- },
- UIDTYPEELEMENT
- {
- uidtype=EUidMsgTypeSMTP;
- uid=0x10001028; // from miutset.h
- },
- UIDTYPEELEMENT
- {
- uidtype=EUidMsgTypePOP3;
- uid=0x10001029; // from miutset.h
- },
- UIDTYPEELEMENT
- {
- uidtype=EUidMsgTypeIMAP4;
- uid=0x1000102A; // from miutset.h
- },
- UIDTYPEELEMENT
- {
- uidtype=EUidMsgTypeSMS;
- uid=0x1000102C; // from miutset.h
- },
- UIDTYPEELEMENT
- {
- uidtype=EUidMsgTypeFax;
- uid=0x1000102B; // from miutset.h
- },
- UIDTYPEELEMENT
- {
- uidtype=EUidMsgTypeIr;
- uid=0x100053A4; // from irobutil.h
- },
- UIDTYPEELEMENT
- {
- uidtype=EUidMsgTypeBt;
- uid=0x10009ED5; // from btmsgtypeuid.h
- },
- UIDTYPEELEMENT
- {
- uidtype=EUidTest1;
- uid=0x0123456A; // TEST
- },
- UIDTYPEELEMENT
- {
- uidtype=EUidTest2;
- uid=0x0123456B; // TEST
- }
- };
- }
-
-/**
-* The resources for filename extensions.
-* This array creates the mapping between TExtTypes enumeration
-* and the actual filename extensions.
-* Take care that all extensions from TExtTypes are handled here.
-*
-* These MUST be in the same order as in enum TExtTypes!
-* Otherwise will panic on construction.
-*
-*/
-RESOURCE EXTARRAY extarray
- {
- exttypeelements=
- {
-
- // ---------- Image types ----------
-
- EXTTYPEELEMENT
- {
- exttype=EExtBmp;
- extension="*.bmp";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtGif;
- extension="*.gif";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtJpe;
- extension="*.jpe";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtJpeg;
- extension="*.jpeg";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtJpg;
- extension="*.jpg";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtOta;
- extension="*.ota";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtPng;
- extension="*.png";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtTif;
- extension="*.tif";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtTiff;
- extension="*.tiff";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtWbmp;
- extension="*.wbmp";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtWmf;
- extension="*.wmf";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtJp2;
- extension="*.jp2";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtJpg2;
- extension="*.jpg2";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtJp3;
- extension="*.jp3";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtIco;
- extension="*.ico";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtVcf;
- extension="*.vcf";
- },
-
- // ---------- Sound types ----------
-
- EXTTYPEELEMENT
- {
- exttype=EExtAac;
- extension="*.aac";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtAmr;
- extension="*.amr";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtAu;
- extension="*.au";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtAwb;
- extension="*.awb";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtMid;
- extension="*.mid";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtMp3;
- extension="*.mp3";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtRa;
- extension="*.ra";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtRmf;
- extension="*.rmf";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtRng;
- extension="*.rng";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtSnd;
- extension="*.snd";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtWav;
- extension="*.wav";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtWve;
- extension="*.wve";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtWma;
- extension="*.wma";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtM4a;
- extension="*.m4a";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtOtt;
- extension="*.ott";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtMxmf;
- extension="*.mxmf";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtMka;
- extension="*.mka";
- },
-
- // ---------- Java file types -----
-
- EXTTYPEELEMENT
- {
- exttype=EExtJad;
- extension="*.jad";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtJar;
- extension="*.jar";
- },
-
- // ---------- Native file types -----
-
- EXTTYPEELEMENT
- {
- exttype=EExtSis;
- extension="*.sis";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtSisx;
- extension="*.sisx";
- },
-
- // ---------- Video types ----------
-
- EXTTYPEELEMENT
- {
- exttype=EExt3gp;
- extension="*.3gp";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtMp4;
- extension="*.mp4";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtNim;
- extension="*.nim";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtRm;
- extension="*.rm";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtRv;
- extension="*.rv";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtWmv;
- extension="*.wmv";
- },
- EXTTYPEELEMENT
- {
- exttype=EExt3g2;
- extension="*.3g2";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtRmvb;
- extension="*.rmvb";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtMkv;
- extension="*.mkv";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtAvi;
- extension="*.avi";
- },
- // ---------- Document types ----------
-
- EXTTYPEELEMENT
- {
- exttype=EExtDoc;
- extension="*.doc";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtPdf;
- extension="*.pdf";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtPps;
- extension="*.pps";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtPpt;
- extension="*.ppt";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtTxt;
- extension="*.txt";
- },
- EXTTYPEELEMENT
- {
- exttype=EExtXls;
- extension="*.xls";
- },
-
- // ---------- Calendar types ----------
-
- EXTTYPEELEMENT
- {
- exttype=EExtVcs;
- extension="*.vcs";
- }
- };
- }
-
-/**
-* The data group names.
-* This array creates the mapping between TDataGroups enumeration
-* and the localized strings that are displayed to the user.
-* Take care that all groups from TDataGroups are handled here.
-* The localized strings are in the localization file mseng.loc.
-*
-* These MUST be in the same order as in enum TDataGroups!
-* Otherwise mseng will panic on construction.
-*
-*/
-RESOURCE DATAGROUPNAMEARRAY datagroupnamearray
- {
- datagroupnameelements=
- {
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupAllDeviceData;
- groupname=qtn_swins_ls1_memory_all;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupFreeMemory;
- groupname=qtn_swins_ls1_memory_free;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupCalendar;
- groupname=qtn_swins_ls1_memory_calendar;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupContacts;
- groupname=qtn_swins_ls1_memory_contacts;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupMessages;
- groupname=qtn_swins_ls1_memory_msgs;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupImages;
- groupname=qtn_swins_ls1_memory_imgs;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupSoundFiles;
- groupname=qtn_swins_ls1_memory_souds;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupVideos;
- groupname=qtn_swins_ls1_memory_videos;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupDocuments;
- groupname=qtn_swins_ls1_memory_docs;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupMidpJava;
- groupname=qtn_swins_ls1_memory_midpjava;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupNativeApps;
- groupname=qtn_swins_ls1_memory_sis;
- },
- DATAGROUPNAMEELEMENT
- {
- grouptype=EGroupOthers;
- groupname=qtn_swins_ls1_memory_others;
- }
- };
- }
-
-/**
-* List of UIDs belonging to each data group.
-*
-* This array includes for, each data group
-* (enum TDataGroups), the list of UIDs (enum TUidTypes)
-* belonging to that data group.
-*/
-RESOURCE DATAGROUPUIDARRAY datagroupuidarray
- {
- datagroupuids=
- {
- DATAGROUPUIDS
- {
- datagroup=EGroupMessages;
- uids=
- {
- EUidMsgTypeMultimedia,
- EUidMsgTypeSMTP,
- EUidMsgTypePOP3,
- EUidMsgTypeIMAP4,
- EUidMsgTypeSMS,
- EUidMsgTypeFax,
- EUidMsgTypeIr,
- EUidMsgTypeBt
- };
- },
- DATAGROUPUIDS
- {
- datagroup=EGroupDocuments;
- uids=
- {
- EUidTest1,
- EUidTest2
- };
- }
- };
- }
-
-/**
-* List of extension belonging to each data group.
-*
-* This array includes for, each data group
-* (enum TDataGroups),the list of filename extensions
-* (enum TExtTypes) belonging to that data group.
-*/
-RESOURCE DATAGROUPEXTARRAY datagroupextarray
- {
- datagroupexts=
- {
- DATAGROUPEXTS
- {
- datagroup=EGroupImages;
- exts=
- {
- EExtBmp,
- EExtGif,
- EExtJpe,
- EExtJpeg,
- EExtJpg,
- EExtOta,
- EExtPng,
- EExtTif,
- EExtTiff,
- EExtWbmp,
- EExtWmf,
- EExtJp2,
- EExtJpg2,
- EExtJp3,
- EExtIco,
- EExtVcf
- };
- },
- DATAGROUPEXTS
- {
- datagroup=EGroupSoundFiles;
- exts=
- {
- EExtAac,
- EExtAmr,
- EExtAu,
- EExtAwb,
- EExtMid,
- EExtMp3,
- EExtRa,
- EExtRmf,
- EExtRng,
- EExtSnd,
- EExtWav,
- EExtWve,
- EExtWma,
- EExtM4a,
- EExtOtt,
- EExtMxmf,
- EExtMka
- };
- },
- DATAGROUPEXTS
- {
- // Note: Midlet installation folder scanned separately.
- datagroup=EGroupMidpJava;
- exts=
- {
- EExtJad,
- EExtJar
- };
- },
- DATAGROUPEXTS
- {
- // Note: Sis pre-installation folder and registry scanned separately.
- datagroup=EGroupNativeApps;
- exts=
- {
- EExtSis,
- EExtSisx
- };
- },
- DATAGROUPEXTS
- {
- datagroup=EGroupVideos;
- exts=
- {
- EExt3gp,
- EExtMp4,
- EExtNim,
- EExtRm,
- EExtRv,
- EExtWmv,
- EExt3g2,
- EExtRmvb,
- EExtMkv,
- EExtAvi
- };
- },
- DATAGROUPEXTS
- {
- // Note: Notepad database scanned separately.
- datagroup=EGroupDocuments;
- exts=
- {
- EExtDoc,
- EExtPdf,
- EExtPps,
- EExtPpt,
- EExtTxt,
- EExtXls
- };
- },
- DATAGROUPEXTS
- {
- // Note: Calendar private-folder scanned separately.
- datagroup=EGroupCalendar;
- exts=
- {
- EExtVcs
- };
- }
- };
- }
-
-// End of File
--- a/filesystemuis/memscaneng/eabi/MemScanClientU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-EXPORTS
- _ZN14RMemScanClient17RequestScanEventsERiR14TRequestStatus @ 1 NONAME
- _ZN14RMemScanClient23RequestScanEventsCancelEv @ 2 NONAME
- _ZN14RMemScanClient4ScanE12TDriveNumber @ 3 NONAME
- _ZN14RMemScanClient5CloseEv @ 4 NONAME
- _ZN14RMemScanClient7ConnectEv @ 5 NONAME
- _ZN14RMemScanClientC1Ev @ 6 NONAME
- _ZN14RMemScanClientC2Ev @ 7 NONAME
- _ZNK14RMemScanClient11DataGroupsLEv @ 8 NONAME
- _ZNK14RMemScanClient11ScanResultLEv @ 9 NONAME
- _ZNK14RMemScanClient14ScanInProgressEv @ 10 NONAME
-
--- a/filesystemuis/memscaneng/eabi/msengU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-EXPORTS
- _ZN6CMseng4NewLER15MMsengUIHandler @ 1 NONAME
- _ZN6CMseng5ScanLE12TDriveNumber @ 2 NONAME
- _ZN6CMseng7CancelLEv @ 3 NONAME
- _ZN6CMseng8MemInfoLERxS0_ @ 4 NONAME
- _ZN6CMsengD0Ev @ 5 NONAME
- _ZN6CMsengD1Ev @ 6 NONAME
- _ZN6CMsengD2Ev @ 7 NONAME
- _ZNK6CMseng11DataGroupsLEv @ 8 NONAME
- _ZNK6CMseng11ScanResultLEv @ 9 NONAME
- _ZNK6CMseng14ScanInProgressEv @ 10 NONAME
- _ZNK6CMseng9DiskInfoLERxS0_12TDriveNumber @ 11 NONAME
- _ZTI13CMsengScanner @ 12 NONAME ; #<TI>#
- _ZTI15CMsengInfoArray @ 13 NONAME ; #<TI>#
- _ZTI17CMsengFileScanner @ 14 NONAME ; #<TI>#
- _ZTI17CMsengScannerBase @ 15 NONAME ; #<TI>#
- _ZTI20CMsengFileExtScanner @ 16 NONAME ; #<TI>#
- _ZTI20CMsengFindAllScanner @ 17 NONAME ; #<TI>#
- _ZTI22CMsengDirectoryScanner @ 18 NONAME ; #<TI>#
- _ZTI6CMseng @ 19 NONAME ; #<TI>#
- _ZTV13CMsengScanner @ 20 NONAME ; #<VT>#
- _ZTV15CMsengInfoArray @ 21 NONAME ; #<VT>#
- _ZTV17CMsengFileScanner @ 22 NONAME ; #<VT>#
- _ZTV17CMsengScannerBase @ 23 NONAME ; #<VT>#
- _ZTV20CMsengFileExtScanner @ 24 NONAME ; #<VT>#
- _ZTV20CMsengFindAllScanner @ 25 NONAME ; #<VT>#
- _ZTV22CMsengDirectoryScanner @ 26 NONAME ; #<VT>#
- _ZTV6CMseng @ 27 NONAME ; #<VT>#
-
--- a/filesystemuis/memscaneng/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* This file provides the information required for building the
-* whole of a memscaneng.
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
- DEFAULT
-
-
-PRJ_EXPORTS
- ../clientinc/memscanclient.h |../../inc/memscanclient.h
- ../serverinc/memscanclientserver.h |../../inc/memscanclientserver.h
- ../serverinc/msenguihandler.h |../../inc/msenguihandler.h
- ../rom/Mseng.iby CORE_APP_LAYER_IBY_EXPORT_PATH(Mseng.iby )
- ../rom/MsengResources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(MsengResources.iby )
- ../loc/mseng.loc APP_LAYER_LOC_EXPORT_PATH(mseng.loc)
-
-PRJ_MMPFILES
- memscanserv.mmp
- memscanclient.mmp
-
-
-// End of File
--- a/filesystemuis/memscaneng/group/memscanclient.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* This is project specification file for the Memory Scan Client.
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-TARGET memscanclient.dll
-TARGETTYPE dll
-UID 0x1000008D 0x102073FD
-VENDORID VID_DEFAULT
-
-CAPABILITY CAP_GENERAL_DLL
-
-SOURCEPATH ../clientsrc
-SOURCE memscanclient.cpp
-
-USERINCLUDE . ../clientinc ../serverinc
-APP_LAYER_SYSTEMINCLUDE
-
-LIBRARY euser.lib
-LIBRARY estor.lib
-LIBRARY bafl.lib // Descriptor arrays
-
-
-
-
-// End of File
-
-
-
--- a/filesystemuis/memscaneng/group/memscanserv.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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 memscaneng
-*
-*/
-
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-TARGET memscanserv.exe
-TARGETTYPE exe
-UID 0x100039CE 0x102073FC
-VENDORID VID_DEFAULT
-CAPABILITY CAP_SERVER AllFiles
-
-SOURCEPATH ../serversrc
-SOURCE memscanserv.cpp
-SOURCE mseng.cpp
-SOURCE msengscanner.cpp
-SOURCE msenginfoarray.cpp
-SOURCE msengscannerbase.cpp
-SOURCE msengdirectoryscanner.cpp
-SOURCE msengfilescanner.cpp
-SOURCE msengfileextscanner.cpp
-SOURCE msengfindallscanner.cpp
-SOURCE msengregistryscanner.cpp
-SOURCE msengsisxinfo.cpp
-
-START RESOURCE ../data/mseng.rss
-TARGETPATH RESOURCE_FILES_DIR
-HEADER
-LANGUAGE_IDS
-END
-
-USERINCLUDE . ../serverinc
-
-APP_LAYER_SYSTEMINCLUDE
-//SYSTEMINCLUDE /epoc32/include/swi
-
-LIBRARY euser.lib
-LIBRARY efsrv.lib
-LIBRARY estor.lib
-LIBRARY bafl.lib // Resource files
-LIBRARY sisregistryclient.lib
-LIBRARY platformenv.lib
-//Uncomment this line to show the RDebug::Print()
-// MACRO __SHOW_RDEBUG_PRINT_
-
-// End of File
-
--- a/filesystemuis/memscaneng/loc/mseng.loc Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2002 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:
-* This file contains the localised strings for memscaneng
-*
-*
-*/
-
-
-// LOCALISATION STRINGS
-
-// d: Name for data group consisting of calendar and entries.
-// l: list_single_heading_pane_t1_cp2
-//
-#define qtn_swins_ls1_memory_calendar "Calendar data"
-
-// d: Name for data group consisting of phonebook entries.
-// l: list_single_heading_pane_t1_cp2
-//
-#define qtn_swins_ls1_memory_contacts "Contacts data"
-
-// d: Name for data group consisting of notepad documents and
-// d: plain text files, ms word documents (?) etc.
-// l: list_single_heading_pane_t1_cp2
-//
-#define qtn_swins_ls1_memory_docs "Documents"
-
-// d: Name for data group consisting of messages (SMS, MMS, e-mail, fax)
-// l: list_single_heading_pane_t1_cp2
-//
-#define qtn_swins_ls1_memory_msgs "Messages"
-
-// d: Name for data group consisting of all image files.
-// l: list_single_heading_pane_t1_cp2
-//
-#define qtn_swins_ls1_memory_imgs "Images"
-
-// d: Name for data group consisting of all sound files.
-// l: list_single_heading_pane_t1_cp2
-//
-#define qtn_swins_ls1_memory_souds "Sound files"
-
-// d: Name for data group consisting of Java environment
-// d: and installed Midlets.
-// l: list_single_heading_pane_t1_cp2
-//
-#define qtn_swins_ls1_memory_midpjava "MIDP programs"
-
-// d: all_device_data == total_memory - free_memory
-// l: list_single_heading_pane_t1_cp2
-//
-#define qtn_swins_ls1_memory_all "All device data"
-
-// d: Amount of free memory available in the device.
-// l: list_single_heading_pane_t1_cp2
-//
-#define qtn_swins_ls1_memory_free "Free memory"
-
-// d: Name for data group consisting of all video files.
-// l: list_single_heading_pane_t1_cp2
-//
-#define qtn_swins_ls1_memory_videos "Videos"
-
-//d: Name for data group consisting of SIS applications
-//l: list_single_heading_pane_t1_cp2
-//w:
-//r:3.2
-//
-#define qtn_swins_ls1_memory_sis "SIS programs"
-
-//d: Name for data group consisting of other files
-//l: list_single_heading_pane_t1_cp2
-//w:
-//r:3.2
-//
-#define qtn_swins_ls1_memory_others "Other files"
-
-
-// End of File
--- a/filesystemuis/memscaneng/rom/Mseng.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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 project memscaneng
-*
-*/
-
-
-#ifndef __MSENG_IBY__
-#define __MSENG_IBY__
-
-// Memory Scan Engine, Server and Client
-
-file=ABI_DIR\BUILD_DIR\MemScanServ.exe PROGRAMS_DIR\MemScanServ.exe
-file=ABI_DIR\BUILD_DIR\MemScanClient.dll SHARED_LIB_DIR\MemScanClient.dll
-
-#endif
--- a/filesystemuis/memscaneng/rom/MsengResources.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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 project memscaneng
-*
-*/
-
-
-#ifndef __MSENG_RESOURCES_IBY__
-#define __MSENG_RESOURCES_IBY__
-
-//Resource file(s) for Memory Scan Engine
-
-data=DATAZ_\RESOURCE_FILES_DIR\mseng.rsc RESOURCE_FILES_DIR\mseng.rsc
-
-#endif
--- a/filesystemuis/memscaneng/serverinc/memscanclientserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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: Memory Scan Client/Server definitions
-*
-*/
-
-
-
-#ifndef __MEMSCANCLIENTSERVER_H__
-#define __MEMSCANCLIENTSERVER_H__
-
-
-_LIT(KMemScanServName,"memscanserv");
-_LIT(KMemScanServImg,"memscanserv"); // EXE name
-_LIT(KMemScanServerPanicCategory, "MemScanServer");
-
-const TUid KMemScanServUid3={0x10207386};
-
-const TInt KMemScanServMajor = 1;
-const TInt KMemScanServMinor = 0;
-const TInt KMemScanServBuild = 0;
-
-const TInt KMesArg0 = 0;
-
-// Language specific buffer size is assumed to vary between 80-150
-const TInt KMemScanServTransferBufferExpandSize = 50;
-
-enum TMemScanEvent
- {
- EMemScanEventScanningStarted = 0,
- EMemScanEventScanningFinished,
- EMemScanEventScanningError
- };
-
-// when modifying these, notice the server's policy
-enum TMemScanServMessages
- {
- EMemScanStartScan,
- EMemScanPrepareDataGroups,
- EMemScanGetDataGroups,
- EMemScanInProgress,
- EMemScanRequestScanEvents,
- EMemScanRequestScanEventsCancel,
- EMemScanPrepareScanResults,
- EMemScanGetScanResults
- };
-
-enum TMemScanServerClientPanic
- {
- EMemScanServerPanicRequestedScanEventsTwice = 0,
- };
-
-#endif// __MEMSCANCLIENTSERVER_H__
--- a/filesystemuis/memscaneng/serverinc/memscanserv.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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: Memory Scan Server
-*
-*/
-
-
-#ifndef __MEMSCANSERV_H__
-#define __MEMSCANSERV_H__
-
-// SYSTEM INCLUDES
-#include <e32base.h>
-
-// USER INCLUDES
-#include "memscanclientserver.h"
-#include "msenguihandler.h"
-#include "mseng.h"
-
-
-
-// --------------------------------------------------------------------------
-// Server's policy here
-// --------------------------------------------------------------------------
-
-//Total number of ranges
-const TUint KMemScanServRangeCount = 2;
-
-//Definition of the ranges of IPC numbers
-const TInt KMemScanServRanges[KMemScanServRangeCount] =
- {
- 0, // ECapabilityReadUserData
- /*
- 0 EMemScanStartScan,
- 1 EMemScanPrepareDataGroups,
- 2 EMemScanGetDataGroups,
- 3 EMemScanInProgress,
- 4 EMemScanRequestScanEvents,
- 5 EMemScanRequestScanEventsCancel,
- 6 EMemScanPrepareScanResults,
- 7 EMemScanGetScanResults
- */
-
- 8 // ENotSupported - Non implemented function end of range check
- };
-
-//Policy to implement for each of the above ranges
-const TUint8 KMemScanServElementsIndex[KMemScanServRangeCount] =
- {
- 0, // 0th range: Policy 0 in Elements
- CPolicyServer::ENotSupported // 1st range: Out of range IPC
- };
-
-//Specific capability checks
-const CPolicyServer::TPolicyElement KMemScanServElements[] =
- {
- // Policy 0: Fail call if ReadUserData not present
- {_INIT_SECURITY_POLICY_C1(ECapabilityReadUserData), CPolicyServer::EFailClient}
- };
-
-//Package all the above together into a policy
-const CPolicyServer::TPolicy KMemScanServPolicy =
- {
- CPolicyServer::EAlwaysPass, // All connect attempts should pass
- KMemScanServRangeCount, // Number of ranges
- KMemScanServRanges, // Ranges array
- KMemScanServElementsIndex, // Elements<->Ranges index
- KMemScanServElements, // Array of elements
- };
-
-
-
-// --------------------------------------------------------------------------
-// Server's panic codes here
-// --------------------------------------------------------------------------
-enum TMemScanServPanic
- {
- EPanicGeneral,
- EPanicIllegalFunction
- };
-
-void PanicClient(const RMessagePtr2& aMessage,TMemScanServPanic aPanic);
-
-
-// --------------------------------------------------------------------------
-// Auto shutdown class (standard pattern)
-// --------------------------------------------------------------------------
-class CShutdown : public CTimer
- {
- enum TMemScanShutdown
- {
- EMemScanServShutdownDelay=0x200000
- };
-public:
- inline CShutdown();
- inline void ConstructL();
- inline void Start();
-private:
- void RunL();
- };
-
-// --------------------------------------------------------------------------
-// Server
-// --------------------------------------------------------------------------
-
-class CMemScanServ : public CPolicyServer
- {
-public:
- static CServer2* NewLC();
- void AddSession();
- void DropSession();
-private:
- CMemScanServ();
- void ConstructL();
- CSession2* NewSessionL( const TVersion& aVersion,
- const RMessage2& aMessage) const;
-
-private:
- TInt iSessionCount;
- CShutdown iShutdown;
- };
-
-
-
-// --------------------------------------------------------------------------
-// Event object
-// --------------------------------------------------------------------------
-struct TMemScanEventPackage
- {
- TMemScanEvent iEvent;
- TInt iError;
- };
-
-
-// --------------------------------------------------------------------------
-// Session
-// --------------------------------------------------------------------------
-class CMemScanServSession : public CSession2, public MMsengUIHandler
- {
-public:
- CMemScanServSession();
- void CreateL();
- private:
- ~CMemScanServSession();
- inline CMemScanServ& Server();
- void ServiceL(const RMessage2& aMessage);
- void ServiceError(const RMessage2& aMessage,TInt aError);
-
-
-private: // Client <-> server functions
- void MemScanL(const RMessage2& aMessage);
- void RequestScanEventsL(const RMessage2& aMessage);
- void RequestScanEventsCancel(const RMessage2& aMessage);
- void ScanInProgress(const RMessage2& aMessage);
- void PrepareDataGroupsL(const RMessage2& aMessage);
- void GetDataGroupsL(const RMessage2& aMessage);
- void PrepareScanResultsL(const RMessage2& aMessage);
- void GetScanResultsL(const RMessage2& aMessage);
-
-private: // Internal utility functions
- void SendEventToClientL( TMemScanEvent aEventType, TInt aError=KErrNone );
- void AddNewEventToBufferL( TMemScanEvent aEventType, TInt aError);
- TBool IsEventReady() const;
- void DeliverOldestEventToClientL();
-
-private: //From MMsengUIHandler
- void StartL();
- void QuitL(TInt aReason);
- void ErrorL(TInt aError);
-
-private: // Member variables
- CMseng* iMseng;
- RMessagePtr2 iScanEventMessage;
- RArray< TMemScanEventPackage > iEventBuffer;
- CBufBase* iTransferBuffer;
- };
-
-
-
-#endif // __MEMSCANSERV_H__
-
-// End of File
\ No newline at end of file
--- a/filesystemuis/memscaneng/serverinc/memscanutils.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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: Memory Scan Utils
-*
-*/
-
-
-#ifndef __MEMSCANUTILS_H__
-#define __MEMSCANUTILS_H__
-
-
-// Macro for printing debug traces without ifdefs
-#ifdef _DEBUG
-#define TRACES(x) x
-#else
-#define TRACES(x)
-#endif
-
-
-#endif // __MEMSCANUTILS_H__
-
-// End of File
\ No newline at end of file
--- a/filesystemuis/memscaneng/serverinc/mseng.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* The actual "engine".
-*
-*/
-
-
-#ifndef CMSENG_H
-#define CMSENG_H
-
-
-// SYSTEM INCLUDES
-#include <data_caging_path_literals.hrh>
-#include <badesca.h> // descriptor arrays
-#include <f32file.h> // enum TDriveNumber
-#include <stringresourcereader.h>
-#include <barsc2.h> // CResourceFile
-#include <barsread2.h> // RResourceReader
-
-
-// USER INCLUDES
-#include "msenguihandler.h"
-
-
-// FORWARD DECLARATIOS
-class CMsengScanner;
-class RFs;
-class MMsengUIHandler;
-
-
-// CONSTANTS
-
-// Resource file path
-_LIT(KMsengRscFilePath,"Z:mseng.rsc");
-
-
-// DATA TYPES
-
-/**
-* Type definition to handle arrays of integers
-* more conveniently
-*/
-typedef CArrayFixFlat<TInt> CIntArray;
-
-
-// CLASS DECLARATION
-
-/**
-* The actual "engine".
-* This is the class which the UI instantiates.
-*/
-class CMseng :public CBase
- {
- public: // Constructors and destructor
- /**
- * Two-phased constructor.
- * @param aUIHandler Reference to a class implementing MMsengUIHandler interface
- */
- IMPORT_C static CMseng* NewL(MMsengUIHandler& aUIHandler);
- /**
- * Destructor.
- */
- IMPORT_C ~CMseng();
-
- public: // New functions
-
- /**
- * Get the data groups.
- * @return CDesCArray* containing the names of the data groups.
- */
- IMPORT_C CDesCArray* DataGroupsL() const;
-
- /**
- * Get the scan result. This array contains exacly one
- * integer per data group.
- * @return Array of integers.
- */
- IMPORT_C CArrayFix<TInt64>* ScanResultL() const;
-
- /**
- * Is there scanning going on?
- * @return ETrue if there is scanning going on, otherwise EFalse.
- */
- IMPORT_C TBool ScanInProgress() const;
-
- /**
- * Get the amount of total and free space on a disk
- * @param aTotal Amount of total space in bytes in substituted here.
- * @param aFree Amount of free space in bytes in substituted here.
- * @param aVolume Disk identifier, e.g. 'C'
- */
- IMPORT_C void DiskInfoL(TInt64& aTotal, TInt64& aFree, const TDriveNumber aVolume) const;
-
- /**
- * Get the amount of total and free RAM.
- * @param aTotal Amount of total RAM in bytes in substituted here.
- * @param aTotal Amount of free RAM in bytes in substituted here.
- */
- IMPORT_C static void MemInfoL(TInt64& aTotal, TInt64& aFree);
-
- /**
- * Start scanning memory.
- * This means starting the actual work of the engine. Starts scanning,
- * which runs until finished.
- *
- * The scanning is only supported for drives C and E, otherwise
- * leave occurs with error KErrNotSupported.
- *
- * NOTE: the support for scanning E drive is not properly tested.
- * It is assumed to have the same directory structure than in C.
- *
- * @param aDrive the drive to be scanned
- */
- IMPORT_C void ScanL(TDriveNumber aDrive);
-
- /**
- * Cancel ongoing scanning operation.
- */
- IMPORT_C void Cancel();
-
- /**
- * Check whether internal drive.
- * @param aDrv Drive to be checked.
- * @return ETrue if internal drive, otherwise EFalse.
- */
- static TBool IsInternalDrive( RFs& aFs, const TInt aDrv );
-
- /**
- * Check whether removable drive.
- * @param aDrv Drive to be checked.
- * @return ETrue if internal drive, otherwise EFalse.
- */
- static TBool IsRemovableDrive( RFs& aFs, const TInt aDrv );
-
- /**
- * Check whether mass storage drive.
- * @param aDrv Drive to be checked.
- * @return ETrue if mass storage drive, otherwise EFalse.
- */
- static TBool IsMassStorageDrive( RFs& aFs, const TInt aDrv );
-
- private:
-
- /**
- * C++ default constructor is prohibited.
- */
- CMseng(MMsengUIHandler& aUIHandler);
-
- /**
- * By default Symbian OS constructor is private.
- *
- * Initialize iResultArray by reading the the data group
- * names from resource file and setting all result values to zero.
- * Initialize iDataGroupUidArray and iDataGroupExtArray
- * from resource file.
- */
- void ConstructL();
-
-
- // Prohibit copy constructor if not deriving from CBase.
- CMseng( const CMseng& );
- // Prohibit assigment operator if not deriving from CBase.
- CMseng& operator= ( const CMseng& );
-
-
- private: // Data members
-
- MMsengUIHandler& iUIHandler;
- CMsengScanner* iScanner;
-
- // Number of data groups
- TInt iNumberOfDataGroups;
-
- // These arrays are needed to when calculating the result.
- // They are indexed using values from enum TDataGroups.
- // This creates the mapping between data groups and the
- // UIDs and extensions belonging to a particular data group
- CArrayPtrFlat<CIntArray>* iDataGroupUidArray;
- CArrayPtrFlat<CIntArray>* iDataGroupExtArray;
-
- RFs iFsSession;
- CResourceFile* iResFile;
- mutable TInt64 iFreeMemory;
-
- };
-
-#endif // CMSENG_H
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/mseng.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/*
-* Copyright (c) 2004-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:
-* This file contains configuration data for Memory scan Engine
-*
-*
-*/
-
-
-#ifndef MSENG_HRH
-#define MSENG_HRH
-
-// INCLUDES
-#include <bldvariant.hrh>
-
-// CONSTANTS
-
-// Folders to scan:
-// All root folders are listed in mseng.rss
-// All of their subfolders are also scanned.
-
-// DATA TYPES
-
-/**
-* The UID types scanned. Not currently used, but may be needed.
-*
-* The UID:s matching TUidTypes enumeration are
-* in the resource file mseng.rss
-* Care must be taken that every UID type has
-* corresponding resource struct in mseng.rss
-*/
-enum TUidTypes
- {
- EUidMsgTypeMultimedia = 0,
- EUidMsgTypeSMTP,
- EUidMsgTypePOP3,
- EUidMsgTypeIMAP4,
- EUidMsgTypeSMS,
- EUidMsgTypeFax,
- EUidMsgTypeIr,
- EUidMsgTypeBt,
- EUidTest1,
- EUidTest2
- };
-
-
-/**
-* The filename extension types scanned.
-*
-* The strings matching TExtTypes enumeration are
-* in the resource file mseng.rss
-* Care must be taken that every extension type
-* has corresponding resource struct in mseng.rss
-*/
-enum TExtTypes
- {
- // Image types
- EExtBmp = 0,
- EExtGif,
- EExtJpe,
- EExtJpeg,
- EExtJpg,
- EExtOta,
- EExtPng,
- EExtTif,
- EExtTiff,
- EExtWbmp,
- EExtWmf,
- EExtJp2,
- EExtJpg2,
- EExtJp3,
- EExtIco,
- EExtVcf,
- // Sound types
- EExtAac,
- EExtAmr,
- EExtAu,
- EExtAwb,
- EExtMid,
- EExtMp3,
- EExtRa,
- EExtRmf,
- EExtRng,
- EExtSnd,
- EExtWav,
- EExtWve,
- EExtWma,
- EExtM4a,
- EExtOtt,
- EExtMxmf,
- EExtMka,
- // Java file types
- EExtJad,
- EExtJar,
- // Native installation file types
- EExtSis,
- EExtSisx,
- // Video types
- EExt3gp,
- EExtMp4,
- EExtNim,
- EExtRm,
- EExtRv,
- EExtWmv,
- EExt3g2,
- EExtRmvb,
- EExtMkv,
- EExtAvi,
- // Document types
- EExtDoc,
- EExtPdf,
- EExtPps,
- EExtPpt,
- EExtTxt,
- EExtXls,
- // Calendar types
- EExtVcs
- };
-
-/**
-* The data groups. (These are what is displayed to the user).
-*
-* The strings matching TExtTypes enumeration are
-* in the resource file mseng.rss
-* Care must be taken that every extension type
-* has corresponding resource in mseng.rss
-*
-* The names are shown to the user in the order
-* as enumerated here.
-*/
-enum TDataGroups
- {
- EGroupAllDeviceData = 0,
- EGroupFreeMemory,
- EGroupCalendar,
- EGroupContacts,
- EGroupMessages,
- EGroupImages,
- EGroupSoundFiles,
- EGroupVideos,
- EGroupDocuments,
- EGroupMidpJava,
- EGroupNativeApps,
- EGroupOthers
- };
-
-#endif // MSENG.HRH
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/mseng.rh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,211 +0,0 @@
-/*
-* Copyright (c) 2002 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:
-* This file contains declarations for resources of memscaneng.
-* The file can be included only in resource file.
-*
-*
-*/
-
-
-// INCLUDES
-#include "mseng.hrh"
-
-// STRUCTURE DEFINITIONS
-
-
-// ---------------------------------------------------------
-// DIRECTORYARRAY
-//
-// The directories that are scanned (array of dir paths)
-// ---------------------------------------------------------
-//
-STRUCT DIRECTORYARRAY
- {
- LTEXT directories[];
- }
-
-// ---------------------------------------------------------
-// UIDTYPEELEMENT
-//
-// This struct maps one UID type from enum TUidTypes
-// to the value of the UID.
-// ---------------------------------------------------------
-//
-STRUCT UIDTYPEELEMENT
- {
- BYTE uidtype;
- LONG uid;
- }
-
-// ---------------------------------------------------------
-// UIDARRAY
-//
-// This array contain all the used UID type elements.
-// ---------------------------------------------------------
-//
-STRUCT UIDARRAY
- {
- STRUCT uidtypeelements[];
- }
-
-// ---------------------------------------------------------
-// EXTTYPEELEMENT
-//
-// This struct maps one extension type from enum TExtTypes
-// to the string representing the extension
-// ---------------------------------------------------------
-//
-STRUCT EXTTYPEELEMENT
- {
- BYTE exttype;
- LTEXT extension;
- }
-
-// ---------------------------------------------------------
-// EXTARRAY
-//
-// This array contain all the extension type elements used.
-// ---------------------------------------------------------
-//
-STRUCT EXTARRAY
- {
- STRUCT exttypeelements[];
- }
-
-// ---------------------------------------------------------
-// DATAGROUPNAMEELEMENT
-//
-// This struct maps one data group from enum TDataGroups
-// to the actual string representing the name of
-// the data group
-// ---------------------------------------------------------
-//
-STRUCT DATAGROUPNAMEELEMENT
- {
- BYTE grouptype;
- LTEXT groupname;
- }
-
-// ---------------------------------------------------------
-// DATAGROUPNAMEARRAY
-//
-// This array contains all data group names
-// ---------------------------------------------------------
-//
-STRUCT DATAGROUPNAMEARRAY
- {
- STRUCT datagroupnameelements[];
- }
-
-// ---------------------------------------------------------
-// DATAGROUPUIDS
-//
-// List of UIDs belonging to a data group.
-// ---------------------------------------------------------
-//
-STRUCT DATAGROUPUIDS
- {
- BYTE datagroup;
- BYTE uids[];
- }
-
-// ---------------------------------------------------------
-// DATAGROUPUIDARRAY
-//
-// This array includes for, each data group,
-// (enum TDataGroups), the list of UIDs (enum TUidTypes)
-// belonging to that data group.
-// ---------------------------------------------------------
-//
-STRUCT DATAGROUPUIDARRAY
- {
- STRUCT datagroupuids[];
- }
-
-// ---------------------------------------------------------
-// DATAGROUPEXTS
-//
-// List of extension belonging to a data group.
-// ---------------------------------------------------------
-//
-STRUCT DATAGROUPEXTS
- {
- BYTE datagroup;
- BYTE exts[];
- }
-
-// ---------------------------------------------------------
-// DATAGROUPEXTARRAY
-//
-// This array includes for, each data group,
-// (enum TDataGroups), the list of extension
-// (enum TExtTypes) belonging to that data group.
-// ---------------------------------------------------------
-//
-STRUCT DATAGROUPEXTARRAY
- {
- STRUCT datagroupexts[];
- }
-
-// ---------------------------------------------------------
-// EXTRADATAFILE
-//
-// Specific file that is scanned separately from
-// normal uid or ext scanning.
-// ---------------------------------------------------------
-//
-STRUCT EXTRADATAFILE
- {
- BYTE datagroup;
- LTEXT filepath;
- }
-
-// ---------------------------------------------------------
-// EXTRADATAFILES
-//
-// Specific files that is scanned separately from
-// normal uid or ext scanning.
-// ---------------------------------------------------------
-//
-STRUCT EXTRADATAFILES
- {
- STRUCT extradatafile[];
- }
-
-// ---------------------------------------------------------
-// SPECIAL_DATADIR
-//
-// A directory, where all files belong to the same
-// data group.
-// ---------------------------------------------------------
-STRUCT SPECIAL_DATADIR
- {
- BYTE datagroup;
- LTEXT path;
- LTEXT excludeddatafiles[];
- }
-
-// ---------------------------------------------------------
-// SPECIAL_DATADIRS
-//
-// This array of above defined special directories.
-//
-// ---------------------------------------------------------
-STRUCT SPECIAL_DATADIRS
- {
- STRUCT special_datadir[];
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengdirectoryscanner.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-/*
-* Copyright (c) 2002 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:
-* Scan directories.
-*
-*/
-
-
-#ifndef MSENGDIRECTORYSCANNER_H
-#define MSENGDIRECTORYSCANNER_H
-
-// USER INCLUDES
-#include "msengscannerbase.h"
-
-
-// CLASS DECLARATION
-
-/**
-* This class identifies all subdirectories based upon a given root path
-*/
-class CMsengDirectoryScanner : public CMsengScannerBase
- {
- public: // Constructors and destructor
-
- /**
- * C++ default constructor.
- */
- CMsengDirectoryScanner(MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray, RFs& aFsSession);
-
- /**
- * Destructor.
- */
- ~CMsengDirectoryScanner();
-
- /**
- *
- */
- enum TScanDirectoryResult
- {
- EContinueToNextDirectory = 0,
- EContinueProcessingCurrentDirectory
- };
-
- public: // New functions
-
- /**
- * Start the scan operation.
- */
- void ScanL(const CDesCArray& aRootDirs);
-
- protected: // From CMsengScannerBase
-
- /**
- * Do one incremental scanning step
- */
- virtual TStepResult PerformStepL();
-
- protected: // New framework
-
- /**
- * This is called when one directory needs scanning
- */
- virtual TScanDirectoryResult ScanDirectoryL(const TDesC& aDirectory, RFs& aFsSession) = 0;
-
- /**
- * Use this function to add a new directory to the list of
- * directories which require scanning
- */
- void AppendDirectoryL(const TDesC& aDirectory);
-
- private:
-
- /**
- *
- */
- enum TState
- {
- EExpandingRootDirs = 0,
- EParsingExpandedList,
- EScanningSubDirs
- };
-
- private:
-
- /**
- *
- */
- TState iState;
-
- /**
- *
- */
- TInt iCurrentIndex;
-
- /**
- *
- */
- CDirScan* iScanner;
-
- /**
- *
- */
- TInt iNumberOfRootDirectories;
-
- /**
- *
- */
- CDesCArray* iDirectoryList;
- };
-
-#endif // MSENGDIRECTORYSCANNER_H
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengfileextscanner.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* Scanner class used to scan file system by filename extensions.
-*
-*/
-
-
-#ifndef MSENGFILEEXTSCANNER_H
-#define MSENGFILEEXTSCANNER_H
-
-// INCLUDES
-#include "msengfilescanner.h"
-
-// CLASS DECLARATION
-
-/**
-* Scanner class used to scan file system by filename extension.
-*/
-class CMsengFileExtScanner : public CMsengFileScanner
- {
- public: // Constructors and destructor
-
- /**
- * constructor
- */
- static CMsengFileExtScanner* NewL(
- MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession);
-
- /**
- * Destructor.
- */
- ~CMsengFileExtScanner();
-
- public: // New functions
-
- /**
- *
- */
- virtual CDir* FindFilesL(const TDesC& aDirectory, TBool& aMoveToNextDirectory);
-
- /**
- *
- */
- virtual TLocationResponse HandleLocatedEntryL(const TDesC& aFullFileNameAndPath,
- const TEntry& aEntry);
-
- private:
-
- /**
- * C++ default constructor.
- */
- CMsengFileExtScanner(
- MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession);
-
- private:
-
- // Prohibit copy constructor if not deriving from CBase.
- CMsengFileExtScanner( const CMsengFileExtScanner& );
- // Prohibit assigment operator if not deriving from CBase.
- CMsengFileExtScanner& operator= ( const CMsengFileExtScanner& );
-
- /**
- *
- */
- TInt iCurrentExtensionIndex;
-
- /**
- *
- */
- TBool iMoveToNextDirectory;
- };
-
-#endif // MSENGFILEEXTSCANNER_H
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengfilescanner.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* Scan files.
-*
-*/
-
-
-#ifndef MSENGFILESCANNER_H
-#define MSENGFILESCANNER_H
-
-// USER INCLUDES
-#include "msengdirectoryscanner.h"
-
-// CLASS DECLARATION
-
-/**
-* This class identifies all files in a given directory based upon a
-* directory specification.
-*/
-class CMsengFileScanner : public CMsengDirectoryScanner
- {
- public: // Constructors and destructor
-
- /**
- * C++ default constructor.
- */
- CMsengFileScanner(MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray, RFs& aFsSession);
-
-
- /**
- * Destructor.
- */
- ~CMsengFileScanner();
-
- public:
-
- /**
- *
- */
- enum TLocationResponse
- {
- EEntryWasProcessed = 0,
- EEntryWasDiscarded
- };
-
- protected: // From CMsengDirectoryScanner
-
- /**
- * Scan this directory for files matching a subclass' criteria
- */
- virtual TScanDirectoryResult ScanDirectoryL(const TDesC& aDirectory, RFs& aFsSession);
-
- /**
- * Ask the subclass to populate a CDir object with a list of files matching
- * chosen criteria
- */
- virtual CDir* FindFilesL(const TDesC& aDirectory, TBool& aMoveToNextDirectory) = 0;
-
- /**
- * Inform the subclass of a matching entry
- */
- virtual TLocationResponse HandleLocatedEntryL(const TDesC& aFullFileNameAndPath,
- const TEntry& aEntry) = 0;
- };
-
-#endif // MSENGFILESCANNER_H
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengfindallscanner.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* Scanner class used to scan file system by filename extension
-*
-*
-*/
-
-
-#ifndef MSENGFINDALLSCANNER_H
-#define MSENGFINDALLSCANNER_H
-
-// INCLUDES
-#include "msengfilescanner.h"
-
-// CLASS DECLARATION
-
-/**
-* Scanner class used to scan file system by filename extension.
-*/
-class CMsengFindAllScanner : public CMsengFileScanner
- {
- public: // Constructors and destructor
-
- /**
- * constructor
- */
- static CMsengFindAllScanner* NewL(
- MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession);
-
-
- /**
- * Destructor.
- */
- ~CMsengFindAllScanner();
-
- public: // New functions
-
- /**
- *
- */
- virtual CDir* FindFilesL(const TDesC& aDirectory, TBool& aMoveToNextDirectory);
-
- /**
- *
- */
- virtual TLocationResponse HandleLocatedEntryL(const TDesC& aFullFileNameAndPath,
- const TEntry& aEntry);
-
- private:
-
- /**
- * C++ default constructor.
- */
- CMsengFindAllScanner(
- MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession);
-
- private:
-
- // Prohibit copy constructor if not deriving from CBase.
- CMsengFindAllScanner( const CMsengFindAllScanner& );
- // Prohibit assigment operator if not deriving from CBase.
- CMsengFindAllScanner& operator= ( const CMsengFindAllScanner& );
- };
-
-#endif // MSENGFINDALLSCANNER_H
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msenginfoarray.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* An utility class to handle the UIDs and filename extensions used to
-* identify data types. It is also used to store the results per data type.
-*
-*/
-
-
-#ifndef CMSENGINFOARRAY_H
-#define CMSENGINFOARRAY_H
-
-// INCLUDES
-#include <badesca.h>
-#include <f32file.h>
-
-// FORWARD DECLARATIONS
-class CResourceFile;
-class RResourceReader;
-
-
-// CLASS DECLARATION
-
-/**
-* An utility class to handle the UIDs and filename extensions
-* used to identify data types. It is also used to store
-* the results per data type
-*/
-class CMsengInfoArray : public CBase
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CMsengInfoArray* NewL(TDriveNumber aDrive,
- TInt aNumberOfDataGroups,
- RFs& aFsSession,
- CResourceFile& aResFile);
-
- /**
- * Destructor.
- */
- ~CMsengInfoArray();
-
- public: // New functions
-
- /**
- * Get the scan results per UID.
- * @return Pointer to the array of scan results per UID.
- */
- inline CArrayFix<TInt64>* UidResults() const;
-
- /**
- * Get the scan results per filename extension.
- * @return Pointer to the array of scan results per extension.
- */
- inline CArrayFix<TInt64>* ExtResults() const;
-
- /**
- * Get the scan results per data group.
- * @return Pointer to the array of scan results per group.
- */
- inline CArrayFix<TInt64>* GroupResults() const;
-
- /**
- * Get UIDs to be scanned for.
- * @return Pointer to the array of UIDs.
- */
- inline const CArrayFix<TUid>& Uids() const;
-
- /**
- * Get the extensions to be scanned for.
- * @return Pointer to the array of filename extensions.
- */
- inline const CDesCArray& Exts() const;
-
- /**
- * Get the directories to be scanned.
- * @return Pointer to the array of directory paths.
- */
- inline const CDesCArray& Dirs() const;
-
- /**
- * Get the special data directories to be scanned.
- * @return Pointer to the array data dir - data group pairs.
- */
- inline const CDesCArray& DataDirs() const;
-
- /**
- *
- *
- */
- inline const CArrayFix<TInt>& DataDirGroups() const;
-
- /**
- * Get the files excluded from directory to be scanned.
- */
- inline const CArrayPtrFlat<CDesCArray>& DataDirExcludedFiles() const;
-
- /**
- * Get the drive that is currently scanned
- * @return Drive current drive
- */
- inline const TDriveNumber CurrentDrive() const;
-
- /**
- * Add new file size to the result array.
- * @param aUid The file UID type in question
- * @param aSize Size of the file
- */
- inline void AddSizeByUidL(TInt aUid, TInt64 aSize);
-
- /**
- * Add new file size to the result array.
- * @param aExt Filename extension type in question
- * @param aSize Size of the file
- */
- inline void AddSizeByExtL(TInt aExt, TInt64 aSize);
-
- /**
- * Add scan result af a specific data group.
- * @param aGroupIndex Data group in question
- * @param aSize Size of the file
- */
- inline void AddSizeByGroupL(TInt aGroupIndex, TInt64 aSize);
-
- /**
- * Query if the directory is in the list of directories to be
- * excluded from scanning, or is a subdirectory of one
- * @param aDirectory Path of the directory
- * @return TBool
- */
- TBool IsExcludedDir(const TDesC& aDirectory) const;
-
- /**
- * This function is otherwise similar to BaflUtils::FolderExists, but
- * it also ETrue for drive root (e.g. "c:\")
- * @param aFs File server session
- * @param aDirectory Path of the directory
- */
- TBool FolderExists(RFs& aFs, const TDesC& aPath);
-
- /**
- * Query if the directory is in the list of directories to be
- * excluded from scanning, or is a subdirectory of one
- * @param aDirectory Path of the directory
- * @return TBool
- */
- TBool IsSpecialDir(const TDesC& aDirectory) const;
-
-
- private:
-
- /**
- * C++ default constructor is prohibited.
- */
- CMsengInfoArray(TDriveNumber aDrive);
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL(TInt aNumberOfDataGroups, RFs& aFsSession, CResourceFile& aResFile);
-
- // Prohibit copy constructor if not deriving from CBase.
- CMsengInfoArray( const CMsengInfoArray& );
- // Prohibit assigment operator if not deriving from CBase.
- CMsengInfoArray& operator= ( const CMsengInfoArray& );
-
- private: // Data
- // Root directories for scanning
- CDesCArray* iDirArray;
-
- // Directories that are excluded from the normal scan
- CDesCArray* iExcludedDirArray;
-
- // Directories scanned as a whole excluding listed files
- CDesCArray* iDataDirArray;
- CArrayFix<TInt>* iDataDirGroupArray;
- CArrayPtrFlat<CDesCArray>* iDataDirExclArray;
-
- // The drive that is currently scanned
- TDriveNumber iCurrentScannedDrive;
-
- // The following arrays are indexed using values from enumerations
- // TUidTypes and TExtTypes
-
- // Results are inserted into these arrays
- CArrayFix<TInt64>* iUidResultArray;
- CArrayFix<TInt64>* iExtResultArray;
- CArrayFix<TInt64>* iGroupResultArray;
-
- // UIDs and extensions, which are searched,
- // are in these two arrays
- CArrayFix<TUid>* iUidArray;
- CDesCArray* iExtArray;
- };
-
-#include "msenginfoarray.inl"
-
-#endif // CMSENGINFOARRAY_H
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msenginfoarray.inl Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* Copyright (c) 2002 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: Inline definition for CMsengInfoArray
-*
-*
-*/
-
-
-inline CArrayFix<TInt64>* CMsengInfoArray::UidResults() const
- {
- return iUidResultArray;
- }
-
-inline CArrayFix<TInt64>* CMsengInfoArray::ExtResults() const
- {
- return iExtResultArray;
- }
-
-inline CArrayFix<TInt64>* CMsengInfoArray::GroupResults() const
- {
- return iGroupResultArray;
- }
-
-inline const CArrayFix<TUid>& CMsengInfoArray::Uids() const
- {
- return *iUidArray;
- }
-
-inline const CDesCArray& CMsengInfoArray::Exts() const
- {
- return *iExtArray;
- }
-
-inline const CDesCArray& CMsengInfoArray::Dirs() const
- {
- return *iDirArray;
- }
-
-inline const CDesCArray& CMsengInfoArray::DataDirs() const
- {
- return *iDataDirArray;
- }
-
-inline const CArrayFix<TInt>& CMsengInfoArray::DataDirGroups() const
- {
- return *iDataDirGroupArray;
- }
-
-inline const CArrayPtrFlat<CDesCArray>& CMsengInfoArray::DataDirExcludedFiles() const
- {
- return *iDataDirExclArray;
- }
-
-inline const TDriveNumber CMsengInfoArray::CurrentDrive() const
- {
- return iCurrentScannedDrive;
- }
-
-inline void CMsengInfoArray::AddSizeByUidL(TInt aUid, TInt64 aSize)
- {
- // The array must have been initialized to contain zeros!
- (*iUidResultArray)[aUid] += aSize;
- }
-
-inline void CMsengInfoArray::AddSizeByExtL(TInt aExt, TInt64 aSize)
- {
- // The array must have been initialized to contain zeros!
- (*iExtResultArray)[aExt] += aSize;
- }
-
-inline void CMsengInfoArray::AddSizeByGroupL(TInt aGroupIndex, TInt64 aSize)
- {
- // The array must have been initialized to contain zeros!
- (*iGroupResultArray)[aGroupIndex] += aSize;
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengregistryscanner.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2006 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: Memory scan engine registry scanning
-*
-*/
-
-
-#ifndef MSENGREGISTRYSCANNER_H
-#define MSENGREGISTRYSCANNER_H
-
-// USER INCLUDES
-#include "msengscannerbase.h"
-
-
-// CLASS DECLARATION
-
-/**
-* This class represents a registry scanner.
-*
-* @since 3.2
-*/
-class CMsengRegistryScanner : public CMsengScannerBase
- {
- public: // Constructors and destructor
-
- /**
- * Constructor.
- *
- * @param aDrive - Drive to be scanned.
- */
- static CMsengRegistryScanner* NewL( TDriveNumber aDrive, MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray, RFs& aFsSession);
-
- /**
- * Destructor.
- */
- ~CMsengRegistryScanner();
-
- public: // New functions
-
- /**
- * Starts the scan operation.
- * @since S60 3.2
- */
- void Scan();
-
- protected: // Functions from base classes
-
- /**
- * From CMsengScannerBase
- * Do one incremental scanning step
- *
- * @since S60 3.2
- */
- virtual TStepResult PerformStepL();
-
-
- private:
-
- CMsengRegistryScanner(TDriveNumber aDrive, MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray, RFs& aFsSession);
-
- void ScanSisRegistryL();
-
- private: // Internal enumerations
-
- /**
- *
- */
- enum TRegistryType
- {
- ERegistrySisx,
- ERegistryLast
- };
-
- private: // Data
-
- TRegistryType iType;
- TDriveNumber iDrive;
- };
-
-#endif // MSENGREGISTRYSCANNER
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengscanner.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* CMsengScanner is the class that mostly controls the operation
-* of Memory Scan Engine. It CMsengScannerBase-derived active objects
-* to perform scanning operations.
-*
-*/
-
-
-#ifndef CMSENGSCANNER_H
-#define CMSENGSCANNER_H
-
-// SYSTEM INCLUDES
-#include <barsc2.h> // CResourceFile
-#include <barsread2.h> // RResourceReader
-
-// USER INCLUDES
-#include "msengscanobserver.h"
-#include "msenginfoarray.h"
-
-
-// FORWARD DECLARATIONS
-class MMsengUIHandler;
-class CMsengFileExtScanner;
-class CMsengFindAllScanner;
-class CMsengRegistryScanner;
-
-
-// CLASS DECLARATION
-
-/**
-* CMsengScanner controls the scanning operation.
-*/
-class CMsengScanner : public CBase, public MMsengScannerObserver
- {
- public: // Constructors and destructor
-
- /**
- * C++ default constructor.
- */
- CMsengScanner(MMsengUIHandler& aUIHandler, CResourceFile& aResFile);
-
- /**
- * Destructor.
- */
- virtual ~CMsengScanner();
-
- public: // New functions
-
- /**
- *
- */
- void Cancel();
-
- /**
- *
- */
- TBool HaveActiveScanners() const;
-
- /**
- * Start scanning (creates a new thread).
- * @param aDrive the drive which is scanned
- * @paran aNumberOfDataGroups
- * @return KErrInUse if the scanning is already going on;
- * KErrNone otherwise
- */
- TInt ScanL(TDriveNumber aDrive, TInt aNumberOfDataGroups, RFs& FsSession);
-
- /**
- * Get scan results per UID.
- * @return Pointer to an array containing results per UID.
- */
- inline const CArrayFix<TInt64>* UidResults() const;
-
- /**
- * Get scan results per filename extension.
- * @return Pointer to an array containing results per ext.
- */
- inline const CArrayFix<TInt64>* ExtResults() const;
-
- /**
- * Get scan results per data group.
- * @return Pointer to an array containing results per group.
- */
- inline const CArrayFix<TInt64>* GroupResults() const;
-
- /**
- *
- */
- inline const TDriveNumber CurrentDrive() const;
-
- public: // From MMsengScannerObserver
-
- /**
- *
- * @param aEvent event that is handled
- */
- void HandleScannerEventL(TScannerEvent aEvent,
- const CMsengScannerBase& aScanner, TInt aError=KErrNone);
-
- private:
-
- /**
- * Do some simple scanning before actual work.
- * @param aDrive the drive to be scanned
- * @param aFsSession reference to file server session
- */
- void PreScanL(TDriveNumber aDrive, RFs& aFsSession);
-
- // Prohibit copy constructor if not deriving from CBase.
- CMsengScanner( const CMsengScanner& );
- // Prohibit assigment operator if not deriving from CBase.
- CMsengScanner& operator= ( const CMsengScanner& );
-
- private: // Data
-
- // External objects
- MMsengUIHandler& iUIHandler;
- CMsengInfoArray* iScanArray;
- CResourceFile& iResFile;
-
- // Owned objects
- CMsengFileExtScanner* iFileExtScanner;
- CMsengFindAllScanner* iFindAllScanner;
- CMsengRegistryScanner* iRegistryScanner;
- };
-
-#include "msengscanner.inl"
-
-#endif // CMSENGSCANNER_H
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengscanner.inl Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2002 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: Inline definition for CMsengScanner
-*
-*
-*/
-
-
-inline const CArrayFix<TInt64>* CMsengScanner::UidResults() const
- {
- return iScanArray->UidResults();
- }
-
-inline const CArrayFix<TInt64>* CMsengScanner::ExtResults() const
- {
- return iScanArray->ExtResults();
- }
-
-inline const CArrayFix<TInt64>* CMsengScanner::GroupResults() const
- {
- return iScanArray->GroupResults();
- }
-
-inline const TDriveNumber CMsengScanner::CurrentDrive() const
- {
- return iScanArray->CurrentDrive();
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengscannerbase.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
-* Copyright (c) 2006 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 scanner classes.
-*
-*
-*/
-
-
-#ifndef MSENGSCANNERBASE_H
-#define MSENGSCANNERBASE_H
-
-
-
-
-// USER INCLUDES
-#include "mseng.hrh"
-#include "msenginfoarray.h"
-#include "msengscanobserver.h"
-
-
-
-// CONSTANTS
-const TInt KDirectoryListGranularity = 10;
-
-// CLASS DECLARATION
-
-/**
-* Base class for scanner classes.
-*
-*/
-class CMsengScannerBase : public CActive
- {
- public: // Constructors and destructor
-
- /**
- *
- */
- enum TStepResult
- {
- ECompleteRequest = 0,
- ERequestIssuedInternally,
- EScanComplete
- };
-
- /**
- * C++ default constructor.
- */
- CMsengScannerBase(MMsengScannerObserver& aObserver,
- CMsengInfoArray& aInfoArray, RFs& aFsSession);
-
- /**
- * Destructor.
- */
- virtual ~CMsengScannerBase();
-
- protected: // Internal functions
-
- /**
- * Do one incremental scanning step
- */
- virtual TStepResult PerformStepL() = 0;
-
- /**
- * Complete this active object's request and set it active again
- */
- void CompleteRequest(TInt aCode = KErrNone);
-
- /**
- * Add new value in bytes to the amount of data found with this UID.
- * @param aUid The UID type.
- * @param aSize The size of the file with this UID.
- */
- inline void AddSizeByUidL(TUidTypes aUid, TInt64 aSize);
-
- /**
- * Add new value in bytes to the amount of data found with this UID.
- * @param aUid The UID type.
- * @param aSize The size of the file with this UID.
- */
- inline void AddSizeByExtL(TExtTypes aExt, TInt64 aSize);
-
- /**
- * Query if the directory is in the list of directories to be
- * excluded from scanning, or is a subdirectory of one.
- * @param aDirectory Path of the directory
- */
- inline TBool IsExcludedDir(const TDesC& aDirectory);
-
- /**
- * Query if the directory is in the list of directories to be
- * excluded from scanning, or is a subdirectory of one.
- * @param aDirectory Path of the directory
- */
- inline TBool IsSpecialDir(const TDesC& aDirectory);
-
- /**
- * Access the file server session
- */
- inline RFs& FsSession();
-
- /**
- * Access the information array
- */
- inline CMsengInfoArray& InfoArray();
-
- /**
- * Access the observer of this scanner
- */
- inline MMsengScannerObserver& ScannerObserver();
-
- private: // from CActive
-
- /**
- *
- */
- virtual void RunL();
-
- /**
- *
- */
- virtual void DoCancel();
-
- /**
- *
- */
- virtual TInt RunError(TInt aError);
-
- private:
-
- // Prohibit copy constructor if not deriving from CBase.
- CMsengScannerBase( const CMsengScannerBase& );
- // Prohibit assigment operator if not deriving from CBase.
- CMsengScannerBase& operator= ( const CMsengScannerBase& );
-
-
- private:
-
- MMsengScannerObserver& iObserver;
- CMsengInfoArray& iInfoArray;
- RFs& iFsSession;
- };
-
-#include "msengscannerbase.inl"
-
-#endif // CMSENGSCANNERBASE_H
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengscannerbase.inl Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2002 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: Inline definition for CMsengScannerBase
-*
-*
-*/
-
-
-inline void CMsengScannerBase::AddSizeByUidL(TUidTypes aUid, TInt64 aSize)
- {
- iInfoArray.AddSizeByUidL(aUid, aSize);
- }
-
-inline void CMsengScannerBase::AddSizeByExtL(TExtTypes aExt, TInt64 aSize)
- {
- iInfoArray.AddSizeByExtL(aExt, aSize);
- }
-
-inline TBool CMsengScannerBase::IsExcludedDir(const TDesC& aDirectory)
- {
- return iInfoArray.IsExcludedDir(aDirectory);
- }
-
-inline TBool CMsengScannerBase::IsSpecialDir(const TDesC& aDirectory)
- {
- return iInfoArray.IsSpecialDir(aDirectory);
- }
-
-inline RFs& CMsengScannerBase::FsSession()
- {
- return iFsSession;
- }
-
-inline CMsengInfoArray& CMsengScannerBase::InfoArray()
- {
- return iInfoArray;
- }
-inline MMsengScannerObserver& CMsengScannerBase::ScannerObserver()
- {
- return iObserver;
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengscanobserver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2002 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:
-* An interface class used by the scanning thread to send
-* events to the CMsengScanner instance that created the thread.
-*
-*/
-
-
-#ifndef MSENGSCANOBSERVER_H
-#define MSENGSCANOBSERVER_H
-
-// CLASS REFERENCED
-class CMsengScannerBase;
-
-// CLASS DECLARATION
-
-/**
-*
-*/
-class MMsengScannerObserver
- {
- public:
-
- /**
- *
- */
- enum TScannerEvent
- {
- EScannerEventScanComplete = 0,
- EScannerEventScanError
- };
-
- public:
-
- /**
- *
- */
- virtual void HandleScannerEventL(
- TScannerEvent aEvent, const CMsengScannerBase& aScanner, TInt aRrror=KErrNone) = 0;
- };
-
-#endif // MSENGSCANOBSERVER_H
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msengsisxinfo.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* Copyright (c) 2006 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: Memory scanning engine registry scanning
-*
-*/
-
-
-#ifndef MSENGSISXINFO_H
-#define MSENGSISXINFO_H
-
-// CLASS DECLARATION
-
-/**
-* This class represents a sis registry entry.
-*
-* @since 3.2
-*/
-class CMsengSisxInfo : public CBase
- {
- public: // Constructors and destructor
-
- /**
- * Constructor.
- *
- * @param aEntry - Sis registry entry.
- * @param aDrive - Drive we are interested in
- */
- static CMsengSisxInfo* NewL( Swi::RSisRegistryEntry& aEntry, TDriveNumber aDrive );
-
-
- /**
- * Destructor.
- */
- virtual ~CMsengSisxInfo();
-
- public: // New functions
-
-
- public: // Functions from base classes
-
- /**
- * From CAppMngrAppInfo, Get location of the application.
- *
- * @since 3.2
- * @return Application location.
- */
- TBool RequestedLocation() const;
-
-
- private:
-
- /**
- * 2nd phase constructor.
- *
- * @since 3.2
- * @param aEntry - Sis registry entry.
- * @param aDrive - Drive scanning is requested for.
- */
- void ConstructL( Swi::RSisRegistryEntry& aEntry, TDriveNumber aDrive );
-
- private: // Data
- HBufC* iFileName; // Own
- RPointerArray<HBufC> iFiles;
-
- TBool iRequestedLocation;
- TUid iUid;
- };
-
-#endif // MSENGSISXINFO_H
-
-// End of File
--- a/filesystemuis/memscaneng/serverinc/msenguihandler.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2006 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 pure virtual interface class used by the UI to handle events from
-* the Memory Scan Engine.
-*
-*/
-
-
-#ifndef MMSENGUIHANDLER_H
-#define MMSENGUIHANDLER_H
-
-// INCLUDES
-#include <e32base.h>
-#include <e32std.h>
-
-// FORWARD DECLARATIONS
-class CMsengInfoArray;
-
-// CONSTANTS
-
-// CLASS DECLARATION
-
-/**
-* An interface class used by the engine to send information to the calling class.
-*/
-class MMsengUIHandler
- {
- public: // New functions
-
- /**
- * The engine tells that it has successfully initialized itself and
- * started the scanning operation.
- */
- virtual void StartL()=0;
-
- /**
- * The last method called when the scanning is either finished or canceled.
- * @param aReason The quit reason, can be KErrNone or KErrCancel.
- */
- virtual void QuitL(TInt aReason)=0;
-
- /**
- * The engine notifies the calling class if some error has happened
- * @param aError Error code.
- */
- virtual void ErrorL(TInt aError)=0;
- };
-
-#endif // MMSENGUIHANDLER_H
-
-// End of File
--- a/filesystemuis/memscaneng/serversrc/memscanserv.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,621 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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: Memory Scan Server
-*
-*/
-
-
-
-// SYSTEM INCLUDES
-#include <e32svr.h>
-#include <s32mem.h> // RBufWriteStream
-
-// USER INCLUDES
-#include "memscanserv.h"
-#include "memscanutils.h" // traces
-
-
-// ---------------------------------------------------------------------------
-// Server startup code
-// ---------------------------------------------------------------------------
-
-// Perform all server initialisation, in particular creation of the
-// scheduler and server and then run the scheduler
-//
-static void RunServerL()
- {
- // naming the server thread after the server helps to debug panics
- User::LeaveIfError(User::RenameThread(KMemScanServName));
-
- // create and install the active scheduler we need
- CActiveScheduler* scheduler=new(ELeave) CActiveScheduler;
- CleanupStack::PushL(scheduler);
- CActiveScheduler::Install(scheduler);
- // create the server (leave it on the cleanup stack)
- CMemScanServ::NewLC();
- // Initialisation complete, now signal the client
-
- RProcess::Rendezvous(KErrNone);
-
- // Ready to run
- TRACES( RDebug::Print(_L("MemScanServ: server fully running")) );
- CActiveScheduler::Start();
- // Cleanup the server and scheduler
- CleanupStack::PopAndDestroy(2, scheduler);
- }
-
-// Server process entry-point
-TInt E32Main()
- {
- __UHEAP_MARK;
- TRACES( RDebug::Print(_L("MemScanServ: E32Main")) );
- CTrapCleanup* cleanup=CTrapCleanup::New();
- TInt r=KErrNoMemory;
- if (cleanup)
- {
- TRAP(r,RunServerL());
- delete cleanup;
- }
- __UHEAP_MARKEND;
- return r;
- }
-
-// RMessagePtr2::Panic() also completes the message. This is:
-// (a) important for efficient cleanup within the kernel
-// (b) a problem if the message is completed a second time
-void PanicClient(const RMessagePtr2& aMessage,TMemScanServPanic aPanic)
- {
- _LIT(KPanic,"MemScanServ");
- aMessage.Panic(KPanic,aPanic);
- }
-
-
-// ---------------------------------------------------------------------------
-// CShutDown
-// ---------------------------------------------------------------------------
-inline CShutdown::CShutdown()
- :CTimer(-1)
- {
- CActiveScheduler::Add(this);
- }
-
-inline void CShutdown::ConstructL()
- {
- CTimer::ConstructL();
- }
-
-inline void CShutdown::Start()
- {
- TRACES( RDebug::Print(_L("MemScanServ: starting shutdown timeout")) );
- After(EMemScanServShutdownDelay);
- }
-
-void CShutdown::RunL()
- {
- TRACES( RDebug::Print(_L("MemScanServ: server timeout ... closing")) );
- CActiveScheduler::Stop();
- }
-
-// ---------------------------------------------------------------------------
-// CMemScanServ
-// ---------------------------------------------------------------------------
-inline CMemScanServ::CMemScanServ()
- :CPolicyServer(0, KMemScanServPolicy, ESharableSessions)
- {
- }
-
-CServer2* CMemScanServ::NewLC()
- {
- TRACES( RDebug::Print(_L("MemScanServ: CMemScanServ::NewLC")) );
- CMemScanServ* self=new(ELeave) CMemScanServ;
- CleanupStack::PushL(self);
- self->ConstructL();
- return self;
- }
-
-// 2nd phase construction - ensure the timer and server objects are running
-void CMemScanServ::ConstructL()
- {
- StartL(KMemScanServName);
- iShutdown.ConstructL();
- // ensure the server still exits even if the 1st client fails to connect
- if( !iShutdown.IsActive() )
- {
- iShutdown.Start();
- }
- }
-
-
-// Create a new client session.
-CSession2* CMemScanServ::NewSessionL(const TVersion& aVersion, const RMessage2&) const
- {
- TRACES( RDebug::Print(_L("MemScanServ: CMemScanServ::NewSessionL")) );
-
- // Client-Server version check
- TVersion version(KMemScanServMajor, KMemScanServMinor, KMemScanServBuild);
- if( !User::QueryVersionSupported( version, aVersion ) )
- {
- User::Leave( KErrNotSupported );
- }
-
- return new (ELeave) CMemScanServSession();
- }
-
-// A new session is being created
-// Cancel the shutdown timer if it was running
-void CMemScanServ::AddSession()
- {
- TRACES( RDebug::Print(_L("MemScanServ: CMemScanServ::AddSession")) );
- ++iSessionCount;
- iShutdown.Cancel();
- }
-
-// A session is being destroyed
-// Start the shutdown timer if it is the last session.
-void CMemScanServ::DropSession()
- {
- TRACES( RDebug::Print(_L("MemScanServ: CMemScanServ::DropSession")) );
- if (--iSessionCount==0)
- {
- if( !iShutdown.IsActive() )
- {
- iShutdown.Start();
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession
-// ---------------------------------------------------------------------------
-inline CMemScanServSession::CMemScanServSession()
- {
- TRACES( RDebug::Print(_L("MemScanServer: CMemScanServSession::CMemScanServSession")); )
- }
-
-inline CMemScanServ& CMemScanServSession::Server()
- {
- return *static_cast<CMemScanServ*>(const_cast<CServer2*>(CSession2::Server()));
- }
-
-// 2nd phase construct for sessions - called by the CServer framework
-void CMemScanServSession::CreateL()
- {
- TRACES( RDebug::Print(_L("MemScanServ: CMemScanServSession::CreateL")); )
- Server().AddSession();
-
- // Create a transfer buffer
- iTransferBuffer = CBufFlat::NewL(KMemScanServTransferBufferExpandSize);
- }
-
-CMemScanServSession::~CMemScanServSession()
- {
- TRACES( RDebug::Print(_L("MemScanServ: CMemScanServSession::~CMemScanServSession")); )
-
-
- delete iTransferBuffer;
- delete iMseng;
-
-
- iEventBuffer.Close();
- Server().DropSession();
- }
-
-
-// Handle a client request.
-// Leaving is handled by CMemScanServSession::ServiceError() which reports
-// the error code to the client
-void CMemScanServSession::ServiceL(const RMessage2& aMessage)
- {
- TRACES( RDebug::Print(_L("MemScanServ: CMemScanServSession::ServiceL; %d"),aMessage.Function()); )
- switch (aMessage.Function())
- {
- case EMemScanPrepareDataGroups:
- {
- PrepareDataGroupsL( aMessage );
- break;
- }
- case EMemScanGetDataGroups:
- {
- GetDataGroupsL( aMessage );
- break;
- }
- case EMemScanStartScan:
- {
- MemScanL( aMessage );
- break;
- }
- case EMemScanPrepareScanResults:
- {
- PrepareScanResultsL( aMessage );
- break;
- }
- case EMemScanGetScanResults:
- {
- GetScanResultsL( aMessage );
- break;
- }
- case EMemScanRequestScanEvents:
- {
- RequestScanEventsL( aMessage );
- break;
- }
- case EMemScanRequestScanEventsCancel:
- {
- RequestScanEventsCancel( aMessage );
- break;
- }
- case EMemScanInProgress:
- {
- ScanInProgress( aMessage );
- break;
- }
-
- default:
- {
- TRACES( RDebug::Print(_L("MemScanServ: CMemScanServSession::ServiceL; %d"),aMessage.Function()); )
- PanicClient(aMessage,EPanicIllegalFunction);
- break;
- }
-
- }
- }
-
-// Handle an error from CMemScanServSession::ServiceL()
-void CMemScanServSession::ServiceError(const RMessage2& aMessage,TInt aError)
- {
- TRACES( RDebug::Print(_L("MemScanServ: CMemScanServSession::ServiceError %d"),aError); )
- CSession2::ServiceError(aMessage,aError);
- }
-
-
-// ***************************************************************************
-// Internal utility functions
-// ***************************************************************************
-
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::PrepareDataGroupsL()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::PrepareDataGroupsL(const RMessage2& aMessage)
- {
- // Create scan engine if it does not exist
- if(!iMseng)
- {
- iMseng = CMseng::NewL(*this);
- }
-
- // Get data group name array
- CDesCArray* dataGroupArray = iMseng->DataGroupsL();
- CleanupStack::PushL(dataGroupArray);
-
-
- // *** Start externalizing the data group array to transfer buffer
-
- // Clear the buffer
- iTransferBuffer->Reset();
-
- // Set buffer for the stream
- RBufWriteStream stream(*iTransferBuffer);
- CleanupClosePushL(stream);
-
- // Write number of fields in array to stream
- TInt count = dataGroupArray->MdcaCount();
- stream.WriteInt32L(count);
-
- // Write each field in array to stream
- for(TInt i=0; i<count; i++)
- {
- TInt length = dataGroupArray->MdcaPoint(i).Length();
- stream.WriteInt32L(length); // writes datagroup name length to stream
- const TPtrC group = dataGroupArray->MdcaPoint(i);
- stream << group; // writes one datagroup to stream
- }
-
- stream.CommitL();
- CleanupStack::PopAndDestroy(&stream);
- CleanupStack::PopAndDestroy(dataGroupArray);
-
- // *** externalizing done
-
-
- // Write the size of transfer buffer back to client
- TPckgBuf<TInt> size(iTransferBuffer->Size());
- aMessage.WriteL(0, size);
-
- // complete the message
- aMessage.Complete( KErrNone );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::GetDataGroupsL()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::GetDataGroupsL(const RMessage2& aMessage)
- {
- // Get the prepared data groups
- aMessage.WriteL( KMesArg0, iTransferBuffer->Ptr(0));
-
- aMessage.Complete( KErrNone );
- }
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::PrepareScanResultsL()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::PrepareScanResultsL(const RMessage2& aMessage)
- {
- // Get scan results from server
- CArrayFix<TInt64>* resultArray = iMseng->ScanResultL();
- CleanupStack::PushL(resultArray);
-
- // *** Start externalizing the result array to transfer buffer
-
- // Clear the buffer
- iTransferBuffer->Reset();
-
- // Set buffer for the stream
- RBufWriteStream stream(*iTransferBuffer);
- CleanupClosePushL(stream);
-
- // Write number of fields in array to stream
- TInt count = resultArray->Count();
- stream.WriteInt32L(count);
-
- // Write each field in array to stream
- for(TInt i=0; i<count; i++)
- {
- const TInt64 result = resultArray->At(i);
- stream << result; // writes one data result to stream
- }
-
- stream.CommitL();
- CleanupStack::PopAndDestroy(&stream);
- CleanupStack::PopAndDestroy(resultArray);
-
- // *** externalizing done
-
-
- // Write the size of transfer buffer back to client
- TPckgBuf<TInt> size(iTransferBuffer->Size());
- aMessage.WriteL(0, size);
-
-
- aMessage.Complete( KErrNone );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::GetScanResultsL()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::GetScanResultsL(const RMessage2& aMessage)
- {
- // Get the prepared scan results
- aMessage.WriteL( KMesArg0, iTransferBuffer->Ptr(0));
-
- aMessage.Complete( KErrNone );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::MemScanL()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::MemScanL(const RMessage2& aMessage)
- {
- TRACES( RDebug::Print(_L("MemScanServ: CMemScanServSession::ScanL")); )
-
- // Get the first integer parameter of message
- TDriveNumber drive = TDriveNumber(aMessage.Int0());
-
- iMseng->ScanL( drive );
- aMessage.Complete( KErrNone );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::RequestScanEventsL()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::RequestScanEventsL(const RMessage2& aMessage)
- {
- if ( iScanEventMessage.IsNull() )
- {
- // We want check that the client hasn't requested scan events
- // twice in a row. The client is only allowed to have one
- // scan event request outstanding at any given time.
- //
- // Since the iScanEventMessage was null (i.e. its not been
- // initialised) then its safe to store the client's message
- // for completion later on when the scan engine has a real event.
-
- // Save the clients message for later until we receive an
- // event callback from the scan engine.
- iScanEventMessage = aMessage;
-
- // If we have at least one event ready to send to the client, then
- // we deliver it to the client immediately. This could be possible
- // if the client is slow to process an earlier event.
- const TBool haveAtLeastOneEventPending = IsEventReady();
- if ( haveAtLeastOneEventPending )
- {
- // We must deliver the oldest event to the client.
- DeliverOldestEventToClientL(); // this will complete aMessage immediately.
- }
- }
- else
- {
- // The client has already asked for scan events as we still
- // have an existing (valid) iScanEventMessage object.
- //
- // This would imply a programming error in the client code
- // so we punish the client by panicking it.
- aMessage.Panic( KMemScanServerPanicCategory, EMemScanServerPanicRequestedScanEventsTwice );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::RequestScanEventsCancel()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::RequestScanEventsCancel(const RMessage2& aMessage)
- {
- // We only are able to cancel a client request if the client actually
- // requested something.
- // We can check whether a request is pending by using the IsNull method
- // on our outstanding request object ("iScanEventMessage").
- if ( iScanEventMessage.IsNull() == EFalse )
- {
- // The client has made a request, and we need to cancel it.
- iScanEventMessage.Complete( KErrCancel );
- }
-
-
- // If the client wants to cancel events, we should also empty
- // the event buffer.
- iEventBuffer.Reset();
-
- aMessage.Complete( KErrNone );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::ScanInProgress()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::ScanInProgress(const RMessage2& aMessage)
- {
- TBool scanInProgress = iMseng->ScanInProgress();
- aMessage.Complete(static_cast<TInt> (scanInProgress));
- }
-
-
-
-// From MMsengUIHandler:
-// ===========================================================================
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::StartL()
-// ---------------------------------------------------------------------------
-void CMemScanServSession::StartL()
- {
- SendEventToClientL( EMemScanEventScanningStarted );
- }
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::QuitL()
-// ---------------------------------------------------------------------------
-void CMemScanServSession::QuitL(TInt aReason)
- {
- SendEventToClientL( EMemScanEventScanningFinished, aReason );
- }
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::Error()
-// ---------------------------------------------------------------------------
-void CMemScanServSession::ErrorL(TInt aError)
- {
- SendEventToClientL( EMemScanEventScanningError, aError );
- }
-
-// ===========================================================================
-
-
-
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::SendEventToClientL()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::SendEventToClientL( TMemScanEvent aEventType,
- TInt aError )
- {
- // We need to tell the client about the event that has taken place.
- // The client event API expects to receive the event type, i.e. what
- // kind of "thing" just happened, and also any associated error value
- // (e.g. "Nothing went wrong" or, "we ran out of memory").
-
- AddNewEventToBufferL( aEventType, aError );
- DeliverOldestEventToClientL();
- }
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::AddNewEventToBufferL()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::AddNewEventToBufferL( TMemScanEvent aEventType,
- TInt aError )
- {
- TMemScanEventPackage event;
- event.iEvent = aEventType;
- event.iError = aError;
-
- // Add the event to the event buffer. We will send this event to the
- // client when the client is ready to accept it.
- iEventBuffer.AppendL( event );
- }
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::IsEventReady()
-//
-// ---------------------------------------------------------------------------
-TBool CMemScanServSession::IsEventReady() const
- {
- // Returns whether we have at least one event in the buffer ready to send
- // to the client.
- const TInt count = iEventBuffer.Count();
- return ( count > 0 );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanServSession::DeliverOldestEventToClientL()
-//
-// ---------------------------------------------------------------------------
-void CMemScanServSession::DeliverOldestEventToClientL()
- {
- // Fetch the oldest event from the buffer and deliver it
- // to the client.
- if ( iScanEventMessage.IsNull() == EFalse && IsEventReady() )
- {
- // This next block of code converts the error number to look like
- // a descriptor, since this is the only way of writing to the
- // client's address space.
- //
- // We check that the client actually requested scan events before
- // we try and write to its address space. If we don't do this
- // then the kernel will panic our code with KERN-SVR 0
- // ("you're trying to use a null message object")
- const TMemScanEventPackage& event = iEventBuffer[ 0 ];
-
- TPckgC<TInt> associatedErrorAsDescriptor( event.iError );
- iScanEventMessage.WriteL( 0, associatedErrorAsDescriptor );
-
- // Now that we have written the error value, its safe to complete
- // the clients asynchronous request which will end up calling
- // the client's RunL method.
- iScanEventMessage.Complete( event.iEvent );
-
- // We've delivered the oldest event to the client, so now
- // its safe to discard it.
- iEventBuffer.Remove( 0 );
- }
- }
-
-
-// End of File
--- a/filesystemuis/memscaneng/serversrc/mseng.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,589 +0,0 @@
-/*
-* Copyright (c) 2006-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:
-* The actual "engine".
-*
-*
-*/
-
-
-// INCLUDE FILES
-
-
-// SYSTEM INCLUDES
-#include <mseng.rsg>
-#include <bautils.h>
-#include <driveinfo.h>
-
-// USER INCLUDES
-#include "mseng.h"
-#include "mseng.hrh"
-#include "msengscanner.h"
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMseng::CMseng()
-//
-// C++ default constructor. Can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-
-
-
-CMseng::CMseng( MMsengUIHandler& aUIHandler ) :
- iUIHandler(aUIHandler),
- iFreeMemory(0)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMseng::NewL()
-//
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-
-EXPORT_C CMseng* CMseng::NewL(MMsengUIHandler& aUIHandler)
- {
- CMseng* self = new (ELeave) CMseng(aUIHandler);
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CMseng::ConstructL()
-//
-// Symbian OS default constructor can leave.
-// ---------------------------------------------------------------------------
-
-void CMseng::ConstructL()
- {
- #ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("** CMseng::ConstructL()... starting **"));
- #endif // __SHOW_RDEBUG_PRINT_
-
- // Connect to File Server
- User::LeaveIfError(iFsSession.Connect());
-
- // Open the resource file
- TParse* fp = new(ELeave) TParse();
- fp->Set(KMsengRscFilePath, &KDC_RESOURCE_FILES_DIR, NULL);
- TFileName fileName( fp->FullName() );
- delete fp;
-
-
- BaflUtils::NearestLanguageFile( iFsSession, fileName );
- //
- TEntry entry;
- User::LeaveIfError( iFsSession.Entry( fileName, entry ) );
- // if file does not exist, leaves with KErrNotFound
-
- iResFile = CResourceFile::NewL( iFsSession, fileName, 0, entry.FileSize() );
-
- iResFile->ConfirmSignatureL();
-
-
- /////////////////////////////////////////////////////////
- //create data structures and initialize them from resource file
-
- TInt index = -1; // index used in for-loops
- TInt subindex = -1; // index used in for-loops inside another for-loop
- TInt length = -1; // length of resource array being read
- TInt sublength = -1; // length of sub-array inside array resource
-
- RResourceReader theReader;
- theReader.OpenLC( iResFile, DATAGROUPNAMEARRAY );
-
-
- //the first WORD contains the number of elements in the resource
- iNumberOfDataGroups = theReader.ReadInt16L();
-
- CleanupStack::PopAndDestroy( &theReader );
-
-
-
- /////////////////////////////////////////////////////////
- // Read the resource containing the data needed to create
- // mapping between data groups and UIDs
- //
- theReader.OpenLC( iResFile, DATAGROUPUIDARRAY );
-
- //the first WORD contains the number of elements in the resource
- length = theReader.ReadInt16L();
-
-
- // Create array with such granularity that reallocation is unnecessary
- // initialize array to contain null pointers
- iDataGroupUidArray = new (ELeave) CArrayPtrFlat<CIntArray>(iNumberOfDataGroups);
- for(index=0; index<iNumberOfDataGroups; index++)
- {
- iDataGroupUidArray->AppendL(NULL);
- }
- TInt groupindex; // value from enum TDataGroups
- // Read the array resource
- for(index=0; index<length; index++)
- {
- // Read one enum TDataGroups value
- groupindex = theReader.ReadInt8L();
-
- // Read the sub-array. First WORD contains array length.
- sublength = theReader.ReadInt16L();
-
- // Create new CUidArray with appropriate granularity
- // and insert it into the main array
- CIntArray* subarray = new (ELeave) CIntArray(iNumberOfDataGroups);
- CleanupStack::PushL(subarray);
- if( groupindex < iDataGroupUidArray->Count() )
- {
- iDataGroupUidArray->At(groupindex) = subarray;
- }
-
- // Read the subarray resource
- for(subindex=0; subindex<sublength; subindex++)
- {
- // uidtype matches one value fron enum TUidTypes
- TInt uidtype = theReader.ReadInt8L();
- if( groupindex < iDataGroupUidArray->Count() )
- {
- iDataGroupUidArray->At(groupindex)->InsertL(subindex,uidtype);
- }
- }
- CleanupStack::Pop( subarray );
- }
- CleanupStack::PopAndDestroy( &theReader );
-
- /////////////////////////////////////////////////////////
- // Read the resource containing the data needed to create
- // mapping between data groups and extensions
- //
- theReader.OpenLC( iResFile, DATAGROUPEXTARRAY );
-
- //the first WORD contains the number of elements in the resource
- length = theReader.ReadInt16L();
- // Create array with such granularity that reallocation is unnecessary
- // Initialize it to contain null pointers, since some cells can leave empty
- iDataGroupExtArray = new (ELeave) CArrayPtrFlat<CIntArray>(iNumberOfDataGroups);
- for(index=0; index<iNumberOfDataGroups; index++)
- {
- iDataGroupExtArray->AppendL(NULL);
- }
- // Read the array resource
- for(index=0; index<length; index++)
- {
- // Read one enum TDataGroups value
- groupindex = theReader.ReadInt8L();
- // Read the sub-array. First WORD contains array length.
- sublength = theReader.ReadInt16L();
- // Create new CIntArray with appropriate granularity
- // and insert it into the main array
- CIntArray* subarray = new (ELeave) CIntArray(sublength);
- CleanupStack::PushL(subarray);
- if( groupindex < iDataGroupExtArray->Count() )
- {
- iDataGroupExtArray->At(groupindex) = subarray;
- }
-
- // Read the subarray resource
- for(subindex=0; subindex<sublength; subindex++)
- {
- // exttype matches one value fron enum TUidTypes
- TInt exttype = theReader.ReadInt8L();
- if( groupindex < iDataGroupExtArray->Count() )
- {
- iDataGroupExtArray->At(groupindex)->InsertL(subindex,exttype);
- }
- }
- CleanupStack::Pop( subarray );
- }
-
- CleanupStack::PopAndDestroy( &theReader );
-
- //instantiate scanner
- iScanner = new (ELeave) CMsengScanner(iUIHandler, *iResFile);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMseng::~CMseng()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-
-EXPORT_C CMseng::~CMseng()
- {
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("** CMseng::~CMseng(). Finished. **"));
-#endif // __SHOW_RDEBUG_PRINT_
-
- delete iScanner;
-
- // Pointer arrays: elements must be deleted before deleting array
- if(iDataGroupUidArray)
- {
- iDataGroupUidArray->ResetAndDestroy();
- }
- delete iDataGroupUidArray;
-
-
- if(iDataGroupExtArray)
- {
- iDataGroupExtArray->ResetAndDestroy();
- }
- delete iDataGroupExtArray;
-
-
- delete iResFile;
-
- iFsSession.Close();
- }
-
-
-
-// ---------------------------------------------------------------------------
-// CMseng::DataGroupsL()
-//
-// Get a descriptor array containing the names of the data groups.
-// ---------------------------------------------------------------------------
-
-EXPORT_C CDesCArray* CMseng::DataGroupsL() const
- {
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("CMseng::GetDataGroupsL() called."));
-#endif // __SHOW_RDEBUG_PRINT_
-
-
- // Create the array for the data group names with appropriate granularity
- CDesCArray* dataGroupNameArray = new (ELeave) CDesCArrayFlat(iNumberOfDataGroups);
- CleanupStack::PushL(dataGroupNameArray);
-
- // Read the resource containing data group names
- // and put them to resultArray
-
- RResourceReader theReader;
- theReader.OpenLC( iResFile, DATAGROUPNAMEARRAY );
-
-
- // The first WORD contains the number of elements in the resource
- // (actually this is already in iNumberOfDataGroups)
-
- TInt length = theReader.ReadInt16L();
- __ASSERT_DEBUG(iNumberOfDataGroups == length, User::Panic(_L("CMseng::DataGroupsL"), KErrGeneral));
-
- // Read the data group names from resource file and insert to array
- TInt groupindex; // value from enum TDataGroups
- for(TInt index=0; index<length; index++)
- {
- groupindex = theReader.ReadInt8L();
- TPtrC name = theReader.ReadTPtrCL();
- // Copy the name to the right place in the array
- dataGroupNameArray->InsertL(groupindex, name);
- }
- CleanupStack::PopAndDestroy( &theReader );
-
- // Return the array of data groups
- CleanupStack::Pop( dataGroupNameArray );
-
-#ifdef __SHOW_RDEBUG_PRINT_
-// print the data group array
- RDebug::Print(_L("Printing the Data Groups:"));
- for(TInt k = 0; k < dataGroupNameArray->Count(); k++)
- {
- HBufC* groupName = dataGroupNameArray->MdcaPoint(k).AllocL();
- RDebug::Print( _L(" %d: %S"), k, groupName);
- delete groupName;
- }
-#endif // __SHOW_RDEBUG_PRINT_
-
- return dataGroupNameArray;
-
- }
-
-// ---------------------------------------------------------------------------
-// CMseng::ScanResultL()
-//
-// Returns an array of scan results
-// ---------------------------------------------------------------------------
-
-EXPORT_C CArrayFix<TInt64>* CMseng::ScanResultL() const
- {
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("CMseng::ScanResultL() called. Starting to calculate result..."));
-#endif // __SHOW_RDEBUG_PRINT_
-
- // Create the result array (with such granularity that reallocations do not happen)
- CArrayFix<TInt64>* resultArray = new (ELeave) CArrayFixFlat<TInt64>(iNumberOfDataGroups);
- CleanupStack::PushL(resultArray);
-
- // Get result arrays from scanner
- const CArrayFix<TInt64>* extResultArray = iScanner->ExtResults();
- const CArrayFix<TInt64>* uidResultArray = iScanner->UidResults();
- const CArrayFix<TInt64>* groupResultArray = iScanner->GroupResults();
-
- // Initialize the result array from the array of initial result
- for (TInt i = 0; i < iNumberOfDataGroups; i++)
- {
- if( i < groupResultArray->Count() )
- {
- resultArray->AppendL(groupResultArray->At(i));
- }
- }
-
- //Calculate the results and put them to the array
-
- // Find results for each data group
- for(TInt groupindex = 0; groupindex < iNumberOfDataGroups; groupindex++)
- {
- // For one data group, the UIDs belonging to this group are listed in
- // iDataGroupExtArray. For each of these UIDs, add the result to the total result.
-
- // If the examined data group does not have associated UIDs,
- // iDataGroupUidArray->At(groupindex) is a NULL pointer.
- if(iDataGroupUidArray->At(groupindex))
- {
- TInt count = iDataGroupUidArray->At(groupindex)->Count();
- for(TInt uidindex = 0; uidindex < count; uidindex++)
- {
- resultArray->At(groupindex) +=
- uidResultArray->At( iDataGroupUidArray->At(groupindex)->At(uidindex) );
- }
- }
-
- // The extension results are collected in a similar manner
-
- // If the examined data group does not have associated UIDs,
- // iDataGroupUidArray->At(groupindex) is a NULL pointer
- if(iDataGroupExtArray->At(groupindex))
- {
- TInt count = iDataGroupExtArray->At(groupindex)->Count();
- for(TInt extindex = 0; extindex < count; extindex++)
- {
- resultArray->At(groupindex) +=
- extResultArray->At( iDataGroupExtArray->At(groupindex)->At(extindex) );
- }
- }
- }
- // Calculate "Free memory" and "All device data"
- TInt64 totalMemory;
- TInt64 freeMemory;
- DiskInfoL(totalMemory, freeMemory, iScanner->CurrentDrive());
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("CMseng::ScanresultL(): iFreeMemory %d, freeMemory %d"), (TUint32)iFreeMemory, (TUint32)freeMemory);
-#endif
- // For some reason there is sometimes 16 kB difference in free memory when scanning started
- // vs. scanning ended (16 kB more at the end of scanning) and latter one is incorrect.
- // That is why free memory detected in the beginning of scanning taken into account.
- if(iFreeMemory)
- {
- freeMemory = iFreeMemory;
- }
- else
- {
- iFreeMemory = freeMemory;
- }
-
- // "Free memory" is the memory currently available
- resultArray->At(EGroupFreeMemory) = freeMemory;
- // "All Device Data" is all memory used
- resultArray->At(EGroupAllDeviceData) = (totalMemory - freeMemory);
-
- // Calculate how much files not falling to any predefined category consume
- TInt64 others( 0 );
- for( TInt i = EGroupCalendar; i < iNumberOfDataGroups; i++ )
- {
- others += resultArray->At( i );
- }
-
- // This should never happen, but just in case check that negative count is not established.
- if( resultArray->At(EGroupAllDeviceData) - others < 0 )
- {
- resultArray->At( EGroupOthers ) = 0;
- }
- else
- {
- resultArray->At( EGroupOthers ) = resultArray->At(EGroupAllDeviceData) - others;
- }
-
-// write the result array to log file
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("CMseng::ScanresultL(): current result array -"));
- // note that the log macros cannot handle TInt64
- for(TInt k = 0; k < resultArray->Count(); k++)
- {
- const TInt KMaxChars = 32;
- TBuf<KMaxChars> num;
- num.Num(resultArray->At(k));
- RDebug::Print(num);
- }
-#endif // __SHOW_RDEBUG_PRINT_
-
- CleanupStack::Pop( resultArray );
- return resultArray;
- }
-
-// ---------------------------------------------------------------------------
-// CMseng::ScanInProgress()
-//
-// Return ETrue if there is scanning going on, otherwise EFalse.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool CMseng::ScanInProgress() const
- {
- if(iScanner)
- {
- return iScanner->HaveActiveScanners();
- }
- else
- {
- return EFalse;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMseng::DiskInfoL
-//
-// Retrieves information about disk usage.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CMseng::DiskInfoL(TInt64& aTotal, TInt64& aFree, const TDriveNumber aVolume) const
- {
-
- TVolumeInfo vinfo;
- User::LeaveIfError(iFsSession.Volume(vinfo, aVolume));
- aTotal = TInt64(vinfo.iSize);
- aFree = TInt64(vinfo.iFree);
-
- }
-
-// ---------------------------------------------------------------------------
-// CMseng::MemInfoL
-//
-// Retrieves information about RAM usage.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CMseng::MemInfoL(TInt64& aTotal, TInt64& aFree)
- {
- TMemoryInfoV1Buf membuf;
- User::LeaveIfError(UserHal::MemoryInfo(membuf));
- TMemoryInfoV1 minfo = membuf();
- aTotal = minfo.iTotalRamInBytes;
- aFree = minfo.iFreeRamInBytes;
- }
-
-// ---------------------------------------------------------------------------
-// CMseng::ScanL()
-//
-// First scan the specific data files.
-// Then scan directories that are scanned for the
-// size of all files. Then call scanner's ScanL.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CMseng::ScanL(TDriveNumber aDrive)
- {
- __ASSERT_ALWAYS( (CMseng::IsInternalDrive(iFsSession, aDrive)
- || CMseng::IsRemovableDrive(iFsSession, aDrive)), User::Leave(KErrNotSupported) );
-
- // Scanning started.
- iUIHandler.StartL();
-
- // Start scanning memory, check that not already doing it
- TInt err = iScanner->ScanL(aDrive, iNumberOfDataGroups, iFsSession);
- if(err != KErrNone) // can be only KErrNone or KErrInUse
- {
- iUIHandler.ErrorL(KErrInUse);
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMseng::Cancel()
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CMseng::Cancel()
- {
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("CMseng::Cancel() called. canceling scanning..."));
-#endif // __SHOW_RDEBUG_PRINT_
-
- iScanner->Cancel();
- }
-
-// -----------------------------------------------------------------------------
-// CMseng::IsInternalDrive
-// -----------------------------------------------------------------------------
-//
-TBool CMseng::IsInternalDrive( RFs& aFs, TInt aDrv )
- {
- TDriveInfo drvInfo;
- if ( aFs.Drive( drvInfo, aDrv ) == KErrNone )
- {
- if ( !( drvInfo.iDriveAtt & KDriveAttInternal ) &&
- drvInfo.iDriveAtt & ( KDriveAttRemovable | KDriveAttRemote ) )
- {
- return EFalse;
- }
- }
- else
- {
- return EFalse;
- }
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CMseng::IsRemovableDrive
-// -----------------------------------------------------------------------------
-//
-TBool CMseng::IsRemovableDrive( RFs& aFs, TInt aDrv )
- {
- TDriveInfo drvInfo;
- if ( aFs.Drive( drvInfo, aDrv ) == KErrNone )
- {
- if ( !( drvInfo.iDriveAtt & KDriveAttRemovable ) )
- {
- return EFalse;
- }
- }
- else
- {
- return EFalse;
- }
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CMseng::IsMassStorageDrive
-// -----------------------------------------------------------------------------
-//
-TBool CMseng::IsMassStorageDrive( RFs& aFs, TInt aDrv )
- {
-
- TUint drvStatus( 0 );
- TInt err( DriveInfo::GetDriveStatus( aFs, aDrv, drvStatus ) );
- if ( err != KErrNone )
- {
- return EFalse;
- }
-
- if ( ( drvStatus & DriveInfo::EDriveInternal ) &&
- ( drvStatus & DriveInfo::EDriveExternallyMountable ) )
- {
- return ETrue;
- }
- return EFalse;
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serversrc/msengdirectoryscanner.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* Scan directories
-*
-*/
-
-
-// SYSTEM INCLUDES
-#include <bautils.h>
-
-// USER INCLUDES
-#include "msengdirectoryscanner.h"
-
-
-// CONSTANTS
-_LIT(KMsengPathDelimiter, "\\");
-
-
-// ================= MEMBER FUNCTIONS ========================================
-
-// ---------------------------------------------------------------------------
-// CMsengDirectoryScanner::CMsengDirectoryScanner()
-//
-// Default C++ constructor
-// ---------------------------------------------------------------------------
-CMsengDirectoryScanner::CMsengDirectoryScanner(
- MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession )
-: CMsengScannerBase(aObserver, aScanArray, aFsSession)
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMsengDirectoryScanner::~CMsengDirectoryScanner()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-CMsengDirectoryScanner::~CMsengDirectoryScanner()
- {
- delete iDirectoryList;
- delete iScanner;
- }
-
-
-
-
-
-
-
-// ---------------------------------------------------------------------------
-// CMsengDirectoryScanner::ScanL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMsengDirectoryScanner::ScanL(const CDesCArray& aRootDirs)
- {
- if (iDirectoryList)
- {
- iDirectoryList->Reset();
- }
- else
- {
- iDirectoryList = new(ELeave) CDesCArraySeg(KDirectoryListGranularity);
- }
- if (!iScanner)
- {
- iScanner = CDirScan::NewL(FsSession());
- }
- // Copy existing directories over
- const TInt count = iNumberOfRootDirectories = aRootDirs.Count();
- for(TInt i=0; i<count; i++)
- {
- // Make sure the copied root dirs exist. Otherwise the RunL()
- // would leave with KErrPathNotFound. After having the list
- // of root dirs, all scanned dirs are taken from the list obtained
- // by a CDirScan instance and are thus known to exist because
- if( InfoArray().FolderExists(FsSession(),aRootDirs[i]) )
- {
- iDirectoryList->AppendL(aRootDirs[i]);
-#ifdef __SHOW_RDEBUG_PRINT_
- TPtrC dir = aRootDirs[i];
- RDebug::Print(_L("Root directory: %S"), &dir);
-#endif // __SHOW_RDEBUG_PRINT_
- }
- else
- {
- iNumberOfRootDirectories--;
- }
- }
-
- // Start the scan going
- CompleteRequest();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMsengDirectoryScanner::PerformStepL()
-//
-//
-// ---------------------------------------------------------------------------
-CMsengScannerBase::TStepResult CMsengDirectoryScanner::PerformStepL()
- {
- TStepResult result = ECompleteRequest;
- RFs& fsSession = FsSession();
-
- // Expand the root directories to a full list of
- // subdirectories
- if (iState == EExpandingRootDirs)
- {
- if (iCurrentIndex >= iNumberOfRootDirectories)
- {
- // Finished scanning for the subdirectories.
- // Reset the current index so that we pass all the directories
- // (including the root paths) to the subclasses.
- iCurrentIndex = 0;
- iState = EScanningSubDirs;
- }
- else
- {
- const TPtrC pFolder(iDirectoryList->MdcaPoint(iCurrentIndex++));
-
- // Do the recursive scanning: First set scan data.
- iScanner->SetScanDataL(
- pFolder,
- KEntryAttDir|KEntryAttMatchExclusive,
- ESortNone,
- CDirScan::EScanDownTree
- );
-
- // Add all the located subdirectories to the array
- iState = EParsingExpandedList;
- }
- }
- else if (iState == EParsingExpandedList)
- {
- CDir* list = NULL;
- iScanner->NextL(list);
-
- if (list)
- {
- CleanupStack::PushL(list);
-
- const TPtrC pFullPath(iScanner->FullPath());
- TFileName file;
-
- const TInt count = list->Count();
- for(TInt i=0; i<count; i++)
- {
- const TPtrC pEntry((*list)[i].iName);
- file = pFullPath;
- file += pEntry;
- file += KMsengPathDelimiter;
-#ifdef __SHOW_RDEBUG_PRINT_
- // Don't add text, all print space (256 chars) may be required
- RDebug::Print(_L("%S"), &file);
-#endif // __SHOW_RDEBUG_PRINT_
- AppendDirectoryL(file);
- }
- //
- CleanupStack::PopAndDestroy(list);
- }
- else
- {
- // No more processing to do in this state
- iState = EExpandingRootDirs;
- }
- }
- else if (iState == EScanningSubDirs)
- {
- // Scan this folder
- if (iCurrentIndex < iDirectoryList->Count())
- {
- const TPtrC pFolder(iDirectoryList->MdcaPoint(iCurrentIndex));
- const TScanDirectoryResult scanDirectoryResult =
- ScanDirectoryL(pFolder, fsSession);
-
- // Check whether we continue with this directory next time
- if (scanDirectoryResult == EContinueToNextDirectory)
- {
- iCurrentIndex++;
- }
- }
- else
- {
- // All directories scanned now
- result = EScanComplete;
- }
- }
-
- // Return the response back to the base scanner
- return result;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMsengDirectoryScanner::AppendDirectoryL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMsengDirectoryScanner::AppendDirectoryL(const TDesC& aDirectory)
- {
- // Append the directory to the directory list,
- // unless it is listed as excluded directory
- if( IsSpecialDir(aDirectory) || !IsExcludedDir(aDirectory) )
- {
- iDirectoryList->AppendL(aDirectory);
- }
- else
- {
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("Dir is excluded! %S"), &aDirectory);
-#endif // __SHOW_RDEBUG_PRINT_
- }
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serversrc/msengfileextscanner.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-/*
-* Copyright (c) 2006-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:
-* Scanner class used to scan file system by filename extensions.
-*
-*/
-
-
-// USER INCLUDES
-#include "msengfileextscanner.h"
-#include "msenguihandler.h"
-
-
-// ================= MEMBER FUNCTIONS ========================================
-
-// ---------------------------------------------------------------------------
-// CMsengFileExtScanner::CMsengFileExtScanner()
-//
-// C++ default constructor. Can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-CMsengFileExtScanner::CMsengFileExtScanner(MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession)
-: CMsengFileScanner(aObserver, aScanArray, aFsSession), iMoveToNextDirectory(ETrue)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMsengFileExtScanner::NewL()
-//
-// Two-phased constructor
-// ---------------------------------------------------------------------------
-CMsengFileExtScanner* CMsengFileExtScanner::NewL(MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession)
- {
- CMsengFileExtScanner* self =
- new (ELeave) CMsengFileExtScanner(aObserver, aScanArray, aFsSession);
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CMsengFileExtScanner::~CMsengFileExtScanner()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-CMsengFileExtScanner::~CMsengFileExtScanner()
- {
- }
-
-
-
-
-// ---------------------------------------------------------------------------
-// CMsengFileExtScanner::FindFilesL()
-//
-// ---------------------------------------------------------------------------
-//
-CDir* CMsengFileExtScanner::FindFilesL(const TDesC& aDirectory, TBool& aMoveToNextDirectory)
- {
-
- // iMoveToNextDirectory is true only when starting to handle the
- // current directory. Reset iCurrentExtensionIndex.
- if(iMoveToNextDirectory)
- {
- iCurrentExtensionIndex = -1;
- iMoveToNextDirectory = EFalse;
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("Entering directory:"));
- RDebug::Print(_L("%S"), &aDirectory);
-#endif // __SHOW_RDEBUG_PRINT_
- }
-
- // This function performs a search for each file in the directory by extension.
- iCurrentExtensionIndex++;
- const TPtrC pCurrentExtension(InfoArray().Exts()[iCurrentExtensionIndex]);
-
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("Searching files with extension %d"), iCurrentExtensionIndex);
-#endif // __SHOW_RDEBUG_PRINT_
-
- // Get a list of results for this directory
- CDir* results = NULL;
- TParse parse;
- TInt error;
-
- const TInt pathlength = pCurrentExtension.Length() + aDirectory.Length();
- if ( pathlength > KMaxFileName )
- {
- error = KErrNotFound;
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("Path too long, files with extension %d do not fit to directory"),
- iCurrentExtensionIndex);
-#endif // __SHOW_RDEBUG_PRINT_
- }
-
- else
- {
- FsSession().Parse(pCurrentExtension, aDirectory, parse);
- error = FsSession().GetDir(parse.FullName(), KEntryAttMaskSupported|KEntryAttAllowUid,
- ESortNone, results);
- }
-
- if (error == KErrNotFound)
- {
- results = NULL;
- }
-
- // Should we move onto searching the next directory
- // Yes, if this was the last extension.
- const TInt extensionCount = InfoArray().Exts().Count();
- iMoveToNextDirectory = (iCurrentExtensionIndex >= extensionCount-1);
- aMoveToNextDirectory = iMoveToNextDirectory;
-
- // Return populated (or potentially NULL) list.
- return results;
- }
-
-// ---------------------------------------------------------------------------
-// CMsengFileExtScanner::HandleLocatedEntryL()
-//
-//
-// ---------------------------------------------------------------------------
-//
-CMsengFileScanner::TLocationResponse CMsengFileExtScanner::HandleLocatedEntryL(
- const TDesC& aFullFileNameAndPath, const TEntry& aEntry)
- {
- TLocationResponse response = EEntryWasDiscarded;
- const TInt KUidLocation = 2;
- TUid fileUid = aEntry[KUidLocation];
-
- if ( fileUid == KNullUid )
- {
- // Check whether extension found in special data dir
- TBool addSize( ETrue );
- TInt dataDirCount = InfoArray().DataDirs().Count();
- for(TInt i=0; i < dataDirCount; i++)
- {
- TPtrC dataDirPath = InfoArray().DataDirs().MdcaPoint(i);
-
- if(aFullFileNameAndPath.Length() >= dataDirPath.Length())
- {
- TFileName currentPath;
- currentPath.Copy(aFullFileNameAndPath.Left(dataDirPath.Length()));
-
- // Compare whether folder matches
- if(!currentPath.CompareF(dataDirPath))
- {
- addSize = EFalse;
- break;
- }
- }
- }
-
- if( addSize )
- {
- // Add size of object
- InfoArray().AddSizeByExtL(iCurrentExtensionIndex, aEntry.FileSize() );
-
-#ifdef __SHOW_RDEBUG_PRINT_
- const TInt pathlength = aFullFileNameAndPath.Length();
-
- if ( pathlength < KMaxFileName )
- {
- RDebug::Print(_L("File: %S, extension number: %d, size: %d"),
- &aFullFileNameAndPath, iCurrentExtensionIndex, aEntry.FileSize());
- }
- else
- {
- RDebug::Print(_L("File: see next line, extension number: %d, size: %d"),
- iCurrentExtensionIndex, aEntry.FileSize() );
- RDebug::Print(_L("Can not print %d characters long file name"), pathlength );
- }
-#endif // __SHOW_RDEBUG_PRINT_
-
- // We processed this one
- response = EEntryWasProcessed;
- }
- }
- else
- {
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("Handling file: %S, file Uid: 0x%x"),
- &aFullFileNameAndPath, fileUid.iUid);
-#endif // __SHOW_RDEBUG_PRINT_
-
- // Make sure other than native applications are not calculated
- if( iCurrentExtensionIndex == EExtSis || iCurrentExtensionIndex == EExtSisx )
- {
- InfoArray().AddSizeByExtL(iCurrentExtensionIndex, aEntry.FileSize() );
- }
- }
-
- return response;
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serversrc/msengfilescanner.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* Scanner class used to scan file system by file UID.
-*
-*/
-
-
-// USER INCLUDES
-#include "msengfilescanner.h"
-
-
-
-// ================= MEMBER FUNCTIONS ========================================
-
-// ---------------------------------------------------------------------------
-// CMsengFileScanner::CMsengFileScanner()
-//
-// Constructor
-// ---------------------------------------------------------------------------
-CMsengFileScanner::CMsengFileScanner(MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession)
-: CMsengDirectoryScanner(aObserver, aScanArray, aFsSession)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMsengFileScanner::~CMsengFileScanner()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-
-CMsengFileScanner::~CMsengFileScanner()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMsengFileScanner::ScanDirectoryL()
-//
-//
-// ---------------------------------------------------------------------------
-CMsengDirectoryScanner::TScanDirectoryResult CMsengFileScanner::ScanDirectoryL
- (const TDesC& aDirectory, RFs& /*aFsSession*/)
- {
- TBool moveToNextDirectory = ETrue;
- CDir* results = FindFilesL(aDirectory, moveToNextDirectory);
- if (results)
- {
- CleanupStack::PushL(results);
-
- // Go through all files in the list and tell subclass
- TFileName file;
- const TInt count = results->Count();
- for(TInt i=0; i<count; i++)
- {
- const TEntry& entry = (*results)[i];
- file = aDirectory;
- file += entry.iName;
-
- // Tell subclass about identified file
- const TLocationResponse response = HandleLocatedEntryL(file, entry);
- }
- CleanupStack::PopAndDestroy(results);
- }
-
-
- // Should we request that we move onto the next directory in the list
- TScanDirectoryResult response = EContinueToNextDirectory;
- if (!moveToNextDirectory)
- {
- response = EContinueProcessingCurrentDirectory;
- }
- return response;
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serversrc/msengfindallscanner.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* Scanner class used to scan file system by filename extension
-*
-*
-*/
-
-
-// SYSTEM INCLUDES
-#include <f32file.h>
-
-// USER INCLUDES
-#include "msengfindallscanner.h"
-#include "msenguihandler.h"
-#include "memscanutils.h"
-
-
-// ================= MEMBER FUNCTIONS ========================================
-
-// ---------------------------------------------------------------------------
-// CMsengFindAllScanner::CMsengFindAllScanner()
-//
-// C++ default constructor. Can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-CMsengFindAllScanner::CMsengFindAllScanner(MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession)
-: CMsengFileScanner(aObserver, aScanArray, aFsSession)
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMsengFindAllScanner::NewL()
-//
-// Two-phased constructor
-// ---------------------------------------------------------------------------
-CMsengFindAllScanner* CMsengFindAllScanner::NewL(
- MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession)
- {
- CMsengFindAllScanner* self = new (ELeave) CMsengFindAllScanner(aObserver,
- aScanArray, aFsSession);
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CMsengFindAllScanner::~CMsengFindAllScanner()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-CMsengFindAllScanner::~CMsengFindAllScanner()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMsengFindAllScanner::FindFilesL()
-//
-//
-// ---------------------------------------------------------------------------
-CDir* CMsengFindAllScanner::FindFilesL(const TDesC& aDirectory, TBool& aMoveToNextDirectory)
- {
- TRACES( RDebug::Print(_L("CMsengFindAllScanner::FindFilesL(%S)"), &aDirectory) );
-
- // Get a list of results for this directory
- CDir* results;
- const TInt error = FsSession().GetDir(aDirectory,
- KEntryAttMaskSupported|KEntryAttAllowUid, ESortNone, results);
- if (error == KErrNotFound)
- {
- results = NULL;
- }
-
- // Always move onto searching the next directory
- aMoveToNextDirectory = ETrue;
-
- // Return populated (or potentially NULL) list.
- return results;
- }
-
-// ---------------------------------------------------------------------------
-// CMsengFindAllScanner::HandleLocatedEntryL()
-//
-//
-// ---------------------------------------------------------------------------
-CMsengFileScanner::TLocationResponse CMsengFindAllScanner::HandleLocatedEntryL(
- const TDesC& aFullFileNameAndPath, const TEntry& aEntry)
- {
- // Figure out the data group by comparing the start of the path
-
- TInt dataDirCount = InfoArray().DataDirs().Count();
- for(TInt i=0; i < dataDirCount; i++)
- {
- TPtrC dataDirPath = InfoArray().DataDirs().MdcaPoint(i);
- if(aFullFileNameAndPath.Length() >= dataDirPath.Length())
- {
- TFileName currentPath;
- currentPath.Copy(aFullFileNameAndPath.Left(dataDirPath.Length()));
-
- // Compare whether folder matches
- if(!currentPath.Compare(dataDirPath))
- {
- TBool isExcluded = EFalse;
- TInt fileLength = aFullFileNameAndPath.Length() - dataDirPath.Length();
- TInt excludedFiles = 0;
- if(InfoArray().DataDirExcludedFiles().Count())
- {
- excludedFiles = InfoArray().DataDirExcludedFiles().At(i)->MdcaCount();
- }
-
- currentPath.Copy(aFullFileNameAndPath.Right(fileLength));
-
- TRACES( RDebug::Print(_L("Check file %S"), ¤tPath) );
-
- for(TInt j=0; j < excludedFiles; j++)
- {
- TRACES
- (
- TPtrC file = InfoArray().DataDirExcludedFiles().At(i)->MdcaPoint(j);
- RDebug::Print(_L("Comparing to excluded file %S"), &file);
- );
-
- if(!currentPath.Compare(
- InfoArray().DataDirExcludedFiles().At(i)->MdcaPoint(j)))
- {
- isExcluded = ETrue;
- break;
- }
- }
-
- if(!isExcluded)
- {
- // Add size of object when file is not in list of excluded files
- if(InfoArray().DataDirGroups().Count())
- {
- TInt group = InfoArray().DataDirGroups().At(i);
- InfoArray().AddSizeByGroupL(group, aEntry.FileSize());
-
- TRACES
- (
- RDebug::Print(_L("File %S belongs to group: %d"),
- &aFullFileNameAndPath, group)
- );
- }
- }
- }
- }
- }
-
- // We processed this one
- return EEntryWasProcessed;
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serversrc/msenginfoarray.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,390 +0,0 @@
-/*
-* Copyright (c) 2006-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:
-* An utility class to handle the UIDs and filename extensions used to
-* identify data types. It is also used to store the results per data type.
-*
-*/
-
-
-
-// SYSTEM INCLUDES
-#include <mseng.rsg>
-#include <bautils.h>
-#include <barsc.h> // RResourceFile
-
-// USER INCLUDES
-#include "msenginfoarray.h"
-#include "mseng.h" // KMsengRscFilePath
-
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-
-// ---------------------------------------------------------------------------
-// CMsengInfoArray::CMsengInfoArray()
-//
-// C++ default constructor is prohibited
-// ---------------------------------------------------------------------------
-CMsengInfoArray::CMsengInfoArray(TDriveNumber aDrive)
-: iCurrentScannedDrive(aDrive)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMsengInfoArray::NewL()
-//
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-CMsengInfoArray* CMsengInfoArray::NewL(TDriveNumber aDrive,
- TInt aNumberOfDataGroups,
- RFs& aFsSession,
- CResourceFile& aResFile)
- {
- CMsengInfoArray* self = new (ELeave) CMsengInfoArray(aDrive);
-
- CleanupStack::PushL( self );
- self->ConstructL(aNumberOfDataGroups, aFsSession, aResFile);
- CleanupStack::Pop( self );
-
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMsengInfoArray::ConstructL()
-//
-// Symbian OS default constructor can leave.
-// ---------------------------------------------------------------------------
-void CMsengInfoArray::ConstructL(TInt aNumberOfDataGroups,
- RFs& aFsSession,
- CResourceFile& aResFile)
- {
- // Create data structures and initialize them
- // using values from enumerations TUidTypes and TExtTypes
- // and data from the resource file mseng.rss
-
- TInt index = -1; // index used in for-loops
- TInt length = -1; // length of resource array being read
-
- RResourceReader theReader;
-
- theReader.OpenLC( &aResFile, UIDARRAY );
-
- //the first WORD contains the number of elements in the resource
- length = theReader.ReadInt16L();
-
- // Create the array with appropriate granularity
- iUidResultArray = new (ELeave) CArrayFixFlat<TInt64>(length);
-
- // Initialize the array to contain zeros
- for(index=0; index<length; index++)
- {
- iUidResultArray->InsertL(index, 0);
- }
-
- // Next, create the array for the actual UIDs
- // and read them from the resource file
- iUidArray = new (ELeave) CArrayFixFlat<TUid>(length);
- for(index=0; index<length; index++)
- {
- const TInt typeindex = theReader.ReadInt8L();
- const TUid uid = TUid::Uid(theReader.ReadInt32L());
- //
- iUidArray->InsertL(typeindex, uid);
- }
- CleanupStack::PopAndDestroy(&theReader);
-
- // Read extarray in a similar way
- theReader.OpenLC( &aResFile, EXTARRAY );
-
-
- //the first WORD contains the number of elements in the resource
- length = theReader.ReadInt16L();
-
- // Create the array with appropriate granularity
- iExtResultArray = new (ELeave) CArrayFixFlat<TInt64>(length);
- // Initialize the array to contain zeros
- for(index=0; index<length; index++)
- {
- iExtResultArray->InsertL(index, 0);
- }
- // Next, create the array for the actual extensions
- // and read them from the resource file
- iExtArray = new (ELeave) CDesCArrayFlat(length);
- for(index=0; index<length; index++)
- {
- TInt typeindex = theReader.ReadInt8L();
- TPtrC ext = theReader.ReadTPtrCL();
-
- iExtArray->InsertL(typeindex, ext);
- }
- CleanupStack::PopAndDestroy( &theReader );
-
- // Create the array for results per group
- iGroupResultArray = new (ELeave) CArrayFixFlat<TInt64>(aNumberOfDataGroups);
- // Initialize the array to contain zeros
- for(index=0; index<aNumberOfDataGroups; index++)
- {
- iGroupResultArray->InsertL(index, 0);
- }
-
- // The directories to be scanned. Depends of which drive is scanned,
- // and the directories that are scanned as a whole (and excluded in the normal scan)
- _LIT(KPanic,"MSENG");
- __ASSERT_ALWAYS((CMseng::IsInternalDrive(aFsSession, iCurrentScannedDrive)
- || CMseng::IsRemovableDrive(aFsSession, iCurrentScannedDrive)),
- User::Panic(KPanic, KErrNotSupported));
-
- if( CMseng::IsInternalDrive(aFsSession, iCurrentScannedDrive)
- && !CMseng::IsMassStorageDrive( aFsSession, iCurrentScannedDrive ) )
- {
- theReader.OpenLC( &aResFile, C_DIRECTORIES );
- iDirArray = theReader.ReadDesCArrayL();
- CleanupStack::PopAndDestroy( &theReader );
- //
- theReader.OpenLC( &aResFile, C_EXCLUDED_DIRECTORIES );
- iExcludedDirArray = theReader.ReadDesCArrayL();
- CleanupStack::PopAndDestroy( &theReader );
- //
- theReader.OpenLC( &aResFile, C_SPECIAL_DATADIRS );
- // reading later...
-
- }
- else // other drives except Phone Memory should be scanned from root folder.
- {
- theReader.OpenLC( &aResFile, E_DIRECTORIES );
- iDirArray = theReader.ReadDesCArrayL();
- CleanupStack::PopAndDestroy( &theReader );
- //
- theReader.OpenLC( &aResFile, E_EXCLUDED_DIRECTORIES );
- iExcludedDirArray = theReader.ReadDesCArrayL();
- CleanupStack::PopAndDestroy( &theReader );
- //
- theReader.OpenLC( &aResFile, E_SPECIAL_DATADIRS );
- // reading later...
-
- }
-
- // Apply correct drive letter in directory array names
- TInt dirCount = iDirArray->Count();
- for (TInt i=0; i<dirCount; i++)
- {
- HBufC* dirName = iDirArray->MdcaPoint(i).AllocLC();
- TPtr ptrName = dirName->Des();
- TBuf<1> drive;
- TChar ch;
-
- if ( RFs::DriveToChar( iCurrentScannedDrive, ch ) == KErrNone )
- {
- drive.Append(ch);
- ptrName.Replace(0, drive.Length(), drive);
- }
- iDirArray->Delete(i);
- iDirArray->InsertL(i, ptrName);
- CleanupStack::PopAndDestroy(dirName);
- }
-
- // Apply correct drive letter in excluded directory array names
- TInt exDirCount = iExcludedDirArray->Count();
- for (TInt i=0; i<exDirCount; i++)
- {
- HBufC* dirName = iExcludedDirArray->MdcaPoint(i).AllocLC();
- TPtr ptrName = dirName->Des();
- TBuf<1> drive;
- TChar ch;
-
- if ( RFs::DriveToChar( iCurrentScannedDrive, ch ) == KErrNone )
- {
- drive.Append(ch);
- ptrName.Replace(0, drive.Length(), drive);
- }
- iExcludedDirArray->Delete(i);
- iExcludedDirArray->InsertL(i, ptrName);
- CleanupStack::PopAndDestroy(dirName);
- }
-
- //the first WORD contains the number of elements in the resource
- length = theReader.ReadInt16L();
-
- // Create the arrays for special data dirs
- iDataDirArray = new (ELeave) CDesCArrayFlat(length);
- iDataDirGroupArray = new (ELeave) CArrayFixFlat<TInt>(length);
- iDataDirExclArray = new (ELeave) CArrayPtrFlat<CDesCArray>(length);
-
- // Read the array resource
- for(TInt i=0; i<length; i++)
- {
- TInt groupindex = theReader.ReadInt8L();
- TChar ch;
- HBufC* name = theReader.ReadHBufCL();
- CleanupStack::PushL(name);
- TPtr ptrName = name->Des();
- TBuf<1> drive;
- TBool driveValid = EFalse;
-
- if ( RFs::DriveToChar( iCurrentScannedDrive, ch ) == KErrNone )
- {
- driveValid = ETrue;
- drive.Append(ch);
- ptrName.Replace(0, drive.Length(), drive);
- }
-
- // Next WORD contains the number of excluded files
- TInt lengthExcl = theReader.ReadInt16L();
- TBool folderExists = EFalse;
-
- // Add directory to the list to be scanned
- if(driveValid && BaflUtils::FolderExists(aFsSession, ptrName))
- {
- folderExists = ETrue;
- iDataDirArray->AppendL(ptrName);
- iDataDirGroupArray->AppendL(groupindex);
- iDataDirExclArray->AppendL(NULL);
-
- CDesCArray* subarray = new (ELeave) CDesCArrayFlat( Max(lengthExcl, 1) );
- const TInt dirCount = iDataDirExclArray->Count();
- iDataDirExclArray->At(dirCount-1) = subarray;
- }
-
- for(TInt j=0; j<lengthExcl; j++)
- {
- TPtrC nameExcl = theReader.ReadTPtrCL();
-
- // Append special file only if folder exists
- if(folderExists)
- {
- const TInt dirCount = iDataDirExclArray->Count();
- iDataDirExclArray->At(dirCount-1)->AppendL( nameExcl );
- }
- }
-
- // If there was an error, we can assume it was because
- // the folder does not exist, and ignore the error.
- CleanupStack::PopAndDestroy( name );
- }
- CleanupStack::PopAndDestroy( &theReader );
-
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("CMsengInfoArray constructed. Printing current configuration.\n Extensions:"));
- for(TInt j=0; j < Exts().Count(); j++)
- {
- HBufC* ext = Exts().MdcaPoint(j).AllocL();
- RDebug::Print(_L(" %d: %S"), j, ext);
- delete ext;
- }
- RDebug::Print(_L(" UIDs:"));
- for(TInt k=0; k < Uids().Count(); k++)
- {
- TUidName uid;
- uid = Uids().At(k).Name();
- RDebug::Print(_L(" %d: %S"), k, &uid);
- }
-#endif // __SHOW_RDEBUG_PRINT_
- }
-
-// ---------------------------------------------------------------------------
-// CMsengInfoArray::~CMsengInfoArray()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-CMsengInfoArray::~CMsengInfoArray()
- {
- // delete data structures
- delete iUidResultArray;
- delete iExtResultArray;
- delete iGroupResultArray;
- delete iUidArray;
- delete iExtArray;
- delete iDirArray;
- delete iExcludedDirArray;
- delete iDataDirArray;
- delete iDataDirGroupArray;
- if(iDataDirExclArray)
- {
- iDataDirExclArray->ResetAndDestroy();
- }
- delete iDataDirExclArray;
- }
-
-// ---------------------------------------------------------------------------
-// CMsengInfoArray::IsExcludedDir()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMsengInfoArray::IsExcludedDir(const TDesC& aDirectory) const
- {
- TInt count = iExcludedDirArray->Count();
- for(TInt i=0; i<count; i++)
- {
- if(aDirectory.FindF(iExcludedDirArray->MdcaPoint(i)) == 0)
- {
- return ETrue;
- }
- }
-
- return EFalse;
- }
-
-// ---------------------------------------------------------------------------
-// CMsengInfoArray::FolderExists()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMsengInfoArray::FolderExists(RFs& aFs, const TDesC& aPath)
- {
- TBool result = EFalse;
-
- if(BaflUtils::FolderExists(aFs, aPath))
- {
- result = ETrue;
- }
- // BaflUtils::FolderExists return KErrBadName, if called with
- // only drive letter (like "c:\")
- else
- {
- TChar driveLetter;
- if( RFs::DriveToChar(CurrentDrive(), driveLetter) == KErrNone)
- {
- TBuf<1> driveName;
- driveName.Append(driveLetter);
- TInt cmp = aPath.CompareF(BaflUtils::RootFolderPath(driveName));
- result = (cmp == 0);
- }
- }
-
- return result;
- }
-
-// ---------------------------------------------------------------------------
-// CMsengInfoArray::IsSpecialDir()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMsengInfoArray::IsSpecialDir(const TDesC& aDirectory) const
- {
- TInt count = iDataDirArray->Count();
- for(TInt i=0; i<count; i++)
- {
- if(aDirectory.FindF(iDataDirArray->MdcaPoint(i)) == 0)
- {
- return ETrue;
- }
- }
-
- return EFalse;
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serversrc/msengregistryscanner.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-/*
-* Copyright (c) 2006 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: Memory scan engine registry scanning
-*
-*/
-
-
-// SYSTEM INCLUDES
-#include <swi/sisregistryentry.h>
-#include <swi/sisregistrysession.h>
-#include <AknUtils.h>
-
-#include <SWInstApi.h>
-#include <swi/sisregistrypackage.h>
-#include <CUIDetailsDialog.h>
-#include <SWInstDefs.h>
-#include <StringLoader.h>
-#include <mseng.rsg>
-
-// USER INCLUDES
-#include "msengregistryscanner.h"
-#include "msengsisxinfo.h"
-#include "memscanutils.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// ---------------------------------------------------------------------------
-// CMsengRegistryScanner::CMsengRegistryScanner()
-//
-// Default C++ constructor
-// ---------------------------------------------------------------------------
-CMsengRegistryScanner::CMsengRegistryScanner(
- TDriveNumber aDrive,
- MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession)
- : CMsengScannerBase(aObserver, aScanArray, aFsSession),
- iType( ERegistrySisx ),
- iDrive( aDrive )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMsengRegistryScanner::NewL()
-//
-// Two-phased constructor
-// ---------------------------------------------------------------------------
-CMsengRegistryScanner* CMsengRegistryScanner::NewL(
- TDriveNumber aDrive,
- MMsengScannerObserver& aObserver,
- CMsengInfoArray& aScanArray,
- RFs& aFsSession)
- {
- CMsengRegistryScanner* self = new (ELeave) CMsengRegistryScanner(aDrive,
- aObserver, aScanArray, aFsSession);
-
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMsengRegistryScanner::~CMsengRegistryScanner()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-CMsengRegistryScanner::~CMsengRegistryScanner()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMsengRegistryScanner::Scan()
-//
-//
-// ---------------------------------------------------------------------------
-void CMsengRegistryScanner::Scan()
- {
- // Start the scan going
- CompleteRequest();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMsengRegistryScanner::PerformStepL()
-//
-//
-// ---------------------------------------------------------------------------
-CMsengScannerBase::TStepResult CMsengRegistryScanner::PerformStepL()
- {
- TStepResult result = ECompleteRequest;
-
- // Scan requested registry
- switch( iType )
- {
- case ERegistrySisx:
- {
- ScanSisRegistryL( );
- iType = ERegistryLast;
- break;
- }
- case ERegistryLast:
- default:
- {
- // That's all we had to do
- result = EScanComplete;
- break;
- }
- }
-
- // Return the response back to the base scanner
- return result;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMsengRegistryScanner::ScanSisRegistryL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMsengRegistryScanner::ScanSisRegistryL()
- {
- Swi::RSisRegistrySession regSession;
- CleanupClosePushL(regSession);
- User::LeaveIfError( regSession.Connect() );
-
- RArray<TUid> uids;
- CleanupClosePushL(uids);
- regSession.InstalledUidsL( uids );
-
- RPointerArray<Swi::CSisRegistryPackage> augmentations;
-
- TInt64 totalSize(0);
-
- for ( TInt index(0); index < uids.Count(); index++ )
- {
- Swi::RSisRegistryEntry entry;
- CleanupClosePushL(entry);
- User::LeaveIfError( entry.Open( regSession, uids[index] ) );
-
- //All packages are from installed packages
- CMsengSisxInfo* appObj = CMsengSisxInfo::NewL( entry, iDrive );
- CleanupStack::PushL( appObj );
- TInt64 baseSize( 0 );
- baseSize = entry.SizeL();
-
- TRACES
- (
- RDebug::Print(_L("ScanSisRegistryL, IsPresent, %d"), TInt( entry.IsPresentL()));
- RDebug::Print(_L("ScanSisRegistryL, IsInRom, %d"), TInt( entry.IsInRomL()));
- );
-
- // Only show if not in rom
- if ( !entry.IsInRomL() && entry.IsPresentL() && appObj->RequestedLocation() )
- {
- // Get possible augmentations
- entry.AugmentationsL( augmentations );
- for ( TInt i( 0 ); i < augmentations.Count(); i++ )
- {
- Swi::RSisRegistryEntry augmentation;
- CleanupClosePushL( augmentation );
- augmentation.OpenL( regSession, *augmentations[i] );
- // Only show if not in rom
- if ( !augmentation.IsInRomL() && augmentation.IsPresentL() )
- {
- // Append the size to the total size
- baseSize += augmentation.SizeL();
- }
- CleanupStack::PopAndDestroy( &augmentation );
- }
- totalSize += baseSize;
- }
-
- augmentations.ResetAndDestroy();
-
- CleanupStack::PopAndDestroy( appObj );
- CleanupStack::PopAndDestroy( &entry );
- }
-
- InfoArray().AddSizeByGroupL(EGroupNativeApps, totalSize);
-
- CleanupStack::PopAndDestroy(&uids);
- CleanupStack::PopAndDestroy(®Session);
- }
-
-// End of File
-
--- a/filesystemuis/memscaneng/serversrc/msengscanner.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* This is the class that is in control most of the time.
-* It instantiates CMsengScannerBase derived scanner classes
-* to do the job.
-*
-*/
-
-
-// SYSTEM INCLUDES
-#include <bautils.h>
-#include <mseng.rsg>
-
-// USER INCLUDES
-#include "msengscanner.h"
-#include "msengfileextscanner.h"
-#include "msengfindallscanner.h"
-#include "msengregistryscanner.h"
-#include "msenguihandler.h"
-#include "mseng.h"
-
-
-// LOCAL CONSTANTS AND MACROS
-#ifdef _DEBUG
-_LIT(KClassName, "CMsengScanner");
-#endif
-
-// ================= MEMBER FUNCTIONS ========================================
-
-// ---------------------------------------------------------------------------
-// CMsengScanner::CMsengScanner()
-//
-// C++ default constructor. Can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-CMsengScanner::CMsengScanner(MMsengUIHandler& aUIHandler, CResourceFile& aResFile) :
-iUIHandler(aUIHandler), iResFile(aResFile)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CMsengScanner::~CMsengScanner()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-CMsengScanner::~CMsengScanner()
- {
- delete iScanArray;
- delete iFileExtScanner;
- delete iFindAllScanner;
- delete iRegistryScanner;
- }
-
-
-
-// ---------------------------------------------------------------------------
-// CMsengScanner::Cancel()
-//
-// ---------------------------------------------------------------------------
-//
-void CMsengScanner::Cancel()
- {
- iFileExtScanner->Cancel();
- iFindAllScanner->Cancel();
- iRegistryScanner->Cancel();
- TRAP_IGNORE( iUIHandler.QuitL(KErrCancel) );
- }
-
-// ---------------------------------------------------------------------------
-// CMsengScanner::HaveActiveScanners()
-//
-// ---------------------------------------------------------------------------
-//
-TBool CMsengScanner::HaveActiveScanners() const
- {
- const TBool isActive =
- (iFileExtScanner && iFileExtScanner->IsActive())
- || (iFindAllScanner && iFindAllScanner->IsActive())
- || (iRegistryScanner && iRegistryScanner->IsActive())
- ;
- return isActive;
- }
-
-// ---------------------------------------------------------------------------
-// CMsengScanner::ScanL()
-//
-// ---------------------------------------------------------------------------
-//
-TInt CMsengScanner::ScanL(TDriveNumber aDrive, TInt aNumberOfDataGroups, RFs& aFsSession)
- {
- if(HaveActiveScanners())
- {
- return KErrInUse;
- }
-
- // Create data structures; delete the old ones
- CMsengInfoArray* infoArray = CMsengInfoArray::NewL( aDrive,
- aNumberOfDataGroups,
- aFsSession, iResFile );
-
- delete iScanArray;
- iScanArray = infoArray;
-
- // Do some scanning tasks not include in ScanL
- PreScanL(aDrive, aFsSession);
-
- // Start the scan by filename extension
- iFileExtScanner = CMsengFileExtScanner::NewL(*this, *iScanArray, aFsSession);
- iFileExtScanner->ScanL(iScanArray->Dirs());
-
- // Start scanning data dirs (including messages)
- iFindAllScanner = CMsengFindAllScanner::NewL(*this, *iScanArray, aFsSession);
- iFindAllScanner->ScanL(iScanArray->DataDirs());
-
- // Start the scan from registries
- iRegistryScanner = CMsengRegistryScanner::NewL( aDrive, *this, *iScanArray, aFsSession );
- iRegistryScanner->Scan();
-
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// MsengScanner::HandleScannerEventL()
-//
-// Handle the events from scanning
-// ---------------------------------------------------------------------------
-//
-void CMsengScanner::HandleScannerEventL(TScannerEvent aEvent,
- const CMsengScannerBase& /*aScanner*/,
- TInt aError)
- {
-#ifdef __SHOW_RDEBUG_PRINT_
- RDebug::Print(_L("CMsengScanner::HandleScannerEventL() called with event: %d"), aEvent);
-#endif // __SHOW_RDEBUG_PRINT_
-
- switch(aEvent)
- {
- case MMsengScannerObserver::EScannerEventScanComplete:
- // This scanner object has finished all of its scanning.
- // If all the others are finished too,
- // then we tell the UI that scanning is complete.
- if (!HaveActiveScanners())
- {
- iUIHandler.QuitL(KErrNone);
- }
- break;
-
- case MMsengScannerObserver::EScannerEventScanError:
- // An error has happened
- iUIHandler.ErrorL(aError);
- break;
-
- default:
- // should never happen
- __ASSERT_DEBUG(EFalse,User::Panic(KClassName, KErrGeneral));
- break;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMsengScanner::PreScanL()
-//
-// ---------------------------------------------------------------------------
-//
-void CMsengScanner::PreScanL(TDriveNumber aDrive, RFs& aFsSession)
- {
- // Before actual scanning, check the sizes of the few extra
- // data files that are not scanned in normal way.
-
- RResourceReader theReader;
-
- TBool somethingToDo = EFalse;
- if( CMseng::IsInternalDrive( aFsSession, aDrive )
- && !CMseng::IsMassStorageDrive( aFsSession, aDrive ) )
- {
- theReader.OpenLC( &iResFile, C_EXTRADATAFILES );
- somethingToDo = ETrue;
- }
- else
- {
- theReader.OpenLC( &iResFile, E_EXTRADATAFILES );
- somethingToDo = ETrue;
- }
-
- if(somethingToDo)
- {
- //the first WORD contains the number of elements in the resource
- const TInt length = theReader.ReadInt16L();
-
- // Read the array resource,
- TInt groupindex; // value from enum TDataGroups
- for(TInt i=0; i<length; i++)
- {
- groupindex = theReader.ReadInt8L();
- HBufC* name = theReader.ReadHBufCL();
- TChar ch;
- if ( RFs::DriveToChar( aDrive, ch ) == KErrNone )
- {
- CleanupStack::PushL(name);
- TPtr ptrName = name->Des();
- TBuf<1> drive;
- drive.Append(ch);
- ptrName.Replace(0, drive.Length(), drive);
-
- // check the size of the file whose path was in the resource.
- TEntry file;
- TInt err = aFsSession.Entry(ptrName, file);
- if (err == KErrNone)
- {
- TInt64 size = file.FileSize();
- iScanArray->AddSizeByGroupL(groupindex, size);
- }
-
- CleanupStack::PopAndDestroy(name);
- }
- }
- }
- CleanupStack::PopAndDestroy(&theReader);
- }
-
-// End of File
--- a/filesystemuis/memscaneng/serversrc/msengscannerbase.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* Virtual base class for the scanner classes.
-*
-*/
-
-
-
-// USER INCLUDES
-#include "msengscannerbase.h"
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMsengScannerBase::CMsengScannerBase()
-//
-// C++ default constructor. Can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-CMsengScannerBase::CMsengScannerBase(MMsengScannerObserver& aObserver,
- CMsengInfoArray& aInfoArray,
- RFs& aFsSession
- )
-: CActive(CActive::EPriorityStandard), iObserver(aObserver),
- iInfoArray(aInfoArray), iFsSession(aFsSession)
- {
- CActiveScheduler::Add(this);
- }
-
-// ---------------------------------------------------------------------------
-// CMsengScannerBase::~CMsengScannerBase()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-CMsengScannerBase::~CMsengScannerBase()
- {
- Cancel();
- }
-
-
-
-
-// ---------------------------------------------------------------------------
-// CMsengScannerBase::CompleteRequest()
-//
-//
-// ---------------------------------------------------------------------------
-void CMsengScannerBase::CompleteRequest(TInt aCode)
- {
- if (!IsActive())
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, aCode);
- SetActive();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMsengScannerBase::RunL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMsengScannerBase::RunL()
- {
- // Do one scanning step
- const TStepResult result = PerformStepL();
-
- switch(result)
- {
- case ECompleteRequest:
- {
- CompleteRequest();
- break;
- }
-
- case EScanComplete:
- {
- iObserver.HandleScannerEventL(
- MMsengScannerObserver::EScannerEventScanComplete, *this);
- break;
- }
-
- case ERequestIssuedInternally:
- default:
- {
- // Not used, but maybe needed for messaging if some asynchronous
- // service is used which completes iStatus by itself.
- break;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMsengScannerBase::DoCancel()
-//
-//
-// ---------------------------------------------------------------------------
-void CMsengScannerBase::DoCancel()
- {
- // Nothing to do here
- }
-
-
-// ---------------------------------------------------------------------------
-// CMsengScannerBase::RunError()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMsengScannerBase::RunError(TInt aError)
- {
- // Implementation for EScannerEventScanError cannot leave at the moment,
- // but lets trap if implementation changes
- TRAP_IGNORE(iObserver.HandleScannerEventL(
- MMsengScannerObserver::EScannerEventScanError, *this, aError));
- return KErrNone;
- }
-
-
-// End of File
--- a/filesystemuis/memscaneng/serversrc/msengsisxinfo.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-/*
-* Copyright (c) 2006 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: Utility class for accessing sis-registry
-*
-*/
-
-
-// SYSTEM INCLUDES
-#include <swi/sisregistryentry.h>
-#include <swi/sisregistrysession.h>
-#include <AknUtils.h>
-#include <SWInstApi.h>
-#include <swi/sisregistrypackage.h>
-#include <CUIDetailsDialog.h>
-#include <SWInstDefs.h>
-#include <StringLoader.h>
-#include <mseng.rsg>
-
-// USER INCLUDES
-#include "msengsisxinfo.h"
-#include "memscanutils.h"
-
-// constants
-_LIT( KDriveC, "C");
-_LIT( KDriveZ, "Z");
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CMsengSisxInfo::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CMsengSisxInfo::ConstructL( Swi::RSisRegistryEntry& aEntry, TDriveNumber aDrive )
- {
- TInt err;
- TChar driveLetter;
- RFs::DriveToChar(aDrive, driveLetter);
- driveLetter.UpperCase();
- const TInt KDriveLength = 1;
- TBuf<KDriveLength> driveName;
- driveName.Append(driveLetter);
-
- TRAP(err, aEntry.FilesL(iFiles));
-
- // Get the name of the app
- HBufC* packageName = aEntry.PackageNameL();
- CleanupStack::PushL( packageName );
- TParse parse;
-
- parse.SetNoWild( *packageName, NULL, NULL );
- iFileName = parse.Name().AllocL();
- CleanupStack::PopAndDestroy(packageName);
- TPtr tmpPtr2 = iFileName->Des();
- TRACES( RDebug::Print( _L("CMsengSisxInfo::ConstructL - %S"), &tmpPtr2 ); );
-
- // Get Location
- TChar selectedDrive( aEntry.SelectedDriveL() );
- selectedDrive.UpperCase();
- iRequestedLocation = EFalse;
-
- if( selectedDrive == driveLetter )
- {
- // Phone memory
- iRequestedLocation = ETrue;
- }
- else
- {
- // Check the disk from files
- // if all have C, the software is installed to phone
- // else it is installed to memory card
- TInt count = iFiles.Count();
-
- TInt allFilesInCZ = 0;
- for ( TInt index = 0; index < count; index++ )
- {
- TPtrC firstChar = iFiles[index]->Des().Left(1);
- TRACES( RDebug::Print( _L("Checking location of %S"), iFiles[index]); );
-
- if ( ( firstChar.CompareF( KDriveC ) == KErrNone ) ||
- ( firstChar.CompareF( KDriveZ ) == KErrNone ) )
- {
- allFilesInCZ++;
- }
- }
-
- if ( allFilesInCZ == count && (driveName.CompareF( KDriveC ) == KErrNone ) )
- {
- // Phone memory
- iRequestedLocation = ETrue;
- }
- }
-
- TRACES( RDebug::Print( _L("Requested location %d"), iRequestedLocation); );
- }
-
-
-// -----------------------------------------------------------------------------
-// CMsengSisxInfo::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CMsengSisxInfo* CMsengSisxInfo::NewL( Swi::RSisRegistryEntry& aEntry,
- TDriveNumber aDrive )
- {
- CMsengSisxInfo* self = new ( ELeave ) CMsengSisxInfo( );
- CleanupStack::PushL( self );
- self->ConstructL( aEntry, aDrive );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// -----------------------------------------------------------------------------
-// CMsengSisxInfo::~CMsengSisxInfo
-// Destructor.
-// -----------------------------------------------------------------------------
-CMsengSisxInfo::~CMsengSisxInfo()
- {
- delete iFileName;
- iFiles.ResetAndDestroy();
- iFiles.Close();
- }
-
-
-// -----------------------------------------------------------------------------
-// CAppMngrSisxInfo::RequestedLocation
-// Get location of the application.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CMsengSisxInfo::RequestedLocation() const
- {
- return iRequestedLocation;
- }
-
-
-// End of File
--- a/filesystemuis/memstatepopup/BWINS/MEMSTATEPOPUPU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EXPORTS
- ?GetUtilL@CMemStatePopup@@SAXAAPAVCMSPUtil@@@Z @ 1 NONAME ; void CMemStatePopup::GetUtilL(class CMSPUtil * &)
- ?RunLD@CMemStatePopup@@SAXW4TDriveNumber@@AAVTDesC16@@@Z @ 2 NONAME ; void CMemStatePopup::RunLD(enum TDriveNumber, class TDesC16 &)
- ?SolveUnitAndSize@CMSPUtil@@QAE?AVTPtrC16@@AA_J@Z @ 3 NONAME ; class TPtrC16 CMSPUtil::SolveUnitAndSize(long long &)
-
--- a/filesystemuis/memstatepopup/EABI/MemStatePopupU.DEF Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-EXPORTS
- _ZN14CMemStatePopup5RunLDE12TDriveNumberR7TDesC16 @ 1 NONAME
- _ZN14CMemStatePopup8GetUtilLERP8CMSPUtil @ 2 NONAME
- _ZN8CMSPUtil16SolveUnitAndSizeERx @ 3 NONAME
- _ZTI14CMemStatePopup @ 4 NONAME ; #<TI>#
- _ZTI8CMSPUtil @ 5 NONAME ; #<TI>#
- _ZTV14CMemStatePopup @ 6 NONAME ; #<VT>#
- _ZTV8CMSPUtil @ 7 NONAME ; #<VT>#
-
--- a/filesystemuis/memstatepopup/group/MemStatePopup.mmp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* This is project specification file for the Memory State Popup.
-*
-*
-*/
-
-
-#include <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-
-TARGET memstatepopup.dll
-TARGETTYPE dll
-UID 0x1000008d 0x101F4672
-VENDORID VID_DEFAULT
-CAPABILITY CAP_GENERAL_DLL
-
-START RESOURCE ../group/MemStatePopup.rss
-TARGETPATH RESOURCE_FILES_DIR
-HEADER
-LANGUAGE_IDS
-END
-
-SOURCEPATH ../src
-
-SOURCE CMemStatePopup.cpp
-SOURCE cmemstatepopupimpl.cpp
-SOURCE MSPUtil.cpp
-SOURCE cmemscaneventreceiver.cpp
-
-
-USERINCLUDE ../group ../inc
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE ../../inc
-
-LIBRARY euser.lib
-LIBRARY bafl.lib
-LIBRARY cone.lib
-LIBRARY avkon.lib
-LIBRARY eikcoctl.lib
-LIBRARY commonengine.lib
-LIBRARY efsrv.lib
-LIBRARY memscanclient.lib
-
-
-// End of File
-
--- a/filesystemuis/memstatepopup/group/MemStatePopup.rss Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 2005 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:
-* Resources for memory state popup
-*
-*/
-
-
-#include <eikon.rh>
-#include <avkon.rh>
-
-#include <eikon.rsg>
-#include <avkon.rsg>
-#include <avkon.mbg>
-#include <AvkonIcons.hrh>
-
-#include <memstatepopup.loc>
-
-
-// RESOURCE IDENTIFIER
-NAME MSTP // 4 letter ID
-
-// COMPULSORY SIGNATURE
-RESOURCE RSS_SIGNATURE { }
-
-// MEMORY SCAN WAIT NOTE
-RESOURCE DIALOG r_memstate_wait_note
- {
- flags = EAknWaitNoteFlags;
- buttons = R_AVKON_SOFTKEYS_CANCEL;
- items =
- {
- DLG_LINE
- {
- type = EAknCtNote;
- id = EGeneralNote;
- control= AVKON_NOTE
- {
- layout = EWaitLayout;
- singular_label = qtn_swins_note_mem_wait;
- imagefile = AVKON_ICON_FILE;
- imageid = EMbmAvkonQgn_note_progress;
- imagemask = EMbmAvkonQgn_note_progress_mask;
- animation =R_QGN_GRAF_WAIT_BAR_ANIM;
- };
- }
- };
- }
-
-
-RESOURCE TBUF r_unit_formatter
- {
- buf = qtn_swins_lsh2_format;
- }
-
-RESOURCE ARRAY r_array_units
- {
- items =
- {
- LBUF { txt = qtn_swins_lsh2_plain_byte; },
- LBUF { txt = qtn_swins_lsh2_plain_kilobyte; },
- LBUF { txt = qtn_swins_lsh2_plain_megabyte; },
- LBUF { txt = qtn_swins_lsh2_plain_gigabyte; }
- };
- }
-
-// End of File
--- a/filesystemuis/memstatepopup/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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 memscaneng
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_EXPORTS
- ../rom/MemStatePopup.iby CORE_APP_LAYER_IBY_EXPORT_PATH(MemStatePopup.iby )
- ../rom/MemStatePopupResources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(MemStatePopupResources.iby)
- ../loc/MemStatePopup.loc APP_LAYER_LOC_EXPORT_PATH(memstatepopup.loc)
-
-PRJ_PLATFORMS
- DEFAULT
-
-PRJ_MMPFILES
- MemStatePopup.mmp
--- a/filesystemuis/memstatepopup/inc/MSPPanic.hrh Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-* Copyright (c) 2002 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:
-* MemStatePopup Panics.
-*
-*/
-
-
-
-#ifndef __MSPPANIC_HRH__
-#define __MSPPANIC_HRH__
-
-_LIT( KPanicMSP, "MemoryStatePopup" );
-
-// UI panics
-enum MSPPanic
- {
- EInvalidParameter
- };
-
-#endif // __MAUIPANIC_HRH__
-
-// End of File
-
--- a/filesystemuis/memstatepopup/inc/cmemscaneventreceiver.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* Memory Scan Event Receiver
-*
-*
-*/
-
-#ifndef CMEMSCANEVENTRECEIVER_H
-#define CMEMSCANEVENTRECEIVER_H
-
-// SYSTEM INCLUDES
-#include <e32base.h>
-#include <badesca.h>
-#include <memscanclient.h>
-
-
-class MMsengUIHandler;
-
-
-NONSHARABLE_CLASS(CMemScanEventReceiver) : public CActive
- {
- public:
- static CMemScanEventReceiver* NewL( MMsengUIHandler& aUIHandler );
- ~CMemScanEventReceiver();
-
- private:
- CMemScanEventReceiver( MMsengUIHandler& aUIHandler );
- void ConstructL();
-
- public: // API
- CDesCArray* DataGroupsL() const;
- CArrayFix<TInt64>* ScanResultL() const;
- TBool ScanInProgress() const;
- TInt ScanL(TDriveNumber aDrive);
-
- private: // From CActive
- void RunL();
- void DoCancel();
- TInt RunError( TInt aError );
-
- private: // Internal functions
- void RegisterForScanEvents();
-
- private: // Data members
- MMsengUIHandler& iUIHandler;
- RMemScanClient iScanClient;
- TInt iEventError;
- };
-
-
-#endif // CMEMSCANEVENTRECEIVER_H
\ No newline at end of file
--- a/filesystemuis/memstatepopup/inc/cmemstatepopupimpl.h Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-/*
-* Copyright (c) 2006 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: Memory state popup implementation
-*
-*/
-
-
-#ifndef __CMEMORYSTATEPOPUPIMPL_H__
-#define __CMEMORYSTATEPOPUPIMPL_H__
-
-// SYSTEM INCLUDES
-#include <e32base.h>
-#include <AknWaitDialog.h>
-#include <ConeResLoader.h>
-#include <msenguihandler.h>
-
-// FORWARD DECLARATIONS
-class CAknPopupList;
-class CAknSingleHeadingPopupMenuStyleListBox;
-class CMemScanEventReceiver;
-class CMSPUtil;
-
-// CLASS DEFINITION
-NONSHARABLE_CLASS(CMemStatePopupImpl) :
- public CActive,
- public MMsengUIHandler,
- public MProgressDialogCallback
- {
- public:
- // Destructor
- virtual ~CMemStatePopupImpl( );
-
- private:
- // Second phase
- void ConstructL( );
-
- // C++ constructors
- CMemStatePopupImpl( TDriveNumber aDrive, const TDesC& aTitle );
- CMemStatePopupImpl( );
-
- public:
- /**
- * Launches the memory scan popup
- * @param aDrive The drive to be scanned
- * @param aTitle Title of the popup
- */
- static void RunLD( TDriveNumber aDrive, const TDesC& aTitle );
-
- /**
- * Get an instance of CMSPUtil class, containing the unit text array
- * @param aUtil Reference to a CMSPUtil pointer,
- * updated to point to the instance created
- */
- static void GetUtilL( CMSPUtil*& aUtil );
-
- public:
- // From MMsengUIHandler
- void StartL( );
- void QuitL( TInt /*aReason*/ );
- void ErrorL( TInt aError );
-
- // From MProgressDialogCallback
- virtual void DialogDismissedL( TInt /*aButtonId*/ );
-
- private:
-
- // From CActive
- void RunL();
- void DoCancel();
-
- /**
- * Starts observing drive dismounts.
- */
- void StartObserver( );
-
- /**
- * Construct popup and ready it for use.
- */
- void ConstructPopupL( );
-
- /**
- * Shows wait dialog and start scanning.
- */
- void ExecuteL( );
-
- /**
- * Refresh the data shown in listbox.
- */
- void RefreshL( );
-
- /**
- * Set the results to zero.
- */
- void NullifyResults( );
-
- /**
- * Opens the resource and reads unit array from it.
- */
- void OpenResourceAndReadArrayL( );
-
- private:
- // Not implemented
- CMemStatePopupImpl( const CMemStatePopupImpl& );
- CMemStatePopupImpl& operator=( CMemStatePopupImpl& );
-
- private:
- /**
- * Container class used to prevent all pointer events
- * passing from listbox to popup-list.
- */
- NONSHARABLE_CLASS(CMemStateListBox) : public CAknSingleHeadingPopupMenuStyleListBox
- {
- public:
- // Destructor
- virtual ~CMemStateListBox( ) {};
- };
-
- private:
- CDesCArray* iGroupNames;
- CArrayFix< TInt64 >* iScanResults;
- CDesCArray* iListModel;
- CMemStateListBox* iListBox;
- CAknWaitDialog* iWaitDialog;
- TBool iFinished;
- TDriveNumber iDrive;
- CAknPopupList* iPopup;
- TDesC* iTitle;
- CCoeEnv& iCoeEnv;
- RConeResourceLoader iResLoader;
- CMSPUtil* iUtil;
- TBool iOwnsUtil;
- CMemScanEventReceiver* iEventReceiver;
- };
-
-#endif // __CMEMORYSTATEPOPUPIMPL_H__
-
-// End of File
--- a/filesystemuis/memstatepopup/loc/MemStatePopup.loc Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2005 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:
-* This is a localisation file for Memory State Popup
-*
-*/
-
-
-
-// LOCALISATION STRINGS
-
-//d:Memory state dialog wait note.
-//l:popup_note_wait_window
-//
-#define qtn_swins_note_mem_wait "Scanning memory. Please wait."
-
-//d:Unit formatter, %N is the amount of data and %U is one of the units below.
-//l:list_single_heading_pane_t2
-//
-#define qtn_swins_lsh2_format "%0N %1U"
-
-//d:Unit name for byte.
-//l:list_single_heading_pane_t2
-//
-#define qtn_swins_lsh2_plain_byte "B"
-
-//d:Unit name for kilobyte.
-//l:list_single_heading_pane_t2
-//
-#define qtn_swins_lsh2_plain_kilobyte "kB"
-
-//d:Unit name for megabyte.
-//l:list_single_heading_pane_t2
-//
-#define qtn_swins_lsh2_plain_megabyte "MB"
-
-//d:Unit name for gigabyte.
-//l:list_single_heading_pane_t2
-//
-#define qtn_swins_lsh2_plain_gigabyte "GB"
-
-
-// End of File
--- a/filesystemuis/memstatepopup/rom/MemStatePopup.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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 project memstatepopup
-*
-*/
-
-
-#ifndef __MEMSTATEPOPUP_IBY__
-#define __MEMSTATEPOPUP_IBY__
-
-// Memory State Popup
-file=ABI_DIR\BUILD_DIR\MemStatePopup.dll SHARED_LIB_DIR\MemStatePopup.dll
-
-#endif
--- a/filesystemuis/memstatepopup/rom/MemStatePopupResources.iby Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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 project memstatepopup
-*
-*/
-
-
-#ifndef __MEMSTATEPOPUP_RESOURCES_IBY__
-#define __MEMSTATEPOPUP_RESOURCES_IBY__
-
-//Resource file(s) for Memory State Popup
-
-data=DATAZ_\RESOURCE_FILES_DIR\MemStatePopup.rsc RESOURCE_FILES_DIR\MemStatePopup.rsc
-
-
-#endif
--- a/filesystemuis/memstatepopup/src/CMemStatePopup.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2006 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 for CMemStatePopup
-*
-*
-*/
-
-
-// SYSTEM INCLUDES
-#include <e32std.h>
-#include <AknProgressDialog.h>
-#include <aknlists.h>
-#include <ConeResLoader.h>
-#include <bautils.h>
-#include <StringLoader.h>
-#include <aknPopup.h>
-#include <memstatepopup.rsg>
-#include <f32file.h>
-
-// USER INCLUDES
-#include "cmemstatepopup.h"
-#include "cmemstatepopupimpl.h"
-#include "cmemscaneventreceiver.h"
-
-// ---------------------------------------------------------------------------
-
-CMemStatePopup::CMemStatePopup( )
- {
- }
-
-// ---------------------------------------------------------------------------
-
-CMemStatePopup::~CMemStatePopup( )
- {
- }
-
-
-
-// ---------------------------------------------------------------------------
-
-EXPORT_C void CMemStatePopup::RunLD( TDriveNumber aDrive, TDesC& aTitle )
- {
- CMemStatePopupImpl::RunLD( aDrive, aTitle );
- }
-
-// ---------------------------------------------------------------------------
-
-EXPORT_C void CMemStatePopup::GetUtilL( CMSPUtil*& aUtil )
- {
- CMemStatePopupImpl::GetUtilL( aUtil );
- }
-
-// End of File
--- a/filesystemuis/memstatepopup/src/MSPUtil.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2002 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: CMSPUtil Implementation
-*
-*
-*/
-
-
-// INCLUDE FILES
-#include <e32std.h>
-#include "MSPPanic.hrh"
-#include "msputil.h"
-
-// ---------------------------------------------------------------------------
-
-CMSPUtil* CMSPUtil::NewL( CDesCArrayFlat* aArray )
- {
- __ASSERT_DEBUG( aArray,
- User::Panic( KPanicMSP, EInvalidParameter ) );
- CMSPUtil* self = new( ELeave ) CMSPUtil;
- self->iUnitArray = aArray;
- return self;
- }
-
-// ---------------------------------------------------------------------------
-
-CMSPUtil::~CMSPUtil( )
- {
- if( iUnitArray )
- {
- iUnitArray->Delete( 0, iUnitArray->Count( ) );
- }
- delete iUnitArray;
- }
-
-// ---------------------------------------------------------------------------
-
-CMSPUtil::CMSPUtil( ): iUnitArray( NULL )
- {
- }
-
-// ---------------------------------------------------------------------------
-
-void CMSPUtil::SolveUnitAndSize( TInt64& aNumber, TInt& aUnit )
- {
- TInt count( iUnitArray->Count( ) );
- const TInt KMaxDigits = 10000;
- const TInt KKiloByte = 1024;
- const TInt KRoundLimit = 512;
- const TInt KShiftValue = 10;
- aUnit = EByte;
-
- // If number is 1024 or more, it can be divided and unit changed
- while( aNumber >= 1024 && (aUnit + 1) < count )
- {
- // Show kilobytes and megabytes with 4 digits
- if( ( aUnit == EKiloByte || aUnit == EMegaByte ) && aNumber < KMaxDigits )
- {
- break;
- }
- // Check how the rounding should be done
- if( aNumber % KKiloByte < KRoundLimit )
- {
- // Round downwards
- aNumber >>= KShiftValue; // 2^10 = 1024
- }
- else
- {
- aNumber = ( aNumber >> KShiftValue ) + 1;
- }
- aUnit++; // Next enum
- }
- }
-
-
-// ---------------------------------------------------------------------------
-
-EXPORT_C TPtrC CMSPUtil::SolveUnitAndSize( TInt64& aNumber )
- {
- TInt unitType( EByte );
- SolveUnitAndSize( aNumber, unitType );
- if( unitType >= iUnitArray->Count() )
- {
- if( iUnitArray->Count() )
- {
- unitType = iUnitArray->Count() - 1;
- }
- else
- {
- unitType = 0;
- }
- }
-
- return ( *iUnitArray )[ unitType ];
- }
-
-// End of File
-
--- a/filesystemuis/memstatepopup/src/cmemscaneventreceiver.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-* Memory Scan Event Receiver
-*
-*
-*/
-
-
-
-// SYSTEM INCLUDES
-#include <msenguihandler.h>
-
-
-// USER INCLUDES
-#include "cmemscaneventreceiver.h"
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::CMemScanEventReceiver()
-//
-// C++ default constructor.
-// ---------------------------------------------------------------------------
-CMemScanEventReceiver::CMemScanEventReceiver( MMsengUIHandler& aUIHandler )
-: CActive(EPriorityStandard), iUIHandler(aUIHandler)
- {
- CActiveScheduler::Add(this);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMemScanEventReceiver* CMemScanEventReceiver::NewL( MMsengUIHandler& aUIHandler )
- {
- CMemScanEventReceiver* self = new( ELeave ) CMemScanEventReceiver( aUIHandler );
- CleanupStack::PushL( self );
- self->ConstructL( );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::ConstructL()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-void CMemScanEventReceiver::ConstructL()
- {
- User::LeaveIfError( iScanClient.Connect() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::~CMemScanEventReceiver()
-//
-//
-// ---------------------------------------------------------------------------
-CMemScanEventReceiver::~CMemScanEventReceiver()
- {
- Cancel();
- iScanClient.Close();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::RunL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMemScanEventReceiver::RunL()
- {
- User::LeaveIfError( iStatus.Int() );
-
- switch( iStatus.Int() )
- {
- case EMemScanEventScanningStarted:
- {
- iUIHandler.StartL();
- break;
- }
-
- case EMemScanEventScanningFinished:
- {
- iUIHandler.QuitL(iEventError);
- break;
- }
-
- case EMemScanEventScanningError:
- {
- iUIHandler.ErrorL(iEventError);
- break;
- }
-
- default:
- {
- break;
- }
- }
-
- RegisterForScanEvents();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::DoCancel()
-//
-//
-// ---------------------------------------------------------------------------
-void CMemScanEventReceiver::DoCancel()
- {
- iScanClient.RequestScanEventsCancel();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::RunError()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMemScanEventReceiver::RunError( TInt /*aError*/ )
- {
- RegisterForScanEvents();
- return KErrNone;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::DataGroupsL()
-//
-//
-// ---------------------------------------------------------------------------
-CDesCArray* CMemScanEventReceiver::DataGroupsL() const
- {
- CDesCArray* dataGroupArray = iScanClient.DataGroupsL();
- return dataGroupArray;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::ScanResultL()
-//
-//
-// ---------------------------------------------------------------------------
-CArrayFix<TInt64>* CMemScanEventReceiver::ScanResultL() const
- {
- CArrayFix<TInt64>* scanResultArray = iScanClient.ScanResultL();
- return scanResultArray;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::ScanInProgress()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMemScanEventReceiver::ScanInProgress() const
- {
- return iScanClient.ScanInProgress();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::ScanL()
-//
-//
-// ---------------------------------------------------------------------------
-TInt CMemScanEventReceiver::ScanL(TDriveNumber aDrive)
- {
- RegisterForScanEvents();
-
- return iScanClient.Scan(aDrive);
- }
-
-
-// ---------------------------------------------------------------------------
-// CMemScanEventReceiver::RegisterForScanEvents()
-//
-//
-// ---------------------------------------------------------------------------
-void CMemScanEventReceiver::RegisterForScanEvents()
- {
- Cancel();
-
- // We request events from the server. When the server has an event
- // for us, it will complete our request status (iStatus) with an
- // event type (i.e. one of the TMemScanEvent enumerations) and
- // also ensures that iEventError is updated with any associated error
- // value. This will then cause the RunL method to be called.
- iScanClient.RequestScanEvents( iEventError, iStatus );
- SetActive();
- }
--- a/filesystemuis/memstatepopup/src/cmemstatepopupimpl.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,415 +0,0 @@
-/*
-* Copyright (c) 2006 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: Memory state popup implementation
-*
-*/
-
-
-// SYSTEM INCLUDES
-#include <e32std.h>
-#include <AknProgressDialog.h>
-#include <aknlists.h>
-#include <ConeResLoader.h>
-#include <bautils.h>
-#include <StringLoader.h>
-#include <aknPopup.h>
-#include <memstatepopup.rsg>
-#include <f32file.h>
-#include <data_caging_path_literals.hrh>
-
-// USER INCLUDES
-#include "msputil.h"
-#include "cmemstatepopup.h"
-#include "cmemstatepopupimpl.h"
-#include "cmemscaneventreceiver.h"
-
-// CONSTANTS
-_LIT( KDirAndFile,"Z:MemStatePopup.RSC" );
-_LIT( KMemListSeparator, "\t" );
-
-// Max length of a list row
-// Has to be big enough to hold "%N %U"
-const TInt KListItemMaxLength = 32;
-
-// ---------------------------------------------------------------------------
-
-CMemStatePopupImpl::~CMemStatePopupImpl( )
- {
- Cancel();
- // Close the resource
- iResLoader.Close( );
-
- if( iWaitDialog )
- {
- iWaitDialog->SetObserver( NULL );
- delete iWaitDialog;
- }
-
- delete iEventReceiver; // deletes also scan engine and server
-
- delete iGroupNames;
- delete iListModel;
- delete iListBox;
- delete iScanResults;
-
-
- if( iOwnsUtil )
- {
- // Delete only if the actual dialog was launched
- delete iUtil;
- }
-
- // Try to delete also iPopup in case of leave
- // Must call CBase's destructor
- // because CAknPopupList destructor is protected
- delete ( CBase* ) iPopup;
- }
-
-// ---------------------------------------------------------------------------
-
-CMemStatePopupImpl::CMemStatePopupImpl( TDriveNumber aDrive, const TDesC& aTitle ) :
- CActive(EPriorityStandard),
- iFinished( EFalse ),
- iDrive( aDrive ),
- iTitle( const_cast<TDesC*> (&aTitle) ),
- iCoeEnv( *CCoeEnv::Static( ) ),
- iResLoader( iCoeEnv ),
- iOwnsUtil( ETrue )
- {
- CActiveScheduler::Add(this);
- }
-
-// ---------------------------------------------------------------------------
-
-// Used by GetUtilL
-CMemStatePopupImpl::CMemStatePopupImpl( ) :
- CActive(EPriorityStandard),
- iFinished( EFalse ),
- iDrive( EDriveC ),
- iCoeEnv( *CCoeEnv::Static( ) ),
- iResLoader( iCoeEnv ),
- iOwnsUtil( EFalse )
- {
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::ConstructL( )
- {
- OpenResourceAndReadArrayL( );
-
- // Instantiate event receiver, memory scan engine and server
- iEventReceiver = CMemScanEventReceiver::NewL( *this );
-
- // Get data group names from engine
- iGroupNames = iEventReceiver->DataGroupsL( );
-
- // Create popup
- ConstructPopupL( );
-
- // Create wait dialog
- iWaitDialog = new( ELeave ) CAknWaitDialog(
- reinterpret_cast< CEikDialog** >( &iWaitDialog ) );
- iWaitDialog->SetCallback( this );
- iWaitDialog->PrepareLC( R_MEMSTATE_WAIT_NOTE );
-
- StartObserver();
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::RunLD( TDriveNumber aDrive, const TDesC& aTitle )
- {
- CMemStatePopupImpl* self = new( ELeave ) CMemStatePopupImpl( aDrive, aTitle );
- CleanupStack::PushL( self );
- self->ConstructL( );
-
- // Run the actual process
- self->ExecuteL( );
-
- CleanupStack::PopAndDestroy( self );
- }
-
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::GetUtilL( CMSPUtil*& aUtil )
- {
- CMemStatePopupImpl* self = new( ELeave ) CMemStatePopupImpl;
- CleanupStack::PushL( self );
-
- // Read the unit array from resource
- self->OpenResourceAndReadArrayL( );
- aUtil = self->iUtil; // iUtil is not deleted
-
- CleanupStack::PopAndDestroy( self );
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::StartL( )
- {
-#ifdef _DEBUG
- RDebug::Print( _L( "Scanning started!" ) );
-#endif
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::QuitL( TInt /*aReason*/ )
- {
-#ifdef _DEBUG
- RDebug::Print( _L( "Scanning ended!" ) );
-#endif
- if( !iFinished )
- {
- // Tell waitdialog that it can quit now
- iWaitDialog->ProcessFinishedL( );
- iFinished = ETrue;
- }
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::ErrorL( TInt aError )
- {
-#ifdef _DEBUG
- RDebug::Print( _L( "Error scanning memory: %d" ), aError );
-#endif
-
- // getting rid of UREL compiler warning
- if( !aError )
- {
- aError = KErrNone;
- }
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::DialogDismissedL( TInt aButtonId )
- {
-
- // Cancel is pressed while scanning is in progress
- if( iEventReceiver->ScanInProgress( ) )
- {
- iFinished = ETrue;
- iEventReceiver->Cancel( ); // Stop scanning
- }
-
- // Cancel is pressed while wait note is on screen (scanning may be completed)
- if( aButtonId == EAknSoftkeyCancel ) // instead of EAknSoftkeyDone
- {
- iPopup->CancelPopup( ); // Remove memory state popup from screen
- return;
- }
-
- // Get the new result array
- delete iScanResults;
- iScanResults = NULL;
- TRAPD( err, iScanResults = iEventReceiver->ScanResultL( ) );
- if( err != KErrNone )
- {
- iPopup->CancelPopup( ); // Remove memory state popup from screen
- return;
- }
- RefreshL( );
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::ConstructPopupL( )
- {
- iListBox = new( ELeave ) CMemStateListBox( );
-
- iPopup = CAknPopupList::NewL( iListBox, R_AVKON_SOFTKEYS_OK_EMPTY,
- AknPopupLayouts::EMenuGraphicHeadingWindow );
- iPopup->SetTitleL( *iTitle );
-
- // Set up listbox
- iListBox->ConstructL( iPopup, EAknListBoxViewerFlags );
-
- // Create listbox model and give the model to the listbox
- iListModel = new( ELeave ) CDesCArraySeg( iGroupNames->Count( ) );
-
- // Create scroll indicator
- iListBox->CreateScrollBarFrameL( ETrue );
- iListBox->ScrollBarFrame( )->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
- iListBox->Model( )->SetItemTextArray( iListModel );
- iListBox->Model( )->SetOwnershipType( ELbmDoesNotOwnItemArray );
- iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue );
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::ExecuteL( )
- {
- // Show wait dialog
- iWaitDialog->RunLD( );
-
- // Start the scanning
- User::LeaveIfError(iEventReceiver->ScanL( iDrive ));
-
- // Get the result array
- iScanResults = iEventReceiver->ScanResultL( );
-
- // Set all results zero, so that no actual results are shown
- // before the scan is done.
- NullifyResults( );
-
- // Update the list with initial values (0's)
- RefreshL( );
-
- // Show popup
- iPopup->ExecuteLD( );
- iPopup = NULL; // Has to be set NULL because deleted in destructor
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::RefreshL( )
- {
- //TBuf< KListItemMaxLength > result;
- TBuf< KListItemMaxLength > unitText;
- TBuf< KListItemMaxLength > tempText;
- TPtrC unit;
- TInt64 res64( 0 );
- TInt count( iScanResults ? iScanResults->Count( ) : 0 );
- TInt maxGroupName(0);
-
- for( TInt i = 0; i < iGroupNames->Count(); i++ )
- {
- if( maxGroupName < ( *iGroupNames )[ i ].Length() )
- {
- maxGroupName = ( *iGroupNames )[ i ].Length();
- }
- }
-
- // Allocate memory for size, unit text and actual group name
- HBufC* result = HBufC::NewLC( maxGroupName + 2*KListItemMaxLength );
- TPtr resultPtr( result->Des() );
- HBufC* unitFormatter = StringLoader::LoadLC( R_UNIT_FORMATTER, &iCoeEnv );
-
- iListModel->Reset( );
-
- // Go through the result array and append to the model as text
- for( TInt i = 0; i < count; i++ )
- {
- res64 = ( *iScanResults )[ i ];
-
- unit.Set( iUtil->SolveUnitAndSize( res64 ) );
- StringLoader::Format( tempText, *unitFormatter, 0, I64INT( res64 ) );
- StringLoader::Format( unitText, tempText, 1, unit );
- resultPtr.Zero( );
-
- // The actual listbox row is constructed here
- // iListModel is just an array of descriptors
- if ( User::Language() == ELangArabic )
- {
- resultPtr.Append( KRightToLeftMark );
- }
- resultPtr.Append( unitText );
- resultPtr.Append( KMemListSeparator );
- if( i < iGroupNames->Count() )
- {
- resultPtr.Append( ( *iGroupNames )[ i ] );
- }
- else
- {
- resultPtr.Append( ( *iGroupNames )[ 0 ] );
- }
- iListModel->AppendL( resultPtr );
- }
-
- CleanupStack::PopAndDestroy( unitFormatter );
- CleanupStack::PopAndDestroy( result );
-
- // Update the listbox
- iListBox->HandleItemAdditionL( );
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::NullifyResults( )
- {
- // Set all results to zero
- if( iScanResults )
- {
- TInt count( iScanResults->Count( ) );
- for( TInt t = 0; t < count; t++ )
- {
- ( *iScanResults )[ t ] = 0;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-
-void CMemStatePopupImpl::OpenResourceAndReadArrayL( )
- {
- // Open dll resource
-
- TParse* fp = new(ELeave) TParse();
- fp->Set(KDirAndFile, &KDC_RESOURCE_FILES_DIR, NULL);
- TFileName fileName( fp->FullName() );
- delete fp;
-
- BaflUtils::NearestLanguageFile( iCoeEnv.FsSession( ),
- fileName );
- iResLoader.OpenL( fileName );
-
- // Read localised unit texts from resource
- TResourceReader reader;
- iCoeEnv.CreateResourceReaderLC( reader, R_ARRAY_UNITS );
- CDesCArrayFlat* units = reader.ReadDesCArrayL( );
- CleanupStack::PushL( units );
- iUtil = CMSPUtil::NewL( units ); // Give the array to the util class
- CleanupStack::Pop( units );
- CleanupStack::PopAndDestroy(); // Private HBufC8* variable
- // of CreateResourceReaderLC()
- }
-
-// ---------------------------------------------------------------------------
-void CMemStatePopupImpl::RunL()
- {
- TVolumeInfo volInfo;
- TInt err = iCoeEnv.FsSession().Volume( volInfo, iDrive );
- if(err != KErrNone)
- {
- iPopup->CancelPopup( );
- }
- else
- {
- StartObserver();
- }
- }
-
-// ---------------------------------------------------------------------------
-void CMemStatePopupImpl::DoCancel()
- {
- iCoeEnv.FsSession().NotifyChangeCancel();
- }
-
-// ---------------------------------------------------------------------------
-void CMemStatePopupImpl::StartObserver()
- {
- if ( IsActive() )
- {
- Cancel();
- }
- iCoeEnv.FsSession().NotifyChange( ENotifyDisk, iStatus );
- SetActive();
- }
-
-// End of File
--- a/group/bld.inf Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2006-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: Master blf for files
-*
-*/
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-PRJ_MMPFILES
-
-#include "../deviceencryption/group/bld.inf"
-#include "../files_plat/group/bld.inf"
-#include "../filemanager/group/bld.inf"
-#include "../filesystemuis/group/bld.inf"
-
-
-PRJ_TESTMMPFILES
-
-// End of File
--- a/layers.sysdef.xml Thu Aug 19 09:42:45 2010 +0300
+++ b/layers.sysdef.xml Tue Aug 31 15:06:05 2010 +0300
@@ -1,14 +1,25 @@
<?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_5_1.dtd" [
<!ENTITY layer_real_source_path "sf/app/files" >
]>
-<SystemDefinition name="files" schema="1.4.0">
+<SystemDefinition name="files" schema="1.5.1">
<systemModel>
+ <layer name="bldfirst_app_layer">
+ <module name="filemanager_components">
+ <unit name="fmbkupengine" unitID="presdo.fmbkupengine" bldFile="&layer_real_source_path;/filemanager/src/fmbkupengine/group" mrp="" />
+ <unit name="fmfiledialog" unitID="presdo.fmfiledialog" mrp="" bldFile="&layer_real_source_path;/filemanager/src/fmfiledialog" proFile="fmfiledialog.pro" qmakeArgs="-r -config rom"/>
+ </module>
+ </layer>
<layer name="app_layer">
- <module name="files">
- <unit name="files" unitID="presdo.files" bldFile="&layer_real_source_path;/group" mrp="" />
+ <module name="filemanager">
+ <unit unitID="filemanager" mrp="" bldFile="&layer_real_source_path;/filemanager" name="filemanager" proFile="filemanager.pro" qmakeArgs="-r -config rom"/>
+ </module>
+ </layer>
+ <layer name="qt_unit_test_layer">
+ <module name="filemanager_tests">
+ <unit unitID="presdoe.filemanager_tests" mrp="" bldFile="&layer_real_source_path;/filemanager/tsrc" proFile="tsrc.pro" name="filemanager_tests" qmakeArgs="-r"/>
</module>
</layer>
</systemModel>
-</SystemDefinition>
+</SystemDefinition>
\ No newline at end of file
--- a/sysdef_1_4_0.dtd Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
- <!ELEMENT SystemDefinition (systemModel?, build?)>
- <!ATTLIST SystemDefinition
- name CDATA #REQUIRED
- schema CDATA #REQUIRED>
- <!ELEMENT systemModel (layer+)>
- <!ELEMENT layer (logicalset* | module*)*>
- <!ATTLIST layer
- name CDATA #REQUIRED
- levels CDATA #IMPLIED
- span CDATA #IMPLIED>
- <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalset name CDATA #REQUIRED>
- <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalsubset name CDATA #REQUIRED>
- <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
- <!ATTLIST module
- name CDATA #REQUIRED
- level CDATA #IMPLIED>
- <!ELEMENT component (unit* | package* | prebuilt*)*>
- <!ATTLIST component name CDATA #REQUIRED>
- <!ELEMENT unit EMPTY>
- <!ATTLIST unit
- unitID ID #REQUIRED
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- bldFile CDATA #REQUIRED
- priority CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT package EMPTY>
- <!ATTLIST package
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT prebuilt EMPTY>
- <!ATTLIST prebuilt
- name CDATA #REQUIRED
- version CDATA #REQUIRED
- late (Y|N) #IMPLIED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
- <!ELEMENT unitList (unitRef+)>
- <!ATTLIST unitList
- name ID #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT unitRef EMPTY>
- <!ATTLIST unitRef unit IDREF #REQUIRED>
- <!ELEMENT targetList EMPTY>
- <!ATTLIST targetList
- name ID #REQUIRED
- description CDATA #REQUIRED
- target IDREFS #REQUIRED>
- <!ELEMENT target EMPTY>
- <!ATTLIST target
- name ID #REQUIRED
- abldTarget CDATA #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT option EMPTY>
- <!ATTLIST option
- name ID #REQUIRED
- abldOption CDATA #REQUIRED
- description CDATA #REQUIRED
- enable (Y | N | y | n) #REQUIRED>
- <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
- <!ATTLIST configuration
- name ID #REQUIRED
- description CDATA #REQUIRED
- filter CDATA #REQUIRED>
- <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
- <!ELEMENT unitListRef EMPTY>
- <!ATTLIST unitListRef unitList IDREF #REQUIRED>
- <!ELEMENT layerRef EMPTY>
- <!ATTLIST layerRef layerName CDATA #REQUIRED>
- <!ELEMENT buildLayer EMPTY>
- <!ATTLIST buildLayer
- command CDATA #REQUIRED
- targetList IDREFS #IMPLIED
- unitParallel (Y | N | y | n) #REQUIRED
- targetParallel (Y | N | y | n) #IMPLIED>
- <!ELEMENT specialInstructions EMPTY>
- <!ATTLIST specialInstructions
- name CDATA #REQUIRED
- cwd CDATA #REQUIRED
- command CDATA #REQUIRED>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysdef_1_5_1.dtd Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,88 @@
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+ name CDATA #REQUIRED
+ schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+ name CDATA #REQUIRED
+ levels CDATA #IMPLIED
+ span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset name CDATA #REQUIRED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+ name CDATA #REQUIRED
+ level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+ unitID ID #REQUIRED
+ name CDATA #REQUIRED
+ mrp CDATA #REQUIRED
+ filter CDATA #IMPLIED
+ bldFile CDATA #REQUIRED
+ priority CDATA #IMPLIED
+ contract CDATA #IMPLIED
+ proFile CDATA #IMPLIED
+ qmakeArgs CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+ name CDATA #REQUIRED
+ mrp CDATA #REQUIRED
+ filter CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+ name CDATA #REQUIRED
+ version CDATA #REQUIRED
+ late (Y|N) #IMPLIED
+ filter CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+ name ID #REQUIRED
+ description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+ name ID #REQUIRED
+ description CDATA #REQUIRED
+ target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+ name ID #REQUIRED
+ abldTarget CDATA #REQUIRED
+ description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+ name ID #REQUIRED
+ abldOption CDATA #REQUIRED
+ description CDATA #REQUIRED
+ enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+ name ID #REQUIRED
+ description CDATA #REQUIRED
+ filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+ command CDATA #REQUIRED
+ targetList IDREFS #IMPLIED
+ unitParallel (Y | N | y | n) #REQUIRED
+ targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+ name CDATA #REQUIRED
+ cwd CDATA #REQUIRED
+ command CDATA #REQUIRED>
\ No newline at end of file