File indexing completed on 2024-04-28 15:51:45

0001 /*
0002     SPDX-FileCopyrightText: 2004 Duncan Mac-Vicar Prett <duncan@kde.org>
0003     SPDX-FileCopyrightText: 2004-2005 Olivier Goffart <ogoffart@kde.org>
0004     SPDX-FileCopyrightText: 2011 Niels Ole Salscheider
0005     <niels_ole@salscheider-online.de>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef LATEXRENDERER_H
0011 #define LATEXRENDERER_H
0012 
0013 #include <QStringList>
0014 
0015 class QString;
0016 class QColor;
0017 
0018 namespace GuiUtils
0019 {
0020 class LatexRenderer
0021 {
0022 public:
0023     enum Error { NoError, LatexNotFound, DvipngNotFound, LatexFailed, DvipngFailed };
0024 
0025     LatexRenderer();
0026     ~LatexRenderer();
0027 
0028     LatexRenderer(const LatexRenderer &) = delete;
0029     LatexRenderer &operator=(const LatexRenderer &) = delete;
0030 
0031     Error renderLatexInHtml(QString &html, const QColor &textColor, int fontSize, int resolution, QString &latexOutput);
0032     static bool mightContainLatex(const QString &text);
0033 
0034 private:
0035     Error handleLatex(QString &fileName, const QString &latexFormula, const QColor &textColor, int fontSize, int resolution, QString &latexOutput);
0036     static bool securityCheck(const QString &latexFormula);
0037 
0038     QStringList m_fileList;
0039 };
0040 
0041 }
0042 
0043 #endif // LATEXRENDERER_H