author | Simon Howkins <simonh@symbian.org> |
Fri, 12 Nov 2010 14:20:29 +0000 | |
branch | RCL_3 |
changeset 54 | e5e9368908dc |
parent 52 | 40fb776cbfb3 |
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:
42
diff
changeset
|
279 |
* Marks all markable items in list. |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
280 |
*/ |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
281 |
void CmdMarkAllL(); |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
282 |
|
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
283 |
/** |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
284 |
* Unmarks all marked items in list. |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
285 |
*/ |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
286 |
void CmdUnmarkAllL(); |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
287 |
|
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
288 |
/** |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
289 |
* Changes mark status of currently focused item. |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
290 |
*/ |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
291 |
void CmdToggleMarkL(); |
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
changeset
|
292 |
|
40fb776cbfb3
Revision: 201039
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
42
diff
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 |