qtinternetradio/ui/src/irsonghistoryview.cpp
branchGCC_SURGE
changeset 13 c9471d26c7f2
parent 12 608f67c22514
child 14 896e9dbc5f19
--- a/qtinternetradio/ui/src/irsonghistoryview.cpp	Mon Jun 21 22:33:45 2010 +0100
+++ b/qtinternetradio/ui/src/irsonghistoryview.cpp	Thu Jul 22 16:31:41 2010 +0100
@@ -31,7 +31,8 @@
 #include "irqsettings.h"
 #include "iruidefines.h"
 
- 
+const QString KActionSearchInMusicStoreName("SearchInMusicStore");
+const QString KActionDeleteName("Delete");
 
 //                                         public functions
 
@@ -51,17 +52,20 @@
     iListView->setModel(iModel);
     iListView->setCurrentIndex(iModel->index(0));
     
-    iClearSongHistoryAction = new HbAction(hbTrId("txt_irad_opt_clear_song_history"), this);
+#ifdef SUBTITLE_STR_BY_LOCID
+    iClearSongHistoryAction = new HbAction(hbTrId("txt_irad_opt_clear_list"), this);
+#else
+    iClearSongHistoryAction = new HbAction(hbTrId("Clear list"), this);    
+#endif
     iStatisticsReporter = IRQStatisticsReporter::openInstance();
-    
-    
+
     iShowPrompt = iSettings->getSongHistoryShow();    
     if( iShowPrompt )
     {
         iSettings->setSongHistoryShow(0);
     }  
     
-    connect(iClearSongHistoryAction, SIGNAL(triggered()), this, SLOT(clearHisotrySongDB()));    
+    connect(iClearSongHistoryAction, SIGNAL(triggered()), this, SLOT(popupClearHistoryConfirmMessageBox()));    
     connect(iModel, SIGNAL(modelChanged()), this, SLOT(modelChanged()));        
 }
 
@@ -91,10 +95,13 @@
 
     switch (aCommand)
     {
+    case EIR_ViewCommand_TOBEACTIVATED:       
+        showSongHistory();
+        ret = EIR_NoDefault;
+        break;
+                
     case EIR_ViewCommand_ACTIVATED:        
         connect(iPlayController, SIGNAL(metaDataAvailable(IRQMetaData*)), this, SLOT(newMetadataAdded(IRQMetaData*)));
-        showSongHistory();
-        
         if( iShowPrompt )
         {             
             QTimer::singleShot(5, this, SLOT(showPrompt()));
@@ -139,7 +146,11 @@
 
     // TODO : Add the report in future. Add the channel id in the song info db
     // iStatisticsReporter->logNmsEvents(EIRQFind,channelId);
-    popupNote(hbTrId("txt_irad_info_music_store_not_available"), HbMessageBox::MessageTypeInformation);    
+#ifdef SUBTITLE_STR_BY_LOCID
+    popupNote(hbTrId("txt_irad_info_music_store_not_available"), HbMessageBox::MessageTypeInformation);
+#else
+    popupNote(hbTrId("Music store not available"), HbMessageBox::MessageTypeInformation);    
+#endif
 }
    
 
@@ -173,7 +184,13 @@
 void IRSongHistoryView::modelChanged()
 {    
     iListView->reset();
-    QString headingStr = hbTrId("txt_irad_list_recently_played_songs") + " (" + QString::number(iModel->rowCount()) + ")";    
+    
+#ifdef SUBTITLE_STR_BY_LOCID
+    QString headingStr = hbTrId("txt_irad_subtitle_recently_played_songs") + " (" + QString::number(iModel->rowCount()) + ")";   
+#else
+    QString headingStr = hbTrId("Recently played songs") + " (" + QString::number(iModel->rowCount()) + ")";
+#endif    
+ 
     setHeadingText(headingStr);   
 }
 
@@ -184,14 +201,33 @@
      
 }
 
