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
        }
Example #3
0
        private void deleteSelected()
        {
            ChangeHandler?.BeginChange();

            foreach (var h in selectedBlueprints.ToList())
            {
                EditorBeatmap?.Remove(h.HitObject);
            }

            ChangeHandler?.EndChange();
        }
Example #4
0
 private void handleQuickDeletion(SelectionBlueprint blueprint)
 {
     if (!blueprint.IsSelected)
     {
         EditorBeatmap.Remove(blueprint.HitObject);
     }
     else
     {
         deleteSelected();
     }
 }
Example #5
0
        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));
        }
Example #6
0
 /// <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);
     }
 }
Example #7
0
        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);
        }
Example #8
0
 public void Delete(HitObject hitObject) => EditorBeatmap.Remove(hitObject);