diff options
author | louis <louis.braun@gmx.de> | 2015-04-10 16:44:29 +0200 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2015-04-10 16:44:29 +0200 |
commit | 5146f15e44d9523e3dc96bf0f5e0aeaf1bee9c2f (patch) | |
tree | 553ab422e102a9096f637a91114d48cf8846bd2e | |
parent | 97f3d372dc6cdd81f3f298f37c6a542adc6aa959 (diff) | |
download | vdr-plugin-skindesigner-5146f15e44d9523e3dc96bf0f5e0aeaf1bee9c2f.tar.gz vdr-plugin-skindesigner-5146f15e44d9523e3dc96bf0f5e0aeaf1bee9c2f.tar.bz2 |
fixed bug that string tokens are not evaluated in area conditions
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | libtemplate/templatepixmap.c | 4 | ||||
-rw-r--r-- | libtemplate/templatepixmap.h | 2 | ||||
-rw-r--r-- | skins/blackhole/xmlfiles/displaychannel.xml | 14 | ||||
-rw-r--r-- | views/displaymenudetailview.c | 2 | ||||
-rw-r--r-- | views/displaypluginview.c | 2 | ||||
-rw-r--r-- | views/view.c | 12 |
7 files changed, 25 insertions, 12 deletions
@@ -287,4 +287,5 @@ Version 0.4.1 Version 0.4.2 - fixed bug that datetime was not drawn correctly in menus +- fixed bug that string tokens are not evaluated in area conditions diff --git a/libtemplate/templatepixmap.c b/libtemplate/templatepixmap.c index 7379633..473561a 100644 --- a/libtemplate/templatepixmap.c +++ b/libtemplate/templatepixmap.c @@ -80,11 +80,13 @@ void cTemplatePixmap::ClearDynamicParameters(void) { parameters->ClearDynamicParameters();
}
-void cTemplatePixmap::ParseDynamicParameters(map <string,int> *intTokens, bool initFuncs) {
+void cTemplatePixmap::ParseDynamicParameters(map <string,string> *stringTokens, map <string,int> *intTokens, bool initFuncs) {
parameters->ClearDynamicParameters();
parameters->SetIntTokens(intTokens);
+ parameters->SetStringTokens(stringTokens);
parameters->ParseParameters();
parameters->UnsetIntTokens();
+ parameters->UnsetStringTokens();
if (!DoExecute()) {
parameters->ClearDynamicParameters();
diff --git a/libtemplate/templatepixmap.h b/libtemplate/templatepixmap.h index 3be1816..fd2d3ce 100644 --- a/libtemplate/templatepixmap.h +++ b/libtemplate/templatepixmap.h @@ -63,7 +63,7 @@ public: //Clear dynamically set pixmap parameters void ClearDynamicParameters(void); //Parse pixmap parameters with dynamically set Tokens - void ParseDynamicParameters(map <string,int> *intTokens, bool initFuncs); + void ParseDynamicParameters(map <string,string> *stringTokens, map <string,int> *intTokens, bool initFuncs); //Parse all function parameters with dynamically set Tokens void ParseDynamicFunctionParameters(map <string,string> *stringTokens, map <string,int> *intTokens); //Calculate size of drawport in case area scrolls diff --git a/skins/blackhole/xmlfiles/displaychannel.xml b/skins/blackhole/xmlfiles/displaychannel.xml index 2385596..add8fca 100644 --- a/skins/blackhole/xmlfiles/displaychannel.xml +++ b/skins/blackhole/xmlfiles/displaychannel.xml @@ -60,18 +60,28 @@ {nextrecording} true if next Schedule will be recorded --> <epginfo> - <area x="17%" y="80%" width="66%" height="7%" layer="3"> + <area condition="isset{currentsubtitle}" x="17%" y="80%" width="66%" height="7%" layer="3"> <drawtext name="starttime" x="1%" valign="center" font="{regular}" fontsize="80%" color="{clrWhite}" text="{currentstart}" /> <drawtext align="right" name="elapsed" valign="center" font="{regular}" fontsize="75%" color="{clrWhite}" text="{currentelapsed}/{currentduration}min" /> <drawtext x="{width(starttime)} + 40" y="0" width="{areawidth} - {width(starttime)} - {width(elapsed)} - 45" font="{regular}" fontsize="70%" color="{clrWhite}" text="{currenttitle}" /> <drawtext x="{width(starttime)} + 40" y="56%" width="{areawidth} - {width(starttime)} - {width(elapsed)} - 45" font="{regular}" fontsize="45%" color="{clrWhite}" text="{currentsubtitle}" /> </area> - <area x="17%" y="87%" width="66%" height="7%" layer="3"> + <area condition="empty{currentsubtitle}" x="17%" y="80%" width="66%" height="7%" layer="3"> + <drawtext name="starttime" x="1%" valign="center" font="{regular}" fontsize="80%" color="{clrWhite}" text="{currentstart}" /> + <drawtext align="right" name="elapsed" valign="center" font="{regular}" fontsize="75%" color="{clrWhite}" text="{currentelapsed}/{currentduration}min" /> + <drawtext x="{width(starttime)} + 40" valign="center" width="{areawidth} - {width(starttime)} - {width(elapsed)} - 45" font="{regular}" fontsize="75%" color="{clrWhite}" text="{currenttitle}" /> + </area> + <area condition="isset{nextsubtitle}" x="17%" y="87%" width="66%" height="7%" layer="3"> <drawtext name="starttime" x="1%" valign="center" font="{regular}" fontsize="80%" color="{clrGray}" text="{nextstart}" /> <drawtext align="right" name="duration" valign="center" font="{regular}" fontsize="75%" color="{clrGray}" text="{nextduration}min" /> <drawtext x="{width(starttime)} + 40" y="0" width="{areawidth} - {width(starttime)} - {width(duration)} - 45" font="{regular}" fontsize="70%" color="{clrGray}" text="{nexttitle}" /> <drawtext x="{width(starttime)} + 40" y="55%" width="{areawidth} - {width(starttime)} - {width(duration)} - 45" font="{regular}" fontsize="40%" color="{clrGray}" text="{nextsubtitle}" /> </area> + <area condition="empty{nextsubtitle}" x="17%" y="87%" width="66%" height="7%" layer="3"> + <drawtext name="starttime" x="1%" valign="center" font="{regular}" fontsize="80%" color="{clrGray}" text="{nextstart}" /> + <drawtext align="right" name="duration" valign="center" font="{regular}" fontsize="75%" color="{clrGray}" text="{nextduration}min" /> + <drawtext x="{width(starttime)} + 40" valign="center" width="{areawidth} - {width(starttime)} - {width(duration)} - 45" font="{regular}" fontsize="75%" color="{clrGray}" text="{nexttitle}" /> + </area> </epginfo> <!-- Available Variables progressbar: diff --git a/views/displaymenudetailview.c b/views/displaymenudetailview.c index f63f46c..1258861 100644 --- a/views/displaymenudetailview.c +++ b/views/displaymenudetailview.c @@ -224,7 +224,7 @@ void cDisplayMenuDetailView::InitTabs(void) { tmplView->InitViewTabIterator(); cTemplateViewTab *tmplTab = NULL; while(tmplTab = tmplView->GetNextViewTab()) { - tmplTab->ParseDynamicParameters(&intTokens, true); + tmplTab->ParseDynamicParameters(&stringTokens, &intTokens, true); tmplTab->ClearDynamicFunctionParameters(); tmplTab->ParseDynamicFunctionParameters(&stringTokens, &intTokens); if (tmplTab->DoExecute()) { diff --git a/views/displaypluginview.c b/views/displaypluginview.c index c861e79..f057f69 100644 --- a/views/displaypluginview.c +++ b/views/displaypluginview.c @@ -143,7 +143,7 @@ void cDisplayPluginView::SetTabs(void) { tmplView->InitViewTabIterator(); cTemplateViewTab *tmplTab = NULL; while(tmplTab = tmplView->GetNextViewTab()) { - tmplTab->ParseDynamicParameters(&tabIntTokens, true); + tmplTab->ParseDynamicParameters(&tabStringTokens, &tabIntTokens, true); tmplTab->ClearDynamicFunctionParameters(); tmplTab->ParseDynamicFunctionParameters(&tabStringTokens, &tabIntTokens); if (tmplTab->DoExecute()) { diff --git a/views/view.c b/views/view.c index 8ee8c09..09bae74 100644 --- a/views/view.c +++ b/views/view.c @@ -109,13 +109,13 @@ void cView::DrawViewElement(eViewElement ve, map <string,string> *stringTokens, //check if pixmap needs dynamic parameters
if ((!pix->Ready() || !pix->DoExecute()) && !pix->Scrolling()) {
//parse dynamic parameters and initiate functions
- pix->ParseDynamicParameters(intTokens, true);
+ pix->ParseDynamicParameters(stringTokens, intTokens, true);
if (pix->Ready() && pix->DoExecute()) {
CreateViewPixmap(pixCurrent, pix);
}
} else {
//parse dynamic parameters but not initiate functions
- pix->ParseDynamicParameters(intTokens, false);
+ pix->ParseDynamicParameters(stringTokens, intTokens, false);
}
//if pixmap still not valid, skip
if (!pix->Ready() && !pix->Scrolling()) {
@@ -917,9 +917,9 @@ cRect cViewListItem::DrawListItem(map <string,string> *stringTokens, map <string posItem = pix->GetPixmapSize();
}
if (!PixmapExists(pixCurrent)) {
- pix->ParseDynamicParameters(intTokens, true);
+ pix->ParseDynamicParameters(stringTokens, intTokens, true);
} else {
- pix->ParseDynamicParameters(intTokens, false);
+ pix->ParseDynamicParameters(stringTokens, intTokens, false);
}
if (!PixmapExists(pixCurrent) && pix->Ready() && pix->DoExecute() && !pix->Scrolling()) {
CreateViewPixmap(pixCurrent, pix);
@@ -1087,9 +1087,9 @@ void cGrid::Draw(void) { while(pix = tmplViewElement->GetNextPixmap()) {
PositionPixmap(pix);
if (!PixmapExists(pixCurrent)) {
- pix->ParseDynamicParameters(&intTokens, true);
+ pix->ParseDynamicParameters(&stringTokens, &intTokens, true);
} else {
- pix->ParseDynamicParameters(&intTokens, false);
+ pix->ParseDynamicParameters(&stringTokens, &intTokens, false);
}
if (!PixmapExists(pixCurrent) && pix->Ready() && pix->DoExecute() && !pix->Scrolling()) {
CreateViewPixmap(pixCurrent, pix);
|