use harddiskmanager in about screen
[enigma2.git] / lib / python / Screens / About.py
index ae3ce394265b9cb858bd26b3a9ae892ddbeef068..e184512b8ca5ca847b432971039c28fb56e79023 100644 (file)
@@ -1,24 +1,85 @@
 from Screen import Screen
 from Components.ActionMap import ActionMap
-from Components.Label import Label
+from Components.Sources.StaticText import StaticText
+from Components.Harddisk import harddiskmanager
+from Components.NimManager import nimmanager
+from Components.About import about
 
+from Tools.DreamboxHardware import getFPVersion
 
 class About(Screen):
        def __init__(self, session):
                Screen.__init__(self, session)
-               
-               self["text"] = Label("Enigma v2.0a")
 
-               self["tuner"] = Label("Detected NIMs:")
-               self["tunerA"] = Label("   Tuner A: Fujitsu QST (DVB-S)")
-               self["tunerB"] = Label("   Tuner B: Fujitsu QST (DVB-S)")
+               self["EnigmaVersion"] = StaticText("Enigma: " + about.getEnigmaVersionString())
+               self["ImageVersion"] = StaticText("Image: " + about.getImageVersionString())
 
-               self["hdd"] = Label("Detected HDD:")
-               self["hddA"] = Label("   not found")
+               self["TunerHeader"] = StaticText(_("Detected NIMs:"))
+
+               fp_version = getFPVersion()
+               if fp_version is None:
+                       fp_version = ""
+               else:
+                       fp_version = _("Frontprocessor version: %d") % fp_version
+
+               self["FPVersion"] = StaticText(fp_version)
+
+               nims = nimmanager.nimList()
+               for count in range(4):
+                       if count < len(nims):
+                               self["Tuner" + str(count)] = StaticText(nims[count])
+                       else:
+                               self["Tuner" + str(count)] = StaticText("")
+
+               self["HDDHeader"] = StaticText(_("Detected HDD:"))
+               hddlist = harddiskmanager.HDDList()
+               hdd = len(hddlist) > 0 and hddlist[0][1] or None
+               if hdd is not None and hdd.model() != "":
+                       self["hddA"] = StaticText(_("%s\n(%s, %d MB free)") % (hdd.model(), hdd.capacity(),hdd.free()))
+               else:
+                       self["hddA"] = StaticText(_("none"))
+
+               self["actions"] = ActionMap(["SetupActions", "ColorActions"], 
+                       {
+                               "cancel": self.close,
+                               "ok": self.close,
+                               "green": self.showTranslationInfo
+                       })
+
+       def showTranslationInfo(self):
+               self.session.open(TranslationInfo)
+
+class TranslationInfo(Screen):
+       def __init__(self, session):
+               Screen.__init__(self, session)
+               # don't remove the string out of the _(), or it can't be "translated" anymore.
+
+               # TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline)
+               info = _("TRANSLATOR_INFO")
+
+               if info == "TRANSLATOR_INFO":
+                       info = "(N/A)"
+
+               infolines = _("").split("\n")
+               infomap = {}
+               for x in infolines:
+                       l = x.split(': ')
+                       if len(l) != 2:
+                               continue
+                       (type, value) = l
+                       infomap[type] = value
+               print infomap
+
+               self["TranslationInfo"] = StaticText(info)
+
+               translator_name = infomap.get("Language-Team", "none")
+               if translator_name == "none":
+                       translator_name = infomap.get("Last-Translator", "")
+
+               self["TranslatorName"] = StaticText(translator_name)
 
                self["actions"] = ActionMap(["SetupActions"], 
                        {
                                "cancel": self.close,
                                "ok": self.close,
                        })
-       
\ No newline at end of file