Skip to content
Snippets Groups Projects
Unverified Commit 850d139e authored by tastytea's avatar tastytea
Browse files

Make custom emoticons twice as high as the font.

parent 5ac11954
No related branches found
No related tags found
No related merge requests found
Pipeline #2397 failed
......@@ -561,25 +561,28 @@ TimelineModel::data(const mtx::events::collections::TimelineEvents &event, int r
}
// TODO(Nico): Don't parse html with a regex
const static QRegularExpression matchEmoticonHeight(
"(<img data-mx-emoticon [^>]*)height=\"([^\"]*)\"([^>]*>)");
formattedBody_.replace(matchEmoticonHeight, QString("\\1 height=\"%1\"\\3").arg(ascent));
const static QRegularExpression matchIsImg("<img [^>]+>");
auto itIsImg = matchIsImg.globalMatch(formattedBody_);
while (itIsImg.hasNext()) {
// The current <img> tag.
const QString curImg = itIsImg.next().captured(0);
// The replacement for the current <img>.
auto imgReplacement = curImg;
// Construct image parameters later used by MxcImageProvider.
QString imgParams;
if (curImg.contains("height")) {
const static QRegularExpression matchImgHeight("height=[\"\']?(\\d+)[\"\']?");
const auto height = matchImgHeight.match(curImg).captured(1).toInt();
const static QRegularExpression matchImgHeight("height=([\"\']?)(\\d+)([\"\']?)");
// Make emoticons twice as high as the font.
if (curImg.contains("data-mx-emoticon")) {
imgReplacement =
imgReplacement.replace(matchImgHeight, "height=\\1%1\\3").arg(ascent * 2);
}
const auto height = matchImgHeight.match(imgReplacement).captured(2).toInt();
imgParams = QString("?scale&height=%1").arg(height);
}
// Replace src in current <img>.
auto imgReplacement = curImg;
const static QRegularExpression matchImgUri("src=\"mxc://([^\"]*)\"");
imgReplacement.replace(matchImgUri,
QString("src=\"image://mxcImage/\\1%1\"").arg(imgParams));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment