From 596044e19d79ef0e16908426201a7c97eb8e77da Mon Sep 17 00:00:00 2001 From: Aergwyn Date: Fri, 19 Jan 2018 17:25:32 +0100 Subject: [PATCH 1/2] show beatmapsets with pending deletion in osu!direct --- osu.Game/Overlays/DirectOverlay.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/osu.Game/Overlays/DirectOverlay.cs b/osu.Game/Overlays/DirectOverlay.cs index d5acb9dc86..efd54bec82 100644 --- a/osu.Game/Overlays/DirectOverlay.cs +++ b/osu.Game/Overlays/DirectOverlay.cs @@ -298,13 +298,15 @@ namespace osu.Game.Overlays Task.Run(() => { var onlineIds = response.Select(r => r.OnlineBeatmapSetID).ToList(); - var presentOnlineIds = beatmaps.QueryBeatmapSets(s => onlineIds.Contains(s.OnlineBeatmapSetID)).Select(r => r.OnlineBeatmapSetID).ToList(); - var sets = response.Select(r => r.ToBeatmapSet(rulesets)).Where(b => !presentOnlineIds.Contains(b.OnlineBeatmapSetID)).ToList(); + var presentSets = beatmaps.QueryBeatmapSets(s => onlineIds.Contains(s.OnlineBeatmapSetID)).ToList(); + + var responseSets = response.Select(r => r.ToBeatmapSet(rulesets)).ToList(); + var finalSets = responseSets.Where(b => !presentSets.Any(s => s.OnlineBeatmapSetID == b.OnlineBeatmapSetID && !s.DeletePending)).ToList(); // may not need scheduling; loads async internally. Schedule(() => { - BeatmapSets = sets; + BeatmapSets = finalSets; recreatePanels(Filter.DisplayStyleControl.DisplayStyle.Value); }); }); From 82c882288824696b0e6011f9ee57e38ad3bdf2b4 Mon Sep 17 00:00:00 2001 From: Aergwyn Date: Mon, 22 Jan 2018 08:04:14 +0100 Subject: [PATCH 2/2] we need to go back reverted change and instead check `DeletePending` when retrieving existing online IDs --- osu.Game/Overlays/DirectOverlay.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/osu.Game/Overlays/DirectOverlay.cs b/osu.Game/Overlays/DirectOverlay.cs index efd54bec82..05b5bba09c 100644 --- a/osu.Game/Overlays/DirectOverlay.cs +++ b/osu.Game/Overlays/DirectOverlay.cs @@ -298,15 +298,13 @@ namespace osu.Game.Overlays Task.Run(() => { var onlineIds = response.Select(r => r.OnlineBeatmapSetID).ToList(); - var presentSets = beatmaps.QueryBeatmapSets(s => onlineIds.Contains(s.OnlineBeatmapSetID)).ToList(); - - var responseSets = response.Select(r => r.ToBeatmapSet(rulesets)).ToList(); - var finalSets = responseSets.Where(b => !presentSets.Any(s => s.OnlineBeatmapSetID == b.OnlineBeatmapSetID && !s.DeletePending)).ToList(); + var presentOnlineIds = beatmaps.QueryBeatmapSets(s => onlineIds.Contains(s.OnlineBeatmapSetID) && !s.DeletePending).Select(r => r.OnlineBeatmapSetID).ToList(); + var sets = response.Select(r => r.ToBeatmapSet(rulesets)).Where(b => !presentOnlineIds.Contains(b.OnlineBeatmapSetID)).ToList(); // may not need scheduling; loads async internally. Schedule(() => { - BeatmapSets = finalSets; + BeatmapSets = sets; recreatePanels(Filter.DisplayStyleControl.DisplayStyle.Value); }); });