diff -r 4e84c994a771 -r 82baf59ce8dd mpviewplugins/mpplaybackviewplugin/src/mpplaybackview.cpp --- a/mpviewplugins/mpplaybackviewplugin/src/mpplaybackview.cpp Fri Mar 19 09:28:13 2010 +0200 +++ b/mpviewplugins/mpplaybackviewplugin/src/mpplaybackview.cpp Fri Apr 16 14:56:30 2010 +0300 @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include "mpplaybackview.h" #include "mpplaybackwidget.h" @@ -31,6 +33,7 @@ #include "mpsettingsmanager.h" #include "mpcommondefs.h" #include "mptrace.h" +#include "mpequalizerwidget.h" /*! @@ -54,15 +57,18 @@ Constructs the playback view. */ MpPlaybackView::MpPlaybackView() - : mFrameworkWrapper(0), - mPlaybackData(0), - mPlaybackWidget(0), - mSoftKeyBack(0), - mActivated(false), - mPlayIcon(0), - mPauseIcon(0), - mShuffleOnIcon(0), - mShuffleOffIcon(0) + : mFrameworkWrapper( 0 ), + mPlaybackData( 0 ), + mPlaybackWidget( 0 ), + mEqualizerWidget( new MpEqualizerWidget() ), + mSoftKeyBack( 0 ), + mActivated( false ), + mPlayIcon( 0 ), + mPauseIcon( 0 ), + mShuffleOnIcon( 0 ), + mShuffleOffIcon( 0 ), + mMpTranslator( 0 ), + mCommonTranslator( 0 ) { TX_LOG } @@ -79,6 +85,9 @@ delete mPauseIcon; delete mShuffleOnIcon; delete mShuffleOffIcon; + delete mEqualizerWidget; + delete mMpTranslator; + delete mCommonTranslator; TX_EXIT } @@ -90,28 +99,49 @@ { TX_ENTRY + //Load musicplayer and common translators + QString lang = QLocale::system().name(); + QString path = QString( "z:/resource/qt/translations/" ); + bool translatorLoaded = false; + + mMpTranslator = new QTranslator( this ); + translatorLoaded = mMpTranslator->load( path + "musicplayer_" + lang ); + TX_LOG_ARGS( "Loading translator ok=" << translatorLoaded ); + if ( translatorLoaded ) { + qApp->installTranslator( mMpTranslator ); + } + + mCommonTranslator = new QTranslator( this ); + translatorLoaded = mCommonTranslator->load( path + "common_" + lang ); + TX_LOG_ARGS( "Loading common translator ok=" << translatorLoaded ); + if ( translatorLoaded ) { + qApp->installTranslator( mCommonTranslator ); + } + mWindow = mainWindow(); - mSoftKeyBack = new HbAction(Hb::BackAction, this); - connect( mSoftKeyBack, SIGNAL(triggered()), this, SLOT(back()) ); + mSoftKeyBack = new HbAction( Hb::BackAction, this ); + connect( mSoftKeyBack, SIGNAL( triggered() ), this, SLOT( back() ) ); mFrameworkWrapper = new MpMpxPbFrameworkWrapper(); mPlaybackData = mFrameworkWrapper->playbackData(); - connect( mPlaybackData, SIGNAL(playbackStateChanged()), - this, SLOT(playbackStateChanged()) ); + connect( mPlaybackData, SIGNAL( playbackStateChanged() ), + this, SLOT( playbackStateChanged() ) ); - mPlaybackWidget = new MpPlaybackWidget(mPlaybackData); - connect( mPlaybackWidget, SIGNAL(setPlaybackPosition(int)), mFrameworkWrapper, SLOT( setPosition(int) ) ); + mPlaybackWidget = new MpPlaybackWidget( mPlaybackData ); + connect( mPlaybackWidget, SIGNAL( setPlaybackPosition( int ) ), mFrameworkWrapper, SLOT( setPosition( int ) ) ); - setWidget(mPlaybackWidget); + setWidget( mPlaybackWidget ); setupMenu(); setupToolbar(); + mEqualizerWidget->prepareDialog(); + // Observe changes in settings. - connect( MpSettingsManager::instance(), SIGNAL(shuffleChanged(bool)), - this, SLOT(shuffleChanged(bool)) ); - connect( MpSettingsManager::instance(), SIGNAL(repeatChanged(bool)), - this, SLOT(repeatChanged(bool)) ); + connect( MpSettingsManager::instance(), SIGNAL( shuffleChanged( bool ) ), + this, SLOT( shuffleChanged( bool ) ) ); + connect( MpSettingsManager::instance(), SIGNAL( repeatChanged( bool ) ), + this, SLOT( repeatChanged( bool ) ) ); TX_EXIT } @@ -123,7 +153,7 @@ { TX_ENTRY mActivated = true; - mWindow->addSoftKeyAction(Hb::SecondarySoftKey, mSoftKeyBack); + setNavigationAction( mSoftKeyBack ); TX_EXIT } @@ -133,18 +163,24 @@ void MpPlaybackView::deactivateView() { TX_ENTRY - mWindow->removeSoftKeyAction(Hb::SecondarySoftKey, mSoftKeyBack); + if ( mEqualizerWidget->isActive() ) { + mEqualizerWidget->close(); + } + + menu()->close(); + + setNavigationAction( 0 ); mActivated = false; TX_EXIT } /*! - Slot to be called to activate collection view. + Slot to be called to activate settings view. */ -void MpPlaybackView::startCollectionView() +void MpPlaybackView::startSettingsView() { TX_LOG - emit command( MpCommon::ActivateCollectionView ); + emit command( MpCommon::ActivateSettingsView ); } /*! @@ -174,20 +210,20 @@ /*! Slot to handle playback state changed. */ -void MpPlaybackView::playbackStateChanged( ) +void MpPlaybackView::playbackStateChanged() { TX_ENTRY switch ( mPlaybackData->playbackState() ) { case MpPlaybackData::Playing: - TX_LOG_ARGS("MpPlaybackData::Playing") + TX_LOG_ARGS( "MpPlaybackData::Playing" ) mPlayPauseAction->setIcon( *mPauseIcon ); break; case MpPlaybackData::Paused: - TX_LOG_ARGS("MpPlaybackData::Paused") + TX_LOG_ARGS( "MpPlaybackData::Paused" ) mPlayPauseAction->setIcon( *mPlayIcon ); break; case MpPlaybackData::Stopped: - TX_LOG_ARGS("MpPlaybackData::Paused") + TX_LOG_ARGS( "MpPlaybackData::Paused" ) if ( mViewMode == MpCommon::FetchView ) { back(); } @@ -203,12 +239,22 @@ } /*! + Slot to handle flip action. + */ +void MpPlaybackView::flip() +{ + TX_ENTRY + emit command( MpCommon::ActivateDetailsView ); + TX_EXIT +} + +/*! Slot to handle shuffle toggle. */ void MpPlaybackView::toggleShuffle() { mFrameworkWrapper->setShuffle( !mShuffle ); - MpSettingsManager::setShuffle(!mShuffle); + MpSettingsManager::setShuffle( !mShuffle ); } /*! @@ -217,7 +263,7 @@ void MpPlaybackView::shuffleChanged( bool shuffle ) { mShuffle = shuffle; - mShuffleAction->setIcon( mShuffle ? *mShuffleOnIcon : *mShuffleOffIcon); + mShuffleAction->setIcon( mShuffle ? *mShuffleOnIcon : *mShuffleOffIcon ); } /*! @@ -225,17 +271,17 @@ */ void MpPlaybackView::toggleRepeat() { - mFrameworkWrapper->setRepeat(!mRepeat); - MpSettingsManager::setRepeat(!mRepeat); + mFrameworkWrapper->setRepeat( !mRepeat ); + MpSettingsManager::setRepeat( !mRepeat ); } /*! Slot to handle /a repeat setting change. */ -void MpPlaybackView::repeatChanged(bool repeat) +void MpPlaybackView::repeatChanged( bool repeat ) { mRepeat = repeat; - mRepeatAction->setText( mRepeat ? tr("Repeat off") : tr("Repeat on")); + mRepeatAction->setText( mRepeat ? hbTrId( "txt_mus_opt_repeat_off" ) : hbTrId( "txt_mus_opt_repeat_on" ) ); } /*! @@ -258,11 +304,12 @@ if ( mViewMode == MpCommon::DefaultView ) { mRepeat = MpSettingsManager::repeat(); HbMenu* myMenu = new HbMenu(); - connect( myMenu->addAction(tr("Go to music library")), SIGNAL(triggered()), this, SLOT(startCollectionView()) ); - mRepeatAction = myMenu->addAction( mRepeat ? tr("Repeat off") : tr("Repeat on")); - connect( mRepeatAction , SIGNAL(triggered()), this, SLOT(toggleRepeat()) ); - connect( myMenu->addAction(tr("Exit")), SIGNAL(triggered()), this, SLOT(exit()) ); - setMenu(myMenu); + connect( myMenu->addAction( hbTrId( "txt_mus_opt_equalizer" ) ), SIGNAL( triggered() ), this, SLOT( showEqualizerDialog() ) ); + connect( myMenu->addAction( hbTrId( "txt_mus_opt_audio_effects" ) ), SIGNAL( triggered() ), this, SLOT( startSettingsView() ) ); + mRepeatAction = myMenu->addAction( mRepeat ? hbTrId( "txt_mus_opt_repeat_off" ) : hbTrId( "txt_mus_opt_repeat_on" ) ); + connect( mRepeatAction , SIGNAL( triggered() ), this, SLOT( toggleRepeat() ) ); + connect( myMenu->addAction( hbTrId( "txt_common_opt_exit" ) ), SIGNAL( triggered() ), this, SLOT( exit() ) ); + setMenu( myMenu ); } TX_EXIT } @@ -274,72 +321,86 @@ { TX_ENTRY HbToolBar *toolBar = this->toolBar(); - toolBar->setOrientation(Qt::Horizontal); + toolBar->setOrientation( Qt::Horizontal ); QActionGroup *actionsGroup = new QActionGroup( toolBar ); if ( mViewMode == MpCommon::DefaultView ) { - mShuffleOnIcon = new HbIcon(":/playbackviewicons/shuffle_on.svg"); - mShuffleOffIcon = new HbIcon( ":/playbackviewicons/shuffle_off.svg"); - mShuffleAction = new HbAction(actionsGroup); + mShuffleOnIcon = new HbIcon( "qtg_mono_shuffle" ); + mShuffleOffIcon = new HbIcon( "qtg_mono_shuffle_off" ); + mShuffleAction = new HbAction( actionsGroup ); mShuffle = MpSettingsManager::shuffle(); - mShuffleAction->setIcon( mShuffle ? *mShuffleOnIcon : *mShuffleOffIcon); + mShuffleAction->setIcon( mShuffle ? *mShuffleOnIcon : *mShuffleOffIcon ); mShuffleAction->setCheckable( false ); - connect( mShuffleAction, SIGNAL(triggered(bool)), - this, SLOT(toggleShuffle()) ); + connect( mShuffleAction, SIGNAL( triggered( bool ) ), + this, SLOT( toggleShuffle() ) ); toolBar->addAction( mShuffleAction ); - HbAction *action = new HbAction(actionsGroup); - action->setIcon( HbIcon( ":/playbackviewicons/prev.svg") ); + HbAction *action = new HbAction( actionsGroup ); + action->setIcon( HbIcon( "qtg_mono_previous" ) ); action->setCheckable( false ); - connect( action, SIGNAL(triggered(bool)), - mFrameworkWrapper, SLOT(skipBackward()) ); + connect( action, SIGNAL( triggered( bool ) ), + mFrameworkWrapper, SLOT( skipBackward() ) ); toolBar->addAction( action ); - mPlayPauseAction = new HbAction(actionsGroup); - mPlayIcon = new HbIcon(":/playbackviewicons/play.svg"); - mPauseIcon = new HbIcon( ":/playbackviewicons/pause.svg" ); + mPlayPauseAction = new HbAction( actionsGroup ); + mPlayIcon = new HbIcon( "qtg_mono_play" ); + mPauseIcon = new HbIcon( "qtg_mono_pause" ); mPlayPauseAction->setIcon( *mPlayIcon ); mPlayPauseAction->setCheckable( false ); - connect( mPlayPauseAction, SIGNAL(triggered(bool)), - mFrameworkWrapper, SLOT(playPause()) ); + connect( mPlayPauseAction, SIGNAL( triggered( bool ) ), + mFrameworkWrapper, SLOT( playPause() ) ); toolBar->addAction( mPlayPauseAction ); - action = new HbAction(actionsGroup); - action->setIcon( HbIcon(":/playbackviewicons/next.svg") ); + action = new HbAction( actionsGroup ); + action->setIcon( HbIcon( "qtg_mono_next" ) ); action->setCheckable( false ); - connect( action, SIGNAL(triggered(bool)), - mFrameworkWrapper, SLOT(skipForward()) ); + connect( action, SIGNAL( triggered( bool ) ), + mFrameworkWrapper, SLOT( skipForward() ) ); toolBar->addAction( action ); - HbIcon icon( ":/playbackviewicons/info.svg" ); - action = new HbAction(actionsGroup); + HbIcon icon( "qtg_mono_info" ); + action = new HbAction( actionsGroup ); action->setIcon( icon ); action->setCheckable( false ); - /* - connect( action, SIGNAL(triggered(bool)), - this, SLOT( flip()) ); - */ + + connect( action, SIGNAL( triggered( bool ) ), + this, SLOT( flip() ) ); + toolBar->addAction( action ); } else { // Fetch mode - HbAction *action = new HbAction(actionsGroup); - action->setIcon( HbIcon(":/playbackviewicons/select.png") ); + HbAction *action = new HbAction( actionsGroup ); + action->setIcon( HbIcon( "qtg_mono_tick" ) ); action->setCheckable( false ); - connect( action, SIGNAL(triggered(bool)), - this, SLOT(handleSongSelected()) ); + connect( action, SIGNAL( triggered( bool ) ), + this, SLOT( handleSongSelected() ) ); toolBar->addAction( action ); - - mPlayPauseAction = new HbAction(actionsGroup); - mPlayIcon = new HbIcon(":/playbackviewicons/play.svg"); - mPauseIcon = new HbIcon( ":/playbackviewicons/pause.svg" ); + + mPlayPauseAction = new HbAction( actionsGroup ); + mPlayIcon = new HbIcon( "qtg_mono_play" ); + mPauseIcon = new HbIcon( "qtg_mono_pause" ); mPlayPauseAction->setIcon( *mPlayIcon ); mPlayPauseAction->setCheckable( false ); - connect( mPlayPauseAction, SIGNAL(triggered(bool)), - mFrameworkWrapper, SLOT(playPause()) ); + connect( mPlayPauseAction, SIGNAL( triggered( bool ) ), + mFrameworkWrapper, SLOT( playPause() ) ); toolBar->addAction( mPlayPauseAction ); } TX_EXIT } +/*! + Slot to be called to activate equalizer dialog. + */ +void MpPlaybackView::showEqualizerDialog() +{ + TX_ENTRY + + if( mEqualizerWidget ) + { + mEqualizerWidget->exec(); + } + + TX_EXIT +}