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.
Currently, we're limited to the type of Bake Data, without any control over the channels that get baked.
With this change, the user now has a fine degree of control as to which types of f-curve data will be written to the baked action (i.e., location, rotation, scale & b-bone channels).
Co-author @cmbasnett
Pull Request: https://projects.blender.org/blender/blender/pulls/111997
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
Support the property settings that were implemented some time ago.
As an aside, change the defaults for min and max to integers: integer
values can be implicitly cast to float, but the reverse results in an
error. Also, pointer properties don't support a default value.
Pull Request: https://projects.blender.org/blender/blender/pulls/112712
Without this it was necessary to convert pasted text into spaces
for them to display properly.
Since tabs are a valid part of a string, it's incorrect to assume
tabs can always be expanded to spaces.
Pasted text and console output now display tabs properly,
the tab still uses spaces for indenting though.
Blender 4.0 requires OpenGL 4.3 which always support SSBO's.
Platforms that don't support enough SSBO bind points will be marked
as unsupported.
Users who start Blender on those platforms will be informed via a
dialog. This PR also updates the `--debug-gpu-force-workarounds`
to match our minimum requirements. Note that some bugs are still
there that should be solved in other PRs:
* Workbench only renders the object using a unit matrix this is because
there is a bug in the workaround for shader_draw_parameters
* Navigating with middle mouse button is not working. Unsure what the
cause is, but might be a missing feature check in the OpenGL backend.
Related to #112224
Pull Request: https://projects.blender.org/blender/blender/pulls/112572
In armature edit mode, replace the 'bone layers' operator with the 'move
to bone collection' operator. This operator now works in both pose mode
and edit mode, and is available with the 'M' hotkey in either mode.
This is (mainly) some cleanup in names and descriptions, since we are
not using any SVN repository anymore, and layout of working new Git
repository is quite different.
Change in sync with upcoming update of the `ui_translate` add-on.
Related to https://projects.blender.org/infrastructure/blender-projects-platform/issues/65
Remove `es_ES` language.
Rename `uz_UZ` to `uz_UZ@latin`
Rename `zh_CN` to `zh_HANS`
Rename `zh_TW` to `zh_HANT`
Add support for lowercase chars in `country` part of the locale code
(although in the end it is not needed, since `boost::locale` backend
does not supports lowercase 'country' part in locales identifiers
currently) .
Related to https://projects.blender.org/infrastructure/blender-projects-platform/issues/65
Account for sys.modules not to have a __main__ module, various other
minor improvements too.
- Use a context manager to temporarily override the __main__ module.
- Use a context manager to override the stdin when auto-completing.
- Remove `_BPY_MAIN_OWN` constant as the __main__ module is needed.
An error in the key-map could cause the default keymap to be removed
leaving Blender without a default keymap.
Prevent the crash, even though Blender wont be usable in this state.
Loading add-ons after key-maps resolves a problem where add-ons would
setup shortcuts before Blender had created the key-maps.
Making add-ons have to declare the key-maps using region & window types
matching Blender's internal values.
This PR a pitfall pointed out in #110030.
Ref !110092
Part 3/3 of #109135, #110272
Switch to new node group interfaces and deprecate old DNA and API.
This completes support for panels in node drawing and in node group
interface declarations in particular.
The new node group interface DNA and RNA code has been added in parts
1 and 2 (#110885, #110952) but has not be enabled yet. This commit
completes the integration by
* enabling the new RNA API
* using the new API in UI
* read/write new interfaces from blend files
* add versioning for backward compatibility
* add forward-compatible writing code to reconstruct old interfaces
All places accessing node group interface declarations should now be
using the new API. A runtime cache has been added that allows simple
linear access to socket inputs and outputs even when a panel hierarchy
is used.
Old DNA has been deprecated and should only be accessed for versioning
(inputs/outputs renamed to inputs_legacy/outputs_legacy to catch
errors). Versioning code ensures both backward and forward
compatibility of existing files.
The API for old interfaces is removed. The new API is very similar but
is defined on the `ntree.interface` instead of the `ntree` directly.
Breaking change notifications and detailed instructions for migrating
will be added.
A python test has been added for the node group API functions. This
includes new functionality such as creating panels and moving items
between different levels.
This patch does not yet contain panel representations in the modifier
UI. This has been tested in a separate branch and will be added with a
later PR (#108565).
Pull Request: https://projects.blender.org/blender/blender/pulls/111348
Disabling all add-ons on exit could raise exceptions when `sys.modules`
contained modules that ran logic in their `__getattr__` function.
Resolve by accessing the modules name-space directly,
bypassing the `__getattr__` function.
Customprops to IDs are supported since years through code, but were
never exposed directly in the UI of customporperties.
This commit mainly:
* Adds a new `DATA_BLOCK` type to UI customprops types.
* Exposes the existing `id_type` settings to python API.
Pull Request: https://projects.blender.org/blender/blender/pulls/110458
Listing the "Blender Foundation" as copyright holder implied the Blender
Foundation holds copyright to files which may include work from many
developers.
While keeping copyright on headers makes sense for isolated libraries,
Blender's own code may be refactored or moved between files in a way
that makes the per file copyright holders less meaningful.
Copyright references to the "Blender Foundation" have been replaced with
"Blender Authors", with the exception of `./extern/` since these this
contains libraries which are more isolated, any changed to license
headers there can be handled on a case-by-case basis.
Some directories in `./intern/` have also been excluded:
- `./intern/cycles/` it's own `AUTHORS` file is planned.
- `./intern/opensubdiv/`.
An "AUTHORS" file has been added, using the chromium projects authors
file as a template.
Design task: #110784
Ref !110783.
The `BPy_IDPropertyUIManager` takes different keywords for different
data types in its `update` methods.
Booleans and Strings only handle defaults and description while Floats
and Ints can handle additional stuff like min/max.
(see `idprop_ui_data_update_string` vs. e.g.
`idprop_ui_data_update_float`)
There was a different code path in `rna_idprop_ui_create` for bools
already (only passing a subset to `update`), now use this for string as
well since it matches.
Bug introduced in 8b9a3b94fc.
Probably good for LTS.
Pull Request: https://projects.blender.org/blender/blender/pulls/110935