void PostExecuteUpdate(bool isInvoke) { if (!postExecuteEnabled) { return; } ChartEditor editor = ChartEditor.Instance; if (!bpmAnchorFixupCommandsGenerated) { GenerateFixUpBPMAnchorCommands(); } if (isInvoke) { foreach (ICommand command in bpmAnchorFixup) { command.Invoke(); } } else { foreach (ICommand command in bpmAnchorFixup) { command.Revoke(); } } editor.currentChart.UpdateCache(); editor.currentSong.UpdateCache(); if (Toolpane.currentTool != Toolpane.Tools.Note) { editor.currentSelectedObject = null; } ChartEditor.isDirty = true; var soList = validatedSongObjects.Count > 0 ? validatedSongObjects : songObjects; SongObject lowestTickSo = null; foreach (SongObject songObject in soList) { if (lowestTickSo == null || songObject.tick < lowestTickSo.tick) { lowestTickSo = songObject; } } if (lowestTickSo != null) { uint jumpToPos = lowestTickSo.tick; Globals.ViewMode viewMode = lowestTickSo.GetType().IsSubclassOf(typeof(ChartObject)) ? Globals.ViewMode.Chart : Globals.ViewMode.Song; editor.FillUndoRedoSnapInfo(jumpToPos, viewMode); } }
void PostExecuteUpdate(bool isInvoke) { if (!postExecuteEnabled) { return; } ChartEditor editor = ChartEditor.Instance; UndoRedoJumpInfo jumpInfo = GetUndoRedoJumpInfo(); if (!bpmAnchorFixupCommandsGenerated) { GenerateFixUpBPMAnchorCommands(); } if (!cannotBeForcedFixupCommandsGenerated) { GenerateForcedFlagFixupCommands(jumpInfo); } if (isInvoke) { foreach (ICommand command in bpmAnchorFixup) { command.Invoke(); } foreach (ICommand command in forcedFlagFixup) { command.Invoke(); } } editor.currentChart.UpdateCache(); editor.currentSong.UpdateCache(); if (editor.toolManager.currentToolId != EditorObjectToolManager.ToolID.Note) { editor.selectedObjectsManager.currentSelectedObject = null; } ChartEditor.isDirty = true; if (jumpInfo.IsValid) { editor.FillUndoRedoSnapInfo(jumpInfo.jumpToPos.Value, jumpInfo.viewMode); } editor.selectedObjectsManager.TryFindAndSelectSongObjects(selectedSongObjects); selectedSongObjects.Clear(); }