Commit Graph

13 Commits

Author SHA1 Message Date
Matthew Griffin
bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00
Andrew Grant
48b2d10189 Copying from //UE4/Orion-Staging (originated from //Orion/Main @ CL-2766367)
#lockdown Nick.Penwarden

[CL 2770161 by Andrew Grant in Main branch]
2015-11-17 14:50:21 -05:00
Frank Fella
5922960f60 Sequencer - Simplify visibility so that it's just based on the text filter for now. We will revisit this in the future once we have more use cases.
+ Removed "Clean View" it was not being used.
+ Removed pinned nodes there was no UI for pinning and pinning in code is not neccessary with no shot filtering.
+ Tracks are now always visible, with shot filtering gone this was only being used to hide empty tracks.  If we want this behavior we should just delete tracks when they become empty.
+ Removed caching code which is not neccessary now that visibility is simpler.

[CL 2703157 by Frank Fella in Main branch]
2015-09-23 15:44:27 -04:00
Max Chen
59e0d4e85b Sequencer: Add expand/collapse nodes to menu.
[CL 2652204 by Max Chen in Main branch]
2015-08-11 21:59:06 -04:00
Andrew Rodham
42164e5db1 Fixed dragging keys in the sequencer with snapping enabled
- Added FSequencerSnapField to simplify snapping calculations and related code.
  - Formalised IMarqueeVisitor as a more generic ISequencerEntityVisitor that can be used to walk a range of visible sequencer entities
  - Updated FMoveKeys drag operation to use FSequencerSnapField and corrected snapping code
  - Track area geometry is now cached in SSequencerTrackArea to simplify SSequencer::GetVirtualTrackArea
  - Fixed grouped keys swallowing each other when dragging other keys over the top

[CL 2643241 by Andrew Rodham in Main branch]
2015-08-04 07:02:16 -04:00
Andrew Rodham
61c921d54a Added the concept of 'Tools' to the sequencer
Conceptual changes:
  - SSection is no longer responsible for drag operations. This alleviates mouse capture fighting and event ordering issues to do with both SSequencerTrackArea and SSection wanting to potentially handle drag-like events.
  - ISequencerEditTool can be implemented to define interaction logic for the sequencer as a whole.
  - There is only ever one tool active at a time. This is set by SSequencer::SetEditTool.
    - Edit tools are responsible for handling mouse input based on the current environment
  - Sequencer hotspots define particular points of interest on the sequencer UI such as keys, sections etc. Hotspots can optionally define a drag protocol. This may or may not be honored by the current edit tool.
  - FVirtualConvertor has been formalised as FVirtualTrackArea which provides logic for converting between virtual and physical track area space, as well as hit-testing logic.

We currently have two tools: move (V) and marquee (M) selection. Marquee selection has two modes (key and section selection) which can be toggled with the toolbar button, or by pressing the hotkey multiple times.

[CL 2640139 by Andrew Rodham in Main branch]
2015-07-31 07:20:42 -04:00
Andrew Rodham
e94ab93cb4 Sequencer category nodes are now collapsed by default
[CL 2633714 by Andrew Rodham in Main branch]
2015-07-27 07:23:38 -04:00
Andrew Rodham
6c10d523e5 Sequencer tree view no longer relies on access to its underlying list panel
[CL 2627358 by Andrew Rodham in Main branch]
2015-07-21 10:07:09 -04:00
Andrew Rodham
dff3e066be More non-unity compile error fixes
[CL 2626383 by Andrew Rodham in Main branch]
2015-07-20 15:06:28 -04:00
Andrew Rodham
12c06dd83d Non-unity compile fixes
[CL 2625881 by Andrew Rodham in Main branch]
2015-07-20 10:51:00 -04:00
Gareth Martin
30a75d3c8b Some nonunity fixes
[CL 2625861 by Gareth Martin in Main branch]
2015-07-20 10:24:55 -04:00
Andrew Rodham
08a90498c6 Changed sequencer tree scrolling to better suit variable height items
[CL 2625681 by Andrew Rodham in Main branch]
2015-07-20 06:49:12 -04:00
Andrew Rodham
4451b46bb4 Miscellaneous sequencer improvements
- Sequencer tree is now an STreeView which gives us proper virtualized scroll, and allows removal of lots of manually implemented tree-management code.
  - Selection and expansion is now handled by STreeView itself.
  - Track lanes are now also virtualized vertically, so we should only see section area widgets when they're actually on screen. Positioning these elements is a frame behind the tree rows.
- Added Traversal methods for more expressive traversal of the sequencer tree (See FSequencerDisplayNode::Traverse(Visible)_(Child|Parent)First).
- Removed outliner backgrtounds and replaced with more subtle separator lines.
- Added Marquee selection for sequencer keys. Currently this is not implented when LMB dragging on a SSection.
- Added RMB panning for the sequencer track area. This currently has no inertial scroll, but could be added in future.

[CL 2625643 by Andrew Rodham in Main branch]
2015-07-20 05:34:00 -04:00