refactor(emojis): use std::variant and QStringView (#6714)
This commit is contained in:
@@ -2363,16 +2363,15 @@ void MessageBuilder::addWords(
|
||||
for (auto variant :
|
||||
getApp()->getEmotes()->getEmojis()->parse(preText))
|
||||
{
|
||||
boost::apply_visitor(variant::Overloaded{
|
||||
[&](const EmotePtr &emote) {
|
||||
this->addEmoji(emote);
|
||||
},
|
||||
[&](QString text) {
|
||||
this->addTextOrEmote(
|
||||
state, std::move(text));
|
||||
},
|
||||
},
|
||||
variant);
|
||||
std::visit(variant::Overloaded{
|
||||
[&](const EmotePtr &emote) {
|
||||
this->addEmoji(emote);
|
||||
},
|
||||
[&](QStringView text) {
|
||||
this->addTextOrEmote(state, text.toString());
|
||||
},
|
||||
},
|
||||
variant);
|
||||
}
|
||||
|
||||
cursor += preText.size();
|
||||
@@ -2388,16 +2387,15 @@ void MessageBuilder::addWords(
|
||||
// split words
|
||||
for (auto variant : getApp()->getEmotes()->getEmojis()->parse(word))
|
||||
{
|
||||
boost::apply_visitor(variant::Overloaded{
|
||||
[&](const EmotePtr &emote) {
|
||||
this->addEmoji(emote);
|
||||
},
|
||||
[&](QString text) {
|
||||
this->addTextOrEmote(state,
|
||||
std::move(text));
|
||||
},
|
||||
},
|
||||
variant);
|
||||
std::visit(variant::Overloaded{
|
||||
[&](const EmotePtr &emote) {
|
||||
this->addEmoji(emote);
|
||||
},
|
||||
[&](QStringView text) {
|
||||
this->addTextOrEmote(state, text.toString());
|
||||
},
|
||||
},
|
||||
variant);
|
||||
}
|
||||
|
||||
cursor += word.size() + 1;
|
||||
|
||||
@@ -929,9 +929,9 @@ void SingleLineTextElement::addToContainer(MessageLayoutContainer &container,
|
||||
for (const auto &parsedWord :
|
||||
app->getEmotes()->getEmojis()->parse(word))
|
||||
{
|
||||
if (parsedWord.type() == typeid(QString))
|
||||
if (std::holds_alternative<QStringView>(parsedWord))
|
||||
{
|
||||
currentText += boost::get<QString>(parsedWord);
|
||||
currentText += std::get<QStringView>(parsedWord);
|
||||
QString prev =
|
||||
currentText; // only increments the ref-count
|
||||
currentText =
|
||||
@@ -943,9 +943,9 @@ void SingleLineTextElement::addToContainer(MessageLayoutContainer &container,
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (parsedWord.type() == typeid(EmotePtr))
|
||||
else if (std::holds_alternative<EmotePtr>(parsedWord))
|
||||
{
|
||||
auto emote = boost::get<EmotePtr>(parsedWord);
|
||||
auto emote = std::get<EmotePtr>(parsedWord);
|
||||
auto image =
|
||||
emote->images.getImageOrLoaded(container.getScale());
|
||||
if (!image->isEmpty())
|
||||
|
||||
Reference in New Issue
Block a user