Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-07Curves: Rename "Hair" types, variables, and functions to "Curves"Hans Goudey
Based on discussions from T95355 and T94193, the plan is to use the name "Curves" to describe the data-block container for multiple curves. Eventually this will replace the existing "Curve" data-block. However, it will be a while before the curve data-block can be replaced so in order to distinguish the two curve types in the UI, "Hair Curves" will be used, but eventually changed back to "Curves". This patch renames "hair-related" files, functions, types, and variable names to this convention. A deep rename is preferred to keep code consistent and to avoid any "hair" terminology from leaking, since the new data-block is meant for all curve types, not just hair use cases. The downside of this naming is that the difference between "Curve" and "Curves" has become important. That was considered during design discussons and deemed acceptable, especially given the non-permanent nature of the somewhat common conflict. Some points of interest: - All DNA compatibility is lost, just like rBf59767ff9729. - I renamed `ID_HA` to `ID_CV` so there is no complete mismatch. - `hair_curves` is used where necessary to distinguish from the existing "curves" plural. - I didn't rename any of the cycles/rendering code function names, since that is also used by the old hair particle system. Differential Revision: https://developer.blender.org/D14007
2022-02-02Remove option to not auto-convert proxies on file load.Bastien Montagne
Now all proxies will always be converted to library overrides. If conversion fails, they are simply 'disabled'. This should be the last 'user-visible' step of proxies removal. Remaining upcoming commits will remove internal ID management, depsgraph and evaluation code related to proxies. Also bump the blendfile subversion. Part of T91671.
2022-01-19Asset Browser: Add debug option to disable asset indexingJulian Eisel
Adds an "Asset Indexing" option (enabled by default) to Preferences > Experimental > Debugging. This is useful when working on the asset library loading.
2021-12-27OpenSubDiv: add support for an OpenGL evaluatorKévin Dietrich
This evaluator is used in order to evaluate subdivision at render time, allowing for faster renders of meshes with a subdivision surface modifier placed at the last position in the modifier list. When evaluating the subsurf modifier, we detect whether we can delegate evaluation to the draw code. If so, the subdivision is first evaluated on the GPU using our own custom evaluator (only the coarse data needs to be initially sent to the GPU), then, buffers for the final `MeshBufferCache` are filled on the GPU using a set of compute shaders. However, some buffers are still filled on the CPU side, if doing so on the GPU is impractical (e.g. the line adjacency buffer used for x-ray, whose logic is hardly GPU compatible). This is done at the mesh buffer extraction level so that the result can be readily used in the various OpenGL engines, without having to write custom geometry or tesselation shaders. We use our own subdivision evaluation shaders, instead of OpenSubDiv's vanilla one, in order to control the data layout, and interpolation. For example, we store vertex colors as compressed 16-bit integers, while OpenSubDiv's default evaluator only work for float types. In order to still access the modified geometry on the CPU side, for use in modifiers or transform operators, a dedicated wrapper type is added `MESH_WRAPPER_TYPE_SUBD`. Subdivision will be lazily evaluated via `BKE_object_get_evaluated_mesh` which will create such a wrapper if possible. If the final subdivision surface is not needed on the CPU side, `BKE_object_get_evaluated_mesh_no_subsurf` should be used. Enabling or disabling GPU subdivision can be done through the user preferences (under Viewport -> Subdivision). See patch description for benchmarks. Reviewed By: campbellbarton, jbakker, fclem, brecht, #eevee_viewport Differential Revision: https://developer.blender.org/D12406
2021-12-13Cycles: enable Metal GPU renderingBrecht Van Lommel
This adds the remaining bits to enable Metal on macOS. There are still performance optimizations and other improvements planned, but it should now be ready for early testing. This is currently only enabled on in Arm builds for M1 GPUs. It is not yet working on AMD or Intel GPUs. Ref T92212 Differential Revision: https://developer.blender.org/D13503
2021-12-01Fix errors in user preferences after 2.8 hack removalDalai Felinto
How to reproduce it: * Open User Preferences. * Got to Add-ons tab. Issue introduced on d723e331f155 Reported via chat by Pedro Alcaide (povmaniac).
2021-12-01Cleanup: Remove hack to hide pre 2.8 addons in the user preferencesAaron Carlisle
Should be safe to do so now that 2.8+ has been out for 8 releases and over 2 years now. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D12984
2021-11-23Fix add-on Preferences using the .blend file icon, not the Blender logoJulian Eisel
Intention of the icon is to mark add-ons that are official/bundled. Doesn't make much sense to use the .blend file icon for that. It's arguable if the Blender logo should be used for this, but the file icon is definitely the wrong choice.
2021-11-18Revert fixesGermano Cavalcante
2021-11-18Revert "Revert "Revert "Revert "Allow navigating while transforming""""Germano Cavalcante
This reverts commit 717a971035071d36af03d65713408f4da1f69cb3.
2021-11-18Revert "Revert "Revert "Allow navigating while transforming"""Germano Cavalcante
This reverts commit 2a9cfdac7e126e37afb82e15a131717041f3d2f8.
2021-11-18Revert "Revert "Allow navigating while transforming""Germano Cavalcante
This reverts commit 5e6fdaa07fff907e02b36813ccde0702bad4fb4d.
2021-11-18Revert "Allow navigating while transforming"Germano Cavalcante
This reverts commit 1d1855e95f916685fed970904fc37701a4a0e031.
2021-11-18Allow navigating while transformingGermano Cavalcante
This feature has been desired for some time: - https://rightclickselect.com/p/ui/Tqbbbc/allow-navigating-while-transforming (See comments); - D1583; - T37427; In short, blocking navigation during transform limits the user to move the object only to visible areas within the screen and hinders the allocation of objects within closed meshes. The node editor is also impaired because some nodes are far between them and the connectors are too small. The only disadvantage of this patch (as I see it) is the conflict with the existing key map: MIDDLEMOUSE: - enable axis constrain in 3D view; WHEELDOWNMOUSE, WHEELUPMOUSE, PAGEUPKEY, PAGEDOWNKEY: - change the threshold of the proportional edit; So the patch solution was to change these keymaps: - MIDDLEMOUSE to Alt+MIDDLEMOUSE; - WHEELDOWNMOUSE, WHEELUPMOUSE, PAGEUPKEY, PAGEDOWNKEY to Alt+(corresponding key); When you use this new keymap for the first time in the proportional edit, it may seem strange due to the custom of using it (both in View2D and View3D). But quickly the user gets used to it. Alternatively we can add an option to the user preferences ([] Allow navigating while transforming). (I'm not much fan of this option). The patch was done on branch2.8. But maybe it's a good idea to apply it to 2.79 Differential Revision: https://developer.blender.org/D2624
2021-11-16Merge branch 'blender-v3.0-release'Sergey Sharybin
2021-11-16Asset Browser: hide catalog debug info behind debug optionSybren A. Stüvel
Add a new "experimental" debug option `show_asset_debug_info`, and use that to determine the visibility of the active asset's catalog UUID and simple name. Previously this was only determined by the "Developer Extras" option, which meant it was visible in too many situations. It's not really a "developer extra", and really just a debugging tool, so the new option is more in line with its purpose. Reviewed by: Severin Differential Revision: https://developer.blender.org/D13242
2021-11-13Text Editor: Auto close relevant charactersMatheus Santos
Support the ability to close relevant characters like '(', '[' and '{'. It will also delete the pair character if they're empty. Ref D13119 Reviewed By: campbellbarton
2021-10-23Assets/UI: Improve asset library Preferences UIJulian Eisel
* Open File Browser when pressing "Add Asset Library". This just makes sense, since users have to select a directory for the asset library anyway. * Move '+' icon back to the right side of the box. Then it is right under the 'x' icons for each indivdual library, which seems like the more natural place. * Correct tooltip for the "Add Asset Library" operator. * Mark empty asset library name or paths field in red, to make clear that these need to be set.
2021-10-22Fix T90638: Inconsistent object data behavior when link-duplicating collections.Bastien Montagne
Camera, lattice and speaker object types were missing there own proper `USER_DUP_` flags, leading to not properly handling duplication of their object data. NOTE: We could probably simply opions here, by using categories (like 'GEOMETRY', 'SHADING', etc.) instead of exact object types. But this is beyond bugfix scope.
2021-10-17UI: Visual style update to panelsPablo Vazquez
Back in Blender 2.30, the GUI project brought panels into Blender among other important visual updates. For the first time it was possible to move the wall of buttons around. Providing a clear separation between sections (it even allowed the grouping of panels in tabs!) During the 2.5 redesign, the separation between panels became a line on top of each panel, and panels received theme settings for background and header colors. The default theme used the same color for both. In 2.8 the background color of panels was different from headers in the default theme, so the separator line was removed. While the separator line wasn't elegant (only on top, non-themeable, hard-coded emboss effect), it provided a sort of separation between panels. This patch solves the panels-separation by simply adding a margin space around them (not visible in default theme yet). Even though the margin reduces the width of the working area slightly, it makes room for the upcoming always-visible scrollbars. Other adjustments: * Use arrow icon instead of triangle to collapse/expand * Use rounded corners to match the rest of the UI (editor corners, nodes, etc). {F10953929, size=full} Margin on panels makes use of the `style->panelouter` property that hasn't been used in a while. Also slight tweaks to `boxspace` and `templatespace` style properties so they are multiples of 2 and operations on them round better. There is technically no need to update the themes for them to work, so no theme changes are included in this patch. {F10953931, size=full} {F10953933, size=full} {F10953934, size=full} {F10954003, size=full} ---- A new theme setting under Style controls the roundness of all panels (added it to Style instead of ThemeSpace because I think controlling the panel roundness per editor is a bit overkill): {F11091561, size=full, autoplay, loop} Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D12814
2021-09-29VSE: Add color tags to stripsFalk David
This patch adds color tags to VSE strips, an overlay option to toggle the colors on and off, a section in the theme settings to define the 9 possible colors and two ways of changing the color tag through the UI. You can change the color through the right-click context menu, or in the strip side panel next to the strip name. Color tags are defined in user preferences and they can be disabled in overlay settings. Reviewed By: campbellbarton, ISS Differential Revision: https://developer.blender.org/D12405
2021-09-28Geometry Nodes: Remove experimental option for fieldsJacques Lucke
This enables fields as the official workflow for geometry nodes. While many features are converted to use fields rather than the old attribute workflow, many are not yet converted. In that case, the unconverted nodes are still accessible with an experimental option. In the coming weeks the rest of the nodes will be converted. Differential Revision: https://developer.blender.org/D12672
2021-09-24LibOverride: Deprecate Proxies: Add auto-conversion on file load.Bastien Montagne
This commit also add an experimental userPreferences to prevent proxies conversions on file load, and reporting for amount of coverted proxies (and possible issues). Note that potentially linked proxies from other libraries are not hamdled here (this feature seems to be broken anyway in master currently?).
2021-09-16Rename show_layout_ui > show_corner_split and remove from UIDalai Felinto
This breaks API compatibility. However we are now grouping this setting in the proper section (preferences.apps), so scripts had to update anyways. So they may as well do it for the final name. The reason to remove from the UI is that this is intended for app setup, and as such it should not be exposed to final users until we have apps better presented (for 3.1 hopefully). Differential Revision: D12516
2021-09-09Fix T90317: Confusing File Browser PreferencesHarley Acheson
Preferences / File Browser section made less confusing. See D12436 for details and comparisons. Differential Revision: https://developer.blender.org/D12436 Reviewed by Campbell Barton and Julian Eisel
2021-09-09Geometry Nodes: fields and anonymous attributesJacques Lucke
This implements the initial core framework for fields and anonymous attributes (also see T91274). The new functionality is hidden behind the "Geometry Nodes Fields" feature flag. When enabled in the user preferences, the following new nodes become available: `Position`, `Index`, `Normal`, `Set Position` and `Attribute Capture`. Socket inspection has not been updated to work with fields yet. Besides these changes at the user level, this patch contains the ground work for: * building and evaluating fields at run-time (`FN_fields.hh`) and * creating and accessing anonymous attributes on geometry (`BKE_anonymous_attribute.h`). For evaluating fields we use a new so called multi-function procedure (`FN_multi_function_procedure.hh`). It allows composing multi-functions in arbitrary ways and supports efficient evaluation as is required by fields. See `FN_multi_function_procedure.hh` for more details on how this evaluation mechanism can be used. A new `AttributeIDRef` has been added which allows handling named and anonymous attributes in the same way in many places. Hans and I worked on this patch together. Differential Revision: https://developer.blender.org/D12414
2021-09-06UI: Blend Preview Thumbnails Showing WorkspaceHarley Acheson
This adds an option to use a capture of the entire main window as the blend file preview thumbnail. See D10492 for details and examples. Differential Revision: https://developer.blender.org/D10492 Reviewed by Campbell Barton
2021-08-22BLF: Remove space_userpref.py font_kerning_styleHarley Acheson
Remove `font_kerning_style` from `space_userpref.py` since this is no longer valid. See more details in D12276 Differential Revision: https://developer.blender.org/D12276 Reviewed by Campbell Barton
2021-08-11Enable Asset Browser by default for poses, rest stays experimentalJulian Eisel
Idea for 3.0 is to disable all functionality that isn't well polished and focus on those parts first. Starting with poses. * Adds a new experimental option "Extended Asset Browser", replacing "Asset Browser". * Unlike the previous option, this isn't enabled by default anymore. This didn't work well in practice and caused plenty of confusion. * "Mark as Asset" and "Clear Asset" are hidden if the option is disabled. * Same for the category selection in the Asset Browser. * Always show display the "Only Assets" option in the File Browser while browing inside .blend files. That way you can hide data-blocks that are not pose assets. * The Asset Library setup UI in the Preferences is always visible now, it's needed for pose library access. Addresses T90181, T90180 and T90300. Differential Revision: https://developer.blender.org/D12120
2021-07-30Preferences: Move "Register File Association" to preferences levelJulian Eisel
The operator was register as a "file" operator, which are by convention used for File Browser operators only. Move it to the "preferences" operators, where it's displayed in the UI too.
2021-07-06Cleanup: pep8Campbell Barton
2021-06-15Cleanup: unused argument & variable warningsCampbell Barton
2021-06-14UI: Windows Blend File AssociationHarley Acheson
This patch allows Windows users to specify that their current blender installation should be used to create thumbnails and be associated with ".blend" files. This is done from Preferences / System. The only way to do this currently is from the command-line and this is sometimes inconvenient. Differential Revision: https://developer.blender.org/D10887 Reviewed by Brecht Van Lommel
2021-06-08PyAPI: use keyword only argumentsCampbell Barton
Use keyword only arguments for the following functions. - addon_utils.module_bl_info 2nd arg `info_basis`. - addon_utils.modules 1st `module_cache`, 2nd arg `refresh`. - addon_utils.modules_refresh 1st arg `module_cache`. - bl_app_template_utils.activate 1nd arg `template_id`. - bl_app_template_utils.import_from_id 2nd arg `ignore_not_found`. - bl_app_template_utils.import_from_path 2nd arg `ignore_not_found`. - bl_keymap_utils.keymap_from_toolbar.generate 2nd & 3rd args `use_fallback_keys` & `use_reset`. - bl_keymap_utils.platform_helpers.keyconfig_data_oskey_from_ctrl 2nd arg `filter_fn`. - bl_ui_utils.bug_report_url.url_prefill_from_blender 1st arg `addon_info`. - bmesh.types.BMFace.copy 1st & 2nd args `verts`, `edges`. - bmesh.types.BMesh.calc_volume 1st arg `signed`. - bmesh.types.BMesh.from_mesh 2nd..4th args `face_normals`, `use_shape_key`, `shape_key_index`. - bmesh.types.BMesh.from_object 3rd & 4th args `cage`, `face_normals`. - bmesh.types.BMesh.transform 2nd arg `filter`. - bmesh.types.BMesh.update_edit_mesh 2nd & 3rd args `loop_triangles`, `destructive`. - bmesh.types.{BMVertSeq,BMEdgeSeq,BMFaceSeq}.sort 1st & 2nd arg `key`, `reverse`. - bmesh.utils.face_split 4th..6th args `coords`, `use_exist`, `example`. - bpy.data.libraries.load 2nd..4th args `link`, `relative`, `assets_only`. - bpy.data.user_map 1st..3rd args `subset`, `key_types, `value_types`. - bpy.msgbus.subscribe_rna 5th arg `options`. - bpy.path.abspath 2nd & 3rd args `start` & `library`. - bpy.path.clean_name 2nd arg `replace`. - bpy.path.ensure_ext 3rd arg `case_sensitive`. - bpy.path.module_names 2nd arg `recursive`. - bpy.path.relpath 2nd arg `start`. - bpy.types.EditBone.transform 2nd & 3rd arg `scale`, `roll`. - bpy.types.Operator.as_keywords 1st arg `ignore`. - bpy.types.Struct.{keyframe_insert,keyframe_delete} 2nd..5th args `index`, `frame`, `group`, `options`. - bpy.types.WindowManager.popup_menu 2nd & 3rd arg `title`, `icon`. - bpy.types.WindowManager.popup_menu_pie 3rd & 4th arg `title`, `icon`. - bpy.utils.app_template_paths 1st arg `subdir`. - bpy.utils.app_template_paths 1st arg `subdir`. - bpy.utils.blend_paths 1st..3rd args `absolute`, `packed`, `local`. - bpy.utils.execfile 2nd arg `mod`. - bpy.utils.keyconfig_set 2nd arg `report`. - bpy.utils.load_scripts 1st & 2nd `reload_scripts` & `refresh_scripts`. - bpy.utils.preset_find 3rd & 4th args `display_name`, `ext`. - bpy.utils.resource_path 2nd & 3rd arg `major`, `minor`. - bpy.utils.script_paths 1st..4th args `subdir`, `user_pref`, `check_all`, `use_user`. - bpy.utils.smpte_from_frame 2nd & 3rd args `fps`, `fps_base`. - bpy.utils.smpte_from_seconds 2nd & 3rd args `fps`, `fps_base`. - bpy.utils.system_resource 2nd arg `subdir`. - bpy.utils.time_from_frame 2nd & 3rd args `fps`, `fps_base`. - bpy.utils.time_to_frame 2nd & 3rd args `fps`, `fps_base`. - bpy.utils.units.to_string 4th..6th `precision`, `split_unit`, `compatible_unit`. - bpy.utils.units.to_value 4th arg `str_ref_unit`. - bpy.utils.user_resource 2nd & 3rd args `subdir`, `create` - bpy_extras.view3d_utils.location_3d_to_region_2d 4th arg `default`. - bpy_extras.view3d_utils.region_2d_to_origin_3d 4th arg `clamp`. - gpu.offscreen.unbind 1st arg `restore`. - gpu_extras.batch.batch_for_shader 4th arg `indices`. - gpu_extras.batch.presets.draw_circle_2d 4th arg `segments`. - gpu_extras.presets.draw_circle_2d 4th arg `segments`. - imbuf.types.ImBuf.resize 2nd arg `resize`. - imbuf.write 2nd arg `filepath`. - mathutils.kdtree.KDTree.find 2nd arg `filter`. - nodeitems_utils.NodeCategory 3rd & 4th arg `descriptions`, `items`. - nodeitems_utils.NodeItem 2nd..4th args `label`, `settings`, `poll`. - nodeitems_utils.NodeItemCustom 1st & 2nd arg `poll`, `draw`. - rna_prop_ui.draw 5th arg `use_edit`. - rna_prop_ui.rna_idprop_ui_get 2nd arg `create`. - rna_prop_ui.rna_idprop_ui_prop_clear 3rd arg `remove`. - rna_prop_ui.rna_idprop_ui_prop_get 3rd arg `create`. - rna_xml.xml2rna 2nd arg `root_rna`. - rna_xml.xml_file_write 4th arg `skip_typemap`.
2021-06-01Compositor: Full-frame base systemManuel Castilla
This patch adds the base code needed to make the full-frame system work for both current tiled/per-pixel implementation of operations and full-frame. Two execution models: - Tiled: Current implementation. Renders execution groups in tiles from outputs to input. Not all operations are buffered. Runs the tiled/per-pixel implementation. - FullFrame: All operations are buffered. Fully renders operations from inputs to outputs. Runs full-frame implementation of operations if available otherwise the current tiled/per-pixel. Creates output buffers on first read and free them as soon as all its readers have finished, reducing peak memory usage of complex/long trees. Operations are multi-threaded but do not run in parallel as Tiled (will be done in another patch). This should allow us to convert operations to full-frame in small steps with the system already working and solve the problem of high memory usage. FullFrame breaking changes respect Tiled system, mainly: - Translate, Rotate, Scale, and Transform take effect immediately instead of next buffered operation. - Any sampling is always done over inputs instead of last buffered operation. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11113
2021-04-22Fix: Deactivate audio settings when output is NoneJörg Müller
2021-04-13Object: Enable transfer mode functionality for switching objects in Sculpt ModePablo Dobarro
This implements the changes discussed in T87134 for including switch object funcionality in 2.93. This includes: - Remove the switch object operator experimental option - Remove the option for switching objects in Edit Mode. - Rename switch_object to transfer_mode. - Enable the operator only in sculpt mode. - Expose the operator in the Sculpt menu with an eyedropper modal option. On later releases, we could revisit enabling the operator in other mode and object types as well as its place in the UI. Reviewed By: JulienKaspar, JacquesLucke Differential Revision: https://developer.blender.org/D10953
2021-03-29Overrides: API to create an override template.Jeroen Bakker
This is functionality that isn't accessible via the user interface. The API allows the creation and modification of an override template that holds rules that needs to be checked when overriding the asset. The API is setup that it cannot be changed after creation. Later on when the system is more mature we will allow changing overrides operations. NOTE: This is an experimental feature and should not be used in productions. Reviewed By: mont29, sebbas Differential Revision: https://developer.blender.org/D10792
2021-03-16VSE: Automatic proxy buildingRichard Antalik
Build proxies automatically when added to sequencer timeline and when switching preview size. This behavior can be disabled in user preferences. Reviewed By: sergey, fsiddi Differential Revision: https://developer.blender.org/D10363
2021-03-12LibOverride Auto Resync: Add option to disable it in Experimental userpref.Bastien Montagne
Some older .blend files won't react nicely to auto-resync, they need to get manually fixed with `resync enforce` first.
2021-03-06Cleanup: unused argumentsCampbell Barton
2021-03-06Cleanup: unused variablesCampbell Barton
2021-02-24UI: Remove colons from some labelsYevgeny Makarov
The colons are not necessary in these situations because it's clear that the label applies to the next group of buttons anyway, and they add unecessary visual complexity. Committing as part of D9924.
2021-01-24UI: Viewport Navigate Gizmo RefactorHarley Acheson
Simplification and changes to the Navigation gizmo. Better indication of negative axes, consistent use of color and size to indicate orientation, ability to be resized. Differential Revision: https://developer.blender.org/D9744 Reviewed by Campbell Barton
2021-01-16Add Object Tool: remove from experimentalCampbell Barton
Based on feedback from @dbystedt, include this in 2.92 with some updates (coming next).
2021-01-13Asset System: Disable Asset Browser as experimental featureJulian Eisel
The Asset Browser will be disabled and not available for the 2.92 release. In alpha/beta builds, there will be an "Asset Browser" option under Preferences > Experimental, if the developer extras are enabled. Note that this also disables related UI elements (e.g. "Mark Asset" buttons, Preferences settings for asset libraries, etc.). The code is still in master of course, development and testing will continue there. But there simply needs to be too much polishing and fixing before the 2.92 release, plus there are some design decisions to be reevaluated. Check the milestone 1 project to follow ongoing work: https://developer.blender.org/project/view/124/
2021-01-13UI: Clarify the property name of "F-Curve Visibility"Hans Goudey
"F-Curve Visibility" is a bad UI label for a property that only affects the display of unselected F-Curves. This commit clarifies the property name by making it more specific with the word "Unselected", and by using the word "Opacity". "F-Curve" is redundant in the UI label anyway because it is included in the panel title. Resolves T82587 Differential Revision: https://developer.blender.org/D10027
2020-12-24UI: Cleanup spelling of compound wordsYevgeny Makarov
Approximately 138 changes in the spelling of compound words and proper names like "Light Probe", "Shrink/Fatten", "Face Map". In many cases, hyphens were used where they aren't correct, like "re-fit". Other common changes include: - "Datablock" -> "data-block" - "Floating point" -> "floating-point" - "Ngons" -> "n-gons" These changes help give the language used in the interface a consistent, more professional feel. Differential Revision: https://developer.blender.org/D9923
2020-12-16Assets UI: Tweak position of the "Add Asset Library" icon-button in PreferencesJulian Eisel
It's weird to have a button that adds a new item at the bottom be placed at the top. So rather move it below the list of custom asset library paths.
2020-12-16Cleanup: pep8Campbell Barton