From ea6b19b3077dad0280e32aa762137728432e01f4 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Mon, 27 Dec 2021 06:23:36 +0100 Subject: Add an ugly custom emote completer using ~ --- src/Cache.cpp | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'src/Cache.cpp') diff --git a/src/Cache.cpp b/src/Cache.cpp index dd26157c..6db768d3 100644 --- a/src/Cache.cpp +++ b/src/Cache.cpp @@ -3580,24 +3580,26 @@ Cache::getImagePacks(const std::string &room_id, std::optional stickers) auto addPack = [&infos, stickers](const mtx::events::msc2545::ImagePack &pack, const std::string &source_room, const std::string &state_key) { - if (!pack.pack || !stickers.has_value() || - (stickers.value() ? pack.pack->is_sticker() : pack.pack->is_emoji())) { - ImagePackInfo info; - info.source_room = source_room; - info.state_key = state_key; - info.pack.pack = pack.pack; - - for (const auto &img : pack.images) { - if (stickers.has_value() && img.second.overrides_usage() && - (stickers ? !img.second.is_sticker() : !img.second.is_emoji())) - continue; - - info.pack.images.insert(img); - } + bool pack_matches = !stickers.has_value() || + (stickers.value() ? pack.pack->is_sticker() : pack.pack->is_emoji()); + + ImagePackInfo info; + info.source_room = source_room; + info.state_key = state_key; + info.pack.pack = pack.pack; + + for (const auto &img : pack.images) { + if (stickers.has_value() && + (img.second.overrides_usage() + ? (!stickers.value() ? img.second.is_sticker() : img.second.is_emoji()) + : !pack_matches)) + continue; - if (!info.pack.images.empty()) - infos.push_back(std::move(info)); + info.pack.images.insert(img); } + + if (!info.pack.images.empty()) + infos.push_back(std::move(info)); }; // packs from account data -- cgit 1.5.1