From ad3069fd697ff8f2d12eba620fb4fdb62a8a115e Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 14 Feb 2025 12:20:24 +0100 Subject: [PATCH] enable for skins to define forced QSS to be loaded even when skin colors are not enabled --- resources/rssguard.qrc | 1 + resources/skins/nudus-dark/qt_style.qss | 28 ------------------- src/librssguard/miscellaneous/skinfactory.cpp | 17 ++++++++++- src/librssguard/miscellaneous/skinfactory.h | 1 + 4 files changed, 18 insertions(+), 29 deletions(-) diff --git a/resources/rssguard.qrc b/resources/rssguard.qrc index 447a7cd7d..21924a220 100644 --- a/resources/rssguard.qrc +++ b/resources/rssguard.qrc @@ -96,6 +96,7 @@ skins/nudus-dark/html_style.css skins/nudus-dark/metadata.xml skins/nudus-dark/qt_style.qss + skins/nudus-dark/qt_style_forced.qss skins/nudus-dark/lite_html_style.css skins/nudus-light/html_style.css diff --git a/resources/skins/nudus-dark/qt_style.qss b/resources/skins/nudus-dark/qt_style.qss index af45af412..e69de29bb 100644 --- a/resources/skins/nudus-dark/qt_style.qss +++ b/resources/skins/nudus-dark/qt_style.qss @@ -1,28 +0,0 @@ -QListWidget, -QScrollArea { - border: 1px solid palette(light); -} - - -QPlainTextEdit:focus { - border: 1px solid palette(highlight); -} - -QToolTip { - background-color: palette(window); - border: 1px solid palette(highlight); - border-radius: 2px; -} - -QProgressBar { - background-color: palette(highlight); - color: palette(window); -} - -QSplitter::handle { - background: palette(light); -} - -QStatusBar::item { - border: none; -} diff --git a/src/librssguard/miscellaneous/skinfactory.cpp b/src/librssguard/miscellaneous/skinfactory.cpp index 16ed9aa87..754e34762 100644 --- a/src/librssguard/miscellaneous/skinfactory.cpp +++ b/src/librssguard/miscellaneous/skinfactory.cpp @@ -195,15 +195,21 @@ void SkinFactory::loadSkinFromData(const Skin& skin) { #endif } + QString qss_to_set = skin.m_rawForcedData; + if (m_useSkinColors && !skin.m_rawData.isEmpty()) { if (qApp->styleSheet().simplified().isEmpty()) { - qApp->setStyleSheet(skin.m_rawData); + qss_to_set += QSL("\r\n") + skin.m_rawData; } else { qCriticalNN << LOGSEC_GUI << "Skipped setting of application style and skin because there is already some style set."; } } + + qss_to_set = qApp->styleSheet() + QSL("\r\n") + qss_to_set; + + qApp->setStyleSheet(qss_to_set); } void SkinFactory::setCurrentSkinName(const QString& skin_name) { @@ -486,6 +492,15 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool lite, bool* ok) const skin.m_enclosureMarkup = loadSkinFile(skin_folder_no_sep, lite, QSL("html_enclosure_every.html"), real_base_skin_folder); skin.m_rawData = loadSkinFile(skin_folder_no_sep, lite, QSL("qt_style.qss"), real_base_skin_folder); + + try { + skin.m_rawForcedData = + loadSkinFile(skin_folder_no_sep, lite, QSL("qt_style_forced.qss"), real_base_skin_folder); + } + catch (...) { + qWarningNN << "Skin" << QUOTE_W_SPACE(skin_name) << "does not support forced QSS."; + } + skin.m_adblocked = loadSkinFile(skin_folder_no_sep, lite, QSL("html_adblocked.html"), real_base_skin_folder); skin.m_skinFolder = skin_folder_no_sep; diff --git a/src/librssguard/miscellaneous/skinfactory.h b/src/librssguard/miscellaneous/skinfactory.h index 91217d1e1..8b15766c1 100644 --- a/src/librssguard/miscellaneous/skinfactory.h +++ b/src/librssguard/miscellaneous/skinfactory.h @@ -57,6 +57,7 @@ struct RSSGUARD_DLLSPEC Skin { QString m_version; QString m_description; QString m_rawData; + QString m_rawForcedData; QString m_adblocked; QString m_layoutMarkupWrapper; QString m_enclosureImageMarkup;