From 47d957f9424bef655bde0f93f5dce3aba7c39197 Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 22 Oct 2021 18:47:36 +0400 Subject: [PATCH] Add 5 lines of About to group call context menu. --- Telegram/SourceFiles/calls/calls.style | 5 +++ .../calls/group/calls_cover_item.cpp | 39 +++++++++++++++++-- .../calls/group/calls_cover_item.h | 18 +++++++++ .../calls/group/calls_group_members.cpp | 7 ++++ 4 files changed, 66 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/calls/calls.style b/Telegram/SourceFiles/calls/calls.style index 3459c91d9..5934ee85e 100644 --- a/Telegram/SourceFiles/calls/calls.style +++ b/Telegram/SourceFiles/calls/calls.style @@ -561,6 +561,11 @@ groupCallMenuCover: ShortInfoCover(shortInfoCover) { namePosition: point(17px, 28px); statusPosition: point(17px, 8px); } +groupCallMenuAbout: FlatLabel(defaultFlatLabel) { + textFg: groupCallMemberNotJoinedStatus; + minWidth: 200px; + maxHeight: 92px; +} groupCallRecordingTimerPadding: margins(0px, 4px, 0px, 4px); groupCallRecordingTimerFont: font(12px); diff --git a/Telegram/SourceFiles/calls/group/calls_cover_item.cpp b/Telegram/SourceFiles/calls/group/calls_cover_item.cpp index f5a0400e2..439c3b4f1 100644 --- a/Telegram/SourceFiles/calls/group/calls_cover_item.cpp +++ b/Telegram/SourceFiles/calls/group/calls_cover_item.cpp @@ -12,9 +12,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "styles/style_info.h" namespace Calls { -namespace { - -} // namespace CoverItem::CoverItem( not_null parent, @@ -56,4 +53,40 @@ int CoverItem::contentHeight() const { return _st.size + st::groupCallMenu.separatorPadding.bottom(); } +AboutItem::AboutItem( + not_null parent, + const style::Menu &st, + const QString &about) +: Ui::Menu::ItemBase(parent, st) +, _st(st) +, _text(base::make_unique_q( + this, + about, + st::groupCallMenuAbout)) +, _dummyAction(new QAction(parent)) { + setPointerCursor(false); + + initResizeHook(parent->sizeValue()); + enableMouseSelecting(); + enableMouseSelecting(_text.get()); + + _text->setSelectable(true); + _text->resizeToWidth(st::groupCallMenuAbout.minWidth); + _text->moveToLeft(st.itemPadding.left(), st.itemPadding.top()); +} + +not_null AboutItem::action() const { + return _dummyAction; +} + +bool AboutItem::isEnabled() const { + return false; +} + +int AboutItem::contentHeight() const { + return _st.itemPadding.top() + + _text->height() + + _st.itemPadding.bottom(); +} + } // namespace Calls diff --git a/Telegram/SourceFiles/calls/group/calls_cover_item.h b/Telegram/SourceFiles/calls/group/calls_cover_item.h index 94c4dd1e8..525c3bd71 100644 --- a/Telegram/SourceFiles/calls/group/calls_cover_item.h +++ b/Telegram/SourceFiles/calls/group/calls_cover_item.h @@ -45,6 +45,24 @@ private: const not_null _dummyAction; const style::ShortInfoCover &_st; +}; + +class AboutItem final : public Ui::Menu::ItemBase { +public: + AboutItem( + not_null parent, + const style::Menu &st, + const QString &about); + + not_null action() const override; + bool isEnabled() const override; + +private: + int contentHeight() const override; + + const style::Menu &_st; + const base::unique_qptr _text; + const not_null _dummyAction; }; diff --git a/Telegram/SourceFiles/calls/group/calls_group_members.cpp b/Telegram/SourceFiles/calls/group/calls_group_members.cpp index c831f5a73..889054de2 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_members.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_members.cpp @@ -1263,6 +1263,13 @@ base::unique_qptr Members::Controller::createRowContextMenu( ) | rpl::map([](const auto &text) { return text.text; }), PrepareShortInfoStatus(participantPeer), PrepareShortInfoUserpic(participantPeer))); + + if (const auto about = participantPeer->about(); !about.isEmpty()) { + result->addAction(base::make_unique_q( + result->menu(), + st::groupCallPopupCoverMenu, + about)); + } } if (const auto real = _call->lookupReal()) {