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

2331 Commits

Author SHA1 Message Date
Dean Herbert
dd63657dfb
Merge pull request #18065 from huoyaoyuan/code-style
Enforce code style analysis shipped with .NET SDK
2022-05-07 14:58:19 +09:00
Dean Herbert
71758390b5 Fix time based distance grid alpha not correctly accounting for distance spacing multiplier 2022-05-07 13:37:36 +09:00
Salman Ahmed
723fce8174 Move inverting value to happen outside clamp
Looks to have no effect, but makes sense to happen outside instead.
2022-05-06 18:54:13 +03:00
Salman Ahmed
d78f1d158d Use GetEndTime() instead of StartTime
Companion to
246479bf34
2022-05-06 18:51:35 +03:00
Salman Ahmed
112496204d Make nested class private 2022-05-06 18:50:28 +03:00
Salman Ahmed
3077d398ef
Merge branch 'master' into distance-snap-grid-current-tiume 2022-05-06 18:20:22 +03:00
Salman Ahmed
144d33f0d2
Merge branch 'master' into distance-snapping-test 2022-05-06 17:29:27 +03:00
Bartłomiej Dach
29a3ab7e7a
Halve drag box padding
Allows the drag box borders to collapse in on themselves to a single
line if the drag selection has zero width or height.
2022-05-06 15:21:35 +02:00
Dean Herbert
fad1f727bb Fix editor drag box visuals 2022-05-06 20:34:44 +09:00
Dean Herbert
69592722f8 Highlight distance snap grid rings that are close to the current time value 2022-05-06 18:30:46 +09:00
Dean Herbert
118e58888b Rename incorrectly named variable (radius is not diameter) 2022-05-06 17:51:51 +09:00
Dean Herbert
37cbc79283 Fix clamping logic to always clamp to the last displayed tick 2022-05-06 17:09:38 +09:00
Dean Herbert
684fef7f8c Fix MaxIntervals incorrectly factoring distance spacing multipiler into snap calculation 2022-05-06 17:09:02 +09:00
Dean Herbert
246479bf34 Fix snap extent not working correctly on sliders (and providing incorrect time values) 2022-05-06 15:54:37 +09:00
Dean Herbert
32b40bdabf Rename DistanceBetweenTick to be plural 2022-05-06 15:45:36 +09:00
Dan Balasescu
39d10487b9
Merge branch 'master' into snapping-tidy-distance 2022-05-05 19:55:55 +09:00
Dean Herbert
e83604a1fc Merge branch 'master' into cache-at-interface 2022-05-05 18:54:24 +09:00
Dean Herbert
b9d8b7e413 Fix end time extent not being accounted for in new snap implementation 2022-05-05 18:49:12 +09:00
Dean Herbert
b2e9be70a5 Rewrite CircularDistanceSnapGrid snapping implementation to use snap provider 2022-05-05 17:52:36 +09:00
Dean Herbert
4c884aea5d Fix CircularDistanceSnapGrid returning an incorrect time value when distance spacing is not 1.0 2022-05-05 17:09:14 +09:00
Dean Herbert
786c7f14d3 Expose DistanceSpacingMultiplier to distance 2022-05-05 17:08:53 +09:00
Dean Herbert
de9b3d33eb Rename misleading DistanceSpacing variable 2022-05-05 17:08:09 +09:00
Dean Herbert
4226583afd Merge branch 'cache-at-interface' 2022-05-05 16:52:03 +09:00
Dean Herbert
19cf9dc20b Merge branch 'snapping-tidy-distance' 2022-05-05 16:51:32 +09:00
Dean Herbert
1c6a233cc0 Move snap provider caching to interfaces 2022-05-05 16:44:37 +09:00
Dean Herbert
b411b59006 Move IPlacementHandler caching to interface 2022-05-05 16:43:02 +09:00
Dean Herbert
977e6d8a80 Add xmldoc for IDistanceSnapProvider and related properties 2022-05-05 16:25:45 +09:00
Dean Herbert
f6fc926f1a Add xmldoc and rename methods in IPositionSnapProvider for legibility 2022-05-05 15:58:21 +09:00
Dean Herbert
df530cb5ab Add highlighting to the position snap grid edges in addition to centre lines 2022-05-04 13:49:04 +09:00
Dean Herbert
0bb90c7b07 Fix gridline centering and ensure lines are always rendered using a fixed screen-space width 2022-05-04 13:41:55 +09:00
Huo Yaoyuan
7cf4dabe29 Fix IDE0005 and IDE0034 2022-05-03 13:09:19 +08:00
Salman Ahmed
173a6188eb Add back float cast to distance spacing computation 2022-04-29 08:41:37 +03:00
Salman Ahmed
fef94d49f4 Revert "Convert data type of DistanceSpacing to float"
This reverts commit 7aaa88cac2.
2022-04-29 08:02:07 +03:00
Salman Ahmed
abb88b0907 Move distance spacing application to DistanceSnapGrid 2022-04-28 10:54:38 +03:00
Salman Ahmed
7aaa88cac2 Convert data type of DistanceSpacing to float 2022-04-28 10:24:36 +03:00
Salman Ahmed
2e8372fe90 Minor cleanup
Just from reading diff.
2022-04-28 07:14:43 +03: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
4f8f27a58b Merge branch 'master' into osu-distance-spacing 2022-04-24 05:23:30 +03:00
Dean Herbert
832d37b2c2 Update screen transition events to use new event args 2022-04-22 00:52:44 +09:00
Joseph Madamba
5e5c8e78a6 Use existing web localisation for most hardcoded strings 2022-04-20 16:31:11 -07:00
Dean Herbert
043599081b Split out INotificationOverlay to allow for easier testing 2022-04-18 20:14:01 +09:00
Dean Herbert
e315313266 Split out IDialogOverlay to allow for easier testing 2022-04-18 18:36:26 +09:00
Dean Herbert
90093c1d9d Combine private skin variable into exposed one 2022-04-18 13:32:37 +09:00
Salman Ahmed
2cb217e06c Fix editor legacy beatmap skins not receiving transformer 2022-04-18 06:59:58 +03:00
Salman Ahmed
338d94626e Expose underlying skin of EditorBeatmapSkin 2022-04-18 06:44:39 +03:00
Dean Herbert
fbf0e5a45c Remove startFromSkipTarget parameter and update usages that required said behaviour 2022-04-13 14:25:43 +09:00
Bartłomiej Dach
e14d5b8adb
Remove unused using directives 2022-03-31 21:20:30 +02:00
CenTdemeern1
a6875383fc Rebind SaveState() to bpmTextEntry 2022-03-31 21:06:05 +02:00
CenTdemeern1
52d723aaa6 Remove BPM slider 2022-03-31 20:11:07 +02:00
Bartłomiej Dach
f3aad77239
Remove unused local variable 2022-03-22 22:00:24 +01:00
Bartłomiej Dach
a38bafab91
Remove unused using directive 2022-03-22 22:00:05 +01:00
Dean Herbert
61ddf1e6cf Disallow exiting the editor without saving (unless explicitly confirming) 2022-03-22 15:42:56 +09:00
Dean Herbert
f95bd89166 Revert editor exit behaviour to exit without changes for now 2022-03-22 14:46:57 +09:00
Dean Herbert
d811a70f4b Change button types on editor exit dialog to match purpose
Addresses https://github.com/ppy/osu/discussions/17363.
2022-03-21 16:06:59 +09:00
Dean Herbert
ba1642a680 Allow section headers to wrap 2022-03-16 17:19:08 +09:00
Dean Herbert
a0a033520f Rider no add licence headers 2022-03-15 16:48:14 +09:00
Dean Herbert
4ab5d6e3f0 Remove unnecessary FillFlowContainer from section 2022-03-15 16:47:08 +09:00
Dean Herbert
9e476ced63 Add EditorSidebar component 2022-03-15 16:38:00 +09:00
Dean Herbert
68aedd63a7 Move SelectionHandler's SelectedItems binding to the base implementation
Until now it was up to each implementation to connect
`BlueprintContainer` to its `SelectionHandler`, which didn't make much
sense at all.
2022-03-10 23:22:19 +09:00
Bartłomiej Dach
e1eeb9c6bb
Allow tabbing between textboxes in sample point popover 2022-03-06 01:43:56 +01:00
Dean Herbert
f15b8781bb Move editor mode selector out of EditorMenuBar to allow for better reuse 2022-03-02 20:05:01 +09:00
Dean Herbert
2be40f36f7 Reword popup text to read better (or more vaguely)
Removed some words but also don't mention "smaller" because it's...
musically incorrect and also functionally incorrect – entering 1/[8]
will result in 1/16 also being populated for instance.
2022-02-28 15:26:50 +09:00
Dean Herbert
368eadd8d1 Remove unused using statement 2022-02-28 15:24:02 +09:00
Dean Herbert
3634e12e66 Automatically focus divisor textbox and hide popover after successful change 2022-02-28 15:23:01 +09:00
Bartłomiej Dach
7de5dad4f0
Add test coverage for divisor behaviour 2022-02-27 19:23:02 +01:00
Bartłomiej Dach
423838a649
Add flow for specifying entirely custom snaps 2022-02-27 17:55:20 +01:00
Bartłomiej Dach
d0c01afc2e
Add flow for changing set of valid divisors between presets 2022-02-27 15:37:51 +01:00
Bartłomiej Dach
36137e0619
Add simple carousel divisor type selector 2022-02-27 15:37:51 +01: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
Dean Herbert
954ae60b81
Merge branch 'master' into copy-existing-difficulty 2022-02-16 08:55:12 +09:00
Salman Ahmed
f5d0eb41cb Update further ChangeFocus usages 2022-02-15 02:42:39 +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
Bartłomiej Dach
e45a2ae0fc
Restructure difficulty copy flow to adapt to latest changes 2022-02-14 22:02:37 +01:00
Bartłomiej Dach
6221447164
Append copy suffix on creating copy of difficulty 2022-02-14 20:19:12 +01:00
Bartłomiej Dach
6fd663a718
Apply some renames to convey difference between creation options better 2022-02-13 14:01:23 +01:00
Bartłomiej Dach
a144d6f8d6
Fix beatmap skin properties not copying 2022-02-13 14:01:22 +01:00
Bartłomiej Dach
a2c2b2bbb3
Add flow for copying existing difficulty content 2022-02-13 14:01:20 +01:00
Salman Ahmed
6f0e32826c Standardise ordering/grouping of IRulesetInfo/RulesetInfos 2022-02-11 04:27:11 +03:00
Dean Herbert
ee1feae806
Remove unnecessary ruleset ordering
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-02-04 11:06:18 +09:00
Bartłomiej Dach
afc48d86df
Add failing test coverage for save after safeties addition 2022-02-02 21:57:10 +01:00
Bartłomiej Dach
4f1aac9345
Add safeties preventing creating multiple difficulties with same name 2022-02-02 21:57:09 +01:00
Bartłomiej Dach
0d51c015ad
Add basic test coverage for new difficulty creation 2022-02-02 21:55:34 +01:00
Bartłomiej Dach
dc96c4888b
Add support for creating new blank difficulties 2022-02-02 21:55:33 +01:00
Bartłomiej Dach
3386f038ba
Add new difficulty creation menu 2022-02-02 21:23:35 +01:00
Bartłomiej Dach
e2fcdc394b
Extract method for difficulty switch menu creation 2022-02-02 21:23:35 +01:00
Bartłomiej Dach
c6a65ccfed
Remove unused parameter from createContent()
No longer used since 513e470b52.
2022-02-01 21:35:40 +01:00
Dean Herbert
b3856c9005 Fix editor crashing on custom rulesets due to ChangeHandler not being supported
As per https://github.com/ppy/osu/discussions/16668, even without proper
saving support some ruleset developers do want to work on the editor.
This brings things back into a workable state.
2022-01-28 14:03:31 +09:00
Dean Herbert
91be77ad3d Fix null ref in ComposeScreen when ruleset doesn't provide a composer 2022-01-28 14:01:10 +09:00
Dean Herbert
a5d422e82c Merge branch 'master' into ruleset-id-fixes 2022-01-27 17:07:18 +09:00
Dean Herbert
5288eedd31 Update all usages of RulesetID and Ruleset.ID to use Ruleset.OnlineID 2022-01-27 15:38:03 +09:00
Bartłomiej Dach
d760283665
Ensure edited beatmap is restored to a baseline state on exit 2022-01-26 21:15:49 +01:00
Dean Herbert
bdf215c576
Merge branch 'master' into improve-timeline-zoom 2022-01-26 03:40:53 +09:00
Salman Ahmed
4169e5592e Reword event handler name and update xmldoc 2022-01-25 19:36:19 +03:00
Salman Ahmed
d1cbdf63f0 Add support for reading/saving timeline zoom in editor 2022-01-25 18:57:39 +03:00
Salman Ahmed
f7f58b06a1 Fix beat divisor not saving in editor 2022-01-25 11:56:38 +03:00
Salman Ahmed
5a9524a74e Decrease default timeline zoom to "6 seconds visible" range 2022-01-25 10:43:51 +03:00
Bartłomiej Dach
bd748686fa
Adjust spacing of time signature numerator input box 2022-01-23 15:21:32 +01:00
Salman Ahmed
e4758c9dbb Mark LabelledTimeSignature as public 2022-01-23 10:14:37 +03:00
Bartłomiej Dach
54f7b1b8d0
Use new time signature control on timing screen 2022-01-22 20:50:32 +01:00
Bartłomiej Dach
f39f2c93b5
Add control for arbitrary-numerator time signatures 2022-01-22 20:50:31 +01:00
Bartłomiej Dach
735414bc49
Replace TimeSignatures enum with struct for storage of arbitrary meter 2022-01-22 20:50:31 +01:00
Dean Herbert
5f5765d6a2 Reduce redundancy time range to create a bit more visual blending on the timeline 2022-01-19 14:57:01 +09:00
Dean Herbert
03ac91a3ee Consider all points in a group to meet redundancy check 2022-01-19 14:56:44 +09:00
Dean Herbert
93cd07f7fb Merge branch 'master' into summary-timeline-control-point-optimisation 2022-01-19 14:50:45 +09:00
Dean Herbert
67bf95bc91 Remove all usage of AuthorString 2022-01-18 23:30:40 +09: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
566d341b1e Split conditions out for readability 2022-01-16 22:04:29 +09:00
Dean Herbert
565611ee00 Fix typo in inline comment 2022-01-15 23:57:20 +09:00
Dean Herbert
236fa6da7e Rename ControlPointVisualisation interface type to be less specific 2022-01-15 23:56:00 +09:00
Dean Herbert
c5cae4e3ee Rename methods and add xmldoc 2022-01-15 23:55:11 +09:00
Bartłomiej Dach
03e4ec4214
Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-15 14:45:42 +01:00
Dean Herbert
64c499d9d6 Revert unintended temporary commenting (was used during benchmarking) 2022-01-15 15:24:30 +09:00
Susko3
19467e58c1 Remove unused params from BDL methods 2022-01-15 01:06:39 +01:00
Dean Herbert
c64a919a9d Reduce number of redundant control points displayed on summary timeline
As pointed out in https://github.com/ppy/osu/discussions/16435, beatmaps
with too many control points (usually added via external automation
apps) could cause the lazer editor to grind to a halt.

