commit 0862042b28039159656e8a4d6dea1be5a94cf8b6
Author: Daniel Ramoeller <[email protected]>
Date: Wed Sep 29 04:25:58 2021 +0200
SVG replacement of busy.gif
Fix for bug #10384.
---
lib/Makefile.am | 2 +-
lib/images/busy.gif | Bin 1849 -> 0 bytes
lib/images/busy.svgz | Bin 0 -> 327 bytes
src/frontends/qt/GuiView.cpp | 28 +++++++++++++++++-----------
src/frontends/qt/GuiView.h | 14 ++++++++++++++
5 files changed, 32 insertions(+), 12 deletions(-)
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 71cebde..61d6f1a 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -564,7 +564,7 @@ dist_images_DATA1X = \
images/buffer-write-as.svgz \
images/buffer-write.svgz \
images/build-program.svgz \
- images/busy.gif \
+ images/busy.svgz \
images/change-accept.svgz \
images/change-next.svgz \
images/change-reject.svgz \
diff --git a/lib/images/busy.gif b/lib/images/busy.gif
deleted file mode 100644
index 5b33f7e..0000000
Binary files a/lib/images/busy.gif and /dev/null differ
diff --git a/lib/images/busy.svgz b/lib/images/busy.svgz
new file mode 100644
index 0000000..2a07dfa
Binary files /dev/null and b/lib/images/busy.svgz differ
diff --git a/src/frontends/qt/GuiView.cpp b/src/frontends/qt/GuiView.cpp
index 3a6a04c..9f7531c 100644
--- a/src/frontends/qt/GuiView.cpp
+++ b/src/frontends/qt/GuiView.cpp
@@ -96,7 +96,6 @@
#include <QMenu>
#include <QMenuBar>
#include <QMimeData>
-#include <QMovie>
#include <QPainter>
#include <QPixmap>
#include <QPoint>
@@ -612,20 +611,19 @@ GuiView::GuiView(int id)
setAcceptDrops(true);
// add busy indicator to statusbar
- GuiClickableLabel * busylabel = new GuiClickableLabel(statusBar());
- statusBar()->addPermanentWidget(busylabel);
search_mode mode = theGuiApp()->imageSearchMode();
- QString fn = toqstr(lyx::libFileSearch("images", "busy", "gif",
mode).absFileName());
- QMovie * busyanim = new QMovie(fn, QByteArray(), busylabel);
- busylabel->setMovie(busyanim);
- busyanim->start();
- busylabel->hide();
+ QString fn = toqstr(lyx::libFileSearch("images", "busy", "svgz",
mode).absFileName());
+ PressableSvgWidget * busySVG = new PressableSvgWidget(fn);
+ statusBar()->addPermanentWidget(busySVG);
+ // make busy indicator square with 5px margins
+ busySVG->setMaximumSize(busySVG->height() - 5, busySVG->height() - 5);
+ busySVG->hide();
connect(&d.processing_thread_watcher_, SIGNAL(started()),
- busylabel, SLOT(show()));
+ busySVG, SLOT(show()));
connect(&d.processing_thread_watcher_, SIGNAL(finished()),
- busylabel, SLOT(hide()));
- connect(busylabel, SIGNAL(clicked()), this,
SLOT(checkCancelBackground()));
+ busySVG, SLOT(hide()));
+ connect(busySVG, SIGNAL(pressed()), this,
SLOT(checkCancelBackground()));
QFontMetrics const fm(statusBar()->fontMetrics());
@@ -5130,6 +5128,14 @@ SEMenu::SEMenu(QWidget * parent)
parent, SLOT(disableShellEscape()));
}
+
+void PressableSvgWidget::mousePressEvent(QMouseEvent * event)
+{
+ if (event->button() == Qt::LeftButton) {
+ Q_EMIT pressed();
+ }
+}
+
} // namespace frontend
} // namespace lyx
diff --git a/src/frontends/qt/GuiView.h b/src/frontends/qt/GuiView.h
index 47f5e40..657634c 100644
--- a/src/frontends/qt/GuiView.h
+++ b/src/frontends/qt/GuiView.h
@@ -21,6 +21,7 @@
#include <QMainWindow>
#include <QMenu>
+#include <QSvgWidget>
class QCloseEvent;
class QDragEnterEvent;
@@ -534,6 +535,19 @@ public Q_SLOTS:
void showMenu(QPoint const &) { exec(QCursor::pos()); }
};
+
+class PressableSvgWidget : public QSvgWidget
+{
+ Q_OBJECT
+public:
+ explicit PressableSvgWidget(const QString &file, QWidget * parent =
nullptr)
+ : QSvgWidget(file, parent) {};
+protected:
+ void mousePressEvent(QMouseEvent *event) override;
+Q_SIGNALS:
+ void pressed();
+};
+
} // namespace frontend
} // namespace lyx
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs