diff -r 000000000000 -r c53acadfccc6 clfwrapper/ClientSrc/CCLFItemListModelImpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clfwrapper/ClientSrc/CCLFItemListModelImpl.h Mon Jan 18 20:34:07 2010 +0200 @@ -0,0 +1,220 @@ +/* +* Copyright (c) 2002-2009 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: +* +*/ + + + +#ifndef CCLFITEMLISTMODELIMPL_H +#define CCLFITEMLISTMODELIMPL_H + +// INCLUDES +#include +#include "MCLFItemProviderObserver.h" +#include "MCLFChangedItemProvider.h" +#include + +// FORWARD DECLARATIONS +class MCLFOperationObserver; +class CCLFDefaultOperation; +class TResourceReader; +class CCLFDbItemProvider; +class CCLFDbItemContainer; + +// CLASS DECLARATION + +/** +* This class implements MCLFItemListModel and MCLFItemProviderObserver +* interfaces +* +* @lib ContentListingFramework.lib +* @since Series 60 3.0 +*/ +NONSHARABLE_CLASS( CCLFItemListModelImpl ) : public CBase, + public MCLFItemListModel, + public MCLFItemProviderObserver, + public MCLFChangedItemProviderObserver + + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CCLFItemListModelImpl* NewLC( + CCLFDbItemProvider* aItemProvider, + MCLFOperationObserver& aObserver, + MCLFChangedItemProvider& aChangedItemProvider ); + + /** + * Two-phased constructor. + */ + static CCLFItemListModelImpl* NewLC( + CCLFDbItemProvider* aItemProvider, + MCLFOperationObserver& aObserver, + MCLFChangedItemProvider& aChangedItemProvider, + TResourceReader& aResource ); + + /** + * Destructor. + */ + virtual ~CCLFItemListModelImpl(); + + protected: // New functions + + void ReadMimeTypeListL( TResourceReader& aResource ); + void ReadMediaTypeListL( TResourceReader& aResource ); + void CheckVersionL( TResourceReader& aResource, + TInt aVersion ); + void CopyArrayL( const TArray& aSource, + RPointerArray& aDest ); + void ResetMimeTypeArrayL(); + void ResetMediaTypeArrayL(); + + protected: // Functions from base classes + + /** + * From MCLFItemListModel + */ + const MCLFItem& Item( TInt aIndex ) const; + + /** + * From MCLFItemListModel + */ + TInt ItemCount() const; + + /** + * From MCLFItemListModel + */ + void SetSortingStyle( MCLFSortingStyle* aSortingStyle ); + + /** + * From MCLFItemListModel + */ + void AppendSecondarySortingStyleL( + MCLFSortingStyle& aSortingStyle ); + + /** + * From MCLFItemListModel + */ + void SetCustomSorter( MCLFCustomSorter* aCustomSorter ); + + /** + * From MCLFItemListModel + */ + void SetGroupingStyle( TCLFGrouping aGrouping ); + + /** + * From MCLFItemListModel + */ + void SetCustomGrouper( MCLFCustomGrouper* aCustomGrouper ); + + /** + * From MCLFItemListModel + */ + void SetPostFilter( MCLFPostFilter* aPostFilter ); + + /** + * From MCLFItemListModel + */ + void SetWantedMimeTypesL( const MDesCArray& aMimeTypes ); + + /** + * From MCLFItemListModel + */ + void SetWantedMimeTypesL( TResourceReader& aResource ); + + /** + * From MCLFItemListModel + */ + void SetWantedMediaTypesL( + const TArray& aMediaTypes ); + + /** + * From MCLFItemListModel + */ + void SetWantedMediaTypesL( TResourceReader& aResource ); + + /** + * From MCLFItemListModel + */ + void RefreshL( ); + + /** + * From MCLFItemListModel + */ + void RefreshL( TInt32 aRefreshType ); + + /** + * From MCLFItemListModel + */ + void CancelRefresh(); + + /** + * From MCLFItemProviderObserver + */ + void OperationCompleteL( TInt aError ); + + void NewChangedItemsL(); + + private: + + /** + * C++ default constructor. + */ + CCLFItemListModelImpl( + CCLFDbItemProvider* aItemProvider, + MCLFOperationObserver& aObserver, + MCLFChangedItemProvider& aChangedItemProvider ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + void ConstructL( TResourceReader& aResource ); + + private: // Data + // Own. items + RPointerArray< MCLFItem > iItemArray; + // Ref. items + RPointerArray< MCLFItem > iResultArray; + // Own mime type list + CDesCArray* iMimeTypeArray; + // Own media type list + CArrayFix< TInt >* iMediaTypeArray; + // Ref. + MCLFCustomGrouper* iGrouper; + // Ref. + MCLFCustomSorter* iSorter; + // Ref. + MCLFPostFilter* iPostFilter; + // Own + CCLFDbItemProvider* iItemProvider; + // Ref. + MCLFOperationObserver& iOperationObserver; + // Own. + CCLFDefaultOperation* iDefaultOperation; + // Own: this arrays ows sortings styles that are read from resource. + RPointerArray< MCLFSortingStyle > iSortingStyleArray; + // Ref: + MCLFChangedItemProvider& iChangedItemProvider; + // Own + TBool iIsItemsFetched; + }; + +#endif // CCLFITEMLISTMODELIMPL_H + +// End of File