3 # vim: sw=4 ts=4 expandtab ai
4 # pylint: disable-msg=C0301
6 from gtkmvc import View
10 class DebsearchView(View):
11 """A view for the Debian packages search plugin"""
13 def __init__(self, ctrl):
14 View.__init__(self, ctrl, register=False)
15 self.__build_widgets()
16 ctrl.register_view(self)
18 def __build_widgets(self):
20 hbox = gtk.HBox(False, 4)
22 # "Packages quantity" label
23 qty_label = gtk.Label('Packages quantity')
25 # "Packages quantity" spin
26 self['qty_spin'] = gtk.SpinButton()
27 self['qty_spin'].set_numeric(True)
28 self['qty_spin'].set_range(0, 65536)
29 self['qty_spin'].set_increments(1, 10)
32 self['start_btn'] = gtk.Button('Go')
35 self['stop_btn'] = gtk.Button('Stop')
36 self['stop_btn'].set_sensitive(False)
38 hbox.pack_start(qty_label, False, False, 0)
39 hbox.pack_start(self['qty_spin'], False, False, 0)
40 hbox.pack_start(self['start_btn'])
41 hbox.pack_start(self['stop_btn'])
44 self['liststore'] = gtk.ListStore(str, str, gobject.TYPE_INT64)
45 self['liststore'].append(['', '', 0])
47 self['treeview'] = gtk.TreeView(self['liststore'])
48 self['treeview'].set_headers_visible(1)
50 swin = gtk.ScrolledWindow()
51 swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
52 swin.add(self['treeview'])
55 size_col = gtk.TreeViewColumn('Size')
56 cell1 = gtk.CellRendererText()
57 cell1.set_property('width', 90)
58 size_col.pack_start(cell1, True)
59 size_col.add_attribute(cell1, 'text', 1)
60 self['treeview'].append_column(size_col)
63 name_col = gtk.TreeViewColumn('Name')
64 cell2 = gtk.CellRendererText()
65 name_col.pack_start(cell2, True)
66 name_col.add_attribute(cell2, 'text', 0)
67 self['treeview'].append_column(name_col)
70 self['treeview'].set_search_column(1)
71 name_col.set_sort_column_id(0)
72 size_col.set_sort_column_id(2)
74 self['statusbar'] = gtk.Statusbar()
75 self['context_id'] = self['statusbar'].get_context_id("Current package")
77 self['vbox'] = gtk.VBox(False, 4)
78 self['vbox'].pack_start(hbox, False, False, 0)
79 self['vbox'].pack_start(swin)
80 self['vbox'].pack_start(self['statusbar'], False, False, 0)
81 self['vbox'].show_all()
83 def set_quantity_value(self, val):
84 self['qty_spin'].set_value(val)
86 def set_stopit_value(self, val):