From a00da279b7bfd02730ddfb52b347ab93847464b6 Mon Sep 17 00:00:00 2001
From: LukynkaCZE <48604271+LukynkaCZE@users.noreply.github.com>
Date: Tue, 19 Jul 2022 21:38:23 +0200
Subject: [PATCH 01/10] Beatmap Editor Save Toast
---
osu.Game/Localisation/ToastStrings.cs | 11 +++++++++++
osu.Game/Screens/Edit/Editor.cs | 17 ++++++++++++++++-
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/osu.Game/Localisation/ToastStrings.cs b/osu.Game/Localisation/ToastStrings.cs
index 52e75425bf..7c5fdb4b22 100644
--- a/osu.Game/Localisation/ToastStrings.cs
+++ b/osu.Game/Localisation/ToastStrings.cs
@@ -34,6 +34,17 @@ namespace osu.Game.Localisation
///
public static LocalisableString RestartTrack => new TranslatableString(getKey(@"restart_track"), @"Restart track");
+ ///
+ /// "Beatmap Editor"
+ /// r
+ public static LocalisableString BeatmapEditor => new TranslatableString(getKey(@"beatmap_editor"), @"Beatmap Editor");
+
+ ///
+ /// "Beatmap Saved"
+ ///
+ public static LocalisableString EditorSaveBeatmap => new TranslatableString(getKey(@"beatmap_editor_save"), @"Beatmap Saved");
+
+
private static string getKey(string key) => $@"{prefix}:{key}";
}
}
diff --git a/osu.Game/Screens/Edit/Editor.cs b/osu.Game/Screens/Edit/Editor.cs
index 48576b81e2..bfc6abfc32 100644
--- a/osu.Game/Screens/Edit/Editor.cs
+++ b/osu.Game/Screens/Edit/Editor.cs
@@ -18,6 +18,7 @@ using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input;
using osu.Framework.Input.Bindings;
using osu.Framework.Input.Events;
+using osu.Framework.Localisation;
using osu.Framework.Logging;
using osu.Framework.Platform;
using osu.Framework.Screens;
@@ -31,10 +32,11 @@ using osu.Game.Database;
using osu.Game.Graphics.Cursor;
using osu.Game.Graphics.UserInterface;
using osu.Game.Input.Bindings;
+using osu.Game.Localisation;
using osu.Game.Online.API;
using osu.Game.Overlays;
using osu.Game.Overlays.Notifications;
-using osu.Game.Resources.Localisation.Web;
+using osu.Game.Overlays.OSD;
using osu.Game.Rulesets;
using osu.Game.Rulesets.Edit;
using osu.Game.Rulesets.Objects;
@@ -50,6 +52,7 @@ using osu.Game.Screens.Play;
using osu.Game.Users;
using osuTK.Graphics;
using osuTK.Input;
+using CommonStrings = osu.Game.Resources.Localisation.Web.CommonStrings;
namespace osu.Game.Screens.Edit
{
@@ -169,6 +172,9 @@ namespace osu.Game.Screens.Edit
[Cached]
private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Aquamarine);
+ [Resolved(canBeNull: true)]
+ private OnScreenDisplay onScreenDisplay { get; set; }
+
public Editor(EditorLoader loader = null)
{
this.loader = loader;
@@ -405,6 +411,7 @@ namespace osu.Game.Screens.Edit
// no longer new after first user-triggered save.
isNewBeatmap = false;
updateLastSavedHash();
+ onScreenDisplay?.Display(new BeatmapEditorToast(ToastStrings.EditorSaveBeatmap, editorBeatmap.BeatmapInfo.GetDisplayTitle()));
return true;
}
@@ -934,5 +941,13 @@ namespace osu.Game.Screens.Edit
ControlPointInfo IBeatSyncProvider.ControlPoints => editorBeatmap.ControlPointInfo;
IClock IBeatSyncProvider.Clock => clock;
ChannelAmplitudes? IBeatSyncProvider.Amplitudes => Beatmap.Value.TrackLoaded ? Beatmap.Value.Track.CurrentAmplitudes : null;
+
+
+ private class BeatmapEditorToast : Toast
+ {
+ public BeatmapEditorToast(LocalisableString value, string beatmapDisplayName)
+ : base(ToastStrings.BeatmapEditor, value, beatmapDisplayName) { }
+
+ }
}
}
From 51a0b5afdc4950195363efaa50b9ee1890436623 Mon Sep 17 00:00:00 2001
From: LukynkaCZE <48604271+LukynkaCZE@users.noreply.github.com>
Date: Tue, 19 Jul 2022 22:18:19 +0200
Subject: [PATCH 02/10] Skin Editor
---
osu.Game/Localisation/ToastStrings.cs | 11 +++++++++++
osu.Game/Skinning/Editor/SkinEditor.cs | 16 ++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/osu.Game/Localisation/ToastStrings.cs b/osu.Game/Localisation/ToastStrings.cs
index 7c5fdb4b22..519c47e7c4 100644
--- a/osu.Game/Localisation/ToastStrings.cs
+++ b/osu.Game/Localisation/ToastStrings.cs
@@ -44,6 +44,17 @@ namespace osu.Game.Localisation
///
public static LocalisableString EditorSaveBeatmap => new TranslatableString(getKey(@"beatmap_editor_save"), @"Beatmap Saved");
+ ///
+ /// "Skin Editor"
+ ///
+ public static LocalisableString SkinEditor => new TranslatableString(getKey(@"skin_editor"), @"Skin Editor");
+
+ ///
+ /// "Skin Saved"
+ ///
+ public static LocalisableString EditorSaveSkin => new TranslatableString(getKey(@"skin_editor_save"), @"Skin Saved");
+
+
private static string getKey(string key) => $@"{prefix}:{key}";
}
diff --git a/osu.Game/Skinning/Editor/SkinEditor.cs b/osu.Game/Skinning/Editor/SkinEditor.cs
index 649b63dda4..02c0350d2c 100644
--- a/osu.Game/Skinning/Editor/SkinEditor.cs
+++ b/osu.Game/Skinning/Editor/SkinEditor.cs
@@ -14,13 +14,16 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.Events;
+using osu.Framework.Localisation;
using osu.Framework.Testing;
using osu.Game.Database;
using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Cursor;
using osu.Game.Graphics.UserInterface;
+using osu.Game.Localisation;
using osu.Game.Overlays;
+using osu.Game.Overlays.OSD;
using osu.Game.Screens.Edit.Components;
using osu.Game.Screens.Edit.Components.Menus;
@@ -68,6 +71,9 @@ namespace osu.Game.Skinning.Editor
private EditorSidebar componentsSidebar;
private EditorSidebar settingsSidebar;
+ [Resolved(canBeNull: true)]
+ private OnScreenDisplay onScreenDisplay { get; set; }
+
public SkinEditor()
{
}
@@ -316,6 +322,7 @@ namespace osu.Game.Skinning.Editor
currentSkin.Value.UpdateDrawableTarget(t);
skins.Save(skins.CurrentSkin.Value);
+ onScreenDisplay?.Display(new SkinEditorToast(ToastStrings.EditorSaveSkin, currentSkin.Value.SkinInfo.ToString()));
}
protected override bool OnHover(HoverEvent e) => true;
@@ -395,5 +402,14 @@ namespace osu.Game.Skinning.Editor
game?.UnregisterImportHandler(this);
}
+
+
+ private class SkinEditorToast : Toast
+ {
+ public SkinEditorToast(LocalisableString value, string skinDisplayName)
+ : base(ToastStrings.SkinEditor, value, skinDisplayName) { }
+
+ }
+
}
}
From 5987acfbca821b3e5f71157509382d9bdc0e2a04 Mon Sep 17 00:00:00 2001
From: LukynkaCZE <48604271+LukynkaCZE@users.noreply.github.com>
Date: Tue, 19 Jul 2022 22:59:25 +0200
Subject: [PATCH 03/10] Fixed code formatting
---
osu.Game/Localisation/ToastStrings.cs | 2 --
osu.Game/Screens/Edit/Editor.cs | 2 --
osu.Game/Skinning/Editor/SkinEditor.cs | 3 ---
3 files changed, 7 deletions(-)
diff --git a/osu.Game/Localisation/ToastStrings.cs b/osu.Game/Localisation/ToastStrings.cs
index 519c47e7c4..4169a23798 100644
--- a/osu.Game/Localisation/ToastStrings.cs
+++ b/osu.Game/Localisation/ToastStrings.cs
@@ -54,8 +54,6 @@ namespace osu.Game.Localisation
///
public static LocalisableString EditorSaveSkin => new TranslatableString(getKey(@"skin_editor_save"), @"Skin Saved");
-
-
private static string getKey(string key) => $@"{prefix}:{key}";
}
}
diff --git a/osu.Game/Screens/Edit/Editor.cs b/osu.Game/Screens/Edit/Editor.cs
index bfc6abfc32..bf9785063b 100644
--- a/osu.Game/Screens/Edit/Editor.cs
+++ b/osu.Game/Screens/Edit/Editor.cs
@@ -942,12 +942,10 @@ namespace osu.Game.Screens.Edit
IClock IBeatSyncProvider.Clock => clock;
ChannelAmplitudes? IBeatSyncProvider.Amplitudes => Beatmap.Value.TrackLoaded ? Beatmap.Value.Track.CurrentAmplitudes : null;
-
private class BeatmapEditorToast : Toast
{
public BeatmapEditorToast(LocalisableString value, string beatmapDisplayName)
: base(ToastStrings.BeatmapEditor, value, beatmapDisplayName) { }
-
}
}
}
diff --git a/osu.Game/Skinning/Editor/SkinEditor.cs b/osu.Game/Skinning/Editor/SkinEditor.cs
index 02c0350d2c..326574f2da 100644
--- a/osu.Game/Skinning/Editor/SkinEditor.cs
+++ b/osu.Game/Skinning/Editor/SkinEditor.cs
@@ -403,13 +403,10 @@ namespace osu.Game.Skinning.Editor
game?.UnregisterImportHandler(this);
}
-
private class SkinEditorToast : Toast
{
public SkinEditorToast(LocalisableString value, string skinDisplayName)
: base(ToastStrings.SkinEditor, value, skinDisplayName) { }
-
}
-
}
}
From a4f071fe53e2d1d3e105ffdf0d20c4f65eec5db0 Mon Sep 17 00:00:00 2001
From: Adam Baker
Date: Thu, 21 Jul 2022 08:26:48 -0500
Subject: [PATCH 04/10] Make zoom sensitivity relative to containers max zoom
---
.../Screens/Edit/Compose/Components/Timeline/TimelineArea.cs | 4 +++-
.../Compose/Components/Timeline/ZoomableScrollContainer.cs | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs b/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs
index 97dc04b9fa..c25a4834d3 100644
--- a/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs
@@ -20,6 +20,8 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
private readonly Drawable userContent;
+ private const float zoom_button_sensitivity = 0.02f;
+
public TimelineArea(Drawable content = null)
{
RelativeSizeAxes = Axes.X;
@@ -154,6 +156,6 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
Timeline.TicksVisible.BindTo(ticksCheckbox.Current);
}
- private void changeZoom(float change) => Timeline.Zoom += change;
+ private void changeZoom(float change) => Timeline.Zoom += change * Timeline.MaxZoom * zoom_button_sensitivity;
}
}
diff --git a/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs b/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
index 80cdef38e9..7a4d45301f 100644
--- a/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
@@ -104,6 +104,8 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
set => updateZoom(value);
}
+ private const float zoom_scroll_sensitivity = 0.02f;
+
private void updateZoom(float? value = null)
{
float newZoom = Math.Clamp(value ?? Zoom, MinZoom, MaxZoom);
@@ -127,7 +129,7 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
if (e.AltPressed)
{
// zoom when holding alt.
- setZoomTarget(zoomTarget + e.ScrollDelta.Y, zoomedContent.ToLocalSpace(e.ScreenSpaceMousePosition).X);
+ setZoomTarget(zoomTarget + e.ScrollDelta.Y * MaxZoom * zoom_scroll_sensitivity, zoomedContent.ToLocalSpace(e.ScreenSpaceMousePosition).X);
return true;
}
From d69dc457ba2adf3d0a6db8f89237292cebb62efd Mon Sep 17 00:00:00 2001
From: Adam Baker
Date: Thu, 21 Jul 2022 17:28:43 -0500
Subject: [PATCH 05/10] Extract zoom delta method
---
.../Edit/Compose/Components/Timeline/TimelineArea.cs | 4 +---
.../Compose/Components/Timeline/ZoomableScrollContainer.cs | 6 ++++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs b/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs
index c25a4834d3..b47c09109b 100644
--- a/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs
@@ -20,8 +20,6 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
private readonly Drawable userContent;
- private const float zoom_button_sensitivity = 0.02f;
-
public TimelineArea(Drawable content = null)
{
RelativeSizeAxes = Axes.X;
@@ -156,6 +154,6 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
Timeline.TicksVisible.BindTo(ticksCheckbox.Current);
}
- private void changeZoom(float change) => Timeline.Zoom += change * Timeline.MaxZoom * zoom_button_sensitivity;
+ private void changeZoom(float change) => Timeline.Zoom += Timeline.CalculateZoomChange(change);
}
}
diff --git a/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs b/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
index 7a4d45301f..9bd7332105 100644
--- a/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
@@ -104,7 +104,7 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
set => updateZoom(value);
}
- private const float zoom_scroll_sensitivity = 0.02f;
+ private const float zoom_change_sensitivity = 0.02f;
private void updateZoom(float? value = null)
{
@@ -129,7 +129,7 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
if (e.AltPressed)
{
// zoom when holding alt.
- setZoomTarget(zoomTarget + e.ScrollDelta.Y * MaxZoom * zoom_scroll_sensitivity, zoomedContent.ToLocalSpace(e.ScreenSpaceMousePosition).X);
+ setZoomTarget(zoomTarget + CalculateZoomChange(e.ScrollDelta.Y), zoomedContent.ToLocalSpace(e.ScreenSpaceMousePosition).X);
return true;
}
@@ -167,6 +167,8 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
{
}
+ public float CalculateZoomChange(float rawChange) => rawChange * MaxZoom * zoom_change_sensitivity;
+
private class TransformZoom : Transform
{
///
From 997fe00cdcab42a58ef1ba7533acc1278fe42e37 Mon Sep 17 00:00:00 2001
From: Adam Baker
Date: Thu, 21 Jul 2022 17:29:13 -0500
Subject: [PATCH 06/10] Fix zoom delta math
---
.../Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs b/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
index 9bd7332105..4d95600450 100644
--- a/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
@@ -167,7 +167,7 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
{
}
- public float CalculateZoomChange(float rawChange) => rawChange * MaxZoom * zoom_change_sensitivity;
+ public float CalculateZoomChange(float rawChange) => rawChange * (MaxZoom - minZoom) * zoom_change_sensitivity;
private class TransformZoom : Transform
{
From ed94d7fce84c5cc4eefcabc0585647d270d85129 Mon Sep 17 00:00:00 2001
From: LukynkaCZE <48604271+LukynkaCZE@users.noreply.github.com>
Date: Fri, 22 Jul 2022 02:46:17 +0200
Subject: [PATCH 07/10] Fix requested changes
---
osu.Game/Localisation/ToastStrings.cs | 20 +++++---------------
osu.Game/Screens/Edit/Editor.cs | 4 ++--
osu.Game/Skinning/Editor/SkinEditor.cs | 4 ++--
3 files changed, 9 insertions(+), 19 deletions(-)
diff --git a/osu.Game/Localisation/ToastStrings.cs b/osu.Game/Localisation/ToastStrings.cs
index 4169a23798..9ceee807e6 100644
--- a/osu.Game/Localisation/ToastStrings.cs
+++ b/osu.Game/Localisation/ToastStrings.cs
@@ -35,24 +35,14 @@ namespace osu.Game.Localisation
public static LocalisableString RestartTrack => new TranslatableString(getKey(@"restart_track"), @"Restart track");
///
- /// "Beatmap Editor"
- /// r
- public static LocalisableString BeatmapEditor => new TranslatableString(getKey(@"beatmap_editor"), @"Beatmap Editor");
+ /// "Beatmap saved"
+ ///
+ public static LocalisableString BeatmapSaved => new TranslatableString(getKey(@"beatmap_saved"), @"Beatmap saved");
///
- /// "Beatmap Saved"
+ /// "Skin saved"
///
- public static LocalisableString EditorSaveBeatmap => new TranslatableString(getKey(@"beatmap_editor_save"), @"Beatmap Saved");
-
- ///
- /// "Skin Editor"
- ///
- public static LocalisableString SkinEditor => new TranslatableString(getKey(@"skin_editor"), @"Skin Editor");
-
- ///
- /// "Skin Saved"
- ///
- public static LocalisableString EditorSaveSkin => new TranslatableString(getKey(@"skin_editor_save"), @"Skin Saved");
+ public static LocalisableString SkinSaved => new TranslatableString(getKey(@"skin_saved"), @"Skin saved");
private static string getKey(string key) => $@"{prefix}:{key}";
}
diff --git a/osu.Game/Screens/Edit/Editor.cs b/osu.Game/Screens/Edit/Editor.cs
index bf9785063b..1933076338 100644
--- a/osu.Game/Screens/Edit/Editor.cs
+++ b/osu.Game/Screens/Edit/Editor.cs
@@ -411,7 +411,7 @@ namespace osu.Game.Screens.Edit
// no longer new after first user-triggered save.
isNewBeatmap = false;
updateLastSavedHash();
- onScreenDisplay?.Display(new BeatmapEditorToast(ToastStrings.EditorSaveBeatmap, editorBeatmap.BeatmapInfo.GetDisplayTitle()));
+ onScreenDisplay?.Display(new BeatmapEditorToast(ToastStrings.BeatmapSaved, editorBeatmap.BeatmapInfo.GetDisplayTitle()));
return true;
}
@@ -945,7 +945,7 @@ namespace osu.Game.Screens.Edit
private class BeatmapEditorToast : Toast
{
public BeatmapEditorToast(LocalisableString value, string beatmapDisplayName)
- : base(ToastStrings.BeatmapEditor, value, beatmapDisplayName) { }
+ : base(InputSettingsStrings.EditorSection, value, beatmapDisplayName) { }
}
}
}
diff --git a/osu.Game/Skinning/Editor/SkinEditor.cs b/osu.Game/Skinning/Editor/SkinEditor.cs
index 326574f2da..b02054072b 100644
--- a/osu.Game/Skinning/Editor/SkinEditor.cs
+++ b/osu.Game/Skinning/Editor/SkinEditor.cs
@@ -322,7 +322,7 @@ namespace osu.Game.Skinning.Editor
currentSkin.Value.UpdateDrawableTarget(t);
skins.Save(skins.CurrentSkin.Value);
- onScreenDisplay?.Display(new SkinEditorToast(ToastStrings.EditorSaveSkin, currentSkin.Value.SkinInfo.ToString()));
+ onScreenDisplay?.Display(new SkinEditorToast(ToastStrings.SkinSaved, currentSkin.Value.SkinInfo.ToString()));
}
protected override bool OnHover(HoverEvent e) => true;
@@ -406,7 +406,7 @@ namespace osu.Game.Skinning.Editor
private class SkinEditorToast : Toast
{
public SkinEditorToast(LocalisableString value, string skinDisplayName)
- : base(ToastStrings.SkinEditor, value, skinDisplayName) { }
+ : base(SkinSettingsStrings.SkinLayoutEditor, value, skinDisplayName) { }
}
}
}
From 92f59ce9a0da37e0c5e2a7d10d9d84ce95675161 Mon Sep 17 00:00:00 2001
From: Dean Herbert
Date: Fri, 22 Jul 2022 13:10:18 +0900
Subject: [PATCH 08/10] Add the ability to save in the skin editor using system
save hotkey
---
osu.Game/Skinning/Editor/SkinEditor.cs | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/osu.Game/Skinning/Editor/SkinEditor.cs b/osu.Game/Skinning/Editor/SkinEditor.cs
index 649b63dda4..27c8d0711a 100644
--- a/osu.Game/Skinning/Editor/SkinEditor.cs
+++ b/osu.Game/Skinning/Editor/SkinEditor.cs
@@ -13,6 +13,8 @@ using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.UserInterface;
+using osu.Framework.Input;
+using osu.Framework.Input.Bindings;
using osu.Framework.Input.Events;
using osu.Framework.Testing;
using osu.Game.Database;
@@ -27,7 +29,7 @@ using osu.Game.Screens.Edit.Components.Menus;
namespace osu.Game.Skinning.Editor
{
[Cached(typeof(SkinEditor))]
- public class SkinEditor : VisibilityContainer, ICanAcceptFiles
+ public class SkinEditor : VisibilityContainer, ICanAcceptFiles, IKeyBindingHandler
{
public const double TRANSITION_DURATION = 500;
@@ -199,6 +201,25 @@ namespace osu.Game.Skinning.Editor
SelectedComponents.BindCollectionChanged((_, _) => Scheduler.AddOnce(populateSettings), true);
}
+ public bool OnPressed(KeyBindingPressEvent e)
+ {
+ switch (e.Action)
+ {
+ case PlatformAction.Save:
+ if (e.Repeat)
+ return false;
+
+ Save();
+ return true;
+ }
+
+ return false;
+ }
+
+ public void OnReleased(KeyBindingReleaseEvent e)
+ {
+ }
+
public void UpdateTargetScreen(Drawable targetScreen)
{
this.targetScreen = targetScreen;
From f713253d1b3bf4c959a58cbeebf51edf4742b18e Mon Sep 17 00:00:00 2001
From: Dean Herbert
Date: Fri, 22 Jul 2022 14:00:29 +0900
Subject: [PATCH 09/10] Fix formatting inconsistencies in empty `ctor`s
---
osu.Game/Screens/Edit/Editor.cs | 4 +++-
osu.Game/Skinning/Editor/SkinEditor.cs | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/osu.Game/Screens/Edit/Editor.cs b/osu.Game/Screens/Edit/Editor.cs
index 1933076338..3e3940c5ba 100644
--- a/osu.Game/Screens/Edit/Editor.cs
+++ b/osu.Game/Screens/Edit/Editor.cs
@@ -945,7 +945,9 @@ namespace osu.Game.Screens.Edit
private class BeatmapEditorToast : Toast
{
public BeatmapEditorToast(LocalisableString value, string beatmapDisplayName)
- : base(InputSettingsStrings.EditorSection, value, beatmapDisplayName) { }
+ : base(InputSettingsStrings.EditorSection, value, beatmapDisplayName)
+ {
+ }
}
}
}
diff --git a/osu.Game/Skinning/Editor/SkinEditor.cs b/osu.Game/Skinning/Editor/SkinEditor.cs
index b02054072b..741cad3e57 100644
--- a/osu.Game/Skinning/Editor/SkinEditor.cs
+++ b/osu.Game/Skinning/Editor/SkinEditor.cs
@@ -406,7 +406,9 @@ namespace osu.Game.Skinning.Editor
private class SkinEditorToast : Toast
{
public SkinEditorToast(LocalisableString value, string skinDisplayName)
- : base(SkinSettingsStrings.SkinLayoutEditor, value, skinDisplayName) { }
+ : base(SkinSettingsStrings.SkinLayoutEditor, value, skinDisplayName)
+ {
+ }
}
}
}
From 4cec9a085a4e4e9678785f21d63aed7fee86599a Mon Sep 17 00:00:00 2001
From: Dean Herbert
Date: Fri, 22 Jul 2022 14:44:48 +0900
Subject: [PATCH 10/10] Combine both calls to use same pathway
---
.../Compose/Components/Timeline/TimelineArea.cs | 6 ++----
.../Timeline/ZoomableScrollContainer.cs | 17 ++++++++++-------
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs b/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs
index b47c09109b..c2415ce978 100644
--- a/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineArea.cs
@@ -118,7 +118,7 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
RelativeSizeAxes = Axes.Y,
Height = 0.5f,
Icon = FontAwesome.Solid.SearchPlus,
- Action = () => changeZoom(1)
+ Action = () => Timeline.AdjustZoomRelatively(1)
},
new TimelineButton
{
@@ -127,7 +127,7 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
RelativeSizeAxes = Axes.Y,
Height = 0.5f,
Icon = FontAwesome.Solid.SearchMinus,
- Action = () => changeZoom(-1)
+ Action = () => Timeline.AdjustZoomRelatively(-1)
},
}
}
@@ -153,7 +153,5 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
Timeline.ControlPointsVisible.BindTo(controlPointsCheckbox.Current);
Timeline.TicksVisible.BindTo(ticksCheckbox.Current);
}
-
- private void changeZoom(float change) => Timeline.Zoom += Timeline.CalculateZoomChange(change);
}
}
diff --git a/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs b/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
index 4d95600450..96f6ef6d02 100644
--- a/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/Timeline/ZoomableScrollContainer.cs
@@ -104,8 +104,6 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
set => updateZoom(value);
}
- private const float zoom_change_sensitivity = 0.02f;
-
private void updateZoom(float? value = null)
{
float newZoom = Math.Clamp(value ?? Zoom, MinZoom, MaxZoom);
@@ -129,7 +127,7 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
if (e.AltPressed)
{
// zoom when holding alt.
- setZoomTarget(zoomTarget + CalculateZoomChange(e.ScrollDelta.Y), zoomedContent.ToLocalSpace(e.ScreenSpaceMousePosition).X);
+ AdjustZoomRelatively(e.ScrollDelta.Y, zoomedContent.ToLocalSpace(e.ScreenSpaceMousePosition).X);
return true;
}
@@ -147,12 +145,19 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
zoomedContentWidthCache.Validate();
}
+ public void AdjustZoomRelatively(float change, float? focusPoint = null)
+ {
+ const float zoom_change_sensitivity = 0.02f;
+
+ setZoomTarget(zoomTarget + change * (MaxZoom - minZoom) * zoom_change_sensitivity, focusPoint);
+ }
+
private float zoomTarget = 1;
- private void setZoomTarget(float newZoom, float focusPoint)
+ private void setZoomTarget(float newZoom, float? focusPoint = null)
{
zoomTarget = Math.Clamp(newZoom, MinZoom, MaxZoom);
- transformZoomTo(zoomTarget, focusPoint, ZoomDuration, ZoomEasing);
+ transformZoomTo(zoomTarget, focusPoint ?? DrawWidth / 2, ZoomDuration, ZoomEasing);
OnZoomChanged();
}
@@ -167,8 +172,6 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
{
}
- public float CalculateZoomChange(float rawChange) => rawChange * (MaxZoom - minZoom) * zoom_change_sensitivity;
-
private class TransformZoom : Transform
{
///