feat: copy pack ID & copy single emoji ID

This commit is contained in:
AlexeyZavar 2025-07-15 23:08:56 +03:00
parent 1586386d6c
commit aeb610ff70

View file

@ -768,12 +768,14 @@ void StickerSetBox::updateButtons() {
&st::menuIconManage);
});
}();
const auto addPackOwner = [=](const std::shared_ptr<base::unique_qptr<Ui::PopupMenu>> &menu)
const auto addPackIdActions = [=](const std::shared_ptr<base::unique_qptr<Ui::PopupMenu>> &menu)
{
if (type == Data::StickersType::Stickers || type == Data::StickersType::Emoji) {
const auto &settings = AyuSettings::getInstance();
const auto weak = Ui::MakeWeak(this);
const auto session = _session;
const auto innerId = _inner->setId() >> 32;
const auto setId = _inner->setId();
const auto innerId = setId >> 32;
(*menu)->addAction(
tr::ayu_MessageDetailsPackOwnerPC(tr::now),
@ -816,6 +818,26 @@ void StickerSetBox::updateButtons() {
});
},
&st::menuIconProfile);
if (settings.showPeerId != 0) {
(*menu)->addAction(
tr::ayu_ContextCopyID(tr::now),
[weak, session, setId]
{
if (!weak) {
return;
}
const auto strongInner = weak.data();
if (!strongInner) {
return;
}
QGuiApplication::clipboard()->setText(QString::number(setId));
strongInner->showToast(tr::ayu_IDCopiedToast(tr::now));
},
&st::menuIconCopy);
}
}
};
if (_inner->notInstalled()) {
@ -865,7 +887,7 @@ void StickerSetBox::updateButtons() {
: tr::lng_stickers_share_pack)(tr::now),
[=] { share(); closeBox(); },
&st::menuIconShare);
addPackOwner(menu);
addPackIdActions(menu);
(*menu)->popup(QCursor::pos());
return true;
});
@ -918,7 +940,7 @@ void StickerSetBox::updateButtons() {
archive,
&st::menuIconArchive);
}
addPackOwner(menu);
addPackIdActions(menu);
(*menu)->popup(QCursor::pos());
return true;
});
@ -1486,6 +1508,16 @@ void StickerSetBox::Inner::contextMenuEvent(QContextMenuEvent *e) {
QGuiApplication::clipboard()->setMimeData(data.release());
}
}, &st::menuIconCopy);
const auto &settings = AyuSettings::getInstance();
if (settings.showPeerId != 0) {
_menu->addAction(tr::ayu_ContextCopyID(tr::now),
[=]
{
QGuiApplication::clipboard()->setText(QString::number(_pack[index]->id));
},
&st::menuIconCopy);
}
}
} else if (details.type != SendMenu::Type::Disabled) {
const auto document = _pack[index];