Missing dependency graph tag. Is only happening for scripts, since
the interface is handling this from do_constraint_panels().
Fix is suggested by Edmund Kapusniak (@edmundmk), thanks!
While it looks more longer, but also contains more comments
about what's going on.
Surely, this function almost never breaks and investing time
into maintaining its tests is not that important, but we should
have a good, clean, understandable tests so they act as a nice
example of how they are to be written. Especially important to
show correct language usage, without old school macros magic.
Doing this at a lunch breaks, so will be series of some updates
in the area.
When the area of the crop node is zero the hotspot margin becomes infinite.
This makes the gizmo by default think the translate mode hotspot is everywhere.
This fix will return a state if the INFINITY is detected so we can
return the hotspot drawing.
The cage2d gizmo is still not usable for sizes of 0 by 0 as now it won't
draw anything. the issues of the gizmo should be re-designed so we can
mitigate these limitations. But that is out of scope for this fix.
Reviewed By: campbellbarton
Maniphest Tasks: T62248
Differential Revision: https://developer.blender.org/D4516
Instead of making the entire body of the function conditional, it now
returns early, unindenting the entire function and preventing the reader
from searching for a non-existent `else` clause.
No semantic changes.
The `BLI_path_frame_strip` function was completely broken, unless the
number of digits in the sequence number was the same as the length of
the extension. In other words, it would work fine for `file.0001.abc` (4
digit `0001` and 4 char `.abc`), but other combinations would truncate
to the shortest (`file.001.abc` would become `file.###.ab` and
`file.00001.a` would become `file.##.a`). The dependency between the
sequence number and the file extension is now removed.
The behaviour has changed a little bit in the case where there are no
numbers in the filename. Previously, `path="filename.abc"` would result
in `path="filename.abc"` and `ext=""`, but now it results in
`path="filename"` and `ext=".abc"`. This way `ext` always contains the
extension, and the behaviour is consistent regardless of whether there
were any numbers found.
Furthermore, I've removed the `bool set_frame_char` parameter, because
it was unclear, probably also buggy, and most importantly, never used.
I've also added a unit test for the `BLI_path_frame_strip` function.
In 2.79 there was an "Item" panel with only to give access to rename
from the 3D view.
Add this functionality for context sensitive renaming.
Currently this works for objects/bones/sequence strips & nodes.
This uses F2 for a window level shortcut, replacing the file-io menu.
See: T61480
A hard coded threshold was used to ignore cursor motion,
make this a preference since tablet users may want to increase it
since a pen hovering isn't as easy to keep still as a mouse.
Resolves T56278
The first part of this patch is just a way to improve performance a bit
by not calling BKE_scene_object_base_flag_sync_from_base() twice.
The second is the proper fix for the reported issue.
That said, the report can be re-opened since there is still discussion
about whether or not to bring the collections with the objects.
Reviewers: mont29
Subscribers: brecht, campbellbarton
Differential Revision: https://developer.blender.org/D4558
When copy/pasting an object in same .blend file, orig object would be
instantiated into the active collection when pasting, along with the
content of the paste. Was missing a clear of LIB_TAG_DOIT on objects...
Found while investigating T61670.
Some view operations auto-keyed when locking the camera to view
but some NDOF operators didn't yet support it.
Auto key during animation playback for recording camera motion.
Unlike most transform operators that use an orientation and values,
Mirror uses the constraint axes to define which axes are mirrored.
Now constraint axes are shown in this case.
Other changes:
- Use 'EXEC_DEFAULT' for mirror menu items.
- Show mirror on local axis when not in edit-mode since this is useful
in object mode too.
- Remove mirror vertex groups since this is in the vertex group menu and
this menu isn't currently used for general symmetry operators which
are currently in other menus.
If a subfolder was specified which didn't exist, logic would fallback
to get_path_user (instead of get_path_environment).
Now always use the from the environment variable if it's set and exists.
Finding visible connected elements is often a direct lookup
when they're not connected to hidden geometry.
Add inline wrappers that avoid a function call,
gives minor speedup creating GPU edit-mesh data.
All edit mode related operators are now "Hide Selected / Reveal Hidden".
Before we had different variatons of them:
Hide Selection:
* MESH_OT_hide
* GPENCIL_OT_selection_opacity_toggle
Hide Selected Bones:
* ARMATURE_OT_hide
Hide:
* MBALL_OT_hide_metaelems
Hide Selected:
* CURVE_OT_hide
* PARTICLE_OT_hide
* POSE_OT_hide
* UV_OT_hide
Reveal Bones:
* ARMATURE_OT_reveal
Reveal:
* MBALL_OT_reveal_metaelems
Operators not renamed:
* Hide Curves (GRAPH_OT_hide)
* Hide (OUTLINER_OT_hide)
Note we can do a step further and mass rename them to match their UI
names. Where Reveal Hidden is Show Hidden. But for now at least they are
all unified.