Commit 8f166c91090e5e314237d9da11898b7851ca2457

Authored by Renan
Committed by Thiago Franco de Moraes
1 parent 4773dbbf

Avoided external trigger bugs (#78)

* Disable trigger checkbox when navigation is on

* Marker creation optimization

* Standardization
invesalius/data/viewer_volume.py
@@ -403,8 +403,9 @@ class Viewer(wx.Panel): @@ -403,8 +403,9 @@ class Viewer(wx.Panel):
403 403
404 self.ren.AddActor(self.staticballs[self.ball_id]) 404 self.ren.AddActor(self.staticballs[self.ball_id])
405 self.ball_id = self.ball_id + 1 405 self.ball_id = self.ball_id + 1
406 - self.UpdateRender()  
407 - 406 + #self.UpdateRender()
  407 + self.Refresh()
  408 +
408 def HideAllMarkers(self, pubsub_evt): 409 def HideAllMarkers(self, pubsub_evt):
409 ballid = pubsub_evt.data 410 ballid = pubsub_evt.data
410 for i in range(0, ballid): 411 for i in range(0, ballid):
invesalius/gui/task_navigator.py
@@ -107,6 +107,7 @@ class InnerFoldPanel(wx.Panel): @@ -107,6 +107,7 @@ class InnerFoldPanel(wx.Panel):
107 default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR) 107 default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR)
108 self.SetBackgroundColour(default_colour) 108 self.SetBackgroundColour(default_colour)
109 109
  110 + self.__bind_events()
110 # Fold panel and its style settings 111 # Fold panel and its style settings
111 # FIXME: If we dont insert a value in size or if we set wx.DefaultSize, 112 # FIXME: If we dont insert a value in size or if we set wx.DefaultSize,
112 # the fold_panel doesnt show. This means that, for some reason, Sizer 113 # the fold_panel doesnt show. This means that, for some reason, Sizer
@@ -154,6 +155,7 @@ class InnerFoldPanel(wx.Panel): @@ -154,6 +155,7 @@ class InnerFoldPanel(wx.Panel):
154 checktrigger.SetToolTip(tooltip) 155 checktrigger.SetToolTip(tooltip)
155 checktrigger.SetValue(False) 156 checktrigger.SetValue(False)
156 checktrigger.Bind(wx.EVT_CHECKBOX, partial(self.UpdateExternalTrigger, ctrl=checktrigger)) 157 checktrigger.Bind(wx.EVT_CHECKBOX, partial(self.UpdateExternalTrigger, ctrl=checktrigger))
  158 + self.checktrigger = checktrigger
157 159
158 if sys.platform != 'win32': 160 if sys.platform != 'win32':
159 checkcamera.SetWindowVariant(wx.WINDOW_VARIANT_SMALL) 161 checkcamera.SetWindowVariant(wx.WINDOW_VARIANT_SMALL)
@@ -173,6 +175,16 @@ class InnerFoldPanel(wx.Panel): @@ -173,6 +175,16 @@ class InnerFoldPanel(wx.Panel):
173 self.SetSizer(sizer) 175 self.SetSizer(sizer)
174 self.Update() 176 self.Update()
175 self.SetAutoLayout(1) 177 self.SetAutoLayout(1)
  178 +
  179 + def __bind_events(self):
  180 + Publisher.subscribe(self.OnTrigger, 'Navigation Status')
  181 +
  182 + def OnTrigger(self, pubsub_evt):
  183 + status = pubsub_evt.data
  184 + if status:
  185 + self.checktrigger.Enable(False)
  186 + else:
  187 + self.checktrigger.Enable(True)
176 188
177 def UpdateExternalTrigger(self, evt, ctrl): 189 def UpdateExternalTrigger(self, evt, ctrl):
178 Publisher.sendMessage('Update trigger state', ctrl.GetValue()) 190 Publisher.sendMessage('Update trigger state', ctrl.GetValue())