diff options
Diffstat (limited to 'src/gui/previewwindow.h')
-rw-r--r-- | src/gui/previewwindow.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/gui/previewwindow.h b/src/gui/previewwindow.h new file mode 100644 index 0000000..a14303b --- /dev/null +++ b/src/gui/previewwindow.h @@ -0,0 +1,72 @@ +/* + TikZiT - a GUI diagram editor for TikZ + Copyright (C) 2018 Aleks Kissinger + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. +*/ + +/*! + * Displays a LaTeX-generated PDF preview using Poppler. The right-click + * menu has options for exporting to file or clipboard. + */ + +#ifndef PREVIEWWINDOW_H +#define PREVIEWWINDOW_H + +#include "pdfdocument.h" + +#include <QDialog> +#include <QLabel> +#include <QPlainTextEdit> +#include <QContextMenuEvent> +#include <poppler/qt5/poppler-qt5.h> + +namespace Ui { +class PreviewWindow; +} + +class PreviewWindow : public QDialog +{ + Q_OBJECT + +public: + enum Status { + Running, Success, Failed + }; + explicit PreviewWindow(QWidget *parent = nullptr); + ~PreviewWindow() override; + void setPdf(QString file); + QString preparePreview(QString tikz); + QPlainTextEdit *outputTextEdit(); + void setStatus(Status status); + + PdfDocument *doc() const; + +public slots: + void render(); + void exportImage(); + void copyImageToClipboard(); + +protected: + void resizeEvent(QResizeEvent *e) override; + void showEvent(QShowEvent *e) override; + void closeEvent(QCloseEvent *e) override; + void contextMenuEvent(QContextMenuEvent *event) override; +private: + Ui::PreviewWindow *ui; + PdfDocument *_doc; + QLabel *_loader; +}; + +#endif // PREVIEWWINDOW_H |