mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-03 21:54:05 +02:00
Added ability to open context menu for active account from main menu.
This commit is contained in:
parent
183a9139f9
commit
bcd1d8461f
1 changed files with 35 additions and 28 deletions
|
@ -746,19 +746,22 @@ void SetupAccountsWrap(
|
|||
} else if (which != Qt::RightButton) {
|
||||
return;
|
||||
}
|
||||
if (session == &window->session() || state->menu) {
|
||||
if (state->menu) {
|
||||
return;
|
||||
}
|
||||
const auto isActive = session == &window->session();
|
||||
state->menu = base::make_unique_q<Ui::PopupMenu>(
|
||||
raw,
|
||||
st::popupMenuExpandedSeparator);
|
||||
const auto addAction = Ui::Menu::CreateAddActionCallback(
|
||||
state->menu);
|
||||
addAction(tr::lng_context_new_window(tr::now), [=] {
|
||||
Ui::PreventDelayedActivation();
|
||||
callback(Qt::ControlModifier);
|
||||
}, &st::menuIconNewWindow);
|
||||
Window::AddSeparatorAndShiftUp(addAction);
|
||||
if (!isActive) {
|
||||
addAction(tr::lng_context_new_window(tr::now), [=] {
|
||||
Ui::PreventDelayedActivation();
|
||||
callback(Qt::ControlModifier);
|
||||
}, &st::menuIconNewWindow);
|
||||
Window::AddSeparatorAndShiftUp(addAction);
|
||||
}
|
||||
|
||||
addAction(tr::lng_profile_copy_phone(tr::now), [=] {
|
||||
const auto phone = rpl::variable<TextWithEntities>(
|
||||
|
@ -767,35 +770,39 @@ void SetupAccountsWrap(
|
|||
}, &st::menuIconCopy);
|
||||
|
||||
if (!locked) {
|
||||
addAction(tr::lng_menu_activate(tr::now), [=] {
|
||||
callback({});
|
||||
}, &st::menuIconProfile);
|
||||
if (!isActive) {
|
||||
addAction(tr::lng_menu_activate(tr::now), [=] {
|
||||
callback({});
|
||||
}, &st::menuIconProfile);
|
||||
}
|
||||
Window::MenuAddMarkAsReadAllChatsAction(
|
||||
session,
|
||||
window->uiShow(),
|
||||
addAction);
|
||||
}
|
||||
|
||||
auto logoutCallback = [=] {
|
||||
const auto callback = [=](Fn<void()> &&close) {
|
||||
close();
|
||||
Core::App().logoutWithChecks(&session->account());
|
||||
if (!isActive) {
|
||||
auto logoutCallback = [=] {
|
||||
const auto callback = [=](Fn<void()> &&close) {
|
||||
close();
|
||||
Core::App().logoutWithChecks(&session->account());
|
||||
};
|
||||
window->show(
|
||||
Ui::MakeConfirmBox({
|
||||
.text = tr::lng_sure_logout(),
|
||||
.confirmed = crl::guard(session, callback),
|
||||
.confirmText = tr::lng_settings_logout(),
|
||||
.confirmStyle = &st::attentionBoxButton,
|
||||
}),
|
||||
Ui::LayerOption::CloseOther);
|
||||
};
|
||||
window->show(
|
||||
Ui::MakeConfirmBox({
|
||||
.text = tr::lng_sure_logout(),
|
||||
.confirmed = crl::guard(session, callback),
|
||||
.confirmText = tr::lng_settings_logout(),
|
||||
.confirmStyle = &st::attentionBoxButton,
|
||||
}),
|
||||
Ui::LayerOption::CloseOther);
|
||||
};
|
||||
addAction({
|
||||
.text = tr::lng_settings_logout(tr::now),
|
||||
.handler = std::move(logoutCallback),
|
||||
.icon = &st::menuIconLeaveAttention,
|
||||
.isAttention = true,
|
||||
});
|
||||
addAction({
|
||||
.text = tr::lng_settings_logout(tr::now),
|
||||
.handler = std::move(logoutCallback),
|
||||
.icon = &st::menuIconLeaveAttention,
|
||||
.isAttention = true,
|
||||
});
|
||||
}
|
||||
state->menu->popup(QCursor::pos());
|
||||
}, raw->lifetime());
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue