X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/dfc3142e629d32e1f5efa380e777f711dc0fe92c..08e972ae07f60852a888c93199319444e8c06714:/lib/python/Screens/PluginBrowser.py diff --git a/lib/python/Screens/PluginBrowser.py b/lib/python/Screens/PluginBrowser.py index 429163ee..a21dde80 100644 --- a/lib/python/Screens/PluginBrowser.py +++ b/lib/python/Screens/PluginBrowser.py @@ -17,7 +17,7 @@ class PluginBrowser(Screen): def __init__(self, session): Screen.__init__(self, session) - self["red"] = Label(_("Delete")) + self["red"] = Label(_("Remove Plugins")) self["green"] = Label(_("Download Plugins")) self.list = [] @@ -50,25 +50,34 @@ class PluginBrowser(Screen): self["list"].l.setList(self.list) def delete(self): - pass + self.session.openWithCallback(self.updateList, PluginDownloadBrowser, PluginDownloadBrowser.REMOVE) def download(self): - self.session.openWithCallback(self.updateList, PluginDownloadBrowser) + self.session.openWithCallback(self.updateList, PluginDownloadBrowser, PluginDownloadBrowser.DOWNLOAD) class PluginDownloadBrowser(Screen): - def __init__(self, session): + DOWNLOAD = 0 + REMOVE = 1 + + def __init__(self, session, type): Screen.__init__(self, session) + self.type = type + self.container = eConsoleAppContainer() self.container.appClosed.get().append(self.runFinished) self.container.dataAvail.get().append(self.dataAvail) self.onLayoutFinish.append(self.startRun) + self.onShown.append(self.setTitle) self.list = [] self["list"] = PluginList(self.list) self.pluginlist = [] - self["text"] = Label(_("Downloading plugin information. Please wait...")) + if self.type == self.DOWNLOAD: + self["text"] = Label(_("Downloading plugin information. Please wait...")) + elif self.type == self.REMOVE: + self["text"] = Label(_("Getting plugin information. Please wait...")) self.run = 0 @@ -80,23 +89,39 @@ class PluginDownloadBrowser(Screen): def go(self): print "plugin: installing:", self.pluginlist[self["list"].l.getCurrentSelectionIndex()] - self.session.openWithCallback(self.runInstall, MessageBox, _("Do you really want to download\nthe plugin \"" + self.pluginlist[self["list"].l.getCurrentSelectionIndex()][3] + "\"?")) - + if self.type == self.DOWNLOAD: + self.session.openWithCallback(self.runInstall, MessageBox, _("Do you really want to download\nthe plugin \"" + self.pluginlist[self["list"].l.getCurrentSelectionIndex()][3] + "\"?")) + elif self.type == self.REMOVE: + self.session.openWithCallback(self.runInstall, MessageBox, _("Do you really want to REMOVE\nthe plugin \"" + self.pluginlist[self["list"].l.getCurrentSelectionIndex()][3] + "\"?")) + def runInstall(self, val): if val: - self.session.openWithCallback(self.installFinished, Console, ["ipkg install " + self.pluginlist[self["list"].l.getCurrentSelectionIndex()][0]]) + if self.type == self.DOWNLOAD: + self.session.openWithCallback(self.installFinished, Console, ["ipkg install " + self.pluginlist[self["list"].l.getCurrentSelectionIndex()][0]]) + elif self.type == self.REMOVE: + self.session.openWithCallback(self.installFinished, Console, ["ipkg remove " + self.pluginlist[self["list"].l.getCurrentSelectionIndex()][0]]) + + def setTitle(self): + if self.type == self.DOWNLOAD: + self.session.currentDialog.instance.setTitle(_("Downloadable new plugins")) + elif self.type == self.REMOVE: + self.session.currentDialog.instance.setTitle(_("Remove plugins")) def startRun(self): self["list"].instance.hide() self.container.execute("ipkg update") def installFinished(self): - plugins.readPluginList(resolveFilename(SCOPE_PLUGINS)) + plugins.reReadPluginList(resolveFilename(SCOPE_PLUGINS)) + self.close() def runFinished(self, retval): if self.run == 0: self.run = 1 - self.container.execute("ipkg list enigma2-plugin-*") + if self.type == self.DOWNLOAD: + self.container.execute("ipkg list enigma2-plugin-*") + elif self.type == self.REMOVE: + self.container.execute("ipkg list_installed enigma2-plugin-*") else: if len(self.pluginlist) > 0: self.updateList() @@ -113,6 +138,7 @@ class PluginDownloadBrowser(Screen): self.pluginlist.append(plugin) def updateList(self): + self.list = [] for x in self.pluginlist: plugin = PluginDescriptor(name = x[3], description = x[2]) self.list.append(PluginEntryComponent(plugin))