Commit Graph

444 Commits

Author SHA1 Message Date
Campbell Barton
e52783033d Merge branch 'blender-v4.2-release' 2024-07-08 15:31:44 +10:00
Campbell Barton
9bbf269fe3 Extensions: suppress all pylint warnings & handle add-on errors
- Suppress pylint warnings via comments or be minor changes.
- Any errors disabling add-ons before upgrading or uninstalling are now
  reported to the operators.
- Disable cyclic import warning is it's impractical to resolve.
- Enable useless-suppression warning.
2024-07-08 15:29:27 +10:00
Campbell Barton
817efe4aef Merge branch 'blender-v4.2-release' 2024-07-08 13:33:34 +10:00
Campbell Barton
05feac04fa Extensions: minor changes to error handling & uninstalling
- Any change that cases validate to fail reports a fatal_error.
- If removing a package fails, attempt to the remove cache.
2024-07-08 13:27:58 +10:00
Campbell Barton
bae1d3311f Merge branch 'blender-v4.2-release' 2024-07-08 13:05:49 +10:00
Campbell Barton
ac6e216b26 Merge branch 'blender-v4.2-release' 2024-07-08 13:05:45 +10:00
Campbell Barton
74f8ac15f5 Extensions: "build --split-platform" now includes it's own wheels
The `[build.generated]` section now includes a filtered list of wheels
to simplify checking existing wheels on the server.

Also disallow quotes & control characters in wheel paths because they
already shouldn't be used and doing so would cause escaping issues in
the generated TOML.

Implements #124242.
2024-07-08 12:50:43 +10:00
Campbell Barton
f3630777f6 Extensions: show add-on errors in the add-ons panel
Restore the UI from 4.1. Also correct an error when extensions are
disabled.
2024-07-08 11:36:52 +10:00
Campbell Barton
a515da841b Merge branch 'blender-v4.2-release' 2024-07-07 17:51:42 +10:00
Campbell Barton
5877efbec3 Extensions: add missing checks for errors in IO, JSON & TOML data
Exceptions need be caught and forwarded so they show it in Blender's
interface. While most common errors where accounted for, various IO
errors & malformed JSON/TOML could cause internal operations to fail
with unhandled exceptions.
2024-07-07 17:43:33 +10:00
Campbell Barton
08bf742302 Merge branch 'blender-v4.2-release' 2024-07-06 15:00:43 +10:00
Campbell Barton
11b1919bcf Extensions: resolve popup glitches when dropping URL's
Use UILayout::template_popup_confirm to replace workarounds that didn't
work very well.

- Resolve "Add Repository..." button in the dialog not closing the
  popup when pressed.
- Add a "Cancel" button while the remote resository data is
  downloading.
- Remove the hack to scale the UILayout to hide the existing
  confirm/cancel buttons.

Resolves #124098.
2024-07-06 14:49:41 +10:00
Campbell Barton
8250ac142f Merge branch 'blender-v4.2-release' 2024-07-05 20:49:47 +10:00
Campbell Barton
337abcdfc1 Merge branch 'blender-v4.2-release' 2024-07-05 20:49:45 +10:00
Campbell Barton
a53aad6f73 Extensions: refactor message logging into a class
Pass a logging class between functions instead of a function. Has the
advantage that different kinds of messages are exposed as methods.
2024-07-05 20:46:40 +10:00
Campbell Barton
08b75549e3 Extensions: add a new error type "FATAL_ERROR"
Some errors were reported as warnings because they didn't prevent the
operation from completing (such as failing to remove some paths when
uninstalling).

Change message types for the extensions internal command line program:

- Add "fatal error" to use when an operation fails and exits with a
  non-zero error code.
- Use "error" when an operation fails which doesn't prevent other
  actions from succeeding.
- Use "warn" reporting issues what don't prevent the operation
  from completing but may cause problems.
2024-07-05 20:46:40 +10:00
Campbell Barton
169ad993f5 Merge branch 'blender-v4.2-release' 2024-07-05 16:29:03 +10:00
Campbell Barton
726d9c5b38 Extensions: detect remote repositories when dropping a file
When dropping an extension into Blender, check if the extensions is
part of a remote repository which is then used to set the default
repository.

This makes it more convenient to download larger extensions from
remote repositories using a web-browser & drop them into Blender after,
rather than dropping the URL directly into Blender.
2024-07-05 16:18:52 +10:00
Bastien Montagne
9a13aff4b8 Merge branch 'blender-v4.2-release' 2024-07-04 14:39:58 +02:00
Bastien Montagne
dc8ab86aec Cleanup: make format 2024-07-04 14:39:23 +02:00
Damien Picard
78b9218c98 I18n: Fix translations for Rigify
Rigify was recently added to the core add-ons, and is now
translatable. This change fixes many issues that made messages
poorly or not translatable.

- Replace f-strings and % formatting with str.format().
- Use iface_ and rpt_ to translate formatted strings.
- Rename metarig submenus from "<Category> (submenu)" to simply
  "<Category>" to allow the menu entries and submenus to have the same
  name and be translated. The label was awkward anyway in my opinion.
- Remove trailing "." in operator reports.
2024-07-04 14:35:17 +02:00
Bastien Montagne
b42f2b7634 Merge branch 'blender-v4.2-release' 2024-07-04 11:08:56 +02:00
Damien Picard
6a52c76a65 I18n: Translate messages in extensions, operator descriptions, Node Wrangler
- Operator descriptions use tip_() since they will be displayed in
  tooltips.

- Extension messages:
  - Split "(Add-on|Theme) \"{:s}\" already installed!" into two
    messages.
  - Use rpt_() to translate error messages.

