From: Daniel J S. <dan...@ie...> - 2014-02-23 03:46:29
|
On 02/22/2014 11:45 AM, Jérôme Lodewyck wrote: > I think it is fine to create the process as non-detached. We should just make > sure a new process is started (and without leaking memory) if the previous one > is killed. Oh yeah; gnuplot_qt could stop somehow. I'll watch for that. > Also, for the -persist option to work, the process should not be > deleted at exit. OK, good. I'll try to figure out how to change a QProcess to persistent. Thanks, Dan > > Jérôme > > Le samedi 22 février 2014 10:55:39 Daniel J Sebald a écrit : >> It's fairly simple, really. But first, I'd like to ask if it is alright >> to create the process not as detached, but just a normal process. Is >> that OK? If that is done, then after starting the QProcess that will >> create the local server, just wait for the process to write back the >> server's name and continue onward. By writing the local server name to >> standard output (fprint/fflush) when everything is set up and ready to >> go, the first time that qt_term attempts to connect to the local server >> will be a success. >> >> >> IN QT_TERM.CPP: >> >> if (!qtgnuplotProcess) >> qtgnuplotProcess = new QProcess(); >> qtgnuplotProcess->start(filename, QStringList()); >> if (qtgnuplotProcess->waitForStarted()) >> { >> qtgnuplotProcess->waitForReadyRead(); >> localServerName = qtgnuplotProcess->readAllStandardOutput(); >> qDebug()<< localServerName; >> } >> else >> { >> qDebug()<< "QProcess starting failed:"<< >> qtgnuplotProcess->errorString(); >> } >> >> >> IN QTGNUPLOTAPPLICATION.CPP: >> >> QtGnuplotApplication::QtGnuplotApplication(int& argc, char** argv) >> >> : QApplication(argc, argv) >> >> { >> ... >> connect(m_eventHandler, SIGNAL(disconnected()), this, >> SLOT(enterPersistMode())); >> >> fprintf(stdout, sName.toLocal8Bit().data()); >> fflush(stdout); >> } >> >> Dan > > -- Dan Sebald email: daniel(DOT)sebald(AT)ieee(DOT)org URL: http://www(DOT)dansebald(DOT)com |