From eb0feef51166eeabd58993c484e85e0739285aa1 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Tue, 10 Nov 2020 01:38:44 -0500 Subject: use textviews in channel list + parse emojis --- components/chatmessage.cpp | 33 +-------------------------------- 1 file changed, 1 insertion(+), 32 deletions(-) (limited to 'components/chatmessage.cpp') diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp index f528e37..a36b67f 100644 --- a/components/chatmessage.cpp +++ b/components/chatmessage.cpp @@ -451,38 +451,7 @@ void ChatMessageItemContainer::HandleUserMentions(Gtk::TextView *tv) { } void ChatMessageItemContainer::HandleStockEmojis(Gtk::TextView *tv) { - auto buf = tv->get_buffer(); - auto text = GetText(buf); - - auto &emojis = Abaddon::Get().GetEmojis(); - int searchpos; - for (const auto &pattern : emojis.GetPatterns()) { - searchpos = 0; - Glib::RefPtr pixbuf; - while (true) { - size_t r = text.find(pattern, searchpos); - if (r == Glib::ustring::npos) break; - if (!pixbuf) { - pixbuf = emojis.GetPixBuf(pattern); - if (pixbuf) - pixbuf = pixbuf->scale_simple(24, 24, Gdk::INTERP_BILINEAR); - else - break; - } - searchpos = r + pattern.size(); - - const auto start_it = buf->get_iter_at_offset(r); - const auto end_it = buf->get_iter_at_offset(r + pattern.size()); - - auto it = buf->erase(start_it, end_it); - buf->insert_pixbuf(it, pixbuf); - - int alen = text.size(); - text = GetText(buf); - int blen = text.size(); - searchpos -= (alen - blen); - } - } + Abaddon::Get().GetEmojis().ReplaceEmojis(tv->get_buffer()); } void ChatMessageItemContainer::HandleCustomEmojis(Gtk::TextView *tv) { -- cgit v1.2.3