Making big emoji outline optional

This commit is contained in:
Eric Kotato 2019-10-04 16:36:48 +03:00
parent b073e1e102
commit 7e6bc1b6b1
5 changed files with 14 additions and 12 deletions

View file

@ -8,5 +8,6 @@
// "semibold_is_bold": false,
// "monospaced": "Consolas"
// },
// "sticker_height": 256
// "sticker_height": 256,
// "big_emoji_outline": true
}

View file

@ -327,7 +327,7 @@ QImage EmojiImageLoader::prepare(EmojiPtr emoji) {
auto tinted = QImage(
QSize(st::largeEmojiSize, st::largeEmojiSize) * factor,
QImage::Format_ARGB32_Premultiplied);
tinted.fill(QColor(0, 0, 0, 0));
tinted.fill(cBigEmojiOutline() ? Qt::white : QColor(0, 0, 0, 0));
if (loaded) {
QPainter p(&tinted);
p.setCompositionMode(QPainter::CompositionMode_DestinationIn);

View file

@ -158,10 +158,15 @@ bool Manager::readCustomFile() {
const auto settingsStickerHeightIterator = settings.constFind(qsl("sticker_height"));
if (settingsStickerHeightIterator != settingsFonts.constEnd()) {
const auto settingsStickerHeight = (*settingsStickerHeightIterator).toInt();
if (settingsStickerHeight > 0) {
if (settingsStickerHeight >= 128 || settingsStickerHeight <= 256) {
cSetStickerHeight(settingsStickerHeight);
}
}
const auto settingsBigEmojiOutlineIterator = settings.constFind(qsl("big_emoji_outline"));
if (settingsBigEmojiOutlineIterator != settingsFonts.constEnd() && (*settingsBigEmojiOutlineIterator).isBool()) {
cSetBigEmojiOutline((*settingsBigEmojiOutlineIterator).toBool());
}
return true;
}
@ -190,6 +195,7 @@ void Manager::writeDefaultFile() {
settings.insert(qsl("fonts"), settingsFonts);
settings.insert(qsl("sticker_height"), cStickerHeight());
settings.insert(qsl("big_emoji_outline"), cBigEmojiOutline());
auto document = QJsonDocument();
document.setObject(settings);

View file

@ -210,4 +210,5 @@ rpl::producer<> UpdatedRecentEmoji() {
QString gMainFont, gSemiboldFont, gMonospaceFont;
bool gSemiboldFontIsBold = false;
int gStickerHeight = 256;
int gStickerHeight = 256;
bool gBigEmojiOutline = true;

View file

@ -184,11 +184,5 @@ DeclareSetting(QString, SemiboldFont);
DeclareSetting(bool, SemiboldFontIsBold);
DeclareSetting(QString, MonospaceFont);
inline int cSetStickerHeight(int height) {
gStickerHeight = (height > 256) ? 256 : (height < 128) ? 128 : height;
}
inline int cStickerHeight() {
return gStickerHeight;
}
DeclareSetting(int, StickerHeight);
DeclareSetting(bool, BigEmojiOutline);