fix PIP
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index e12d2f1896b7d2b570a824ba3bccdba2b780bafc..978e73198391ed0d051518ebada89f71b5e4ae76 100644 (file)
@@ -406,8 +406,16 @@ class InfoBarEPG:
                self["EPGActions"] = HelpableActionMap(self, "InfobarEPGActions", 
                        {
                                "showEventInfo": (self.openEventView, _("show EPG...")),
+                               "showInfobarOrEpgWhenInfobarAlreadyVisible": self.showEventInfoWhenNotVisible,
                        })
 
+       def showEventInfoWhenNotVisible(self):
+               if self.shown:
+                       self.openEventView()
+               else:
+                       self.toggleShow()
+                       return 1
+
        def zapToService(self, service):
                if not service is None:
                        if self.servicelist.getRoot() != self.epg_bouquet: #already in correct bouquet?
@@ -638,8 +646,7 @@ class InfoBarSeek:
                                if action[:5] == "seek:":
                                        time = int(action[5:])
                                        self.screen.seekRelative(time * 90000)
-                                       if isinstance(self.screen, InfoBarShowHide):
-                                               self.screen.doShow()
+                                       self.screen.showAfterSeek()
                                        return 1
                                else:
                                        return HelpableActionMap.action(self, contexts, action)
@@ -651,26 +658,15 @@ class InfoBarSeek:
                                "unPauseService": (self.unPauseService, _("continue")),
 
                                "seekFwd": (self.seekFwd, _("skip forward")),
-                               "seekFwdDown": self.seekFwdDown,
-                               "seekFwdUp": self.seekFwdUp,
+                               "seekFwdManual": (self.seekFwdManual, _("skip forward (enter time)")),
                                "seekBack": (self.seekBack, _("skip backward")),
-                               "seekBackDown": self.seekBackDown,
-                               "seekBackUp": self.seekBackUp,
+                               "seekBackManual": (self.seekBackManual, _("skip backward (enter time)")),
                        }, prio=-1)
                        # give them a little more priority to win over color buttons
 
                self["SeekActions"].setEnabled(False)
 
                self.seekstate = self.SEEK_STATE_PLAY
-               self.onClose.append(self.delTimer)
-
-               self.fwdtimer = False
-               self.fwdKeyTimer = eTimer()
-               self.fwdKeyTimer.timeout.get().append(self.fwdTimerFire)
-
-               self.rwdtimer = False
-               self.rwdKeyTimer = eTimer()
-               self.rwdKeyTimer.timeout.get().append(self.rwdTimerFire)
 
                self.onPlayStateChanged = [ ]
 
@@ -678,16 +674,16 @@ class InfoBarSeek:
 
                self.__seekableStatusChanged()
 
+       def showAfterSeek(self):
+               if isinstance(self, InfoBarShowHide):
+                       self.doShow()
+
        def up(self):
                pass
 
        def down(self):
                pass
 
-       def delTimer(self):
-               del self.fwdKeyTimer
-               del self.rwdKeyTimer
-
        def getSeek(self):
                service = self.session.nav.getCurrentService()
                if service is None:
@@ -785,23 +781,6 @@ class InfoBarSeek:
 
                seekable.seekTo(90 * seektime)
 
-       def seekFwdDown(self):
-               print "start fwd timer"
-               self.fwdtimer = True
-               self.fwdKeyTimer.start(1000)
-
-       def seekBackDown(self):
-               print "start rewind timer"
-               self.rwdtimer = True
-               self.rwdKeyTimer.start(1000)
-
-       def seekFwdUp(self):
-               print "seekFwdUp"
-               if self.fwdtimer:
-                       self.fwdKeyTimer.stop()
-                       self.fwdtimer = False
-                       self.seekFwd()
-
        def seekFwd(self):
                lookup = {
                                self.SEEK_STATE_PLAY: self.SEEK_STATE_FF_2X,
@@ -823,13 +802,6 @@ class InfoBarSeek:
                        }
                self.setSeekState(lookup[self.seekstate])
 
