Commit Graph

36 Commits

Author SHA1 Message Date
a05d7f4d8c Change carousel terminology to not use Children / InternalChildren 2022-07-21 16:06:06 +09:00
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
520d2d6cfa Fix beatmap carousel panels accepting input while marked as not-visible
This is an issue as carousel panels manage their own animated state. If
they are marked as not-visible (done at a higher level, from filtering
or update pathways) but clicked while fading out, they will animate back
to a visible state but not be marked as visible.

No tests for this one as it's probably not worthwhile to test (and hard
to do so). Manual testing can be done with the following patch:

```diff
diff --git a/osu.Game/Screens/Select/BeatmapCarousel.cs
b/osu.Game/Screens/Select/BeatmapCarousel.cs
index c3d340ac61..3372242acc 100644
--- a/osu.Game/Screens/Select/BeatmapCarousel.cs
+++ b/osu.Game/Screens/Select/BeatmapCarousel.cs
@@ -255,7 +255,7 @@ private void
beatmapSetsChanged(IRealmCollection<BeatmapSetInfo> sender, ChangeS
             }

             foreach (int i in changes.NewModifiedIndices)
-                UpdateBeatmapSet(sender[i].Detach());
+                Scheduler.AddDelayed(() =>
                 UpdateBeatmapSet(sender[i].Detach()), 100, true);

             foreach (int i in changes.InsertedIndices)
                 UpdateBeatmapSet(sender[i].Detach());

```

- Enter gameplay and adjust beatmap offset then return to song select
  and click the flashing panel.
OR
- Enter editor and save then return to song select and click the
  flashing panel.

Closes https://github.com/ppy/osu/discussions/17171.
2022-03-09 16:08:52 +09:00
eb25730b61 Revert "Merge pull request #16716 from peppy/carousel-less-invalidations"
This reverts commit 8d13e0514b, reversing
changes made to 95582a9023.
2022-02-05 16:12:58 +09:00
8917ab78f4 Reduce unnecessary container nesting and adjust empty state opacity slightly 2022-01-31 14:46:20 +09:00
c3e3b2019d Reduce overhead of ApplyState by tracking previous values
Even with pooling applied, there are overheads involved with transforms
when quickly cycling through the carousel.

The main goal here is to reduce the transforms in cases the reuse is
still in the same state. Avoiding firing `FadeIn` and `FadeOut` are the
main areas of saving.
2022-01-31 14:46:20 +09:00
a06287e76a Remove DrawableCarouselItem.Update updating of height
Marginal from a performance aspect, but reads better.
2022-01-31 14:46:20 +09:00
5d11db7753 Locallise ChildItems to DrawableCarouselBeatmapSet for clarity 2020-10-13 19:31:29 +09:00
37daefc2b5 Remove outdated comment 2020-10-13 19:12:33 +09:00
b1ddb08a4e Fix right click context menus appearing in incorrect locations 2020-10-13 18:01:12 +09:00
b536f571fd Move header height propagation to update for safety 2020-10-13 17:37:33 +09:00
ded09b78cb Avoid usage of AutoSize for DrawableCarouselItems in general 2020-10-13 17:37:33 +09:00
1da49073ab Calculate content height automatically 2020-10-13 17:37:33 +09:00
cfec4f4fc1 Extract header element from base DrawableCarouselItem class 2020-10-13 17:37:33 +09:00
82f9ca3de9 Bind to filter event changes in base drawable item 2020-10-13 17:37:33 +09:00
954d43ef56 Debounce state application events 2020-10-13 17:37:33 +09:00
0a978c6131 Add basic pooling setup 2020-10-13 17:37:33 +09:00
3143224e5b Refactor how drawable carousel items are constructed 2020-10-13 17:37:33 +09:00
91735ff367 Update MathUtils namespace usages 2020-01-09 13:43:44 +09:00
48716f8f2b Update framework 2019-08-21 13:29:50 +09:00
4ca34bd5e8 Update osu! in line with audio subsystem refactor 2019-05-28 17:06:01 +09:00
d7c09e7dbd Merge remote-tracking branch 'origin/master' into fix-new-inspections
# Conflicts:
#	osu.Game.Rulesets.Catch/Judgements/CatchDropletJudgement.cs
#	osu.Game.Rulesets.Catch/Judgements/CatchJudgement.cs
#	osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
#	osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
#	osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
#	osu.Game.Tests/Visual/SongSelect/TestCaseBeatmapScoresContainer.cs
#	osu.Game/Graphics/OsuFont.cs
#	osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
#	osu.Game/Overlays/Profile/Header/BadgeContainer.cs
#	osu.Game/Overlays/Profile/ProfileHeader.cs
#	osu.Game/Screens/Select/PlaySongSelect.cs
#	osu.Game/Skinning/LegacySkinDecoder.cs
2019-05-07 13:20:17 +09:00
a56e29347f Adjust namespaces 2019-04-02 14:51:28 +09:00
c39c37a18d Apply more missed cases 2019-04-01 12:44:46 +09:00
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
f27bd3ef3e OpenTK -> osuTK 2018-11-20 17:14:59 +09:00
99fc04c8af Change signature to new event handler 2018-10-02 12:02:47 +09:00
03084aa04b Revert async changes 2018-08-31 07:07:10 +09:00
e7a5816d27 Use GetAsync for all samples 2018-08-27 17:30:16 +09:00
0f37758314 Update framework 2018-07-21 16:21:53 +09:00
32a74f95a5 Normalize all the line endings 2018-04-13 18:26:38 +09:00
37d393bca0 Update licence headers 2018-01-05 20:21:19 +09:00
dfd7787b15 Move more overhead from ctor to BDL 2017-12-18 07:58:48 +09:00
c02ce16f47 Remove unnecessary capture 2017-12-17 03:04:57 +09:00
1b85952441 Cleanup and basic TestCase 2017-12-15 14:36:51 +09:00
78dd975a35 Initial carousel infrastructue changes 2017-12-15 14:36:51 +09:00