-void IRSongHistoryView::clearHisotrySongDB()
+void IRSongHistoryView::popupClearHistoryConfirmMessageBox()
 {
-    iModel->clearHisotrySongDB();  
+#ifdef SUBTITLE_STR_BY_LOCID
+    HbMessageBox::question(hbTrId("txt_irad_info_clear_song_list"), this, SLOT(clearList(HbAction*)), hbTrId("txt_common_button_ok"), hbTrId("txt_common_button_cancel"));
+#else
+    HbMessageBox::question(hbTrId("Clear song list?"), this, SLOT(clearList(HbAction*)), hbTrId("Ok"), hbTrId("Cancel"));    
+#endif
+}
+void IRSongHistoryView::clearList(HbAction *aAction)
+{
+    HbMessageBox *dialog = static_cast<HbMessageBox*>(sender());
+    if (dialog)
+    {
+        if (aAction == dialog->actions().at(0))
+        {
+            iModel->clearList();
+        }
+    }
 }
 
 void IRSongHistoryView::showPrompt()
 {
+#ifdef SUBTITLE_STR_BY_LOCID
     QString str = hbTrId("txt_irad_info_click_the_song_and_find_it_in_nokia_music_store");
+#else
+    QString str = hbTrId("Click the song and find it in nokia music store");    
+#endif
     popupNote(str, HbMessageBox::MessageTypeInformation);
 }
 
@@ -200,7 +236,56 @@
     /* for in song history view, the data will retrived from the web browser*/
     needNetwork = false;
 }
- 
+
+void IRSongHistoryView::listViewLongPressed(HbAbstractViewItem *aItem, const QPointF& aCoords)
+{
+    Q_UNUSED(aItem);
+    Q_UNUSED(aCoords);
+
+    HbAction *action = NULL;
+    HbMenu *contextMenu = new HbMenu;
+    contextMenu->setAttribute(Qt::WA_DeleteOnClose);
+    connect(contextMenu, SIGNAL(triggered(HbAction*)), this, SLOT(actionClicked(HbAction*)));
+
+#ifdef SUBTITLE_STR_BY_LOCID
+    action = contextMenu->addAction(hbTrId("txt_irad_menu_search_in_music_store"));
+#else
+    action = contextMenu->addAction(hbTrId("Search in music store"));    
+#endif
+    action->setObjectName(KActionSearchInMusicStoreName);
+#ifdef SUBTITLE_STR_BY_LOCID
+    action = contextMenu->addAction(hbTrId("txt_common_menu_delete"));
+#else
+    action = contextMenu->addAction(hbTrId("Delete"));    
+#endif
+    action->setObjectName(KActionDeleteName);
+
+    contextMenu->open();
+}
+
+void IRSongHistoryView::searchInMusicStoreContextAction()
+{
+    // Need to log the find song in NMS event, iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRFind,channelId);  
+#ifdef SUBTITLE_STR_BY_LOCID
+    popupNote(hbTrId("txt_irad_info_music_store_not_available"), HbMessageBox::MessageTypeInformation);
+#else
+    popupNote(hbTrId("Music store not available"), HbMessageBox::MessageTypeInformation);    
+#endif
+}
+void IRSongHistoryView::deleteContextAction()
+{
+    int current = iListView->currentIndex().row();     
+    bool ret = iModel->deleteOneItem(current);     
+    if( !ret )
+    {
+#ifdef SUBTITLE_STR_BY_LOCID
+        popupNote(hbTrId("txt_irad_info_operation_failed"), HbMessageBox::MessageTypeWarning);
+#else
+        popupNote(hbTrId("Operation failed"), HbMessageBox::MessageTypeWarning);        
+#endif
+    }
+}
+
 void IRSongHistoryView::gotoStationHistory()
 {
 	  getViewManager()->activateView(EIRView_HistoryView);
@@ -212,3 +297,19 @@
     iModel->setOrientation(aOrientation);
     iListView->reset();
 }
+
+void IRSongHistoryView::actionClicked(HbAction *aAction)
+{
+    if ( aAction )
+    {
+        QString objectName = aAction->objectName();
+        if ( objectName == KActionSearchInMusicStoreName )
+        {
+            searchInMusicStoreContextAction();
+        }
+        else if( objectName == KActionDeleteName)
+        {
+            deleteContextAction();
+        }
+    }
+}