1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 20:47:25 +08:00
Commit Graph

331 Commits

Author SHA1 Message Date
Dean Herbert
5341a335a6
Bypass Parent nullability checks for now 2023-10-17 17:48:45 +09:00
Bartłomiej Dach
6aff1d4063
Merge branch 'master' into mod-select-difficulty-multiplier-animation 2023-09-14 16:23:30 +02:00
Bartłomiej Dach
44461b4eff
Merge branch 'master' into mod-select-diff-multiplier-visual-matching 2023-09-14 12:12:23 +02:00
Bartłomiej Dach
25dbd0a1d3
Rename variable to reflect new "beatmap attributes display" naming 2023-09-14 11:24:53 +02:00
Dean Herbert
32946413de Change display text from "difficulty" to "score" multiplier 2023-09-13 20:01:19 +09:00
Dean Herbert
35840bf671 Combine ModCounterDisplay and DifficultyMultiplierDisplay into one class 2023-09-13 18:51:56 +09:00
Dean Herbert
21252c1c23 Fix animations 2023-09-13 18:06:50 +09:00
Dean Herbert
e241e41f2a Fix layout decision to account for new multiplier addition 2023-09-13 17:55:21 +09:00
Dean Herbert
49114430ed Move multiplier display to bottom of sceen to make visible while customising 2023-09-13 17:43:55 +09:00
Dean Herbert
7e3652284d Adjust various class naming and add some xmldoc 2023-09-12 17:15:16 +09:00
Dean Herbert
e40eaa7377 Improve collapse/expand animations
Especially when on a screen resolution where it would start collapsed.
2023-09-12 17:06:45 +09:00
Bartłomiej Dach
eebacfb982
Make mod effect preview uncollapse on hover 2023-09-11 10:59:19 +02:00
Bartłomiej Dach
d51396fdaf
Collapse mod effect preview when it's not wide enough to fit 2023-09-11 10:46:07 +02:00
Bartłomiej Dach
3deb6cb4ec
Fix z-order of mod preview panel 2023-09-11 10:19:02 +02:00
Bartłomiej Dach
0822e8b925
Fix preview panel not being marked nullable 2023-09-11 10:18:37 +02:00
Bartłomiej Dach
76bf82d900
Do not show mod effects on free mod select 2023-09-11 09:55:45 +02:00
Bartłomiej Dach
53c30dca64
Fix data flow being sometimes incorrect 2023-09-11 09:53:58 +02:00
Bartłomiej Dach
f591a30ea7
Refactor preview panel to be more self-contained 2023-09-11 09:19:34 +02:00
Givikap120
02e2b8546c fixed all stated problems 2023-09-08 20:32:55 +03:00
Givikap120
0779cd8f4f minor design fixes 2023-09-03 02:17:04 +03:00
Givikap120
b0398b6259 functionality is done 2023-09-03 02:09:01 +03:00
Givikap120
50235cc245 somewhat working prototype 2023-08-28 23:16:33 +03:00
Givikap120
8a1fc7c340 Basic stuff (not working for now) 2023-08-26 01:20:41 +03:00
Bartłomiej Dach
973e6ded2a
Update wrong comment, too 2023-07-26 21:56:04 +02:00
Bartłomiej Dach
992f78b158
Use more consistent way of closing overlay 2023-07-26 21:54:35 +02:00
Dean Herbert
8d5efc9612 Add back the ability to close mod select using enter key
I've seen this brought up a few times (with people thinking
the fact it's not working is a bug) so we'll need to keep this
behaviour for now.
2023-07-27 02:36:25 +09:00
Dean Herbert
18c5fc689f Don't expose such specific information from ModSelectOverlay 2023-07-20 12:58:13 +09:00
Dean Herbert
eb149942e5 Add ability to toggle all free mods quickly at multiplayer song select 2023-07-19 19:08:32 +09:00
Dean Herbert
f5c472c0fe Don't hide mod select overlay when pressing select binding with no search 2023-07-13 17:50:07 +09:00
Bartłomiej Dach
b4c1266fc5
Add TODO for future support of typical search shortcuts 2023-06-18 15:58:50 +02:00
Bartłomiej Dach
b87acfa66f
Dynamically change placeholder to convey how to activate search 2023-06-18 15:58:50 +02:00
Bartłomiej Dach
75300ca229
Switch search box to initially unfocused
Done primarily to keep mod hotkeys working without any behavioural
changes when mod select is opened.
2023-06-18 15:58:50 +02:00
Bartłomiej Dach
a49af06e88
Reword comments in ModSelectOverlay 2023-06-18 14:34:33 +02:00
Bartłomiej Dach
28f929dc4d
Remove yet another redundant guard 2023-06-18 14:28:26 +02:00
Cootz
d219b5f77f Reword change focus comment 2023-06-09 17:10:13 +03:00
Cootz
c3b50e1309 Move the multiplier back to TopRight 2023-06-09 16:25:04 +03:00
Cootz
71e6f80c40 Add hotkey for switching search bar focus 2023-06-05 15:54:19 +03:00
Cootz
3ebc801484 Move (de)select all mods hotkeys handling to ModSelectOverlay 2023-06-05 13:49:07 +03:00
Cootz
a46f5b90d4 Move focus handling into PopIn 2023-06-04 18:11:44 +03:00
Cootz
32b9e6ec8f Make search bar active by default 2023-06-04 17:02:46 +03:00
Cootz
69b640a185 Remove hotkeys handling from DeselectAllModsButton 2023-06-03 10:47:48 +03:00
Cootz
9d4ba5d64a Remove unnecessary null checks 2023-06-02 12:00:03 +03:00
Cootz
4c7cca101e Rename IsValid to Visible 2023-06-02 11:33:38 +03:00
Cootz
325c114c1c Remove redundant xmldocs 2023-06-02 10:39:27 +03:00
Cootz
39489358fa Apply appearance animation to aboveColumnsContent 2023-06-01 14:07:05 +03:00
Cootz
0e5c99b760 Fix search bar showing incorrectly 2023-05-28 13:12:57 +03:00
Cootz
c3f06ad2db
Merge branch 'master' into add-mod-search-option 2023-05-23 08:55:57 +03:00
Cootz
67bf1b4dfe Select/deselect first visible mod when GlobalAction.Select is triggered 2023-05-21 11:05:01 +03:00
Cootz
6647d95ea7 Kill search focus when clicking on ModColumn 2023-05-14 18:32:16 +03:00
Cootz
2467813d81 Block deselect all short key when using the search box 2023-05-09 16:14:42 +03:00
Cootz
cbb9f0100e Update PopIn and PopOut filtering. Expose SearchTerm 2023-05-06 11:27:06 +03:00
Cootz
54757df51f Fix mod deselect button not working properly when search applied 2023-05-05 09:31:27 +03:00
Cootz
1ac9d900e1 Clear search on ModSelectOverlay.Hide 2023-05-04 19:24:37 +03:00
Cootz
152d2678d5 Fix ModSelectColumn completely disappear from ModSelectOverlay 2023-05-03 14:00:46 +03:00
Cootz
a6ca049739 Manually implement @bdach prototype 2023-05-02 14:15:33 +03:00
Dean Herbert
e808e7316b Mark delegate value unused and add comment to avoid future regression 2023-05-02 13:29:30 +09:00
Bartłomiej Dach
2e3daf0a54
Fix leak of ModSettingChangeTracker instances
The `SelectedMods.BindValueChanged()` callback in `ModSelectOverlay` can
in some instances run recursively. This is most heavily leaned on in
scenarios where `SelectedMods` is updated by an external component. In
such cases, the mod select overlay needs to replace the mod instances
received externally with mod instances which it owns, so that the changes
made on the overlay can propagate outwards.

