summaryrefslogtreecommitdiff
path: root/src/gui/previewwindow.cpp
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-12-22 18:06:26 +0100
committerAleks Kissinger <aleks0@gmail.com>2018-12-22 18:06:38 +0100
commitc93f003ce683fca7896cbbadb6375b929d22fe6d (patch)
tree1c2067f77c29491d5ee08ad6f1954210cdb8b33b /src/gui/previewwindow.cpp
parent873316d120e185fcbc59b468961faebf33adf9af (diff)
latex running feedback and better search for pdflatex
Diffstat (limited to 'src/gui/previewwindow.cpp')
-rw-r--r--src/gui/previewwindow.cpp41
1 files changed, 39 insertions, 2 deletions
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 <QStandardPaths>
#include <QMessageBox>
#include <cmath>
+#include <QMovie>
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());