diff --git a/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp b/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp index 099e6c8b3..99ed24e6f 100644 --- a/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp +++ b/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp @@ -21,26 +21,22 @@ namespace AyuUi { -AyuPopupMenu::AyuPopupMenu(HistoryInner *parent) -{ - _ayuSubMenu = std::make_unique(parent, st::popupMenuWithIcons); -} - -void AyuPopupMenu::addHistoryAction(HistoryItem *item) +void AddHistoryAction(not_null menu, HistoryItem *item) { if (AyuMessages::getInstance().hasRevisions(item)) { - _ayuSubMenu->addAction(tr::ayu_EditsHistoryMenuText(tr::now), [=] + menu->addAction(tr::ayu_EditsHistoryMenuText(tr::now), [=] { - item->history()->session().tryResolveWindow()->showSection(std::make_shared(item->history()->peer, item)); + item->history()->session().tryResolveWindow() + ->showSection(std::make_shared(item->history()->peer, item)); }, &st::menuIconInfo); } } -void AyuPopupMenu::addHideMessageAction(HistoryItem *item) const +void AddHideMessageAction(not_null menu, HistoryItem *item) { const auto settings = &AyuSettings::getInstance(); const auto history = item->history(); - _ayuSubMenu->addAction(tr::ayu_ContextHideMessage(tr::now), [=]() + menu->addAction(tr::ayu_ContextHideMessage(tr::now), [=]() { const auto initSaveDeleted = settings->saveDeletedMessages; @@ -50,10 +46,15 @@ void AyuPopupMenu::addHideMessageAction(HistoryItem *item) const }, &st::menuIconClear); } -void AyuPopupMenu::addReadUntilAction(HistoryItem *item) const +void AddReadUntilAction(not_null menu, HistoryItem *item) { + const auto settings = &AyuSettings::getInstance(); + if (settings->sendReadMessages) { + return; + } + const auto history = item->history(); - _ayuSubMenu->addAction(tr::ayu_ReadUntilMenuText(tr::now), [=]() + menu->addAction(tr::ayu_ReadUntilMenuText(tr::now), [=]() { AyuState::setAllowSendReadPacket(true); history->session().data().histories().readInboxOnNewMessage(item); diff --git a/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.h b/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.h index 6d3e58a82..10fdb9ead 100644 --- a/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.h +++ b/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.h @@ -83,18 +83,10 @@ namespace AyuUi { -class AyuPopupMenu -{ -public: - AyuPopupMenu(HistoryInner *parent); +void AddHistoryAction(not_nullmenu, HistoryItem *item); - void addHistoryAction(HistoryItem *item); +void AddHideMessageAction(not_nullmenu, HistoryItem *item); - void addHideMessageAction(HistoryItem *item) const; - - void addReadUntilAction(HistoryItem *item) const; - - std::unique_ptr _ayuSubMenu; -}; +void AddReadUntilAction(not_nullmenu, HistoryItem *item); } diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index 918f10bfd..400464856 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -2225,13 +2225,8 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) { }), isPinned ? &st::menuIconUnpin : &st::menuIconPin); } - // ayu context menu options - auto ayuSubMenu = AyuUi::AyuPopupMenu(this); - ayuSubMenu.addHistoryAction(item); - ayuSubMenu.addHideMessageAction(item); - ayuSubMenu.addReadUntilAction(item); - - _menu->addAction(QString("Ayu"), std::move(ayuSubMenu._ayuSubMenu), &st::ayuMenuIcon, &st::ayuMenuIcon); + AyuUi::AddHistoryAction(_menu, item); + AyuUi::AddHideMessageAction(_menu, item); }; const auto addPhotoActions = [&](not_null photo, HistoryItem *item) { const auto media = photo->activeMediaView(); @@ -2327,6 +2322,8 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) { } }, &st::menuIconSelect); } + + AyuUi::AddReadUntilAction(_menu, item); }; const auto lnkPhoto = link diff --git a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp index 1c288ff67..9189bbc2e 100644 --- a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp +++ b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp @@ -75,13 +75,16 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include + // AyuGram includes #include "ayu/ayu_settings.h" #include "ayu/database/ayu_database.h" #include "ayu/messages/ayu_messages_controller.h" +#include "ayu/ui/context_menu/context_menu.h" #include "ayu/ui/boxes/message_history_box.h" #include "ayu/ui/sections/edited/edited_log_section.h" + namespace HistoryView { namespace { @@ -941,6 +944,11 @@ void AddMessageActions( not_null menu, const ContextMenuRequest &request, not_null list) { + if (request.item) { + AyuUi::AddHistoryAction(menu, request.item); + AyuUi::AddHideMessageAction(menu, request.item); + } + AddPostLinkAction(menu, request); AddForwardAction(menu, request, list); AddSendNowAction(menu, request, list); @@ -949,6 +957,11 @@ void AddMessageActions( AddReportAction(menu, request, list); AddSelectionAction(menu, request, list); AddRescheduleAction(menu, request, list); + + if (request.item) + { + AyuUi::AddReadUntilAction(menu, request.item); + } } void AddCopyLinkAction( @@ -1086,28 +1099,6 @@ base::unique_qptr FillContextMenu( } } - if (item) - { - if (AyuMessages::getInstance().hasRevisions(item)) - { - result->addAction(tr::ayu_EditsHistoryMenuText(tr::now), [=] - { - item->history()->session().tryResolveWindow()->showSection(std::make_shared(item->history()->peer, item)); - }, &st::menuIconInfo); - } - - const auto settings = &AyuSettings::getInstance(); - const auto history = item->history(); - result->addAction(tr::ayu_ContextHideMessage(tr::now), [=]() - { - const auto initKeepDeleted = settings->saveDeletedMessages; - - settings->set_keepDeletedMessages(false); - history->destroyMessage(item); - settings->set_keepDeletedMessages(initKeepDeleted); - }, &st::menuIconClear); - } - if (!view || !list->hasCopyRestriction(view->data())) { AddCopyLinkAction(result, link); }