diff -r f3d95d9c00ab -r 46974bebc798 radioapp/radiowidgets/src/radioviewbase.cpp --- /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 +#include +#include +#include + +#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( 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( name ) ) + { + connectAndTest( action, signal, receiver, slot ); + } +} + +/*! + * + */ +void RadioViewBase::connectViewChangeMenuItem( QString name, const char* slot ) +{ + if ( QObject* action = mUiLoader->findObject( name ) ) + { + connectAndTest( action, SIGNAL(triggered()), mMainWindow, slot ); + } +} + +/*! + * + */ +void RadioViewBase::setOrientation() +{ + // Default implementation does nothing +}