utilityapps/filebrowser/engine/FBFileUtils.h
author hgs
Mon, 18 Oct 2010 16:32:38 +0300
changeset 56 392f7045e621
parent 55 2d9cac8919d3
permissions -rw-r--r--
201041_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef FILEBROWSER_FILEUTILS_H
hgs
parents:
diff changeset
    19
#define FILEBROWSER_FILEUTILS_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// INCLUDES
hgs
parents:
diff changeset
    22
#include <e32base.h>
hgs
parents:
diff changeset
    23
#include <f32file.h>
hgs
parents:
diff changeset
    24
#include <w32std.h>
hgs
parents:
diff changeset
    25
#include <badesca.h>
hgs
parents:
diff changeset
    26
#include <coedef.h>
hgs
parents:
diff changeset
    27
#include <msvapi.h>
hgs
parents:
diff changeset
    28
#include <tz.h>
hgs
parents:
diff changeset
    29
#include "FB.hrh"
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
_LIT(KIRAppPath, "z:\\sys\\bin\\irapp.exe");
hgs
parents:
diff changeset
    32
_LIT(KBTAppPath, "z:\\sys\\bin\\btui.exe");
hgs
parents:
diff changeset
    33
_LIT(KUSBAppPath, "z:\\sys\\bin\\usbclasschangeui.exe");
hgs
parents:
diff changeset
    34
_LIT(KErrRdPath, "c:\\resource\\ErrRd");
hgs
parents:
diff changeset
    35
_LIT(KErrRdDir, "c:\\resource\\");
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    39
class CEngine;
hgs
parents:
diff changeset
    40
class CFileBrowserFileOps;
hgs
parents:
diff changeset
    41
class CDocumentHandler;
hgs
parents:
diff changeset
    42
class CEikProgressInfo;
hgs
parents:
diff changeset
    43
class CFBFileOpClient;
hgs
parents:
diff changeset
    44
class CEikProgressInfo;
hgs
parents:
diff changeset
    45
class CMessageDigest;
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
// CLASS DECLARATIONS
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
class TSearchAttributes
hgs
parents:
diff changeset
    50
	{
hgs
parents:
diff changeset
    51
public:
hgs
parents:
diff changeset
    52
    TFileName       iSearchDir;
hgs
parents:
diff changeset
    53
    TFileName       iWildCards;
hgs
parents:
diff changeset
    54
    TFileName       iTextInFile;
hgs
parents:
diff changeset
    55
    TUint           iMinSize;
hgs
parents:
diff changeset
    56
    TUint           iMaxSize;
hgs
parents:
diff changeset
    57
    TTime           iMinDate;
hgs
parents:
diff changeset
    58
    TTime           iMaxDate;
hgs
parents:
diff changeset
    59
    TBool           iRecurse;
hgs
parents:
diff changeset
    60
    TBool           iDefaultWildCard;
hgs
parents:
diff changeset
    61
	};
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
class TDriveEntry
hgs
parents:
diff changeset
    64
	{
hgs
parents:
diff changeset
    65
public:
hgs
parents:
diff changeset
    66
    TChar           iLetter;
hgs
parents:
diff changeset
    67
    TInt            iNumber;
hgs
parents:
diff changeset
    68
    TVolumeInfo     iVolumeInfo;
hgs
parents:
diff changeset
    69
    TBuf<64>        iMediaTypeDesc;
hgs
parents:
diff changeset
    70
    TBuf<128>       iAttributesDesc;
hgs
parents:
diff changeset
    71
    TInt            iIconId;
hgs
parents:
diff changeset
    72
	};
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
class TFileEntry
hgs
parents:
diff changeset
    75
	{
hgs
parents:
diff changeset
    76
public:
hgs
parents:
diff changeset
    77
    TFileName       iFullName;	
hgs
parents:
diff changeset
    78
    TFileName       iPath;
hgs
parents:
diff changeset
    79
    TEntry          iEntry;
hgs
parents:
diff changeset
    80
    TInt            iDirEntries;
hgs
parents:
diff changeset
    81
    TInt            iIconId;
hgs
parents:
diff changeset
    82
	};
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
class TAppIcon
hgs
parents:
diff changeset
    85
	{
hgs
parents:
diff changeset
    86
public:
hgs
parents:
diff changeset
    87
    TInt            iId;
hgs
parents:
diff changeset
    88
    TUid            iUid;
hgs
parents:
diff changeset
    89
	};
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
typedef CArrayFixSeg<TDriveEntry> CDriveEntryList;
hgs
parents:
diff changeset
    92
