From 0289731158d786c0d244494e478b68ae2fdfecea Mon Sep 17 00:00:00 2001 From: kamel5 Date: Mon, 11 Nov 2019 13:14:46 +0100 Subject: [PATCH] Refactor cRecMenuTimeline --- recmenuitem.c | 2 ++ recmenus.c | 40 ++++++++++++++++++++-------------------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/recmenuitem.c b/recmenuitem.c index 4a79e1b..df9c117 100644 --- a/recmenuitem.c +++ b/recmenuitem.c @@ -2554,6 +2554,8 @@ cRecMenuItemTimelineTimer::cRecMenuItemTimelineTimer(const cTimer *timer, time_t selectable = true; this->active = active; height = geoManager.osdHeight / 16; + if (active) + setActive(); } cRecMenuItemTimelineTimer::~cRecMenuItemTimelineTimer(void) { diff --git a/recmenus.c b/recmenus.c index fa7d52c..eb51caf 100644 --- a/recmenus.c +++ b/recmenus.c @@ -1292,16 +1292,21 @@ cRecMenuSearchConfirmTimer::cRecMenuSearchConfirmTimer(const cEvent *event, eRec ******************************************************************************************/ // --- cRecMenuTimeline --------------------------------------------------------- -cRecMenuTimeline::cRecMenuTimeline(cTVGuideTimerConflicts *timerConflicts) { +cRecMenuTimeline::cRecMenuTimeline(cTVGuideTimerConflicts *timerConflicts) { // OK + SetWidthPercent(90); + + numTimersToday = 0; this->timerConflicts = timerConflicts; SetStartStop(); conflictsToday = timerConflicts->GetConflictsBetween(timeStart, timeStop); GetTimersForDay(); - SetWidthPercent(90); + header = new cRecMenuItemTimelineHeader(timeStart, numTimersToday, conflictsToday); - SetHeader(header); - cRecMenuItem *footer = new cRecMenuItemButton(tr("Close"), rmsClose, false, true); - SetFooter(footer); + AddHeader(header); + + footer = new cRecMenuItemButton(tr("Close"), rmsClose, false, true); + AddFooter(footer); + SetTimers(); } @@ -1310,10 +1315,9 @@ void cRecMenuTimeline::SetStartStop(void) { tm *timeStruct = localtime(&now); timeStart = now - timeStruct->tm_hour * 3600 - timeStruct->tm_min * 60 - timeStruct->tm_sec; today = timeStart; - timeStop = timeStart + 24*3600 - 1; + timeStop = timeStart + 24 * 3600 - 1; } - void cRecMenuTimeline::GetTimersForDay(void) { timersToday.clear(); #if VDRVERSNUM >= 20301 @@ -1351,40 +1355,36 @@ void cRecMenuTimeline::SetTimers(void) { AddMenuItem(new cRecMenuItemTimelineTimer(NULL, 0, 0, conflictsToday, header, false)); footer->setActive(); } else { - for (int i = 0; isetActive(); - if (!AddMenuItemInitial(item)) + for (int i = 0; i < numTimersToday; i++) { + if (!AddMenuItemInitial(new cRecMenuItemTimelineTimer(timersToday[i], timeStart, timeStop, conflictsToday, header, (i == 0) ? true : false))) break; } footer->setInactive(); } + CalculateHeight(); CreatePixmap(); Arrange(); } void cRecMenuTimeline::PrevDay(void) { - if ((timeStart - 3600*24) < today) + if ((timeStart - 3600 * 24) < today) return; - timeStart -= 3600*24; - timeStop -= 3600*24; + timeStart -= 3600 * 24; + timeStop -= 3600 * 24; SetTimers(); Display(); } void cRecMenuTimeline::NextDay(void) { - timeStart += 3600*24; - timeStop += 3600*24; + timeStart += 3600 * 24; + timeStop += 3600 * 24; SetTimers(); Display(); } cRecMenuItem *cRecMenuTimeline::GetMenuItem(int number) { - if (number < 0) - return NULL; - if (number >= numTimersToday) + if ((number < 0) || (number >= numTimersToday)) return NULL; return new cRecMenuItemTimelineTimer(timersToday[number], timeStart, timeStop, conflictsToday, header, false); }