-       def seekBackUp(self):
-               print "seekBackUp"
-               if self.rwdtimer:
-                       self.rwdKeyTimer.stop()
-                       self.rwdtimer = False
-                       self.seekBack()
-
        def seekBack(self):
                lookup = {
                                self.SEEK_STATE_PLAY: self.SEEK_STATE_BACK_16X,
@@ -856,10 +828,7 @@ class InfoBarSeek:
                        if seekable is not None:
                                seekable.seekRelative(-1, 3)
 
-       def fwdTimerFire(self):
-               print "Display seek fwd"
-               self.fwdKeyTimer.stop()
-               self.fwdtimer = False
+       def seekFwdManual(self):
                self.session.openWithCallback(self.fwdSeekTo, MinuteInput)
 
        def fwdSeekTo(self, minutes):
@@ -869,10 +838,7 @@ class InfoBarSeek:
                        if seekable is not None:
                                seekable.seekRelative(1, minutes * 60 * 90000)
 
-       def rwdTimerFire(self):
-               print "rwdTimerFire"
-               self.rwdKeyTimer.stop()
-               self.rwdtimer = False
+       def seekBackManual(self):
                self.session.openWithCallback(self.rwdSeekTo, MinuteInput)
 
        def rwdSeekTo(self, minutes):
@@ -967,9 +933,9 @@ class InfoBarShowMovies:
        def __init__(self):
                self["MovieListActions"] = HelpableActionMap(self, "InfobarMovieListActions", 
                        {
-                               "movieList": (self.showMovies, "movie list"),
-                               "up": (self.showMovies, "movie list"),
-                               "down": (self.showMovies, "movie list")
+                               "movieList": (self.showMovies, _("movie list")),
+                               "up": (self.showMovies, _("movie list")),
+                               "down": (self.showMovies, _("movie list"))
                        })
 
 # InfoBarTimeshift requires InfoBarSeek, instantiated BEFORE!
@@ -1263,6 +1229,7 @@ class InfoBarPiP:
                        self.session.pipshown = False
                else:
                        self.session.pip = self.session.instantiateDialog(PictureInPicture)
+                       self.session.pip.show()
                        newservice = self.session.nav.getCurrentlyPlayingServiceReference()
                        if self.session.pip.playService(newservice):
                                self.session.pipshown = True
@@ -1743,9 +1710,9 @@ class InfoBarCueSheetSupport:
        def __init__(self):
                self["CueSheetActions"] = HelpableActionMap(self, "InfobarCueSheetActions", 
                        {
-                               "jumpPreviousMark": (self.jumpPreviousMark, "jump to next marked position"),
-                               "jumpNextMark": (self.jumpNextMark, "jump to previous marked position"),
-                               "toggleMark": (self.toggleMark, "toggle a cut mark at the current position")
+                               "jumpPreviousMark": (self.jumpPreviousMark, _("jump to next marked position")),
+                               "jumpNextMark": (self.jumpNextMark, _("jump to previous marked position")),
+                               "toggleMark": (self.toggleMark, _("toggle a cut mark at the current position"))
                        }, prio=1) 
 
                self.cut_list = [ ]
@@ -1845,13 +1812,23 @@ class InfoBarCueSheetSupport:
                if onlyreturn:
                        return None
 
+       def showAfterCuesheetOperation(self):
+               if isinstance(self, InfoBarShowHide):
+                       self.doShow()
+
        def addMark(self, point):
                insort(self.cut_list, point)
                self.uploadCuesheet()
+               self.showAfterCuesheetOperation()
 
        def removeMark(self, point):
                self.cut_list.remove(point)
                self.uploadCuesheet()
+               self.showAfterCuesheetOperation()
+
+       def showAfterCuesheetOperation(self):
+               if isinstance(self, InfoBarShowHide):
+                       self.doShow()
 
        def __getCuesheet(self):
                service = self.session.nav.getCurrentService()
@@ -1871,9 +1848,10 @@ class InfoBarCueSheetSupport:
                cue = self.__getCuesheet()
 
                if cue is None:
-                       print "upload failed, no cuesheet interface"
-                       return
-               self.cut_list = cue.getCutList()
+                       print "download failed, no cuesheet interface"
+                       self.cut_list = [ ]
+               else:
+                       self.cut_list = cue.getCutList()
 
 class InfoBarSummary(Screen):
        skin = """