http://www.miikahweb.com/feed.php MiikaHweb - Blender Temp-asset-browser-poselib-merge Branch http://www.miikahweb.com/ MiikaHweb - Blender Temp-asset-browser-poselib-merge Branch fi Fri, 15 Oct 21 19:45:17 +0000 MiikaHweb RSS contact at miikahweb.com <![CDATA[[0855c0d]: Assets: temporarily apply pose when generating preview image]]> http://www.miikahweb.com/en/blender/git-logs/commit/0855c0d8e8304a76493cab2061a3d4b114e4a50c 0855c0d
Branches : temp-asset-browser-poselib-merge
Author : Sybren A. Stüvel (sybren)
Committed By : Julian Eisel (Severin)
----------------------------------------
Assets: temporarily apply pose when generating preview image

When generating a preview image for a pose, temporarily apply it to the
armature. Contrary to the usual pose application, this ignores the
selected bones and always applies the entire pose.

----------------------------------------
1 Path Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/0855c0d8e8304a76493cab2061a3d4b114e4a50cSybren A. Stüvel
<![CDATA[[3713251]: Assets: Expose active asset library in context]]> http://www.miikahweb.com/en/blender/git-logs/commit/371325141da0046ba3a1ae08d93b8ce37ba2c3ac 3713251
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
Assets: Expose active asset library in context

For the Asset Browser, this returns the active asset library of the
Asset Browser, otherwise it returns the one active in the workspace.

This gives simple access to the active asset library from UI code and
Python scripts. For example the upcoming Pose Library add-on uses this,
as well as the upcoming asset view template.

----------------------------------------
4 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/371325141da0046ba3a1ae08d93b8ce37ba2c3acJulian Eisel
<![CDATA[[377a44d]: Cleanup: Use const for UI icon getter function]]> http://www.miikahweb.com/en/blender/git-logs/commit/377a44d7449f03e2a8bbc22d20283687e6cc0a0a 377a44d
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
Cleanup: Use const for UI icon getter function

----------------------------------------
2 Paths Changed]]>
Wed, 14 Jul 2021 20:49:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/377a44d7449f03e2a8bbc22d20283687e6cc0a0aJulian Eisel
<![CDATA[[3df3948]: Animation: add function to blend Action into pose]]> http://www.miikahweb.com/en/blender/git-logs/commit/3df39481c61cbab39ca77d8044793231ef7d051c 3df3948
Branches : temp-asset-browser-poselib-merge
Author : Sybren A. Stüvel (sybren)
Committed By : Julian Eisel (Severin)
----------------------------------------
Animation: add function to blend Action into pose

Add function `BKE_pose_apply_action_blend()`, which blends a given
Action into current pose. The Action is evaluated at a specified frame,
and the result is applied to the armature's pose.

A blend factor can be given to blend between the current pose and the
one in the Action. Quaternions are interpolated with SLERP; it is
assumed that their FCurves are consecutively stored in the Action.

This function will be used in the upcoming new Pose Library.

----------------------------------------
4 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/3df39481c61cbab39ca77d8044793231ef7d051cSybren A. Stüvel
<![CDATA[[3ec2bfe]: Assets: Add an active asset library per workspace, for the...]]> http://www.miikahweb.com/en/blender/git-logs/commit/3ec2bfecbd4827cbc1d33a37f4133a261a5985ce 3ec2bfe
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
Assets: Add an active asset library per workspace, for the UI to use

This per-workspace active asset library will be used by the asset views
later. Note that Asset Browsers have their own active asset library,
overriding the one from the workspace.

As part of this the `FileSelectAssetLibraryUID` type gets replaced by
`AssetLibraryReference` which is on the asset level now, not the
File/Asset Browser level. But some more work is needed to complete that,
which is better done in a separate commit.
This also moves the asset library from/to enum-value logic from RNA to
the editor asset level, which will later be used by the asset view.

----------------------------------------
20 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/3ec2bfecbd4827cbc1d33a37f4133a261a5985ceJulian Eisel
<![CDATA[[48dd0ef]: Animation: apply pose to all or selected bones of armature]]> http://www.miikahweb.com/en/blender/git-logs/commit/48dd0efc8d61d37ee37bfab4cac7f078025d8b8a 48dd0ef
Branches : temp-asset-browser-poselib-merge
Author : Sybren A. Stüvel (sybren)
Committed By : Julian Eisel (Severin)
----------------------------------------
Animation: apply pose to all or selected bones of armature

