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 | """ |