Repository filtering
This commit is contained in:
@@ -616,6 +616,13 @@ else:
|
||||
return True
|
||||
return False
|
||||
|
||||
def match_repositories(metapkg) -> bool:
|
||||
pkg = metapkg.get_display_version()
|
||||
for repo in pkg.repositories:
|
||||
if repo.name in filters['repository']:
|
||||
return True
|
||||
return False
|
||||
|
||||
def match_category(blinfo) -> bool:
|
||||
if filters['category'].lower() == 'all':
|
||||
return True
|
||||
@@ -632,7 +639,8 @@ else:
|
||||
|
||||
for pkgname, metapkg in packages.items():
|
||||
blinfo = metapkg.versions[0].bl_info
|
||||
if match_category(blinfo)\
|
||||
if match_repositories(metapkg)\
|
||||
and match_category(blinfo)\
|
||||
and match_support(blinfo)\
|
||||
and match_installstate(metapkg):
|
||||
if len(filters['search']) == 0:
|
||||
@@ -864,6 +872,7 @@ else:
|
||||
'category': wm.addon_filter,
|
||||
'search': wm.package_search,
|
||||
'support': wm.addon_support,
|
||||
'repository': set([repo.name for repo in wm.package_repositories if repo.enabled]),
|
||||
'installstate': wm.package_install_filter,
|
||||
}
|
||||
USERPREF_PT_packages.displayed_packages = filtered_packages(filters, _packages)
|
||||
@@ -1023,12 +1032,16 @@ else:
|
||||
|
||||
_packages = build_packagelist()
|
||||
|
||||
# load repositories from disk
|
||||
repos = get_repositories()
|
||||
wm = bpy.context.window_manager
|
||||
wm.package_repositories.clear()
|
||||
|
||||
#TODO: store repository props in .blend so enabled/disabled state can be remembered
|
||||
for repo in repos:
|
||||
repo_prop = wm.package_repositories.add()
|
||||
repo_prop.name = repo.name
|
||||
repo_prop.enabled = True
|
||||
repo_prop.url = repo.url
|
||||
|
||||
# needed for lazy loading
|
||||
|
Reference in New Issue
Block a user