Commit 69661eb1d393d54a12489689bf89e6c617b9ab5d

Authored by Paulo Henrique Junqueira Amorim
1 parent a00db00a

ENH: Modes and SafeYield

invesalius/data/viewer_slice.py
... ... @@ -937,7 +937,7 @@ class Viewer(wx.Panel):
937 937  
938 938 self.EnableText()
939 939 # Insert cursor
940   - self.SetState(const.SLICE_STATE_EDITOR)
  940 + self.SetState(const.STATE_DEFAULT)
941 941  
942 942 self.__build_cross_lines()
943 943  
... ...
invesalius/gui/dicom_preview_panel.py
... ... @@ -165,7 +165,7 @@ class SingleImagePreview(wx.Panel):
165 165 self.ShowSlice(pos)
166 166 time.sleep(0.2)
167 167 if self.ischecked:
168   - wx.Yield()
  168 + wx.SafeYield()
169 169 wx.CallAfter(self.OnRun)
170 170  
171 171 def SetDicomGroup(self, group):
... ...
invesalius/gui/frame.py
... ... @@ -423,7 +423,7 @@ class StatusBar(wx.StatusBar):
423 423 if (int(value) >= 99):
424 424 self.SetStatusText("",0)
425 425 if sys.platform != 'linux2':
426   - wx.Yield()
  426 + wx.SafeYield()
427 427  
428 428  
429 429 def UpdateStatusLabel(self, pubsub_evt):
... ...
invesalius/gui/task_slice.py
... ... @@ -205,6 +205,9 @@ class InnerFoldPanel(wx.Panel):
205 205 fold_panel.ApplyCaptionStyle(item, style)
206 206 fold_panel.AddFoldPanelWindow(item, EditionTools(item), Spacing= 0,
207 207 leftSpacing=0, rightSpacing=0)
  208 + self.editor_panel_id = item.GetId()
  209 + self.last_panel_opened = None
  210 +
208 211 #fold_panel.Expand(fold_panel.GetFoldPanel(1))
209 212  
210 213 # Panel sizer to expand fold panel
... ... @@ -214,6 +217,22 @@ class InnerFoldPanel(wx.Panel):
214 217 self.SetSizer(sizer)
215 218 self.Update()
216 219 self.SetAutoLayout(1)
  220 + fold_panel.Bind(fpb.EVT_CAPTIONBAR, self.OnFoldPressCaption)
  221 +
  222 + def OnFoldPressCaption(self, evt):
  223 +
  224 + if (self.editor_panel_id == evt.GetTag().GetId()):
  225 + if not(evt.GetFoldStatus()):
  226 + ps.Publisher().sendMessage('Enable mode', const.SLICE_STATE_EDITOR)
  227 + else:
  228 + ps.Publisher().sendMessage('Disable mode', const.SLICE_STATE_EDITOR)
  229 + else:
  230 + if(self.last_panel_opened == self.editor_panel_id):
  231 + ps.Publisher().sendMessage('Disable mode', const.SLICE_STATE_EDITOR)
  232 +
  233 + self.last_panel_opened = evt.GetTag().GetId()
  234 +
  235 + evt.Skip()
217 236  
218 237 def GetMaskSelected(self):
219 238 x= self.mask_prop_panel.GetMaskSelected()
... ...
invesalius/mode.py
... ... @@ -108,6 +108,7 @@ class SliceMode(object):
108 108 max_level = max(self.stack.keys())
109 109  
110 110 # Remove item from stack
  111 +
111 112 self.stack.pop(level)
112 113  
113 114 # New max level
... ...