typedef CArrayFixSeg<TFileEntry> CFileEntryList;
hgs
parents:
diff changeset
    93
typedef CArrayFixSeg<TAppIcon> CAppIconList;
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
class TSearchResults
hgs
parents:
diff changeset
    96
    {
hgs
parents:
diff changeset
    97
public:
hgs
parents:
diff changeset
    98
    TInt iNumberOfFoundFiles;
hgs
parents:
diff changeset
    99
    //CFileEntryList iFoundFilesList;
hgs
parents:
diff changeset
   100
    };
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
class TOverwriteOptions
hgs
parents:
diff changeset
   103
    {
hgs
parents:
diff changeset
   104
public:
hgs
parents:
diff changeset
   105
    TBool iDoFileOperations/*(ETrue)*/;
hgs
parents:
diff changeset
   106
    TInt iQueryIndex/*(0)*/;
hgs
parents:
diff changeset
   107
    TFileName iPostFix;
hgs
parents:
diff changeset
   108
    TInt iOverWriteFlags/* = CFileMan::EOverWrite*/;
hgs
parents:
diff changeset
   109
    };
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
class CCommandParamsBase : public CBase
hgs
parents:
diff changeset
   112
    {
hgs
parents:
diff changeset
   113
    };
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
class CCommandParamsAttribs : public CCommandParamsBase
hgs
parents:
diff changeset
   116
    {
hgs
parents:
diff changeset
   117
public:
hgs
parents:
diff changeset
   118
    TFileEntry iSourceEntry;
hgs
parents:
diff changeset
   119
    TUint iSetMask;
hgs
parents:
diff changeset
   120
    TUint iClearMask;
hgs
parents:
diff changeset
   121
    TTime iTime;
hgs
parents:
diff changeset
   122
    TUint iSwitch;
hgs
parents:
diff changeset
   123
public:
hgs
parents:
diff changeset
   124
    CCommandParamsAttribs(const TFileEntry& aSourceEntry, TUint aSetMask, TUint aClearMask, const TTime& aTime, TUint aSwitch) : iSourceEntry(aSourceEntry), iSetMask(aSetMask), iClearMask(aClearMask), iTime(aTime), iSwitch(aSwitch) {}
hgs
parents:
diff changeset
   125
    };
hgs
parents:
diff changeset
   126
    
hgs
parents:
diff changeset
   127
class CCommandParamsCopyOrMove : public CCommandParamsBase
hgs
parents:
diff changeset
   128
    {
hgs
parents:
diff changeset
   129
public:
hgs
parents:
diff changeset
   130
    TFileEntry iSourceEntry;
hgs
parents:
diff changeset
   131
    TFileName iTargetPath;
hgs
parents:
diff changeset
   132
    TUint iSwitch;
hgs
parents:
diff changeset
   133
public:
hgs
parents:
diff changeset
   134
    CCommandParamsCopyOrMove(const TFileEntry& aSourceEntry, const TDesC& aTargetPath, TUint aSwitch) : iSourceEntry(aSourceEntry), iTargetPath(aTargetPath), iSwitch(aSwitch) {}
hgs
parents:
diff changeset
   135
    };
hgs
parents:
diff changeset
   136
        
hgs
parents:
diff changeset
   137
