From d885cd9587a701d880049cb5c1b90a2e75c35338 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Wed, 3 Aug 2011 19:04:20 +0200 Subject: Add the supported format list to the GUI --- gui.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gui.py b/gui.py index 19fff58..66cf755 100644 --- a/gui.py +++ b/gui.py @@ -9,6 +9,8 @@ import gobject import os import logging +import xml.sax + from lib import mat __version__ = '0.1' @@ -177,6 +179,8 @@ class ListStoreApp: help_menu = self.create_sub_menu('Help', menubar) self.create_menu_item('About', self.about, help_menu, gtk.STOCK_ABOUT) + self.create_menu_item('Supported formats', self.supported, help_menu, + gtk.STOCK_INFO) return menubar @@ -241,6 +245,48 @@ class ListStoreApp: if click: w.destroy() + def supported(self, _): + ''' + List the supported formats + ''' + dialog = gtk.Dialog('Supported formats', None, 0, (gtk.STOCK_CLOSE, 0)) + content_area = dialog.get_content_area() + vbox = gtk.VBox(spacing=5) + content_area.pack_start(vbox, True, True, 0) + + label = gtk.Label() + label.set_markup('Supported fileformats') + vbox.pack_start(label, True, True, 0) + + #parsing xml + handler = mat.XMLParser() + parser = xml.sax.make_parser() + parser.setContentHandler(handler) + with open('FORMATS', 'r') as f: + parser.parse(f) + + for item in handler.list: # list of dict : one pict per format + #create one expander per format + title = '%s (%s)' % (item['name'], item['extension']) + support = '\tsupport : ' + item['support'] + metadata = '\n\tmetadata : ' + item['metadata'] + method = '\n\tmethod : ' + item['method'] + content = support + metadata + method + + if item['support'] == 'partial': + content += '\n\tremaining : ' + item['remaining'] + + expander = gtk.Expander(title) + vbox.pack_start(expander, False, False, 0) + label = gtk.Label() + label.set_markup(content) + expander.add(label) + + dialog.show_all() + click = dialog.run() + if click is 0: + dialog.destroy() + def preferences(self, _): ''' Preferences popup -- cgit v1.3