diff --git a/src/librssguard/gui/litehtml/litehtmlviewer.cpp b/src/librssguard/gui/litehtml/litehtmlviewer.cpp
index 1f7fee138..080c71fdf 100755
--- a/src/librssguard/gui/litehtml/litehtmlviewer.cpp
+++ b/src/librssguard/gui/litehtml/litehtmlviewer.cpp
@@ -2,7 +2,10 @@
#include "gui/litehtml/litehtmlviewer.h"
+#include "core/message.h"
#include "gui/webbrowser.h"
+#include "miscellaneous/application.h"
+#include "miscellaneous/skinfactory.h"
#include "network-web/networkfactory.h"
#include
@@ -72,7 +75,77 @@ QUrl LiteHtmlViewer::url() const {
void LiteHtmlViewer::clear() {}
void LiteHtmlViewer::loadMessages(const QList& messages, RootItem* root) {
- setHtml(messages.at(0).m_contents);
+ Skin skin = qApp->skins()->currentSkin();
+ QString messages_layout;
+ QString single_message_layout = skin.m_layoutMarkup;
+
+ for (const Message& message : messages) {
+ QString enclosures;
+ QString enclosure_images;
+
+ for (const Enclosure& enclosure : message.m_enclosures) {
+ QString enc_url;
+
+ if (!enclosure.m_url.contains(QRegularExpression(QSL("^(http|ftp|\\/)")))) {
+ enc_url = QSL(INTERNAL_URL_PASSATTACHMENT) + QL1S("/?") + enclosure.m_url;
+ }
+ else {
+ enc_url = enclosure.m_url;
+ }
+
+ enc_url = QUrl::fromPercentEncoding(enc_url.toUtf8());
+
+ enclosures += skin.m_enclosureMarkup.arg(enc_url,
+ QSL("🧷"),
+ enclosure.m_mimeType);
+
+ if (enclosure.m_mimeType.startsWith(QSL("image/")) &&
+ qApp->settings()->value(GROUP(Messages), SETTING(Messages::DisplayEnclosuresInMessage)).toBool()) {
+ // Add thumbnail image.
+ enclosure_images += skin.m_enclosureImageMarkup.arg(
+ enclosure.m_url,
+ enclosure.m_mimeType,
+ qApp->settings()->value(GROUP(Messages), SETTING(Messages::MessageHeadImageHeight)).toString());
+ }
+ }
+
+ QString msg_date = qApp->settings()->value(GROUP(Messages), SETTING(Messages::UseCustomDate)).toBool()
+ ? message.m_created.toLocalTime().toString(qApp->settings()->value(GROUP(Messages),
+ SETTING(Messages::CustomDateFormat)).toString())
+ : qApp->localization()->loadedLocale().toString(message.m_created.toLocalTime(),
+ QLocale::FormatType::ShortFormat);
+
+ messages_layout.append(single_message_layout
+ .arg(message.m_title,
+ tr("Written by ") + (message.m_author.isEmpty() ?
+ tr("unknown author") :
+ message.m_author),
+ message.m_url,
+ message.m_contents,
+ msg_date,
+ enclosures,
+ enclosure_images,
+ QString::number(message.m_id)));
+ }
+
+ QString msg_contents = skin.m_layoutMarkupWrapper.arg(messages.size() == 1
+ ? messages.at(0).m_title
+ : tr("Newspaper view"),
+ messages_layout);
+ auto* feed = root->getParentServiceRoot()->getItemFromSubTree([messages](const RootItem* it) {
+ return it->kind() == RootItem::Kind::Feed && it->customId() == messages.at(0).m_feedId;
+ })->toFeed();
+ QString base_url;
+
+ if (feed != nullptr) {
+ QUrl url(NetworkFactory::sanitizeUrl(feed->source()));
+
+ if (url.isValid()) {
+ base_url = url.scheme() + QSL("://") + url.host();
+ }
+ }
+
+ setHtml(msg_contents, QUrl::fromUserInput(base_url));
}
double LiteHtmlViewer::verticalScrollBarPosition() const {
diff --git a/src/librssguard/gui/settings/settingsfeedsmessages.cpp b/src/librssguard/gui/settings/settingsfeedsmessages.cpp
index 72b3958ad..ddc3f2d69 100644
--- a/src/librssguard/gui/settings/settingsfeedsmessages.cpp
+++ b/src/librssguard/gui/settings/settingsfeedsmessages.cpp
@@ -32,25 +32,9 @@ SettingsFeedsMessages::SettingsFeedsMessages(Settings* settings, QWidget* parent
"performance of article list with big number of articles."),
true);
-#if defined(USE_WEBENGINE)
- m_ui->m_tabMessages->layout()->removeWidget(m_ui->m_checkDisplayPlaceholders);
- m_ui->m_checkDisplayPlaceholders->hide();
-
connect(m_ui->m_cbShowEnclosuresDirectly, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings);
connect(m_ui->m_spinHeightImageAttachments, static_cast(&QSpinBox::valueChanged),
this, &SettingsFeedsMessages::dirtifySettings);
-#else
- m_ui->m_tabMessages->layout()->removeWidget(m_ui->m_cbShowEnclosuresDirectly);
- m_ui->m_cbShowEnclosuresDirectly->hide();
-
- m_ui->m_tabMessages->layout()->removeWidget(m_ui->m_lblHeightImageAttachments);
- m_ui->m_lblHeightImageAttachments->hide();
-
- m_ui->m_tabMessages->layout()->removeWidget(m_ui->m_spinHeightImageAttachments);
- m_ui->m_spinHeightImageAttachments->hide();
-
- connect(m_ui->m_checkDisplayPlaceholders, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings);
-#endif
connect(m_ui->m_spinRelativeArticleTime, QOverload::of(&QSpinBox::valueChanged), this, [=](int value) {
if (value <= 0) {
@@ -210,14 +194,10 @@ void SettingsFeedsMessages::loadSettings() {
m_ui->m_checkMultilineArticleList->setChecked(settings()->value(GROUP(Messages),
SETTING(Messages::MultilineArticleList)).toBool());
-#if !defined (USE_WEBENGINE)
- m_ui->m_checkDisplayPlaceholders->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::DisplayImagePlaceholders)).toBool());
-#else
m_ui->m_spinHeightImageAttachments->setValue(settings()->value(GROUP(Messages),
SETTING(Messages::MessageHeadImageHeight)).toInt());
m_ui->m_cbShowEnclosuresDirectly->setChecked(settings()->value(GROUP(Messages),
SETTING(Messages::DisplayEnclosuresInMessage)).toBool());
-#endif
m_ui->m_cbFixupArticleDatetime->setChecked(settings()->value(GROUP(Messages),
SETTING(Messages::FixupFutureArticleDateTimes)).toBool());
@@ -282,15 +262,10 @@ void SettingsFeedsMessages::saveSettings() {
settings()->setValue(GROUP(Feeds), Feeds::EnableTooltipsFeedsMessages, m_ui->m_checkShowTooltips->isChecked());
settings()->setValue(GROUP(Messages), Messages::IgnoreContentsChanges, m_ui->m_cmbIgnoreContentsChanges->isChecked());
settings()->setValue(GROUP(Messages), Messages::MultilineArticleList, m_ui->m_checkMultilineArticleList->isChecked());
-
-#if !defined (USE_WEBENGINE)
- settings()->setValue(GROUP(Messages), Messages::DisplayImagePlaceholders, m_ui->m_checkDisplayPlaceholders->isChecked());
-#else
settings()->setValue(GROUP(Messages), Messages::MessageHeadImageHeight, m_ui->m_spinHeightImageAttachments->value());
settings()->setValue(GROUP(Messages),
Messages::DisplayEnclosuresInMessage,
m_ui->m_cbShowEnclosuresDirectly->isChecked());
-#endif
settings()->setValue(GROUP(Messages), Messages::FixupFutureArticleDateTimes, m_ui->m_cbFixupArticleDatetime->isChecked());
diff --git a/src/librssguard/gui/settings/settingsfeedsmessages.ui b/src/librssguard/gui/settings/settingsfeedsmessages.ui
index d779e793c..9e39a4876 100644
--- a/src/librssguard/gui/settings/settingsfeedsmessages.ui
+++ b/src/librssguard/gui/settings/settingsfeedsmessages.ui
@@ -297,28 +297,28 @@
- -
-
+
-
+
- Display placeholders to indicate locations of pictures
+ Fixup date/time of articles which are in the future
- -
+
-
Display attached pictures directly in article
- -
+
-
Bring application window to front once article is opened in external web browser
- -
+
-
Image attachments height
@@ -328,7 +328,7 @@
- -
+
-
px
@@ -341,7 +341,7 @@
- -
+
-
-
@@ -384,7 +384,7 @@
- -
+
-
Qt::Vertical
@@ -397,13 +397,6 @@
- -
-
-
- Fixup date/time of articles which are in the future
-
-
-
@@ -637,7 +630,6 @@
m_checkRemoveReadMessagesOnExit
m_cmbIgnoreContentsChanges
m_cbFixupArticleDatetime
- m_checkDisplayPlaceholders
m_cbShowEnclosuresDirectly
m_checkBringToForegroundAfterMsgOpened
m_spinHeightImageAttachments
diff --git a/src/librssguard/gui/webengine/webengineviewer.cpp b/src/librssguard/gui/webengine/webengineviewer.cpp
index ab2861732..250f369cc 100644
--- a/src/librssguard/gui/webengine/webengineviewer.cpp
+++ b/src/librssguard/gui/webengine/webengineviewer.cpp
@@ -110,6 +110,11 @@ void WebEngineViewer::loadMessages(const QList& messages, RootItem* roo
QString::number(message.m_id)));
}
+ m_messageContents = skin.m_layoutMarkupWrapper.arg(messages.size() == 1
+ ? messages.at(0).m_title
+ : tr("Newspaper view"),
+ messages_layout);
+
m_root = root;
auto* feed = root->getParentServiceRoot()->getItemFromSubTree([messages](const RootItem* it) {
@@ -126,9 +131,6 @@ void WebEngineViewer::loadMessages(const QList& messages, RootItem* roo
}
}
- m_messageContents = skin.m_layoutMarkupWrapper.arg(messages.size() == 1 ? messages.at(0).m_title : tr("Newspaper view"),
- messages_layout);
-
bool previously_enabled = isEnabled();
setEnabled(false);
diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp
index 72818a226..1dae5cc33 100644
--- a/src/librssguard/miscellaneous/settings.cpp
+++ b/src/librssguard/miscellaneous/settings.cpp
@@ -111,19 +111,12 @@ DKEY Messages::ID = "messages";
DKEY Messages::MessageHeadImageHeight = "message_head_image_height";
DVALUE(int) Messages::MessageHeadImageHeightDef = 36;
-#if defined (USE_WEBENGINE)
DKEY Messages::DisplayEnclosuresInMessage = "show_enclosures_in_message";
DVALUE(bool) Messages::DisplayEnclosuresInMessageDef = false;
-#endif
DKEY Messages::EnableMessagePreview = "enable_message_preview";
DVALUE(bool) Messages::EnableMessagePreviewDef = true;
-#if !defined (USE_WEBENGINE)
-DKEY Messages::DisplayImagePlaceholders = "display_image_placeholders";
-DVALUE(bool) Messages::DisplayImagePlaceholdersDef = false;
-#endif
-
DKEY Messages::Zoom = "zoom";
DVALUE(qreal) Messages::ZoomDef = double(1.0f);
diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h
index 816143aac..7d666e844 100644
--- a/src/librssguard/miscellaneous/settings.h
+++ b/src/librssguard/miscellaneous/settings.h
@@ -124,11 +124,6 @@ namespace Messages {
KEY EnableMessagePreview;
VALUE(bool) EnableMessagePreviewDef;
-#if !defined (USE_WEBENGINE)
- KEY DisplayImagePlaceholders;
- VALUE(bool) DisplayImagePlaceholdersDef;
-#endif
-
KEY Zoom;
VALUE(qreal) ZoomDef;