Commit Graph

7197 Commits

Author SHA1 Message Date
Campbell Barton
d4dbbab5d9 Cleanup: locate break statements inside the case body
Follow the convention used almost everywhere in Blender's code.
2023-09-23 21:17:50 +10:00
Sergey Sharybin
015bc7ca4d Light linking: Make list interface look more similar to other places
This change makes it so the list interface in the properties panels looks
closer to things like shape keys, vertex groups and so on: there are two
buttons to add selected objects to the collection and remove active item
from the collection, as well as the "extra" drop down menu.

The add operator adds selected objects to the light linking collection
using the Include policy. For the light linking it means that the objects
are added as receivers that receive the light, and for the shadow linking
it means that objects are added as blockers which cast shadow from the
light.

The communication of the active list element is done via context property
similar to how it was done before. The difference is that these properties
are set on a parent of the list layout, which makes it so they are inherited
by the layout hierarchy needed to place the Remove button.

Pull Request: https://projects.blender.org/blender/blender/pulls/112713
2023-09-22 17:44:25 +02:00
Julian Eisel
427bdc8dcf UI: Remove dead space between tree view items
Part of #107742.

There used to be a small margin between items since the layout feels a
bit crammed otherwise. But this meant the mouse could be between items,
with no item highlighted or reacting to interactions. This was
especially annoying when dragging over items for drag and drop: in
between items dropping wasn't possible, and the drag-tooltip would
disappear, causing notable flickering during motions over the tree view.

The view item is now slightly enlarged to keep a look that is not too
crammed, and still remove the space between items. Item highlights are
still drawn with a smaller height (matching the normal widget height),
since anything else looked odd to me.

This now feels quite consistent with similar UIs (e.g. File Browser list
view or the Outliner), even though we give the items a bit more space.
2023-09-22 17:34:11 +02:00
Leon Schittek
0edd60b4c7 Fix: UI: Don't show padding buttons in menus
Padding buttons are supposed to be invisible but were drawn like
regular menu items.

For the most part it doesn't make a difference, since most themes
use transparent menu items anyway.
But e.g. the "White" theme is using opaque menu items, which
would causes the padding button to overlap at the corner when
the roundness of the menu background is very high.

Pull Request: https://projects.blender.org/blender/blender/pulls/112731
2023-09-22 17:19:33 +02:00
Campbell Barton
5fbcb4c27e Cleanup: remove spaces from commented arguments
Also use local enums for `MA_BM_*` in versioning code.
2023-09-22 12:21:18 +10:00
Hans Goudey
867f99c2af Cleanup: Move depsgraph headers to C++
Pull Request: https://projects.blender.org/blender/blender/pulls/110816
2023-09-22 03:18:17 +02:00
Campbell Barton
31aa6fa073 Cleanup: various non-functional C++ changes 2023-09-22 10:52:40 +10:00
Harley Acheson
a0b4ead737 BLF: Subpixel Positioning, Anti-aliasing, Hinting
Text output using subpixel positioning, subpixel anti-aliasing, and
typographically-correct hinting.

Pull Request: https://projects.blender.org/blender/blender/pulls/105441
2023-09-21 22:43:17 +02:00
Julian Eisel
8b610723b6 Fix tooltip showing button label redundantly (regression)
With 9d0907560a, button tooltips would now often display the label even though
it's already visible in the button itself.

This fix brings back the old logic for displaying the label, but it's still
possible to override the label via the callback introduced in the earlier
commit.

Comments are updated/added here to make the behavior more clear.

Pull Request: https://projects.blender.org/blender/blender/pulls/110469
2023-09-21 14:49:53 +02:00
Campbell Barton
fb5629adb3 Cleanup: reduce right shift in ui_litem_layout_radial 2023-09-21 20:15:09 +10:00
Sergey Sharybin
12f51bd1c7 Fix crash when toggling link linking state in the list
The lambda passes to UI_but_func_set was capturing `this` of a
temporary object.

Likely caused by adb370e6ba.

Thanks Dalai for spotting the bug!

Pull Request: https://projects.blender.org/blender/blender/pulls/112660
2023-09-21 11:57:22 +02:00
Christoph Lendenfeld
faf8d9d8ba Anim: Multi Editing for FCurve modifiers
This patch adds multi editing support to
FCurve modifiers using the ALT key like in the rest of Blender.
Just like object modifiers they need to be named exactly
the same and be of the same type in order for the multi editing to work.

