* disable PluginManagers ipkg update on e2 start, better do it when needed.
[enigma2.git] / lib / python / Plugins / SystemPlugins / SoftwareManager / plugin.py
index b20ba51e025fa56a2ad4f2f3fc3c04c15bd10dc5..4917855f8498b35364047f33198d31200bc363d1 100755 (executable)
@@ -420,7 +420,7 @@ class PluginManager(Screen, DreamInfoHandler):
 
        def getUpdateInfos(self):
                self.setState('update')
-               iSoftwareTools.getUpdates(self.getUpdateInfosCB)
+               iSoftwareTools.startSoftwareTools(self.getUpdateInfosCB)
 
        def getUpdateInfosCB(self, retval = None):
                if retval is not None:
@@ -429,9 +429,10 @@ class PluginManager(Screen, DreamInfoHandler):
                                        self["status"].setText(_("There are at least ") + str(iSoftwareTools.available_updates) + _(" updates available."))
                                else:
                                        self["status"].setText(_("There are no updates available."))
+                               self.rebuildList()
                        elif retval is False:
+                               self.setState('error')
                                self["status"].setText(_("No network connection available."))
-                       self.rebuildList()
 
        def rebuildList(self, retval = None):
                if self.currentSelectedTag is None:
@@ -1558,24 +1559,31 @@ class PacketManager(Screen):
                pass
 
        def IpkgList_Finished(self, result, retval, extra_args = None):
-               if len(result):
+               if result:
                        self.packetlist = []
                        for x in result.splitlines():
-                               split = x.split(' - ')   #self.blacklisted_packages
-                               if not any(split[0].strip().endswith(x) for x in self.unwanted_extensions):
-                                       self.packetlist.append([split[0].strip(), split[1].strip(),split[2].strip()])
+                               tokens = x.split(' - ')   #self.blacklisted_packages
+                               name = tokens[0].strip()
+                               if not any(name.endswith(x) for x in self.unwanted_extensions):
+                                       l = len(tokens)
+                                       version = l > 1 and tokens[1].strip() or ""
+                                       descr = l > 2 and tokens[2].strip() or ""
+                                       self.packetlist.append([name, version, descr])
                if not self.Console:
                        self.Console = Console()
                cmd = "ipkg list_installed"
                self.Console.ePopen(cmd, self.IpkgListInstalled_Finished)
 
        def IpkgListInstalled_Finished(self, result, retval, extra_args = None):
-               if len(result):
+               if result:
                        self.installed_packetlist = {}
                        for x in result.splitlines():
-                               split = x.split(' - ')
-                               if not any(split[0].strip().endswith(x) for x in self.unwanted_extensions):
-                                       self.installed_packetlist[split[0].strip()] = split[1].strip()
+                               tokens = x.split(' - ')   #self.blacklisted_packages
+                               name = tokens[0].strip()
+                               if not any(name.endswith(x) for x in self.unwanted_extensions):
+                                       l = len(tokens)
+                                       version = l > 1 and tokens[1].strip() or ""
+                                       self.installed_packetlist[name] = version
                self.buildPacketList()
 
        def buildEntryComponent(self, name, version, description, state):
@@ -1694,16 +1702,12 @@ def startSetup(menuid):
                return [ ]
        return [(_("Software management"), UpgradeMain, "software_manager", 50)]
 
-def autostart(reason, **kwargs):
-       if reason is True:
-               iSoftwareTools.startSoftwareTools()
 
 def Plugins(path, **kwargs):
        global plugin_path
        plugin_path = path
        list = [
-               PluginDescriptor(where = [PluginDescriptor.WHERE_NETWORKCONFIG_READ], fnc = autostart),
-               PluginDescriptor(name=_("Software management"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_MENU, fnc=startSetup), 
+               PluginDescriptor(name=_("Software management"), 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+