diff options
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r-- | src/QuickMedia.cpp | 20 |
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); |