Remove commented attempt at caching search results
We need to store sorted list of ID/names of packages rather than packages themselves, otherwise we miss changes such as "collapsed/expanded"
This commit is contained in:
@@ -405,15 +405,6 @@ class USERPREF_PT_packages(bpy.types.Panel):
|
||||
layout = self.layout
|
||||
wm = context.window_manager
|
||||
|
||||
# try:
|
||||
# wm['package_last_used_filters']
|
||||
# except KeyError:
|
||||
# wm['package_last_used_filters'] = {}
|
||||
# try:
|
||||
# wm['package_displayed_packages']
|
||||
# except KeyError:
|
||||
# wm['package_displayed_packages'] = []
|
||||
|
||||
main = layout.row()
|
||||
spl = main.split(.12)
|
||||
sidebar = spl.column(align=True)
|
||||
@@ -428,14 +419,6 @@ class USERPREF_PT_packages(bpy.types.Panel):
|
||||
spl_r = spl.row()
|
||||
spl_r.prop(wm, "package_install_filter", expand=True)
|
||||
|
||||
#TODO: if filters are only added to, we can filter on existing filtered list rather than redoing whole list
|
||||
# def filters_changed(filters: dict) -> bool:
|
||||
# if filters['search'] != wm['package_last_used_filters'].get('search'):
|
||||
# return True
|
||||
# if filters['category'] != wm['package_last_used_filters'].get('category'):
|
||||
# return True
|
||||
# return False
|
||||
|
||||
def filtered(filters: dict, packages: list) -> list:
|
||||
"""Returns filtered and sorted list of packages which match filters defined in dict"""
|
||||
|
||||
@@ -479,8 +462,6 @@ class USERPREF_PT_packages(bpy.types.Panel):
|
||||
|
||||
return startswith + contains
|
||||
|
||||
|
||||
|
||||
def draw_package(pkg, layout):# {{{
|
||||
"""Draws the given package"""
|
||||
pkgbox = layout.box()
|
||||
@@ -580,19 +561,12 @@ class USERPREF_PT_packages(bpy.types.Panel):
|
||||
center_message(pkgzone, "No repository found. Add one in the addon preferences.")
|
||||
return
|
||||
|
||||
|
||||
filters = {
|
||||
'category': bpy.context.window_manager.addon_filter,
|
||||
'search': bpy.context.window_manager.package_search,
|
||||
}
|
||||
# if filters_changed(filters):
|
||||
# self.log.debug("Re-executing filters")
|
||||
# wm['package_displayed_packages'] = filtered(filters, repo['packages'])
|
||||
filtered_packages = filtered(filters, repo['packages'])
|
||||
|
||||
# for key, item in filters.items():
|
||||
# wm['package_last_used_filters'][key] = item
|
||||
|
||||
for pkg in filtered_packages:
|
||||
row = pkgzone.row()
|
||||
draw_package(pkg, row)
|
||||
@@ -667,8 +641,6 @@ def register():
|
||||
name="Install filter",
|
||||
default='AVAILABLE',
|
||||
)
|
||||
# bpy.types.WindowManager.package_last_used_filters = dict()
|
||||
# bpy.types.WindowManager.package_displayed_packages = []
|
||||
bpy.utils.register_class(PackageManagerPreferences)
|
||||
|
||||
|
||||
@@ -681,6 +653,4 @@ def unregister():
|
||||
bpy.utils.unregister_class(WM_OT_package_toggle_expand)
|
||||
del bpy.types.WindowManager.package_search
|
||||
del bpy.types.WindowManager.package_install_filter
|
||||
# del bpy.types.WindowManager.package_displayed_packages
|
||||
# del bpy.types.WindowManager.package_last_used_filters
|
||||
bpy.utils.unregister_class(PackageManagerPreferences)
|
||||
|
Reference in New Issue
Block a user