diff --git a/scripts/modules/addon_utils.py b/scripts/modules/addon_utils.py index 9f9d0326b5b..82812875640 100644 --- a/scripts/modules/addon_utils.py +++ b/scripts/modules/addon_utils.py @@ -32,6 +32,8 @@ def _initialize_once(): for addon in _preferences.addons: enable(addon.module) + _initialize_ensure_extensions_addon() + def paths(): return [ @@ -606,6 +608,13 @@ def module_bl_info(mod, *, info_basis=None): # ----------------------------------------------------------------------------- # Extensions +def _initialize_ensure_extensions_addon(): + if _preferences.experimental.use_extension_repos: + module_name = "bl_pkg" + if module_name not in _preferences.addons: + enable(module_name, default_set=True, persistent=True) + + # Module-like class, store singletons. class _ext_global: __slots__ = () @@ -805,6 +814,10 @@ def _initialize_extension_repos_pre(*_): @_bpy.app.handlers.persistent def _initialize_extension_repos_post(*_, is_first=False): + + # When enabling extensions for the first time, ensure the add-on is enabled. + _initialize_ensure_extensions_addon() + do_addons = not is_first # Map `module_id` -> `dirpath`. diff --git a/scripts/startup/bl_ui/space_userpref.py b/scripts/startup/bl_ui/space_userpref.py index 8543d132528..6a2b6364890 100644 --- a/scripts/startup/bl_ui/space_userpref.py +++ b/scripts/startup/bl_ui/space_userpref.py @@ -2021,10 +2021,9 @@ class USERPREF_PT_extensions(ExtensionsPanel, Panel): layout = self.layout row = layout.row() - row.label(text="The add-on to use extensions is disabled! See:") - row.operator( - "wm.url_open", text="Extension Add-on Repository", icon='URL', - ).url = "https://projects.blender.org/ideasman42/bl_ext" + row.label(text="The add-on to use extensions is disabled!") + row = layout.row() + row.label(text="Enable \"Blender Extensions\" add-on in Testing to use extensions.") class USERPREF_PT_extensions_repos(ExtensionsPanel, Panel):