From c3158ccf7c89b2f2501598a9219bb0d7405b2b11 Mon Sep 17 00:00:00 2001 From: David Vierra Date: Wed, 13 Mar 2013 23:25:09 -1000 Subject: [PATCH] Added: Undo Limit setting --- leveleditor.py | 7 +++++++ mcedit.py | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/leveleditor.py b/leveleditor.py index a68b291..ec31f24 100644 --- a/leveleditor.py +++ b/leveleditor.py @@ -114,6 +114,8 @@ Settings.vsync = Settings("vertical sync", 0) Settings.visibilityCheck = Settings("visibility check", False) Settings.viewMode = Settings("View Mode", "Camera") +Settings.undoLimit = Settings("Undo Limit", 20) + ControlSettings = config.Settings("Controls") ControlSettings.mouseSpeed = ControlSettings("mouse speed", 5.0) ControlSettings.cameraAccel = ControlSettings("camera acceleration", 125.0) @@ -1513,7 +1515,9 @@ class LevelEditor(GLViewport): self.viewportContainer.top = row.bottom self.viewportContainer.size = self.mainViewport.size self.add(self.viewportContainer) + Settings.viewMode.addObserver(self) + Settings.undoLimit.addObserver(self) self.reloadToolbar() @@ -3363,6 +3367,9 @@ class LevelEditor(GLViewport): def addOperation(self, op): if self.recordUndo: self.undoStack.append(op) + if len(self.undoStack) > self.undoLimit: + self.undoStack.pop(0) + self.performWithRetry(op) recordUndo = True diff --git a/mcedit.py b/mcedit.py index c5012a9..b833244 100755 --- a/mcedit.py +++ b/mcedit.py @@ -493,6 +493,9 @@ class OptionsPanel(Dialog): mouseSpeedRow = mceutils.FloatInputRow("Mouse Speed: ", ref=ControlSettings.mouseSpeed.propertyRef(), width=100, min=0.1, max=20.0) + undoLimitRow = mceutils.IntInputRow("Undo Limit: ", + ref=Settings.undoLimit.propertyRef(), width=100, min=0) + invertRow = mceutils.CheckBoxLabel("Invert Mouse", ref=ControlSettings.invertMousePitch.propertyRef(), tooltipText="Reverse the up and down motion of the mouse.") @@ -542,6 +545,7 @@ class OptionsPanel(Dialog): cameraBrakeSpeedRow, blockBufferRow, mouseSpeedRow, + undoLimitRow, ) options = (