Commit 69661eb1d393d54a12489689bf89e6c617b9ab5d
1 parent
a00db00a
Exists in
master
and in
68 other branches
ENH: Modes and SafeYield
Showing
5 changed files
with
23 additions
and
3 deletions
Show diff stats
invesalius/data/viewer_slice.py
@@ -937,7 +937,7 @@ class Viewer(wx.Panel): | @@ -937,7 +937,7 @@ class Viewer(wx.Panel): | ||
937 | 937 | ||
938 | self.EnableText() | 938 | self.EnableText() |
939 | # Insert cursor | 939 | # Insert cursor |
940 | - self.SetState(const.SLICE_STATE_EDITOR) | 940 | + self.SetState(const.STATE_DEFAULT) |
941 | 941 | ||
942 | self.__build_cross_lines() | 942 | self.__build_cross_lines() |
943 | 943 |
invesalius/gui/dicom_preview_panel.py
@@ -165,7 +165,7 @@ class SingleImagePreview(wx.Panel): | @@ -165,7 +165,7 @@ class SingleImagePreview(wx.Panel): | ||
165 | self.ShowSlice(pos) | 165 | self.ShowSlice(pos) |
166 | time.sleep(0.2) | 166 | time.sleep(0.2) |
167 | if self.ischecked: | 167 | if self.ischecked: |
168 | - wx.Yield() | 168 | + wx.SafeYield() |
169 | wx.CallAfter(self.OnRun) | 169 | wx.CallAfter(self.OnRun) |
170 | 170 | ||
171 | def SetDicomGroup(self, group): | 171 | def SetDicomGroup(self, group): |
invesalius/gui/frame.py
@@ -423,7 +423,7 @@ class StatusBar(wx.StatusBar): | @@ -423,7 +423,7 @@ class StatusBar(wx.StatusBar): | ||
423 | if (int(value) >= 99): | 423 | if (int(value) >= 99): |
424 | self.SetStatusText("",0) | 424 | self.SetStatusText("",0) |
425 | if sys.platform != 'linux2': | 425 | if sys.platform != 'linux2': |
426 | - wx.Yield() | 426 | + wx.SafeYield() |
427 | 427 | ||
428 | 428 | ||
429 | def UpdateStatusLabel(self, pubsub_evt): | 429 | def UpdateStatusLabel(self, pubsub_evt): |
invesalius/gui/task_slice.py
@@ -205,6 +205,9 @@ class InnerFoldPanel(wx.Panel): | @@ -205,6 +205,9 @@ class InnerFoldPanel(wx.Panel): | ||
205 | fold_panel.ApplyCaptionStyle(item, style) | 205 | fold_panel.ApplyCaptionStyle(item, style) |
206 | fold_panel.AddFoldPanelWindow(item, EditionTools(item), Spacing= 0, | 206 | fold_panel.AddFoldPanelWindow(item, EditionTools(item), Spacing= 0, |
207 | leftSpacing=0, rightSpacing=0) | 207 | leftSpacing=0, rightSpacing=0) |
208 | + self.editor_panel_id = item.GetId() | ||
209 | + self.last_panel_opened = None | ||
210 | + | ||
208 | #fold_panel.Expand(fold_panel.GetFoldPanel(1)) | 211 | #fold_panel.Expand(fold_panel.GetFoldPanel(1)) |
209 | 212 | ||
210 | # Panel sizer to expand fold panel | 213 | # Panel sizer to expand fold panel |
@@ -214,6 +217,22 @@ class InnerFoldPanel(wx.Panel): | @@ -214,6 +217,22 @@ class InnerFoldPanel(wx.Panel): | ||
214 | self.SetSizer(sizer) | 217 | self.SetSizer(sizer) |
215 | self.Update() | 218 | self.Update() |
216 | self.SetAutoLayout(1) | 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 | def GetMaskSelected(self): | 237 | def GetMaskSelected(self): |
219 | x= self.mask_prop_panel.GetMaskSelected() | 238 | x= self.mask_prop_panel.GetMaskSelected() |
invesalius/mode.py
@@ -108,6 +108,7 @@ class SliceMode(object): | @@ -108,6 +108,7 @@ class SliceMode(object): | ||
108 | max_level = max(self.stack.keys()) | 108 | max_level = max(self.stack.keys()) |
109 | 109 | ||
110 | # Remove item from stack | 110 | # Remove item from stack |
111 | + | ||
111 | self.stack.pop(level) | 112 | self.stack.pop(level) |
112 | 113 | ||
113 | # New max level | 114 | # New max level |