Commit 8655534fb637a6f820a576b05a9506d93b5cf8f6

Authored by tatiana
1 parent 2595aafa

FIX: Mask removal... Apparently working (several tests)

invesalius/data/slice_.py
... ... @@ -95,14 +95,14 @@ class Slice(object):
95 95 print "1", proj.mask_dict
96 96 for item in selected_items:
97 97 proj.RemoveMask(item)
98   - print "2", proj.mask_dict
99   - #index = self.current_mask.index
100   - print "current_mask", self.current_mask.index
101   - if (proj.mask_dict) and (self.current_mask.index in selected_items):
102   - print "first mask exist"
103   - self.current_mask = proj.mask_dict[0]
104   - self.SelectCurrentMask(0)
105   - elif not proj.mask_dict:
  98 + #print "2", proj.mask_dict
  99 + ##index = self.current_mask.index
  100 + #print "current_mask", self.current_mask.index
  101 + #if (proj.mask_dict) and (self.current_mask.index in selected_items):
  102 + # print "first mask exist"
  103 + # self.current_mask = proj.mask_dict[0]
  104 + # self.SelectCurrentMask(0)
  105 + if not proj.mask_dict:
106 106 print "no mask"
107 107 self.blend_filter.SetOpacity(1, 0)
108 108 self.blend_filter.Update()
... ...
invesalius/gui/data_notebook.py
... ... @@ -148,15 +148,16 @@ class ButtonControlPanel(wx.Panel):
148 148 ps.Publisher().sendMessage('Create new mask', mask_name)
149 149  
150 150 def OnRemove(self):
151   - print "button -- OnRemove"
152   - selected_items = self.parent.listctrl.GetSelected()
153   - if selected_items:
154   - print selected_items
155   - ps.Publisher().sendMessage('Remove masks', selected_items)
156   - for item in selected_items:
157   - self.parent.listctrl.RemoveMask(item)
158   - else:
159   - dlg.MaskSelectionRequiredForRemoval()
  151 + #print "button -- OnRemove"
  152 + #selected_items = self.parent.listctrl.GetSelected()
  153 + #print "selected_items:",selected_items
  154 +
  155 + #if selected_items:
  156 + # ps.Publisher().sendMessage('Remove masks', selected_items)
  157 + # for item in selected_items:
  158 + self.parent.listctrl.RemoveMasks()
  159 + #else:
  160 + # dlg.MaskSelectionRequiredForRemoval()
160 161  
161 162 def OnDuplicate(self):
162 163 selected_items = self.parent.listctrl.GetSelected()
... ... @@ -203,70 +204,60 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
203 204 keycode = event.GetKeyCode()
204 205 # Delete key
205 206 if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK):
206   - selected = self.GetSelected()
207   - #self.__remove_items()
208   - ps.Publisher().sendMessage('Remove masks', selected)
209   - for item in selected:
210   - self.RemoveMask(item)
  207 + self.RemoveMasks()
211 208 elif (keycode == wx.WXK_DELETE):
212   - selected = self.GetSelected()
213   - #self.__remove_items()
214   - ps.Publisher().sendMessage('Remove masks', selected)
215   - for item in selected:
216   - self.RemoveMask(item)
  209 + self.RemoveMasks()
217 210  
218   -
219   - def __remove_items(self):
220   - print "__remove_items - mask"
  211 + def RemoveMasks(self):
  212 + """
  213 + Remove selected items.
  214 + """
  215 + print "---------------------------------------------------"
  216 + print "Remove item"
221 217 selected_items = self.GetSelected()
222   - print selected_items
  218 + print "selected_items:",selected_items
  219 +
223 220 if selected_items:
224   - for item in selected_items:
225   - self.RemoveMask(item)
226 221 ps.Publisher().sendMessage('Remove masks', selected_items)
  222 + else:
  223 + dlg.MaskSelectionRequiredForRemoval()
  224 +
227 225  
228   - def RemoveMask(self, index):
229   - """
230   - Remove item given its index.
231   - """
232   - print "Remove item"
233 226 # it is necessary to update internal dictionary
234 227 # that maps bitmap given item index
235 228 old_dict = self.mask_list_index
236 229 print "current_index", self.current_index
237 230 print "old_dict", old_dict
238 231 new_dict = {}
239   - for i in old_dict:
240   - if i < index:
241   - new_dict[i] = old_dict[i]
242   - if i > index:
243   - new_dict[i-1] = old_dict[i]
  232 + for index in selected_items:
  233 + self.DeleteItem(index)
  234 + for i in old_dict:
  235 + if i < index:
  236 + new_dict[i] = old_dict[i]
  237 + if i > index:
  238 + new_dict[i-1] = old_dict[i]
  239 + old_dict = new_dict
244 240 self.mask_list_index = new_dict
245 241 print "new_dict", new_dict
246   -
247   - if new_dict and not index:
248   - print "gotta case"
249   - for key in new_dict:
250   - if key == 0:
251   - print ":)", key
252   - self.SetItemImage(key, 1)
253   - ps.Publisher().sendMessage('Show mask', (key, 1))
254   - else:
255   - print ":("
256   - self.SetItemImage(key, 0)
257   -
258   - self.DeleteItem(index)
259   -
  242 +
260 243 if new_dict:
261   - if self.current_index > index:
262   - self.current_index -= 1
263   - elif self.current_index == index:
264   - print "XXXXXXXXXXXXX"
265   - self.current_index = 0
  244 + if index == self.current_index:
  245 + print "a) set to zero"
266 246 self.SetItemImage(0, 1)
267 247 ps.Publisher().sendMessage('Show mask', (0, 1))
  248 + ps.Publisher().sendMessage('Change mask selected', 0)
  249 + for key in new_dict:
  250 + if key:
  251 + self.SetItemImage(key, 0)
268 252  
269   -
  253 + elif index < self.current_index:
  254 + print "b) minor, keep the same"
  255 + self.current_index -= 1
  256 + self.SetItemImage(self.current_index, 1)
  257 + else:
  258 + pass
  259 + # enchanged
  260 + print "---------------------------------------------------"
270 261  
271 262  
272 263 def OnCloseProject(self, pubsub_evt):
... ...