qtinternetradio/ui/src/irplsview.cpp
changeset 3 ee64f059b8e1
parent 0 09774dfdd46b
child 5 0930554dc389
--- a/qtinternetradio/ui/src/irplsview.cpp	Mon May 03 12:25:23 2010 +0300
+++ b/qtinternetradio/ui/src/irplsview.cpp	Fri May 14 15:43:29 2010 +0300
@@ -16,23 +16,34 @@
 */
 
 #include <hblistview.h>
+#include <hbmenu.h>
+#include <hbaction.h>
 
 #include "irplsview.h"
 #include "irapplication.h"
-#include "irabstractviewmanager.h"
+#include "irviewmanager.h"
 #include "irqnetworkcontroller.h"
 #include "irplsmodel.h"
 #include "irqisdsdatastructure.h"
 #include "irplaycontroller.h"
+#include "irplaylist.h"
+
+const QString KActionDeleteName("delete");
 
 IRPlsView::IRPlsView(IRApplication* aApplication, TIRViewId aViewId) : 
                      IrAbstractListViewBase(aApplication, aViewId), iPlsModel(NULL)
 {
+    //this view won't be starting view, don't need lazy init
+    IrAbstractListViewBase::lazyInit();
+    setInitCompleted(true);
+    
     connect(iNetworkController, SIGNAL(networkRequestNotified(IRQNetworkEvent)),
             this, SLOT(networkRequestNotified(IRQNetworkEvent)));
-    setHeadingText(hbTrId("txt_irad_subtitle_stations_from_play_list"));
+    
+    IRPlayList *playList = iApplication->getPlayList();
+    setHeadingText(playList->getFileName());
         
-    iPlsModel = new IRPlsModel(this);
+    iPlsModel = new IRPlsModel(playList, this);
     iListView->setModel(iPlsModel);
     iListView->setCurrentIndex(iPlsModel->index(0));
 }
@@ -85,8 +96,34 @@
     iPlayController->connectToChannel(&preset, EIRQAdhocExternal);
 }
 
-void IRPlsView::updateView()
+void IRPlsView::listViewLongPressed(HbAbstractViewItem *aItem, const QPointF &aCoords)
+{
+    Q_UNUSED(aItem);
+    Q_UNUSED(aCoords);
+    
+    HbMenu *contextMenu = new HbMenu;
+    contextMenu->setAttribute(Qt::WA_DeleteOnClose);
+    HbAction *action = contextMenu->addAction(hbTrId("txt_common_menu_delete"));
+    action->setObjectName(KActionDeleteName);
+    contextMenu->open();
+    connect(contextMenu, SIGNAL(triggered(HbAction*)), this, SLOT(actionClicked(HbAction*)));
+}
+
+void IRPlsView::launchAction()
 {
-    iListView->reset();
-    iListView->setCurrentIndex(iPlsModel->index(0));
+    getViewManager()->pushViewById(EIRView_MainView);
 }
+
+void IRPlsView::actionClicked(HbAction *aAction)
+{
+    if (aAction)
+    {
+        QString name = aAction->objectName();
+        if (KActionDeleteName == name)
+        {
+            IRPlayList *playList = iApplication->getPlayList();
+            playList->deleteItem(iListView->currentIndex().row());
+            iListView->reset();
+        }
+    }
+}