Pull Request: https://projects.blender.org/blender/blender/pulls/112419
2023-09-21 09:57:17 +02:00
Harley Acheson
963c0ed5e7 UI: Custom Tooltips Image Field Correction
Two small corrections when using Image fields in custom tooltips.
Placement was incorrect for non-square images. And a width calculation
was incorrect.

Pull Request: https://projects.blender.org/blender/blender/pulls/112643
2023-09-21 02:11:46 +02:00
Julian Eisel
638881ed31 Fix incorrect preview tile button size label height
Mismatch between what drawing assumes and what the function to query the
full preview tile uses. This would cause previews to be scaled down
because the button wasn't tall enough. Only affected the asset shelf and
the asset view template.
2023-09-20 20:09:45 +02:00
Pablo Vazquez
817df98056 UI: Add tooltip to color picker modes
Also no need use title-case in "Gamma Corrected" since it is a
description, not a property label.
2023-09-20 12:39:05 +02:00
Campbell Barton
70dff0670b Fix #112610: Nested pie menu items can't be selected
Regression in [0] caused pie menus that contain layouts with buttons
not to be selectable.

[0]: a8db828618
2023-09-20 17:29:06 +10:00
Campbell Barton
82be70a95f Fix crashes for some operators poll functions in background mode 2023-09-19 21:19:20 +10:00
Campbell Barton
6b1b41bbd6 Fix #112541: Tooltip for "Set Tool by Name" crashes in operator search 2023-09-19 16:16:17 +10:00
Campbell Barton
ab4562738c Cleanup: add asserts, improve wmEvent::utf8_buf doc-string
- rna_Event_unicode_length would return -1 if utf8_buf wasn't a valid
  unicode sequence, while this shouldn't happen, assert and return zero
  instead of returning a bad length.
- Move comment on wmEvent::utf8_buf null termination to a doc-string.
2023-09-18 14:32:15 +10:00
Campbell Barton
ed552e9e4f Cleanup: add suffix to clarify unicode functions that return an error
There were enough cases of callers ignoring a potential the error value,
using the column width for e.g. to calculate pixel sizes, or the size in
bytes to calculate buffer offsets.

Since text fields & labels can include characters that return an error
from BLI_str_utf8_as_unicode, add the suffix to make this explicit.
2023-09-18 13:41:03 +10:00
Campbell Barton
e39940e255 Fix error from 106d2bb312
Swapped width/height for the image size.
2023-09-17 11:32:41 +10:00
Campbell Barton
e3444fd314 Cleanup: various non-functional C++ changes 2023-09-17 09:05:40 +10:00
Campbell Barton
106d2bb312 Cleanup: document ownership for uiTooltipField, add function attributes
- Document ownership.
- Make some arguments const.
- Use function style casts.
- Make width/height into a size[2].
2023-09-17 09:05:40 +10:00
Campbell Barton
c75a304b51 Cleanup: use lowercase ui prefix for enum, rename Color -> ColorID
Follow current conventions for types e.g. uiFontStyle, uiBlock etc.
Also rename UiTooltipColor to uiTooltipColorID since this isn't
storing the color.
2023-09-17 09:05:40 +10:00
Pablo Vazquez
fd6076ae3e UI: Add icons to Color Ramp context menu items
* Add icon to "Reset Color Ramp" (same used by Reset to Default Value)
* Add icon to "Flip Color Ramp" (sideways arrows, similar to invert
  vertex groups).
* Add separators after stops distribution operators, and before
  reset since they have pretty different purposes.
2023-09-17 00:31:47 +02:00
Harley Acheson
b3baeeaa32 UI: Fix Error in Custom Tooltips
Fix typo in ui_tooltip_data_from_button_or_extra_icon introduced in
6453b00f44. Incorrect variable referenced - but_label.strinfo used
instead of but_tip_label.strinfo.

Pull Request: https://projects.blender.org/blender/blender/pulls/112428
2023-09-16 00:25:42 +02:00
Harley Acheson
58435f25d6 Cleanup: Make format
Formatting changes resulting from Make Formatting.
2023-09-15 12:12:23 -07:00
Harley Acheson
6453b00f44 UI: Custom Tooltips with Optional Images
This adds an optional uiBut callback that allows creating a tooltip
line-by-line with specified style and color in any order. It also
allows adding images as well to create very informative tooltips.

