aboutsummaryrefslogtreecommitdiffstats
path: root/src/activitypub/apattachment.cpp
blob: 0589291ebb492be435fff0b0da52950dbbe38a55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "apattachment.h"
#include <QFileInfo>

APAttachment::APAttachment() {}

APAttachment::APAttachment(APAttachmentFields fields) {
    path_url = fields.path;
    type = fields.media_type;
    description = fields.name;
}

QString APAttachment::get_html_render(HtmlRenderDetails info) {
    QString html(get_html_template("apattachment"));

    if (not path_url.isEmpty()) {
        html.replace("{{path}}", path_url);
        html.replace("{{filename}}", QFileInfo(path_url).fileName()); // FIXME: this is maybe ugly?
    }

    if (type.startsWith("image/"))
        // dynamically resize image based on the display widget size to avoid horizontal scrolling
        html.replace("{{img-width}}", QString::number((float)info.text_zone_width - (float)info.text_zone_width*0.15)); // finally after passing this for so long i finally use it
    else
        html.replace("{{img-width}}", "0");

    html.replace("{{alt-text}}", description);

    return html;
}

QString APAttachmentList::get_html_render(HtmlRenderDetails render_info) {
    QString html;

    int i = 1;
    for (APAttachment attachment : *this) {
        QString item_html(get_html_template("apattachmentlist_item"));
        item_html.replace("{{id}}", QString::number(i));
        item_html.replace("{{attachment}}", attachment.get_html_render(render_info));

        html.append(item_html);
        ++i;
    }

    return html;
}