Provide correct colors for spoiler selection.

This commit is contained in:
John Preston 2022-09-17 01:59:01 +04:00
parent bd7098ef42
commit 4ff5bc5773
4 changed files with 22 additions and 22 deletions

View file

@ -9,15 +9,14 @@ using "ui/colors.palette";
TextPalette {
linkFg: color;
monoFg: color;
spoilerFg: color;
selectBg: color;
selectFg: color;
selectLinkFg: color;
selectMonoFg: color;
selectSpoilerFg: color;
selectOverlay: color;
linkAlwaysActive: int;
spoilerBg: color;
spoilerActiveBg: color;
spoilerActiveFg: color;
}
TextStyle {
@ -42,14 +41,13 @@ lineWidth: 1px;
defaultTextPalette: TextPalette {
linkFg: windowActiveTextFg;
monoFg: msgInMonoFg;
spoilerFg: msgInDateFg;
selectBg: msgInBgSelected;
selectFg: transparent; // use painter current pen instead
selectLinkFg: historyLinkInFgSelected;
selectMonoFg: msgInMonoFgSelected;
selectSpoilerFg: msgInDateFgSelected;
selectOverlay: msgSelectOverlay;
spoilerBg: msgInDateFg;
spoilerActiveBg: msgInDateFg;
spoilerActiveFg: msgInBg;
}
defaultTextStyle: TextStyle {
font: normalFont;
@ -126,10 +124,12 @@ msgDateTextStyle: defaultTextStyle;
serviceTextPalette: TextPalette(defaultTextPalette) {
linkFg: msgServiceFg;
monoFg: msgServiceFg;
spoilerFg: msgServiceFg;
selectBg: msgServiceBgSelected;
selectFg: msgServiceFg;
selectLinkFg: msgServiceFg;
selectMonoFg: msgServiceFg;
selectSpoilerFg: msgServiceFg;
selectOverlay: msgServiceBgSelected;
}
serviceTextStyle: TextStyle(defaultTextStyle) {
@ -140,34 +140,34 @@ serviceTextStyle: TextStyle(defaultTextStyle) {
inTextPalette: TextPalette(defaultTextPalette) {
linkFg: historyLinkInFg;
monoFg: msgInMonoFg;
spoilerFg: msgInDateFg;
selectBg: msgInBgSelected;
selectFg: historyTextInFgSelected;
selectLinkFg: historyLinkInFgSelected;
selectMonoFg: msgInMonoFgSelected;
selectSpoilerFg: msgInDateFgSelected;
selectOverlay: msgSelectOverlay;
spoilerBg: msgInDateFg;
spoilerActiveBg: msgInDateFg;
spoilerActiveFg: msgInBg;
}
inTextPaletteSelected: TextPalette(inTextPalette) {
linkFg: historyLinkInFgSelected;
monoFg: msgInMonoFgSelected;
spoilerFg: msgInDateFgSelected;
}
outTextPalette: TextPalette(defaultTextPalette) {
linkFg: historyLinkOutFg;
monoFg: msgOutMonoFg;
spoilerFg: msgOutDateFg;
selectBg: msgOutBgSelected;
selectFg: historyTextOutFgSelected;
selectLinkFg: historyLinkOutFgSelected;
selectMonoFg: msgOutMonoFgSelected;
selectSpoilerFg: msgOutDateFgSelected;
selectOverlay: msgSelectOverlay;
spoilerBg: msgOutDateFg;
spoilerActiveBg: msgOutDateFg;
spoilerActiveFg: msgOutBg;
}
outTextPaletteSelected: TextPalette(outTextPalette) {
linkFg: historyLinkOutFgSelected;
monoFg: msgOutMonoFgSelected;
spoilerFg: msgOutDateFgSelected;
}
fwdTextStyle: TextStyle(semiboldTextStyle) {
linkFontOver: semiboldFont;

View file

@ -757,7 +757,7 @@ bool Renderer::drawLine(uint16 _lineEnd, const String::TextBlocks::const_iterato
}
}
}
const auto hasSpoiler = _background.color &&
const auto hasSpoiler = _background.spoiler &&
(_background.inFront || _background.startMs);
if (hasSpoiler) {
fillSpoiler = { x, si.width };
@ -789,7 +789,7 @@ bool Renderer::drawLine(uint16 _lineEnd, const String::TextBlocks::const_iterato
_customEmojiSkip = (st::emojiSize - _customEmojiSize) / 2;
}
custom->paint(*_p, {
.preview = _palette->spoilerActiveBg->c,
.preview = _palette->spoilerFg->c,
.now = now(),
.position = { x + _customEmojiSkip, y + _customEmojiSkip },
.paused = _paused,
@ -1072,7 +1072,7 @@ void Renderer::fillSpoilerRange(
int currentBlockIndex,
int positionFrom,
int positionTill) {
if (!_background.color || !_t->_spoiler) {
if (!_background.spoiler || !_t->_spoiler) {
return;
}
const auto elided = (_indexOfElidedBlock == currentBlockIndex)
@ -1089,7 +1089,7 @@ void Renderer::fillSpoilerRange(
useWidth,
_fontHeight);
if (_spoilerCache) {
const auto mess = _spoilerCache->lookup((*_background.color)->c);
const auto mess = _spoilerCache->lookup((*_background.spoiler)->c);
const auto spoiler = _t->_spoiler.get();
const auto frame = mess->frame(
spoiler->animation.index(now(), _paused));
@ -1920,9 +1920,8 @@ void Renderer::applyBlockProperties(const AbstractBlock *block) {
= _t->_spoiler->links.at(block->spoilerIndex() - 1);
const auto inBack = (handler && handler->shown());
_background.inFront = !inBack;
_background.color = inBack
? &_palette->spoilerActiveBg
: &_palette->spoilerBg;
_background.spoiler = &_palette->spoilerFg;
_background.spoilerSelected = &_palette->selectSpoilerFg;
_background.startMs = handler ? handler->startMs() : 0;
_background.spoilerIndex = block->spoilerIndex();
}

View file

@ -100,7 +100,8 @@ private:
const QPen *_currentPen = nullptr;
const QPen *_currentPenSelected = nullptr;
struct {
const style::color *color = nullptr;
const style::color *spoiler = nullptr;
const style::color *spoilerSelected = nullptr;
bool inFront = false;
crl::time startMs = 0;
uint16 spoilerIndex = 0;

View file

@ -765,7 +765,7 @@ QTextCharFormat PrepareTagFormat(
color = st::defaultTextPalette.monoFg;
font = font->monospace();
} else if (tag == kTagSpoiler) {
bg = st::defaultTextPalette.spoilerActiveBg;
bg = st::msgInDateFg;
}
};
for (const auto &tag : TextUtilities::SplitTags(tag)) {
@ -1426,7 +1426,7 @@ void CustomEmojiObject::drawObject(
return;
}
i->second->paint(*painter, {
.preview = st::defaultTextPalette.spoilerActiveBg->c,
.preview = st::windowBgRipple->c,
.now = _now,
.position = QPoint(
int(base::SafeRound(rect.x())) + st::emojiPadding + _skip,