diff options
| author | jvoisin | 2011-07-17 19:30:37 +0200 |
|---|---|---|
| committer | jvoisin | 2011-07-17 19:30:37 +0200 |
| commit | 58b901f3efe90f20b00852f7c9f65d55d09dd5aa (patch) | |
| tree | 4e835ee532604ceedfe72340039374f65f3284d2 /gui.py | |
| parent | a801dac55f954a983db2c2daa57fbbf5c5a241f3 (diff) | |
Folder adding is now fully recursive
Diffstat (limited to 'gui.py')
| -rw-r--r-- | gui.py | 58 |
1 files changed, 34 insertions, 24 deletions
| @@ -42,6 +42,7 @@ class ListStoreApp: | |||
| 42 | 42 | ||
| 43 | self.treeview = Gtk.TreeView(model=self.model) | 43 | self.treeview = Gtk.TreeView(model=self.model) |
| 44 | self.treeview.set_rules_hint(True) | 44 | self.treeview.set_rules_hint(True) |
| 45 | #self.treeview.set_mode(True) | ||
| 45 | sw.add(self.treeview) | 46 | sw.add(self.treeview) |
| 46 | self.add_columns(self.treeview) | 47 | self.add_columns(self.treeview) |
| 47 | 48 | ||
| @@ -53,7 +54,7 @@ class ListStoreApp: | |||
| 53 | 54 | ||
| 54 | def create_toolbar(self): | 55 | def create_toolbar(self): |
| 55 | ''' | 56 | ''' |
| 56 | Returns a bbox object, which contains a toolbar with buttons | 57 | Returns a vbox object, which contains a toolbar with buttons |
| 57 | ''' | 58 | ''' |
| 58 | toolbar = Gtk.Toolbar() | 59 | toolbar = Gtk.Toolbar() |
| 59 | 60 | ||
| @@ -62,6 +63,7 @@ class ListStoreApp: | |||
| 62 | toolbar.add(toolbutton) | 63 | toolbar.add(toolbutton) |
| 63 | 64 | ||
| 64 | toolbutton = Gtk.ToolButton(label = 'Clean', stock_id=Gtk.STOCK_CLEAR) | 65 | toolbutton = Gtk.ToolButton(label = 'Clean', stock_id=Gtk.STOCK_CLEAR) |
| 66 | toolbutton.connect('clicked', self.mat_clean) | ||
| 65 | toolbar.add(toolbutton) | 67 | toolbar.add(toolbutton) |
| 66 | 68 | ||
| 67 | toolbutton = Gtk.ToolButton(label='Brute Clean', | 69 | toolbutton = Gtk.ToolButton(label='Brute Clean', |
| @@ -69,7 +71,7 @@ class ListStoreApp: | |||
| 69 | toolbar.add(toolbutton) | 71 | toolbar.add(toolbutton) |
| 70 | 72 | ||
| 71 | toolbutton = Gtk.ToolButton(label='Check', stock_id=Gtk.STOCK_FIND) | 73 | toolbutton = Gtk.ToolButton(label='Check', stock_id=Gtk.STOCK_FIND) |
| 72 | toolbutton.connect('clicked', self.mat_clean) | 74 | toolbutton.connect('clicked', self.mat_check) |
| 73 | toolbar.add(toolbutton) | 75 | toolbar.add(toolbutton) |
| 74 | 76 | ||
| 75 | toolbutton = Gtk.ToolButton(stock_id=Gtk.STOCK_QUIT) | 77 | toolbutton = Gtk.ToolButton(stock_id=Gtk.STOCK_QUIT) |
| @@ -85,22 +87,24 @@ class ListStoreApp: | |||
| 85 | Crete the columns | 87 | Crete the columns |
| 86 | ''' | 88 | ''' |
| 87 | model = treeview.get_model() | 89 | model = treeview.get_model() |
| 88 | renderer = Gtk.CellRendererText() | ||
| 89 | 90 | ||
| 90 | # column for filename | 91 | # column for filename |
| 91 | column = Gtk.TreeViewColumn("Filename", renderer, | 92 | filenameColumn = Gtk.CellRendererText() |
| 93 | column = Gtk.TreeViewColumn("Filename", filenameColumn, | ||
| 92 | text=self.COLUMN_NAME) | 94 | text=self.COLUMN_NAME) |
| 93 | column.set_sort_column_id(self.COLUMN_NAME) | 95 | column.set_sort_column_id(self.COLUMN_NAME) |
| 94 | treeview.append_column(column) | 96 | treeview.append_column(column) |
| 95 | 97 | ||
| 96 | # column for fileformat | 98 | # column for fileformat |
| 97 | column = Gtk.TreeViewColumn("Fileformat", renderer, | 99 | fileformatColumn = Gtk.CellRendererText() |
| 100 | column = Gtk.TreeViewColumn("Fileformat", fileformatColumn, | ||
| 98 | text=self.COLUMN_FILEFORMAT) | 101 | text=self.COLUMN_FILEFORMAT) |
| 99 | column.set_sort_column_id(self.COLUMN_FILEFORMAT) | 102 | column.set_sort_column_id(self.COLUMN_FILEFORMAT) |
| 100 | treeview.append_column(column) | 103 | treeview.append_column(column) |
| 101 | 104 | ||
| 102 | # column for cleaned | 105 | # column for cleaned |
| 103 | column = Gtk.TreeViewColumn("Cleaned", renderer, | 106 | cleanedColumn = Gtk.CellRendererText() |
| 107 | column = Gtk.TreeViewColumn("Cleaned", cleanedColumn, | ||
| 104 | text=self.COLUMN_CLEANED) | 108 | text=self.COLUMN_CLEANED) |
| 105 | column.set_sort_column_id(self.COLUMN_CLEANED) | 109 | column.set_sort_column_id(self.COLUMN_CLEANED) |
| 106 | treeview.append_column(column) | 110 | treeview.append_column(column) |
| @@ -119,6 +123,9 @@ class ListStoreApp: | |||
| 119 | return filter | 123 | return filter |
| 120 | 124 | ||
| 121 | def add_files(self, button): | 125 | def add_files(self, button): |
| 126 | ''' | ||
| 127 | Add the files chosed by the filechoser ("Add" button) | ||
| 128 | ''' | ||
| 122 | chooser = Gtk.FileChooserDialog( | 129 | chooser = Gtk.FileChooserDialog( |
| 123 | title='Choose files', | 130 | title='Choose files', |
| 124 | parent=None, | 131 | parent=None, |
| @@ -139,28 +146,26 @@ class ListStoreApp: | |||
| 139 | 146 | ||
| 140 | if response is 0: #Gtk.STOCK_OK | 147 | if response is 0: #Gtk.STOCK_OK |
| 141 | filenames = chooser.get_filenames() | 148 | filenames = chooser.get_filenames() |
| 142 | lst = [] | 149 | chooser.destroy() |
| 143 | for item in filenames: | 150 | for item in filenames: #directory |
| 144 | #FIXME : not optimal at all | ||
| 145 | if os.path.isdir(item): | 151 | if os.path.isdir(item): |
| 146 | lst.extend(glob.glob(item + '/*')) | 152 | for root, dirs, files in os.walk(item): |
| 147 | else: | 153 | for name in files: |
| 148 | lst.append(item) | 154 | self.populate(os.path.join(root, name)) |
| 149 | self.populate(lst) | 155 | else: #regular file |
| 150 | chooser.destroy() | 156 | self.populate(item) |
| 151 | 157 | ||
| 152 | def populate(self, filenames): | 158 | def populate(self, item): |
| 153 | for item in filenames: | 159 | try: |
| 154 | try: | 160 | cfile = mat.create_class_file(item, self.backup) |
| 155 | cfile = mat.create_class_file(item, self.backup) | 161 | except: |
| 156 | except: | 162 | cfile = None |
| 157 | cfile = None | ||
| 158 | 163 | ||
| 159 | if cfile is not None: | 164 | if cfile is not None: |
| 160 | self.files.append(cfile) | 165 | self.files.append(cfile) |
| 161 | self.model.append([cfile.filename, cfile.mime, 'unknow']) | 166 | self.model.append([cfile.filename, cfile.mime, 'unknow']) |
| 162 | 167 | ||
| 163 | def mat_clean(self, button):#OMFG, I'm so ugly ! | 168 | def mat_check(self, button):#OMFG, I'm so ugly ! |
| 164 | self.model.clear() | 169 | self.model.clear() |
| 165 | for item in self.files: | 170 | for item in self.files: |
| 166 | if item.is_clean(): | 171 | if item.is_clean(): |
| @@ -169,6 +174,11 @@ class ListStoreApp: | |||
| 169 | string = 'dirty' | 174 | string = 'dirty' |
| 170 | self.model.append([item.shortname, item.mime, string]) | 175 | self.model.append([item.shortname, item.mime, string]) |
| 171 | 176 | ||
| 177 | def mat_clean(self, button):#I am dirty too | ||
| 178 | self.model.clear() | ||
| 179 | for item in self.files: | ||
| 180 | item.remove_all() | ||
| 181 | self.model.append([item.shortname, item.mime, 'clean']) | ||
| 172 | 182 | ||
| 173 | def main(): | 183 | def main(): |
| 174 | app = ListStoreApp() | 184 | app = ListStoreApp() |
