mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Divided showing of peer menu from top bar into two methods.
This commit is contained in:
parent
a3d00b1953
commit
166d844d55
2 changed files with 18 additions and 9 deletions
|
@ -107,7 +107,7 @@ TopBarWidget::TopBarWidget(
|
||||||
_call->setClickedCallback([=] { call(); });
|
_call->setClickedCallback([=] { call(); });
|
||||||
_groupCall->setClickedCallback([=] { groupCall(); });
|
_groupCall->setClickedCallback([=] { groupCall(); });
|
||||||
_search->setClickedCallback([=] { search(); });
|
_search->setClickedCallback([=] { search(); });
|
||||||
_menuToggle->setClickedCallback([=] { showMenu(); });
|
_menuToggle->setClickedCallback([=] { showPeerMenu(); });
|
||||||
_infoToggle->setClickedCallback([=] { toggleInfoSection(); });
|
_infoToggle->setClickedCallback([=] { toggleInfoSection(); });
|
||||||
_back->addClickHandler([=] { backClicked(); });
|
_back->addClickHandler([=] { backClicked(); });
|
||||||
_cancelChoose->setClickedCallback(
|
_cancelChoose->setClickedCallback(
|
||||||
|
@ -272,9 +272,9 @@ void TopBarWidget::setChooseForReportReason(
|
||||||
: style::cur_default);
|
: style::cur_default);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TopBarWidget::showMenu() {
|
bool TopBarWidget::createMenu() {
|
||||||
if (!_activeChat.key || _menu) {
|
if (!_activeChat.key || _menu) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
_menu.create(parentWidget(), st::dropdownMenuWithIcons);
|
_menu.create(parentWidget(), st::dropdownMenuWithIcons);
|
||||||
_menu->setHiddenCallback([weak = Ui::MakeWeak(this), menu = _menu.data()]{
|
_menu->setHiddenCallback([weak = Ui::MakeWeak(this), menu = _menu.data()]{
|
||||||
|
@ -295,20 +295,27 @@ void TopBarWidget::showMenu() {
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
_menuToggle->installEventFilter(_menu);
|
_menuToggle->installEventFilter(_menu);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TopBarWidget::showPeerMenu() {
|
||||||
|
const auto created = createMenu();
|
||||||
|
if (!created) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
const auto addAction = [&](
|
const auto addAction = [&](
|
||||||
const QString &text,
|
const QString &text,
|
||||||
Fn<void()> callback,
|
Fn<void()> callback,
|
||||||
const style::icon *icon) {
|
const style::icon *icon) {
|
||||||
return _menu->addAction(text, std::move(callback), icon);
|
return _menu->addAction(text, std::move(callback), icon);
|
||||||
};
|
};
|
||||||
Window::FillDialogsEntryMenu(
|
Window::FillDialogsEntryMenu(_controller, _activeChat, addAction);
|
||||||
_controller,
|
|
||||||
_activeChat,
|
|
||||||
addAction);
|
|
||||||
if (_menu->empty()) {
|
if (_menu->empty()) {
|
||||||
_menu.destroy();
|
_menu.destroy();
|
||||||
} else {
|
} else {
|
||||||
_menu->moveToRight((parentWidget()->width() - width()) + st::topBarMenuPosition.x(), st::topBarMenuPosition.y());
|
_menu->moveToRight(
|
||||||
|
(parentWidget()->width() - width()) + st::topBarMenuPosition.x(),
|
||||||
|
st::topBarMenuPosition.y());
|
||||||
_menu->showAnimated(Ui::PanelAnimation::Origin::TopRight);
|
_menu->showAnimated(Ui::PanelAnimation::Origin::TopRight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,9 +109,11 @@ private:
|
||||||
void groupCall();
|
void groupCall();
|
||||||
void startGroupCall(not_null<ChannelData*> megagroup, bool confirmed);
|
void startGroupCall(not_null<ChannelData*> megagroup, bool confirmed);
|
||||||
void search();
|
void search();
|
||||||
void showMenu();
|
void showPeerMenu();
|
||||||
void toggleInfoSection();
|
void toggleInfoSection();
|
||||||
|
|
||||||
|
[[nodiscard]] bool createMenu();
|
||||||
|
|
||||||
void handleEmojiInteractionSeen(const QString &emoticon);
|
void handleEmojiInteractionSeen(const QString &emoticon);
|
||||||
bool paintSendAction(
|
bool paintSendAction(
|
||||||
Painter &p,
|
Painter &p,
|
||||||
|
|
Loading…
Add table
Reference in a new issue