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) | ... | ... |