Eliminate hardcoded colors from qml to make theming more flexible

This commit is contained in:
luisangelsm
2026-03-07 19:58:24 +01:00
parent d65ce375df
commit 7103d0de3c
13 changed files with 187 additions and 38 deletions

View File

@ -65,7 +65,22 @@
"selectedColor": "#121212",
"showDropShadow": true,
"textColor": "#a8a8a8",
"titleColor": "#ffffff"
"titleColor": "#ffffff",
"newItemColor": "#ffffcc00",
"buttonColor": "#ffcc00",
"buttonTextColor": "#ffffff",
"linkColor": "#ffcc00",
"scrollbarColor": "#88424242",
"scrollbarBorderColor": "#aa313131",
"infoScrollbarColor": "#ff424246",
"comicCoverBorderColor": "#30ffffff",
"folderCoverBorderColor": "#20ffffff",
"placeholderFolder1Color": "#20000000",
"placeholderFolder1BorderColor": "#20ffffff",
"placeholderFolder2Color": "#88000000",
"placeholderFolder2BorderColor": "#20ffffff",
"currentComicCoverShadowColor": "#ff000000",
"buttonShadowColor": "#aa000000"
},
"helpAboutDialog": {
"headingColor": "#302f2d",

View File

@ -65,7 +65,22 @@
"selectedColor": "#121212",
"showDropShadow": true,
"textColor": "#a8a8a8",
"titleColor": "#ffffff"
"titleColor": "#ffffff",
"newItemColor": "#ffffcc00",
"buttonColor": "#ffcc00",
"buttonTextColor": "#ffffff",
"linkColor": "#ffcc00",
"scrollbarColor": "#88424242",
"scrollbarBorderColor": "#aa313131",
"infoScrollbarColor": "#ff424246",
"comicCoverBorderColor": "#30ffffff",
"folderCoverBorderColor": "#20ffffff",
"placeholderFolder1Color": "#20000000",
"placeholderFolder1BorderColor": "#20ffffff",
"placeholderFolder2Color": "#88000000",
"placeholderFolder2BorderColor": "#20ffffff",
"currentComicCoverShadowColor": "#ff000000",
"buttonShadowColor": "#aa000000"
},
"helpAboutDialog": {
"headingColor": "#e0e0e0",

View File

@ -65,7 +65,22 @@
"selectedColor": "#ffffff",
"showDropShadow": true,
"textColor": "#636363",
"titleColor": "#121212"
"titleColor": "#121212",
"newItemColor": "#ffffcc00",
"buttonColor": "#ffcc00",
"buttonTextColor": "#ffffff",
"linkColor": "#ffcc00",
"scrollbarColor": "#88424242",
"scrollbarBorderColor": "#aa313131",
"infoScrollbarColor": "#ff424246",
"comicCoverBorderColor": "#30ffffff",
"folderCoverBorderColor": "#20ffffff",
"placeholderFolder1Color": "#20000000",
"placeholderFolder1BorderColor": "#20ffffff",
"placeholderFolder2Color": "#88000000",
"placeholderFolder2BorderColor": "#20ffffff",
"currentComicCoverShadowColor": "#ff000000",
"buttonShadowColor": "#aa000000"
},
"helpAboutDialog": {
"headingColor": "#302f2d",

View File

@ -247,6 +247,33 @@ struct GridAndInfoViewTheme {
// Blur overlay background (FlowView always, GridView when background image enabled)
QColor backgroundBlurOverlayColor;
// New item indicator dot (cover grid and folder grid)
QColor newItemColor;
// Button colors
QColor buttonColor;
QColor buttonTextColor;
QColor linkColor;
// Scrollbar colors — content grid (on backgroundColor)
QColor scrollbarColor;
QColor scrollbarBorderColor;
// Scrollbar color — info panel (on infoBackgroundColor)
QColor infoScrollbarColor;
// Cover overlay / border effects
QColor comicCoverBorderColor;
QColor folderCoverBorderColor;
QColor placeholderFolder1Color;
QColor placeholderFolder1BorderColor;
QColor placeholderFolder2Color;
QColor placeholderFolder2BorderColor;
// Drop shadow effects
QColor currentComicCoverShadowColor;
QColor buttonShadowColor;
};
struct MainToolbarThemeTemplates {

View File

@ -174,6 +174,33 @@ struct GridAndInfoViewParams {
// Blur overlay background (FlowView always, GridView when background image enabled)
QColor backgroundBlurOverlayColor;
// New item indicator dot
QColor newItemColor;
// Button colors
QColor buttonColor;
QColor buttonTextColor;
QColor linkColor;
// Scrollbar colors — content grid
QColor scrollbarColor;
QColor scrollbarBorderColor;
// Scrollbar color — info panel
QColor infoScrollbarColor;
// Cover overlay / border effects
QColor comicCoverBorderColor;
QColor folderCoverBorderColor;
QColor placeholderFolder1Color;
QColor placeholderFolder1BorderColor;
QColor placeholderFolder2Color;
QColor placeholderFolder2BorderColor;
// Drop shadow effects
QColor currentComicCoverShadowColor;
QColor buttonShadowColor;
};
struct MainToolbarParams {
@ -515,6 +542,21 @@ Theme makeTheme(const ThemeParams &params)
theme.gridAndInfoView.continueReadingBackgroundColor = giv.continueReadingBackgroundColor;
theme.gridAndInfoView.continueReadingColor = giv.continueReadingColor;
theme.gridAndInfoView.backgroundBlurOverlayColor = giv.backgroundBlurOverlayColor;
theme.gridAndInfoView.newItemColor = giv.newItemColor;
theme.gridAndInfoView.buttonColor = giv.buttonColor;
theme.gridAndInfoView.buttonTextColor = giv.buttonTextColor;
theme.gridAndInfoView.linkColor = giv.linkColor;
theme.gridAndInfoView.scrollbarColor = giv.scrollbarColor;
theme.gridAndInfoView.scrollbarBorderColor = giv.scrollbarBorderColor;
theme.gridAndInfoView.infoScrollbarColor = giv.infoScrollbarColor;
theme.gridAndInfoView.comicCoverBorderColor = giv.comicCoverBorderColor;
theme.gridAndInfoView.folderCoverBorderColor = giv.folderCoverBorderColor;
theme.gridAndInfoView.placeholderFolder1Color = giv.placeholderFolder1Color;
theme.gridAndInfoView.placeholderFolder1BorderColor = giv.placeholderFolder1BorderColor;
theme.gridAndInfoView.placeholderFolder2Color = giv.placeholderFolder2Color;
theme.gridAndInfoView.placeholderFolder2BorderColor = giv.placeholderFolder2BorderColor;
theme.gridAndInfoView.currentComicCoverShadowColor = giv.currentComicCoverShadowColor;
theme.gridAndInfoView.buttonShadowColor = giv.buttonShadowColor;
// end GridAndInfoView
// MainToolbar
@ -1094,6 +1136,21 @@ Theme makeTheme(const QJsonObject &json)
giv.continueReadingBackgroundColor = colorFromJson(o, "continueReadingBackgroundColor", giv.continueReadingBackgroundColor);
giv.continueReadingColor = colorFromJson(o, "continueReadingColor", giv.continueReadingColor);
giv.backgroundBlurOverlayColor = colorFromJson(o, "backgroundBlurOverlayColor", giv.backgroundBlurOverlayColor);
giv.newItemColor = colorFromJson(o, "newItemColor", giv.newItemColor);
giv.buttonColor = colorFromJson(o, "buttonColor", giv.buttonColor);
giv.buttonTextColor = colorFromJson(o, "buttonTextColor", giv.buttonTextColor);
giv.linkColor = colorFromJson(o, "linkColor", giv.linkColor);
giv.scrollbarColor = colorFromJson(o, "scrollbarColor", giv.scrollbarColor);
giv.scrollbarBorderColor = colorFromJson(o, "scrollbarBorderColor", giv.scrollbarBorderColor);
giv.infoScrollbarColor = colorFromJson(o, "infoScrollbarColor", giv.infoScrollbarColor);
giv.comicCoverBorderColor = colorFromJson(o, "comicCoverBorderColor", giv.comicCoverBorderColor);
giv.folderCoverBorderColor = colorFromJson(o, "folderCoverBorderColor", giv.folderCoverBorderColor);
giv.placeholderFolder1Color = colorFromJson(o, "placeholderFolder1Color", giv.placeholderFolder1Color);
giv.placeholderFolder1BorderColor = colorFromJson(o, "placeholderFolder1BorderColor", giv.placeholderFolder1BorderColor);
giv.placeholderFolder2Color = colorFromJson(o, "placeholderFolder2Color", giv.placeholderFolder2Color);
giv.placeholderFolder2BorderColor = colorFromJson(o, "placeholderFolder2BorderColor", giv.placeholderFolder2BorderColor);
giv.currentComicCoverShadowColor = colorFromJson(o, "currentComicCoverShadowColor", giv.currentComicCoverShadowColor);
giv.buttonShadowColor = colorFromJson(o, "buttonShadowColor", giv.buttonShadowColor);
}
if (json.contains("comicsViewToolbar")) {