diff options
Diffstat (limited to 'src/activitypub/apattachment.cpp')
-rw-r--r-- | src/activitypub/apattachment.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/activitypub/apattachment.cpp b/src/activitypub/apattachment.cpp new file mode 100644 index 0000000..0589291 --- /dev/null +++ b/src/activitypub/apattachment.cpp @@ -0,0 +1,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; +} |