Dean Herbert
66f5eae530
Hook up a dropdown to show all available sprites for the current skin
2022-04-01 15:01:43 +09:00
Joseph Madamba
d0873d67e1
Move difficulty graph toggle to individual skin settings
2022-03-31 18:56:57 -07:00
CenTdemeern1
86d262a355
Merge branch 'ppy:master' into clock-button
2022-03-31 23:08:30 +02:00
CenTdemeern1
bdb21b17f7
Fix my code according to the changes @bdach requested
2022-03-31 20:39:26 +02:00
CenTdemeern1
c64a90b39e
Remove a newline to comply with codefactor
2022-03-31 17:21:50 +02:00
CenTdemeern1
f1aa60c0f1
Make the clock feel more like a button
2022-03-31 16:26:53 +02:00
Dean Herbert
0a34ce2509
Increase font weight for runtime clock
...
Fonts this small are required to be `SemiBold` by design guidelines.
Somehow missed this.
2022-03-31 19:07:30 +09:00
Dean Herbert
e8a295a61b
Add test coverage of textbox focus in settings panels when switching between nested panels
2022-03-31 15:24:21 +09:00
Jai Sharma
fff30e8a6e
Simplify show/hide of text and search in ChatTextBar
2022-03-30 21:02:12 +01:00
Bartłomiej Dach
9621a7f9cb
Merge branch 'master' into fix-autoplay-mod-user-id
2022-03-30 21:41:45 +02:00
Jai Sharma
eec3fef7a6
Remove the enter box in ChatTextBar
2022-03-30 20:25:23 +01:00
Dean Herbert
975883da5c
Move all usages of client.realm
filename to a single const
2022-03-30 13:34:48 +09:00
Jai Sharma
e7d2d94eee
Fix code quality issues in ChatTextBar
2022-03-30 02:16:50 +01:00
Jai Sharma
f049d7cb67
Implement ChatTextBox
for new chat design
...
Reference design: https://www.figma.com/file/f8b2dHp9LJCMOqYP4mdrPZ/Client%2FChat?node-id=1%3A297
Adds new component `ChatTextBox`.
Exposes `BindableBool` `ShowSearch` to change text input behaviour
between normal and search behaviour.
Adds new component `ChatTextBar`.
Exposes `BindableBool` `ShowSearch` which toggles between showing current
chat channel or search icon.
Additionally binds to child `ChatTextBox` components.
Requires a cached `Bindable<Channel>` instance to be managed by a parent
component.
2022-03-29 22:33:38 +01:00
Dean Herbert
4741679a94
Change confirmation message to be more clear about intentions
...
Co-authored-by: Henry Lin <henry.ys.lin@gmail.com>
2022-03-29 19:03:50 +09:00
Dean Herbert
1fb3d11591
Add ability to "migrate" data to another folder which has an existing install
...
Until now, migrating would always attempt to move files.
There's a chance that a user is reinstalling osu! but has their data at
a custom location. We want to allow the chance for them to continue
using the external data. This seems like the easiest way to make it
work.
Would be nice if we had a `Game.Restart()` method, but maybe this is
enough for now?
Note that further down the road we will probably prompt the user to
potentially select a custom install path (including one with existing
data) before osu! gets to writing anything.
2022-03-29 18:04:31 +09:00
Dean Herbert
dc7dc7f65a
Update UserProfileOverlay
and ClickableAvatar
to treat system users more correctly
2022-03-28 22:57:16 +09:00
Salman Ahmed
b6822f8190
Remove redundant/outdated Origin
line
2022-03-26 14:55:19 +03:00
Dean Herbert
9b7b897b3c
Adjust padding to fit better
2022-03-26 20:34:50 +09:00
Dean Herbert
ab8db3b7dc
Move nested classes to own files
2022-03-26 20:34:17 +09:00
Dean Herbert
4ddf3cb1d9
Add ability to cycle between clock display modes
2022-03-26 19:18:41 +09:00
Dean Herbert
97e9049a2c
Adjust metrics and colours to better match the actual toolbar
2022-03-26 18:56:40 +09:00
Dean Herbert
252d1924e7
Adjust metrics for better legibility at small sizes
2022-03-26 18:13:33 +09:00
Dean Herbert
999ae88af2
Show game time display in clock
2022-03-26 18:13:20 +09:00
Dean Herbert
e8f5a8e3d6
Refactor hands for legibility (visual and code)
2022-03-26 18:13:13 +09:00
Dean Herbert
0d8a7246dd
Add basic implementation of clock
2022-03-26 18:13:13 +09:00
Dean Herbert
1acfbf490b
Merge branch 'master' into mod-overlay/settings-area
2022-03-25 17:37:39 +09:00
Dean Herbert
2938f44e6c
Update PresentExternally
usages in line with framework changes
2022-03-24 23:41:07 +09:00
Bartłomiej Dach
8647bebdca
Merge branch 'master' into hold-to-discard-changes
2022-03-22 20:37:43 +01:00
Bartłomiej Dach
8192fb47fe
Merge branch 'master' into skin-editor-eat-input
2022-03-22 19:22:48 +01:00
Dean Herbert
f95bd89166
Revert editor exit behaviour to exit without changes for now
2022-03-22 14:46:57 +09:00
Dan Balasescu
aea03ca21d
Merge pull request #17359 from frenzibyte/fix-score-panel-max-combo
...
Improve method of retrieving beatmap maximum combo for results score panels
2022-03-22 06:28:30 +09:00
Dean Herbert
2f18c512cd
Convert SkinEditorOverlay
to an OverlayContainer
to allow it to block input
2022-03-21 17:33:56 +09:00
Dean Herbert
b42081dd9b
Add DangerousButton
for use in popup dialogs
2022-03-21 16:06:45 +09:00
Dean Herbert
3bb01fd595
Fix close button animation not being applied correct on mouse down due to conflicting scales
2022-03-21 14:41:57 +09:00
Dean Herbert
7ca3beb7cc
Also add fade to ChannelItem
selected box
2022-03-21 14:41:42 +09:00
Dean Herbert
428e439f40
Remove space between '#' and channel name
...
This was in flyte's design (he was following discord) but doesn't feel
too correct when it's not aligned with anything else. We can revisit
this if/when we have better glyphs to represent channel types.
2022-03-21 14:36:56 +09:00
Dean Herbert
16caf2d30b
Add slight animation when highlighting an unread channel
2022-03-21 14:34:54 +09:00
Dean Herbert
692362131e
Add animation when mention pill appears (or a new message arrives)
2022-03-21 14:31:51 +09:00
Dean Herbert
11b050b66b
Add slight fade when hovering ChannelListItem
s
2022-03-21 14:28:14 +09:00
Dean Herbert
9eda2f2df1
Remove box surrounding close button
2022-03-21 14:25:29 +09:00
Dean Herbert
f922a6b556
Rename renaming button/pill classes
2022-03-21 14:15:22 +09:00
Dean Herbert
812343b410
Merge branch 'master' into new-chat-channel-control
2022-03-21 14:14:02 +09:00
Salman Ahmed
b9859f9f21
Obsolete BeatmapInfo.MaxCombo
and suppress in usages
2022-03-20 16:30:29 +03:00
Jai Sharma
f3702fbefb
Pass correct params to UpdateableAvatar
ctor in ChannelListItem
2022-03-19 22:20:17 +00:00
Jai Sharma
ba5a43b526
Rename ControlItem
-> ChannelListItem
and associated classes
2022-03-19 21:49:14 +00:00
Jai Sharma
653bb47dd5
Use UpdateableAvatar
and remove redundant ControlItemAvatar
class
2022-03-19 21:36:11 +00:00
Jai Sharma
5373c3066f
Use OsuAnimatedButton
as base for ControlItemClose
2022-03-19 21:23:32 +00:00
Jai Sharma
a293e0c766
Remove redundant ControlItemText
class
2022-03-19 16:44:58 +00:00
Dean Herbert
dfda093f4b
Rename icon creation method
2022-03-18 14:03:52 +09:00
Dean Herbert
5d940ded09
Fix incorrect usage of nullable in ControlItemMention
2022-03-18 13:59:03 +09:00
Dean Herbert
d1fd14e287
Add missing nullable
2022-03-18 13:57:36 +09:00
Salman Ahmed
7aae9bbd1b
Improve channel bindable logic in ChatOverlay
to avoid potential nullrefs
2022-03-17 08:31:38 +03:00
Bartłomiej Dach
624f9fc774
Implement mod settings area component
2022-03-16 23:13:11 +01:00
Bartłomiej Dach
b21fa78cbf
Move dependencies out of fields to BDL args where possible
2022-03-16 21:55:36 +01:00
Dean Herbert
603527d72d
Fix potential crash when highlighting chat messages
...
Test failed locally in `TestPublicChannelMention`. This test seems to
specify that the same message may arrive twice with the same ID, so
rather than overthinking this one I propose we just use `FirstOrDefault`.
```csharp
TearDown : System.AggregateException : One or more errors occurred.
(Sequence contains more than one matching element)
----> System.InvalidOperationException : Sequence contains more than
one matching element
--TearDown
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean
includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout,
CancellationToken cancellationToken)
at osu.Framework.Extensions.TaskExtensions.WaitSafely(Task task)
at osu.Framework.Testing.TestScene.checkForErrors()
--InvalidOperationException
at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
at System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable`1 source,
Func`2 predicate, Boolean& found)
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1
source, Func`2 predicate)
at
osu.Game.Overlays.Chat.DrawableChannel.<processMessageHighlighting>b__14_0()
in
/Users/dean/Projects/osu/osu.Game/Overlays/Chat/DrawableChannel.cs:line
102
at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
```
2022-03-16 18:38:06 +09:00
Jai Sharma
e38d9eafa0
Use BindTarget
instead of caching for ControlItem
unread flow
2022-03-15 22:37:15 +00:00
Jai Sharma
49b74d7867
Use BindTarget
instead of caching for ControlItem
mentions bindable flow
2022-03-15 22:33:36 +00:00
Jai Sharma
481b8fe80b
Use Orange1
for ControlItemMention
background colour
2022-03-15 22:22:32 +00:00
Jai Sharma
7621e779fa
Move ControlItem
Action assignments into BDL
2022-03-15 22:19:58 +00:00
Jai Sharma
73a0373b4e
Code quality fixes
2022-03-14 21:56:56 +00:00
Jai Sharma
ec61b88ec2
Adjust ControlItem padding
2022-03-14 21:39:57 +00:00
Jai Sharma
75958bf270
Refactor ControlItemText to use bindable flow for unread state
2022-03-14 21:32:30 +00:00
Jai Sharma
b01a809d55
Refactor ControlItemMention to use bindable flow
2022-03-14 21:26:33 +00:00
Jai Sharma
1f0f6990f0
Use ColourProvider.Content1 for ControlItemText colour
2022-03-14 21:16:28 +00:00
Jai Sharma
3aa343b987
Use OsuColour.YellowLight for ControlItemMention background
2022-03-14 21:14:33 +00:00
Jai Sharma
9621ef9437
Use OsuColour.Red1 for ControlItemClose hover colour
2022-03-14 21:10:39 +00:00
Jai Sharma
e91af664ef
Adjust ControlItemAvatar placeholder animation and colour
2022-03-14 20:37:54 +00:00
Jai Sharma
12472593cc
Mark required dependencies as non-nullable
2022-03-14 20:14:04 +00:00
Jai Sharma
c0d82dfb41
Code quality fixes
2022-03-14 19:42:55 +00:00
Jai Sharma
39c30516d0
Implement ChannelControlItem
for new chat design
...
Adds new component `ChannelControlItem` and it's child components to be
used as the clickable control in the new chat sidebar for joined
channels.
Has public properties `HasUnread` and `MentionCount` to control the
display of the channel having unread messages or mentions of the user.
Channel select/join requests are exposed via `OnRequestSelect` and
`OnRequestLeave` events respectively which should be handled by a parent
component.
Requires a cached `Bindable<Channel>` instance to be managed by a parent
component.
Requires a cached `OveralayColourScheme` instance to be provided by a
parent component.
2022-03-14 18:55:27 +00:00
Salman Ahmed
53c57661c7
Move implementtaion detail to inline comment
2022-03-11 18:34:22 +03:00
Salman Ahmed
5b70139b33
Avoid running message highlight processing more than once
2022-03-11 18:32:49 +03:00
Salman Ahmed
cc87563d57
Merge branch 'master' into chat-mention-highlight
2022-03-11 17:51:22 +03:00
Salman Ahmed
d07e3101ea
Improve message highlight handling in DrawableChannel
2022-03-10 23:07:15 +03:00
Salman Ahmed
a31611bdec
Improve channel switching flow in HighlightMessage
2022-03-10 23:07:15 +03:00
Salman Ahmed
5315ff794a
Handle non-existing channels on message highlighting gracefully
2022-03-10 21:29:32 +03:00
Salman Ahmed
717ddbba4e
Fix skin components toolbox not autosizing properly
2022-03-10 16:30:20 +03:00
Dean Herbert
46f2db1712
Move ChannelListingItem
spacing into item so input is always handled by an item in the list
...
Without this change, there would be a couple of pixels between each list
item where nothing would be hovered. This is a pretty annoying UX which
we should be avoiding we possible.
2022-03-10 15:58:57 +09:00
Dean Herbert
1a187d4dec
Add animation to checkbox when joning/leaving a channel
2022-03-10 15:54:42 +09:00
Dean Herbert
0155519343
Merge branch 'master' into new-chat-channel-listing
2022-03-10 15:49:06 +09:00
Dean Herbert
022dd88aef
Merge branch 'master' into chat-mention-highlight
2022-03-10 14:23:23 +09:00
Salman Ahmed
b25c37ce62
Instantiate highlight background container on animation
...
Also removes the necessity of scheduling as it actually never worked as
intended, `Scheduler` will still update even when the chat line is
masked away, and the animation will never be held anyways.
The new duration of the animation should be enough for long scrolls
either way.
2022-03-10 03:49:42 +03:00
Salman Ahmed
cf9671cafb
Increase highlight delay to 1500ms
2022-03-10 02:50:15 +03:00
Salman Ahmed
80c0df6af5
Scroll chat line to channel center
...
We may eventually want that encapsulated within `ScrollIntoView`, as it
would also come in handy for `GameplayLeaderboard`.
2022-03-10 02:50:15 +03:00
Salman Ahmed
93cf93943f
Schedule chat line highlight after children to handle non-loaded lines
2022-03-10 02:48:33 +03:00
Salman Ahmed
2d8983383a
Revert newMessagesArrived
changes and always schedule highlight
...
In the case a message arrives and the chat overlay is hidden, clicking
on the mention notification will not work as the `HighlightedMessage`
bindable callback will execute before the scheduled `newMessagesArrived`
logic (which was hanging since the message arrived until the chat
overlay became open because of the notification).
Simplify things by always scheduling the `HighlightedMessage` bindable
callback.
2022-03-10 01:11:27 +03:00
Jai Sharma
b67f9269f9
Remove NewChat
namespace
2022-03-09 18:13:56 +00:00
Dean Herbert
affcf5180b
Merge pull request #17161 from smoogipoo/fix-listing-score-conversion
...
Fix scores not being recalculated in beatmap overlay
2022-03-09 13:32:45 +09:00
Dean Herbert
58aef25ad5
Merge pull request #17152 from bdach/mod-overlay/difficulty-multiplier
...
Implement difficulty multiplier display for new mod select design
2022-03-09 12:11:16 +09:00
Jai Sharma
7daa2d0ea4
Use correct fonts and colours in ChannelListingItem
2022-03-09 00:36:19 +00:00
Jai Sharma
7dd51a9c4a
Reorder class attributes
2022-03-09 00:12:44 +00:00
Jai Sharma
a3477c3841
Implement ChannelListing
for new chat design
...
Adds components `ChannelListing` and `ChannelListing` item with visual
test. Essentially a more simplified version of the existing
`ChannelSelectionOverlay` component.
Correctly implements `IFilterable` behaviour to filter child channel
items. Channel joined state is based on the underlying `Joined` bindable
of the `Channel` class.
Channel join/leave events are exposed via `OnRequestJoin` and
`OnRequestLeave` events which should be handled by parent component.
Requires a cached `OverlayColourScheme` instance to be provided by the
parent overlay component when added.
2022-03-08 22:30:58 +00:00
Dean Herbert
a2ef086c1f
Fix potential crash on rare incorrect firing of skin dropdown update methods
...
As brought to light by https://gist.github.com/smoogipoo/56eda7ab56b9d1966556f2ca7a80a847 .
There's a chance that the dropdown is not populated by the time
`updateSelectedSkinFromConfig` is fired via an external means (config
changes).
2022-03-09 01:08:13 +09:00
Dan Balasescu
f5cd967635
Fix scores not being recalculated in beatmap listing
2022-03-08 19:07:39 +09:00
Salman Ahmed
5e0882df8d
Simplify message highlighting transforms
2022-03-08 04:00:11 +03:00
Salman Ahmed
d74064b94b
Use Equals
instead of reference equality operator
2022-03-08 03:56:27 +03:00
Salman Ahmed
f645869958
Update ChannelManager.CurrentChannel
directly to handle non-loaded chat scenario
...
`currentChannel` gets instantiated once the chat overlay is open, while
`HighlightMessage` could be called while the chat overlay has never been
open.
This will all be rewritten with the new chat overlay design anyways, so
should be fine for now.
2022-03-08 03:42:18 +03:00
Salman Ahmed
7f47be4680
Refactor message highlighting logic to rely on a Channel
data bindable
2022-03-08 03:19:37 +03:00
Salman Ahmed
22a2ef42c5
Check channel ID on message highlight using currentDrawableChannel
2022-03-08 01:22:47 +03:00
Bartłomiej Dach
643f68e844
Better annotate initial rolling counter value set
2022-03-07 23:11:20 +01:00
Bartłomiej Dach
019f4d965d
Show two decimal digits on mod multiplier rather than one
2022-03-07 22:55:55 +01:00
Bartłomiej Dach
c25d7a1c75
Use rolling counter for multiplier display
2022-03-07 22:50:51 +01:00
Bartłomiej Dach
78a3b5961e
Implement basic difficulty multiplier display
2022-03-07 22:50:51 +01:00
Salman Ahmed
f4fa80c1e3
Add support to highlight messages in chat overlay
2022-03-07 05:10:49 +03:00
Salman Ahmed
30b38345aa
Add ability to highlight chat lines
2022-03-07 05:08:36 +03:00
Salman Ahmed
a13a087f5d
Add xmldoc to trackNewContent
to explain its purpose
2022-03-06 23:51:27 +03:00
Salman Ahmed
9ec0e74813
Move scrolling to UpdateAfterChildren
to avoid scheduling
...
At least that's what I believe "let FillFlow update to new size" means.
2022-03-06 23:50:58 +03:00
Salman Ahmed
9bc1f3f014
Further refactor and simplify ChannelScrollContainer
2022-03-06 23:34:12 +03:00
Salman Ahmed
5b3ffb12b7
Refactor channel scrolling container to handle manual scrolls resiliently
2022-03-05 23:27:07 +03:00
Dean Herbert
6264dd266d
Merge pull request #17087 from peppy/combine-time-slider-implementation
...
Centralise implementation of slider bars which display millisecond time values
2022-03-05 23:48:26 +09:00
Bartłomiej Dach
346cec3577
Merge branch 'add-offset-adjust-tooltip-text' into combine-time-slider-implementation
2022-03-05 14:58:56 +01:00
Bartłomiej Dach
38abfbf4d1
Merge branch 'master' into add-display-choice-dropdown
2022-03-05 14:39:59 +01:00
Bartłomiej Dach
1e34aca984
Rename method to better fit purpose
2022-03-05 14:38:15 +01:00
Dean Herbert
524b8e02ef
Revert "Update all usages of OsuSlider.TooltipText
overrides to instead implement GetTooltipText
"
...
This reverts commit abba49fd8f
.
2022-03-05 22:37:36 +09:00
Dean Herbert
bbc2b36117
Merge branch 'master' into add-offset-adjust-tooltip-text
2022-03-05 22:37:04 +09:00
Dean Herbert
6673e456c5
Merge pull request #17090 from miniriley2012/wiki-locale-fix
...
Fix wiki links containing locale not loading when opened from chat.
2022-03-04 19:36:14 +09:00
Salman Ahmed
3fdc7ed9d2
Remove brackets surrounding one-line statements
2022-03-04 10:14:19 +03:00
Salman Ahmed
129c290ca0
Dispose cancellation token source on disposal
2022-03-04 10:01:07 +03:00
Salman Ahmed
76c293b9e9
Fix cancellation token source recreated on every medal
2022-03-04 10:00:56 +03:00
Riley Quinn
8491bab77c
Replace string locale with Language
2022-03-04 00:57:13 -06:00
Riley Quinn
81a49057ec
Fix wiki links containing locale not loading when opened from chat.
2022-03-03 23:38:51 -06:00
Dean Herbert
33862fc0db
Centralise implementation of slider bars which display millisecond time values
2022-03-04 12:25:19 +09:00
Dean Herbert
7854a0a913
Use double
instead of float
for UIHoldActivationDelay
configuration value
...
All times use double, so let's also use double here.
2022-03-04 12:22:56 +09:00
Dean Herbert
abba49fd8f
Update all usages of OsuSlider.TooltipText
overrides to instead implement GetTooltipText
2022-03-04 12:16:05 +09:00
Dean Herbert
3a37e6e8b1
Fix profile badges potentially showing on incorrect profile when switching users
...
Closes https://github.com/ppy/osu/issues/17081 .
2022-03-04 12:01:00 +09:00
Dean Herbert
9c43500ad3
Add ability for player loading screen settings to scroll
...
As we add more items here this is going to become necessary. Until the design no doubt gets changed.
2022-03-03 16:23:31 +09:00
Dean Herbert
c06703d662
Add ability to select which display the game runs on
2022-03-02 18:29:07 +09:00
Bartłomiej Dach
899b95e61b
Do not delay inital mod update by a frame
2022-02-28 21:46:58 +01:00
Bartłomiej Dach
e8701f46f1
Add xmldoc to Filter
to explain usage
2022-02-28 21:39:21 +01:00
Bartłomiej Dach
6cc972aa6a
Fix test failures by waiting for panel load
2022-02-28 21:36:13 +01:00
Dean Herbert
4a555d067d
Change ModPanel
to not handle OnMouseDown
to allow drag scrolling in ModColumn
2022-02-28 14:32:50 +09:00
Bartłomiej Dach
774952adda
Rescale components from figma to real dimensions
2022-02-27 23:08:31 +01:00
Bartłomiej Dach
16c6b9b3b3
Add keyboard selection support to mod column
2022-02-27 22:51:29 +01:00
Bartłomiej Dach
b690df05de
Hide multiselection checkbox if everything is filtered
2022-02-27 22:51:29 +01:00
Bartłomiej Dach
a83f96b026
Add filtering support to mod column
2022-02-27 22:51:29 +01:00
Bartłomiej Dach
a80b4334ff
Tweak layout of column display for better spacing
2022-02-27 22:51:28 +01:00
Bartłomiej Dach
53e8072632
Port multiselection from previous design
2022-02-27 22:51:28 +01:00
Bartłomiej Dach
f40bd39487
Add toggle all checkbox to column display
2022-02-27 22:51:28 +01:00
Bartłomiej Dach
2e04a83554
Implement column display for new mod design
2022-02-27 22:51:27 +01:00
Dan Balasescu
a86bc344da
Merge pull request #16977 from peppy/pause-at-results
...
Allow pausing audio via hotkey at multiplayer lobby and results screen
2022-02-25 19:13:06 +09:00
Bartłomiej Dach
c189cc5d00
Remove unused using directive
2022-02-24 21:01:37 +01:00
Dean Herbert
401cf2a955
Allow pausing game-wide audio via hotkey as long as LocalUserPlaying
is not set
...
`Player` seems to handle this correctly locally already, which is to say
if the user attempts to toggle the pause state incorrectly, it will
still recover.
The logic stoppic this operation was only in the key binding handler,
which meant it was already possible from the now playing overlay this
whole time, so I *think* this should be quite safe.
2022-02-24 16:00:14 +09:00
Dean Herbert
435bdd0b4a
Combine and simplify state management logic
...
This makes a few changes to bring things into a better shape during
mouse interactions with the mod panels:
- Dragging away from the panel now works in line with other buttons (ie.
`OsuButton`)
- Hovering now uses a lightened version of the current state, rather
than always using the active colour. I think this feels better.
- Mouse down now uses a transform point of 0.5. This is to give the
button a feeling of one of those latching light switches which resists
until reaching a point of overcoming the spring and switching state. I
think 0.4 (non-active) and 0.6 (from active) may work better, but left
at 0.5 for simplicity of implementation and I think it's good enough?
- Border always uses the gradiented version. I did this for simplicity
of implementation, but also think it looks better.
- Adjusted transform durations to feel better to me.
2022-02-24 15:25:30 +09:00
Dean Herbert
6e8daa06fa
Merge branch 'master' into mod-overlay/panel
2022-02-24 14:34:59 +09:00
Bartłomiej Dach
713f89a59c
Implement incompatibility-displaying variant of mod panel
2022-02-23 23:19:06 +01:00
Bartłomiej Dach
bbe2dfa458
Move out incompatibility displaying tooltip to own class
2022-02-23 23:18:15 +01:00
Bartłomiej Dach
8a0aba6c59
Implement mod panel for new mod select screen
2022-02-23 23:18:14 +01:00
Bartłomiej Dach
29d77a29aa
Merge branch 'master' into startup-protocol-handling
2022-02-23 21:10:27 +01:00
Bartłomiej Dach
1a358698fb
Merge branch 'master' into startup-protocol-handling
2022-02-22 22:42:16 +01:00
Dean Herbert
6de4e05e49
Fix current selection not being correctly maintained when BeatmapPicker
updates its display
2022-02-22 17:17:08 +09:00
Dean Herbert
e744840d07
Ensure old results are cleared from beatmap overlay on logout
2022-02-22 14:56:04 +09:00
Dean Herbert
d6032a2335
Fix beatmap overlay not re-fetching results after login
2022-02-22 14:55:52 +09:00
Dean Herbert
fc1877b6fa
Move to extension method and revert logic to match previous implementation
2022-02-21 13:42:26 +09:00
Dean Herbert
79408f6afc
Add xmldoc and clean up ScoreboardTimeUtils
extension methods a touch
2022-02-21 13:30:58 +09:00
Dean Herbert
abe1a3990a
Merge branch 'master' into leaderboard-score-timeref
2022-02-21 12:11:10 +09:00
Bartłomiej Dach
36a00c1ee2
Remove static OverlayColourProvider
s
2022-02-20 21:09:08 +01:00
Bartłomiej Dach
ce0db9d4db
Remove all references to static OverlayColourProvider
s
2022-02-20 21:09:08 +01:00
Bartłomiej Dach
79ba37bbab
Add Colour0
to OverlayColourProvider
2022-02-20 21:09:08 +01:00
Bartłomiej Dach
2592f0900d
Add comments about OverlayColourProvider
vs OsuColour
distinction
2022-02-20 21:08:58 +01:00
dekrain
15ed9ec4fa
Merge scoreboard and leaderboard implementations together
2022-02-19 20:47:02 +01:00
Dan Balasescu
ea5bb46fb8
Merge branch 'master' into net6
2022-02-16 00:40:04 +09:00
Salman Ahmed
f5d0eb41cb
Update further ChangeFocus
usages
2022-02-15 02:42:39 +03:00
Bartłomiej Dach
4bd58cfde1
Update one more custom transform with BorderColour
type change
2022-02-14 18:52:19 +01:00
Dean Herbert
b9d9fc56af
Move files to UI namespace
2022-02-14 17:51:39 +09:00
Dean Herbert
80ba06b0e3
Merge branch 'master' into expandable-controls
2022-02-14 16:57:45 +09:00
Salman Ahmed
ccd6648961
Update pinned score container header to use localised title
2022-02-11 09:22:09 +03:00
Salman Ahmed
4f7003928a
Add score container for pinned scores in ranks section
2022-02-10 21:32:18 +03:00
Dean Herbert
eda213e4de
Merge pull request #16827 from smoogipoo/spectator-state-rework
...
Add user state to SpectatorState, allowing multiplayer to continue to results
2022-02-11 01:48:47 +09:00
Dean Herbert
44f2d8a448
Allow game folder migration to fail gracefully when cleanup cannot completely succeed
2022-02-10 19:30:26 +09:00
Dean Herbert
88bb9d4237
Fix migration errors not outputting the call stack to logs
2022-02-10 15:50:03 +09:00
Dean Herbert
c242a63b11
Fix playlist overlay null reference when attempting an empty selection
...
As reported at https://github.com/ppy/osu/discussions/16829 .
2022-02-09 10:16:45 +09:00
Dan Balasescu
886d1d2df6
Refactorings
2022-02-08 21:29:43 +09:00
Salman Ahmed
bbef12e72c
Refactor ExpandingControlContainer
to no longer rely on controls
2022-02-04 05:45:12 +03:00
Dean Herbert
b2efce2656
Merge branch 'master' into expandable-controls
2022-02-03 19:23:34 +09:00
Dan Balasescu
81a22dbd29
Add back playing users list
2022-02-02 23:19:43 +09:00
Dan Balasescu
fcbba3d948
Rename PlayingUserStates -> WatchingUserStates
2022-02-02 23:11:29 +09:00
Dan Balasescu
f4210f7a30
Rework spectator components to use new user state
2022-02-01 21:53:25 +09:00
Dan Balasescu
502e6af008
Remove PlayingUsers list from SpectatorClient
2022-02-01 14:42:30 +09:00
Dean Herbert
9005bce0fa
Add "counter" keyword for key overlay setting
2022-01-31 16:37:51 +09:00
Dean Herbert
b7d8c9bf06
Fix a couple of cases of incorrect equality checks in the case both values are null
2022-01-28 14:29:56 +09:00
Salman Ahmed
2cc69d6b19
Replace IsControlDragged
with an abstract ShouldBeExpanded
2022-01-27 15:57:56 +03:00
Dan Balasescu
b3f2392358
Resolve compilation error due to removed method
2022-01-26 19:04:18 +09:00
Dan Balasescu
cdca1285ab
Merge branch 'master' into playlist-overlay-optimisations
2022-01-26 19:01:33 +09:00
Dean Herbert
45636ce04b
Remove collection ToLive
helper method to avoid confusion
2022-01-26 18:26:37 +09:00
Dean Herbert
d1a2256262
Refactor SkinSection
to avoid unnecessary realm queries
2022-01-26 17:48:11 +09:00
Salman Ahmed
a34b8fc4d0
Merge branch 'master' into expandable-controls
2022-01-26 10:36:22 +03:00
Salman Ahmed
161ff45f8c
Resolve further UI-related issues
2022-01-26 10:36:18 +03:00
Salman Ahmed
eb83b7fe0a
Update existing implementation with changes
2022-01-26 10:18:17 +03:00
Salman Ahmed
6998266770
Add simplified implementation of an expandable slider
2022-01-26 10:18:06 +03:00
Salman Ahmed
b5e6352137
Revert SettingsItem<T>
-related changes
2022-01-26 09:31:35 +03:00
Dean Herbert
9532454e2a
Remove ILive
remnants
2022-01-26 15:12:07 +09:00
Dean Herbert
ba46827ac0
Merge branch 'master' into playlist-overlay-optimisations
2022-01-26 15:11:14 +09:00
Dan Balasescu
8f85f32f2b
Merge pull request #16619 from peppy/live-no-interface
...
Remove `ILive<>` interface (and use `abstract Live<>` instead)
2022-01-26 14:54:14 +09:00
Dean Herbert
cd71ec0edd
Remove ILive<>
interface (and use abstract Live<>
instead)
2022-01-26 13:38:56 +09:00
Dean Herbert
7ca73f7e6d
Don't auto-unblock realm when user has manually pressed unblock button
2022-01-26 12:51:09 +09:00
Dean Herbert
dda513dd08
Change PlaylistOverlay
to use ILive
2022-01-26 12:19:59 +09:00
Dean Herbert
64914c45a4
Remove unnecessary realm query helper method
2022-01-26 11:53:50 +09:00
Dean Herbert
cdef67ccd0
Log posted notifications
...
To help with test failures and the likes.
2022-01-25 23:38:48 +09:00
Dean Herbert
1a776a9587
Completely remove subscription from MusicController
2022-01-25 16:53:02 +09:00
Dean Herbert
2a786f9ec0
Load text only after it comes on screen (and tidy up selection handling logic)
2022-01-25 16:51:21 +09:00
Dean Herbert
ace2bd2208
Apply some initial optimisations to PlaylistItem
2022-01-25 16:51:21 +09:00
Dean Herbert
8a4f3a7ce0
Reimplement subscription logic in PlaylistOverlay
directly
2022-01-25 16:51:21 +09:00
Dean Herbert
958cfde608
Stop detaching and exposing beatmaps from MusicController
2022-01-25 16:51:21 +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
Bartłomiej Dach
da771044a7
Merge branch 'master' into realm-clean-up
2022-01-24 19:15:31 +01:00
Dean Herbert
3bc86ee68f
Merge branch 'master' into music-controller-less-population
2022-01-24 20:44:37 +09:00
Dean Herbert
6eb2c28e41
Rename RealmContextFactory
to RealmAccess
2022-01-24 20:38:07 +09:00
Dean Herbert
b0919722ac
Guard against potential exception while blocking realm
2022-01-24 18:25:48 +09:00
Dean Herbert
40aa873190
Rename register methods to better explain their purpose
2022-01-24 14:37:36 +09:00
Dean Herbert
d7a9c5fd41
Add settings buttons to allow temporarily blocking realm access
2022-01-24 14:36:57 +09:00
Dean Herbert
351c766ea1
Fix one remaining instance of realm query as property
2022-01-23 23:20:03 +09:00
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