src/eric7/RemoteServerInterface/EricServerInterface.py

branch
server
changeset 10568
399d81a784a4
parent 10567
b098e0d028cc
child 10574
622e59b51640
--- a/src/eric7/RemoteServerInterface/EricServerInterface.py	Tue Feb 13 11:17:38 2024 +0100
+++ b/src/eric7/RemoteServerInterface/EricServerInterface.py	Tue Feb 13 19:22:06 2024 +0100
@@ -87,6 +87,7 @@
         self.__connection = None
         self.__callbacks = {}  # callback references indexed by UUID
         self.__messageQueue = collections.deque()
+        self.__connected = False
 
         self.connectionStateChanged.connect(self.__connectionStateChanged)
 
@@ -660,30 +661,33 @@
         @param connected flag indicating the connection state
         @type bool
         """
-        self.connectServerAct.setEnabled(not connected)
-        self.disconnectServerAct.setEnabled(connected)
-        self.stopServerAct.setEnabled(connected)
-        self.serverVersionsAct.setEnabled(connected)
+        if connected != self.__connected:  # prevent executing it twice in succession
+            self.__connected = connected
+
+            self.connectServerAct.setEnabled(not connected)
+            self.disconnectServerAct.setEnabled(connected)
+            self.stopServerAct.setEnabled(connected)
+            self.serverVersionsAct.setEnabled(connected)
 
-        if connected:
-            peerName = self.__connection.peerName()
-            EricMessageBox.information(
-                None,
-                self.tr("Connect to eric-ide Server"),
-                self.tr(
-                    "<p>The eric-ide server at <b>{0}:{1}</b> was connected"
-                    " successfully.</p>"
-                ).format(
-                    f"[{peerName}]" if ":" in peerName else peerName,
-                    self.__connection.peerPort(),
-                ),
-            )
-        else:
-            EricMessageBox.information(
-                None,
-                self.tr("Disonnect from eric-ide Server"),
-                self.tr("""The eric-ide server was disconnected."""),
-            )
+            if connected:
+                peerName = self.__connection.peerName()
+                EricMessageBox.information(
+                    None,
+                    self.tr("Connect to eric-ide Server"),
+                    self.tr(
+                        "<p>The eric-ide server at <b>{0}:{1}</b> was connected"
+                        " successfully.</p>"
+                    ).format(
+                        f"[{peerName}]" if ":" in peerName else peerName,
+                        self.__connection.peerPort(),
+                    ),
+                )
+            else:
+                EricMessageBox.information(
+                    None,
+                    self.tr("Disonnect from eric-ide Server"),
+                    self.tr("""The eric-ide server was disconnected."""),
+                )
 
     @pyqtSlot()
     def __connectToServer(self):

eric ide

mercurial