| 39 |      1 | /*
 | 
|  |      2 | * Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
 | 
|  |      3 | * All rights reserved.
 | 
|  |      4 | * This component and the accompanying materials are made available
 | 
|  |      5 | * under the terms of "Eclipse Public License v1.0""
 | 
|  |      6 | * which accompanies this distribution, and is available
 | 
|  |      7 | * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 | 
|  |      8 | *
 | 
|  |      9 | * Initial Contributors:
 | 
|  |     10 | * Nokia Corporation - initial contribution.
 | 
|  |     11 | *
 | 
|  |     12 | * Contributors:
 | 
|  |     13 | *
 | 
|  |     14 | * Description:  Base class for all file manager views
 | 
|  |     15 | *
 | 
|  |     16 | */
 | 
|  |     17 | 
 | 
|  |     18 | 
 | 
|  |     19 | 
 | 
|  |     20 | #ifndef CFILEMANAGERVIEWBASE_H
 | 
|  |     21 | #define CFILEMANAGERVIEWBASE_H
 | 
|  |     22 | 
 | 
|  |     23 | 
 | 
|  |     24 | //  INCLUDES
 | 
|  |     25 | #include <aknview.h>
 | 
|  |     26 | #include <AknServerApp.h>
 | 
|  |     27 | #include <AknWaitDialog.h> 
 | 
|  |     28 | #include <apparc.h>
 | 
|  |     29 | #include <MFileManagerProcessObserver.h>
 | 
|  |     30 | #include <TFileManagerDriveInfo.h>
 | 
|  |     31 | 
 | 
|  |     32 | 
 | 
|  |     33 | // FORWARD DECLARATIONS
 | 
|  |     34 | class CFileManagerContainerBase;
 | 
|  |     35 | class CFileManagerEngine;
 | 
|  |     36 | class CFileManagerActiveExecute;
 | 
|  |     37 | class CEikMenuBar;
 | 
|  |     38 | class CFileManagerActiveDelete;
 | 
|  |     39 | class CFileManagerItemProperties;
 | 
|  |     40 | class CAknQueryDialog;
 | 
|  |     41 | class CAknWaitNoteWrapper;
 | 
|  |     42 | class CFileManagerFeatureManager;
 | 
|  |     43 | class MAknServerAppExitObserver;
 | 
|  |     44 | 
 | 
|  |     45 | 
 | 
|  |     46 | // Defines maximum media password length in Unicode
 | 
|  |     47 | const TUint KFmgrMaxMediaPassword = KMaxMediaPassword / 2; // Because of Unicode
 | 
|  |     48 | // CLASS DECLARATION
 | 
|  |     49 | /**
 | 
|  |     50 |  * Base class for all views in File Manager applicaiton
 | 
|  |     51 |  */
 | 
|  |     52 | class CFileManagerViewBase : public CAknView,
 | 
|  |     53 |                              public MProgressDialogCallback,
 | 
|  |     54 |                              public MFileManagerProcessObserver,
 | 
|  |     55 |                              public MAknServerAppExitObserver
 | 
