--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/radioapp/radiowidgets/src/radioviewbase.cpp Fri Mar 19 09:29:04 2010 +0200
@@ -0,0 +1,195 @@
+/*
+* 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:
+*
+*/
+
+#include <hbmenu.h>
+#include <hbaction.h>
+#include <hbeffect.h>
+#include <qcoreapplication>
+
+#include "radioviewbase.h"
+#include "radiomainwindow.h"
+#include "radiostationmodel.h"
+#include "radioxmluiloader.h"
+#include "radiouiengine.h"
+#include "radiolocalization.h"
+#include "radiologger.h"
+
+/*!
+ *
+ */
+RadioViewBase::RadioViewBase( RadioXmlUiLoader* uiLoader, bool transient ) :
+ HbView( 0 ),
+ mMainWindow( 0 ),
+ mModel( 0 ),
+ mUiLoader( uiLoader ),
+ mTransientView( transient ),
+ mUseLoudspeakerAction( 0 ),
+ mSecondarySoftkeyction( 0 ),
+ mOrientation( Qt::Vertical )
+{
+}
+
+/*!
+ *
+ */
+RadioViewBase::~RadioViewBase()
+{
+ if ( mUiLoader )
+ {
+ mUiLoader->reset();
+ }
+}
+
+/*!
+ *
+ */
+void RadioViewBase::init( RadioMainWindow* aMainWindow, RadioStationModel* aModel )
+{
+ // Default implementation does nothing
+ Q_UNUSED( aMainWindow );
+ Q_UNUSED( aModel );
+}
+
+/*!
+ *
+ */
+bool RadioViewBase::isTransient() const
+{
+ return mTransientView;
+}
+
+/*!
+ *
+ */
+void RadioViewBase::initSecondarySoftkey()
+{
+ // The default back button activates the tuning view
+ mSecondarySoftkeyction = new HbAction( Hb::BackAction, this );
+ connectAndTest( mSecondarySoftkeyction, SIGNAL(triggered()),
+ mMainWindow, SLOT(activateTuningView()) );
+}
+
+/*!
+ *
+ */
+HbAction* RadioViewBase::secondarySoftkey() const
+{
+ return mSecondarySoftkeyction;
+}
+
+/*!
+ *
+ */
+void RadioViewBase::updateOrientation( Qt::Orientation orientation, bool forceUpdate )
+{
+ if ( orientation != mOrientation || forceUpdate )
+ {
+ mOrientation = orientation;
+ setOrientation();
+ }
+}
+
+/*!
+ * Protected slot
+ *
+ */
+void RadioViewBase::updateAudioRouting( bool loudspeaker )
+{
+ if ( mUseLoudspeakerAction ) {
+ mUseLoudspeakerAction->setText( loudspeaker ? TRANSLATE( KMenuUseHeadset ) : TRANSLATE( KMenuUseLoudspeaker ) );
+ }
+}
+
+/*!
+ * Protected slot
+ *
+ */
+void RadioViewBase::activatePreviousView()
+{
+ mMainWindow->activateTuningView();
+}
+
+/*!
+ * Protected slot
+ *
+ */
+void RadioViewBase::quit()
+{
+ qApp->quit();
+}
+
+/*!
+ *
+ */
+HbAction* RadioViewBase::addMenuItem( const QString& aTitle, QObject* aRecipient, const char* aSlot )
+{
+ HbAction* action = menu()->addAction( aTitle );
+ connectAndTest( action, SIGNAL(triggered()), aRecipient, aSlot );
+ return action;
+}
+
+/*!
+ *
+ */
+void RadioViewBase::connectCommonMenuItem( int menuItem )
+{
+ RadioUiEngine* engine = &mMainWindow->uiEngine();
+ switch ( menuItem )
+ {
+ case MenuItem::UseLoudspeaker:
+ mUseLoudspeakerAction = mUiLoader->findObject<HbAction>( DOCML_NAME_LOUDSPEAKERACTION );
+ if ( mUseLoudspeakerAction ) {
+ connectAndTest( mUseLoudspeakerAction, SIGNAL(triggered()), engine, SLOT(toggleAudioRoute()) );
+ updateAudioRouting( engine->isUsingLoudspeaker() );
+ connectAndTest( engine, SIGNAL(audioRouteChanged(bool)), this, SLOT(updateAudioRouting(bool)) );
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*!
+ *
+ */
+void RadioViewBase::connectXmlElement( const char* name, const char* signal, QObject* receiver, const char* slot )
+{
+ if ( QObject* action = mUiLoader->findObject<QObject>( name ) )
+ {
+ connectAndTest( action, signal, receiver, slot );
+ }
+}
+
+/*!
+ *
+ */
+void RadioViewBase::connectViewChangeMenuItem( QString name, const char* slot )
+{
+ if ( QObject* action = mUiLoader->findObject<QObject>( name ) )
+ {
+ connectAndTest( action, SIGNAL(triggered()), mMainWindow, slot );
+ }
+}
+
+/*!
+ *
+ */
+void RadioViewBase::setOrientation()
+{
+ // Default implementation does nothing
+}