Commit 1e33187cd660f1783acd43a248dcfcc6d29c4e1b

Authored by Thiago Franco de Moraes
1 parent 9a2bc8bf
Exists in ff_mask

Not opening more than one ffill dlg when clickin 2x in ffill menu

invesalius/constants.py
@@ -482,6 +482,7 @@ ID_CLEAN_MASK = wx.NewId() @@ -482,6 +482,7 @@ ID_CLEAN_MASK = wx.NewId()
482 482
483 ID_REORIENT_IMG = wx.NewId() 483 ID_REORIENT_IMG = wx.NewId()
484 ID_FLOODFILL_MASK = wx.NewId() 484 ID_FLOODFILL_MASK = wx.NewId()
  485 +ID_REMOVE_MASK_PART = wx.NewId()
485 486
486 #--------------------------------------------------------- 487 #---------------------------------------------------------
487 STATE_DEFAULT = 1000 488 STATE_DEFAULT = 1000
invesalius/data/styles.py
@@ -1783,9 +1783,10 @@ class FloodFillMaskInteractorStyle(DefaultInteractorStyle): @@ -1783,9 +1783,10 @@ class FloodFillMaskInteractorStyle(DefaultInteractorStyle):
1783 self.dlg_ffill.Show() 1783 self.dlg_ffill.Show()
1784 1784
1785 def CleanUp(self): 1785 def CleanUp(self):
1786 - self.config.dlg_visible = False  
1787 - if self.dlg_ffill is not None: 1786 + if (self.dlg_ffill is not None) and (self.config.dlg_visible):
  1787 + self.config.dlg_visible = False
1788 self.dlg_ffill.Destroy() 1788 self.dlg_ffill.Destroy()
  1789 + self.dlg_ffill = None
1789 1790
1790 def OnFFClick(self, obj, evt): 1791 def OnFFClick(self, obj, evt):
1791 if (self.viewer.slice_.buffer_slices[self.orientation].mask is None): 1792 if (self.viewer.slice_.buffer_slices[self.orientation].mask is None):
invesalius/gui/dialogs.py
@@ -1851,7 +1851,7 @@ class FFillOptionsDialog(wx.Dialog): @@ -1851,7 +1851,7 @@ class FFillOptionsDialog(wx.Dialog):
1851 self._init_gui() 1851 self._init_gui()
1852 1852
1853 def _init_gui(self): 1853 def _init_gui(self):
1854 - sizer = wx.GridBagSizer(3, 1) 1854 + sizer = wx.GridBagSizer(3, 3)
1855 1855
1856 flag_labels = wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL 1856 flag_labels = wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL
1857 1857
@@ -1883,9 +1883,9 @@ class FFillOptionsDialog(wx.Dialog): @@ -1883,9 +1883,9 @@ class FFillOptionsDialog(wx.Dialog):
1883 self.conect3D.SetSelection(0) 1883 self.conect3D.SetSelection(0)
1884 self.config.con_3d = 6 1884 self.config.con_3d = 6
1885 1885
1886 - sizer.Add(self.target, (0, 0))  
1887 - sizer.Add(self.conect2D, (1, 0))  
1888 - sizer.Add(self.conect3D, (2, 0)) 1886 + sizer.Add(self.target, (0, 0), (1, 3), flag=wx.EXPAND, border=5)
  1887 + sizer.Add(self.conect2D, (1, 0), flag=wx.EXPAND, border=5)
  1888 + sizer.Add(self.conect3D, (2, 0), flag=wx.EXPAND, border=5)
