Commit 8655534fb637a6f820a576b05a9506d93b5cf8f6
1 parent
2595aafa
Exists in
master
and in
6 other branches
FIX: Mask removal... Apparently working (several tests)
Showing
2 changed files
with
54 additions
and
63 deletions
Show diff stats
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): | ... | ... |