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)
+
+
+