From 9da1243ca68147509de215c12bd5d12d862c4af5 Mon Sep 17 00:00:00 2001 From: Juraj Oravec Date: Sun, 23 Jun 2024 23:16:58 +0200 Subject: [PATCH] SiteInfo: Fix ForceDarkMode update after a change Signed-off-by: Juraj Oravec --- src/lib/other/siteinfo.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/lib/other/siteinfo.cpp b/src/lib/other/siteinfo.cpp index cc4a711a6..f0572ca68 100644 --- a/src/lib/other/siteinfo.cpp +++ b/src/lib/other/siteinfo.cpp @@ -379,14 +379,26 @@ void SiteInfo::saveSiteSettings() siteSettings.server = m_baseUrl.host(); - if (!(siteSettings == mApp->siteSettingsManager()->getSiteSettings(m_baseUrl))) { + auto storedSiteSettings = mApp->siteSettingsManager()->getSiteSettings(m_baseUrl); + + if (!(siteSettings == storedSiteSettings)) { mApp->siteSettingsManager()->setSiteSettings(siteSettings); #if QTWEBENGINECORE_VERSION >= QT_VERSION_CHECK(6, 7, 0) - m_view->page()->settings()->setAttribute( - QWebEngineSettings::ForceDarkMode, - siteSettings.attributes[QWebEngineSettings::ForceDarkMode] - ); + if (siteSettings.attributes[QWebEngineSettings::ForceDarkMode] != storedSiteSettings.attributes[QWebEngineSettings::ForceDarkMode]) { + bool enableForceDarkMode = false; + + if (siteSettings.attributes[QWebEngineSettings::ForceDarkMode] == SiteSettingsManager::Default) { + enableForceDarkMode = mApp->siteSettingsManager()->getDefaultPermission(QWebEngineSettings::ForceDarkMode) == SiteSettingsManager::Allow; + } + else { + enableForceDarkMode = siteSettings.attributes[QWebEngineSettings::ForceDarkMode] == SiteSettingsManager::Allow; + } + m_view->page()->settings()->setAttribute( + QWebEngineSettings::ForceDarkMode, + enableForceDarkMode + ); + } #endif } }