filemanager/App/inc/CFileManagerViewBase.h
changeset 14 1957042d8c7e
parent 1 d1daf54a55b5
child 16 ada7962b4308
--- a/filemanager/App/inc/CFileManagerViewBase.h	Tue Feb 02 00:03:31 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,705 +0,0 @@
-/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0""
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Base class for all file manager views
-*
-*/
-
-
-
-#ifndef CFILEMANAGERVIEWBASE_H
-#define CFILEMANAGERVIEWBASE_H
-
-
-//  INCLUDES
-#include <aknview.h>
-#include <AknServerApp.h>
-#include <AknWaitDialog.h> 
-#include <apparc.h>
-#include <MFileManagerProcessObserver.h>
-#include <TFileManagerDriveInfo.h>
-
-
-// FORWARD DECLARATIONS
-class CFileManagerContainerBase;
-class CFileManagerEngine;
-class CFileManagerActiveExecute;
-class CEikMenuBar;
-class CFileManagerActiveDelete;
-class CFileManagerItemProperties;
-class CAknQueryDialog;
-class CAknWaitNoteWrapper;
-class CFileManagerFeatureManager;
-class MAknServerAppExitObserver;
-
-
-// Defines maximum media password length in Unicode
-const TUint KFmgrMaxMediaPassword = KMaxMediaPassword / 2; // Because of Unicode
-// CLASS DECLARATION
-/**
- * Base class for all views in File Manager applicaiton
- */
-class CFileManagerViewBase : public CAknView,
-                             public MProgressDialogCallback,
-                             public MFileManagerProcessObserver,
-                             public MAknServerAppExitObserver
-    {
-    protected:
-        /**
-         * Return value enumeration for CmdOpenL to indicate what
-         * kind of item was opened or if there was an error during
-         * opening.
-         */
-        enum TFileManagerOpenResult 
-            { 
-            EFolderOpened, 
-            EFileOpened, 
-            EOpenError 
-            };
-    public:  // Constructors and destructor
-        /**
-         * Two-phased constructor.
-         */
-        static CFileManagerViewBase* NewLC();
-        
-        /**
-         * Timer calls this in order to update the progress bar.
-         * @param aPtr pointer to object where is function to be call
-         * when timer expires.
-         * @return positive number if timer needs to be activated again
-         *         0 if timer is not needed any more.
-         */
-        static TInt UpdateProgressBar( TAny* aPtr );
-
-        /**
-         * Timer calls this in order to start refresh progress dialog.
-         * @param aPtr pointer to object where is function to be call
-         * when timer expires.
-         * @return positive number if timer needs to be activated again
-         *         0 if timer is not needed any more.
-         */
-        static TInt RefreshProgressDelayedStart( TAny* aPtr );
-
-        /** 
-        * Stores current index 
-        * @return ETrue if storing successfull
-        *         EFalse if storing not succesfull
-        */
-        TBool StoreIndex();
-
-        /**
-         * Nulls everything which is related to progress bar
-         */
-        void ClearProgressBarL();
-
-        /**
-         * @return Current process in app
-         */
-        MFileManagerProcessObserver::TFileManagerProcess CurrentProcess();
-        
-        /**
-         * Destructor.
-         */
-        virtual ~CFileManagerViewBase();
-
-    public: // From MProgressDialogCallback
-        void DialogDismissedL( TInt aButtonId );
-
-    public://MAknServerAppExitObserver
-        /**
-         * @see MAknServerAppExitObserver
-         */
-        void HandleServerAppExit( TInt aReason );
-        
-    public: // From MFileManagerProcessObserver
-        /**
-         * @see MFileManagerProcessObserver
-         */
-        void ProcessFinishedL( TInt aError, const TDesC& aName );
-
-        /**
-         * @see MFileManagerProcessObserver
-         */
-        void ProcessAdvanceL( TInt aValue );
-
-        /**
-         * @see MFileManagerProcessObserver
-         */
-        void ProcessStartedL(
-            MFileManagerProcessObserver::TFileManagerProcess aProcess,
-            TInt aFinalValue );
-
-        /**
-         * @see MFileManagerProcessObserver
-         */
-        TBool ProcessQueryOverWriteL( 
-            const TDesC& aOldName, 
-            TDes& aNewName, 
-            TFileManagerProcess aProcess );
-
-        /**
-         * @see MFileManagerProcessObserver
-         */
-        TBool ProcessQueryRenameL( 
-            const TDesC& aOldName, 
-            TDes& aNewName, 
-            TFileManagerProcess aProcess );
-
-        /**
-         * @see MFileManagerProcessObserver
-         */
-        void RefreshStartedL();
-
-        /**
-         * @see MFileManagerProcessObserver
-         */
-        void RefreshStoppedL();
-
-        /**
-         * @see MFileManagerProcessObserver
-         */
-        void ShowWaitDialogL( MAknBackgroundProcess& aProcess);
-
-        /**
-         * @see MFileManagerProcessObserver
-         */
-        void Error( TInt aError );
-
-        /**
-         * @see MFileManagerProcessObserver
-         */
-        TInt NotifyL( TFileManagerNotify aType, TInt aData, const TDesC& aName );
-
-    public:
-
-        /* 
-        * When view needs refresh, this is called.
-        */
-        virtual void DirectoryChangedL() = 0;
-
-        /*
-        * Checks if refresh is in progress
-        */
-        TBool IsRefreshInProgress();
-
-        /**
-         * Handles errors caused by file or folder deletion outside 
-         * file manager while file manager is in foreground.
-         * @param aError Error code.
-         * @return ETrue if error was handled. Otherwise EFalse.
-         */
-        TBool HandleFileNotFoundL( TInt aError );
-
-        /**
-        * Handles screen layout changes
-        */
-        virtual void ScreenDeviceChanged();
-
-#ifdef RD_FILE_MANAGER_BACKUP
-        void StartSchBackupL();
-
-        void SchBackupFinishedL();
-#endif // RD_FILE_MANAGER_BACKUP
-
-        /**
-         * Updates cba
-         */
-        virtual void UpdateCbaL();
-
-        /**
-         * Notifies foreground status change
-         */
-        virtual void NotifyForegroundStatusChange( TBool aForeground );
-
-    protected: // From CAknView
-        /**
-         * @see CAknView
-         */
-        void DoActivateL(
-            const TVwsViewId& aPrevViewId,
-            TUid aCustomMessageId,
-            const TDesC8& aCustomMessage);
-
-        /**
-         * @see CAknView
-         */
-        void DoDeactivate();
-
-        /**
-         * @see CAknView
-         */
-        void HandleCommandL( TInt aCommand );
-
-        /**
-         * @see CAknView
-         */
-        void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
-
-        /**
-		 * @see CAknView
-		 */
-        void ProcessCommandL( TInt aCommand );
-
-    protected: // New methods
-
-        /**
-         * Returns a container class that is derived from 
-         * CFileManagerContainerBase. This is provided for derived
-         * classes to create their own type of containers.
-         * @return Newly created container.
-         */
-        virtual CFileManagerContainerBase* CreateContainerL() = 0;
-
-        /**
-         * Executes open command. Opens currently selected item in
-         * list.
-         * @return Code that tells if opened item was folder or
-         *         file. EOpenError is returned if there was an
-         *         error during open.
-         */
-        TFileManagerOpenResult CmdOpenL();
-
-        /**
-         * Executes delete command to delete current item
-         * or if there are marked items, all of them are deleted.
-         */
-        void CmdDeleteL();
-
-        /**
-         * Marks all markable items in list.
-         */
-        void CmdMarkAllL();
-
-        /**
-         * Unmarks all marked items in list.
-         */
-        void CmdUnmarkAllL();
-
-        /**
-         * Changes mark status of currently focused item.
-         */
-        void CmdToggleMarkL();
-
-        /**
-         * Creates new folder to currently active directory.
-         */
-        void CmdNewFolderL();
-
-        /**
-         * Renames currently active item.
-         */
-        void CmdRenameL();
-
-        /**
-         * Moves current item to folder that is queried using
-         * Common File Dialogs. If there are marked items, all of
-         * them are moved.
-         */
-        void CmdMoveToFolderL();
-
-        /**
-         * Copies current item to folder that is queried using
-         * Common File Dialogs. If there are marked items, all of
-         * them are copied.
-         */
-        void CmdCopyToFolderL();
-
-        /**
-         * Shows info popup dialog that contains information
-         * about currently active item.
-         */
-        void CmdViewInfoL();
-
-        /**
-         * Shows memory status popup dialog that contains
-         * information about current memory status of the
-         * active memory.
-         */
-        void CmdMemoryStateL();
-
-        /**
-         * Executes find command.
-         */
-        void CmdFindL();
-
-        /**
-         * Receives file via infrared to currently active
-         * folder.
-         */
-        void CmdReceiveViaIRL();
-
-        /**
-         * Runs move or copy operation. Parameter aToFolder is the destination
-         * of operation.
-         * @param aOperation Operation to execute.
-         * @param aToFolder Destination folder of the operation.
-         */
-        void RunOperationL( 
-            MFileManagerProcessObserver::TFileManagerProcess aOperation, 
-            const TDesC& aToFolder );
-
-        /**
-         * Gets reference to drive info.
-         */
-        TFileManagerDriveInfo& DriveInfo() const;
-
-        /**
-         * Refreshes drive info.
-         */
-        void RefreshDriveInfoL();
-
-        void StartProcessL(
-            MFileManagerProcessObserver::TFileManagerProcess aProcess,
-            TInt aValue = KErrNotFound );
-
-        void CmdUnlockDriveL();
-
-        void CmdFormatDriveL();
-
-//        void CmdRenameDriveL();
-//
-//        void CmdSetDrivePasswordL();
-//
-//        void CmdChangeDrivePasswordL();
-//
-//        void CmdRemoveDrivePasswordL();
-//
-//        void CmdMemoryCardDetailsL();
-
-        TInt UpdatePassword(
-            TInt aDrive, const TDesC& aOldPwd, const TDesC& aPwd );
-
-        TInt UnlockRemovePasswordL( TInt aDrive, TBool aRemove );
-
-        /**
-         * Sets remote drive connection state.
-         *
-         * @param aState ETrue to connect, EFalse to disconnect.
-         */
-        void SetRemoteDriveConnectionStateL( TBool aState );
-
-        /**
-         * Opens remote drive setting view.
-         *
-         * @param aDriveName Name of the remote drive.
-         */
-        void OpenRemoteDriveSettingsL(
-            const TDesC& aDriveName = KNullDesC );
-
-        /**
-         * Checks if item is on disconnected remote drive.
-         *
-         * @param aProp Item properties.
-         * @return ETrue if item is on disconnect drive. Otherwise EFalse.
-         */
-        TBool IsDisconnectedRemoteDrive(
-            CFileManagerItemProperties& aProp );
-
-        /**
-         * Performs remote drive menu filtering.
-         *
-         * @param aMenuPane Menu instance to be filtered.
-         */
-        void RemoteDriveCommonFilteringL( CEikMenuPane& aMenuPane );
-
-        /**
-         * Renames current drive.
-         *
-         * @param aForceDefaultName ETrue to offer the default name by force.
-         */
-        void RenameDriveL( TBool aForceDefaultName );
-
-        /**
-         * Handles refresh directory command.
-         */
-        void CmdRefreshDirectoryL();
-
-        /**
-         * Shows eject query.
-         */
-        void ShowEjectQueryL();
-
-        /**
-         * Launches progress dialog with given final and initial values.
-         * aOperation parameter is used to determine what resource
-         * should be used when displaying dialog.
-         * @param aFinalValue Final value of the created progress dialog.
-         * @param aInitialValue Initial value of the created progress dialog.
-         * @param aOperation Operation that this progress dialog represents
-         * @param aImmediatelyVisible Dialog is immediately visible if ETrue
-         */
-        void LaunchProgressDialogL(
-              TInt64 aFinalValue,
-              TInt64 aInitialValue,
-              MFileManagerProcessObserver::TFileManagerProcess aOperation,
-              TBool aImmediatelyVisible = EFalse );
-
-        TBool AskPathL( TDes& aPath, TInt aTextId );
-
-        void SetCbaMskTextL( const TInt aTextId );
-
-        void UpdateCommonCbaL();
-
-        TBool IsDriveAvailable( const TDesC& aPath ) const;
-
-        TBool IsDriveAvailable( const TInt aDrive ) const;
-
-        TBool DriveReadOnlyMmcL( const TInt aDrive ) const;
-
-        TBool DriveReadOnlyMmcL( const TDesC& aFullPath ) const;
-        
-        TBool CheckPhoneState() const;
-
-        TBool StopProgressDialogAndStoreValues();
-
-        void CmdSortL( TInt aCommand );
-
-        CFileManagerFeatureManager& FeatureManager() const;
-
-        void ShowDiskSpaceErrorL( const TDesC& aFolder );
-
-        /**
-         * Sets given media password string to empty and zero fills it.
-         *
-         * @param aPwd Media password to clean up.
-         */
-        static void EmptyPwd( TDes& aPwd );
-
-        /**
-         * Converts chars to media password.
-         *
-         * @param aWord Password to convert in Unicode.
-         * @param aConverted Converted password.
-         */
-        static void ConvertCharsToPwd( const TDesC& aWord, TDes8& aConverted );
-
-        /**
-         * Gets drive information at current position.
-         *
-         * @param aInfo Stores drive information.
-         * @return Drive identifier or KErrNotFound.
-         */
-        TInt DriveInfoAtCurrentPosL( TFileManagerDriveInfo& aInfo );
-
-    protected:
-
-        /**
-         * C++ default constructor.
-         */
-        CFileManagerViewBase();
-
-        /**
-         * By default Symbian 2nd phase constructor is private.
-         */
-        virtual void ConstructL( TInt aResId );
-
-    private: // New methods
-        /**
-         * Constructs an array that contains the indices
-         * of marked items.
-         * @return Array of marked items.
-         */
-        CArrayFixFlat<TInt>* MarkedArrayLC();
-
-        /**
-         * Gets paths of marked sendable files
-         * @param Reference to get size of the sendable files
-         * @return Array of sendable file items
-         */
-        CArrayFixFlat<TInt>* GetSendFilesLC( TInt& aSize );
-
-        /**
-         * Filters Edit menu in aMenuPane.
-         */
-        void MarkMenuFilteringL( CEikMenuPane& aMenuPane );
-
-        /**
-         * Creates a send ui query
-         */
-        void SendUiQueryL();
-
-        /**
-         * Timer calls this for updating the progress bar.
-         */
-        void DoUpdateProgressBar();
-
-        /**
-         * Returns true if all or any focused item or marked items are protected.
-         *
-         * The 'all' or 'any' mode of operation is controlled by the aMode parameter.
-         *
-         * @param  aMode    controls the 'all' or 'any' mode.  ETrue = 'all'.
-         * @return ETrue    all chosen items are protected
-         *         EFalse   at least one of the items are not protected
-         */
-        TBool AreChosenFilesProtectedL( TBool aMode );
-
-        /**
-         * Creates and displayes the Context sensitive menu
-         */
-        void ShowContextSensitiveMenuL();
-
-        /**
-         * Adds SendUi option to option menu
-         */
-        void AddSendOptionL(
-            CEikMenuPane& aMenuPane,
-            const TInt aCommandIdAfter );
-
-        /**
-         * Check is delete condition ok for given item
-         */
-        TBool DeleteStatusNotOkL( 
-            CFileManagerItemProperties& aProp, 
-            TInt aSelectionCount ) const;
-
-        /**
-         * Deletes focused or marked items from current listbox
-         */
-        void DeleteItemsL( TInt aIndex );
-        
-        /**
-         * Checks if given index has InfoUrl.
-         * @param aIndex given index
-         * @return ETrue if given index has InfoUrl,
-         *         EFalse otherwise.
-         */
-        TBool HasInfoUrlL( TInt aIndex );
-
-        /**
-         * Opens InfoUrl of given index in browser.
-         * @param aIndex given index
-         */
-        void OpenInfoUrlL( TInt aIndex );
-
-        /**
-         * Checks file rights and shows note if expired.
-         * @param aFullPath File to check
-         * @return ETrue if rights are valid
-         *         EFalse if rights are expired
-         */
-        TBool CheckFileRightsAndInformIfExpiredL( const TDesC& aFullPath );
-
-        /**
-         * Filters memory store menu in aMenuPane.
-         */
-        void MemoryStoreMenuFilteringL( CEikMenuPane& aMenuPane );
-
-        /**
-         * Filters organise menu in aMenuPane.
-         */        
-        void OrganiseMenuFilteringL( CEikMenuPane& aMenuPane );
-
-        /**
-         * Filters details menu in aMenuPane.
-         */
-        void DetailsMenuFilteringL( CEikMenuPane& aMenuPane );
-//        
-//        /**
-//         * Filters memory card menu in aMenuPane.
-//         */ 
-//        void MemoryCardMenuFilteringL( CEikMenuPane& aMenuPane );
-//
-//        /**
-//         * Filters memory card password menu in aMenuPane.
-//         */
-//        void MemoryCardPasswordMenuFilteringL( CEikMenuPane& aMenuPane );
-
-        /**
-         * Filters context sensitive menu in aMenuPane.
-         */
-        void ContextSensitiveMenuFilteringL( CEikMenuPane& aMenuPane );
-
-        /**
-         * Launches progress bar
-         */
-        void LaunchProgressBarL(
-            TInt aDialogId,
-            TInt aTextId,
-            TInt64 aFinalValue,
-            TInt64 aInitialValue,
-            TBool aPeriodic,
-            TBool aImmediatelyVisible );
-
-		/**
-		 * Starts refresh progress dialog
-		 */
-        void RefreshProgressDelayedStartL();
-
-        void CheckPostponedDirectoryRefresh();
-
-        void DenyDirectoryRefresh( TBool aDeny );
-
-        void SortMenuFilteringL( CEikMenuPane& aMenuPane );
-
-        void DoProcessFinishedL( TInt aError, const TDesC& aName );
-
-        void DoLaunchProgressDialogAsync();
-
-        static TInt LaunchProgressDialogAsync( TAny* aPtr );
-
-
-    protected:    // Data
-        /// Own: Container that this view handles.
-        CFileManagerContainerBase*  iContainer;
-        /// Ref: Reference to File Manager engine.
-        CFileManagerEngine&         iEngine;
-        /// Own: Progress dialog for iActiveExec
-        CAknProgressDialog*         iProgressDialog;
-        /// Own: Progress dialog for iActiveExec
-        CAknProgressDialog*         iProgressDialogRefresh;
-        /// Ref: Progress info of iProgressDialog
-        CEikProgressInfo*           iProgressInfo;
-        /// Own: Active object that executes copy and move operations
-        CFileManagerActiveExecute*  iActiveExec;
-        /// Own: Array of marked items in listbox
-        CArrayFixFlat<TInt>*        iMarkedArray;
-        /// Currently active process
-        MFileManagerProcessObserver::TFileManagerProcess iActiveProcess;
-        /// Own: Popup menu for showing context sensitive menu
-        CEikMenuBar*                iPopupMenu;
-        /// Own: This is used to update the progress bar
-        CPeriodic*                  iPeriodic;
-        // This is for progress bar 
-        TInt64                        iTotalTransferredBytes;
-        // This is for progress bar(in order to support over 2Gb files)
-        // Own: for wait note wrapper, delete items
-        CFileManagerActiveDelete*   iActiveDelete;
-        // current listbox index
-        TInt                        iIndex;
-        // Own: Timer object to start refresh progress dialog
-        CPeriodic*                  iRefreshProgressDelayedStart;
-        // Own: Indicates that scheduled backup is pending
-        TBool iSchBackupPending;
-        // Own: Eject query dialog
-        CAknQueryDialog* iEjectQueryDialog;
-        // Own: Indicates if eject has been done
-        TBool iEjectDone;
-        // Own: Stores current progress value
-        TInt64 iProgressCurrentValue;
-        // Own: Stores final progress value
-        TInt64 iProgressFinalValue;
-        // Own: Denies directory refresh during query until selected operation gets started
-        TBool iDirectoryRefreshDenied;
-        // Own: Indicates postponed directory refresh
-        TBool iDirectoryRefreshPostponed;
-        // Own: For wait note stepping
-        CAknWaitNoteWrapper* iWaitNoteWrapper;
-        // Own: Indicates if there's a SendUi popup query dialog
-        TBool iSendUiPopupOpened;
-
-    };
-
-#endif      // CFILEMANAGERVIEWBASE_H   
-            
-// End of File