diff --git a/invesalius/data/mask.py b/invesalius/data/mask.py index 3fc3185..cd2ee2b 100644 --- a/invesalius/data/mask.py +++ b/invesalius/data/mask.py @@ -34,6 +34,7 @@ from wx.lib.pubsub import pub as Publisher class ThresholdHistoryNode(object): def __init__(self, mask): self.threshold = mask.threshold_range + self.descr = _(u'Set threshold') if mask.was_edited: self.array_file = tempfile.mktemp() @@ -59,6 +60,7 @@ class EditionHistoryNode(object): self.filename = tempfile.mktemp(suffix='.npy') self.clean = clean self.threshold = threshold + self.descr = _(u'Edition at %s' % self.orientation) self._save_array(array) @@ -96,8 +98,8 @@ class EditionHistory(object): self.index = -1 self.size = size * 2 - Publisher.sendMessage("Enable undo", False) - Publisher.sendMessage("Enable redo", False) + Publisher.sendMessage("Disable undo") + Publisher.sendMessage("Disable redo") def new_node(self, index, orientation, array, p_array, clean, threshold): # Saving the previous state, used to undo/redo correctly. @@ -123,8 +125,8 @@ class EditionHistory(object): self.index += 1 print "INDEX", self.index, len(self.history), self.history - Publisher.sendMessage("Enable undo", True) - Publisher.sendMessage("Enable redo", False) + Publisher.sendMessage("Enable undo", self.history[self.index - 1].descr) + Publisher.sendMessage("Disable redo") def undo(self, mask, actual_slices=None): h = self.history @@ -143,14 +145,14 @@ class EditionHistory(object): self.index -= 1 h[self.index].commit_history(mask) self._reload_slice(self.index) - Publisher.sendMessage("Enable redo", True) + Publisher.sendMessage("Enable redo", h[self.index + 1].descr) else: self.index -= 1 h[self.index].commit_history(mask) - Publisher.sendMessage("Enable redo", True) + Publisher.sendMessage("Enable redo", h[self.index + 1].descr) if self.index == 0: - Publisher.sendMessage("Enable undo", False) + Publisher.sendMessage("Disable undo") #print "AT", self.index, len(self.history), self.history[self.index].filename def redo(self, mask, actual_slices=None): @@ -171,14 +173,14 @@ class EditionHistory(object): self.index += 1 h[self.index].commit_history(mask) self._reload_slice(self.index) - Publisher.sendMessage("Enable undo", True) + Publisher.sendMessage("Enable undo", h[self.index - 1].descr) else: self.index += 1 h[self.index].commit_history(mask) - Publisher.sendMessage("Enable undo", True) + Publisher.sendMessage("Enable undo", h[self.index - 1].descr) if self.index == len(h) - 1: - Publisher.sendMessage("Enable redo", False) + Publisher.sendMessage("Disable redo") #print "AT", self.index, len(h), h[self.index].filename def _reload_slice(self, index): @@ -186,8 +188,8 @@ class EditionHistory(object): self.history[index].index) def _config_undo_redo(self, visible): - v_undo = False - v_redo = False + v_undo = "Disable Undo" + v_redo = "Disable Redo" if self.history and visible: v_undo = True @@ -197,14 +199,14 @@ class EditionHistory(object): elif self.index == len(self.history) - 1: v_redo = False - Publisher.sendMessage("Enable undo", v_undo) - Publisher.sendMessage("Enable redo", v_redo) + Publisher.sendMessage(v_undo) + Publisher.sendMessage(v_redo) def clear_history(self): self.history = [] self.index = -1 - Publisher.sendMessage("Enable undo", False) - Publisher.sendMessage("Enable redo", False) + Publisher.sendMessage("Disable undo") + Publisher.sendMessage("Disable redo") class Mask(): diff --git a/invesalius/gui/frame.py b/invesalius/gui/frame.py index feb7985..50bd9d5 100755 --- a/invesalius/gui/frame.py +++ b/invesalius/gui/frame.py @@ -496,7 +496,9 @@ class MenuBar(wx.MenuBar): sub = Publisher.subscribe sub(self.OnEnableState, "Enable state project") sub(self.OnEnableUndo, "Enable undo") + sub(self.OnDisableUndo, "Disable undo") sub(self.OnEnableRedo, "Enable redo") + sub(self.OnDisableRedo, "Disable redo") def __init_items(self): """ @@ -546,8 +548,8 @@ class MenuBar(wx.MenuBar): file_edit = wx.Menu() file_edit.AppendMenu(wx.NewId(), _('Flip'), flip_menu) file_edit.AppendMenu(wx.NewId(), _('Swap axes'), swap_axes_menu) - file_edit.Append(wx.ID_UNDO, "Undo\tCtrl+Z").Enable(False) - file_edit.Append(wx.ID_REDO, "Redo\tCtrl+Y").Enable(False) + file_edit.Append(wx.ID_UNDO, _(u"Undo\tCtrl+Z")).Enable(False) + file_edit.Append(wx.ID_REDO, _(u"Redo\tCtrl+Y")).Enable(False) #app(const.ID_EDIT_LIST, "Show Undo List...") ################################################################# @@ -630,18 +632,22 @@ class MenuBar(wx.MenuBar): self.Enable(item, True) def OnEnableUndo(self, pubsub_evt): - value = pubsub_evt.data - if value: - self.FindItemById(wx.ID_UNDO).Enable(True) - else: - self.FindItemById(wx.ID_UNDO).Enable(False) + descr = pubsub_evt.data + self.FindItemById(wx.ID_UNDO).Enable(True) + self.FindItemById(wx.ID_UNDO).SetItemLabel(_(u"Undo: %s \tCtrl+Z" % descr)) + + def OnDisableUndo(self, pubsub_evt): + self.FindItemById(wx.ID_UNDO).Enable(False) + self.FindItemById(wx.ID_UNDO).SetItemLabel(_(u"Undo:\tCtrl+Z")) def OnEnableRedo(self, pubsub_evt): - value = pubsub_evt.data - if value: - self.FindItemById(wx.ID_REDO).Enable(True) - else: - self.FindItemById(wx.ID_REDO).Enable(False) + descr = pubsub_evt.data + self.FindItemById(wx.ID_REDO).Enable(True) + self.FindItemById(wx.ID_REDO).SetItemLabel(_(u"Redo: %s \tCtrl+Y" % descr)) + + def OnDisableRedo(self, pubsub_evt): + self.FindItemById(wx.ID_REDO).Enable(False) + self.FindItemById(wx.ID_REDO).SetItemLabel(_(u"Redo:\tCtrl+Y")) # ------------------------------------------------------------------ # ------------------------------------------------------------------ # ------------------------------------------------------------------ @@ -1464,7 +1470,10 @@ class HistoryToolBar(wx.ToolBar): #sub(self._SetLayoutWithTask, "Set layout button data only") #sub(self._SetLayoutWithoutTask, "Set layout button full") sub(self.OnEnableUndo, "Enable undo") + sub(self.OnDisableUndo, "Disable undo") + sub(self.OnEnableRedo, "Enable redo") + sub(self.OnDisableRedo, "Disable redo") def __bind_events_wx(self): """ @@ -1582,14 +1591,14 @@ class HistoryToolBar(wx.ToolBar): def OnEnableUndo(self, pubsub_evt): value = pubsub_evt.data - if value: - self.EnableTool(wx.ID_UNDO, True) - else: - self.EnableTool(wx.ID_UNDO, False) + self.EnableTool(wx.ID_UNDO, True) + + def OnDisableUndo(self, pubsub_evt): + self.EnableTool(wx.ID_UNDO, False) def OnEnableRedo(self, pubsub_evt): value = pubsub_evt.data - if value: - self.EnableTool(wx.ID_REDO, True) - else: - self.EnableTool(wx.ID_REDO, False) + self.EnableTool(wx.ID_REDO, True) + + def OnDisableRedo(self, pubsub_evt): + self.EnableTool(wx.ID_REDO, False) -- libgit2 0.21.2