Fix failure to store installation state, store repositories in a set
This commit is contained in:
@@ -328,7 +328,12 @@ class PACKAGE_OT_uninstall(SubprocMixin, bpy.types.Operator):
|
||||
def get_installed_packages(refresh=False) -> list:
|
||||
"""Get list of packages installed on disk"""
|
||||
import addon_utils
|
||||
return [Package.from_module(mod) for mod in addon_utils.modules(refresh=refresh)]
|
||||
installed_pkgs = []
|
||||
for mod in addon_utils.modules(refresh=refresh):
|
||||
pkg = Package.from_module(mod)
|
||||
pkg.installed = True
|
||||
installed_pkgs.append(pkg)
|
||||
return installed_pkgs
|
||||
|
||||
def get_repo_storage_path() -> Path:
|
||||
return Path(bpy.utils.user_resource('CONFIG', 'repositories'))
|
||||
@@ -805,6 +810,22 @@ class USERPREF_PT_packages(bpy.types.Panel):
|
||||
else:
|
||||
collapsed(metapkg, row)# }}}
|
||||
|
||||
# addon_preferences = userpref.addons[module_name].preferences
|
||||
# if addon_preferences is not None:
|
||||
# draw = getattr(addon_preferences, "draw", None)
|
||||
# if draw is not None:
|
||||
# addon_preferences_class = type(addon_preferences)
|
||||
# box_prefs = col_box.box()
|
||||
# box_prefs.label("Preferences:")
|
||||
# addon_preferences_class.layout = box_prefs
|
||||
# try:
|
||||
# draw(context)
|
||||
# except:
|
||||
# import traceback
|
||||
# traceback.print_exc()
|
||||
# box_prefs.label(text="Error (see console)", icon='ERROR')
|
||||
# del addon_preferences_class.layout
|
||||
#
|
||||
|
||||
def center_message(layout, msg: str):
|
||||
"""draw a label in the center of an extra-tall row"""
|
||||
@@ -946,6 +967,7 @@ def build_packagelist() -> OrderedDict:# {{{
|
||||
|
||||
for repo in known_repositories:
|
||||
for pkg in repo.packages:
|
||||
pkg.repositories.add(repo)
|
||||
if pkg.name is None:
|
||||
return OrderedDict()
|
||||
if pkg.name in masterlist:
|
||||
|
@@ -16,7 +16,7 @@ class Package:
|
||||
self.url = ""
|
||||
self.files = []
|
||||
|
||||
self.repositories = []
|
||||
self.repositories = set()
|
||||
self.installed_location = None
|
||||
self.module_name = None
|
||||
|
||||
@@ -288,7 +288,7 @@ class ConsolidatedPackage:
|
||||
|
||||
for pkg in self:
|
||||
if pkg == newpkg:
|
||||
pkg.repositories
|
||||
pkg.repositories.union(newpkg.repositories)
|
||||
if newpkg.installed:
|
||||
pkg.set_installed_metadata(newpkg)
|
||||
break
|
||||
|
Reference in New Issue
Block a user