mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Improve forum outlines in stories/folders.
This commit is contained in:
parent
2b8eec8666
commit
32b95f0d9a
4 changed files with 36 additions and 2 deletions
|
@ -912,7 +912,13 @@ void PeerListRow::paintDisabledCheckUserpic(
|
||||||
|
|
||||||
p.setPen(userpicBorderPen);
|
p.setPen(userpicBorderPen);
|
||||||
p.setBrush(Qt::NoBrush);
|
p.setBrush(Qt::NoBrush);
|
||||||
|
if (peer()->forum()) {
|
||||||
|
const auto radius = userpicDiameter
|
||||||
|
* Ui::ForumUserpicRadiusMultiplier();
|
||||||
|
p.drawRoundedRect(userpicEllipse, radius, radius);
|
||||||
|
} else {
|
||||||
p.drawEllipse(userpicEllipse);
|
p.drawEllipse(userpicEllipse);
|
||||||
|
}
|
||||||
|
|
||||||
p.setPen(iconBorderPen);
|
p.setPen(iconBorderPen);
|
||||||
p.setBrush(st.disabledCheckFg);
|
p.setBrush(st.disabledCheckFg);
|
||||||
|
|
|
@ -466,8 +466,14 @@ void Row::PaintCornerBadgeFrame(
|
||||||
for (auto i = 0; i != storiesUnreadCount; ++i) {
|
for (auto i = 0; i != storiesUnreadCount; ++i) {
|
||||||
segments.push_back({ storiesUnreadBrush, storiesUnread });
|
segments.push_back({ storiesUnreadBrush, storiesUnread });
|
||||||
}
|
}
|
||||||
|
if (peer && peer->forum()) {
|
||||||
|
const auto radius = context.st->photoSize
|
||||||
|
* Ui::ForumUserpicRadiusMultiplier();
|
||||||
|
Ui::PaintOutlineSegments(q, outline, radius, segments);
|
||||||
|
} else {
|
||||||
Ui::PaintOutlineSegments(q, outline, segments);
|
Ui::PaintOutlineSegments(q, outline, segments);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (subscribed) {
|
if (subscribed) {
|
||||||
if (!hq) {
|
if (!hq) {
|
||||||
|
|
|
@ -69,6 +69,22 @@ void PaintOutlineSegments(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PaintOutlineSegments(
|
||||||
|
QPainter &p,
|
||||||
|
QRectF rect,
|
||||||
|
float64 radius,
|
||||||
|
const std::vector<OutlineSegment> &segments) {
|
||||||
|
Expects(!segments.empty());
|
||||||
|
|
||||||
|
p.setBrush(Qt::NoBrush);
|
||||||
|
const auto count = std::min(int(segments.size()), kOutlineSegmentsMax);
|
||||||
|
if (count == 1 || true) {
|
||||||
|
p.setPen(QPen(segments.back().brush, segments.back().width));
|
||||||
|
p.drawRoundedRect(rect, radius, radius);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QLinearGradient UnreadStoryOutlineGradient(QRectF rect) {
|
QLinearGradient UnreadStoryOutlineGradient(QRectF rect) {
|
||||||
auto result = QLinearGradient(rect.topRight(), rect.bottomLeft());
|
auto result = QLinearGradient(rect.topRight(), rect.bottomLeft());
|
||||||
result.setStops({
|
result.setStops({
|
||||||
|
|
|
@ -22,6 +22,12 @@ void PaintOutlineSegments(
|
||||||
const std::vector<OutlineSegment> &segments,
|
const std::vector<OutlineSegment> &segments,
|
||||||
float64 fromFullProgress = 1.);
|
float64 fromFullProgress = 1.);
|
||||||
|
|
||||||
|
void PaintOutlineSegments(
|
||||||
|
QPainter &p,
|
||||||
|
QRectF rect,
|
||||||
|
float64 radius,
|
||||||
|
const std::vector<OutlineSegment> &segments);
|
||||||
|
|
||||||
[[nodiscard]] QLinearGradient UnreadStoryOutlineGradient(QRectF rect = {});
|
[[nodiscard]] QLinearGradient UnreadStoryOutlineGradient(QRectF rect = {});
|
||||||
|
|
||||||
} // namespace Ui
|
} // namespace Ui
|
||||||
|
|
Loading…
Add table
Reference in a new issue