Commit 469c5273d6f7c808e42898a538541b7a25d6dd34
1 parent
a657e6bb
Exists in
threshold_history
ENH: the undo and redo menu are saying what will be undone and redone
Showing
2 changed files
with
47 additions
and
36 deletions
Show diff stats
invesalius/data/mask.py
... | ... | @@ -34,6 +34,7 @@ from wx.lib.pubsub import pub as Publisher |
34 | 34 | class ThresholdHistoryNode(object): |
35 | 35 | def __init__(self, mask): |
36 | 36 | self.threshold = mask.threshold_range |
37 | + self.descr = _(u'Set threshold') | |
37 | 38 | |
38 | 39 | if mask.was_edited: |
39 | 40 | self.array_file = tempfile.mktemp() |
... | ... | @@ -59,6 +60,7 @@ class EditionHistoryNode(object): |
59 | 60 | self.filename = tempfile.mktemp(suffix='.npy') |
60 | 61 | self.clean = clean |
61 | 62 | self.threshold = threshold |
63 | + self.descr = _(u'Edition at %s' % self.orientation) | |
62 | 64 | |
63 | 65 | self._save_array(array) |
64 | 66 | |
... | ... | @@ -96,8 +98,8 @@ class EditionHistory(object): |
96 | 98 | self.index = -1 |
97 | 99 | self.size = size * 2 |
98 | 100 | |
99 | - Publisher.sendMessage("Enable undo", False) | |
100 | - Publisher.sendMessage("Enable redo", False) | |
101 | + Publisher.sendMessage("Disable undo") | |
102 | + Publisher.sendMessage("Disable redo") | |
101 | 103 | |
102 | 104 | def new_node(self, index, orientation, array, p_array, clean, threshold): |
103 | 105 | # Saving the previous state, used to undo/redo correctly. |
... | ... | @@ -123,8 +125,8 @@ class EditionHistory(object): |
123 | 125 | self.index += 1 |
124 | 126 | |
125 | 127 | print "INDEX", self.index, len(self.history), self.history |
126 | - Publisher.sendMessage("Enable undo", True) | |
127 | - Publisher.sendMessage("Enable redo", False) | |
128 | + Publisher.sendMessage("Enable undo", self.history[self.index - 1].descr) | |
129 | + Publisher.sendMessage("Disable redo") | |
128 | 130 | |
129 | 131 | def undo(self, mask, actual_slices=None): |
130 | 132 | h = self.history |
... | ... | @@ -143,14 +145,14 @@ class EditionHistory(object): |
143 | 145 | self.index -= 1 |
144 | 146 | h[self.index].commit_history(mask) |
145 | 147 | self._reload_slice(self.index) |
146 | - Publisher.sendMessage("Enable redo", True) | |
148 | + Publisher.sendMessage("Enable redo", h[self.index + 1].descr) | |
147 | 149 | else: |
148 | 150 | self.index -= 1 |
149 | 151 | h[self.index].commit_history(mask) |
150 | - Publisher.sendMessage("Enable redo", True) | |
152 | + Publisher.sendMessage("Enable redo", h[self.index + 1].descr) | |
151 | 153 | |
152 | 154 | if self.index == 0: |
153 | - Publisher.sendMessage("Enable undo", False) | |
155 | + Publisher.sendMessage("Disable undo") | |
154 | 156 | #print "AT", self.index, len(self.history), self.history[self.index].filename |
155 | 157 | |
156 | 158 | def redo(self, mask, actual_slices=None): |
... | ... | @@ -171,14 +173,14 @@ class EditionHistory(object): |
171 | 173 | self.index += 1 |
172 | 174 | h[self.index].commit_history(mask) |
173 | 175 | self._reload_slice(self.index) |
174 | - Publisher.sendMessage("Enable undo", True) | |
176 | + Publisher.sendMessage("Enable undo", h[self.index - 1].descr) | |
175 | 177 | else: |
176 | 178 | self.index += 1 |
177 | 179 | h[self.index].commit_history(mask) |
178 | - Publisher.sendMessage("Enable undo", True) | |
180 | + Publisher.sendMessage("Enable undo", h[self.index - 1].descr) | |
179 | 181 | |
180 | 182 | if self.index == len(h) - 1: |
181 | - Publisher.sendMessage("Enable redo", False) | |
183 | + Publisher.sendMessage("Disable redo") | |
182 | 184 | #print "AT", self.index, len(h), h[self.index].filename |
183 | 185 | |
184 | 186 | def _reload_slice(self, index): |
... | ... | @@ -186,8 +188,8 @@ class EditionHistory(object): |
186 | 188 | self.history[index].index) |
187 | 189 | |
188 | 190 | def _config_undo_redo(self, visible): |
189 | - v_undo = False | |
190 | - v_redo = False | |
191 | + v_undo = "Disable Undo" | |
192 | + v_redo = "Disable Redo" | |
191 | 193 | |
192 | 194 | if self.history and visible: |
193 | 195 | v_undo = True |
... | ... | @@ -197,14 +199,14 @@ class EditionHistory(object): |
197 | 199 | elif self.index == len(self.history) - 1: |
198 | 200 | v_redo = False |
199 | 201 | |
200 | - Publisher.sendMessage("Enable undo", v_undo) | |
201 | - Publisher.sendMessage("Enable redo", v_redo) | |
202 | + Publisher.sendMessage(v_undo) | |
203 | + Publisher.sendMessage(v_redo) | |
202 | 204 | |
203 | 205 | def clear_history(self): |
204 | 206 | self.history = [] |
205 | 207 | self.index = -1 |
206 | - Publisher.sendMessage("Enable undo", False) | |
207 | - Publisher.sendMessage("Enable redo", False) | |
208 | + Publisher.sendMessage("Disable undo") | |
209 | + Publisher.sendMessage("Disable redo") | |
208 | 210 | |
209 | 211 | |
210 | 212 | class Mask(): | ... | ... |
invesalius/gui/frame.py
... | ... | @@ -496,7 +496,9 @@ class MenuBar(wx.MenuBar): |
496 | 496 | sub = Publisher.subscribe |
497 | 497 | sub(self.OnEnableState, "Enable state project") |
498 | 498 | sub(self.OnEnableUndo, "Enable undo") |
499 | + sub(self.OnDisableUndo, "Disable undo") | |
499 | 500 | sub(self.OnEnableRedo, "Enable redo") |
501 | + sub(self.OnDisableRedo, "Disable redo") | |
500 | 502 | |
501 | 503 | def __init_items(self): |
502 | 504 | """ |
... | ... | @@ -546,8 +548,8 @@ class MenuBar(wx.MenuBar): |
546 | 548 | file_edit = wx.Menu() |
547 | 549 | file_edit.AppendMenu(wx.NewId(), _('Flip'), flip_menu) |
548 | 550 | file_edit.AppendMenu(wx.NewId(), _('Swap axes'), swap_axes_menu) |
549 | - file_edit.Append(wx.ID_UNDO, "Undo\tCtrl+Z").Enable(False) | |
550 | - file_edit.Append(wx.ID_REDO, "Redo\tCtrl+Y").Enable(False) | |
551 | + file_edit.Append(wx.ID_UNDO, _(u"Undo\tCtrl+Z")).Enable(False) | |
552 | + file_edit.Append(wx.ID_REDO, _(u"Redo\tCtrl+Y")).Enable(False) | |
551 | 553 | #app(const.ID_EDIT_LIST, "Show Undo List...") |
552 | 554 | ################################################################# |
553 | 555 | |
... | ... | @@ -630,18 +632,22 @@ class MenuBar(wx.MenuBar): |
630 | 632 | self.Enable(item, True) |
631 | 633 | |
632 | 634 | def OnEnableUndo(self, pubsub_evt): |
633 | - value = pubsub_evt.data | |
634 | - if value: | |
635 | - self.FindItemById(wx.ID_UNDO).Enable(True) | |
636 | - else: | |
637 | - self.FindItemById(wx.ID_UNDO).Enable(False) | |
635 | + descr = pubsub_evt.data | |
636 | + self.FindItemById(wx.ID_UNDO).Enable(True) | |
637 | + self.FindItemById(wx.ID_UNDO).SetItemLabel(_(u"Undo: %s \tCtrl+Z" % descr)) | |
638 | + | |
639 | + def OnDisableUndo(self, pubsub_evt): | |
640 | + self.FindItemById(wx.ID_UNDO).Enable(False) | |
641 | + self.FindItemById(wx.ID_UNDO).SetItemLabel(_(u"Undo:\tCtrl+Z")) | |
638 | 642 | |
639 | 643 | def OnEnableRedo(self, pubsub_evt): |
640 | - value = pubsub_evt.data | |
641 | - if value: | |
642 | - self.FindItemById(wx.ID_REDO).Enable(True) | |
643 | - else: | |
644 | - self.FindItemById(wx.ID_REDO).Enable(False) | |
644 | + descr = pubsub_evt.data | |
645 | + self.FindItemById(wx.ID_REDO).Enable(True) | |
646 | + self.FindItemById(wx.ID_REDO).SetItemLabel(_(u"Redo: %s \tCtrl+Y" % descr)) | |
647 | + | |
648 | + def OnDisableRedo(self, pubsub_evt): | |
649 | + self.FindItemById(wx.ID_REDO).Enable(False) | |
650 | + self.FindItemById(wx.ID_REDO).SetItemLabel(_(u"Redo:\tCtrl+Y")) | |
645 | 651 | # ------------------------------------------------------------------ |
646 | 652 | # ------------------------------------------------------------------ |
647 | 653 | # ------------------------------------------------------------------ |
... | ... | @@ -1464,7 +1470,10 @@ class HistoryToolBar(wx.ToolBar): |
1464 | 1470 | #sub(self._SetLayoutWithTask, "Set layout button data only") |
1465 | 1471 | #sub(self._SetLayoutWithoutTask, "Set layout button full") |
1466 | 1472 | sub(self.OnEnableUndo, "Enable undo") |
1473 | + sub(self.OnDisableUndo, "Disable undo") | |
1474 | + | |
1467 | 1475 | sub(self.OnEnableRedo, "Enable redo") |
1476 | + sub(self.OnDisableRedo, "Disable redo") | |
1468 | 1477 | |
1469 | 1478 | def __bind_events_wx(self): |
1470 | 1479 | """ |
... | ... | @@ -1582,14 +1591,14 @@ class HistoryToolBar(wx.ToolBar): |
1582 | 1591 | |
1583 | 1592 | def OnEnableUndo(self, pubsub_evt): |
1584 | 1593 | value = pubsub_evt.data |
1585 | - if value: | |
1586 | - self.EnableTool(wx.ID_UNDO, True) | |
1587 | - else: | |
1588 | - self.EnableTool(wx.ID_UNDO, False) | |
1594 | + self.EnableTool(wx.ID_UNDO, True) | |
1595 | + | |
1596 | + def OnDisableUndo(self, pubsub_evt): | |
1597 | + self.EnableTool(wx.ID_UNDO, False) | |
1589 | 1598 | |
1590 | 1599 | def OnEnableRedo(self, pubsub_evt): |
1591 | 1600 | value = pubsub_evt.data |
1592 | - if value: | |
1593 | - self.EnableTool(wx.ID_REDO, True) | |
1594 | - else: | |
1595 | - self.EnableTool(wx.ID_REDO, False) | |
1601 | + self.EnableTool(wx.ID_REDO, True) | |
1602 | + | |
1603 | + def OnDisableRedo(self, pubsub_evt): | |
1604 | + self.EnableTool(wx.ID_REDO, False) | ... | ... |