Follow-up fix for #113330.
The `valid_socket_type` classmethod in node trees is only available on
custom node trees (but documentation does not say that). It cannot be
used to determine if the default float socket type is valid for built-in
node tree types. We have to assume this socket type is always valid for
built-in node trees, or the operator will try to call a non-existent
method.
Pull Request: https://projects.blender.org/blender/blender/pulls/113540
Caused by 974edc5885 / 7f9d51853c
You can now type to search directly in the `Add` menu.
Bit unfortunate though that this is not mapped to any shortcut in the
`Industry Compatible` keymap anymore
I think we could just add TAB back (but this time, mapped to
`NODE_MT_add`).
Pull Request: https://projects.blender.org/blender/blender/pulls/113446
Custom node trees may not suppor the default NodeSocketFloat socket
type. In case this default type is not supported, search all registered
socket types and pick the first one that is supported by the custom
node tree.
Pull Request: https://projects.blender.org/blender/blender/pulls/113330
The issue was that the code filtered for selected channels,
while the expectation was that it would only filter for selected keys.
This PR changes the behavior of the operator in the following way:
* when "Clean Channels" is **disabled**, it will clean only selected keyframes, regardless of the channel selection
* when "Clean Channels" is **enabled**, it will clean selected channels regardless of keyframe selection
The same logic was applied to the Graph Editor code.
It only makes a difference in the case when "Clean Channels" is enabled.
That is because channels were automatically selected when a key was selected.
In addition to that I moved the menu entry for "Clean Channels" to the channel menu
to reduce confusion.
Another solution would have been to make the Dope Sheet select channels
when keys are selected. This might still be done in the future, but I think the
only correct fix is to change the actual operator behavior.
Pull Request: https://projects.blender.org/blender/blender/pulls/113335
So far, when the toolbar was visible, the tool settings header would show empty
space instead of the tool icon. This was probably to avoid jumping of the
layout. However this empty space looks quite jarring, and alignments in that
corner are all over the place with it (causing visual noise). On the other hand
the jumping seems like a minor problem, it's quite subtle, esp since the
viewport overlay text does a similar jump. Having the icon appear and disappear
based on the toolbar visibility also causes visual distraction, so the problem
was mitigated at best.
Pull Request: https://projects.blender.org/blender/blender/pulls/112972
Reports from the internal operator weren't forwarded to the Python
operator, they were printed in the console instead.
Resolve by moving the operator to C++, use a utility function
to launch the external editor instead of an operator.
Nodes recently gained the ability to group inputs into collapsible
panels. These were untranslated, so this commit:
- Adds the appropriate regex to extract node panels defined with
the `add_panel()` callback.
- Adds the `IFACE()` translation macro to the drawing code for the
nodes, as well as the properties.
Pull Request: https://projects.blender.org/blender/blender/pulls/112968
These four languages now have some translated strings, so time to show
them in Blender.
NOTE: effect will take place after next week's update in official
Blender builds.
This is because the menu entry was using different operator
properties from what the shortcut is defined for. It was needed
to make it so an operator which is called from the menu does not
have dependency on the mouse location.
Now it is achieved by resolving MOUSE side to RIGHT from the
operator's exec().
Ref #112598
Pull Request: https://projects.blender.org/blender/blender/pulls/113143
The `armature.bones["name"].color` property is *the* bone color, which is
intended to be used as the primary way of coloring bones. THis is now
reflected better in the UI.
The per-armature-object bone color (i.e. `ob.pose.bones["name"].color`) is
seen as a secondary.
Add the 'move bone to collection' operator to the pose mode menu. It was
already in the armature edit mode menu.
The operator was already available in the pose mode keymap, it just wasn't
discoverable via the menu.
Separate user configuration of subpixel antialiasing from the hinting
options. For example, this allows turning this on while hinting is
"None", or off when hinting is "Full".
Pull Request: https://projects.blender.org/blender/blender/pulls/113027
Make the Ctrl+ACCENT_GRAVE hotkey call the 'show all bone collections'
operator (`armature.collection_show_all`), instead of 'show all armature
layers' (`armature.layers_show_all`).
This was the last reference to `armature.layers_show_all`, and the operator
has been removed.
In the Armature properties, rename the 'Skeleton' panel to 'Pose'. This
panel used to house the armature layers, but they have been transformed
into bone collections, which have their own panel. Also the term 'skeleton'
is not used in Blender, so having that as title here felt out of place.
There are some ideas to introduce different 'poses', to disconnect the
mesh binding pose from the animation reference pose. This rename sets
things up for exposing such functionality.
Add an overview of those bone collections the active/pinned bone is
assigned to.
This overview was originally there, showing the armature layers and the
bone group. This is now replaced by a list of the bone's collections. The
only possible interaction is unassigning the bone & toggling visibility
of the bone collections.
Move operators that act on the active bone collection to a 'specials'
context menu, just like other UILists.
The menu now contains:
- Solo the active bone collection (i.e. make it visible and hide others).
- Show all bone collections.
Avoid an error when drawing the Lattice properties panel. The code for
drawing mesh attributes warnings didn't account for the fact that lattices
also have vertex groups, and thus that particular code can be called
without an active mesh.
With armature layers it was possible to, with one click, show a single
layer and hide all the others. This is now possible with bone collections
as well.
For that I added a new operator `armature.bone_collection_solo_visibility`,
with a button next to the list of bone collections. The icon is
`SOLO_ON`, which is also used in the NLA.
Blender's "Copy to Selected" feature only copies single properties, while
bone colors consist of four properties (palette + 3 custom colors). These
can now be copied with a single click.
Based on feedback from users this PR brings back the most commonly used
brush shortcuts in sculpt mode. Essentially reverting some of the
changes from #108712
There are multiple reasons behind this decision:
- Anyone coming from a previous version will instinctively reassign the
brush shortcuts to the same keys as before, introducing shortcut
conflicts as a result. Having the shortcuts there by default makes this
case less likely as it makes available brush shortcuts more obvious.
- The default `paint.brush_select` operator is hard to set up manually
and is offering behavior that isn't available with the
`wm.tool_set_by_id` which is far easier to create from the UI
- There are too many brushes available to know which ones are the most
common ones.
There are some additional changes:
- `S` is now used for the Smooth brush.
- Draw brush is now assigned to `V` to avoid conflicts on `X`.
- `Shift T` is using the Scrape instead of Flatten brush.
- `C` is using the Clay Strip instead of Clay brush.
Removing the brush shortcuts can be revisited later once the brush
management is overhauled.
Ref !112898.
Some small adjustments based on user requests from the community.
- The shortcut on 4 for Object Mode was much preferred.
As a compromise the mode pie menu moved to 5.
- The region selection shortcut from the default keymap was not added.
It's now available on Ctrl Shift Alt LMB.
Ref !112628.
This is a followup fixes related to #105298
This PR adds shortcuts to toggle the sidebar, toolbar, channels and
other regions across various editors with the Ctrl-LeftBracket &
Ctrl-RightBracket shortcuts.
An additional shortcut to toggle the Asset Shelf in the 3D Viewport via
Shift Spacebar was also added. This shortcut will be important for
various workflows in the future.
To avoid shortcut conflicts and improve consistency, Ctrl-L is now
consistently being used for select_linked operations.
Ref !112042.
Updated splash screen with different options depending on whether the
user is new or upgrading. Simplifies the process for new users and
makes the choices more distinct when upgrading. Returning users also
get a link to "What's New".
Pull Request: https://projects.blender.org/blender/blender/pulls/111123
- "Tapping Alt...": remove newline in tooltip.
- Add descriptions for the From Left and From Right of the Shear
Keyframes operator's direction items, instead of just "foo":
- "Shear the keys using the left key as reference", and
- "Shear the keys using the right key as reference".
- "Affects the value" -> "Affect", use the imperative.
- "Increase or decrease the value of selected keys \n
in relationship to their average"
-> "Scale selected key values by their combined average":
remove the newline and rephrase the unclear description. New
description by Harley Acheson.
- "Redefine equalizer graphs": this is an operator name, it should be
title case.
- "USD Skeleton Import" warning: inconsistent whitespace.
- "%s: Joint weights and joint indices size mismatch size mismatch for
prim %s": remove duplicated "size mismatch".
- "USD export: couldn't copy texture tile from %s to %s": remove
duplicate whitespace, change "couldn't" to "could not" to respect
the style guide.
- "Temp. Diff." -> expand the abbreviation to "Temperature Difference"
- "Registering node tree class:" do not use formatting just to reduce
redundancy in a few messages, but write it explicitly each time.
This is more legible, and much better for translations.
- "Absolute time alignment while translating" -> "Absolute time
alignment when transforming keyframes" because this applies to all
transforms, not translation only.
- "# characters defines the [...] length of frame numbers" ->
"define" (typo), "padding" is more specific than length.
Pull Request: https://projects.blender.org/blender/blender/pulls/112975
The `connect_sockets()` node util function is used to connect sockets
even when inside node groups, when only a "virtual socket" is
available. It takes care of creating the interface in the group, so
that a socket is available in the Input or Output node.
This feature was broken after the change of API, replacing
`tree.inputs` and `tree.outputs` with a unified `tree.interface`.
This commit updates the util to account for this change.
Fixes an exception in the Node Wrangler add-on, when connecting a
socket of a type not yet available in an Input or Output node.
More info here:
https://wiki.blender.org/wiki/Reference/Release_Notes/4.0/Python_API#Node_Groups
Pull Request: https://projects.blender.org/blender/blender/pulls/112960
Previously, it was only possible to inspect the data from the first iteration. That
applied to both, the viewer node as well as socket inspection. Now, there is a
new `Inspection Index` setting in the zone properties. It specifies which iteration
should be used by the inspection features.
In theory we could support features like counting the index from the end, but
that can be done separately as well, as it likely requires more UI.
Pull Request: https://projects.blender.org/blender/blender/pulls/112818
Noticed GRAPH_MT_channel_context_menu is unused (since
DOPESHEET_MT_channel_context_menu is used in both Dopesheet & Graph/
Drivers Editor).
This patch removes GRAPH_MT_channel_context_menu but adds the entries
which were in that menu (but not in DOPESHEET_MT_channel_context_menu)
back to the later.
Namely:
- Hide Selected Curves
- Hide Unselected Curves
- Reveal Curves
- (Delete Invalid Drivers -- if in Drivers Editor)
Pull Request: https://projects.blender.org/blender/blender/pulls/111384