Commit 827aff91ea7783327680686dc5d5a47f14df59c1
1 parent
897031ca
Exists in
master
and in
67 other branches
FIX: The edition was not applied when the user edits a slice and scrolls without…
… release the mouse button
Showing
1 changed file
with
12 additions
and
1 deletions
Show diff stats
invesalius/data/viewer_slice.py
@@ -100,6 +100,7 @@ class Viewer(wx.Panel): | @@ -100,6 +100,7 @@ class Viewer(wx.Panel): | ||
100 | self.__bind_events_wx() | 100 | self.__bind_events_wx() |
101 | 101 | ||
102 | self._warped = False | 102 | self._warped = False |
103 | + self._flush_buffer = False | ||
103 | 104 | ||
104 | def __init_gui(self): | 105 | def __init_gui(self): |
105 | self.interactor = wxVTKRenderWindowInteractor(self, -1, size=self.GetSize()) | 106 | self.interactor = wxVTKRenderWindowInteractor(self, -1, size=self.GetSize()) |
@@ -740,6 +741,7 @@ class Viewer(wx.Panel): | @@ -740,6 +741,7 @@ class Viewer(wx.Panel): | ||
740 | 741 | ||
741 | self.slice_.edit_mask_pixel(self._brush_cursor_op, cursor.GetPixels(), | 742 | self.slice_.edit_mask_pixel(self._brush_cursor_op, cursor.GetPixels(), |
742 | position, radius, self.orientation) | 743 | position, radius, self.orientation) |
744 | + self._flush_buffer = True | ||
743 | 745 | ||
744 | # TODO: To create a new function to reload images to viewer. | 746 | # TODO: To create a new function to reload images to viewer. |
745 | self.OnScrollBar() | 747 | self.OnScrollBar() |
@@ -783,7 +785,6 @@ class Viewer(wx.Panel): | @@ -783,7 +785,6 @@ class Viewer(wx.Panel): | ||
783 | 785 | ||
784 | self.slice_.edit_mask_pixel(self._brush_cursor_op, cursor.GetPixels(), | 786 | self.slice_.edit_mask_pixel(self._brush_cursor_op, cursor.GetPixels(), |
785 | position, radius, self.orientation) | 787 | position, radius, self.orientation) |
786 | - | ||
787 | # TODO: To create a new function to reload images to viewer. | 788 | # TODO: To create a new function to reload images to viewer. |
788 | self.OnScrollBar(update3D=False) | 789 | self.OnScrollBar(update3D=False) |
789 | 790 | ||
@@ -792,6 +793,7 @@ class Viewer(wx.Panel): | @@ -792,6 +793,7 @@ class Viewer(wx.Panel): | ||
792 | 793 | ||
793 | def OnBrushRelease(self, evt, obj): | 794 | def OnBrushRelease(self, evt, obj): |
794 | self.slice_.apply_slice_buffer_to_mask(self.orientation) | 795 | self.slice_.apply_slice_buffer_to_mask(self.orientation) |
796 | + self._flush_buffer = False | ||
795 | 797 | ||
796 | def OnCrossMouseClick(self, evt, obj): | 798 | def OnCrossMouseClick(self, evt, obj): |
797 | self.ChangeCrossPosition() | 799 | self.ChangeCrossPosition() |
@@ -1361,6 +1363,8 @@ class Viewer(wx.Panel): | @@ -1361,6 +1363,8 @@ class Viewer(wx.Panel): | ||
1361 | else: | 1363 | else: |
1362 | self.interactor.Render() | 1364 | self.interactor.Render() |
1363 | if evt: | 1365 | if evt: |
1366 | + if self._flush_buffer: | ||
1367 | + self.slice_.apply_slice_buffer_to_mask(self.orientation) | ||
1364 | evt.Skip() | 1368 | evt.Skip() |
1365 | 1369 | ||
1366 | def OnScrollBarRelease(self, evt): | 1370 | def OnScrollBarRelease(self, evt): |
@@ -1373,6 +1377,9 @@ class Viewer(wx.Panel): | @@ -1373,6 +1377,9 @@ class Viewer(wx.Panel): | ||
1373 | min = 0 | 1377 | min = 0 |
1374 | max = self.slice_.GetMaxSliceNumber(self.orientation) | 1378 | max = self.slice_.GetMaxSliceNumber(self.orientation) |
1375 | 1379 | ||
1380 | + if self._flush_buffer: | ||
1381 | + self.slice_.apply_slice_buffer_to_mask(self.orientation) | ||
1382 | + | ||
1376 | if (evt.GetKeyCode() == wx.WXK_UP and pos > min): | 1383 | if (evt.GetKeyCode() == wx.WXK_UP and pos > min): |
1377 | self.OnScrollForward() | 1384 | self.OnScrollForward() |
1378 | self.OnScrollBar() | 1385 | self.OnScrollBar() |
@@ -1392,6 +1399,8 @@ class Viewer(wx.Panel): | @@ -1392,6 +1399,8 @@ class Viewer(wx.Panel): | ||
1392 | min = 0 | 1399 | min = 0 |
1393 | 1400 | ||
1394 | if(pos > min): | 1401 | if(pos > min): |
1402 | + if self._flush_buffer: | ||
1403 | + self.slice_.apply_slice_buffer_to_mask(self.orientation) | ||
1395 | pos = pos - 1 | 1404 | pos = pos - 1 |
1396 | self.scroll.SetThumbPosition(pos) | 1405 | self.scroll.SetThumbPosition(pos) |
1397 | self.OnScrollBar() | 1406 | self.OnScrollBar() |
@@ -1401,6 +1410,8 @@ class Viewer(wx.Panel): | @@ -1401,6 +1410,8 @@ class Viewer(wx.Panel): | ||
1401 | max = self.slice_.GetMaxSliceNumber(self.orientation) | 1410 | max = self.slice_.GetMaxSliceNumber(self.orientation) |
1402 | 1411 | ||
1403 | if(pos < max): | 1412 | if(pos < max): |
1413 | + if self._flush_buffer: | ||
1414 | + self.slice_.apply_slice_buffer_to_mask(self.orientation) | ||
1404 | pos = pos + 1 | 1415 | pos = pos + 1 |
1405 | self.scroll.SetThumbPosition(pos) | 1416 | self.scroll.SetThumbPosition(pos) |
1406 | self.OnScrollBar() | 1417 | self.OnScrollBar() |