class CCommandParamsRename : public CCommandParamsBase
hgs
parents:
diff changeset
   138
    {
hgs
parents:
diff changeset
   139
public:
hgs
parents:
diff changeset
   140
    TFileEntry iSourceEntry;
hgs
parents:
diff changeset
   141
    TFileName iTargetPath;
hgs
parents:
diff changeset
   142
    TUint iSwitch;
hgs
parents:
diff changeset
   143
public:
hgs
parents:
diff changeset
   144
    CCommandParamsRename(const TFileEntry& aSourceEntry, const TDesC& aTargetPath, TUint aSwitch) : iSourceEntry(aSourceEntry), iTargetPath(aTargetPath), iSwitch(aSwitch) {}
hgs
parents:
diff changeset
   145
    };
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
class CCommandParamsDelete : public CCommandParamsBase
hgs
parents:
diff changeset
   148
    {
hgs
parents:
diff changeset
   149
public:
hgs
parents:
diff changeset
   150
    TFileEntry iSourceEntry;
hgs
parents:
diff changeset
   151
    TUint iSwitch;
hgs
parents:
diff changeset
   152
public:
hgs
parents:
diff changeset
   153
    CCommandParamsDelete(const TFileEntry& aSourceEntry, TUint aSwitch) : iSourceEntry(aSourceEntry), iSwitch(aSwitch) {}
hgs
parents:
diff changeset
   154
    };
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
class CCommandParamsDriveSnapShot : public CCommandParamsBase
hgs
parents:
diff changeset
   157
    {
hgs
parents:
diff changeset
   158
public:
hgs
parents:
diff changeset
   159
    TInt iSourceDriveLetter;
hgs
parents:
diff changeset
   160
    TInt iTargetDriveLetter;
hgs
parents:
diff changeset
   161
public:
hgs
parents:
diff changeset
   162
    CCommandParamsDriveSnapShot(TChar aSourceDriveLetter, TChar aTargetDriveLetter) : iSourceDriveLetter(aSourceDriveLetter), iTargetDriveLetter(aTargetDriveLetter) {}
hgs
parents:
diff changeset
   163
    };
hgs
parents:
diff changeset
   164
    
hgs
parents:
diff changeset
   165
class TCommand
hgs
parents:
diff changeset
   166
    {
hgs
parents:
diff changeset
   167
public:
hgs
parents:
diff changeset
   168
    TInt iCommandId;
hgs
parents:
diff changeset
   169
    CCommandParamsBase* iParameters;
hgs
parents:
diff changeset
   170
public:
hgs
parents:
diff changeset
   171
    TCommand(TInt aCommandId, CCommandParamsBase* aParameters) : iCommandId(aCommandId), iParameters(aParameters) {}
hgs
parents:
diff changeset
   172
    };
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
typedef CArrayFixSeg<TCommand> CCommandArray;
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
hgs
parents:
diff changeset
   178
class CFileBrowserFileUtils : public CActive, public MMsvSessionObserver
hgs
parents:
diff changeset
   179
	{
hgs
parents:
diff changeset
   180
private:
hgs
parents:
diff changeset
   181
    enum TState // active object states
hgs
parents:
diff changeset
   182
    	{
hgs
parents:
diff changeset
   183
    	EIdle = 0,              // do nothing
hgs
parents:
diff changeset
   184
    	};
hgs
parents:
diff changeset
   185
hgs
parents:
diff changeset
   186
//    enum TClipBoardMode
hgs
parents:
diff changeset
   187
//    	{
hgs
parents:
diff changeset
   188
//    	EClipBoardModeCut = 0,
hgs
parents:
diff changeset
   189
//    	EClipBoardModeCopy
hgs
parents:
diff changeset
   190
//    	};
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
public:
hgs
parents:
diff changeset
   193
	static CFileBrowserFileUtils* NewL(CEngine* aEngine);
hgs
parents:
diff changeset
   194
	~CFileBrowserFileUtils();
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
private:
hgs
parents:
diff changeset
   197
	CFileBrowserFileUtils(CEngine* aEngine);
hgs
parents:
diff changeset
   198
	void ConstructL();
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
private: // from CActive
hgs
parents:
diff changeset
   201
	void RunL();
hgs
parents:
diff changeset
   202
        TInt RunError(TInt aError);
hgs
parents:
diff changeset
   203
	void DoCancel();
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
private: // from MMsvSessionObserver
hgs
parents:
diff changeset
   206
    void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3);
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
public:  //from MProgressDialogCallback
hgs
parents:
diff changeset
   209
    void DialogDismissedL(/*TInt aButtonId*/);
