From 38e4daacd4b345e95289bef71920c51e62975f78 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 26 Aug 2019 17:08:33 +0300 Subject: [PATCH] Use HSL color space for accent colors. --- Telegram/Resources/day-blue.tdesktop-theme | Bin 10657 -> 3562 bytes Telegram/Resources/night-green.tdesktop-theme | Bin 8905 -> 8149 bytes Telegram/Resources/night.tdesktop-theme | Bin 8890 -> 8213 bytes .../window/themes/window_theme_editor.cpp | 2 +- .../themes/window_theme_editor_block.cpp | 24 ++- .../window/themes/window_themes_embedded.cpp | 197 ++++++++++-------- .../window/themes/window_themes_embedded.h | 14 +- 7 files changed, 133 insertions(+), 104 deletions(-) diff --git a/Telegram/Resources/day-blue.tdesktop-theme b/Telegram/Resources/day-blue.tdesktop-theme index d24019eb17dce90f17e6c1a38b765c94f92a6285..2a413f9dcbfb6935f02462b3ae98f56cdd52522c 100644 GIT binary patch literal 3562 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 diff --git a/Telegram/Resources/night.tdesktop-theme b/Telegram/Resources/night.tdesktop-theme index 37e401c7c5ce4cd9295fcc88363e97c3086d759f..c9d188ec1e6c694dcd6350e0333b26cdb125e383 100644 GIT binary patch literal 8213 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 ZAaNnte{3M3{_{q#e>M6Kd5HhR{s&c^y~qFn literal 8890 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 I Editor::Inner::exportCallback() { } void Editor::Inner::filterRows(const QString &query) { - if (query == ":sort-by-accent-distance") { + if (query == ":sort-for-accent") { sortByAccentDistance(); filterRows(QString()); return; diff --git a/Telegram/SourceFiles/window/themes/window_theme_editor_block.cpp b/Telegram/SourceFiles/window/themes/window_theme_editor_block.cpp index e38b4e0cc1..8c30bd6089 100644 --- a/Telegram/SourceFiles/window/themes/window_theme_editor_block.cpp +++ b/Telegram/SourceFiles/window/themes/window_theme_editor_block.cpp @@ -395,16 +395,22 @@ bool EditorBlock::feedDescription(const QString &name, const QString &descriptio } void EditorBlock::sortByDistance(const QColor &to) { - auto toHue = qreal(); - auto toSaturation = qreal(); - auto toLightness = qreal(); - to.getHsvF(&toHue, &toSaturation, &toLightness); + auto toHue = int(); + auto toSaturation = int(); + auto toLightness = int(); + to.getHsl(&toHue, &toSaturation, &toLightness); ranges::sort(_data, ranges::less(), [&](const Row &row) { - auto fromHue = qreal(); - auto fromSaturation = qreal(); - auto fromLightness = qreal(); - row.value().getHsvF(&fromHue, &fromSaturation, &fromLightness); - return (toSaturation > 0.01) ? std::abs(fromHue - toHue) : 1.; + auto fromHue = int(); + auto fromSaturation = int(); + auto fromLightness = int(); + row.value().getHsl(&fromHue, &fromSaturation, &fromLightness); + if (!row.copyOf().isEmpty() && row.copyOf() != "windowBgActive") { + return 365; + } + const auto a = std::abs(fromHue - toHue); + const auto b = 360 + fromHue - toHue; + const auto c = 360 + toHue - fromHue; + return std::min(a, std::min(b, c)); }); } diff --git a/Telegram/SourceFiles/window/themes/window_themes_embedded.cpp b/Telegram/SourceFiles/window/themes/window_themes_embedded.cpp index b793e588ac..a14e89501a 100644 --- a/Telegram/SourceFiles/window/themes/window_themes_embedded.cpp +++ b/Telegram/SourceFiles/window/themes/window_themes_embedded.cpp @@ -65,7 +65,7 @@ const auto kColorizeIgnoredKeys = base::flat_set{ { qstr("mediaviewFileBlueCornerFg"), } }; -QColor Color(str_const hex) { +QColor qColor(str_const hex) { Expects(hex.size() == 6); const auto component = [](char a, char b) { @@ -87,20 +87,38 @@ QColor Color(str_const hex) { component(hex[4], hex[5])); }; +Colorizer::Color cColor(str_const hex) { + const auto q = qColor(hex); + auto hue = int(); + auto saturation = int(); + auto lightness = int(); + q.getHsl(&hue, &saturation, &lightness); + return Colorizer::Color{ hue, saturation, lightness }; +} + } // namespace Colorizer ColorizerFrom(const EmbeddedScheme &scheme, const QColor &color) { + using Color = Colorizer::Color; + auto result = Colorizer(); result.ignoreKeys = kColorizeIgnoredKeys; - result.hueThreshold = 10; - scheme.accentColor.getHsv( - &result.wasHue, - &result.wasSaturation, - &result.wasValue); - color.getHsv( - &result.nowHue, - &result.nowSaturation, - &result.nowValue); + result.hueThreshold = 15; + scheme.accentColor.getHsl( + &result.was.hue, + &result.was.saturation, + &result.was.lightness); + color.getHsl( + &result.now.hue, + &result.now.saturation, + &result.now.lightness); + switch (scheme.type) { + case EmbeddedType::DayBlue: + //result.keepContrast = base::flat_map{ { + // { qstr("test"), cColor("aaaaaa") }, + //} }; + break; + } return result; } @@ -112,38 +130,41 @@ void Colorize( auto color = QColor(int(r), int(g), int(b)); auto hue = 0; auto saturation = 0; - auto value = 0; - color.getHsv(&hue, &saturation, &value); - const auto changeColor = std::abs(hue - colorizer->wasHue) + auto lightness = 0; + color.getHsl(&hue, &saturation, &lightness); + const auto changeColor = std::abs(hue - colorizer->was.hue) <= colorizer->hueThreshold; - const auto nowHue = hue + (colorizer->nowHue - colorizer->wasHue); - const auto nowSaturation = ((saturation > colorizer->wasSaturation) - && (colorizer->nowSaturation > colorizer->wasSaturation)) - ? (((colorizer->nowSaturation * (255 - colorizer->wasSaturation)) - + ((saturation - colorizer->wasSaturation) - * (255 - colorizer->nowSaturation))) - / (255 - colorizer->wasSaturation)) - : ((saturation != colorizer->wasSaturation) - && (colorizer->wasSaturation != 0)) - ? ((saturation * colorizer->nowSaturation) - / colorizer->wasSaturation) - : colorizer->nowSaturation; - const auto nowValue = (value > colorizer->wasValue) - ? (((colorizer->nowValue * (255 - colorizer->wasValue)) - + ((value - colorizer->wasValue) - * (255 - colorizer->nowValue))) - / (255 - colorizer->wasValue)) - : (value < colorizer->wasValue) - ? ((value * colorizer->nowValue) - / colorizer->wasValue) - : colorizer->nowValue; + if (!changeColor) { + return; + } + const auto nowHue = hue + (colorizer->now.hue - colorizer->was.hue); + const auto nowSaturation = ((saturation > colorizer->was.saturation) + && (colorizer->now.saturation > colorizer->was.saturation)) + ? (((colorizer->now.saturation * (255 - colorizer->was.saturation)) + + ((saturation - colorizer->was.saturation) + * (255 - colorizer->now.saturation))) + / (255 - colorizer->was.saturation)) + : ((saturation != colorizer->was.saturation) + && (colorizer->was.saturation != 0)) + ? ((saturation * colorizer->now.saturation) + / colorizer->was.saturation) + : colorizer->now.saturation; + const auto nowLightness = (lightness > colorizer->was.lightness) + ? (((colorizer->now.lightness * (255 - colorizer->was.lightness)) + + ((lightness - colorizer->was.lightness) + * (255 - colorizer->now.lightness))) + / (255 - colorizer->was.lightness)) + : (lightness < colorizer->was.lightness) + ? ((lightness * colorizer->now.lightness) + / colorizer->was.lightness) + : colorizer->now.lightness; auto nowR = 0; auto nowG = 0; auto nowB = 0; - QColor::fromHsv( - changeColor ? ((nowHue + 360) % 360) : hue, - changeColor ? nowSaturation : saturation, - nowValue + QColor::fromHsl( + ((nowHue + 360) % 360), + nowSaturation, + nowLightness ).getRgb(&nowR, &nowG, &nowB); r = uchar(nowR); g = uchar(nowG); @@ -198,46 +219,46 @@ std::vector EmbeddedThemes() { return { EmbeddedScheme{ EmbeddedType::DayBlue, - Color("7ec4ea"), - Color("d7f0ff"), - Color("ffffff"), - Color("d7f0ff"), - Color("ffffff"), + qColor("7ec4ea"), + qColor("d7f0ff"), + qColor("ffffff"), + qColor("d7f0ff"), + qColor("ffffff"), tr::lng_settings_theme_blue, ":/gui/day-blue.tdesktop-theme", - Color("40a7e3") + qColor("40a7e3") }, EmbeddedScheme{ EmbeddedType::Default, - Color("90ce89"), - Color("eaffdc"), - Color("ffffff"), - Color("eaffdc"), - Color("ffffff"), + qColor("90ce89"), + qColor("eaffdc"), + qColor("ffffff"), + qColor("eaffdc"), + qColor("ffffff"), tr::lng_settings_theme_classic, QString() }, EmbeddedScheme{ EmbeddedType::Night, - Color("485761"), - Color("5ca7d4"), - Color("6b808d"), - Color("6b808d"), - Color("5ca7d4"), + qColor("485761"), + qColor("5ca7d4"), + qColor("6b808d"), + qColor("6b808d"), + qColor("5ca7d4"), tr::lng_settings_theme_midnight, ":/gui/night.tdesktop-theme", - Color("5288c1") + qColor("5288c1") }, EmbeddedScheme{ EmbeddedType::NightGreen, - Color("485761"), - Color("75bfb5"), - Color("6b808d"), - Color("6b808d"), - Color("75bfb5"), + qColor("485761"), + qColor("75bfb5"), + qColor("6b808d"), + qColor("6b808d"), + qColor("75bfb5"), tr::lng_settings_theme_matrix, ":/gui/night-green.tdesktop-theme", - Color("3fc1b0") + qColor("3fc1b0") }, }; } @@ -246,41 +267,41 @@ std::vector DefaultAccentColors(EmbeddedType type) { switch (type) { case EmbeddedType::DayBlue: return { - //Color("3478f5"), - Color("58bfe8"), - Color("58b040"), - Color("da73a2"), - Color("e28830"), - Color("9073e7"), - Color("c14126"), - Color("71829c"), - Color("e3b63e"), + //qColor("3478f5"), + qColor("58bfe8"), + qColor("58b040"), + qColor("da73a2"), + qColor("e28830"), + qColor("9073e7"), + qColor("c14126"), + qColor("71829c"), + qColor("e3b63e"), }; case EmbeddedType::Default: return {}; case EmbeddedType::Night: return { - //Color("3478f5"), - Color("58bfe8"), - Color("58b040"), - Color("da73a2"), - Color("e28830"), - Color("9073e7"), - Color("c14126"), - Color("71829c"), - Color("e3b63e"), + //qColor("3478f5"), + qColor("58bfe8"), + qColor("58b040"), + qColor("da73a2"), + qColor("e28830"), + qColor("9073e7"), + qColor("c14126"), + qColor("71829c"), + qColor("e3b63e"), }; case EmbeddedType::NightGreen: return { - Color("3478f5"), - //Color("58bfe8"), - Color("58b040"), - Color("da73a2"), - Color("e28830"), - Color("9073e7"), - Color("c14126"), - Color("71829c"), - Color("e3b63e"), + qColor("3478f5"), + //qColor("58bfe8"), + qColor("58b040"), + qColor("da73a2"), + qColor("e28830"), + qColor("9073e7"), + qColor("c14126"), + qColor("71829c"), + qColor("e3b63e"), }; } Unexpected("Type in Window::Theme::AccentColors."); diff --git a/Telegram/SourceFiles/window/themes/window_themes_embedded.h b/Telegram/SourceFiles/window/themes/window_themes_embedded.h index b0d7d5a428..0bb2de2f4f 100644 --- a/Telegram/SourceFiles/window/themes/window_themes_embedded.h +++ b/Telegram/SourceFiles/window/themes/window_themes_embedded.h @@ -48,14 +48,16 @@ private: }; struct Colorizer { - int wasHue = 0; - int wasSaturation = 0; - int wasValue = 0; - int nowHue = 0; - int nowSaturation = 0; - int nowValue = 0; + struct Color { + int hue = 0; + int saturation = 0; + int lightness = 0; + }; int hueThreshold = 0; + Color was; + Color now; base::flat_set ignoreKeys; + base::flat_map keepContrast; }; [[nodiscard]] Colorizer ColorizerFrom(