summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gui.py106
1 files changed, 106 insertions, 0 deletions
diff --git a/gui.py b/gui.py
new file mode 100644
index 0000000..d9fb7ad
--- /dev/null
+++ b/gui.py
@@ -0,0 +1,106 @@
1#!/usr/bin/python2.7
2
3from gi.repository import Gtk, GObject
4import cli
5
6__version__ = '0.1'
7__author__ = 'jvoisin'
8
9class File:
10 '''
11 Represent a File
12 '''
13 def __init__(self, name, fileformat, cleaned):
14 self.name = name
15 self.fileformat = fileformat
16 self.cleaned = cleaned
17
18# initial data we use to fill in the store
19DATA = [
20 File('test.txt', 'PLAIN TEXT', 0),
21 File('ugly.pdf', 'UGLY_PDF', 2),
22 File('ugly.doc', 'UGLY_OL2', 1),
23 ]
24
25class ListStoreApp:
26 '''
27 Main GUI class
28 '''
29 (COLUMN_NAME,
30 COLUMN_FILEFORMAT,
31 COLUMN_CLEANED,
32 NUM_COLUMNS) = range(4)
33
34 def __init__(self):
35 self.window = Gtk.Window()
36 self.window.set_title('Metadata Anonymisation Toolkit %s' % __version__)
37 self.window.connect('destroy', Gtk.main_quit)
38 self.window.set_default_size(800, 600)
39
40 vbox = self.create_toolbar()
41 self.window.add(vbox)
42
43 sw = Gtk.ScrolledWindow()
44 sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
45 sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
46 vbox.pack_start(sw, True, True, 0)
47
48 self.create_model()
49 treeview = Gtk.TreeView(model=self.model)
50 treeview.set_rules_hint(True)
51 sw.add(treeview)
52
53 self.add_columns(treeview)
54 self.window.show_all()
55
56 def create_toolbar(self):
57 toolbar = Gtk.Toolbar()
58 toolbutton = Gtk.ToolButton(label = 'Clean', stock_id=Gtk.STOCK_CLEAR)
59 toolbar.add(toolbutton)
60 toolbutton = Gtk.ToolButton(label='Check', stock_id=Gtk.STOCK_FIND)
61 toolbar.add(toolbutton)
62 toolbutton = Gtk.ToolButton(stock_id=Gtk.STOCK_QUIT)
63 toolbar.add(toolbutton)
64 vbox = Gtk.VBox()
65 vbox.pack_start(toolbar, False, False, 0)
66 return vbox
67
68 def create_model(self):
69 self.model = Gtk.ListStore(str, str, str) #name - type - cleaned
70 for item in DATA:
71 if item.cleaned is 0:
72 state = 'clean'
73 elif item.cleaned is 1:
74 state = 'dirty'
75 else:
76 state = 'unknow'
77 self.model.append( [item.name, item.fileformat, state] )
78
79 def add_columns(self, treeview):
80 model = treeview.get_model()
81 renderer = Gtk.CellRendererText()
82
83 # column for filename
84 column = Gtk.TreeViewColumn("Filename", renderer,
85 text=self.COLUMN_NAME)
86 column.set_sort_column_id(self.COLUMN_NAME)
87 treeview.append_column(column)
88
89 # column for fileformat
90 column = Gtk.TreeViewColumn("Fileformat", renderer,
91 text=self.COLUMN_FILEFORMAT)
92 column.set_sort_column_id(self.COLUMN_FILEFORMAT)
93 treeview.append_column(column)
94
95 # column for cleaned
96 column = Gtk.TreeViewColumn("Cleaned", renderer,
97 text=self.COLUMN_CLEANED)
98 column.set_sort_column_id(self.COLUMN_CLEANED)
99 treeview.append_column(column)
100
101def main(demoapp=None):
102 app = ListStoreApp()
103 Gtk.main()
104
105if __name__ == '__main__':
106 main()