diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2020-12-28 14:43:56 +0100 |
---|---|---|
committer | bstoeger <32835590+bstoeger@users.noreply.github.com> | 2021-01-01 21:10:10 +0100 |
commit | 1d9392670053c4b4d49f2c7149a2a99e636c6b57 (patch) | |
tree | f15e109b812bf5e82d3e75c961a0c5e8b8f6e14e /core/qthelper.cpp | |
parent | 4ca40bc15262193cec29f1aea02ac6964634b88c (diff) | |
download | subsurface-1d9392670053c4b4d49f2c7149a2a99e636c6b57.tar.gz |
core: move renderSVGIcon() to qthelper.cpp
The renderIcon() function was used by the thumbnailer to
render SVG-based icons. Move it to the global qthelper.cpp
so that it can also be used by the statistics module.
Add "SVG" to the name to emphasize what it is used for.
For consistency also move the renderSVGIconWidth() function,
which renders to a fixed width, to qthelper.cpp
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/qthelper.cpp')
-rw-r--r-- | core/qthelper.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/core/qthelper.cpp b/core/qthelper.cpp index 4db43458b..bebed3cf6 100644 --- a/core/qthelper.cpp +++ b/core/qthelper.cpp @@ -36,7 +36,9 @@ #include <QFont> #include <QApplication> #include <QTextDocument> +#include <QPainter> #include <QProgressDialog> // TODO: remove with convertThumbnails() +#include <QSvgRenderer> #include <cstdarg> #include <cstdint> #ifdef Q_OS_UNIX @@ -1701,3 +1703,26 @@ extern "C" void emit_reset_signal() { emit diveListNotifier.dataReset(); } + +QImage renderSVGIcon(const char *id, int size) +{ + QImage res(size, size, QImage::Format_RGB32); + res.fill(Qt::white); + QSvgRenderer svg{QString(id)}; + QPainter painter(&res); + svg.render(&painter); + return res; +} + +// As renderSVGIcon(), but render to a fixed width and scale height accordingly +// and have a transparent background. +QImage renderSVGIconWidth(const char *id, int size) +{ + QSvgRenderer svg{QString(id)}; + QSize svgSize = svg.defaultSize(); + QImage res(size, size * svgSize.height() / svgSize.width(), QImage::Format_ARGB32); + QPainter painter(&res); + svg.render(&painter); + return res; +} + |