Fix for #36387, User Preferences "Addons" panel bogs down the whole interface.
authorLukas Toenne <lukas.toenne@googlemail.com>
Wed, 28 Aug 2013 06:36:54 +0000 (06:36 +0000)
committerLukas Toenne <lukas.toenne@googlemail.com>
Wed, 28 Aug 2013 06:36:54 +0000 (06:36 +0000)
commit771906bc09317e3dc77be2319b44bc59081eff93
tree2b6386aa5cdadfd52bc3b036feee3b00b6c87793
parentf75711db7fd3565925880f8a2ea89088334c35bf
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.
release/scripts/modules/addon_utils.py
release/scripts/modules/bl_i18n_utils/utils.py
release/scripts/startup/bl_operators/wm.py
release/scripts/startup/bl_ui/__init__.py
release/scripts/startup/bl_ui/space_userpref.py