Override the website in the manifest with the website from the remote
repository data if it's available.
While this can be made to work it requires some awkward logic since it's
assumed an extensions meta-data is provided by the manifest with is
not the case when we start overriding it with values from elsewhere.
Resolves#123706.
This updates the settings in `BKE_gpencil_brush_preset_set`
to better match the behavior of the brushes in GPv2.
Changes:
* Use a default spacing of 100%. Only the airbrush and the rough pencil need a lower spacing (higher density).
* Use the pen pressure setting for the radius.
* Update the `draw_angle_factor` for the marker chisel.
The issue had essentially the same origin as #123538 (fixed
in #123719), but in the autokeying code. The autokeying code was
already fully resolving the RNA path to be relative to the owning
ID, but the RNA pointer getting passed with that fully-resolved path
to the keying code was the struct for the not-fully-resolved path.
This fixes it by simply passing the RNA pointer for the owning ID
rather than the struct being keyed.
Pull Request: https://projects.blender.org/blender/blender/pulls/123721
The issue was that the Python keyframing code was already resolving the
RNA path fully to the owning ID, but then erroneously passing the
non-ID RNA pointer (in this case the sound sequence pointer) to the
keyframing code with that fully resolved path.
Notably, it wasn't just the VSE keyframing that was broken: keying any
non-ID structs via the Python API was broken. A good example is pose
bones: the Python keyframing code was resolving e.g. "location" on
the bone to "pose.bones["Bone"].location", but then passing that
path along with the pose bone struct to the keyframing code. Since
that fully resolved path of course doesn't exist on the bone itself,
keying would fail.
This fixes it by simply passing the owning ID's RNA pointer instead,
which it should have been doing in the first place.
Pull Request: https://projects.blender.org/blender/blender/pulls/123719
It previously used duplicated, bespoke code to do the keyframing, and therefore
still only worked with legacy actions.
This makes it use the same keyframing function as everything else, making it
naturally work with layered actions as well. There should be no functional
changes for legacy actions.
Pull Request: https://projects.blender.org/blender/blender/pulls/123673
The "Update" button would never be shown in the extension header.
Own error in [0] caused the local version to compare with itself.
[0]: c312f206278a3571a229c9b13b1e805de7b8e971
Makes sure the the brush strength is used to write to
the fill opacity.
The conditions for what attribute to skip when copying
previous data from the curves geometry was getting a bit
complicated so this part got refactored.
Each section (if not empty) now shows a panel header.
Now there is no need to include "installed/disabled" text next to each
extension. This also removes the need for most of the filtering options.
See design task #123660.
This adds the randomization options for radius and opacity (strength).
Instead of pure white noise (like in GPv2) this uses perlin noise to make
the effect less jagged. The scale of the noise (in screen space) is
hardcoded to roughly fit GPv2. It could be exposed as a setting in the
future to get noise that changes slower/faster along the stroke.
Pull Request: https://projects.blender.org/blender/blender/pulls/123715
When clearing only the depth of a depth/stencil only the depth
part of the image aspect was stored in the node. This is invalid
when the image needed to be transitioned.
Pull Request: https://projects.blender.org/blender/blender/pulls/123713
When having a sequential read image barriers for the same resource
and the second one requires an image layout transition the incorrect
barriers where generated.
This was fixed by aligning the implementation with write image barriers.
Pull Request: https://projects.blender.org/blender/blender/pulls/123712
Many operator buttons in Node Wrangler used custom texts defined
elsewhere, but the translation context in this case is "Operator". It
should be using "Default" instead.
Attribute nodes in the shader editor should never be translated
because their name is user data.
Some button labels were switched to title case.
"Dodge" and "Burn" were renamed to "Color Dodge" and "Color Burn"
respectively, to match the item name from the actual node.
The "Frame Selected" operator now uses Node translation context, to
distinguish from the other operator of the same name which means
"Place selected in view".
Pull Request: https://projects.blender.org/blender/blender/pulls/123403
Operator reports that use string formatting need explicit rpt_() tags,
otherwise translation occurs after formatting and the string is not
found in the translation files.
- Reuse menus' bl_label in UI code when identical.
- Switch labels to title case.
- Switch descriptions to sentence case.
- Do not end sentences with "." in reports.
- Replace "Can't" with "Cannot" and "Don't" with "Do Not".
The issue was a missing Dependency Graph update tag.
That usually happened in `ANIM_list_elem_update/59` but only if the action is still linked
to the `AnimData`. That isn't the case when all keys get deleted because the action is unlinked
in `animdata_fcurve_delete` if the action is empty.
Pull Request: https://projects.blender.org/blender/blender/pulls/123553
Scanning local repositories was printing an error when the local
directory of other repositories didn't exist.
Caused by the logic that ensures wheel's are updated which needs to
check meta-data for all repositories after an update.
Resolve by optionally skipping errors for missing directories.
Since changing RNA values now trigger synchronizing with remote
repositories (which can be slow), it was possible to accumulate
notification requests to the same repository which would re-download
the remote data on each button press.
Skip notifications which have been superseded by newer requests.
When changing the URL or access token, re-synchronize remote data
automatically.
This changes automatic synchronization to use a background task that
runs based on a timer instead of a modal operator since the operator
is more intrusive and not so well suited to running based on changes
to RNA.
In some cases, sculpt code currently creates undo steps that are stored
in `step_init` in the undo stack, but then skips actually pushing them.
That can happen when an operator is cancelled (like the transform
operator in #123172) or because pushes in "nested operator calls"
are currently explicitly disabled. That happens when calling the brush
operator from a script.
It turns out the undo code never freed the `step_init`, probably because
it assumed it would be pushed to be part of the stack afterwards.
Personally I'm not convinced that separating undo step creation into
two stages with `step_encode_init` and `step_encode` is a great design
or a necessary one, but I'm trying not to get into that deeper right now.
Fixes#123172
Pull Request: https://projects.blender.org/blender/blender/pulls/123331
Fixes#123612, #123611, #123621
Continue the restructuring in previous commits in this area to avoid
repeating more work for every node. The commit is large for a bug fix
but the best way to fix the issues was to continue making the area more
generally sane. Some specific changes:
- Run the switch for undo type outside of the iteration over nodes.
- Further split multires and base mesh undo so they don't go through
the same per-node functions.
- Replace the node-tagging mechanism with specific loops per undo type.
- Properly assign the step type when pushing a single node at a time.