127 self.IfacesMonitorState = None |
127 self.IfacesMonitorState = None |
128 self.IfacesMonitorTimer = wx.Timer(self) |
128 self.IfacesMonitorTimer = wx.Timer(self) |
129 self.IfacesMonitorTimer.Start(2000) |
129 self.IfacesMonitorTimer.Start(2000) |
130 self.Bind(wx.EVT_TIMER, self.IfacesMonitor, self.IfacesMonitorTimer) |
130 self.Bind(wx.EVT_TIMER, self.IfacesMonitor, self.IfacesMonitorTimer) |
131 |
131 |
|
132 def _cleanup(self): |
|
133 if self.IfacesMonitorTimer is not None: |
|
134 self.IfacesMonitorTimer.Stop() |
|
135 self.IfacesMonitorTimer = None |
|
136 if self.Browser is not None: |
|
137 self.Browser.cancel() |
|
138 self.Browser = None |
|
139 if self.ZeroConfInstance is not None: |
|
140 self.ZeroConfInstance.close() |
|
141 self.ZeroConfInstance = None |
|
142 |
132 def __del__(self): |
143 def __del__(self): |
133 self.IfacesMonitorTimer.Stop() |
144 self._cleanup() |
134 self.Browser.cancel() |
145 |
135 self.ZeroConfInstance.close() |
146 def Destroy(self): |
|
147 self._cleanup() |
|
148 wx.Panel.Destroy(self) |
136 |
149 |
137 def IfacesMonitor(self, event): |
150 def IfacesMonitor(self, event): |
138 NewState = get_all_addresses(socket.AF_INET) |
151 NewState = get_all_addresses(socket.AF_INET) |
139 |
152 |
140 if self.IfacesMonitorState != NewState: |
153 if self.IfacesMonitorState != NewState: |