show timeshift state widget even in state play
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index 8c96c76b2c1f584db8149468c85d2ab5273eb2c7..1c577eecad42141750176d4871f5e7c54649bf12 100644 (file)
@@ -51,25 +51,20 @@ class InfoBarDish:
 class InfoBarUnhandledKey:
        def __init__(self):
                self.unhandledKeyDialog = self.session.instantiateDialog(UnhandledKey)
-               self.hideTimer = eTimer()
-               self.hideTimer.callback.append(self.unhandledKeyDialog.hide)
+               self.hideUnhandledKeySymbolTimer = eTimer()
+               self.hideUnhandledKeySymbolTimer.callback.append(self.unhandledKeyDialog.hide)
                self.checkUnusedTimer = eTimer()
                self.checkUnusedTimer.callback.append(self.checkUnused)
                self.onLayoutFinish.append(self.unhandledKeyDialog.hide)
                eActionMap.getInstance().bindAction('', -0x7FFFFFFF, self.actionA) #highest prio
                eActionMap.getInstance().bindAction('', 0x7FFFFFFF, self.actionB) #lowest prio
-               self.key = -1;
-               self.flags = 0;
+               self.flags = (1<<1);
                self.uflags = 0;
 
        #this function is called on every keypress!
        def actionA(self, key, flag):
                if flag != 4:
-                       if self.key != key:
-                               if self.checkUnusedTimer.isActive():
-                                       self.checkUnusedTimer.stop()
-                                       self.checkUnused()
-                               self.key = key
+                       if self.flags & (1<<1):
                                self.flags = self.uflags = 0
                        self.flags |= (1<<flag)
                        if flag == 1: # break
@@ -84,7 +79,7 @@ class InfoBarUnhandledKey:
        def checkUnused(self):
                if self.flags == self.uflags:
                        self.unhandledKeyDialog.show()
-                       self.hideTimer.start(2000, True)
+                       self.hideUnhandledKeySymbolTimer.start(2000, True)
 
 class InfoBarShowHide:
        """ InfoBar show/hide control, accepts toggleShow and hide actions, might start
@@ -492,7 +487,7 @@ class InfoBarEPG:
                self["EPGActions"] = HelpableActionMap(self, "InfobarEPGActions",
                        {
                                "showEventInfo": (self.openEventView, _("show EPG...")),
-                               "showEventInfoPlugin": (self.showEventInfoPlugins, _("show single service EPG...")),
+                               "showEventInfoPlugin": (self.showEventInfoPlugins, _("list of EPG views...")),
                                "showInfobarOrEpgWhenInfobarAlreadyVisible": self.showEventInfoWhenNotVisible,
                        })
 
@@ -603,6 +598,7 @@ class InfoBarEPG:
 
                if list:
                        list.append((_("show single service EPG..."), self.openSingleServiceEPG))
+                       list.append((_("Multi EPG"), self.openMultiServiceEPG))
                        self.session.openWithCallback(self.EventInfoPluginChosen, ChoiceBox, title=_("Please choose an extension..."), list = list, skin_name = "EPGExtensionsList")
                else:
                        self.openSingleServiceEPG()
@@ -1115,15 +1111,21 @@ class InfoBarPVRState:
                        self.pvrStateDialog.hide()
                else:
                        self._mayShow()
-                       
 
 class InfoBarTimeshiftState(InfoBarPVRState):
        def __init__(self):
                InfoBarPVRState.__init__(self, screen=TimeshiftState, force_show = True)
+               self.__hideTimer = eTimer()
+               self.__hideTimer.callback.append(self.__hideTimeshiftState)
 
        def _mayShow(self):
-               if self.execing and self.timeshift_enabled and self.seekstate != self.SEEK_STATE_PLAY:
+               if self.execing and self.timeshift_enabled:
                        self.pvrStateDialog.show()
+                       if self.seekstate == self.SEEK_STATE_PLAY and not self.shown:
+                               self.__hideTimer.start(5*1000, True)
+
+       def __hideTimeshiftState(self):
+               self.pvrStateDialog.hide()
 
 class InfoBarShowMovies:
 
@@ -2019,8 +2021,10 @@ class InfoBarCueSheetSupport:
 
                        if last is not None:
                                self.resume_point = last
+                               
+                               l = last / 90000
                                if config.usage.on_movie_start.value == "ask":
-                                       Notifications.AddNotificationWithCallback(self.playLastCB, MessageBox, _("Do you want to resume this playback?"), timeout=10)
+                                       Notifications.AddNotificationWithCallback(self.playLastCB, MessageBox, _("Do you want to resume this playback?") + "\n" + (_("Resume position at %s") % ("%d:%02d:%02d" % (l/3600, l%3600/60, l%60))), timeout=10)
                                elif config.usage.on_movie_start.value == "resume":
 # TRANSLATORS: The string "Resuming playback" flashes for a moment
 # TRANSLATORS: at the start of a movie, when the user has selected