1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 04:57:27 +08:00
Commit Graph

196 Commits

Author SHA1 Message Date
Derrick Timmermans
ee220feecf
Avoid using guesses to determine whether inputs blocked 2021-07-18 16:04:23 +02:00
ekrctb
eec4457473 Add [CanBeNull] to methods returning null by default 2021-06-23 09:40:07 +09:00
Dean Herbert
55cc533a37
Merge branch 'master' into hoc-event-queue 2021-05-18 16:31:20 +09:00
smoogipoo
aaf31af326 Add blueprint transferral 2021-05-13 21:16:19 +09:00
Dean Herbert
a4e0529617 Replace polling logic with direct bindable reactions 2021-05-11 18:39:15 +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
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
d0be8f9fb3 Remove one more out-of-date comment 2021-04-28 11:45:36 +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
dd3d8e5d03 Make SelectionHandler abstract to ensure things get implemented 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
Dean Herbert
1884c18a2c Ignore movement operations which have no offset 2021-04-22 18:12:03 +09:00
Dean Herbert
c59906e925 Fix an occasional crash when deleting a HitObject via internal means 2021-04-16 15:55:33 +09:00
Dean Herbert
66e74da2b7 Fix regression in quick delete mouse action blocking 2021-04-13 13:03:14 +09:00
Dean Herbert
cc2acf5e54 Fix ctrl-dragging on an existing selection causing deselection of the hovered object 2021-04-12 19:05:23 +09:00
Dean Herbert
8d4ff867bf Fix barlines showing up in the osu!mania editor's timeline 2021-03-25 16:30:31 +09:00
Bartłomiej Dach
dd48b68f8a Ensure selected blueprints are given selection priority 2021-03-19 22:44:33 +01:00
Dean Herbert
cd1c1bf534 Centralise cases of performing actions on the current selection
By moving this to a central location, we can avoid invoking the
EditorChangeHandler when there is no selection made. This helps
alleviate the issue pointed out in
https://github.com/ppy/osu/issues/11901, but not fix it completely.
2021-02-26 14:15:13 +09:00
Dean Herbert
04fa32bc34 Rename and add xmldoc for smooth seeking method 2021-01-15 16:14:21 +09:00
Dean Herbert
c17d67bc7d Merge branch 'master' into editor-beat-snap-always 2020-11-30 18:34:38 +09:00
Dean Herbert
7edbba58f7 Avoid updating hitobjects unnecessarily for start time changes
This was firing regardless of whether the start time was changed, such
as where beat snap provided the same time the object already has.

The case where a change actually occurs is already handled by
EditorBeatmap (see `startTimeBindables`), so it turns out this local
handling is not required at all.
2020-11-27 16:31:06 +09:00
Dean Herbert
91592cf32d Expose EditorClock for consumption 2020-11-26 19:20:39 +09:00
Dean Herbert
0ddeff648d Fix incorrect index lookup on non-ordered selections 2020-11-25 17:25:54 +09:00
Dean Herbert
c9a41f9dae Make all objects in selection candidates for spatial snapping
Closes #10898.
2020-11-24 17:35:54 +09:00
smoogipoo
f00c23b4a0 Add comment + xmldoc 2020-11-18 13:37:15 +09:00
smoogipoo
783c172b5d Make sealed and cleanup comparator 2020-11-18 13:33:22 +09:00
smoogipoo
58c8184ad7 Define blueprint order similarly to hitobjects 2020-11-17 22:56:31 +09:00
Dean Herbert
7b79b9b9c1
Merge branch 'master' into fix-quick-delete-crash 2020-11-16 13:54:54 +09:00
Bartłomiej Dach
399a1a16a0 Refactor beginClickSelection in a slightly different way 2020-11-15 21:06:47 +01:00
kamp
1db303b159 Revert beginClickSelection logic 2020-11-15 16:54:48 +01:00
Bartłomiej Dach
610ed99ae3 Add null checks to unguarded resolved-as-null fields 2020-11-14 14:52:58 +01:00
kamp
4d2bc790fd Fix crash on shift+right-click deleting objects 2020-11-14 13:20:16 +01:00
smoogipoo
0219aff7bc Add timeline visible range adjustment 2020-11-13 17:10:29 +09:00
smoogipoo
3957697c48 Add pooling support to the editor 2020-11-13 17:08:20 +09:00
smoogipoo
4ef2e9548c Pass HitObjectComposer to BlueprintContainer via ctor 2020-11-13 16:59:37 +09:00
Dean Herbert
de6fcd1792 Fix BlueprintContainer triggering assert when left and right mouse button are pressed together 2020-11-10 17:16:28 +09:00
Dean Herbert
a012105dac Fix editor quick delete being triggerable from left mouse button
Closes https://github.com/ppy/osu/issues/10629.
2020-11-10 16:54:37 +09:00
Dean Herbert
d19b799f44 Invert boolean logic 2020-11-04 17:53:03 +09:00
Dean Herbert
9f333ac58a Add the ability to delete slider control points using shift+right click
Closes https://github.com/ppy/osu/issues/10672.

