# HG changeset patch
# User Edouard Tisserant
# Date 1362533455 -32400
# Node ID 046aeae0d71c3ca0fb544b863f229e309d1cdae1
# Parent  511bf048b8b72421da834c09412b684aa0dc12c5
Python shell and wx inspector now both available even when PLC not started

diff -r 511bf048b8b7 -r 046aeae0d71c Beremiz_service.py
--- a/Beremiz_service.py	Wed Mar 06 09:40:28 2013 +0900
+++ b/Beremiz_service.py	Wed Mar 06 10:30:55 2013 +0900
@@ -389,28 +389,27 @@
                     self.pyroserver.Restart()
                 evt.Skip()
             
+            def _LiveShellLocals(self):
+                if self.pyroserver.plcobj is not None:
+                    return {"locals":self.pyroserver.plcobj.python_threads_vars}
+                else:
+                    return {}
+
             def OnTaskBarLiveShell(self, evt):
-                if self.pyroserver.plcobj is not None and self.pyroserver.plcobj.python_threads_vars is not None:
-                    from wx import py
-                    #frame = py.shell.ShellFrame(locals=self.pyroserver.plcobj.python_threads_vars)
-                    frame = py.crust.CrustFrame(locals=self.pyroserver.plcobj.python_threads_vars)
-                    frame.Show()
-                else:
-                    wx.MessageBox(_("No running PLC"), _("Error"))
+                from wx import py
+                frame = py.crust.CrustFrame(**self._LiveShellLocals())
+                frame.Show()
                 evt.Skip()
             
             def OnTaskBarWXInspector(self, evt):
                 # Activate the widget inspection tool
                 from wx.lib.inspection import InspectionTool
                 if not InspectionTool().initialized:
-                    InspectionTool().Init(locals=self.pyroserver.plcobj.python_threads_vars)
-                
-                # Find a widget to be selected in the tree.  Use either the
-                # one under the cursor, if any, or this frame.
-                wnd = wx.FindWindowAtPointer()
-                if not wnd:
-                    wnd = wx.GetApp()
+                    InspectionTool().Init(**self._LiveShellLocals())
+
+                wnd = wx.GetApp()
                 InspectionTool().Show(wnd, True)
+
                 evt.Skip()
             
             def OnTaskBarQuit(self, evt):