Commit dc3c7ce0c05f727e5f8341c33dc64df8cc91a8c5

Authored by Thiago Franco de Moraes
1 parent ea59efb9

Enabling or disabling mip controls according to the projection type

Showing 1 changed file with 26 additions and 5 deletions   Show diff stats
invesalius/data/viewer_slice.py
... ... @@ -73,13 +73,13 @@ class ContourMIPConfig(wx.Panel):
73 73 self.inverted = wx.CheckBox(self, -1, "inverted")
74 74  
75 75 txt_mip_size = wx.StaticText(self, -1, "MIP size", style=wx.ALIGN_CENTER_HORIZONTAL)
76   - txt_mip_border = wx.StaticText(self, -1, "Border")
  76 + self.txt_mip_border = wx.StaticText(self, -1, "Border")
77 77  
78 78 sizer = wx.BoxSizer(wx.HORIZONTAL)
79 79 sizer.Add(txt_mip_size, 0, wx.EXPAND | wx.ALL, 2)
80 80 sizer.Add(self.mip_size_spin, 0, wx.EXPAND)
81 81 sizer.AddSpacer((10, 0))
82   - sizer.Add(txt_mip_border, 0, wx.EXPAND | wx.ALL, 2)
  82 + sizer.Add(self.txt_mip_border, 0, wx.EXPAND | wx.ALL, 2)
83 83 sizer.Add(self.border_spin, 0, wx.EXPAND)
84 84 sizer.AddSpacer((10, 0))
85 85 sizer.Add(self.inverted, 0, wx.EXPAND)
... ... @@ -96,6 +96,8 @@ class ContourMIPConfig(wx.Panel):
96 96 self.border_spin.Bind(wx.EVT_SPINCTRL, self.OnSetMIPBorder)
97 97 self.inverted.Bind(wx.EVT_CHECKBOX, self.OnCheckInverted)
98 98  
  99 + Publisher.subscribe(self._set_projection_type, 'Set projection type')
  100 +
99 101 def OnSetMIPSize(self, evt):
100 102 val = self.mip_size_spin.GetValue()
101 103 Publisher.sendMessage('Set MIP size %s' % self.orientation, val)
... ... @@ -108,6 +110,24 @@ class ContourMIPConfig(wx.Panel):
108 110 val = self.inverted.GetValue()
109 111 Publisher.sendMessage('Set MIP Invert %s' % self.orientation, val)
110 112  
  113 + def _set_projection_type(self, pubsub_evt):
  114 + tprojection = pubsub_evt.data
  115 +
  116 + if tprojection in (const.PROJECTION_MIDA,
  117 + const.PROJECTION_CONTOUR_MIDA):
  118 + self.inverted.Enable()
  119 + else:
  120 + self.inverted.Disable()
  121 +
  122 + if tprojection in (const.PROJECTION_CONTOUR_MIP,
  123 + const.PROJECTION_CONTOUR_MIDA):
  124 + self.border_spin.Enable()
  125 + self.txt_mip_border.Enable()
  126 + else:
  127 + self.border_spin.Disable()
  128 + self.txt_mip_border.Disable()
  129 +
  130 +
111 131  
112 132 class Viewer(wx.Panel):
113 133  
... ... @@ -1199,9 +1219,10 @@ class Viewer(wx.Panel):
1199 1219 def OnShowMIPInterface(self, pubsub_evt):
1200 1220 value = pubsub_evt.data
1201 1221 if value:
1202   - self.mip_ctrls.Show()
1203   - self.GetSizer().Add(self.mip_ctrls, 0, wx.EXPAND|wx.GROW|wx.ALL, 2)
1204   - self.Layout()
  1222 + if not self.mip_ctrls.Shown:
  1223 + self.mip_ctrls.Show()
  1224 + self.GetSizer().Add(self.mip_ctrls, 0, wx.EXPAND|wx.GROW|wx.ALL, 2)
  1225 + self.Layout()
1205 1226 else:
1206 1227 self.mip_ctrls.Hide()
1207 1228 self.GetSizer().Remove(self.mip_ctrls)
... ...