hgs
parents:
diff changeset
   210
    
hgs
parents:
diff changeset
   211
public: // command handling
hgs
parents:
diff changeset
   212
    void StartExecutingCommandsL(const TDesC& aLabel);
hgs
parents:
diff changeset
   213
private: // command handling
hgs
parents:
diff changeset
   214
    void ExecuteCommand();
hgs
parents:
diff changeset
   215
    void CheckForMoreCommandsL();
hgs
parents:
diff changeset
   216
    void AppendToCommandArrayL(TInt aCommand, CCommandParamsBase* aParameters);
hgs
parents:
diff changeset
   217
    TInt CommandArrayCount() const;
hgs
parents:
diff changeset
   218
    void ResetCommandArray();       
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
private: // misc functionality
hgs
parents:
diff changeset
   221
    void GenerateDirectoryDataL();
hgs
parents:
diff changeset
   222
    void GetDriveListL();
hgs
parents:
diff changeset
   223
    void GetDirectoryListingL();
hgs
parents:
diff changeset
   224
//    CAknIconArray* GenerateIconArrayL(TBool aGenerateNewBasicIconArray=EFalse);
hgs
parents:
diff changeset
   225
//    void AppendGulIconToIconArrayL(CAknIconArray* aIconArray, const TDesC& aIconFile, TInt aIconId, TInt aMaskId, const TAknsItemID aAknsItemId);
hgs
parents:
diff changeset
   226
    TInt AppIconIdForUid(TUid aUid);
hgs
parents:
diff changeset
   227
    TUid GetAppUid(const TFileEntry &aFileEntry);
hgs
parents:
diff changeset
   228
//    CDesCArray* GenerateItemTextArrayL();
hgs
parents:
diff changeset
   229
//    TInt GetSelectedItemsOrCurrentItemL(CFileEntryList* aFileEntryList);
hgs
parents:
diff changeset
   230
    TInt SetSelectedItemsOrCurrentItemL(const CArrayFix<TInt>* selectionIndexes,
hgs
parents:
diff changeset
   231
                                        CFileEntryList* aFileEntryList);
hgs
parents:
diff changeset
   232
hgs
parents:
diff changeset
   233
//    TBool IsDestinationEntriesExists(const CFileEntryList* aEntryList, const TDesC& aTargetDir);
hgs
parents:
diff changeset
   234
    void DoCopyToFolderL(CFileEntryList* aEntryList, const TDesC& aTargetDir, const TOverwriteOptions &aOverwriteOptions, TBool aDeleteSource);
hgs
parents:
diff changeset
   235
    TInt DoSearchFiles(const TDesC& aFileName, const TDesC& aPath);
hgs
parents:
diff changeset
   236
    TInt DoSearchFilesRecursiveL(const TDesC& aFileName, const TDesC& aPath);
hgs
parents:
diff changeset
   237
    TInt DoFindFiles(const TDesC& aFileName, const TDesC& aPath);
hgs
parents:
diff changeset
   238
    TInt DoFindFilesRecursiveL(const TDesC& aFileName, const TDesC& aPath);
hgs
parents:
diff changeset
   239
    void ReadAttachmentPathsRecursiveL(CMsvSession* aSession, CMsvEntry* aContext, CDesCArray* aAttPaths);
hgs
parents:
diff changeset
   240
    void WriteMessageEntryInfoRecursiveL(CMsvSession* aSession, CMsvEntry* aContext, RFile& aFile, TInt& aLevel);
