upnpbrowser: use CListHelpers::UpDownKey

This commit is contained in:
Stefan Seyfried
2016-01-16 17:51:28 +01:00
committed by svenhoefer
parent 7b87206099
commit edf7d48e04
3 changed files with 10 additions and 32 deletions

View File

@@ -2,16 +2,7 @@
Neutrino-GUI - DBoxII-Project Neutrino-GUI - DBoxII-Project
UPnP Browser (c) 2007 by Jochen Friedrich UPnP Browser (c) 2007 by Jochen Friedrich
(c) 2009-2011,2016 Stefan Seyfried
Homepage: http://dbox.cyberphoria.org/
Kommentar:
Diese GUI wurde von Grund auf neu programmiert und sollte nun vom
Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert
auf der Client-Server Idee, diese GUI ist also von der direkten DBox-
Steuerung getrennt. Diese wird dann von Daemons uebernommen.
License: GPL License: GPL
@@ -436,6 +427,8 @@ std::vector<UPnPEntry> *CUpnpBrowserGui::decodeResult(std::string result)
void CUpnpBrowserGui::updateDeviceSelection(int newpos) void CUpnpBrowserGui::updateDeviceSelection(int newpos)
{ {
if (newpos < 0) /* do not explode if called with -1 arg... */
return;
if((int) m_selecteddevice != newpos) { if((int) m_selecteddevice != newpos) {
int prev_selected = m_selecteddevice; int prev_selected = m_selecteddevice;
unsigned int oldliststart = m_deviceliststart; unsigned int oldliststart = m_deviceliststart;
@@ -488,28 +481,10 @@ void CUpnpBrowserGui::selectDevice()
else if (msg_repeatok == (neutrino_msg_t) g_settings.key_list_end) { else if (msg_repeatok == (neutrino_msg_t) g_settings.key_list_end) {
updateDeviceSelection(m_devices.size()-1); updateDeviceSelection(m_devices.size()-1);
} }
else if (msg_repeatok == CRCInput::RC_up || (int) msg == g_settings.key_pageup) else if (msg_repeatok == CRCInput::RC_up || (int)msg == g_settings.key_pageup ||
msg_repeatok == CRCInput::RC_down || (int)msg == g_settings.key_pagedown)
{ {
int step = ((int) msg == g_settings.key_pageup) ? m_listmaxshow : 1; // browse or step 1 int new_selected = UpDownKey(m_devices, msg_repeatok, m_listmaxshow, m_selecteddevice);
int new_selected = m_selecteddevice - step;
if (new_selected < 0) {
if (m_selecteddevice != 0 && step != 1)
new_selected = 0;
else
new_selected = m_devices.size() - 1;
}
updateDeviceSelection(new_selected);
}
else if (msg_repeatok == CRCInput::RC_down || (int) msg == g_settings.key_pagedown)
{
int step = ((int) msg == g_settings.key_pagedown) ? m_listmaxshow : 1; // browse or step 1
int new_selected = m_selecteddevice + step;
if (new_selected > (int) m_devices.size() - 1) {
if ((m_selecteddevice != m_devices.size() - 1))
new_selected = m_devices.size() - 1;
else
new_selected = 0;
}
updateDeviceSelection(new_selected); updateDeviceSelection(new_selected);
} }
else if (msg == CRCInput::RC_right || msg == CRCInput::RC_ok) else if (msg == CRCInput::RC_right || msg == CRCInput::RC_ok)

View File

@@ -37,6 +37,7 @@
#include <driver/pictureviewer/pictureviewer.h> #include <driver/pictureviewer/pictureviewer.h>
#include <gui/filebrowser.h> #include <gui/filebrowser.h>
#include <gui/widget/menue.h> #include <gui/widget/menue.h>
#include <gui/widget/listhelpers.h>
#include <string> #include <string>
#include <sstream> #include <sstream>
@@ -66,7 +67,7 @@ struct UPnPEntry
int type; int type;
}; };
class CUpnpBrowserGui : public CMenuTarget class CUpnpBrowserGui : public CMenuTarget, public CListHelpers
{ {
public: public:
CUpnpBrowserGui(); CUpnpBrowserGui();

View File

@@ -23,6 +23,7 @@
#include <global.h> #include <global.h>
#include <gui/bouquetlist.h> #include <gui/bouquetlist.h>
#include <libupnpclient/upnpclient.h>
static int upDownKey(int size, neutrino_msg_t msg, int lines, int sel) static int upDownKey(int size, neutrino_msg_t msg, int lines, int sel)
{ {
@@ -81,3 +82,4 @@ updown_t(std::vector<CBouquet*>);
updown_t(std::vector<CZapitBouquet*>); updown_t(std::vector<CZapitBouquet*>);
updown_t(std::vector<CZapitChannel*>); updown_t(std::vector<CZapitChannel*>);
updown_t(std::vector<CChannelEvent>); updown_t(std::vector<CChannelEvent>);
updown_t(std::vector<CUPnPDevice>);