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: | ... | ... |