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
|
layout = self.layout
|
||||||
wm = context.window_manager
|
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()
|
main = layout.row()
|
||||||
spl = main.split(.12)
|
spl = main.split(.12)
|
||||||
sidebar = spl.column(align=True)
|
sidebar = spl.column(align=True)
|
||||||
@@ -428,14 +419,6 @@ class USERPREF_PT_packages(bpy.types.Panel):
|
|||||||
spl_r = spl.row()
|
spl_r = spl.row()
|
||||||
spl_r.prop(wm, "package_install_filter", expand=True)
|
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:
|
def filtered(filters: dict, packages: list) -> list:
|
||||||
"""Returns filtered and sorted list of packages which match filters defined in dict"""
|
"""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
|
return startswith + contains
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def draw_package(pkg, layout):# {{{
|
def draw_package(pkg, layout):# {{{
|
||||||
"""Draws the given package"""
|
"""Draws the given package"""
|
||||||
pkgbox = layout.box()
|
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.")
|
center_message(pkgzone, "No repository found. Add one in the addon preferences.")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
filters = {
|
filters = {
|
||||||
'category': bpy.context.window_manager.addon_filter,
|
'category': bpy.context.window_manager.addon_filter,
|
||||||
'search': bpy.context.window_manager.package_search,
|
'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'])
|
filtered_packages = filtered(filters, repo['packages'])
|
||||||
|
|
||||||
# for key, item in filters.items():
|
|
||||||
# wm['package_last_used_filters'][key] = item
|
|
||||||
|
|
||||||
for pkg in filtered_packages:
|
for pkg in filtered_packages:
|
||||||
row = pkgzone.row()
|
row = pkgzone.row()
|
||||||
draw_package(pkg, row)
|
draw_package(pkg, row)
|
||||||
@@ -667,8 +641,6 @@ def register():
|
|||||||
name="Install filter",
|
name="Install filter",
|
||||||
default='AVAILABLE',
|
default='AVAILABLE',
|
||||||
)
|
)
|
||||||
# bpy.types.WindowManager.package_last_used_filters = dict()
|
|
||||||
# bpy.types.WindowManager.package_displayed_packages = []
|
|
||||||
bpy.utils.register_class(PackageManagerPreferences)
|
bpy.utils.register_class(PackageManagerPreferences)
|
||||||
|
|
||||||
|
|
||||||
@@ -681,6 +653,4 @@ def unregister():
|
|||||||
bpy.utils.unregister_class(WM_OT_package_toggle_expand)
|
bpy.utils.unregister_class(WM_OT_package_toggle_expand)
|
||||||
del bpy.types.WindowManager.package_search
|
del bpy.types.WindowManager.package_search
|
||||||
del bpy.types.WindowManager.package_install_filter
|
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)
|
bpy.utils.unregister_class(PackageManagerPreferences)
|
||||||
|
Reference in New Issue
Block a user