Commit 8655534fb637a6f820a576b05a9506d93b5cf8f6
1 parent
2595aafa
Exists in
master
and in
68 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,14 +95,14 @@ class Slice(object): | ||
95 | print "1", proj.mask_dict | 95 | print "1", proj.mask_dict |
96 | for item in selected_items: | 96 | for item in selected_items: |
97 | proj.RemoveMask(item) | 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 | print "no mask" | 106 | print "no mask" |
107 | self.blend_filter.SetOpacity(1, 0) | 107 | self.blend_filter.SetOpacity(1, 0) |
108 | self.blend_filter.Update() | 108 | self.blend_filter.Update() |
invesalius/gui/data_notebook.py
@@ -148,15 +148,16 @@ class ButtonControlPanel(wx.Panel): | @@ -148,15 +148,16 @@ class ButtonControlPanel(wx.Panel): | ||
148 | ps.Publisher().sendMessage('Create new mask', mask_name) | 148 | ps.Publisher().sendMessage('Create new mask', mask_name) |
149 | 149 | ||
150 | def OnRemove(self): | 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 | def OnDuplicate(self): | 162 | def OnDuplicate(self): |
162 | selected_items = self.parent.listctrl.GetSelected() | 163 | selected_items = self.parent.listctrl.GetSelected() |
@@ -203,70 +204,60 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | @@ -203,70 +204,60 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | ||
203 | keycode = event.GetKeyCode() | 204 | keycode = event.GetKeyCode() |
204 | # Delete key | 205 | # Delete key |
205 | if (sys.platform == 'darwin') and (keycode == wx.WXK_BACK): | 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 | elif (keycode == wx.WXK_DELETE): | 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 | selected_items = self.GetSelected() | 217 | selected_items = self.GetSelected() |
222 | - print selected_items | 218 | + print "selected_items:",selected_items |
219 | + | ||
223 | if selected_items: | 220 | if selected_items: |
224 | - for item in selected_items: | ||
225 | - self.RemoveMask(item) | ||
226 | ps.Publisher().sendMessage('Remove masks', selected_items) | 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 | # it is necessary to update internal dictionary | 226 | # it is necessary to update internal dictionary |
234 | # that maps bitmap given item index | 227 | # that maps bitmap given item index |
235 | old_dict = self.mask_list_index | 228 | old_dict = self.mask_list_index |
236 | print "current_index", self.current_index | 229 | print "current_index", self.current_index |
237 | print "old_dict", old_dict | 230 | print "old_dict", old_dict |
238 | new_dict = {} | 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 | self.mask_list_index = new_dict | 240 | self.mask_list_index = new_dict |
245 | print "new_dict", new_dict | 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 | if new_dict: | 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 | self.SetItemImage(0, 1) | 246 | self.SetItemImage(0, 1) |
267 | ps.Publisher().sendMessage('Show mask', (0, 1)) | 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 | def OnCloseProject(self, pubsub_evt): | 263 | def OnCloseProject(self, pubsub_evt): |