From 3cc3c03f7dfb0bedd7256e73959ecafb2372fef7 Mon Sep 17 00:00:00 2001 From: louis Date: Wed, 30 Mar 2016 17:17:34 +0200 Subject: [PATCH] fixed incorrect display for channels without EPG --- coreengine/viewdisplaymenu.c | 4 +++- coreengine/viewelementsdisplaychannel.c | 5 +++++ coreengine/viewelementsdisplaychannel.h | 1 + coreengine/viewelementsdisplaymenu.c | 13 +++++++++++-- coreengine/viewelementsdisplaymenu.h | 1 + 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/coreengine/viewdisplaymenu.c b/coreengine/viewdisplaymenu.c index 21bdb52..6a9db57 100644 --- a/coreengine/viewdisplaymenu.c +++ b/coreengine/viewdisplaymenu.c @@ -405,6 +405,7 @@ void cViewMenu::SetMessage(eMessageType type, const char *text) { void cViewMenu::SetChannelHeader(const cEvent *event) { if (!event) return; + if (menuChange && menuCat == mcSchedule) { #if defined (APIVERSNUM) && (APIVERSNUM >= 20301) LOCK_CHANNELS_READ; @@ -793,7 +794,8 @@ eMenuOrientation cSubView::MenuOrientation(void) { void cSubView::SetTitle(const char *title) { if (header) { - header->SetTitle(title); + header->SetTitle(title); + header->ClearChannel(); } } diff --git a/coreengine/viewelementsdisplaychannel.c b/coreengine/viewelementsdisplaychannel.c index 7532f42..3384a53 100644 --- a/coreengine/viewelementsdisplaychannel.c +++ b/coreengine/viewelementsdisplaychannel.c @@ -569,6 +569,11 @@ cVeDcScraperContent::cVeDcScraperContent(void) { cVeDcScraperContent::~cVeDcScraperContent(void) { } +void cVeDcScraperContent::Close(void) { + tokenContainer->Clear(); + cViewElement::Close(); +} + void cVeDcScraperContent::SetTokenContainer(void) { tokenContainer = new skindesignerapi::cTokenContainer(); tokenContainer->DefineStringToken("{posterpath}", (int)eScraperPosterBannerST::posterpath); diff --git a/coreengine/viewelementsdisplaychannel.h b/coreengine/viewelementsdisplaychannel.h index 78bc067..3505201 100644 --- a/coreengine/viewelementsdisplaychannel.h +++ b/coreengine/viewelementsdisplaychannel.h @@ -124,6 +124,7 @@ private: public: cVeDcScraperContent(void); virtual ~cVeDcScraperContent(void); + void Close(void); void SetTokenContainer(void); void Set(const cEvent *e); }; diff --git a/coreengine/viewelementsdisplaymenu.c b/coreengine/viewelementsdisplaymenu.c index fdb8f10..eb73023 100644 --- a/coreengine/viewelementsdisplaymenu.c +++ b/coreengine/viewelementsdisplaymenu.c @@ -57,13 +57,22 @@ void cVeDmHeader::SetTitle(const char *title) { } void cVeDmHeader::SetChannel(const cChannel *channel) { + ClearChannel(); + if (!channel) + return; channelNumber = channel->Number(); - free(channelName); - free(channelId); channelName = strdup(channel->Name()); channelId = strdup(*(channel->GetChannelID().ToString())); } +void cVeDmHeader::ClearChannel(void) { + channelNumber = 0; + free(channelName); + channelName = NULL; + free(channelId); + channelId = NULL; +} + void cVeDmHeader::Set(eMenuCategory menuCat) { if (!changed) return; diff --git a/coreengine/viewelementsdisplaymenu.h b/coreengine/viewelementsdisplaymenu.h index 1ffa1d2..b64954c 100644 --- a/coreengine/viewelementsdisplaymenu.h +++ b/coreengine/viewelementsdisplaymenu.h @@ -21,6 +21,7 @@ public: void SetTokenContainer(void); void SetTitle(const char *title); void SetChannel(const cChannel *channel); + void ClearChannel(void); void Set(eMenuCategory menuCat); void IsEpgSearchFav(bool isFav) { epgSearchFav = isFav;} ; };