diff options
Diffstat (limited to 'gui.py')
| -rw-r--r-- | gui.py | 51 |
1 files changed, 32 insertions, 19 deletions
| @@ -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 | ||
| 17 | class 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 | |||
| 17 | class ListStoreApp: | 30 | class 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 | ||
| 303 | def main(): | 316 | def main(): |
| 304 | app = ListStoreApp() | 317 | app = ListStoreApp() |
