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 | 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 | ... | ... |