278 Commits

Author SHA1 Message Date
Campbell Barton
7a249222be Cleanup: tweak multi-line parenthesis for Python scripts
Reduce right shift, moving closing parenthesis onto own line
for clarity & reducing diff noise in some cases.

Ref !147857
2025-10-12 03:31:31 +00:00
Harley Acheson
2eaac0ad74 Fix #147574: Icon_Group Use Instead of Icon_Outliner_Collection
We have icons that represent specific individual collections. like
Icon_Outliner_Collection for a default (uncolored) collection, and
Icon_Collection_color_x for ones with colors. For "collections" as a
general thing though we have icon_group. Sometimes we confuse the two,
for example the list of tabs to show in Properties uses a different
icon than the actual category icon. This PR fixes the complaint by
using the correct icon for each of these purposes.

Pull Request: https://projects.blender.org/blender/blender/pulls/147652
2025-10-08 23:04:11 +02:00
Harley Acheson
5953ff318c UI: Add Preference for Menu Close on Leave
This PR changes the current behavior that closes menus that are open
when your mouse is moved out of its "safe" area (a bit wider than its
visible bounds). With this PR applied menus stay open unless you click
elsewhere, hover a neighboring menu, press escape, or select an item.
Although this PR turns off menu mouse leave, it also adds a preference
that can be used to turn it back on.

Pull Request: https://projects.blender.org/blender/blender/pulls/145523
2025-10-06 20:19:12 +02:00
Brady Johnston
83ea4788bd Geometry Nodes: Bring Volume nodes out of experimental
Discussed in the post-BCON Geometry Nodes workshop, this PR brings the
currently implemented Grid & Volume nodes out of experimental.

Co-authored-by: Hans Goudey <hans@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/146789
2025-10-03 15:04:55 +02:00
Damien Picard
0ef4320362 I18n: Translate "Subprocesses" label in System preferences
Reported by Ye Gui in #43295.
2025-09-29 11:07:03 +02:00
Jacques Lucke
4e4976804e Core: Add packed linked data-blocks
This adds support for packed linked data. This is a key part of an improved
asset workflow in Blender.

Packed IDs remain considered as linked data (i.e. they cannot be edited),
but they are stored in the current blendfile. This means that they:
* Are not lost in case the library data becomes unavailable.
* Are not changed in case the library data is updated.

These packed IDs are de-duplicated across blend-files, so e.g. if a shot
file and several of its dependencies all use the same util geometry node,
there will be a single copy of that geometry node in the shot file.

In case there are several versions of a same ID (e.g. linked at different
moments from a same library, which has been modified in-between), there
will be several packed IDs.

Name collisions are averted by storing these packed IDs into a new type of
'archive' libraries (and their namespaces). These libraries:
* Only contain packed IDs.
* Are owned and managed by their 'real' library data-block, called an
  'archive parent'.

For more in-depth, technical design: #132167
UI/UX design: #140870

Co-authored-by: Bastien Montagne <bastien@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/133801
2025-09-26 10:53:40 +02:00
Campbell Barton
b4fbc0c32d Cleanup: remove f-strings use, use double quotes, quiet pylint warnings 2025-09-26 14:31:05 +10:00
Pablo Vazquez
b74e696acc UI: Theme: Add Curve widget theme settings
Add theme settings for the Curve and CurveProfile widgets.

Even though the curve widget is used all over Blender, it never had its
own theme settings. It was using a mix of colors from the “regular”
toggle widget with text colors inherited from the editor.

Thanks to the recent cleanup and removal of so many redundant theme
options, we can now add new/missing settings without overwhelming
the theme.

See PR for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/146274
2025-09-25 17:44:33 +02:00
Damien Picard
f2126e211f Fix: URL prefix for experimental preferences
Recent commit 4c2ea47aec changed the URL prefix for experimental
preferences, missing a "/" and making them look like:

`https://projects.blender.orgblender/blender/issues/83811`

