Commit 73a81e6b6012d163beedc1c4304981b1a9c80c11
1 parent
5583d277
Exists in
master
and in
2 other branches
Some changes to make invesalius run as a mac app
Showing
14 changed files
with
5 additions
and
36 deletions
Show diff stats
invesalius/control.py
| @@ -630,4 +630,4 @@ class Controller(): | @@ -630,4 +630,4 @@ class Controller(): | ||
| 630 | 630 | ||
| 631 | def ShowBooleanOpDialog(self, pubsub_evt): | 631 | def ShowBooleanOpDialog(self, pubsub_evt): |
| 632 | dlg = dialogs.MaskBooleanDialog(prj.Project().mask_dict) | 632 | dlg = dialogs.MaskBooleanDialog(prj.Project().mask_dict) |
| 633 | - dlg.ShowModal() | 633 | + dlg.Show() |
invesalius/data/cursor_actors.py
| @@ -312,8 +312,6 @@ class CursorCircle(CursorBase): | @@ -312,8 +312,6 @@ class CursorCircle(CursorBase): | ||
| 312 | 312 | ||
| 313 | y,x = numpy.ogrid[yi:yf, xi:xf] | 313 | y,x = numpy.ogrid[yi:yf, xi:xf] |
| 314 | 314 | ||
| 315 | - print "AREA", x | ||
| 316 | - | ||
| 317 | index = (y*sy)**2 + (x*sx)**2 <= r**2 | 315 | index = (y*sy)**2 + (x*sx)**2 <= r**2 |
| 318 | self.points = index | 316 | self.points = index |
| 319 | 317 |
invesalius/data/slice_.py
| @@ -370,7 +370,6 @@ class Slice(object): | @@ -370,7 +370,6 @@ class Slice(object): | ||
| 370 | # "if" is necessary because wx events are calling this before any mask | 370 | # "if" is necessary because wx events are calling this before any mask |
| 371 | # has been created | 371 | # has been created |
| 372 | print "__show_mask" | 372 | print "__show_mask" |
| 373 | - print "self.current_mask", self.current_mask | ||
| 374 | if self.current_mask: | 373 | if self.current_mask: |
| 375 | index, value = pubsub_evt.data | 374 | index, value = pubsub_evt.data |
| 376 | self.ShowMask(index, value) | 375 | self.ShowMask(index, value) |
| @@ -805,7 +804,6 @@ class Slice(object): | @@ -805,7 +804,6 @@ class Slice(object): | ||
| 805 | """ | 804 | """ |
| 806 | self.current_mask.was_edited = False | 805 | self.current_mask.was_edited = False |
| 807 | thresh_min, thresh_max = threshold_range | 806 | thresh_min, thresh_max = threshold_range |
| 808 | - print "Threshold" | ||
| 809 | 807 | ||
| 810 | if self.current_mask.index == index: | 808 | if self.current_mask.index == index: |
| 811 | # TODO: find out a better way to do threshold | 809 | # TODO: find out a better way to do threshold |
| @@ -817,7 +815,6 @@ class Slice(object): | @@ -817,7 +815,6 @@ class Slice(object): | ||
| 817 | m[m == 1] = 255 | 815 | m[m == 1] = 255 |
| 818 | self.current_mask.matrix[n+1, 1:, 1:] = m | 816 | self.current_mask.matrix[n+1, 1:, 1:] = m |
| 819 | else: | 817 | else: |
| 820 | - print "Only one slice" | ||
| 821 | slice_ = self.buffer_slices[orientation].image | 818 | slice_ = self.buffer_slices[orientation].image |
| 822 | self.buffer_slices[orientation].mask = (255 * ((slice_ >= thresh_min) & (slice_ <= thresh_max))).astype('uint8') | 819 | self.buffer_slices[orientation].mask = (255 * ((slice_ >= thresh_min) & (slice_ <= thresh_max))).astype('uint8') |
| 823 | 820 | ||
| @@ -873,7 +870,6 @@ class Slice(object): | @@ -873,7 +870,6 @@ class Slice(object): | ||
| 873 | #--------------------------------------------------------------------------- | 870 | #--------------------------------------------------------------------------- |
| 874 | 871 | ||
| 875 | def CreateSurfaceFromIndex(self, pubsub_evt): | 872 | def CreateSurfaceFromIndex(self, pubsub_evt): |
| 876 | - print pubsub_evt.data | ||
| 877 | surface_parameters = pubsub_evt.data | 873 | surface_parameters = pubsub_evt.data |
| 878 | 874 | ||
| 879 | proj = Project() | 875 | proj = Project() |
| @@ -1112,7 +1108,6 @@ class Slice(object): | @@ -1112,7 +1108,6 @@ class Slice(object): | ||
| 1112 | else: | 1108 | else: |
| 1113 | thresh_min, thresh_max = self.current_mask.threshold_range | 1109 | thresh_min, thresh_max = self.current_mask.threshold_range |
| 1114 | 1110 | ||
| 1115 | - print ">>>> THreshold", thresh_min, thresh_max | ||
| 1116 | m = (((slice_matrix >= thresh_min) & (slice_matrix <= thresh_max)) * 255) | 1111 | m = (((slice_matrix >= thresh_min) & (slice_matrix <= thresh_max)) * 255) |
| 1117 | m[mask == 1] = 1 | 1112 | m[mask == 1] = 1 |
| 1118 | m[mask == 2] = 2 | 1113 | m[mask == 2] = 2 |
| @@ -1380,8 +1375,6 @@ class Slice(object): | @@ -1380,8 +1375,6 @@ class Slice(object): | ||
| 1380 | for buffer_ in self.buffer_slices.values(): | 1375 | for buffer_ in self.buffer_slices.values(): |
| 1381 | buffer_.discard_buffer() | 1376 | buffer_.discard_buffer() |
| 1382 | 1377 | ||
| 1383 | - print type(self.matrix) | ||
| 1384 | - | ||
| 1385 | def OnExportMask(self, pubsub_evt): | 1378 | def OnExportMask(self, pubsub_evt): |
| 1386 | pass | 1379 | pass |
| 1387 | ##imagedata = self.current_mask.imagedata | 1380 | ##imagedata = self.current_mask.imagedata |
invesalius/data/styles.py
| @@ -1381,9 +1381,6 @@ class WaterShedInteractorStyle(DefaultInteractorStyle): | @@ -1381,9 +1381,6 @@ class WaterShedInteractorStyle(DefaultInteractorStyle): | ||
| 1381 | ##tmp_image = ndimage.morphological_gradient((image - image.min()).astype('uint16'), self.config.mg_size) | 1381 | ##tmp_image = ndimage.morphological_gradient((image - image.min()).astype('uint16'), self.config.mg_size) |
| 1382 | #tmp_mask = watershed_ift(tmp_image, markers.astype('int8'), bstruct) | 1382 | #tmp_mask = watershed_ift(tmp_image, markers.astype('int8'), bstruct) |
| 1383 | 1383 | ||
| 1384 | - print "mask.max >>>", tmp_mask.max() | ||
| 1385 | - print "mask.min >>>", tmp_mask.min() | ||
| 1386 | - | ||
| 1387 | if self.viewer.overwrite_mask: | 1384 | if self.viewer.overwrite_mask: |
| 1388 | mask[:] = 0 | 1385 | mask[:] = 0 |
| 1389 | mask[tmp_mask == 1] = 253 | 1386 | mask[tmp_mask == 1] = 253 |
invesalius/data/viewer_slice.py
| @@ -1228,7 +1228,6 @@ class Viewer(wx.Panel): | @@ -1228,7 +1228,6 @@ class Viewer(wx.Panel): | ||
| 1228 | "Inserting actors" | 1228 | "Inserting actors" |
| 1229 | actors, n = pubsub_evt.data | 1229 | actors, n = pubsub_evt.data |
| 1230 | pos = self.scroll.GetThumbPosition() | 1230 | pos = self.scroll.GetThumbPosition() |
| 1231 | - print actors | ||
| 1232 | #try: | 1231 | #try: |
| 1233 | #renderer = self.renderers_by_slice_number[n] | 1232 | #renderer = self.renderers_by_slice_number[n] |
| 1234 | #for actor in actors: | 1233 | #for actor in actors: |
invesalius/gui/data_notebook.py
| @@ -433,7 +433,6 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | @@ -433,7 +433,6 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): | ||
| 433 | self.SetItemImage(key, 0) | 433 | self.SetItemImage(key, 0) |
| 434 | 434 | ||
| 435 | def __hide_current_mask(self, pubsub_evt): | 435 | def __hide_current_mask(self, pubsub_evt): |
| 436 | - print self.mask_list_index.keys() | ||
| 437 | self.SetItemImage(self.current_index, 0) | 436 | self.SetItemImage(self.current_index, 0) |
| 438 | 437 | ||
| 439 | def __init_columns(self): | 438 | def __init_columns(self): |
invesalius/gui/default_viewers.py
| @@ -457,7 +457,6 @@ class VolumeToolPanel(wx.Panel): | @@ -457,7 +457,6 @@ class VolumeToolPanel(wx.Panel): | ||
| 457 | self.id_cutplane = None | 457 | self.id_cutplane = None |
| 458 | submenu = wx.Menu() | 458 | submenu = wx.Menu() |
| 459 | for name in const.RAYCASTING_TOOLS: | 459 | for name in const.RAYCASTING_TOOLS: |
| 460 | - print name | ||
| 461 | id = wx.NewId() | 460 | id = wx.NewId() |
| 462 | if not(self.id_cutplane): | 461 | if not(self.id_cutplane): |
| 463 | self.id_cutplane = id | 462 | self.id_cutplane = id |
invesalius/gui/dialogs.py
| @@ -1489,7 +1489,10 @@ class WatershedOptionsDialog(wx.Dialog): | @@ -1489,7 +1489,10 @@ class WatershedOptionsDialog(wx.Dialog): | ||
| 1489 | 1489 | ||
| 1490 | class MaskBooleanDialog(wx.Dialog): | 1490 | class MaskBooleanDialog(wx.Dialog): |
| 1491 | def __init__(self, masks): | 1491 | def __init__(self, masks): |
| 1492 | - wx.Dialog.__init__(self, wx.GetApp().GetTopWindow(), -1, _(u"Boolean operations")) | 1492 | + pre = wx.PreDialog() |
| 1493 | + pre.Create(wx.GetApp().GetTopWindow(), -1, _(u"Boolean operations"), style=wx.DEFAULT_DIALOG_STYLE|wx.FRAME_FLOAT_ON_PARENT|wx.STAY_ON_TOP) | ||
| 1494 | + self.PostCreate(pre) | ||
| 1495 | + | ||
| 1493 | self._init_gui(masks) | 1496 | self._init_gui(masks) |
| 1494 | self.CenterOnScreen() | 1497 | self.CenterOnScreen() |
| 1495 | 1498 |
invesalius/gui/frame.py
| @@ -475,7 +475,6 @@ class Frame(wx.Frame): | @@ -475,7 +475,6 @@ class Frame(wx.Frame): | ||
| 475 | Publisher.sendMessage('Show import directory dialog') | 475 | Publisher.sendMessage('Show import directory dialog') |
| 476 | 476 | ||
| 477 | def ShowRetrieveDicomPanel(self): | 477 | def ShowRetrieveDicomPanel(self): |
| 478 | - print "teste.............." | ||
| 479 | Publisher.sendMessage('Show retrieve dicom panel') | 478 | Publisher.sendMessage('Show retrieve dicom panel') |
| 480 | 479 | ||
| 481 | def ShowOpenProject(self): | 480 | def ShowOpenProject(self): |
| @@ -506,15 +505,12 @@ class Frame(wx.Frame): | @@ -506,15 +505,12 @@ class Frame(wx.Frame): | ||
| 506 | Publisher.sendMessage('Reload actual slice') | 505 | Publisher.sendMessage('Reload actual slice') |
| 507 | 506 | ||
| 508 | def OnUndo(self): | 507 | def OnUndo(self): |
| 509 | - print "Undo" | ||
| 510 | Publisher.sendMessage('Undo edition') | 508 | Publisher.sendMessage('Undo edition') |
| 511 | 509 | ||
| 512 | def OnRedo(self): | 510 | def OnRedo(self): |
| 513 | - print "Redo" | ||
| 514 | Publisher.sendMessage('Redo edition') | 511 | Publisher.sendMessage('Redo edition') |
| 515 | 512 | ||
| 516 | def OnMaskBoolean(self): | 513 | def OnMaskBoolean(self): |
| 517 | - print "Mask boolean" | ||
| 518 | Publisher.sendMessage('Show boolean dialog') | 514 | Publisher.sendMessage('Show boolean dialog') |
| 519 | 515 | ||
| 520 | def OnCleanMask(self): | 516 | def OnCleanMask(self): |
| @@ -1376,7 +1372,6 @@ class SliceToolBar(AuiToolBar): | @@ -1376,7 +1372,6 @@ class SliceToolBar(AuiToolBar): | ||
| 1376 | for item in self.enable_items: | 1372 | for item in self.enable_items: |
| 1377 | state = self.GetToolToggled(item) | 1373 | state = self.GetToolToggled(item) |
| 1378 | if state and (item != id): | 1374 | if state and (item != id): |
| 1379 | - print ">>>>", item | ||
| 1380 | self.ToggleTool(item, False) | 1375 | self.ToggleTool(item, False) |
| 1381 | #self.ToggleTool(const.SLICE_STATE_SCROLL, self.GetToolToggled(const.SLICE_STATE_CROSS)) | 1376 | #self.ToggleTool(const.SLICE_STATE_SCROLL, self.GetToolToggled(const.SLICE_STATE_CROSS)) |
| 1382 | #self.Update() | 1377 | #self.Update() |
| @@ -1691,11 +1686,9 @@ class HistoryToolBar(AuiToolBar): | @@ -1691,11 +1686,9 @@ class HistoryToolBar(AuiToolBar): | ||
| 1691 | self.SetToolNormalBitmap(ID_LAYOUT,self.BMP_WITH_MENU) | 1686 | self.SetToolNormalBitmap(ID_LAYOUT,self.BMP_WITH_MENU) |
| 1692 | 1687 | ||
| 1693 | def OnUndo(self, event): | 1688 | def OnUndo(self, event): |
| 1694 | - print "Undo" | ||
| 1695 | Publisher.sendMessage('Undo edition') | 1689 | Publisher.sendMessage('Undo edition') |
| 1696 | 1690 | ||
| 1697 | def OnRedo(self, event): | 1691 | def OnRedo(self, event): |
| 1698 | - print "Redo" | ||
| 1699 | Publisher.sendMessage('Redo edition') | 1692 | Publisher.sendMessage('Redo edition') |
| 1700 | 1693 | ||
| 1701 | def OnToggle(self, event): | 1694 | def OnToggle(self, event): |
invesalius/gui/task_exporter.py
| @@ -257,7 +257,6 @@ class InnerTaskPanel(wx.Panel): | @@ -257,7 +257,6 @@ class InnerTaskPanel(wx.Panel): | ||
| 257 | menu.Bind(wx.EVT_MENU, self.OnMenuPicture) | 257 | menu.Bind(wx.EVT_MENU, self.OnMenuPicture) |
| 258 | 258 | ||
| 259 | def OnMenuPicture(self, evt): | 259 | def OnMenuPicture(self, evt): |
| 260 | - print "OnMenuPicture" | ||
| 261 | id = evt.GetId() | 260 | id = evt.GetId() |
| 262 | value = dlg.ExportPicture(self.id_to_name[id]) | 261 | value = dlg.ExportPicture(self.id_to_name[id]) |
| 263 | if value: | 262 | if value: |
| @@ -273,7 +272,6 @@ class InnerTaskPanel(wx.Panel): | @@ -273,7 +272,6 @@ class InnerTaskPanel(wx.Panel): | ||
| 273 | 272 | ||
| 274 | def OnLinkExportMask(self, evt=None): | 273 | def OnLinkExportMask(self, evt=None): |
| 275 | project = proj.Project() | 274 | project = proj.Project() |
| 276 | - print "OnLinkEportMask" | ||
| 277 | if sys.platform == 'win32': | 275 | if sys.platform == 'win32': |
| 278 | project_name = project.name | 276 | project_name = project.name |
| 279 | else: | 277 | else: |
| @@ -290,7 +288,6 @@ class InnerTaskPanel(wx.Panel): | @@ -290,7 +288,6 @@ class InnerTaskPanel(wx.Panel): | ||
| 290 | 288 | ||
| 291 | if dlg.ShowModal() == wx.ID_OK: | 289 | if dlg.ShowModal() == wx.ID_OK: |
| 292 | filename = dlg.GetPath() | 290 | filename = dlg.GetPath() |
| 293 | - print "filename", filename | ||
| 294 | extension = "vti" | 291 | extension = "vti" |
| 295 | if sys.platform != 'win32': | 292 | if sys.platform != 'win32': |
| 296 | if filename.split(".")[-1] != extension: | 293 | if filename.split(".")[-1] != extension: |
invesalius/gui/task_slice.py
| @@ -305,7 +305,6 @@ class InnerFoldPanel(wx.Panel): | @@ -305,7 +305,6 @@ class InnerFoldPanel(wx.Panel): | ||
| 305 | self.__bind_pubsub_evt() | 305 | self.__bind_pubsub_evt() |
| 306 | 306 | ||
| 307 | def __calc_best_size(self, panel): | 307 | def __calc_best_size(self, panel): |
| 308 | - print "Best size", self.GetSize() | ||
| 309 | parent = panel.GetParent() | 308 | parent = panel.GetParent() |
| 310 | q = panel.Reparent(self) | 309 | q = panel.Reparent(self) |
| 311 | 310 | ||
| @@ -335,8 +334,6 @@ class InnerFoldPanel(wx.Panel): | @@ -335,8 +334,6 @@ class InnerFoldPanel(wx.Panel): | ||
| 335 | #if self.last_size is None or self.last_size.GetHeight() < size.GetHeight(): | 334 | #if self.last_size is None or self.last_size.GetHeight() < size.GetHeight(): |
| 336 | #self.SetInitialSize(size) | 335 | #self.SetInitialSize(size) |
| 337 | 336 | ||
| 338 | - print "Best size", size, self.GetSize(), self.GetClientSize(), q | ||
| 339 | - | ||
| 340 | def __bind_evt(self): | 337 | def __bind_evt(self): |
| 341 | self.fold_panel.Bind(fpb.EVT_CAPTIONBAR, self.OnFoldPressCaption) | 338 | self.fold_panel.Bind(fpb.EVT_CAPTIONBAR, self.OnFoldPressCaption) |
| 342 | 339 | ||
| @@ -494,7 +491,6 @@ class MaskProperties(wx.Panel): | @@ -494,7 +491,6 @@ class MaskProperties(wx.Panel): | ||
| 494 | self.combo_thresh.Delete(i) | 491 | self.combo_thresh.Delete(i) |
| 495 | 492 | ||
| 496 | def OnRemoveMasks(self, pubsub_evt): | 493 | def OnRemoveMasks(self, pubsub_evt): |
| 497 | - print "OnRemoveMasks" | ||
| 498 | list_index = pubsub_evt.data | 494 | list_index = pubsub_evt.data |
| 499 | for i in list_index: | 495 | for i in list_index: |
| 500 | self.combo_mask_name.Delete(i) | 496 | self.combo_mask_name.Delete(i) |
invesalius/gui/task_surface.py
| @@ -512,7 +512,6 @@ class SurfaceProperties(wx.Panel): | @@ -512,7 +512,6 @@ class SurfaceProperties(wx.Panel): | ||
| 512 | name = pubsub_evt.data[1] | 512 | name = pubsub_evt.data[1] |
| 513 | colour = [value*255 for value in pubsub_evt.data[2]] | 513 | colour = [value*255 for value in pubsub_evt.data[2]] |
| 514 | i = 0 | 514 | i = 0 |
| 515 | - print name, index, self.surface_list | ||
| 516 | try: | 515 | try: |
| 517 | i = self.surface_list.index([name, index]) | 516 | i = self.surface_list.index([name, index]) |
| 518 | overwrite = True | 517 | overwrite = True |
invesalius/gui/widgets/gradient.py
| @@ -475,7 +475,6 @@ class GradientCtrl(wx.Panel): | @@ -475,7 +475,6 @@ class GradientCtrl(wx.Panel): | ||
| 475 | def ChangeMinValue(self, e): | 475 | def ChangeMinValue(self, e): |
| 476 | # Why do I need to change slide min value if it has been changed for | 476 | # Why do I need to change slide min value if it has been changed for |
| 477 | # the user? | 477 | # the user? |
| 478 | - print "ChangeMinValue", self.slided | ||
| 479 | if not self.slided: | 478 | if not self.slided: |
| 480 | self.gradient_slider.SetMinValue(int(self.spin_min.GetValue())) | 479 | self.gradient_slider.SetMinValue(int(self.spin_min.GetValue())) |
| 481 | self._GenerateEvent(myEVT_THRESHOLD_CHANGE) | 480 | self._GenerateEvent(myEVT_THRESHOLD_CHANGE) |
| @@ -496,10 +495,8 @@ class GradientCtrl(wx.Panel): | @@ -496,10 +495,8 @@ class GradientCtrl(wx.Panel): | ||
| 496 | def _GenerateEvent(self, event): | 495 | def _GenerateEvent(self, event): |
| 497 | if event == myEVT_THRESHOLD_CHANGING: | 496 | if event == myEVT_THRESHOLD_CHANGING: |
| 498 | self.changed = True | 497 | self.changed = True |
| 499 | - print 'changing' | ||
| 500 | elif event == myEVT_THRESHOLD_CHANGED : | 498 | elif event == myEVT_THRESHOLD_CHANGED : |
| 501 | self.changed = False | 499 | self.changed = False |
| 502 | - print 'changed' | ||
| 503 | 500 | ||
| 504 | evt = SliderEvent(event, self.GetId(), self.min_range, | 501 | evt = SliderEvent(event, self.GetId(), self.min_range, |
| 505 | self.max_range, self.minimun, self.maximun) | 502 | self.max_range, self.minimun, self.maximun) |
invesalius/gui/widgets/slice_menu.py
| @@ -258,7 +258,6 @@ class SliceMenu(wx.Menu): | @@ -258,7 +258,6 @@ class SliceMenu(wx.Menu): | ||
| 258 | Publisher.sendMessage('Update slice viewer') | 258 | Publisher.sendMessage('Update slice viewer') |
| 259 | 259 | ||
| 260 | elif key in PROJECTIONS_ID: | 260 | elif key in PROJECTIONS_ID: |
| 261 | - print 'Key', key | ||
| 262 | pid = PROJECTIONS_ID[key] | 261 | pid = PROJECTIONS_ID[key] |
| 263 | Publisher.sendMessage('Set projection type', pid) | 262 | Publisher.sendMessage('Set projection type', pid) |
| 264 | Publisher.sendMessage('Reload actual slice') | 263 | Publisher.sendMessage('Reload actual slice') |