From 2ff84914ea0ee7232705069d9411e9e1b92cbfa5 Mon Sep 17 00:00:00 2001 From: Thiago Franco de Moraes Date: Wed, 24 Aug 2016 15:13:34 -0300 Subject: [PATCH] Appending the mask only after the proccess is over --- invesalius/data/slice_.py | 4 +++- invesalius/data/styles.py | 11 ++++++++++- invesalius/gui/dialogs.py | 12 +++++++----- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/invesalius/data/slice_.py b/invesalius/data/slice_.py index d403851..f3d377d 100644 --- a/invesalius/data/slice_.py +++ b/invesalius/data/slice_.py @@ -1039,6 +1039,7 @@ class Slice(object): opacity=None, threshold_range=None, edition_threshold_range=None, + add_to_project=True, show=True): """ Creates a new mask and add it to project. @@ -1073,7 +1074,8 @@ class Slice(object): if threshold_range: future_mask.threshold_range = threshold_range - self._add_mask_into_proj(future_mask, show=show) + if add_to_project: + self._add_mask_into_proj(future_mask, show=show) return future_mask diff --git a/invesalius/data/styles.py b/invesalius/data/styles.py index 636b5a8..a8e21e8 100644 --- a/invesalius/data/styles.py +++ b/invesalius/data/styles.py @@ -1934,6 +1934,7 @@ class SelectPartConfig(object): self.mask = None self.con_3d = 6 self.dlg_visible = False + self.mask_name = '' class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): @@ -1958,6 +1959,10 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): def SetUp(self): if not self.config.dlg_visible: + import data.mask as mask + default_name = const.MASK_NAME_PATTERN %(mask.Mask.general_index+2) + + self.config.mask_name = default_name self.config.dlg_visible = True self.dlg= dialogs.SelectPartsOptionsDialog(self.config) self.dlg.Show() @@ -1969,6 +1974,8 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): self.dlg = None if self.config.mask: + self.config.mask.name = self.config.mask_name + self.viewer.slice_._add_mask_into_proj(self.config.mask) self.viewer.slice_.SelectCurrentMask(self.config.mask.index) Publisher.sendMessage('Change mask selected', self.config.mask.index) self.config.mask = None @@ -1989,6 +1996,8 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): bstruct = np.array(generate_binary_structure(3, CON3D[self.config.con_3d]), dtype='uint8') self.viewer.slice_.do_threshold_to_all_slices() + print bstruct + if self.config.mask is None: self._create_new_mask() @@ -2004,7 +2013,7 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): Publisher.sendMessage('Reload actual slice') def _create_new_mask(self): - mask = self.viewer.slice_.create_new_mask(show=False) + mask = self.viewer.slice_.create_new_mask(show=False, add_to_project=False) mask.was_edited = True mask.matrix[0, :, :] = 1 mask.matrix[:, 0, :] = 1 diff --git a/invesalius/gui/dialogs.py b/invesalius/gui/dialogs.py index 4b445de..a9de566 100644 --- a/invesalius/gui/dialogs.py +++ b/invesalius/gui/dialogs.py @@ -1953,11 +1953,8 @@ class SelectPartsOptionsDialog(wx.Dialog): self._init_gui() def _init_gui(self): - import data.mask as mask - - default_name = const.MASK_NAME_PATTERN %(mask.Mask.general_index+2) self.target_name = wx.TextCtrl(self, -1) - self.target_name.SetValue(default_name) + self.target_name.SetValue(self.config.mask_name) # Connectivity 3D self.conect3D_6 = wx.RadioButton(self, -1, "6", style=wx.RB_GROUP) @@ -1989,16 +1986,21 @@ class SelectPartsOptionsDialog(wx.Dialog): sizer.Fit(self) self.Layout() + self.target_name.Bind(wx.EVT_CHAR, self.OnChar) self.Bind(wx.EVT_RADIOBUTTON, self.OnSetRadio) self.Bind(wx.EVT_CLOSE, self.OnClose) + def OnChar(self, evt): + evt.Skip() + self.config.mask_name = self.target_name.GetValue() + def OnSetRadio(self, evt): if self.conect3D_6.GetValue(): self.config.con_3d = 6 elif self.conect3D_18.GetValue(): self.config.con_3d = 18 elif self.conect3D_26.GetValue(): - self.config.con_3d = 2 + self.config.con_3d = 26 def OnClose(self, evt): if self.config.dlg_visible: -- libgit2 0.21.2