From 8655534fb637a6f820a576b05a9506d93b5cf8f6 Mon Sep 17 00:00:00 2001 From: tatiana Date: Thu, 11 Feb 2010 16:43:18 +0000 Subject: [PATCH] FIX: Mask removal... Apparently working (several tests) --- invesalius/data/slice_.py | 16 ++++++++-------- invesalius/gui/data_notebook.py | 101 ++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------- 2 files changed, 54 insertions(+), 63 deletions(-) diff --git a/invesalius/data/slice_.py b/invesalius/data/slice_.py index 08bd0f9..0b5fa8b 100644 --- a/invesalius/data/slice_.py +++ b/invesalius/data/slice_.py @@ -95,14 +95,14 @@ class Slice(object): print "1", proj.mask_dict for item in selected_items: proj.RemoveMask(item) - print "2", proj.mask_dict - #index = self.current_mask.index - print "current_mask", self.current_mask.index - if (proj.mask_dict) and (self.current_mask.index in selected_items): - print "first mask exist" - self.current_mask = proj.mask_dict[0] - self.SelectCurrentMask(0) - elif not proj.mask_dict: + #print "2", proj.mask_dict + ##index = self.current_mask.index + #print "current_mask", self.current_mask.index + #if (proj.mask_dict) and (self.current_mask.index in selected_items): + # print "first mask exist" + # self.current_mask = proj.mask_dict[0] + # self.SelectCurrentMask(0) + if not proj.mask_dict: print "no mask" self.blend_filter.SetOpacity(1, 0) self.blend_filter.Update() diff --git a/invesalius/gui/data_notebook.py b/invesalius/gui/data_notebook.py index c88aebd..56347f0 100644 --- a/invesalius/gui/data_notebook.py +++ b/invesalius/gui/data_notebook.py @@ -148,15 +148,16 @@ class ButtonControlPanel(wx.Panel): ps.Publisher().sendMessage('Create new mask', mask_name) def OnRemove(self): - print "button -- OnRemove" - selected_items = self.parent.listctrl.GetSelected() - if selected_items: - print selected_items - ps.Publisher().sendMessage('Remove masks', selected_items) - for item in selected_items: - self.parent.listctrl.RemoveMask(item) - else: - dlg.MaskSelectionRequiredForRemoval() + #print "button -- OnRemove" + #selected_items = self.parent.listctrl.GetSelected() + #print "selected_items:",selected_items + + #if selected_items: + # ps.Publisher().sendMessage('Remove masks', selected_items) + # for item in selected_items: + self.parent.listctrl.RemoveMasks() + #else: + # dlg.MaskSelectionRequiredForRemoval() def OnDuplicate(self): selected_items = self.parent.listctrl.GetSelected() @@ -203,70 +204,60 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): keycode = event.GetKeyCode() # Delete key if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK): - selected = self.GetSelected() - #self.__remove_items() - ps.Publisher().sendMessage('Remove masks', selected) - for item in selected: - self.RemoveMask(item) + self.RemoveMasks() elif (keycode == wx.WXK_DELETE): - selected = self.GetSelected() - #self.__remove_items() - ps.Publisher().sendMessage('Remove masks', selected) - for item in selected: - self.RemoveMask(item) + self.RemoveMasks() - - def __remove_items(self): - print "__remove_items - mask" + def RemoveMasks(self): + """ + Remove selected items. + """ + print "---------------------------------------------------" + print "Remove item" selected_items = self.GetSelected() - print selected_items + print "selected_items:",selected_items + if selected_items: - for item in selected_items: - self.RemoveMask(item) ps.Publisher().sendMessage('Remove masks', selected_items) + else: + dlg.MaskSelectionRequiredForRemoval() + - def RemoveMask(self, index): - """ - Remove item given its index. - """ - print "Remove item" # it is necessary to update internal dictionary # that maps bitmap given item index old_dict = self.mask_list_index print "current_index", self.current_index print "old_dict", old_dict new_dict = {} - for i in old_dict: - if i < index: - new_dict[i] = old_dict[i] - if i > index: - new_dict[i-1] = old_dict[i] + for index in selected_items: + self.DeleteItem(index) + for i in old_dict: + if i < index: + new_dict[i] = old_dict[i] + if i > index: + new_dict[i-1] = old_dict[i] + old_dict = new_dict self.mask_list_index = new_dict print "new_dict", new_dict - - if new_dict and not index: - print "gotta case" - for key in new_dict: - if key == 0: - print ":)", key - self.SetItemImage(key, 1) - ps.Publisher().sendMessage('Show mask', (key, 1)) - else: - print ":(" - self.SetItemImage(key, 0) - - self.DeleteItem(index) - + if new_dict: - if self.current_index > index: - self.current_index -= 1 - elif self.current_index == index: - print "XXXXXXXXXXXXX" - self.current_index = 0 + if index == self.current_index: + print "a) set to zero" self.SetItemImage(0, 1) ps.Publisher().sendMessage('Show mask', (0, 1)) + ps.Publisher().sendMessage('Change mask selected', 0) + for key in new_dict: + if key: + self.SetItemImage(key, 0) - + elif index < self.current_index: + print "b) minor, keep the same" + self.current_index -= 1 + self.SetItemImage(self.current_index, 1) + else: + pass + # enchanged + print "---------------------------------------------------" def OnCloseProject(self, pubsub_evt): -- libgit2 0.21.2