summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gui.py51
1 files changed, 32 insertions, 19 deletions
diff --git a/gui.py b/gui.py
index 1b90e14..a08ef02 100644
--- a/gui.py
+++ b/gui.py
@@ -14,6 +14,19 @@ SUPPORTED = (('image/png', 'image/jpeg', 'image/gif',
14 ('*.jpg', '*.jpeg', '*.png', '*.bmp', '*.pdf', 14 ('*.jpg', '*.jpeg', '*.png', '*.bmp', '*.pdf',
15 '*.tar', '*.tar.bz2', '*.tar.gz', '*.mp3')) 15 '*.tar', '*.tar.bz2', '*.tar.gz', '*.mp3'))
16 16
17class cfile(GObject.GObject):
18 '''
19 Contain the class-file of the file "path"
20 This class exist just to be "around" my parser.Generic_parser class,
21 since Gtk.ListStore does not accept it.
22 '''
23 def __init__(self, path, backup):
24 GObject.GObject.__init__(self)
25 try:
26 self.file = mat.create_class_file(path, backup)
27 except:
28 self.file = None
29
17class ListStoreApp: 30class ListStoreApp:
18 ''' 31 '''
19 Main GUI class 32 Main GUI class
@@ -21,7 +34,7 @@ class ListStoreApp:
21 (COLUMN_NAME, 34 (COLUMN_NAME,
22 COLUMN_FILEFORMAT, 35 COLUMN_FILEFORMAT,
23 COLUMN_CLEANED, 36 COLUMN_CLEANED,
24 NUM_COLUMNS) = range(4) 37 NUM_COLUMNS) = xrange(1,5)
25 38
26 def __init__(self): 39 def __init__(self):
27 self.files = [] 40 self.files = []
@@ -44,15 +57,15 @@ class ListStoreApp:
44 vbox.pack_start(toolbar, False, True, 0) 57 vbox.pack_start(toolbar, False, True, 0)
45 vbox.pack_start(content, True, True, 0) 58 vbox.pack_start(content, True, True, 0)
46 59
47 self.model = Gtk.ListStore(str, str, str) #name - type - cleaned 60 self.model = Gtk.ListStore(cfile ,str, str, str) #name - type - cleaned
48 61
49 treeview = Gtk.TreeView(model=self.model) 62 treeview = Gtk.TreeView(model=self.model)
63 self.add_columns(treeview)
50 treeview.set_rules_hint(True) 64 treeview.set_rules_hint(True)
51 self.selection = treeview.get_selection() 65 self.selection = treeview.get_selection()
52 self.selection.set_mode(Gtk.SelectionMode.MULTIPLE) 66 self.selection.set_mode(Gtk.SelectionMode.MULTIPLE)
53 67
54 content.add(treeview) 68 content.add(treeview)
55 self.add_columns(treeview)
56 69
57 self.statusbar = Gtk.Statusbar() 70 self.statusbar = Gtk.Statusbar()
58 self.statusbar.push(1, 'Ready') 71 self.statusbar.push(1, 'Ready')
@@ -100,14 +113,14 @@ class ListStoreApp:
100 # column for filename 113 # column for filename
101 filenameColumn = Gtk.CellRendererText() 114 filenameColumn = Gtk.CellRendererText()
102 column = Gtk.TreeViewColumn("Filename", filenameColumn, 115 column = Gtk.TreeViewColumn("Filename", filenameColumn,
103 text=self.COLUMN_NAME) 116 text=self.COLUMN_NAME)
104 column.set_sort_column_id(self.COLUMN_NAME) 117 column.set_sort_column_id(self.COLUMN_NAME)
105 treeview.append_column(column) 118 treeview.append_column(column)
106 119
107 # column for fileformat 120 # column for fileformat
108 fileformatColumn = Gtk.CellRendererText() 121 fileformatColumn = Gtk.CellRendererText()
109 column = Gtk.TreeViewColumn("Fileformat", fileformatColumn, 122 column = Gtk.TreeViewColumn("Fileformat", fileformatColumn,
110 text=self.COLUMN_FILEFORMAT) 123 text=self.COLUMN_FILEFORMAT)
111 column.set_sort_column_id(self.COLUMN_FILEFORMAT) 124 column.set_sort_column_id(self.COLUMN_FILEFORMAT)
112 treeview.append_column(column) 125 treeview.append_column(column)
113 126
@@ -218,14 +231,11 @@ class ListStoreApp:
218 chooser.destroy() 231 chooser.destroy()
219 232
220 def populate(self, item): 233 def populate(self, item):
221 try: 234 cf = cfile(item, self.backup)
222 cfile = mat.create_class_file(item, self.backup)
223 except:
224 cfile = None
225 235
226 if cfile is not None: 236 if cf.file is not None:
227 self.files.append(cfile) 237 self.files.append(cf)
228 self.model.append([cfile.filename, cfile.mime, 'unknow']) 238 self.model.append([cf, cf.file.filename, cf.file.mime, 'unknow'])
229 239
230 def about(self, button=None): 240 def about(self, button=None):
231 w = Gtk.AboutDialog() 241 w = Gtk.AboutDialog()
@@ -282,23 +292,26 @@ class ListStoreApp:
282 def mat_check(self, button=None):#OMFG, I'm so ugly ! 292 def mat_check(self, button=None):#OMFG, I'm so ugly !
283 self.clear_model() 293 self.clear_model()
284 for item in self.files: 294 for item in self.files:
285 if item.is_clean(): 295 if item.file.is_clean():
286 string = 'clean' 296 string = 'clean'
287 else: 297 else:
288 string = 'dirty' 298 string = 'dirty'
289 self.model.append([item.filename, item.mime, string]) 299 self.model.append([item, item.file.filename, item.file.mime,
300 string])
290 301
291 def mat_clean(self, button=None):#I am dirty too 302 def mat_clean(self, button=None):#I am dirty too
292 self.clear_model 303 self.clear_model()
293 for item in self.files: 304 for item in self.files:
294 item.remove_all() 305 item.file.remove_all()
295 self.model.append([item.shortname, item.mime, 'clean']) 306 self.model.append([item, item.file.filename, item.file.mime,
307 'clean'])
296 308
297 def mat_clean_dirty(self, button=None):#And me too ! 309 def mat_clean_dirty(self, button=None):#And me too !
298 self.clear_model() 310 self.clear_model()
299 for item in self.files: 311 for item in self.files:
300 item.remove_all_ugly() 312 item.file.remove_all_ugly()
301 self.model.append([item.shortname, item.mime, 'clean']) 313 self.model.append([item, item.file.shortname, item.file.mime,
314 'clean'])
302 315
303def main(): 316def main():
304 app = ListStoreApp() 317 app = ListStoreApp()