Tweaks for Pasting Keyframes in DopeSheet/Graph Editors
authorJoshua Leung <aligorith@gmail.com>
Fri, 1 Jun 2012 15:00:28 +0000 (15:00 +0000)
committerJoshua Leung <aligorith@gmail.com>
Fri, 1 Jun 2012 15:00:28 +0000 (15:00 +0000)
commit392ee8fc6a553e6bb35efe3dc9a5486fe50da7e9
tree94d20ce108ac578c53371859cf1d0ece3f401edc
parent07ce209c64d47b7773b473d31abdddac6f404c71
Tweaks for Pasting Keyframes in DopeSheet/Graph Editors

In response to [#31670], I've reviewed the way that the Paste Keyframes tool for
the DopeSheet and Graph Editors works. Previously, it required you to always
select the F-Curves to paste the keyframes into before allowing you to paste
keyframes. This was because it is quite difficult to infer which ID-block's set
of curves is intended if more than one ID-block has similar curves (e.g. a scene
with two materials, and both have their diffuse color animated). The underlying
assumption and intention of the feature here was that the copy+paste were only
being used by animators to copy animation between similar curves, to transfer
and offset animation across block boundaries.

However, it turns out that many people were by far more familiar with the
simpler copy/paste paradigm from everywhere else (i.e. instead of trying to use
duplicate to copy keyframes around within their respective F-Curves).
Furthermore, in most cases there is only going to be a single character being
animated at a time (vs multiple), which means that most of the time the matching
problem is much simpler.

Hence, the Paste now works as follows:
- If there are selected F-Curves, we limit the paste-matching to only consider
those in the selected F-Curves. This makes it possible to still explicitly
specify where to paste.
- In the more general case (no prior selections), pasting will try to match
anything relevant it finds.

TODO:
- Check on whether the strictest matching level needs adjustments to limit the
number of false positives
- Testing and feedback of the new behaviour needed <--- ANIMATORS! PLEASE TEST
source/blender/editors/space_action/action_edit.c
source/blender/editors/space_graph/graph_edit.c