In two minds about how this should be implemented but went in this
direction initially. The other way would be to add local handling of
Shift-Right Click inside PathControlPointPiece (which is already doing
mouse handling itself).
2020-11-03 20:46:33 +09:00
Bartłomiej Dach
003994ab75 Bind UpdateVisibility() directly to source of truth 2020-10-31 13:54:02 +01:00
Bartłomiej Dach
202fe09306 Group selection actions back up in SelectionHandler 2020-10-28 22:06:48 +01:00
Dean Herbert
681e88af40
Merge branch 'master' into editor-fix-button-states-after-paste 2020-10-09 20:51:09 +09:00
Dean Herbert
3838f405dd Fix missed usages 2020-10-09 18:50:05 +09:00
Dean Herbert
afed832b19 Tidy up EditorBeatmap slightly 2020-10-08 18:06:49 +09:00
Dean Herbert
ef092de9ba Add missing UpdateHitObject calls and move local to usages (not via bindables) 2020-10-08 18:04:07 +09:00
Dean Herbert
a4e9c85333 Trigger a hitobject update after blueprint drag ends 2020-09-28 15:37:06 +09:00
Dean Herbert
51cc644b7b
Fix set access to SelectionHandler
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2020-09-25 17:42:49 +09:00
Dean Herbert
0f8551e9ea Merge branch 'editor-ternary-states' into new-combo-toggle 2020-09-25 15:36:33 +09:00
Dean Herbert
a6adf8334e Use existing method to update combo state of selection 2020-09-25 14:19:35 +09:00
Dean Herbert
e009264f10 Add new combo toggle to main composer interface 2020-09-25 14:10:30 +09:00
Dean Herbert
44be0ab762 Add basic osu! object to object snapping 2020-09-24 16:24:35 +09:00
Dean Herbert
81f30cd264 Select blueprint if object is already selected at the point of adding 2020-09-12 21:23:11 +09:00
Dean Herbert
22e6df02b6 Fix editor selected hitobjects containing the selection up to five times 2020-09-11 20:27:07 +09:00
Dean Herbert
c3123bf117 Rename drag blueprint selection method for discoverability 2020-09-08 17:22:59 +09:00
Dan Balasescu
288c0402ee
Merge branch 'master' into editor-show-selected-count 2020-07-17 18:00:35 +09:00
Dean Herbert
ea6f257dc2 Add a display of count of selected objects in editor 2020-07-17 17:48:27 +09:00
Dean Herbert
222a22182e Fix double-click incorrectly firing across disparate targets 2020-07-17 17:03:57 +09:00
Dan Balasescu
fd9ac3503f
Merge branch 'master' into fix-editor-drag-selection-while-playing 2020-06-23 21:56:31 +09:00
smoogipoo
e7238e25f9 Fix exception when dragging after deleting object 2020-06-23 20:36:09 +09:00
Dean Herbert
a5eac716ec Make work for all editors based on track running state 2020-06-23 18:42:56 +09:00
Dean Herbert
abe07b742e Fix drag scroll in editor timeline no longer working correctly 2020-06-14 13:20:58 +09:00
Dean Herbert
9a060cfb3a Allow drag selections to occur from outside the playfield 2020-05-27 20:44:15 +09:00
Dean Herbert
d18eb663b1 Add tweening seek support to EditorClock 2020-05-22 16:47:52 +09:00
Dean Herbert
dd09d7830d Cache and resolve editor clock as EditorClock in all cases 2020-05-22 16:44:06 +09:00
Dean Herbert
8a47e2431b Move distance snap grid implementation to OsuHitObjectComposer 2020-05-21 17:13:22 +09:00
Dean Herbert
c46bfc2532 Create SnapResult class to hold various snapping results 2020-05-20 21:00:47 +09:00
Dean Herbert
3354d48a38 Change snapping to be screen space coordinate based 2020-05-20 21:00:29 +09:00
smoogipoo
cebc0fc046 Attempt to fix multiple selection movements 2020-04-27 20:35:24 +09:00
smoogipoo
4ebb28d3e7 wip 2020-04-23 17:52:54 +09:00
smoogipoo
575b061dd7 Add change state support to more editor components 2020-04-09 22:02:42 +09:00
smoogipoo
958c891d15 Update with framework-side bindable list changes 2020-02-17 15:06:14 +09:00
Dan Balasescu
28cf5c7a59 Add accessor 2020-02-10 14:28:43 +09:00
Dean Herbert
56a091674b Add placement display to timeline 2020-02-07 18:04:10 +09:00
Dean Herbert
8e2159e4eb Ensure selection tool correctly matches selection state
- When a selection is made (via the timeline) the selection tool should become the select tool.
- When the selection tool is changed to anything *but* the select tool, the selection should be cleared.
2020-01-28 15:13:12 +09:00
smoogipoo
811ddb02a4 General refactoring 2020-01-24 17:50:36 +09:00
smoogipoo
28727bbafd Fix crash when deselecting via ctrl+click 2020-01-24 17:30:37 +09:00
Dean Herbert
9d90799447 Remove useless container 2020-01-23 16:20:42 +09:00
Dean Herbert
289be7a17b Merge branch 'i-beat-snapping' into timeline-maybe 2020-01-23 15:45:33 +09:00
Dean Herbert
c76f76e5aa Fix being able to drag out of the blueprint intending to be moved 2020-01-23 14:30:25 +09:00
Dean Herbert
aa1a226ab7 Remove unused ScreenSpaceStartPosition field 2020-01-23 14:30:25 +09:00
Dean Herbert
cb6e7425ae Make dragbox stateful to fix blueprint movement 2020-01-23 14:30:25 +09:00
Dean Herbert
8a7f7c5e46 Merge remote-tracking branch 'smoogipoo/void-key-up-returns' into update-framework 2020-01-22 22:57:56 +09:00
Dean Herbert
7c62cc3ac3 Merge remote-tracking branch 'smoogipoo/void-mouse-up-returns' into update-framework 2020-01-22 22:57:52 +09:00
smoogipoo
7b2f58eb30 Apply OnRelease method signature refactorings 2020-01-22 13:22:34 +09:00
Dean Herbert
c88bdbd4a0 Share selected hitobjects across multiple blueprint containers 2020-01-21 20:46:39 +09:00
Dean Herbert
a888d148b6 Remove remaining cast 2020-01-21 18:01:10 +09:00
Dean Herbert
53fe0ce790 Use AliveChildren 2020-01-21 14:20:52 +09:00
Dean Herbert
bd96cf94a6 Begin refactoring SelectionBlueprint to handle non-drawable HitObjects 2020-01-21 12:47:14 +09:00
smoogipoo
40f502c6d1 Apply input method signature refactorings 2020-01-20 19:35:37 +09:00
smoogipoo
bfb056c612 Apply input method signature refactorings 2020-01-20 18:17:21 +09:00
smoogipoo
9535b3eeba Fix possible nullref on blueprint removal 2020-01-16 12:00:36 +09:00
smoogipoo
5f178b7755 General refactorings 2020-01-16 11:54:03 +09:00
Dean Herbert
d57f55f053 Apply remaining changes required to restore previous functionality 2020-01-15 19:09:49 +09:00
Dean Herbert
d8d12cbbdd wip: Move more functionality into ComposeBlueprintContainer 2020-01-02 19:09:37 +09:00
Dean Herbert
ee332e0d42 Split out BlueprintContainer functionality further 2020-01-02 18:21:16 +09:00
smoogipoo
8c378dc625 Move EditorBeatmap construction/conversion to Editor 2019-12-30 14:51:14 +09:00