Commit 4303f718d7dff82011dc3b09c063dd4f56ef42eb

Authored by tatiana
1 parent ec1544ea

FIX: Removal using del

invesalius/data/slice_.py
... ... @@ -88,7 +88,9 @@ class Slice(object):
88 88 ps.Publisher().subscribe(self.OnDuplicateMasks, 'Duplicate masks')
89 89  
90 90 def OnRemoveMasks(self, pubsub_evt):
  91 + print "OnRemoveMasks"
91 92 selected_items = pubsub_evt.data
  93 + print "selected_items"
92 94 proj = Project()
93 95 for item in selected_items:
94 96 proj.RemoveMask(item)
... ...
invesalius/gui/data_notebook.py
... ... @@ -30,7 +30,7 @@ import wx.lib.pubsub as ps
30 30  
31 31 import gui.dialogs as dlg
32 32 import gui.widgets.listctrl as listmix
33   -
  33 +import utils as ul
34 34  
35 35  
36 36 BTN_NEW, BTN_REMOVE, BTN_DUPLICATE = [wx.NewId() for i in xrange(3)]
... ... @@ -201,12 +201,26 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
201 201 # Delete key
202 202 if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK):
203 203 selected = self.GetSelected()
  204 + self.__remove_items()
204 205 for item in selected:
205 206 self.RemoveMask(item)
206 207 elif (keycode == wx.WXK_DELETE):
207 208 selected = self.GetSelected()
  209 + self.__remove_items()
208 210 for item in selected:
209 211 self.RemoveMask(item)
  212 +
  213 +
  214 + def __remove_items(self):
  215 + print "__remove_items - mask"
  216 + selected_items = self.GetSelected()
  217 + print selected_items
  218 + if selected_items:
  219 + for item in selected_items:
  220 + self.RemoveMask(item)
  221 + ps.Publisher().sendMessage('Remove masks', selected_items)
  222 +
  223 +
210 224  
211 225 def OnCloseProject(self, pubsub_evt):
212 226 self.DeleteAllItems()
... ... @@ -320,6 +334,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
320 334 """
321 335 selected = []
322 336 for index in self.mask_list_index:
  337 + print 'index', index
323 338 if self.IsSelected(index):
324 339 selected.append(index)
325 340 # it is important to revert items order, so
... ... @@ -348,7 +363,12 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
348 363 self.SetItemImage(key, 1)
349 364 ps.Publisher().sendMessage('Show mask', (key, 1))
350 365  
351   - self.DeleteItem(index)
  366 + # TODO: Understand why this is occuring and enhace code, so
  367 + # this excpet is not necessary
  368 + try:
  369 + self.DeleteItem(index)
  370 + except wx._core.PyAssertionError:
  371 + ul.debug("tried to remove inexistent index")
352 372  
353 373 #-------------------------------------------------
354 374 class SurfacePage(wx.Panel):
... ... @@ -522,13 +542,24 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
522 542 # Delete key
523 543 if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK):
524 544 selected = self.GetSelected()
  545 + self.__remove_items()
525 546 for item in selected:
526 547 self.RemoveSurface(item)
  548 +
527 549 elif (keycode == wx.WXK_DELETE):
528 550 selected = self.GetSelected()
  551 + self.__remove_items()
529 552 for item in selected:
530 553 self.RemoveSurface(item)
531 554  
  555 + def __remove_items(self):
  556 + print "Remove items - surface"
  557 + selected_items = self.GetSelected()
  558 + print selected_items
  559 + if selected_items:
  560 + for item in selected_items:
  561 + self.RemoveSurface(item)
  562 + ps.Publisher().sendMessage('Remove surfaces', selected_items)
532 563  
533 564 def OnCloseProject(self, pubsub_evt):
534 565 self.DeleteAllItems()
... ... @@ -717,7 +748,11 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
717 748 if i > index:
718 749 new_dict[i-1] = old_dict[i]
719 750 self.surface_list_index = new_dict
720   - self.DeleteItem(index)
  751 +
  752 + try:
  753 + self.DeleteItem(index)
  754 + except wx._core.PyAssertionError:
  755 + ul.debug("tried to remove inexistent index")
721 756  
722 757 #-------------------------------------------------
723 758  
... ...