From 076803898a6fd3f5475df23851f4d47f1b952ec8 Mon Sep 17 00:00:00 2001 From: Thiago Franco de Moraes Date: Thu, 27 Apr 2017 13:01:25 -0300 Subject: [PATCH] Added method to remove actual style --- invesalius/data/slice_.py | 11 +++++++++++ invesalius/gui/frame.py | 4 +++- invesalius/style.py | 6 ++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/invesalius/data/slice_.py b/invesalius/data/slice_.py index 47e9a01..48f6f46 100644 --- a/invesalius/data/slice_.py +++ b/invesalius/data/slice_.py @@ -184,6 +184,7 @@ class Slice(object): Publisher.subscribe(self.OnEnableStyle, 'Enable style') Publisher.subscribe(self.OnDisableStyle, 'Disable style') + Publisher.subscribe(self.OnDisableActualStyle, 'Disable actual style') Publisher.subscribe(self.OnRemoveMasks, 'Remove masks') Publisher.subscribe(self.OnDuplicateMasks, 'Duplicate masks') @@ -263,6 +264,16 @@ class Slice(object): Publisher.sendMessage('Set interactor default cursor') self.state = new_state + def OnDisableActualStyle(self, pubsub_evt): + actual_state = self.interaction_style.GetActualState() + if actual_state != const.STATE_DEFAULT: + new_state = self.interaction_style.RemoveState(actual_state) + Publisher.sendMessage('Set slice interaction style', new_state) + + # if (actual_state == const.SLICE_STATE_EDITOR): + # Publisher.sendMessage('Set interactor default cursor') + self.state = new_state + def OnCloseProject(self, pubsub_evt): self.CloseProject() diff --git a/invesalius/gui/frame.py b/invesalius/gui/frame.py index a467c68..f591f20 100644 --- a/invesalius/gui/frame.py +++ b/invesalius/gui/frame.py @@ -451,15 +451,17 @@ class Frame(wx.Frame): elif id == const.ID_THRESHOLD_SEGMENTATION: Publisher.sendMessage("Show panel", const.ID_THRESHOLD_SEGMENTATION) + Publisher.sendMessage('Disable actual style') Publisher.sendMessage('Enable style', const.STATE_DEFAULT) elif id == const.ID_MANUAL_SEGMENTATION: Publisher.sendMessage("Show panel", const.ID_MANUAL_SEGMENTATION) + Publisher.sendMessage('Disable actual style') Publisher.sendMessage('Enable style', const.SLICE_STATE_EDITOR) elif id == const.ID_WATERSHED_SEGMENTATION: Publisher.sendMessage("Show panel", const.ID_WATERSHED_SEGMENTATION) - # Publisher.sendMessage('Disable actual style') + Publisher.sendMessage('Disable actual style') Publisher.sendMessage('Enable style', const.SLICE_STATE_WATERSHED) elif id == const.ID_FLOODFILL_MASK: diff --git a/invesalius/style.py b/invesalius/style.py index f694655..1401943 100644 --- a/invesalius/style.py +++ b/invesalius/style.py @@ -110,6 +110,8 @@ class StyleStateManager(object): max_level = max(self.stack.keys()) return self.stack[max_level] - def RemoveActualState(self): + def GetActualState(self): + print self.stack.keys() max_level = max(self.stack.keys()) - return self.stack.pop(max_level) + state = self.stack[max_level] + return state -- libgit2 0.21.2