aboutsummaryrefslogtreecommitdiff
path: root/src/QuickMedia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r--src/QuickMedia.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index 6e4ee51..0b39673 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -2894,6 +2894,16 @@ namespace QuickMedia {
return str;
}
+ static sf::Vector2f to_vec2f(const sf::Vector2i &vec) {
+ return sf::Vector2f(vec.x, vec.y);
+ }
+
+ static sf::Vector2i to_vec2i(const sf::Vector2f &vec) {
+ return sf::Vector2i(vec.x, vec.y);
+ }
+
+ static const sf::Vector2i CHAT_MESSAGE_THUMBNAIL_MAX_SIZE(600, 337);
+
static std::shared_ptr<BodyItem> message_to_body_item(Message *message, UserInfo *me) {
auto body_item = BodyItem::create("");
body_item->set_author(message->user->display_name);
@@ -2902,11 +2912,12 @@ namespace QuickMedia {
text = remove_reply_formatting(text);
body_item->set_description(std::move(text));
body_item->set_timestamp(message->timestamp);
- if(!message->thumbnail_url.empty())
+ if(!message->thumbnail_url.empty()) {
body_item->thumbnail_url = message->thumbnail_url;
- else if(!message->url.empty() && message->type == MessageType::IMAGE)
+ body_item->thumbnail_size = to_vec2i(clamp_to_size(to_vec2f(message->thumbnail_size), to_vec2f(CHAT_MESSAGE_THUMBNAIL_MAX_SIZE)));
+ } else if(!message->url.empty() && message->type == MessageType::IMAGE) {
body_item->thumbnail_url = message->url;
- else {
+ } else {
body_item->thumbnail_url = message->user->avatar_url;
body_item->thumbnail_mask_type = ThumbnailMaskType::CIRCLE;
// if construct is not configured to use ImageMagic then it wont give thumbnails of size 32x32 even when requested and the spec says that the server SHOULD do that
@@ -2943,8 +2954,7 @@ namespace QuickMedia {
messages_tab.type = ChatTabType::MESSAGES;
messages_tab.body = std::make_unique<Body>(this, font.get(), bold_font.get(), cjk_font.get());
messages_tab.body->draw_thumbnails = true;
- messages_tab.body->thumbnail_resize_target_size.x = 600;
- messages_tab.body->thumbnail_resize_target_size.y = 337;
+ messages_tab.body->thumbnail_resize_target_size = CHAT_MESSAGE_THUMBNAIL_MAX_SIZE;
messages_tab.body->thumbnail_mask_shader = &circle_mask_shader;
//messages_tab.body->line_separator_color = sf::Color::Transparent;
messages_tab.text = sf::Text("Messages", *font, tab_text_size);