1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-06 23:07:44 +08:00
Commit Graph

2482 Commits

Author SHA1 Message Date
Dean Herbert
ad430a6277 Centralise hover state handling (and fix back-to-front conditionals) 2021-12-15 16:44:58 +09:00
Dean Herbert
6a1f535257 Refactor cancellation of expand to be more explicit 2021-12-15 16:38:19 +09:00
Dean Herbert
94d1a2aaca Remove unnecessary collapse call from BeatmapCard
This is already handled at the `BeatmapCardContent` level. This call
actually causes the buggy behaviour reported in
https://github.com/ppy/osu/discussions/16085.
2021-12-15 16:37:47 +09:00
Dean Herbert
7a9db22c52 Tidy up method naming and structure for expanded state changes 2021-12-15 16:29:12 +09:00
Dean Herbert
ef4ab74565 Also only expose Expanded state of BeatmapCard as read-only 2021-12-15 16:26:19 +09:00
Dean Herbert
41e6c24dad Expose Expanded state of BeatmapCardContent as read-only bindable
This is just to reduce complexity of these interactions by ensuring that
the expanded state can only be changed by the class itself.
2021-12-15 16:26:19 +09:00
Dean Herbert
f9a2db5ec6 Add accessibility to realm factory via IStorageResourceProvider
We might need to rename this class..
2021-12-14 14:19:49 +09:00
Bartłomiej Dach
083ee92dee
Adjust button vertical padding 2021-12-08 22:56:28 +01:00
Bartłomiej Dach
2d739c95ea
Lay out extra card statistics in grid as per design 2021-12-08 22:56:28 +01:00
Bartłomiej Dach
3ecfaa532c
Add source field to extra beatmap card 2021-12-08 22:56:28 +01:00
Bartłomiej Dach
419fee1380
Move mapper link to bottom content 2021-12-08 22:54:11 +01:00
Bartłomiej Dach
61e04f75cc
Resize extra card to design size 2021-12-08 22:54:10 +01:00
Bartłomiej Dach
a32492cdd5
Duplicate BeatmapCard{-> Extra} as blueprint for extra card size 2021-12-08 22:53:51 +01:00
Dean Herbert
8d9c37a825 Merge branch 'master' into primary-key-consistency 2021-12-08 21:34:38 +09:00
Dean Herbert
25a0505c97 Scale card when expanding to better distinguish hovered card from other cards in listing 2021-12-07 23:48:14 +09:00
Bartłomiej Dach
82ed8eae6b
Ensure hover handling container always calls base on hover events 2021-12-06 21:02:40 +01:00
Bartłomiej Dach
ccfc361626
Apply naming suggestions 2021-12-06 21:02:38 +01:00
Bartłomiej Dach
0f74389389
Add scrolling for long difficulty lists in beatmap card 2021-12-05 20:17:59 +01:00
Bartłomiej Dach
af35652b8b
Disable beatmap card expansion on solo spectator screen 2021-12-05 20:07:58 +01:00
Bartłomiej Dach
e451e43b90
Implement input handling behaviour of beatmap card dropdown 2021-12-05 16:31:45 +01:00
Bartłomiej Dach
250e5b47b7
Move "extra info" beatmap card row to separate component 2021-12-05 15:52:19 +01:00
Bartłomiej Dach
3fea8d5e62
Implement visual behaviour of expanded card state 2021-12-05 15:48:02 +01:00
Bartłomiej Dach
a07f8c74dc
Add basic structure for composable card dropdown 2021-12-05 15:26:37 +01:00
Bartłomiej Dach
38702beabf
Merge branch 'master' into i-ruleset-store 2021-12-04 15:05:39 +01:00
Dean Herbert
e75e209053 Cache and consume IRulesetStore where feasible 2021-12-03 18:16:01 +09:00
Dean Herbert
9c717ce7ec
Merge branch 'master' into diffcalc-cli-arg 2021-12-03 15:10:55 +09:00
Bartłomiej Dach
45656c3599
Fix difficulty spectrum display not ordering ruleset groups by ID 2021-11-29 22:06:11 +01:00
Bartłomiej Dach
0fc4d6dc2a
Implement beatmap card difficulty list 2021-11-29 22:04:09 +01:00
Dean Herbert
a7e4e7be3a Remove the ability to specify a filename in ReplaceFile 2021-11-29 18:11:51 +09:00
Dan Balasescu
e5dcfc3113 Use console IPC 2021-11-28 14:03:21 +09: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
7419682334
Move icon pill to beatmap card-specific namespace 2021-11-27 15:01:48 +01:00
Dean Herbert
f16ef1ee69 Reapply schedule workaround for PreviewTrack 2021-11-26 22:34:05 +09:00
Dean Herbert
bf443a5a7a Switch unnecessary return to break instead 2021-11-26 15:36:16 +09:00
Dean Herbert
5de2f6211d Show a spinner instead of the download button on the new card during beatmap download 2021-11-26 15:32:33 +09:00
Bartłomiej Dach
84a36ab4a9
Add integration with beatmap set 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
d7a960212f
Merge pull request #15794 from peppy/realm-integration/stable-export-flow
Split out legacy model export logic into `LegacyModelExporter` classes
2021-11-25 20:20:18 +09:00
Dan Balasescu
2b85738384
Merge pull request #15797 from peppy/remove-pointless-i-beatmap-model-manager
Remove pointless interface class for `IBeatmapModelManager`
2021-11-25 19:07:19 +09:00
Dean Herbert
a6ee0eec0d Remove pointless interface class for IBeatmapModelManager
Was originally going to be used but serves no purpose any more.
2021-11-25 18:15:10 +09:00
Dean Herbert
eeccf836ec Remove unnecessary GameHost parameter 2021-11-25 17:42:41 +09:00
Dean Herbert
716543b5b3 Move beatmap download logic out of BeatmapManager 2021-11-25 17:29:41 +09:00
Dean Herbert
cc1b91e4bd Split out legacy model export logic into LegacyModelExporter classes 2021-11-25 16:41:12 +09:00
Dean Herbert
7488ccd5fe Update all models to implement IHasNamedFiles 2021-11-25 16:41:12 +09:00
Dean Herbert
416ee2447a Move archive filename helper method to extension method 2021-11-25 16:35:54 +09:00
Dean Herbert
6cab7b877d Move stable import handling into its own class 2021-11-25 15:36:58 +09:00
Dean Herbert
1533e245de
Merge pull request #15767 from bdach/beatmap-card/track-preview
Add preview track playback function to beatmap card
2021-11-25 12:08:03 +09:00
Dan Balasescu
ce8500a732
Merge branch 'master' into remove-model-file-list-inits 2021-11-24 19:46:42 +09:00
Dean Herbert
b739b6a725
Merge branch 'master' into beatmap-card/track-preview 2021-11-24 18:54:25 +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
Dean Herbert
ddbd4f9473 Merge branch 'master' into remove-model-file-list-inits 2021-11-24 18:39:01 +09:00
Dan Balasescu
5ff62a8e04
Merge pull request #15779 from peppy/remaining-misc-fixes
Apply some various code quality fixes that don't fit elsewhere
2021-11-24 16:59:49 +09:00
Dan Balasescu
74b6c33fab
Merge pull request #15778 from peppy/ruleset-info-id-usage
Update usages of `RulesetInfo.ID` to use `OnlineID` instead
2021-11-24 16:55:28 +09:00
Dan Balasescu
834bdd8e5c
Merge pull request #15776 from peppy/non-null-beatmapset-metadata
Make `BeatmapSet.Metadata` non-null
2021-11-24 16:48:28 +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
3e0e01abdb Move bookmark parsing logic into LegacyBeatmapDecoder 2021-11-24 16:29:51 +09:00
Dean Herbert
9c61ec217b Remove unnecessary mainTrackMixer parameter from BeatmapManager 2021-11-24 16:27:17 +09:00
Dean Herbert
bbd3ea5b77 Update all actual usages of RulesetInfo.ID to use OnlineID instead 2021-11-24 15:50:26 +09:00
Dean Herbert
3946a39b65 Make BeatmapSet.Metadata non-null 2021-11-24 15:03:34 +09:00
Dean Herbert
a7853fc9cc Fix cases of known-non-null 2021-11-24 14:26:25 +09:00
Dean Herbert
99a139dc98 Initialise all file lists at construction time (and remove setter) 2021-11-24 13:56:21 +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
a3fdab34d5 Avoid json serialisation of aggregate helper properties
Also avoids `throw`ing when there are no beatmaps available. Until now
this wasn't an issue due to the `Beatmaps` list being null instead of empty.
2021-11-24 13:36:34 +09:00
Dean Herbert
8c60f37508 Fix cases of dynamically assigning Beatmaps to BeatmapSetInfo using list assignment 2021-11-24 13:27:37 +09:00
Dean Herbert
49c2cb9125 Initialise BeatmapSet.Beatmaps list to line up with realm expectations 2021-11-24 13:25:55 +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
1a1603f0db
Implement preview track playback 2021-11-23 23:17:30 +01:00
Bartłomiej Dach
9164f006aa
Implement basic behaviour of play button 2021-11-23 22:44:09 +01:00
Bartłomiej Dach
5d13686cdf
Add play button for card preview 2021-11-23 22:44:08 +01:00
Bartłomiej Dach
4011da033b
Split off thumbnail to separate component 2021-11-23 22:44:07 +01:00
Dean Herbert
b9923e5396 Remove subclassing of RulesetInfo 2021-11-22 16:39:17 +09:00
Bartłomiej Dach
975744d26c
Remove no longer used [Cached] attribute 2021-11-21 13:19:16 +01:00
Dean Herbert
c0962b1c4f
Merge branch 'master' into beatmap-card/download-button 2021-11-21 20:04:26 +09:00
Bartłomiej Dach
bb8e8bc4f0
Use consistent type for mod collection in all overloads 2021-11-21 11:30:45 +01:00
Dean Herbert
63642450a4
Merge branch 'master' into fix-working-beatmap-wrong-exception-type 2021-11-21 15:50:07 +09:00
Dan Balasescu
a06b361fe2
Merge pull request #15705 from bdach/fix-difficulty-cache-caching-zeroes
Fix zero star difficulty values being cached when diffcalc was interrupted
2021-11-21 15:45:29 +09:00
Bartłomiej Dach
297de27a6a
Use BindTarget from card rather than caching & resolving download tracker 2021-11-20 18:48:26 +01:00
Bartłomiej Dach
b3606f4a21
Rename {Play -> GoToBeatmap}Button 2021-11-20 18:36:39 +01:00
Bartłomiej Dach
a7e45a9098
Log all non-cancellation errors in difficulty cache 2021-11-20 17:32:40 +01:00
Bartłomiej Dach
6100bf66a6
Clean up cancellation handling in WorkingBeatmap
After the recent changes introducing cancellation support to
`WorkingBeatmap`, it turned out that if the cancellation support was
used, `GetPlayableBeatmap()` would raise timeout exceptions rather than
the expected `OperationCanceledException`.

