core: add "transparent" parameter to renderSVGIcon

The start-selection widget will need icons with a transparent
background so that the icons don't stick out like a sore thumb.

So far the icons rendered by this function were only used by
the images on the profile and were perfectly rectangular.
Therefore there was no need for this.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2021-01-01 01:32:03 +01:00 committed by bstoeger
parent 60999e3a39
commit b0b52d51bd
3 changed files with 8 additions and 8 deletions

View file

@ -153,11 +153,11 @@ Thumbnailer::Thumbnail Thumbnailer::getHashedImage(const QString &filename, bool
return thumbnail;
}
Thumbnailer::Thumbnailer() : failImage(renderSVGIcon(":filter-close", maxThumbnailSize())), // TODO: Don't misuse filter close icon
dummyImage(renderSVGIcon(":camera-icon", maxThumbnailSize())),
videoImage(renderSVGIcon(":video-icon", maxThumbnailSize())),
Thumbnailer::Thumbnailer() : failImage(renderSVGIcon(":filter-close", maxThumbnailSize(), false)), // TODO: Don't misuse filter close icon
dummyImage(renderSVGIcon(":camera-icon", maxThumbnailSize(), false)),
videoImage(renderSVGIcon(":video-icon", maxThumbnailSize(), false)),
videoOverlayImage(renderSVGIconWidth(":video-overlay", maxThumbnailSize())),
unknownImage(renderSVGIcon(":unknown-icon", maxThumbnailSize()))
unknownImage(renderSVGIcon(":unknown-icon", maxThumbnailSize(), false))
{
// Currently, we only process one image at a time. Stefan Fuchs reported problems when
// calculating multiple thumbnails at once and this hopefully helps.

View file

@ -1704,10 +1704,10 @@ extern "C" void emit_reset_signal()
emit diveListNotifier.dataReset();
}
QImage renderSVGIcon(const char *id, int size)
QImage renderSVGIcon(const char *id, int size, bool transparent)
{
QImage res(size, size, QImage::Format_RGB32);
res.fill(Qt::white);
QImage res(size, size, transparent ? QImage::Format_ARGB32 : QImage::Format_RGB32);
res.fill(transparent ? Qt::transparent : Qt::white);
QSvgRenderer svg{QString(id)};
QPainter painter(&res);
svg.render(&painter);

View file

@ -87,7 +87,7 @@ QString getUserAgent();
QString printGPSCoords(const location_t *loc);
std::vector<int> get_cylinder_map_for_remove(int count, int n);
std::vector<int> get_cylinder_map_for_add(int count, int n);
QImage renderSVGIcon(const char *id, int size);
QImage renderSVGIcon(const char *id, int size, bool transparent);
QImage renderSVGIconWidth(const char *id, int size);
extern QString (*changesCallback)();