make code more readable
[enigma2-curlytx.git] / src / CurlyTx.py
index 7052610c6d2b380af6f99b85b258eeb02a28fd3b..09d9ad13970782a172df481927ce3e42f1fdbfcd 100644 (file)
@@ -1,11 +1,14 @@
+from . import _
+
 from Screens.Screen import Screen
 from Screens.HelpMenu import HelpableScreen
 from Screens.MessageBox import MessageBox
 from Components.Label import Label
 from Components.ScrollLabel import ScrollLabel
 from Screens.Screen import Screen
 from Screens.HelpMenu import HelpableScreen
 from Screens.MessageBox import MessageBox
 from Components.Label import Label
 from Components.ScrollLabel import ScrollLabel
-from Components.ActionMap import NumberActionMap
+from Components.ActionMap import ActionMap
 from Components.Sources.StaticText import StaticText
 from twisted.web import client
 from Components.Sources.StaticText import StaticText
 from twisted.web import client
+from enigma import gFont
 
 from . import config
 from Components.config import config
 
 from . import config
 from Components.config import config
@@ -26,6 +29,7 @@ class CurlyTx(Screen,HelpableScreen):
 
     currentUrl = None
     currentPage = None
 
     currentUrl = None
     currentPage = None
+    currentFontSize = 20
 
     def __init__(self, session, args = None):
         #self.skin = CurlyTx.skin
 
     def __init__(self, session, args = None):
         #self.skin = CurlyTx.skin
@@ -41,8 +45,8 @@ class CurlyTx(Screen,HelpableScreen):
         self["key_blue"]   = StaticText(_("Next"))
 
 
         self["key_blue"]   = StaticText(_("Next"))
 
 
-        self["actions"] = NumberActionMap(
-            ["WizardActions", "ColorActions", "InputActions", "HelpActions"], {
+        self["actions"] = ActionMap(
+            ["WizardActions", "ColorActions", "InputActions"], {
                 "ok":   self.close,
                 "back": self.close,
                 "up":   self.pageUp,
                 "ok":   self.close,
                 "back": self.close,
                 "up":   self.pageUp,
@@ -55,15 +59,17 @@ class CurlyTx(Screen,HelpableScreen):
             }, -1)
 
         self.loadHelp()
             }, -1)
 
         self.loadHelp()
+        self.loadButtons()
         self.loadUrl(config.plugins.CurlyTx.defaultPage.value)
         self.loadUrl(config.plugins.CurlyTx.defaultPage.value)
+        self.onLayoutFinish.append(self.setTextFont)
 
     def loadHelp(self):
         self.helpList.append((
                 self["actions"], "WizardActions",
 
     def loadHelp(self):
         self.helpList.append((
                 self["actions"], "WizardActions",
-                [("ok", _("Close window"))]))
+                [("up", _("Scroll page contents up"))]))
         self.helpList.append((
                 self["actions"], "WizardActions",
         self.helpList.append((
                 self["actions"], "WizardActions",
-                [("back", _("Close window"))]))
+                [("down", _("Scroll page contents down"))]))
         self.helpList.append((
                 self["actions"], "ColorActions",
                 [("red", _("Show program settings"))]))
         self.helpList.append((
                 self["actions"], "ColorActions",
                 [("red", _("Show program settings"))]))
@@ -76,7 +82,30 @@ class CurlyTx(Screen,HelpableScreen):
         self.helpList.append((
                 self["actions"], "ColorActions",
                 [("blue", _("Switch to previous configured page URL"))]))
         self.helpList.append((
                 self["actions"], "ColorActions",
                 [("blue", _("Switch to previous configured page URL"))]))
-
+        self.helpList.append((
+                self["actions"], "WizardActions",
+                [("ok", _("Close window"))]))
+        self.helpList.append((
+                self["actions"], "WizardActions",
+                [("back", _("Close window"))]))
+        self.helpList.append((
+                self["actions"], "HelpActions",
+                [("displayHelp", _("Show this help screen"))]))
+
+    def loadButtons(self):
+        pageCount = len(config.plugins.CurlyTx.pages)
+        if pageCount == 0:
+            self["key_green"].setText("")
+            self["key_yellow"].setText("")
+            self["key_blue"].setText("")
+        elif pageCount == 1:
+            self["key_green"].setText(_("Reload"))
+            self["key_yellow"].setText("")
+            self["key_blue"].setText("")
+        else:
+            self["key_green"].setText(_("Reload"))
+            self["key_yellow"].setText(_("Prev"))
+            self["key_blue"].setText(_("Next"))
 
     def pageUp(self):
         self["text"].pageUp()
 
     def pageUp(self):
         self["text"].pageUp()
@@ -113,24 +142,36 @@ class CurlyTx(Screen,HelpableScreen):
             self.loadNoPage()
             return
 
             self.loadNoPage()
             return
 
+        cfg = config.plugins.CurlyTx
+        pageCount = len(cfg.pages)
         pageId = int(pageId)
         pageId = int(pageId)
-        if pageId > (len(config.plugins.CurlyTx.pages) - 1):
-            if len(config.plugins.CurlyTx.pages) == 0:
+        if pageId > (pageCount - 1):
+            if len(cfg.pages) == 0:
                 self.loadNoPage()
             else:
                 self["text"].setText("Invalid page " + pageId);
             return
 
                 self.loadNoPage()
             else:
                 self["text"].setText("Invalid page " + pageId);
             return
 
-        url   = config.plugins.CurlyTx.pages[pageId].uri.value
-        title = config.plugins.CurlyTx.pages[pageId].title.value
+        url   = cfg.pages[pageId].uri.value
+        title = cfg.pages[pageId].title.value
+
+        if pageCount > 1:
+            title = "{0} [{1}/{2}]".format(title, pageId + 1, pageCount)
+
         self.currentPage = pageId
         self.currentUrl = url
         self.currentPage = pageId
         self.currentUrl = url
+        self.currentFontSize = cfg.pages[pageId].fontSize.value
 
         self.setTitle(title)
 
         self.setTitle(title)
+        self.setTextFont()
         self["text"].setText("Loading ...\n" + url);
 
         client.getPage(url).addCallback(self.urlLoaded).addErrback(self.urlFailed, url)
 
         self["text"].setText("Loading ...\n" + url);
 
         client.getPage(url).addCallback(self.urlLoaded).addErrback(self.urlFailed, url)
 
+    def setTextFont(self):
+        if self["text"].long_text is not None:
+            self["text"].long_text.setFont(gFont("Console", self.currentFontSize))
+
     def urlLoaded(self, html):
         self["text"].setText(html)
 
     def urlLoaded(self, html):
         self["text"].setText(html)
 
@@ -148,6 +189,7 @@ class CurlyTx(Screen,HelpableScreen):
         self.session.openWithCallback(self.onSettingsChanged, CurlyTxSettings)
 
     def onSettingsChanged(self):
         self.session.openWithCallback(self.onSettingsChanged, CurlyTxSettings)
 
     def onSettingsChanged(self):
+        self.loadButtons()
         if len(config.plugins.CurlyTx.pages) == 0:
             self.currentPage = None
             self.loadUrl(self.currentPage)
         if len(config.plugins.CurlyTx.pages) == 0:
             self.currentPage = None
             self.loadUrl(self.currentPage)