Commit 494bb5b0f8509484ecc8ac70a5eb845abe71731e
1 parent
19abbab5
Exists in
master
and in
17 other branches
FIX: Fixed problem in resize box (Windows)
Showing
1 changed file
with
15 additions
and
4 deletions
Show diff stats
invesalius/data/viewer_slice.py
| ... | ... | @@ -31,6 +31,7 @@ from vtk.wx.wxVTKRenderWindowInteractor import wxVTKRenderWindowInteractor |
| 31 | 31 | import styles |
| 32 | 32 | |
| 33 | 33 | import wx |
| 34 | +import sys | |
| 34 | 35 | from wx.lib.pubsub import pub as Publisher |
| 35 | 36 | |
| 36 | 37 | try: |
| ... | ... | @@ -171,6 +172,7 @@ class CanvasRendererCTX: |
| 171 | 172 | self.gc = None |
| 172 | 173 | self.last_cam_modif_time = -1 |
| 173 | 174 | self.modified = True |
| 175 | + self._drawn = False | |
| 174 | 176 | self._init_canvas() |
| 175 | 177 | evt_renderer.AddObserver("StartEvent", self.OnPaint) |
| 176 | 178 | |
| ... | ... | @@ -248,21 +250,20 @@ class CanvasRendererCTX: |
| 248 | 250 | gc.SetBrush(brush) |
| 249 | 251 | gc.Scale(1, -1) |
| 250 | 252 | |
| 251 | - modified = False | |
| 252 | 253 | for d in self.draw_list: |
| 253 | 254 | d.draw_to_canvas(gc, self) |
| 254 | - modified = True | |
| 255 | 255 | |
| 256 | 256 | gc.Destroy() |
| 257 | 257 | |
| 258 | 258 | self.gc = None |
| 259 | 259 | |
| 260 | - if modified: | |
| 260 | + if self._drawn: | |
| 261 | 261 | self.bitmap = self.image.ConvertToBitmap() |
| 262 | 262 | self.bitmap.CopyToBuffer(self._array, wx.BitmapBufferFormat_RGBA) |
| 263 | 263 | |
| 264 | 264 | self._cv_image.Modified() |
| 265 | 265 | self.modified = False |
| 266 | + self._drawn = False | |
| 266 | 267 | |
| 267 | 268 | def calc_text_size(self, text, font=None): |
| 268 | 269 | """ |
| ... | ... | @@ -355,6 +356,8 @@ class CanvasRendererCTX: |
| 355 | 356 | path.AddLineToPoint(p2) |
| 356 | 357 | gc.StrokePath(path) |
| 357 | 358 | |
| 359 | + self._drawn = True | |
| 360 | + | |
| 358 | 361 | def draw_circle(self, center, radius, width=2, line_colour=(255, 0, 0, 128), fill_colour=(0, 0, 0, 0)): |
| 359 | 362 | """ |
| 360 | 363 | Draw a circle centered at center with the given radius. |
| ... | ... | @@ -383,6 +386,7 @@ class CanvasRendererCTX: |
| 383 | 386 | path.AddCircle(cx, cy, 2.5) |
| 384 | 387 | gc.StrokePath(path) |
| 385 | 388 | gc.FillPath(path) |
| 389 | + self._drawn = True | |
| 386 | 390 | |
| 387 | 391 | def draw_rectangle(self, pos, width, height, line_colour=(255, 0, 0, 128), fill_colour=(0, 0, 0, 0)): |
| 388 | 392 | """ |
| ... | ... | @@ -403,6 +407,7 @@ class CanvasRendererCTX: |
| 403 | 407 | gc.SetPen(wx.Pen(line_colour)) |
| 404 | 408 | gc.SetBrush(wx.Brush(fill_colour)) |
| 405 | 409 | gc.DrawRectangle(px, py, width, height) |
| 410 | + self._drawn = True | |
| 406 | 411 | |
| 407 | 412 | def draw_text(self, text, pos, font=None, txt_colour=(255, 255, 255)): |
| 408 | 413 | """ |
| ... | ... | @@ -426,6 +431,7 @@ class CanvasRendererCTX: |
| 426 | 431 | |
| 427 | 432 | px, py = pos |
| 428 | 433 | gc.DrawText(text, px, py) |
| 434 | + self._drawn = True | |
| 429 | 435 | |
| 430 | 436 | def draw_text_box(self, text, pos, font=None, txt_colour=(255, 255, 255), bg_colour=(128, 128, 128, 128), border=5): |
| 431 | 437 | """ |
| ... | ... | @@ -460,6 +466,7 @@ class CanvasRendererCTX: |
| 460 | 466 | # Drawing the text |
| 461 | 467 | tpx, tpy = px + border, py + border |
| 462 | 468 | self.draw_text(text, (tpx, tpy), font, txt_colour) |
| 469 | + self._drawn = True | |
| 463 | 470 | |
| 464 | 471 | def draw_arc(self, center, p0, p1, line_colour=(255, 0, 0, 128), width=2): |
| 465 | 472 | """ |
| ... | ... | @@ -502,6 +509,7 @@ class CanvasRendererCTX: |
| 502 | 509 | path = gc.CreatePath() |
| 503 | 510 | path.AddArc((c[0], c[1]), min(s0, s1), sa, ea) |
| 504 | 511 | gc.StrokePath(path) |
| 512 | + self._drawn = True | |
| 505 | 513 | |
| 506 | 514 | |
| 507 | 515 | class Viewer(wx.Panel): |
| ... | ... | @@ -1228,7 +1236,10 @@ class Viewer(wx.Panel): |
| 1228 | 1236 | self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZEWE)) |
| 1229 | 1237 | |
| 1230 | 1238 | def SetSizeNWSECursor(self, pubsub_evt): |
| 1231 | - self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZENWSE)) | |
| 1239 | + if sys.platform == 'win32': | |
| 1240 | + self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZING)) | |
| 1241 | + else: | |
| 1242 | + self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_SIZENWSE)) | |
| 1232 | 1243 | |
| 1233 | 1244 | def OnExportPicture(self, pubsub_evt): |
| 1234 | 1245 | Publisher.sendMessage('Begin busy cursor') | ... | ... |