summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY2
-rw-r--r--menuitems.c7
-rw-r--r--menuitems.h3
3 files changed, 9 insertions, 3 deletions
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);