da09ee0f9b1cd4828d22bfa62733dedd5693d6a5
[findit] / src / files / outtable.py
1 #!/usr/bin/env python
2 # -*-coding: utf-8 -*-
3 # vim: sw=4 ts=4 expandtab ai
4
5 import gtk
6 import gobject
7
8 #==============================================================================
9
10 class OutTable_Control(object):
11     def __init__(self):
12         self.table_present = Gtk_Presentation()
13
14     def show(self, filelist, flsize):
15         self.table_present.show_result(filelist, flsize)
16
17     def get_ui(self):
18         return self.table_present.get_toplevel()
19
20 #==============================================================================
21
22 class OutTable_Abstraction(object):
23     pass
24
25 #==============================================================================
26
27 class Gtk_Presentation(object):
28     def __init__(self):
29
30         # Определяем переменную в которой будет храниться выводимый список
31         self.liststore = gtk.ListStore(str, str, gobject.TYPE_INT64)
32         self.treeview = gtk.TreeView(self.liststore)
33         # На таблетке не отображаються заголовки столбцов по умолчанию -
34         # след строка заставляет их отображаться принудительно
35         self.treeview.set_headers_visible(1)
36         self.liststore.append(['', '', 0])
37
38         # Создаем и настраиваем колонку с размером файла
39         size_col = gtk.TreeViewColumn( 'Size')
40         cell1 = gtk.CellRendererText()
41         cell1.set_property('width', 90)
42         size_col.pack_start(cell1, True)
43         size_col.add_attribute(cell1, 'text', 1)
44         self.treeview.append_column(size_col)
45         # Создаем и настраиваем колонку с именем файла
46         path_col = gtk.TreeViewColumn( 'Path')
47         cell2 = gtk.CellRendererText()
48         path_col.pack_start(cell2, True)
49         path_col.add_attribute(cell2, 'text', 0)
50         self.treeview.append_column(path_col)
51
52         # Добавляем сортировку для колонок
53         self.treeview.set_search_column(1)
54         path_col.set_sort_column_id(0)
55         size_col.set_sort_column_id(2)
56
57         self.swin = gtk.ScrolledWindow()
58         self.swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
59         self.swin.add(self.treeview)
60
61     #=== Functions ============================================================
62     def show_result(self, filelist, fullsize):
63         self.liststore.clear()
64         for line in filelist:
65             self.liststore.append(line)
66
67     #=== Toplevel widget for embedding to search area =========================
68     def get_toplevel(self):
69         return self.swin