Jamie Taylor
f59828e2d9
Add audio feedback to song select 'random'
2022-01-28 13:43:37 +09:00
Dean Herbert
449e9bcf5c
Ensure beatmap carousel scroll position is maintained during deletion operations
2022-01-27 16:52:02 +09:00
Dean Herbert
0a45aa80cb
Remove unnecessary double-schedule in UpdateBeatmapSet
2022-01-27 16:52:02 +09:00
Dean Herbert
d7342880f5
Update remaining cases of clashes with realm.Write
and realm.RegisterForNotifications
2022-01-25 13:09:48 +09:00
Dean Herbert
e23b10e6a5
Update remaining cases of clashing variable name in realm.Run(realm..
2022-01-25 13:04:05 +09:00
Dean Herbert
6eb2c28e41
Rename RealmContextFactory
to RealmAccess
2022-01-24 20:38:07 +09:00
Dean Herbert
40aa873190
Rename register methods to better explain their purpose
2022-01-24 14:37:36 +09:00
Dean Herbert
e9e3e024a1
Update all usages of QueryAsyncWithNotifications
to use new Register
pathway
2022-01-23 20:28:04 +09:00
Dean Herbert
61cef42be9
Proof of concept realm subscriptions via Register
2022-01-23 20:28:04 +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
8f1dfa33a2
Merge branch 'master' into realm-context-use-update-when-feasible
2022-01-21 18:03:09 +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
3bcdce128c
Use dictionary add for safety
2022-01-21 15:29:21 +09:00
Dean Herbert
ff4f40db8a
Merge branch 'master' into carousel-performance-n
2022-01-21 15:27:42 +09:00
Dean Herbert
5b24800b0e
Avoid applying filter in UpdateBeatmapSet
flow
2022-01-21 13:26:25 +09:00
Dean Herbert
ba31ddee01
Revert beatmapSets
reference to fix tests
...
New version changed order.
2022-01-21 00:34:12 +09:00
Dean Herbert
80f3a67876
Use for
instead of foreach
to avoid enumerator overhead
2022-01-20 22:21:00 +09:00
Dean Herbert
0b93f3c88f
Add <Guid,CarouselBeatmapSet>
dictionary to speed up update operations in carousel
2022-01-20 22:12:49 +09:00
Dean Herbert
a8ce2c5edf
Detach before sending BeatmapSetInfo
to any handling method
2022-01-20 21:14:10 +09:00
Dean Herbert
b1cf3befa6
Fix incorrect query in comment
2022-01-20 18:36:20 +09:00
Dean Herbert
3ba712703b
Add a note about hidden beatmap check
2022-01-20 17:50:17 +09:00
Dean Herbert
1dabf6c8a5
Fix BeatmapCarousel
signalling it is finished loading before catching up on realm changes
2022-01-20 16:39:42 +09:00
Dean Herbert
6c46fd6931
Fix some failing tests due to realm beatmaps overwriting test beatmaps
2022-01-20 00:19:16 +09:00
Dean Herbert
2789986699
Use asynchronous loading for beatmap carousel again
2022-01-19 18:15:43 +09:00
Dean Herbert
200fcb6f83
Detach beatmap set before checking hidden state
2022-01-19 16:59:49 +09:00
Dean Herbert
11ca1b6e7b
Remove one more usage of IsManaged
which could potentially go wrong
2022-01-17 13:40:27 +09:00
Dean Herbert
6025fe325d
Fix filter criteria not being applied after carousel loads new beatmap sets
2022-01-13 15:08:51 +09:00
Dean Herbert
ef0f794fd6
Remove stay newline
2022-01-12 18:13:14 +09:00
Dean Herbert
34aa1bf21d
Sanitise and remove some usages of Detach
which are no longer required
2022-01-12 17:49:11 +09:00
Dean Herbert
0aff1c232b
Fix deleted/hidden carousel queries
2022-01-12 17:49:11 +09:00
Dean Herbert
7dba3c3551
Fix most remaining test issues
2022-01-12 17:49:11 +09:00
Dean Herbert
02d0ca2741
Fix protected beatmaps showing up in the song select carousel
2022-01-12 17:49:10 +09:00
Dean Herbert
41d90cd0b5
Fix beatmap carousel test failures
2022-01-12 17:49:10 +09:00
Dean Herbert
e74a5022c9
Fix multiple tests via null checks and changing ToLive
to Detach
...
flow
2022-01-12 17:00:17 +09:00
Dean Herbert
8461eaab46
BeatmapSetInfo
detach support
2022-01-12 17:00:16 +09:00
Dean Herbert
c9257e9ecc
Fix missing disposal of realm subscriptions in BeatmapCarousel
2022-01-12 17:00:16 +09:00
Dean Herbert
3152d2d8a0
"Update" BeatmapCarousel
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
b8cd3cdbbc
Various updates to ruleset and primary key usages to move closer to realm support
2022-01-12 16:57:13 +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
66c307e0ee
Remove usage of key repeat helper method
2021-11-18 13:13:36 +09:00
Dean Herbert
54f72d68ca
Revert weird event flow in model manager/importers
2021-11-05 19:12:49 +09:00
Dean Herbert
ec61c3c5ee
Rename all remaining cases
2021-10-03 00:55:29 +09:00
Dean Herbert
973c31132b
Rename BeatmapInfo
variables which were named beatmap
for clarity
2021-10-02 12:45:34 +09:00
smoogipoo
f9d5abff8a
Update with keybinding changes
2021-09-16 18:26:12 +09:00
Endrik Tombak
52a243afca
Don't select random beatmap when previous was filtered
2021-08-25 22:03:07 +03:00
Dean Herbert
7c4a072568
Merge branch 'master' into scroll-to-20
2021-01-21 13:48:26 +09:00
Bartłomiej Dach
4998aaaa98
Remove outdated warning disable
...
Does not trigger any more on Rider 2020.3.2.
2021-01-06 18:38:25 +01:00
Dean Herbert
53e6a349bb
Fix incorrect initial conditional
...
Turns out this wasn't actually required.
2021-01-03 22:44:32 +09:00
Dean Herbert
a6d4992997
Ensure SelectionChanged events are only sent once when selection is null
2021-01-03 12:53:25 +09:00
Dean Herbert
e2de5bb8f9
Fix the beatmap carousel not returning to centre correctly after resizing window
2021-01-02 22:05:41 +09:00
Endrik Tombak
78c14fd696
Refactor code into UserTrackingScrollContainer
2020-12-22 17:36:44 +02:00
Dean Herbert
897f593b37
Fix beatmap carousel panels getting masked away when out of scroll bounds
...
Regressed in https://github.com/ppy/osu/pull/10973 due to removed masking specification.
Closes #11067 .
2020-12-03 13:26:28 +09:00
Dean Herbert
792934f2c4
Allow scroll type to be specified
...
This brings back the ability for the carousel to scroll in a classic
way. It turns out this is generally what we want for "seek" operations
like "random", else it's quite hard to get the expected animation.
I did experiment with applying the animation after the pooled panels are
retrieved, but in a best-case scenario there is still a gap where no
panels are displayed during the random seek operation.
2020-11-27 13:54:38 +09:00
Dean Herbert
0a48dd8f76
Delegate scroll animation to panels themselves
2020-11-26 18:42:51 +09:00
Dean Herbert
ad258e2e52
Update scroll position before applying any panel animations
...
In the case of automatic scroll requirements (ie. scroll to selected) we
are delegating the animation logic to the panels themselves. In order to
make this work correctly, the scroll operation needs to take effect
before any animation updates are run.
2020-11-26 18:33:41 +09:00
Dean Herbert
6058c66edb
Move drawable carousel set movement logic into panels themselves
2020-11-26 18:32:43 +09:00
Dean Herbert
f8db7a9902
Remove ScrollableContent container from carousel
...
This was causing multiple issues with masking and sizing and really
didn't need to exist in the first place. Also not sure why the pool was
nested inside the scroll container, but it isn't any more. Probably for
the best.
2020-11-26 18:28:54 +09:00
Dean Herbert
d5940193a2
Ensure visible items is greater than zero before trying to display a range
2020-10-19 19:55:20 +09:00
Dean Herbert
9106e97c37
Ensure max value in clamp is at least zero
2020-10-19 19:10:01 +09:00
Dean Herbert
1c2185e969
Replace comment with link to issue
2020-10-19 18:41:28 +09:00
Dean Herbert
044622a7a6
Fix out of bounds issues
2020-10-19 18:41:17 +09:00
Dean Herbert
bff3856c83
Account for panel height when removing as off-screen
2020-10-19 13:13:32 +09:00
Dean Herbert
ee0efa0b4c
Fix off-by-one in display range retrieval logic
2020-10-19 13:05:42 +09:00
Dean Herbert
4590d9b93b
Remove outdated comment logic
2020-10-19 13:04:12 +09:00
Dean Herbert
5d11db7753
Locallise ChildItems to DrawableCarouselBeatmapSet for clarity
2020-10-13 19:31:29 +09:00
Dean Herbert
8eca28e8bc
Add comment about off-screen loading
2020-10-13 19:10:35 +09:00
Dean Herbert
a1801f8ae4
Unmark todo for now
2020-10-13 18:47:36 +09:00
Dean Herbert
40a0ab7aaa
Avoid allocating CarouselItems for bounds checks
2020-10-13 18:33:31 +09:00
Dean Herbert
83358d487f
Remove logging
2020-10-13 18:18:22 +09:00
Dean Herbert
69650c16fc
Simplify vertical position calculations by including spacing in height definition
2020-10-13 18:13:36 +09:00
Dean Herbert
f3b937e358
Fix masking issues with certain aspect ratio displays
2020-10-13 17:37:33 +09:00
Dean Herbert
1f0aa974dd
Fix failing tests
2020-10-13 17:37:33 +09:00
Dean Herbert
cfec4f4fc1
Extract header element from base DrawableCarouselItem class
2020-10-13 17:37:33 +09:00
Dean Herbert
2aad482545
Fix x offsets of difficulties not being updated
2020-10-13 17:37:33 +09:00
Dean Herbert
1b7e3397c6
Use expiry to avoid ToArray
2020-10-13 17:37:33 +09:00
Dean Herbert
075bf23714
Better track off-screen drawables (and return to pool less often)
2020-10-13 17:37:33 +09:00
Dean Herbert
29983afcef
Replace pool/cleanup logic with simplest form possible
...
This will temporarily break panels that go off-screen, as they will
disappear immediately
2020-10-13 17:37:33 +09:00
Dean Herbert
06e84c8eb3
Add comments and split out update steps into a more logical flow
2020-10-13 17:37:33 +09:00
Dean Herbert
20b54fb904
Move transform clean-up to pooling free call
2020-10-13 17:37:33 +09:00
Dean Herbert
f6aa448523
Store y positions inside items rather than in a separate array
2020-10-13 17:37:33 +09:00
Dean Herbert
b92c22ad42
Add logging
2020-10-13 17:37:33 +09:00
Dean Herbert
fd8654cff3
Add back difficulty panel spacing
2020-10-13 17:37:33 +09:00
Dean Herbert
ce67f65084
Fix single results not showing up
2020-10-13 17:37:33 +09:00
Dean Herbert
220c8ba2c4
Fix incorrect vertical offsets when difficulties are filtered away
2020-10-13 17:37:33 +09:00
Dean Herbert
8847cedf29
Add initial pass of vertical transforms
2020-10-13 17:37:33 +09:00
Dean Herbert
15325f5f51
Base bounds checks on +1 (to avoid worrying about current item heights)
2020-10-13 17:37:33 +09:00
Dean Herbert
bb03c5d77c
Temporarily disable masking temporarily to fix panels disappearing at extents
2020-10-13 17:37:33 +09:00
Dean Herbert
c5a6f4b453
Fix scroll to selected beatmap
2020-10-13 17:37:33 +09:00
Dean Herbert
5c2f134665
Add back left offset for selected set
2020-10-13 17:37:33 +09:00
Dean Herbert
ca1f5dcada
Add back panel padding
2020-10-13 17:37:33 +09:00
Dean Herbert
0400b34349
Load more components asynchronously after pool resolution
2020-10-13 17:37:33 +09:00
Dean Herbert
f3b24b9bb5
Avoid performing eager selection constantly on adding ranges of new children
2020-10-13 17:37:33 +09:00
Dean Herbert
0a978c6131
Add basic pooling setup
2020-10-13 17:37:33 +09:00
Dean Herbert
f17d661c1a
Add basic range-based invalidation
2020-10-13 17:37:33 +09:00
Dean Herbert
3143224e5b
Refactor how drawable carousel items are constructed
2020-10-13 17:37:33 +09:00
Dean Herbert
0718e9e4b6
Update outdated comment
2020-07-13 13:08:41 +09:00
Dean Herbert
ab11a112b7
Fix correct filter criteria not being applied to beatmap carousel if beatmaps take too long to load
2020-07-12 22:33:41 +09:00
smoogipoo
099416b4c3
Move check inside next difficulty selection
2020-06-26 21:03:34 +09:00
smoogipoo
8f6d52550f
Fix potential exception if button is pressed before selection
2020-06-26 20:32:13 +09:00
smoogipoo
1b4c31a84f
Remove double schedule
2020-06-26 20:14:08 +09:00
smoogipoo
e3d654d33f
Cleanup
2020-06-26 20:14:02 +09:00
Dean Herbert
d704a4597d
Use existing helper function for key repeat
2020-06-25 21:33:02 +09:00
Dean Herbert
d7742766d0
Add key/press repeat support to carousel
2020-06-25 19:47:23 +09:00
smoogipoo
f3b5149648
Move some suggestions to warnings, resolve issues
2020-06-03 16:48:44 +09:00
Dean Herbert
f989f1aa00
Change event flow to avoid firing store delete events on update
2020-05-27 16:08:47 +09:00
Dean Herbert
052ad79fc6
Convert dangerous events to IBindables
2020-05-19 16:44:22 +09:00
alex
0e2ccac33b
Add spaces to comments
2020-05-04 18:36:24 -07:00
Dean Herbert
119000f1ab
Reduce database includes where possible
2020-04-28 21:43:35 +09:00
smoogipoo
fcfb2b9026
Merge branch 'master' into fix-select-new-from-sub-screen
2020-04-21 14:36:53 +09:00
Bartłomiej Dach
e3cd3cf1da
Convert to auto-properties
2020-04-20 21:43:07 +02:00
Bartłomiej Dach
9b6e26583b
Add xmldocs
2020-04-20 21:42:43 +02:00
Endrik Tombak
b57d709d15
Don't use Parent
2020-04-19 18:29:06 +03:00
Endrik Tombak
a8bfd21f3f
Merge branch 'master' of https://github.com/ppy/osu into scroll-to-center
2020-04-19 18:21:34 +03:00
Dean Herbert
d62094cd4b
Fix carousel not correctly updating when selection changes to a new beatmap from a child screen
2020-04-16 18:10:35 +09:00
Endrik Tombak
b475316a4e
Simplify and comment
2020-04-12 20:40:08 +03:00
Endrik Tombak
63a1686dfb
Scroll to screen middle
2020-04-12 12:42:52 +03:00
Dean Herbert
73a3f1fe65
Remove unnecessary DI
2020-04-11 17:30:34 +09:00
Dean Herbert
abea7b5299
Tidy up function passing, naming, ordering etc.
2020-04-11 17:13:35 +09:00
Dean Herbert
7f753f6b4d
Remove current ruleset from function call
2020-04-11 16:43:09 +09:00
Dean Herbert
a843793957
Un-nest class
2020-04-11 16:41:11 +09:00
Endrik Tombak
35f97dfc75
Style changes
2020-04-09 18:59:18 +03:00
Endrik Tombak
f40bdcd34e
Initial rewrite, moving API logic to SongSelect
2020-04-09 18:47:28 +03:00
Dean Herbert
260de77304
Merge branch 'master' into select-recommended
2020-04-09 15:30:35 +09:00
Dean Herbert
b47a532df3
Adjust code formatting slightly
2020-03-30 00:07:48 +09:00
Endrik Tombak
b4f0500706
Invert logic
2020-03-28 20:21:21 +02:00
Endrik
2c27894527
Use All instead of ToList Any
...
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-03-28 19:58:33 +02:00
Endrik Tombak
87854fc4fa
Rename variable
2020-03-28 13:23:31 +02:00
Endrik Tombak
6a0c5c87aa
Use already existing variable
2020-03-28 13:06:03 +02:00
Endrik Tombak
fc3f9ff6fa
Don't use drawables for select next
2020-03-28 12:54:48 +02:00
Endrik Tombak
bbbaaae3ee
Write tests
2020-03-26 19:18:16 +02:00
Endrik Tombak
ee112c6f50
Move and change logic
2020-03-26 18:42:08 +02:00
Endrik Tombak
2f5dc93d61
Select recommended difficulty
2020-03-26 00:19:54 +02:00
Dan Balasescu
d0c7b49376
Merge branch 'master' into fix-carousel-root-selects-from-nothing
2020-03-23 11:34:04 +09:00
Dean Herbert
29009c85c0
Fix typo in comment
...
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-03-22 00:32:53 +09:00
Dean Herbert
9b60b535e5
Fix selection not occurring when switching from empty ruleset on first load
2020-03-20 15:01:26 +09:00
Dean Herbert
be4a97c289
Correctly bypass last selected when it is filtered
2020-03-20 13:01:24 +09:00
Dan Balasescu
3e65f13c67
Merge branch 'master' into fix-carousel-scroll-while-import
2020-03-16 12:06:50 +09:00
Dan Balasescu
bd05462a7f
Merge branch 'master' into carousel-selection-fallback-improvement
2020-03-16 10:53:10 +09:00
Dean Herbert
340d362d69
Appease inspectcode
2020-03-15 03:51:30 +09:00
Dean Herbert
ac70fcc544
Change logic to be more resilient by identifying user scroll events
2020-03-13 12:30:27 +09:00
Dean Herbert
5f8d180b5e
Fix carousel scrolling being inoperable during beatmap import
2020-03-13 11:51:26 +09:00
Dean Herbert
04f1da04db
Remove incorrect xmldoc from SelectBeatmap function
2020-03-13 10:52:08 +09:00
Dean Herbert
ca9cfbe51d
Move selection fallback logic out of BeatmapCarousel to SongSelect
2020-03-12 18:42:08 +09:00
Dean Herbert
28ac5af91c
Fix beatmap carousel tests loading beatmap manager beatmaps in test browser
2020-03-12 16:53:23 +09:00
Dean Herbert
8294dd0b71
Fix changing ruleset at song selectnot scrolling the current selection back into view
2020-03-10 19:59:49 +09:00
Dean Herbert
489bf16bea
Add SelectNext and SelectPrevious global actions
2020-03-02 18:55:28 +09:00
Dean Herbert
8186f72507
Remove unused using
2020-02-10 17:12:45 +09:00
Dean Herbert
66fb72cd8a
Fix song select not showing active beatmap if it is filtered by local criteria
2020-02-10 16:59:54 +09:00
Dean Herbert
77c06b1c6e
Fix beatmap carousel potentially missing beatmap imports
2020-01-29 17:09:12 +09:00