mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-25 06:54:43 +00:00
feat: avatar corners
This commit is contained in:
@@ -37,6 +37,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
|
||||
// AyuGram includes
|
||||
#include "ayu/ayu_settings.h"
|
||||
#include "ayu/ui/ayu_userpic.h"
|
||||
|
||||
|
||||
namespace Dialogs {
|
||||
@@ -482,8 +483,11 @@ void Row::PaintCornerBadgeFrame(
|
||||
}
|
||||
}
|
||||
if (peer && (peer->forum() || peer->monoforum())) {
|
||||
const auto radius = context.st->photoSize
|
||||
* Ui::ForumUserpicRadiusMultiplier();
|
||||
const auto &settings = AyuSettings::getInstance();
|
||||
const auto singleRadius = settings.singleCornerRadius();
|
||||
const auto radius = singleRadius
|
||||
? AyuUserpic::ComputeRadiusF(context.st->photoSize)
|
||||
: (context.st->photoSize * Ui::ForumUserpicRadiusMultiplier());
|
||||
Ui::PaintOutlineSegments(q, outline, radius, segments);
|
||||
} else {
|
||||
Ui::PaintOutlineSegments(q, outline, segments);
|
||||
@@ -549,9 +553,10 @@ void Row::PaintCornerBadgeFrame(
|
||||
q.setBrush(data->active
|
||||
? st::dialogsOnlineBadgeFgActive
|
||||
: st::dialogsOnlineBadgeFg);
|
||||
const auto badge = AyuUserpic::OnlineBadgePosition(photoSize, size);
|
||||
q.drawEllipse(QRectF(
|
||||
photoSize - skip.x() - size,
|
||||
photoSize - skip.y() - size,
|
||||
badge.x(),
|
||||
badge.y(),
|
||||
size,
|
||||
size
|
||||
).marginsRemoved({ shrink, shrink, shrink, shrink }));
|
||||
|
||||
@@ -29,6 +29,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
|
||||
#include "base/debug_log.h"
|
||||
|
||||
// AyuGram includes
|
||||
#include "ayu/ui/ayu_userpic.h"
|
||||
|
||||
|
||||
namespace Dialogs::Stories {
|
||||
namespace {
|
||||
|
||||
@@ -590,7 +594,7 @@ void List::paint(
|
||||
p.setPen(QPen(gradient, line));
|
||||
}
|
||||
p.setBrush(Qt::NoBrush);
|
||||
p.drawEllipse(outer);
|
||||
AyuUserpic::PaintShape(p, outer);
|
||||
} else {
|
||||
validateSegments(itemFull, gradient, line, true);
|
||||
Ui::PaintOutlineSegments(
|
||||
@@ -635,7 +639,7 @@ void List::paint(
|
||||
p.setCompositionMode(QPainter::CompositionMode_Source);
|
||||
p.setPen(Qt::NoPen);
|
||||
p.setBrush(st::transparent);
|
||||
p.drawEllipse(rect);
|
||||
AyuUserpic::PaintShape(p, rect);
|
||||
p.setCompositionMode(QPainter::CompositionMode_SourceOver);
|
||||
}
|
||||
if (hasReadLine) {
|
||||
|
||||
@@ -101,7 +101,7 @@ Media::Clip::FrameRequest VideoUserpic::request(int size) const {
|
||||
.frame = { size, size },
|
||||
.outer = { size, size },
|
||||
.factor = style::DevicePixelRatio(),
|
||||
.radius = ImageRoundRadius::Ellipse,
|
||||
.radius = ImageRoundRadius::AyuUserpic,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
|
||||
#include <QtWidgets/QApplication>
|
||||
|
||||
// AyuGram includes
|
||||
#include "ayu/ui/ayu_userpic.h"
|
||||
|
||||
|
||||
namespace Dialogs {
|
||||
|
||||
struct TopPeersStrip::Entry {
|
||||
@@ -837,9 +841,10 @@ void TopPeersStrip::paintUserpic(
|
||||
pen.setWidthF(stroke * online);
|
||||
q.setPen(pen);
|
||||
q.setBrush(st::dialogsOnlineBadgeFg);
|
||||
const auto badge = AyuUserpic::OnlineBadgePosition(size, onlineSize);
|
||||
q.drawEllipse(QRectF(
|
||||
size - skip.x() - onlineSize,
|
||||
size - skip.y() - onlineSize,
|
||||
badge.x(),
|
||||
badge.y(),
|
||||
onlineSize,
|
||||
onlineSize
|
||||
).marginsRemoved({ shrink, shrink, shrink, shrink }));
|
||||
|
||||
Reference in New Issue
Block a user