From d5cb1d39110d93e3b7cb16f34afadb40ac59c761 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Tue, 8 Oct 2024 13:40:44 +0200 Subject: [PATCH 1/3] ColorSchemeParser: move node finder to separate function --- src/skin/legacy/colorschemeparser.cpp | 90 +++++++++++++-------------- src/skin/legacy/colorschemeparser.h | 3 + 2 files changed, 47 insertions(+), 46 deletions(-) diff --git a/src/skin/legacy/colorschemeparser.cpp b/src/skin/legacy/colorschemeparser.cpp index 363919344bf..0fa4c5df987 100644 --- a/src/skin/legacy/colorschemeparser.cpp +++ b/src/skin/legacy/colorschemeparser.cpp @@ -15,59 +15,57 @@ void ColorSchemeParser::setupLegacyColorSchemes(const QDomElement& docElem, UserSettingsPointer pConfig, QString* pStyle, SkinContext* pContext) { - QDomNode schemesNode = docElem.namedItem("Schemes"); - - bool bSelectedColorSchemeFound = false; - - if (!schemesNode.isNull() && schemesNode.isElement()) { - QString selectedSchemeName = pConfig->getValueString(ConfigKey("[Config]","Scheme")); - QDomNode schemeNode = schemesNode.firstChild(); - - if (selectedSchemeName.isEmpty()) { - // If no scheme selected, accept the first one in the file - bSelectedColorSchemeFound = true; + QDomNode schemeNode = findConfiguredColorSchemeNode(docElem, pConfig); + + if (!schemeNode.isNull()) { + QSharedPointer pImgSrc = + QSharedPointer(parseFilters(schemeNode.namedItem("Filters"))); + WPixmapStore::setLoader(pImgSrc); + WImageStore::setLoader(pImgSrc); + WSkinColor::setLoader(pImgSrc); + + // This calls SkinContext::updateVariables which iterates over all + // nodes in the selected color scheme node. + pContext->updateVariables(schemeNode); + + if (pStyle) { + // read scheme's stylesheet (node text or stylesheet file) + *pStyle = LegacySkinParser::getStyleFromNode(schemeNode); } + } else { + QSharedPointer pImgSrc = + QSharedPointer(new ImgLoader()); + WPixmapStore::setLoader(pImgSrc); + WImageStore::setLoader(pImgSrc); + WSkinColor::setLoader(pImgSrc); + } +} - while (!schemeNode.isNull() && !bSelectedColorSchemeFound) { - QString schemeName = XmlParse::selectNodeQString(schemeNode, "Name"); - if (schemeName == selectedSchemeName) { - bSelectedColorSchemeFound = true; - } else { - schemeNode = schemeNode.nextSibling(); - } - } +QDomNode ColorSchemeParser::findConfiguredColorSchemeNode( + const QDomElement& docElem, + UserSettingsPointer pConfig) { + QDomNode schemesNode = docElem.namedItem("Schemes"); + if (schemesNode.isNull() || !schemesNode.isElement()) { + return {}; + } - if (!bSelectedColorSchemeFound) { - // If we didn't find a matching color scheme, pick the first one - schemeNode = schemesNode.firstChild(); - bSelectedColorSchemeFound = !schemeNode.isNull(); - } + QDomNode schemeNode = schemesNode.firstChild(); + const QString selectedSchemeName = pConfig->getValueString(ConfigKey("[Config]", "Scheme")); + if (selectedSchemeName.isEmpty()) { + // If no scheme selected, accept the first one in the file + return schemeNode; + } - if (bSelectedColorSchemeFound) { - QSharedPointer imsrc = - QSharedPointer(parseFilters(schemeNode.namedItem("Filters"))); - WPixmapStore::setLoader(imsrc); - WImageStore::setLoader(imsrc); - WSkinColor::setLoader(imsrc); - - // This calls SkinContext::updateVariables which iterates over all - // nodes in the selected color scheme node. - pContext->updateVariables(schemeNode); - - if (pStyle) { - // read scheme's stylesheet (node text or stylesheet file) - *pStyle = LegacySkinParser::getStyleFromNode(schemeNode); - } + while (!schemeNode.isNull()) { + QString schemeName = XmlParse::selectNodeQString(schemeNode, "Name"); + if (schemeName == selectedSchemeName) { + return schemeNode; } + schemeNode = schemeNode.nextSibling(); } - if (!bSelectedColorSchemeFound) { - QSharedPointer imsrc = - QSharedPointer(new ImgLoader()); - WPixmapStore::setLoader(imsrc); - WImageStore::setLoader(imsrc); - WSkinColor::setLoader(imsrc); - } + // If we didn't find a matching color scheme, pick the first one + return schemesNode.firstChild(); } ImgSource* ColorSchemeParser::parseFilters(const QDomNode& filt) { diff --git a/src/skin/legacy/colorschemeparser.h b/src/skin/legacy/colorschemeparser.h index dc39a21a55b..a49c8ecbbad 100644 --- a/src/skin/legacy/colorschemeparser.h +++ b/src/skin/legacy/colorschemeparser.h @@ -13,6 +13,9 @@ class ColorSchemeParser { UserSettingsPointer pConfig, QString* pStyle, SkinContext* pContext); + static QDomNode findConfiguredColorSchemeNode( + const QDomElement& docElem, + UserSettingsPointer pConfig); private: static ImgSource* parseFilters(const QDomNode& filter); From 3c7400fc1e30598dfd3446b6bc86ea8ea636d87a Mon Sep 17 00:00:00 2001 From: ronso0 Date: Tue, 8 Oct 2024 13:40:59 +0200 Subject: [PATCH 2/3] LegacySkinParser: look for LaunchImage style in configured color scheme --- src/skin/legacy/legacyskinparser.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/skin/legacy/legacyskinparser.cpp b/src/skin/legacy/legacyskinparser.cpp index 5d793ef4f20..480928a3b66 100644 --- a/src/skin/legacy/legacyskinparser.cpp +++ b/src/skin/legacy/legacyskinparser.cpp @@ -2510,8 +2510,23 @@ void LegacySkinParser::addShortcutToToolTip(WBaseWidget* pWidget, pWidget->appendBaseTooltip(tooltip); } -QString LegacySkinParser::parseLaunchImageStyle(const QDomNode& node) { - return m_pContext->selectString(node, "LaunchImageStyle"); +QString LegacySkinParser::parseLaunchImageStyle(const QDomNode& skinDoc) { + QString schemeLaunchImageStyle; + // Check if the skins has color schemes + const QDomNode colorSchemeNode = + ColorSchemeParser::findConfiguredColorSchemeNode( + skinDoc.toElement(), + m_pConfig); + if (!colorSchemeNode.isNull()) { + // Check if the selected scheme has a node with a string + schemeLaunchImageStyle = m_pContext->selectString(colorSchemeNode, "LaunchImageStyle"); + } + if (!schemeLaunchImageStyle.isEmpty()) { + return schemeLaunchImageStyle; + } else { + // Look for the skin's general LaunchImage style + return m_pContext->selectString(skinDoc, "LaunchImageStyle"); + } } QString LegacySkinParser::stylesheetAbsIconPaths(QString& style) { From d25b999e9340b1f33ede33f444c0d0a59ac1f46f Mon Sep 17 00:00:00 2001 From: ronso0 Date: Tue, 8 Oct 2024 13:41:21 +0200 Subject: [PATCH 3/3] LateNight/Shade: adjust LaunchImage style for color schemes --- .../LateNight/classic/style/mixxx_logo.svg | 62 +++++++++++++ .../LateNight/classic/style/progressbar.svg | 82 +++++++++++++++++ .../classic/style/progressbar_bg.svg | 83 +++++++++++++++++ res/skins/LateNight/skin.xml | 53 +++++++++++ res/skins/Shade/skin.xml | 89 ++++++++++++++----- 5 files changed, 346 insertions(+), 23 deletions(-) create mode 100644 res/skins/LateNight/classic/style/mixxx_logo.svg create mode 100644 res/skins/LateNight/classic/style/progressbar.svg create mode 100644 res/skins/LateNight/classic/style/progressbar_bg.svg diff --git a/res/skins/LateNight/classic/style/mixxx_logo.svg b/res/skins/LateNight/classic/style/mixxx_logo.svg new file mode 100644 index 00000000000..c56927cb391 --- /dev/null +++ b/res/skins/LateNight/classic/style/mixxx_logo.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/skins/LateNight/classic/style/progressbar.svg b/res/skins/LateNight/classic/style/progressbar.svg new file mode 100644 index 00000000000..2cc51c2d9d4 --- /dev/null +++ b/res/skins/LateNight/classic/style/progressbar.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/skins/LateNight/classic/style/progressbar_bg.svg b/res/skins/LateNight/classic/style/progressbar_bg.svg new file mode 100644 index 00000000000..c354a897b17 --- /dev/null +++ b/res/skins/LateNight/classic/style/progressbar_bg.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/skins/LateNight/skin.xml b/res/skins/LateNight/skin.xml index a553f5500b4..d4e00785376 100644 --- a/res/skins/LateNight/skin.xml +++ b/res/skins/LateNight/skin.xml @@ -137,6 +137,32 @@ SliderScheme ...exactly! StyleScheme icons & backgrounds for library, splitters, spinnies, VU meter, default cover art etc. --> + + LaunchImage { + background-color: #0f0f0f; + } + QLabel { + image: url(skins:LateNight/palemoon/style/mixxx_logo.svg); + padding: 0; + margin: 0px 2px 0px 2px; + border: none; + min-width: 160px; + max-width: 160px; + min-height: 40px; + max-height: 40px; + } + QProgressBar { + background: url(skins:LateNight/palemoon/style/progressbar_bg.svg); + border: none; + min-width: 164px; + max-width: 164px; + min-height: 5px; + max-height: 5px; + } + QProgressBar::chunk { + background: url(skins:LateNight/palemoon/style/progressbar.svg); + } +