hgs
parents:
diff changeset
   241
    void DoWriteMessageEntryInfoL(CMsvEntry* aContext, RFile& aFile, TInt aLevel);
hgs
parents:
diff changeset
   242
    void ConvertCharsToPwd(const TDesC& aWord, TDes8& aConverted) const;
hgs
parents:
diff changeset
   243
    HBufC8* MessageDigestInHexLC(CMessageDigest* aMD, RFile& aFile);
hgs
parents:
diff changeset
   244
    void OpenCommonFileActionQueryL(TInt aCurrentItemIndex);
hgs
parents:
diff changeset
   245
    
hgs
parents:
diff changeset
   246
public: // public interfaces
hgs
parents:
diff changeset
   247
    TKeyResponse HandleOfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
hgs
parents:
diff changeset
   248
    void HandleSettingsChangeL();
hgs
parents:
diff changeset
   249
    void SetSortModeL(TInt aSortMode);
hgs
parents:
diff changeset
   250
    void SetOrderModeL(TInt aOrderMode);
hgs
parents:
diff changeset
   251
    void RefreshViewL();
hgs
parents:
diff changeset
   252
    TBool IsCurrentDriveReadOnly();
hgs
parents:
diff changeset
   253
    TBool IsItemDirectory(TInt aCurrentItemIndex);
hgs
parents:
diff changeset
   254
    void MoveUpOneLevelL();
hgs
parents:
diff changeset
   255
    void MoveDownToDirectoryL(TInt aIndex);
hgs
parents:
diff changeset
   256
    TInt ClipboardCutL(const CArrayFix<TInt>* aSelectionIndices);
hgs
parents:
diff changeset
   257
    TInt ClipboardCopyL(const CArrayFix<TInt>* aSelectionIndices);
hgs
parents:
diff changeset
   258
    void ClipboardPasteL(const TOverwriteOptions &aOverwriteOptions);
hgs
parents:
diff changeset
   259
    TInt SetCurrentSelection(const CArrayFix<TInt>* aSelectionIndices);
hgs
parents:
diff changeset
   260
    void CopyToFolderL(const TFileName &, const TOverwriteOptions &, TBool aMove=EFalse);
hgs
parents:
diff changeset
   261
    void DeleteL();
hgs
parents:
diff changeset
   262
    TBool SelectionHasDirs();
hgs
parents:
diff changeset
   263
    void TouchL(TBool aRecurse);
hgs
parents:
diff changeset
   264
    void RenameL(const TInt aIndex, const TFileName &newName);
hgs
parents:
diff changeset
   265
    void SetAttributesL(TUint &aSetAttMask, TUint &aClearAttMask, TBool &aRecurse);
hgs
parents:
diff changeset
   266
    void SearchL();
hgs
parents:
diff changeset
   267
    void NewFileL(const TFileName &aNewFileName);
hgs
parents:
diff changeset
   268
    void NewDirectoryL(const TFileName &aNewDirectoryName);
hgs
parents:
diff changeset
   269
    void SendToL();
hgs
parents:
diff changeset
   270
    void CompressL();
hgs
parents:
diff changeset
   271
    void DecompressL();
hgs
parents:
diff changeset
   272
    TInt GetFilesCount(const TFileName &aDriveRoot);
hgs
parents:
diff changeset
   273
    TInt GetFilesCountAndSize(const TFileName &aFullPath, TInt64 &aSize);
hgs
parents:
diff changeset
   274
    TInt GetEntriesCount(const TFileName &aFullPath);
hgs
parents:
diff changeset
   275
    TFileName GetMimeType(const TFileName &aFullPath);
hgs
parents:
diff changeset
   276
    TFileName GetOpenWith(const TFileName &aFullPath);
hgs
parents:
diff changeset
   277
    void OpenWithApparcL(const TFileName &);
