");
+ // Add links to enclosures.
for (const Enclosure& enc : message.m_enclosures) {
- html.m_html += QString("[%2]
%1").arg(enc.m_url, enc.m_mimeType);
+ html.m_html += QSL("[%2]
%1").arg(enc.m_url, enc.m_mimeType);
}
+ // Display enclosures which are pictures if user has it enabled.
+ auto first_enc_break_added = false;
+
+ if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::DisplayEnclosuresInMessage)).toBool()) {
+ for (const Enclosure& enc : message.m_enclosures) {
+ if (enc.m_mimeType.startsWith(QSL("image/"))) {
+ if (!first_enc_break_added) {
+ html.m_html += QSL("
");
+ first_enc_break_added = true;
+ }
+
+ html.m_html += QSL("
![](\"%1\")
").arg(enc.m_url);
+ }
+ }
+ }
+
+ // Append actual contents of article and convert to HTML if needed.
+ html.m_html += is_plain ? Qt::convertFromPlainText(message.m_contents) : message.m_contents;
+
static QRegularExpression img_tag_rgx("\\
![]()
]*src\\s*=\\s*[\"\']([^\"\']*)[\"\'][^\\>]*\\>",
QRegularExpression::PatternOption::CaseInsensitiveOption |
QRegularExpression::PatternOption::InvertedGreedinessOption);
- QRegularExpressionMatchIterator i = img_tag_rgx.globalMatch(message.m_contents);
+
+ // Extract all images links from article to be appended to end of article.
+ QRegularExpressionMatchIterator i = img_tag_rgx.globalMatch(html.m_html);
QString pictures_html;
while (i.hasNext()) {
QRegularExpressionMatch match = i.next();
auto captured_url = match.captured(1);
- pictures_html += QString("
[%1]
%2").arg(tr("image"), captured_url);
+ pictures_html += QSL("
[%1]
%2").arg(tr("image"), captured_url);
}
- QString cnts = message.m_contents;
-
+ // Make alla images clickable as links and also resize them if user has it setup.
auto forced_img_size = qApp->settings()->value(GROUP(Messages), SETTING(Messages::MessageHeadImageHeight)).toInt();
// Fixup all "img" tags.
- html.m_html += cnts.replace(img_tag_rgx,
- QSL("
![](\"\\1\")
")
- .arg(forced_img_size <= 0 ? QString() : QString::number(forced_img_size)));
+ html.m_html = html.m_html.replace(img_tag_rgx,
+ QSL("
![](\"\\1\")
")
+ .arg(forced_img_size <= 0 ? QString() : QString::number(forced_img_size)));
+
+ // Append generated list of images.
html.m_html += pictures_html;
}
+ // Close contents.
html.m_html += QSL("
");
QString base_url;