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:
Diffstat (limited to 'release/scripts/modules/rna_prop_ui.py')
-rw-r--r--release/scripts/modules/rna_prop_ui.py36
1 files changed, 32 insertions, 4 deletions
diff --git a/release/scripts/modules/rna_prop_ui.py b/release/scripts/modules/rna_prop_ui.py
index cbe0b668e77..9311987e2e7 100644
--- a/release/scripts/modules/rna_prop_ui.py
+++ b/release/scripts/modules/rna_prop_ui.py
@@ -58,7 +58,24 @@ def rna_idprop_ui_prop_clear(item, prop):
pass
-def draw(layout, context, context_member, use_edit=True):
+def rna_idprop_context_value(context, context_member, property_type):
+ space = context.space_data
+
+ if space is None or isinstance(space, bpy.types.SpaceProperties):
+ pin_id = space.pin_id
+ else:
+ pin_id = None
+
+ if pin_id and isinstance(pin_id, property_type):
+ rna_item = pin_id
+ context_member = "space_data.pin_id"
+ else:
+ rna_item = eval("context." + context_member)
+
+ return rna_item, context_member
+
+
+def draw(layout, context, context_member, property_type, use_edit=True):
def assign_props(prop, val, key):
prop.data_path = context_member
@@ -69,12 +86,14 @@ def draw(layout, context, context_member, use_edit=True):
except:
pass
- rna_item = eval("context." + context_member)
+ rna_item, context_member = rna_idprop_context_value(context, context_member, property_type)
# poll should really get this...
if not rna_item:
return
+ assert(isinstance(rna_item, property_type))
+
items = rna_item.items()
items.sort()
@@ -139,7 +158,16 @@ class PropertyPanel():
@classmethod
def poll(cls, context):
- return bool(eval("context.%s" % cls._context_path))
+ rna_item, context_member = rna_idprop_context_value(context, cls._context_path, cls._property_type)
+ return bool(rna_item)
+
+ """
+ def draw_header(self, context):
+ rna_item, context_member = rna_idprop_context_value(context, self._context_path, self._property_type)
+ tot = len(rna_item.keys())
+ if tot:
+ self.layout().label("%d:" % tot)
+ """
def draw(self, context):
- draw(self.layout, context, self._context_path)
+ draw(self.layout, context, self._context_path, self._property_type)