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:
|
def get_installed_packages(refresh=False) -> list:
|
||||||
"""Get list of packages installed on disk"""
|
"""Get list of packages installed on disk"""
|
||||||
import addon_utils
|
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:
|
def get_repo_storage_path() -> Path:
|
||||||
return Path(bpy.utils.user_resource('CONFIG', 'repositories'))
|
return Path(bpy.utils.user_resource('CONFIG', 'repositories'))
|
||||||
@@ -805,6 +810,22 @@ class USERPREF_PT_packages(bpy.types.Panel):
|
|||||||
else:
|
else:
|
||||||
collapsed(metapkg, row)# }}}
|
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):
|
def center_message(layout, msg: str):
|
||||||
"""draw a label in the center of an extra-tall row"""
|
"""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 repo in known_repositories:
|
||||||
for pkg in repo.packages:
|
for pkg in repo.packages:
|
||||||
|
pkg.repositories.add(repo)
|
||||||
if pkg.name is None:
|
if pkg.name is None:
|
||||||
return OrderedDict()
|
return OrderedDict()
|
||||||
if pkg.name in masterlist:
|
if pkg.name in masterlist:
|
||||||
|
@@ -16,7 +16,7 @@ class Package:
|
|||||||
self.url = ""
|
self.url = ""
|
||||||
self.files = []
|
self.files = []
|
||||||
|
|
||||||
self.repositories = []
|
self.repositories = set()
|
||||||
self.installed_location = None
|
self.installed_location = None
|
||||||
self.module_name = None
|
self.module_name = None
|
||||||
|
|
||||||
@@ -288,7 +288,7 @@ class ConsolidatedPackage:
|
|||||||
|
|
||||||
for pkg in self:
|
for pkg in self:
|
||||||
if pkg == newpkg:
|
if pkg == newpkg:
|
||||||
pkg.repositories
|
pkg.repositories.union(newpkg.repositories)
|
||||||
if newpkg.installed:
|
if newpkg.installed:
|
||||||
pkg.set_installed_metadata(newpkg)
|
pkg.set_installed_metadata(newpkg)
|
||||||
break
|
break
|
||||||
|
Reference in New Issue
Block a user