diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/DirectorySelectScreen.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/DirectorySelectScreen.cs index 278c1ab20d..a6ae3d6132 100644 --- a/osu.Game/Overlays/Settings/Sections/Maintenance/DirectorySelectScreen.cs +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/DirectorySelectScreen.cs @@ -34,6 +34,8 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance protected virtual bool IsValidDirectory(DirectoryInfo info) => info != null; + protected virtual DirectoryInfo InitialPath => null; + public override bool AllowExternalScreenChange => false; public override bool DisallowExternalBeatmapRulesetChanges => true; @@ -101,6 +103,9 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance protected override void LoadComplete() { + if (InitialPath != null) + DirectorySelector.CurrentPath.Value = InitialPath; + DirectorySelector.CurrentPath.BindValueChanged(e => selectionButton.Enabled.Value = IsValidDirectory(e.NewValue), true); base.LoadComplete(); } diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs index 1f14d0991d..cfbb7d6593 100644 --- a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs @@ -17,6 +17,8 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance [Resolved] private Storage storage { get; set; } + protected override DirectoryInfo InitialPath => new DirectoryInfo(storage.GetFullPath(string.Empty)).Parent; + protected override OsuSpriteText CreateHeader() => new OsuSpriteText { Text = "Please select a new location", @@ -42,12 +44,6 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance BeginMigration(target); } - protected override void LoadComplete() - { - DirectorySelector.CurrentPath.Value = new DirectoryInfo(storage.GetFullPath(string.Empty)).Parent; - base.LoadComplete(); - } - protected virtual void BeginMigration(DirectoryInfo target) => this.Push(new MigrationRunScreen(target)); } }