--- ../th/thumbnail-checker.py 2006-08-23 16:13:34.000000000 -0400
+++ thumbnail-checker.py 2006-10-20 16:19:12.000000000 -0300
@@ -18,24 +18,28 @@ class ThumbnailChecker:
self.first_time = True
xml = gtk.glade.XML('thumbnail-checker.glade', None, None)
- self.model = gtk.TreeStore(str, str)
+ self.model = gtk.TreeStore(str, str, str)
self.window = xml.get_widget('window')
- treeview = xml.get_widget('treeview')
+ self.treeview = xml.get_widget('treeview')
self.progressbar = xml.get_widget('progressbar')
self.progress = xml.get_widget('progress')
+ self.button_delete = xml.get_widget ('button_delete')
self.button_start = xml.get_widget('button_start')
self.button_stop = xml.get_widget('button_stop')
xml.signal_autoconnect(self)
- treeview.set_search_column(1)
- treeview.set_model(self.model)
+ self.treeview.set_search_column(1)
+ self.treeview.set_model(self.model)
+ selection = self.treeview.get_selection()
+ selection.set_mode (gtk.SELECTION_MULTIPLE)
+ selection.connect ("changed", self.on_selection_changed)
renderer = gtk.CellRendererText()
column = gtk.TreeViewColumn("File name or Thumbnail file", renderer, text=0)
column.set_resizable(True)
column.set_expand(True)
- treeview.append_column(column)
+ self.treeview.append_column(column)
renderer = gtk.CellRendererText()
renderer.set_property('xalign', 1.0)
@@ -43,7 +47,7 @@ class ThumbnailChecker:
column.set_resizable(True)
column.set_min_width(80)
column.set_resizable(True)
- treeview.append_column(column)
+ self.treeview.append_column(column)
def show(self):
self.window.show_all()
@@ -51,6 +55,10 @@ class ThumbnailChecker:
def on_quit(self, *args):
gtk.main_quit()
+ def on_button_delete_clicked(self, button, *args):
+ selection = self.treeview.get_selection ()
+ selection.selected_foreach (self.delete_selected_thumbnail)
+
def on_button_stop_clicked(self, button, *args):
gobject.source_remove(self.id)
self.button_stop.set_sensitive(False)
@@ -70,10 +78,10 @@ class ThumbnailChecker:
(orphan_size, orphan_count) = (0, 0)
(external_size, external_count) = (0, 0)
- orphan_iter = self.model.append(None, ["Orphans", '0'])
- external_iter = self.model.append(None, ["Orphans and/or Externals", '0'])
- invalid_iter = self.model.append(None, ["Invalid (broken image)", '0'])
- non_fd_iter = self.model.append(None, ["No Free Desktop compliant", '0'])
+ orphan_iter = self.model.append(None, ["Orphans", '0', ""])
+ external_iter = self.model.append(None, ["Orphans and/or Externals", '0', ""])
+ invalid_iter = self.model.append(None, ["Invalid (broken image)", '0', ""])
+ non_fd_iter = self.model.append(None, ["No Free Desktop compliant", '0', ""])
rootdir = os.path.expanduser('~/.thumbnails')
homedir = os.path.expanduser('~')
@@ -115,7 +123,7 @@ class ThumbnailChecker:
external_count += 1
str_size = locale.format("%d", size, grouping=True)
- self.model.append(external_iter, [uri, str_size])
+ self.model.append(external_iter, [uri, str_size, filename])
str_size = locale.format("%d", external_size, grouping=True)
self.model.set(external_iter, 1, str_size)
@@ -130,7 +138,7 @@ class ThumbnailChecker:
shortname = local_path.replace(homedir, '~')
str_size = locale.format("%d", size, grouping=True)
- self.model.append(orphan_iter, [shortname, str_size])
+ self.model.append(orphan_iter, [shortname, str_size, filename])
str_size = locale.format("%d", orphan_size, grouping=True)
self.model.set(orphan_iter, 1, str_size)
@@ -143,7 +151,7 @@ class ThumbnailChecker:
non_fd_count += 1
str_size = locale.format("%d", size, grouping=True)
- self.model.append(non_fd_iter, [shortname, str_size])
+ self.model.append(non_fd_iter, [shortname, str_size, filename])
str_size = locale.format("%d", non_fd_size, grouping=True)
self.model.set(non_fd_iter, 1, str_size)
@@ -158,7 +166,7 @@ class ThumbnailChecker:
shortname = filename.replace(homedir, '~')
str_size = locale.format("%d", size, grouping=True)
- self.model.append(invalid_iter, [shortname, str_size])
+ self.model.append(invalid_iter, [shortname, str_size, filename])
str_size = locale.format("%d", invalid_size, grouping=True)
self.model.set(invalid_iter, 1, str_size)
@@ -167,15 +175,23 @@ class ThumbnailChecker:
collect()
yield True
-
+
text = "%s done. Trying the next one..." % root
self.progress.set_text(text)
yield True
-
+
self.progressbar.set_text('Done')
self.progress.set_text('')
yield False
+ def delete_selected_thumbnail (self, treemodel, path, iter):
+ file = treemodel.get (iter, 2) [0]
+ os.unlink (os.path.expanduser (file))
+
+ def on_selection_changed (self, selection):
+ has_selection = (selection.count_selected_rows () != 0)
+ self.button_delete.set_sensitive (has_selection)
+
if __name__ == "__main__":
(lang_code, encoding) = locale.getdefaultlocale()
locale.setlocale(locale.LC_ALL, lang_code)
--- ../th/thumbnail-checker.glade 2006-08-23 16:13:33.000000000 -0400
+++ thumbnail-checker.glade 2006-10-20 16:21:52.000000000 -0300
@@ -106,6 +106,16 @@
GTK_BUTTONBOX_END
6
+
+
+ True
+ False
+ gtk-delete
+ True
+
+
+
+
True