dabo Commit
Revision 2572
Date: 2006-12-21 07:39:50 -0800 (Thu, 21 Dec 2006)
Author: Ed
Changed:
U trunk/dabo/lib/propertyHelperMixin.py
Log:
Changed the delayed setter logic to permit more than one delayed property. I
was running into situations with the dImage class where the Picture was not
being set properly when specified in the attProperties. This fixes that, and
allows for other delayed props to be added easily.
Diff:
Modified: trunk/dabo/lib/propertyHelperMixin.py
===================================================================
--- trunk/dabo/lib/propertyHelperMixin.py 2006-12-21 13:15:08 UTC (rev
2571)
+++ trunk/dabo/lib/propertyHelperMixin.py 2006-12-21 15:39:50 UTC (rev
2572)
@@ -163,15 +163,15 @@
self.setProperties({"FontBold": True}, ForeColor="Red")
"""
def _setProps(_propDict):
- delayedSetter, delayedValue = None, None
+ delayedSettings = {}
for prop in _propDict.keys():
propRef = eval("self.__class__.%s" % prop)
if type(propRef) == property:
setter = propRef.fset
if setter is not None:
- if prop == "Value":
+ if prop in ("Value", "Picture"):
# We need to delay
setting this to last
- delayedSetter,
delayedValue = setter, _propDict[prop]
+ delayedSettings[setter]
= _propDict[prop]
else:
setter(self,
_propDict[prop])
else:
@@ -179,8 +179,9 @@
raise ValueError,
"Property '%s' is read-only." % prop
else:
raise AttributeError, "'%s' is not a
property." % prop
- if delayedSetter is not None:
- delayedSetter(self, delayedValue)
+ if delayedSettings is not None:
+ for setter, val in delayedSettings.items():
+ setter(self, val)
# Set the props specified in the passed propDict dictionary:
_setProps(propDict)
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev