Commit Graph

171 Commits

Author SHA1 Message Date
fcb9e2cc00 Refactor blueprint container drag code 2022-10-11 22:39:53 +09:00
1a24762f9b Improve drag box selection logic
`AllowDeselectionDuringDrag` is remove.
Instead, selected hit objects are not automatically deselected
when clock is seeked to a later time (the hit object is dead).
Update drag box selection even if mouse is not moved
(in case clock is running or scroll wheel is used).
2022-10-11 14:11:45 +09:00
0d448e6cc8 Fix items without blueprints are not deselected 2022-10-06 13:50:56 +09:00
00b3d97f69 Improve timeline selection performance
But selecting a large number of hit objects is still very slow
because all DHOs must be added
and also `AddBlueprintFor` has quadratic behaviors
2022-10-05 21:58:05 +09:00
8d29e9e76b Move selection logic from DragBox to BlueprintContainer 2022-10-05 21:51:01 +09:00
a215d009fe Update Remove/RemoveRange/RemoveAll calls in line with framework changes 2022-08-29 15:57:40 +09:00
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
a5e5172b91 Fix BlueprintContainer eating input from skin editor buttons 2022-06-18 18:28:36 +03:00
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
c49b8e4a5c Allow BlueprintContainer and SelectionHandler to receive input outside bounds 2022-06-14 00:19:15 +03:00
9fc04924eb Revert "Provide context menu items at BlueprintContainer for out-of-bounds support"
This reverts commit 85fc218edf.
2022-06-14 00:02:02 +03:00
85fc218edf Provide context menu items at BlueprintContainer for out-of-bounds support 2022-06-11 20:53:53 +03:00
c0abce918f Add enum to snap method as alternative to mutliple nested invocations 2022-05-12 16:19:07 +09:00
f6fc926f1a Add xmldoc and rename methods in IPositionSnapProvider for legibility 2022-05-05 15:58:21 +09:00
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
7599efac30 Update editor cases where repeat should not be handled 2021-11-18 13:13:36 +09:00
09701d0af1 Use explicit primitive type specification 2021-11-04 16:02:37 +09:00
0f4f1349db Merge branch 'master' into editor-context-menu-on-select 2021-11-04 15:59:06 +09:00
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
c633e2e952 only propagate unmodified right click 2021-10-26 16:24:53 -04:00
f64fa65fd5 right click on unselected object shows context menu 2021-10-26 14:52:15 -04:00
f9d5abff8a Update with keybinding changes 2021-09-16 18:26:12 +09:00
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
f85ff40a6b Add back LeftMouse button check 2021-07-21 11:47:21 +02:00
1bac471b49 Adapt to PlatformAction type change 2021-07-21 16:12:53 +09:00
ee220feecf Avoid using guesses to determine whether inputs blocked 2021-07-18 16:04:23 +02:00
eec4457473 Add [CanBeNull] to methods returning null by default 2021-06-23 09:40:07 +09:00
55cc533a37 Merge branch 'master' into hoc-event-queue 2021-05-18 16:31:20 +09:00
aaf31af326 Add blueprint transferral 2021-05-13 21:16:19 +09:00
a4e0529617 Replace polling logic with direct bindable reactions 2021-05-11 18:39:15 +09:00
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
532ec40395 Remove unnecessary newline 2021-04-28 12:04:48 +09:00
43772f4303 Remove duplicated call to initially select blueprint 2021-04-28 12:03:41 +09:00
e4f2e0131c Rename AllowDeselection to better match use case 2021-04-28 12:02:55 +09:00
d0be8f9fb3 Remove one more out-of-date comment 2021-04-28 11:45:36 +09:00
42255f8d33 Rename and xmldoc selection completed method 2021-04-27 19:01:29 +09:00
7ec5ea1eb5 Remove hitobject terminology from base classes 2021-04-27 19:01:29 +09:00
dd3d8e5d03 Make SelectionHandler abstract to ensure things get implemented 2021-04-27 19:01:29 +09:00
eac139ca0e Allow BlueprintContainer to perform movement without an ISnapProvider 2021-04-27 19:01:29 +09:00
f2e56bd306 Refactor editor selection/blueprint components to be generic 2021-04-27 19:01:29 +09:00
1884c18a2c Ignore movement operations which have no offset 2021-04-22 18:12:03 +09:00
c59906e925 Fix an occasional crash when deleting a HitObject via internal means 2021-04-16 15:55:33 +09:00
66e74da2b7 Fix regression in quick delete mouse action blocking 2021-04-13 13:03:14 +09:00
cc2acf5e54 Fix ctrl-dragging on an existing selection causing deselection of the hovered object 2021-04-12 19:05:23 +09:00
8d4ff867bf Fix barlines showing up in the osu!mania editor's timeline 2021-03-25 16:30:31 +09:00
dd48b68f8a Ensure selected blueprints are given selection priority 2021-03-19 22:44:33 +01:00
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
04fa32bc34 Rename and add xmldoc for smooth seeking method 2021-01-15 16:14:21 +09:00
c17d67bc7d Merge branch 'master' into editor-beat-snap-always 2020-11-30 18:34:38 +09:00
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