autotimer/epgrefresh: fix broken help in setup
[vuplus_dvbapp-plugin] / autotimer / src / AutoTimerSettings.py
index aa2f559..bbb6da5 100644 (file)
@@ -1,3 +1,6 @@
+# for localized messages
+from . import _
+
 # GUI (Screens)
 from Screens.Screen import Screen
 from Components.ConfigList import ConfigListScreen
@@ -7,42 +10,58 @@ from Screens.Setup import SetupSummary
 
 # GUI (Components)
 from Components.ActionMap import ActionMap
-from Components.Button import Button
+from Components.Sources.StaticText import StaticText
 
 # Configuration
 from Components.config import config, getConfigListEntry
 
 class AutoTimerSettings(Screen, ConfigListScreen):
-       """Configuration of AutoTimer"""
-
-       skin = """<screen name="AutoTimerSettings" title="Configure AutoTimer behavior" position="75,155" size="565,280">
-               <widget name="config" position="5,5" size="555,225" scrollbarMode="showOnDemand" />
-               <ePixmap position="0,235" zPosition="4" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
-               <ePixmap position="140,235" zPosition="4" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
-               <widget name="key_red" position="0,235" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
-               <widget name="key_green" position="140,235" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+       skin = """<screen name="AutoTimerSettings" title="AutoTimer Settings" position="center,center" size="565,370">
+               <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
+               <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
+               <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
+               <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
+               <widget name="config" position="5,50" size="555,250" scrollbarMode="showOnDemand" />
+               <ePixmap pixmap="skin_default/div-h.png" position="0,301" zPosition="1" size="565,2" />
+               <widget source="help" render="Label" position="5,305" size="555,63" font="Regular;21" />
        </screen>"""
 
        def __init__(self, session):
                Screen.__init__(self, session)
 
                # Summary
-               self.setup_title = "AutoTimer Settings"
+               self.setup_title = _("AutoTimer Settings")
                self.onChangedEntry = []
 
-               self.list = [
-                       getConfigListEntry(_("Poll automatically"), config.plugins.autotimer.autopoll),
-                       getConfigListEntry(_("Poll Interval (in h)"), config.plugins.autotimer.interval),
-                       getConfigListEntry(_("Modify existing Timers"), config.plugins.autotimer.refresh),
-                       getConfigListEntry(_("Guess existing Timer based on Begin/End"), config.plugins.autotimer.try_guessing),
-                       getConfigListEntry(_("Editor for new AutoTimers"), config.plugins.autotimer.editor),
-               ]
-
-               ConfigListScreen.__init__(self, self.list, session = session, on_change = self.changed)
+               ConfigListScreen.__init__(
+                       self,
+                       [
+                               getConfigListEntry(_("Poll automatically"), config.plugins.autotimer.autopoll, _("Unless this is enabled AutoTimer will NOT automatically look for events matching your AutoTimers but only when you leave the GUI with the green button.")),
+                               getConfigListEntry(_("Poll Interval (in h)"), config.plugins.autotimer.interval, _("This is the delay in hours that the AutoTimer will wait after a search to search the EPG again.")),
+                               getConfigListEntry(_("Show in extension menu"), config.plugins.autotimer.show_in_extensionsmenu, _("Enable this to be able to access the AutoTimer Overview from within the extension menu.")),
+                               getConfigListEntry(_("Modify existing timers"), config.plugins.autotimer.refresh, _("This setting controls the behavior when a timer matches a found event.")),
+                               getConfigListEntry(_("Guess existing timer based on begin/end"), config.plugins.autotimer.try_guessing, _("If this is enabled an existing timer will also be considered recording an event if it records at least 80% of the it.")),
+                               getConfigListEntry(_("Add timer as disabled on conflict"), config.plugins.autotimer.disabled_on_conflict, _("This toggles the behavior on timer conflicts. If an AutoTimer matches an event that conflicts with an existing timer it will not ignore this event but add it disabled.")),
+                               getConfigListEntry(_("Editor for new AutoTimers"), config.plugins.autotimer.editor, _("The editor to be used for new AutoTimers. This can either be the Wizard or the classic editor.")),
+                               getConfigListEntry(_("Support \"Fast Scan\"?"), config.plugins.autotimer.fastscan, _("When supporting \"Fast Scan\" the service type is ignored. You don't need to enable this unless your Image supports \"Fast Scan\" and you are using it.")),
+                       ],
+                       session = session,
+                       on_change = self.changed
+               )
+               def selectionChanged():
+                       if self["config"].current:
+                               self["config"].current[1].onDeselect(self.session)
+                       self["config"].current = self["config"].getCurrent()
+                       if self["config"].current:
+                               self["config"].current[1].onSelect(self.session)
+                       for x in self["config"].onSelectionChanged:
+                               x()
+               self["config"].onSelectionChanged.append(self.updateHelp)
 
-               # Initialize Buttons
-               self["key_red"] = Button(_("Cancel"))
-               self["key_green"] = Button(_("OK"))
+               # Initialize widgets
+               self["key_green"] = StaticText(_("OK"))
+               self["key_red"] = StaticText(_("Cancel"))
+               self["help"] = StaticText()
 
                # Define Actions
                self["actions"] = ActionMap(["SetupActions"],
@@ -55,12 +74,19 @@ class AutoTimerSettings(Screen, ConfigListScreen):
                # Trigger change
                self.changed()
 
+               self.onLayoutFinish.append(self.setCustomTitle)
+
+       def setCustomTitle(self):
+               self.setTitle(_("Configure AutoTimer behavior"))
+
+       def updateHelp(self):
+               cur = self["config"].getCurrent()
+               if cur:
+                       self["help"].text = cur[2]
+
        def changed(self):
                for x in self.onChangedEntry:
-                       try:
-                               x()
-                       except:
-                               pass
+                       x()
 
        def getCurrentEntry(self):
                return self["config"].getCurrent()[0]
@@ -70,3 +96,4 @@ class AutoTimerSettings(Screen, ConfigListScreen):
 
        def createSummary(self):
                return SetupSummary
+