Added Add-to-Sticker-Set submenu for stickers from foreign packs.

This commit is contained in:
23rd
2026-04-20 14:28:26 +03:00
parent 4b26971b48
commit 7b22a2aea7
8 changed files with 203 additions and 7 deletions
@@ -94,6 +94,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "apiwrap.h"
#include "api/api_attached_stickers.h"
#include "api/api_suggest_post.h"
#include "api/api_stickers_creator.h"
#include "api/api_toggling_media.h"
#include "api/api_who_reacted.h"
#include "api/api_views.h"
@@ -3184,6 +3185,11 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
_menu->addAction(document->isStickerSetInstalled() ? tr::lng_context_pack_info(tr::now) : tr::lng_context_pack_add(tr::now), [=] {
showStickerPackInfo(document);
}, &st::menuIconStickers);
} else {
Api::AddAddToStickerSetAction(
Ui::Menu::CreateAddActionCallback(_menu),
_controller->uiShow(),
document);
}
{
const auto isFaved = session->data().stickers().isFaved(document);
@@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "api/api_ringtones.h"
#include "api/api_transcribes.h"
#include "api/api_who_reacted.h"
#include "api/api_stickers_creator.h"
#include "api/api_toggling_media.h" // Api::ToggleFavedSticker
#include "base/qt/qt_key_modifiers.h"
#include "base/unixtime.h"
@@ -33,6 +34,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "info/profile/info_profile_widget.h"
#include "ui/widgets/popup_menu.h"
#include "ui/widgets/menu/menu_action.h"
#include "ui/widgets/menu/menu_add_action_callback_factory.h"
#include "ui/widgets/menu/menu_common.h"
#include "ui/widgets/menu/menu_multiline_action.h"
#include "ui/widgets/menu/menu_separator.h"
@@ -290,6 +292,12 @@ void AddDocumentActions(
[=] { ShowStickerPackInfo(document, list); },
&st::menuIconStickers);
}
if (document->sticker() && !document->sticker()->set) {
Api::AddAddToStickerSetAction(
Ui::Menu::CreateAddActionCallback(menu),
controller->uiShow(),
document);
}
if (document->sticker()) {
const auto isFaved = document->owner().stickers().isFaved(document);
menu->addAction(