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,6 +38,8 @@ class MeasurementManager(object):
38 Publisher.subscribe(self._remove_measurements, "Remove measurements") 38 Publisher.subscribe(self._remove_measurements, "Remove measurements")
39 Publisher.subscribe(self._set_visibility, "Show measurement") 39 Publisher.subscribe(self._set_visibility, "Show measurement")
40 Publisher.subscribe(self._load_measurements, "Load measurement dict") 40 Publisher.subscribe(self._load_measurements, "Load measurement dict")
  41 + Publisher.subscribe(self._rm_incomplete_measurements,
  42 + "Remove incomplete measurements")
41 43
42 def _load_measurements(self, pubsub_evt): 44 def _load_measurements(self, pubsub_evt):
43 try: 45 try:
@@ -207,6 +209,27 @@ class MeasurementManager(object): @@ -207,6 +209,27 @@ class MeasurementManager(object):
207 else: 209 else:
208 Publisher.sendMessage('Update slice viewer') 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 class Measurement(): 234 class Measurement():
212 general_index = -1 235 general_index = -1
invesalius/data/styles.py
@@ -314,6 +314,9 @@ class LinearMeasureInteractorStyle(DefaultInteractorStyle): @@ -314,6 +314,9 @@ class LinearMeasureInteractorStyle(DefaultInteractorStyle):
314 slice_number, self.radius)) 314 slice_number, self.radius))
315 self.viewer.interactor.Render() 315 self.viewer.interactor.Render()
316 316
  317 + def CleanUp(self):
  318 + Publisher.sendMessage("Remove incomplete measurements")
  319 +
317 320
318 class AngularMeasureInteractorStyle(DefaultInteractorStyle): 321 class AngularMeasureInteractorStyle(DefaultInteractorStyle):
319 """ 322 """