start musrview as detached process: simplifies things.
This commit is contained in:
@ -2555,9 +2555,7 @@ void PTextEdit::musrView()
|
||||
if (fAdmin->getMusrviewShowOneToOneFlag())
|
||||
arg << "-1";
|
||||
|
||||
QProcess *proc = new QProcess(this);
|
||||
connect(proc, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(musrViewFinished(int, QProcess::ExitStatus)));
|
||||
|
||||
QProcess proc;
|
||||
// make sure that the system environment variables are properly set
|
||||
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||
#if defined(Q_OS_DARWIN)
|
||||
@ -2565,34 +2563,15 @@ void PTextEdit::musrView()
|
||||
#else
|
||||
env.insert("LD_LIBRARY_PATH", env.value("ROOTSYS") + "/lib:" + env.value("LD_LIBRARY_PATH"));
|
||||
#endif
|
||||
proc->setProcessEnvironment(env);
|
||||
proc->setWorkingDirectory(workDir);
|
||||
proc->start(cmd, arg);
|
||||
if (!proc->waitForStarted()) {
|
||||
// error handling
|
||||
QString msg(tr("Could not execute the output command: ")+cmd[0]);
|
||||
QMessageBox::critical( nullptr,
|
||||
tr("Fatal error"),
|
||||
msg,
|
||||
tr("Quit") );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
* <p>Checks if musrview terminated with error, and if yes pop up a message box.
|
||||
* @param exitCode
|
||||
*/
|
||||
void PTextEdit::musrViewFinished(int exitCode, QProcess::ExitStatus)
|
||||
{
|
||||
if (exitCode != 0) {
|
||||
proc.setProgram(cmd);
|
||||
proc.setProcessEnvironment(env);
|
||||
if (!proc.startDetached(cmd, arg, workDir)) {
|
||||
QString msg = QString("musrview failed. Possible reasons:\n");
|
||||
msg += QString("* corrupted msr-file.\n");
|
||||
msg += QString("* cannot read data-file.\n");
|
||||
msg += QString("* many more things can go wrong.\n");
|
||||
msg += QString("Please check!");
|
||||
QMessageBox::critical(nullptr, tr("Fatal Error"), msg, tr("Quit"));
|
||||
QMessageBox::critical(nullptr, tr("FATAL ERROR"), msg, QMessageBox::Close);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -140,7 +140,6 @@ private slots:
|
||||
void musrFit();
|
||||
void musrMsr2Data();
|
||||
void musrView();
|
||||
void musrViewFinished(int, QProcess::ExitStatus);
|
||||
void musrT0();
|
||||
void musrFT();
|
||||
void musrPrefs();
|
||||
|
@ -2555,9 +2555,7 @@ void PTextEdit::musrView()
|
||||
if (fAdmin->getMusrviewShowOneToOneFlag())
|
||||
arg << "-1";
|
||||
|
||||
QProcess *proc = new QProcess(this);
|
||||
connect(proc, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(musrViewFinished(int, QProcess::ExitStatus)));
|
||||
|
||||
QProcess proc;
|
||||
// make sure that the system environment variables are properly set
|
||||
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||
#if defined(Q_OS_DARWIN)
|
||||
@ -2565,31 +2563,15 @@ void PTextEdit::musrView()
|
||||
#else
|
||||
env.insert("LD_LIBRARY_PATH", env.value("ROOTSYS") + "/lib:" + env.value("LD_LIBRARY_PATH"));
|
||||
#endif
|
||||
proc->setProcessEnvironment(env);
|
||||
proc->setWorkingDirectory(workDir);
|
||||
proc->start(cmd, arg);
|
||||
if (!proc->waitForStarted()) {
|
||||
// error handling
|
||||
QString msg(tr("Could not execute the output command: ")+cmd[0]);
|
||||
QMessageBox::critical( nullptr, tr("FATAL ERROR"), msg, QMessageBox::Close );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
* <p>Checks if musrview terminated with error, and if yes pop up a message box.
|
||||
* @param exitCode
|
||||
*/
|
||||
void PTextEdit::musrViewFinished(int exitCode, QProcess::ExitStatus)
|
||||
{
|
||||
if (exitCode != 0) {
|
||||
QString msg = QString("musrview failed. Possible reasons:\n");
|
||||
msg += QString("* corrupted msr-file.\n");
|
||||
msg += QString("* cannot read data-file.\n");
|
||||
msg += QString("* many more things can go wrong.\n");
|
||||
msg += QString("Please check!");
|
||||
QMessageBox::critical(nullptr, tr("FATAL ERROR"), msg, QMessageBox::Close);
|
||||
proc.setProgram(cmd);
|
||||
proc.setProcessEnvironment(env);
|
||||
if (!proc.startDetached(cmd, arg, workDir)) {
|
||||
QString msg = QString("musrview failed. Possible reasons:\n");
|
||||
msg += QString("* corrupted msr-file.\n");
|
||||
msg += QString("* cannot read data-file.\n");
|
||||
msg += QString("* many more things can go wrong.\n");
|
||||
msg += QString("Please check!");
|
||||
QMessageBox::critical(nullptr, tr("FATAL ERROR"), msg, QMessageBox::Close);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -140,7 +140,6 @@ private slots:
|
||||
void musrFit();
|
||||
void musrMsr2Data();
|
||||
void musrView();
|
||||
void musrViewFinished(int, QProcess::ExitStatus);
|
||||
void musrT0();
|
||||
void musrFT();
|
||||
void musrPrefs();
|
||||
|
Reference in New Issue
Block a user