diff --git a/Telegram/SourceFiles/info/profile/info_profile_top_bar.cpp b/Telegram/SourceFiles/info/profile/info_profile_top_bar.cpp index 49b7a8dbe2..3f9119e460 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_top_bar.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_top_bar.cpp @@ -70,6 +70,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/controls/userpic_button.h" #include "ui/effects/animations.h" #include "ui/effects/outline_segments.h" +#include "ui/effects/round_checkbox.h" #include "ui/empty_userpic.h" #include "ui/layers/generic_box.h" #include "ui/painter.h" @@ -2385,9 +2386,14 @@ void TopBar::updateStoryOutline(std::optional edgeColor) { const auto hasActiveStories = (_source == Source::Preview) ? true : user->hasActiveStories(); + const auto hasLiveStories = (_source == Source::Preview) + ? false + : user->hasActiveVideoStream(); - if (_hasStories != hasActiveStories) { + if (_hasStories != hasActiveStories + || _hasLiveStories != hasLiveStories) { _hasStories = hasActiveStories; + _hasLiveStories = hasLiveStories; update(); } @@ -2473,6 +2479,16 @@ void TopBar::paintStoryOutline(QPainter &p, const QRect &geometry) { padding + outlineWidth / 2); Ui::PaintOutlineSegments(p, outlineRect, _storySegments); + + if (_hasLiveStories) { + const auto edgeColor = _edgeColor.current(); + Ui::PaintLiveBadge( + p, + geometry.x(), + geometry.y() + outlineWidth + padding, + geometry.width(), + edgeColor); + } } void TopBar::setupStatusWithRating() { diff --git a/Telegram/SourceFiles/info/profile/info_profile_top_bar.h b/Telegram/SourceFiles/info/profile/info_profile_top_bar.h index 73d7266e7f..5eb907fb71 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_top_bar.h +++ b/Telegram/SourceFiles/info/profile/info_profile_top_bar.h @@ -291,6 +291,7 @@ private: QBrush _storyOutlineBrush; std::vector _storySegments; bool _hasStories = false; + bool _hasLiveStories = false; std::optional _localColorProfileIndex; std::optional _localPatternEmojiId;