1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 03:37:51 +08:00
Commit Graph

1226 Commits

Author SHA1 Message Date
Bartłomiej Dach
07f1994a13
Align beat snap control width with right toolbox 2024-06-17 11:47:37 +02:00
Bartłomiej Dach
03049d45bb
Remove stuff that looks bad after moving timeline toggle controls 2024-06-17 10:23:00 +02:00
Bartłomiej Dach
b42752c9f0
Move timeline toggle controls to "view" menu 2024-06-17 10:16:40 +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
OliBomby
869cd40195 Fixed samples without additions contributing to common addition bank while not having an editable addition bank 2024-06-11 21:31:18 +02:00
OliBomby
12dd60736a remove code already covered by updatePrimaryBankState 2024-06-11 21:20:42 +02:00
Bartłomiej Dach
7d5dc750e5
Use slightly lighter shade of pink for alternative colour 2024-06-10 12:04:52 +02:00
Bartłomiej Dach
0efa028e0a
Restructure popover updates to be more centralised 2024-06-10 11:55:51 +02:00
OliBomby
e873698221 Add some in-depth xmldoc to GetSamples 2024-06-06 14:57:25 +02:00
OliBomby
fcc8671cbd undo useless change 2024-06-06 14:50:24 +02:00
OliBomby
71ce400359 Fix wasteful recreating of container 2024-06-06 14:48:17 +02:00
Bartłomiej Dach
7a8a37dae6
Use established constants 2024-06-06 13:42:31 +02:00
Bartłomiej Dach
86b13074a0
Merge branch 'master' into edit-nodesample 2024-06-06 13:42:25 +02:00
OliBomby
4f8c167cf9 clean up to match logic in CircularDistanceSnapGrid 2024-06-05 18:56:18 +02:00
OliBomby
d8994786f6 Merge remote-tracking branch 'upstream/master' into grids-2 2024-06-05 17:18:48 +02:00
Dean Herbert
212be6b9a7
Merge branch 'master' into grids-1 2024-06-05 15:20:04 +09:00
Bartłomiej Dach
f13ca28d5e
Fix performance overhead from ternary state bindable callbacks when selection is changing
Closes https://github.com/ppy/osu/issues/28369.

The reporter of the issue was incorrect; it's not the beat snap grid
that is causing the problem, it's something far stupider than that.

When the current selection changes,
`EditorSelectionHandler.UpdateTernaryStates()` is supposed to update the
state of ternary bindables to reflect the reality of the current
selection. This in turn will fire bindable change callbacks for said
ternary toggles, which heavily use `EditorBeatmap.PerformOnSelection()`.

The thing about that method is that it will attempt to check whether any
changes were actually made to avoid producing empty undo states, *but*
to do this, it must *serialise out the entire beatmap to a stream* and
then *binary equality check that* to determine whether any changes were
actually made:

	7b14c77e43/osu.Game/Screens/Edit/EditorChangeHandler.cs (L65-L69)

As goes without saying, this is very expensive and unnecessary, which
leads to stuff like keeping a selection box active while a taiko beatmap
is playing under it dog slow. So to attempt to mitigate that, add
precondition checks to every single ternary callback of this sort to
avoid this serialisation overhead.

