This commit is contained in:
Martin Rotter 2022-04-07 10:30:07 +02:00
parent 15c0214286
commit c713b02b13
5 changed files with 32 additions and 10 deletions

View file

@ -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,

View file

@ -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) {

View file

@ -436,7 +436,7 @@
<bool>false</bool>
</property>
<property name="text">
<string>Minimize (or hide) main window</string>
<string>Switch main window visibility</string>
</property>
<property name="toolTip">
<string>Hides main window if it is visible and shows it if it is hidden.</string>

View file

@ -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<FormMain*>(parent())->switchVisibility();
break;

View file

@ -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 =
"<img src=\"data:image/gif;base64,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\">";
}
else {
html_str = QString::fromUtf8(m_downloader->lastOutputData());
}
}
}