From 24530a6c60ad35a103aa323f0010adf066d5781f Mon Sep 17 00:00:00 2001 From: acid-burn Date: Thu, 1 Oct 2009 16:02:58 +0200 Subject: [PATCH] SystemPlugins/SoftwareManager:- move buttons to the top and replace all Labels where possible through StaticText for better skinability - change some label descriptions - minor fixes --- .../SoftwareManager/BackupRestore.py | 73 ++-- .../SystemPlugins/SoftwareManager/plugin.py | 359 +++++++++--------- 2 files changed, 211 insertions(+), 221 deletions(-) diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py b/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py index 3925fc44..5ae46b60 100755 --- a/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py @@ -4,6 +4,7 @@ from Screens.Console import Console from Components.ActionMap import ActionMap, NumberActionMap from Components.Pixmap import Pixmap from Components.Label import Label +from Components.Sources.StaticText import StaticText from Components.MenuList import MenuList from Components.config import getConfigListEntry, configfile, ConfigSelection, ConfigSubsection, ConfigText, ConfigLocations from Components.config import config @@ -34,7 +35,7 @@ def getBackupFilename(): class BackupScreen(Screen, ConfigListScreen): skin = """ - + """ @@ -62,7 +63,7 @@ class BackupScreen(Screen, ConfigListScreen): self.setWindowTitle() def setWindowTitle(self): - self.setTitle(_("Backup running...")) + self.setTitle(_("Backup is running...")) def doBackup(self): try: @@ -76,14 +77,14 @@ class BackupScreen(Screen, ConfigListScreen): remove(self.newfilename) rename(self.fullbackupfilename,self.newfilename) if self.finished_cb: - self.session.openWithCallback(self.finished_cb, Console, title = _("Backup running"), cmdlist = ["tar -czvf " + self.fullbackupfilename + " " + self.backupdirs],finishedCallback = self.backupFinishedCB,closeOnSuccess = True) + self.session.openWithCallback(self.finished_cb, Console, title = _("Backup is running..."), cmdlist = ["tar -czvf " + self.fullbackupfilename + " " + self.backupdirs],finishedCallback = self.backupFinishedCB,closeOnSuccess = True) else: - self.session.open(Console, title = _("Backup running"), cmdlist = ["tar -czvf " + self.fullbackupfilename + " " + self.backupdirs],finishedCallback = self.backupFinishedCB, closeOnSuccess = True) + self.session.open(Console, title = _("Backup is running..."), cmdlist = ["tar -czvf " + self.fullbackupfilename + " " + self.backupdirs],finishedCallback = self.backupFinishedCB, closeOnSuccess = True) except OSError: if self.finished_cb: - self.session.openWithCallback(self.finished_cb, MessageBox, _("Sorry your backup destination is not writeable.\nPlease choose an other one."), MessageBox.TYPE_INFO) + self.session.openWithCallback(self.finished_cb, MessageBox, _("Sorry your backup destination is not writeable.\nPlease choose an other one."), MessageBox.TYPE_INFO, timeout = 10 ) else: - self.session.openWithCallback(self.backupErrorCB,MessageBox, _("Sorry your backup destination is not writeable.\nPlease choose an other one."), MessageBox.TYPE_INFO) + self.session.openWithCallback(self.backupErrorCB,MessageBox, _("Sorry your backup destination is not writeable.\nPlease choose an other one."), MessageBox.TYPE_INFO, timeout = 10 ) def backupFinishedCB(self,retval = None): self.close(True) @@ -98,21 +99,21 @@ class BackupScreen(Screen, ConfigListScreen): class BackupSelection(Screen): skin = """ - - - - - - - - - """ + + + + + + + + + """ def __init__(self, session): Screen.__init__(self, session) - self["key_red"] = Label(_("Cancel")) - self["key_green"] = Label(_("Save")) - self["key_yellow"] = Label() + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + self["key_yellow"] = StaticText() self.selectedFiles = config.plugins.configurationbackup.backupdirs.value defaultDir = '/' @@ -143,7 +144,7 @@ class BackupSelection(Screen): self.selectionChanged() def setWindowTitle(self): - self.setTitle(_("Select files/folders to backup...")) + self.setTitle(_("Select files/folders to backup")) def selectionChanged(self): current = self["checkList"].getCurrent()[0] @@ -186,23 +187,23 @@ class BackupSelection(Screen): class RestoreMenu(Screen): skin = """ - - - - - - - - + + + + + + + + """ def __init__(self, session, plugin_path): Screen.__init__(self, session) self.skin_path = plugin_path - self["canceltext"] = Label(_("Cancel")) - self["restoretext"] = Label(_("Restore")) - self["deletetext"] = Label(_("Delete")) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Restore")) + self["key_yellow"] = StaticText(_("Delete")) self.sel = [] self.val = [] @@ -232,7 +233,7 @@ class RestoreMenu(Screen): self.setWindowTitle() def setWindowTitle(self): - self.setTitle(_("Restore backups...")) + self.setTitle(_("Restore backups")) def fill_list(self): @@ -277,7 +278,7 @@ class RestoreMenu(Screen): class RestoreScreen(Screen, ConfigListScreen): skin = """ - + """ @@ -285,7 +286,7 @@ class RestoreScreen(Screen, ConfigListScreen): Screen.__init__(self, session) self.session = session self.runRestore = runRestore - self["actions"] = ActionMap(["WizardActions", "DirectionActions"], + self["actions"] = ActionMap(["WizardActions", "DirectionActions"], { "ok": self.close, "back": self.close, @@ -305,13 +306,13 @@ class RestoreScreen(Screen, ConfigListScreen): self.setWindowTitle() def setWindowTitle(self): - self.setTitle(_("Restore running...")) + self.setTitle(_("Restore is running...")) def doRestore(self): if self.finished_cb: - self.session.openWithCallback(self.finished_cb, Console, title = _("Restore running"), cmdlist = ["tar -xzvf " + self.fullbackupfilename + " -C /", "killall -9 enigma2"]) + self.session.openWithCallback(self.finished_cb, Console, title = _("Restore is running..."), cmdlist = ["tar -xzvf " + self.fullbackupfilename + " -C /", "killall -9 enigma2"]) else: - self.session.open(Console, title = _("Restore running"), cmdlist = ["tar -xzvf " + self.fullbackupfilename + " -C /", "killall -9 enigma2"]) + self.session.open(Console, title = _("Restore is running..."), cmdlist = ["tar -xzvf " + self.fullbackupfilename + " -C /", "killall -9 enigma2"]) def backupFinishedCB(self,retval = None): self.close(True) diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py b/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py index 136e9d0b..6254c6c2 100755 --- a/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py @@ -7,7 +7,7 @@ from Screens.Ipkg import Ipkg from Components.ActionMap import ActionMap, NumberActionMap from Components.Input import Input from Components.Ipkg import IpkgComponent -from Components.Label import Label +from Components.Sources.StaticText import StaticText from Components.ScrollLabel import ScrollLabel from Components.Pixmap import Pixmap from Components.MenuList import MenuList @@ -74,9 +74,11 @@ def load_cache(cache_file): class UpdatePluginMenu(Screen): skin = """ - - - + + + + + {"template": [ MultiContentEntryText(pos = (2, 2), size = (290, 22), flags = RT_HALIGN_LEFT, text = 1), # index 0 is the MenuText, @@ -86,7 +88,7 @@ class UpdatePluginMenu(Screen): } - + {"template": [ MultiContentEntryText(pos = (2, 2), size = (240, 300), flags = RT_HALIGN_CENTER|RT_VALIGN_CENTER|RT_WRAP, text = 2), # index 2 is the Description, @@ -111,7 +113,7 @@ class UpdatePluginMenu(Screen): self.list.append(("software-restore", _("Software restore"), _("\nRestore your Dreambox with a new firmware." ) + self.oktext)) self.list.append(("system-backup", _("Backup system settings"), _("\nBackup your Dreambox settings." ) + self.oktext)) self.list.append(("system-restore",_("Restore system settings"), _("\nRestore your Dreambox settings." ) + self.oktext)) - self.list.append(("ipkg-install", _("Install local IPKG"), _("\nScan for local packages and install them." ) + self.oktext)) + self.list.append(("ipkg-install", _("Install local extension"), _("\nScan for local packages and install them." ) + self.oktext)) if config.usage.setup_level.index >= 2: # expert+ self.list.append(("advanced", _("Advanced Options"), _("\nAdvanced options and settings." ) + self.oktext)) elif self.menu == 1: @@ -123,7 +125,8 @@ class UpdatePluginMenu(Screen): self.list.append(("ipkg-source",_("Choose upgrade source"), _("\nEdit the upgrade source address." ) + self.oktext)) self["menu"] = List(self.list) - + self["key_red"] = StaticText(_("Close")) + self["shortcuts"] = ActionMap(["ShortcutActions", "WizardActions"], { "ok": self.go, @@ -136,14 +139,14 @@ class UpdatePluginMenu(Screen): self.backupfile = getBackupFilename() self.fullbackupfilename = self.backuppath + "/" + self.backupfile self.onShown.append(self.setWindowTitle) - + def layoutFinished(self): idx = 0 self["menu"].index = idx - + def setWindowTitle(self): - self.setTitle(_("Software manager...")) - + self.setTitle(_("Software manager")) + def go(self): current = self["menu"].getCurrent() if current: @@ -160,7 +163,7 @@ class UpdatePluginMenu(Screen): elif (current == "system-restore"): if os_path.exists(self.fullbackupfilename): self.session.openWithCallback(self.startRestore, MessageBox, _("Are you sure you want to restore your Enigma2 backup?\nEnigma2 will restart after the restore")) - else: + else: self.session.open(MessageBox, _("Sorry no backups found!"), MessageBox.TYPE_INFO) elif (current == "ipkg-install"): try: @@ -200,7 +203,7 @@ class UpdatePluginMenu(Screen): config.plugins.configurationbackup.save() config.save() self.createBackupfolders() - + def runUpgrade(self, result): if result: self.session.open(UpdatePlugin, self.skin_path) @@ -227,20 +230,20 @@ class UpdatePluginMenu(Screen): class IPKGMenu(Screen): skin = """ - - - - - - + + + + + + """ def __init__(self, session, plugin_path): Screen.__init__(self, session) self.skin_path = plugin_path - self["closetext"] = Label(_("Close")) - self["edittext"] = Label(_("Edit")) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Edit")) self.sel = [] self.val = [] @@ -269,8 +272,7 @@ class IPKGMenu(Screen): self.setWindowTitle() def setWindowTitle(self): - self.setTitle(_("Select IPKG source to edit...")) - + self.setTitle(_("Select upgrade source to edit.")) def fill_list(self): self.flist = [] @@ -300,14 +302,14 @@ class IPKGMenu(Screen): class IPKGSource(Screen): skin = """ - - - - - - + + + + + + """ - + def __init__(self, session, configfile = None): Screen.__init__(self, session) self.session = session @@ -327,14 +329,14 @@ class IPKGSource(Screen): x= int(desk.size().width()) y= int(desk.size().height()) - self["closetext"] = Label(_("Cancel")) - self["edittext"] = Label(_("Save")) - + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + if (y>=720): self["text"] = Input(text, maxSize=False, type=Input.TEXT) else: self["text"] = Input(text, maxSize=False, visible_width = 55, type=Input.TEXT) - + self["actions"] = NumberActionMap(["WizardActions", "InputActions", "TextEntryActions", "KeyboardInputActions","ShortcutActions"], { "ok": self.go, @@ -366,8 +368,8 @@ class IPKGSource(Screen): self["text"].right() def setWindowTitle(self): - self.setTitle(_("Edit IPKG source URL...")) - + self.setTitle(_("Edit upgrade source url.")) + def go(self): text = self["text"].getText() if text: @@ -376,7 +378,7 @@ class IPKGSource(Screen): fp.write("\n") fp.close() self.close() - + def keyLeft(self): self["text"].left() @@ -401,8 +403,12 @@ class IPKGSource(Screen): class PacketManager(Screen): skin = """ - - + + + + + + {"template": [ MultiContentEntryText(pos = (5, 1), size = (440, 28), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name @@ -415,10 +421,6 @@ class PacketManager(Screen): } - - - - """ def __init__(self, session, plugin_path, args = None): @@ -437,8 +439,8 @@ class PacketManager(Screen): self.list = [] self.statuslist = [] self["list"] = List(self.list) - self["closetext"] = Label(_("Close")) - self["reloadtext"] = Label(_("Reload")) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Reload")) self.list_updating = True self.packetlist = [] @@ -639,7 +641,7 @@ class PacketManager(Screen): status = "installable" self.list.append(self.buildEntryComponent(x[0].strip(), x[1].strip(), x[2].strip(), status)) if not any(x[0].strip().endswith(x) for x in self.unwanted_extensions): - self.cachelist.append([x[0].strip(), x[1].strip(), x[2].strip(), status]) + self.cachelist.append([x[0].strip(), x[1].strip(), x[2].strip(), status]) write_cache(self.cache_file, self.cachelist) self['list'].setList(self.list) @@ -652,8 +654,16 @@ class PluginManager(Screen, DreamInfoHandler): lastDownloadDate = None skin = """ - - + + + + + + + + + + {"templates": {"default": (51,[ @@ -663,25 +673,17 @@ class PluginManager(Screen, DreamInfoHandler): MultiContentEntryPixmapAlphaTest(pos = (0, 49), size = (550, 2), png = 6), # index 6 is the div pixmap ]), "category": (40,[ - MultiContentEntryText(pos = (30, 0), size = (500, 23), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name - MultiContentEntryText(pos = (30, 24), size = (500, 14), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the description + MultiContentEntryText(pos = (30, 0), size = (500, 22), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name + MultiContentEntryText(pos = (30, 22), size = (500, 16), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the description MultiContentEntryPixmapAlphaTest(pos = (0, 38), size = (550, 2), png = 3), # index 3 is the div pixmap ]) }, - "fonts": [gFont("Regular", 22),gFont("Regular", 14)], + "fonts": [gFont("Regular", 22),gFont("Regular", 16)], "itemHeight": 52 } - - - - - - - - - + """ def __init__(self, session, plugin_path, args = None): @@ -714,11 +716,11 @@ class PluginManager(Screen, DreamInfoHandler): self.selectedFiles = [] self.categoryList = [] self["list"] = List(self.list) - self["closetext"] = Label(_("Close")) - self["installtext"] = Label() - self["viewtext"] = Label() - self["bluetext"] = Label() - self["status"] = Label() + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText("") + self["key_yellow"] = StaticText("") + self["key_blue"] = StaticText("") + self["status"] = StaticText("") self.list_updating = True self.packetlist = [] @@ -735,10 +737,6 @@ class PluginManager(Screen, DreamInfoHandler): if not self.selectionChanged in self["list"].onSelectionChanged: self["list"].onSelectionChanged.append(self.selectionChanged) - self["installtext"].hide() - self["bluetext"].hide() - self["viewtext"].hide() - self["status"].hide() self.currList = "" self.currentSelectedTag = None self.currentSelectedIndex = None @@ -764,12 +762,9 @@ class PluginManager(Screen, DreamInfoHandler): if len(self.Console.appContainers): for name in self.Console.appContainers.keys(): self.Console.kill(name) - if len(self.cmdList) and len(self.selectedFiles): - self.session.openWithCallback(self.runInstall, PluginManagerInfo, self.skin_path, self.cmdList) - elif not len(self.cmdList) and self.available_updates > 0: - self.cmdList = [] - self.cmdList.append((IpkgComponent.CMD_UPGRADE, { "test_only": False })) - self.session.openWithCallback(self.runInstall, PluginManagerInfo, self.skin_path, self.cmdList) + self.prepareInstall() + if len(self.cmdList): + self.session.openWithCallback(self.runExecute, PluginManagerInfo, self.skin_path, self.cmdList) else: self.close() @@ -777,19 +772,13 @@ class PluginManager(Screen, DreamInfoHandler): if self.currList != "status": self.session.open(PluginManagerHelp, self.skin_path) - def runInstall(self, result): - if result: - self.session.openWithCallback(self.runExecuteFinished, Ipkg, cmdList = self.cmdList) - else: - self.close() - def setState(self,status = None): if status: self.currList = "status" self.statuslist = [] - self["installtext"].hide() - self["bluetext"].hide() - self["viewtext"].hide() + self["key_green"].setText("") + self["key_blue"].setText("") + self["key_yellow"].setText("") divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/div-h.png")) if status == 'update': statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/upgrade.png")) @@ -812,43 +801,39 @@ class PluginManager(Screen, DreamInfoHandler): def selectionChanged(self): current = self["list"].getCurrent() - self["status"].hide() + self["status"].setText("") if current: if self.currList == "packages": - self["closetext"].setText(_("Back")) + self["key_red"].setText(_("Back")) if current[4] == 'installed': - self["installtext"].setText(_("Remove")) + self["key_green"].setText(_("Remove")) elif current[4] == 'installable': - self["installtext"].setText(_("Install")) + self["key_green"].setText(_("Install")) elif current[4] == 'remove': - self["installtext"].setText(_("Undo\nRemove")) + self["key_green"].setText(_("Undo\nRemove")) elif current[4] == 'install': - self["installtext"].setText(_("Undo\nInstall")) - self["installtext"].show() - self["viewtext"].setText(_("View details")) - self["viewtext"].show() - self["bluetext"].hide() + self["key_green"].setText(_("Undo\nInstall")) + self["key_yellow"].setText(_("View details")) + self["key_blue"].setText("") if len(self.selectedFiles) == 0 and self.available_updates is not 0: self["status"].setText(_("There are at least ") + str(self.available_updates) + _(" updates available.")) - self["status"].show() elif len(self.selectedFiles) is not 0: self["status"].setText(str(len(self.selectedFiles)) + _(" packages selected.")) - self["status"].show() + else: + self["status"].setText(_("There is nothing to be done.")) elif self.currList == "category": - self["closetext"].setText(_("Close")) - self["installtext"].hide() - self["bluetext"].hide() + self["key_red"].setText(_("Close")) + self["key_green"].setText("") + self["key_yellow"].setText("") + self["key_blue"].setText("") if len(self.selectedFiles) == 0 and self.available_updates is not 0: self["status"].setText(_("There are at least ") + str(self.available_updates) + _(" updates available.")) - self["status"].show() - self["viewtext"].setText(_("Update")) - self["viewtext"].show() + self["key_yellow"].setText(_("Update")) elif len(self.selectedFiles) is not 0: self["status"].setText(str(len(self.selectedFiles)) + _(" packages selected.")) - self["status"].show() - self["viewtext"].setText(_("Process")) - self["viewtext"].show() - self["closetext"].show() + self["key_yellow"].setText(_("Process")) + else: + self["status"].setText(_("There is nothing to be done.")) def getSelectionState(self, detailsFile): for entry in self.selectedFiles: @@ -978,7 +963,9 @@ class PluginManager(Screen, DreamInfoHandler): else: self.session.open(MessageBox, _("Sorry, no Details available!"), MessageBox.TYPE_INFO) elif self.currList == "category": - self.installPlugins() + self.prepareInstall() + if len(self.cmdList): + self.session.openWithCallback(self.runExecute, PluginManagerInfo, self.skin_path, self.cmdList) def detailsClosed(self, result): if result: @@ -1093,7 +1080,7 @@ class PluginManager(Screen, DreamInfoHandler): else: # dynamically generate non existent tags return(( str(tag), _("View list of available ") + str(tag) + _(" extensions." ), tag, divpng )) - def installPlugins(self): + def prepareInstall(self): self.cmdList = [] if self.available_updates > 0: self.cmdList.append((IpkgComponent.CMD_UPGRADE, { "test_only": False })) @@ -1124,12 +1111,12 @@ class PluginManager(Screen, DreamInfoHandler): self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": plugin[2] })) else: self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": plugin[2] })) - if len(self.cmdList): - self.session.openWithCallback(self.runExecute, PluginManagerInfo, self.skin_path, self.cmdList) def runExecute(self, result): if result: self.session.openWithCallback(self.runExecuteFinished, Ipkg, cmdList = self.cmdList) + else: + self.close() def runExecuteFinished(self): self.session.openWithCallback(self.ExecuteReboot, MessageBox, _("Install or remove finished.") +" "+_("Do you want to reboot your Dreambox?"), MessageBox.TYPE_YESNO) @@ -1149,10 +1136,12 @@ class PluginManager(Screen, DreamInfoHandler): class PluginManagerInfo(Screen): skin = """ - - - - + + + + + + {"template": [ MultiContentEntryText(pos = (50, 1), size = (150, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name @@ -1165,10 +1154,8 @@ class PluginManagerInfo(Screen): } - - - - + + """ def __init__(self, session, plugin_path, cmdlist = None): @@ -1187,20 +1174,22 @@ class PluginManagerInfo(Screen): self.list = [] self["list"] = List(self.list) - self["closetext"] = Label(_("Cancel")) - self["continuetext"] = Label(_("Continue")) - self["status"] = Label(_("Following tasks will be done after you press continue.")) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Continue")) + self["status"] = StaticText(_("Following tasks will be done after you press continue!")) self.onShown.append(self.setWindowTitle) self.onLayoutFinish.append(self.rebuildList) def setWindowTitle(self): - self.setTitle(_("Plugin manager process information...")) + self.setTitle(_("Plugin manager activity information")) def rebuildList(self): self.list = [] if self.cmdlist is not None: for entry in self.cmdlist: + action = "" + info = "" cmd = entry[0] if cmd == 0: action = 'install' @@ -1208,7 +1197,6 @@ class PluginManagerInfo(Screen): action = 'remove' else: action = 'upgrade' - args = entry[1] if cmd == 0: info = args['package'] @@ -1229,9 +1217,9 @@ class PluginManagerInfo(Screen): if action == 'install': return(( _('Installing'), info, installpng, divpng)) elif action == 'remove': - return(( _('Remove'), info, removepng, divpng)) + return(( _('Removeing'), info, removepng, divpng)) else: - return(( _('Upgrade'), info, upgradepng, divpng)) + return(( _('Upgradeing'), info, upgradepng, divpng)) def exit(self): self.close(False) @@ -1242,10 +1230,10 @@ class PluginManagerInfo(Screen): class PluginManagerHelp(Screen): skin = """ - - - - + + + + {"template": [ MultiContentEntryText(pos = (50, 1), size = (540, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name @@ -1258,8 +1246,8 @@ class PluginManagerHelp(Screen): } - - + + """ def __init__(self, session, plugin_path): @@ -1275,14 +1263,14 @@ class PluginManagerHelp(Screen): self.list = [] self["list"] = List(self.list) - self["closetext"] = Label(_("Close")) - self["status"] = Label(_("Here is a small overview of the available icon states.")) + self["key_red"] = StaticText(_("Close")) + self["status"] = StaticText(_("A small overview of the available icon states and actions.")) self.onShown.append(self.setWindowTitle) self.onLayoutFinish.append(self.rebuildList) def setWindowTitle(self): - self.setTitle(_("Plugin manager help...")) + self.setTitle(_("Plugin manager help")) def rebuildList(self): self.list = [] @@ -1315,16 +1303,16 @@ class PluginManagerHelp(Screen): class PluginDetails(Screen, DreamInfoHandler): skin = """ - - - - - - - - - - + + + + + + + + + + """ def __init__(self, session, plugin_path, packagedata = None): Screen.__init__(self, session) @@ -1355,13 +1343,14 @@ class PluginDetails(Screen, DreamInfoHandler): "right": self.pageDown, }, -1) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText("") + self["author"] = StaticText() self["statuspic"] = Pixmap() self["divpic"] = Pixmap() self["screenshot"] = Pixmap() - self["closetext"] = Label(_("Close")) - self["statetext"] = Label() self["detailtext"] = ScrollLabel() - self["author"] = Label() + self["statuspic"].hide() self["screenshot"].hide() self["divpic"].hide() @@ -1424,9 +1413,9 @@ class PluginDetails(Screen, DreamInfoHandler): self["author"].setText(_("Author: ") + self.author) self["detailtext"].setText(self.description.strip()) if self.pluginstate == 'installable': - self["statetext"].setText(_("Install")) + self["key_green"].setText(_("Install")) else: - self["statetext"].setText(_("Remove")) + self["key_green"].setText(_("Remove")) def loadThumbnail(self, entry): thumbnailUrl = None @@ -1521,55 +1510,54 @@ class PluginDetails(Screen, DreamInfoHandler): class UpdatePlugin(Screen): skin = """ - + - - - + + + """ - + def __init__(self, session, args = None): - self.skin = UpdatePlugin.skin Screen.__init__(self, session) - + self.sliderPackages = { "dreambox-dvb-modules": 1, "enigma2": 2, "tuxbox-image-info": 3 } - + self.slider = Slider(0, 4) self["slider"] = self.slider self.activityslider = Slider(0, 100) self["activityslider"] = self.activityslider - self.status = Label(_("Upgrading Dreambox... Please wait")) + self.status = StaticText(_("Upgrading Dreambox... Please wait")) self["status"] = self.status - self.package = Label() + self.package = StaticText() self["package"] = self.package - + self.packages = 0 self.error = 0 - + self.activity = 0 self.activityTimer = eTimer() self.activityTimer.callback.append(self.doActivityTimer) self.activityTimer.start(100, False) - + self.ipkg = IpkgComponent() self.ipkg.addCallback(self.ipkgCallback) - + self.updating = True self.package.setText(_("Package list update")) self.ipkg.startCmd(IpkgComponent.CMD_UPDATE) - + self["actions"] = ActionMap(["WizardActions"], { "ok": self.exit, "back": self.exit }, -1) - + def doActivityTimer(self): self.activity += 1 if self.activity == 100: self.activity = 0 self.activityslider.setValue(self.activity) - + def ipkgCallback(self, event, param): if event == IpkgComponent.EVENT_DOWNLOAD: self.status.setText(_("Downloading")) @@ -1627,7 +1615,7 @@ class UpdatePlugin(Screen): self.session.openWithCallback(self.exitAnswer, MessageBox, _("Upgrade finished.") +" "+_("Do you want to reboot your Dreambox?")) else: self.close() - + def exitAnswer(self, result): if result is not None and result: quitMainloop(2) @@ -1636,17 +1624,17 @@ class UpdatePlugin(Screen): class IpkgInstaller(Screen): skin = """ - - - - - - - - """ + + + + + + + + + """ def __init__(self, session, list): - self.skin = IpkgInstaller.skin Screen.__init__(self, session) self.list = SelectionList() @@ -1654,18 +1642,18 @@ class IpkgInstaller(Screen): for listindex in range(len(list)): self.list.addSelection(list[listindex], list[listindex], listindex, True) - self["red"] = Label() - self["green"] = Label() - self["yellow"] = Label() - self["blue"] = Label() + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Install")) + self["introduction"] = StaticText(_("Press OK to toggle the selection.")) self["actions"] = ActionMap(["OkCancelActions", "ColorActions"], { "ok": self.list.toggleSelection, - "cancel": self.close, + "cancel": self.close, + "red": self.close, "green": self.install }, -1) - + def install(self): list = self.list.getSelectionsList() cmdList = [] @@ -1673,6 +1661,7 @@ class IpkgInstaller(Screen): cmdList.append((IpkgComponent.CMD_INSTALL, { "package": item[1] })) self.session.open(Ipkg, cmdList = cmdList) + def filescan_open(list, session, **kwargs): filelist = [x.path for x in list] session.open(IpkgInstaller, filelist) # list @@ -1687,7 +1676,7 @@ def filescan(**kwargs): ScanPath(path = "", with_subdirs = False), ], name = "Ipkg", - description = _("Install software updates..."), + description = _("Install extensions."), openfnc = filescan_open, ) @@ -1707,6 +1696,6 @@ def Plugins(path, **kwargs): PluginDescriptor(name=_("Software manager"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_MENU, fnc=startSetup), PluginDescriptor(name=_("Ipkg"), where = PluginDescriptor.WHERE_FILESCAN, fnc = filescan) ] - if config.usage.setup_level.index >= 2: # expert+ - list.append(PluginDescriptor(name=_("Software manager"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=UpgradeMain)) + if config.usage.setup_level.index >= 2: # expert+ + list.append(PluginDescriptor(name=_("Software manager"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=UpgradeMain)) return list -- 2.30.2