--- a/graphics/GraphicCommons.py Wed Sep 02 18:21:46 2009 +0200
+++ b/graphics/GraphicCommons.py Tue Sep 15 14:59:33 2009 +0200
@@ -211,8 +211,9 @@
class DebugViewer:
def __init__(self, producer, debug, register_tick=True):
- self.DataProducer = producer
+ self.DataProducer = None
self.Debug = debug
+ self.RegisterTick = register_tick
self.Inhibited = False
self.DataConsumers = {}
@@ -222,15 +223,24 @@
self.RefreshTimer = wx.Timer(self, -1)
self.Bind(wx.EVT_TIMER, self.OnRefreshTimer, self.RefreshTimer)
- if register_tick and debug:
- self.DataProducer.SubscribeDebugIECVariable("__tick__", self)
+ self.SetDataProducer(producer)
def __del__(self):
- if self.Debug:
- self.DataProducer.UnsubscribeDebugIECVariable("__tick__", self)
+ self.DataProducer = None
self.DeleteDataConsumers()
self.RefreshTimer.Stop()
-
+
+ def SetDataProducer(self, producer):
+ if self.RegisterTick and self.Debug:
+ if producer is not None:
+ producer.SubscribeDebugIECVariable("__tick__", self)
+ elif self.DataProducer is not None:
+ self.DataProducer.UnsubscribeDebugIECVariable("__tick__", self)
+ self.DataProducer = producer
+
+ def IsDebugging(self):
+ return self.Debug
+
def Inhibit(self, inhibit):
self.Inhibited = inhibit
for consumer, iec_path in self.DataConsumers.iteritems():