aboutsummaryrefslogtreecommitdiffstats
path: root/src/widgets/tab_actor_info.cpp
diff options
context:
space:
mode:
authorConfuSomu2024-01-20 21:57:39 -0500
committerConfuSomu2024-01-20 21:57:39 -0500
commit5aac009e969cc3bd15c484ba3437348cb7a4d186 (patch)
tree96cff55a273b9de31d639b00f7139110946ce1b6 /src/widgets/tab_actor_info.cpp
parent328c9b166e9d623cd1b80c7ae064baf6172da58f (diff)
downloadActorViewer-5aac009e969cc3bd15c484ba3437348cb7a4d186.tar
ActorViewer-5aac009e969cc3bd15c484ba3437348cb7a4d186.tar.gz
ActorViewer-5aac009e969cc3bd15c484ba3437348cb7a4d186.zip
Implemement Actor information tab
This class still has improvements to be made, but it works and I am satisfied with it!
Diffstat (limited to 'src/widgets/tab_actor_info.cpp')
-rw-r--r--src/widgets/tab_actor_info.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/widgets/tab_actor_info.cpp b/src/widgets/tab_actor_info.cpp
new file mode 100644
index 0000000..79630df
--- /dev/null
+++ b/src/widgets/tab_actor_info.cpp
@@ -0,0 +1,49 @@
+#include "tab_actor_info.h"
+#include "ui_tab_actor_info.h"
+#include "src/activitypub/apactor.h"
+#include "src/archive/base_archive.h"
+#include <QTableWidgetItem>
+#include <QDebug>
+
+TabActorInfo::TabActorInfo(APActor* actor, QWidget* parent)
+ : QWidget(parent), ui(new Ui::TabActorInfo), actor(actor)
+{
+ ui->setupUi(this);
+ ui->gridLayout->setContentsMargins(0, 0, 0, 0);
+
+ update_ui();
+}
+
+TabActorInfo::TabActorInfo(Archive* archive, QWidget* parent)
+ : QWidget(parent), ui(new Ui::TabActorInfo)
+{
+ ui->setupUi(this);
+ ui->gridLayout->setContentsMargins(0, 0, 0, 0);
+
+ actor = archive->get_main_actor();
+ qDebug() << actor;
+ update_ui();
+}
+
+TabActorInfo::~TabActorInfo() {
+ if (actor) delete actor;
+ delete ui;
+}
+
+// TODO: do this in another thread, like for status_info
+void TabActorInfo::update_ui() {
+ if (not actor) return;
+
+ 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) {
+ ui->attachments->insertRow(row);
+ ui->attachments->setItem(row, 0, new QTableWidgetItem(prop.key));
+ ui->attachments->setItem(row++, 1, new QTableWidgetItem(prop.value));
+ }
+}