mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-17 06:37:24 +02:00
Paint expanded topics indicator.
This commit is contained in:
parent
823bbb1b77
commit
188c6ba64a
3 changed files with 25 additions and 0 deletions
|
@ -546,6 +546,7 @@ void InnerWidget::paintEvent(QPaintEvent *e) {
|
|||
auto fullWidth = width();
|
||||
auto dialogsClip = r;
|
||||
const auto ms = crl::now();
|
||||
const auto shownForum = _controller->shownForum().current();
|
||||
const auto paintRow = [&](
|
||||
not_null<Row*> row,
|
||||
bool selected,
|
||||
|
@ -557,6 +558,10 @@ void InnerWidget::paintEvent(QPaintEvent *e) {
|
|||
if (forum && !_topicJumpCache) {
|
||||
_topicJumpCache = std::make_unique<Ui::TopicJumpCache>();
|
||||
}
|
||||
const auto expanded = !active
|
||||
&& forum
|
||||
&& !_openedForum
|
||||
&& (key.history()->peer->forum() == shownForum);
|
||||
Ui::RowPainter::Paint(p, row, validateVideoUserpic(row), {
|
||||
.st = (forum ? &st::forumDialogRow : _st.get()),
|
||||
.topicJumpCache = _topicJumpCache.get(),
|
||||
|
@ -569,6 +574,7 @@ void InnerWidget::paintEvent(QPaintEvent *e) {
|
|||
.selected = (_menuRow.key
|
||||
? (row->key() == _menuRow.key)
|
||||
: selected),
|
||||
.topicsExpanded = expanded,
|
||||
.topicJumpSelected = (selected
|
||||
&& _selectedTopicJump
|
||||
&& (!_pressed || _pressedTopicJump)),
|
||||
|
|
|
@ -186,6 +186,21 @@ int PaintBadges(
|
|||
return (initial - right);
|
||||
}
|
||||
|
||||
void PaintExpandedTopicsBar(QPainter &p) {
|
||||
auto hq = PainterHighQualityEnabler(p);
|
||||
const auto radius = st::roundRadiusLarge;
|
||||
const auto width = st::forumDialogRow.padding.left() / 2;
|
||||
p.setPen(Qt::NoPen);
|
||||
p.setBrush(st::dialogsBgActive);
|
||||
p.drawRoundedRect(
|
||||
-3 * radius,
|
||||
st::forumDialogRow.padding.top(),
|
||||
3 * radius + width,
|
||||
st::forumDialogRow.photoSize,
|
||||
radius,
|
||||
radius);
|
||||
}
|
||||
|
||||
void PaintNarrowCounter(
|
||||
QPainter &p,
|
||||
const PaintContext &context,
|
||||
|
@ -338,6 +353,9 @@ void PaintRow(
|
|||
if (!draft && item && !item->isEmpty()) {
|
||||
PaintNarrowCounter(p, context, badgesState);
|
||||
}
|
||||
if (context.topicsExpanded) {
|
||||
PaintExpandedTopicsBar(p);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@ struct PaintContext {
|
|||
int width = 0;
|
||||
bool active = false;
|
||||
bool selected = false;
|
||||
bool topicsExpanded = false;
|
||||
bool topicJumpSelected = false;
|
||||
bool paused = false;
|
||||
bool search = false;
|
||||
|
|
Loading…
Add table
Reference in a new issue