1
0
mirror of https://github.com/ppy/osu.git synced 2024-10-01 02:17:25 +08:00
Commit Graph

7136 Commits

Author SHA1 Message Date
Dean Herbert
e9e3e024a1 Update all usages of QueryAsyncWithNotifications to use new Register pathway 2022-01-23 20:28:04 +09:00
Salman Ahmed
648e7f6bbc Handle controls with dragging state wrapped in underlying components
I'm not 100% sure about this approach but it'll do for now.
2022-01-23 05:41:16 +03:00
Salman Ahmed
f4c7a332c3 Add IExpandable support for SettingsItem<T> 2022-01-23 05:41:16 +03:00
Salman Ahmed
326f12f847 Add IExpandable support for SettingsToolboxGroup 2022-01-23 05:41:16 +03:00
Salman Ahmed
62a2bccd76 Abstractify expansion logic from ExpandingButtonContainer 2022-01-23 05:41:16 +03:00
Dean Herbert
287d70d728 Merge branch 'realm-stable-subscriptions' into music-controller-less-population 2022-01-22 14:37:39 +09:00
Dean Herbert
6a076a684e Merge branch 'realm-context-use-update-when-feasible' into realm-stable-subscriptions 2022-01-22 13:14:25 +09:00
Dean Herbert
25dbe6b27c Fix unused null assignment 2022-01-22 12:58:30 +09:00
Dean Herbert
7025191fdd
Move target field outside of Run usage
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-01-22 12:02:44 +09:00
Salman Ahmed
81b07dee56 Introduce IExpandable interface 2022-01-21 18:41:19 +03:00
Dean Herbert
ad3a01dc06 Use a more reliable method of reviving the update thread realm after blocking 2022-01-21 22:44:56 +09:00
Dean Herbert
a86c0014fe Remove unnecessary exception/check 2022-01-21 20:07:43 +09:00
Dean Herbert
63226f7def Remove pointless initial MusicController beatmap set population
Looks to pass tests and all usages look safe enough.
2022-01-21 20:05:35 +09:00
Dean Herbert
1f157d729d Update existing subscriptions to new style
Fix missing detach calls in `MusicController`
2022-01-21 20:05:03 +09:00
Dean Herbert
114c9e8c1f Update all usages of CreateContext to use either Run or Write 2022-01-21 17:27:08 +09:00
Dean Herbert
a5d2047f05 Fix various cases of creating realm contexts from update thread when not necessary 2022-01-21 01:44:56 +09:00
Dan Balasescu
4f86a2cb61
Merge pull request #16525 from bdach/beatmap-listing-overflow-and-scrolling
Improve usability of expanded card content on beatmap listing
2022-01-20 14:14:44 +09:00
Bartłomiej Dach
b8184a3005
Fix news sidebar assuming returned posts are always from given year 2022-01-19 23:13:30 +01:00
Bartłomiej Dach
4cad5890c6
Add test coverage for news sidebar showing wrong headers 2022-01-19 23:12:35 +01:00
Bartłomiej Dach
33ab356dc5
Fix expanded card content being clipped on beatmap listing overlay 2022-01-19 22:10:05 +01:00
Dean Herbert
d10d657073
Merge pull request #16421 from Susko3/textbox-AllowIme-false
Add `AllowIme => false` to text boxes where applicable
2022-01-18 18:02:47 +09:00
Dean Herbert
39c9c4985b
Merge branch 'master' into textbox-AllowIme-false 2022-01-18 17:03:51 +09:00
Dean Herbert
1b62a685f3 Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-18 15:07:59 +09:00
Dan Balasescu
e9c96908d5
Merge pull request #16481 from peppy/fix-scores-container-tests
Rewrite `TestSceneScoresContainer` to work again
2022-01-17 20:39:14 +09:00
Dean Herbert
12fd279b7d Add test to check full flow of rebinding gameplay key bindings
Addresses a regression found in realm PR that was not covered by tests.
2022-01-17 16:00:17 +09:00
Dean Herbert
51ade3251d Improve ScoresContainer loading overlay logic to work better with tests 2022-01-17 15:15:39 +09:00
Dean Herbert
88bf406c22 Fix null reference in equality comparison causing beatmap set overlay to crash 2022-01-17 13:05:55 +09:00
Dean Herbert
5601f6f1fe Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-17 12:29:02 +09:00
Susko3
6e4214de4d Move VersionManager from osu.Desktop to osu.Game 2022-01-15 19:42:38 +01:00
Bartłomiej Dach
03e4ec4214
Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-15 14:45:42 +01:00
Susko3
19467e58c1 Remove unused params from BDL methods 2022-01-15 01:06:39 +01:00
Dean Herbert
3a95425a9e Remove left-over methods in MusicController 2022-01-14 19:55:49 +09:00
Dean Herbert
51251e3204 Fix CI reported warnings 2022-01-12 22:39:00 +09:00
Dean Herbert
017285b694 Update MusicController to handle deletions more correctly 2022-01-12 17:49:11 +09:00
Dean Herbert
72656ae01e Fix beatmap restore/undelete flows 2022-01-12 17:49:11 +09:00
Dean Herbert
46206f70d6 Fix beatmap mass deletion flow 2022-01-12 17:49:11 +09:00
Dean Herbert
e8dcbaf29a Fix intro screen hitting null reference if intro beatmap is unavailable 2022-01-12 17:49:11 +09:00
Dean Herbert
c33e163178 Bind ruleset to toolbar later for safety 2022-01-12 17:49:10 +09:00
Dean Herbert
3811bd8520 Fix some null inspections 2022-01-12 17:00:16 +09:00
Dean Herbert
33060990b7 Temporarily disable WorkingBeatmapCache and fix multiple invalid data flows 2022-01-12 17:00:16 +09:00
Dean Herbert
1d536fd0bc Start introducing ILive 2022-01-12 17:00:16 +09:00
Dean Herbert
abd72c496b "Update" MusicController 2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
Dean Herbert
4f6a05ce3d Reimplement all query methods 2022-01-12 16:57:27 +09:00
Dean Herbert
53792811b2 more fixes (almost compiles, except ruleset and manager) 2022-01-12 16:57:27 +09:00
Dean Herbert
3ecd889fef Replace EF RulesetStore with realm version
Pass full EF context factory to `RealmContextFactory` for migration purposes
2022-01-12 16:39:36 +09:00
Dean Herbert
11e07c1137 Add button to compact realm on demand
In general we're doing things correctly so the realm file shouldn't
expand (unless mass deletions are made from it), but this is a nice way
to manually confirm the behaviour.

