mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +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() {
|
void ChatBackground::setTestingDefaultTheme() {
|
||||||
style::main_palette::reset();
|
style::main_palette::reset(ColorizerForTheme(QString()));
|
||||||
saveAdjustableColors();
|
saveAdjustableColors();
|
||||||
|
|
||||||
saveForRevert();
|
saveForRevert();
|
||||||
|
|
|
@ -98,6 +98,9 @@ style::colorizer ColorizerFrom(
|
||||||
&result.now.saturation,
|
&result.now.saturation,
|
||||||
&result.now.value);
|
&result.now.value);
|
||||||
switch (scheme.type) {
|
switch (scheme.type) {
|
||||||
|
case EmbeddedType::Default:
|
||||||
|
result.lightnessMax = 160;
|
||||||
|
break;
|
||||||
case EmbeddedType::DayBlue:
|
case EmbeddedType::DayBlue:
|
||||||
result.lightnessMax = 160;
|
result.lightnessMax = 160;
|
||||||
break;
|
break;
|
||||||
|
@ -149,7 +152,7 @@ style::colorizer ColorizerFrom(
|
||||||
}
|
}
|
||||||
|
|
||||||
style::colorizer ColorizerForTheme(const QString &absolutePath) {
|
style::colorizer ColorizerForTheme(const QString &absolutePath) {
|
||||||
if (absolutePath.isEmpty() || !IsEmbeddedTheme(absolutePath)) {
|
if (!IsEmbeddedTheme(absolutePath)) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
const auto schemes = EmbeddedThemes();
|
const auto schemes = EmbeddedThemes();
|
||||||
|
@ -195,7 +198,8 @@ std::vector<EmbeddedScheme> EmbeddedThemes() {
|
||||||
qColor("eaffdc"),
|
qColor("eaffdc"),
|
||||||
qColor("ffffff"),
|
qColor("ffffff"),
|
||||||
tr::lng_settings_theme_classic,
|
tr::lng_settings_theme_classic,
|
||||||
QString()
|
QString(),
|
||||||
|
qColor("40a7e3")
|
||||||
},
|
},
|
||||||
EmbeddedScheme{
|
EmbeddedScheme{
|
||||||
EmbeddedType::DayBlue,
|
EmbeddedType::DayBlue,
|
||||||
|
@ -250,7 +254,16 @@ std::vector<QColor> DefaultAccentColors(EmbeddedType type) {
|
||||||
qColor("dea922"),
|
qColor("dea922"),
|
||||||
};
|
};
|
||||||
case EmbeddedType::Default:
|
case EmbeddedType::Default:
|
||||||
return {};
|
return {
|
||||||
|
qColor("45bce7"),
|
||||||
|
qColor("52b440"),
|
||||||
|
qColor("d46c99"),
|
||||||
|
qColor("df8a49"),
|
||||||
|
qColor("9978c8"),
|
||||||
|
qColor("c55245"),
|
||||||
|
qColor("687b98"),
|
||||||
|
qColor("dea922"),
|
||||||
|
};
|
||||||
case EmbeddedType::Night:
|
case EmbeddedType::Night:
|
||||||
return {
|
return {
|
||||||
qColor("58bfe8"),
|
qColor("58bfe8"),
|
||||||
|
@ -323,6 +336,7 @@ bool AccentColors::setFromSerialized(const QByteArray &serialized) {
|
||||||
const auto color = Serialize::readColor(stream);
|
const auto color = Serialize::readColor(stream);
|
||||||
const auto uncheckedType = static_cast<EmbeddedType>(type);
|
const auto uncheckedType = static_cast<EmbeddedType>(type);
|
||||||
switch (uncheckedType) {
|
switch (uncheckedType) {
|
||||||
|
case EmbeddedType::Default:
|
||||||
case EmbeddedType::DayBlue:
|
case EmbeddedType::DayBlue:
|
||||||
case EmbeddedType::Night:
|
case EmbeddedType::Night:
|
||||||
case EmbeddedType::NightGreen:
|
case EmbeddedType::NightGreen:
|
||||||
|
|
|
@ -81,26 +81,30 @@ constexpr auto kMaxChatEntryHistorySize = 50;
|
||||||
std::optional<QColor> accent) {
|
std::optional<QColor> accent) {
|
||||||
return [=](style::palette &palette) {
|
return [=](style::palette &palette) {
|
||||||
using namespace Theme;
|
using namespace Theme;
|
||||||
palette.finalize();
|
const auto &embedded = EmbeddedThemes();
|
||||||
if (dark) {
|
const auto i = ranges::find(
|
||||||
const auto &embedded = EmbeddedThemes();
|
embedded,
|
||||||
const auto i = ranges::find(
|
dark ? EmbeddedType::Night : EmbeddedType::Default,
|
||||||
embedded,
|
&EmbeddedScheme::type);
|
||||||
EmbeddedType::Night,
|
Assert(i != end(embedded));
|
||||||
&EmbeddedScheme::type);
|
const auto colorizer = accent
|
||||||
Assert(i != end(embedded));
|
? ColorizerFrom(*i, *accent)
|
||||||
|
: style::colorizer();
|
||||||
|
|
||||||
|
if (dark) {
|
||||||
auto instance = Instance();
|
auto instance = Instance();
|
||||||
const auto loaded = LoadFromFile(
|
const auto loaded = LoadFromFile(
|
||||||
i->path,
|
i->path,
|
||||||
&instance,
|
&instance,
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
nullptr,
|
||||||
accent ? ColorizerFrom(*i, *accent) : style::colorizer());
|
colorizer);
|
||||||
Assert(loaded);
|
Assert(loaded);
|
||||||
|
|
||||||
|
palette.finalize();
|
||||||
palette = instance.palette;
|
palette = instance.palette;
|
||||||
} else {
|
} 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