--- a/BeremizIDE.py Thu Feb 27 09:38:10 2025 +0100
+++ b/BeremizIDE.py Thu Feb 27 14:55:42 2025 +0100
@@ -65,7 +65,7 @@
ITEM_RESOURCE, \
ITEM_CONFNODE
-from ProjectController import ProjectController, GetAddMenuItems, MATIEC_ERROR_MODEL
+from ProjectController import ProjectController, GetAddMenuItems, MATIEC_ERROR_MODEL, ToDoBeforeQuit
from IDEFrame import \
TITLE,\
@@ -614,14 +614,6 @@
else:
return IDEFrame.LoadTab(self, notebook, page_infos)
- # Strange hack required by WAMP connector, using twisted.
- # Twisted reactor needs to be stopped only before quit,
- # since it cannot be restarted
- ToDoBeforeQuit = []
-
- def AddToDoBeforeQuit(self, Thing):
- self.ToDoBeforeQuit.append(Thing)
-
def TryCloseFrame(self):
if self.CTR is None or self.CheckSaveBeforeClosing(_("Close Application")):
if self.CTR is not None:
@@ -631,9 +623,9 @@
self.SaveLastState()
- for Thing in self.ToDoBeforeQuit:
+ for Thing in ToDoBeforeQuit:
Thing()
- self.ToDoBeforeQuit = []
+ ToDoBeforeQuit = []
return True
return False
--- a/CLIController.py Thu Feb 27 09:38:10 2025 +0100
+++ b/CLIController.py Thu Feb 27 14:55:42 2025 +0100
@@ -11,7 +11,7 @@
import fake_wx
-from ProjectController import ProjectController
+from ProjectController import ProjectController, ToDoBeforeQuit
from LocalRuntimeMixin import LocalRuntimeMixin
from runtime.loglevels import LogLevelsCount, LogLevels
@@ -154,9 +154,14 @@
def finish(self):
+ global ToDoBeforeQuit
self._Disconnect()
+ for Thing in ToDoBeforeQuit:
+ Thing()
+ ToDoBeforeQuit = []
+
if not self.session.keep:
self.KillLocalRuntime()
--- a/ProjectController.py Thu Feb 27 09:38:10 2025 +0100
+++ b/ProjectController.py Thu Feb 27 14:55:42 2025 +0100
@@ -2141,3 +2141,10 @@
for d in self.StatusMethods:
if d["method"] == method and d.get("enabled", True) and d.get("shown", True):
getattr(self, method)()
+
+
+# Strange hack required by WAMP connector, using twisted.
+# Twisted reactor needs to be stopped only before quit,
+# since it cannot be restarted
+ToDoBeforeQuit = []
+
--- a/connectors/WAMP/__init__.py Thu Feb 27 09:38:10 2025 +0100
+++ b/connectors/WAMP/__init__.py Thu Feb 27 14:55:42 2025 +0100
@@ -90,12 +90,11 @@
confnodesroot.logger.write(_("WAMP connecting to URL : %s\n") % url)
return conn
- AddToDoBeforeQuit = confnodesroot.AppFrame.AddToDoBeforeQuit
def ThreadProc():
global _WampConnection
_WampConnection = RegisterWampClient()
- AddToDoBeforeQuit(reactor.stop)
+ ToDoBeforeQuit.append(reactor.stop)
reactor.run(installSignalHandlers=False)
class WampPLCObjectProxy(object):