X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/5db2dc5c63948651b3e4b337d7057cd940ccc644..89a55fb89dbfb1d78255b48a50a8b4d28e83cdef:/lib/python/Screens/PluginBrowser.py diff --git a/lib/python/Screens/PluginBrowser.py b/lib/python/Screens/PluginBrowser.py index fbb809d7..520d6d7a 100644 --- a/lib/python/Screens/PluginBrowser.py +++ b/lib/python/Screens/PluginBrowser.py @@ -74,8 +74,8 @@ class PluginDownloadBrowser(Screen): self.type = type self.container = eConsoleAppContainer() - self.container.appClosed.get().append(self.runFinished) - self.container.dataAvail.get().append(self.dataAvail) + self.container.appClosed.append(self.runFinished) + self.container.dataAvail.append(self.dataAvail) self.onLayoutFinish.append(self.startRun) self.onShown.append(self.setWindowTitle) @@ -91,7 +91,9 @@ class PluginDownloadBrowser(Screen): self["text"] = Label(_("Getting plugin information. Please wait...")) self.run = 0 - + + self.remainingdata = "" + self["actions"] = ActionMap(["WizardActions"], { "ok": self.go, @@ -112,9 +114,9 @@ class PluginDownloadBrowser(Screen): self.updateList() else: if self.type == self.DOWNLOAD: - self.session.openWithCallback(self.runInstall, MessageBox, _("Do you really want to download\nthe plugin \"" + sel[0].name + "\"?")) + self.session.openWithCallback(self.runInstall, MessageBox, _("Do you really want to download\nthe plugin \"%s\"?") % sel[0].name) elif self.type == self.REMOVE: - self.session.openWithCallback(self.runInstall, MessageBox, _("Do you really want to REMOVE\nthe plugin \"" + sel[0].name + "\"?")) + self.session.openWithCallback(self.runInstall, MessageBox, _("Do you really want to REMOVE\nthe plugin \"%s\"?") % sel[0].name) def runInstall(self, val): if val: @@ -139,9 +141,12 @@ class PluginDownloadBrowser(Screen): def installFinished(self): plugins.readPluginList(resolveFilename(SCOPE_PLUGINS)) + self.container.appClosed.remove(self.runFinished) + self.container.dataAvail.remove(self.dataAvail) self.close() - + def runFinished(self, retval): + self.remainingdata = "" if self.run == 0: self.run = 1 if self.type == self.DOWNLOAD: @@ -157,7 +162,19 @@ class PluginDownloadBrowser(Screen): self["text"].setText("No new plugins found") def dataAvail(self, str): - for x in str.split('\n'): + #prepend any remaining data from the previous call + str = self.remainingdata + str + #split in lines + lines = str.split('\n') + #'str' should end with '\n', so when splitting, the last line should be empty. If this is not the case, we received an incomplete line + if len(lines[-1]): + #remember this data for next time + self.remainingdata = lines[-1] + lines = lines[0:-1] + else: + self.remainingdata = "" + + for x in lines: plugin = x.split(" - ") if len(plugin) == 3: if self.run == 1 and self.type == self.DOWNLOAD: @@ -170,9 +187,9 @@ class PluginDownloadBrowser(Screen): def updateList(self): self.list = [] - expandableIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "expandable-plugins.png")) - expandedIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "expanded-plugins.png")) - verticallineIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "verticalline-plugins.png")) + expandableIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/expandable-plugins.png")) + expandedIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/expanded-plugins.png")) + verticallineIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/verticalline-plugins.png")) self.plugins = {} for x in self.pluginlist: