Commit 27fc72c2fff36b9780fb7b4b75862db45366a68c
1 parent
c9ebe754
Exists in
master
and in
54 other branches
Removing incomplete measures when the measure style is disabled
Showing
2 changed files
with
26 additions
and
0 deletions
Show diff stats
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 | """ |