diff -r 48060abbbeaf -r b3cee849fa46 filebrowser/inc/FBFileUtils.h --- a/filebrowser/inc/FBFileUtils.h Thu Aug 19 09:55:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,380 +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 FILEBROWSER_FILEUTILS_H -#define FILEBROWSER_FILEUTILS_H - -// INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include - -_LIT(KIRAppPath, "z:\\sys\\bin\\irapp.exe"); -_LIT(KBTAppPath, "z:\\sys\\bin\\btui.exe"); -_LIT(KUSBAppPath, "z:\\sys\\bin\\usbclasschangeui.exe"); -_LIT(KErrRdPath, "c:\\resource\\ErrRd"); -_LIT(KErrRdDir, "c:\\resource\\"); - - -// FORWARD DECLARATIONS -class CFileBrowserModel; -class CFileBrowserFileOps; -class CAknIconArray; -class TAknsItemID; -class CDocumentHandler; -class CAknWaitDialog; -class CAknProgressDialog; -class CEikProgressInfo; -class CFBFileOpClient; -class CAknProgressDialog; -class CEikProgressInfo; -class CAknOpenFileService; -class CMessageDigest; - -// CLASS DECLARATIONS - -class TSearchAttributes - { -public: - TFileName iSearchDir; - TFileName iWildCards; - TFileName iTextInFile; - TUint iMinSize; - TUint iMaxSize; - TTime iMinDate; - TTime iMaxDate; - TBool iRecurse; - }; - -class TDriveEntry - { -public: - TChar iLetter; - TInt iNumber; - TVolumeInfo iVolumeInfo; - TBuf<64> iMediaTypeDesc; - TBuf<128> iAttributesDesc; - TInt iIconId; - }; - -class TFileEntry - { -public: - TFileName iPath; - TEntry iEntry; - TInt iDirEntries; - TInt iIconId; - }; - -class TAppIcon - { -public: - TInt iId; - TUid iUid; - }; - -typedef CArrayFixSeg CDriveEntryList; -typedef CArrayFixSeg CFileEntryList; -typedef CArrayFixSeg CAppIconList; - - -class CCommandParamsBase : public CBase - { - }; - -class CCommandParamsAttribs : public CCommandParamsBase - { -public: - TFileEntry iSourceEntry; - TUint iSetMask; - TUint iClearMask; - TTime iTime; - TUint iSwitch; -public: - CCommandParamsAttribs(const TFileEntry& aSourceEntry, TUint aSetMask, TUint aClearMask, const TTime& aTime, TUint aSwitch) : iSourceEntry(aSourceEntry), iSetMask(aSetMask), iClearMask(aClearMask), iTime(aTime), iSwitch(aSwitch) {} - }; - -class CCommandParamsCopyOrMove : public CCommandParamsBase - { -public: - TFileEntry iSourceEntry; - TFileName iTargetPath; - TUint iSwitch; -public: - CCommandParamsCopyOrMove(const TFileEntry& aSourceEntry, const TDesC& aTargetPath, TUint aSwitch) : iSourceEntry(aSourceEntry), iTargetPath(aTargetPath), iSwitch(aSwitch) {} - }; - -class CCommandParamsRename : public CCommandParamsBase - { -public: - TFileEntry iSourceEntry; - TFileName iTargetPath; - TUint iSwitch; -public: - CCommandParamsRename(const TFileEntry& aSourceEntry, const TDesC& aTargetPath, TUint aSwitch) : iSourceEntry(aSourceEntry), iTargetPath(aTargetPath), iSwitch(aSwitch) {} - }; - -class CCommandParamsDelete : public CCommandParamsBase - { -public: - TFileEntry iSourceEntry; - TUint iSwitch; -public: - CCommandParamsDelete(const TFileEntry& aSourceEntry, TUint aSwitch) : iSourceEntry(aSourceEntry), iSwitch(aSwitch) {} - }; - -class CCommandParamsDriveSnapShot : public CCommandParamsBase - { -public: - TInt iSourceDriveLetter; - TInt iTargetDriveLetter; -public: - CCommandParamsDriveSnapShot(TChar aSourceDriveLetter, TChar aTargetDriveLetter) : iSourceDriveLetter(aSourceDriveLetter), iTargetDriveLetter(aTargetDriveLetter) {} - }; - -class TCommand - { -public: - TInt iCommandId; - CCommandParamsBase* iParameters; -public: - TCommand(TInt aCommandId, CCommandParamsBase* aParameters) : iCommandId(aCommandId), iParameters(aParameters) {} - }; - -typedef CArrayFixSeg CCommandArray; - - - -class CFileBrowserFileUtils : public CActive, public MAknServerAppExitObserver, public MMsvSessionObserver, public MProgressDialogCallback - { -private: - enum TState // active object states - { - EIdle = 0, // do nothing - }; - - enum TClipBoardMode - { - EClipBoardModeCut = 0, - EClipBoardModeCopy - }; - - enum TListingMode - { - ENormalEntries = 0, - ESearchResults, - EOpenFiles, - EMsgAttachmentsInbox, - EMsgAttachmentsDrafts, - EMsgAttachmentsSentItems, - EMsgAttachmentsOutbox - }; - -public: - static CFileBrowserFileUtils* NewL(CFileBrowserModel* aModel); - ~CFileBrowserFileUtils(); - -private: - CFileBrowserFileUtils(CFileBrowserModel* aModel); - void ConstructL(); - -private: // from CActive - void RunL(); - TInt RunError(TInt aError); - void DoCancel(); - -private: // from MAknServerAppExitObserver - void HandleServerAppExit(TInt aReason); - -private: // from MMsvSessionObserver - void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3); - -private: //from MProgressDialogCallback - void DialogDismissedL(TInt aButtonId); - -private: // command handling - void StartExecutingCommandsL(const TDesC& aLabel); - void ExecuteCommand(); - void CheckForMoreCommandsL(); - void AppendToCommandArrayL(TInt aCommand, CCommandParamsBase* aParameters); - TInt CommandArrayCount() const; - void ResetCommandArray(); - -private: // misc functionality - void GenerateDirectoryDataL(); - void GetDriveListL(); - void GetDirectoryListingL(); - CAknIconArray* GenerateIconArrayL(TBool aGenerateNewBasicIconArray=EFalse); - void AppendGulIconToIconArrayL(CAknIconArray* aIconArray, const TDesC& aIconFile, TInt aIconId, TInt aMaskId, const TAknsItemID aAknsItemId); - TInt AppIconIdForUid(TUid aUid); - TUid GetAppUid(TFileEntry aFileEntry); - CDesCArray* GenerateItemTextArrayL(); - TInt GetSelectedItemsOrCurrentItemL(CFileEntryList* aFileEntryList); - void DoCopyToFolderL(CFileEntryList* aEntryList, const TDesC& aTargetDir, TBool aDeleteSource); - TInt DoSearchFiles(const TDesC& aFileName, const TDesC& aPath); - TInt DoSearchFilesRecursiveL(const TDesC& aFileName, const TDesC& aPath); - TInt DoFindFiles(const TDesC& aFileName, const TDesC& aPath); - TInt DoFindFilesRecursiveL(const TDesC& aFileName, const TDesC& aPath); - void ReadAttachmentPathsRecursiveL(CMsvSession* aSession, CMsvEntry* aContext, CDesCArray* aAttPaths); - void WriteMessageEntryInfoRecursiveL(CMsvSession* aSession, CMsvEntry* aContext, RFile& aFile, TInt& aLevel); - void DoWriteMessageEntryInfoL(CMsvEntry* aContext, RFile& aFile, TInt aLevel); - void ConvertCharsToPwd(TDesC& aWord, TDes8& aConverted) const; - HBufC8* MessageDigestInHexLC(CMessageDigest* aMD, RFile& aFile); - void OpenCommonFileActionQueryL(); - -public: // public interfaces - TKeyResponse HandleOfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType); - void HandleSettingsChangeL(); - void SetSortModeL(TInt aSortMode); - void SetOrderModeL(TInt aOrderMode); - void RefreshViewL(); - TBool IsCurrentDriveReadOnly(); - TBool IsCurrentItemDirectory(); - void MoveUpOneLevelL(); - void MoveDownToDirectoryL(); - void ClipboardCutL(); - void ClipboardCopyL(); - void ClipboardPasteL(); - void CopyToFolderL(TBool aMove=EFalse); - void DeleteL(); - void TouchL(); - void RenameL(); - void SetAttributesL(); - void SearchL(); - void NewFileL(); - void NewDirectoryL(); - void SendToL(); - void CompressL(); - void DecompressL(); - void PropertiesL(); - void OpenWithApparcL(); - void OpenWithDocHandlerL(TBool aEmbed); - void OpenWithFileServiceL(); - TBool FileExists(const TDesC& aPath); - TInt LaunchProgramL(const TDesC& aPath); - void MemoryInfoPopupL(); - void ShowFileCheckSumsL(TInt aType); - void SetErrRdL(TBool aEnable); - void EnableAvkonIconCacheL(TBool aEnable); - void SimulateLeaveL(); - void SimulatePanicL(); - void SimulateExceptionL(); - void SetDebugMaskL(); - void WriteAllAppsL(); - void WriteAllFilesL(); - void ListOpenFilesL(); - void ListMessageAttachmentsL(TInt aType); - void WriteMsgStoreWalkL(); - void FileEditorL(TInt aType); - void SetDrivePasswordL(); - void UnlockDriveL(); - void ClearDrivePasswordL(); - void EraseDrivePasswordL(); - void FormatDriveL(TBool aQuickFormat); - void CheckDiskL(); - void ScanDriveL(); - void SetDriveNameL(); - void SetDriveVolumeLabelL(); - void EjectDriveL(); - void DismountFileSystemL(); - void EraseMBRL(); - void PartitionDriveL(); - TBool DriveSnapShotPossible(); - void DriveSnapShotL(); - void EditDataTypesL(); - void SecureBackupL(TInt aType); - -public: - inline TInt SortMode() { return iSortMode; } - inline TInt OrderMode() { return iOrderMode; } - inline CFileEntryList* ClipBoardList() { return iClipBoardList; } - inline TBool IsDriveListViewActive() { return iCurrentPath==KNullDesC && iListingMode==ENormalEntries; } - inline TBool IsNormalModeActive() { return iListingMode==ENormalEntries; } - -private: - TState iState; - CFileBrowserModel* iModel; - CFileBrowserFileOps* iFileOps; - CAknWaitDialog* iWaitDialog; - CAknProgressDialog* iProgressDialog; - CEikProgressInfo* iProgressInfo; - CCommandArray* iCommandArray; - TInt iCurrentEntry; - TInt iSucceededOperations; - TInt iFailedOperations; - TInt iLastError; - RTimer iTimer; - RFs iFs; - TListingMode iListingMode; - CFileMan* iFileMan; - TInt iViewMode; - TFileName iCurrentPath; - TInt iSortMode; - TInt iOrderMode; - TInt iClipboardMode; - CDesCArray* iClipboardPaths; - CDriveEntryList* iDriveEntryList; - CFileEntryList* iFileEntryList; - CFileEntryList* iFindFileEntryList; - CAppIconList* iAppIconList; - TClipBoardMode iClipBoardMode; - CFileEntryList* iClipBoardList; - TSearchAttributes iSearchAttributes; - CDocumentHandler* iDocHandler; - CAknOpenFileService* iOpenFileService; - RFile iMsgStoreWalkFile; - TInt iPrevFolderIndex; - TFileName iPrevFolderName; - RTz iTz; - }; - - -// utility class for waiting for asychronous requests -class CAsyncWaiter : public CActive - { -public: - static CAsyncWaiter* NewL( TInt aPriority = EPriorityStandard ); - static CAsyncWaiter* NewLC( TInt aPriority = EPriorityStandard ); - ~CAsyncWaiter(); - - void StartAndWait(); - TInt Result() const; - -private: - CAsyncWaiter( TInt aPriority ); - - // from CActive - void RunL(); - void DoCancel(); - -private: - CActiveSchedulerWait iWait; - TInt iError; - }; - - -#endif - -// End of File -