New function `BKE_pose_apply_action_all_bones()`, which will be
necessary for the upcoming pose library v2.0.

This renames the function `BKE_pose_apply_action` to
`BKE_pose_apply_action_selected_bones`, to reflect that it only works on
selected bones, to contrast it to the new function.

----------------------------------------
3 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/48dd0efc8d61d37ee37bfab4cac7f078025d8b8aSybren A. Stüvel
<![CDATA[[49f6590]: Animation: new pose library based on Asset Browser]]> http://www.miikahweb.com/en/blender/git-logs/commit/49f65907994bbd765153eb6b8652ef1b0a188ccd 49f6590
Branches : temp-asset-browser-poselib-merge
Author : Sybren A. Stüvel (sybren)
Committed By : Julian Eisel (Severin)
----------------------------------------
Animation: new pose library based on Asset Browser

Introduce new pose library, based on the Asset Browser. Contrary to the
old pose library (in `editors/armature/pose_lib.c`), which stored an
entire library of poses in an `Action`, in the new library each pose is
its own `Action` datablock. This is done for compatibility with the
asset browser, and also to make it easier to attach preview images,
share datablocks, etc. Furthermore, it opens the door to having
animation snippets in the pose library as well.

This commit contains the C code for the pose library; in order to fully
use it, an addon is required as well (which will be committed shortly).

----------------------------------------
6 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/49f65907994bbd765153eb6b8652ef1b0a188ccdSybren A. Stüvel
<![CDATA[[5034eb4]: Assets: Open Blend File operator]]> http://www.miikahweb.com/en/blender/git-logs/commit/5034eb4ffc427a86eb7302a13368968d52928b96 5034eb4
Branches : temp-asset-browser-poselib-merge
Author : Sybren A. Stüvel (sybren)
Committed By : Julian Eisel (Severin)
----------------------------------------
Assets: Open Blend File operator

Add operator 'Open Blend File' to the Asset Browser. This operator:
- starts a new Blender process,
- opens the blend file containing the asset,
- monitors the new Blender process, and when it stops,
- reloads the assets to show any changes made.

----------------------------------------
2 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/5034eb4ffc427a86eb7302a13368968d52928b96Sybren A. Stüvel
<![CDATA[[51a4b88]: UI: New button/widget type for Asset Browser like preview tiles...]]> http://www.miikahweb.com/en/blender/git-logs/commit/51a4b88b1ac3de0367031e17951ef3a3f77f96f7 51a4b88
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
UI: New button/widget type for Asset Browser like preview tiles

This button type shows a preview image above centered text, similar to
the File Browser files in Thumbnail Display Mode or the default Asset
Browser display. In fact we may want to port these over to use the new
button type at some point.

Will be used by the asset view UI template that will be added in a
following commit. That is basically a mini version of the Asset Browser
that can be displayed elsewhere in the UI.

----------------------------------------
5 Paths Changed]]>
Wed, 14 Jul 2021 20:49:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/51a4b88b1ac3de0367031e17951ef3a3f77f96f7Julian Eisel
<![CDATA[[6c4d21e]: File/Asset Browser: Extend file-entry and asset handle Python...]]> http://www.miikahweb.com/en/blender/git-logs/commit/6c4d21e95bffefeec3c7a732358cf33262bd97f0 6c4d21e
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
File/Asset Browser: Extend file-entry and asset handle Python API

Adds the following to `bpy.types.FileSelectEntry`:
* `id_type`: The data-block type the file represenets, if any.
* `local_id`: The local data-block it represents, if any (assets only).

And the following to `bpy.types.AssetHandle`:
* `local_id`: The local data-block the asset represents, if any.

This kind of information and the references are important for asset related
operators and UIs. They will be used by upcoming Pose Library features.

----------------------------------------
2 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/6c4d21e95bffefeec3c7a732358cf33262bd97f0Julian Eisel
<![CDATA[[6cafbd1]: Animation/add-ons: Enable the poselib add-on by default]]> http://www.miikahweb.com/en/blender/git-logs/commit/6cafbd1ee06ebff6d69caf377e4c8bfb91583912 6cafbd1
Branches : temp-asset-browser-poselib-merge
Author : Sybren A. Stüvel (sybren)
Committed By : Julian Eisel (Severin)
----------------------------------------
Animation/add-ons: Enable the poselib add-on by default