The overheads here are mostly from the GL side. An eventual goal would
be to render this in a smarter way, rather than using thousands of
drawables. Until that, this optimisation should help reduce the overhead
by omitting control points in close proximity that are redundant for
display purposes.

I've tried to contain this in the display logic directly, with the goal
that it can be ripped out as fast as it was added. Certainly required
more changes than I hoped for, but I don't think it's too ugly.
2022-01-14 17:13:26 +09:00
Dean Herbert
51251e3204 Fix CI reported warnings 2022-01-12 22:39:00 +09:00
Dean Herbert
7509a9ff8f Update BeatmapModelManager.Save to work for editor scenarios 2022-01-12 17:49:11 +09:00
Dean Herbert
3811bd8520 Fix some null inspections 2022-01-12 17:00:16 +09:00
Dean Herbert
a3276758b8 Remove unnecessary re-query of beatmap set in editor menu construction 2022-01-12 17:00:16 +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
83cbee39de Mark cases where BeatmapSet is generally guaranteed to be non-null 2022-01-12 16:39: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
Bartłomiej Dach
d76c674abc
Add tooltip with relative rotation in degrees to rotation handles 2022-01-08 20:24:15 +01:00
Bartłomiej Dach
24d377fddb
Move implementation of drag handle operations to concrete classes 2022-01-08 20:24:00 +01:00
Bartłomiej Dach
9370e84460
Fix effect point multiplier text box displaying too much decimal digits 2022-01-08 16:12:52 +01:00
Dean Herbert
6779503e57 Refactor logic to avoid TimelineSelectionHandler having to block base calls 2022-01-05 16:56:54 +09:00
Dean Herbert
866ae3472b Add global flip hotkeys 2022-01-05 16:48:07 +09:00
Dean Herbert
13cce50fa7 Remove existing handling of flip hotkeys 2022-01-05 16:30:42 +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
Bartłomiej Dach
7ab1c0c99d
Improve contrast of timeline blueprint foreground content for pastel combo colours 2021-12-21 12:54:17 +01:00
Dan Balasescu
63a017bc8e Use Array.Empty instead 2021-12-11 19:33:37 +09:00
Dean Herbert
c1b3ee6bb2 Fix editor not resetting mods when entering
Would leave the user potentially in a test mode that is in a weird
state (ie. if cinema mod was enabled). Eventually we'll add the ability
to choose mods for test play, but that will be done in a saner way.

