| author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> | 
| Wed, 13 Oct 2010 14:17:31 +0300 | |
| branch | RCL_3 | 
| changeset 52 | 40fb776cbfb3 | 
| parent 42 | f5c50b8af68c | 
| permissions | -rw-r--r-- | 
| 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 | /** | |
| 52 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 279 | * Marks all markable items in list. | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 280 | */ | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 281 | void CmdMarkAllL(); | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 282 | |
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 283 | /** | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 284 | * Unmarks all marked items in list. | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 285 | */ | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 286 | void CmdUnmarkAllL(); | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 287 | |
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 288 | /** | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 289 | * Changes mark status of currently focused item. | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 290 | */ | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 291 | void CmdToggleMarkL(); | 
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 292 | |
| 
40fb776cbfb3
Revision: 201039
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
42diff
changeset | 293 | /** | 
| 39 | 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 |