diff --git a/osu.Game/Localisation/MaintenanceSettingsStrings.cs b/osu.Game/Localisation/MaintenanceSettingsStrings.cs
index 8aa0adf7a0..469f565f1e 100644
--- a/osu.Game/Localisation/MaintenanceSettingsStrings.cs
+++ b/osu.Game/Localisation/MaintenanceSettingsStrings.cs
@@ -54,11 +54,6 @@ namespace osu.Game.Localisation
///
public static LocalisableString RestartAndReOpenRequiredForCompletion => new TranslatableString(getKey(@"restart_and_re_open_required_for_completion"), @"To complete this operation, osu! will close. Please open it again to use the new data location.");
- ///
- /// "Import beatmaps from stable"
- ///
- public static LocalisableString ImportBeatmapsFromStable => new TranslatableString(getKey(@"import_beatmaps_from_stable"), @"Import beatmaps from stable");
-
///
/// "Delete ALL beatmaps"
///
@@ -69,31 +64,16 @@ namespace osu.Game.Localisation
///
public static LocalisableString DeleteAllBeatmapVideos => new TranslatableString(getKey(@"delete_all_beatmap_videos"), @"Delete ALL beatmap videos");
- ///
- /// "Import scores from stable"
- ///
- public static LocalisableString ImportScoresFromStable => new TranslatableString(getKey(@"import_scores_from_stable"), @"Import scores from stable");
-
///
/// "Delete ALL scores"
///
public static LocalisableString DeleteAllScores => new TranslatableString(getKey(@"delete_all_scores"), @"Delete ALL scores");
- ///
- /// "Import skins from stable"
- ///
- public static LocalisableString ImportSkinsFromStable => new TranslatableString(getKey(@"import_skins_from_stable"), @"Import skins from stable");
-
///
/// "Delete ALL skins"
///
public static LocalisableString DeleteAllSkins => new TranslatableString(getKey(@"delete_all_skins"), @"Delete ALL skins");
- ///
- /// "Import collections from stable"
- ///
- public static LocalisableString ImportCollectionsFromStable => new TranslatableString(getKey(@"import_collections_from_stable"), @"Import collections from stable");
-
///
/// "Delete ALL collections"
///
diff --git a/osu.Game/Overlays/Settings/Sections/DebugSection.cs b/osu.Game/Overlays/Settings/Sections/DebugSection.cs
index 2594962314..509410fbb1 100644
--- a/osu.Game/Overlays/Settings/Sections/DebugSection.cs
+++ b/osu.Game/Overlays/Settings/Sections/DebugSection.cs
@@ -3,6 +3,7 @@
#nullable disable
+using osu.Framework.Development;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Localisation;
@@ -22,11 +23,12 @@ namespace osu.Game.Overlays.Settings.Sections
public DebugSection()
{
- Children = new Drawable[]
- {
- new GeneralSettings(),
- new MemorySettings(),
- };
+ Add(new GeneralSettings());
+
+ if (DebugUtils.IsDebugBuild)
+ Add(new BatchImportSettings());
+
+ Add(new MemorySettings());
}
}
}
diff --git a/osu.Game/Overlays/Settings/Sections/DebugSettings/BatchImportSettings.cs b/osu.Game/Overlays/Settings/Sections/DebugSettings/BatchImportSettings.cs
new file mode 100644
index 0000000000..1c17356313
--- /dev/null
+++ b/osu.Game/Overlays/Settings/Sections/DebugSettings/BatchImportSettings.cs
@@ -0,0 +1,66 @@
+// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
+// See the LICENCE file in the repository root for full licence text.
+
+using osu.Framework.Allocation;
+using osu.Framework.Localisation;
+using osu.Game.Database;
+
+namespace osu.Game.Overlays.Settings.Sections.DebugSettings
+{
+ public partial class BatchImportSettings : SettingsSubsection
+ {
+ protected override LocalisableString Header => @"Batch Import";
+
+ private SettingsButton importBeatmapsButton = null!;
+ private SettingsButton importCollectionsButton = null!;
+ private SettingsButton importScoresButton = null!;
+ private SettingsButton importSkinsButton = null!;
+
+ [BackgroundDependencyLoader]
+ private void load(LegacyImportManager? legacyImportManager)
+ {
+ if (legacyImportManager?.SupportsImportFromStable != true)
+ return;
+
+ AddRange(new[]
+ {
+ importBeatmapsButton = new SettingsButton
+ {
+ Text = @"Import beatmaps from stable",
+ Action = () =>
+ {
+ importBeatmapsButton.Enabled.Value = false;
+ legacyImportManager.ImportFromStableAsync(StableContent.Beatmaps).ContinueWith(_ => Schedule(() => importBeatmapsButton.Enabled.Value = true));
+ }
+ },
+ importSkinsButton = new SettingsButton
+ {
+ Text = @"Import skins from stable",
+ Action = () =>
+ {
+ importSkinsButton.Enabled.Value = false;
+ legacyImportManager.ImportFromStableAsync(StableContent.Skins).ContinueWith(_ => Schedule(() => importSkinsButton.Enabled.Value = true));
+ }
+ },
+ importCollectionsButton = new SettingsButton
+ {
+ Text = @"Import collections from stable",
+ Action = () =>
+ {
+ importCollectionsButton.Enabled.Value = false;
+ legacyImportManager.ImportFromStableAsync(StableContent.Collections).ContinueWith(_ => Schedule(() => importCollectionsButton.Enabled.Value = true));
+ }
+ },
+ importScoresButton = new SettingsButton
+ {
+ Text = @"Import scores from stable",
+ Action = () =>
+ {
+ importScoresButton.Enabled.Value = false;
+ legacyImportManager.ImportFromStableAsync(StableContent.Scores).ContinueWith(_ => Schedule(() => importScoresButton.Enabled.Value = true));
+ }
+ },
+ });
+ }
+ }
+}
diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/BeatmapSettings.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/BeatmapSettings.cs
index 9c0b86c862..4b1836ed86 100644
--- a/osu.Game/Overlays/Settings/Sections/Maintenance/BeatmapSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/Maintenance/BeatmapSettings.cs
@@ -6,7 +6,6 @@ using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Localisation;
using osu.Game.Beatmaps;
-using osu.Game.Database;
using osu.Game.Localisation;
namespace osu.Game.Overlays.Settings.Sections.Maintenance
@@ -15,28 +14,14 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance
{
protected override LocalisableString Header => CommonStrings.Beatmaps;
- private SettingsButton importBeatmapsButton = null!;
private SettingsButton deleteBeatmapsButton = null!;
private SettingsButton deleteBeatmapVideosButton = null!;
private SettingsButton restoreButton = null!;
private SettingsButton undeleteButton = null!;
[BackgroundDependencyLoader]
- private void load(BeatmapManager beatmaps, LegacyImportManager? legacyImportManager, IDialogOverlay? dialogOverlay)
+ private void load(BeatmapManager beatmaps, IDialogOverlay? dialogOverlay)
{
- if (legacyImportManager?.SupportsImportFromStable == true)
- {
- Add(importBeatmapsButton = new SettingsButton
- {
- Text = MaintenanceSettingsStrings.ImportBeatmapsFromStable,
- Action = () =>
- {
- importBeatmapsButton.Enabled.Value = false;
- legacyImportManager.ImportFromStableAsync(StableContent.Beatmaps).ContinueWith(_ => Schedule(() => importBeatmapsButton.Enabled.Value = true));
- }
- });
- }
-
Add(deleteBeatmapsButton = new DangerousSettingsButton
{
Text = MaintenanceSettingsStrings.DeleteAllBeatmaps,
diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/CollectionsSettings.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/CollectionsSettings.cs
index 4da5aaf492..09acc22c25 100644
--- a/osu.Game/Overlays/Settings/Sections/Maintenance/CollectionsSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/Maintenance/CollectionsSettings.cs
@@ -14,8 +14,6 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance
{
protected override LocalisableString Header => CommonStrings.Collections;
- private SettingsButton importCollectionsButton = null!;
-
[Resolved]
private RealmAccess realm { get; set; } = null!;
@@ -23,21 +21,8 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance
private INotificationOverlay? notificationOverlay { get; set; }
[BackgroundDependencyLoader]
- private void load(LegacyImportManager? legacyImportManager, IDialogOverlay? dialogOverlay)
+ private void load(IDialogOverlay? dialogOverlay)
{
- if (legacyImportManager?.SupportsImportFromStable == true)
- {
- Add(importCollectionsButton = new SettingsButton
- {
- Text = MaintenanceSettingsStrings.ImportCollectionsFromStable,
- Action = () =>
- {
- importCollectionsButton.Enabled.Value = false;
- legacyImportManager.ImportFromStableAsync(StableContent.Collections).ContinueWith(_ => Schedule(() => importCollectionsButton.Enabled.Value = true));
- }
- });
- }
-
Add(new DangerousSettingsButton
{
Text = MaintenanceSettingsStrings.DeleteAllCollections,
diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/ScoreSettings.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/ScoreSettings.cs
index 1f09854843..c6f4f1e1a5 100644
--- a/osu.Game/Overlays/Settings/Sections/Maintenance/ScoreSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/Maintenance/ScoreSettings.cs
@@ -4,7 +4,6 @@
using System.Threading.Tasks;
using osu.Framework.Allocation;
using osu.Framework.Localisation;
-using osu.Game.Database;
using osu.Game.Localisation;
using osu.Game.Scoring;
@@ -14,25 +13,11 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance
{
protected override LocalisableString Header => CommonStrings.Scores;
- private SettingsButton importScoresButton = null!;
private SettingsButton deleteScoresButton = null!;
[BackgroundDependencyLoader]
- private void load(ScoreManager scores, LegacyImportManager? legacyImportManager, IDialogOverlay? dialogOverlay)
+ private void load(ScoreManager scores, IDialogOverlay? dialogOverlay)
{
- if (legacyImportManager?.SupportsImportFromStable == true)
- {
- Add(importScoresButton = new SettingsButton
- {
- Text = MaintenanceSettingsStrings.ImportScoresFromStable,
- Action = () =>
- {
- importScoresButton.Enabled.Value = false;
- legacyImportManager.ImportFromStableAsync(StableContent.Scores).ContinueWith(_ => Schedule(() => importScoresButton.Enabled.Value = true));
- }
- });
- }
-
Add(deleteScoresButton = new DangerousSettingsButton
{
Text = MaintenanceSettingsStrings.DeleteAllScores,
diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/SkinSettings.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/SkinSettings.cs
index e4185fe6c2..c3ac49af6d 100644
--- a/osu.Game/Overlays/Settings/Sections/Maintenance/SkinSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/Maintenance/SkinSettings.cs
@@ -4,7 +4,6 @@
using System.Threading.Tasks;
using osu.Framework.Allocation;
using osu.Framework.Localisation;
-using osu.Game.Database;
using osu.Game.Localisation;
using osu.Game.Skinning;
@@ -14,25 +13,11 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance
{
protected override LocalisableString Header => CommonStrings.Skins;
- private SettingsButton importSkinsButton = null!;
private SettingsButton deleteSkinsButton = null!;
[BackgroundDependencyLoader]
- private void load(SkinManager skins, LegacyImportManager? legacyImportManager, IDialogOverlay? dialogOverlay)
+ private void load(SkinManager skins, IDialogOverlay? dialogOverlay)
{
- if (legacyImportManager?.SupportsImportFromStable == true)
- {
- Add(importSkinsButton = new SettingsButton
- {
- Text = MaintenanceSettingsStrings.ImportSkinsFromStable,
- Action = () =>
- {
- importSkinsButton.Enabled.Value = false;
- legacyImportManager.ImportFromStableAsync(StableContent.Skins).ContinueWith(_ => Schedule(() => importSkinsButton.Enabled.Value = true));
- }
- });
- }
-
Add(deleteSkinsButton = new DangerousSettingsButton
{
Text = MaintenanceSettingsStrings.DeleteAllSkins,