diff -r 95243422089a -r 491b3ed49290 filemanager/GFLM/inc/CGflmFileListModel.h --- a/filemanager/GFLM/inc/CGflmFileListModel.h Thu Aug 19 09:42:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,355 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: File list model -* -*/ - - - -#ifndef CGFLMFILELISTMODEL_H -#define CGFLMFILELISTMODEL_H - - -// INCLUDES -#include -#include // MDesCArray -#include // RFs -#include "GFLM.hrh" - - -// FORWARD DECLARATIONS -class MGflmItemGroup; -class CGflmItemGroupImpl; -class CGflmGroupItem; -class MGflmItemFilter; -class CGflmDirectoryListingCache; -class CGflmFileRecognizer; -class CGflmItemLocalizer; -class CGflmDriveResolver; -class CGflmDriveItem; -class CGflmFileFinder; - - -// CLASS DECLARATION -/** -* A class that implements the basic file list functionality. -* @lib GFLM.lib -* @since 2.0 -*/ -class CGflmFileListModel : public CActive, public MDesCArray - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @since 3.2 - * @param aFs Shareable file server session, see RFs::ShareProtected() - * @return Pointer to a CGflmFileListModel instance - */ - IMPORT_C static CGflmFileListModel* NewL( RFs& aFs ); - - /** - * Destructor. - */ - virtual ~CGflmFileListModel(); - - public: // New functions - - /** - * Refreshes the model - * @since 2.0 - * @param aStatus A reference to a TRequestStatus object that - * is used to notify the client thread about completion of - * the refresh - * @param aRefreshMode Refresh mode - */ - IMPORT_C void RefreshListL( - TRequestStatus& aStatus, - TGflmRefreshMode aRefreshMode = ERefreshItems ); - - /** - * Cancels the asynchronous refresh request - * @since 2.0 - */ - IMPORT_C void CancelRefresh(); - - /** - * Obtains a pointer to a CGflmGroupItem object. - * The item is indexed by a global index. - * Raises a panic (EGlobalIndexOutOfBounds) if the index refers to a - * non-existent item. - * @since 2.0 - * @param aIndex Global index of the item. - * @return A pointer to a CGflmGroupItem object. - */ - IMPORT_C CGflmGroupItem* Item( TInt aIndex ) const; - - /** - * Resets the model. All item groups are destroyed. - * @since 2.0 - */ - IMPORT_C void ResetModel(); - - /** - * Obtains a pointer to a MGflmItemGroup object. - * Raises a panic (EInvalidGroupId) if a group is not found with given id. - * @since 2.0 - * @param aId Id of the group - * @return A pointer to a MGflmItemGroup object. - */ - IMPORT_C MGflmItemGroup* FindGroupById( TInt aId ); - - /** - * Creates a new item group with a given id. - * @since 2.0 - * @param aId The id given to the created group - * @return A pointer to the created MGflmItemGroup object - */ - IMPORT_C MGflmItemGroup* CreateGroupL( TInt aId ); - - /** - * Creates a new item group with a given id. - * @since 3.1 - * @param aId The id given to the created group - * @param aInclusion The group item inclusion - * @return A pointer to the created MGflmItemGroup object - */ - IMPORT_C MGflmItemGroup* CreateGroupL( - TInt aId, TUint aInclusion ); - - /** - * Recognizes a file and resolves it's MIME-type. - * This method accesses GFLM's internal recognizer cache - * and is thus recomended for efficiency. NOTE: The file doesn't - * have to belong to the current state of the model. - * @since 2.0 - * @param aFilename Full path of the file to be recognized - * @return A pointer descriptor containing the MIME-type of the item. - * If the MIME-type couldn't be recognized, returns KNullDesC - */ - IMPORT_C TPtrC ResolveMimeTypeL( const TDesC& aFilename ); - - /** - * Sets the item filter object for the model to use. - * If aOwned is ETrue the model gets the ownership of the object. - * @since 2.0 - * @param aFilter A pointer to a MGflmItemFilter object to be used - */ - IMPORT_C void SetCustomFilter( MGflmItemFilter* aFilter ); - - /** - * Returns the validity of the model. If the refresh operation failed - * or was canceled the model is corrupt and it's items shouldn't be - * accessed - * @since 2.0 - * @return ETrue if the model is corrupt. EFalse if the model is in - * valid state. - */ - IMPORT_C TBool IsCorrupt() const; - - /** - * Returns the localized name of a file or a directory - * @since 2.0 - * @param aPath Full path to the file or directory - * @return A pointer descriptor containing the localized name - * without the full path - */ - IMPORT_C TPtrC LocalizedName( const TDesC& aPath ) const; - - /** - * Clears the contents of the file cache - * @since 2.0 - */ - IMPORT_C void ClearCache(); - - /** - * Clears the contents of the drive info - * @since 3.1 - */ - IMPORT_C void ClearDriveInfo(); - - /** - * Gets drive item from given path - * @since 3.1 - * @param aPath Given path - * @return A pointer to drive item (not owned) - * or NULL if drive not found. - */ - IMPORT_C CGflmDriveItem* DriveFromPath( const TDesC& aPath ) const; - - /** - * Gets drive item from given id - * @since 3.2 - * @param aDrive Given drive id - * @return A pointer to drive item (not owned) - * or NULL if drive not found. - */ - IMPORT_C CGflmDriveItem* DriveFromId( const TInt aDrive ) const; - - /** - * Enables and disables search mode - * @since 3.2 - * @param aEnabled Enable or disable - */ - IMPORT_C void EnableSearchMode( const TBool aEnabled ); - - /** - * Get search mode - * @since 5.0 - * @return search mode - */ - IMPORT_C TBool SearchMode(); - /** - * Sets search string. Wild cards are allowed. - * @since 3.2 - * @param aSearchString Given search string - */ - IMPORT_C void SetSearchStringL( const TDesC& aSearchString ); - - /** - * Sets search folder - * @since 3.2 - * @param aSearchFolder Given search folder - */ - IMPORT_C void SetSearchFolderL( const TDesC& aSearchFolder ); - - /** - * Sets sort method - * @since 5.0 - * @param aSortMethod Given sort method - */ - IMPORT_C void SetSortMethod( TGflmSortMethod aSortMethod ); - - /** - * Gets sort method - * @since 5.0 - * @return Currently used sort method - */ - IMPORT_C TGflmSortMethod SortMethod() const; - - /** - * Flush cache in CGflmFileRecognizer - */ - IMPORT_C void FlushCache(); - - public: // MDesCArray - - TInt MdcaCount() const; - - TPtrC MdcaPoint( TInt aIndex ) const; - - private: // CActive - - void RunL(); - - TInt RunError( TInt aError ); - - void DoCancel(); - - protected: // New functions - - /** - * C++ default constructor. - */ - CGflmFileListModel( RFs& aFs ); - - /** - * 2nd phase constructor - */ - void ConstructL(); - - private: - - static TInt WorkThreadStart( TAny* aPtr ); - - void WorkThread(); - - void NotifyClient( TInt aErr ); - - void GetGroupAndLocalIndex( - const TInt aGlobalIndex, - TInt& aLocalIndex, - MGflmItemGroup*& aGroup ) const; - - void DoRefreshL(); - - protected: // Data - - // Ref: An open shareable file server session - RFs& iFs; - - // Request status of the work thread client - TRequestStatus* iClientStatus; - - // Dynamic array containing all the CGflmItemGroupImpl objects that - // belong to the model. Owned. - CArrayPtrSeg< CGflmItemGroupImpl >* iGroups; - - // Instance of CGflmDirectoryListingCache. Owned. - CGflmDirectoryListingCache* iListingCache; - - // Instance of CGflmFileRecognizer. Owned. - CGflmFileRecognizer* iFileRecognizer; - - // Instance of CGflmItemLocalizer. Owned. - CGflmItemLocalizer* iItemLocalizer; - - // Instance of CGflmDriveResolver. Owned. - CGflmDriveResolver* iDriveResolver; - - // A boolean indicating wether the model is corrupt and needs to be - // refreshed - TBool iCorrupt; - - // A pointer to a class implementing MGflmItemFilter interface - MGflmItemFilter* iFilter; - - // Own: For synchronising client and work thread - RSemaphore iSemaphore; - - // Own: Client thread id to be informed - TThreadId iClientId; - - // A boolean indicating wether the model is shutting down - // Main thread is allowed write and work thread is allowed to read only - TBool iShutdown; - - // A boolean indicating wether the refresh is canceled - // Main thread is allowed write and work thread is allowed to read only - TBool iCanceled; - - // A boolean indicating if search mode enabled or disabled - // Main thread is allowed write and work thread is allowed to read only - TBool iSearchEnabled; - - // Own: For finding files and directories from file system - CGflmFileFinder* iFileFinder; - - // Own: Stores currently used sort method - // Main thread is allowed write and work thread is allowed to read only - TGflmSortMethod iSortMethod; - - // Own: Stores currently used sort method in search mode - // Main thread is allowed write and work thread is allowed to read only - TGflmSortMethod iSearchSortMethod; - - // Own: Stores currently used refresh mode - // Main thread is allowed write and work thread is allowed to read only - TGflmRefreshMode iRefreshMode; - - }; - -#endif // CGFLMFILELISTMODEL_H - -// End of File