And yes, those precondition checks use linq, and that is *still* faster
than not having them.
2024-06-04 10:32:12 +02:00
Bartłomiej Dach
4fcb902341
Merge branch 'master' into grids-1 2024-06-03 12:33:51 +02:00
Bartłomiej Dach
4c881b5633
Use better name if we're renaming 2024-05-29 09:40:29 +02:00
OliBomby
d143a697d2 refactor CanScaleFromPlayfieldOrigin and GetClampedScale to derived class 2024-05-28 17:12:16 +02:00
OliBomby
8eb23f8a60 remove redundant CanScaleFromSelectionOrigin 2024-05-28 16:19:57 +02:00
OliBomby
a89ba33b47 rename CanScaleSelectionOrigin/PlayfieldOrigin to make clear its not the origin being scaled 2024-05-28 16:14:16 +02:00
OliBomby
37530eebcc Enable scale buttons at the correct times 2024-05-25 20:35:06 +02:00
OliBomby
4eeebdf60c calculate max scale bounds for scale slider 2024-05-25 20:17:27 +02:00
OliBomby
497701950d fix nitpick 2024-05-24 18:11:28 +02:00
Bartłomiej Dach
9f19ab092d
Merge branch 'master' into grids-1 2024-05-24 14:39:55 +02:00
Bartłomiej Dach
8a2dd4d816
Merge branch 'master' into scaling 2024-05-23 15:10:40 +02:00
Bartłomiej Dach
128029e2af
Fix aspect ratio lock applying when shift pressed on a non-corner anchor
It doesn't make sense and it wasn't doing the right thing.
2024-05-23 15:08:43 +02:00
Bartłomiej Dach
9e86a08405
Simplify scale origin computation 2024-05-23 14:07:43 +02:00
Bartłomiej Dach
070668c96f
Use ShiftPressed instead of explicitly checking both physical keys
Not only is this simpler, but it also is more correct (for explanation
why, try holding both shift keys while dragging, and just releasing one
of them - the previous code would briefly turn aspect ratio off).
2024-05-23 13:57:34 +02:00
Dean Herbert
66ceda1d67
Update focus specifications in line with framework changes 2024-05-22 21:32:49 +08:00
Dean Herbert
d0b1ebff5a
Revert "Temporary rollback of framework / SDL3"
This reverts commit d7d569cf4e.
2024-05-22 16:29:39 +08:00
Dean Herbert
d7d569cf4e
Temporary rollback of framework / SDL3 2024-05-21 14:36:16 +08:00
OliBomby
c4ac6d20a0 fix code quality 2024-05-15 23:40:51 +02:00
OliBomby
8df5f22b4e Merge remote-tracking branch 'upstream/master' into scaling 2024-05-15 23:05:19 +02:00
Dan Balasescu
3b8b56cbcb
Apply required changes after framework masking updates 2024-05-09 20:18:53 +09:00
Dean Herbert
aa7b357063
Merge pull request #27768 from 64ArthurAraujo/editor-fix-sliders-same-start-time-merge
Fix merging sliders with the same `StartTime` causing a Unhandled Exception
2024-04-03 01:45:55 +08:00
Arthur Araujo
2a2a372595 Check if blueprint is in SelectionBlueprints before changing its depth 2024-04-02 07:45:27 -03:00
Nguyên Minh Hồ
9950395e5f Merge branch 'fix-rotate-editor-button-disabled' of https://github.com/honguyenminh/osu into fix-rotate-editor-button-disabled 2024-03-30 13:57:44 +07:00
Nguyên Minh Hồ
113dbcd10f
Merge branch 'master' into fix-rotate-editor-button-disabled 2024-03-30 13:56:31 +07:00
Dean Herbert
fd509c82f5
Adjust code structure slightly 2024-03-20 12:52:54 +08:00
Andrei Zavatski
7ca45c75b3 Don't iterate backwards on children without a reason 2024-03-18 20:46:38 +03:00
Andrei Zavatski
0edc249637 Make Timeline non-nullable 2024-03-18 20:38:19 +03:00
Andrei Zavatski
57399e9899 Merge branch 'master' into editor-performance 2024-03-18 20:34:48 +03:00
Andrei Zavatski
34a5e2d606 Don't update subtree masking in TimelineTickDisplay 2024-03-16 15:20:37 +03:00
Andrei Zavatski
981ee54cdc Fix transforms overhead in TimelineTickDisplay 2024-03-16 15:05:52 +03:00
Andrei Zavatski
e825db61ee Fix enumerator allocation 2024-03-16 12:26:56 +03:00
Andrei Zavatski
ea3a9314f9 Improve TimelineControlPointDisplay performance 2024-03-16 11:57:18 +03:00
Andrei Zavatski
6ecef33fd7 Fic incorrect ExtendableCircle gradient 2024-03-10 22:45:29 +03:00
Dan Balasescu
ca92a31cf9
Fix missing event unbinds 2024-03-07 21:10:11 +09:00
Dean Herbert
6455c0583b
Update usage of CircularProgress.Current 2024-03-06 12:13:10 +08:00
Andrei Zavatski
4cefa8bb8d Reduce allocations in TimelineBlueprintContainer 2024-02-21 23:13:10 +03:00
Andrei Zavatski
2543a48ac8 Apply padding to GridContainers directly 2024-02-20 23:18:37 +03:00
Berkan Diler
6adf0ac01e Use new LINQ Order() instead of OrderBy() when possible 2024-02-08 18:01:00 +01:00
Dan Balasescu
b44f77cee1
Update R# + fix inspections 2024-02-02 21:00:28 +09:00
OliBomby
576d6ff799 Fix masking in circular snap grid 2024-02-01 17:07:57 +01:00
OliBomby
f807a3fd97 Remove Masking from PositionSnapGrid
This caused issues in rendering the outline of the grid because the outline was getting masked at some resolutions.
2024-02-01 16:57:45 +01:00
OliBomby
1428cbfbc3 Remove Masking from PositionSnapGrid
This caused issues in rendering the outline of the grid because the outline was getting masked at some resolutions.
2024-02-01 16:56:57 +01:00
OliBomby
c2d57dc77c Merge remote-tracking branch 'upstream/master' into edit-nodesample 2024-01-25 11:33:29 +01:00
Nguyên Minh Hồ
d5b70ed09a Move CanRotatePlayfieldOrigin bindable to generic rotation handler 2024-01-25 16:58:44 +07:00
Nguyên Minh Hồ
e1f8bc9692 Rename CanRotate property of SelectionRotationHandler to a more descriptive name 2024-01-25 12:10:50 +07:00
Mike Will
9e1c242713 Prevent custom divisor ranges from halting preset cycling
A custom divisor like 24 or 32 will result in a range containing
many divisors that are already in the `Common` and `Triplets` presets.
When this happens, it can become impossible to cycle between presets,
because the preset can only be changed if the new divisor isn't already
contained within the current preset's range.
2024-01-24 18:31:39 -05:00
Salman Ahmed
2bd9cd5d34 Fix blueprint container not handling right clicks correctly while moveing an element 2024-01-22 04:39:08 +03:00
OliBomby
78e87d379b fix divide by zero 2024-01-20 16:53:11 +01:00
OliBomby
5f40d3aed9 rename variable 2024-01-20 16:29:26 +01:00
OliBomby
9b9485f656 fix adjust axes detection 2024-01-20 15:39:38 +01:00
OliBomby
1596776a81 fix imports 2024-01-20 15:15:49 +01:00
OliBomby
0fc448f4f3 fix adjusting scale from anchor 2024-01-20 15:12:48 +01:00
OliBomby
6a4129dad8 fix aspect ratio transform 2024-01-20 15:11:35 +01:00
OliBomby
fcaa5ec20e remove debug logs 2024-01-20 13:26:08 +01:00
OliBomby
6a57be0a50 clean up code and fix flipping 2024-01-20 13:04:05 +01:00
OliBomby
a4f771ec08 refactor CanScale properties 2024-01-20 01:13:01 +01:00
OliBomby
26c0d1077a Refactor scale handling in editor to facilitate reuse 2024-01-20 00:22:53 +01:00
Dean Herbert
bdfaa4b583
Fix crash when dragging rotation control in editor with both mouse buttons
Closes https://github.com/ppy/osu/issues/26325.
2024-01-03 13:34:50 +09:00
OliBomby
6bb72a9fcc Revert "Remove other grid types"
This reverts commit de14da95fa.
2024-01-01 15:46:07 +01:00
OliBomby
de14da95fa Remove other grid types 2024-01-01 15:44:20 +01:00
OliBomby
f649fa106f Added bindables and binding with BindTo 2024-01-01 15:13:11 +01:00
OliBomby
d0ca3f2b2b Add circular grid 2024-01-01 15:13:11 +01:00
OliBomby
847f04e63a reduce opacity of middle cardinal lines 2024-01-01 15:13:10 +01:00
OliBomby
8a331057b0 Make it actually possible to change grid type 2024-01-01 15:13:10 +01:00
OliBomby
f223487e1c improve code 2024-01-01 15:13:10 +01:00
OliBomby
0ce1a48e68 Add comment 2024-01-01 15:13:10 +01:00
OliBomby
a20c430d6f fix wrong grid cache being used 2024-01-01 15:13:10 +01:00
OliBomby
d0c8b285ce clean up code duplication 2024-01-01 15:13:10 +01:00
OliBomby
92c3b142a4 Added Triangular snap grid 2024-01-01 15:11:50 +01:00
OliBomby
f2edd705ea add rotation to snapped position 2024-01-01 15:11:49 +01:00
OliBomby
f3b88c318b Add rotation to snap grid visual 2024-01-01 15:11:49 +01:00
Bartłomiej Dach
99cddb6317
Use alternative workaround 2023-12-29 11:07:45 +01:00
Bartłomiej Dach
cd1f6b46c4
Fix crash after changing audio track in editor
Closes https://github.com/ppy/osu/issues/26213.

