radioapp/radiowidgets/src/radiostationsview.cpp
changeset 34 bc10a61bd7d3
parent 28 075425b8d9a4
child 36 ba22309243a1
--- a/radioapp/radiowidgets/src/radiostationsview.cpp	Fri Jun 11 13:38:32 2010 +0300
+++ b/radioapp/radiowidgets/src/radiostationsview.cpp	Fri Jun 25 19:09:05 2010 +0300
@@ -119,12 +119,21 @@
     *mSelectedStation = mFilterModel->data( item->modelIndex(), RadioRole::RadioStationRole ).value<RadioStation>();
 
     HbAction* favoriteAction = mUiLoader->findObject<HbAction>( DOCML::NAME_CONTEXT_FAVORITE );
+
     if ( mSelectedStation->isFavorite() ) {
         favoriteAction->setText( hbTrId( "txt_rad_menu_remove_favourite" ) );
     } else {
         favoriteAction->setText( hbTrId( "txt_rad_menu_add_to_favourites" ) );
     }
 
+    HbAction* playAction = mUiLoader->findObject<HbAction>( DOCML::SV_NAME_PLAY_ACTION );
+
+    if ( mSelectedStation->frequency() == mUiEngine->currentFrequency() ) {
+        playAction->setVisible( false );
+    } else {
+        playAction->setVisible( true );
+    }
+
     menu->setPreferredPos( QPointF( size().width() / 2 - menu->size().width() / 2, coords.y() - menu->size().height() / 2 ) );
     menu->show();
 }
@@ -224,6 +233,16 @@
  * Private slot
  *
  */
+void RadioStationsView::play()
+{
+    LOG("Play from context menu");
+    mUiEngine->setFrequency( mSelectedStation->frequency(), TuneReason::StationsList );
+}
+
+/*!
+ * Private slot
+ *
+ */
 void RadioStationsView::rename()
 {
     HbInputDialog* nameQuery = new HbInputDialog();
@@ -315,6 +334,8 @@
                        this,                            SLOT(startScanning()) );
 
     // Context menu actions
+    connectXmlElement( DOCML::SV_NAME_PLAY_ACTION,      SIGNAL(triggered()),
+                       this,                            SLOT(play()) );
     connectXmlElement( DOCML::SV_NAME_RENAME_ACTION,    SIGNAL(triggered()),
                        this,                            SLOT(rename()) );
     connectXmlElement( DOCML::SV_NAME_FAVORITE_ACTION,  SIGNAL(triggered()),
@@ -358,7 +379,7 @@
         mModel->removeAll( favoriteMode ? RadioStationModel::RemoveFavorites : RadioStationModel::RemoveAll );
         updateVisibilities();
     } else if ( mCurrentQuestion == DeleteStation ) {
-        mModel->removeStation( mModel->currentStation() );
+        mModel->removeStation( *mSelectedStation );
     }
 
     mCurrentQuestion = NoQuestion;