summaryrefslogtreecommitdiff
path: root/portato/gui/windows
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2008-07-03 17:59:53 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2008-07-03 17:59:53 +0200
commita32293a8bbb0a90512d4f8e0fbc385257b29e72a (patch)
treed93fbf2ff5349b00a75f7521eca629b1233baffc /portato/gui/windows
parent09e693a8061d0b96c3aac8aae6ae12d6272b2c3e (diff)
downloadportato-a32293a8bbb0a90512d4f8e0fbc385257b29e72a.tar.gz
portato-a32293a8bbb0a90512d4f8e0fbc385257b29e72a.tar.bz2
portato-a32293a8bbb0a90512d4f8e0fbc385257b29e72a.zip
Should show dependencies now
Diffstat (limited to 'portato/gui/windows')
-rw-r--r--portato/gui/windows/plugin.py50
1 files changed, 48 insertions, 2 deletions
diff --git a/portato/gui/windows/plugin.py b/portato/gui/windows/plugin.py
index 6e8fdab..17c5326 100644
--- a/portato/gui/windows/plugin.py
+++ b/portato/gui/windows/plugin.py
@@ -42,6 +42,10 @@ class PluginWindow (AbstractDialog):
self.depExpander = self.tree.get_widget("depExpander")
self.installBtn = self.tree.get_widget("installBtn")
+ self.depList = self.tree.get_widget("depList")
+ self.build_dep_list()
+
+ self.instIcon = self.window.render_icon(gtk.STOCK_YES, gtk.ICON_SIZE_MENU)
self.view = self.tree.get_widget("pluginList")
self.store = gtk.ListStore(str)
@@ -59,6 +63,32 @@ class PluginWindow (AbstractDialog):
self.window.show_all()
+ def build_dep_list (self):
+ store = gtk.TreeStore(gtk.gdk.Pixbuf, str)
+
+ self.depList.set_model(store)
+
+ col = gtk.TreeViewColumn()
+
+ cell = gtk.CellRendererPixbuf()
+ col.pack_start(cell, False)
+ col.add_attribute(cell, "pixbuf", 0)
+
+ cell = gtk.CellRendererText()
+ col.pack_start(cell, True)
+ col.add_attribute(cell, "text", 1)
+
+ self.depList.append_column(col)
+
+ def fill_dep_list (self, inst = [], ninst = []):
+ store = self.depList.get_model()
+ store.clear()
+
+ for dep in inst:
+ store.append([self.instIcon, dep])
+ for dep in ninst:
+ store.append([None, dep])
+
def cb_state_toggled (self, rb):
plugin = self.get_actual()
@@ -91,8 +121,24 @@ class PluginWindow (AbstractDialog):
status = self.changedPlugins.get(plugin, plugin.status)
self.buttons[status].set_active(True)
- self.installBtn.hide()
- self.depExpander.hide()
+ if plugin.deps:
+ inst = []
+ ninst = []
+
+ for dep in plugin.deps:
+ if system.find_packages(dep, pkgSet = "installed"):
+ inst.append(dep)
+ else:
+ ninst.append(dep)
+
+ self.fill_dep_list(inst, ninst)
+ self.depExpander.show()
+
+ self.installBtn.show()
+ self.installBtn.set_sensitive(bool(ninst))
+ else:
+ self.installBtn.hide()
+ self.depExpander.hide()
def get_actual (self):
store, it = self.view.get_selection().get_selected()
ato/gui/gtk/windows.py?id=ddd02e1d96ce82aef943308129c5959c5f482567&follow=1'>updatesnecoro2-21/+64 2007-07-28some more pause emerge itemsnecoro5-276/+423 2007-07-27changed design / added linknecoro3-66/+154 2007-07-26changed design / added linknecoro2-34/+27 2007-07-25changed design / added linknecoro5-86/+188 2007-07-24made the resume_loop-plugin change titles toonecoro5-7/+22 2007-07-21added logviewersnecoro7-215/+429 2007-07-21updated howtonecoro1-14/+24 2007-07-20new Plugin Schemenecoro1-5/+4 2007-07-20new Plugin Schemenecoro1-1/+1 2007-07-20new Plugin Schemenecoro9-162/+214 2007-07-13fixesnecoro4-27/+37 2007-07-13new fancier log outputnecoro14-127/+116 2007-07-11added SIGSTOP/SIGCONT support; SIGTERM now works ;)necoro8-208/+275 2007-07-09bug in shutdown pluginnecoro2-5/+12 2007-07-09added resume_loop pluginnecoro1-1/+1 2007-07-09added resume_loop pluginnecoro10-22/+162 2007-07-07some more documentationnecoro6-4/+108 2007-07-07Some documentation worknecoro7-18/+129