Reproduction scenario: switch audio track in editor after timeline
loads.

Happens because `beatmap.Value.Track.Length` is 0 immediately after a
track switch, until BASS computes the actual track length on the audio
thread.

Yes this is a hack. No I have no better immediate ideas how to address
this otherwise.
2023-12-29 10:37:36 +01:00
Bartłomiej Dach
288ac930e4
Use new icons in editor
Some that exist on figma are purposefully not used due to an editorial
request from @peppy.
2023-12-27 17:42:18 +01:00
Dean Herbert
f9e47242db
Add visual offset to better align editor waveforms with expectations 2023-12-26 17:44:49 +09:00
OliBomby
c167f10ad5 fix crash from dragging near zero-length repeating object in timeline 2023-12-19 21:20:45 +01:00
Bartłomiej Dach
d83b2e24e7
Merge pull request #25371 from RatinFX/open-editor-timestamp
Implement opening editor timestamp links
2023-11-21 15:48:36 +09:00
Bartłomiej Dach
234ef6f923
Rectify selection keep-alive logic 2023-11-20 21:57:14 +09:00
Dean Herbert
35e11c7c63
Rename diagonal scale variable and update xmldoc 2023-11-10 17:55:02 +09:00
Dean Herbert
ec3b6e47fb
Change selection handling to adjust Size instead of Scale for edge nodes 2023-11-10 14:22:28 +09:00
ratinfx
bdbeb2bce4 Renamed CollectionChanged event handler 2023-11-07 11:11:32 +01:00
ratinfx
44f127c8a8 Renamed method and made private 2023-11-07 01:02:45 +01:00
ratinfx
277cf7dc12 Ensure every SelectedItem is alive and has Blueprint 2023-11-05 18:26:51 +01:00
Bartłomiej Dach
144006fbe8
Update autoselect implementation to work correctly with framework changes 2023-10-31 08:38:22 +01:00