32
32
gtk.link_button_set_uri_hook(_open_link)
34
class BugsTab(gtk.Table):
34
class BugsTab(gtk.VBox):
35
35
def __init__(self):
36
super(BugsTab, self).__init__(rows=5, columns=2)
37
self.set_row_spacings(6)
38
self.set_col_spacings(6)
36
super(BugsTab, self).__init__(False, 6)
38
table = gtk.Table(rows=2, columns=2)
40
table.set_row_spacings(6)
43
image.set_from_file(icon_path("bug.png"))
44
table.attach(image, 0, 1, 0, 1, gtk.FILL)
46
align = gtk.Alignment(0.0, 0.5)
48
label.set_markup("<b>Bugs</b>\nThis revision has one or more bug associations.")
50
table.attach(align, 1, 2, 0, 1, gtk.FILL)
52
treeview = self.construct_treeview()
53
table.attach(treeview, 1, 2, 1, 2, gtk.FILL | gtk.EXPAND)
55
self.set_border_width(6)
56
self.pack_start(table, expand=False)
60
def construct_treeview(self):
61
self.bugs = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
62
self.treeview = gtk.TreeView(self.bugs)
64
uri_column = gtk.TreeViewColumn('Bug URI', gtk.CellRendererText(), text=0)
65
status_column = gtk.TreeViewColumn('Status', gtk.CellRendererText(), text=1)
67
self.treeview.append_column(uri_column)
68
self.treeview.append_column(status_column)
70
win = gtk.ScrolledWindow()
71
win.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
72
win.set_shadow_type(gtk.SHADOW_IN)
73
win.add(self.treeview)
42
for c in self.get_children():
45
79
self.hide_all() # Only shown when there are bugs
47
81
def add_bug(self, url, status):
48
button = gtk.LinkButton(url, url)
49
self.attach(button, 0, 1, self.count, self.count + 1,
50
gtk.EXPAND | gtk.FILL, gtk.FILL)
51
status_label = gtk.Label(status)
52
self.attach(status_label, 1, 2, self.count, self.count + 1,
53
gtk.EXPAND | gtk.FILL, gtk.FILL)
82
self.bugs.append([url, status])