added deb search possibility (edit */application.py for switch between deb and file...
[findit] / src / mvc / views / debsearch.py
diff --git a/src/mvc/views/debsearch.py b/src/mvc/views/debsearch.py
new file mode 100755 (executable)
index 0000000..f1be44e
--- /dev/null
@@ -0,0 +1,87 @@
+#!/usr/bin/env python
+# -*-coding: utf-8 -*-
+# vim: sw=4 ts=4 expandtab ai
+# pylint: disable-msg=C0301
+
+from gtkmvc import View
+import gtk, gobject
+
+
+class DebsearchView(View):
+    """A view for the Debian packages search plugin"""
+
+    def __init__(self, ctrl):
+        View.__init__(self, ctrl, register=False)
+        self.__build_widgets()
+        ctrl.register_view(self)
+
+    def __build_widgets(self):
+
+        hbox = gtk.HBox(False, 4)
+
+        # "Packages quantity" label
+        qty_label = gtk.Label('Packages quantity')
+
+        # "Packages quantity" spin
+        self['qty_spin'] = gtk.SpinButton()
+        self['qty_spin'].set_numeric(True)
+        self['qty_spin'].set_range(0, 65536)
+        self['qty_spin'].set_increments(1, 10)
+
+        # "Go" button
+        self['start_btn'] = gtk.Button('Go')
+
+        # "Stop" button
+        self['stop_btn'] = gtk.Button('Stop')
+        self['stop_btn'].set_sensitive(False)
+
+        hbox.pack_start(qty_label, False, False, 0)
+        hbox.pack_start(self['qty_spin'], False, False, 0)
+        hbox.pack_start(self['start_btn'])
+        hbox.pack_start(self['stop_btn'])
+
+        # Packages list
+        self['liststore'] = gtk.ListStore(str, str, gobject.TYPE_INT64)
+        self['liststore'].append(['', '', 0])
+
+        self['treeview'] = gtk.TreeView(self['liststore'])
+        self['treeview'].set_headers_visible(1)
+
+        swin = gtk.ScrolledWindow()
+        swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+        swin.add(self['treeview'])
+
+        # Size column
+        size_col = gtk.TreeViewColumn('Size')
+        cell1 = gtk.CellRendererText()
+        cell1.set_property('width', 90)
+        size_col.pack_start(cell1, True)
+        size_col.add_attribute(cell1, 'text', 1)
+        self['treeview'].append_column(size_col)
+
+        # Package name column
+        name_col = gtk.TreeViewColumn('Name')
+        cell2 = gtk.CellRendererText()
+        name_col.pack_start(cell2, True)
+        name_col.add_attribute(cell2, 'text', 0)
+        self['treeview'].append_column(name_col)
+
+        # Column sorting
+        self['treeview'].set_search_column(1)
+        name_col.set_sort_column_id(0)
+        size_col.set_sort_column_id(2)
+
+        self['statusbar'] = gtk.Statusbar()
+        self['context_id'] = self['statusbar'].get_context_id("Current package")
+
+        self['vbox'] = gtk.VBox(False, 4)
+        self['vbox'].pack_start(hbox, False, False, 0)
+        self['vbox'].pack_start(swin)
+        self['vbox'].pack_start(self['statusbar'], False, False, 0)
+        self['vbox'].show_all()
+
+    def set_quantity_value(self, val):
+        self['qty_spin'].set_value(val)
+
+    def set_stopit_value(self, val):
+        pass