1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-06 16:47:52 +08:00
Commit Graph

7066 Commits

Author SHA1 Message Date
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
Dean Herbert
bff02bedbf Rename APIScoreInfo to APIScore 2021-12-10 16:11:49 +09:00
Dean Herbert
bf1418bafc Use OnlineID instead of legacy IDs for equality and lookups 2021-12-10 16:11:48 +09:00
Susko3
0b0ff36154 Allow only number characters parseable by int.TryParse
char.IsNumber() is too broad, allowing full width and other numbers.
2021-12-07 20:06:22 +01:00
Dean Herbert
d6e68feadc
Merge pull request #15948 from bdach/beatmap-card/difficulty-dropdown
Add difficulty dropdown to beatmap card
2021-12-07 23:40:06 +09:00
Bartłomiej Dach
999bba439f
Clarify usages of reverse child ID flow with inline comments 2021-12-06 21:02:40 +01:00
Dean Herbert
452fa93444 Merge branch 'master' into realm-integration/skins-rebase 2021-12-06 15:21:02 +09:00
Bartłomiej Dach
af10223ac4
Add reverse fill flows & depth specs at usage sites for correct Z-ordering 2021-12-05 20:07:46 +01:00
Bartłomiej Dach
38702beabf
Merge branch 'master' into i-ruleset-store 2021-12-04 15:05:39 +01:00
Dan Balasescu
4145a16d5b
Merge pull request #15920 from peppy/clean-up-unused-resolves
Clean up unused resolved properties
2021-12-03 20:08:48 +09:00
Dean Herbert
1eed2436e6 Clean up unused resolved properties 2021-12-03 18:49:49 +09:00
Dean Herbert
2acf46154a Remove many unused resolutions of RulesetStore 2021-12-03 18:16:29 +09:00
Dean Herbert
e75e209053 Cache and consume IRulesetStore where feasible 2021-12-03 18:16:01 +09:00
Dean Herbert
aaa46960b3 Reword mouse wheel disable setting to better explain its purpose 2021-12-03 17:18:07 +09:00
Dean Herbert
e855a49833 Add test coverage of default skin edit and export 2021-12-02 14:01:18 +09:00
Dean Herbert
0a14acfd83 Fix incorrect conditional on export/mutate feasability of skin 2021-12-02 13:41:58 +09:00
Dean Herbert
65f0a80c97 Merge branch 'master' into realm-integration/skins-rebase 2021-12-02 13:37:20 +09:00
Dean Herbert
c82195390f Update usage of SubscribeForNotifications 2021-12-02 13:24:16 +09:00
Dean Herbert
8ce7467e97 Fix ordering of skins in dropdown being reverse of expected 2021-12-01 12:50:47 +09:00
Dean Herbert
03e1305b3f Fix toast display potentially causing a child mutation before load complete 2021-12-01 01:55:17 +09:00
Dean Herbert
6877867467 Make default fallback logic more robust 2021-11-29 18:28:25 +09:00
Dean Herbert
0d18c83d75 Simplify deletion by adding always present conditionals to Delete method 2021-11-29 18:28:25 +09:00
Dean Herbert
f6a3709060 Store default skins to database 2021-11-29 18:28:25 +09:00
Dean Herbert
c629a7a36f Fix random selection and avoid using legacy events for handling skin import/deletion 2021-11-29 18:28:25 +09:00
Dean Herbert
744a5b33f5 Rewrite SkinSection to use realm subscriptions and databased defaults 2021-11-29 18:28:25 +09:00
Dean Herbert
3db5646fa8 Create Guid constants for system skins (and store skin choice to configuration as guid) 2021-11-29 18:28:25 +09:00
mk-56
c3fb793762 Fixed the problems that were brought up and deleted the old bind logic 2021-11-28 14:06:53 +01:00
mk-56
ff9c68dd6a cleanup 2021-11-28 03:28:35 +01:00
MK56
753c1c7fea
Merge branch 'ppy:master' into positional-sounds-strength-adjustment 2021-11-28 02:59:36 +01:00
mk-56
eaa464e548 Initial implementation of adjustable positional hitobject audio strength 2021-11-28 02:58:08 +01:00
Dean Herbert
51a7c60eec
Merge pull request #15835 from bdach/off-thread-transforms-unbind
Fix instances of components adding off-thread transforms on unbind
2021-11-28 09:27:43 +09:00
Bartłomiej Dach
db49d99cc0
Ensure correct disabled ruleset callback scheduling in ruleset selector 2021-11-27 15:28:23 +01:00
Bartłomiej Dach
05f7ea6b6d
Remove mentions of "panel" and "direct" from names of old download buttons 2021-11-27 15:08:03 +01:00
Bartłomiej Dach
a043d1e427
Move old beatmap download button to more general namespace 2021-11-27 15:06:57 +01:00
Bartłomiej Dach
251ab183a0
Move beatmap play button nearer its only remaining usage 2021-11-27 15:04:05 +01:00
Bartłomiej Dach
7419682334
Move icon pill to beatmap card-specific namespace 2021-11-27 15:01:48 +01:00
Bartłomiej Dach
6773877a40
Remove no-longer-used beatmap panels 2021-11-27 15:00:06 +01:00
Bartłomiej Dach
f4b7db5a7b
Ensure correct disabled beatmap callback scheduling in now playing overlay 2021-11-27 14:36:34 +01:00
Dean Herbert
89b4e5cffb Rename mass deletion confirmation dialog 2021-11-26 18:18:45 +09:00
Bartłomiej Dach
ec2265d5bb
Use beatmap cards in spotlights layout 2021-11-25 22:30:47 +01:00
Bartłomiej Dach
42b09fd1ec
Use beatmap cards in user profile overlay 2021-11-25 22:30:47 +01:00
Bartłomiej Dach
0f9ebe3d5d
Use beatmap cards in beatmap listing overlay 2021-11-25 22:30:46 +01:00
Dan Balasescu
f712aeee01
Merge pull request #15795 from peppy/realm-integration/separate-download-flow
Split out download logic from main manager classes
2021-11-25 20:59:23 +09:00
Dan Balasescu
d3a4890c31
Merge branch 'master' into realm-integration/stable-export-flow 2021-11-25 19:06:18 +09:00
Dean Herbert
e2ebcf7a26 Remove unnecessary manager parameter
Confused why I added this in the first place..
2021-11-25 18:36:03 +09:00
Dean Herbert
716543b5b3 Move beatmap download logic out of BeatmapManager 2021-11-25 17:29:41 +09:00
Dean Herbert
79459c1aeb Fix typo in class and variable names 2021-11-25 17:12:15 +09:00
Dean Herbert
cc1b91e4bd Split out legacy model export logic into LegacyModelExporter classes 2021-11-25 16:41:12 +09:00
Dean Herbert
9dcb20a821 Rename Stable to Legacy and add xmldoc 2021-11-25 15:39:05 +09:00
Dean Herbert
183b95cbc2 Rename BeatmapSetOnlineStatus to BeatmapOnlineStatus
This variable is used at more than just a set level.
2021-11-24 18:42:49 +09:00
Dan Balasescu
8ce5324c8b
Merge pull request #15772 from peppy/remove-model-list-inits
Initialise `BeatmapSet.Beatmaps` list at construction time
2021-11-24 16:41:19 +09:00
Dean Herbert
a7853fc9cc Fix cases of known-non-null 2021-11-24 14:26:25 +09:00
Dan Balasescu
84268c3d85 Merge branch 'master' into realm-ruleset-keybinding-short-name 2021-11-24 13:48:48 +09:00
Dan Balasescu
6183d1cd46
Merge pull request #15769 from peppy/model-equality-consistency
Update cases where equality can be used instead of primary key equality
2021-11-24 13:45:57 +09:00
Dean Herbert
729f681938 Update cases where equality can be used instead of primary key equality 2021-11-24 12:49:57 +09:00
Dean Herbert
0eea026afb Remove null checks on CreateInstance() calls 2021-11-24 12:23:09 +09:00
Bartłomiej Dach
0d409fa33e
Merge branch 'master' into realm-ruleset-keybinding-short-name 2021-11-23 20:18:58 +01:00
Dan Balasescu
fd4d5e98a7
Merge pull request #15745 from bdach/settings-number-box-stack-overflow
Fix crashes on trying to play back replays of seeded mods with seed value over 1 billion
2021-11-23 16:36:05 +09:00
Dean Herbert
0989d6a92e Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name 2021-11-23 14:55:40 +09:00
Dean Herbert
feb983d5bd Rename Debug namespace to avoid collisions 2021-11-23 13:09:41 +09:00
Bartłomiej Dach
4a9f080f3c
Accept full range of int in SettingsNumberBox
This fixes stack overflow exceptions that would arise when a
`Current.Value` of 1 billion or more was set on a `SettingsNumberBox`.
The stack overflow was caused by the "maximum 9 digits" spec. If a value
technically within `int` bounds, but larger than 1 billion (in the range
[1,000,000,000; 2,147,483,647], to be more precise), a feedback loop
between the setting control's `Current` and its inner text box's
`Current` would occur, wherein the last digit would be trimmed and then
re-appended again forevermore.

