conditionally enable undo

This commit is contained in:
Damien Elmes 2008-11-30 05:47:15 +09:00
parent 373e161a6c
commit 320d1fa758

View file

@ -113,7 +113,7 @@ class Deck(object):
def _initVars(self): def _initVars(self):
self.lastTags = u"" self.lastTags = u""
self.lastLoaded = time.time() self.lastLoaded = time.time()
self.initUndo() self.undoEnabled = False
def modifiedSinceSave(self): def modifiedSinceSave(self):
return self.modified > self.lastLoaded return self.modified > self.lastLoaded
@ -1560,6 +1560,7 @@ select id from fields where factId not in (select id from facts)""")
def initUndo(self): def initUndo(self):
self.undoStack = [] self.undoStack = []
self.redoStack = [] self.redoStack = []
self.undoEnabled = True
self.s.statement( self.s.statement(
"create temp table undoLog (seq integer primary key, sql text)") "create temp table undoLog (seq integer primary key, sql text)")
tables = self.s.column0( tables = self.s.column0(
@ -1618,6 +1619,8 @@ insert into undoLog values (null, 'insert into %(t)s (rowid""" % {'t': table}
self.undoStack.append(None) self.undoStack.append(None)
def setUndoStart(self, name, merge=False): def setUndoStart(self, name, merge=False):
if not self.undoEnabled:
return
self.s.flush() self.s.flush()
if merge and self.undoStack: if merge and self.undoStack:
if self.undoStack[-1] and self.undoStack[-1][0] == name: if self.undoStack[-1] and self.undoStack[-1][0] == name:
@ -1627,6 +1630,8 @@ insert into undoLog values (null, 'insert into %(t)s (rowid""" % {'t': table}
self.undoStack.append([name, start, None]) self.undoStack.append([name, start, None])
def setUndoEnd(self, name): def setUndoEnd(self, name):
if not self.undoEnabled:
return
self.s.flush() self.s.flush()
end = self._latestUndoRow() end = self._latestUndoRow()
self.undoStack[-1][2] = end self.undoStack[-1][2] = end