Pull Request: https://projects.blender.org/blender/blender/pulls/105905
2023-09-15 21:06:30 +02:00
Bastien Montagne
0ce02355c1 I18N module: updates for transition to weblate.
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
2023-09-15 18:08:52 +02:00
Pratik Borhade
0b8c83d273 GPv3: Send updates after drop operation
Redraw dopesheet and outliner editors when layer is dropped to some other
position or inside a group.

Pull Request: https://projects.blender.org/blender/blender/pulls/111519
2023-09-15 11:31:25 +02:00
Pablo Vazquez
2ec2e52a90 UI: Theme: Allow transparency when editing text in widgets
Allow transparency in both text and background color, to allow blending
the selected color with whatever is underneath. Making theming more
flexible, especially since the same property is used in different backgrounds.

Note: this doesn't affect the default themes since all of them have the alpha
component in inner at `1.0`.

Pull Request: https://projects.blender.org/blender/blender/pulls/112090
2023-09-14 19:28:30 +02:00
Brecht Van Lommel
42ed81b9ab Fix #112299: crash calling context.copy() in operator with popup
The context contained an invalid region pointer after closing the popup.
In the bug report this caused problems making a copy of context.property
which accesses the region, but doing other access to context.region was
a problem as well.
2023-09-14 18:59:10 +02:00
Lukas Tönne
d2f4ebcd6a Fix #112331: Add update tags directly in bNodeTreeInterface API methods
Calling an API function after the node panels patch does not internally
tag the node tree with `NTREE_CHANGED_INTERFACE` any more, because the
node tree is not directly accessible from `bNodeTreeInterface`. Before
node panels the API functions for interfaces could tag the tree directly
for later update consideration, which now requires explicit tagging
calls.

The fix is to add a flag and mutex directly to `bNodeTreeInterface`, so
API methods can tag after updates. This mostly copies runtime data
concepts from `bNodeTree`. The `ensure_interface_cache` method is
equivalent to `ensure_topology_cache` and should be called before
accessing `interface_inputs` and similar cache data.

Pull Request: https://projects.blender.org/blender/blender/pulls/111741
2023-09-14 14:13:07 +02:00
Campbell Barton
b3f9663011 Cleanup: use a mask combining all pie menu directions
Avoid looping over buttons to check which directions are in use.
2023-09-14 16:10:36 +10:00
Campbell Barton
a8db828618 UI: remove unnecessarily dead zones for pie menus
Previously when there were 5 or more menu items in a pie menu
the acceptable angle to select an item was limited to 45 degrees.

This makes sense when all 8 menu items are set, however it unnecessarily
restricts the range for menu items that don't have adjacent items.

Resolve using a 90 degree angle range then checking of the adjacent
buttons exist and are a better match.

This also resolves a very small dead-zone between adjacent buttons
for both 4 or 8 button pie menus. It was possible for a direction to
select neither. Compare the direction enum as a tie breaker.

Ref !112311.
2023-09-14 15:43:33 +10:00
Campbell Barton
c7cd1c8d0b Cleanup: use enum literals for space_type & region_type arguments
Also remove unique names for grease pencil keymaps.
There was not advantage in having separate names for each grease pencil
key-map.
2023-09-14 13:36:34 +10:00
Campbell Barton
b7f3e0d84e Cleanup: spelling & punctuation in comments
Also remove some unhelpful/redundant comments.
2023-09-14 13:25:24 +10:00
Campbell Barton
fad72f6daa Cleanup: always run both RNA_STRUCT_BEGIN & END macros
In this case it didn't cause any problems however macros with a
BEGIN/END must always run both, not optionally run based on knowledge
of the iterator implementation cleanup requirement.
2023-09-14 10:28:55 +10:00
Thomas Barlow
6dd3c90185 UI: Change menu icons of single-choice enums to radio buttons
Show radio buttons for enum list items that are not multi-select (not
PROP_ENUM_FLAG).

Pull Request: https://projects.blender.org/blender/blender/pulls/111796
2023-09-13 19:24:16 +02:00
Julian Eisel
0519e8d711 UI: Remove panel name size limit for complex character languages
The previous limit of 63 bytes for the panel name was an issue for
languages where characters use multiple bytes. The UI would show panel
names truncated that had reasonably long/short names.

It's easy to support dynamically sized strings here, so do that instead
of using fixed size buffers.

Fixes #111927.

