possibility to sort epg list alphabetically (thanks to Moritz Venn)
[enigma2.git] / lib / python / Screens / EpgSelection.py
index 0092989df92e3ac58064d720fe893c0b4630313f..a2c31d266b08265a26c3692eac877b4972a08447 100644 (file)
@@ -36,6 +36,8 @@ class EPGSelection(Screen):
                        self["key_blue"] = Button()
                        self.currentService=ServiceReference(service)
                        self.zapFunc = None
+                       self.sort_type = 0
+                       self.setSortDescription()
                else:
                        self.skinName = "EPGSelectionMulti"
                        self.type = EPG_TYPE_MULTI
@@ -57,11 +59,7 @@ class EPGSelection(Screen):
                self["key_green"] = Button(_("Add timer"))
                self["list"] = EPGList(type = self.type, selChangedCB = self.onSelectionChanged, timer = self.session.nav.RecordTimer)
 
-               class ChannelActionMap(ActionMap):
-                       def action(self, contexts, action):
-                               return ActionMap.action(self, contexts, action)
-
-               self["actions"] = ChannelActionMap(["EPGSelectActions", "OkCancelActions"],
+               self["actions"] = ActionMap(["EPGSelectActions", "OkCancelActions"],
                        {
                                "cancel": self.closeScreen,
                                "ok": self.eventSelected,
@@ -160,6 +158,21 @@ class EPGSelection(Screen):
        def yellowButtonPressed(self):
                if self.type == EPG_TYPE_MULTI:
                        self["list"].updateMultiEPG(-1)
+               elif self.type == EPG_TYPE_SINGLE:
+                       if self.sort_type == 0:
+                               self.sort_type = 1
+                       else:
+                               self.sort_type = 0
+                       self["list"].sortSingleEPG(self.sort_type)
+                       self.setSortDescription()
+
+       def setSortDescription(self):
+               if self.sort_type == 1:
+                       # TRANSLATORS: This must fit into the header button in the EPG-List
+                       self["key_yellow"].setText(_("Sort Time"))
+               else:
+                       # TRANSLATORS: This must fit into the header button in the EPG-List
+                       self["key_yellow"].setText(_("Sort A-Z"))
 
        def blueButtonPressed(self):
                if self.type == EPG_TYPE_MULTI: