1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-25 23:30:51 +08:00

Simplify invalidation logic

The only case where this was checking is guaranteed by realm to only be called once.
This commit is contained in:
Dean Herbert
2023-12-18 20:10:31 +09:00
Unverified
parent 87b7699fcc
commit 6fa1f5ef9b
+8 -9
View File
@@ -168,7 +168,7 @@ namespace osu.Game.Screens.Select
applyActiveCriteria(false);
if (loadedTestBeatmaps)
invalidateAfterChange(true);
invalidateAfterChange();
// Restore selection
if (selectedBeatmapBefore != null && newRoot.BeatmapSetsByID.TryGetValue(selectedBeatmapBefore.BeatmapSet!.ID, out var newSelectionCandidates))
@@ -298,7 +298,7 @@ namespace osu.Game.Screens.Select
removeBeatmapSet(id);
}
invalidateAfterChange(!BeatmapSetsLoaded);
invalidateAfterChange();
BeatmapSetsLoaded = true;
return;
}
@@ -349,7 +349,7 @@ namespace osu.Game.Screens.Select
}
}
invalidateAfterChange(!BeatmapSetsLoaded);
invalidateAfterChange();
}
private void beatmapsChanged(IRealmCollection<BeatmapInfo> sender, ChangeSet? changes)
@@ -378,7 +378,7 @@ namespace osu.Game.Screens.Select
}
if (changed)
invalidateAfterChange(true);
invalidateAfterChange();
}
private IQueryable<BeatmapSetInfo> getBeatmapSets(Realm realm) => realm.All<BeatmapSetInfo>().Where(s => !s.DeletePending && !s.Protected);
@@ -386,7 +386,7 @@ namespace osu.Game.Screens.Select
public void RemoveBeatmapSet(BeatmapSetInfo beatmapSet) => Schedule(() =>
{
removeBeatmapSet(beatmapSet.ID);
invalidateAfterChange(true);
invalidateAfterChange();
});
private void removeBeatmapSet(Guid beatmapSetID)
@@ -409,7 +409,7 @@ namespace osu.Game.Screens.Select
public void UpdateBeatmapSet(BeatmapSetInfo beatmapSet) => Schedule(() =>
{
updateBeatmapSet(beatmapSet);
invalidateAfterChange(true);
invalidateAfterChange();
});
private void updateBeatmapSet(BeatmapSetInfo beatmapSet)
@@ -752,15 +752,14 @@ namespace osu.Game.Screens.Select
}
}
private void invalidateAfterChange(bool invokeSetsChangedEvent)
private void invalidateAfterChange()
{
itemsCache.Invalidate();
if (!Scroll.UserScrolling)
ScrollToSelected(true);
if (invokeSetsChangedEvent)
BeatmapSetsChanged?.Invoke();
BeatmapSetsChanged?.Invoke();
}
private float? scrollTarget;