To resolve, remove the offending spec and rely on `int.TryParse`
entirely to be able to discern overflow range. Additionally, UX of the
text box is slightly changed to notify when the `int` range is exceeded
with a red flash.

This behaviour would not have been possible to implement without recent
framework-side fixes to text box (removal of text set scheduling).
2021-11-22 20:49:14 +01:00
Dean Herbert
d94b27a8a2 Switch realm ruleset key bindings to use ruleset's ShortName as key 2021-11-22 18:52:30 +09:00
Dan Balasescu
698b6c4242
Merge pull request #15668 from peppy/key-repeat
Update `KeyBindingContainer` usage to block key repeat where applicable
2021-11-18 15:21:35 +09:00
Dean Herbert
db4e4c982c Add hover effect to supporter button 2021-11-18 13:35:42 +09:00
Dean Herbert
66c307e0ee Remove usage of key repeat helper method 2021-11-18 13:13:36 +09:00
Dean Herbert
3de8125eac Update UI cases where repeat should not be handled 2021-11-18 13:13:36 +09:00
Joseph Madamba
cd5e379c48 Link osu!supporter icon to its web page 2021-11-17 14:43:34 -08:00
Dean Herbert
726a0cc091 Merge branch 'master' into beatmap-collection-inteface-types 2021-11-16 15:31:10 +09:00
Dean Herbert
68e2699043 Fix oversight in playlist matching logic 2021-11-16 12:35:18 +09:00
Dean Herbert
285b161da7 Update other usages of online ID comparisons to use new extension method 2021-11-15 14:44:08 +09:00
Dean Herbert
a4c11e8813 Use extension method to compare online IDs 2021-11-15 14:34:50 +09:00