[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33429] trunk/blender/release/scripts/ modules/extensions_framework/ui.py: extensions_framework: fix bug that would create extra UI space when entire row is hidden.
Doug Hammond
doughammond at hamsterfight.co.uk
Thu Dec 2 20:03:25 CET 2010
Revision: 33429
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33429
Author: dougal2
Date: 2010-12-02 20:03:24 +0100 (Thu, 02 Dec 2010)
Log Message:
-----------
extensions_framework: fix bug that would create extra UI space when entire row is hidden. May not be the most efficient implementation, however it is working properly now.
Modified Paths:
--------------
trunk/blender/release/scripts/modules/extensions_framework/ui.py
Modified: trunk/blender/release/scripts/modules/extensions_framework/ui.py
===================================================================
--- trunk/blender/release/scripts/modules/extensions_framework/ui.py 2010-12-02 18:27:04 UTC (rev 33428)
+++ trunk/blender/release/scripts/modules/extensions_framework/ui.py 2010-12-02 19:03:24 UTC (rev 33429)
@@ -90,14 +90,6 @@
property_group=property_group)
property_group.draw_callback(context)
- @staticmethod
- def property_reload():
- """Override this in sub classes to force data refresh upon scene reload
-
- TODO: Remove, this is not used anywhere
- """
- pass
-
def check_visibility(self, lookup_property, property_group):
"""Determine if the lookup_property should be drawn in the Panel"""
vt = Visibility(property_group)
@@ -110,32 +102,48 @@
property_group.visibility[lookup_property])
else:
return True
-
+
+ # tab_level = 0
+
+ def is_real_property(self, lookup_property, property_group):
+ for prop in property_group.properties:
+ if prop['attr'] == lookup_property:
+ return prop['type'] not in ['text', 'prop_search']
+
+ return False
+
def draw_column(self, control_list_item, layout, context,
supercontext=None, property_group=None):
+ # self.tab_level += 1
"""Draw a column's worth of UI controls in this Panel"""
if type(control_list_item) is list:
draw_row = False
found_percent = None
+ # print('\t'*self.tab_level, '--', property_group, '--')
for sp in control_list_item:
+ # print('\t'*self.tab_level, sp)
if type(sp) is float:
found_percent = sp
elif type(sp) is list:
- for ssp in sp:
+ for ssp in [s for s in sp if self.is_real_property(s, property_group)]:
draw_row = draw_row or self.check_visibility(ssp,
property_group)
+ # print('\t'*self.tab_level, 'List: ', draw_row)
else:
draw_row = draw_row or self.check_visibility(sp,
property_group)
+ # print('\t'*self.tab_level, 'Single: ', draw_row)
+ # print('\t'*self.tab_level, '-->', draw_row)
+ # print('\t'*self.tab_level, '--', property_group, '--')
- if draw_row:
+ next_items = [s for s in control_list_item if type(s) in [str, list]]
+ if draw_row and len(next_items) > 0:
if found_percent is not None:
splt = layout.split(percentage=found_percent)
else:
splt = layout.row(True)
- for sp in [s for s in control_list_item if type(s) in \
- [str, list]]:
+ for sp in next_items:
col2 = splt.column()
self.draw_column(sp, col2, context, supercontext,
property_group)
@@ -242,3 +250,4 @@
current_property['draw'](supercontext, context)
break
+ # self.tab_level -= 1
More information about the Bf-blender-cvs
mailing list