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

Reply via email to