Closes #15870.
2021-12-10 18:57:45 +09:00
Bartłomiej Dach
10dd64e07c
Fix being able to paste objects while composer is loading
Would lead to exceptions due to modification of `Beatmap.HitObjects`
during its enumeration by `DrawableRuleset`, which was happening as an
async load via `EditorScreenWithTimeline.CreateMainContent()`.
2021-12-07 21:00:25 +01:00
Dean Herbert
1eed2436e6 Clean up unused resolved properties 2021-12-03 18:49:49 +09:00
Dean Herbert
a7e4e7be3a Remove the ability to specify a filename in ReplaceFile 2021-11-29 18:11:51 +09:00
Dean Herbert
e2ebcf7a26 Remove unnecessary manager parameter
Confused why I added this in the first place..
2021-11-25 18:36:03 +09:00
Dean Herbert
cc1b91e4bd Split out legacy model export logic into LegacyModelExporter classes 2021-11-25 16:41:12 +09:00
Dean Herbert
0eea026afb Remove null checks on CreateInstance() calls 2021-11-24 12:23:09 +09:00
Dean Herbert
7599efac30 Update editor cases where repeat should not be handled 2021-11-18 13:13:36 +09:00
Dean Herbert
5471994450
Merge branch 'master' into sample-point-multiple 2021-11-15 14:13:58 +09:00
Bartłomiej Dach
6b4b6de554
Fix test gameplay starting in a hidden state 2021-11-13 22:11:00 +01:00
Bartłomiej Dach
2562412125
Propagate clock state from gameplay test back to editor 2021-11-13 22:11:00 +01:00
Bartłomiej Dach
d2ddc25ab3
Propagate clock state from editor to gameplay test 2021-11-13 22:10:59 +01:00
Bartłomiej Dach
9a19a516f9
Adjust spacings on sample point piece popover 2021-11-13 21:59:45 +01:00
Bartłomiej Dach
73ca1d39a2
Improve sample bank text box UX in case of multiple selection 2021-11-13 21:59:44 +01:00
Bartłomiej Dach
3fee6b0938
Add support for setting sample bank & volume for multiple objects at once 2021-11-13 21:24:59 +01:00
Bartłomiej Dach
9800cd4903
Add test coverage for sample control point piece operation 2021-11-13 18:14:50 +01:00
Dean Herbert
983d5a6cb8
Merge branch 'master' into difficulty-point-multiple 2021-11-13 23:47:12 +09:00
Bartłomiej Dach
5f2a789a6d
Ensure editor clock is stopped before testing gameplay 2021-11-13 14:01:00 +01:00
Bartłomiej Dach
eb8c5292d5
Ensure editor background is dimmed after return from gameplay test 2021-11-13 13:50:57 +01:00
Bartłomiej Dach
b47c0b63f4
Tweak loader transition when testing gameplay in editor 2021-11-13 13:39:18 +01:00
Bartłomiej Dach
a5ba3bd012
Move gameplay test pieces to own namespace 2021-11-13 13:39:17 +01:00
Bartłomiej Dach
e1c28ddd76
Adjust difficulty point popover content spacing 2021-11-12 23:32:12 +01:00
Bartłomiej Dach
d567d2be97
Fix multiple issues with textbox content display
- Sometimes would display too many decimal digits due to floating point
  representation errors.

- Placeholder would also look wrong if text was removed during a
  multiple (but determinate) selection.
2021-11-12 23:32:12 +01:00
Bartłomiej Dach
e55e2a1697
Allow to adjust slider velocity on multiple objects simultaneously 2021-11-12 23:32:11 +01:00
Bartłomiej Dach
7ba93aac27
Add test coverage for difficulty point piece operation 2021-11-12 22:16:09 +01:00
Dean Herbert
54ae307a3d Trigger test via button click when using keyboard shortcut 2021-11-12 14:42:33 +09:00
Dean Herbert
e891c0ce53 Add keyboard shortcut to start test mode in editor 2021-11-12 14:13:11 +09:00
Dean Herbert
321aa456a7 Adjust button size slightly 2021-11-12 14:04:34 +09:00
Bartłomiej Dach
c465bcb821
Ensure track is stopped on player completion 2021-11-11 20:54:36 +01:00
Bartłomiej Dach
385df51b06
Ensure editor test player is exited on completion 2021-11-11 20:54:36 +01:00
Bartłomiej Dach
59727ce836
Add minimal implementation of gameplay testing from editor 2021-11-11 20:54:35 +01:00
Bartłomiej Dach
32b5a736c8
Add preview gameplay button to bottom editor bar 2021-11-11 17:12:21 +01:00
Dean Herbert
51a353e12d Rename BeatmapInfo.Version to DifficultyName to match underlying interface 2021-11-11 17:20:53 +09:00
Dean Herbert
ebe58cee11 Rename BeatmapInfo.StarDifficulty to StarRating to match underlying interface 2021-11-11 17:19:46 +09:00
Bartłomiej Dach
b25ad8dfcb
Copy editor timestamp to OS clipboard even when triggered via menu bar
Would only work when triggered via Ctrl+C before, and not work at all
for Ctrl+X.
2021-11-10 12:49:10 +01:00
Bartłomiej Dach
5e31e890ae
Extract class for clipboard contents for DI purposes 2021-11-10 12:36:23 +01:00
Bartłomiej Dach
042b05a250
Move clipboard action availability logic down to editor screens 2021-11-09 19:54:37 +01:00
Bartłomiej Dach
286754f6f7
Move clipboard operation implementation down to current screen 2021-11-09 19:54:37 +01:00
Dean Herbert
ed07ee8c61 Update all existing usages of AuthorString/AuthorId
Unfortunately the getters need to be left in place else EF breaks.
2021-11-04 18:59:37 +09:00
Dean Herbert
09701d0af1 Use explicit primitive type specification 2021-11-04 16:02:37 +09:00
Dean Herbert
0f4f1349db Merge branch 'master' into editor-context-menu-on-select 2021-11-04 15:59:06 +09:00
Bartłomiej Dach
11de924704
Use LocalisableStrings where possible to leverage localisable text flow 2021-11-02 21:42:02 +01:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Jason Won
c633e2e952 only propagate unmodified right click 2021-10-26 16:24:53 -04:00
Jason Won
f64fa65fd5 right click on unselected object shows context menu 2021-10-26 14:52:15 -04:00
Dean Herbert
c47497923a Schedule drag events for now 2021-10-15 19:52:44 +09:00
Dean Herbert
30c3fcb4ea Merge branch 'master' into slider-timeline-velcotiy-adjust-v2 2021-10-15 19:45:04 +09:00
Dean Herbert
3909fd8caa Fix wonkiness when dragging slider end at high input refresh rates 2021-10-15 19:43:57 +09:00
Dean Herbert
874d722820
Merge branch 'master' into fix-editor-difficulty-name-update 2021-10-15 11:14:45 +09:00
Dean Herbert
ad0732484f Just wait for metadata section to be loaded 2021-10-14 22:12:38 +09:00
smoogipoo
901f107b2e Merge branch 'master' into slider-timeline-velcotiy-adjust-v2 2021-10-14 17:25:51 +09:00
Dan Balasescu
fb9c3fe72e
Merge pull request #14619 from peppy/no-more-difficulty-control-points-info
Move `DifficultyControlPoint`s to be specified at a per-`HitObject` level
2021-10-14 17:24:32 +09:00
Dean Herbert
09536cd733 Add logging of WorkingBeatmapCache.Invalidate calls 2021-10-14 14:05:33 +09:00
Bartłomiej Dach
d067159435
Recolour elements of editor setup screen to match dropdown theming 2021-10-13 22:32:54 +02:00
Dean Herbert
02689a1b60 Use actual BeatmapInfo rather than PlayableBeatmap.BeatmapInfo for editor writes 2021-10-13 14:50:12 +09:00
smoogipoo
bc37cb6f43 Merge branch 'master' into no-more-difficulty-control-points-info 2021-10-08 18:41:17 +09:00
Dean Herbert
ef64c64f0b
Merge branch 'master' into popup-filter-effect 2021-10-07 18:56:07 +09:00
Dean Herbert
f98dd1b811
Merge branch 'master' into popup-filter-effect 2021-10-07 18:40:21 +09:00
Dean Herbert
0df409c050 Move difficulty copy to BeatmapModelManager.Save 2021-10-07 17:16:45 +09:00
Dean Herbert
4ca97bc60a
Merge branch 'master' into difficulty-move-to-beatmap 2021-10-06 16:14:21 +09:00
Dean Herbert
222997f2b9 Copy difficulty settings back out to BeatmapInfo on editor changes 2021-10-06 15:19:26 +09:00
Dean Herbert
b339c149d8 Copy BaseDifficulty to Beatmap<T> and move all write operations across 2021-10-06 15:10:45 +09:00
Dean Herbert
d9849bcf49 Fix dragging on an editor file selection text box causing repeated popover display
Local fix and no tests as this is a pretty weird usage of `TextBox`.
We'll probably want to change it to not use a textbox eventually.

