make code more readable
[enigma2-curlytx.git] / src / CurlyTx.py
index 5e58e72f3747b9803ca6d68c23b10ab1ca3ffd28..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,7 +59,9 @@ 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((
 
     def loadHelp(self):
         self.helpList.append((
@@ -86,6 +92,21 @@ class CurlyTx(Screen,HelpableScreen):
                 self["actions"], "HelpActions",
                 [("displayHelp", _("Show this help screen"))]))
 
                 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()
 
@@ -121,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)
 
@@ -156,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)