mpviewplugins/mpcollectionviewplugin/src/mpcollectionviewplugin.cpp
branchRCL_3
changeset 52 14979e23cb5e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectionviewplugin.cpp	Tue Aug 31 15:12:29 2010 +0300
@@ -0,0 +1,154 @@
+/*
+* 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: Plugin interface for Music Player collection view.
+*
+*/
+
+#include <xqplugin.h>
+
+#include "mpcollectionviewplugin.h"
+#include "mpcollectionview.h"
+#include "mptrace.h"
+
+/*!
+    \class MpCollectionViewPlugin
+    \brief Plugin interface for Music Player collection view.
+
+    Collection view plugin provides interface to the collection view
+    beyond a plugin interface for application and view separation.
+*/
+
+/*!
+    \fn void command( int command )
+
+    This signal is emitted when the view issues a \a command to the
+    application such as request to switch to a different view.
+ */
+
+/*!
+ Constructs the collection view plugin.
+ */
+MpCollectionViewPlugin::MpCollectionViewPlugin()
+    : mView(0),
+      mState(NullView)
+{
+    TX_LOG
+}
+
+/*!
+ Destructs the collection view plugin.
+ */
+MpCollectionViewPlugin::~MpCollectionViewPlugin()
+{
+    TX_LOG
+}
+
+/*!
+ Creates the collection view.
+ */
+void MpCollectionViewPlugin::createView()
+{
+    TX_ENTRY
+    if ( mState == NullView ) {
+        mView = new MpCollectionView();
+        connect( mView, SIGNAL(command(int)), this, SIGNAL(command(int)) );
+        mState = Created;
+    }
+    TX_EXIT
+}
+
+/*!
+ Destroys the collection view.
+ */
+void MpCollectionViewPlugin::destroyView()
+{
+    TX_LOG
+    if ( mState != NullView ) {
+        delete mView;
+        mView = 0;
+        mState = NullView;
+    }
+}
+
+/*!
+ Activates the collection view. View initialization is done very first time.
+ */
+void MpCollectionViewPlugin::activateView()
+{
+    TX_ENTRY_ARGS("mState=" << mState);
+    switch ( mState ) {
+    case Created:
+        mView->initializeView();
+        mView->activateView();
+        mState = Activated;
+        break;
+    case Initialized:
+        mView->activateView();
+        mState = Activated;
+        break;
+    default:
+        // Ignore
+        break;
+    }
+    TX_EXIT
+}
+
+/*!
+ Deactivates the collection view.
+ */
+void MpCollectionViewPlugin::deactivateView()
+{
+    TX_ENTRY
+    if ( mState == Activated ) {
+        mView->deactivateView();
+        mState = Initialized;
+    }
+    TX_EXIT
+}
+
+/*!
+ Returns pointer to QGraphicsWidget, which is the collection view.
+ The returned pointer is 0, if it is not created first.
+
+ \sa createView()
+ */
+QGraphicsWidget* MpCollectionViewPlugin::getView()
+{
+    return mView;
+}
+
+/*!
+ Slot to be called when application orientation changes.
+
+ \reimp
+ */
+void MpCollectionViewPlugin::orientationChange( Qt::Orientation orientation )
+{
+    TX_LOG
+    Q_UNUSED( orientation );
+}
+
+/*!
+ Slot to handle back command from softkey.
+
+ \reimp
+ */
+void MpCollectionViewPlugin::back()
+{
+    //do nothing, softkey is handled internally by the view.
+    TX_LOG
+}
+
+XQ_EXPORT_PLUGIN2( mpcollectionviewplugin, MpCollectionViewPlugin );
+