- Restore core add-on name and description translation.

- Use DATA_ to translate paint material slot name, so that translation
  happens only if the user enabled it for user-created data.

- Node Wrangler contains functions used to build operators' poll
  methods. This change allows them to be properly translated by using
  str.format() instead of f-strings, and explicit extraction with
  tip_().

Pull Request: https://projects.blender.org/blender/blender/pulls/123795
2024-07-04 10:49:52 +02:00
Julien Duroure
d8675a3f6a Merge branch 'blender-v4.2-release' 2024-07-04 09:00:46 +02:00
Julien Duroure
8bf4d3c33f glTF exporter: Fix #124072 - avoid crash exporting empty collection at center 2024-07-04 08:57:27 +02:00
Julien Duroure
69390e970f glTF exporter: avoid crash copying props 2024-07-04 08:50:48 +02:00
Julien Duroure
2e03ca4a5b Merge branch 'blender-v4.2-release' 2024-07-04 08:50:26 +02:00
Julien Duroure
0ec32af432 glTF exporter: avoid crash copying props 2024-07-04 08:47:17 +02:00
Campbell Barton
a9763ffabc Merge branch 'blender-v4.2-release' 2024-07-04 12:41:23 +10:00
Campbell Barton
e3457bccbf Extensions: sub-commands "build" & "validate" validate manifest tags
Enforce tags from extensions.blender.org with support for using an
alternate set of tags (for other repositories), or no tag validation
at all if the repositories choose not to enforce this.

- By default building & validating an extensions fails when unknown
  tags are used.

- The option `--valid-tags`` has been added which can either:

  - Reference a JSON file which lists valid tags per extension type.
  - Pass in an empty string to disable tag validation.

Default to constraining packages to use Blender's official tags as every
extension defining their own tags is likely to result in many similar
tags & a bad user experience. Details in code-comments.

Implements #123986.
2024-07-04 11:56:07 +10:00
Campbell Barton
b615091256 Merge branch 'blender-v4.2-release' 2024-07-03 16:57:15 +10:00
Campbell Barton
463c05b341 Extensions: fix missing redraw after setting tags, report adding a repo
- Report when a repository is added since it's not so clear from the
  popup that a new repository has been added.
- Fix for missing redraw after selecting all/none tags.
- Also access the tags property once instead of getting it for each
  button.
2024-07-03 16:56:01 +10:00
Campbell Barton
9da4f557f1 Merge branch 'blender-v4.2-release' 2024-07-03 16:05:49 +10:00
Campbell Barton
e2b24904c9 Extensions: add buttons to select tags
This is for convenience since manually selecting all/none is tedious.
2024-07-03 15:55:20 +10:00
Campbell Barton
9103f9682d Merge branch 'blender-v4.2-release' 2024-07-02 17:06:40 +10:00
Campbell Barton
df6ba6d324 Fix unhandled exception refreshing outdated extensions
Changes the the extension repositories in the preferences while
update notifications were running could raise an exception.

Resolve by only calculating outdated extensions for
repositories that still exist.
2024-07-02 17:04:53 +10:00
Campbell Barton
d97b7f4cd6 Merge branch 'blender-v4.2-release' 2024-07-02 15:23:11 +10:00
Campbell Barton
1322daa480 Extensions: clear search and tags when showing updates
Search and tags could prevent extensions from being displayed.
2024-07-02 15:20:25 +10:00
Campbell Barton
11b32ed48b Merge branch 'blender-v4.2-release' 2024-07-02 15:07:17 +10:00
Campbell Barton
c29d8326e0 UI: sort add-ons by name
Previously add-ons were sorted by category & name, remove the category
only sorting by name since the category is no longer displayed and
isn't part of extension meta-data. Now the add-ons are sorted by name
(case insensitive).

Details:

- Store add-ons modules sorted to avoid having to sort on every redraw.
- addon_utils.modules() now returns an iterator.
2024-07-02 15:06:14 +10:00
Campbell Barton
3b420a5a79 Merge branch 'blender-v4.2-release' 2024-07-02 12:56:02 +10:00
Campbell Barton
33fb83ae74 Fix using network shares for extensions on WIN32
- Support UNC paths.
- Normalize URL's to account for differences between browsers.
2024-07-02 12:53:00 +10:00
Campbell Barton
cabfe94014 Merge branch 'blender-v4.2-release' 2024-07-02 09:30:28 +10:00
Campbell Barton
603b833fe3 Fix error accessing remote extension repositories via file:// on WIN32
Converting the URL back to a path left a slash before the drive letter.
2024-07-02 09:27:59 +10:00
Campbell Barton
fa3bfcf229 Merge branch 'blender-v4.2-release' 2024-07-01 23:34:25 +10:00
Campbell Barton
0255be9b22 Fix invalid repository paths from generated HTML
The "repository" in links from the generated HTML was only valid when
the URL did not contain a path component.
Resolve by supporting relative "repository".

This simplifies referencing the JSON from a generated HTML since
a relative link doesn't need to know the repositories absolute URL
to the destination.
2024-07-01 23:33:09 +10:00
Campbell Barton
c5dcc4f6c4 Merge branch 'blender-v4.2-release' 2024-07-01 23:00:36 +10:00
Campbell Barton
c2326a1639 Fix #123677: Incompatible extensions can be installed from disk 2024-07-01 22:57:38 +10:00
Campbell Barton
483647e1a3 Merge branch 'blender-v4.2-release' 2024-07-01 22:10:47 +10:00
Campbell Barton
7bd846ce0a Fix error including platforms in extensions HTML output 2024-07-01 22:08:34 +10:00