Commit Graph

1262 Commits

Author SHA1 Message Date
Campbell Barton
9cc51d8ea2 UI: cleanup odd string-width check 2014-11-11 18:40:08 +01:00
Campbell Barton
5c6e333780 UI Refactor T41640
Make the UI API more consistent and reduce confusion with some naming.

mainly:
- API function calls
- enum values

some internal static functions have been left for now
2014-11-10 23:06:54 +01:00
Campbell Barton
5e0e175422 Cleanup: spelling (D831) 2014-11-03 23:28:16 +01:00
Campbell Barton
133f79e449 Cleanup: warnings, typos 2014-10-29 14:15:21 +01:00
Campbell Barton
0151af5054 Markers: optimize drawing
- avoid 2x glScalef per marker
- skip markers outside the view
- merge drawing into a single loop
2014-10-28 20:04:46 +01:00
Campbell Barton
8ba33a69c8 Cleanup: rename draw_markers_time -> ED_markers_draw 2014-10-28 19:03:13 +01:00
Campbell Barton
36da579d12 Markers: show the area that handles marker events 2014-10-28 18:51:28 +01:00
Campbell Barton
2f0bdcb306 Fix T41041: 'Delete keyframe' removes markers too
Operators that trigger UI events (but nothing else)
were using 'CANCELLED' making it impossible to tell if an invoke
function failed, or opened a menu.
2014-10-28 17:51:43 +01:00
Campbell Barton
a00b6d1271 Cleanup: (float)floor -> floorf 2014-10-10 00:24:34 +02:00
Jason Wilkins
8d084e8c8f Ghost Context Refactor
https://developer.blender.org/D643
Separates graphics context creation from window code in Ghost so that they can vary separately.
2014-10-07 15:47:32 -05:00
Bastien Montagne
8cb1b35bee Fix T40350: Some texture prop did not have visual feedback they were driven.
This is only a (hacky) partial fix, actually, since `RNA_property_animated()` will still
not work in those cases... Better that than nothing, though.

Thanks to Campbell for review.
2014-10-06 17:08:24 +02:00
Bastien Montagne
6891f1c9e0 Fix T41266: Copy and paste operation on f-curves do not respect keyframe tangent handles...
Added an extra option to `insert_bezt_fcurve()`, to allow full override of existing
keyframes when pasting (in this case, we do not want to inherit handles from existing
curve!).
2014-08-27 21:36:39 +02:00
Campbell Barton
e71f2fc3ba Cleanup 2014-08-27 09:52:24 +10:00
Bastien Montagne
0e3fa0b761 Fix T41590: When scene scale is not 1.0, and units are "None," Blender assumes translations are in meters.
Turned out there were several issues in handling of scale parameter by numinput.
Fixed that by factorizing more some code in common with 'usual' numbuttons eval code
(new `bUnit_getScaleUnit()` helper will return valid scaled value, depending on
given system and type).

Now, numinput behaves as expected - using default unit amended by scale in case no unit is given
(i.e. entering '20' with a scale of 0.01 will give you 20cm, and '20cm' as well!).
2014-08-26 12:31:08 +02:00
Bastien Montagne
66b84ad159 Followup to previous commit: fix same wrong numinput handling in other modal ops.
Also stumbled uppon 'move marker' code, was needing a bunch of fixes, cleanup and simplification,
and added a candy feature - now you will enter numinput values in seconds when editor is
in 'time' mode, instead of frames!
2014-08-25 20:26:45 +02:00
Bastien Montagne
eb10cda135 Fix T40653: Modified keymap: MMB not behaving like RMB?
Modal frame_change was not terminating on mmb release event...
2014-08-18 16:37:01 +02:00
Campbell Barton
a3fac84c73 Cleanup: indentation 2014-08-05 13:36:35 +10:00
Campbell Barton
b64e36d26d BLI_listbase: consistent name prefix 2014-07-30 15:01:16 +10:00
Bastien Montagne
976526559d Fix T41228: Selection of bones bug.
Turns out to be mostly some cleanup in Pose select code, got rid of magic numbers
(now understand usual SEL_xxx enums) in ED_pose_deselectall(), which was renamed
to ED_pose_de_selectall, and have a new bool parameter to ignore visibility status
in its process (was the root of the reported issue).

