From 29910cd1f74d8519ad648bc819712b1c86188f43 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 14 Jun 2022 14:20:38 +0300 Subject: [PATCH] Provided Ui::Show to Calls::TopBar. --- Telegram/SourceFiles/calls/calls_top_bar.cpp | 32 +++++++++++++------- Telegram/SourceFiles/calls/calls_top_bar.h | 13 ++++++-- Telegram/SourceFiles/mainwidget.cpp | 5 +-- 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/Telegram/SourceFiles/calls/calls_top_bar.cpp b/Telegram/SourceFiles/calls/calls_top_bar.cpp index 3af604b0d..342ab059a 100644 --- a/Telegram/SourceFiles/calls/calls_top_bar.cpp +++ b/Telegram/SourceFiles/calls/calls_top_bar.cpp @@ -227,23 +227,27 @@ private: TopBar::TopBar( QWidget *parent, - const base::weak_ptr &call) -: TopBar(parent, call, nullptr) { + const base::weak_ptr &call, + std::shared_ptr show) +: TopBar(parent, show, call, nullptr) { } TopBar::TopBar( QWidget *parent, - const base::weak_ptr &call) -: TopBar(parent, nullptr, call) { + const base::weak_ptr &call, + std::shared_ptr show) +: TopBar(parent, show, nullptr, call) { } TopBar::TopBar( QWidget *parent, + std::shared_ptr show, const base::weak_ptr &call, const base::weak_ptr &groupCall) : RpWidget(parent) , _call(call) , _groupCall(groupCall) +, _show(show) , _userpics(call ? nullptr : std::make_unique( @@ -279,7 +283,9 @@ void TopBar::initControls() { call->setMuted(!call->muted()); } else if (const auto group = _groupCall.get()) { if (group->mutedByAdmin()) { - Ui::Toast::Show(tr::lng_group_call_force_muted_sub(tr::now)); + Ui::Toast::Show( + _show->toastParent(), + tr::lng_group_call_force_muted_sub(tr::now)); } else { group->setMuted((group->muted() == MuteState::Muted) ? MuteState::Active @@ -394,7 +400,9 @@ void TopBar::initControls() { if (const auto call = _call.get()) { if (Logs::DebugEnabled() && (_info->clickModifiers() & Qt::ControlModifier)) { - Ui::show(Box(_call)); + _show->showBox( + Box(_call), + Ui::LayerOption::CloseOther); } else { Core::App().calls().showInfoPanel(call); } @@ -409,11 +417,13 @@ void TopBar::initControls() { if (!group->peer()->canManageGroupCall()) { group->hangup(); } else { - Ui::show(Box( - Group::LeaveBox, - group, - false, - Group::BoxContext::MainWindow)); + _show->showBox( + Box( + Group::LeaveBox, + group, + false, + Group::BoxContext::MainWindow), + Ui::LayerOption::CloseOther); } } }); diff --git a/Telegram/SourceFiles/calls/calls_top_bar.h b/Telegram/SourceFiles/calls/calls_top_bar.h index 79f65830c..0ea23a818 100644 --- a/Telegram/SourceFiles/calls/calls_top_bar.h +++ b/Telegram/SourceFiles/calls/calls_top_bar.h @@ -22,6 +22,7 @@ class LabelSimple; class FlatLabel; struct GroupCallUser; class GroupCallUserpics; +class Show; } // namespace Ui namespace Main { @@ -39,8 +40,14 @@ enum class BarState; class TopBar : public Ui::RpWidget { public: - TopBar(QWidget *parent, const base::weak_ptr &call); - TopBar(QWidget *parent, const base::weak_ptr &call); + TopBar( + QWidget *parent, + const base::weak_ptr &call, + std::shared_ptr show); + TopBar( + QWidget *parent, + const base::weak_ptr &call, + std::shared_ptr show); ~TopBar(); void initBlobsUnder( @@ -56,6 +63,7 @@ private: TopBar( QWidget *parent, + std::shared_ptr show, const base::weak_ptr &call, const base::weak_ptr &groupCall); @@ -72,6 +80,7 @@ private: const base::weak_ptr _call; const base::weak_ptr _groupCall; + const std::shared_ptr _show; bool _muted = false; std::vector _users; diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 1b888ff37..aab88df87 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -962,11 +962,12 @@ void MainWidget::setCurrentGroupCall(Calls::GroupCall *call) { void MainWidget::createCallTopBar() { Expects(_currentCall != nullptr || _currentGroupCall != nullptr); + const auto show = std::make_shared(controller()); _callTopBar.create( this, (_currentCall - ? object_ptr(this, _currentCall) - : object_ptr(this, _currentGroupCall))); + ? object_ptr(this, _currentCall, show) + : object_ptr(this, _currentGroupCall, show))); _callTopBar->entity()->initBlobsUnder(this, _callTopBar->geometryValue()); _callTopBar->heightValue( ) | rpl::start_with_next([this](int value) {