Sometimes if using realm studio with osu! running, for instance, the
realm file size can blow out of proportion. This will recover from such
cases.

Note that calling `RealmFactory.Compact` itself is not enough, as it
will fail unless all instances of the realm have been closed.
2022-01-12 15:22:36 +09:00
Susko3
a0842838e7 Add AllowIme => false where applicable
Also adds `AllowWordNavigation => false` to password text box.
2022-01-12 00:15:17 +01:00
r00ster
a8c3fdd383
Update outdated OpenTabletDriver FAQ links 2022-01-11 16:11:07 +01:00
Dan Balasescu
af9fad00c3 Merge branch 'master' into async-deadlock-safety 2022-01-10 16:11:09 +09:00
Bartłomiej Dach
2e9ba40ae2
Add references to web implementation wrt property used 2022-01-09 14:46:15 +01:00
Bartłomiej Dach
12c8243a9b
Fade out inactive player rows on user ranking table 2022-01-09 14:42:26 +01:00
Bartłomiej Dach
9e84e31eac
Add score time to beatmap set overlay scoreboard table 2022-01-07 19:18:16 +01:00
Bartłomiej Dach
87f7c7e691
Implement scoreboard-specific time formatting 2022-01-07 19:18:16 +01:00
Bartłomiej Dach
881fa2b86b
Add basic test scene for scoreboard time 2022-01-07 19:18:16 +01:00
Dean Herbert
3cd996eb4a Merge branch 'master' into async-deadlock-safety 2022-01-07 17:28:59 +09:00
Bartłomiej Dach
8f744c99ee
Fix settings toolbox toggle button starting in incorrect state
While displaying replays, the colour of the toolbox toggle button would
not match the actual state of the rest of the toolbox, i.e. both buttons
would be white, even though the "playback settings" section was expanded
and as such should have a yellow toggle button.

In the case of the replay player, the failure scenario was as follows:

1. `SettingsToolboxGroup` calls `updateExpanded()` in its BDL to update
   the initial state of the toolbox, including the toggle button
   colour, by adding a colour fade transform.

2. An ancestor of both the toolbox groups - `PlayerSettingsOverlay`,
   which is a `VisibilityContainer` - calls `FinishTransforms(true)` in
   its `LoadCompleteAsync()`, therefore instantly applying the colour
   from point (1) to the toggle button instantly.

3. However, `IconButton` inherits from `OsuAnimatedButton`. And
   `OsuAnimatedButton` changes its colour in `LoadComplete()`, therefore
   undoing the instant application from point (2).

This conjunction of circumstances is instrumental to reproducing the
bug, because if the `FinishTransforms(true)` call wasn't there, point
(3) wouldn't matter - the transform would get applied at some
indeterminate point in the future, ignoring the write from
`OsuAnimatedButton`.

