The sync with remote repositories would lock-up the interface with no
way to cancel. This could be a problem especially on slow connections.
The operator dialog is now shows the state of syncing which can
be canceled by pressing Escape or clicking away from the dialog.
Port `GPENCIL_OT_layer_duplicate_object` operator to new structure.
New function created to duplicate layer and its frames. This could also
be used in duplicate_layer operator later.
Part of #110056
Pull Request: https://projects.blender.org/blender/blender/pulls/123366
The default "System" repository which was ordered before "User Default",
order system repositories last as these are a special case many users
won't touch.
- Optionally generate a simple HTML page (using --html).
- Links include repository, blender_versnon_* & platform information,
so the information can be used by blender when links are dropped
into Blender.
- Support using a template as the default HTML is primitive.
- Disable enabling on install when installing marked.
This simplifies installing many packages from a repository which can
be useful for testing.
- Fix an error installing marked when a local-only package was marked.
When syncing in the background the UI could refresh immediately
before clicking making it possible for the user to install the wrong
extension. Since install also enables the extension, it meant it was
too easy to accidentally run untrusted code.
Disable install/upgrade while sync runs.
Also tweak text alignment and use round brackets for "(disabled)"
extensions.
Use a per-extension menu so extra functionality can be accessed from
one place.
- The install/upgrade button remains top-level.
- "Uninstall" and "Visit Website" have been moved into the menu.
- Theme extensions can be set from the menu.
- Installed add-on extensions have a "View Details" menu item
to switch to the add-ons view (useful to access preferences).
Based on design by Pablo & Dalai.
Co-authored-by: Pablo Vazquez <pablo@blender.org>
Co-authored-by: Dalai Felinto <dalai@blender.org>
- Use line separator over box instead of separate boxes.
- Format web-links with a label, then the button instead
of positioning the buttons side-by-side.
Changes by Brecht with minor edits (see !123420).
Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Add back the "Add-ons" preferences, removing add-on logic from
extensions.
- Add support for filtering add-ons by tags
(separate from extension tags).
- Tags now respect the "Only Enabled" option.
- Remove the ability to enable/disable add-ons from extensions.
- Remove add-on preferences from extensions.
- Remove "Legacy" & "Core" prefix from add-on names.
- Remove "Show Legacy Add-ons" filtering option.
Implements design task #122735.
Details:
- Add-on names and descriptions are no longer translated,
since it's impractical to translate text which is mostly
maintained outside of Blender.
- Extensions names have a `[disabled]` suffix when disabled so it's
possible to identify installed but disabled extensions.
- The add-on "type" is shown in the details,
so it's possible to tell the difference between an extension,
a core add-on & a legacy user add-on.
- Icons are also used to differentiate the add-on type.
- User add-on's must be uninstalled from the add-ons section
(matching 4.1 behavior).
- Simplify logic for filtering tags, move into a function.
Assert is due to wrong bounds passed to `std::clamp`. There seems no
error in UI code, instead this occurs due to `layout.label()`. It
returns an error due to missing case of `SCULPT_GREASE_PENCIL`. Due to
the error, panel is not generated with properties and the `rect-> min/max`
remained short enough to trigger assert
Pull Request: https://projects.blender.org/blender/blender/pulls/123478
When installing from disk, include remote repositories in the list.
- Works with drag & drop from file system.
- This is the only way to "downgrade" an extensions.