+
+class QuickSubtitlesConfigMenu(ConfigListScreen, Screen):
+ skin = """
+ <screen position="50,80" size="480,425" title="Subtitle settings">
+ <widget name="config" position="5,5" size="470,395" scrollbarMode="showOnDemand" />
+ <widget name="videofps" position="5,405" size="470,25" zPosition="10" font="Regular;20" backgroundColor="#25062748" transparent="1" />
+ </screen>"""
+
+ def __init__(self, session, infobar):
+ Screen.__init__(self, session)
+ self.skin = QuickSubtitlesConfigMenu.skin
+ self.infobar = infobar or self.session.infobar
+
+ self.wait = eTimer()
+ self.wait.timeout.get().append(self.resyncSubtitles)
+
+ self["videofps"] = Label("")
+
+ sub = self.infobar.selected_subtitle
+ if sub[0] == 0: # dvb
+ menu = [
+ getConfigMenuItem("config.subtitles.subtitle_fontcolor"),
+ getConfigMenuItem("config.subtitles.dvb_subtitles_centered"),
+ getConfigMenuItem("config.subtitles.subtitle_bgopacity"),
+ getConfigMenuItem("config.subtitles.subtitle_original_position"),
+ getConfigMenuItem("config.subtitles.subtitle_position"),
+ getConfigMenuItem("config.subtitles.subtitle_bad_timing_delay"),
+ getConfigMenuItem("config.subtitles.subtitle_noPTSrecordingdelay"),
+ ]
+ elif sub[0] == 1: # teletext
+ menu = [
+ getConfigMenuItem("config.subtitles.subtitle_fontcolor"),
+ getConfigMenuItem("config.subtitles.subtitle_fontsize"),
+ getConfigMenuItem("config.subtitles.subtitle_opacity"),
+ getConfigMenuItem("config.subtitles.subtitle_bgcolor"),
+ getConfigMenuItem("config.subtitles.subtitle_bgopacity"),
+ getConfigMenuItem("config.subtitles.subtitle_edgestyle"),
+ getConfigMenuItem("config.subtitles.subtitle_edgestyle_level"),
+ getConfigMenuItem("config.subtitles.subtitle_original_position"),
+ getConfigMenuItem("config.subtitles.subtitle_alignment"),
+ getConfigMenuItem("config.subtitles.subtitle_position"),
+ getConfigMenuItem("config.subtitles.subtitle_bad_timing_delay"),
+ getConfigMenuItem("config.subtitles.subtitle_noPTSrecordingdelay"),
+ ]
+ else: # pango
+ menu = [
+ getConfigMenuItem("config.subtitles.subtitle_fontcolor"),
+ getConfigMenuItem("config.subtitles.subtitle_fontsize"),
+ getConfigMenuItem("config.subtitles.subtitle_opacity"),
+ getConfigMenuItem("config.subtitles.subtitle_bgcolor"),
+ getConfigMenuItem("config.subtitles.subtitle_bgopacity"),
+ getConfigMenuItem("config.subtitles.subtitle_edgestyle"),
+ getConfigMenuItem("config.subtitles.subtitle_edgestyle_level"),
+ getConfigMenuItem("config.subtitles.subtitle_original_position"),
+ getConfigMenuItem("config.subtitles.subtitle_alignment"),
+ getConfigMenuItem("config.subtitles.subtitle_position"),
+ getConfigMenuItem("config.subtitles.pango_subtitle_fontswitch"),
+ getConfigMenuItem("config.subtitles.colourise_dialogs"),
+ getConfigMenuItem("config.subtitles.subtitle_rewrap"),
+ getConfigMenuItem("config.subtitles.pango_subtitles_delay"),
+ getConfigMenuItem("config.subtitles.pango_subtitles_fps"),
+ ]
+ self["videofps"].setText(_("Video: %s fps") % (self.getFps().rstrip(".000")))
+
+ ConfigListScreen.__init__(self, menu, self.session, on_change = self.changedEntry)
+
+ self["actions"] = NumberActionMap(["SetupActions"],
+ {
+ "cancel": self.cancel,
+ "ok": self.ok,
+ },-2)
+
+ self.onLayoutFinish.append(self.layoutFinished)
+
+ def layoutFinished(self):
+ if not self["videofps"].text:
+ self.instance.resize(eSize(self.instance.size().width(), self["config"].l.getItemSize().height()*len(self["config"].getList()) + 10))
+
+ def changedEntry(self):
+ if self["config"].getCurrent() in [getConfigMenuItem("config.subtitles.pango_subtitles_delay"),getConfigMenuItem("config.subtitles.pango_subtitles_fps")]:
+ self.wait.start(500, True)
+
+ def resyncSubtitles(self):
+ self.infobar.setSeekState(self.infobar.SEEK_STATE_PAUSE)
+ self.infobar.setSeekState(self.infobar.SEEK_STATE_PLAY)
+
+ def getFps(self):
+ from enigma import iServiceInformation
+ service = self.session.nav.getCurrentService()
+ info = service and service.info()
+ if not info:
+ return ""
+ fps = info.getInfo(iServiceInformation.sFrameRate)
+ if fps > 0:
+ return "%6.3f" % (fps/1000.)
+ return ""
+
+ def cancel(self):
+ self.close()
+
+ def ok(self):
+ config.subtitles.save()
+ self.close()