diff --git a/osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs b/osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs
index 5f0bfb6d70..7b61640c89 100644
--- a/osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs
@@ -185,6 +185,36 @@ namespace osu.Game.Screens.Edit.Compose.Components
#endregion
+ #region Sample Changes
+
+ ///
+ /// Adds a hit sample to all selected s.
+ ///
+ /// The name of the hit sample.
+ public void AddHitSample(string sampleName)
+ {
+ foreach (var h in SelectedHitObjects)
+ {
+ // Make sure there isn't already an existing sample
+ if (h.Samples.Any(s => s.Name == sampleName))
+ continue;
+
+ h.Samples.Add(new HitSampleInfo { Name = sampleName });
+ }
+ }
+
+ ///
+ /// Removes a hit sample from all selected s.
+ ///
+ /// The name of the hit sample.
+ public void RemoveHitSample(string sampleName)
+ {
+ foreach (var h in SelectedHitObjects)
+ h.SamplesBindable.RemoveAll(s => s.Name == sampleName);
+ }
+
+ #endregion
+
#region Context Menu
public virtual MenuItem[] ContextMenuItems
@@ -221,21 +251,11 @@ namespace osu.Game.Screens.Edit.Compose.Components
switch (state)
{
case ThreeStates.Disabled:
- foreach (var h in SelectedHitObjects)
- h.SamplesBindable.RemoveAll(s => s.Name == sampleName);
-
+ RemoveHitSample(sampleName);
break;
case ThreeStates.Enabled:
- foreach (var h in SelectedHitObjects)
- {
- // Make sure there isn't already an existing sample
- if (h.Samples.Any(s => s.Name == sampleName))
- continue;
-
- h.Samples.Add(new HitSampleInfo { Name = sampleName });
- }
-
+ AddHitSample(sampleName);
break;
}
}