hgs
parents:
diff changeset
   278
    void OpenWithDocHandlerL(const TFileName &, TBool);
hgs
parents:
diff changeset
   279
    void OpenWithFileServiceL(TInt aCurrentItemIndex);
hgs
parents:
diff changeset
   280
    TBool FileExists(const TDesC& aPath);
hgs
parents:
diff changeset
   281
    TInt LaunchProgramL(const TDesC& aPath);
hgs
parents:
diff changeset
   282
    void MemoryInfoPopupL();
hgs
parents:
diff changeset
   283
    void ShowFileCheckSumsL(TInt aCurrentItemIndex, TInt aType);
hgs
parents:
diff changeset
   284
    void SetErrRdL(TBool aEnable);
hgs
parents:
diff changeset
   285
//    void EnableAvkonIconCacheL(TBool aEnable);
hgs
parents:
diff changeset
   286
    void SimulateLeaveL(TInt aLeaveCode);
hgs
parents:
diff changeset
   287
    void SimulatePanicL(const TDesC& aPanicCategory, TInt aPanicCode);
hgs
parents:
diff changeset
   288
    void SimulateExceptionL(TInt aExceptionCode);
hgs
parents:
diff changeset
   289
    TUint32 GetDebugMask();
hgs
parents:
diff changeset
   290
    void SetDebugMaskL(TUint32 aDbgMask);
hgs
parents:
diff changeset
   291
    void WriteAllAppsL();
hgs
parents:
diff changeset
   292
    void WriteAllFilesL();
hgs
parents:
diff changeset
   293
    void ListOpenFilesL();
hgs
parents:
diff changeset
   294
    void ListMessageAttachmentsL(TInt aType);
hgs
parents:
diff changeset
   295
    void WriteMsgStoreWalkL();
hgs
parents:
diff changeset
   296
    void FileEditorL(TInt aCurrentItemIndex, TInt aType);
hgs
parents:
diff changeset
   297
    void SetDrivePasswordL(TInt aIndex, const TFileName &aOldPassword, const TFileName &aNewPassword);
hgs
parents:
diff changeset
   298
    void UnlockDriveL(TInt aIndex, const TFileName &aOldPassword);
hgs
parents:
diff changeset
   299
    void ClearDrivePasswordL(TInt aIndex, const TFileName &aOldPassword);
hgs
parents:
diff changeset
   300
    void EraseDrivePasswordL(TInt aIndex);
hgs
parents:
diff changeset
   301
    void FormatDriveL(TInt aIndex, TBool aQuickFormat);
hgs
parents:
diff changeset
   302
    void CheckDiskL(TInt aIndex);
hgs
parents:
diff changeset
   303
    void ScanDriveL(TInt aIndex);
hgs
parents:
diff changeset
   304
    void SetDriveNameL(TInt aIndex, const TFileName &aDriveName);
hgs
parents:
diff changeset
   305
    void SetDriveVolumeLabelL(TInt aIndex, const TFileName &aVolumeLabel);
hgs
parents:
diff changeset
   306
    void EjectDriveL(TInt aIndex);
hgs
parents:
diff changeset
   307
    void DismountFileSystemL(TInt aIndex);
hgs
parents:
diff changeset
   308
    void EraseMBRL(TInt aIndex);
hgs
parents:
diff changeset
   309
    void PartitionDriveL(TInt aIndex, TBool aEraseMBR, TInt aAmountOfPartitions);
hgs
parents:
diff changeset
   310
    TBool DriveSnapShotPossible();
hgs
parents:
diff changeset
   311
    void DriveSnapShotL();
hgs
parents:
diff changeset
   312
    void EditDataTypesL();
hgs
parents:
diff changeset
   313
    void SecureBackupL(TInt aType);
hgs
parents:
diff changeset
   314
hgs
parents:
diff changeset
   315
    TBool IsDestinationEntriesExists(const TDesC& aTargetDir);
hgs
parents:
diff changeset
   316
    TBool TargetExists(const TInt aIndex, const TFileName &newName);
