Commit 27fc72c2fff36b9780fb7b4b75862db45366a68c

Authored by Thiago Franco de Moraes
1 parent c9ebe754

Removing incomplete measures when the measure style is disabled

invesalius/data/measures.py
... ... @@ -38,6 +38,8 @@ class MeasurementManager(object):
38 38 Publisher.subscribe(self._remove_measurements, "Remove measurements")
39 39 Publisher.subscribe(self._set_visibility, "Show measurement")
40 40 Publisher.subscribe(self._load_measurements, "Load measurement dict")
  41 + Publisher.subscribe(self._rm_incomplete_measurements,
  42 + "Remove incomplete measurements")
41 43  
42 44 def _load_measurements(self, pubsub_evt):
43 45 try:
... ... @@ -207,6 +209,27 @@ class MeasurementManager(object):
207 209 else:
208 210 Publisher.sendMessage('Update slice viewer')
209 211  
  212 + def _rm_incomplete_measurements(self, pubsub_evt):
  213 + if self.current is None:
  214 + return
  215 +
  216 + mr = self.current[1]
  217 + print "RM INC M", self.current, mr.IsComplete()
  218 + if not mr.IsComplete():
  219 + print "---To REMOVE"
  220 + actors = mr.GetActors()
  221 + slice_number = self.current[0].slice_number
  222 + Publisher.sendMessage(('Remove actors ' + str(self.current[0].location)),
  223 + (actors, slice_number))
  224 + if self.current[0].location == const.SURFACE:
  225 + Publisher.sendMessage('Render volume viewer')
  226 + else:
  227 + Publisher.sendMessage('Update slice viewer')
  228 +
  229 + if self.measures:
  230 + self.measures.pop()
  231 + self.current = None
  232 +
210 233  
211 234 class Measurement():
212 235 general_index = -1
... ...
invesalius/data/styles.py
... ... @@ -314,6 +314,9 @@ class LinearMeasureInteractorStyle(DefaultInteractorStyle):
314 314 slice_number, self.radius))
315 315 self.viewer.interactor.Render()
316 316  
  317 + def CleanUp(self):
  318 + Publisher.sendMessage("Remove incomplete measurements")
  319 +
317 320  
318 321 class AngularMeasureInteractorStyle(DefaultInteractorStyle):
319 322 """
... ...