EditorSession.revisionChanged is now emitted with a RevisionChanges object instead of the revision ID

This commit is contained in:
David Vierra 2015-06-06 23:51:52 -10:00
parent ef520d7d9d
commit 1d9c2c65de
3 changed files with 16 additions and 6 deletions

View File

@ -39,7 +39,7 @@ from mceditlib.operations import ComposeOperations
from mceditlib.operations.entity import RemoveEntitiesOperation
from mceditlib.selection import BoundingBox
from mceditlib.exceptions import PlayerNotFound
from mceditlib.revisionhistory import UndoFolderExists
from mceditlib.revisionhistory import UndoFolderExists, RevisionChanges
from mceditlib.worldeditor import WorldEditor
from mceditlib.blocktypes import BlockType
@ -653,7 +653,7 @@ class EditorSession(QtCore.QObject):
# --- Undo support ---
revisionChanged = QtCore.Signal(int)
revisionChanged = QtCore.Signal(RevisionChanges)
def undoIndexChanged(self, index):
self.editorTab.currentView().update()
@ -678,20 +678,24 @@ class EditorSession(QtCore.QObject):
def commitUndoIter(self):
for status in self.worldEditor.commitUndoIter():
yield status
self.revisionChanged.emit(self.worldEditor.currentRevision)
changes = self.worldEditor.getRevisionChanges(self.currentRevision-1, self.currentRevision)
self.revisionChanged.emit(changes)
def undoForward(self):
self.worldEditor.redo()
self.revisionChanged.emit(self.worldEditor.currentRevision)
changes = self.worldEditor.getRevisionChanges(self.currentRevision-1, self.currentRevision)
self.revisionChanged.emit(changes)
def undoBackward(self):
self.worldEditor.undo()
self.revisionChanged.emit(self.worldEditor.currentRevision)
changes = self.worldEditor.getRevisionChanges(self.currentRevision-1, self.currentRevision)
self.revisionChanged.emit(changes)
def gotoRevision(self, index):
if index != self.currentRevision:
changes = self.worldEditor.getRevisionChanges(self.currentRevision, index)
self.worldEditor.gotoRevision(index)
self.revisionChanged.emit(self.worldEditor.currentRevision)
self.revisionChanged.emit(changes)
@property
def currentRevision(self):

View File

@ -706,6 +706,9 @@ class AnvilWorldAdapter(object):
for ID, node in enumerate(self.revisionHistory.nodes):
yield ID, node.getRevisionInfo()
def getRevisionChanges(self, oldRevision, newRevision):
return self.revisionHistory.getRevisionChanges(oldRevision, newRevision)
# --- Session lock ---
def acquireSessionLock(self):

View File

@ -338,6 +338,9 @@ class WorldEditor(object):
self.recentDirtyFiles.update(changes.files)
def getRevisionChanges(self, oldIndex, newIndex):
return self.adapter.getRevisionChanges(oldIndex, newIndex)
# --- Save ---
def syncToDisk(self):
exhaust(self.syncToDiskIter())