Commit Graph

36 Commits

Author SHA1 Message Date
ff451df8e1 Extensions: improve extensions UI for URL & filepath dropping
- Add cancel button.
- Add repository selector when installing from files.
- Make enabling after installing optional.

Implement design from #118635.
2024-02-23 19:23:20 +11:00
fa81a04fcf Extensions: generate remote repository data from TOML's while locked 2024-02-22 18:47:50 +11:00
42991bad1c Extensions: use blender reports instead of custom reporting panel
The previous reports display can be enabled as a debugging option
since reports flatten errors from different processes which can make
them more difficult to follow.
2024-02-22 18:42:16 +11:00
9fd5dfba59 Extensions: remove unhelpful example commands
These no longer work usefully & can be removed.
2024-02-22 16:54:14 +11:00
cc27a8bc46 Extensions: support removing extensions installed from disk
This was possible to do with add-ons so support it for extensions too.
Otherwise users are forced to navigate to the extension directory
with a file manager and manually remove which is inconvenient.
2024-02-22 16:49:01 +11:00
b13a5c130a Extensions: pass a "User-Agent" when making requests
This is needed to connect to https://extensions.blender.org.
2024-02-22 14:55:47 +11:00
fc82a7e8d5 Extensions: Unify the tooltip for the enable/disable extension
I considered adding a poll_message here, but I will instead hope this gets implemented until
we release Blender 4.2.
2024-02-21 15:39:57 +01:00
992f3dc1aa Extensions: Add poll_message_set to enable extension + better tooltip. 2024-02-21 15:25:32 +01:00
af8541a293 Extensions: fix invalid icon ID, minor cleanups
- Remove unused operator.
- Rename "Repository" to "Local Repository" when installing from disk.
- Make the URL hidden (so the UI can be exposed in the future without
  showing the full URL).
2024-02-21 22:36:58 +11:00
bb01791286 Extensions: add handler for dropping extension URL's 2024-02-21 15:54:41 +11:00
5ba0a9e44e Extensions: correct class name 2024-02-20 18:39:18 +11:00
5540e5ba27 Extensions: show a disabled checkbox for not installed extensions
This is a bit of a hack, but not sure if we have a better way to
implement this at the moment.

The idea is that an installed extension checkbox should look different
than a not installed one, since you cannot enable/disable the latter.

Ref: !25
2024-02-20 09:39:14 +11:00
2787eb1c88 Extensions: use ZIP files instead of XZ for compression
Part of #117286.
2024-02-09 11:06:48 +11:00
1868f1d92a Extensions: improve the method of extracting text from operators
Instead of relying on exceptions, temporarily override the stdout
to capture from & warning reports.

This allows multiple reports to be forwarded and not all reports
need to be errors.
2024-02-06 21:00:22 +11:00
37219bd846 Extensions: fix error upgrading a single active repository
Error in [0] didn't account for the repository cache not being aligned
with the active-only repository list.

[0]: f8a322f47c
2024-02-06 20:23:30 +11:00
f8a322f47c Extensions: implement sync immediately after repository creation
Add the ability to sync & upgrade the active repository.
2024-02-06 18:54:53 +11:00
7e192f6779 Extensions: support dismissing errors that occur while drawing
While errors caused by updating / installing could be dismissed
any errors that occurred while reading repository data for drawing
were always displayed.

Now errors encountered while drawing are displayed in a single
box with the option to dismiss it.

Any changes to the errors will show the errors again.
2024-02-06 12:15:14 +11:00
1488adeb60 Extensions: show checkboxes for all extensions
- Show inactive disabled checkbox for non-installed extensions.
- Show inactive enabled checkbox for installed non-add-ons extensions.
  They cannot be disabled for now, use a place-holder operator.

Part of #117841.
2024-02-06 10:47:54 +11:00
be647aa561 Extensions: add support for installing extensions from local files 2024-02-04 18:05:41 +11:00
aaf82f114a Extensions: rename operator "directory" to "repo_directory"
This is done since installing files will use a "directory" variable.
2024-02-03 15:13:37 +11:00
96f2804b60 Extensions: update based on changes to Blender
The main change here is invalid repositories are now skipped
(similar to repositories that aren't enabled).
2024-02-02 20:52:28 +11:00
e827277bc9 Extensions: correct missing argument in last commit 2024-02-02 10:01:02 +11:00
1c265b9de8 Extensions: remove description, use tagline 2024-02-02 09:58:31 +11:00
abf58db39e Extensions: add additional items to the manifest
- author
- blender_version_min
- license
- schema_version
- tagline
- tags

Also optional fields:

- blender_version_max
- homepage
- copyright
2024-01-31 16:28:12 +11:00
e942176f88 Extensions: remove unused functions 2024-01-31 10:33:50 +11:00
2edd2f5dcc Extensions: rename fields and manifest type
- Key Maps > Keymaps
- Type: addon > add-on
- upgrade > update

Ref: !23
2024-01-31 10:21:16 +11:00
dcb4d7cbba Extensions: correct filtering identifiers 2024-01-30 13:04:24 +11:00
e785fd6982 Extensions: make marking possible with "Show Development Utilities"
With development utilities it can be useful to be able to
"select" extensions to install/uninstall/obsolete.
2024-01-30 11:32:42 +11:00
69b38d5bb4 Extensions: show operator to make packages Obsolete in UI
Add "Show Development Utilities" preference which exposes:

- Make Obsolete (useful for testing upgrade).
- Explicit repository lock/unlock.

This avoids showing utilities for developing the extensions by default.
2024-01-30 11:19:06 +11:00
35c4e08501 Extensions: show any errors scanning for extensions in the UI 2024-01-29 16:22:40 +11:00
2be4432c76 Extensions: support local-only repositories 2024-01-29 15:20:04 +11:00
1e43c51f09 Extensions: fix variable use before defined in "Upgrade All" operation 2024-01-25 16:21:01 +11:00
f549df526a Extensions: avoid reusing an argument name in an iteration 2024-01-25 16:17:14 +11:00
14156363af Extensions: use default directory attribute
Needed so a default default directory will be used when it's unset.
2024-01-24 17:00:34 +11:00
f333598e59 Extensions: create directories when synchronizing
This is needed for default repositories to be initialized for the
first time.
2024-01-24 16:31:05 +11:00
d5ec3dd4c5 Add "Blender Extensions" experimental add-on
This add-on implements installing/upgrading extensions and remains
experimental (depends on extension repositories).

Move to a addons_contrib add-on so users can test more easily.

See #117286.
2024-01-24 13:24:08 +11:00