From 948bfe5e1032f7e19046638c3b47001f45d5a3f1 Mon Sep 17 00:00:00 2001 From: ConfuSomu Date: Fri, 26 Jan 2024 18:02:28 -0500 Subject: Display header image in actor info tab --- src/widgets/tab_actor_info.cpp | 14 ++++++++++++-- src/widgets/tab_actor_info.h | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/widgets/tab_actor_info.cpp b/src/widgets/tab_actor_info.cpp index 9d35b29..c769297 100644 --- a/src/widgets/tab_actor_info.cpp +++ b/src/widgets/tab_actor_info.cpp @@ -3,6 +3,7 @@ #include "src/activitypub/apactor.h" #include "src/archive/base_archive.h" #include +#include TabActorInfo::TabActorInfo(APActor* actor, QWidget* parent) : QWidget(parent), ui(new Ui::TabActorInfo), actor(actor) @@ -40,8 +41,6 @@ void TabActorInfo::update_ui() { ui->displayNameText->setText(ui->displayNameText->text().arg(actor->name).arg(actor->username)); ui->summaryText->setHtml(actor->summary); ui->avatarImage->setPixmap(actor->avatar->get_pixmap(ui->avatarImage->size().width())); - // TODO: set header as top of background of widget - // Affiche le nom et la description fonctionne sans problèmes int row = 0; for (APPropertyValue prop : actor->table) { @@ -50,3 +49,14 @@ void TabActorInfo::update_ui() { ui->attachments->setItem(row++, 1, new QTableWidgetItem(prop.value)); } } + +void TabActorInfo::paintEvent(QPaintEvent* event) { + QPainter painter(this); + + if (actor and actor->header) { + painter.setOpacity(0.75); + QPixmap pixmap = actor->header->get_pixmap(ui->displayNameText->width()); + painter.drawPixmap(ui->displayNameText->geometry(), pixmap); + painter.setOpacity(1.0); + } +} diff --git a/src/widgets/tab_actor_info.h b/src/widgets/tab_actor_info.h index a1dd84f..c6a4b88 100644 --- a/src/widgets/tab_actor_info.h +++ b/src/widgets/tab_actor_info.h @@ -23,5 +23,7 @@ public slots: private: Ui::TabActorInfo* ui; + void paintEvent(QPaintEvent* event); + APActor* actor = nullptr; }; -- cgit v1.2.3-54-g00ecf