mpviewplugins/mpcollectionviewplugin/inc/mpcollectionview.h
branchRCL_3
changeset 52 14979e23cb5e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionview.h	Tue Aug 31 15:12:29 2010 +0300
@@ -0,0 +1,163 @@
+/*
+* 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: Music Player collection view.
+*
+*/
+
+#ifndef MPCOLLECTIONVIEW_H
+#define MPCOLLECTIONVIEW_H
+
+#include <QObject>
+
+#include <hbeffect.h>
+
+#include "mpviewbase.h"
+#include "mpmpxcollectionviewdefs.h"
+
+class QActionGroup;
+class HbMainWindow;
+class HbAction;
+class HbMenu;
+class HbToolBar;
+class MpCollectionDocumentLoader;
+class MpCollectionContainerFactory;
+class MpCollectionContainer;
+class MpCollectionDataModel;
+class MpEngine;
+class MpMpxCollectionData;
+class MpNowPlayingWidget;
+class MpSnapshotWidget;
+class MpCollectionPopupHandler;
+
+class MpCollectionView : public MpViewBase
+{
+    Q_OBJECT
+
+public:
+
+    MpCollectionView();
+    virtual ~MpCollectionView();
+
+    void initializeView();
+    void activateView();
+    void deactivateView();
+    bool isActivated();    
+    void openItem( int index );
+    void showItemDetails( int index );
+
+signals:
+
+    void command( int command );
+
+public slots:
+
+    void setContext( TCollectionContext context );
+
+    void openSongs();
+    void openArtists();
+    void openAlbums();
+    void openPlaylists();
+    void find();
+    void openMusicStore();
+
+    void openIndex( int index );
+    void findAlbumSongs( int index );
+    void playAlbumSongs( int albumIndex, int songIndex );
+
+    void back();
+    void exit();
+
+    void startPlaybackView();
+    void attachNowPlayingBanner( bool active );
+    void containerTransitionComplete( const HbEffect::EffectStatus &status );
+
+    void shufflePlayAll();
+    void addToPlaylist();
+    void deleteSongs();
+    void renameCurrentPlaylistContainer();
+
+    void playlistSaved( bool success );
+    void songsDeleted( bool success );
+    void playlistsRenamed( bool success );
+
+    void prepareToAddToPlaylist();
+    void handleIsolatedCollectionOpened( MpMpxCollectionData* collectionData );
+    void arrangeSongs();
+    void openContextMenu( int index, const QPointF &coords );
+
+    void handleUsbBlocked( bool blocked );
+    void handleLibraryAboutToUpdate();
+    void handleLibraryUpdated();
+
+    void setShuffleAction( bool enabled );
+    
+    void containerDataChanged();
+
+private:
+
+    void setMainToolBar();
+    void setPlaylistToolBar();
+
+    HbAction *createToolBarAction( QActionGroup *actionsGroup,
+        const QString& icon, const QString& objectName );
+
+    void updateMenu();
+    void addDefaultMenuOptions( HbMenu *menu, bool optRefresh, bool optExit );
+    void updateToolBar();
+    void setSoftkey();
+
+    void setBannerVisibility( bool visible );
+    int generateShuffleIndex();
+    void startContainerTransition( TCollectionContext contextFrom, TCollectionContext contextTo );
+    void closeActiveDialog( bool onlyContextMenu = false );
+    void showCorruptedNote();
+
+private:
+
+    TCollectionContext              mCollectionContext;
+
+    MpEngine                        *mMpEngine;             // Not own
+    MpMpxCollectionData             *mCollectionData;       // Not own
+
+    MpCollectionContainerFactory    *mContainerFactory;     // Own
+    MpCollectionContainer           *mCollectionContainer;  // Not own
+    MpCollectionDataModel           *mCollectionDataModel;  // Own
+
+    bool                            mActivated;
+    MpNowPlayingWidget              *mNowPlayingBanner;     // Own
+    bool                            mBannerAttached;
+
+    HbMainWindow                    *mWindow;               // Not own
+    HbAction                        *mSoftKeyQuit;          // Not own
+    HbAction                        *mSoftKeyBack;          // Not own
+    HbAction                        *mShuffleAction;        // Not own
+    bool                            mShuffleEnabled;
+
+    MpCollectionDocumentLoader      *mDocumentLoader;       // Own
+    HbWidget                        *mMainContainer;        // Own
+
+    HbToolBar                       *mMainToolBar;
+    HbToolBar                       *mPlaylistToolBar;
+
+    MpSnapshotWidget                *mSnapshot;
+
+    bool                            mActivationWaiting;
+    MpCollectionPopupHandler        *mMpPopupHandler;       // Own
+
+    bool                            mUsbBlocked;
+
+};
+
+#endif  // MPCOLLECTIONVIEW_H
+