qtinternetradio/ui/src/irplsview.cpp
changeset 0 09774dfdd46b
child 3 ee64f059b8e1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qtinternetradio/ui/src/irplsview.cpp	Mon Apr 19 14:01:53 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include <hblistview.h>
+
+#include "irplsview.h"
+#include "irapplication.h"
+#include "irabstractviewmanager.h"
+#include "irqnetworkcontroller.h"
+#include "irplsmodel.h"
+#include "irqisdsdatastructure.h"
+#include "irplaycontroller.h"
+
+IRPlsView::IRPlsView(IRApplication* aApplication, TIRViewId aViewId) : 
+                     IrAbstractListViewBase(aApplication, aViewId), iPlsModel(NULL)
+{
+    connect(iNetworkController, SIGNAL(networkRequestNotified(IRQNetworkEvent)),
+            this, SLOT(networkRequestNotified(IRQNetworkEvent)));
+    setHeadingText(hbTrId("txt_irad_subtitle_stations_from_play_list"));
+        
+    iPlsModel = new IRPlsModel(this);
+    iListView->setModel(iPlsModel);
+    iListView->setCurrentIndex(iPlsModel->index(0));
+}
+
+IRPlsView::~IRPlsView()
+{
+}
+
+void IRPlsView::networkRequestNotified(IRQNetworkEvent aEvent)
+{
+    if (getViewManager()->currentView() != this)
+    {
+        return;
+    }
+        
+    switch (aEvent)
+    {
+        case EIRQNetworkConnectionEstablished:
+            iApplication->closeConnectingDialog();
+            
+            if (EIR_UseNetwork_SelectItem == getUseNetworkReason())
+            {
+                handleItemSelected();
+            }
+            setUseNetworkReason(EIR_UseNetwork_NoReason);
+            
+            break;
+            
+        default:
+            break;
+    }
+}
+
+void IRPlsView::handleItemSelected()
+{
+    int currentRow = iListView->currentIndex().row();
+    IRQChannelServerURL server;
+    server.bitrate = 0;
+    server.url = iPlsModel->getFile(currentRow);
+    server.serverName = iPlsModel->getTitle(currentRow);
+    IRQPreset preset;
+    preset.insertChannelServer(server);
+    preset.name = iPlsModel->getTitle(currentRow);
+    preset.description = iPlsModel->getFile(currentRow);
+    preset.shortDesc = iPlsModel->getFile(currentRow);
+    preset.type = 0;
+    preset.uniqID = 0;
+    preset.presetId = 0;
+
+    iPlayController->connectToChannel(&preset, EIRQAdhocExternal);
+}
+
+void IRPlsView::updateView()
+{
+    iListView->reset();
+    iListView->setCurrentIndex(iPlsModel->index(0));
+}