mirror of
https://github.com/ppy/osu.git
synced 2024-12-18 16:34:05 +08:00
cae3607caf
Earlier I changed the restarting logic to not wait until the program exits and instead try to facilitate restarting alone. This did not work, and it became clear we'd need Velopack to do the restarting. This reverts back and supposedly brings restarting logic in line with how Velopack does it
67 lines
2.0 KiB
C#
67 lines
2.0 KiB
C#
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
using osu.Framework.Allocation;
|
|
using osu.Framework.Graphics;
|
|
using osu.Game.Graphics.UserInterface;
|
|
using osu.Game.Graphics.UserInterfaceV2;
|
|
using osu.Game.Tournament.IO;
|
|
|
|
namespace osu.Game.Tournament.Screens.Setup
|
|
{
|
|
internal partial class TournamentSwitcher : ActionableInfo
|
|
{
|
|
private OsuDropdown<string> dropdown = null!;
|
|
private OsuButton folderButton = null!;
|
|
private OsuButton reloadTournamentsButton = null!;
|
|
|
|
[Resolved]
|
|
private TournamentGameBase game { get; set; } = null!;
|
|
|
|
[BackgroundDependencyLoader]
|
|
private void load(TournamentStorage storage)
|
|
{
|
|
string startupTournament = storage.CurrentTournament.Value;
|
|
|
|
dropdown.Current = storage.CurrentTournament;
|
|
dropdown.Items = storage.ListTournaments();
|
|
dropdown.Current.BindValueChanged(v => Button.Enabled.Value = v.NewValue != startupTournament, true);
|
|
|
|
reloadTournamentsButton.Action = () => dropdown.Items = storage.ListTournaments();
|
|
|
|
Action = () =>
|
|
{
|
|
game.RestartAppWhenExited();
|
|
game.AttemptExit();
|
|
};
|
|
folderButton.Action = () => storage.PresentExternally();
|
|
|
|
ButtonText = "Close osu!";
|
|
}
|
|
|
|
protected override Drawable CreateComponent()
|
|
{
|
|
var drawable = base.CreateComponent();
|
|
|
|
FlowContainer.Insert(-1, folderButton = new RoundedButton
|
|
{
|
|
Text = "Open folder",
|
|
Width = BUTTON_SIZE
|
|
});
|
|
|
|
FlowContainer.Insert(-2, reloadTournamentsButton = new RoundedButton
|
|
{
|
|
Text = "Refresh",
|
|
Width = BUTTON_SIZE
|
|
});
|
|
|
|
FlowContainer.Insert(-3, dropdown = new OsuDropdown<string>
|
|
{
|
|
Width = 510
|
|
});
|
|
|
|
return drawable;
|
|
}
|
|
}
|
|
}
|