Commit 1fbf17c3801c655d571baa7aa3823ee597309dc0
1 parent
15b0419c
Exists in
master
and in
54 other branches
fixed the problems with the threshold events
Showing
2 changed files
with
25 additions
and
5 deletions
Show diff stats
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: | ... | ... |