X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FPluginBrowser.py;h=0f7148a4cccc60ffccd13c68dccb609ac38a336a;hp=359552eb629940805d4bc4e1d49ddca72c1b6ca4;hb=HEAD;hpb=316f6a4f78d654e7822431cca75659709c6c3fee diff --git a/lib/python/Screens/PluginBrowser.py b/lib/python/Screens/PluginBrowser.py index 359552e..0f7148a 100755 --- a/lib/python/Screens/PluginBrowser.py +++ b/lib/python/Screens/PluginBrowser.py @@ -46,6 +46,12 @@ class PluginBrowser(Screen): self["SoftwareActions"].setEnabled(False) self.onFirstExecBegin.append(self.checkWarnings) self.onShown.append(self.updateList) + self.onLayoutFinish.append(self.saveListsize) + + def saveListsize(self): + listsize = self["list"].instance.size() + self.listWidth = listsize.width() + self.listHeight = listsize.height() def checkWarnings(self): if len(plugins.warnings): @@ -64,7 +70,7 @@ class PluginBrowser(Screen): def updateList(self): self.pluginlist = plugins.getPlugins(PluginDescriptor.WHERE_PLUGINMENU) - self.list = [PluginEntryComponent(plugin) for plugin in self.pluginlist] + self.list = [PluginEntryComponent(plugin, self.listWidth) 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")) @@ -172,7 +178,10 @@ class PluginDownloadBrowser(Screen): self.container.execute("opkg list enigma2-plugin-*") def startRun(self): + listsize = self["list"].instance.size() self["list"].instance.hide() + self.listWidth = listsize.width() + self.listHeight = listsize.height() if self.type == self.DOWNLOAD: if not PluginDownloadBrowser.lastDownloadDate or (time() - PluginDownloadBrowser.lastDownloadDate) > 3600: # Only update from internet once per hour @@ -220,8 +229,8 @@ class PluginDownloadBrowser(Screen): self.remainingdata = "" for x in lines: - plugin = x.split(" - ", 2) - if len(plugin) == 3: + plugin = x.split(" - ") + if len(plugin) >= 2: if self.run == 1 and self.type == self.DOWNLOAD: if plugin[0] not in self.installedplugins: self.installedplugins.append(plugin[0]) @@ -239,6 +248,13 @@ class PluginDownloadBrowser(Screen): self.plugins = {} for x in self.pluginlist: + if len(x) < 4: + split = x[0].split('-',3) + if not self.plugins.has_key(split[2]): + self.plugins[split[2]] = [] + self.plugins[split[2]].append((PluginDescriptor(name = x[2], description = " ", icon = verticallineIcon), split[3])) + continue + split = x[3].split('-', 1) if len(split) < 2: continue @@ -249,10 +265,10 @@ class PluginDownloadBrowser(Screen): for x in self.plugins.keys(): if x in self.expanded: - list.append(PluginCategoryComponent(x, expandedIcon)) - list.extend([PluginDownloadComponent(plugin[0], plugin[1]) for plugin in self.plugins[x]]) + list.append(PluginCategoryComponent(x, expandedIcon, self.listWidth)) + list.extend([PluginDownloadComponent(plugin[0], plugin[1], self.listWidth) for plugin in self.plugins[x]]) else: - list.append(PluginCategoryComponent(x, expandableIcon)) + list.append(PluginCategoryComponent(x, expandableIcon, self.listWidth)) self.list = list self["list"].l.setList(list)