Closes #14969.
2021-10-06 13:15:05 +09:00
Dean Herbert
ec61c3c5ee Rename all remaining cases 2021-10-03 00:55:29 +09:00
Dean Herbert
ac471a0ec1 Merge branch 'no-more-difficulty-control-points-info' into slider-timeline-velcotiy-adjust-v2 2021-10-01 17:46:58 +09:00
Jamie Taylor
4d91204faf
Pause Editor sample playback while popup dialog is shown 2021-09-29 20:46:41 +09:00
Dean Herbert
46bafb6252 Merge branch 'master' into no-more-difficulty-control-points-info 2021-09-28 13:53:56 +09:00
Bartłomiej Dach
ca6cbca04a
Fix range selection crashing after non-mouse selection 2021-09-27 20:54:29 +02:00
Dean Herbert
df85092426 Resolve inner items early in process and rename variable 2021-09-27 14:24:17 +09:00
Dean Herbert
41fb3371e5
Merge branch 'master' into blueprint-container-sorting 2021-09-27 14:12:09 +09:00
Bartłomiej Dach
d3203f83dd
Add implementation of range selection 2021-09-26 20:12:26 +02:00
Bartłomiej Dach
81d160c85a
Add test covering expected UX of range selection 2021-09-26 19:27:47 +02:00
Bartłomiej Dach
6dc3e66c93
Include combo information when determining ordering if available 2021-09-26 15:52:25 +02:00
Bartłomiej Dach
a86b9893ac
Always re-sort blueprints before adding/removing one 2021-09-26 15:48:56 +02:00
Bartłomiej Dach
4e094b2127
Implement grid size toggling matching stable 2021-09-19 20:26:02 +02:00
Bartłomiej Dach
56e80a0706
Add rectangular position snap grid 2021-09-19 18:07:19 +02:00
smoogipoo
e8dea0138c Fix one more issue 2021-09-16 18:34:13 +09:00
smoogipoo
f9d5abff8a Update with keybinding changes 2021-09-16 18:26:12 +09:00
Dean Herbert
fa693bb8a8 Move MusicController adjustment set to inside OsuScreen itself (and result nullable) 2021-09-16 16:08:09 +09:00
AbstractQbit
318f0941ca Move all the "inherit previous AllowTrackAdjustments" logic into OsuScreen 2021-09-15 21:25:39 +03:00
Dean Herbert
931e873a7e
Merge branch 'master' into inheritable-allow-track-adjust 2021-09-15 22:26:13 +09:00
Dean Herbert
13f88cbc4e Fix EditorClock retaining a reference to potentially outdated ControlPointInfo 2021-09-14 23:56:57 +09:00
AbstractQbit
b9193aae6d Make IOsuScreen.AllowTrackAdjustments nullable
Allows for inheriting value from the previous screen if undefined
2021-09-14 17:37:57 +03:00
Dean Herbert
57f8ccca16 Remove nullability from EditorState properties
Also update the xmldoc to not be specific to difficulty switching
2021-09-14 23:36:28 +09:00
Dean Herbert
f8bdca542d Make restoring state a public call on Editor 2021-09-14 23:36:17 +09:00
Dean Herbert
2a894e7a3f Make EditorLoader state private 2021-09-14 23:26:02 +09:00
Dean Herbert
563bf92529 Also update the full object on sample changes to make them apply immediately 2021-09-14 19:21:23 +09:00
Dean Herbert
d825da3983 Add note about a better way to adjust velocity 2021-09-14 18:54:29 +09:00
Dean Herbert
e4dd59aee2 Add popovers to adjust SV and samples from the timeline 2021-09-14 18:51:22 +09:00
Dean Herbert
9d17f84681 Adjust timeline height to account for less global control points 2021-09-14 18:51:11 +09:00
Dean Herbert
9551e77553 Remove difficulty and sample sections from timing screen 2021-09-14 18:51:11 +09:00
Dean Herbert
87cfcf706e Add ability to change slider velocity with shift-drag 2021-09-14 18:26:17 +09:00
Dean Herbert
b19dc5e41f Remove all legacy ControlPoints when entering the editor 2021-09-14 18:26:16 +09:00
Dean Herbert
6015b5037a Display difficulty and sample control points associated with hitobjects 2021-09-14 18:26:16 +09:00
Bartłomiej Dach
35ee889e5b
Restore clipboard content after difficulty switch 2021-09-13 21:04:27 +02:00
Bartłomiej Dach
79d0f4835e
Add failing tests for preserving clipboard content 2021-09-13 21:03:30 +02:00
Bartłomiej Dach
3fc72271f1
Restore editor clock time after difficulty switch 2021-09-13 20:59:31 +02:00
Dean Herbert
65fdceee79
Merge branch 'master' into editor-test-scenes-through-loader 2021-09-13 14:02:55 +09:00
Bartłomiej Dach
345cde251d
Add "samples match playback rate" to editor setup screen 2021-09-12 16:54:17 +02:00
Bartłomiej Dach
22fa9a303e
Expose test helper for switching between difficulties 2021-09-12 13:55:48 +02:00
Bartłomiej Dach
8357efc74f
Make EditorTestScene go through EditorLoader 2021-09-12 13:26:04 +02:00
Dean Herbert
9edd010b1d Fix unnecessary background screen transition 2021-09-07 14:34:54 +09:00
Dean Herbert
7921ad4516 Add loading spinner in case load takes longer than expected 2021-09-07 14:34:47 +09:00
Dean Herbert
ddaa95a1ca Fix pushEditor function running twice on returning to loader 2021-09-07 14:34:18 +09:00
Bartłomiej Dach
5b9f37702b
Remove unnecessary delay before pushing editor from loader 2021-09-06 21:32:23 +02:00
Bartłomiej Dach
2d59008f52
Move screen management logic to EditorLoader 2021-09-06 21:30:50 +02:00
Bartłomiej Dach
bd7d6dd35d
Rename method 2021-09-06 21:27:17 +02:00
Dean Herbert
ce197b6322 Fix missing attribute text (and give slightly more space for "10.00x" cases 2021-09-06 21:40:30 +09:00
Dean Herbert
3c7a34bdbd Move mania-specific conversion to converter 2021-09-06 21:06:13 +09:00
Dean Herbert
52b6b05883 Update terminology in timing screen for now 2021-09-06 21:06:13 +09:00
Dean Herbert
0500cd578a Merge branch 'master' into no-more-difficulty-control-points-info 2021-09-06 21:06:12 +09:00
Bartłomiej Dach
d6a47fd99c
Sort difficulties by ruleset and star rating in menu 2021-09-05 21:48:11 +02:00
Bartłomiej Dach
7012a1d934
Fix issues with main menu -> editor loader transition 2021-09-05 21:48:11 +02:00
Bartłomiej Dach
382269b362
Test staying on same difficulty due to unsaved changes 2021-09-05 21:48:10 +02:00
Bartłomiej Dach
c72523bc14
Add basic test for difficulty switching 2021-09-05 21:48:10 +02:00
Bartłomiej Dach
a9403b65b3
Eliminate dependency on OsuGame 2021-09-05 21:48:10 +02:00
Bartłomiej Dach
c397cc2027
Restructure proof of concept 2021-09-05 21:48:09 +02:00
Bartłomiej Dach
fe2520c599
Add intermediary screen to avoid going back to menus 2021-09-05 21:48:09 +02:00
Bartłomiej Dach
7befd030df
Minimal working example of switching difficulties 2021-09-05 21:48:09 +02:00
Bartłomiej Dach
90f0b6874f
Highlight current difficulty in switcher 2021-09-05 21:48:08 +02:00
Bartłomiej Dach
e8fb5d2e66
Add non-functional difficulty switcher to menu 2021-09-05 21:48:08 +02:00
Dean Herbert
e0ee2a5533 Change section title to read better 2021-09-05 13:34:57 +09:00
Dean Herbert
25420af078 Rename method to drop redundant ruleset suffix 2021-09-05 13:34:23 +09:00
Bartłomiej Dach
1a90fb1ef3
Fix cached property being assigned twice 2021-09-04 19:52:42 +02:00
Dean Herbert
f42131ff89 Add back editor functionality for now 2021-09-03 19:08:23 +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
Dean Herbert
a3d9ab1e2e Move approach rate to EffectControlPoint 2021-09-03 16:58:16 +09:00
Dean Herbert
071c56e90b Update usages of DifficultyPointAt 2021-09-03 16:58:16 +09:00
Bartłomiej Dach
ce1912781e
Add extension point for ruleset-specific beatmap setup sections 2021-09-02 23:29:14 +02:00
Dan Balasescu
6c649b7bbe
Merge branch 'master' into no-more-sample-control-points-info 2021-09-02 18:09:05 +09:00
Dean Herbert
0319177c5c Fix pixels poking out of the top edge of editor setup screen 2021-09-01 16:46:19 +09:00
Dean Herbert
edf29e405b
Merge pull request #14581 from bdach/setup-screen-countdown-settings
Add countdown settings to setup screen
2021-09-01 15:35:46 +09:00
Bartłomiej Dach
5dc938cc9f
Update tests to match expectations 2021-08-31 22:41:47 +02:00
Bartłomiej Dach
04773b51bb
Remove countdown toggle transition for now
Tricky to get right and the design isn't final as is anyway, so leaving
*something* functioning as a best-effort for now.
2021-08-31 22:41:40 +02:00
Dean Herbert
ce0d7cce2d Merge branch 'remove-ijsonserializable' into no-more-sample-control-points-info 2021-08-31 14:40:54 +09:00
Dean Herbert
c25ab6835c Remove IJsonSerializable interface
Was pretty pointless and made it hard to use the custom serialisation
terms arbitrarily in tests.
2021-08-31 14:39:20 +09:00
Bartłomiej Dach
ddf9d2aa6c
Add test coverage 2021-08-30 22:55:58 +02:00
Bartłomiej Dach
eec9f6d191
Add countdown settings to design section 2021-08-30 22:51:41 +02:00
Dean Herbert
ccacf56dd8 Move to legacy namespace 2021-08-30 17:14:53 +09:00
Dean Herbert
7257aae7f2 Move samples to LegacyControlPointInfo 2021-08-30 17:14:53 +09:00
Bartłomiej Dach
fcc3e57d5d
Move overlay colour provider up to editor screen 2021-08-28 20:05:58 +02:00
Bartłomiej Dach
e94d96f250
Add local popover container to editor screens 2021-08-28 20:05:58 +02:00
Salman Ahmed
b4d6495f99 Fix editor skin providing container not providing playable beatmap 2021-08-25 17:52:36 +03:00
Salman Ahmed
3ad0b529fb Make EditorScreen inherit from VisibilityContainer rather than unsafe transforms 2021-08-25 17:14:52 +03:00
Bartłomiej Dach
ccf337bdc2
Merge branch 'master' into editor-setup-file-selector-popovers 2021-08-23 18:28:44 +02:00
Salman Ahmed
bd42d7aada Hide popover on file selection 2021-08-23 18:01:01 +03:00
Dean Herbert
c2c9a93e2c Show editor file choosers in a popover rather than inline
Supersedes and closes #14370.
Closes #14367.
2021-08-23 18:12:36 +09:00
Dean Herbert
2f6b95da39 Add descriptions for the remaining settings 2021-08-23 17:41:03 +09:00
Dean Herbert
1de84e1c98
Change description to include mention of video
Co-authored-by: Joseph Madamba <madamba.joehu@outlook.com>
2021-08-23 17:34:19 +09:00
Bartłomiej Dach
2e80e2be51
Reword epilepsy warning description text 2021-08-22 21:47:37 +02:00
Bartłomiej Dach
9816af688e
Add basic design settings to setup screen 2021-08-22 17:43:20 +02:00
Dean Herbert
98357d51da
Merge pull request #14323 from minetoblend/editor-seek
Prevent seeking before mp3 start time while editor is playing
2021-08-20 13:28:20 +09:00
Salman Ahmed
8c5d99ab21 Override CreateInstance() in osu! bindable subclasses
Three bindables are left which don't have this overriden due to them
already not having a value-only constructor and not supporting
`GetBoundCopy()` properly:
 - `BeatmapDifficultyCache.BindableStarDifficulty`.
 - `TotalScoreBindable`
 - `TotalScoreStringBindable`

I could add support for them by passing the required data to them, as
they seem to be able to have that shared, but I'm hesitant to support
something which was already broken and never used, not sure.
2021-08-18 04:19:58 +03:00
Dean Herbert
f16468b706 Improve visibility of repeat ticks / drag areas on timeline 2021-08-17 18:17:55 +09:00
Marvin Schürz
78f9f4a230 Move time clamp to Seek/transformSeekTo methods 2021-08-16 20:39:09 +02:00
Dean Herbert
1c7cbc8621 Add missing readonly keyword to new bindable 2021-08-16 17:14:13 +09:00
Bartłomiej Dach
6108451449
Retrieve separated skin instance from working beatmap for editing 2021-08-15 21:18:09 +02:00
Bartłomiej Dach
81280dfd25
Use editable skin structure in combo colour picker 2021-08-15 21:18:08 +02:00
Bartłomiej Dach
0d64da8c63
Add skin providing container responding to beatmap skin edits 2021-08-15 21:18:08 +02:00
Bartłomiej Dach
df43e758ee
Add editable beatmap skin 2021-08-15 21:18:07 +02:00
Marvin Schürz
d287db7961 Clamping seekTime to beatmap length 2021-08-15 14:48:56 +02:00
Jamie Taylor
c1d8a7e2ad
Add and use 'Submit' select sample variant for particular components 2021-07-30 21:35:28 +09:00
Jamie Taylor
be3c02ff7f
Remove 'Soft' select sample variant usage (soft is the new default) 2021-07-30 21:35:27 +09:00
Bartłomiej Dach
0691c0dd63
Switch Colour{Display,Palette} to use Colour4 2021-07-29 23:14:32 +02:00
Henry Lin
89e8296eb1 Reset all types of adjustments in MusicController; Rename AllowRateAdjustments to AllowTrackAdjustments 2021-07-29 15:39:26 +08:00
Bartłomiej Dach
239b38a0ab
Reduce implicit conversions by using default 2021-07-27 21:46:29 +02:00
Lucas A
94877117b9 Apply changes in-line with framework changes. 2021-07-27 18:22:47 +02:00
Dean Herbert
50a2abbe7f
Merge pull request #12683 from frenzibyte/legacy-beatmap-combo-offset
Apply combo offsets "colour hax" only on beatmap skins
2021-07-23 14:30:18 +09:00
Salman Ahmed
7bc30b46ff Use BindValueChanged with last running immediately instead 2021-07-23 07:51:58 +03:00
Salman Ahmed
ee3791ccf2 Update colours once on TimelineHitObjectBlueprint 2021-07-23 06:25:56 +03:00
Salman Ahmed
523c154f15 Add ComboIndexWithOffsetsBindable and bind similar to ComboIndexBindable 2021-07-22 16:40:33 +03:00
Dean Herbert
29ffae4025
Merge pull request #13967 from nekodex/new-select-sounds
Add new 'soft' select sound variant and use it in some places
2021-07-22 16:21:03 +09:00
Dean Herbert
8b1202153a
Merge pull request #13951 from LumpBloom7/timeline-object-interactions
Make timeline blueprints outside of TimelineBlueprint boundaries interactable
2021-07-22 16:20:22 +09:00
Dean Herbert
957a0686ed Split out nested classes from TimelineBlueprintContainer
They got too big.
2021-07-22 15:48:08 +09:00
Dean Herbert
b5cc9010de Move resolved property to top of class 2021-07-22 15:39:01 +09:00
Jamie Taylor
507b53dc73
Use 'Soft' hover/select samples for EditorTable row selection 2021-07-21 22:02:40 +09:00
Derrick Timmermans
9d43ca122f
Allow context menus to be triggered as well 2021-07-21 12:04:09 +02:00
Derrick Timmermans
f85ff40a6b
Add back LeftMouse button check 2021-07-21 11:47:21 +02:00
Dean Herbert
adda96ac86
Merge pull request #13962 from ekrctb/platform-action
Adapt to framework `PlatformAction` type change
2021-07-21 18:17:38 +09:00
ekrctb
1bac471b49 Adapt to PlatformAction type change 2021-07-21 16:12:53 +09:00
ekrctb
1bff4373b3 Allow specifying flipping support of selection box different from scaling 2021-07-21 15:59:45 +09:00
Derrick Timmermans
a8cf6a6854
Fix slight Y position offset in HandleDrag 2021-07-20 23:00:58 +02:00
Derrick Timmermans
bfec87b082
Let TimelineBlueprintContainer only accept positional input within timeline quad 2021-07-20 22:30:50 +02:00
Derrick Timmermans
8b09ddbcd6
Merge branch 'ppy:master' into timeline-object-interactions 2021-07-20 16:36:39 +02:00
Salman Ahmed
1af230c48c Merge branch 'master' into refactor-combo-colour-retrieval 2021-07-20 10:08:25 +03:00
Dan Balasescu
f3bcaf7f11
Merge pull request #13929 from peppy/i-deep-cloneable
Create a deep clone of score for score submission purposes
2021-07-19 21:58:27 +09:00
Dean Herbert
bde35d9f21 Rename radio button classes to be local to editor 2021-07-19 16:57:12 +09:00
Dean Herbert
3c028ce05c Add IDeepCloneable interface and update existing CreateCopy methods to use it 2021-07-19 12:54:17 +09:00
Derrick Timmermans
2e2a2bdd99
Allow moving timeline selection when mousedown event is outside of blueprint container 2021-07-18 18:06:59 +02:00
Derrick Timmermans
ee220feecf
Avoid using guesses to determine whether inputs blocked 2021-07-18 16:04:23 +02:00
Dean Herbert
50eed26bd1 Rename radio button item to label 2021-07-17 02:32:23 +09:00
Dean Herbert
eac9b1ec7e Disable toolbox composition buttons when beatmap is not timed 2021-07-17 02:30:13 +09:00
Dean Herbert
3ae5f6707a Expose whether an EditorBeatmap has timing present or not via bindable 2021-07-17 02:30:00 +09:00
Dean Herbert
7a671754f2 Change RadioButton's object to a string 2021-07-17 02:29:31 +09:00
Derrick Timmermans
e35cff99c7
Pass on mouseDown input to timeline if no selection modification is made with that input 2021-07-16 17:21:43 +02:00
Derrick Timmermans
3e8a13bfbf
Allow interacting with timeline objects outside of drawable bounds 2021-07-16 16:16:34 +02:00
Bartłomiej Dach
f45418dde7 Replace game-side directory/file selector with framework extensions 2021-07-06 22:11:54 +02:00
Bartłomiej Dach
50c27d2635 Update usages of IHasTooltip in line with framework localisation changes 2021-06-25 19:10:04 +02:00
Dean Herbert
f62b4f2d24
Merge pull request #13617 from ekrctb/catch-editor
Add "placeholder" (pre-MVP) implementation of osu!catch editor
2021-06-23 14:00:34 +09:00
ekrctb
0b351c9922 Fix "possible NRE" inspection 2021-06-23 10:57:04 +09:00
ekrctb
eec4457473 Add [CanBeNull] to methods returning null by default 2021-06-23 09:40:07 +09:00
ekrctb
a9c7830252 Fix NRE when hit object blueprint is not implemented 2021-06-22 17:20:13 +09:00
Dean Herbert
4b45d8318e
Merge branch 'master' into transformers-per-skin 2021-06-16 16:37:28 +09:00
Dean Herbert
04413f1634
Merge pull request #13444 from peppy/editor-timeline-taiko-hit-colouring
Show osu!taiko centre/rim colouring in editor timeline
2021-06-11 15:10:24 +09:00
Dan Balasescu
97375d9625
Merge pull request #13438 from bdach/more-metadata-fields
Add remaining metadata fields to editor setup screen
2021-06-11 14:17:34 +09:00
Dean Herbert
bc3b7233ab Show osu!taiko centre/rim colouring in editor timeline
Closes #13443.
2021-06-11 14:17:30 +09:00
Dean Herbert
38bf04d7ff Give more space for time values to allow for negative offsets 2021-06-11 13:25:09 +09:00
Bartłomiej Dach
417aaacc53 Add test coverage for romanised data transfer 2021-06-10 22:18:39 +02:00
Bartłomiej Dach
e41a5a0fcd Add romanised author & title fields 2021-06-10 22:17:45 +02:00
Bartłomiej Dach
252fe0a6cc Add source and tags text boxes to metadata section 2021-06-10 14:13:59 +02:00
Bartłomiej Dach
5a2e710095 Split common method for metadata textbox creation 2021-06-10 13:55:34 +02:00
Salman Ahmed
dde84e5cbd Merge branch 'master' into transformers-per-skin 2021-06-10 11:58:52 +03:00
Salman Ahmed
e30f6581b3 Wrap gameplay content within a RulesetSkinProvidingContainer 2021-06-09 22:49:31 +03:00
Bartłomiej Dach
410cb16340 Apply fixed label width to setup screen items 2021-06-08 17:18:00 +02:00
Bartłomiej Dach
78213e09d4
Merge branch 'master' into editor-exit-stability 2021-05-30 23:03:50 +02:00
Dean Herbert
9b239e308b Merge branch 'master' into beatmap-skin 2021-05-29 15:36:43 +09:00
Dean Herbert
f1b5aced6f Merge branch 'master' into editor-exit-stability 2021-05-28 14:32:32 +09:00
Dean Herbert
14a4095140 Merge branch 'master' into beatmap-skin 2021-05-26 18:39:47 +09:00
Dean Herbert
268230c8c4 Merge branch 'master' into fix-taiko-editor-sample-mutations 2021-05-25 19:01:47 +09:00
Dean Herbert
4fc6ba50b7 Fix editor placement ending early if a blueprint becomes alive from a pool
Closes https://github.com/ppy/osu/issues/12630.
2021-05-24 17:04:02 +09:00
Dean Herbert
4c9d72e62a Ensure EditorBeatmap.Update is called inside PerformOnSelection calls 2021-05-23 21:22:35 +09:00
Joseph Madamba
2fd0038154 Fix checkmark being hidden after clicking current waveform opacity setting 2021-05-22 16:42:20 -07:00
Salman Ahmed
4f6de6fdc6 Implement GetSkin() for other working beatmaps 2021-05-21 20:21:29 +03:00
Dean Herbert
bb2fae55ce Merge branch 'master' into refactor-selection-rotate-logic 2021-05-21 19:19:54 +09:00
Dean Herbert
df5970fab4 Create base implementations of the two most common TernaryStateMenuItems 2021-05-20 19:34:53 +09:00
Dean Herbert
27e81d6504 Implement proper rotation algorithm for skin editor 2021-05-20 18:21:16 +09:00
Dean Herbert
dbfaaecd9c Reword comment to not mention tests driectly 2021-05-20 15:39:29 +09:00
Dean Herbert
a639132825 Avoid doing any re-fetch on beatmap from test scenes 2021-05-19 17:58:28 +09:00
Dean Herbert
a0f67ef3bc Move scaling logic out of OsuSelectionHandler for reuse 2021-05-19 17:37:28 +09:00
Dean Herbert
44e22b31a9 Refactor editor exit sequence to avoid any scenario where a dialog could go stray 2021-05-19 16:51:54 +09:00
Dean Herbert
41d8bc291c
Merge pull request #12783 from smoogipoo/hoc-event-queue
Add a HitObjectUsageEventBuffer to handle HOC events appropriately
2021-05-18 22:22:53 +09:00
smoogipoo
d93ac7ac98 Change class xmldoc a bit 2021-05-18 19:15:46 +09:00
smoogipoo
ab6a79f84c Simplify 2021-05-18 19:15:46 +09:00
smoogipoo
97f4f7bbd1 Remove Component inheritance 2021-05-18 18:59:45 +09:00
smoogipoo
633f841a0f Rename to HitObjectUsageEventBuffer 2021-05-18 18:57:02 +09:00
smoogipoo
bfc0205e9b Fix (began, finished) event 2021-05-18 18:49:11 +09:00
Dean Herbert
d661e98fa6 Move common functionality out of OsuSelectionHandler and implement flip support 2021-05-18 18:34:06 +09:00
smoogipoo
61a41d97a4 Add some xmldocs + comments 2021-05-18 17:39:45 +09:00
Dean Herbert
ed957df162 Add simple xmldoc to TransferBlueprintFor method 2021-05-18 16:40:56 +09:00
Dean Herbert
55cc533a37
Merge branch 'master' into hoc-event-queue 2021-05-18 16:31:20 +09:00
Dean Herbert
a96603f025
Merge pull request #12782 from smoogipoo/rework-hitobject-blueprints
Rename hitobject blueprints and tie them to HitObjects
2021-05-18 16:30:58 +09:00
smoogipoo
75c0d4d972 Merge branch 'rework-hitobject-blueprints' into hoc-event-queue 2021-05-18 14:33:52 +09:00
smoogipoo
882d54a8f8 Remove now unnecessary Apply() method 2021-05-18 14:26:26 +09:00
smoogipoo
e621cfc4ea Add Apply() method for applying new DHOs 2021-05-18 14:14:10 +09:00
smoogipoo
f1f3606fd0 Fix unresolved xmldocs 2021-05-18 13:11:58 +09:00
Dan Balasescu
9d423245d8
Fix up xmldocs
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-05-18 13:02:23 +09:00
Dean Herbert
bdcb1a624e
Merge pull request #12759 from Naxesss/beatmap-verifier-context
Encapsulate check arguments in context object
2021-05-15 15:39:12 +09:00
Dean Herbert
67a99c83a3 Tidy bindable changed code up 2021-05-14 16:24:52 +09:00
Dean Herbert
b36c991ba1 Fix single case of incorrect usage 2021-05-14 12:04:38 +09:00
smoogipoo
362a09ca73 Fix up + reduce complexity of HOCEventQueue 2021-05-13 21:41:49 +09:00
smoogipoo
aaf31af326 Add blueprint transferral 2021-05-13 21:16:19 +09:00
smoogipoo
86042e1763 Implement HitObjectContainerEventQueue 2021-05-13 21:15:47 +09:00
Dan Balasescu
746862dcb1
Merge pull request #12750 from peppy/skin-serialisation
Add skin editor saving / loading support
2021-05-13 20:58:03 +09:00
smoogipoo
ffb6135a1b Rework hitobject blueprints to take in hitobject models 2021-05-13 19:53:32 +09:00
Dan Balasescu
3c471837f8
Merge branch 'master' into skin-serialisation 2021-05-13 19:49:55 +09:00
Dan Balasescu
a3869c02f4
Merge branch 'master' into fix-two-hovered-handles 2021-05-13 19:24:42 +09:00
Naxess
19800f5f7f Move IBeatmap arg into context 2021-05-13 11:24:22 +02:00
Naxess
b37cb3bdbe Change interpreted difficulty from bindable to regular value
There's no reason for why checks would need this to be bindable. A 1-directional binding is more appropriate.
2021-05-13 09:00:30 +02:00
Naxess
4eeeaf6a1a Keep track of local bound copy 2021-05-13 07:57:32 +02:00
Naxess
e7c7786db3
Merge branch 'master' into beatmap-verifier-context 2021-05-13 07:40:33 +02:00
Dean Herbert
b81f86bd4d Move DI resolution to inside BDL parameters 2021-05-13 13:54:06 +09:00
Dean Herbert
c6648112e5 Simplify binding flow in InterpretationSection 2021-05-13 13:51:41 +09:00
Dean Herbert
cdcbaf4291 Tidy up specification of SettingsSection 2021-05-13 13:45:10 +09:00
Naxess
47948d7b34 Set default for bindable in object initializer
Fixes the CI failure.
2021-05-13 06:08:48 +02:00
Naxess
fb305130de Also refresh when interpreted difficulty changes 2021-05-13 06:00:21 +02:00
Naxess
ee0a6ba93e Use local bound copy in InterpretationSection as well
Else we're relying on the `VerifyScreen`'s bindable instance, and by extension the `VerifyScreen` instance itself.
2021-05-13 05:59:49 +02:00
Naxess
e80d8f6922 Keep track of local bound copy 2021-05-13 05:46:47 +02:00
Naxess
04c1585eb2 Use more consistent lambda discards 2021-05-13 05:38:45 +02:00
Naxess
e86834b740 Use local bound copy for HiddenIssueTypes 2021-05-13 05:25:20 +02:00
Naxess
c8d21f2c3f Isolate refreshing to IssueList 2021-05-13 05:25:02 +02:00
Naxess
fbb76ba598 Split ShowIssueTypes dict into hidden and configurable lists
This way `VerifyScreen` is decoupled from which options `VisibilitySection` provides.

Bindings are a bit less neat, though.
2021-05-13 04:50:32 +02:00
Naxess
dd8423c4c4 Set interpreted difficulty to correct default 2021-05-13 04:36:20 +02:00
Naxess
6806e40ad9 Remove unnecessary local variable
This now exists in `VerifyScreen`, which we can access from here.
2021-05-13 04:30:40 +02:00
Naxess
56bd897666 Move ShowIssueTypes to VerifyScreen 2021-05-13 04:29:27 +02:00
Salman Ahmed
96d3586294 Fix rotation handle visibility logic not handling two handles hovered at once 2021-05-12 11:42:55 +03:00
Dean Herbert
d2e0e8ad94 Reverse direction of binding to allow for better abstract class definitions 2021-05-12 16:53:58 +09:00
Dean Herbert
17e3764576 Rename Settings to have a more localised name 2021-05-12 16:38:04 +09:00
Naxess
64d96b06a6 Add interpreted difficulty info to BeatmapVerifierContext
Enables checks to make use of the difficulty level as shown in the settings UI.
2021-05-12 02:30:21 +02:00
Naxess
c13b93e6f1 Replace IWorkingBeatmap arg with BeatmapVerifierContext in checks
This simplifies passing of contextual information by enabling addition without needing to refactor lots of classes.

See next commit for example.
2021-05-12 02:29:18 +02:00
Naxess
4aeaec6ecc Add InterpretationSection and its bindable in IssueList
We'll eventually connect that bindable so that checks can access it.
2021-05-12 01:32:18 +02:00
Naxess
ad78aec1ef Refresh IssueList on changes in VisibilitySection 2021-05-12 01:30:45 +02:00
Naxess
1bb7d412da Add IssueList filtering based on those bindables 2021-05-12 01:29:46 +02:00
Naxess
2e4399f0c1 Add VisibilitySection and its bindables in IssueList 2021-05-12 01:27:21 +02:00
Naxess
01b8794757 Add abstract Section class
Similar to `Section` in the timing screen, but does not make use of checkboxes, nor specific to control points.

So there's a lot of things that differ, hence new class instead of factoring that out.
2021-05-12 01:26:12 +02:00
Naxess
1de35f880b Separate IssueList into own class 2021-05-12 01:23:31 +02:00
Naxess
d3c1ec55ee Take IssueList in IssueSettings constructor
We'll be using this for bindables later.
2021-05-12 01:22:32 +02:00
Naxess
97bd482d4d Factor out load from settings into new Settings class 2021-05-12 01:21:38 +02:00
Dean Herbert
a4e0529617 Replace polling logic with direct bindable reactions 2021-05-11 18:39:15 +09:00
Dean Herbert
6bb52ebcf8
Merge pull request #12570 from frenzibyte/corner-rotation-controls
Add rotation controls to editor selection box corners
2021-05-10 23:09:44 +09:00
Salman Ahmed
fc2a527e9d Revert "Guard against potentially null track if ever"
This reverts commit b1134c3857.
2021-05-07 09:57:08 +03:00
Salman Ahmed
7c4e54a1d4 Unrevert null-colaescing/conditionals removal 2021-05-07 09:54:14 +03:00
Salman Ahmed
b1134c3857 Guard against potentially null track if ever 2021-05-07 08:30:50 +03:00
Salman Ahmed
37f44d2e37 Revert wrong not-null track changes
This reverts commit f9d99a9882.
This reverts commit 71547bece0.
2021-05-07 08:28:44 +03:00
Salman Ahmed
71547bece0 Remove any null-coalescing/conditionals in WorkingBeatmap.Track usages 2021-05-07 07:46:23 +03:00
Salman Ahmed
539643c72b Set loadable beatmap track to clock immediately in BDL
This reverts commit 84da247002.

Use loadable beatmap track for clock directly in BDL
2021-05-07 07:21:56 +03:00
Salman Ahmed
84da247002 Fix editor clock using the wrong beatmap track on creation 2021-05-07 05:32:55 +03:00
Salman Ahmed
2a67361dc0 OnOperation -> TriggerOperation 2021-05-05 21:50:16 +03:00
Bartłomiej Dach
3cac837acf
Merge branch 'master' into skin-bindables 2021-05-05 20:16:27 +02:00
Salman Ahmed
eeeb001d62 Refactor combo colour retrieval logic to request skin lookups instead 2021-05-05 07:17:27 +03:00
Salman Ahmed
1ac80d42f9
Merge branch 'master' into corner-rotation-controls 2021-05-04 23:53:23 +03:00
Bartłomiej Dach
4185053120
Merge branch 'master' into fix-selection-handler-visibility 2021-05-04 20:21:05 +02:00
Salman Ahmed
8abff4881b Hide the corresponding rotation handle when holding scale handle 2021-05-04 07:31:55 +03:00
Salman Ahmed
b2a0c2b563 Consider drag handles active using mouse down instead of when dragged 2021-05-04 06:41:26 +03:00
Salman Ahmed
5f33c3514e Move selection box control internal events to drag handles 2021-05-04 06:37:22 +03:00
Salman Ahmed
fd7a6b3a7c Finish transforms on controls load complete 2021-05-04 06:37:20 +03:00
Dean Herbert
b28e1569ca Remove no-longer-relevant matching comment 2021-05-03 20:09:50 +09:00
Salman Ahmed
840c22a3b1 Add back mis-removed fade transform 2021-05-03 12:16:40 +03:00
Dean Herbert
4f8240f19a
Merge branch 'master' into corner-rotation-controls 2021-05-03 18:02:23 +09:00
Dean Herbert
fdd0713988 Merge branch 'fix-selection-handler-visibility' into skin-bindables 2021-05-03 17:40:03 +09:00
Dean Herbert
3268a75f05 Remove intermediate container to fix tests 2021-05-03 17:35:56 +09:00
Dean Herbert
839ac968a9 Fix tooltips displaying for hidden SelectionHandler content 2021-05-03 17:28:24 +09:00
Dean Herbert
4cfa858dc4 Fix tooltips displaying for hidden SelectionHandler content 2021-05-03 15:37:15 +09:00
Dean Herbert
01984de9c7 Use existing GetStateFromSelection helper function 2021-05-03 15:13:32 +09:00
Dean Herbert
8c9cfb6301 Remove unsafe access to Composer.HitObjects 2021-05-03 14:28:35 +09:00
Salman Ahmed
b83aa0bd76 Avoid LINQ in update 2021-05-02 06:21:14 +03:00
Salman Ahmed
0aa17e7c95 Rewrite selection box computation logic with RectangleF's helper methods 2021-05-02 02:51:06 +03:00
Salman Ahmed
07fe99025f Use bounding box of blueprint for computing selection box area 2021-05-02 02:36:40 +03:00
Bartłomiej Dach
eef135f8dc
Merge branch 'master' into remove-unused-triangles 2021-04-30 21:51:23 +02:00
Dan Balasescu
e6eea73b8b
Merge branch 'master' into basic-compose-checks 2021-04-30 23:41:46 +09:00
Dean Herbert
e4f895b490 Fix editor buttons inheriting from TriangleButton when they have no need to 2021-04-30 14:48:37 +09:00
Dean Herbert
9c62c90cfc Refactor SelectionBlueprint and MoveSelectionEvent to work in screen-space coordinates
Until now, the implementation of the overrides in `SelectionBlueprint`
have been confusing to the point where I would just implement by
trial-and-error (or copying from an existing implementation). This was
due to a combination of using "object" space coordinates
(ie. the thing the `Blueprint` is operating on) and screen-space coordinates.

This change switches all event related coordinates to screen-space,
which is how we already handle rotation/scale operations. With the
introduction of other editor types where the related objects are
drawables, this also makes a lot more sense.
2021-04-29 16:10:42 +09:00
Dean Herbert
f3c7694eeb Rename methods to match generally how these find-methods are named elsewhere 2021-04-28 16:57:52 +09:00
Dean Herbert
48d6c9ac4b Move snap/divisor helper methods to inside ControlPointInfo 2021-04-28 16:47:30 +09:00
Dean Herbert
e0906daebf Change one remaining instance of incorrect terminology in xmldoc 2021-04-28 13:49:41 +09:00
Dean Herbert
4c9e94da2b Move context menu logic to base class 2021-04-28 13:43:16 +09:00
Dean Herbert
532ec40395 Remove unnecessary newline 2021-04-28 12:04:48 +09:00
Dean Herbert
43772f4303 Remove duplicated call to initially select blueprint 2021-04-28 12:03:41 +09:00
Dean Herbert
e4f2e0131c Rename AllowDeselection to better match use case 2021-04-28 12:02:55 +09:00
Dean Herbert
a9a5809e94 Fix incorrect xmldoc in MoveSelectionEvent 2021-04-28 11:46:52 +09:00
Dean Herbert
d0be8f9fb3 Remove one more out-of-date comment 2021-04-28 11:45:36 +09:00
Dean Herbert
bc455005a5 Fix incorrect coordinate space mention in xmldoc 2021-04-28 11:44:50 +09:00
Dean Herbert
61d4eb1777 Remove unnecessary and out-of-place xmldoc 2021-04-28 11:44:19 +09:00
Dean Herbert
aa1cb65eaa Rename region to be more inclusive 2021-04-28 11:42:22 +09:00
Dean Herbert
42255f8d33 Rename and xmldoc selection completed method 2021-04-27 19:01:29 +09:00
Dean Herbert
7ec5ea1eb5 Remove hitobject terminology from base classes 2021-04-27 19:01:29 +09:00
Dean Herbert
ff06a27a12 Revert changes to OnBlueprint methods and handle select-on-addition locally 2021-04-27 19:01:29 +09:00
Dean Herbert
f97b14a20a Fix binding direction of selected items 2021-04-27 19:01:29 +09:00
Dean Herbert
dd3d8e5d03 Make SelectionHandler abstract to ensure things get implemented 2021-04-27 19:01:29 +09:00
Dean Herbert
32416e4e31 Move model selection handling to base SelectionHandler class 2021-04-27 19:01:29 +09:00
Dean Herbert
eac139ca0e Allow BlueprintContainer to perform movement without an ISnapProvider 2021-04-27 19:01:29 +09:00
Dean Herbert
f2e56bd306 Refactor editor selection/blueprint components to be generic 2021-04-27 19:01:29 +09:00
Naxess
7b9ed924be Rename snapping methods
Further separates them from `IBeatSnapProvider`'s `SnapTime`, and groups them together more, to prevent confusion between the two interfaces.

Also changes the xmldoc of the reference time to that of `IBeatSnapProvider` for consistency.
2021-04-26 16:07:30 +02:00
Naxess
049e42fa85 Move snapping responsibility to IBeatmap
Seems `EditorBeatmap` already implements a different kind of `SnapTime` from `IBeatSnapProvider`, so method names here aren't great.

This is very similar to what https://github.com/ppy/osu/pull/12558 is doing, so may need to do some duplicate resolution later, especially surrounding `ClosestBeatSnapDivisor`.

Worth noting that this change makes 1/7, 1/5, etc unsupported for now, as we now rely on `BindableBeatDivisor.VALID_DIVISORS`.
2021-04-26 05:07:24 +02:00
Salman Ahmed
485da47d89 Revert "Inherit VisibilityContainer and make duration constant protected"
This reverts commit c58ef4230d. Uhh, how did I push this..
2021-04-26 01:41:42 +03:00
Salman Ahmed
b252485e1a Remove protected expose of HandlingMouse setter
Regardless of `OnDragEnd()`, `OnMouseUp()` will still be called resetting the value of that state back.
2021-04-25 20:13:23 +03:00
Salman Ahmed
7390a12e4b SelectionBoxDragHandleDisplay -> SelectionBoxDragHandleContainer 2021-04-25 20:03:15 +03:00
Salman Ahmed
c58ef4230d Inherit VisibilityContainer and make duration constant protected 2021-04-25 20:03:15 +03:00
Salman Ahmed
79e2b232d8
Improve English
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-04-25 19:26:53 +03:00
Salman Ahmed
a8c460f7df Replace separated top-centered rotation button with rotation drag handles 2021-04-25 10:17:36 +03:00
Salman Ahmed
77f7d4c963 Add composite managing display of selection box drag handles 2021-04-25 10:17:36 +03:00
Salman Ahmed
ab71782674 Use colour fade transform for selection box controls
To become harminous with the fade transforms of the rotation control
2021-04-25 10:14:31 +03:00
Salman Ahmed
62bcc5f76d Add property for tracking whether control is during operation 2021-04-25 10:14:31 +03:00
Salman Ahmed
206fc94b8c Add rotation drag handle component 2021-04-24 08:00:36 +03:00
Salman Ahmed
4bfa9cd6b6 Change inheritance of selection box buttons to base control instead 2021-04-24 08:00:29 +03:00
Salman Ahmed
decd8803bc Abstract base appearence and hover update from drag handles 2021-04-24 07:45:53 +03:00
Dan Balasescu
93b53f54fa
Merge pull request #12531 from peppy/editor-add-nudge-shortcuts
Add simple key based time nudging support to editor
2021-04-22 21:14:51 +09:00
Dean Herbert
a5364b224f Add simple key based time nudging support to editor 2021-04-22 18:47:04 +09:00
Dean Herbert
1884c18a2c Ignore movement operations which have no offset 2021-04-22 18:12:03 +09:00
Dean Herbert
9d8f0c854d Setup configuration item for editor hit animations 2021-04-21 18:05:40 +09:00
Dean Herbert
c6c91cd9a5 Refactor WaveformOpacityMenuItem to not receive whole config 2021-04-21 18:05:26 +09:00
Dean Herbert
26430e3cb5
Merge pull request #12492 from Naxesss/bg-audio-quality-checks
Add background and audio checks
2021-04-21 00:10:32 +09:00
Naxess
3e1b6b3b34 Simplify verifier run call args
Uses the resolved working beatmap instead of resolving it every time.

Also uses the EditorBeatmap itself as playable beatmap, as it is of type `IBeatmap` already, and `.PlayableBeatmap` forwards everything anyway.
2021-04-20 13:34:12 +02:00
Naxess
496df411a7 Remove now unused import 2021-04-20 02:39:11 +02:00
Naxess
0e6b66f457
Merge branch 'master' into bg-audio-quality-checks 2021-04-20 02:36:13 +02:00
Naxess
8656176ab8 Add the playable beatmap as check argument
This is different from the working beatmap's `.Beatmap` property in that it is mutated by the ruleset/editor.

So hit objects, for example, are actually of type `Slider` and such instead of the legacy `ConvertSlider`.

This should be preferred over `workingBeatmap.Beatmap`.
2021-04-20 01:31:51 +02:00
Bartłomiej Dach
0825fc57a9 Move foreground colour helper into OsuColour 2021-04-19 18:24:48 +02:00
Bartłomiej Dach
97573fb11d Merge branch 'master' into combo-colours-display 2021-04-19 18:21:57 +02:00