The new Asset Browser-based pose library is partially implemented in an
add-on. This commit enables the add-on by default, as the old pose
library was built-in and thus always enabled.

The ability to disable the add-on is there mostly for cases where
people/studios want to use their own custom pose library.

----------------------------------------
2 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/6cafbd1ee06ebff6d69caf377e4c8bfb91583912Sybren A. Stüvel
<![CDATA[[792eb13]: Assets: AssetHandle type as temporary design to reference assets...]]> http://www.miikahweb.com/en/blender/git-logs/commit/792eb1381ea4c823768b6b440dd8a9c402ffbbdc 792eb13
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
Assets: AssetHandle type as temporary design to reference assets

With temporary I mean that this is not intended to be part of the
eventual asset system design. For that we are planning to have an
`AssetRepresentation` instead, see T87235. Once the `AssetList` is
implemented (see T88184), that would be the owner of the asset
representations.

However for the upcoming asset system, asset browser, asset view and
pose library commits we need some kind of asset handle to pass around.
That is what this commit introduces.
Idea is a handle to wrap the `FileDirEntry` representing the asset, and
an API to access its data (currently very small, will be extended in
further commits). So the fact that an asset is currently a file
internally is abstracted away. However: We have to expose it as file in
the Python API, because we can't return the asset-handle directly there,
for reasons explained in the code. So the active asset file is exposed
as `bpy.context.asset_file_handle`.

----------------------------------------
8 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/792eb1381ea4c823768b6b440dd8a9c402ffbbdcJulian Eisel
<![CDATA[[80e1270]: Asset Browser: Python mixin utility for category-specific panels...]]> http://www.miikahweb.com/en/blender/git-logs/commit/80e127089cd25d4d89bf9fdb5347daa596610fd0 80e1270
Branches : temp-asset-browser-poselib-merge
Author : Sybren A. Stüvel (sybren)
Committed By : Julian Eisel (Severin)
----------------------------------------
Asset Browser: Python mixin utility for category-specific panels

Using this mixin for a panel definition, it's possible to set in which
categories the panel should appear. This is used by the Pose Library
add-on.

----------------------------------------
1 Path Changed]]>
Wed, 14 Jul 2021 20:49:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/80e127089cd25d4d89bf9fdb5347daa596610fd0Sybren A. Stüvel
<![CDATA[[8533777]: UI: Support pressing Ctrl+F over UI lists to search]]> http://www.miikahweb.com/en/blender/git-logs/commit/85337774a80b332a387688faed177960052687a7 8533777
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
UI: Support pressing Ctrl+F over UI lists to search

Adds an operator invoked by default with Ctrl+F that while hovering a UI
list, opens the search field of the list and enables text input for it.
With this commit the search button may actually be out of view after
Ctrl+F still. The following commit adds auto-scroll to solve that.

A downside is that in the Properties, there also is Ctrl+F to start
the editor-wide search. That's not unusual in Blender though (e.g.
scolling with the mouse over a UI list also scrolls the list, not the
region).

----------------------------------------
2 Paths Changed]]>
Wed, 14 Jul 2021 20:49:16 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/85337774a80b332a387688faed177960052687a7Julian Eisel
<![CDATA[[87a7299]: UI: Internal support for custom UI list item drag & activate...]]> http://www.miikahweb.com/en/blender/git-logs/commit/87a7299ef56c5e5fb4f1d955412c90254b5eb7c6 87a7299
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
UI: Internal support for custom UI list item drag & activate operators

For pose libraries, we need to be able to apply a pose whenever
activating (clicking) an item in the Pose Library asset view and blend
it by dragging (press & move). And since we want to allow Python scripts
to define what happens at least when activating an asset (so they can
define for example a custom "Apply" operator for preset assets), it
makes sense to just let them pass an operator name to the asset view
template. The template will be introduced in a following commit.

----------------------------------------
8 Paths Changed]]>
Wed, 14 Jul 2021 16:17:34 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/87a7299ef56c5e5fb4f1d955412c90254b5eb7c6Julian Eisel
<![CDATA[[888b8e7]: UI: UI list refactor & preparations for asset view template]]> http://www.miikahweb.com/en/blender/git-logs/commit/888b8e712170ac84290272ffed5ff38fbb407ae7 888b8e7
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
UI: UI list refactor & preparations for asset view template

