summaryrefslogtreecommitdiff
path: root/gui.py
diff options
context:
space:
mode:
authorjvoisin2011-07-17 19:30:37 +0200
committerjvoisin2011-07-17 19:30:37 +0200
commit58b901f3efe90f20b00852f7c9f65d55d09dd5aa (patch)
tree4e835ee532604ceedfe72340039374f65f3284d2 /gui.py
parenta801dac55f954a983db2c2daa57fbbf5c5a241f3 (diff)
Folder adding is now fully recursive
Diffstat (limited to 'gui.py')
-rw-r--r--gui.py58
1 files changed, 34 insertions, 24 deletions
diff --git a/gui.py b/gui.py
index 5fc9f37..96ac4a7 100644
--- a/gui.py
+++ b/gui.py
@@ -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
173def main(): 183def main():
174 app = ListStoreApp() 184 app = ListStoreApp()