feat: setting to change emote/badge thumbnail size (#6126)

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This commit is contained in:
Arne
2025-06-15 12:27:43 +02:00
committed by GitHub
parent 746b1c9210
commit 62c93d1d98
8 changed files with 98 additions and 27 deletions
+36 -14
View File
@@ -279,6 +279,24 @@ qreal highlightEasingFunction(qreal progress)
return 1.0 + pow((20.0 / 9.0) * (0.5 * progress - 0.5), 3.0);
}
float getTooltipScale(EmoteTooltipScale emoteTooltipScale)
{
switch (emoteTooltipScale)
{
case EmoteTooltipScale::Small:
return 0.5F;
case EmoteTooltipScale::Medium:
return 1.0F;
case EmoteTooltipScale::Large:
return 1.5F;
case EmoteTooltipScale::Huge:
return 2.0F;
default:
return 1.0F;
}
}
} // namespace
namespace chatterino {
@@ -2037,12 +2055,12 @@ void ChannelView::mouseMoveEvent(QMouseEvent *event)
if (emoteElement)
{
this->tooltipWidget_->setOne({
auto scale = getSettings()->emoteTooltipScale.getEnum();
this->tooltipWidget_->setOne(TooltipEntry::scaled(
showThumbnail
? emoteElement->getEmote()->images.getImage(3.0)
: nullptr,
element->getTooltip(),
});
element->getTooltip(), getTooltipScale(scale)));
}
else if (layeredEmoteElement)
{
@@ -2073,18 +2091,22 @@ void ChannelView::mouseMoveEvent(QMouseEvent *event)
if (i == 0)
{
// First entry gets a large image and full description
entries.push_back({showThumbnail
? emote->images.getImage(3.0)
: nullptr,
emoteTooltips[i]});
auto scale =
getSettings()->emoteTooltipScale.getEnum();
entries.push_back(TooltipEntry::scaled(
showThumbnail ? emote->images.getImage(3.0)
: nullptr,
emoteTooltips[i], getTooltipScale(scale)));
}
else
{
// Every other entry gets a small image and just the emote name
entries.push_back({showThumbnail
? emote->images.getImage(1.0)
: nullptr,
emote->name.string});
auto scale =
getSettings()->emoteTooltipScale.getEnum();
entries.push_back(TooltipEntry::scaled(
showThumbnail ? emote->images.getImage(1.0)
: nullptr,
emote->name.string, getTooltipScale(scale)));
}
}
@@ -2101,12 +2123,12 @@ void ChannelView::mouseMoveEvent(QMouseEvent *event)
}
else if (badgeElement)
{
this->tooltipWidget_->setOne({
auto scale = getSettings()->emoteTooltipScale.getEnum();
this->tooltipWidget_->setOne(TooltipEntry::scaled(
showThumbnail
? badgeElement->getEmote()->images.getImage(3.0)
: nullptr,
element->getTooltip(),
});
element->getTooltip(), getTooltipScale(scale)));
}
}
else