summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-05-14 06:45:03 +0200
committerlouis <louis.braun@gmx.de>2015-05-14 06:45:03 +0200
commitf33354ba5aa51208b9dc6fcf17b346ebf86355d3 (patch)
treea7d6aa06a78cf4907feb2e62a6ef85e7e0b0e9ed
parent57999a442f1399c0cd56e32427adc67b033aff49 (diff)
downloadvdr-plugin-skindesigner-f33354ba5aa51208b9dc6fcf17b346ebf86355d3.tar.gz
vdr-plugin-skindesigner-f33354ba5aa51208b9dc6fcf17b346ebf86355d3.tar.bz2
fixed bug that detached viewelements were not cleared correctly
-rw-r--r--HISTORY4
-rw-r--r--views/displaychannelview.c6
-rw-r--r--views/displayviewelements.h1
-rw-r--r--views/view.c9
-rw-r--r--views/view.h1
5 files changed, 19 insertions, 2 deletions
diff --git a/HISTORY b/HISTORY
index 3ea2e04..32255a9 100644
--- a/HISTORY
+++ b/HISTORY
@@ -316,3 +316,7 @@ Version 0.4.5
- added {numtimers} Token to lastrecordings viewelement
- fixed time display bug in displaymenurecordings
- added token {watched} to displaymenurecordings
+- fixed bug that scrapercontent in displaychannel was not
+ updated if detached
+- fixed bug that detached viewelements were not cleared
+ correctly \ No newline at end of file
diff --git a/views/displaychannelview.c b/views/displaychannelview.c
index bcb7ad8..986ee39 100644
--- a/views/displaychannelview.c
+++ b/views/displaychannelview.c
@@ -354,14 +354,16 @@ void cDisplayChannelView::DrawScraperContent(const cEvent *event) {
}
if (DetachViewElement(veScraperContent)) {
- cViewElement *viewElement = GetViewElement(veScraperContent);
+ cViewElementScraperContent *viewElement = dynamic_cast<cViewElementScraperContent*>(GetViewElement(veScraperContent));
if (!viewElement) {
viewElement = new cViewElementScraperContent(event, ctPosterBanner, tmplView->GetViewElement(veScraperContent));
AddViewElement(veScraperContent, viewElement);
viewElement->Start();
} else {
- if (!viewElement->Starting())
+ if (!viewElement->Starting()) {
+ viewElement->SetEvent(event);
viewElement->Render();
+ }
}
} else {
map < string, string > stringTokens;
diff --git a/views/displayviewelements.h b/views/displayviewelements.h
index cb02c39..0dcd45b 100644
--- a/views/displayviewelements.h
+++ b/views/displayviewelements.h
@@ -27,6 +27,7 @@ private:
public:
cViewElementScraperContent(const cEvent *event, ScraperContentType type, cTemplateViewElement *tmplViewElement);
virtual ~cViewElementScraperContent() {};
+ void SetEvent(const cEvent *event) { this->event = event; };
bool Render(void);
};
diff --git a/views/view.c b/views/view.c
index 125f5c3..2f28c1f 100644
--- a/views/view.c
+++ b/views/view.c
@@ -183,6 +183,11 @@ void cView::DrawViewElement(eViewElement ve, map <string,string> *stringTokens,
}
void cView::ClearViewElement(eViewElement ve) {
+ cViewElement *detachedVE = GetViewElement(ve);
+ if (detachedVE) {
+ detachedVE->Clear();
+ return;
+ }
cTemplateViewElement *viewElement = NULL;
int currentAnimCat = ve;
if (tmplViewElement) {
@@ -1103,6 +1108,10 @@ bool cViewElement::Render(void) {
return true;
}
+void cViewElement::Clear(void) {
+ ClearViewElement(ve);
+}
+
void cViewElement::Action(void) {
DoSleep(delay);
if (!Running())
diff --git a/views/view.h b/views/view.h
index 7b85a6c..91af9ec 100644
--- a/views/view.h
+++ b/views/view.h
@@ -95,6 +95,7 @@ public:
virtual ~cViewElement();
void SetCallback(eViewElement ve, bool (cViewHelpers::*SetTokens)(bool, stringmap&, intmap&)) { this->ve = ve; this->SetTokens = SetTokens; };
virtual bool Render(void);
+ void Clear(void);
bool Starting(void) { return Running(); };
};