diff --git a/HISTORY b/HISTORY index 6631f125..2abefc73 100644 --- a/HISTORY +++ b/HISTORY @@ -7035,3 +7035,5 @@ Video Disk Recorder Revision History - Improved fast forwarding to the end of a timeshift recording. - The new function cDevice::DeviceName() returns a string identifying the name of the given device. +- When toggling a timer between "Single" and "Repeating", the previous setting is now + retained in case the user toggles back to the original value. diff --git a/menuitems.c b/menuitems.c index 6a6d88d6..ba205c0f 100644 --- a/menuitems.c +++ b/menuitems.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menuitems.c 2.12 2012/03/08 13:22:22 kls Exp $ + * $Id: menuitems.c 2.13 2012/03/13 11:21:57 kls Exp $ */ #include "menuitems.h" @@ -855,6 +855,7 @@ cMenuEditDateItem::cMenuEditDateItem(const char *Name, time_t *Value, int *WeekD value = Value; weekdays = WeekDays; oldvalue = 0; + oldweekdays = 0; dayindex = weekdays ? FindDayIndex(*weekdays) : 0; Set(); } @@ -892,10 +893,12 @@ void cMenuEditDateItem::ToggleRepeating(void) if (*weekdays) { *value = cTimer::SetTime(oldvalue ? oldvalue : time(NULL), 0); oldvalue = 0; + oldweekdays = *weekdays; *weekdays = 0; } else { - *weekdays = days[cTimer::GetWDay(*value)]; + *weekdays = oldweekdays ? oldweekdays : days[cTimer::GetWDay(*value)]; + oldweekdays = 0; dayindex = FindDayIndex(*weekdays); oldvalue = *value; *value = 0; diff --git a/menuitems.h b/menuitems.h index 3f2e4fd4..ffe99570 100644 --- a/menuitems.h +++ b/menuitems.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menuitems.h 2.7 2012/03/08 12:38:46 kls Exp $ + * $Id: menuitems.h 2.8 2012/03/13 11:19:11 kls Exp $ */ #ifndef __MENUITEMS_H @@ -163,6 +163,7 @@ private: time_t *value; int *weekdays; time_t oldvalue; + int oldweekdays; int dayindex; int FindDayIndex(int WeekDays); virtual void Set(void);