Bartłomiej Dach
31a8bc7553
Remove redundant qualifier
2024-06-14 14:12:55 +02:00
Bartłomiej Dach
bdeea37a44
Commit active placement when starting drag selection via timeline
...
This was reported in https://github.com/ppy/osu/pull/28474 , albeit the
code changes proposed there did not fix the issue at all.
See 8b6385f7d0
for demonstration of the
crash scenario. Basically what is happening there is:
- The starting premise is that there is a spinner placement active.
- At this time, a drag selection is started via the timeline.
- Once the drag selection finds at least one suitable object to select,
it mutates `SelectedItems`.
- When selection changes for any reason, the `HitObjectComposer`
decides to switch to the "select" tool, regardless of why
the selection changed.
- Changing the active tool causes the current placement - if any -
to be committed, which mutates the beatmap.
- Back at the drag box selection code, this causes a "collection
modified when enumerating" exception.
The proposed fix here is to eagerly commit active placement - if any -
when drag selection is initiated via the timeline, which avoids this
issue. This also appears to vaguely match stable behaviour and is sort
of consistent with the logic of committing any outstanding changes upon
switching to the selection tool.
2024-06-14 09:32:40 +02:00
Bartłomiej Dach
6d2f910813
Add test coverage
2024-06-12 15:43:33 +02:00
Bartłomiej Dach
feadf7a56e
Allow modifying hold note start/end time via mania composer playfield
2024-06-12 15:30:27 +02:00
Bartłomiej Dach
e67d73be7d
Add test coverage
2024-06-11 12:28:39 +02:00
Bartłomiej Dach
f787a29f49
Add test coverage
2024-06-07 09:19:17 +02:00
Bartłomiej Dach
9b923b1909
Fix code quality issues
2024-03-26 10:55:49 +01:00
Arthur Araujo
6fa663c8ca
Make check ruleset specific
2024-03-22 14:48:22 -03:00
Arthur Araujo
2d6a3b8e2b
Remove warning for 10K+
2024-03-20 16:51:27 -03:00
Arthur Araujo
c605e463a4
Add mania keycount check
2024-03-20 15:52:16 -03:00
Dean Herbert
3afaafb1d9
Reorder and simplify private helper methods
2023-11-21 15:05:51 +09:00
ratinfx
6ddecfd806
Update Test cases
2023-11-11 14:13:06 +01:00
ratinfx
81caa854e6
Separate Test cases by relevant rulesets
2023-11-07 13:02:46 +01:00
Dean Herbert
df5b389629
Manual fixes to reduce warnings to zero
2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5
Automated pass
2023-06-24 01:00:03 +09:00
Bartłomiej Dach
d9ca7102f0
Use more generic wording for future-proofing
2023-02-19 15:06:40 +01:00
Bartłomiej Dach
8b25598d82
Rename moved test method to describe its purpose better
2023-02-19 13:54:48 +01:00
Bartłomiej Dach
80ee917c77
Rewrite test cases
...
- Depend less on arbitrary timings
- Remove unnecessary seeks
- Change method name to make more sense
- Use nunit style assertions
2023-02-19 13:37:06 +01:00
Bartłomiej Dach
80b329f069
Rename test scene to match contents
...
It does not only test "placement before track start" anymore.
2023-02-19 13:16:40 +01:00
Maximilian Kruse
025061ba66
fix formating in SeekOnNote test
2023-02-19 10:17:33 +01:00
Maximilian Kruse
55e9a71f38
Add test for seeking setting in mania placement test
2023-02-18 20:42:13 +01:00
ansel
1f129d4e16
Add failing test
2023-01-11 21:20:56 +03:00
Derrick Timmermans
6a61e70766
Expose Ruleset from HitObjectComposer instead
2022-11-30 12:17:58 +01:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dean Herbert
6b79f16461
Make Column.AccentColour
bindable
2022-10-07 15:24:36 +09:00
Dean Herbert
2ae1aef0be
Move column initialisation to ctor and fix remaining tests
2022-10-07 15:24:36 +09:00
Dean Herbert
7796a4c109
Cache StageDefinition
for consumption (and remove ColumnType
)
2022-10-07 15:24:36 +09:00
Dean Herbert
df3ad618e1
Move ColumnType
to constructor
2022-10-07 15:24:36 +09:00
Dean Herbert
41e69fbca6
Remove "default" prefix from naming
2022-09-18 00:15:26 +09:00
Dean Herbert
51841988bf
Rename references to DefaultSkin
to have Triangles
suffix
2022-09-17 23:57:25 +09:00
Dean Herbert
e9463f3c19
Test editor ComposeScreen
tests not adding beatmap to hierarchy
...
Makes it hard to test anything because `EditorBeatmap`'s `Update` method
updates whether a beatmap has timing or not (enabling the placement
controls).
Also adds a basic timing point to allow for better testing.
2022-08-31 14:07:56 +09:00
Dean Herbert
4b72e55770
Fix various test scenes not adding EditorClock
to the draw hierarchy
2022-08-26 18:08:43 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Bartłomiej Dach
c33aee17b0
Cache some more OverlayColourProvider
s to fix tests
2022-05-24 23:14:28 +02:00
Dean Herbert
c0abce918f
Add enum
to snap method as alternative to mutliple nested invocations
2022-05-12 16:19:07 +09:00
Dean Herbert
f6fc926f1a
Add xmldoc and rename methods in IPositionSnapProvider
for legibility
2022-05-05 15:58:21 +09:00
Salman Ahmed
59cf3ff50f
Move distancing methods from IPositionSnapProvider
to IDistanceSnapProvider
2022-04-28 05:48:45 +03:00
Salman Ahmed
70a93c0e7e
Move DistanceSpacingMultiplier
bindable to its own IDistanceSnapProvider
interface
2022-04-24 08:33:00 +03:00
Salman Ahmed
0992bec2c8
Change "distance spacing" multipler type to double
...
Avoids losing precision on initial load, causing an unnecessary
hash change in `EditorChangeHandler`.
Resolves test failures in `TestSceneEditorChangeStates`
(https://github.com/ppy/osu/runs/5192493482?check_suite_focus=true ).
2022-02-16 03:28:12 +03:00
Salman Ahmed
528dc03b8c
Expose distance spacing in IPositionSnapProvider
for updating distance grid
...
Alternate method is to expose a `SnapDistancesChanged` event in
`IPositionSnapProvider` instead, but I chose this way as an analogue to
`IBeatSnapProvider.BeatDivisor`, which might even make sense to be
exposed as `BindableBeatDivisor` instead of caching that separately.
2022-02-15 02:21:53 +03:00
Dean Herbert
b5f670cc5b
Add far too many fixes for ruleset non-nullable requirements
2022-01-12 23:24:11 +09:00
Bartłomiej Dach
c429c74d89
Expose and use test ruleset config cache in test scenes
2021-12-23 19:42:26 +01:00
Bartłomiej Dach
5cbaa028eb
Use extracted ruleset config cache implementation in DI
2021-12-23 19:02:10 +01:00
Dean Herbert
441b7baa93
Provide a realm factory to usages of ToLive
/RealmLive
2021-12-14 14:26:34 +09:00
Dean Herbert
f6a3709060
Store default skins to database
2021-11-29 18:28:25 +09:00
Dean Herbert
23146d59d1
Use ILive
for current skin
2021-11-29 18:28:25 +09:00
Bartłomiej Dach
5e31e890ae
Extract class for clipboard contents for DI purposes
2021-11-10 12:36:23 +01:00
Bartłomiej Dach
410e9159d1
Fix test failures due to missing dependencies
2021-11-09 19:54:38 +01:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Dean Herbert
d4e5a612ea
Update IPositionalSnapProvider
to take a HitObject
as reference, rather than raw time
...
This allows fetching the correct `DifficultyControlPoint` from the
hitobject. Nothing more.
2021-09-03 17:11:12 +09:00