1889 1889
1890 self.SetSizer(sizer) 1890 self.SetSizer(sizer)
1891 sizer.Fit(self) 1891 sizer.Fit(self)
@@ -1911,7 +1911,7 @@ class FFillOptionsDialog(wx.Dialog): @@ -1911,7 +1911,7 @@ class FFillOptionsDialog(wx.Dialog):
1911 print self.config.con_3d 1911 print self.config.con_3d
1912 1912
1913 def OnClose(self, evt): 1913 def OnClose(self, evt):
1914 - Publisher.sendMessage('Disable style', const.SLICE_STATE_MASK_FFILL)  
1915 - self.config.dlg_visible = False 1914 + if self.config.dlg_visible:
  1915 + Publisher.sendMessage('Disable style', const.SLICE_STATE_MASK_FFILL)
1916 evt.Skip() 1916 evt.Skip()
1917 self.Destroy() 1917 self.Destroy()
invesalius/gui/frame.py
@@ -442,6 +442,9 @@ class Frame(wx.Frame): @@ -442,6 +442,9 @@ class Frame(wx.Frame):
442 elif id == const.ID_FLOODFILL_MASK: 442 elif id == const.ID_FLOODFILL_MASK:
443 self.OnFillHolesManually() 443 self.OnFillHolesManually()
444 444
  445 + elif id == const.ID_REMOVE_MASK_PART:
  446 + self.OnRemoveMaskParts()
  447 +
445 def OnSize(self, evt): 448 def OnSize(self, evt):
446 """ 449 """
447 Refresh GUI when frame is resized. 450 Refresh GUI when frame is resized.
@@ -565,6 +568,9 @@ class Frame(wx.Frame): @@ -565,6 +568,9 @@ class Frame(wx.Frame):
565 def OnFillHolesManually(self): 568 def OnFillHolesManually(self):
566 Publisher.sendMessage('Enable style', const.SLICE_STATE_MASK_FFILL) 569 Publisher.sendMessage('Enable style', const.SLICE_STATE_MASK_FFILL)
567 570
  571 + def OnRemoveMaskParts(self):
  572 + Publisher.sendMessage('Enable style', const.SLICE_STATE_MASK_FFILL)
  573 +
568 # ------------------------------------------------------------------ 574 # ------------------------------------------------------------------
569 # ------------------------------------------------------------------ 575 # ------------------------------------------------------------------
570 # ------------------------------------------------------------------ 576 # ------------------------------------------------------------------
@@ -585,7 +591,8 @@ class MenuBar(wx.MenuBar): @@ -585,7 +591,8 @@ class MenuBar(wx.MenuBar):
585 const.ID_PROJECT_SAVE_AS, 591 const.ID_PROJECT_SAVE_AS,
586 const.ID_PROJECT_CLOSE, 592 const.ID_PROJECT_CLOSE,
587 const.ID_REORIENT_IMG, 593 const.ID_REORIENT_IMG,
588 - const.ID_FLOODFILL_MASK] 594 + const.ID_FLOODFILL_MASK,
  595 + const.ID_REMOVE_MASK_PART,]
589 self.__init_items() 596 self.__init_items()
590 self.__bind_events() 597 self.__bind_events()
591 598
@@ -699,6 +706,9 @@ class MenuBar(wx.MenuBar): @@ -699,6 +706,9 @@ class MenuBar(wx.MenuBar):
699 self.fill_hole_mask_menu = mask_menu.Append(const.ID_FLOODFILL_MASK, _(u"Fill mask holes manually")) 706 self.fill_hole_mask_menu = mask_menu.Append(const.ID_FLOODFILL_MASK, _(u"Fill mask holes manually"))
700 self.fill_hole_mask_menu.Enable(False) 707 self.fill_hole_mask_menu.Enable(False)
701 708
  709 + self.remove_mask_part_menu = mask_menu.Append(const.ID_REMOVE_MASK_PART, _(u"Remove parts"))
  710 + self.remove_mask_part_menu.Enable(False)
  711 +
702 tools_menu.AppendMenu(-1, _(u"Mask"), mask_menu) 712 tools_menu.AppendMenu(-1, _(u"Mask"), mask_menu)
703 713
704 # Image menu 714 # Image menu