From c93f003ce683fca7896cbbadb6375b929d22fe6d Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Sat, 22 Dec 2018 18:06:26 +0100 Subject: latex running feedback and better search for pdflatex --- src/gui/previewwindow.cpp | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) (limited to 'src/gui/previewwindow.cpp') diff --git a/src/gui/previewwindow.cpp b/src/gui/previewwindow.cpp index 724a951..726ec8a 100644 --- a/src/gui/previewwindow.cpp +++ b/src/gui/previewwindow.cpp @@ -15,6 +15,7 @@ #include #include #include +#include PreviewWindow::PreviewWindow(QWidget *parent) : QDialog(parent), @@ -31,10 +32,15 @@ PreviewWindow::PreviewWindow(QWidget *parent) : _doc = nullptr; _page = nullptr; - //setPdf("/home/aleks/ak-algebras.pdf"); - //qDebug() << "preview dir:" << preparePreview("foo"); + _loader = new QLabel(this); + _loader->setMinimumSize(QSize(16,16)); + _loader->setMaximumSize(QSize(16,16)); + ui->tabWidget->tabBar()->setTabButton(1, QTabBar::RightSide, _loader); + connect(ui->tabWidget, SIGNAL(currentChanged(int)), + this, SLOT(render())); + render(); } @@ -76,6 +82,37 @@ QPlainTextEdit *PreviewWindow::outputTextEdit() return ui->output; } +void PreviewWindow::setStatus(PreviewWindow::Status status) +{ + QMovie *oldMovie = _loader->movie(); + if (status == PreviewWindow::Running) { + // loader.gif and loader@2x.gif derived from: + // https://commons.wikimedia.org/wiki/Throbbers#/media/File:Linux_Ubuntu_Loader.gif + // licensed GNU Free Documentation License v1.2 + QMovie *movie = new QMovie( + (devicePixelRatioF() > 1.0) ? ":images/loader@2x.gif" : ":images/loader.gif", + QByteArray(), _loader); + _loader->setPixmap(QPixmap()); + _loader->setMovie(movie); + movie->start(); + } else if (status == PreviewWindow::Success) { + _loader->setMovie(nullptr); + QPixmap accept(":images/dialog-accept.svg"); + accept.setDevicePixelRatio(devicePixelRatio()); + _loader->setPixmap(accept); + } else if (status == PreviewWindow::Failed) { + _loader->setMovie(nullptr); + QPixmap error(":images/dialog-error.svg"); + error.setDevicePixelRatio(devicePixelRatio()); + _loader->setPixmap(error); + } + + if (oldMovie != nullptr) oldMovie->deleteLater(); + + + _loader->repaint(); +} + void PreviewWindow::closeEvent(QCloseEvent *e) { QSettings settings("tikzit", "tikzit"); settings.setValue("geometry-preview", saveGeometry()); -- cgit v1.2.3