fix: don't add sets without emotes when searching (#5582)

This commit is contained in:
nerix 2024-09-03 11:53:28 +02:00 committed by GitHub
parent 61b04dbe7b
commit aae1288112
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 8 deletions

View file

@ -43,7 +43,7 @@
- Bugfix: Fixed splits staying paused after unfocusing Chatterino in certain configurations. (#5504)
- Bugfix: Links with invalid characters in the domain are no longer detected. (#5509)
- Bugfix: Fixed janky selection for messages with RTL segments (selection is still wrong, but consistently wrong). (#5525)
- Bugfix: Fixed event emotes not showing up in autocomplete and popups. (#5239, #5580)
- Bugfix: Fixed event emotes not showing up in autocomplete and popups. (#5239, #5580, #5582)
- Bugfix: Fixed tab visibility being controllable in the emote popup. (#5530)
- Bugfix: Fixed account switch not being saved if no other settings were changed. (#5558)
- Bugfix: Fixed some tooltips not being readable. (#5578)

View file

@ -115,12 +115,13 @@ auto makeEmojiMessage(const std::vector<EmojiPtr> &emojiMap)
return builder.release();
}
void addEmotes(Channel &channel, auto emotes, const QString &title,
void addEmotes(Channel &channel, auto &&emotes, const QString &title,
const MessageElementFlag &emoteFlag)
{
channel.addMessage(makeTitleMessage(title), MessageContext::Original);
channel.addMessage(makeEmoteMessage(emotes, emoteFlag),
MessageContext::Original);
channel.addMessage(
makeEmoteMessage(std::forward<decltype(emotes)>(emotes), emoteFlag),
MessageContext::Original);
}
void addTwitchEmoteSets(const std::shared_ptr<const EmoteMap> &local,
@ -175,7 +176,7 @@ void loadEmojis(Channel &channel, const std::vector<EmojiPtr> &emojiMap,
// Create an emote
EmoteMap filterEmoteMap(const QString &text,
std::shared_ptr<const EmoteMap> emotes)
const std::shared_ptr<const EmoteMap> &emotes)
{
EmoteMap filteredMap;
@ -518,15 +519,19 @@ void EmotePopup::filterTwitchEmotes(std::shared_ptr<Channel> searchChannel,
if (!local.empty())
{
addEmotes(*searchChannel, local,
this->twitchChannel_->getName() % u" (local)",
this->twitchChannel_->getName() % u" (Follower)",
MessageElementFlag::TwitchEmote);
}
for (const auto &[_id, set] :
**getApp()->getAccounts()->twitch.getCurrent()->accessEmoteSets())
{
addEmotes(*searchChannel, filterEmoteVec(searchText, set.emotes),
set.title(), MessageElementFlag::TwitchEmote);
auto filtered = filterEmoteVec(searchText, set.emotes);
if (!filtered.empty())
{
addEmotes(*searchChannel, std::move(filtered), set.title(),
MessageElementFlag::TwitchEmote);
}
}
}