Age | Commit message (Collapse) | Author |
|
Direcly using the C library allocator functions is usually avoided in favor of
our guarded allocator. It's more useful when debugging.
|
|
Caused problems in the Asset Browser branch when passing an empty path. The
function shouldn't blindly add a slash but sanity-check the input parameters
first.
|
|
Also makes NLA tracks and strips overridable.
User can either edit existing strips in existing NLA tracks (but not add or remove them), and/or add new NLA tracks after those comming from the linked data.
Most of the work was as usual checking operators and adding protections against illegal operations in override context.
Note that since we can only rely on indices to deal with local added tracks, we forbid any local track being before any linked/original track.
Maniphest Tasks: T72629
Differential Revision: https://developer.blender.org/D9611
|
|
While this was only needed in 'source/blender/python',
add to ghost to avoid problems in the future.
|
|
|
|
|
|
|
|
It's easier to read and less 'weird' to check that an item is non-local
in a liboverride data-block, than the other way around. Thanks to
@sybren for noticing it.
|
|
Caused by fix for T80742, 4987b7d347a885916916a888c18401ea2fe552f4.
Keep the fix that calculates the start/end direction
from adjacent points but only use it as a fallback.
|
|
Correct usage of compound modifiers like '32-bit'.
Differential Revision: https://developer.blender.org/D9769
Reviewed by Julian Eisel
|
|
Use accepted capitalization of Eevee, not 'EEVEE'.
Differential Revision: https://developer.blender.org/D9770
Reviewed by Julian Eisel
|
|
expected effect
The transform modes `shrinkfatten` and `seq_slide` have a special way of
handling events.
They use modal events in a different way than expected.
Therefore, this commit adds special event handles for these modes and
removes the keymodal tips from the status bar.
These effects are already described in the header anyway.
|
|
If the stroke had zero points the pointer returned NULL.
Also replaced for loop by FOREACH macro.
This is a corner case of "empty" strokes without points.
|
|
Also decrease variable scope.
|
|
Reviewed By: sybren
Differential Revision: https://developer.blender.org/D9776
|
|
Casting 0xFFFFFFFF to float does not give NaN as is needed here. Found through
compiler warning which is now fixed.
|
|
Change the default for the Show Channel Group Colors preference to OFF.
This option in the user preferences was introduced in rBad85256e7108. It
moved a per-file-per-editor option to the user preferences. As this
option would be frequently turned off by animators, this would now have
to happen only once. This commit takes this one step further, and turns
it off by default, as it can cause major readability issues of the
animation channel list.
|
|
RNA collections that support insertion of new items in liboverride
data-block need a special way to distiguish between locale and
orig-from-linked items (since some operations are allowed on the forer,
but no the latter).
In future we want a proper solution to abstract that at the
`BKE_lib_override` level, but for now we need to add some code for each
case.
Note that this commit also fixes a few potential issues with GPencil
modifiers, and constraints, regarding their handling of local overrides.
|
|
Missing case in `RNA_property_overridable_get`
|
|
Fix the Assign Automatic Weights operator in weight paint mode when the
Vertex Groups X option is enabled. This issue was probably introduced in
rB5502517c3c12 where `me->editflag & ME_EDIT_MIRROR_X` was replaced by
either `me->editflag & ME_EDIT_VERTEX_GROUPS_X_SYMMETRY` or
`me->symmetry & ME_SYMMETRY_X`. In this case, the former wasn't working,
so I replaced it with the latter.
|
|
Continuation of the work started with 249e4df110e0. After all display modes
were ported to this new design, this commit starts the (more complex) work on
the individual tree-element types. More concretely it ports animation
tree-elements (action data-blocks, drivers and NLA data).
The commit above explains motivations. In short, we need a better design that's
easier to reason about and better testable.
Changes done here are pretty straight forward and introduce similar class
hierarchy and building patterns as introduced for the display modes already.
I.e. an abstract base class, `AbstractTreeElement` with derived classes for the
concrete types, and a C-API with a switch to create the needed objects from a
type enum. The latter should be replacable with something nicer later on (RAII
based, and type-safer through meta-programming).
Each tree-element type has its own class, with an own header and source file
(okay some closely related types can share a header and source file, like the
NLA ones).
I added some further temporary bits for the transition to the new design, such
as the `TreeElement.type`. It should entirely replace `TreeElement` eventually,
just as `outliner_add_element()` should be quite small by then and easily
replacable by a `TreeBuilder` helper.
|
|
Mistake in 35a5dee2ef73.
Code would simply assume that the element under the cursor is an Object if it
was an ID (but not a collection).
This wouldn't cause any issues in current code, since the only other ID that
set the direct-data were collections, which are special in that they don't have
a `TreeStoreElem.type` of 0, which is already being checked for here. And if
there was no direct-data set, the object lookup in the View-Layer would
correctly fail too.
|
|
I carefully checked and am quite sure for `TSE_ANIMATION_DATA` and
`TSE_NLA_ACTION` the direct-data isn't used at all. This data is stored and
accessed in unsafe ways based on conventions anyway (`void *`). We should aim
for a safer design but it will be difficult to get there. Any removed
complexity will help.
|
|
Non-ID tree-elements would cast their data pointer to `ID *` and take the name
and ID-Code from there. The name would actually be overridden a few lines
later, so that didn't cause issues. But the ID-Code stored inside the tree
element kept an undefined value. In practice that probably didn't cause many
issues either, since it's just an undefined value that was very unlikely to
take a valid 16-bit ID-code value, meaning ID-Code checks would simply fail as
they should. Further there typically are other checks to see if the element
actually represents an ID.
However, in theory this may have caused a few random crashes or
data-corruptions.
|
|
Fix a copy-paste error in rB11c4066159e
|
|
Modernize loops by using the `for(type variable : container)` syntax.
Some loops were trivial to fix, whereas others required more attention
to avoid semantic changes. I couldn't address all old-style loops, so
this commit doesn't enable the `modernize-loop-convert` rule.
Although Clang-Tidy's auto-fixer prefers to use `auto` for the loop
variable declaration, I made as many declarations as possible explicit.
To me this increases local readability, as you don't need to fully
understand the container in order to understand the loop variable type.
No functional changes.
|
|
|
|
|
|
str_len_clip is initialized to 0, so when "Unknown Action"
occurs, set str_len_clip appropriately.
Regression in 0688309988e546382748b9e755d84ae8a5059192
Ref D9759
|
|
Missing NULL check.
Regression in 9296ba867462f7ff3c55bc0c9129af4121243bed
Ref D9757
|
|
|
|
|
|
|
|
Shared helper function to create a split layout with an alert icon for popup dialogs.
Differential Revision: https://developer.blender.org/D9486
Reviewed by Julian Eisel
|
|
New layout for the 'About' dialog featuring the full version of the Blender logo.
Differential Revision: https://developer.blender.org/D9507
Reviewed by Hans Goudey
|
|
|
|
I didn't actually confirm this is caused by invisible Outliners. But I'm pretty
sure the error happens with Outliners that aren't initialized (so were open in
an area before, but another editor is active there currently).
In that case, the runtime data may not be set yet and that is fine.
Fixes T83420.
|
|
The Edit Lines flag was not checking if Onion was enabled. In 2D template this is disabled by default, but default template has enabled it.
|
|
|
|
No functional changes. This is a few minor cleanups to the remaining C
code for building the outliner tree after parts have been moved to C++.
Differential Revision: https://developer.blender.org/D9741
|
|
No functional changes. Moves the data API display building code to C++.
Differential Revision: https://developer.blender.org/D9741
|
|
No functional changes. The scene display building code has been moved
to C++.
Differential Revision: https://developer.blender.org/D9741
|
|
No functional changes. Code is ported to C++ with additional cleanups to
the logic and variable names.
Differential Revision: https://developer.blender.org/D9741
|
|
No functional changes. Code is ported to C++. Variable names and logic
are also improved.
Differential Revision: https://developer.blender.org/D9741
|
|
|
|
Also decrease the scope of variables related to the loops.
|
|
This way Outliner internal data stays internal, non-Outliner code will not be
able to access and mess with this. Further it allows us to use the real type
(rather than `void *`), change the type to a C++ container if needed and
slightly reduces the size for every Outliner stored in files.
Slightly changed how we set the `SO_TREESTORE_REBUILD` for this, but it should
effectively behave the same way as before.
|
|
BMesh auto-extracting API info does not support comments inside BMesh
operators parameters definition.
|
|
Technically it shouldn't have any effect on these editors.
The key tips in the header can be misleading.
The effect it previously had was not intended.
|
|
|