From c53b26dec864b4661de575173869fbaed5892aee Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Mon, 10 Apr 2023 00:11:16 +0300 Subject: [PATCH] Added ability to provide empty callback to list of usernames management. --- .../boxes/peers/edit_peer_usernames_list.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_usernames_list.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_usernames_list.cpp index c3a1c0735..aa0a26afb 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_usernames_list.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_usernames_list.cpp @@ -65,6 +65,7 @@ public: not_null parent, const Data::Username &data, std::shared_ptr show, + QString status, QString link); [[nodiscard]] const Data::Username &username() const; @@ -91,15 +92,12 @@ UsernamesList::Row::Row( not_null parent, const Data::Username &data, std::shared_ptr show, + QString status, QString link) : Ui::SettingsButton(parent, rpl::never()) , _st(st::inviteLinkListItem) , _data(data) -, _status(data.editable - ? tr::lng_usernames_edit(tr::now) - : data.active - ? tr::lng_usernames_active(tr::now) - : tr::lng_usernames_non_active(tr::now)) +, _status(std::move(status)) , _rightAction(Ui::CreateChild(this)) , _iconRect( _st.photoPosition.x() + st::inviteLinkIconSkip, @@ -250,8 +248,13 @@ void UsernamesList::rebuild(const Data::Usernames &usernames) { for (const auto &username : usernames) { const auto link = _peer->session().createInternalLinkFull( username.username); + const auto status = (username.editable && _focusCallback) + ? tr::lng_usernames_edit(tr::now) + : username.active + ? tr::lng_usernames_active(tr::now) + : tr::lng_usernames_non_active(tr::now); const auto row = content->add( - object_ptr(content, username, _show, link)); + object_ptr(content, username, _show, status, link)); _rows.push_back(row); row->addClickHandler([=] { if (_reordering @@ -260,7 +263,9 @@ void UsernamesList::rebuild(const Data::Usernames &usernames) { } if (username.editable) { - _focusCallback(); + if (_focusCallback) { + _focusCallback(); + } return; }