mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
Fix for bug #11210, from Enrico.
(cherry picked from commit 366bed642de2257c4ff89696de8da93aba56b3ef)
This commit is contained in:
parent
6f285ca28d
commit
02c4763e66
@ -252,23 +252,6 @@ int Systemcall::startscript(Starttype how, string const & what,
|
|||||||
|
|
||||||
SystemcallPrivate d(infile, outfile, errfile);
|
SystemcallPrivate d(infile, outfile, errfile);
|
||||||
|
|
||||||
#ifdef Q_OS_WIN32
|
|
||||||
// QProcess::startDetached cannot provide environment variables. When the
|
|
||||||
// environment variables are set using the latexEnvCmdPrefix and the process
|
|
||||||
// is started with QProcess::startDetached, a console window is shown every
|
|
||||||
// time a viewer is started. To avoid this, we fall back on Windows to the
|
|
||||||
// original implementation that creates a QProcess object.
|
|
||||||
d.startProcess(cmd, path, lpath, false);
|
|
||||||
if (!d.waitWhile(SystemcallPrivate::Starting, process_events, -1)) {
|
|
||||||
LYXERR0("Systemcall: '" << cmd << "' did not start!");
|
|
||||||
LYXERR0("error " << d.errorMessage());
|
|
||||||
return 10;
|
|
||||||
}
|
|
||||||
if (how == DontWait) {
|
|
||||||
d.releaseProcess();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
d.startProcess(cmd, path, lpath, how == DontWait);
|
d.startProcess(cmd, path, lpath, how == DontWait);
|
||||||
if (how == DontWait && d.state == SystemcallPrivate::Running)
|
if (how == DontWait && d.state == SystemcallPrivate::Running)
|
||||||
return 0;
|
return 0;
|
||||||
@ -279,7 +262,6 @@ int Systemcall::startscript(Starttype how, string const & what,
|
|||||||
LYXERR0("error " << d.errorMessage());
|
LYXERR0("error " << d.errorMessage());
|
||||||
return 10;
|
return 10;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!d.waitWhile(SystemcallPrivate::Running, process_events,
|
if (!d.waitWhile(SystemcallPrivate::Running, process_events,
|
||||||
os::timeout_min() * 60 * 1000)) {
|
os::timeout_min() * 60 * 1000)) {
|
||||||
@ -370,6 +352,15 @@ void SystemcallPrivate::startProcess(QString const & cmd, string const & path,
|
|||||||
cmd_ = cmd;
|
cmd_ = cmd;
|
||||||
if (detached) {
|
if (detached) {
|
||||||
state = SystemcallPrivate::Running;
|
state = SystemcallPrivate::Running;
|
||||||
|
#ifdef Q_OS_WIN32
|
||||||
|
// Avoid opening a console window when a viewer is started
|
||||||
|
if (in_file_.empty())
|
||||||
|
process_->setStandardInputFile(QProcess::nullDevice());
|
||||||
|
if (out_file_.empty())
|
||||||
|
process_->setStandardOutputFile(QProcess::nullDevice());
|
||||||
|
if (err_file_.empty())
|
||||||
|
process_->setStandardErrorFile(QProcess::nullDevice());
|
||||||
|
#endif
|
||||||
if (!QProcess::startDetached(toqstr(latexEnvCmdPrefix(path, lpath)) + cmd_)) {
|
if (!QProcess::startDetached(toqstr(latexEnvCmdPrefix(path, lpath)) + cmd_)) {
|
||||||
state = SystemcallPrivate::Error;
|
state = SystemcallPrivate::Error;
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user