--- 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();
+ }
+ }
+}