Blender Git Loki
Git Commits -> Revision 771906b
Revision 771906b by Lukas Toenne (master) August 28, 2013, 06:36 (GMT) |
Fix for #36387, User Preferences "Addons" panel bogs down the whole interface. The addons panel draw function calls addon_utils.modules() which in turn retrieves a list of fake modules from the script paths every time. This can become costly when network paths are included for addons. Solution is to put the scanning process into a dedicated "refresh" function and disable it in frequently called draw and filter functions, i.e. in these cases the cached addons_fake_modules list will be used instead. Note that this may lead to invalid addon lists if script paths are changed (which is not working 100% without restart anyway according to Campbell). For this there is now a "Refresh" operator button in the addons preferences. If necessary and feasible such forced refreshes can be added later too. |
Commit Details:
Full Hash: 771906bc09317e3dc77be2319b44bc59081eff93
SVN Revision: 59588
Parent Commit: f75711d
Lines Changed: +31, -10
5 Modified Paths:
/release/scripts/modules/addon_utils.py (+9, -2) (Diff)
/release/scripts/modules/bl_i18n_utils/utils.py (+1, -1) (Diff)
/release/scripts/startup/bl_operators/wm.py (+17, -4) (Diff)
/release/scripts/startup/bl_ui/space_userpref.py (+3, -2) (Diff)
/release/scripts/startup/bl_ui/__init__.py (+1, -1) (Diff)
/release/scripts/modules/bl_i18n_utils/utils.py (+1, -1) (Diff)
/release/scripts/startup/bl_operators/wm.py (+17, -4) (Diff)
/release/scripts/startup/bl_ui/space_userpref.py (+3, -2) (Diff)
/release/scripts/startup/bl_ui/__init__.py (+1, -1) (Diff)