diff -r 3f8368f032cf -r e3554c9069b6 profilesservices/FileList/Inc/CFLDFileListModel.h --- a/profilesservices/FileList/Inc/CFLDFileListModel.h Tue Feb 02 00:22:03 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,379 +0,0 @@ -/* -* Copyright (c) 2002 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: -* This class implements a model of a file list. -* The class is inherited from MDesCArray, so it can be used directly -* as a model for a listbox. -* -* -*/ - - - -#ifndef __CFLDFILELISTMODEL_H__ -#define __CFLDFILELISTMODEL_H__ - -// INTERNAL INCLUDES - -// EXTERNAL INCLUDES -#include -#include -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class CFLDOperationObserver; -class CFLDChangedItemObserver; -class MCLFContentListingEngine; -class MCLFItemListModel; -class CFLDEntryReference; -class MFLDEntryFormatter; -class CFLDWaitNote; -class RConeResourceLoader; -class TResourceReader; -class MCLFModifiableItem; -class CFLDPopupList; - -// CLASS DECLARATION -/** -* This class implements a model of a file list. -* The class is inherited from MDesCArray, so it can be used directly -* as a model for a listbox. -* -* @lib filelist.lib -* @since 2.1 -*/ -NONSHARABLE_CLASS( CFLDFileListModel ) - : public CBase, public MDesCArray, public MCLFPostFilter - { - public: // Constructors and destructors - - /** - * Two-phased static constructor. - * @param aModelResourceId A CLF model resource, see CLFContentListing.rh - * @param aDirectoriesResourceId A resource using FILELISTDIRECTORIES - * structure, see FileListModel.rh for details - * @return A pointer to a constructed CFLDFileListModel object - */ - static CFLDFileListModel* NewL( - const TInt aModelResourceId, const TInt aDirectoriesResourceId ); - - /** - * Two-phased static constructor. - * @param aModelResourceId A CLF model resource, see CLFContentListing.rh - * @param aDirectoriesResourceId A resource using FILELISTDIRECTORIES - * structure, see FileListModel.rh for details - * @return A pointer to a constructed CFLDFileListModel object - */ - static CFLDFileListModel* NewLC( - const TInt aModelResourceId, const TInt aDirectoriesResourceId ); - - /** - * Destructor. - */ - virtual ~CFLDFileListModel(); - - private: // Constructors and destructors - - /** - * Constructor - */ - CFLDFileListModel(); - - /** - * Second phase constructor - * @param aModelResourceId A CLF model resource, see CLFContentListing.rh - * @param aDirectoriesResourceId A resource using FILELISTDIRECTORIES - * structure, see FileListModel.rh for details - */ - void ConstructL( - const TInt aModelResourceId, const TInt aDirectoriesResourceId ); - - public: // New methods - - /** - * Returns file media type - * @param aFileName A descriptor containing the media file name - * @return Media file type (see TCLFMediaType enumeration - * inside CFLContentListing.hrh) - */ - TInt32 MediaFileType( const TDesC& aFileName ) const; - - /** - * Adds a new MIME type into blocking list. - * @param aMimeType The blocked MIME type - */ - void AddExclusiveMimeTypeL( const TDesC& aMimeType ); - - /** - * Adds a new media type into blocking list. - * @param aMediaType The blocked media type (see TCLFMediaType enumeration - * inside CFLContentListing.hrh) - */ - void AddExclusiveMediaTypeL( const TInt32 aMediaType ); - - /** - * Removes all the defined exlusive MIME types - */ - void ResetExclusiveMimeTypes(); - - /** - * Removes all the defined exlusive media types - */ - void ResetExclusiveMediaTypes(); - - /** - * Sets wanted mime types. Overrides all settings defined inside - * resource, defined with AddExclusive -methods or with - * SetWanted -methods. - * @param aMimeTypes The array containing wanted MIME types - */ - void SetWantedMimeTypesL( const MDesCArray& aMimeTypes ); - - /** - * Sets wanted media types. Overrides all settings defined inside - * resource, defined with AddExclusive -methods or with - * SetWanted -methods. - * @param aMediaTypes The array containing wanted media types - */ - void SetWantedMediaTypesL( const TArray& aMediaTypes ); - - /** - * Refreshes the file list. - */ - void RefreshEntryListL(); - - /** - * Sets popup list to Model. Needed to update the listbox after the - * model has changed (e.g. after inserting a memory card). - * @param aPopupList The popup list - */ - void SetPopupList( CFLDPopupList* aPopupList ); - - /** - * Retrieves a full path of an entry (e.g. "c:\folder\file.ext") - * @param aFileName A modifiable descriptor where the path and filename - * is placed, or KNullDesc if aIndex points to the null text item. - * Note: aFileName.Length() >= KMaxFileName - * @param aIndex Index of the entry to retrieve - */ - void GetFileName( TDes& aFileName, const TInt aIndex ); - - /** - * Sets an MFLDEntryFormatter inherited for the model. Ownership of the given - * object is transferred to CFLDFileListModel. - * @param aFormatter A pointer to a MFLDEntryFormatter inherited object. - */ - void SetEntryFormatter( MFLDEntryFormatter* aFormatter ); - - /** - * Adds a text (e.g. "None") as the first item of the list, - * which will not be sorted among the file name items. - * @param aItemText A descriptor containing the null item text - */ - void InsertNullItemL( const TDesC& aItemText ); - - /** - * Adds a text (e.g. "None") as the first item of the list, - * which will not be sorted among the file name items. - * @param aItemText A descriptor containing the null item text - * @param aFileName A descriptor containing the ringing tone file name form null item - */ - void InsertNullItemL( const TDesC& aItemText, const TDesC& aFileName ); - - /** - * Adds a text (e.g. "None") as the last item of the list, - * which will not be sorted among the file name items. - * @param aItemText A descriptor containing the null item text - */ - void InsertEndNullItemL( const TDesC& aItemText ); - - /** - * Adds a text (e.g. "None") as the last item of the list, - * which will not be sorted among the file name items. - * @param aItemText A descriptor containing the null item text - * @param aFileName A descriptor containing the ringing tone file name form null item - */ - void InsertEndNullItemL( const TDesC& aItemText, const TDesC& aFileName ); - - /** - * Find a file from the model's list - * @param aFileName The file name to be searched - * @return An index to the searched file, or KErrNotFound - */ - TInt FindFileL( const TDesC& aFileName ); - - /** - * Sets the maximum file size for the list. - * @param aMaxFileSize The maximum file size in bytes. If you want to allow all file - * sizes, set this to KFLDNoSizeFiltering (defined in FileListModel.hrh). - */ - void SetMaxFileSize( const TInt aMaxFileSize ); - - /** - * Returns PopupList. - */ - CFLDPopupList* GetPopupList(); - - private: // Methods derived from MDesCArray - - TPtrC16 MdcaPoint( TInt aIndex ) const; - - TInt MdcaCount() const; - - private: // Methods derived from MCLFPostFilter - - void FilterItemsL( const TArray& aItemList, - RPointerArray& aFilteredItemList ); - - private: // New methods - - /* - * Checks if file needs to be filtered out from model - * @param aMimeType Media MIME type - * @param aMediaType Media type - * @param aPathAndFileName Path and filename - * @return EFalse if MO should be filtered out - */ - TBool CheckRules( - TPtrC& aMimeType, TInt32 aMediaType, TPtrC& aPathAndFileName ); - - /** - * Fill the entry reference list according to the added directories list - * and filtering parameters - */ - void PopulateReferenceListL(); - - /** - * List all files from the list model to the list box. - */ - void PopulateListBoxL(); - - /** - * Gets a filename at specific index. - * @param aIndex Index of the file (whole list is indexed) - * @param aFileName Descriptor where the filename is stored. - */ - void GetFileNameAtIndex( TInt aIndex, TDes& aFileName ) const; - - /** - * Scans user defined Rom directories and adds found entries - * into iRomRingingToneArray - */ - void ScanRomDirectoriesL(); - - /** - * Scans user defined Rom directories and adds found entries - * into iRomRingingToneArray - */ - void ScanRomDirectoriesAndInsertL(); - - /** - * Adds directory into iDirectoryPaths - * @param aDirectory Directory to be scanned - */ - TInt AddDirectoryL( const TDesC& aDirectory ); - - /** - * Adds directory into iRomDirectoryPaths - * @param aDirectory Directory to be scanned - */ - TInt AddRomDirectoryL( const TDesC& aDirectory ); - - /** - * Loads directories from resource file - * @param aDirectoriesResourceId Resource ID to directory structure - */ - void LoadDirectoriesL( const TInt aDirectoriesResourceId ); - - /** - * Checks ringing tone file size. - * @param aFile file to check. - * @param aSizeLimit maximum allowed file size in bytes. - * @return KErrNone, if ok. - * KErrTooBig, if configurable file size limit exceeded. - */ - TInt CheckToneFileSizeL( const TDesC& aFile, TInt aSizeLimit ); - - private: // Data - - /// Own: Content listing engine - MCLFContentListingEngine* iEngine; - - /// Own: Content listing model - MCLFItemListModel* iModel; - - /// Own: Content listeng operation observer - CFLDOperationObserver* iObserver; - - /// Own: Content listeng operation observer - CFLDChangedItemObserver* iChangedItemObserver; - - /// Own: MFLDEntryFormatter to use in formatting the entries - MFLDEntryFormatter* iEntryFormatter; - - /// Own: Wait note dialog for indicating refreshing process of the List Model - CFLDWaitNote* iWaitNote; - - /// Contains references to all the entries. This is the list that - /// gets sorted and filtered - RPointerArray iEntryReferences; - - /// Optional text items in the beginning of the list - RPointerArray iNullTextArray; - - /// Optional ringing tones for null texts - RPointerArray iNullTextRingingToneArray; - - /// Optional text items in the end of the list - RPointerArray iEndNullTextArray; - - /// Optional ringing tones for end null items - RPointerArray iEndNullTextRingingToneArray; - - /// For waiting the asynchronous refresh operation to complete - CActiveSchedulerWait iWait; - - /// Array for exclusive mimetypes. - CDesCArraySeg iExclusiveMimeTypes; - - /// Array for exclusive mediatypes. - RArray iExclusiveMediaTypes; - - /// Contains descriptors containing - /// the user-defined phone directory paths - CDesCArraySeg iDirectoryPaths; - - /// Contains descriptors containing - /// the user-defined ROM directory paths - CDesCArraySeg iRomDirectoryPaths; - - /// Array for user-defined ringingtones - RPointerArray iRomRingingToneArray; - - /// Maximum file size in bytes - TInt iMaxFileSize; - - /// Popup list - CFLDPopupList* iPopupList; - - /// Using ROM tones only - TBool iRomTonesOnly; - }; - -#endif // __CFLDFILELISTMODEL_H__ - -// End of File