[Improvement] Copy sticker pack title

This commit is contained in:
Eric Kotato 2022-09-10 20:39:51 +03:00 committed by Eric Kotato
parent e15ec01c0d
commit bcd9678d58
3 changed files with 18 additions and 0 deletions

View file

@ -82,6 +82,8 @@
"ktg_settings_messages": "Messages", "ktg_settings_messages": "Messages",
"ktg_settings_filters_hide_all": "Hide \"All chats\" folder", "ktg_settings_filters_hide_all": "Hide \"All chats\" folder",
"ktg_hide_pinned_message": "Hide", "ktg_hide_pinned_message": "Hide",
"ktg_stickers_copy_title": "Copy name",
"ktg_stickers_title_copied": "Sticker pack name copied to clipboard.",
"ktg_settings_tray_icon": "Tray icon", "ktg_settings_tray_icon": "Tray icon",
"ktg_settings_tray_icon_default": "Default", "ktg_settings_tray_icon_default": "Default",
"ktg_settings_tray_icon_blue": "Blue", "ktg_settings_tray_icon_blue": "Blue",

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "boxes/sticker_set_box.h" #include "boxes/sticker_set_box.h"
#include "kotato/kotato_lang.h"
#include "data/data_document.h" #include "data/data_document.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "data/data_file_origin.h" #include "data/data_file_origin.h"
@ -510,6 +511,15 @@ void StickerSetBox::copyStickersLink() {
QGuiApplication::clipboard()->setText(url); QGuiApplication::clipboard()->setText(url);
} }
void StickerSetBox::copyTitle() {
_inner->title(
) | rpl::start_with_next([this](const TextWithEntities &value) {
QGuiApplication::clipboard()->setText(value.text);
_show->showBox(
Ui::MakeInformBox(ktr("ktg_stickers_title_copied")));
}, lifetime());
}
void StickerSetBox::handleError(Error error) { void StickerSetBox::handleError(Error error) {
const auto guard = gsl::finally(crl::guard(this, [=] { const auto guard = gsl::finally(crl::guard(this, [=] {
closeBox(); closeBox();
@ -680,6 +690,11 @@ bool StickerSetBox::showMenu(not_null<Ui::IconButton*> button) {
}); });
button->installEventFilter(_menu); button->installEventFilter(_menu);
_menu->addAction(
ktr("ktg_stickers_copy_title"),
[=] { copyTitle(); },
&st::menuIconCopy);
if (!_inner->shortName().isEmpty()) { if (!_inner->shortName().isEmpty()) {
_menu->addAction( _menu->addAction(
tr::lng_stickers_share_pack(tr::now), tr::lng_stickers_share_pack(tr::now),

View file

@ -88,6 +88,7 @@ private:
bool showMenu(not_null<Ui::IconButton*> button); bool showMenu(not_null<Ui::IconButton*> button);
void addStickers(); void addStickers();
void copyStickersLink(); void copyStickersLink();
void copyTitle();
void handleError(Error error); void handleError(Error error);
const std::shared_ptr<ChatHelpers::Show> _show; const std::shared_ptr<ChatHelpers::Show> _show;