hgs
parents:
diff changeset
   317
    void GetDriveName(TInt aIndex, TFileName &aDriveName);
hgs
parents:
diff changeset
   318
    void GetDriveVolumeLabel(TInt aIndex, TFileName &aVolumeLabel);
hgs
parents:
diff changeset
   319
hgs
parents:
diff changeset
   320
    CFileEntryList* FileEntries() const;
hgs
parents:
diff changeset
   321
    CDriveEntryList* DriveEntries() const;
hgs
parents:
diff changeset
   322
hgs
parents:
diff changeset
   323
    TFileName ResolveErrorMessage(TInt aErrCode);
hgs
parents:
diff changeset
   324
    
hgs
parents:
diff changeset
   325
public:    
hgs
parents:
diff changeset
   326
    inline TInt SortMode() { return iSortMode; }
hgs
parents:
diff changeset
   327
    inline TInt OrderMode() { return iOrderMode; }
hgs
parents:
diff changeset
   328
    inline CFileEntryList* ClipBoardList() { return iClipBoardList; }
hgs
parents:
diff changeset
   329
    inline CFileEntryList* CurrentSelectionList() { return iCurrentSelectionList; }
hgs
parents:
diff changeset
   330
    inline TBool IsDriveListViewActive() { return iCurrentPath==KNullDesC && iListingMode==ENormalEntries; }
hgs
parents:
diff changeset
   331
    inline TBool IsNormalModeActive() { return iListingMode==ENormalEntries; }
hgs
parents:
diff changeset
   332
    inline TListingMode ListingMode() { return iListingMode; }
hgs
parents:
diff changeset
   333
    inline TFileName CurrentPath() { return iCurrentPath; }
hgs
parents:
diff changeset
   334
	
hgs
parents:
diff changeset
   335
    inline TSearchAttributes GetSearchAttributes(){ return iSearchAttributes; };
hgs
parents:
diff changeset
   336
    inline void ChangeAttributes(const TSearchAttributes &attributes) { iSearchAttributes = attributes; };
hgs
parents:
diff changeset
   337
    inline TSearchResults SearchResults(){ return iFileSearchResults; };
hgs
parents:
diff changeset
   338
    inline CFileEntryList* FoundFiles() { return iFileEntryList; };    
hgs
parents:
diff changeset
   339
    inline void SetAllowProcessing(TBool aAllowProcessing) { iAllowProcessing = aAllowProcessing; }
hgs
parents:
diff changeset
   340
    TClipBoardMode GetClipBoardMode() { return iClipBoardMode; }
hgs
parents:
diff changeset
   341
	
hgs
parents:
diff changeset
   342
private:
hgs
parents:
diff changeset
   343
    TState                          iState;
hgs
parents:
diff changeset
   344
    CEngine*                        iEngine;
hgs
parents:
diff changeset
   345
    CFileBrowserFileOps*            iFileOps;
hgs
parents:
diff changeset
   346
hgs
parents:
diff changeset
   347
    TBool                           isWaitDialog;
hgs
parents:
diff changeset
   348
    TBool                           isProgressDialog;
hgs
parents:
diff changeset
   349
hgs
parents:
diff changeset
   350
    //CEikProgressInfo*               iProgressInfo;
hgs
parents:
diff changeset
   351
    CCommandArray*                  iCommandArray;
hgs
parents:
diff changeset
   352
    TInt                            iCurrentEntry;
hgs
parents:
diff changeset
   353
    TInt                            iSucceededOperations;
hgs
parents:
diff changeset
   354
    TInt                            iFailedOperations;
hgs
parents:
diff changeset
   355
    TInt                            iLastError;
hgs
parents:
diff changeset
   356
    RTimer                          iTimer;
hgs
parents:
diff changeset
   357
    RFs                             iFs;
hgs
parents:
diff changeset
   358
    TListingMode                    iListingMode;
hgs
parents:
diff changeset
   359
    CFileMan*                       iFileMan;