Pull Request: https://projects.blender.org/blender/blender/pulls/111979
2023-09-12 14:47:46 +02:00
Hans Goudey
c59d998ce5 Geometry Nodes: Skip redo panel for node tools without inputs
The operator system assumes that the `ot->ui` callback means
there will always be a redo panel. This situation where there is a
callback but sometimes no inputs hasn't been encountered before.

Resolve that by changing `WM_operator_check_ui_empty` into
a `WM_operator_ui_poll` that handles this case properly, with
a new operator type callback called `ui_poll`.

See #101778, #111346

Pull Request: https://projects.blender.org/blender/blender/pulls/112251
2023-09-12 13:24:05 +02:00
Philipp Oeser
397a0a0e7e Fix #112028: Ctrl+Alt+Scroll not working on all selected objects
Regression from c51467cd4c.

Above commit made the IS_ALLSELECT_EVENT more strict and now excluded
mousewheel events.

Refining IS_ALLSELECT_EVENT even further (to respect mousewheel there)
is unfortunately not easily possible since mouswheel events are excluded
from `win->eventstate` (could only be retrieved from `win->event_queue`
but that is not reliable either since it might have events that are not
handled yet).

Possible solutions:
___
Adding mouswheel events to `win->eventstate`
- seemed to risky (could not forsee all possible consequences this would
have, e.g. double-click behavior)
___
Moving shortcuts for button array copy/paste from ALT to SHIFT
- downside: breaking user habits
- upside: additionally holding ALT could open the door for pasting on
all selected items
-- downside: without further work to make paste to multiple work better,
it would bring back #108096
___

So propose to do what was first suggested in #108270 as a third
solution:

Instead of refining IS_ALLSELECT_EVENT, bring it back to the state
before c51467cd4c (So `Ctrl + Alt + V` would still pass this test), but
specifically "filter out `Ctrl + Alt + V` right after in ui_apply_but().

Pull Request: https://projects.blender.org/blender/blender/pulls/112095
2023-09-11 15:33:36 +02:00
Damien Picard
8460aac59d I18n: translate drag and drop messages for sockets
The new node interface items can be dragged and dropped to change
their hierarchy. The messages indicating where an element is dropped
were extracted using N_(), but not actually translated.

This commit enables this translation using TIP_(). It also extracts a
missing message ("Insert into panel").

Pull Request: https://projects.blender.org/blender/blender/pulls/112108
2023-09-11 11:04:36 +02:00
Harley Acheson
930dadd600 Fix #111831: Proper Highlighting of Inactive Buttons
Deal separately with menu states of Disabled and Inactive buttons,
since we want different hover highlighting for inactive.

Pull Request: https://projects.blender.org/blender/blender/pulls/112159
2023-09-08 19:42:47 +02:00
Leon Schittek
cc1c38f74d UI: Fix inconsistent menu background padding
Remove slight (2 pixels) extra padding at bottom of menus.

Pull Request: https://projects.blender.org/blender/blender/pulls/111826
2023-09-08 17:43:33 +02:00
Harley Acheson
e7f1647785 Fix #112081: Incorrect Toolbar Context Highlighting
More specific targeting of Tool item alternates list.

Pull Request: https://projects.blender.org/blender/blender/pulls/112153
2023-09-08 17:38:13 +02:00
Pablo Vazquez
754f2f9c80 UI: Use asset icon for "Mark Asset" in menus
Use the asset icon for the "Mark Asset" operator in menus.

Using icons is not only good for accessibility, but also to create
a connection with the Asset Browser and the icon shown in the
data-block template once marked as asset.

Pull Request: https://projects.blender.org/blender/blender/pulls/112111
2023-09-08 15:39:59 +02:00
Harley Acheson
8d71e55d40 UI: Simplified Hover on Tool Items
Tool highlighting that targets RGN_TYPE_TOOLS only, moves
the highlighting to ui_block_func_POPUP

Pull Request: https://projects.blender.org/blender/blender/pulls/112113
2023-09-08 02:27:39 +02:00
Harley Acheson
9903c4419e Fix #112077: Crash Highlighting Popover menu
Added check for null active region

Pull Request: https://projects.blender.org/blender/blender/pulls/112099
2023-09-07 19:52:41 +02:00
Campbell Barton
3059c3ee26 UI: display a short pulse when displaying reports in the status bar
This functionality was lost in [0].

[0]: 694bc4d040
2023-09-07 15:54:54 +10:00