summaryrefslogtreecommitdiff
path: root/coreengine
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2016-02-17 18:08:38 +0100
committerlouis <louis.braun@gmx.de>2016-02-17 18:08:38 +0100
commit21732b177721386ab23ac6a3fa1d145e0049aee4 (patch)
tree41207336e453c1b7dce0b96816049cf2e0dc56e7 /coreengine
parentc22ba065c418ec5f277a1c57489097dac46e1133 (diff)
downloadvdr-plugin-skindesigner-21732b177721386ab23ac6a3fa1d145e0049aee4.tar.gz
vdr-plugin-skindesigner-21732b177721386ab23ac6a3fa1d145e0049aee4.tar.bz2
fixed display of header in schedules menu
Diffstat (limited to 'coreengine')
-rw-r--r--coreengine/viewdisplaymenu.c6
-rw-r--r--coreengine/viewelementsdisplaymenu.c13
-rw-r--r--coreengine/viewelementsdisplaymenu.h1
3 files changed, 12 insertions, 8 deletions
diff --git a/coreengine/viewdisplaymenu.c b/coreengine/viewdisplaymenu.c
index 9be2a43..e857678 100644
--- a/coreengine/viewdisplaymenu.c
+++ b/coreengine/viewdisplaymenu.c
@@ -889,15 +889,15 @@ void cSubView::DrawStaticVEs(void) {
background->Show();
background->Render();
}
+}
+
+void cSubView::DrawDynamicVEs(void) {
if (header) {
header->Show();
header->Set(menuCat);
if (header->Parse())
header->Render();
}
-}
-
-void cSubView::DrawDynamicVEs(void) {
if (datetime) {
datetime->Show();
if (datetime->Parse())
diff --git a/coreengine/viewelementsdisplaymenu.c b/coreengine/viewelementsdisplaymenu.c
index b7c20e9..cfe0540 100644
--- a/coreengine/viewelementsdisplaymenu.c
+++ b/coreengine/viewelementsdisplaymenu.c
@@ -11,6 +11,7 @@
* cVeDmHeader
******************************************************************/
cVeDmHeader::cVeDmHeader(void) {
+ changed = false;
title = NULL;
channelName = NULL;
channelNumber = 0;
@@ -48,12 +49,11 @@ void cVeDmHeader::SetTokenContainer(void) {
}
void cVeDmHeader::SetTitle(const char *title) {
+ if (this->title && !strcmp(this->title, title))
+ return;
+ free(this->title);
this->title = strdup(title);
- free(channelName);
- channelName = NULL;
- channelNumber = 0;
- free(channelId);
- channelId = NULL;
+ changed = true;
}
void cVeDmHeader::SetChannel(const cChannel *channel) {
@@ -65,6 +65,8 @@ void cVeDmHeader::SetChannel(const cChannel *channel) {
}
void cVeDmHeader::Set(eMenuCategory menuCat) {
+ if (!changed)
+ return;
tokenContainer->Clear();
tokenContainer->AddStringToken((int)eDMHeaderST::title, title);
tokenContainer->AddStringToken((int)eDMHeaderST::vdrversion, VDRVERSION);
@@ -101,6 +103,7 @@ void cVeDmHeader::Set(eMenuCategory menuCat) {
tokenContainer->AddIntToken((int)eDMHeaderIT::channelnumber, channelNumber);
tokenContainer->AddIntToken((int)eDMHeaderIT::channellogoexists, imgCache->LogoExists(channelId));
}
+ changed = false;
SetDirty();
}
diff --git a/coreengine/viewelementsdisplaymenu.h b/coreengine/viewelementsdisplaymenu.h
index 600af91..1ffa1d2 100644
--- a/coreengine/viewelementsdisplaymenu.h
+++ b/coreengine/viewelementsdisplaymenu.h
@@ -9,6 +9,7 @@
******************************************************************/
class cVeDmHeader : public cViewElement {
private:
+ bool changed;
char *title;
char *channelName;
int channelNumber;