hgs
parents:
diff changeset
   360
    TInt                            iViewMode;
hgs
parents:
diff changeset
   361
    TFileName                       iCurrentPath;
hgs
parents:
diff changeset
   362
    TInt                            iSortMode;
hgs
parents:
diff changeset
   363
    TInt                            iOrderMode;
hgs
parents:
diff changeset
   364
//    TInt                            iClipboardMode;
hgs
parents:
diff changeset
   365
    CDesCArray*                     iClipboardPaths;
hgs
parents:
diff changeset
   366
    CDriveEntryList*                iDriveEntryList;
hgs
parents:
diff changeset
   367
    CFileEntryList*                 iFileEntryList;
hgs
parents:
diff changeset
   368
    CFileEntryList*                 iFindFileEntryList;
hgs
parents:
diff changeset
   369
    CAppIconList*                   iAppIconList;
hgs
parents:
diff changeset
   370
    TClipBoardMode                  iClipBoardMode;
hgs
parents:
diff changeset
   371
    CFileEntryList*                 iClipBoardList;
hgs
parents:
diff changeset
   372
    CFileEntryList*                 iCurrentSelectionList;
hgs
parents:
diff changeset
   373
    TSearchAttributes               iSearchAttributes;
hgs
parents:
diff changeset
   374
    CDocumentHandler*               iDocHandler;
hgs
parents:
diff changeset
   375
hgs
parents:
diff changeset
   376
    RFile                           iMsgStoreWalkFile;
hgs
parents:
diff changeset
   377
    TInt                            iPrevFolderIndex;
hgs
parents:
diff changeset
   378
    TFileName                       iPrevFolderName;
hgs
parents:
diff changeset
   379
    RTz                             iTz;
hgs
parents:
diff changeset
   380
    TSearchResults                  iFileSearchResults;
hgs
parents:
diff changeset
   381
    CDesCArray*                     iTextArray;
hgs
parents:
diff changeset
   382
    TBool                           iAllowProcessing;
hgs
parents:
diff changeset
   383
    };
hgs
parents:
diff changeset
   384
hgs
parents:
diff changeset
   385
hgs
parents:
diff changeset
   386
// utility class for waiting for asychronous requests
hgs
parents:
diff changeset
   387
class CAsyncWaiter : public CActive
hgs
parents:
diff changeset
   388
	{
hgs
parents:
diff changeset
   389
public:
hgs
parents:
diff changeset
   390
	static CAsyncWaiter* NewL( TInt aPriority = EPriorityStandard );
hgs
parents:
diff changeset
   391
	static CAsyncWaiter* NewLC( TInt aPriority = EPriorityStandard );
hgs
parents:
diff changeset
   392
	~CAsyncWaiter();
hgs
parents:
diff changeset
   393
	
hgs
parents:
diff changeset
   394
	void StartAndWait();
hgs
parents:
diff changeset
   395
	TInt Result() const;
hgs
parents:
diff changeset
   396
	
hgs
parents:
diff changeset
   397
private:
hgs
parents:
diff changeset
   398
	CAsyncWaiter( TInt aPriority );
hgs
parents:
diff changeset
   399
	
hgs
parents:
diff changeset
   400
	// from CActive
hgs
parents:
diff changeset
   401
	void RunL();
hgs
parents:
diff changeset
   402
	void DoCancel();
hgs
parents:
diff changeset
   403
	
hgs
parents:
diff changeset
   404
private:
hgs
parents:
diff changeset
   405
    CActiveSchedulerWait iWait;
hgs
parents:
diff changeset
   406
	TInt iError;
hgs
parents:
diff changeset
   407
	};
hgs
parents:
diff changeset
   408
	
hgs
parents:
diff changeset
   409
	
hgs
parents:
diff changeset
   410
#endif
hgs
parents:
diff changeset
   411
hgs
parents:
diff changeset
   412
// End of File
hgs
parents:
diff changeset
   413