instead of:

`https://projects.blender.org/blender/blender/issues/83811`

Ref !145215

Pull Request: https://projects.blender.org/blender/blender/pulls/146531
2025-09-23 10:00:09 +02:00
Pablo Vazquez
ae7f3a0d18 Fix #146284: Missing Navigation Bar in Preferences
Follow up to !146169

- Add versioning so the new sidebar shows up in old files.
- Remove the hidden flag so it shows up in new Preferences editors.
- Add "Sidebar" toggle to the View menu, and expose region toggle.

Pull Request: https://projects.blender.org/blender/blender/pulls/146321
2025-09-15 18:11:37 +02:00
Pablo Vazquez
2898ef0a5c UI: Preferences: Move sections to a regular sidebar region
While perhaps it is more accurate to draw the sidebar navigation in a
"Navigation Bar" region, the navigation "tabs" are not real tabs, so
the darker background usually used for tabs doesn't look good here.

Draw the sections radio buttons in a regular sidebar region instead.

See PR for details and screenshots.

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/146169
2025-09-12 18:20:11 +02:00
Nika Kutsniashvili
250384dd57 UI: Theme: Scrubbing/Markers shared region
Continues and depends on #145609, part of #140360 project.

Previously, all 5 animation/video editors had different properties
for Scrubbing/Markers region. This PR adds new Region panel for it,
so that all editors can share one color.

Text color in this region was coming from regular editor text color.
To differentiate between editors (as is the pattern already with other editors),
and allow more modular themeability of regions, new Text color is added
for that region as well.

Video in PR

Pull Request: https://projects.blender.org/blender/blender/pulls/146113
2025-09-12 16:25:56 +02:00
Nika Kutsniashvili
534b5f1f4f UI: Theme: Shared regions
Continuing recent attempts to combine theme settings
and reduce complexity. part of #140360
This PR adds new root panel in theme called "Regions" which for now
includes two subpanels:

