--- 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 <e32base.h>
-#include <bamdesca.h>
-#include <badesca.h>
-#include <CLFContentListing.hrh>
-#include <MCLFChangedItemObserver.h>
-#include <MCLFPostFilter.h>
-
-// 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<TCLFMediaType>& 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<MCLFItem*>& aItemList,
- RPointerArray<MCLFItem>& 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<CFLDEntryReference> iEntryReferences;
-
- /// Optional text items in the beginning of the list
- RPointerArray<HBufC> iNullTextArray;
-
- /// Optional ringing tones for null texts
- RPointerArray<HBufC> iNullTextRingingToneArray;
-
- /// Optional text items in the end of the list
- RPointerArray<HBufC> iEndNullTextArray;
-
- /// Optional ringing tones for end null items
- RPointerArray<HBufC> iEndNullTextRingingToneArray;
-
- /// For waiting the asynchronous refresh operation to complete
- CActiveSchedulerWait iWait;
-
- /// Array for exclusive mimetypes.
- CDesCArraySeg iExclusiveMimeTypes;
-
- /// Array for exclusive mediatypes.
- RArray<TInt32> 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<MCLFModifiableItem> iRomRingingToneArray;
-
- /// Maximum file size in bytes
- TInt iMaxFileSize;
-
- /// Popup list
- CFLDPopupList* iPopupList;
-
- /// Using ROM tones only
- TBool iRomTonesOnly;
- };
-
-#endif // __CFLDFILELISTMODEL_H__
-
-// End of File