Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2015-05-25 15:19:51 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2015-05-25 15:24:49 +0300
commita80c1e50bc7f57bc4d4c41bc51ac92d1d4c39030 (patch)
tree8fe72199e33ab4edf8e966b5e95690819dc766d4 /release/scripts/templates_py
parent39b85e452faae543d10831e4fa66fdffbc22e0a1 (diff)
Fix T44822: python enums' itemf callback did not handle 'NULL' context case.
Enum's itemf callback can be called without context in some cases (UI, doc generation...). Python's enum properties did not handle this at all - it's kind of odd this did not cause more trouble and wasn't notice earlier... Probably dynamic enums using context are not much used in py code. Note about nodes: those are heavy users of dynamic enum with context. Now, we expect `NodeCategory.poll()` and `NodeItem.poll()` to always be called with a valid context (since when there is no context available, we can assume `poll()` is always True). `NodeCategory.items()`, however, must accept NULL context, so if you use custom `items` callable for your custom node categories, you may need to update it (as was done here for builtin `node_group_items()`).
Diffstat (limited to 'release/scripts/templates_py')
-rw-r--r--release/scripts/templates_py/ui_previews_dynamic_enum.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/release/scripts/templates_py/ui_previews_dynamic_enum.py b/release/scripts/templates_py/ui_previews_dynamic_enum.py
index 5269f7fa40b..5169b82992e 100644
--- a/release/scripts/templates_py/ui_previews_dynamic_enum.py
+++ b/release/scripts/templates_py/ui_previews_dynamic_enum.py
@@ -25,9 +25,12 @@ import bpy
def enum_previews_from_directory_items(self, context):
"""EnumProperty callback"""
- wm = context.window_manager
-
enum_items = []
+
+ if context is None:
+ return enum_items
+
+ wm = context.window_manager
directory = wm.my_previews_dir
# Get the preview collection (defined in register func).