Commit 1fbf17c3801c655d571baa7aa3823ee597309dc0

Authored by Thiago Franco de Moraes
1 parent 15b0419c

fixed the problems with the threshold events

invesalius/data/slice_.py
... ... @@ -306,6 +306,16 @@ class Slice(object):
306 306 self.current_mask.matrix[:] = 0
307 307 self.current_mask.clear_history()
308 308  
  309 + to_reload = False
  310 + if threshold_range != self.current_mask.threshold_range:
  311 + print "<<<<<<<<<<<<<<<< DIFERENT >>>>>>>>>>>>>>>>>>>>>>>"
  312 + to_reload = True
  313 + for orientation in self.buffer_slices:
  314 + self.buffer_slices[orientation].discard_vtk_mask()
  315 + self.SetMaskThreshold(index, threshold_range,
  316 + self.buffer_slices[orientation].index,
  317 + orientation)
  318 +
309 319 # TODO: merge this code with apply_slice_buffer_to_mask
310 320 b_mask = self.buffer_slices["AXIAL"].mask
311 321 n = self.buffer_slices["AXIAL"].index + 1
... ... @@ -322,6 +332,9 @@ class Slice(object):
322 332 self.current_mask.matrix[1:, 1:, n] = b_mask
323 333 self.current_mask.matrix[0, 0, n] = 1
324 334  
  335 + if to_reload:
  336 + Publisher.sendMessage('Reload actual slice')
  337 +
325 338 def __set_current_mask_threshold_actual_slice(self, evt_pubsub):
326 339 threshold_range = evt_pubsub.data
327 340 index = self.current_mask.index
... ...
invesalius/gui/widgets/gradient.py
... ... @@ -381,10 +381,13 @@ class GradientCtrl(wx.Panel):
381 381 def _FireSpinMinChange(self, evt):
382 382 evt.Skip()
383 383 value = int(self.spin_min.GetValue())
384   - if value != self.GetMinValue():
  384 + if value < self.min_range or value > self.max_range:
  385 + self.spin_min.SetValue(self.minimun)
  386 + return
  387 +
  388 + if value != self.GetMinValue() or self.changed:
385 389 self.SetMinValue(value)
386   - self._GenerateEvent(myEVT_THRESHOLD_CHANGING)
387   - print "VALLUUUEE", value
  390 + self._GenerateEvent(myEVT_THRESHOLD_CHANGED)
388 391  
389 392 def _FireSpinMinChanged(self, evt):
390 393 if self.changed:
... ... @@ -393,9 +396,13 @@ class GradientCtrl(wx.Panel):
393 396 def _FireSpinMaxChange(self, evt):
394 397 evt.Skip()
395 398 value = int(self.spin_max.GetValue())
396   - if value != self.GetMaxValue():
  399 + if value < self.min_range or value > self.max_range:
  400 + self.spin_max.SetValue(self.maximun)
  401 + return
  402 +
  403 + if value != self.GetMaxValue() or self.changed:
397 404 self.SetMaxValue(value)
398   - self._GenerateEvent(myEVT_THRESHOLD_CHANGING)
  405 + self._GenerateEvent(myEVT_THRESHOLD_CHANGED)
399 406  
400 407 def _FireSpinMaxChanged(self, evt):
401 408 if self.changed:
... ...