Don't render custom emojis in code blocks

BUG: 458993
This commit is contained in:
Tobias Fella
2022-11-17 21:38:49 +01:00
parent debf2e41d6
commit 2920247ab4
2 changed files with 15 additions and 8 deletions

View File

@@ -163,13 +163,20 @@ QHash<int, QByteArray> CustomEmojiModel::roleNames() const
QString CustomEmojiModel::preprocessText(const QString &text)
{
auto handledText = text;
for (const auto &emoji : std::as_const(m_emojis)) {
handledText.replace(
emoji.regexp,
QStringLiteral(R"(<img data-mx-emoticon="" src="%1" alt="%2" title="%2" height="32" vertical-align="middle" />)").arg(emoji.url, emoji.name));
auto parts = text.split("```");
bool skip = true;
for (auto &part : parts) {
skip = !skip;
if (skip) {
continue;
}
for (const auto &emoji : std::as_const(m_emojis)) {
part.replace(
emoji.regexp,
QStringLiteral(R"(<img data-mx-emoticon="" src="%1" alt="%2" title="%2" height="32" vertical-align="middle" />)").arg(emoji.url, emoji.name));
}
}
return handledText;
return parts.join("```");
}
QVariantList CustomEmojiModel::filterModel(const QString &filter)