added deb search possibility (edit */application.py for switch between deb and file...
[findit] / src / mvc / views / debsearch.py
1 #!/usr/bin/env python
2 # -*-coding: utf-8 -*-
3 # vim: sw=4 ts=4 expandtab ai
4 # pylint: disable-msg=C0301
5
6 from gtkmvc import View
7 import gtk, gobject
8
9
10 class DebsearchView(View):
11     """A view for the Debian packages search plugin"""
12
13     def __init__(self, ctrl):
14         View.__init__(self, ctrl, register=False)
15         self.__build_widgets()
16         ctrl.register_view(self)
17
18     def __build_widgets(self):
19
20         hbox = gtk.HBox(False, 4)
21
22         # "Packages quantity" label
23         qty_label = gtk.Label('Packages quantity')
24
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)
30
31         # "Go" button
32         self['start_btn'] = gtk.Button('Go')
33
34         # "Stop" button
35         self['stop_btn'] = gtk.Button('Stop')
36         self['stop_btn'].set_sensitive(False)
37
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'])
42
43         # Packages list
44         self['liststore'] = gtk.ListStore(str, str, gobject.TYPE_INT64)
45         self['liststore'].append(['', '', 0])
46
47         self['treeview'] = gtk.TreeView(self['liststore'])
48         self['treeview'].set_headers_visible(1)
49
50         swin = gtk.ScrolledWindow()
51         swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
52         swin.add(self['treeview'])
53
54         # Size column
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)
61
62         # Package name column
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)
68
69         # Column sorting
70         self['treeview'].set_search_column(1)
71         name_col.set_sort_column_id(0)
72         size_col.set_sort_column_id(2)
73
74         self['statusbar'] = gtk.Statusbar()
75         self['context_id'] = self['statusbar'].get_context_id("Current package")
76
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()
82
83     def set_quantity_value(self, val):
84         self['qty_spin'].set_value(val)
85
86     def set_stopit_value(self, val):
87         pass