From 4303f718d7dff82011dc3b09c063dd4f56ef42eb Mon Sep 17 00:00:00 2001 From: tatiana Date: Wed, 10 Feb 2010 17:52:30 +0000 Subject: [PATCH] FIX: Removal using del --- invesalius/data/slice_.py | 2 ++ invesalius/gui/data_notebook.py | 41 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/invesalius/data/slice_.py b/invesalius/data/slice_.py index 0081044..e2f8af4 100644 --- a/invesalius/data/slice_.py +++ b/invesalius/data/slice_.py @@ -88,7 +88,9 @@ class Slice(object): ps.Publisher().subscribe(self.OnDuplicateMasks, 'Duplicate masks') def OnRemoveMasks(self, pubsub_evt): + print "OnRemoveMasks" selected_items = pubsub_evt.data + print "selected_items" proj = Project() for item in selected_items: proj.RemoveMask(item) diff --git a/invesalius/gui/data_notebook.py b/invesalius/gui/data_notebook.py index 9006cdc..ff076f5 100644 --- a/invesalius/gui/data_notebook.py +++ b/invesalius/gui/data_notebook.py @@ -30,7 +30,7 @@ import wx.lib.pubsub as ps import gui.dialogs as dlg import gui.widgets.listctrl as listmix - +import utils as ul BTN_NEW, BTN_REMOVE, BTN_DUPLICATE = [wx.NewId() for i in xrange(3)] @@ -201,12 +201,26 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): # Delete key if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK): selected = self.GetSelected() + self.__remove_items() for item in selected: self.RemoveMask(item) elif (keycode == wx.WXK_DELETE): selected = self.GetSelected() + self.__remove_items() for item in selected: self.RemoveMask(item) + + + def __remove_items(self): + print "__remove_items - mask" + selected_items = self.GetSelected() + print selected_items + if selected_items: + for item in selected_items: + self.RemoveMask(item) + ps.Publisher().sendMessage('Remove masks', selected_items) + + def OnCloseProject(self, pubsub_evt): self.DeleteAllItems() @@ -320,6 +334,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): """ selected = [] for index in self.mask_list_index: + print 'index', index if self.IsSelected(index): selected.append(index) # it is important to revert items order, so @@ -348,7 +363,12 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): self.SetItemImage(key, 1) ps.Publisher().sendMessage('Show mask', (key, 1)) - self.DeleteItem(index) + # TODO: Understand why this is occuring and enhace code, so + # this excpet is not necessary + try: + self.DeleteItem(index) + except wx._core.PyAssertionError: + ul.debug("tried to remove inexistent index") #------------------------------------------------- class SurfacePage(wx.Panel): @@ -522,13 +542,24 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): # Delete key if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK): selected = self.GetSelected() + self.__remove_items() for item in selected: self.RemoveSurface(item) + elif (keycode == wx.WXK_DELETE): selected = self.GetSelected() + self.__remove_items() for item in selected: self.RemoveSurface(item) + def __remove_items(self): + print "Remove items - surface" + selected_items = self.GetSelected() + print selected_items + if selected_items: + for item in selected_items: + self.RemoveSurface(item) + ps.Publisher().sendMessage('Remove surfaces', selected_items) def OnCloseProject(self, pubsub_evt): self.DeleteAllItems() @@ -717,7 +748,11 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): if i > index: new_dict[i-1] = old_dict[i] self.surface_list_index = new_dict - self.DeleteItem(index) + + try: + self.DeleteItem(index) + except wx._core.PyAssertionError: + ul.debug("tried to remove inexistent index") #------------------------------------------------- -- libgit2 0.21.2