diff --git a/panels/system.py b/panels/system.py
index ac34d548..86535a58 100644
--- a/panels/system.py
+++ b/panels/system.py
@@ -78,24 +78,22 @@ class SystemPanel(ScreenPanel):
self.labels["%s_status" % prog] = self._gtk.Button()
self.labels["%s_status" % prog].set_hexpand(False)
- self.labels["%s_status" % prog].connect("clicked", self.update_program, prog)
- self.labels["%s_box" % prog] = Gtk.Box()
- self.labels["%s_box" % prog].set_hexpand(False)
+ self.labels["%s_status" % prog].connect("clicked", self.show_commit_history, prog)
self.labels["%s_info" % prog] = self._gtk.ButtonImage("info",None, None, .7, .7)
self.labels["%s_info" % prog].connect("clicked", self.show_commit_history, prog)
if prog in ALLOWED_SERVICES:
self.labels["%s_restart" % prog] = self._gtk.ButtonImage("refresh",None, None, .7, .7)
self.labels["%s_restart" % prog].connect("clicked", self.restart, prog)
- self.labels["%s_box" % prog].pack_start(self.labels["%s_restart" % prog], True, 0, 0)
+ infogrid.attach(self.labels["%s_restart" % prog], 0, i, 1, 1)
- self.labels["%s_box" % prog].pack_end(self.labels["%s_status" % prog], True, 0, 0)
+ #infogrid.attach(self.labels["%s_info" % prog], 2, i, 1, 1)
+ infogrid.attach(self.labels["%s_status" % prog], 2, i, 1, 1)
logging.info("Updating program: %s " % prog)
self.update_program_info(prog)
- infogrid.attach(self.labels["%s_box" % prog], 1, i, 1, 1)
- infogrid.attach(self.labels[prog], 0, i, 1, 1)
+ infogrid.attach(self.labels[prog], 1, i, 1, 1)
i = i + 1
scroll.add(infogrid)
@@ -162,6 +160,7 @@ class SystemPanel(ScreenPanel):
return
buttons = [
+ {"name":_("Update"), "response": Gtk.ResponseType.OK},
{"name":_("Go Back"), "response": Gtk.ResponseType.CANCEL}
]
@@ -191,7 +190,13 @@ class SystemPanel(ScreenPanel):
scroll.add(grid)
- dialog = self._gtk.Dialog(self._screen, buttons, scroll, self.destroy_widget)
+ dialog = self._gtk.Dialog(self._screen, buttons, scroll, self.update_confirm, program)
+
+ def update_confirm(self, widget, response_id, program):
+ if response_id == Gtk.ResponseType.OK:
+ logging.debug("Updating %s" % program)
+ self.update_program(self, program)
+ widget.destroy()
def update_program(self, widget, program):
if self._screen.is_updating():
@@ -255,14 +260,10 @@ class SystemPanel(ScreenPanel):
self.labels[p].set_markup("%s\n%s" % (p, version))
self.labels["%s_status" % p].set_label(_("Up To Date"))
self.labels["%s_status" % p].set_sensitive(False)
- if self.labels["%s_info" % p] in self.labels["%s_box" % p].get_children():
- self.labels["%s_box" % p].remove(self.labels["%s_info" % p])
else:
self.labels[p].set_markup("%s\n%s -> %s" % (p, version, info['remote_version']))
self.labels["%s_status" % p].set_label(_("Update"))
self.labels["%s_status" % p].set_sensitive(True)
- if not self.labels["%s_info" % p] in self.labels["%s_box" % p].get_children():
- self.labels["%s_box" % p].pack_start(self.labels["%s_info" % p], True, 0, 0)
else:
self.labels[p].set_markup("System")
if info['package_count'] == 0: