From 444f21fd7e9199e7792b91badbc880ce11cf2100 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 2 Sep 2021 20:48:12 +0300 Subject: [PATCH] Support colorizing of the default palette. --- .../window/themes/window_theme.cpp | 2 +- .../window/themes/window_themes_embedded.cpp | 20 +++++++++++++--- .../window/window_session_controller.cpp | 24 +++++++++++-------- Telegram/lib_ui | 2 +- 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/Telegram/SourceFiles/window/themes/window_theme.cpp b/Telegram/SourceFiles/window/themes/window_theme.cpp index 979da30c1..a568a3630 100644 --- a/Telegram/SourceFiles/window/themes/window_theme.cpp +++ b/Telegram/SourceFiles/window/themes/window_theme.cpp @@ -1036,7 +1036,7 @@ void ChatBackground::setTestingTheme(Instance &&theme) { } void ChatBackground::setTestingDefaultTheme() { - style::main_palette::reset(); + style::main_palette::reset(ColorizerForTheme(QString())); saveAdjustableColors(); saveForRevert(); diff --git a/Telegram/SourceFiles/window/themes/window_themes_embedded.cpp b/Telegram/SourceFiles/window/themes/window_themes_embedded.cpp index e7a4c64dc..98ff70ac0 100644 --- a/Telegram/SourceFiles/window/themes/window_themes_embedded.cpp +++ b/Telegram/SourceFiles/window/themes/window_themes_embedded.cpp @@ -98,6 +98,9 @@ style::colorizer ColorizerFrom( &result.now.saturation, &result.now.value); switch (scheme.type) { + case EmbeddedType::Default: + result.lightnessMax = 160; + break; case EmbeddedType::DayBlue: result.lightnessMax = 160; break; @@ -149,7 +152,7 @@ style::colorizer ColorizerFrom( } style::colorizer ColorizerForTheme(const QString &absolutePath) { - if (absolutePath.isEmpty() || !IsEmbeddedTheme(absolutePath)) { + if (!IsEmbeddedTheme(absolutePath)) { return {}; } const auto schemes = EmbeddedThemes(); @@ -195,7 +198,8 @@ std::vector EmbeddedThemes() { qColor("eaffdc"), qColor("ffffff"), tr::lng_settings_theme_classic, - QString() + QString(), + qColor("40a7e3") }, EmbeddedScheme{ EmbeddedType::DayBlue, @@ -250,7 +254,16 @@ std::vector DefaultAccentColors(EmbeddedType type) { qColor("dea922"), }; case EmbeddedType::Default: - return {}; + return { + qColor("45bce7"), + qColor("52b440"), + qColor("d46c99"), + qColor("df8a49"), + qColor("9978c8"), + qColor("c55245"), + qColor("687b98"), + qColor("dea922"), + }; case EmbeddedType::Night: return { qColor("58bfe8"), @@ -323,6 +336,7 @@ bool AccentColors::setFromSerialized(const QByteArray &serialized) { const auto color = Serialize::readColor(stream); const auto uncheckedType = static_cast(type); switch (uncheckedType) { + case EmbeddedType::Default: case EmbeddedType::DayBlue: case EmbeddedType::Night: case EmbeddedType::NightGreen: diff --git a/Telegram/SourceFiles/window/window_session_controller.cpp b/Telegram/SourceFiles/window/window_session_controller.cpp index 2900ebcb2..d2e6d3ff1 100644 --- a/Telegram/SourceFiles/window/window_session_controller.cpp +++ b/Telegram/SourceFiles/window/window_session_controller.cpp @@ -81,26 +81,30 @@ constexpr auto kMaxChatEntryHistorySize = 50; std::optional accent) { return [=](style::palette &palette) { using namespace Theme; - palette.finalize(); - if (dark) { - const auto &embedded = EmbeddedThemes(); - const auto i = ranges::find( - embedded, - EmbeddedType::Night, - &EmbeddedScheme::type); - Assert(i != end(embedded)); + const auto &embedded = EmbeddedThemes(); + const auto i = ranges::find( + embedded, + dark ? EmbeddedType::Night : EmbeddedType::Default, + &EmbeddedScheme::type); + Assert(i != end(embedded)); + const auto colorizer = accent + ? ColorizerFrom(*i, *accent) + : style::colorizer(); + if (dark) { auto instance = Instance(); const auto loaded = LoadFromFile( i->path, &instance, nullptr, nullptr, - accent ? ColorizerFrom(*i, *accent) : style::colorizer()); + colorizer); Assert(loaded); + + palette.finalize(); palette = instance.palette; } else { - // #TODO themes apply accent color to classic theme + palette.finalize(colorizer); } }; } diff --git a/Telegram/lib_ui b/Telegram/lib_ui index cc5ebf21e..1180d13a5 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit cc5ebf21e747802e60941083da0e0d7d1bfbb2aa +Subproject commit 1180d13a5c654b517901d6bdab030f17ff314ff6