mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-16 14:17:12 +02:00
Support colorizing of the default palette.
This commit is contained in:
parent
2554aaf3c0
commit
444f21fd7e
4 changed files with 33 additions and 15 deletions
|
@ -1036,7 +1036,7 @@ void ChatBackground::setTestingTheme(Instance &&theme) {
|
|||
}
|
||||
|
||||
void ChatBackground::setTestingDefaultTheme() {
|
||||
style::main_palette::reset();
|
||||
style::main_palette::reset(ColorizerForTheme(QString()));
|
||||
saveAdjustableColors();
|
||||
|
||||
saveForRevert();
|
||||
|
|
|
@ -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<EmbeddedScheme> EmbeddedThemes() {
|
|||
qColor("eaffdc"),
|
||||
qColor("ffffff"),
|
||||
tr::lng_settings_theme_classic,
|
||||
QString()
|
||||
QString(),
|
||||
qColor("40a7e3")
|
||||
},
|
||||
EmbeddedScheme{
|
||||
EmbeddedType::DayBlue,
|
||||
|
@ -250,7 +254,16 @@ std::vector<QColor> 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<EmbeddedType>(type);
|
||||
switch (uncheckedType) {
|
||||
case EmbeddedType::Default:
|
||||
case EmbeddedType::DayBlue:
|
||||
case EmbeddedType::Night:
|
||||
case EmbeddedType::NightGreen:
|
||||
|
|
|
@ -81,26 +81,30 @@ constexpr auto kMaxChatEntryHistorySize = 50;
|
|||
std::optional<QColor> 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);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit cc5ebf21e747802e60941083da0e0d7d1bfbb2aa
|
||||
Subproject commit 1180d13a5c654b517901d6bdab030f17ff314ff6
|
Loading…
Add table
Reference in a new issue