From ea667cf03e7503019b55dfdff68fd0251362dd05 Mon Sep 17 00:00:00 2001 From: gryf Date: Wed, 14 May 2008 08:40:33 +0000 Subject: [PATCH] * Changed version to 1.0 RC2. * Bugfix in files removal. Controller should collect all file ids, otherwise it'll starts to remove wrong files, because in the meantime model removing items from liststore. --- README | 2 +- src/ctrls/c_main.py | 27 +++++++++++++++++---------- src/ctrls/c_search.py | 14 +++++--------- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/README b/README index 2c6fdf4..6e4de58 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -pyGTKtalog 1.0 RC1 +pyGTKtalog 1.0 RC2 ================== pyGTKtalog is Linux/FreeBSD program for indexing CD/DVD or directories on diff --git a/src/ctrls/c_main.py b/src/ctrls/c_main.py index 152f200..217cd15 100644 --- a/src/ctrls/c_main.py +++ b/src/ctrls/c_main.py @@ -22,7 +22,7 @@ # ------------------------------------------------------------------------- -__version__ = "1.0 RC1" +__version__ = "1.0 RC2" LICENCE = \ """ GPL v2 @@ -749,18 +749,21 @@ class MainController(Controller): return model = self.view['images'].get_model() + ids = [] for path in list_of_paths: - iter = model.get_iter(path) - id = model.get_value(iter, 0) - self.model.delete_image(id) + iterator = model.get_iter(path) + ids.append(model.get_value(iterator, 0)) + + for fid in ids: + self.model.delete_image(fid) # refresh files tree try: path, column = self.view['files'].get_cursor() model = self.view['files'].get_model() - iter = model.get_iter(path) - id = model.get_value(iter, 0) - self.__get_item_info(id) + iterator = model.get_iter(path) + fid = model.get_value(iterator, 0) + self.__get_item_info(fid) except: pass @@ -1137,7 +1140,7 @@ class MainController(Controller): # remove from model path = model.get_path(selected_iter) - id = self.model.discs_tree.get_value(selected_iter, 0) + fid = self.model.discs_tree.get_value(selected_iter, 0) model.remove(selected_iter) selection.select_path(path) @@ -1148,7 +1151,7 @@ class MainController(Controller): path = (row, ) # delete from db - self.model.delete(id) + self.model.delete(fid) # refresh files treeview try: @@ -1190,10 +1193,14 @@ class MainController(Controller): d[1].append(zpath) return False + ids = [] for p in list_of_paths: val = model.get_value(model.get_iter(p), 0) + ids.append(val) + + for fid in ids: # delete from db - self.model.delete(val) + self.model.delete(fid) try: # try to select something diff --git a/src/ctrls/c_search.py b/src/ctrls/c_search.py index 588de78..98c3f1c 100644 --- a/src/ctrls/c_search.py +++ b/src/ctrls/c_search.py @@ -307,17 +307,13 @@ class SearchController(Controller): d[1].append(zpath) return False + ids = [] for p in list_of_paths: - val = model.get_value(model.get_iter(p), 0) - if model.get_value(model.get_iter(p), 4) == self.model.DIR: - # remove from disctree model aswell - dpath = [] - dmodel.foreach(foreach_searchtree, (val, dpath)) - for dp in dpath: - dmodel.remove(dmodel.get_iter(dp)) - + ids.append(model.get_value(model.get_iter(p), 0)) + + for fid in ids: # delete from db - self.model.delete(val) + self.model.delete(fid) self.model.unsaved_project = True found = self.model.search(self.search_string)