diff --git a/src/librssguard/3rd-party/qlitehtml/container_qpainter.cpp b/src/librssguard/3rd-party/qlitehtml/container_qpainter.cpp
index ab11ce7a8..31647e0b9 100644
--- a/src/librssguard/3rd-party/qlitehtml/container_qpainter.cpp
+++ b/src/librssguard/3rd-party/qlitehtml/container_qpainter.cpp
@@ -619,9 +619,22 @@ void DocumentContainerPrivate::load_image(const litehtml::tchar_t *src,
if (m_pixmaps.contains(url))
return;
- QPixmap pixmap;
- pixmap.loadFromData(m_dataCallback(url));
- m_pixmaps.insert(url, pixmap);
+ if (qtSrc.startsWith(QStringLiteral("data:image/"))) {
+ // We have Base64 image embedded directly in HTML.
+ const QStringList splitSrc = qtSrc.split(',');
+
+ if (splitSrc.size() == 2) {
+ QPixmap pixmap;
+
+ pixmap.loadFromData(QByteArray::fromBase64(splitSrc.at(1).toLocal8Bit()));
+ m_pixmaps.insert(url, pixmap);
+ }
+ }
+ else {
+ QPixmap pixmap;
+ pixmap.loadFromData(m_dataCallback(url));
+ m_pixmaps.insert(url, pixmap);
+ }
}
void DocumentContainerPrivate::get_image_size(const litehtml::tchar_t *src,
diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp
index 8c819ff5e..00a1285ec 100644
--- a/src/librssguard/gui/dialogs/formmain.cpp
+++ b/src/librssguard/gui/dialogs/formmain.cpp
@@ -251,6 +251,8 @@ void FormMain::prepareMenus() {
m_trayMenu->addAction(m_ui->m_actionUpdateAllItems);
m_trayMenu->addAction(m_ui->m_actionMarkAllItemsRead);
m_trayMenu->addSeparator();
+
+ m_trayMenu->addAction(m_ui->m_actionSwitchMainWindow);
m_trayMenu->addAction(m_ui->m_actionSettings);
m_trayMenu->addAction(m_ui->m_actionQuit);
@@ -501,7 +503,7 @@ void FormMain::updateFeedButtonsAvailability() {
}
void FormMain::switchVisibility(bool force_hide) {
- if (force_hide || isVisible()) {
+ if (force_hide || (isVisible() && !isMinimized())) {
if (SystemTrayIcon::isSystemTrayDesired() && SystemTrayIcon::isSystemTrayAreaAvailable()) {
if (QApplication::activeModalWidget() != nullptr) {
diff --git a/src/librssguard/gui/dialogs/formmain.ui b/src/librssguard/gui/dialogs/formmain.ui
index 61f646c69..1165fe081 100644
--- a/src/librssguard/gui/dialogs/formmain.ui
+++ b/src/librssguard/gui/dialogs/formmain.ui
@@ -436,7 +436,7 @@
false
- Minimize (or hide) main window
+ Switch main window visibility
Hides main window if it is visible and shows it if it is hidden.
diff --git a/src/librssguard/gui/systemtrayicon.cpp b/src/librssguard/gui/systemtrayicon.cpp
index dd86db59a..b2be06235 100644
--- a/src/librssguard/gui/systemtrayicon.cpp
+++ b/src/librssguard/gui/systemtrayicon.cpp
@@ -50,9 +50,9 @@ SystemTrayIcon::~SystemTrayIcon() {
void SystemTrayIcon::onActivated(QSystemTrayIcon::ActivationReason reason) {
switch (reason) {
- case SystemTrayIcon::Trigger:
- case SystemTrayIcon::DoubleClick:
- case SystemTrayIcon::MiddleClick:
+ case SystemTrayIcon::ActivationReason::Trigger:
+ case SystemTrayIcon::ActivationReason::DoubleClick:
+ case SystemTrayIcon::ActivationReason::MiddleClick:
static_cast(parent())->switchVisibility();
break;
diff --git a/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.cpp b/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.cpp
index 1c81e64d9..9f980c259 100644
--- a/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.cpp
+++ b/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.cpp
@@ -85,14 +85,21 @@ void LiteHtmlViewer::setUrl(const QUrl& url) {
loop.exec();
- auto net_error = m_downloader->lastOutputError();
+ const auto net_error = m_downloader->lastOutputError();
+ const QString content_type = m_downloader->lastContentType().toString();
if (net_error != QNetworkReply::NetworkError::NoError) {
is_error = true;
html_str = "Error!";
}
else {
- html_str = QString::fromUtf8(m_downloader->lastOutputData());
+ if (content_type.startsWith(QSL("image/"))) {
+ html_str =
+ "
";
+ }
+ else {
+ html_str = QString::fromUtf8(m_downloader->lastOutputData());
+ }
}
}