This in particular means that prior to this commit, it was possible to
encounter the following scenario:

	modSettingChangeTracker?.Dispose();
	updateFromExternalSelection(); // mutates SelectedMods to perform the replacement
	                               // therefore causing a recursive call

		modSettingChangeTracker?.Dispose();
		// inner call continues
		modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

	// outer call continues
	modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

This leaks one `modSettingChangeTracker` instance from the inner call,
which is never disposed.

To avoid this, move the disposal to the same side of the recursion that
the creation happens on, changing the call pattern to:

	updateFromExternalSelection(); // mutates SelectedMods to perform the replacement
	                               // therefore causing a recursive call

		modSettingChangeTracker?.Dispose();
		// inner call continues
		modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

	modSettingChangeTracker?.Dispose();
	// outer call continues
	modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

which, while slightly wasteful, does not cause any leaks.

The solution is definitely suboptimal, but addressing this properly
would entail a major rewrite of the mod instance management in the mods
overlay, which is probably not the wisest move to make right now.
2023-04-30 17:31:41 +02:00
Cootz
b795e8ac5a Use ModSearch in ModeSelectOverlay 2023-04-27 17:26:35 +03:00
Cootz
3c6141f233 Add ModSearch 2023-04-27 17:08:29 +03:00
Hy0tic
56ab029a58 fix issue where multipler does not update when adjusting speed for preset mod 2023-04-22 13:30:08 -04:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
ansel
b056cac10a Remove generic and add default implementation for CalculateEffect 2022-09-10 08:34:29 +03:00
ansel
545e0bbcef Adjust inheritors and test 2022-08-29 22:49:25 +03:00
ansel
039f009562 Inherit difficulty multiplier display from ModsEffectDiplay 2022-08-27 20:26:05 +03:00
Bartłomiej Dach
3109066e34
Rename {Requires -> Pending}Configuration 2022-08-16 22:45:24 +02:00
Bartłomiej Dach
10daac6752
Only open mod customisation panel on explicit selection of single mod 2022-08-15 20:38:23 +02:00
Bartłomiej Dach
f860bc11ee
Fix several schedule-related issues arising from new column addition 2022-08-15 20:38:16 +02:00
Bartłomiej Dach
5ff2e41a55
Add preset column to mod select test scene 2022-08-15 18:38:37 +02:00
Bartłomiej Dach
839409d7ac
Add preset column to solo mod select overlay 2022-08-07 16:20:31 +02:00
Bartłomiej Dach
b318bbd5e6
Allow non-homogenous column types in mod select overlay 2022-08-07 16:20:31 +02:00
Salman Ahmed
89653b74c7 Only add setting tracker when customisation is permitted 2022-07-19 19:21:16 +03:00
Salman Ahmed
eddae7b143 Fix mod overlay and footer not updating multiplayer on settings change 2022-07-18 07:38:56 +03:00
Dean Herbert
a03abc747b Tidy up comments and simplify bounding box centre logic 2022-07-02 12:58:34 +09:00
Jamie Taylor
9d28d5f8ee
Update SFX for mod overlay show/hide 2022-07-01 20:43:12 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Bartłomiej Dach
73124d2b1f
Encapsulate mod hotkey selection logic in strategy pattern 2022-06-21 12:49:01 +02:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Bartłomiej Dach
071e158a29
Expose available mod state outwardly as a bindable 2022-05-25 23:06:12 +02:00
Bartłomiej Dach
f0303d76e8
Split off "select all mods" button to separate class 2022-05-25 22:18:30 +02:00
Bartłomiej Dach
a4bd399b0c
Split off "deselect all mods" button to separate class 2022-05-25 22:14:45 +02:00
Dean Herbert
062ffe64ac Remove delay on pop in 2022-05-17 18:21:19 +09:00
Bartłomiej Dach
170df01b46
Adjust difficulty multiplier scale transition on mod overlay
The previous transition was supposed to be a center-anchored elastic
scale-in, but this didn't work as intended - because the multiplier
ended up inside of an auto-sized right-aligned container, the animation
itself would end up being anchored right.

