--- 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):