diff options
| author | jvoisin | 2011-07-11 22:14:03 +0200 |
|---|---|---|
| committer | jvoisin | 2011-07-11 22:14:03 +0200 |
| commit | 337919f7e9bb0768bf8fa1afa814145326fbdbe8 (patch) | |
| tree | fddcbf8f1a8a0850984e5cceb08ada7be5074ae4 /gui.py | |
| parent | 154ef354cfa4c36958faa633c226211729bffeda (diff) | |
First implementation of the interface
Diffstat (limited to 'gui.py')
| -rw-r--r-- | gui.py | 112 |
1 files changed, 112 insertions, 0 deletions
| @@ -0,0 +1,112 @@ | |||
| 1 | #!/usr/bin/python2.7 | ||
| 2 | |||
| 3 | from gi.repository import Gtk, GObject | ||
| 4 | #import cli | ||
| 5 | |||
| 6 | __version__ = '0.1' | ||
| 7 | __author__ = 'jvoisin' | ||
| 8 | |||
| 9 | class 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 | ||
| 19 | data = [File('test.txt', 'PLAIN TEXT', 0), | ||
| 20 | File('ugly.pdf', 'UGLY_PDF', 2), | ||
| 21 | File('ugly.doc', 'UGLY_OL2', 1), | ||
| 22 | ] | ||
| 23 | |||
| 24 | class ListStoreApp: | ||
| 25 | ''' | ||
| 26 | Main GUI class | ||
| 27 | ''' | ||
| 28 | (COLUMN_NAME, | ||
| 29 | COLUMN_FILEFORMAT, | ||
| 30 | COLUMN_CLEANED, | ||
| 31 | NUM_COLUMNS) = range(4) | ||
| 32 | |||
| 33 | def __init__(self): | ||
| 34 | self.window = Gtk.Window() | ||
| 35 | self.window.set_title('Metadata Anonymisation Toolkit %s' % __version__) | ||
| 36 | self.window.connect('destroy', Gtk.main_quit) | ||
| 37 | |||
| 38 | vbox = Gtk.VBox() | ||
| 39 | self.window.add(vbox) | ||
| 40 | self.window.connect('destroy', Gtk.main_quit) | ||
| 41 | |||
| 42 | toolbar = Gtk.Toolbar() | ||
| 43 | toolbutton = Gtk.ToolButton(label = 'Clean', stock_id=Gtk.STOCK_CLEAR) | ||
| 44 | toolbar.add(toolbutton) | ||
| 45 | toolbutton = Gtk.ToolButton(label='Check', stock_id=Gtk.STOCK_APPLY) | ||
| 46 | toolbar.add(toolbutton) | ||
| 47 | toolbutton = Gtk.ToolButton(stock_id=Gtk.STOCK_QUIT) | ||
| 48 | toolbar.add(toolbutton) | ||
| 49 | vbox.pack_start(toolbar, False, False, 0) | ||
| 50 | |||
| 51 | sw = Gtk.ScrolledWindow() | ||
| 52 | sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN) | ||
| 53 | sw.set_policy(Gtk.PolicyType.NEVER, | ||
| 54 | Gtk.PolicyType.AUTOMATIC) | ||
| 55 | vbox.pack_start(sw, True, True, 0) | ||
| 56 | |||
| 57 | self.create_model() | ||
| 58 | treeview = Gtk.TreeView(model=self.model) | ||
| 59 | treeview.set_rules_hint(True) | ||
| 60 | sw.add(treeview) | ||
| 61 | |||
| 62 | self.add_columns(treeview) | ||
| 63 | |||
| 64 | self.window.set_default_size(800, 600) | ||
| 65 | self.window.show_all() | ||
| 66 | |||
| 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 | s = 'clean' | ||
| 73 | elif item.cleaned is 1: | ||
| 74 | s = 'dirty' | ||
| 75 | else: | ||
| 76 | s = 'unknow' | ||
| 77 | self.model.append([item.name, | ||
| 78 | item.fileformat, | ||
| 79 | s | ||
| 80 | ]) | ||
| 81 | |||
| 82 | def add_columns(self, treeview): | ||
| 83 | model = treeview.get_model() | ||
| 84 | |||
| 85 | # column for filename | ||
| 86 | renderer = Gtk.CellRendererText() | ||
| 87 | column = Gtk.TreeViewColumn("Filename", renderer, | ||
| 88 | text=self.COLUMN_NAME) | ||
| 89 | column.set_sort_column_id(self.COLUMN_NAME) | ||
| 90 | treeview.append_column(column) | ||
| 91 | |||
| 92 | # column for fileformat | ||
| 93 | renderer = Gtk.CellRendererText() | ||
| 94 | column = Gtk.TreeViewColumn("Fileformat", renderer, | ||
| 95 | text=self.COLUMN_FILEFORMAT) | ||
| 96 | column.set_sort_column_id(self.COLUMN_FILEFORMAT) | ||
| 97 | treeview.append_column(column) | ||
| 98 | |||
| 99 | # column for cleaned | ||
| 100 | renderer = Gtk.CellRendererText() | ||
| 101 | column = Gtk.TreeViewColumn("Cleaned", renderer, | ||
| 102 | text=self.COLUMN_CLEANED) | ||
| 103 | column.set_sort_column_id(self.COLUMN_CLEANED) | ||
| 104 | treeview.append_column(column) | ||
| 105 | |||
| 106 | def main(demoapp=None): | ||
| 107 | app = ListStoreApp() | ||
| 108 | Gtk.main() | ||
| 109 | |||
| 110 | if __name__ == '__main__': | ||
| 111 | main() | ||
| 112 | |||
