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