(self, cmd, execute=True)
| 114 | self.addcmd(cmd, 0) |
| 115 | |
| 116 | def addcmd(self, cmd, execute=True): |
| 117 | if execute: |
| 118 | cmd.do(self.delegate) |
| 119 | if self.undoblock != 0: |
| 120 | self.undoblock.append(cmd) |
| 121 | return |
| 122 | if self.can_merge and self.pointer > 0: |
| 123 | lastcmd = self.undolist[self.pointer-1] |
| 124 | if lastcmd.merge(cmd): |
| 125 | return |
| 126 | self.undolist[self.pointer:] = [cmd] |
| 127 | if self.saved > self.pointer: |
| 128 | self.saved = -1 |
| 129 | self.pointer = self.pointer + 1 |
| 130 | if len(self.undolist) > self.max_undo: |
| 131 | ##print "truncating undo list" |
| 132 | del self.undolist[0] |
| 133 | self.pointer = self.pointer - 1 |
| 134 | if self.saved >= 0: |
| 135 | self.saved = self.saved - 1 |
| 136 | self.can_merge = True |
| 137 | self.check_saved() |
| 138 | |
| 139 | def undo_event(self, event): |
| 140 | if self.pointer == 0: |
no test coverage detected