This is more of a first-pass refactor for the UI list template. More
improvements could be done, but that's better done separately. Main
purpose of this is to make the UI list code more manageable and ready
for the asset view template.

No functional changes for users.

* Split the huge template function into more manageable functions, with
clear names and a few structs with high coherency.
* Move runtime data management to the template code, with a free
callback called from BKE. This is UI data and should be managed at
that level.
* Replace boolean arguments with bit-flags (easily extendable and more
readable from the caller).
* Allow passing custom-data to the UI list for callbacks to access.
* Make list grip button for resizing optional.
* Put logic for generating the internal UI list identifier (stored in
.blends) into function. This is a quite important bit and a later
commit adds a related function. Good to have a clear API for this.
* Improve naming, comments, etc.

As part of further cleanups I'd like to move this to an own file.

----------------------------------------
8 Paths Changed]]>
Wed, 14 Jul 2021 15:03:40 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/888b8e712170ac84290272ffed5ff38fbb407ae7Julian Eisel
<![CDATA[[97d5a4d]: UI/Assets: Initial Asset View UI template]]> http://www.miikahweb.com/en/blender/git-logs/commit/97d5a4dc1eaae9759e51d199b4d2d1465ba7cc3b 97d5a4d
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
UI/Assets: Initial Asset View UI template

The asset view UI template is a mini-version of the Asset Browser that
can be placed in regular layouts, regions or popups. At this point it's
made specifically for placement in vertical layouts, it can be made more
flexible in the future.
Generally the way this is implemented will likely change a lot still as
the asset system evolves.

The Pose Library add-on will use the asset view to display pose
libraries in the 3D View sidebar.

References:
* https://developer.blender.org/T86139
* https://code.blender.org/2021/06/asset-browser-project-update/#what-are-we-building
* https://code.blender.org/2021/05/pose-library-v2-0/#use-from-3d-viewport

Notes:
* Important limitation: Due to the early & WIP implementation of the
asset list, all asset views showing the same library will show the
same assets. That is despite the ID type filter option the template
provides. The first asset view created will determine what's visible.
Of course this should be made to work eventually.
* The template supports passing an activate and a drag operator name.
The former is called when an asset is clicked on (e.g. to apply the
asset) the latter when dragging (e.g. to .blend a pose asset). If no
drag operator is set, regular asset drag & drop will be executed.
* The template returns the properties for both operators (see example
below).
* The argument list for using the template is quite long, but we can't
avoid that currently. The UI list design requires that we pass a
number of RNA or custom properties to work with, that for the Pose
Libraries should be registered at the Pose Library add-on level, not
in core Blender.
* Idea is that Python scripts or add-ons that want to use the asset view
can register custom properties, to hold data like the list of assets,
and the active asset index. Maybe that will change in future and we
can manage these internally.

As an example, the pose library add-on uses it like this:
```
activate_op_props, drag_op_props = layout.template_asset_view(
"pose_assets",
workspace,
"active_asset_library",
wm,
"pose_assets",
workspace,
"active_pose_asset_index",
filter_id_types={"filter_action"},
activate_operator="poselib.apply_pose_asset",
drag_operator="poselib.blend_pose_asset",
)
drag_op_props.release_confirm = True
drag_op_props.flipped = wm.poselib_flipped
activate_op_props.flipped = wm.poselib_flipped
```

----------------------------------------
11 Paths Changed]]>
Wed, 14 Jul 2021 20:49:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/97d5a4dc1eaae9759e51d199b4d2d1465ba7cc3bJulian Eisel
<![CDATA[[b0122c9]: UI: Support UI list tooltips, defined via Python scripts]]> http://www.miikahweb.com/en/blender/git-logs/commit/b0122c98d65033243c3297c95c66a7d52c788e1d b0122c9
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
UI: Support UI list tooltips, defined via Python scripts

Makes it possible to create tooltips for UI list rows, which can be
filled in .py scripts, similar to how they can extend other menus. This
is used by the (to be committed) Pose Library add-on to display pose
operations (selecting bones of a pose, blending a pose, etc).

It's important that the Python scripts check if the UI list is the
correct one by checking the list ID.
For this to work, a new `bpy.context.ui_list` can be checked. For
example, the Pose Library add-on does the following check:
```
def is_pose_asset_view() -> bool:
# Important: Must check context first, or the menu is added for every kind of list.
list = getattr(context, "ui_list", None)
if not list or list.bl_idname != "UI_UL_asset_view" or list.list_id != "pose_assets":
return False
if not context.asset_handle:
return False
return True
```