Also factorized slightly "(de)select all" code. Yet this area could use much more
cleanup probably...
2014-07-29 15:02:28 +02:00
Campbell Barton
00b29156e0 Defines: replace ELEM3-16 with ELEM(...), that can take varargs 2014-07-20 01:33:40 +10:00
Lukas Tönne
19f89a083f Fix for invalid memory access in graph editor when deleting the last
vertex in a fcurve.
2014-07-10 13:03:05 +02:00
Campbell Barton
4bc62b31af Fix for RNA_int/enum mixup 2014-07-07 06:46:57 +10:00
Joshua Leung
145998c776 Code cleanup
- Fixed incorrect section heading
- Missed one place where short was still used when the specific enum type would be
  more appropriate
2014-07-06 19:35:24 +12:00
Joshua Leung
a4c4145800 NLA/AnimEditors: Added operator to remove all "empty" AnimData blocks
It is sometimes possible to end up with a lot of datablocks which have old + unused
"AnimData" containers still attached. This most commonly happens when doing motion
graphics work (i.e. when some linked-in objects may have previously been used to develop
a set of reusable assets), and is particularly distracting in the NLA Editor.

This commit adds an operator which removes AnimData blocks (restricted to only those
which are visible in the animation editor where it is run from) which are "empty"
(i.e. that is, have no active action, drivers, and nla tracks or strips).

This operator can be found from the "Edit" menu in the NLA Editor. Although it also
works when run from the DopeSheet or Graph Editors, it is of less use there since
those won't show these empty AnimData blocks by default (since by definition, such
AnimData blocks necesarily have no keyframes or drivers that can be shown), hence
there will be no feedback if the operator fails or succeeds.
2014-07-06 19:35:24 +12:00
Campbell Barton
b4b5d9c24e Style cleanup 2014-07-05 05:26:32 +10:00
Bastien Montagne
cadf77d5ef Fix T40862: numinput transform did not take into account scale_length. 2014-06-30 10:57:39 +02:00
Joshua Leung
0bc94f8c7d Code Cleanup - Using the enum types in more API signatures instead of relying on coders to do the right thing 2014-06-24 22:01:06 +12:00
Joshua Leung
95b39acdb1 Code Cleanup - Replacing shorts with bools and enum types 2014-06-24 22:01:05 +12:00
Joshua Leung
9ca0c7eea3 Ctrl-F now activates the filter-by-name functionality for Animation Editors 2014-06-24 17:53:13 +12:00
Joshua Leung
afaf6e8d71 Improve doxygen comment to include some type info to make it more useful 2014-06-24 17:53:12 +12:00
Joshua Leung
179e7eaf39 Bugfix for Elastic and Back easing types
** TO BE PORTED BACK TO 2.71 **

As pointed out by Thomas Beck (plasmasolutions), the current behaviour and/or
default values for their parameters didn't quite make sense:

1) Back Easing - The old default value of 0.0 results in some overshoot being applied,
while trying to tweak it up or down resulted in some odd jumps and discontinities.

I've ended up removing some code here which forcibly using a "back" value of 1.7
when users wanted 0.0 instead. There doesn't seem to be any good reason for this.
To ensure that there is still an effect initially, keyframes now get created
with back set to 1.7


2) Elastic Easing - The old default settings of <amplitude = 0, period = 0> resulted
in a curve without any elastic bounce, which wasn't very useful for motion graphics.

