Commit 4303f718d7dff82011dc3b09c063dd4f56ef42eb
1 parent
ec1544ea
Exists in
master
and in
68 other branches
FIX: Removal using del
Showing
2 changed files
with
40 additions
and
3 deletions
Show diff stats
invesalius/data/slice_.py
@@ -88,7 +88,9 @@ class Slice(object): | @@ -88,7 +88,9 @@ class Slice(object): | ||
88 | ps.Publisher().subscribe(self.OnDuplicateMasks, 'Duplicate masks') | 88 | ps.Publisher().subscribe(self.OnDuplicateMasks, 'Duplicate masks') |
89 | 89 | ||
90 | def OnRemoveMasks(self, pubsub_evt): | 90 | def OnRemoveMasks(self, pubsub_evt): |
91 | + print "OnRemoveMasks" | ||
91 | selected_items = pubsub_evt.data | 92 | selected_items = pubsub_evt.data |
93 | + print "selected_items" | ||
92 | proj = Project() | 94 | proj = Project() |
93 | for item in selected_items: | 95 | for item in selected_items: |
94 | proj.RemoveMask(item) | 96 | proj.RemoveMask(item) |
invesalius/gui/data_notebook.py
@@ -30,7 +30,7 @@ import wx.lib.pubsub as ps | @@ -30,7 +30,7 @@ import wx.lib.pubsub as ps | ||
30 | 30 | ||
31 | import gui.dialogs as dlg | 31 | import gui.dialogs as dlg |
32 | import gui.widgets.listctrl as listmix | 32 | import gui.widgets.listctrl as listmix |
33 | - | 33 | +import utils as ul |
34 | 34 | ||
35 | 35 | ||
36 | BTN_NEW, BTN_REMOVE, BTN_DUPLICATE = [wx.NewId() for i in xrange(3)] | 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,12 +201,26 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | ||
201 | # Delete key | 201 | # Delete key |
202 | if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK): | 202 | if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK): |
203 | selected = self.GetSelected() | 203 | selected = self.GetSelected() |
204 | + self.__remove_items() | ||
204 | for item in selected: | 205 | for item in selected: |
205 | self.RemoveMask(item) | 206 | self.RemoveMask(item) |
206 | elif (keycode == wx.WXK_DELETE): | 207 | elif (keycode == wx.WXK_DELETE): |
207 | selected = self.GetSelected() | 208 | selected = self.GetSelected() |
209 | + self.__remove_items() | ||
208 | for item in selected: | 210 | for item in selected: |
209 | self.RemoveMask(item) | 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 | def OnCloseProject(self, pubsub_evt): | 225 | def OnCloseProject(self, pubsub_evt): |
212 | self.DeleteAllItems() | 226 | self.DeleteAllItems() |
@@ -320,6 +334,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | @@ -320,6 +334,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | ||
320 | """ | 334 | """ |
321 | selected = [] | 335 | selected = [] |
322 | for index in self.mask_list_index: | 336 | for index in self.mask_list_index: |
337 | + print 'index', index | ||
323 | if self.IsSelected(index): | 338 | if self.IsSelected(index): |
324 | selected.append(index) | 339 | selected.append(index) |
325 | # it is important to revert items order, so | 340 | # it is important to revert items order, so |
@@ -348,7 +363,12 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | @@ -348,7 +363,12 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | ||
348 | self.SetItemImage(key, 1) | 363 | self.SetItemImage(key, 1) |
349 | ps.Publisher().sendMessage('Show mask', (key, 1)) | 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 | class SurfacePage(wx.Panel): | 374 | class SurfacePage(wx.Panel): |
@@ -522,13 +542,24 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | @@ -522,13 +542,24 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | ||
522 | # Delete key | 542 | # Delete key |
523 | if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK): | 543 | if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK): |
524 | selected = self.GetSelected() | 544 | selected = self.GetSelected() |
545 | + self.__remove_items() | ||
525 | for item in selected: | 546 | for item in selected: |
526 | self.RemoveSurface(item) | 547 | self.RemoveSurface(item) |
548 | + | ||
527 | elif (keycode == wx.WXK_DELETE): | 549 | elif (keycode == wx.WXK_DELETE): |
528 | selected = self.GetSelected() | 550 | selected = self.GetSelected() |
551 | + self.__remove_items() | ||
529 | for item in selected: | 552 | for item in selected: |
530 | self.RemoveSurface(item) | 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 | def OnCloseProject(self, pubsub_evt): | 564 | def OnCloseProject(self, pubsub_evt): |
534 | self.DeleteAllItems() | 565 | self.DeleteAllItems() |
@@ -717,7 +748,11 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | @@ -717,7 +748,11 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | ||
717 | if i > index: | 748 | if i > index: |
718 | new_dict[i-1] = old_dict[i] | 749 | new_dict[i-1] = old_dict[i] |
719 | self.surface_list_index = new_dict | 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 |