From 28fd474ce7f0835ee4e3b01166c8d60441cb4ff3 Mon Sep 17 00:00:00 2001 From: Thomas Leonard Date: Mon, 3 Jan 2011 15:58:30 +0000 Subject: [PATCH] Fixed GUI to display recursive runners --- zeroinstall/0launch-gui/iface_browser.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/zeroinstall/0launch-gui/iface_browser.py b/zeroinstall/0launch-gui/iface_browser.py index 0b5fb16..b23db9e 100644 --- a/zeroinstall/0launch-gui/iface_browser.py +++ b/zeroinstall/0launch-gui/iface_browser.py @@ -323,7 +323,9 @@ class InterfaceBrowser: self.model.clear() parent = None - def add_node(parent, iface, command = None): + commands = self.policy.solver.selections.commands + def add_node(parent, iface, command): + # (command is the index into commands, if any) if iface in done: return done[iface] = True @@ -346,11 +348,15 @@ class InterfaceBrowser: self.model[iter][InterfaceBrowser.DOWNLOAD_SIZE] = utils.get_fetch_info(self.policy, impl) deps = sel.dependencies - if command: - deps += command.requires + if command is not None: + deps += commands[command].requires for child in deps: if isinstance(child, model.InterfaceDependency): - add_node(iter, iface_cache.get_interface(child.interface)) + if child.qdom.name == 'runner': + child_command = command + 1 + else: + child_command = None + add_node(iter, iface_cache.get_interface(child.interface), child_command) else: child_iter = self.model.append(parent) self.model[child_iter][InterfaceBrowser.INTERFACE_NAME] = '?' @@ -359,12 +365,10 @@ class InterfaceBrowser: self.model[child_iter][InterfaceBrowser.ICON] = self.default_icon else: self.model[iter][InterfaceBrowser.VERSION] = _('(choose)') - commands = self.policy.solver.selections.commands if commands: - for command in commands: - add_node(None, self.root, command) + add_node(None, self.root, 0) else: - # Nothing could be selected + # Nothing could be selected, or no command requested add_node(None, self.root, None) self.tree_view.expand_all() -- 2.11.4.GIT