add timeroverlap detection made by adenin (thanks for the great work!)
[enigma2.git] / lib / python / Screens / EventView.py
index 8504165db222f1faedfcc610ea12dbb349fe0176..5d50d9bcb5aa60d85978bfe821edb32a8f3a5c11 100644 (file)
@@ -1,13 +1,15 @@
 from Screen import Screen
 from Screen import Screen
+from Screens.TimerEdit import TimerSanityConflict
 from Components.ActionMap import ActionMap
 from Components.Button import Button
 from Components.Label import Label
 from Components.ScrollLabel import ScrollLabel
 from Components.ActionMap import ActionMap
 from Components.Button import Button
 from Components.Label import Label
 from Components.ScrollLabel import ScrollLabel
+from Components.TimerList import TimerList
 from enigma import eEPGCache, eTimer, eServiceReference
 from enigma import eEPGCache, eTimer, eServiceReference
-from ServiceReference import ServiceReference
 from RecordTimer import RecordTimerEntry, parseEvent
 from TimerEntry import TimerEntry
 from RecordTimer import RecordTimerEntry, parseEvent
 from TimerEntry import TimerEntry
-from time import localtime, asctime
+from time import localtime
+from Components.config import config
 
 class EventViewBase:
        def __init__(self, Event, Ref, callback=None, similarEPGCB=None):
 
 class EventViewBase:
        def __init__(self, Event, Ref, callback=None, similarEPGCB=None):
@@ -23,7 +25,7 @@ class EventViewBase:
                self["key_red"] = Button("")
                if similarEPGCB is not None:
                        self.SimilarBroadcastTimer = eTimer()
                self["key_red"] = Button("")
                if similarEPGCB is not None:
                        self.SimilarBroadcastTimer = eTimer()
-                       self.SimilarBroadcastTimer.timeout.get().append(self.getSimilarEvents)
+                       self.SimilarBroadcastTimer.callback.append(self.getSimilarEvents)
                else:
                        self.SimilarBroadcastTimer = None
                if self.isRecording:
                else:
                        self.SimilarBroadcastTimer = None
                if self.isRecording:
@@ -60,13 +62,25 @@ class EventViewBase:
        def timerAdd(self):
                if not self.isRecording:
                        newEntry = RecordTimerEntry(self.currentService, checkOldTimers = True, *parseEvent(self.event))
        def timerAdd(self):
                if not self.isRecording:
                        newEntry = RecordTimerEntry(self.currentService, checkOldTimers = True, *parseEvent(self.event))
-                       self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry)
-
-       def timerEditFinished(self, answer):
-               if (answer[0]):
-                       self.session.nav.RecordTimer.record(answer[1])
+                       self.session.openWithCallback(self.finishedAdd, TimerEntry, newEntry)
+
+       def finishedAdd(self, answer):
+               print "finished add"
+               if answer[0]:
+                       entry = answer[1]
+                       simulTimerList = self.session.nav.RecordTimer.record(entry)
+                       if simulTimerList is not None:
+                               if (len(simulTimerList) == 2) and (simulTimerList[1].dontSave) and (simulTimerList[1].autoincrease):
+                                       simulTimerList[1].end = entry.begin - 30
+                                       self.session.nav.RecordTimer.timeChanged(simulTimerList[1])
+                                       self.session.nav.RecordTimer.record(entry)
+                               else:
+                                       self.session.openWithCallback(self.finishSanityCorrection, TimerSanityConflict, simulTimerList)
                else:
                else:
-                       print "Timeredit aborted"
+                       print "Timeredit aborted"               
+
+       def finishSanityCorrection(self, answer):
+               self.finishedAdd(answer)
 
        def setService(self, service):
                self.currentService=service
 
        def setService(self, service):
                self.currentService=service