mirror of
https://github.com/ppy/osu.git
synced 2024-12-14 10:12:54 +08:00
Change skin editor flow to always save on toggle
This also moves the beatmap skin disable toggle to on toggle, in line with review feedback. I've decided to always apply the disable, not just on the `Player` screen. It should be assumed that if a user is in the skin editor they are never going to need access to this anyway.
This commit is contained in:
parent
366dd96875
commit
cb0f642ad7
@ -71,6 +71,8 @@ namespace osu.Game.Overlays.SkinEditor
|
||||
|
||||
protected override void PopIn()
|
||||
{
|
||||
globallyDisableBeatmapSkinSetting();
|
||||
|
||||
if (skinEditor != null)
|
||||
{
|
||||
skinEditor.Show();
|
||||
@ -96,7 +98,13 @@ namespace osu.Game.Overlays.SkinEditor
|
||||
});
|
||||
}
|
||||
|
||||
protected override void PopOut() => skinEditor?.Hide();
|
||||
protected override void PopOut()
|
||||
{
|
||||
skinEditor?.Save(false);
|
||||
skinEditor?.Hide();
|
||||
|
||||
globallyReenableBeatmapSkinSetting();
|
||||
}
|
||||
|
||||
protected override void Update()
|
||||
{
|
||||
@ -156,24 +164,15 @@ namespace osu.Game.Overlays.SkinEditor
|
||||
/// </summary>
|
||||
public void SetTarget(OsuScreen screen)
|
||||
{
|
||||
try
|
||||
{
|
||||
lastTargetScreen = screen;
|
||||
lastTargetScreen = screen;
|
||||
|
||||
if (skinEditor == null) return;
|
||||
if (skinEditor == null) return;
|
||||
|
||||
skinEditor.Save(userTriggered: false);
|
||||
// ensure the toolbar is re-hidden even if a new screen decides to try and show it.
|
||||
updateComponentVisibility();
|
||||
|
||||
// ensure the toolbar is re-hidden even if a new screen decides to try and show it.
|
||||
updateComponentVisibility();
|
||||
|
||||
// AddOnce with parameter will ensure the newest target is loaded if there is any overlap.
|
||||
Scheduler.AddOnce(setTarget, screen);
|
||||
}
|
||||
finally
|
||||
{
|
||||
globallyReenableBeatmapSkinSetting();
|
||||
}
|
||||
// AddOnce with parameter will ensure the newest target is loaded if there is any overlap.
|
||||
Scheduler.AddOnce(setTarget, screen);
|
||||
}
|
||||
|
||||
private void setTarget(OsuScreen? target)
|
||||
@ -189,9 +188,6 @@ namespace osu.Game.Overlays.SkinEditor
|
||||
return;
|
||||
}
|
||||
|
||||
if (target is Player)
|
||||
globallyDisableBeatmapSkinSetting();
|
||||
|
||||
if (skinEditor.State.Value == Visibility.Visible)
|
||||
skinEditor.UpdateTargetScreen(target);
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user