Moved verification label under info in profile.

This commit is contained in:
23rd
2025-10-21 12:35:56 +03:00
parent ddcc20c8a7
commit 38ab18f6fb
3 changed files with 44 additions and 33 deletions
@@ -1163,7 +1163,6 @@ private:
object_ptr<Ui::RpWidget> setupPersonalChannel(not_null<UserData*> user);
object_ptr<Ui::RpWidget> setupInfo();
object_ptr<Ui::RpWidget> setupMuteToggle();
void setupAboutVerification();
void setupMainApp();
void setupBotPermissions();
void setupMainButtons();
@@ -2090,26 +2089,6 @@ object_ptr<Ui::RpWidget> DetailsFiller::setupMuteToggle() {
return result;
}
void DetailsFiller::setupAboutVerification() {
const auto peer = _peer;
const auto inner = _wrap->add(object_ptr<Ui::VerticalLayout>(_wrap));
peer->session().changes().peerFlagsValue(
peer,
Data::PeerUpdate::Flag::VerifyInfo
) | rpl::start_with_next([=] {
const auto info = peer->botVerifyDetails();
while (inner->count()) {
delete inner->widgetAt(0);
}
if (!info) {
// Ui::AddDivider(inner);
} else if (!info->description.empty()) {
Ui::AddDividerText(inner, rpl::single(info->description));
}
inner->resizeToWidth(inner->width());
}, inner->lifetime());
}
void DetailsFiller::setupMainApp() {
const auto button = _wrap->add(
object_ptr<Ui::RoundButton>(
@@ -2413,7 +2392,6 @@ object_ptr<Ui::RpWidget> DetailsFiller::fill() {
Expects(!_topic || !_topic->creating());
if (!_topic) {
setupAboutVerification();
} else {
add(object_ptr<Ui::BoxContentDivider>(_wrap));
}
@@ -47,11 +47,36 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
namespace Info {
namespace Profile {
namespace {
[[nodiscard]] MusicButtonData DocumentMusicButtonData(
not_null<DocumentData*> document) {
return { Ui::Text::FormatSongNameFor(document) };
}
void AddAboutVerification(
not_null<Ui::VerticalLayout*> layout,
not_null<PeerData*> peer) {
const auto inner = layout->add(object_ptr<Ui::VerticalLayout>(layout));
peer->session().changes().peerFlagsValue(
peer,
Data::PeerUpdate::Flag::VerifyInfo
) | rpl::start_with_next([=] {
const auto info = peer->botVerifyDetails();
while (inner->count()) {
delete inner->widgetAt(0);
}
if (!info) {
Ui::AddDivider(inner);
} else if (!info->description.empty()) {
Ui::AddDividerText(inner, rpl::single(info->description));
}
inner->resizeToWidth(inner->width());
}, inner->lifetime());
}
} // namespace
InnerWidget::InnerWidget(
QWidget *parent,
not_null<Controller*> controller,
@@ -111,7 +136,7 @@ object_ptr<Ui::RpWidget> InnerWidget::setupContent(
}
}
if (auto actions = SetupActions(_controller, result.data(), _peer)) {
result->add(object_ptr<Ui::BoxContentDivider>(result));
addAboutVerificationOrDivider(result);
result->add(std::move(actions));
}
if (_peer->isChat() || _peer->isMegagroup()) {
@@ -127,7 +152,7 @@ void InnerWidget::setupMembers(not_null<Ui::VerticalLayout*> container) {
container,
object_ptr<Ui::VerticalLayout>(container)));
const auto inner = wrap->entity();
inner->add(object_ptr<Ui::BoxContentDivider>(inner));
addAboutVerificationOrDivider(inner);
_members = inner->add(object_ptr<Members>(inner, _controller));
_members->scrollToRequests(
) | rpl::start_with_next([this](Ui::ScrollToRequest request) {
@@ -196,6 +221,16 @@ void InnerWidget::setupSavedMusic(not_null<Ui::VerticalLayout*> container) {
divider->finishAnimating();
}
void InnerWidget::addAboutVerificationOrDivider(
not_null<Ui::VerticalLayout*> content) {
if (_aboutVerificationAdded) {
Ui::AddDivider(content);
} else {
AddAboutVerification(content, _peer);
_aboutVerificationAdded = true;
}
}
object_ptr<Ui::RpWidget> InnerWidget::setupSharedMedia(
not_null<RpWidget*> parent) {
using namespace rpl::mappers;
@@ -323,16 +358,10 @@ object_ptr<Ui::RpWidget> InnerWidget::setupSharedMedia(
auto layout = result->entity();
layout->add(object_ptr<Ui::BoxContentDivider>(layout));
layout->add(object_ptr<Ui::FixedHeightWidget>(
layout,
st::infoSharedMediaBottomSkip)
)->setAttribute(Qt::WA_TransparentForMouseEvents);
addAboutVerificationOrDivider(layout);
Ui::AddSkip(layout, st::infoSharedMediaBottomSkip);
layout->add(std::move(content));
layout->add(object_ptr<Ui::FixedHeightWidget>(
layout,
st::infoSharedMediaBottomSkip)
)->setAttribute(Qt::WA_TransparentForMouseEvents);
Ui::AddSkip(layout, st::infoSharedMediaBottomSkip);
_sharedMediaWrap = result;
return result;
@@ -80,6 +80,8 @@ private:
_desiredHeight.fire(countDesiredHeight());
}
void addAboutVerificationOrDivider(not_null<Ui::VerticalLayout*> content);
const not_null<Controller*> _controller;
const not_null<PeerData*> _peer;
PeerData * const _migrated = nullptr;
@@ -96,6 +98,8 @@ private:
Ui::SlideWrap<RpWidget> *_sharedMediaWrap = nullptr;
object_ptr<RpWidget> _content;
bool _aboutVerificationAdded = false;
bool _inResize = false;
rpl::event_stream<Ui::ScrollToRequest> _scrollToRequests;
rpl::event_stream<int> _desiredHeight;