----------------------------------------
9 Paths Changed]]>
Wed, 14 Jul 2021 16:18:15 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/b0122c98d65033243c3297c95c66a7d52c788e1dJulian Eisel
<![CDATA[[bab93fc]: Assets: Initial Asset List as part of the Asset System design...]]> http://www.miikahweb.com/en/blender/git-logs/commit/bab93fc3df9f92d535106711d48093315b11830f bab93fc
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
Assets: Initial Asset List as part of the Asset System design

Implements a basic, WIP version of the asset list. This is needed to
give the asset view UI template asset reading and displaying
functionality.

See:
* Asset System: Data Storage, Reading & UI Access - https://developer.blender.org/T88184

Especially the asset list internals should change. It uses the
File/Asset Browser's `FileList` API, which isn't really meant for access
from outside the File Browser. But as explained in T88184, it does a lot
of the stuff we currently need, so we (Sybren Stüvel and I) decided to
go this route for now. Work on a file-list rewrite which integrates well
with the asset system started in the `asset-system-filelist` branch.

Further includes:
* Operator to reload the asset list.
* New `bpy.types.AssetHandle.get_full_library_path()` function, which
gets the full path of the asset via the asset-list.
* Changes to preview loading to prevent the preview loading job to run
eternally for asset views. File Browsers have this issue too, but
should be fixed separately.

----------------------------------------
18 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/bab93fc3df9f92d535106711d48093315b11830fJulian Eisel
<![CDATA[[d2a5a9d]: UI: Support defining UI lists in C]]> http://www.miikahweb.com/en/blender/git-logs/commit/d2a5a9d77a451bd2b008e9ca5bf23465043fe71c d2a5a9d
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
UI: Support defining UI lists in C

So far all UI lists had to be defined in Python, this makes it possible
to define them in C as well. Note that there is a whole bunch of special
handling for the Python API that isn't there for C. I think most
importantly custom properties support, which currently can't be added
for C defined UI lists.

The upcoming asset view UI template will use this, which needs to be
defined in C.

Adds a new file `interface_template_list.cc`, which at this point is
mostly a dummy to have a place for the `ED_uilisttypes_ui()` definition.
I plan a separate cleanup to move the UI-list template to that file.

----------------------------------------
8 Paths Changed]]>
Wed, 14 Jul 2021 20:49:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/d2a5a9d77a451bd2b008e9ca5bf23465043fe71cJulian Eisel
<![CDATA[[d403761]: UI: New UI list layout type for big preview tiles]]> http://www.miikahweb.com/en/blender/git-logs/commit/d4037613c16afbfc08e8375d0074684f6388e686 d403761
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
UI: New UI list layout type for big preview tiles

This new layout type is meant for the upcoming asset view UI template.
With it it is possible to show big asset previews with their names in a
responsive grid layout.

Notes:
* The layout is only available for C defined UI lists. We could expose
it to Python, but I think there are still some scrolling issues to be
fixed first. (The asset view template doesn't use scrolling for the UI
list.)
* I'd consider this a more usable version of the existing `GRID` layout
type. We may remove that in favor of the new one in future.

----------------------------------------
2 Paths Changed]]>
Wed, 14 Jul 2021 15:57:19 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/d4037613c16afbfc08e8375d0074684f6388e686Julian Eisel
<![CDATA[[e5710e2]: Assets: Show asset path in asset browser sidebar]]> http://www.miikahweb.com/en/blender/git-logs/commit/e5710e22fa2b82ecb121dc6dd054e9a556ffd6b0 e5710e2
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
Assets: Show asset path in asset browser sidebar

It's useful to know where an asset is stored in, before this there was no way
to tell this. This could probably be displayed nicer in the UI but we're
currently unsure how. But at least the information is there now.

----------------------------------------
1 Path Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/e5710e22fa2b82ecb121dc6dd054e9a556ffd6b0Julian Eisel
<![CDATA[[e655413]: UI: Auto-scroll to keep active text buttons in view]]> http://www.miikahweb.com/en/blender/git-logs/commit/e65541356bc8a15af2cd03c6380b436d77ec5a6a e655413
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
UI: Auto-scroll to keep active text buttons in view

