more generic Components/Network.py for allowing other interface names (thx to Reichi)
[enigma2.git] / lib / python / Screens / EpgSelection.py
index 331fe75e11b3233c1255fd7ab0c7b9171b0f99ea..0483f98b381cc4bf4c2f4b515e9b825fa6ce0d26 100644 (file)
@@ -7,14 +7,13 @@ from Components.ActionMap import ActionMap
 from Components.ScrollLabel import ScrollLabel
 from Screens.EventView import EventViewSimple
 from TimeDateInput import TimeDateInput
 from Components.ScrollLabel import ScrollLabel
 from Screens.EventView import EventViewSimple
 from TimeDateInput import TimeDateInput
-from enigma import eServiceReference, eServiceEventPtr
+from enigma import eServiceReference
 from Screens.FixedMenu import FixedMenu
 from RecordTimer import RecordTimerEntry, parseEvent
 from TimerEdit import TimerEditList
 from TimerEntry import TimerEntry
 from ServiceReference import ServiceReference
 from Screens.FixedMenu import FixedMenu
 from RecordTimer import RecordTimerEntry, parseEvent
 from TimerEdit import TimerEditList
 from TimerEntry import TimerEntry
 from ServiceReference import ServiceReference
-from Components.config import config, currentConfigSelectionElement
-from time import localtime
+from time import localtime, time
 
 import xml.dom.minidom
 
 
 import xml.dom.minidom
 
@@ -32,11 +31,13 @@ class EPGSelection(Screen):
                        self["key_red"] = Button()
                        self.currentService=service
                        self.eventid = eventid
                        self["key_red"] = Button()
                        self.currentService=service
                        self.eventid = eventid
+                       self.zapFunc = None
                elif isinstance(service, eServiceReference) or isinstance(service, str):
                        self.type = EPG_TYPE_SINGLE
                        self["key_yellow"] = Button()
                        self["key_blue"] = Button()
                        self.currentService=ServiceReference(service)
                elif isinstance(service, eServiceReference) or isinstance(service, str):
                        self.type = EPG_TYPE_SINGLE
                        self["key_yellow"] = Button()
                        self["key_blue"] = Button()
                        self.currentService=ServiceReference(service)
+                       self.zapFunc = None
                else:
                        self.skinName = "EPGSelectionMulti"
                        self.type = EPG_TYPE_MULTI
                else:
                        self.skinName = "EPGSelectionMulti"
                        self.type = EPG_TYPE_MULTI
@@ -101,13 +102,9 @@ class EPGSelection(Screen):
                self.close(self.closeRecursive)
 
        def infoKeyPressed(self):
                self.close(self.closeRecursive)
 
        def infoKeyPressed(self):
-               if self.type == EPG_TYPE_MULTI or self.type == EPG_TYPE_SIMILAR:
-                       cur = self["list"].getCurrent()
-                       event = cur[0]
-                       service = cur[1]
-               else:
-                       event = self["list"].getCurrent()
-                       service = self.currentService
+               cur = self["list"].getCurrent()
+               event = cur[0]
+               service = cur[1]
                if event is not None:
                        if self.type != EPG_TYPE_SIMILAR:
                                self.session.open(EventViewSimple, event, service, self.eventViewCallback, self.openSimilarList)
                if event is not None:
                        if self.type != EPG_TYPE_SIMILAR:
                                self.session.open(EventViewSimple, event, service, self.eventViewCallback, self.openSimilarList)
@@ -124,15 +121,12 @@ class EPGSelection(Screen):
        #just used in multipeg
        def onCreate(self):
                l = self["list"]
        #just used in multipeg
        def onCreate(self):
                l = self["list"]
+               l.recalcEntrySize()
                if self.type == EPG_TYPE_MULTI:
                if self.type == EPG_TYPE_MULTI:
-                       l.recalcEntrySize()
                        l.fillMultiEPG(self.services, self.ask_time)
                elif self.type == EPG_TYPE_SINGLE:
                        l.fillMultiEPG(self.services, self.ask_time)
                elif self.type == EPG_TYPE_SINGLE:
-                       if SINGLE_CPP == 0:
-                               l.recalcEntrySize()
                        l.fillSingleEPG(self.currentService)
                else:
                        l.fillSingleEPG(self.currentService)
                else:
-                       l.recalcEntrySize()
                        l.fillSimilarList(self.currentService, self.eventid)
 
        def eventViewCallback(self, setEvent, setService, val):
                        l.fillSimilarList(self.currentService, self.eventid)
 
        def eventViewCallback(self, setEvent, setService, val):
@@ -143,14 +137,11 @@ class EPGSelection(Screen):
                elif val == +1:
                        self.moveDown()
                cur = l.getCurrent()
                elif val == +1:
                        self.moveDown()
                cur = l.getCurrent()
-               if self.type == EPG_TYPE_SINGLE:
-                       setEvent(cur)
+               if self.type == EPG_TYPE_MULTI and cur[0] is None and cur[1].ref != old[1].ref:
+                       self.eventViewCallback(setEvent, setService, val)
                else:
                else:
-                       if self.type == EPG_TYPE_MULTI and cur[0] is None and cur[1].ref != old[1].ref:
-                               self.eventViewCallback(setEvent, setService, val)
-                       else:
-                               setService(cur[1])
-                               setEvent(cur[0])
+                       setService(cur[1])
+                       setEvent(cur[0])
 
        def zapTo(self): # just used in multiepg
                if self.zapFunc and self["key_red"].getText() == "Zap":
 
        def zapTo(self): # just used in multiepg
                if self.zapFunc and self["key_red"].getText() == "Zap":
@@ -173,16 +164,12 @@ class EPGSelection(Screen):
                        self["list"].updateMultiEPG(1)
 
        def timerAdd(self):
                        self["list"].updateMultiEPG(1)
 
        def timerAdd(self):
-               if self.type == EPG_TYPE_SINGLE:
-                       event = self["list"].getCurrent()
-                       serviceref = self.currentService
-               else:
-                       cur = self["list"].getCurrent()
-                       event = cur[0]
-                       serviceref = cur[1]
+               cur = self["list"].getCurrent()
+               event = cur[0]
+               serviceref = cur[1]
                if event is None:
                        return
                if event is None:
                        return
-               newEntry = RecordTimerEntry(serviceref, *parseEvent(event))
+               newEntry = RecordTimerEntry(serviceref, checkOldTimers = True, *parseEvent(event))
                self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry)
 
        def timerEditFinished(self, answer):
                self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry)
 
        def timerEditFinished(self, answer):