Moved out ability to mark as read all chats from hidden shortcut.

This commit is contained in:
23rd 2024-12-20 19:25:10 +03:00
parent 80a1e6ecf3
commit 183a9139f9
3 changed files with 35 additions and 15 deletions

View file

@ -3656,6 +3656,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_context_mark_read_sure" = "Are you sure you want to mark all chats from this folder as read?";
"lng_context_mark_read_all" = "Mark all chats as read";
"lng_context_mark_read_all_sure" = "Are you sure you want to mark all chats as read?";
"lng_context_mark_read_all_sure_2" = "**This action cannot be undone.**";
"lng_context_mark_read_mentions_all" = "Mark all mentions as read";
"lng_context_mark_read_reactions_all" = "Read all reactions";
"lng_context_archive_expand" = "Expand";

View file

@ -746,17 +746,6 @@ void SetupAccountsWrap(
} else if (which != Qt::RightButton) {
return;
}
if (!state->menu && IsAltShift(raw->clickModifiers()) && !locked) {
state->menu = base::make_unique_q<Ui::PopupMenu>(
raw,
st::popupMenuWithIcons);
Window::MenuAddMarkAsReadAllChatsAction(
session,
window->uiShow(),
Ui::Menu::CreateAddActionCallback(state->menu));
state->menu->popup(QCursor::pos());
return;
}
if (session == &window->session() || state->menu) {
return;
}
@ -781,6 +770,10 @@ void SetupAccountsWrap(
addAction(tr::lng_menu_activate(tr::now), [=] {
callback({});
}, &st::menuIconProfile);
Window::MenuAddMarkAsReadAllChatsAction(
session,
window->uiShow(),
addAction);
}
auto logoutCallback = [=] {

View file

@ -2770,7 +2770,6 @@ void MenuAddMarkAsReadAllChatsAction(
not_null<Main::Session*> session,
std::shared_ptr<Ui::Show> show,
const PeerMenuCallback &addAction) {
// There is no async to make weak from controller.
auto callback = [=, owner = &session->data()] {
auto boxCallback = [=](Fn<void()> &&close) {
close();
@ -2781,9 +2780,36 @@ void MenuAddMarkAsReadAllChatsAction(
}
};
show->show(
Ui::MakeConfirmBox({
tr::lng_context_mark_read_all_sure(),
std::move(boxCallback)
Box([=](not_null<Ui::GenericBox*> box) {
Ui::AddSkip(box->verticalLayout());
Ui::AddSkip(box->verticalLayout());
const auto userpic = Ui::CreateChild<Ui::UserpicButton>(
box->verticalLayout(),
session->user(),
st::mainMenuUserpic);
Ui::IconWithTitle(
box->verticalLayout(),
userpic,
Ui::CreateChild<Ui::FlatLabel>(
box->verticalLayout(),
Info::Profile::NameValue(session->user()),
box->getDelegate()->style().title));
auto text = rpl::combine(
tr::lng_context_mark_read_all_sure(),
tr::lng_context_mark_read_all_sure_2(
Ui::Text::RichLangValue)
) | rpl::map([](QString t1, TextWithEntities t2) {
return TextWithEntities()
.append(std::move(t1))
.append('\n')
.append('\n')
.append(std::move(t2));
});
Ui::ConfirmBox(box, {
.text = std::move(text),
.confirmed = std::move(boxCallback),
.confirmStyle = &st::attentionBoxButton,
});
}),
Ui::LayerOption::CloseOther);
};