Now, default values of amplitude = 0.8 and period = 4.1 get set. These were hand picked
by Thomas to work well when the duration of the motion is 10 frames long (i.e. the
typical length of such effects when doing motion graphics).
2014-06-20 01:34:35 +12:00
Joshua Leung
f161695150 Style cleanups here 2014-06-20 01:34:34 +12:00
Joshua Leung
8e722b0232 Feature Request T40643: Animation channels can be renamed by double-clicking on them too 2014-06-16 21:46:02 +12:00
Campbell Barton
365ff66987 GSet, GHash: Add BLI_gset_add, since its common to add members to a set
also rename BLI_edgeset_reinsert -> BLI_edgeset_add, in this case its the same.
2014-06-14 00:47:12 +10:00
Campbell Barton
e3b47c1e03 Code cleanup: BLI_strdupn -> BLI_strdup 2014-06-14 00:47:10 +10:00
Campbell Barton
4bd2609cd0 Quiet assert in debug mode, deleting mask/gpencil keys 2014-06-09 21:06:44 +10:00
Campbell Barton
ae4ed68dfe Code cleanup: style 2014-06-06 07:54:05 +10:00
Campbell Barton
9c9fc626b7 Comments: Note direction in doxy args 2014-05-29 22:05:07 +10:00
Campbell Barton
6c721a86ff Cleanup: Use doxy for more structured comments 2014-05-29 21:17:48 +10:00
Joshua Leung
6ce67a8eab For increased type safety, ANIM_animdata_filter() now specifies the enums its arguments can use
Hopefully this should help prevent bugs lik T40304 from occurring again.
2014-05-22 15:46:51 +12:00
Joshua Leung
6f99699d7d Previous commit uncovered another bug - Ungrouped FCurves couldn't be rearranged still
This was because to the filtering code, those FCurves still weren't in any
groups, and so couldn't be visible (since a temporary group is created to
house them). As a result, the visible-channels list would be empty, causing
all hidden FCurves to be treated as hidden.
2014-05-22 15:37:32 +12:00
Joshua Leung
9e76f13e6b Fix T40304: Rearranging NLA Tracks (and actually, all animation channels) didn't work anymore
These were broken by 1f3655d224, since
an argument of the wrong type was getting passed to ANIM_animdata_filter(),
resulting in no channels ever being picked up for the "visible channels" list.
2014-05-22 15:25:54 +12:00
Joshua Leung
5bb615c41e Bugfix T40292: Trying to rename shapekey datablocks from AnimEditors renamed object instead 2014-05-22 14:10:39 +12:00
Campbell Barton
193e77cc67 Fix T40201: Keyframe edits fail to update the viewport 2014-05-19 00:24:45 +10:00
Campbell Barton
3c3fa29f23 Fix FCurve mirror ignoring aligned/free handles 2014-05-14 13:53:47 +10:00
Campbell Barton
53efee6754 Fix T40187: Can't set single keyframe handle as Vector
ANIM_editkeyframes_refresh was testing handle selection as if those handles were transformed.

This is already handled by areas which need it,
so simply replace testhandles_fcurve -> calchandles_fcurve.

This was causing other bugs such as inserting a keyframe changing handles of unrelated fcurves.
2014-05-14 11:59:51 +10:00
Joshua Leung
b3cd9d289a Code cleanup: Define a dedicated "channel_role" field for animchannel types
This makes it easier for finding the active or first selected channel
(where actual data channels need to be favoured over expanders - which come
first), as previously, long switch statements were needed everytime.
2014-05-09 15:49:36 +12:00
Joshua Leung
d20c9e491c Bugfix: "Lock time to frame range" didn't work in the Graph Editor
This uses a different operator than the other time editors (as it needs to support
the setting of the value-cursor too), so the changes here didn't get propagated through.
2014-05-08 17:43:11 +12:00
Joshua Leung
aad0907644 Get rid of custom tooltip for pushdown button 2014-05-07 14:20:02 +12:00
Campbell Barton
cf069afdfd Fix: T40016 ID Names translated in menus 2014-05-05 15:09:29 +10:00