diff --git a/src/lib/app/mainapplication.cpp b/src/lib/app/mainapplication.cpp index 8eaf9f3f1..7edac1fc5 100644 --- a/src/lib/app/mainapplication.cpp +++ b/src/lib/app/mainapplication.cpp @@ -399,8 +399,10 @@ void MainApplication::loadSettings() m_websettings->setAttribute(QWebSettings::JavascriptCanCloseWindows, settings.value("allowJavaScriptCloseWindow", false).toBool()); #endif + const QUrl &styleSheet = userStyleSheet(settings.value("userStyleSheet", QString()).toString(), + settings.value("ignoreSystemColors", false).toBool()); + m_websettings->setUserStyleSheetUrl(styleSheet); setWheelScrollLines(settings.value("wheelScrollLines", wheelScrollLines()).toInt()); - m_websettings->setUserStyleSheetUrl(userStyleSheet(settings.value("userStyleSheet", QString()).toString())); settings.endGroup(); settings.beginGroup("Browser-Fonts"); @@ -834,7 +836,8 @@ void MainApplication::reloadUserStyleSheet() { Settings settings; settings.beginGroup("Web-Browser-Settings"); - m_websettings->setUserStyleSheetUrl(userStyleSheet(settings.value("userStyleSheet", QString()).toString())); + m_websettings->setUserStyleSheetUrl(userStyleSheet(settings.value("userStyleSheet", QString()).toString(), + settings.value("ignoreSystemColors", false).toBool())); settings.endGroup(); } @@ -880,11 +883,18 @@ RegisterQAppAssociation* MainApplication::associationManager() } #endif -QUrl MainApplication::userStyleSheet(const QString &filePath) const +QUrl MainApplication::userStyleSheet(const QString &filePath, bool ignoreSystemColors) const { - // Set default white background for all sites - // Fixes issue with dark themes when sites don't set background - QString userStyle = "html{background-color:white;}"; + QString userStyle; + + if (ignoreSystemColors) { + // Set default white background for all sites + // Fixes issue with dark themes when sites don't set background + // But it also brings issues with background of iframes that assumes + // background will by default will be transparent + userStyle += "html{background-color:white;}"; + } + userStyle += AdBlockManager::instance()->elementHidingRules() + "{ display:none !important;}"; QFile file(filePath); diff --git a/src/lib/app/mainapplication.h b/src/lib/app/mainapplication.h index 7925ed653..890be4cd7 100644 --- a/src/lib/app/mainapplication.h +++ b/src/lib/app/mainapplication.h @@ -148,7 +148,7 @@ private: void translateApp(); void restoreOtherWindows(); - QUrl userStyleSheet(const QString &filePath) const; + QUrl userStyleSheet(const QString &filePath, bool ignoreSystemColors) const; CookieManager* m_cookiemanager; BrowsingLibrary* m_browsingLibrary; diff --git a/src/lib/preferences/preferences.cpp b/src/lib/preferences/preferences.cpp index 2aa981ae6..594c568d2 100644 --- a/src/lib/preferences/preferences.cpp +++ b/src/lib/preferences/preferences.cpp @@ -253,6 +253,7 @@ Preferences::Preferences(QupZilla* mainClass, QWidget* parent) ui->wheelScroll->setValue(settings.value("wheelScrollLines", qApp->wheelScrollLines()).toInt()); ui->defaultZoom->setValue(settings.value("DefaultZoom", 100).toInt()); ui->xssAuditing->setChecked(settings.value("XSSAuditing", false).toBool()); + ui->ignoreSystemColors->setChecked(settings.value("ignoreSystemColors", false).toBool()); //Cache ui->pagesInCache->setValue(settings.value("maximumCachedPages", 3).toInt()); @@ -898,6 +899,7 @@ void Preferences::saveSettings() settings.setValue("LoadTabsOnActivation", ui->dontLoadTabsUntilSelected->isChecked()); settings.setValue("DefaultZoom", ui->defaultZoom->value()); settings.setValue("XSSAuditing", ui->xssAuditing->isChecked()); + settings.setValue("ignoreSystemColors", ui->ignoreSystemColors->isChecked()); #ifdef Q_OS_WIN settings.setValue("CheckDefaultBrowser", ui->checkDefaultBrowser->isChecked()); #endif diff --git a/src/lib/preferences/preferences.ui b/src/lib/preferences/preferences.ui index e1d1b11a9..c301e4594 100644 --- a/src/lib/preferences/preferences.ui +++ b/src/lib/preferences/preferences.ui @@ -596,11 +596,11 @@ - <b>Background<b/> + <b>Colors<b/> - + Qt::Vertical @@ -641,6 +641,13 @@ + + + + Ignore system colors (for dark themes) + + +