From 7d9ca91c2922ede0d21a856abf61c14d9ce7898a Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Sat, 5 Jan 2019 21:13:04 +0100 Subject: preference dialog done (closes #50) --- src/gui/latexprocess.cpp | 57 ++++++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 24 deletions(-) (limited to 'src/gui/latexprocess.cpp') diff --git a/src/gui/latexprocess.cpp b/src/gui/latexprocess.cpp index 0bda54f..d267bf5 100644 --- a/src/gui/latexprocess.cpp +++ b/src/gui/latexprocess.cpp @@ -23,6 +23,7 @@ #include #include #include +#include LatexProcess::LatexProcess(PreviewWindow *preview, QObject *parent) : QObject(parent) { @@ -42,6 +43,7 @@ LatexProcess::LatexProcess(PreviewWindow *preview, QObject *parent) : QObject(pa void LatexProcess::makePreview(QString tikz) { + QSettings settings("tikzit", "tikzit"); _preview->setStatus(PreviewWindow::Running); _output->clear(); @@ -51,40 +53,47 @@ void LatexProcess::makePreview(QString tikz) } _output->appendPlainText("USING TEMP DIR: " + _workingDir.path() + "\n"); - _output->appendPlainText("SEARCHING FOR pdflatex IN:"); - _output->appendPlainText(qgetenv("PATH")); - _output->appendPlainText("\n"); + QString pdflatex; - QString pdflatex = QStandardPaths::findExecutable("pdflatex"); - if (pdflatex.isEmpty()) { - // if pdflatex is not in PATH, we are probably on mac or windows, so try common - // install directories. - _output->appendPlainText("NOT FOUND IN PATH, TRYING:"); - - QStringList texDirs; - // common macOS tex directories: - texDirs << "/Library/TeX/texbin"; - texDirs << "/usr/texbin"; - texDirs << "/usr/local/bin"; - texDirs << "/sw/bin"; - - // common windows tex directories - texDirs << "C:\\Program Files\\MiKTeX 2.9\\miktex\\bin"; - texDirs << "C:\\Program Files\\MiKTeX 2.9\\miktex\\bin\\x64"; - - _output->appendPlainText(texDirs.join(":")); - pdflatex = QStandardPaths::findExecutable("pdflatex", texDirs); + if (settings.value("auto-detect-pdflatex", true).toBool()) { + _output->appendPlainText("SEARCHING FOR pdflatex IN:"); + _output->appendPlainText(qgetenv("PATH")); + _output->appendPlainText("\n"); + pdflatex = QStandardPaths::findExecutable("pdflatex"); + if (pdflatex.isEmpty()) { + // if pdflatex is not in PATH, we are probably on mac or windows, so try common + // install directories. + _output->appendPlainText("NOT FOUND IN PATH, TRYING:"); + + QStringList texDirs; + // common macOS tex directories: + texDirs << "/Library/TeX/texbin"; + texDirs << "/usr/texbin"; + texDirs << "/usr/local/bin"; + texDirs << "/sw/bin"; + + // common windows tex directories + texDirs << "C:\\Program Files\\MiKTeX 2.9\\miktex\\bin"; + texDirs << "C:\\Program Files\\MiKTeX 2.9\\miktex\\bin\\x64"; + + _output->appendPlainText(texDirs.join(":")); + pdflatex = QStandardPaths::findExecutable("pdflatex", texDirs); + } if (pdflatex.isEmpty()) { _output->appendPlainText("pdflatex NOT FOUND, ABORTING.\n"); _preview->setStatus(PreviewWindow::Failed); return; + } else { + _output->appendPlainText("FOUND: " + pdflatex + "\n"); } + } else { + _output->appendPlainText("USING pdflatex:\n"); + pdflatex = settings.value("pdflatex-path", "/usr/bin/pdflatex").toString(); + _output->appendPlainText(pdflatex + "\n"); } - _output->appendPlainText("FOUND: " + pdflatex + "\n"); - // copy tikzit.sty to preview dir QFile::copy(":/tex/sample/tikzit.sty", _workingDir.path() + "/tikzit.sty"); -- cgit v1.2.3