As for the fix, move the `updateExpanded()` call in
`SettingsToolboxGroup` to `LoadComplete()` to avoid the above
unfortunate order. Applying initial visual state in `LoadComplete()` is
the idiomatic style of doing things these days anyhow.
2022-01-06 20:45:56 +01:00
Dean Herbert
e02863f780 Avoid accessing DrawWidth from invalidation 2022-01-07 01:24:30 +09:00
Dean Herbert
f703c5f038 Add comment and reduce how often ChildrenOfType is invoked in ExpandingButtonContainer 2022-01-06 23:38:54 +09:00
Dean Herbert
5aca2dd4ce Hide header text when it won't fit in the toolbox group 2022-01-06 23:08:50 +09:00
Dean Herbert
690b425380 Move enum local to usage 2022-01-06 22:56:56 +09:00
Dean Herbert
00177a3ae1 Update usages to new naming 2022-01-06 22:54:43 +09:00
Dean Herbert
3ea7588a91 Update continuation usages to use GetCompletedResult 2022-01-06 22:53:07 +09:00
Dean Herbert
cea9cab4dc Use ExpandingButtonContainer in editor composer 2022-01-06 21:10:45 +09:00
Dean Herbert
5baaf356aa Split out SettingsToolboxGroup from PlayerSettingsGroup 2022-01-06 21:05:00 +09:00
Dean Herbert
77980196c5 Split out expanding container logic from settings sidebar 2022-01-06 21:02:29 +09:00
Dean Herbert
39650ce7e9
Merge pull request #16307 from peppy/beatmap-listing-bottom-padding
Add padding to the bottom of the beatmap listing overlay to avoid hovered panels exceeding visible bounds
2022-01-04 14:14:42 +09:00
Dean Herbert
73b40e6833 Replace usage of .Result with .WaitSafelyForResult 2022-01-04 11:51:41 +09:00
Bartłomiej Dach
de33b420ab
Add safety against performing operation on non-alive foundContent 2022-01-03 20:02:46 +01:00
Bartłomiej Dach
586f158920
Remove initial foundContent value
It always is replaced on the first search anyway, and just remains
forever in the overlay otherwise.
2022-01-03 19:52:42 +01:00
Bartłomiej Dach
6650a468e0
Fix and simplify very broken beatmap listing content swap-out logic
The beatmap listing content swap-out logic was already a source of
several problems, and several attempts of fixing it were made. But as it
turns out it was terminally broken in several aspects.

* The `BypassAutoSizeAxes` juggling was finicky and ugly, and didn't
  really look much different than an instant fade. Therefore, all fade
  durations and manipulations of `BypassAutoSizeAxes` are removed.

* The transform sequence juggling the `BypassAutoSizeAxes` manipulations
  was enqueued on the content which is being in the process of fading
  out. That was partially fixed in 25e38560, but as it turns out, that
  only works if `lastContent` is one of the two placeholder drawables
  (results not found / supporter required to use filter).

  It would not work if `lastContent` is a
  `ReverseChildIDFillFlowContainer` with cards from a previous search in
  it.
2022-01-03 19:51:46 +01:00
Bartłomiej Dach
ef9f56e585
Fix bad check if content is placeholder
The `lastContent == foundContent` check, last touched in a49a4329, is
terminally broken, as it would always be false. `foundContent` is
mutated when a new card load task is started in `onSearchFinished()`,
which is *before* the aforementioned check.

The code prior to a49a4329 was checking against the two static reused
placeholder drawables which was the correct check to apply, and this
commit reverts to using a variant of that check.
2022-01-03 19:51:20 +01:00
Bartłomiej Dach
97439c3df1
Rename method to reflect what it actually does 2022-01-03 19:30:17 +01:00
Bartłomiej Dach
7c246670b4
Add padding to bottom of spotlights ranking view to avoid hovered panels exceeding visible bounds 2022-01-03 18:43:20 +01:00
Dean Herbert
b9851b278d Add padding to the bottom of the beatmap listing overlay to avoid hovered panels exceeding visible bounds
Closes https://github.com/ppy/osu/issues/16120.
2022-01-03 13:18:28 +09:00
Dean Herbert
6356180b6a Remove unnecessary code and fix double nesting causing filtering to not work 2022-01-03 12:53:58 +09:00
Dean Herbert
bb54f438aa Merge branch 'master' into positional-sounds-strength-adjustment 2022-01-03 12:40:56 +09:00
Joseph Madamba
7de43e3aba Fix most open compound words in identifiers being closed 2021-12-27 20:26:28 -08:00
Joseph Madamba
98524d60a4 Fix clear identifier typos 2021-12-27 20:26:28 -08:00
Dan Balasescu
d36fe3af09
Merge pull request #16238 from peppy/fix-incorrect-delegate-capture
Fix incorrect delegate capture leading to slow leak of audio tracks
2021-12-24 21:34:04 +09:00
Dean Herbert
2ee3e61983
Merge branch 'master' into beatmap-card/extra-on-listing 2021-12-24 19:02:51 +09:00
Dean Herbert
cc7089c3f4 Cancel more liberally 2021-12-24 19:00:09 +09:00
Dean Herbert
d602aebebb Add missing cancellation token and rename load task variable to match purpose 2021-12-24 18:58:31 +09:00
Dean Herbert
842d508aee Fix incorrect delgate capture leading to slow leak of audio tracks
During profile, it was found that the `Completed` delegate was
incorrectly also capturing `lastTrack`, leading to an unexpected
reference chain that led to a memory leak over a long period of time.

