public UndoInfo Redo() { if (!CanRedo) { return(null); } Debug.Assert(curIndex < infos.Count - 1); curIndex++; UndoInfo info = infos[curIndex].Copy(); curModel = info.Model; return(info); }
public UndoInfo Undo() { if (!CanUndo) { return(null); } Debug.Assert(curIndex > 0); curIndex--; UndoInfo info = infos[curIndex].Copy(); curModel = info.Model; return(info); }
public bool ReplaceMemorize() { if (!ShouldMemorize) { return(false); } //replace the model of the last model of the current. EDOModel newModel = EDOSerializer.Clone(curModel); UndoInfo info = new UndoInfo(newModel, stateProvider.SaveState()); infos[curIndex] = info; OnModelChanged(); return(true); }
public bool ReplaceMemorize() { if (!ShouldMemorize) { return false; } //現在のモデルを最後のモデルと入れ替える。 EDOModel newModel = EDOSerializer.Clone(curModel); UndoInfo info = new UndoInfo(newModel, stateProvider.SaveState()); infos[curIndex] = info; OnModelChanged(); return true; }