|  |     56 |     {
 | 
|  |     57 |     protected:
 | 
|  |     58 |         /**
 | 
|  |     59 |          * Return value enumeration for CmdOpenL to indicate what
 | 
|  |     60 |          * kind of item was opened or if there was an error during
 | 
|  |     61 |          * opening.
 | 
|  |     62 |          */
 | 
|  |     63 |         enum TFileManagerOpenResult 
 | 
|  |     64 |             { 
 | 
|  |     65 |             EFolderOpened, 
 | 
|  |     66 |             EFileOpened, 
 | 
|  |     67 |             EOpenError 
 | 
|  |     68 |             };
 | 
|  |     69 |     public:  // Constructors and destructor
 | 
|  |     70 |         /**
 | 
|  |     71 |          * Two-phased constructor.
 | 
|  |     72 |          */
 | 
|  |     73 |         static CFileManagerViewBase* NewLC();
 | 
|  |     74 |         
 | 
|  |     75 |         /**
 | 
|  |     76 |          * Timer calls this in order to update the progress bar.
 | 
|  |     77 |          * @param aPtr pointer to object where is function to be call
 | 
|  |     78 |          * when timer expires.
 | 
|  |     79 |          * @return positive number if timer needs to be activated again
 | 
|  |     80 |          *         0 if timer is not needed any more.
 | 
|  |     81 |          */
 | 
|  |     82 |         static TInt UpdateProgressBar( TAny* aPtr );
 | 
|  |     83 | 
 | 
|  |     84 |         /**
 | 
|  |     85 |          * Timer calls this in order to start refresh progress dialog.
 | 
|  |     86 |          * @param aPtr pointer to object where is function to be call
 | 
|  |     87 |          * when timer expires.
 | 
|  |     88 |          * @return positive number if timer needs to be activated again
 | 
|  |     89 |          *         0 if timer is not needed any more.
 | 
|  |     90 |          */
 | 
|  |     91 |         static TInt RefreshProgressDelayedStart( TAny* aPtr );
 | 
|  |     92 | 
 | 
|  |     93 |         /** 
 | 
|  |     94 |         * Stores current index 
 | 
|  |     95 |         * @return ETrue if storing successfull
 | 
|  |     96 |         *         EFalse if storing not succesfull
 | 
|  |     97 |         */
 | 
|  |     98 |         TBool StoreIndex();
 | 
|  |     99 | 
 | 
|  |    100 |         /**
 | 
|  |    101 |          * Nulls everything which is related to progress bar
 | 
|  |    102 |          */
 | 
|  |    103 |         void ClearProgressBarL();
 | 
|  |    104 | 
 | 
|  |    105 |         /**
 | 
|  |    106 |          * @return Current process in app
 | 
|  |    107 |          */
 | 
|  |    108 |         MFileManagerProcessObserver::TFileManagerProcess CurrentProcess();
 | 
|  |    109 |         
 | 
|  |    110 |         /**
 | 
|  |    111 |          * Destructor.
 | 
|  |    112 |          */
 | 
|  |    113 |         virtual ~CFileManagerViewBase();
 | 
|  |    114 | 
 | 
|  |    115 |     public: // From MProgressDialogCallback
 | 
|  |    116 |         void DialogDismissedL( TInt aButtonId );
 | 
|  |    117 | 
 | 
|  |    118 |     public://MAknServerAppExitObserver
 | 
|  |    119 |         /**
 | 
|  |    120 |          * @see MAknServerAppExitObserver
 | 
|  |    121 |          */
 | 
|  |    122 |         void HandleServerAppExit( TInt aReason );
 | 
|  |    123 |         
 | 
|  |    124 |     public: // From MFileManagerProcessObserver
 | 
|  |    125 |         /**
 | 
|  |    126 |          * @see MFileManagerProcessObserver
 | 
|  |    127 |          */
 | 
|  |    128 |         void ProcessFinishedL( TInt aError, const TDesC& aName );
 | 
|  |    129 | 
 | 
|  |    130 |         /**
 | 
|  |    131 |          * @see MFileManagerProcessObserver
 | 
|  |    132 |          */
 | 
|  |    133 |         void ProcessAdvanceL( TInt aValue );
 | 
|  |    134 | 
 | 
|  |    135 |         /**
 | 
|  |    136 |          * @see MFileManagerProcessObserver
 | 
|  |    137 |          */
 | 
|  |    138 |         void ProcessStartedL(
 | 
|  |    139 |             MFileManagerProcessObserver::TFileManagerProcess aProcess,
 | 
|  |    140 |             TInt aFinalValue );
 | 
|  |    141 | 
 | 
|  |    142 |         /**
 | 
|  |    143 |          * @see MFileManagerProcessObserver
 | 
|  |    144 |          */
 | 
|  |    145 |         TBool ProcessQueryOverWriteL( 
 | 
|  |    146 |             const TDesC& aOldName, 
 | 
|  |    147 |             TDes& aNewName, 
 | 
|  |    148 |             TFileManagerProcess aProcess );
 | 
|  |    149 | 
 | 
|  |    150 |         /**
 | 
|  |    151 |          * @see MFileManagerProcessObserver
 | 
|  |    152 |          */
 | 
|  |    153 |         TBool ProcessQueryRenameL( 
 | 
|  |    154 |             const TDesC& aOldName, 
 | 
|  |    155 |             TDes& aNewName, 
 | 
|  |    156 |             TFileManagerProcess aProcess );
 | 
|  |    157 | 
 | 
|  |    158 |         /**
 | 
|  |    159 |          * @see MFileManagerProcessObserver
 | 
|  |    160 |          */
 | 
|  |    161 |         void RefreshStartedL();
 | 
|  |    162 | 
 | 
|  |    163 |         /**
 | 
|  |    164 |          * @see MFileManagerProcessObserver
 | 
|  |    165 |          */
 | 
|  |    166 |         void RefreshStoppedL();
 | 
|  |    167 | 
 | 
|  |    168 |         /**
 | 
|  |    169 |          * @see MFileManagerProcessObserver
 | 
|  |    170 |          */
 | 
|  |    171 |         void ShowWaitDialogL( MAknBackgroundProcess& aProcess);
 | 
|  |    172 | 
 | 
|  |    173 |         /**
 | 
|  |    174 |          * @see MFileManagerProcessObserver
 | 
|  |    175 |          */
 | 
|  |    176 |         void Error( TInt aError );
 | 
|  |    177 | 
 | 
|  |    178 |         /**
 | 
|  |    179 |          * @see MFileManagerProcessObserver
 | 
|  |    180 |          */
 | 
|  |    181 |         TInt NotifyL( TFileManagerNotify aType, TInt aData, const TDesC& aName );
 | 
|  |    182 | 
 | 
|  |    183 |     public:
 | 
|  |    184 | 
 | 
|  |    185 |         /* 
 | 
|  |    186 |         * When view needs refresh, this is called.
 | 
|  |    187 |         */
 | 
|  |    188 |         virtual void DirectoryChangedL() = 0;
 | 
|  |    189 | 
 | 
|  |    190 |         /*
 | 
|  |    191 |         * Checks if refresh is in progress
 | 
|  |    192 |         */
 | 
|  |    193 |         TBool IsRefreshInProgress();
 | 
|  |    194 | 
 | 
|  |    195 |         /**
 | 
|  |    196 |          * Handles errors caused by file or folder deletion outside 
 | 
|  |    197 |          * file manager while file manager is in foreground.
 | 
|  |    198 |          * @param aError Error code.
 | 
|  |    199 |          * @return ETrue if error was handled. Otherwise EFalse.
 | 
|  |    200 |          */
 | 
|  |    201 |         TBool HandleFileNotFoundL( TInt aError );
 | 
|  |    202 | 
 | 
|  |    203 |         /**
 | 
|  |    204 |         * Handles screen layout changes
 | 
|  |    205 |         */
 | 
|  |    206 |         virtual void ScreenDeviceChanged();
 | 
|  |    207 | 
 | 
|  |    208 | #ifdef RD_FILE_MANAGER_BACKUP
 | 
|  |    209 |         void StartSchBackupL();
 | 
|  |    210 | 
 | 
|  |    211 |         void SchBackupFinishedL();
 | 
|  |    212 | #endif // RD_FILE_MANAGER_BACKUP
 | 
|  |    213 | 
 | 
|  |    214 |         /**
 | 
|  |    215 |          * Updates cba
 | 
|  |    216 |          */
 | 
|  |    217 |         virtual void UpdateCbaL();
 | 
|  |    218 | 
 | 
|  |    219 |         /**
 | 
|  |    220 |          * Notifies foreground status change
 | 
|  |    221 |          */
 | 
|  |    222 |         virtual void NotifyForegroundStatusChange( TBool aForeground );
 | 
|  |    223 | 
 | 
|  |    224 |     protected: // From CAknView
 | 
|  |    225 |         /**
 | 
|  |    226 |          * @see CAknView
 | 
|  |    227 |          */
 | 
|  |    228 |         void DoActivateL(
 | 
|  |    229 |             const TVwsViewId& aPrevViewId,
 | 
|  |    230 |             TUid aCustomMessageId,
 | 
|  |    231 |             const TDesC8& aCustomMessage);
 | 
|  |    232 | 
 | 
|  |    233 |         /**
 | 
|  |    234 |          * @see CAknView
 | 
|  |    235 |          */
 | 
|  |    236 |         void DoDeactivate();
 | 
|  |    237 | 
 | 
|  |    238 |         /**
 | 
|  |    239 |          * @see CAknView
 | 
|  |    240 |          */
 | 
|  |    241 |         void HandleCommandL( TInt aCommand );
 | 
|  |    242 | 
 | 
|  |    243 |         /**
 | 
|  |    244 |          * @see CAknView
 | 
|  |    245 |          */
 | 
|  |    246 |         void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
 | 
|  |    247 | 
 | 
|  |    248 |         /**
 | 
|  |    249 | 		 * @see CAknView
 | 
|  |    250 | 		 */
 | 
|  |    251 |         void ProcessCommandL( TInt aCommand );
 | 
|  |    252 | 
 | 
|  |    253 |     protected: // New methods
 | 
|  |    254 | 
 | 
|  |    255 |         /**
 | 
|  |    256 |          * Returns a container class that is derived from 
 | 
|  |    257 |          * CFileManagerContainerBase. This is provided for derived
 | 
|  |    258 |          * classes to create their own type of containers.
 | 
|  |    259 |          * @return Newly created container.
 | 
|  |    260 |          */
 | 
|  |    261 |         virtual CFileManagerContainerBase* CreateContainerL() = 0;
 | 
|  |    262 | 
 | 
|  |    263 |         /**
 | 
|  |    264 |          * Executes open command. Opens currently selected item in
 | 
|  |    265 |          * list.
 | 
|  |    266 |          * @return Code that tells if opened item was folder or
 | 
|  |    267 |          *         file. EOpenError is returned if there was an
 | 
|  |    268 |          *         error during open.
 | 
|  |    269 |          */
 | 
|  |    270 |         TFileManagerOpenResult CmdOpenL();
 | 
|  |    271 | 
 | 
|  |    272 |         /**
 | 
|  |    273 |          * Executes delete command to delete current item
 | 
|  |    274 |          * or if there are marked items, all of them are deleted.
 | 
|  |    275 |          */
 | 
|  |    276 |         void CmdDeleteL();
 | 
|  |    277 | 
 | 
|  |    278 |         /**
 | 
|  |    279 |          * Marks all markable items in list.
 | 
|  |    280 |          */
 | 
|  |    281 |         void CmdMarkAllL();
 | 
|  |    282 | 
 | 
|  |    283 |         /**
 | 
|  |    284 |          * Unmarks all marked items in list.
 | 
|  |    285 |          */
 | 
|  |    286 |         void CmdUnmarkAllL();
 | 
|  |    287 | 
 | 
|  |    288 |         /**
 | 
|  |    289 |          * Changes mark status of currently focused item.
 | 
|  |    290 |          */
 | 
|  |    291 |         void CmdToggleMarkL();
 | 
|  |    292 | 
 | 
|  |    293 |         /**
 | 
|  |    294 |          * Creates new folder to currently active directory.
 | 
|  |    295 |          */
 | 
|  |    296 |         void CmdNewFolderL();
 | 
|  |    297 | 
 | 
|  |    298 |         /**
 | 
|  |    299 |          * Renames currently active item.
 | 
|  |    300 |          */
 | 
|  |    301 |         void CmdRenameL();
 | 
|  |    302 | 
 | 
|  |    303 |         /**
 | 
|  |    304 |          * Moves current item to folder that is queried using
 | 
|  |    305 |          * Common File Dialogs. If there are marked items, all of
 | 
|  |    306 |          * them are moved.
 | 
|  |    307 |          */
 | 
|  |    308 |         void CmdMoveToFolderL();
 | 
|  |    309 | 
 | 
|  |    310 |         /**
 | 
|  |    311 |          * Copies current item to folder that is queried using
 | 
|  |    312 |          * Common File Dialogs. If there are marked items, all of
 | 
|  |    313 |          * them are copied.
 | 
|  |    314 |          */
 | 
|  |    315 |         void CmdCopyToFolderL();
 | 
|  |    316 | 
 | 
|  |    317 |         /**
 | 
|  |    318 |          * Shows info popup dialog that contains information
 | 
|  |    319 |          * about currently active item.
 | 
|  |    320 |          */
 | 
|  |    321 |         void CmdViewInfoL();
 | 
|  |    322 | 
 | 
|  |    323 |         /**
 | 
|  |    324 |          * Shows memory status popup dialog that contains
 | 
|  |    325 |          * information about current memory status of the
 | 
|  |    326 |          * active memory.
 | 
|  |    327 |          */
 | 
|  |    328 |         void CmdMemoryStateL();
 | 
|  |    329 | 
 | 
|  |    330 |         /**
 | 
|  |    331 |          * Executes find command.
 | 
|  |    332 |          */
 | 
|  |    333 |         void CmdFindL();
 | 
|  |    334 | 
 | 
|  |    335 |         /**
 | 
|  |    336 |          * Receives file via infrared to currently active
 | 
|  |    337 |          * folder.
 | 
|  |    338 |          */
 | 
|  |    339 |         void CmdReceiveViaIRL();
 | 
|  |    340 | 
 | 
|  |    341 |         /**
 | 
|  |    342 |          * Runs move or copy operation. Parameter aToFolder is the destination
 | 
|  |    343 |          * of operation.
 | 
|  |    344 |          * @param aOperation Operation to execute.
 | 
|  |    345 |          * @param aToFolder Destination folder of the operation.
 | 
|  |    346 |          */
 | 
|  |    347 |         void RunOperationL( 
 | 
|  |    348 |             MFileManagerProcessObserver::TFileManagerProcess aOperation, 
 | 
|  |    349 |             const TDesC& aToFolder );
 | 
|  |    350 | 
 | 
|  |    351 |         /**
 | 
|  |    352 |          * Gets reference to drive info.
 | 
|  |    353 |          */
 | 
|  |    354 |         TFileManagerDriveInfo& DriveInfo() const;
 | 
|  |    355 | 
 | 
|  |    356 |         /**
 | 
|  |    357 |          * Refreshes drive info.
 | 
|  |    358 |          */
 | 
|  |    359 |         void RefreshDriveInfoL();
 | 
|  |    360 | 
 | 
|  |    361 |         void StartProcessL(
 | 
|  |    362 |             MFileManagerProcessObserver::TFileManagerProcess aProcess,
 | 
|  |    363 |             TInt aValue = KErrNotFound );
 | 
|  |    364 | 
 | 
|  |    365 |         void CmdUnlockDriveL();
 | 
|  |    366 | 
 | 
|  |    367 |         void CmdFormatDriveL();
 | 
|  |    368 | 
 | 
|  |    369 | //        void CmdRenameDriveL();
 | 
|  |    370 | //
 | 
|  |    371 | //        void CmdSetDrivePasswordL();
 | 
|  |    372 | //
 | 
|  |    373 | //        void CmdChangeDrivePasswordL();
 | 
|  |    374 | //
 | 
|  |    375 | //        void CmdRemoveDrivePasswordL();
 | 
|  |    376 | //
 | 
|  |    377 | //        void CmdMemoryCardDetailsL();
 | 
|  |    378 | 
 | 
|  |    379 |         TInt UpdatePassword(
 | 
|  |    380 |             TInt aDrive, const TDesC& aOldPwd, const TDesC& aPwd );
 | 
|  |    381 | 
 | 
|  |    382 |         TInt UnlockRemovePasswordL( TInt aDrive, TBool aRemove );
 | 
|  |    383 | 
 | 
|  |    384 |         /**
 | 
|  |    385 |          * Sets remote drive connection state.
 | 
|  |    386 |          *
 | 
|  |    387 |          * @param aState ETrue to connect, EFalse to disconnect.
 | 
|  |    388 |          */
 | 
|  |    389 |         void SetRemoteDriveConnectionStateL( TBool aState );
 | 
|  |    390 | 
 | 
|  |    391 |         /**
 | 
|  |    392 |          * Opens remote drive setting view.
 | 
|  |    393 |          *
 | 
|  |    394 |          * @param aDriveName Name of the remote drive.
 | 
|  |    395 |          */
 | 
|  |    396 |         void OpenRemoteDriveSettingsL(
 | 
|  |    397 |             const TDesC& aDriveName = KNullDesC );
 | 
|  |    398 | 
 | 
|  |    399 |         /**
 | 
|  |    400 |          * Checks if item is on disconnected remote drive.
 | 
|  |    401 |          *
 | 
|  |    402 |          * @param aProp Item properties.
 | 
|  |    403 |          * @return ETrue if item is on disconnect drive. Otherwise EFalse.
 | 
|  |    404 |          */
 | 
|  |    405 |         TBool IsDisconnectedRemoteDrive(
 | 
|  |    406 |             CFileManagerItemProperties& aProp );
 | 
|  |    407 | 
 | 
|  |    408 |         /**
 | 
|  |    409 |          * Performs remote drive menu filtering.
 | 
|  |    410 |          *
 | 
|  |    411 |          * @param aMenuPane Menu instance to be filtered.
 | 
|  |    412 |          */
 | 
|  |    413 |         void RemoteDriveCommonFilteringL( CEikMenuPane& aMenuPane );
 | 
|  |    414 | 
 | 
|  |    415 |         /**
 | 
|  |    416 |          * Renames current drive.
 | 
|  |    417 |          *
 | 
|  |    418 |          * @param aForceDefaultName ETrue to offer the default name by force.
 | 
|  |    419 |          */
 | 
|  |    420 |         void RenameDriveL( TBool aForceDefaultName );
 | 
|  |    421 | 
 | 
|  |    422 |         /**
 | 
|  |    423 |          * Handles refresh directory command.
 | 
|  |    424 |          */
 | 
|  |    425 |         void CmdRefreshDirectoryL();
 | 
|  |    426 | 
 | 
|  |    427 |         /**
 | 
|  |    428 |          * Shows eject query.
 | 
|  |    429 |          */
 | 
|  |    430 |         void ShowEjectQueryL();
 | 
|  |    431 | 
 | 
|  |    432 |         /**
 | 
|  |    433 |          * Launches progress dialog with given final and initial values.
 | 
|  |    434 |          * aOperation parameter is used to determine what resource
 | 
|  |    435 |          * should be used when displaying dialog.
 | 
|  |    436 |          * @param aFinalValue Final value of the created progress dialog.
 | 
|  |    437 |          * @param aInitialValue Initial value of the created progress dialog.
 | 
|  |    438 |          * @param aOperation Operation that this progress dialog represents
 | 
|  |    439 |          * @param aImmediatelyVisible Dialog is immediately visible if ETrue
 | 
|  |    440 |          */
 | 
|  |    441 |         void LaunchProgressDialogL(
 | 
|  |    442 |               TInt64 aFinalValue,
 | 
|  |    443 |               TInt64 aInitialValue,
 | 
|  |    444 |               MFileManagerProcessObserver::TFileManagerProcess aOperation,
 | 
|  |    445 |               TBool aImmediatelyVisible = EFalse );
 | 
|  |    446 | 
 | 
|  |    447 |         TBool AskPathL( TDes& aPath, TInt aTextId );
 | 
|  |    448 | 
 | 
|  |    449 |         void SetCbaMskTextL( const TInt aTextId );
 | 
|  |    450 | 
 | 
|  |    451 |         void UpdateCommonCbaL();
 | 
|  |    452 | 
 | 
|  |    453 |         TBool IsDriveAvailable( const TDesC& aPath ) const;
 | 
|  |    454 | 
 | 
|  |    455 |         TBool IsDriveAvailable( const TInt aDrive ) const;
 | 
|  |    456 | 
 | 
|  |    457 |         TBool DriveReadOnlyMmcL( const TInt aDrive ) const;
 | 
|  |    458 | 
 | 
|  |    459 |         TBool DriveReadOnlyMmcL( const TDesC& aFullPath ) const;
 | 
|  |    460 |         
 | 
|  |    461 |         TBool CheckPhoneState() const;
 | 
|  |    462 | 
 | 
|  |    463 |         TBool StopProgressDialogAndStoreValues();
 | 
|  |    464 | 
 | 
|  |    465 |         void CmdSortL( TInt aCommand );
 | 
|  |    466 | 
 | 
|  |    467 |         CFileManagerFeatureManager& FeatureManager() const;
 | 
|  |    468 | 
 | 
|  |    469 |         void ShowDiskSpaceErrorL( const TDesC& aFolder );
 | 
|  |    470 | 
 | 
|  |    471 |         /**
 | 
|  |    472 |          * Sets given media password string to empty and zero fills it.
 | 
|  |    473 |          *
 | 
|  |    474 |          * @param aPwd Media password to clean up.
 | 
|  |    475 |          */
 | 
|  |    476 |         static void EmptyPwd( TDes& aPwd );
 | 
|  |    477 | 
 | 
|  |    478 |         /**
 | 
|  |    479 |          * Converts chars to media password.
 | 
|  |    480 |          *
 | 
|  |    481 |          * @param aWord Password to convert in Unicode.
 | 
|  |    482 |          * @param aConverted Converted password.
 | 
|  |    483 |          */
 | 
|  |    484 |         static void ConvertCharsToPwd( const TDesC& aWord, TDes8& aConverted );
 | 
|  |    485 | 
 | 
|  |    486 |         /**
 | 
|  |    487 |          * Gets drive information at current position.
 | 
|  |    488 |          *
 | 
|  |    489 |          * @param aInfo Stores drive information.
 | 
|  |    490 |          * @return Drive identifier or KErrNotFound.
 | 
|  |    491 |          */
 | 
|  |    492 |         TInt DriveInfoAtCurrentPosL( TFileManagerDriveInfo& aInfo );
 | 
|  |    493 | 
 | 
|  |    494 |     protected:
 | 
|  |    495 | 
 | 
|  |    496 |         /**
 | 
|  |    497 |          * C++ default constructor.
 | 
|  |    498 |          */
 | 
|  |    499 |         CFileManagerViewBase();
 | 
|  |    500 | 
 | 
|  |    501 |         /**
 | 
|  |    502 |          * By default Symbian 2nd phase constructor is private.
 | 
|  |    503 |          */
 | 
|  |    504 |         virtual void ConstructL( TInt aResId );
 | 
|  |    505 | 
 | 
|  |    506 |     private: // New methods
 | 
|  |    507 |         /**
 | 
|  |    508 |          * Constructs an array that contains the indices
 | 
|  |    509 |          * of marked items.
 | 
|  |    510 |          * @return Array of marked items.
 | 
|  |    511 |          */
 | 
|  |    512 |         CArrayFixFlat<TInt>* MarkedArrayLC();
 | 
|  |    513 | 
 | 
|  |    514 |         /**
 | 
|  |    515 |          * Gets paths of marked sendable files
 | 
|  |    516 |          * @param Reference to get size of the sendable files
 | 
|  |    517 |          * @return Array of sendable file items
 | 
|  |    518 |          */
 | 
|  |    519 |         CArrayFixFlat<TInt>* GetSendFilesLC( TInt& aSize );
 | 
|  |    520 | 
 | 
|  |    521 |         /**
 | 
|  |    522 |          * Filters Edit menu in aMenuPane.
 | 
|  |    523 |          */
 | 
|  |    524 |         void MarkMenuFilteringL( CEikMenuPane& aMenuPane );
 | 
|  |    525 | 
 | 
|  |    526 |         /**
 | 
|  |    527 |          * Creates a send ui query
 | 
|  |    528 |          */
 | 
|  |    529 |         void SendUiQueryL();
 | 
|  |    530 | 
 | 
|  |    531 |         /**
 | 
|  |    532 |          * Timer calls this for updating the progress bar.
 | 
|  |    533 |          */
 | 
|  |    534 |         void DoUpdateProgressBar();
 | 
|  |    535 | 
 | 
|  |    536 |         /**
 | 
|  |    537 |          * Returns true if all or any focused item or marked items are protected.
 | 
|  |    538 |          *
 | 
|  |    539 |          * The 'all' or 'any' mode of operation is controlled by the aMode parameter.
 | 
|  |    540 |          *
 | 
|  |    541 |          * @param  aMode    controls the 'all' or 'any' mode.  ETrue = 'all'.
 | 
|  |    542 |          * @return ETrue    all chosen items are protected
 | 
|  |    543 |          *         EFalse   at least one of the items are not protected
 | 
|  |    544 |          */
 | 
|  |    545 |         TBool AreChosenFilesProtectedL( TBool aMode );
 | 
|  |    546 | 
 | 
|  |    547 |         /**
 | 
|  |    548 |          * Creates and displayes the Context sensitive menu
 | 
|  |    549 |          */
 | 
|  |    550 |         void ShowContextSensitiveMenuL();
 | 
|  |    551 | 
 | 
|  |    552 |         /**
 | 
|  |    553 |          * Adds SendUi option to option menu
 | 
|  |    554 |          */
 | 
|  |    555 |         void AddSendOptionL(
 | 
|  |    556 |             CEikMenuPane& aMenuPane,
 | 
|  |    557 |             const TInt aCommandIdAfter );
 | 
|  |    558 | 
 | 
|  |    559 |         /**
 | 
|  |    560 |          * Check is delete condition ok for given item
 | 
|  |    561 |          */
 | 
|  |    562 |         TBool DeleteStatusNotOkL( 
 | 
|  |    563 |             CFileManagerItemProperties& aProp, 
 | 
|  |    564 |             TInt aSelectionCount ) const;
 | 
|  |    565 | 
 | 
|  |    566 |         /**
 | 
|  |    567 |          * Deletes focused or marked items from current listbox
 | 
|  |    568 |          */
 | 
|  |    569 |         void DeleteItemsL( TInt aIndex );
 | 
|  |    570 |         
 | 
|  |    571 |         /**
 | 
|  |    572 |          * Checks if given index has InfoUrl.
 | 
|  |    573 |          * @param aIndex given index
 | 
|  |    574 |          * @return ETrue if given index has InfoUrl,
 | 
|  |    575 |          *         EFalse otherwise.
 | 
|  |    576 |          */
 | 
|  |    577 |         TBool HasInfoUrlL( TInt aIndex );
 | 
|  |    578 | 
 | 
|  |    579 |         /**
 | 
|  |    580 |          * Opens InfoUrl of given index in browser.
 | 
|  |    581 |          * @param aIndex given index
 | 
|  |    582 |          */
 | 
|  |    583 |         void OpenInfoUrlL( TInt aIndex );
 | 
|  |    584 | 
 | 
|  |    585 |         /**
 | 
|  |    586 |          * Checks file rights and shows note if expired.
 | 
|  |    587 |          * @param aFullPath File to check
 | 
|  |    588 |          * @return ETrue if rights are valid
 | 
|  |    589 |          *         EFalse if rights are expired
 | 
|  |    590 |          */
 | 
|  |    591 |         TBool CheckFileRightsAndInformIfExpiredL( const TDesC& aFullPath );
 | 
|  |    592 | 
 | 
|  |    593 |         /**
 | 
|  |    594 |          * Filters memory store menu in aMenuPane.
 | 
|  |    595 |          */
 | 
|  |    596 |         void MemoryStoreMenuFilteringL( CEikMenuPane& aMenuPane );
 | 
|  |    597 | 
 | 
|  |    598 |         /**
 | 
|  |    599 |          * Filters organise menu in aMenuPane.
 | 
|  |    600 |          */        
 | 
|  |    601 |         void OrganiseMenuFilteringL( CEikMenuPane& aMenuPane );
 | 
|  |    602 | 
 | 
|  |    603 |         /**
 | 
|  |    604 |          * Filters details menu in aMenuPane.
 | 
|  |    605 |          */
 | 
|  |    606 |         void DetailsMenuFilteringL( CEikMenuPane& aMenuPane );
 | 
|  |    607 | //        
 | 
|  |    608 | //        /**
 | 
|  |    609 | //         * Filters memory card menu in aMenuPane.
 | 
|  |    610 | //         */ 
 | 
|  |    611 | //        void MemoryCardMenuFilteringL( CEikMenuPane& aMenuPane );
 | 
|  |    612 | //
 | 
|  |    613 | //        /**
 | 
|  |    614 | //         * Filters memory card password menu in aMenuPane.
 | 
|  |    615 | //         */
 | 
|  |    616 | //        void MemoryCardPasswordMenuFilteringL( CEikMenuPane& aMenuPane );
 | 
|  |    617 | 
 | 
|  |    618 |         /**
 | 
|  |    619 |          * Filters context sensitive menu in aMenuPane.
 | 
|  |    620 |          */
 | 
|  |    621 |         void ContextSensitiveMenuFilteringL( CEikMenuPane& aMenuPane );
 | 
|  |    622 | 
 | 
|  |    623 |         /**
 | 
|  |    624 |          * Launches progress bar
 | 
|  |    625 |          */
 | 
|  |    626 |         void LaunchProgressBarL(
 | 
|  |    627 |             TInt aDialogId,
 | 
|  |    628 |             TInt aTextId,
 | 
|  |    629 |             TInt64 aFinalValue,
 | 
|  |    630 |             TInt64 aInitialValue,
 | 
|  |    631 |             TBool aPeriodic,
 | 
|  |    632 |             TBool aImmediatelyVisible );
 | 
|  |    633 | 
 | 
|  |    634 | 		/**
 | 
|  |    635 | 		 * Starts refresh progress dialog
 | 
|  |    636 | 		 */
 | 
|  |    637 |         void RefreshProgressDelayedStartL();
 | 
|  |    638 | 
 | 
|  |    639 |         void CheckPostponedDirectoryRefresh();
 | 
|  |    640 | 
 | 
|  |    641 |         void DenyDirectoryRefresh( TBool aDeny );
 | 
|  |    642 | 
 | 
|  |    643 |         void SortMenuFilteringL( CEikMenuPane& aMenuPane );
 | 
|  |    644 | 
 | 
|  |    645 |         void DoProcessFinishedL( TInt aError, const TDesC& aName );
 | 
|  |    646 | 
 | 
|  |    647 |         void DoLaunchProgressDialogAsync();
 | 
|  |    648 | 
 | 
|  |    649 |         static TInt LaunchProgressDialogAsync( TAny* aPtr );
 | 
|  |    650 | 
 | 
|  |    651 |         TInt FilesCountInSearchField();
 | 
|  |    652 | 
 | 
|  |    653 |     protected:    // Data
 | 
|  |    654 |         /// Own: Container that this view handles.
 | 
|  |    655 |         CFileManagerContainerBase*  iContainer;
 | 
|  |    656 |         /// Ref: Reference to File Manager engine.
 | 
|  |    657 |         CFileManagerEngine&         iEngine;
 | 
|  |    658 |         /// Own: Progress dialog for iActiveExec
 | 
|  |    659 |         CAknProgressDialog*         iProgressDialog;
 | 
|  |    660 |         /// Own: Progress dialog for iActiveExec
 | 
|  |    661 |         CAknProgressDialog*         iProgressDialogRefresh;
 | 
|  |    662 |         /// Ref: Progress info of iProgressDialog
 | 
|  |    663 |         CEikProgressInfo*           iProgressInfo;
 | 
|  |    664 |         /// Own: Active object that executes copy and move operations
 | 
|  |    665 |         CFileManagerActiveExecute*  iActiveExec;
 | 
|  |    666 |         /// Own: Array of marked items in listbox
 | 
|  |    667 |         CArrayFixFlat<TInt>*        iMarkedArray;
 | 
|  |    668 |         /// Currently active process
 | 
|  |    669 |         MFileManagerProcessObserver::TFileManagerProcess iActiveProcess;
 | 
|  |    670 |         /// Own: Popup menu for showing context sensitive menu
 | 
|  |    671 |         CEikMenuBar*                iPopupMenu;
 | 
|  |    672 |         /// Own: This is used to update the progress bar
 | 
|  |    673 |         CPeriodic*                  iPeriodic;
 | 
|  |    674 |         // This is for progress bar 
 | 
|  |    675 |         TInt64                        iTotalTransferredBytes;
 | 
|  |    676 |         // This is for progress bar(in order to support over 2Gb files)
 | 
|  |    677 |         // Own: for wait note wrapper, delete items
 | 
|  |    678 |         CFileManagerActiveDelete*   iActiveDelete;
 | 
|  |    679 |         // current listbox index
 | 
|  |    680 |         TInt                        iIndex;
 | 
|  |    681 |         // Own: Timer object to start refresh progress dialog
 | 
|  |    682 |         CPeriodic*                  iRefreshProgressDelayedStart;
 | 
|  |    683 |         // Own: Indicates that scheduled backup is pending
 | 
|  |    684 |         TBool iSchBackupPending;
 | 
|  |    685 |         // Own: Eject query dialog
 | 
|  |    686 |         CAknQueryDialog* iEjectQueryDialog;
 | 
|  |    687 |         // Own: Indicates if eject has been done
 | 
|  |    688 |         TBool iEjectDone;
 | 
|  |    689 |         // Own: Stores current progress value
 | 
|  |    690 |         TInt64 iProgressCurrentValue;
 | 
|  |    691 |         // Own: Stores final progress value
 | 
|  |    692 |         TInt64 iProgressFinalValue;
 | 
|  |    693 |         // Own: Denies directory refresh during query until selected operation gets started
 | 
|  |    694 |         TBool iDirectoryRefreshDenied;
 | 
|  |    695 |         // Own: Indicates postponed directory refresh
 | 
|  |    696 |         TBool iDirectoryRefreshPostponed;
 | 
|  |    697 |         // Own: For wait note stepping
 | 
|  |    698 |         CAknWaitNoteWrapper* iWaitNoteWrapper;
 | 
|  |    699 |         // Own: Indicates if there's a SendUi popup query dialog
 | 
|  |    700 |         TBool iSendUiPopupOpened;
 | 
|  |    701 | 
 | 
|  |    702 |     };
 | 
|  |    703 | 
 | 
|  |    704 | #endif      // CFILEMANAGERVIEWBASE_H   
 | 
|  |    705 |             
 | 
|  |    706 | // End of File
 |