From e94e0780b03196a3265c356c5c7f40785dc7196f Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 27 Sep 2017 14:13:28 +0200 Subject: [PATCH] - bouqueteditor_channels: allow to navigate with left/right through the bouquets add corresponding context-icons to header --- src/gui/bedit/bouqueteditor_bouquets.cpp | 1 + src/gui/bedit/bouqueteditor_channels.cpp | 30 ++++++++++++++++++++++++ src/gui/bedit/bouqueteditor_channels.h | 1 + 3 files changed, 32 insertions(+) diff --git a/src/gui/bedit/bouqueteditor_bouquets.cpp b/src/gui/bedit/bouqueteditor_bouquets.cpp index 15a0d7e61..b431d3680 100644 --- a/src/gui/bedit/bouqueteditor_bouquets.cpp +++ b/src/gui/bedit/bouqueteditor_bouquets.cpp @@ -355,6 +355,7 @@ int CBEBouquetWidget::exec(CMenuTarget* parent, const std::string & /*actionKey* CBEChannelWidget* channelWidget = new CBEChannelWidget(ChannelWidgetCaption, selected); channelWidget->exec(this, ""); + selected = channelWidget->getBouquet(); if (channelWidget->hasChanged()) bouquetsChanged = true; delete channelWidget; diff --git a/src/gui/bedit/bouqueteditor_channels.cpp b/src/gui/bedit/bouqueteditor_channels.cpp index 8b445b2c0..532bdb420 100644 --- a/src/gui/bedit/bouqueteditor_channels.cpp +++ b/src/gui/bedit/bouqueteditor_channels.cpp @@ -70,6 +70,8 @@ CBEChannelWidget::CBEChannelWidget(const std::string & Caption, unsigned int Bou status_icon_width = std::max(status_icon_width, iw); frameBuffer->getIconSize(NEUTRINO_ICON_LOCK, &iw, &ih); status_icon_width = std::max(status_icon_width, iw); + + header.addContextButton(CComponentsHeader::CC_BTN_LEFT | CComponentsHeader::CC_BTN_RIGHT); } CBEChannelWidget::~CBEChannelWidget() @@ -416,6 +418,34 @@ int CBEChannelWidget::exec(CMenuTarget* parent, const std::string & /*actionKey* paintFoot(); paintItems(); } + else if (msg == CRCInput::RC_left || msg == CRCInput::RC_right) + { + unsigned int bouquet_size = g_bouquetManager->Bouquets.size(); + + if (msg == CRCInput::RC_left) + { + if (bouquet == 0) + bouquet = bouquet_size - 1; + else + bouquet--; + } + else + { + if (bouquet < bouquet_size - 1) + bouquet++; + else + bouquet = 0; + } + + Channels = mode == CZapitClient::MODE_TV ? &(g_bouquetManager->Bouquets[bouquet]->tvChannels) : &(g_bouquetManager->Bouquets[bouquet]->radioChannels); + caption = g_bouquetManager->Bouquets[bouquet]->bFav ? g_Locale->getText(LOCALE_FAVORITES_BOUQUETNAME) : g_bouquetManager->Bouquets[bouquet]->Name; + + selected = 0; + paintHead(); + paintBody(); + paintFoot(); + paintItems(); + } else if (msg == CRCInput::RC_ok) { if (state == beDefault) diff --git a/src/gui/bedit/bouqueteditor_channels.h b/src/gui/bedit/bouqueteditor_channels.h index 72e73d20d..e8a9b521c 100644 --- a/src/gui/bedit/bouqueteditor_channels.h +++ b/src/gui/bedit/bouqueteditor_channels.h @@ -89,6 +89,7 @@ class CBEChannelWidget : public CBEGlobals, public CMenuTarget, public CListHelp ZapitChannelList * Channels; int exec(CMenuTarget* parent, const std::string & actionKey); bool hasChanged(); + unsigned int getBouquet() { return bouquet; }; }; #endif