X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/28dcf6be0ee22fedd728fef11ccff484f8a851e8..33e4aeedec7bde0b0f853396f7b308412bd85496:/lib/python/Screens/PluginBrowser.py diff --git a/lib/python/Screens/PluginBrowser.py b/lib/python/Screens/PluginBrowser.py index 61bb7d0a..359552eb 100755 --- a/lib/python/Screens/PluginBrowser.py +++ b/lib/python/Screens/PluginBrowser.py @@ -9,7 +9,7 @@ from Components.Label import Label from Screens.MessageBox import MessageBox from Screens.Console import Console from Plugins.Plugin import PluginDescriptor -from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE +from Tools.Directories import resolveFilename, fileExists, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE from Tools.LoadPixmap import LoadPixmap from time import time @@ -22,19 +22,28 @@ class PluginBrowser(Screen): def __init__(self, session): Screen.__init__(self, session) - self["red"] = Label(_("Remove Plugins")) - self["green"] = Label(_("Download Plugins")) + self["red"] = Label() + self["green"] = Label() self.list = [] self["list"] = PluginList(self.list) - self["actions"] = ActionMap(["WizardActions", "ColorActions"], + self["actions"] = ActionMap(["WizardActions"], { "ok": self.save, "back": self.close, + }) + self["PluginDownloadActions"] = ActionMap(["ColorActions"], + { "red": self.delete, "green": self.download }) + self["SoftwareActions"] = ActionMap(["ColorActions"], + { + "red": self.openExtensionmanager + }) + self["PluginDownloadActions"].setEnabled(False) + self["SoftwareActions"].setEnabled(False) self.onFirstExecBegin.append(self.checkWarnings) self.onShown.append(self.updateList) @@ -47,7 +56,6 @@ class PluginBrowser(Screen): self.session.open(MessageBox, text = text, type = MessageBox.TYPE_WARNING) def save(self): - #self.close() self.run() def run(self): @@ -58,7 +66,17 @@ class PluginBrowser(Screen): self.pluginlist = plugins.getPlugins(PluginDescriptor.WHERE_PLUGINMENU) self.list = [PluginEntryComponent(plugin) for plugin in self.pluginlist] self["list"].l.setList(self.list) - + if fileExists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/plugin.py")): + self["red"].setText(_("Manage extensions")) + self["green"].setText("") + self["SoftwareActions"].setEnabled(True) + self["PluginDownloadActions"].setEnabled(False) + else: + self["red"].setText(_("Remove Plugins")) + self["green"].setText(_("Download Plugins")) + self["SoftwareActions"].setEnabled(False) + self["PluginDownloadActions"].setEnabled(True) + def delete(self): self.session.openWithCallback(self.PluginDownloadBrowserClosed, PluginDownloadBrowser, PluginDownloadBrowser.REMOVE) @@ -69,6 +87,14 @@ class PluginBrowser(Screen): self.updateList() self.checkWarnings() + def openExtensionmanager(self): + if fileExists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/plugin.py")): + try: + from Plugins.SystemPlugins.SoftwareManager.plugin import PluginManager + except ImportError: + self.session.open(MessageBox, _("The Softwaremanagement extension is not installed!\nPlease install it."), type = MessageBox.TYPE_INFO,timeout = 10 ) + else: + self.session.openWithCallback(self.PluginDownloadBrowserClosed, PluginManager) class PluginDownloadBrowser(Screen): DOWNLOAD = 0 @@ -129,9 +155,9 @@ class PluginDownloadBrowser(Screen): def runInstall(self, val): if val: if self.type == self.DOWNLOAD: - self.session.openWithCallback(self.installFinished, Console, cmdlist = ["ipkg install " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name]) + self.session.openWithCallback(self.installFinished, Console, cmdlist = ["opkg install " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name]) elif self.type == self.REMOVE: - self.session.openWithCallback(self.installFinished, Console, cmdlist = ["ipkg remove " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name]) + self.session.openWithCallback(self.installFinished, Console, cmdlist = ["opkg remove " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name]) def setWindowTitle(self): if self.type == self.DOWNLOAD: @@ -140,17 +166,17 @@ class PluginDownloadBrowser(Screen): self.setTitle(_("Remove plugins")) def startIpkgListInstalled(self): - self.container.execute("ipkg list_installed enigma2-plugin-*") + self.container.execute("opkg list_installed enigma2-plugin-*") def startIpkgListAvailable(self): - self.container.execute("ipkg list enigma2-plugin-*") + self.container.execute("opkg list enigma2-plugin-*") def startRun(self): self["list"].instance.hide() if self.type == self.DOWNLOAD: if not PluginDownloadBrowser.lastDownloadDate or (time() - PluginDownloadBrowser.lastDownloadDate) > 3600: # Only update from internet once per hour - self.container.execute("ipkg update") + self.container.execute("opkg update") PluginDownloadBrowser.lastDownloadDate = time() else: self.startIpkgListAvailable() @@ -230,4 +256,4 @@ class PluginDownloadBrowser(Screen): self.list = list self["list"].l.setList(list) -language.addCallback(languageChanged) \ No newline at end of file +language.addCallback(languageChanged)