From 0affbded6ee5290789c92a6345883d3c3a7a1804 Mon Sep 17 00:00:00 2001 From: luisangelsm Date: Sun, 22 Mar 2026 12:13:07 +0100 Subject: [PATCH] Normalize color strings so they are always upper case for better readability of the theme files and the values in the editor --- YACReader/themes/builtin_classic.json | 50 +-- YACReader/themes/builtin_dark.json | 56 ++-- YACReader/themes/builtin_light.json | 46 +-- YACReaderLibrary/themes/builtin_classic.json | 302 +++++++++---------- YACReaderLibrary/themes/builtin_dark.json | 302 +++++++++---------- YACReaderLibrary/themes/builtin_light.json | 266 ++++++++-------- common/CMakeLists.txt | 2 + common/themes/theme_editor_dialog.cpp | 23 +- common/themes/theme_json_utils.cpp | 50 +++ common/themes/theme_json_utils.h | 14 + common/themes/theme_repository.cpp | 3 +- 11 files changed, 587 insertions(+), 527 deletions(-) create mode 100644 common/themes/theme_json_utils.cpp create mode 100644 common/themes/theme_json_utils.h diff --git a/YACReader/themes/builtin_classic.json b/YACReader/themes/builtin_classic.json index 3b0b217e..ac1bda11 100644 --- a/YACReader/themes/builtin_classic.json +++ b/YACReader/themes/builtin_classic.json @@ -5,19 +5,19 @@ "goToFlowWidget": { "editBackgroundColor": "#55000000", "editBorderColor": "#77000000", - "editTextColor": "#ffffff", + "editTextColor": "#FFFFFF", "flowBackgroundColor": "#282828", - "flowTextColor": "#ffffff", - "iconColor": "#ffffff", - "labelTextColor": "#ffffff", - "sliderBorderColor": "#22ffffff", + "flowTextColor": "#FFFFFF", + "iconColor": "#FFFFFF", + "labelTextColor": "#FFFFFF", + "sliderBorderColor": "#22FFFFFF", "sliderGrooveColor": "#77000000", - "sliderHandleColor": "#55ffffff", + "sliderHandleColor": "#55FFFFFF", "toolbarBackgroundColor": "#99000000" }, "helpAboutDialog": { - "headingColor": "#302f2d", - "linkColor": "#c19441" + "headingColor": "#302F2D", + "linkColor": "#C19441" }, "meta": { "displayName": "Default Classic", @@ -32,36 +32,36 @@ "translator": { "backgroundColor": "#404040", "borderColor": "#212121", - "iconColor": "#cccccc", - "inputBackgroundColor": "#2a2a2a", + "iconColor": "#CCCCCC", + "inputBackgroundColor": "#2A2A2A", "inputDarkerBackgroundColor": "#272727", - "primaryTextColor": "#ffffff", - "scrollbarHandleColor": "#dddddd", - "secondaryTextColor": "#e3e3e3", + "primaryTextColor": "#FFFFFF", + "scrollbarHandleColor": "#DDDDDD", + "secondaryTextColor": "#E3E3E3", "selectionBackgroundColor": "#202020" }, "toolbar": { - "backgroundColor": "#f3f3f3", - "checkedButtonColor": "#cccccc", - "iconCheckedColor": "#5a5a5a", + "backgroundColor": "#F3F3F3", + "checkedButtonColor": "#CCCCCC", + "iconCheckedColor": "#5A5A5A", "iconColor": "#404040", "iconDisabledColor": "#858585", "menuIndicatorColor": "#404040", - "separatorColor": "#cccccc" + "separatorColor": "#CCCCCC" }, "viewer": { "defaultBackgroundColor": "#282828", - "defaultTextColor": "#ffffff", - "infoBackgroundColor": "#bb000000", - "infoTextColor": "#ffffff" + "defaultTextColor": "#FFFFFF", + "infoBackgroundColor": "#BB000000", + "infoTextColor": "#FFFFFF" }, "whatsNewDialog": { - "backgroundColor": "#ffffff", + "backgroundColor": "#FFFFFF", "closeButtonColor": "#444444", - "contentTextColor": "#0a0a0a", - "headerDecorationColor": "#e8b800", - "headerTextColor": "#0a0a0a", - "linkColor": "#e8b800", + "contentTextColor": "#0A0A0A", + "headerDecorationColor": "#E8B800", + "headerTextColor": "#0A0A0A", + "linkColor": "#E8B800", "versionTextColor": "#858585" } } diff --git a/YACReader/themes/builtin_dark.json b/YACReader/themes/builtin_dark.json index 3dc7b9d3..40dc2dd2 100644 --- a/YACReader/themes/builtin_dark.json +++ b/YACReader/themes/builtin_dark.json @@ -1,23 +1,23 @@ { "dialogIcons": { - "iconColor": "#cccccc" + "iconColor": "#CCCCCC" }, "goToFlowWidget": { "editBackgroundColor": "#55000000", "editBorderColor": "#77000000", - "editTextColor": "#ffffff", + "editTextColor": "#FFFFFF", "flowBackgroundColor": "#282828", - "flowTextColor": "#ffffff", - "iconColor": "#cccccc", - "labelTextColor": "#ffffff", - "sliderBorderColor": "#22ffffff", + "flowTextColor": "#FFFFFF", + "iconColor": "#CCCCCC", + "labelTextColor": "#FFFFFF", + "sliderBorderColor": "#22FFFFFF", "sliderGrooveColor": "#77000000", - "sliderHandleColor": "#55ffffff", + "sliderHandleColor": "#55FFFFFF", "toolbarBackgroundColor": "#99000000" }, "helpAboutDialog": { - "headingColor": "#e0e0e0", - "linkColor": "#d4a84b" + "headingColor": "#E0E0E0", + "linkColor": "#D4A84B" }, "meta": { "displayName": "Default Dark", @@ -27,41 +27,41 @@ "version": "10.0.0" }, "shortcutsIcons": { - "iconColor": "#d0d0d0" + "iconColor": "#D0D0D0" }, "translator": { "backgroundColor": "#404040", "borderColor": "#212121", - "iconColor": "#cccccc", - "inputBackgroundColor": "#2a2a2a", + "iconColor": "#CCCCCC", + "inputBackgroundColor": "#2A2A2A", "inputDarkerBackgroundColor": "#272727", - "primaryTextColor": "#ffffff", - "scrollbarHandleColor": "#dddddd", - "secondaryTextColor": "#e3e3e3", + "primaryTextColor": "#FFFFFF", + "scrollbarHandleColor": "#DDDDDD", + "secondaryTextColor": "#E3E3E3", "selectionBackgroundColor": "#202020" }, "toolbar": { "backgroundColor": "#202020", - "checkedButtonColor": "#3a3a3a", - "iconCheckedColor": "#dadada", - "iconColor": "#cccccc", + "checkedButtonColor": "#3A3A3A", + "iconCheckedColor": "#DADADA", + "iconColor": "#CCCCCC", "iconDisabledColor": "#444444", - "menuIndicatorColor": "#cccccc", + "menuIndicatorColor": "#CCCCCC", "separatorColor": "#444444" }, "viewer": { "defaultBackgroundColor": "#282828", - "defaultTextColor": "#ffffff", - "infoBackgroundColor": "#bb000000", - "infoTextColor": "#b0b0b0" + "defaultTextColor": "#FFFFFF", + "infoBackgroundColor": "#BB000000", + "infoTextColor": "#B0B0B0" }, "whatsNewDialog": { - "backgroundColor": "#2a2a2a", - "closeButtonColor": "#dddddd", - "contentTextColor": "#e0e0e0", - "headerDecorationColor": "#e8b800", - "headerTextColor": "#e0e0e0", - "linkColor": "#e8b800", + "backgroundColor": "#2A2A2A", + "closeButtonColor": "#DDDDDD", + "contentTextColor": "#E0E0E0", + "headerDecorationColor": "#E8B800", + "headerTextColor": "#E0E0E0", + "linkColor": "#E8B800", "versionTextColor": "#858585" } } diff --git a/YACReader/themes/builtin_light.json b/YACReader/themes/builtin_light.json index 274788b8..4027bc53 100644 --- a/YACReader/themes/builtin_light.json +++ b/YACReader/themes/builtin_light.json @@ -6,18 +6,18 @@ "editBackgroundColor": "#22000000", "editBorderColor": "#33000000", "editTextColor": "#202020", - "flowBackgroundColor": "#f6f6f6", + "flowBackgroundColor": "#F6F6F6", "flowTextColor": "#202020", "iconColor": "#404040", "labelTextColor": "#202020", "sliderBorderColor": "#22000000", "sliderGrooveColor": "#33000000", "sliderHandleColor": "#55000000", - "toolbarBackgroundColor": "#bbffffff" + "toolbarBackgroundColor": "#BBFFFFFF" }, "helpAboutDialog": { - "headingColor": "#302f2d", - "linkColor": "#c19441" + "headingColor": "#302F2D", + "linkColor": "#C19441" }, "meta": { "displayName": "Default Light", @@ -30,38 +30,38 @@ "iconColor": "#606060" }, "translator": { - "backgroundColor": "#e8e8e8", - "borderColor": "#cccccc", + "backgroundColor": "#E8E8E8", + "borderColor": "#CCCCCC", "iconColor": "#404040", - "inputBackgroundColor": "#f5f5f5", - "inputDarkerBackgroundColor": "#ebebeb", - "primaryTextColor": "#1a1a1a", + "inputBackgroundColor": "#F5F5F5", + "inputDarkerBackgroundColor": "#EBEBEB", + "primaryTextColor": "#1A1A1A", "scrollbarHandleColor": "#909090", - "secondaryTextColor": "#2a2a2a", - "selectionBackgroundColor": "#dcdcdc" + "secondaryTextColor": "#2A2A2A", + "selectionBackgroundColor": "#DCDCDC" }, "toolbar": { - "backgroundColor": "#f3f3f3", - "checkedButtonColor": "#cccccc", - "iconCheckedColor": "#5a5a5a", + "backgroundColor": "#F3F3F3", + "checkedButtonColor": "#CCCCCC", + "iconCheckedColor": "#5A5A5A", "iconColor": "#404040", - "iconDisabledColor": "#b0b0b0", + "iconDisabledColor": "#B0B0B0", "menuIndicatorColor": "#404040", - "separatorColor": "#cccccc" + "separatorColor": "#CCCCCC" }, "viewer": { - "defaultBackgroundColor": "#f6f6f6", + "defaultBackgroundColor": "#F6F6F6", "defaultTextColor": "#202020", - "infoBackgroundColor": "#bbffffff", + "infoBackgroundColor": "#BBFFFFFF", "infoTextColor": "#404040" }, "whatsNewDialog": { - "backgroundColor": "#ffffff", + "backgroundColor": "#FFFFFF", "closeButtonColor": "#444444", - "contentTextColor": "#0a0a0a", - "headerDecorationColor": "#e8b800", - "headerTextColor": "#0a0a0a", - "linkColor": "#e8b800", + "contentTextColor": "#0A0A0A", + "headerDecorationColor": "#E8B800", + "headerTextColor": "#0A0A0A", + "linkColor": "#E8B800", "versionTextColor": "#858585" } } diff --git a/YACReaderLibrary/themes/builtin_classic.json b/YACReaderLibrary/themes/builtin_classic.json index 9afcec68..52ac1a37 100644 --- a/YACReaderLibrary/themes/builtin_classic.json +++ b/YACReaderLibrary/themes/builtin_classic.json @@ -1,124 +1,124 @@ { "comicFlow": { "backgroundColor": "#000000", - "readMainColor": "#db4725", - "readTickColor": "#8a2c17", - "readingColor": "#e6b90f", - "textColor": "#4c4c4c" + "readMainColor": "#DB4725", + "readTickColor": "#8A2C17", + "readingColor": "#E6B90F", + "textColor": "#4C4C4C" }, "comicsViewTable": { - "alternateBackgroundColor": "#f2f2f2", - "backgroundColor": "#fafafa", - "headerBackgroundColor": "#f5f5f5", - "headerBorderColor": "#b8bdc4", - "headerGradientColor": "#d1d1d1", + "alternateBackgroundColor": "#F2F2F2", + "backgroundColor": "#FAFAFA", + "headerBackgroundColor": "#F5F5F5", + "headerBorderColor": "#B8BDC4", + "headerGradientColor": "#D1D1D1", "headerTextColor": "#313232", - "itemBorderBottomColor": "#dfdfdf", + "itemBorderBottomColor": "#DFDFDF", "itemBorderBottomWidth": 1, - "itemBorderTopColor": "#fefefe", + "itemBorderTopColor": "#FEFEFE", "itemBorderTopWidth": 1, "itemTextColor": "#252626", - "selectedColor": "#d4d4d4", + "selectedColor": "#D4D4D4", "selectedTextColor": "#252626", - "starRatingColor": "#e9be0f", - "starRatingSelectedColor": "#ffffff" + "starRatingColor": "#E9BE0F", + "starRatingSelectedColor": "#FFFFFF" }, "comicsViewToolbar": { - "backgroundColor": "#f0f0f0", - "checkedBackgroundColor": "#cccccc", + "backgroundColor": "#F0F0F0", + "checkedBackgroundColor": "#CCCCCC", "iconColor": "#404040", - "separatorColor": "#cccccc" + "separatorColor": "#CCCCCC" }, "contentSplitter": { - "handleColor": "#b8b8b8", + "handleColor": "#B8B8B8", "horizontalHandleHeight": 4, "verticalHandleWidth": 4 }, "dialogIcons": { - "iconColor": "#f7f7f7" + "iconColor": "#F7F7F7" }, "emptyContainer": { - "backgroundColor": "#2a2a2a", - "iconColor": "#4c4c4c", - "titleTextColor": "#cccccc" + "backgroundColor": "#2A2A2A", + "iconColor": "#4C4C4C", + "titleTextColor": "#CCCCCC" }, "gridAndInfoView": { - "backgroundBlurOverlayColor": "#2a2a2a", - "backgroundColor": "#2a2a2a", + "backgroundBlurOverlayColor": "#2A2A2A", + "backgroundColor": "#2A2A2A", "borderColor": "#121212", - "buttonColor": "#ffcc00", - "buttonShadowColor": "#aa000000", - "buttonTextColor": "#ffffff", + "buttonColor": "#FFCC00", + "buttonShadowColor": "#AA000000", + "buttonTextColor": "#FFFFFF", "cellColor": "#212121", "cellColorWithBackground": "#99212121", - "cellSelectedBorderColor": "#ffcc00", + "cellSelectedBorderColor": "#FFCC00", "cellSelectedColor": "#121212", - "comicCoverBorderColor": "#30ffffff", + "comicCoverBorderColor": "#30FFFFFF", "continueReadingBackgroundColor": "#88000000", - "continueReadingTextColor": "#ffffff", + "continueReadingTextColor": "#FFFFFF", "currentComicBackgroundColor": "#88000000", - "currentComicCoverShadowColor": "#ff000000", - "favCheckedColor": "#e84852", - "favUncheckedColor": "#1c1c1c", - "folderCoverBorderColor": "#20ffffff", - "infoBackgroundColor": "#2e2e2e", + "currentComicCoverShadowColor": "#FF000000", + "favCheckedColor": "#E84852", + "favUncheckedColor": "#1C1C1C", + "folderCoverBorderColor": "#20FFFFFF", + "infoBackgroundColor": "#2E2E2E", "infoBorderColor": "#404040", - "infoMetadataTextColor": "#b0b0b0", - "infoScrollbarColor": "#ff424246", + "infoMetadataTextColor": "#B0B0B0", + "infoScrollbarColor": "#FF424246", "infoShadowColor": "#000000", - "infoTextColor": "#ffffff", - "itemDetailsColor": "#a8a8a8", - "itemTitleColor": "#ffffff", - "linkColor": "#ffcc00", - "newItemColor": "#ffffcc00", - "placeholderFolder1BorderColor": "#20ffffff", + "infoTextColor": "#FFFFFF", + "itemDetailsColor": "#A8A8A8", + "itemTitleColor": "#FFFFFF", + "linkColor": "#FFCC00", + "newItemColor": "#FFFFCC00", + "placeholderFolder1BorderColor": "#20FFFFFF", "placeholderFolder1Color": "#20000000", - "placeholderFolder2BorderColor": "#20ffffff", + "placeholderFolder2BorderColor": "#20FFFFFF", "placeholderFolder2Color": "#88000000", - "ratingSelectedColor": "#ffffff", - "ratingUnselectedColor": "#1c1c1c", - "readTickCheckedColor": "#e84852", - "readTickUncheckedColor": "#1c1c1c", - "scrollbarBorderColor": "#aa313131", + "ratingSelectedColor": "#FFFFFF", + "ratingUnselectedColor": "#1C1C1C", + "readTickCheckedColor": "#E84852", + "readTickUncheckedColor": "#1C1C1C", + "scrollbarBorderColor": "#AA313131", "scrollbarColor": "#88424242", "showDropShadow": true }, "helpAboutDialog": { - "headingColor": "#302f2d", - "linkColor": "#c19441" + "headingColor": "#302F2D", + "linkColor": "#C19441" }, "importWidget": { - "backgroundColor": "#2a2a2a", - "coversDecorationBgColor": "#3a3a3a", - "coversDecorationShadowColor": "#1a1a1a", - "coversLabelColor": "#aaaaaa", - "coversViewBackgroundColor": "#3a3a3a", - "currentComicTextColor": "#aaaaaa", - "descriptionTextColor": "#aaaaaa", - "glowLineColor": "#ffe100", - "iconCheckedColor": "#aaaaaa", - "iconColor": "#cccccc", - "modeIconColor": "#4a4a4a", - "titleTextColor": "#cccccc" + "backgroundColor": "#2A2A2A", + "coversDecorationBgColor": "#3A3A3A", + "coversDecorationShadowColor": "#1A1A1A", + "coversLabelColor": "#AAAAAA", + "coversViewBackgroundColor": "#3A3A3A", + "currentComicTextColor": "#AAAAAA", + "descriptionTextColor": "#AAAAAA", + "glowLineColor": "#FFE100", + "iconCheckedColor": "#AAAAAA", + "iconColor": "#CCCCCC", + "modeIconColor": "#4A4A4A", + "titleTextColor": "#CCCCCC" }, "libraryItem": { - "libraryIconColor": "#dddfdf", - "libraryIconSelectedColor": "#ffffff", + "libraryIconColor": "#DDDFDF", + "libraryIconSelectedColor": "#FFFFFF", "libraryIconShadowColor": "#000000", - "libraryOptionsIconColor": "#ffffff", - "selectedBackgroundColor": "#2e2e2e", - "selectedTextColor": "#ffffff", - "textColor": "#dddfdf" + "libraryOptionsIconColor": "#FFFFFF", + "selectedBackgroundColor": "#2E2E2E", + "selectedTextColor": "#FFFFFF", + "textColor": "#DDDFDF" }, "mainToolbar": { - "backgroundColor": "#f0f0f0", - "dividerColor": "#b8bdc4", + "backgroundColor": "#F0F0F0", + "dividerColor": "#B8BDC4", "folderNameColor": "#404040", "iconColor": "#404040", - "iconDisabledColor": "#b0b0b0" + "iconDisabledColor": "#B0B0B0" }, "menuIcons": { - "iconColor": "#f7f7f7" + "iconColor": "#F7F7F7" }, "meta": { "displayName": "Default Classic", @@ -128,137 +128,137 @@ "version": "10.0.0" }, "metadataScraperDialog": { - "busyIndicatorColor": "#ffffff", - "buttonBackgroundColor": "#2e2e2e", + "busyIndicatorColor": "#FFFFFF", + "buttonBackgroundColor": "#2E2E2E", "buttonBorderColor": "#242424", - "buttonTextColor": "#ffffff", - "checkBoxTickColor": "#ffffff", - "contentAltBackgroundColor": "#2b2b2b", - "contentBackgroundColor": "#2b2b2b", - "contentTextColor": "#ffffff", + "buttonTextColor": "#FFFFFF", + "checkBoxTickColor": "#FFFFFF", + "contentAltBackgroundColor": "#2B2B2B", + "contentBackgroundColor": "#2B2B2B", + "contentTextColor": "#FFFFFF", "dialogBackgroundColor": "#404040", - "downArrowColor": "#9f9f9f", - "hyperlinkColor": "#ffcc00", - "labelBackgroundColor": "#2b2b2b", - "labelTextColor": "#ffffff", - "navIconColor": "#ffffff", - "radioCheckedBackgroundColor": "#e5e5e5", - "radioCheckedIndicatorColor": "#5f5f5f", - "radioUncheckedColor": "#e5e5e5", - "rowIconColor": "#e5e5e5", - "tableAltBackgroundColor": "#2e2e2e", - "tableBackgroundColor": "#2b2b2b", + "downArrowColor": "#9F9F9F", + "hyperlinkColor": "#FFCC00", + "labelBackgroundColor": "#2B2B2B", + "labelTextColor": "#FFFFFF", + "navIconColor": "#FFFFFF", + "radioCheckedBackgroundColor": "#E5E5E5", + "radioCheckedIndicatorColor": "#5F5F5F", + "radioUncheckedColor": "#E5E5E5", + "rowIconColor": "#E5E5E5", + "tableAltBackgroundColor": "#2E2E2E", + "tableBackgroundColor": "#2B2B2B", "tableBorderColor": "#242424", "tableHeaderBackgroundColor": "#292929", - "tableHeaderBorderColor": "#1f1f1f", + "tableHeaderBorderColor": "#1F1F1F", "tableHeaderGradientColor": "#292929", - "tableHeaderTextColor": "#ebebeb", + "tableHeaderTextColor": "#EBEBEB", "tableScrollBackgroundColor": "#404040", - "tableScrollHandleColor": "#dddddd", - "tableSectionBorderDark": "#dfdfdf", - "tableSectionBorderLight": "#fefefe", + "tableScrollHandleColor": "#DDDDDD", + "tableSectionBorderDark": "#DFDFDF", + "tableSectionBorderLight": "#FEFEFE", "tableSelectedColor": "#555555", "toolButtonAccentColor": "#282828", - "upArrowColor": "#9f9f9f" + "upArrowColor": "#9F9F9F" }, "navigationTree": { - "branchIndicatorColor": "#e0e0e0", - "branchIndicatorSelectedColor": "#ffffff", - "folderIconColor": "#e0e0e0", - "folderIconSelectedColor": "#e0e0e0", + "branchIndicatorColor": "#E0E0E0", + "branchIndicatorSelectedColor": "#FFFFFF", + "folderIconColor": "#E0E0E0", + "folderIconSelectedColor": "#E0E0E0", "folderIconSelectedShadowColor": "#000000", "folderIconShadowColor": "#000000", - "folderNotCompletedColor": "#edc518", + "folderNotCompletedColor": "#EDC518", "folderReadOverlayColor": "#464646", "folderReadOverlaySelectedColor": "#464646", - "newItemColor": "#edc518", + "newItemColor": "#EDC518", "scrollBackgroundColor": "#404040", - "scrollHandleColor": "#dddddd", - "selectedTextColor": "#ffffff", - "selectionBackgroundColor": "#2e2e2e", - "textColor": "#dddfdf" + "scrollHandleColor": "#DDDDDD", + "selectedTextColor": "#FFFFFF", + "selectionBackgroundColor": "#2E2E2E", + "textColor": "#DDDFDF" }, "noLibrariesWidget": { - "backgroundColor": "#2a2a2a", - "descriptionTextColor": "#aaaaaa", - "iconColor": "#4c4c4c", - "noLibrariesLineColor": "#a8a8a8", - "textColor": "#cccccc" + "backgroundColor": "#2A2A2A", + "descriptionTextColor": "#AAAAAA", + "iconColor": "#4C4C4C", + "noLibrariesLineColor": "#A8A8A8", + "textColor": "#CCCCCC" }, "readingListIcons": { - "currentlyReadingMainColor": "#ffcc00", - "currentlyReadingMainSelectedColor": "#ffcc00", + "currentlyReadingMainColor": "#FFCC00", + "currentlyReadingMainSelectedColor": "#FFCC00", "currentlyReadingOuterColor": "#000000", "currentlyReadingOuterSelectedColor": "#000000", - "favoritesMainColor": "#e15055", - "favoritesMainSelectedColor": "#e15055", + "favoritesMainColor": "#E15055", + "favoritesMainSelectedColor": "#E15055", "labelColors": { - "blue": "#82c7ff", - "cyan": "#a0fddb", - "dark": "#b7b7b7", - "green": "#ade738", - "light": "#cbcbcb", - "orange": "#f5c240", - "pink": "#fd9cda", - "purple": "#d692fc", - "red": "#f67a7b", - "violet": "#8f95ff", - "white": "#fcfcfc", - "yellow": "#f2e446" + "blue": "#82C7FF", + "cyan": "#A0FDDB", + "dark": "#B7B7B7", + "green": "#ADE738", + "light": "#CBCBCB", + "orange": "#F5C240", + "pink": "#FD9CDA", + "purple": "#D692FC", + "red": "#F67A7B", + "violet": "#8F95FF", + "white": "#FCFCFC", + "yellow": "#F2E446" }, "labelShadowColor": "#000000", "labelShadowSelectedColor": "#000000", "listDetailColor": "#464646", "listDetailSelectedColor": "#464646", - "listMainColor": "#e7e7e7", - "listMainSelectedColor": "#e7e7e7", + "listMainColor": "#E7E7E7", + "listMainSelectedColor": "#E7E7E7", "listShadowColor": "#000000", "listShadowSelectedColor": "#000000", - "readingListMainColor": "#e7e7e7", - "readingListMainSelectedColor": "#e7e7e7", + "readingListMainColor": "#E7E7E7", + "readingListMainSelectedColor": "#E7E7E7", "specialListShadowColor": "#000000", "specialListShadowSelectedColor": "#000000" }, "searchLineEdit": { "backgroundColor": "#404040", - "iconColor": "#f7f7f7", - "textColor": "#ababab" + "iconColor": "#F7F7F7", + "textColor": "#ABABAB" }, "serverConfigDialog": { - "backgroundColor": "#2a2a2a", + "backgroundColor": "#2A2A2A", "checkBoxTextColor": "#262626", - "decorationColor": "#f7f7f7", + "decorationColor": "#F7F7F7", "labelTextColor": "#575757", - "propagandaTextColor": "#4d4d4d", - "qrBackgroundColor": "#2a2a2a", - "qrForegroundColor": "#ffffff", - "qrMessageTextColor": "#a3a3a3", + "propagandaTextColor": "#4D4D4D", + "qrBackgroundColor": "#2A2A2A", + "qrForegroundColor": "#FFFFFF", + "qrMessageTextColor": "#A3A3A3", "titleTextColor": "#474747" }, "shortcutsIcons": { - "iconColor": "#f7f7f7" + "iconColor": "#F7F7F7" }, "sidebar": { "backgroundColor": "#454545", - "busyIndicatorColor": "#ffffff", + "busyIndicatorColor": "#FFFFFF", "sectionSeparatorColor": "#575757", - "separatorColor": "#bdbfbf", + "separatorColor": "#BDBFBF", "titleDropShadowColor": "#000000", - "titleTextColor": "#bdbfbf", + "titleTextColor": "#BDBFBF", "uppercaseLabels": true }, "sidebarIcons": { - "iconColor": "#e0e0e0", + "iconColor": "#E0E0E0", "shadowColor": "#000000", "useSystemFolderIcons": false }, "whatsNewDialog": { - "backgroundColor": "#2a2a2a", - "closeButtonColor": "#dddddd", - "contentTextColor": "#e0e0e0", - "headerDecorationColor": "#e8b800", - "headerTextColor": "#e0e0e0", - "linkColor": "#e8b800", + "backgroundColor": "#2A2A2A", + "closeButtonColor": "#DDDDDD", + "contentTextColor": "#E0E0E0", + "headerDecorationColor": "#E8B800", + "headerTextColor": "#E0E0E0", + "linkColor": "#E8B800", "versionTextColor": "#858585" } } diff --git a/YACReaderLibrary/themes/builtin_dark.json b/YACReaderLibrary/themes/builtin_dark.json index 7a26d484..c4398648 100644 --- a/YACReaderLibrary/themes/builtin_dark.json +++ b/YACReaderLibrary/themes/builtin_dark.json @@ -1,124 +1,124 @@ { "comicFlow": { "backgroundColor": "#111111", - "readMainColor": "#db4725", - "readTickColor": "#8a2c17", - "readingColor": "#e6b90f", + "readMainColor": "#DB4725", + "readTickColor": "#8A2C17", + "readingColor": "#E6B90F", "textColor": "#888888" }, "comicsViewTable": { - "alternateBackgroundColor": "#2c2c2c", + "alternateBackgroundColor": "#2C2C2C", "backgroundColor": "#232323", - "headerBackgroundColor": "#2a2a2a", - "headerBorderColor": "#1f1f1f", + "headerBackgroundColor": "#2A2A2A", + "headerBorderColor": "#1F1F1F", "headerGradientColor": "#252525", - "headerTextColor": "#dddddd", - "itemBorderBottomColor": "#1f1f1f", + "headerTextColor": "#DDDDDD", + "itemBorderBottomColor": "#1F1F1F", "itemBorderBottomWidth": 0, "itemBorderTopColor": "#353535", "itemBorderTopWidth": 0, - "itemTextColor": "#dddddd", + "itemTextColor": "#DDDDDD", "selectedColor": "#555555", - "selectedTextColor": "#ffffff", - "starRatingColor": "#e9be0f", - "starRatingSelectedColor": "#ffffff" + "selectedTextColor": "#FFFFFF", + "starRatingColor": "#E9BE0F", + "starRatingSelectedColor": "#FFFFFF" }, "comicsViewToolbar": { - "backgroundColor": "#1f1f1f", + "backgroundColor": "#1F1F1F", "checkedBackgroundColor": "#555555", - "iconColor": "#dddddd", + "iconColor": "#DDDDDD", "separatorColor": "#444444" }, "contentSplitter": { - "handleColor": "#1f1f1f", + "handleColor": "#1F1F1F", "horizontalHandleHeight": 4, "verticalHandleWidth": 4 }, "dialogIcons": { - "iconColor": "#f7f7f7" + "iconColor": "#F7F7F7" }, "emptyContainer": { - "backgroundColor": "#2a2a2a", - "iconColor": "#4c4c4c", - "titleTextColor": "#cccccc" + "backgroundColor": "#2A2A2A", + "iconColor": "#4C4C4C", + "titleTextColor": "#CCCCCC" }, "gridAndInfoView": { - "backgroundBlurOverlayColor": "#2a2a2a", - "backgroundColor": "#2a2a2a", + "backgroundBlurOverlayColor": "#2A2A2A", + "backgroundColor": "#2A2A2A", "borderColor": "#121212", - "buttonColor": "#ffcc00", - "buttonShadowColor": "#aa000000", - "buttonTextColor": "#ffffff", + "buttonColor": "#FFCC00", + "buttonShadowColor": "#AA000000", + "buttonTextColor": "#FFFFFF", "cellColor": "#212121", "cellColorWithBackground": "#99212121", - "cellSelectedBorderColor": "#ffcc00", + "cellSelectedBorderColor": "#FFCC00", "cellSelectedColor": "#121212", - "comicCoverBorderColor": "#30ffffff", + "comicCoverBorderColor": "#30FFFFFF", "continueReadingBackgroundColor": "#88000000", - "continueReadingTextColor": "#ffffff", + "continueReadingTextColor": "#FFFFFF", "currentComicBackgroundColor": "#55000000", - "currentComicCoverShadowColor": "#ff000000", - "favCheckedColor": "#e84852", - "favUncheckedColor": "#1c1c1c", - "folderCoverBorderColor": "#20ffffff", - "infoBackgroundColor": "#2e2e2e", + "currentComicCoverShadowColor": "#FF000000", + "favCheckedColor": "#E84852", + "favUncheckedColor": "#1C1C1C", + "folderCoverBorderColor": "#20FFFFFF", + "infoBackgroundColor": "#2E2E2E", "infoBorderColor": "#404040", - "infoMetadataTextColor": "#b0b0b0", - "infoScrollbarColor": "#ff424246", + "infoMetadataTextColor": "#B0B0B0", + "infoScrollbarColor": "#FF424246", "infoShadowColor": "#000000", - "infoTextColor": "#ffffff", - "itemDetailsColor": "#a8a8a8", - "itemTitleColor": "#ffffff", - "linkColor": "#ffcc00", - "newItemColor": "#ffffcc00", - "placeholderFolder1BorderColor": "#20ffffff", + "infoTextColor": "#FFFFFF", + "itemDetailsColor": "#A8A8A8", + "itemTitleColor": "#FFFFFF", + "linkColor": "#FFCC00", + "newItemColor": "#FFFFCC00", + "placeholderFolder1BorderColor": "#20FFFFFF", "placeholderFolder1Color": "#20000000", - "placeholderFolder2BorderColor": "#20ffffff", + "placeholderFolder2BorderColor": "#20FFFFFF", "placeholderFolder2Color": "#88000000", - "ratingSelectedColor": "#ffffff", - "ratingUnselectedColor": "#1c1c1c", - "readTickCheckedColor": "#e84852", - "readTickUncheckedColor": "#1c1c1c", - "scrollbarBorderColor": "#aa313131", + "ratingSelectedColor": "#FFFFFF", + "ratingUnselectedColor": "#1C1C1C", + "readTickCheckedColor": "#E84852", + "readTickUncheckedColor": "#1C1C1C", + "scrollbarBorderColor": "#AA313131", "scrollbarColor": "#88424242", "showDropShadow": true }, "helpAboutDialog": { - "headingColor": "#e0e0e0", - "linkColor": "#d4a84b" + "headingColor": "#E0E0E0", + "linkColor": "#D4A84B" }, "importWidget": { - "backgroundColor": "#2a2a2a", - "coversDecorationBgColor": "#3a3a3a", - "coversDecorationShadowColor": "#1a1a1a", - "coversLabelColor": "#aaaaaa", - "coversViewBackgroundColor": "#3a3a3a", - "currentComicTextColor": "#aaaaaa", - "descriptionTextColor": "#aaaaaa", - "glowLineColor": "#ffe100", - "iconCheckedColor": "#aaaaaa", - "iconColor": "#cccccc", - "modeIconColor": "#4a4a4a", - "titleTextColor": "#cccccc" + "backgroundColor": "#2A2A2A", + "coversDecorationBgColor": "#3A3A3A", + "coversDecorationShadowColor": "#1A1A1A", + "coversLabelColor": "#AAAAAA", + "coversViewBackgroundColor": "#3A3A3A", + "currentComicTextColor": "#AAAAAA", + "descriptionTextColor": "#AAAAAA", + "glowLineColor": "#FFE100", + "iconCheckedColor": "#AAAAAA", + "iconColor": "#CCCCCC", + "modeIconColor": "#4A4A4A", + "titleTextColor": "#CCCCCC" }, "libraryItem": { - "libraryIconColor": "#dddfdf", - "libraryIconSelectedColor": "#ffffff", + "libraryIconColor": "#DDDFDF", + "libraryIconSelectedColor": "#FFFFFF", "libraryIconShadowColor": "#000000", - "libraryOptionsIconColor": "#ffffff", - "selectedBackgroundColor": "#2e2e2e", - "selectedTextColor": "#ffffff", - "textColor": "#dddfdf" + "libraryOptionsIconColor": "#FFFFFF", + "selectedBackgroundColor": "#2E2E2E", + "selectedTextColor": "#FFFFFF", + "textColor": "#DDDFDF" }, "mainToolbar": { - "backgroundColor": "#1f1f1f", + "backgroundColor": "#1F1F1F", "dividerColor": "#555555", - "folderNameColor": "#dddddd", - "iconColor": "#dddddd", + "folderNameColor": "#DDDDDD", + "iconColor": "#DDDDDD", "iconDisabledColor": "#666666" }, "menuIcons": { - "iconColor": "#f7f7f7" + "iconColor": "#F7F7F7" }, "meta": { "displayName": "Default Dark", @@ -128,137 +128,137 @@ "version": "10.0.0" }, "metadataScraperDialog": { - "busyIndicatorColor": "#ffffff", - "buttonBackgroundColor": "#2e2e2e", + "busyIndicatorColor": "#FFFFFF", + "buttonBackgroundColor": "#2E2E2E", "buttonBorderColor": "#242424", - "buttonTextColor": "#ffffff", - "checkBoxTickColor": "#ffffff", - "contentAltBackgroundColor": "#2e2e2e", - "contentBackgroundColor": "#2b2b2b", - "contentTextColor": "#ffffff", + "buttonTextColor": "#FFFFFF", + "checkBoxTickColor": "#FFFFFF", + "contentAltBackgroundColor": "#2E2E2E", + "contentBackgroundColor": "#2B2B2B", + "contentTextColor": "#FFFFFF", "dialogBackgroundColor": "#404040", - "downArrowColor": "#9f9f9f", - "hyperlinkColor": "#ffcc00", - "labelBackgroundColor": "#2b2b2b", - "labelTextColor": "#ffffff", - "navIconColor": "#ffffff", - "radioCheckedBackgroundColor": "#e5e5e5", - "radioCheckedIndicatorColor": "#5f5f5f", - "radioUncheckedColor": "#e5e5e5", - "rowIconColor": "#e5e5e5", - "tableAltBackgroundColor": "#2e2e2e", - "tableBackgroundColor": "#2b2b2b", + "downArrowColor": "#9F9F9F", + "hyperlinkColor": "#FFCC00", + "labelBackgroundColor": "#2B2B2B", + "labelTextColor": "#FFFFFF", + "navIconColor": "#FFFFFF", + "radioCheckedBackgroundColor": "#E5E5E5", + "radioCheckedIndicatorColor": "#5F5F5F", + "radioUncheckedColor": "#E5E5E5", + "rowIconColor": "#E5E5E5", + "tableAltBackgroundColor": "#2E2E2E", + "tableBackgroundColor": "#2B2B2B", "tableBorderColor": "#242424", "tableHeaderBackgroundColor": "#292929", - "tableHeaderBorderColor": "#1f1f1f", + "tableHeaderBorderColor": "#1F1F1F", "tableHeaderGradientColor": "#292929", - "tableHeaderTextColor": "#ebebeb", + "tableHeaderTextColor": "#EBEBEB", "tableScrollBackgroundColor": "#404040", - "tableScrollHandleColor": "#dddddd", - "tableSectionBorderDark": "#dfdfdf", - "tableSectionBorderLight": "#fefefe", + "tableScrollHandleColor": "#DDDDDD", + "tableSectionBorderDark": "#DFDFDF", + "tableSectionBorderLight": "#FEFEFE", "tableSelectedColor": "#555555", "toolButtonAccentColor": "#282828", - "upArrowColor": "#9f9f9f" + "upArrowColor": "#9F9F9F" }, "navigationTree": { - "branchIndicatorColor": "#e0e0e0", - "branchIndicatorSelectedColor": "#ffffff", - "folderIconColor": "#e0e0e0", - "folderIconSelectedColor": "#e0e0e0", + "branchIndicatorColor": "#E0E0E0", + "branchIndicatorSelectedColor": "#FFFFFF", + "folderIconColor": "#E0E0E0", + "folderIconSelectedColor": "#E0E0E0", "folderIconSelectedShadowColor": "#000000", "folderIconShadowColor": "#000000", - "folderNotCompletedColor": "#edc518", + "folderNotCompletedColor": "#EDC518", "folderReadOverlayColor": "#222222", "folderReadOverlaySelectedColor": "#222222", - "newItemColor": "#edc518", + "newItemColor": "#EDC518", "scrollBackgroundColor": "#404040", - "scrollHandleColor": "#dddddd", - "selectedTextColor": "#ffffff", - "selectionBackgroundColor": "#2e2e2e", - "textColor": "#dddfdf" + "scrollHandleColor": "#DDDDDD", + "selectedTextColor": "#FFFFFF", + "selectionBackgroundColor": "#2E2E2E", + "textColor": "#DDDFDF" }, "noLibrariesWidget": { - "backgroundColor": "#2a2a2a", - "descriptionTextColor": "#aaaaaa", - "iconColor": "#4c4c4c", - "noLibrariesLineColor": "#a8a8a8", - "textColor": "#cccccc" + "backgroundColor": "#2A2A2A", + "descriptionTextColor": "#AAAAAA", + "iconColor": "#4C4C4C", + "noLibrariesLineColor": "#A8A8A8", + "textColor": "#CCCCCC" }, "readingListIcons": { - "currentlyReadingMainColor": "#ffcc00", - "currentlyReadingMainSelectedColor": "#ffcc00", + "currentlyReadingMainColor": "#FFCC00", + "currentlyReadingMainSelectedColor": "#FFCC00", "currentlyReadingOuterColor": "#000000", "currentlyReadingOuterSelectedColor": "#000000", - "favoritesMainColor": "#e15055", - "favoritesMainSelectedColor": "#e15055", + "favoritesMainColor": "#E15055", + "favoritesMainSelectedColor": "#E15055", "labelColors": { - "blue": "#82c7ff", - "cyan": "#a0fddb", - "dark": "#b7b7b7", - "green": "#ade738", - "light": "#cbcbcb", - "orange": "#f5c240", - "pink": "#fd9cda", - "purple": "#d692fc", - "red": "#f67a7b", - "violet": "#8f95ff", - "white": "#fcfcfc", - "yellow": "#f2e446" + "blue": "#82C7FF", + "cyan": "#A0FDDB", + "dark": "#B7B7B7", + "green": "#ADE738", + "light": "#CBCBCB", + "orange": "#F5C240", + "pink": "#FD9CDA", + "purple": "#D692FC", + "red": "#F67A7B", + "violet": "#8F95FF", + "white": "#FCFCFC", + "yellow": "#F2E446" }, "labelShadowColor": "#000000", "labelShadowSelectedColor": "#000000", "listDetailColor": "#464646", "listDetailSelectedColor": "#464646", - "listMainColor": "#e7e7e7", - "listMainSelectedColor": "#e7e7e7", + "listMainColor": "#E7E7E7", + "listMainSelectedColor": "#E7E7E7", "listShadowColor": "#000000", "listShadowSelectedColor": "#000000", - "readingListMainColor": "#e7e7e7", - "readingListMainSelectedColor": "#e7e7e7", + "readingListMainColor": "#E7E7E7", + "readingListMainSelectedColor": "#E7E7E7", "specialListShadowColor": "#000000", "specialListShadowSelectedColor": "#000000" }, "searchLineEdit": { "backgroundColor": "#404040", - "iconColor": "#f7f7f7", - "textColor": "#ababab" + "iconColor": "#F7F7F7", + "textColor": "#ABABAB" }, "serverConfigDialog": { - "backgroundColor": "#2a2a2a", - "checkBoxTextColor": "#dddddd", - "decorationColor": "#f7f7f7", - "labelTextColor": "#c0c0c0", - "propagandaTextColor": "#b0b0b0", - "qrBackgroundColor": "#2a2a2a", - "qrForegroundColor": "#ffffff", - "qrMessageTextColor": "#a3a3a3", - "titleTextColor": "#d0d0d0" + "backgroundColor": "#2A2A2A", + "checkBoxTextColor": "#DDDDDD", + "decorationColor": "#F7F7F7", + "labelTextColor": "#C0C0C0", + "propagandaTextColor": "#B0B0B0", + "qrBackgroundColor": "#2A2A2A", + "qrForegroundColor": "#FFFFFF", + "qrMessageTextColor": "#A3A3A3", + "titleTextColor": "#D0D0D0" }, "shortcutsIcons": { - "iconColor": "#f7f7f7" + "iconColor": "#F7F7F7" }, "sidebar": { "backgroundColor": "#454545", - "busyIndicatorColor": "#ffffff", + "busyIndicatorColor": "#FFFFFF", "sectionSeparatorColor": "#575757", - "separatorColor": "#bdbfbf", + "separatorColor": "#BDBFBF", "titleDropShadowColor": "#000000", - "titleTextColor": "#bdbfbf", + "titleTextColor": "#BDBFBF", "uppercaseLabels": true }, "sidebarIcons": { - "iconColor": "#e0e0e0", + "iconColor": "#E0E0E0", "shadowColor": "#000000", "useSystemFolderIcons": false }, "whatsNewDialog": { - "backgroundColor": "#2a2a2a", - "closeButtonColor": "#dddddd", - "contentTextColor": "#e0e0e0", - "headerDecorationColor": "#e8b800", - "headerTextColor": "#e0e0e0", - "linkColor": "#e8b800", + "backgroundColor": "#2A2A2A", + "closeButtonColor": "#DDDDDD", + "contentTextColor": "#E0E0E0", + "headerDecorationColor": "#E8B800", + "headerTextColor": "#E0E0E0", + "linkColor": "#E8B800", "versionTextColor": "#858585" } } diff --git a/YACReaderLibrary/themes/builtin_light.json b/YACReaderLibrary/themes/builtin_light.json index 9742b606..f6d252ac 100644 --- a/YACReaderLibrary/themes/builtin_light.json +++ b/YACReaderLibrary/themes/builtin_light.json @@ -1,36 +1,36 @@ { "comicFlow": { - "backgroundColor": "#dcdcdc", - "readMainColor": "#db4725", - "readTickColor": "#8a2c17", - "readingColor": "#e6b90f", + "backgroundColor": "#DCDCDC", + "readMainColor": "#DB4725", + "readTickColor": "#8A2C17", + "readingColor": "#E6B90F", "textColor": "#303030" }, "comicsViewTable": { - "alternateBackgroundColor": "#f2f2f2", - "backgroundColor": "#fafafa", - "headerBackgroundColor": "#f5f5f5", - "headerBorderColor": "#b8bdc4", - "headerGradientColor": "#f5f5f5", + "alternateBackgroundColor": "#F2F2F2", + "backgroundColor": "#FAFAFA", + "headerBackgroundColor": "#F5F5F5", + "headerBorderColor": "#B8BDC4", + "headerGradientColor": "#F5F5F5", "headerTextColor": "#313232", - "itemBorderBottomColor": "#dfdfdf", + "itemBorderBottomColor": "#DFDFDF", "itemBorderBottomWidth": 0, - "itemBorderTopColor": "#fefefe", + "itemBorderTopColor": "#FEFEFE", "itemBorderTopWidth": 0, "itemTextColor": "#252626", "selectedColor": "#595959", - "selectedTextColor": "#ffffff", - "starRatingColor": "#e9be0f", - "starRatingSelectedColor": "#ffffff" + "selectedTextColor": "#FFFFFF", + "starRatingColor": "#E9BE0F", + "starRatingSelectedColor": "#FFFFFF" }, "comicsViewToolbar": { - "backgroundColor": "#f0f0f0", - "checkedBackgroundColor": "#cccccc", + "backgroundColor": "#F0F0F0", + "checkedBackgroundColor": "#CCCCCC", "iconColor": "#404040", - "separatorColor": "#cccccc" + "separatorColor": "#CCCCCC" }, "contentSplitter": { - "handleColor": "#f0f0f0", + "handleColor": "#F0F0F0", "horizontalHandleHeight": 4, "verticalHandleWidth": 4 }, @@ -38,84 +38,84 @@ "iconColor": "#606060" }, "emptyContainer": { - "backgroundColor": "#ffffff", - "iconColor": "#cccccc", + "backgroundColor": "#FFFFFF", + "iconColor": "#CCCCCC", "titleTextColor": "#888888" }, "gridAndInfoView": { - "backgroundBlurOverlayColor": "#9e9e9e", - "backgroundColor": "#f6f6f6", - "borderColor": "#dbdbdb", - "buttonColor": "#ffcc00", - "buttonShadowColor": "#aa000000", - "buttonTextColor": "#ffffff", - "cellColor": "#ffffff", - "cellColorWithBackground": "#99ffffff", - "cellSelectedBorderColor": "#ffcc00", - "cellSelectedColor": "#ffffff", - "comicCoverBorderColor": "#30ffffff", - "continueReadingBackgroundColor": "#e8e8e8", + "backgroundBlurOverlayColor": "#9E9E9E", + "backgroundColor": "#F6F6F6", + "borderColor": "#DBDBDB", + "buttonColor": "#FFCC00", + "buttonShadowColor": "#AA000000", + "buttonTextColor": "#FFFFFF", + "cellColor": "#FFFFFF", + "cellColorWithBackground": "#99FFFFFF", + "cellSelectedBorderColor": "#FFCC00", + "cellSelectedColor": "#FFFFFF", + "comicCoverBorderColor": "#30FFFFFF", + "continueReadingBackgroundColor": "#E8E8E8", "continueReadingTextColor": "#000000", - "currentComicBackgroundColor": "#88ffffff", - "currentComicCoverShadowColor": "#ff000000", - "favCheckedColor": "#e84852", - "favUncheckedColor": "#dedede", - "folderCoverBorderColor": "#20ffffff", - "infoBackgroundColor": "#ffffff", + "currentComicBackgroundColor": "#88FFFFFF", + "currentComicCoverShadowColor": "#FF000000", + "favCheckedColor": "#E84852", + "favUncheckedColor": "#DEDEDE", + "folderCoverBorderColor": "#20FFFFFF", + "infoBackgroundColor": "#FFFFFF", "infoBorderColor": "#808080", "infoMetadataTextColor": "#404040", - "infoScrollbarColor": "#ff424246", + "infoScrollbarColor": "#FF424246", "infoShadowColor": "#444444", - "infoTextColor": "#2e2e2e", + "infoTextColor": "#2E2E2E", "itemDetailsColor": "#636363", "itemTitleColor": "#121212", - "linkColor": "#ffcc00", - "newItemColor": "#ffffcc00", - "placeholderFolder1BorderColor": "#20ffffff", + "linkColor": "#FFCC00", + "newItemColor": "#FFFFCC00", + "placeholderFolder1BorderColor": "#20FFFFFF", "placeholderFolder1Color": "#20000000", - "placeholderFolder2BorderColor": "#20ffffff", + "placeholderFolder2BorderColor": "#20FFFFFF", "placeholderFolder2Color": "#88000000", - "ratingSelectedColor": "#2b2b2b", - "ratingUnselectedColor": "#dedede", - "readTickCheckedColor": "#e84852", - "readTickUncheckedColor": "#dedede", - "scrollbarBorderColor": "#aa313131", + "ratingSelectedColor": "#2B2B2B", + "ratingUnselectedColor": "#DEDEDE", + "readTickCheckedColor": "#E84852", + "readTickUncheckedColor": "#DEDEDE", + "scrollbarBorderColor": "#AA313131", "scrollbarColor": "#88424242", "showDropShadow": true }, "helpAboutDialog": { - "headingColor": "#302f2d", - "linkColor": "#c19441" + "headingColor": "#302F2D", + "linkColor": "#C19441" }, "importWidget": { - "backgroundColor": "#fafafa", - "coversDecorationBgColor": "#e6e6e6", - "coversDecorationShadowColor": "#a1a1a1", + "backgroundColor": "#FAFAFA", + "coversDecorationBgColor": "#E6E6E6", + "coversDecorationShadowColor": "#A1A1A1", "coversLabelColor": "#565959", - "coversViewBackgroundColor": "#e6e6e6", + "coversViewBackgroundColor": "#E6E6E6", "currentComicTextColor": "#565959", "descriptionTextColor": "#565959", - "glowLineColor": "#ffe100", + "glowLineColor": "#FFE100", "iconCheckedColor": "#565959", "iconColor": "#495252", - "modeIconColor": "#e6e6e6", + "modeIconColor": "#E6E6E6", "titleTextColor": "#495252" }, "libraryItem": { "libraryIconColor": "#606060", - "libraryIconSelectedColor": "#ffffff", - "libraryIconShadowColor": "#ffffff", - "libraryOptionsIconColor": "#ffffff", + "libraryIconSelectedColor": "#FFFFFF", + "libraryIconShadowColor": "#FFFFFF", + "libraryOptionsIconColor": "#FFFFFF", "selectedBackgroundColor": "#333133", - "selectedTextColor": "#ffffff", + "selectedTextColor": "#FFFFFF", "textColor": "#000000" }, "mainToolbar": { - "backgroundColor": "#f0f0f0", - "dividerColor": "#b8bdc4", + "backgroundColor": "#F0F0F0", + "dividerColor": "#B8BDC4", "folderNameColor": "#333133", "iconColor": "#333133", - "iconDisabledColor": "#b0b0b0" + "iconDisabledColor": "#B0B0B0" }, "menuIcons": { "iconColor": "#606060" @@ -129,136 +129,136 @@ }, "metadataScraperDialog": { "busyIndicatorColor": "#000000", - "buttonBackgroundColor": "#e0e0e0", - "buttonBorderColor": "#cccccc", + "buttonBackgroundColor": "#E0E0E0", + "buttonBorderColor": "#CCCCCC", "buttonTextColor": "#000000", "checkBoxTickColor": "#000000", - "contentAltBackgroundColor": "#e0e0e0", - "contentBackgroundColor": "#ececec", + "contentAltBackgroundColor": "#E0E0E0", + "contentBackgroundColor": "#ECECEC", "contentTextColor": "#000000", - "dialogBackgroundColor": "#fbfbfb", + "dialogBackgroundColor": "#FBFBFB", "downArrowColor": "#222222", - "hyperlinkColor": "#ffcc00", - "labelBackgroundColor": "#ececec", + "hyperlinkColor": "#FFCC00", + "labelBackgroundColor": "#ECECEC", "labelTextColor": "#000000", "navIconColor": "#222222", - "radioCheckedBackgroundColor": "#e0e0e0", + "radioCheckedBackgroundColor": "#E0E0E0", "radioCheckedIndicatorColor": "#222222", - "radioUncheckedColor": "#e0e0e0", + "radioUncheckedColor": "#E0E0E0", "rowIconColor": "#222222", - "tableAltBackgroundColor": "#fafafa", - "tableBackgroundColor": "#f4f4f4", - "tableBorderColor": "#cccccc", - "tableHeaderBackgroundColor": "#e0e0e0", - "tableHeaderBorderColor": "#c0c0c0", - "tableHeaderGradientColor": "#e0e0e0", + "tableAltBackgroundColor": "#FAFAFA", + "tableBackgroundColor": "#F4F4F4", + "tableBorderColor": "#CCCCCC", + "tableHeaderBackgroundColor": "#E0E0E0", + "tableHeaderBorderColor": "#C0C0C0", + "tableHeaderGradientColor": "#E0E0E0", "tableHeaderTextColor": "#333333", - "tableScrollBackgroundColor": "#d0d0d0", + "tableScrollBackgroundColor": "#D0D0D0", "tableScrollHandleColor": "#888888", - "tableSectionBorderDark": "#cccccc", - "tableSectionBorderLight": "#ffffff", - "tableSelectedColor": "#dddddd", - "toolButtonAccentColor": "#a0a0a0", + "tableSectionBorderDark": "#CCCCCC", + "tableSectionBorderLight": "#FFFFFF", + "tableSelectedColor": "#DDDDDD", + "toolButtonAccentColor": "#A0A0A0", "upArrowColor": "#222222" }, "navigationTree": { "branchIndicatorColor": "#606060", - "branchIndicatorSelectedColor": "#ffffff", + "branchIndicatorSelectedColor": "#FFFFFF", "folderIconColor": "#606060", - "folderIconSelectedColor": "#ffffff", + "folderIconSelectedColor": "#FFFFFF", "folderIconSelectedShadowColor": "#161616", - "folderIconShadowColor": "#ffffff", - "folderNotCompletedColor": "#555f7f", - "folderReadOverlayColor": "#ffffff", + "folderIconShadowColor": "#FFFFFF", + "folderNotCompletedColor": "#555F7F", + "folderReadOverlayColor": "#FFFFFF", "folderReadOverlaySelectedColor": "#161616", - "newItemColor": "#555f7f", - "scrollBackgroundColor": "#e0e0e0", + "newItemColor": "#555F7F", + "scrollBackgroundColor": "#E0E0E0", "scrollHandleColor": "#888888", - "selectedTextColor": "#ffffff", + "selectedTextColor": "#FFFFFF", "selectionBackgroundColor": "#333133", "textColor": "#000000" }, "noLibrariesWidget": { - "backgroundColor": "#ffffff", + "backgroundColor": "#FFFFFF", "descriptionTextColor": "#565959", - "iconColor": "#cccccc", - "noLibrariesLineColor": "#a8a8a8", + "iconColor": "#CCCCCC", + "noLibrariesLineColor": "#A8A8A8", "textColor": "#495252" }, "readingListIcons": { - "currentlyReadingMainColor": "#ffcc00", - "currentlyReadingMainSelectedColor": "#ffcc00", + "currentlyReadingMainColor": "#FFCC00", + "currentlyReadingMainSelectedColor": "#FFCC00", "currentlyReadingOuterColor": "#000000", "currentlyReadingOuterSelectedColor": "#000000", - "favoritesMainColor": "#e15055", - "favoritesMainSelectedColor": "#e15055", + "favoritesMainColor": "#E15055", + "favoritesMainSelectedColor": "#E15055", "labelColors": { - "blue": "#82c7ff", - "cyan": "#a0fddb", - "dark": "#b7b7b7", - "green": "#ade738", - "light": "#cbcbcb", - "orange": "#f5c240", - "pink": "#fd9cda", - "purple": "#d692fc", - "red": "#f67a7b", - "violet": "#8f95ff", - "white": "#fcfcfc", - "yellow": "#f2e446" + "blue": "#82C7FF", + "cyan": "#A0FDDB", + "dark": "#B7B7B7", + "green": "#ADE738", + "light": "#CBCBCB", + "orange": "#F5C240", + "pink": "#FD9CDA", + "purple": "#D692FC", + "red": "#F67A7B", + "violet": "#8F95FF", + "white": "#FCFCFC", + "yellow": "#F2E446" }, - "labelShadowColor": "#8f8f8f", + "labelShadowColor": "#8F8F8F", "labelShadowSelectedColor": "#161616", - "listDetailColor": "#ffffff", + "listDetailColor": "#FFFFFF", "listDetailSelectedColor": "#161616", "listMainColor": "#808080", - "listMainSelectedColor": "#ffffff", - "listShadowColor": "#8f8f8f", + "listMainSelectedColor": "#FFFFFF", + "listShadowColor": "#8F8F8F", "listShadowSelectedColor": "#161616", "readingListMainColor": "#808080", "readingListMainSelectedColor": "#808080", - "specialListShadowColor": "#8f8f8f", + "specialListShadowColor": "#8F8F8F", "specialListShadowSelectedColor": "#161616" }, "searchLineEdit": { "backgroundColor": "#333133", - "iconColor": "#efefef", - "textColor": "#ffffff" + "iconColor": "#EFEFEF", + "textColor": "#FFFFFF" }, "serverConfigDialog": { - "backgroundColor": "#ffffff", + "backgroundColor": "#FFFFFF", "checkBoxTextColor": "#262626", "decorationColor": "#606060", "labelTextColor": "#575757", - "propagandaTextColor": "#4d4d4d", - "qrBackgroundColor": "#ffffff", + "propagandaTextColor": "#4D4D4D", + "qrBackgroundColor": "#FFFFFF", "qrForegroundColor": "#606060", - "qrMessageTextColor": "#a3a3a3", + "qrMessageTextColor": "#A3A3A3", "titleTextColor": "#474747" }, "shortcutsIcons": { "iconColor": "#606060" }, "sidebar": { - "backgroundColor": "#fbfbfb", + "backgroundColor": "#FBFBFB", "busyIndicatorColor": "#808080", - "sectionSeparatorColor": "#e0e0e0", + "sectionSeparatorColor": "#E0E0E0", "separatorColor": "#808080", - "titleDropShadowColor": "#ffffff", - "titleTextColor": "#4a494a", + "titleDropShadowColor": "#FFFFFF", + "titleTextColor": "#4A494A", "uppercaseLabels": true }, "sidebarIcons": { - "iconColor": "#4f4e4f", - "shadowColor": "#fbfbfb", + "iconColor": "#4F4E4F", + "shadowColor": "#FBFBFB", "useSystemFolderIcons": false }, "whatsNewDialog": { - "backgroundColor": "#ffffff", + "backgroundColor": "#FFFFFF", "closeButtonColor": "#444444", - "contentTextColor": "#0a0a0a", - "headerDecorationColor": "#e8b800", - "headerTextColor": "#0a0a0a", - "linkColor": "#e8b800", + "contentTextColor": "#0A0A0A", + "headerDecorationColor": "#E8B800", + "headerTextColor": "#0A0A0A", + "linkColor": "#E8B800", "versionTextColor": "#858585" } } diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index ae0c1639..47729aad 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -120,6 +120,8 @@ add_library(common_gui STATIC themes/shared/whats_new_dialog_theme.h themes/theme_editor_dialog.h themes/theme_editor_dialog.cpp + themes/theme_json_utils.h + themes/theme_json_utils.cpp themes/theme_meta.h themes/theme_repository.h themes/theme_repository.cpp diff --git a/common/themes/theme_editor_dialog.cpp b/common/themes/theme_editor_dialog.cpp index c969aa29..b8fa6b7d 100644 --- a/common/themes/theme_editor_dialog.cpp +++ b/common/themes/theme_editor_dialog.cpp @@ -1,4 +1,5 @@ #include "theme_editor_dialog.h" +#include "theme_json_utils.h" #include #include @@ -51,17 +52,8 @@ static QString displayKey(const QString &key) return result; } -static bool isColorString(const QString &s) -{ - // Accepts #RGB, #RRGGBB, #AARRGGBB - if (!s.startsWith('#')) - return false; - const int len = s.length(); - return len == 4 || len == 7 || len == 9; -} - ThemeEditorDialog::ThemeEditorDialog(const QJsonObject ¶ms, QWidget *parent) - : QDialog(parent), params(params) + : QDialog(parent), params(normalizeThemeJson(params)) { setWindowTitle(tr("Theme Editor")); resize(520, 700); @@ -206,7 +198,7 @@ void ThemeEditorDialog::populate(QTreeWidgetItem *parent, const QJsonObject &obj item->setData(0, PathRole, childPath); const QString strVal = val.toString(); - if (val.isString() && isColorString(strVal)) { + if (val.isString() && isThemeHexColorString(strVal)) { const QColor color(strVal); item->setIcon(1, colorIcon(color)); item->setText(1, strVal); @@ -256,11 +248,12 @@ void ThemeEditorDialog::applyColorToItem(QTreeWidgetItem *item, const QColor &co const QString hexStr = color.alpha() < 255 ? color.name(QColor::HexArgb) : color.name(QColor::HexRgb); - item->setText(1, hexStr); + const QString normalizedHexStr = hexStr.toUpper(); + item->setText(1, normalizedHexStr); item->setIcon(1, colorIcon(color)); const QStringList path = item->data(0, PathRole).toStringList(); - setJsonPath(params, path, hexStr); + setJsonPath(params, path, normalizedHexStr); } void ThemeEditorDialog::toggleBoolItem(QTreeWidgetItem *item) @@ -409,7 +402,7 @@ void ThemeEditorDialog::saveToFile() QMessageBox::warning(this, tr("Save failed"), tr("Could not open file for writing:\n%1").arg(path)); return; } - file.write(QJsonDocument(params).toJson(QJsonDocument::Indented)); + file.write(serializeNormalizedThemeJson(params)); } void ThemeEditorDialog::loadFromFile() @@ -436,7 +429,7 @@ void ThemeEditorDialog::loadFromFile() return; } - params = doc.object(); + params = normalizeThemeJson(doc.object()); syncMetaFromParams(); tree->clear(); populate(nullptr, params, { }); diff --git a/common/themes/theme_json_utils.cpp b/common/themes/theme_json_utils.cpp new file mode 100644 index 00000000..0225af64 --- /dev/null +++ b/common/themes/theme_json_utils.cpp @@ -0,0 +1,50 @@ +#include "theme_json_utils.h" + +#include +#include +#include + +namespace { + +QJsonValue normalizeThemeJsonValue(const QJsonValue &value) +{ + if (value.isObject()) + return normalizeThemeJson(value.toObject()); + + if (value.isArray()) { + QJsonArray normalizedArray = value.toArray(); + for (int i = 0; i < normalizedArray.size(); ++i) + normalizedArray[i] = normalizeThemeJsonValue(normalizedArray.at(i)); + return normalizedArray; + } + + if (value.isString()) { + const QString stringValue = value.toString(); + if (isThemeHexColorString(stringValue)) + return stringValue.toUpper(); + } + + return value; +} + +} + +bool isThemeHexColorString(const QString &value) +{ + static const QRegularExpression colorRegex( + "^#(?:[0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$"); + return colorRegex.match(value).hasMatch(); +} + +QJsonObject normalizeThemeJson(const QJsonObject &json) +{ + QJsonObject normalized; + for (auto it = json.constBegin(); it != json.constEnd(); ++it) + normalized.insert(it.key(), normalizeThemeJsonValue(it.value())); + return normalized; +} + +QByteArray serializeNormalizedThemeJson(const QJsonObject &json, QJsonDocument::JsonFormat format) +{ + return QJsonDocument(normalizeThemeJson(json)).toJson(format); +} diff --git a/common/themes/theme_json_utils.h b/common/themes/theme_json_utils.h new file mode 100644 index 00000000..106f4638 --- /dev/null +++ b/common/themes/theme_json_utils.h @@ -0,0 +1,14 @@ +#ifndef THEME_JSON_UTILS_H +#define THEME_JSON_UTILS_H + +#include +#include +#include +#include + +bool isThemeHexColorString(const QString &value); +QJsonObject normalizeThemeJson(const QJsonObject &json); +QByteArray serializeNormalizedThemeJson(const QJsonObject &json, + QJsonDocument::JsonFormat format = QJsonDocument::Indented); + +#endif // THEME_JSON_UTILS_H diff --git a/common/themes/theme_repository.cpp b/common/themes/theme_repository.cpp index 96a3e0d5..2b324bca 100644 --- a/common/themes/theme_repository.cpp +++ b/common/themes/theme_repository.cpp @@ -1,4 +1,5 @@ #include "theme_repository.h" +#include "theme_json_utils.h" #include #include @@ -78,7 +79,7 @@ QString ThemeRepository::saveUserTheme(QJsonObject themeJson) QFile file(filePath); if (file.open(QIODevice::WriteOnly)) { - file.write(QJsonDocument(themeJson).toJson(QJsonDocument::Indented)); + file.write(serializeNormalizedThemeJson(themeJson)); file.close(); }