public void TestRemoveObjectThenUndo() { HitObject addedObject = null; HitObject removedObject = null; HitObject expectedObject = null; AddStep("bind removal", () => { editorBeatmap.HitObjectAdded += h => addedObject = h; editorBeatmap.HitObjectRemoved += h => removedObject = h; }); AddStep("add hitobject", () => editorBeatmap.Add(expectedObject = new HitCircle { StartTime = 1000 })); AddStep("remove object", () => editorBeatmap.Remove(expectedObject)); AddStep("reset variables", () => { addedObject = null; removedObject = null; }); addUndoSteps(); AddAssert("hitobject added", () => addedObject.StartTime == expectedObject.StartTime); // Can't compare via equality (new hitobject instance) AddAssert("no hitobject removed", () => removedObject == null); }
public void TestRemoveObjectThenUndoThenRedo() { HitObject addedObject = null; HitObject removedObject = null; HitObject expectedObject = null; AddStep("bind removal", () => { EditorBeatmap.HitObjectAdded += h => addedObject = h; EditorBeatmap.HitObjectRemoved += h => removedObject = h; }); AddStep("add hitobject", () => EditorBeatmap.Add(expectedObject = new HitCircle { StartTime = 1000 })); AddStep("remove object", () => EditorBeatmap.Remove(expectedObject)); addUndoSteps(); AddStep("reset variables", () => { addedObject = null; removedObject = null; }); addRedoSteps(); AddAssert("hitobject removed", () => removedObject.StartTime == expectedObject.StartTime); // Can't compare via equality (new hitobject instance after undo) AddAssert("no hitobject added", () => addedObject == null); AddAssert("no changes", () => !Editor.HasUnsavedChanges); // end result is empty beatmap, matching original state }
private void deleteSelected() { ChangeHandler?.BeginChange(); foreach (var h in selectedBlueprints.ToList()) { EditorBeatmap?.Remove(h.HitObject); } ChangeHandler?.EndChange(); }
private void handleQuickDeletion(SelectionBlueprint blueprint) { if (!blueprint.IsSelected) { EditorBeatmap.Remove(blueprint.HitObject); } else { deleteSelected(); } }
public void HitObjectRemoveEvent() { var hitCircle = new HitCircle(); var editorBeatmap = new EditorBeatmap(new OsuBeatmap { HitObjects = { hitCircle } }); HitObject removedObject = null; editorBeatmap.HitObjectRemoved += h => removedObject = h; editorBeatmap.Remove(hitCircle); Assert.That(removedObject, Is.EqualTo(hitCircle)); }
/// <summary> /// Handle a blueprint requesting selection. /// </summary> /// <param name="blueprint">The blueprint.</param> /// <param name="state">The input state at the point of selection.</param> internal void HandleSelectionRequested(SelectionBlueprint blueprint, InputState state) { if (state.Keyboard.ShiftPressed && state.Mouse.IsPressed(MouseButton.Right)) { EditorBeatmap.Remove(blueprint.HitObject); } else if (state.Keyboard.ControlPressed && state.Mouse.IsPressed(MouseButton.Left)) { blueprint.ToggleSelection(); } else { ensureSelected(blueprint); } }
public void TestRemovedHitObjectStartTimeChangeEvent() { var hitCircle = new HitCircle(); var editorBeatmap = new EditorBeatmap(new OsuBeatmap { HitObjects = { hitCircle } }); HitObject changedObject = null; editorBeatmap.HitObjectUpdated += h => changedObject = h; editorBeatmap.Remove(hitCircle); Assert.That(changedObject, Is.Null); hitCircle.StartTime = 1000; Assert.That(changedObject, Is.Null); }
public void Delete(HitObject hitObject) => EditorBeatmap.Remove(hitObject);