This solves the issue by moving the delegate construction to its own
method, where it won't capture the other variables.
2021-12-24 18:39:29 +09:00
Bartłomiej Dach
5cbaa028eb
Use extracted ruleset config cache implementation in DI 2021-12-23 19:02:10 +01:00
Bartłomiej Dach
a49a4329ee
Add capability to switch between card sizes 2021-12-23 15:55:37 +01:00
Bartłomiej Dach
d0427ec85f
Add support card size tab control to beatmap listing 2021-12-23 15:55:37 +01:00
Bartłomiej Dach
1876617d8e
Implement beatmap card size tab control 2021-12-23 15:55:36 +01:00
Bartłomiej Dach
25e38560ce
Fix placeholder drawables on beatmap listing not always hiding correctly
`BeatmapListingOverlay.addContentToPlaceholder()`, in order to make
transitions between different beatmap listing content (whether it is
actual cards, or placeholders for no beatmaps found/supporter-specific
filters chosen), would set `BypassAutoSizeAxes = Y` on content as it is
fading out, to make the transition smoother. The property in question
was supposed to be getting restored to `None` on the next show.

In testing scenarios, it sometimes turned out that this wasn't the case,
therefore making the placeholders effectively not show - while they
were present and fully opaque, they would be the only child of
an auto-sized container with `BypassAutoSizeAxes = Y`, so the parent
auto-sized to a zero height, which logically follows from the premise,
but is not what was desired.

This in turn was caused by the fact that the `BypassAutoSizeAxes = Y`
set was scheduled, and sometimes it would be scheduled in such a way
that the drawable would cease to be present on the next frame due to its
alpha being past the cutoff point of 0.0001. Therefore the scheduled set
would not execute until the *next* time the placeholder was shown,
therefore causing the bug.

Fix by ensuring that the placeholder drawables are always present if
their schedulers have any tasks enqueued, on top of the usual checks of
alpha and scale performed via the base implementation.
2021-12-22 15:05:23 +01:00
Bartłomiej Dach
88d4e95ad8
Rename BeatmapCard{ => Normal} 2021-12-21 08:26:21 +01:00
Bartłomiej Dach
a6ccbafc77
Fix rank graph showing for unranked users 2021-12-19 13:40:22 +01:00
mk-56
fd5af1fbe7 Code refactor and name changes
cleaned code up with Jetbrains i hope it suffices
2021-12-17 13:16:06 +01:00
Bartłomiej Dach
54790bb758
Merge branch 'master' into fix-realm-post-storage-migration-failure 2021-12-17 00:19:46 +01:00
Dean Herbert
aa0813ff05
Merge pull request #16109 from smoogipoo/chat-overlay-multiplayer-removal
Don't show multiplayer channels in chat overlay
2021-12-16 17:39:45 +09:00
Dan Balasescu
3f1d747b7a
Merge pull request #16090 from peppy/fix-scroll-speed-toast-sample-spam
Fix toast popups spamming samples when adjusting osu!mania scroll speed during gameplay
2021-12-16 17:31:36 +09:00
Dan Balasescu
488374b4a2 Don't show multiplayer channels in chat overlay 2021-12-16 16:41:47 +09:00
Susko3
643cee4f83 Merge branch 'master' into number-textbox-only-numbers 2021-12-15 09:13:19 +01:00
Susko3
b326ccc196 Move logic to framework and update all usages 2021-12-15 07:13:24 +01:00
Dean Herbert
0c11fe7413 Fix toast popups spamming samples when adjusting osu!mania scroll speed during gameplay
Not the most robust of fixes, but as per the reasoning described in the
issue thread, a proper fix will take considerably more effort. This
intends to fix the issue first and foremost, as it sounds so bad I'd
want to mute my sound before adjusting currently.

Closes #15718.
2021-12-15 12:45:23 +09:00
Dean Herbert
441b7baa93 Provide a realm factory to usages of ToLive/RealmLive 2021-12-14 14:26:34 +09:00