1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-11 10:18:22 +08:00
Commit Graph

62 Commits

Author SHA1 Message Date
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 OverlayColourProviders 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