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:
Ellwood Zwovic
2017-07-18 17:32:03 -07:00
parent 19c1f3a8ac
commit 816c27f499

View File

@@ -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)