summary refs log tree commit diff
path: root/src/ColorImageProvider.cpp
diff options
context:
space:
mode:
authorJoseph Donofry <joedonofry@gmail.com>2019-12-07 21:39:47 -0500
committerJoseph Donofry <joedonofry@gmail.com>2019-12-07 21:39:47 -0500
commite79ae4ea0996f175ea607e22627a447a4de2a1dc (patch)
treea49d9a6936c22619d619f02e5a654c80f283f5c1 /src/ColorImageProvider.cpp
parentMerge branch '0.7.0-dev' of ssh://github.com/Nheko-Reborn/nheko into 0.7.0-dev (diff)
parentSimplify scroll logic (diff)
downloadnheko-e79ae4ea0996f175ea607e22627a447a4de2a1dc.tar.xz
Merge branch '0.7.0-dev' of ssh://github.com/Nheko-Reborn/nheko into 0.7.0-dev
Diffstat (limited to 'src/ColorImageProvider.cpp')
-rw-r--r--src/ColorImageProvider.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/ColorImageProvider.cpp b/src/ColorImageProvider.cpp
new file mode 100644

index 00000000..92e4732b --- /dev/null +++ b/src/ColorImageProvider.cpp
@@ -0,0 +1,30 @@ +#include "ColorImageProvider.h" + +#include "Logging.h" +#include <QPainter> + +QPixmap +ColorImageProvider::requestPixmap(const QString &id, QSize *size, const QSize &) +{ + auto args = id.split('?'); + + nhlog::ui()->info("Loading {}, source is {}", id.toStdString(), args[0].toStdString()); + + QPixmap source(args[0]); + + if (size) + *size = QSize(source.width(), source.height()); + + if (args.size() < 2) + return source; + + QColor color(args[1]); + + QPixmap colorized = source; + QPainter painter(&colorized); + painter.setCompositionMode(QPainter::CompositionMode_SourceIn); + painter.fillRect(colorized.rect(), color); + painter.end(); + + return colorized; +}