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.
When the destination path isn't writable - the save callbacks wouldn't
run. Supporting this can be useful so handlers can unlock a file
before saving, see #88493.
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.
Recently [0] replaced back-traces from `execinfo.h` with ASAN's
`__asan_describe_address` since the linking options to hide symbols
cause the stack-traces only to include addresses (without functions).
Although using ASAN makes sense when enabled, in my tests the
stack-traces are sometimes empty. Using CMAKE_BUILD_TYPE=RelWithDebInfo
for e.g. wasn't showing a stack-trace for the leak fixed in [1].
A utility is now included to conveniently expand the addresses from
these stack traces (`tools/utils/addr2line_backtrace.py`).
Restore support for the execinfo stack-trace reporting, used when ASAN
is disabled.
[0]: 2e79ca3205
[1]: a9f0d19197
When the type of an enum is known (char, short, int .. etc)
check the values used in the EnumPropertyItem are valid for that type.
This would have made the error from [0] fail at build time.
[0]: 928721c59e
CMake decided to link the Debug libs for MaterialX because no specific
RelWithDebInfo configuration was provided, strange default imho but
not difficult to fix.
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
The 128x128 version presented some resizing artifacts. It has now
been re-done specifically for that resolution. This icon is only
visible in non-retina displays.
Pull Request: https://projects.blender.org/blender/blender/pulls/112807
The expand operator reused `SCULPT_UPDATE_MASK` even when it
changed face sets, not the mask. That triggered incorrect behavior in
`node_update_mask_redraw` when there was no mask layer, which caused
nodes to be incorrectly marked as fully masked (and therefore optimized
out of later operations).
For Blender 4.0 we decided to support individual icons for different
snap elements.
This was originally contributed by Erik Abrahamsson as !107054 with
some contributions by myself (Germano).
This set of icons being simple geometric symbols, that should be
familiar to CAD artists.
Note that Face and Volume share the same icon (circle). This is
deliberate since they communicate a similar functionality - are not
aimed at precision snapping the same way the vertex or perpendicular
are.
Also note that later we should also try to change the icons shown in
the snap menu to match the symbols that the artists see in the preview
window.
———
On the decision process:
The version currently in main (and rolled back here) was an initial
attempt of aggregating more information to the icons (e.g., by aligning
the icons to the target edges) while making them more suitable to
Blender. After presenting both options to (parts of the) community,
there was nothing fundamentally broken found with either option, though
options diverged over personal preference.
With that in mind, in the latest UI module meeting it was agreed to use
the original proposal then.
This final call was proposed by Dalai Felinto on his role of
commissioner (stakeholder) for the snap polishing tasks (#73993) and
designer for the related Snap Base design #66484.
———
This commit reverts commit 9c2e768f5b.
The reverted icons (referred originally as minimalistic icons) may be
proposed later as a separate theme option.
- "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 sampling pattern is only a debug setting at this point
and should not be used without the debug UI enabled where
users can actually see and edit the value.
Pull Request: https://projects.blender.org/blender/blender/pulls/112606
The region background draws rounded corner so it looks more or less like
a tab coming out of the region above/below. So this needs to change
together with the region alignment.
Caused by a subtle logic change in 17d161f565 and follow ups.
Because they used to be stored in a singly-linked list, the old storage
for `corners_by_space` was backwards compared to the order each corner
was discovered in `split_loop_nor_fan_do`. I don't fully understand how
yet, but the logic when setting edges sharp based on divergence between
neighboring corner normals in a space relied on the iteration direction,
so as a fix, just iterate backwards over the corners in each space.
Reroute node consists only of a socket, it has no body.
Don't allow hiding sockets of reroutes anymore, since it could make the
node invisible or prevent links from being connected to it.
The versioning ensures that the sockets on reroute nodes are not hidden.
Pull Request: https://projects.blender.org/blender/blender/pulls/112965
The weld modifier was experiencing crashes due to the `switch_to`
variable occasionally pointing to a collapsed corner.
The encumbrance of the code implementation utilizing `switch_to` was
proving to be problematic as it was escalating the complexity of
maintenance.
To resolve the issue, a code rewrite was conducted.
The new implementation uses a `loop_next` in place of `switch_to` for
skipping corners.
This modification streamlined the code and improved its stability.
However, this solution does come with minor drawbacks. There is a small
increase in memory consumption and the corner group detection process
is now slightly more computational intensive.
Also the test files need to be updated.
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
The `blender-v4.0-release` branch would not build because some parts of grease pencil v3 were still exposed when experimental features are disabled.
This is hiding the relevant parts behind `#ifdef WITH_GREASE_PENCIL_V3` to make sure they are only built when the experimental features is enabled.
Pull Request: https://projects.blender.org/blender/blender/pulls/112953
After changing tools (and possibly other context), the buttons section
background drawing would be broken for one redraw, so the full region
would be drawn with a background, rather than just behind the button
boundaries.