From 337919f7e9bb0768bf8fa1afa814145326fbdbe8 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Mon, 11 Jul 2011 22:14:03 +0200 Subject: First implementation of the interface --- gui.py | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 gui.py (limited to 'gui.py') diff --git a/gui.py b/gui.py new file mode 100644 index 0000000..ca3dbb8 --- /dev/null +++ b/gui.py @@ -0,0 +1,112 @@ +#!/usr/bin/python2.7 + +from gi.repository import Gtk, GObject +#import cli + +__version__ = '0.1' +__author__ = 'jvoisin' + +class File: + ''' + Represent a File + ''' + def __init__(self, name, fileformat, cleaned): + self.name = name + self.fileformat = fileformat + self.cleaned = cleaned + +# initial data we use to fill in the store +data = [File('test.txt', 'PLAIN TEXT', 0), + File('ugly.pdf', 'UGLY_PDF', 2), + File('ugly.doc', 'UGLY_OL2', 1), +] + +class ListStoreApp: + ''' + Main GUI class + ''' + (COLUMN_NAME, + COLUMN_FILEFORMAT, + COLUMN_CLEANED, + NUM_COLUMNS) = range(4) + + def __init__(self): + self.window = Gtk.Window() + self.window.set_title('Metadata Anonymisation Toolkit %s' % __version__) + self.window.connect('destroy', Gtk.main_quit) + + vbox = Gtk.VBox() + self.window.add(vbox) + self.window.connect('destroy', Gtk.main_quit) + + toolbar = Gtk.Toolbar() + toolbutton = Gtk.ToolButton(label = 'Clean', stock_id=Gtk.STOCK_CLEAR) + toolbar.add(toolbutton) + toolbutton = Gtk.ToolButton(label='Check', stock_id=Gtk.STOCK_APPLY) + toolbar.add(toolbutton) + toolbutton = Gtk.ToolButton(stock_id=Gtk.STOCK_QUIT) + toolbar.add(toolbutton) + vbox.pack_start(toolbar, False, False, 0) + + sw = Gtk.ScrolledWindow() + sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN) + sw.set_policy(Gtk.PolicyType.NEVER, + Gtk.PolicyType.AUTOMATIC) + vbox.pack_start(sw, True, True, 0) + + self.create_model() + treeview = Gtk.TreeView(model=self.model) + treeview.set_rules_hint(True) + sw.add(treeview) + + self.add_columns(treeview) + + self.window.set_default_size(800, 600) + self.window.show_all() + + + def create_model(self): + self.model = Gtk.ListStore(str, str, str,) #name - type - cleaned + for item in data: + if item.cleaned is 0: + s = 'clean' + elif item.cleaned is 1: + s = 'dirty' + else: + s = 'unknow' + self.model.append([item.name, + item.fileformat, + s + ]) + + def add_columns(self, treeview): + model = treeview.get_model() + + # column for filename + renderer = Gtk.CellRendererText() + column = Gtk.TreeViewColumn("Filename", renderer, + text=self.COLUMN_NAME) + column.set_sort_column_id(self.COLUMN_NAME) + treeview.append_column(column) + + # column for fileformat + renderer = Gtk.CellRendererText() + column = Gtk.TreeViewColumn("Fileformat", renderer, + text=self.COLUMN_FILEFORMAT) + column.set_sort_column_id(self.COLUMN_FILEFORMAT) + treeview.append_column(column) + + # column for cleaned + renderer = Gtk.CellRendererText() + column = Gtk.TreeViewColumn("Cleaned", renderer, + text=self.COLUMN_CLEANED) + column.set_sort_column_id(self.COLUMN_CLEANED) + treeview.append_column(column) + +def main(demoapp=None): + app = ListStoreApp() + Gtk.main() + +if __name__ == '__main__': + main() + -- cgit v1.3 From cb5718983dd08f180408f78b8f9bd93ba9b39b67 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Mon, 11 Jul 2011 23:19:54 +0200 Subject: Simplification, clarification --- gui.py | 56 +++++++++++++++++++++++++------------------------------- 1 file changed, 25 insertions(+), 31 deletions(-) (limited to 'gui.py') diff --git a/gui.py b/gui.py index ca3dbb8..d9fb7ad 100644 --- a/gui.py +++ b/gui.py @@ -1,7 +1,7 @@ #!/usr/bin/python2.7 from gi.repository import Gtk, GObject -#import cli +import cli __version__ = '0.1' __author__ = 'jvoisin' @@ -16,10 +16,11 @@ class File: self.cleaned = cleaned # initial data we use to fill in the store -data = [File('test.txt', 'PLAIN TEXT', 0), +DATA = [ + File('test.txt', 'PLAIN TEXT', 0), File('ugly.pdf', 'UGLY_PDF', 2), File('ugly.doc', 'UGLY_OL2', 1), -] + ] class ListStoreApp: ''' @@ -34,24 +35,14 @@ class ListStoreApp: self.window = Gtk.Window() self.window.set_title('Metadata Anonymisation Toolkit %s' % __version__) self.window.connect('destroy', Gtk.main_quit) + self.window.set_default_size(800, 600) - vbox = Gtk.VBox() + vbox = self.create_toolbar() self.window.add(vbox) - self.window.connect('destroy', Gtk.main_quit) - - toolbar = Gtk.Toolbar() - toolbutton = Gtk.ToolButton(label = 'Clean', stock_id=Gtk.STOCK_CLEAR) - toolbar.add(toolbutton) - toolbutton = Gtk.ToolButton(label='Check', stock_id=Gtk.STOCK_APPLY) - toolbar.add(toolbutton) - toolbutton = Gtk.ToolButton(stock_id=Gtk.STOCK_QUIT) - toolbar.add(toolbutton) - vbox.pack_start(toolbar, False, False, 0) sw = Gtk.ScrolledWindow() sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN) - sw.set_policy(Gtk.PolicyType.NEVER, - Gtk.PolicyType.AUTOMATIC) + sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) vbox.pack_start(sw, True, True, 0) self.create_model() @@ -60,44 +51,48 @@ class ListStoreApp: sw.add(treeview) self.add_columns(treeview) - - self.window.set_default_size(800, 600) self.window.show_all() + def create_toolbar(self): + toolbar = Gtk.Toolbar() + toolbutton = Gtk.ToolButton(label = 'Clean', stock_id=Gtk.STOCK_CLEAR) + toolbar.add(toolbutton) + toolbutton = Gtk.ToolButton(label='Check', stock_id=Gtk.STOCK_FIND) + toolbar.add(toolbutton) + toolbutton = Gtk.ToolButton(stock_id=Gtk.STOCK_QUIT) + toolbar.add(toolbutton) + vbox = Gtk.VBox() + vbox.pack_start(toolbar, False, False, 0) + return vbox def create_model(self): - self.model = Gtk.ListStore(str, str, str,) #name - type - cleaned - for item in data: + self.model = Gtk.ListStore(str, str, str) #name - type - cleaned + for item in DATA: if item.cleaned is 0: - s = 'clean' + state = 'clean' elif item.cleaned is 1: - s = 'dirty' + state = 'dirty' else: - s = 'unknow' - self.model.append([item.name, - item.fileformat, - s - ]) + state = 'unknow' + self.model.append( [item.name, item.fileformat, state] ) def add_columns(self, treeview): model = treeview.get_model() + renderer = Gtk.CellRendererText() # column for filename - renderer = Gtk.CellRendererText() column = Gtk.TreeViewColumn("Filename", renderer, text=self.COLUMN_NAME) column.set_sort_column_id(self.COLUMN_NAME) treeview.append_column(column) # column for fileformat - renderer = Gtk.CellRendererText() column = Gtk.TreeViewColumn("Fileformat", renderer, text=self.COLUMN_FILEFORMAT) column.set_sort_column_id(self.COLUMN_FILEFORMAT) treeview.append_column(column) # column for cleaned - renderer = Gtk.CellRendererText() column = Gtk.TreeViewColumn("Cleaned", renderer, text=self.COLUMN_CLEANED) column.set_sort_column_id(self.COLUMN_CLEANED) @@ -109,4 +104,3 @@ def main(demoapp=None): if __name__ == '__main__': main() - -- cgit v1.3