From 6d9e7e2a0d9af53effd7dd900e5a6a4afe18f5f5 Mon Sep 17 00:00:00 2001 From: Paulo Henrique Junqueira Amorim Date: Mon, 15 Jan 2018 15:20:08 -0200 Subject: [PATCH] ENH: Added shortcut to create new mask --- invesalius/constants.py | 1 + invesalius/gui/frame.py | 16 ++++++++++++---- invesalius/gui/task_slice.py | 9 +++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/invesalius/constants.py b/invesalius/constants.py index 1fa7ba2..d2d5e69 100644 --- a/invesalius/constants.py +++ b/invesalius/constants.py @@ -545,6 +545,7 @@ ID_THRESHOLD_SEGMENTATION = wx.NewId() ID_FLOODFILL_SEGMENTATION = wx.NewId() ID_CROP_MASK = wx.NewId() ID_CREATE_SURFACE = wx.NewId() +ID_CREATE_MASK = wx.NewId() #--------------------------------------------------------- STATE_DEFAULT = 1000 diff --git a/invesalius/gui/frame.py b/invesalius/gui/frame.py index cb65c7b..c2b143b 100644 --- a/invesalius/gui/frame.py +++ b/invesalius/gui/frame.py @@ -496,6 +496,9 @@ class Frame(wx.Frame): elif id == const.ID_CREATE_SURFACE: Publisher.sendMessage('Open create surface dialog') + elif id == const.ID_CREATE_MASK: + Publisher.sendMessage('New mask from shortcut') + def OnInterpolatedSlices(self, status): Publisher.sendMessage('Set interpolated slices', status) @@ -693,7 +696,8 @@ class MenuBar(wx.MenuBar): const.ID_WATERSHED_SEGMENTATION, const.ID_THRESHOLD_SEGMENTATION, const.ID_FLOODFILL_SEGMENTATION, - const.ID_CREATE_SURFACE,] + const.ID_CREATE_SURFACE, + const.ID_CREATE_MASK] self.__init_items() self.__bind_events() @@ -784,7 +788,11 @@ class MenuBar(wx.MenuBar): # Mask Menu mask_menu = wx.Menu() - self.bool_op_menu = mask_menu.Append(const.ID_BOOLEAN_MASK, _(u"Boolean operations")) + + self.new_mask_menu = mask_menu.Append(const.ID_CREATE_MASK, _(u"New\tCtrl+Shift+M")) + self.new_mask_menu.Enable(False) + + self.bool_op_menu = mask_menu.Append(const.ID_BOOLEAN_MASK, _(u"Boolean operations\tCtrl+Shift+B")) self.bool_op_menu.Enable(False) self.clean_mask_menu = mask_menu.Append(const.ID_CLEAN_MASK, _(u"Clean Mask\tCtrl+Shift+A")) @@ -814,14 +822,14 @@ class MenuBar(wx.MenuBar): # Segmentation Menu segmentation_menu = wx.Menu() self.threshold_segmentation = segmentation_menu.Append(const.ID_THRESHOLD_SEGMENTATION, _(u"Threshold\tCtrl+Shift+T")) - self.manual_segmentation = segmentation_menu.Append(const.ID_MANUAL_SEGMENTATION, _(u"Manual segmentation\tCtrl+Shift+M")) + self.manual_segmentation = segmentation_menu.Append(const.ID_MANUAL_SEGMENTATION, _(u"Manual segmentation\tCtrl+Shift+E")) self.watershed_segmentation = segmentation_menu.Append(const.ID_WATERSHED_SEGMENTATION, _(u"Watershed\tCtrl+Shift+W")) self.ffill_segmentation = segmentation_menu.Append(const.ID_FLOODFILL_SEGMENTATION, _(u"Region growing\tCtrl+Shift+G")) self.ffill_segmentation.Enable(False) # Surface Menu surface_menu = wx.Menu() - self.create_surface = surface_menu.Append(const.ID_CREATE_SURFACE, (u"Create surface\tCtrl+Shift+C")) + self.create_surface = surface_menu.Append(const.ID_CREATE_SURFACE, (u"New\tCtrl+Shift+C")) self.create_surface.Enable(False) # Image menu diff --git a/invesalius/gui/task_slice.py b/invesalius/gui/task_slice.py index 04fe288..823ee91 100644 --- a/invesalius/gui/task_slice.py +++ b/invesalius/gui/task_slice.py @@ -93,6 +93,8 @@ class InnerTaskPanel(wx.Panel): link_new_mask.AutoBrowse(False) link_new_mask.UpdateLink() link_new_mask.Bind(hl.EVT_HYPERLINK_LEFT, self.OnLinkNewMask) + + Publisher.subscribe(self.OnLinkNewMask, 'New mask from shortcut') # Create horizontal sizers to represent lines in the panel line_new = wx.BoxSizer(wx.HORIZONTAL) @@ -186,6 +188,13 @@ class InnerTaskPanel(wx.Panel): dlg.InexistentMask() def OnLinkNewMask(self, evt=None): + + try: + evt.data + evt = None + except: + pass + dialog = dlg.NewMask() try: -- libgit2 0.21.2