summaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
Diffstat (limited to 'patches')
-rw-r--r--patches/vdr.epgsearch-exttimeredit-0.0.2.diff110
-rw-r--r--patches/vdr.epgsearch-exttimeredit.diff26
2 files changed, 110 insertions, 26 deletions
diff --git a/patches/vdr.epgsearch-exttimeredit-0.0.2.diff b/patches/vdr.epgsearch-exttimeredit-0.0.2.diff
new file mode 100644
index 0000000..c92ff8c
--- /dev/null
+++ b/patches/vdr.epgsearch-exttimeredit-0.0.2.diff
@@ -0,0 +1,110 @@
+--- menu.c.orig 2009-04-11 14:47:08.000000000 +0200
++++ menu.c 2009-04-17 13:53:05.000000000 +0200
+@@ -853,6 +853,7 @@ eOSState cMenuEditTimer::ProcessKey(eKey
+ class cMenuTimerItem : public cOsdItem {
+ private:
+ cTimer *timer;
++ void DoSet(void);
+ public:
+ cMenuTimerItem(cTimer *Timer);
+ virtual int Compare(const cListObject &ListObject) const;
+@@ -863,7 +864,7 @@ public:
+ cMenuTimerItem::cMenuTimerItem(cTimer *Timer)
+ {
+ timer = Timer;
+- Set();
++ DoSet();
+ }
+
+ int cMenuTimerItem::Compare(const cListObject &ListObject) const
+@@ -873,6 +874,18 @@ int cMenuTimerItem::Compare(const cListO
+
+ void cMenuTimerItem::Set(void)
+ {
++ // check for deleted timer
++ for (cTimer *t = Timers.First(); ; t = Timers.Next(t)) {
++ if (t == timer)
++ break; // timer still there
++ if (t == NULL)
++ return; // no matching timer found
++ }
++ DoSet();
++}
++
++void cMenuTimerItem::DoSet(void)
++{
+ cString day, name("");
+ if (timer->WeekDays())
+ day = timer->PrintDay(0, timer->WeekDays(), false);
+@@ -906,8 +919,7 @@ void cMenuTimerItem::Set(void)
+ class cMenuTimers : public cOsdMenu {
+ private:
+ int helpKeys;
+- eOSState Edit(void);
+- eOSState New(void);
++ eOSState Edit(bool New = false);
+ eOSState Delete(void);
+ eOSState OnOff(void);
+ eOSState Info(void);
+@@ -980,19 +992,30 @@ eOSState cMenuTimers::OnOff(void)
+ return osContinue;
+ }
+
+-eOSState cMenuTimers::Edit(void)
++eOSState cMenuTimers::Edit(bool New)
+ {
+- if (HasSubMenu() || Count() == 0)
++ if (HasSubMenu() || (Count() == 0 && !New))
+ return osContinue;
+- isyslog("editing timer %s", *CurrentTimer()->ToDescr());
+- return AddSubMenu(new cMenuEditTimer(CurrentTimer()));
+-}
++ if (!New)
++ isyslog("editing timer %s", *CurrentTimer()->ToDescr());
+
+-eOSState cMenuTimers::New(void)
+-{
+- if (HasSubMenu())
+- return osContinue;
+- return AddSubMenu(new cMenuEditTimer(new cTimer, true));
++ // Data structure for service "Epgsearch-exttimeredit-v1.0"
++ struct Epgsearch_exttimeredit_v1_0
++ {
++ // in
++ cTimer* timer; // pointer to the timer to edit
++ bool bNew; // flag that indicates, if this is a new timer or an existing one
++ const cEvent* event; // pointer to the event corresponding to this timer (may be NULL)
++ // out
++ cOsdMenu* pTimerMenu; // pointer to the menu of results
++ } exttimeredit;
++ exttimeredit.timer = New ? (new cTimer) : CurrentTimer();
++ exttimeredit.bNew = New;
++ exttimeredit.event = exttimeredit.timer->Event();
++ if (cPluginManager::CallFirstService("Epgsearch-exttimeredit-v1.0", &exttimeredit))
++ return AddSubMenu(exttimeredit.pTimerMenu);
++
++ return AddSubMenu(new cMenuEditTimer(exttimeredit.timer, New));
+ }
+
+ eOSState cMenuTimers::Delete(void)
+@@ -1038,7 +1061,7 @@ eOSState cMenuTimers::ProcessKey(eKeys K
+ switch (Key) {
+ case kOk: return Edit();
+ case kRed: state = OnOff(); break; // must go through SetHelpKeys()!
+- case kGreen: return New();
++ case kGreen: return Edit(true);
+ case kYellow: state = Delete(); break;
+ case kInfo:
+ case kBlue: return Info();
+@@ -1051,6 +1074,11 @@ eOSState cMenuTimers::ProcessKey(eKeys K
+ Add(new cMenuTimerItem(Timers.Get(TimerNumber)), true);
+ Display();
+ }
++ if (!HasSubMenu() && Timers.Count()<Count()) {
++ // timer was deleted
++ cOsdMenu::Del(Current());
++ Display();
++ }
+ if (Key != kNone)
+ SetHelpKeys();
+ return state;
diff --git a/patches/vdr.epgsearch-exttimeredit.diff b/patches/vdr.epgsearch-exttimeredit.diff
deleted file mode 100644
index 36e3554..0000000
--- a/patches/vdr.epgsearch-exttimeredit.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- menu.c.orig 2009-04-11 14:47:08.000000000 +0200
-+++ menu.c 2009-04-11 15:13:30.000000000 +0200
-@@ -985,6 +985,23 @@ eOSState cMenuTimers::Edit(void)
- if (HasSubMenu() || Count() == 0)
- return osContinue;
- isyslog("editing timer %s", *CurrentTimer()->ToDescr());
-+
-+ // Data structure for service "Epgsearch-exttimeredit-v1.0"
-+ struct Epgsearch_exttimeredit_v1_0
-+ {
-+ // in
-+ cTimer* timer; // pointer to the timer to edit
-+ bool bNew; // flag that indicates, if this is a new timer or an existing one
-+ const cEvent* event; // pointer to the event corresponding to this timer (may be NULL)
-+ // out
-+ cOsdMenu* pTimerMenu; // pointer to the menu of results
-+ } exttimeredit;
-+ exttimeredit.timer = CurrentTimer();
-+ exttimeredit.bNew = false;
-+ exttimeredit.event = NULL;
-+ if (cPluginManager::CallFirstService("Epgsearch-exttimeredit-v1.0", &exttimeredit))
-+ return AddSubMenu(exttimeredit.pTimerMenu);
-+
- return AddSubMenu(new cMenuEditTimer(CurrentTimer()));
- }
-