# Asset Shelf
This is just moving asset shelf from root to regions, where
it's more appropriate and less noisy.
No functional changes. (alternative to #144267)

# Channels
Previously known as "Theme Space List", or "Source List",
but in user interface we refer this region as "Channels".
This region is shared by all animation/video editors, and each had
a separate panel for theme properties. Now they're combined, and all
editors follow settings defined in Regions -> Channels.

Additionally, "Source List Title" property, which was never used is removed.
Properties are also renamed to be more intuitive and shorter.

# Toolbar / Sidebar
Previously was registered separately on every single editor. This allowed
for some extra customization, but in 5.0 need for this is reduced very much,
because elements drawn in those regions (tabs & tools) are also generalized,
so it makes sense to want same background color for them as well.

> This replaces 46 properties with 5, reducing the total by 41.
> Videos in PR

Pull Request: https://projects.blender.org/blender/blender/pulls/145609
2025-09-12 13:22:50 +02:00
Sean Kim
4c2ea47aec UI: Add 'Developer Tools' section to user preferences
This PR introduces a 'Developer Tools' section of the user preferences,
enabled when the `Developer Extras` option is enabled. This menu will
not be hidden when the release cycle is no longer in alpha, allowing
developers to use this for common debug options instead of having to use
`G.debug_value` and arbitrary values.

This has the benefit of allowing for an ease of debugging in non-alpha
builds as well as being able to use multiple options that would have
been considered exclusive debug options at once.

None of the existing values bound to a specific `G.debug_value` have
been migrated yet.

Pull Request: https://projects.blender.org/blender/blender/pulls/145215
2025-09-11 23:53:43 +02:00
Harley Acheson
f7cdd3e867 UI: Preference to Always Show Number Arrows
Numerical inputs have little arrows on the left and right to allow
quick increment/decrement of the value. But these are only shown on
hover, which does not help if using a device that does not have a hover
state (some pens, most touch). This PR adds a user preference to show
them always.

Pull Request: https://projects.blender.org/blender/blender/pulls/145374
2025-09-06 00:12:11 +02:00
Pablo Vazquez
eae4585177 UI: Accessibility: Reduce Motion
Add "Reduce Motion" option to a new `Accessibility` panel under
Preferences, User Interface.

"Reduce Motion" avoids non-essential animation effects, especially
useful for those experiencing motion sickness/vertigo.

It affects:
* Region open/close.
* Pie menus animation.
* Smooth views.

This panel in the future could host common accessibility settings such
as "Increase Contrast" or font size and weight controls that currently
are part of themes.

See PR for details and screenshots.

Co-authored-by: Harley Acheson <harley.acheson@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/140873
2025-09-05 21:12:52 +02:00
Harley Acheson
83e59eea9c UI: Touch-Capable Area Maintenance
This PR allows area maintenance that is compatible with touch
interfaces. The top-left action zone is widened to minimum hitspace,
shown as a "gripper" icon. A simple press brings up a menu with area
maintenance options, including split, docking, tear off, maximize, and
Close.

Pull Request: https://projects.blender.org/blender/blender/pulls/144591
2025-09-04 18:12:26 +02:00
Falk David
866fcd0a09 VSE: Update Strip Modifier UI
This PR updates the VSE strip modifiers interface.
It now uses the same design as the object modifiers.

Changes:

* Except for the "Mask Input" subpanel, the modifier UIs are unchanged.
* Modifiers can now be rearranged using drag & drop.
* Additionally, there is now an active strip modifier. This is exposed
   though python via `strip.modifiers.active`.

This is in part for !139634 which needs the concept of an active modifier.

Notes:

* The `modifier.cc` file included all the implementation of all modifiers.
   With the addition of a another new callback in this PR, this file was
   getting quite big so I split everything out into individual files for all
  modifiers. The modifiers are getting registered at launch.
* The modifier panels are getting added using a UI template
  (`template_strip_modifiers`) very similar to the object modifiers.

Pull Request: https://projects.blender.org/blender/blender/pulls/145367
2025-09-04 15:01:57 +02:00
Campbell Barton
ee000da266 Fix #144751: NDOF, pan/zoom reversed in orthographic views, in fly mode
Use viewport navigation options in the orthographic view as well.
While the intention was to have the 3D-navigation preference only
impacting 3D views, inconsistencies between 2D/3D views tend to be
confusing for users, so use the same behavior in both.

Also expose the preference in the "3D Mouse" popup for 2D views as
this preference is used there as well.
2025-08-28 02:35:03 +00:00
John Kiril Swenson
16726a5254 Fix: VSE: Remove unused tweak property in userpref
This was overlooked in #140031. This should silence warnings when
opening user preferences.
2025-08-27 17:29:12 -05:00
Nika Kutsniashvili
7d2b024151 UI: Theme: Move curve handle properties in common
Continuing #140360, after 39c066ee53

Moving curve handle colors & size from space editors into common theme properties.

They are now shared by 3D Viewport, Image Editor, Graph Editor, and Movie Clip Editor,
instead of each of them having their own properties.

(Video in PR)

---

Details:
- NURB U/V lines, active spline, and last selected point colors were defined
in `rna_def_userdef_theme_spaces_curves` but were optional and only called by
3D viewport. Since no other editor calls that function anymore, I removed it and
moved those properties directly inside `rna_def_userdef_theme_space_view3d`.
- In Image Editor & Movie Clip Editor (Mask mode), curves don't ever show
selection colors, and Vector handles are generally never visible, that is
bug/missing in Blender in general, not a result of this PR.
- Handle vertex size were included in Dope Sheet and NLA, where handles don't
exist. Now as a side effect they're removed as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/143762
2025-08-15 21:40:56 +02:00
Campbell Barton
a111a258b5 Fix: add ThemeCommonAnim to XML secure types
Follow up to !144580.
2025-08-15 11:01:32 +10:00
Nika Kutsniashvili
6526f83fed Fix #144579: "Commons" theme settings fail to load from XML
Add common theme panel in XML secure types.

Ref !144580
2025-08-15 00:51:34 +00:00
Jonas Holzman
da781fd685 UI: Allow Preferences editor to be opened in Maximized Area
This commit adds the option to open the Preferences editor in a
maximized area instead of a new window. This is done by adding a
"Preferences" field to the Interface > Editor > Temporary Editor
preferences. The default value is set to "New Window" keeping the
current behavior.

Implements: #142665

Pull Request: https://projects.blender.org/blender/blender/pulls/142681
2025-08-13 11:26:50 +02:00
Jacques Lucke
24c4e0a3f7 Geometry Nodes: move bundle and closure nodes out of experimental
This moves the bundles and closures features out of experimental,
making them an official part of Blender 5.0.

Also see #134029.

Pull Request: https://projects.blender.org/blender/blender/pulls/143750
2025-08-08 13:48:02 +02:00
Jacques Lucke
e72e049c84 Nodes: remove experimental option for new socket shapes
This removes the experimental feature flag for the new socket shapes,
making them official. This only affects the UI and does not affect the evaluation.

Pull Request: https://projects.blender.org/blender/blender/pulls/144119
2025-08-08 09:41:06 +02:00
Sybren A. Stüvel
0fa67c3ea2 Fix #142464: Add customizable color for W quaternion channel
The W channel in quaternion and axis-angle F-Curves is now themeable
(defaulting to yellow), instead of incorrectly blending the X and Y axis
theme colors.

The original blending math did not take into account that the hue
channel actually wraps around, and so the blended color became blue
instead of the intended yellow.

Instead of fixing the math, the theme has been expanded for this W axis.
The default color is set to the mathematically correct yellow.

Co-authored-by: Sybren A. Stüvel <sybren@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/143211
2025-08-05 17:55:12 +02:00
Campbell Barton
2c27d2be54 Cleanup: grammar corrections, minor improvements to wording 2025-08-01 21:41:24 +10:00
Campbell Barton
503429df1d Cleanup: replace "enabled" with "active" in the NDOF UI
Prefer "active" so the settings can still be changed,
typically this is preferred unless changing them would cause problems.

Also assign "active" immediately after assignment,
following the convention use elsewhere in scripts.
2025-07-30 13:15:09 +10:00
Patryk-Skowronski
865f1f62d0 UI: grey-out NDOF orbit center settings in "Fly mode"
Ref !143457
2025-07-30 13:01:43 +10:00
Hans Goudey
4f372d64d4 Geometry Nodes: Initial very basic list support
This includes a new list structure type and socket shape, a node
to create lists, a node to retrieve values from lists, and a node to
retrieve the length of lists. It also implements multi-function support
so that function nodes work on lists.

There are three nodes included in this PR.
- **List** Creates a list of elements with a given size. The values
  are computed with a field that can use the index as an input.
- **Get List Item** A field node that retrieves an element from a
  a list at a given index. The index input is dynamic, so if the input
  is a list, the output will be a list too.
- **List Length** Just gives the length of a list.

When a function node is used with multiple list inputs, the shorter
lists are repeated to extend it to the length of the longest.

The list nodes and structure type are hidden behind an experimental
feature until we can be sure they're useful for an actual use case.

Pull Request: https://projects.blender.org/blender/blender/pulls/140679
2025-07-24 16:16:40 +02:00
Jeroen Bakker
4d9c5ebd97 Vulkan: Move Wayland/HDR support out of experimental
This PR moves Wayland/HDR support out of experimental.
This allows more people to test and provide feedback. We
can always decide later to disable it for the release, but so
far we only got positive feedback.

Pull Request: https://projects.blender.org/blender/blender/pulls/141666
2025-07-09 13:24:31 +02:00
Jeroen Bakker
f3dafd7040 Merge branch 'blender-v4.5-release' 2025-06-26 15:00:21 +02:00
Jeroen Bakker
360cf7f2fb Vulkan: Hide WoA message on non Woa devices
This PR only shows the Windows on ARM limitation on Windows
on ARM devices. Also some tweaks to the messages were made.

Has been tested on Linux, Windows x86 and Windows on ARM.

Pull Request: https://projects.blender.org/blender/blender/pulls/141023
2025-06-26 14:59:31 +02:00
Jeroen Bakker
e63a20fee1 Vulkan: HDR support for Wayland
This change enables HDR support for wayland as an experimental feature.
It supports both non-linear extended sRGB and un-clamped sRGB.

Windows isn't supported as the HDR settings are not accessible via an
API and would require similar settings that games use to configure the
monitor. Adding those sliders isn't what we would like to add.

Vulkan (working group) is working on new extensions that might change
the shortcomings. It isn't clear yet what the extension will do and what
the impact is for applications that want to use it. When the extension
is out we should review at the situation again.

Pull Request: https://projects.blender.org/blender/blender/pulls/133159
2025-06-24 11:51:14 +02:00
Pablo Vazquez
695a03d9f4 UI: Theme: Add text color settings to panels
Recently, panel styling was moved to a global setting instead of being
per-editor. However, the panel's title and labels inside still rely on
the per-editor region's text and title settings.

Move panel title and text colors to the global "Panel" settings.

See PR for details and screenshots.

Part of #135192

Pull Request: https://projects.blender.org/blender/blender/pulls/140726
2025-06-20 21:03:08 +02:00
Pablo Vazquez
4ba59048a6 Fix: Theme: Region color changes skipped on apply
Add the new region theme space to the list of XML secure types,
otherwise it gets skipped and color changes are not applied.
2025-06-20 16:27:55 +02:00
Hans Goudey
f61fbc468a Attributes: Remove AttributeStorage legacy compatibility option
Remove the use_attribute_storage_write experimental option and always
write in the new format, which is supported by 4.5. The new format is
only used at runtime by point clouds currently but there is no reason
for it to be an option at this point.

This is a second commit repeating 84212bae4b
after that was reverted. Issues that came up with Grease Pencil writing
have been resolved in the meantime.
2025-06-19 11:54:07 -04:00
Falk David
0e737b23c5 Revert "Attributes: Remove AttributeStorage legacy compatibility option"
This reverts commit 84212bae4b.
2025-06-19 12:20:20 +02:00
Pablo Vazquez
db9ae93f02 UI: Theme: Add Panel Outline
Add a panel outline theme option, set very low by default. This PR also
adds a slight (2 pixel) padding inset to subpanels.

Pull Request: https://projects.blender.org/blender/blender/pulls/139897
2025-06-18 19:16:24 +02:00
Nika Kutsniashvili
efa8d942b8 Refactor: Remove grid and compact UI list layout in Python scripts
The grid layout type for UI list is planned for removal in 5.0, see
blender/blender#110461.

In previous UI meetings, we talked about deprecating the Grid mode of
the UI list, which is not actually accessible in UI and was never used.
Nowadays, there is a new grid view that can be exposed in the API in
the future.

Initially, I wanted to remove references to layout_type in UI templates
in the text editor, because a lot of add-on developers on the
extensions platform base their lists on that code, and a lot of them
are therefore including soon to be deprecated code in their add-ons,
which I want to avoid in the future. But I thought we might as well
remove it from our python scripts as well, since it's just basically
redundant code that doesn't do anything. And also because many add-on
developers use bundled python scripts for references as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/138395
2025-06-18 13:45:06 +02:00
Hans Goudey
84212bae4b Attributes: Remove AttributeStorage legacy compatibility option
Remove the `use_attribute_storage_write` experimental option and always
write in the new format, which is supported by 4.5. The new format is
only used at runtime by point clouds currently but there is no reason
for it to be an option at this point.

Pull Request: https://projects.blender.org/blender/blender/pulls/140284
2025-06-16 15:48:23 +02:00
Jacques Lucke
59a759b98d BLO: enable new file format by default
This enables the new .blend file format as described in #129309 and implemented
in 6a90382390 by default. This allows storing
blocks larger then 2GB inside the file. This is a necessary requirement to be
able to store e.g. meshes with more than a few hundred million vertices.

There is a new debug option that can be used to force Blender to write the older
file format. This is especially useful when using tools that have not been
updated to be able to read the new format yet.

Compatibility:
* Blender 4.5 is able to read the new format for a few months already, so 4.5
  LTS will be able to read these files
  (6a90382390).
* The internal `blendfile.py` which is used by `blend2json.py` has been updated
  (d83bfee347).
* blender-asset-tracer (BAT) has been updated
  (blender/blender-asset-tracer@f1ee7980b2).
* `blend_render_info.py` will be updated soon (#140341).

Pull Request: https://projects.blender.org/blender/blender/pulls/140343
2025-06-16 07:46:05 +02:00
Campbell Barton
7ae8e18f0b Cleanup: rename preferences for NDOF sensitivity
Clarify the terms for NDOF translation & rotation sensitivity.
Previously translation was named: "ndof_sensitivity" making it
sound like it would control rotation as well.
2025-06-14 16:35:51 +10:00
Pablo Vazquez
ec5191a80f UI: Theme: Make widget properties layout responsive
Do not force 3-column layout as labels don't fit. Use a responsive
layout like it's done for other panels.
2025-06-13 15:51:19 +02:00
Jeroen Bakker
65685b2c70 Merge branch 'blender-v4.5-release' 2025-06-13 13:31:01 +02:00
Clément Foucault
c1a028150a UI: Remove unused Depth Picking from the user pref panel
This option does nothing since 4.4. It will be removed
from the DNA and RNA in 5.0 (see #140338).
2025-06-13 12:32:05 +02:00
Pablo Vazquez
7818082d02 UI: Theme: Add global style for panel colors
Move panel header, panel background, and sub-panel background color
settings to be global, under `User Interface`, like other widgets.

Remove per-editor panel styling. This way users can edit the panel
colors once, and affect all panels.

See pull request for screenshots and details.

Pull Request: https://projects.blender.org/blender/blender/pulls/140295
2025-06-12 20:05:34 +02:00
Pablo Vazquez
23fb5752ed UI: Theme: Add new Outline Selected property
Allow theming the outline of selected elements. This helps to make
active elements more prominent, and allows for flat theme combinations
not possible before.

Pull Request: https://projects.blender.org/blender/blender/pulls/139850
2025-06-11 23:20:50 +02:00
Clément Foucault
1c47e31367 GPU: Enable GL multithreaded compilation by default
This allows to reduce the waiting time caused by
shader compilation on some GPU-driver combo.

A new settings in the User Preferences make it
possible to override the default amount of worker
threads and optionally use subprocesses.

We still use only one worker thread in cases where
there is no benefit with adding more workers
(like AMD pro driver and Intel windows).

It doesn't scale as much as subprocesses for material
shader compilation but that is for other reasons
explained in #139818.

Add some heuristic to avoid too much memory usage
and / or too many stalls.

Also add some heuristic to the default number of subprocess for
the platform that shows scalling.

Historically, multithreaded compilation was prevented by the
need of context per thread inside `DRWShader` module.
Also there was no good scaling at that time. But
nowadays numbers shows different results with
good scaling with reasonable amount of threads on many
platforms.

Even if we are going for vulkan in the next release
most of the legacy hardware will still use OpenGL for
a few other releases. So it is relevant to make this
easy improvement.

See pull request for measurements.

Pull Request: https://projects.blender.org/blender/blender/pulls/139821
2025-06-09 12:36:06 +02:00