mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-14 13:17:08 +02:00
feat: emoji pack author
This commit is contained in:
parent
b5c769196a
commit
c86ea4807a
2 changed files with 33 additions and 4 deletions
|
@ -27,6 +27,7 @@
|
|||
#include "ayu/ui/sections/edited/edited_log_section.h"
|
||||
#include "ayu/utils/telegram_helpers.h"
|
||||
#include "base/unixtime.h"
|
||||
#include "history/view/history_view_context_menu.h"
|
||||
#include "history/view/history_view_element.h"
|
||||
#include "window/window_session_controller.h"
|
||||
|
||||
|
@ -113,6 +114,22 @@ void AddMessageDetailsAction(not_null<Ui::PopupMenu*> menu, HistoryItem *item) {
|
|||
const auto media = item->media();
|
||||
|
||||
const auto isSticker = media && media->document() && media->document()->sticker();
|
||||
|
||||
const auto emojiPacks = HistoryView::CollectEmojiPacks(item, HistoryView::EmojiPacksSource::Message);
|
||||
auto containsSingleCustomEmojiPack = emojiPacks.size() == 1;
|
||||
if (!containsSingleCustomEmojiPack && emojiPacks.size() > 1) {
|
||||
const auto author = emojiPacks.front().id >> 32;
|
||||
auto sameAuthor = true;
|
||||
for (const auto pack : emojiPacks) {
|
||||
if (pack.id >> 32 != author) {
|
||||
sameAuthor = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
containsSingleCustomEmojiPack = sameAuthor;
|
||||
}
|
||||
|
||||
const auto isForwarded = forwarded && !forwarded->story && forwarded->psaType.isEmpty();
|
||||
|
||||
const auto messageId = QString::number(item->id.bare);
|
||||
|
@ -279,6 +296,18 @@ void AddMessageDetailsAction(not_null<Ui::PopupMenu*> menu, HistoryItem *item) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (containsSingleCustomEmojiPack) {
|
||||
const auto authorId = emojiPacks.front().id >> 32;
|
||||
|
||||
if (authorId != 0) {
|
||||
menu2->addAction(Ui::ContextActionStickerAuthor(
|
||||
menu2->menu(),
|
||||
&item->history()->session(),
|
||||
authorId
|
||||
));
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
|
|
|
@ -554,9 +554,9 @@ void StickerSetBox::updateButtons() {
|
|||
? tr::lng_stickers_copied_emoji(tr::now)
|
||||
: tr::lng_stickers_copied(tr::now));
|
||||
};
|
||||
const auto addAuthorPack = [=](const std::shared_ptr<base::unique_qptr<Ui::PopupMenu>> &menu)
|
||||
const auto addPackOwner = [=](const std::shared_ptr<base::unique_qptr<Ui::PopupMenu>> &menu)
|
||||
{
|
||||
if (type == Data::StickersType::Stickers) {
|
||||
if (type == Data::StickersType::Stickers || type == Data::StickersType::Emoji) {
|
||||
const auto pointer = Ui::MakeWeak(this);
|
||||
(*menu)->addAction(
|
||||
tr::ayu_MessageDetailsPackOwnerPC(tr::now),
|
||||
|
@ -636,7 +636,7 @@ void StickerSetBox::updateButtons() {
|
|||
: tr::lng_stickers_share_pack)(tr::now),
|
||||
[=] { share(); closeBox(); },
|
||||
&st::menuIconShare);
|
||||
addAuthorPack(menu);
|
||||
addPackOwner(menu);
|
||||
(*menu)->popup(QCursor::pos());
|
||||
return true;
|
||||
});
|
||||
|
@ -686,7 +686,7 @@ void StickerSetBox::updateButtons() {
|
|||
archive,
|
||||
&st::menuIconArchive);
|
||||
}
|
||||
addAuthorPack(menu);
|
||||
addPackOwner(menu);
|
||||
(*menu)->popup(QCursor::pos());
|
||||
return true;
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue