John Fabiani found the cause of an endless loop. It was being caused by a
self.update statement in a dynamicDisplayPage method on a page frame. The
self.update in our method is necessary to refresh the page properly. The
loop starts because the dymnamic calls the update which calls the dynamic,
etc.
I updated the code in the dPermixin as shown below to set a flag so that the
routine only gets called once, and would ask you to consider incorporating
it into the trunk. Note: As a side benefit, the screen refresh seems to be
much quicker.
Thanks,
Larry Long
#LAL
isupdating=False
def update(self):
#LAL
if self.isupdating:
return
"""Update the properties of this object and all contained
objects."""
if isinstance(self, dabo.ui.deadObject):
# This can happen if an object is released when
there is a
# pending callAfter() refresh.
#LAL
self.isupdating=False
return
#LAL
self.isupdating=True
if isinstance(self, dabo.ui.dForm) and
self.AutoUpdateStatusText:
self.setStatusText(self.getCurrentRecordText())
if self.Children:
self.raiseEvent(dEvents.Update)
#LAL
#dabo.ui.callAfter(self.__updateDynamicProps)
dabo.ui.callAfter(self.updateDynProps)
#LAL
def updateDynProps(self):
self.__updateDynamicProps()
self.isupdating=False
def __updateDynamicProps(self):
...
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/[EMAIL PROTECTED]