fixed bug that EPGSearch Favorites Menu was not displayed correctly

This commit is contained in:
louis 2015-01-10 10:10:31 +01:00
parent abcb357b25
commit 74febbfe86
15 changed files with 98 additions and 18 deletions

View File

@ -140,4 +140,6 @@ Version 0.1.2
- display only active remote timers in main menu - display only active remote timers in main menu
- fixed two possible null pointer accesses in displaymenurootview - fixed two possible null pointer accesses in displaymenurootview
- fixed bug in displayvolumeview - fixed bug that EPGSearch Favorites Menu was not displayed correctly,
introduced "whatsonfavorites" Token in displaymenuschedules

View File

@ -94,6 +94,11 @@ bool cSDDisplayMenu::SetItemEvent(const cEvent *Event, int Index, bool Current,
return false; return false;
if (config.blockFlush) if (config.blockFlush)
rootView->LockFlush(); rootView->LockFlush();
bool isFav = false;
if (MenuCategory() == mcSchedule && Channel) {
isFav = true;
rootView->SetEpgSearchFavorite();
}
const cChannel *channel = Channel; const cChannel *channel = Channel;
if (!channel) { if (!channel) {
channel = rootView->GetChannel(); channel = rootView->GetChannel();
@ -102,10 +107,11 @@ bool cSDDisplayMenu::SetItemEvent(const cEvent *Event, int Index, bool Current,
channel = Channels.GetByChannelID(Event->ChannelID()); channel = Channels.GetByChannelID(Event->ChannelID());
} }
rootView->SetChannel(channel); rootView->SetChannel(channel);
cDisplayMenuListView *list = rootView->GetListView(); cDisplayMenuListView *list = rootView->GetListView();
if (!list) if (!list)
return false; return false;
list->AddSchedulesMenuItem(Index, Event, channel, TimerMatch, MenuCategory(), Current, Selectable); list->AddSchedulesMenuItem(Index, Event, channel, TimerMatch, MenuCategory(), isFav, Current, Selectable);
if (state == vsIdle) if (state == vsIdle)
state = vsMenuUpdate; state = vsMenuUpdate;
return true; return true;

View File

@ -11,10 +11,11 @@
{whatson} true if menu "What's on" is displayed {whatson} true if menu "What's on" is displayed
{whatsonnow} true if menu "What's on now" is displayed {whatsonnow} true if menu "What's on now" is displayed
{whatsonnext} true if menu "What's on next" is displayed {whatsonnext} true if menu "What's on next" is displayed
{whatsonfavorites} true if EPGSearch Favorites menu is displayed
--> -->
<header> <header>
<area x="0" y="0" width="83%" height="8%" layer="3"> <area x="0" y="0" width="83%" height="8%" layer="3">
<drawtext condition="{whatsonnow}||{whatsonnext}" x="5" valign="center" font="{semibold}" fontsize="100%" color="{clrWhite}" text="{title}" /> <drawtext condition="{whatsonnow}||{whatsonnext}||{whatsonfavorites}" x="5" valign="center" font="{semibold}" fontsize="100%" color="{clrWhite}" text="{title}" />
<drawimage name="logo" condition="{whatson}" imagetype="channellogo" path="{channelid}" x="1%" width="5%" height="90%" align="left" valign="center" /> <drawimage name="logo" condition="{whatson}" imagetype="channellogo" path="{channelid}" x="1%" width="5%" height="90%" align="left" valign="center" />
<drawtext condition="{whatson}" x="{posx(logo)} + {width(logo)}+20" valign="center" font="{semibold}" fontsize="100%" color="{clrWhite}" text="{channelnumber} - {channelname}" /> <drawtext condition="{whatson}" x="{posx(logo)} + {width(logo)}+20" valign="center" font="{semibold}" fontsize="100%" color="{clrWhite}" text="{channelnumber} - {channelname}" />
</area> </area>
@ -55,6 +56,7 @@
{whatson} true if menu "What's on" is displayed {whatson} true if menu "What's on" is displayed
{whatsonnow} true if menu "What's on now" is displayed {whatsonnow} true if menu "What's on now" is displayed
{whatsonnext} true if menu "What's on next" is displayed {whatsonnext} true if menu "What's on next" is displayed
{whatsonfavorites} true if EPGSearch Favorites menu is displayed
{timerpartitial} true if partitial timer is set for the event {timerpartitial} true if partitial timer is set for the event
{timerfull} true if full timer is set for the event {timerfull} true if full timer is set for the event
{hasVPS} true if event has VPS information {hasVPS} true if event has VPS information
@ -127,6 +129,23 @@
<areascroll scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" condition="not{separator}++{whatsonnext}++{current}" x="11%" width="39%" layer="3"> <areascroll scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" condition="not{separator}++{whatsonnext}++{current}" x="11%" width="39%" layer="3">
<drawtext name="menutext" x="0" y="35%" font="{regular}" fontsize="60%" color="{clrWhite}" text="{title}" /> <drawtext name="menutext" x="0" y="35%" font="{regular}" fontsize="60%" color="{clrWhite}" text="{title}" />
</areascroll> </areascroll>
<!-- element whatsonfavorites -->
<area condition="not{separator}++{whatsonfavorites}" x="1%" width="9%" layer="3">
<drawimage name="logo" imagetype="channellogo" path="{channelid}" width="90%" height="90%" align="center" valign="center" />
</area>
<area condition="not{separator}++{whatsonfavorites}++not{current}" x="11%" width="39%" layer="3">
<drawtext x="0" y="5%" font="{regular}" fontsize="35%" color="{clrGray}" text="{start} - {stop}" />
</area>
<areascroll scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" condition="not{separator}++{whatsonfavorites}++not{current}" x="11%" width="39%" layer="3">
<drawtext name="menutext" x="0" y="35%" font="{regular}" fontsize="60%" color="{clrGray}" text="{title}" />
</areascroll>
<!-- current element whatsonfavorites -->
<area condition="not{separator}++{whatsonfavorites}++{current}" x="11%" width="39%" layer="3">
<drawtext x="0" y="5%" font="{regular}" fontsize="35%" color="{clrWhite}" text="{start} - {stop}" />
</area>
<areascroll scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" condition="not{separator}++{whatsonfavorites}++{current}" x="11%" width="39%" layer="3">
<drawtext name="menutext" x="0" y="35%" font="{regular}" fontsize="60%" color="{clrWhite}" text="{title}" />
</areascroll>
<!-- day or channel separator --> <!-- day or channel separator -->
<area condition="{separator}" x="1%" width="50%" layer="3"> <area condition="{separator}" x="1%" width="50%" layer="3">
<drawtext x="0" valign="center" font="{regular}" fontsize="70%" color="{clrWhite}" text="{title}" /> <drawtext x="0" valign="center" font="{regular}" fontsize="70%" color="{clrWhite}" text="{title}" />
@ -165,6 +184,7 @@
{whatson} true if menu "What's on" is displayed {whatson} true if menu "What's on" is displayed
{whatsonnow} true if menu "What's on now" is displayed {whatsonnow} true if menu "What's on now" is displayed
{whatsonnext} true if menu "What's on next" is displayed {whatsonnext} true if menu "What's on next" is displayed
{whatsonfavorites} true if EPGSearch Favorites menu is displayed
{schedule[]} array with next 10 schedules, only for whatsonnow and whatsonnext {schedule[]} array with next 10 schedules, only for whatsonnow and whatsonnext
{schedule[title]} title of event {schedule[title]} title of event
{schedule[shorttext]} shorttext of event {schedule[shorttext]} shorttext of event

View File

@ -11,11 +11,12 @@
{whatson} true if menu "What's on" is displayed {whatson} true if menu "What's on" is displayed
{whatsonnow} true if menu "What's on now" is displayed {whatsonnow} true if menu "What's on now" is displayed
{whatsonnext} true if menu "What's on next" is displayed {whatsonnext} true if menu "What's on next" is displayed
{whatsonfavorites} true if EPGSearch Favorites menu is displayed
--> -->
<header> <header>
<area x="0" y="0" width="38%" height="10%" layer="2"> <area x="0" y="0" width="38%" height="10%" layer="2">
<drawimage condition="{whatsonnow}||{whatsonnext}" name="menuicon" imagetype="menuicon" path="{icon}" x="5" valign="center" width="{areaheight}*8/10" height="80%"/> <drawimage condition="{whatsonnow}||{whatsonnext}||{whatsonfavorites}" name="menuicon" imagetype="menuicon" path="{icon}" x="5" valign="center" width="{areaheight}*8/10" height="80%"/>
<drawtext condition="{whatsonnow}||{whatsonnext}" x="{width(menuicon)} + 15" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{title}" /> <drawtext condition="{whatsonnow}||{whatsonnext}||{whatsonfavorites}" x="{width(menuicon)} + 15" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{title}" />
<drawimage name="logo" condition="{whatson}" imagetype="channellogo" path="{channelid}" x="0" width="15%" height="100%" align="left" valign="center" /> <drawimage name="logo" condition="{whatson}" imagetype="channellogo" path="{channelid}" x="0" width="15%" height="100%" align="left" valign="center" />
<drawtext condition="{whatson}" x="{width(logo)}+20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{channelnumber} - {channelname}" /> <drawtext condition="{whatson}" x="{width(logo)}+20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{channelnumber} - {channelname}" />
</area> </area>
@ -47,6 +48,7 @@
{whatson} true if menu "What's on" is displayed {whatson} true if menu "What's on" is displayed
{whatsonnow} true if menu "What's on now" is displayed {whatsonnow} true if menu "What's on now" is displayed
{whatsonnext} true if menu "What's on next" is displayed {whatsonnext} true if menu "What's on next" is displayed
{whatsonfavorites} true if EPGSearch Favorites menu is displayed
{timerpartitial} true if partitial timer is set for the event {timerpartitial} true if partitial timer is set for the event
{timerfull} true if full timer is set for the event {timerfull} true if full timer is set for the event
{hasVPS} true if event has VPS information {hasVPS} true if event has VPS information
@ -104,6 +106,19 @@
<areascroll condition="not{separator}++{whatsonnext}" scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" x="7%" width="52%" layer="4"> <areascroll condition="not{separator}++{whatsonnext}" scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" x="7%" width="52%" layer="4">
<drawtext name="menutext" x="10" valign="center" font="{light}" fontsize="95%" color="{clrWhite}" text="{start} {title}" /> <drawtext name="menutext" x="10" valign="center" font="{light}" fontsize="95%" color="{clrWhite}" text="{start} {title}" />
</areascroll> </areascroll>
<!-- WHATSONFAVORITES -->
<area condition="not{separator}++{whatsonfavorites}" x="1%" width="6%" layer="3">
<drawimage name="logo" imagetype="channellogo" path="{channelid}" x="0" width="100%" height="100%" valign="center" />
</area>
<area condition="not{separator}++{whatsonfavorites}++{timerfull}" x="53%" width="6%" layer="4">
<drawimage imagetype="icon" path="ico_activetimer" x="{areawidth} - 0.9*{areaheight} - 10" width="0.9*{areaheight}" height="0.9*{areaheight}" valign="center" />
</area>
<area condition="not{separator}++{whatsonfavorites}++{timerpartitial}" x="53%" width="6%" layer="5">
<drawimage imagetype="icon" path="ico_activetimer" x="{areawidth} - 0.5*{areaheight} - 10" width="0.5*{areaheight}" height="0.5*{areaheight}" valign="center" />
</area>
<areascroll condition="not{separator}++{whatsonfavorites}" scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" x="7%" width="52%" layer="4">
<drawtext name="menutext" x="10" valign="center" font="{light}" fontsize="95%" color="{clrWhite}" text="{start} {title}" />
</areascroll>
<!-- Separator --> <!-- Separator -->
<area condition="{separator}" x="0" width="68%" layer="3"> <area condition="{separator}" x="0" width="68%" layer="3">
<drawtext x="20" valign="center" font="{light}" fontsize="95%" color="{clrBlueLight}" text="{title}" /> <drawtext x="20" valign="center" font="{light}" fontsize="95%" color="{clrBlueLight}" text="{title}" />

View File

@ -9,10 +9,11 @@
{whatson} true if menu "What's on" is displayed {whatson} true if menu "What's on" is displayed
{whatsonnow} true if menu "What's on now" is displayed {whatsonnow} true if menu "What's on now" is displayed
{whatsonnext} true if menu "What's on next" is displayed {whatsonnext} true if menu "What's on next" is displayed
{whatsonfavorites} true if EPGSearch Favorites menu is displayed
--> -->
<header> <header>
<area x="1%" y="0" width="64%" height="10%" layer="2"> <area x="1%" y="0" width="64%" height="10%" layer="2">
<drawtext condition="{whatsonnow}||{whatsonnext}" x="5" valign="center" font="{vdrOsd}" fontsize="80%" color="{clrWhite}" text="{title}" /> <drawtext condition="{whatsonnow}||{whatsonnext}||{whatsonfavorites}" x="5" valign="center" font="{vdrOsd}" fontsize="80%" color="{clrWhite}" text="{title}" />
<drawimage name="logo" condition="{whatson}" imagetype="channellogo" path="{channelid}" x="0" width="15%" height="100%" align="left" valign="center" /> <drawimage name="logo" condition="{whatson}" imagetype="channellogo" path="{channelid}" x="0" width="15%" height="100%" align="left" valign="center" />
<drawtext condition="{whatson}" x="{width(logo)}+20" valign="center" font="{vdrOsd}" fontsize="50%" color="{clrWhite}" text="{channelnumber} - {channelname}" /> <drawtext condition="{whatson}" x="{width(logo)}+20" valign="center" font="{vdrOsd}" fontsize="50%" color="{clrWhite}" text="{channelnumber} - {channelname}" />
</area> </area>
@ -45,6 +46,7 @@
{whatson} true if menu "What's on" is displayed {whatson} true if menu "What's on" is displayed
{whatsonnow} true if menu "What's on now" is displayed {whatsonnow} true if menu "What's on now" is displayed
{whatsonnext} true if menu "What's on next" is displayed {whatsonnext} true if menu "What's on next" is displayed
{whatsonfavorites} true if EPGSearch Favorites menu is displayed
{timerpartitial} true if partitial timer is set for the event {timerpartitial} true if partitial timer is set for the event
{timerfull} true if full timer is set for the event {timerfull} true if full timer is set for the event
{hasVPS} true if event has VPS information {hasVPS} true if event has VPS information
@ -123,7 +125,27 @@
<areascroll scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" condition="not{separator}++{whatsonnext}++{current}" x="9%" width="18%" layer="3"> <areascroll scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" condition="not{separator}++{whatsonnext}++{current}" x="9%" width="18%" layer="3">
<drawtext name="menutext" x="0" y="40%" font="{vdrOsd}" fontsize="55%" color="{clrFontMenuItemSelected}" text="{title}" /> <drawtext name="menutext" x="0" y="40%" font="{vdrOsd}" fontsize="55%" color="{clrFontMenuItemSelected}" text="{title}" />
</areascroll> </areascroll>
<!-- day or channel separator --> <!-- element whatsonfavorites -->
<area condition="not{separator}++{whatsonfavorites}" x="5" width="8%" layer="3">
<drawimage name="logo" imagetype="channellogo" path="{channelid}" x="0" width="100%" height="94%" valign="center" />
</area>
<area condition="not{separator}++{whatsonfavorites}++not{current}" x="9%" width="18%" layer="3">
<drawtext x="0" y="5%" font="{vdrOsd}" fontsize="40%" color="{clrFontMenuItem}" text="{start} - {stop}" />
<drawimage condition="{timerfull}" imagetype="icon" path="ico_activetimer" x="{areawidth} - {areaheight}*5/10 - 10" y="10" width="{areaheight}*5/10" height="{areaheight}*5/10" />
<drawimage condition="{timerpartitial}" imagetype="icon" path="ico_activetimer" x="{areawidth} - {areaheight}*3/10 - 10" y="10" width="{areaheight}*3/10" height="{areaheight}*3/10" />
</area>
<areascroll scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" condition="not{separator}++{whatsonfavorites}++not{current}" x="9%" width="18%" layer="3">
<drawtext name="menutext" x="0" y="40%" font="{vdrOsd}" fontsize="55%" color="{clrFontMenuItem}" text="{title}" />
</areascroll>
<!-- current element whatsonfavorites -->
<area condition="not{separator}++{whatsonfavorites}++{current}" x="9%" width="18%" layer="3">
<drawtext x="0" y="5%" font="{vdrOsd}" fontsize="40%" color="{clrFontMenuItemSelected}" text="{start} - {stop}" />
<drawimage condition="{timerfull}" imagetype="icon" path="ico_activetimer" x="{areawidth} - {areaheight}*5/10 - 10" y="10" width="{areaheight}*5/10" height="{areaheight}*5/10" />
<drawimage condition="{timerpartitial}" imagetype="icon" path="ico_activetimer" x="{areawidth} - {areaheight}*3/10 - 10" y="10" width="{areaheight}*3/10" height="{areaheight}*3/10" />
</area>
<areascroll scrollelement="menutext" mode="forthandback" orientation="horizontal" delay="1000" scrollspeed="medium" condition="not{separator}++{whatsonfavorites}++{current}" x="9%" width="18%" layer="3">
<drawtext name="menutext" x="0" y="40%" font="{vdrOsd}" fontsize="55%" color="{clrFontMenuItemSelected}" text="{title}" />
</areascroll> <!-- day or channel separator -->
<area condition="{separator}" x="0" width="28%" layer="3"> <area condition="{separator}" x="0" width="28%" layer="3">
<drawimage name="sep" imagetype="icon" path="ico_daydelimiter" x="10" valign="center" width="{areaheight}-10" height="{areaheight}-10"/> <drawimage name="sep" imagetype="icon" path="ico_daydelimiter" x="10" valign="center" width="{areaheight}-10" height="{areaheight}-10"/>
<drawtext x="{width(sep)} + 20" valign="center" font="{vdrOsd}" fontsize="60%" color="{clrFontInactive}" text="{title}" /> <drawtext x="{width(sep)} + 20" valign="center" font="{vdrOsd}" fontsize="60%" color="{clrFontInactive}" text="{title}" />

View File

@ -11,6 +11,7 @@
{whatson} true if menu "What's on" is displayed {whatson} true if menu "What's on" is displayed
{whatsonnow} true if menu "What's on now" is displayed {whatsonnow} true if menu "What's on now" is displayed
{whatsonnext} true if menu "What's on next" is displayed {whatsonnext} true if menu "What's on next" is displayed
{whatsonfavorites} true if EPGSearch Favorites menu is displayed
--> -->
<header> <header>
</header> </header>
@ -41,6 +42,7 @@
{whatson} true if menu "What's on" is displayed {whatson} true if menu "What's on" is displayed
{whatsonnow} true if menu "What's on now" is displayed {whatsonnow} true if menu "What's on now" is displayed
{whatsonnext} true if menu "What's on next" is displayed {whatsonnext} true if menu "What's on next" is displayed
{whatsonfavorites} true if EPGSearch Favorites menu is displayed
{timerpartitial} true if partitial timer is set for the event {timerpartitial} true if partitial timer is set for the event
{timerfull} true if full timer is set for the event {timerfull} true if full timer is set for the event
{hasVPS} true if event has VPS information {hasVPS} true if event has VPS information
@ -80,6 +82,7 @@
{whatson} true if menu "What's on" is displayed {whatson} true if menu "What's on" is displayed
{whatsonnow} true if menu "What's on now" is displayed {whatsonnow} true if menu "What's on now" is displayed
{whatsonnext} true if menu "What's on next" is displayed {whatsonnext} true if menu "What's on next" is displayed
{whatsonfavorites} true if EPGSearch Favorites menu is displayed
{schedule[]} array with next 10 schedules, only for whatsonnow and whatsonnext {schedule[]} array with next 10 schedules, only for whatsonnow and whatsonnext
{schedule[title]} title of event {schedule[title]} title of event
{schedule[shorttext]} shorttext of event {schedule[shorttext]} shorttext of event

View File

@ -104,12 +104,13 @@ void cDisplayMenuItemCurrentMainView::Action(void) {
* cDisplayMenuItemCurrentSchedulesView * cDisplayMenuItemCurrentSchedulesView
*************************************************************/ *************************************************************/
cDisplayMenuItemCurrentSchedulesView::cDisplayMenuItemCurrentSchedulesView(cTemplateViewElement *tmplCurrent, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch, eMenuCategory cat) cDisplayMenuItemCurrentSchedulesView::cDisplayMenuItemCurrentSchedulesView(cTemplateViewElement *tmplCurrent, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch, eMenuCategory cat, bool isEpgSearchFav)
: cDisplayMenuItemCurrentView(tmplCurrent) { : cDisplayMenuItemCurrentView(tmplCurrent) {
this->event = event; this->event = event;
this->channel = channel; this->channel = channel;
this->timerMatch = timerMatch; this->timerMatch = timerMatch;
this->cat = cat; this->cat = cat;
this->isEpgSearchFav = isEpgSearchFav;
} }
cDisplayMenuItemCurrentSchedulesView::~cDisplayMenuItemCurrentSchedulesView() { cDisplayMenuItemCurrentSchedulesView::~cDisplayMenuItemCurrentSchedulesView() {
@ -120,9 +121,10 @@ void cDisplayMenuItemCurrentSchedulesView::Prepare(void) {
void cDisplayMenuItemCurrentSchedulesView::Render(void) { void cDisplayMenuItemCurrentSchedulesView::Render(void) {
intTokens.insert(pair<string,int>("whatson", (cat == mcSchedule) ? true: false)); intTokens.insert(pair<string,int>("whatson", (cat == mcSchedule)&&(!isEpgSearchFav) ? true: false));
intTokens.insert(pair<string,int>("whatsonnow", (cat == mcScheduleNow) ? true: false)); intTokens.insert(pair<string,int>("whatsonnow", (cat == mcScheduleNow) ? true: false));
intTokens.insert(pair<string,int>("whatsonnext", (cat == mcScheduleNext) ? true: false)); intTokens.insert(pair<string,int>("whatsonnext", (cat == mcScheduleNext) ? true: false));
intTokens.insert(pair<string,int>("whatsonfavorites", isEpgSearchFav ? true: false));
if (timerMatch == tmFull) { if (timerMatch == tmFull) {
intTokens.insert(pair<string,int>("timerpartitial", false)); intTokens.insert(pair<string,int>("timerpartitial", false));
intTokens.insert(pair<string,int>("timerfull", true)); intTokens.insert(pair<string,int>("timerfull", true));

View File

@ -42,10 +42,11 @@ private:
const cChannel *channel; const cChannel *channel;
eTimerMatch timerMatch; eTimerMatch timerMatch;
eMenuCategory cat; eMenuCategory cat;
bool isEpgSearchFav;
void Action(void); void Action(void);
void ReadSchedules(vector< map<string,string> > *schedulesTokens); void ReadSchedules(vector< map<string,string> > *schedulesTokens);
public: public:
cDisplayMenuItemCurrentSchedulesView(cTemplateViewElement *tmplCurrent, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch, eMenuCategory cat); cDisplayMenuItemCurrentSchedulesView(cTemplateViewElement *tmplCurrent, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch, eMenuCategory cat, bool isEpgSearchFav);
virtual ~cDisplayMenuItemCurrentSchedulesView(); virtual ~cDisplayMenuItemCurrentSchedulesView();
void Prepare(void); void Prepare(void);
void Render(void); void Render(void);

View File

@ -267,12 +267,13 @@ void cDisplayMenuItemMainView::SplitMenuText(void) {
cDisplayMenuItemSchedulesView::cDisplayMenuItemSchedulesView(cTemplateViewList *tmplList, const cEvent *event, cDisplayMenuItemSchedulesView::cDisplayMenuItemSchedulesView(cTemplateViewList *tmplList, const cEvent *event,
const cChannel *channel, eTimerMatch timerMatch, const cChannel *channel, eTimerMatch timerMatch,
eMenuCategory cat, bool current, bool selectable) eMenuCategory cat, bool isEpgSearchFav, bool current, bool selectable)
: cDisplayMenuItemView(tmplList, current, selectable) { : cDisplayMenuItemView(tmplList, current, selectable) {
this->event = event; this->event = event;
this->channel = channel; this->channel = channel;
this->timerMatch = timerMatch; this->timerMatch = timerMatch;
this->cat = cat; this->cat = cat;
this->isEpgSearchFav = isEpgSearchFav;
} }
cDisplayMenuItemSchedulesView::~cDisplayMenuItemSchedulesView() { cDisplayMenuItemSchedulesView::~cDisplayMenuItemSchedulesView() {
@ -285,9 +286,10 @@ void cDisplayMenuItemSchedulesView::SetTokens(void) {
intTokens.insert(pair<string,int>("current", current)); intTokens.insert(pair<string,int>("current", current));
intTokens.insert(pair<string,int>("separator", !selectable)); intTokens.insert(pair<string,int>("separator", !selectable));
intTokens.insert(pair<string,int>("nummenuitem", num+1)); intTokens.insert(pair<string,int>("nummenuitem", num+1));
intTokens.insert(pair<string,int>("whatson", (cat == mcSchedule) ? true: false)); intTokens.insert(pair<string,int>("whatson", (cat == mcSchedule)&&(!isEpgSearchFav) ? true: false));
intTokens.insert(pair<string,int>("whatsonnow", (cat == mcScheduleNow) ? true: false)); intTokens.insert(pair<string,int>("whatsonnow", (cat == mcScheduleNow) ? true: false));
intTokens.insert(pair<string,int>("whatsonnext", (cat == mcScheduleNext) ? true: false)); intTokens.insert(pair<string,int>("whatsonnext", (cat == mcScheduleNext) ? true: false));
intTokens.insert(pair<string,int>("whatsonfavorites", isEpgSearchFav ? true: false));
if (timerMatch == tmFull) { if (timerMatch == tmFull) {
intTokens.insert(pair<string,int>("timerpartitial", false)); intTokens.insert(pair<string,int>("timerpartitial", false));
intTokens.insert(pair<string,int>("timerfull", true)); intTokens.insert(pair<string,int>("timerfull", true));
@ -360,7 +362,7 @@ void cDisplayMenuItemSchedulesView::Render(void) {
if (current) { if (current) {
cTemplateViewElement *tmplCurrent = tmplList->GetListElementCurrent(); cTemplateViewElement *tmplCurrent = tmplList->GetListElementCurrent();
if (tmplCurrent) { if (tmplCurrent) {
currentView = new cDisplayMenuItemCurrentSchedulesView(tmplCurrent, event, channel, timerMatch, cat); currentView = new cDisplayMenuItemCurrentSchedulesView(tmplCurrent, event, channel, timerMatch, cat, isEpgSearchFav);
currentView->Start(); currentView->Start();
} }
} }

View File

@ -74,10 +74,11 @@ private:
const cChannel *channel; const cChannel *channel;
eTimerMatch timerMatch; eTimerMatch timerMatch;
eMenuCategory cat; eMenuCategory cat;
bool isEpgSearchFav;
string ParseSeparator(string sep); string ParseSeparator(string sep);
public: public:
cDisplayMenuItemSchedulesView(cTemplateViewList *tmplList, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch, cDisplayMenuItemSchedulesView(cTemplateViewList *tmplList, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch,
eMenuCategory cat, bool current, bool selectable); eMenuCategory cat, bool isEpgSearchFav, bool current, bool selectable);
virtual ~cDisplayMenuItemSchedulesView(); virtual ~cDisplayMenuItemSchedulesView();
void SetTokens(void); void SetTokens(void);
void Prepare(void); void Prepare(void);

View File

@ -138,14 +138,14 @@ void cDisplayMenuListView::AddSetupMenuItem(int index, const char *itemText, boo
} }
void cDisplayMenuListView::AddSchedulesMenuItem(int index, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch, void cDisplayMenuListView::AddSchedulesMenuItem(int index, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch,
eMenuCategory cat, bool current, bool selectable) { eMenuCategory cat, bool isEpgSearchFav, bool current, bool selectable) {
if (index >= itemCount) if (index >= itemCount)
return; return;
if (menuItems[index]) { if (menuItems[index]) {
menuItems[index]->SetCurrent(current); menuItems[index]->SetCurrent(current);
return; return;
} }
cDisplayMenuItemView *item = new cDisplayMenuItemSchedulesView(tmplList, event, channel, timerMatch, cat, current, selectable); cDisplayMenuItemView *item = new cDisplayMenuItemSchedulesView(tmplList, event, channel, timerMatch, cat, isEpgSearchFav, current, selectable);
menuItems[index] = item; menuItems[index] = item;
} }

View File

@ -23,7 +23,7 @@ public:
void AddDefaultMenuItem(int index, string *tabTexts, bool current, bool selectable); void AddDefaultMenuItem(int index, string *tabTexts, bool current, bool selectable);
void AddMainMenuItem(int index, const char *itemText, bool current, bool selectable); void AddMainMenuItem(int index, const char *itemText, bool current, bool selectable);
void AddSetupMenuItem(int index, const char *itemText, bool current, bool selectable); void AddSetupMenuItem(int index, const char *itemText, bool current, bool selectable);
void AddSchedulesMenuItem(int index, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch, eMenuCategory cat, bool current, bool selectable); void AddSchedulesMenuItem(int index, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch, eMenuCategory cat, bool isEpgSearchFav, bool current, bool selectable);
void AddChannelsMenuItem(int index, const cChannel *channel, bool withProvider, bool current, bool selectable); void AddChannelsMenuItem(int index, const cChannel *channel, bool withProvider, bool current, bool selectable);
void AddTimersMenuItem(int index, const cTimer *timer, bool current, bool selectable); void AddTimersMenuItem(int index, const cTimer *timer, bool current, bool selectable);
void AddRecordingMenuItem(int index, const cRecording *recording, int level, int total, int isNew, bool current, bool selectable); void AddRecordingMenuItem(int index, const cRecording *recording, int level, int total, int isNew, bool current, bool selectable);

View File

@ -50,6 +50,7 @@ public:
void SetTitle(const char *title); void SetTitle(const char *title);
void SetChannel(const cChannel *channel) { view->SetChannel(channel); }; void SetChannel(const cChannel *channel) { view->SetChannel(channel); };
const cChannel *GetChannel(void) { return view->GetChannel(); }; const cChannel *GetChannel(void) { return view->GetChannel(); };
void SetEpgSearchFavorite(void) { if (view) view->SetEpgSearchFavorite(); };
void SetButtonTexts(const char *Red, const char *Green, const char *Yellow, const char *Blue); void SetButtonTexts(const char *Red, const char *Green, const char *Yellow, const char *Blue);
void SetTabs(int tab1, int tab2, int tab3, int tab4, int tab5); void SetTabs(int tab1, int tab2, int tab3, int tab4, int tab5);
void SetMessage(eMessageType type, const char *text); void SetMessage(eMessageType type, const char *text);

View File

@ -599,6 +599,7 @@ void cDisplayMenuMainView::DrawCustomTokens(void) {
cDisplayMenuSchedulesView::cDisplayMenuSchedulesView(cTemplateView *tmplView, eMenuCategory menuCat, bool menuInit) : cDisplayMenuView(tmplView, menuInit) { cDisplayMenuSchedulesView::cDisplayMenuSchedulesView(cTemplateView *tmplView, eMenuCategory menuCat, bool menuInit) : cDisplayMenuView(tmplView, menuInit) {
cat = menuCat; cat = menuCat;
channel = NULL; channel = NULL;
isEpgSearchFavoritesMenu = false;
} }
cDisplayMenuSchedulesView::~cDisplayMenuSchedulesView() { cDisplayMenuSchedulesView::~cDisplayMenuSchedulesView() {
@ -614,9 +615,10 @@ bool cDisplayMenuSchedulesView::DrawHeader(void) {
map < string, string > stringTokens; map < string, string > stringTokens;
map < string, int > intTokens; map < string, int > intTokens;
intTokens.insert(pair<string,int>("whatson", (cat == mcSchedule) ? true: false)); intTokens.insert(pair<string,int>("whatson", (cat == mcSchedule)&&(!isEpgSearchFavoritesMenu) ? true: false));
intTokens.insert(pair<string,int>("whatsonnow", (cat == mcScheduleNow) ? true: false)); intTokens.insert(pair<string,int>("whatsonnow", (cat == mcScheduleNow) ? true: false));
intTokens.insert(pair<string,int>("whatsonnext", (cat == mcScheduleNext) ? true: false)); intTokens.insert(pair<string,int>("whatsonnext", (cat == mcScheduleNext) ? true: false));
intTokens.insert(pair<string,int>("whatsonfavorites", isEpgSearchFavoritesMenu ? true: false));
stringTokens.insert(pair<string,string>("title", menuTitle)); stringTokens.insert(pair<string,string>("title", menuTitle));
stringTokens.insert(pair<string,string>("vdrversion", VDRVERSION)); stringTokens.insert(pair<string,string>("vdrversion", VDRVERSION));

View File

@ -18,6 +18,7 @@ public:
void SetTitle(const char *title) {menuTitle = title; }; void SetTitle(const char *title) {menuTitle = title; };
virtual void SetChannel(const cChannel *channel) {}; virtual void SetChannel(const cChannel *channel) {};
virtual const cChannel *GetChannel(void) { return NULL; }; virtual const cChannel *GetChannel(void) { return NULL; };
virtual void SetEpgSearchFavorite(void) {};
void SetButtonTexts(string *buttonTexts) { this->buttonTexts = buttonTexts; }; void SetButtonTexts(string *buttonTexts) { this->buttonTexts = buttonTexts; };
bool DrawBackground(void); bool DrawBackground(void);
virtual bool DrawHeader(void); virtual bool DrawHeader(void);
@ -52,11 +53,13 @@ public:
class cDisplayMenuSchedulesView : public cDisplayMenuView { class cDisplayMenuSchedulesView : public cDisplayMenuView {
private: private:
const cChannel *channel; const cChannel *channel;
bool isEpgSearchFavoritesMenu;
public: public:
cDisplayMenuSchedulesView(cTemplateView *tmplView, eMenuCategory menuCat, bool menuInit); cDisplayMenuSchedulesView(cTemplateView *tmplView, eMenuCategory menuCat, bool menuInit);
virtual ~cDisplayMenuSchedulesView(); virtual ~cDisplayMenuSchedulesView();
void SetChannel(const cChannel *channel) { if (channel) this->channel = channel; }; void SetChannel(const cChannel *channel) { if (channel) this->channel = channel; };
const cChannel *GetChannel(void) { return channel; }; const cChannel *GetChannel(void) { return channel; };
void SetEpgSearchFavorite(void) { isEpgSearchFavoritesMenu = true; };
bool DrawHeader(void); bool DrawHeader(void);
}; };