If a text button is activated that is not in view (i.e. scrolled away),
the scrolling will now be adjusted to have it in view (with some
small additional margin). While entering text, the view may also be
updated should the button move out of view, for whatever reason. For the
most part, this feature shouldn't be needed and won't kick in, except
when a clicked on text button is partially out of view or very close to
the region edge. It's however quite important for the previously
committed feature, that is, pressing Ctrl+F to start searching in a UI
list. The end of the list where the scroll button appears may not be in
view. Plus while filtering the number of visible items changes so the
scrolling has to be updated to keep the search button visible.

Note that I disabled the auto-scrolling for when the text button spawned
an additional popup, like for search-box buttons. That is because
current code assumes the button to have a fixed position while the popup
is open. There is no code to update the popup position together with the
button/scrolling.

I also think that the logic added here could be used in more places,
e.g. for the "ensure file in view" logic the File Browser does.

----------------------------------------
7 Paths Changed]]>
Wed, 14 Jul 2021 20:49:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/e65541356bc8a15af2cd03c6380b436d77ec5a6aJulian Eisel
<![CDATA[[e878157]: Fix T88281: Pose Library 'flip pose' sometimes flips wrong]]> http://www.miikahweb.com/en/blender/git-logs/commit/e878157575d619f6ab03c4b8f53333095271fd17 e878157
Branches : temp-asset-browser-poselib-merge
Author : Sybren A. Stüvel (sybren)
Committed By : Julian Eisel (Severin)
----------------------------------------
Fix T88281: Pose Library 'flip pose' sometimes flips wrong

Correct cases where the X-axis of the bone (in pose space) aligns with
the pose-space Y or Z-axis. In these cases the decomposition of the
matrix fails, and a negative scale of the X-axis turns into a 180°
rotation around the Y-axis. An extra -1 scale to the X and Z axes of the
resulting matrix seems to fix things.

----------------------------------------
1 Path Changed]]>
Wed, 14 Jul 2021 20:49:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/e878157575d619f6ab03c4b8f53333095271fd17Sybren A. Stüvel
<![CDATA[[f0d8ed0]: Assets: Abstraction for temporary loading of asset data-blocks...]]> http://www.miikahweb.com/en/blender/git-logs/commit/f0d8ed08ac0f80f7d2ea36618225d7ac627e5cae f0d8ed0
Branches : temp-asset-browser-poselib-merge
Author : Julian Eisel (Severin)
----------------------------------------
Assets: Abstraction for temporary loading of asset data-blocks

This is an editor-level abstraction for the `BLO_library_temp_xxx()`
API for temporary loading of data-blocks from another Blend file. It
abstracts away the asset specific code, like asset file-path handling
and local asset data-block handling.

Main use-case for this is applying assets as presets that are based on
data-blocks, like poses. Such preset assets are an important part of the
asset system design, so such an abstraction will likely find more usage
in the future.

----------------------------------------
3 Paths Changed]]>
Wed, 14 Jul 2021 15:02:20 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/f0d8ed08ac0f80f7d2ea36618225d7ac627e5caeJulian Eisel
<![CDATA[[f749054]: UI: Support left-right arrow key walk navigation in UI lists]]> http://www.miikahweb.com/en/blender/git-logs/commit/f7490543e94bc95a2dad1ba8922878965646c1ff f749054
Branches : temp-asset-browser-poselib-merge
Author : Nathan Craddock (natecraddock)
Committed By : Julian Eisel (Severin)
----------------------------------------
UI: Support left-right arrow key walk navigation in UI lists

Add improved arrow key walk navigation in grid layout UI List templates.
Pressing up or down walks the active item to the adjacent row in that
direction, while left and right walk through the items along the columns
wrapping at the rows.

Note from Julian:
In combination with the following commit, this has the important
limitation that the list's custom activate operator won't be called when
"walking over" an item that is scrolled out of the list. That is because
we don't actually create any buttons for those that could be used for
the handling logic. For our purposes of the pose libraries that should
be fine since the asset view list is always made big enough to display
all items. Solving this might be difficult, we don't properly support
nesting boxes with proper scrolling in regular layouts. It's all just
hacked a bit for UI-lists to work. Overlaps quite a bit with T86149.

Differential Revision: https://developer.blender.org/D11063

----------------------------------------
1 Path Changed]]>
Wed, 14 Jul 2021 16:18:15 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/f7490543e94bc95a2dad1ba8922878965646c1ffNathan Craddock