videocollection/videocollectionwrapper/inc/videocollectionwrapper_p.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 09:50:14 +0300
changeset 52 e3cecb93e76a
parent 46 adbe7d5ba2f5
child 58 d2b028fd1f7d
permissions -rw-r--r--
Revision: 201031 Kit: 201033

/*
* Copyright (c) 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:   VideoCollectionWrapperPrivate class definition
* 
*/

#ifndef __VIDEOCOLLECTIONWRAPPERPRIVATE_H__
#define __VIDEOCOLLECTIONWRAPPERPRIVATE_H__


// INCLUDES
#include <QObject>
#include <QPointer>
#include <qabstractitemmodel.h>
#include "videocollectioncommon.h"

// FORWARD DECLARATIONS
class CMPXMediaArray;
class CMPXMedia;
class VideoListDataModel;
class VideoSortFilterProxyModel;

class VideoCollectionWrapperPrivate : public QObject        
{    
	Q_DISABLE_COPY(VideoCollectionWrapperPrivate) 
	
	/**
     * define to be able to use signals and slots
     */
    Q_OBJECT
	
public: // Constructor

	/**
	* Default constructor
    */
	VideoCollectionWrapperPrivate();	
	
	/**
	 * Destructor
	 */
	~VideoCollectionWrapperPrivate();	

    /**
     * Returns the pointer into model. Creates the model if it doesn't exists yet.
     * 
     * Noter that if application has signaled aboutToQuit -signal indicating closing, all
     * previously created models have been removed and new ones will not be created 
     * anymore
     *  
     * @param type type of model
     * @return address of model, NULL if creation did not succeed or if application is closing.
     */    
	VideoSortFilterProxyModel* getModel(VideoCollectionCommon::TModelType &type);

private slots:
  
    
    /**
     * Signaled when UI environment is about to be destroyed. 
     * All models needs to be cleaned up before of that.
     * 
     */
    void aboutToQuitSlot();
           
private:
    
	/**
     * data model for all videos
     */
	QPointer<VideoSortFilterProxyModel> mAllVideosModel;
	
	/**
	 * data model for collections
	 */
	QPointer<VideoSortFilterProxyModel> mCollectionsModel;
	
	/**
	 * data model for collection content
	 */
    QPointer<VideoSortFilterProxyModel> mCollectionContentModel;
	
	/**
	 * data model for collection content
	 */
	QPointer<VideoSortFilterProxyModel> mGenericModel;
	
	/**
	 * source model
	 */
	QPointer<VideoListDataModel>        mSourceModel;
	
	/**
	 * flag to indicate, that object is to be deallocated, so no
	 * models are to be returned anymore 
	 */
	bool mAboutToClose;
    
};
#endif  // __VIDEOCOLLECTIONWRAPPERPRIVATE_H__

// End of file