// Called before a plot to connect to the terminal window, if needed void qt_connectToServer() { if (!qt_initialized) return; // Determine to which server we should connect bool connectToWidget = !qt_optionWidget.isEmpty(); QString server = connectToWidget ? qt_optionWidget : qt_localServerName; if (qt_socket.state() == QLocalSocket::ConnectedState) { // Check if we are already connected to the correct server if (qt_socket.serverName() == server) return; // Otherwise disconnect qt_socket.disconnectFromServer(); while (qt_socket.state() == QLocalSocket::ConnectedState) qt_socket.waitForDisconnected(1000); } // Start the gnuplot_qt helper program if not already started if (!connectToWidget && !qt_gnuplot_qtStarted) execGnuplotQt(); // Connect to the server, or local server if not available. qt_connectToServer(server); }
void qt_connectToServer() { if (!qt_initialized) return; // Determine to which server we should connect QString server = qt_localServerName; if (!qt_optionWidget.isEmpty()) server = qt_optionWidget; // Check if we are already connected if (qt_socket.serverName() == server) return; // Disconnect if (qt_socket.state() == QLocalSocket::ConnectedState) { qt_socket.disconnectFromServer(); qt_socket.waitForDisconnected(1000); } // Connect to server, or local server if not available. qt_socket.connectToServer(server); if (!qt_socket.waitForConnected(3000)) while (qt_socket.state() != QLocalSocket::ConnectedState) qt_socket.connectToServer(qt_localServerName); }