To that end, split off a separate overload for the typical usage, that
catches `OperationCanceledException` and converts them to beatmap load
timeout exceptions, and use normal `OperationCanceledException`s in the
overload that requires a cancellation token to work.
2021-11-20 17:23:55 +01:00
Bartłomiej Dach
15feb17da8
Change difficulty cache storage type to nullable
The recent changes related to adding support for working beatmap load
cancellation exposed a flaw in the beatmap difficulty cache. With the
way the difficulty computation logic was written, any error in the
calculation process (including beatmap load timeout, or cancellation)
would result in a 0.00 star rating being permanently cached in memory
for the given beatmap.

To resolve, change the difficulty cache's return type to nullable.
In failure scenarios, `null` is returned, rather than
`default(StarDifficulty)` as done previously.
2021-11-20 17:00:50 +01:00
Dean Herbert
83b4625bd5 Replace existing cases with new helper method 2021-11-19 22:15:41 +09:00
Dean Herbert
eecf6ad558 Add IsManaged helper method to EF classes to match realm implementation 2021-11-19 21:56:06 +09:00
Dean Herbert
59e763467f Move StoragePath implementation to an extension method 2021-11-19 16:08:38 +09:00
Dean Herbert
6e5918a100 Add slight scale to icon buttons 2021-11-19 15:28:03 +09:00
Dean Herbert
741c27c1f2 Always populate action to make button behave better in testing scenarios 2021-11-19 15:27:38 +09:00
Dean Herbert
5034cb1025
Merge branch 'master' into beatmap-card/download-button 2021-11-19 14:59:42 +09:00
Bartłomiej Dach
0eaf450204
Make field readonly 2021-11-18 22:50:41 +01:00
Bartłomiej Dach
8a1d6757af
Merge branch 'master' into beatmap-card/download-button 2021-11-18 22:37:35 +01:00
Bartłomiej Dach
412abf30d9
Refactor buttons again to work with latest design guidelines 2021-11-18 22:34:40 +01:00
Bartłomiej Dach
761d1e45f2
Use lime background on right side of card to signify downloaded sets 2021-11-18 21:36:41 +01:00
Dean Herbert
bf8507c7b9 Only apply default timeout when debugger not attached 2021-11-18 23:26:45 +09:00
Bartłomiej Dach
1c13b39104
Revert incorrect ordering change 2021-11-17 22:10:46 +01:00
Bartłomiej Dach
8b134914cf
Merge branch 'master' into beatmap-cancellation-token 2021-11-17 21:52:30 +01:00
Dean Herbert
7c2e79f911 Update all simple cases of switching to IWorkingBeatmap 2021-11-17 20:56:57 +09:00
Dean Herbert
0715d40ea0 Merge branch 'master' into beatmap-cancellation-token 2021-11-17 11:16:10 +09:00
Dean Herbert
13f3e2eea9 Add back default timeout to GetPlayableBeatmap 2021-11-17 11:06:31 +09:00
Dean Herbert
f5c52755c9 Merge branch 'master' into i-working-beatmap/difficulty-calculator 2021-11-16 16:19:22 +09:00
Dean Herbert
726a0cc091 Merge branch 'master' into beatmap-collection-inteface-types 2021-11-16 15:31:10 +09:00
Dean Herbert
d2a7670494 Remove no longer used helper method 2021-11-16 14:48:02 +09:00
Dean Herbert
6cca657a2d Standardise naming of CancellationToken parameters 2021-11-16 14:45:51 +09:00
Dean Herbert
53c0682a08 Merge branch 'master' into beatmap-cancellation-token 2021-11-16 14:43:13 +09:00
Dean Herbert
9207b87b76 Add back interface equality but limit to only matching types 2021-11-16 12:35:18 +09:00
Dan Balasescu
1d87b47fec Remove now-unnecessary R# disables 2021-11-15 19:40:31 +09:00
Dean Herbert
a90cfb4a2f Implement remaining properties via implicit implementation rather than interface methods 2021-11-15 19:30:46 +09:00
Dean Herbert
369b4ba789 Update DifficultyCalculator to take an IRulesetInfo 2021-11-15 19:16:48 +09:00
Dean Herbert
62d670a3ca Update DifficultyCalculator to take an IWorkingBeatmap 2021-11-15 19:16:48 +09:00
Dean Herbert
960cecf3db Merge branch 'beatmap-collection-inteface-types' into i-working-beatmap/difficulty-calculator 2021-11-15 19:16:47 +09:00
Dean Herbert
a0e25d18cd Expose more of WorkingBeatmap via interface 2021-11-15 18:25:48 +09:00
Dean Herbert
0b4822b552 Remove newly added equality 2021-11-15 14:35:01 +09:00
Bartłomiej Dach
b58fe2d80a
Restructure card to use single tracker at the top level 2021-11-13 15:39:03 +01:00
Bartłomiej Dach
c38c95b373
Merge branch 'master' into beatmap-card/download-button 2021-11-13 14:59:59 +01:00
Dean Herbert
9f7e2750a5 Merge branch 'master' into beatmap-collection-inteface-types 2021-11-12 19:41:29 +09:00
Dean Herbert
5e88d59a26 Switch BeatmapInfo.OnlineID delegation to use property getter for conformity 2021-11-12 19:06:12 +09:00
Dean Herbert
1d962648c2 Standardise implementations 2021-11-12 19:00:27 +09:00
Dean Herbert
54cd1158a4 Add IBeatmapSetInfo equality support 2021-11-12 18:16:36 +09:00
Dean Herbert
a67e156883 Add IBeatmapInfo equality support 2021-11-12 18:11:33 +09:00
Dean Herbert
692e846acd Rename BeatmapSetInfo.OnlineBeatmapSetID to OnlineID to match interface 2021-11-12 17:52:44 +09:00
Dean Herbert
6a098a8634 Rename BeatmapInfo.OnlineBeatmapID to OnlineID to match interface 2021-11-12 17:46:24 +09:00
Dean Herbert
51a353e12d Rename BeatmapInfo.Version to DifficultyName to match underlying interface 2021-11-11 17:20:53 +09:00
Dean Herbert
ebe58cee11 Rename BeatmapInfo.StarDifficulty to StarRating to match underlying interface 2021-11-11 17:19:46 +09:00
Bartłomiej Dach
222846290e
Update download progress bar appearance to match intended design 2021-11-10 18:38:52 +01:00
Bartłomiej Dach
91baaa73f3
Show download progress on card body rather than in button 2021-11-10 16:03:48 +01:00
Bartłomiej Dach
f090e5ca75
Restyle card buttons to resemble buttons more 2021-11-10 15:24:36 +01:00
Bartłomiej Dach
343318c6f9
Merge branch 'master' into display-string 2021-11-10 11:10:38 +01:00
Dean Herbert
f4ef841972 Add fallback for cases where beatmap has no author/title/artist specified 2021-11-10 18:29:05 +09:00
Bartłomiej Dach
3d148aea40
Fix GetDisplayTitle() implementations relying on ToString() themselves 2021-11-09 13:53:08 +01:00
Dean Herbert
3b485b5f37 Rewrite PreviewTrackManager to avoid constructing TrackBass locally
This paves the way for the framework code quality change
(https://github.com/ppy/osu-framework/pull/4873) which stops exposing
the constructor.

Most of the restructuring here is required to give `PreviewTrackManager`
an adjustable target to apply the global mute.
2021-11-09 17:38:12 +09:00
Bartłomiej Dach
704ff47a0e
Swap icon for "go to beatmap" state 2021-11-09 08:07:56 +01:00
Bartłomiej Dach
2186b51676
Implement detailed download button behaviour 2021-11-08 22:18:14 +01:00
Bartłomiej Dach
a60cceeda6
Implement basic appearance of download button 2021-11-08 22:18:14 +01:00
Bartłomiej Dach
c65e7a4436
Add test coverage for download button 2021-11-08 22:17:56 +01:00
Dean Herbert
2b518035da
Merge pull request #15522 from bdach/taiko-slider-multiplier-saving
Fix taiko beatmap scroll speed increasing after every save in editor
2021-11-08 22:51:43 +09:00
Bartłomiej Dach
74603253d2
Store full model rather than online ID only 2021-11-08 13:42:56 +01:00
Dean Herbert
72489b32f9 Move toggle code into own method for readability 2021-11-08 21:39:16 +09:00
Dean Herbert
9a2425f316 Remove unused field for now to appease inspectcode 2021-11-08 21:36:28 +09:00
Bartłomiej Dach
540b7e1b38
Fix taiko editor not unapplying slider multiplier changes on save 2021-11-08 13:28:42 +01:00
Bartłomiej Dach
f4b8dee2d0
Update favourite statistic value on favourite button clicks 2021-11-08 11:53:54 +01:00
Bartłomiej Dach
b5cbdcf981
Implement basic behaviour of favourite button 2021-11-08 11:53:54 +01:00
Bartłomiej Dach
0faa26fc13
Add basic structure for buttons 2021-11-08 11:53:53 +01:00
Dean Herbert
8b85c2c8de
Merge pull request #15491 from peppy/remove-stupid-weak-reference-bindable-events
Revert weird event flow in model manager/importers
2021-11-08 15:19:58 +09:00
Dean Herbert
a2dfb5fd8c
Merge pull request #15513 from bdach/beatmap-card/statistics
Add statistics display to beatmap card
2021-11-08 14:45:56 +09:00
Dean Herbert
97345ac9e6 Remove unnecessary TimeSpan timeout parameter (CancellationToken can now be used) 2021-11-08 14:33:32 +09:00
Dean Herbert
e338340c6a Merge branch 'master' into beatmap-cancellation-token 2021-11-08 14:32:56 +09:00
Dean Herbert
78aef9ce86
Merge branch 'master' into remove-stupid-weak-reference-bindable-events 2021-11-08 13:35:49 +09:00
Dean Herbert
1589b50d6e Merge branch 'master' into beatmap-card/statistics 2021-11-08 13:28:31 +09:00
Dean Herbert
fb495d77ce Implement TooltipText directly 2021-11-08 13:22:57 +09:00
Bartłomiej Dach
0e09edfce2
Do not show nomination info if hype info not present to match web 2021-11-07 21:33:42 +01:00