Attempts to remove the scale transition resulted in a rather
jarring-looking result, so swap out the elastic scale-in for a sweep-in
effect from the top, to match the header and avoid introducing too many
directions of movement.

Delay values tweaked "to taste" - can be adjusted further if there is an
alternative set of values that feels better.
2022-05-15 20:44:50 +02:00
Dean Herbert
8a01050168 Refactor mod select button initialisation to allow shared usage of deselect button 2022-05-15 03:16:43 +09:00
Dean Herbert
a759cf2dab Add key binding to deselect all mods
Defaults to `Backspace`.
2022-05-15 02:51:58 +09:00
Bartłomiej Dach
981ead68bf
Ensure local mods are constructed in time for Pop{In,Out}() 2022-05-11 22:31:27 +02:00
Bartłomiej Dach
93539160ad
Remove no-longer-necessary guard 2022-05-11 22:31:26 +02:00
Bartłomiej Dach
fc24a56478
Add protection from recursive updates from external selection 2022-05-11 22:31:25 +02:00
Bartłomiej Dach
83ba06e7af
Extract helper property for accessing all mods 2022-05-11 22:31:25 +02:00
Bartłomiej Dach
11ae1da65a
Hoist reference replacement logic to overlay level 2022-05-11 22:26:47 +02:00
Bartłomiej Dach
05a21fbbe0
Hoist ModState to overlay level 2022-05-11 22:26:21 +02:00
Bartłomiej Dach
ddb2d4eef5
Rename FreeModSelect{Screen -> Overlay} reference in inline comment 2022-05-11 18:06:09 +02:00
Bartłomiej Dach
a104277e7f
Rename ModSelect{Screen -> Overlay}Strings 2022-05-11 18:01:33 +02:00
Bartłomiej Dach
76c63f1d0a
Rename ModSelect{Screen -> Overlay} in place of removed old design 2022-05-10 22:56:50 +02:00
Bartłomiej Dach
128468e13d
Remove old base mod select overlay 2022-05-10 21:52:30 +02:00
Dean Herbert
3eead5a6a3 Rename FlushAnimation to FlushPendingSelections to better match purpose 2022-05-04 19:40:08 +09:00
Joseph Madamba
5e5c8e78a6 Use existing web localisation for most hardcoded strings 2022-04-20 16:31:11 -07:00
smoogipoo
f9d5abff8a Update with keybinding changes 2021-09-16 18:26:12 +09:00
Dean Herbert
bf0a1167ec Improve update flow and ensure selected mods is read from local context 2021-08-24 13:35:39 +09:00
Dean Herbert
9b9dacf3fe Update usages of Drawable.Click() 2021-08-04 17:30:33 +09:00
Dean Herbert
3c028ce05c Add IDeepCloneable interface and update existing CreateCopy methods to use it 2021-07-19 12:54:17 +09:00