Replaced DropdownMenu with PopupMenu in profile info.

This commit is contained in:
23rd 2022-03-29 02:52:22 +03:00 committed by John Preston
parent 8fcd07863a
commit 3356168745
2 changed files with 11 additions and 24 deletions

View File

@ -19,7 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/widgets/discrete_sliders.h" #include "ui/widgets/discrete_sliders.h"
#include "ui/widgets/buttons.h" #include "ui/widgets/buttons.h"
#include "ui/widgets/shadow.h" #include "ui/widgets/shadow.h"
#include "ui/widgets/dropdown_menu.h" #include "ui/widgets/popup_menu.h"
#include "ui/wrap/fade_wrap.h" #include "ui/wrap/fade_wrap.h"
#include "ui/search_field_controller.h" #include "ui/search_field_controller.h"
#include "core/application.h" #include "core/application.h"
@ -489,31 +489,20 @@ void WrapWidget::addProfileCallsButton() {
void WrapWidget::showTopBarMenu() { void WrapWidget::showTopBarMenu() {
if (_topBarMenu) { if (_topBarMenu) {
_topBarMenu->hideAnimated( _topBarMenu->hideMenu(true);
Ui::InnerDropdown::HideOption::IgnoreShow);
return; return;
} }
_topBarMenu = base::make_unique_q<Ui::DropdownMenu>( _topBarMenu = base::make_unique_q<Ui::PopupMenu>(
this, this,
st::dropdownMenuWithIcons); st::popupMenuWithIcons);
_topBarMenu->setHiddenCallback([this] { _topBarMenu->setDestroyedCallback([this] {
InvokeQueued(this, [this] { _topBarMenu = nullptr; }); InvokeQueued(this, [this] { _topBarMenu = nullptr; });
if (auto toggle = _topBarMenuToggle.get()) { if (auto toggle = _topBarMenuToggle.get()) {
toggle->setForceRippled(false); toggle->setForceRippled(false);
} }
}); });
_topBarMenu->setShowStartCallback([this] { _topBarMenuToggle->setForceRippled(true);
if (auto toggle = _topBarMenuToggle.get()) {
toggle->setForceRippled(true);
}
});
_topBarMenu->setHideStartCallback([this] {
if (auto toggle = _topBarMenuToggle.get()) {
toggle->setForceRippled(false);
}
});
_topBarMenuToggle->installEventFilter(_topBarMenu.get());
const auto addAction = Window::PeerMenuCallback([=]( const auto addAction = Window::PeerMenuCallback([=](
Window::PeerMenuCallback::Args a) { Window::PeerMenuCallback::Args a) {
@ -547,11 +536,9 @@ void WrapWidget::showTopBarMenu() {
_topBarMenu = nullptr; _topBarMenu = nullptr;
return; return;
} }
auto position = (wrap() == Wrap::Layer) _topBarMenu->setForcedOrigin(Ui::PanelAnimation::Origin::TopRight);
? st::infoLayerTopBarMenuPosition _topBarMenu->popup(_topBarMenuToggle->mapToGlobal(
: st::infoTopBarMenuPosition; st::infoLayerTopBarMenuPosition));
_topBarMenu->moveToRight(position.x(), position.y());
_topBarMenu->showAnimated(Ui::PanelAnimation::Origin::TopRight);
} }
void WrapWidget::deleteAllDownloads() { void WrapWidget::deleteAllDownloads() {

View File

@ -18,7 +18,7 @@ namespace Ui {
class SettingsSlider; class SettingsSlider;
class FadeShadow; class FadeShadow;
class PlainShadow; class PlainShadow;
class DropdownMenu; class PopupMenu;
class IconButton; class IconButton;
} // namespace Ui } // namespace Ui
@ -212,7 +212,7 @@ private:
object_ptr<Ui::FadeShadow> _topShadow; object_ptr<Ui::FadeShadow> _topShadow;
base::unique_qptr<Ui::IconButton> _topBarMenuToggle; base::unique_qptr<Ui::IconButton> _topBarMenuToggle;
base::unique_qptr<Ui::DropdownMenu> _topBarMenu; base::unique_qptr<Ui::PopupMenu> _topBarMenu;
// Tab _tab = Tab::Profile; // Tab _tab = Tab::Profile;
// std::shared_ptr<ContentMemento> _anotherTabMemento; // std::shared_ptr<ContentMemento> _anotherTabMemento;