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: 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: 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 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 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 account switch not being saved if no other settings were changed. (#5558)
- Bugfix: Fixed some tooltips not being readable. (#5578) - Bugfix: Fixed some tooltips not being readable. (#5578)

View file

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