Exemplo n.º 1
0
    def enable(self):
        if self._enabled is True:
            return

        self.editor = scripts.editor.getEditor()
        self.engine = self.editor.getEngine()

        self._show_action = Action(u"History manager", checkable=True)
        self._undo_action = Action(u"Undo", "gui/icons/undo.png")
        self._redo_action = Action(u"Redo", "gui/icons/redo.png")
        self._next_action = Action(u"Next branch", "gui/icons/next_branch.png")
        self._prev_action = Action(u"Previous branch",
                                   "gui/icons/previous_branch.png")

        self._show_action.helptext = u"Toggle HistoryManager"
        self._undo_action.helptext = u"Undo action   (CTRL+Z)"
        self._redo_action.helptext = u"Redo action   (CTRL+SHIFT+Z)"
        self._next_action.helptext = u"Next branch   (CTRL+ALT+Z"
        self._prev_action.helptext = u"Previous branch   (CTRL+ALT+SHIFT+Z)"

        scripts.gui.action.activated.connect(self.toggle,
                                             sender=self._show_action)
        scripts.gui.action.activated.connect(self._undo,
                                             sender=self._undo_action)
        scripts.gui.action.activated.connect(self._redo,
                                             sender=self._redo_action)
        scripts.gui.action.activated.connect(self._next,
                                             sender=self._next_action)
        scripts.gui.action.activated.connect(self._prev,
                                             sender=self._prev_action)

        self._undo_group = ActionGroup(name=u"UndoGroup")
        self._undo_group.addAction(self._undo_action)
        self._undo_group.addAction(self._redo_action)
        self._undo_group.addAction(self._next_action)
        self._undo_group.addAction(self._prev_action)

        self.editor._tools_menu.addAction(self._show_action)
        self.editor._edit_menu.insertAction(self._undo_group, 0)
        self.editor._edit_menu.insertSeparator(position=1)

        events.postMapShown.connect(self.update)
        undomanager.changed.connect(self.update)

        self.buildGui()