From 3bdf1634a9d40345a23c9c77f77b1078b6569d8d Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 28 Apr 2022 17:29:31 +0300 Subject: [PATCH] Added ability to copy phone number from main menu. --- .../settings/settings_information.cpp | 8 +++++++- .../SourceFiles/window/window_main_menu.cpp | 18 +++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/settings/settings_information.cpp b/Telegram/SourceFiles/settings/settings_information.cpp index 975fbd0b69..b5f4c959d5 100644 --- a/Telegram/SourceFiles/settings/settings_information.cpp +++ b/Telegram/SourceFiles/settings/settings_information.cpp @@ -223,7 +223,7 @@ void ShowMenu( QWidget *parent, const QString ©Button, const QString &text) { - const auto menu = new Ui::PopupMenu(parent); + const auto menu = Ui::CreateChild(parent); menu->addAction(copyButton, [=] { QGuiApplication::clipboard()->setText(text); @@ -568,6 +568,12 @@ void SetupAccountsWrap( state->menu = base::make_unique_q( raw, st::popupMenuWithIcons); + addAction(tr::lng_profile_copy_phone(tr::now), [=] { + const auto phone = rpl::variable( + Info::Profile::PhoneValue(session->user())); + QGuiApplication::clipboard()->setText(phone.current().text); + }, &st::menuIconCopy); + addAction(tr::lng_menu_activate(tr::now), [=] { Core::App().domain().activate(&session->account()); }, &st::menuIconProfile); diff --git a/Telegram/SourceFiles/window/window_main_menu.cpp b/Telegram/SourceFiles/window/window_main_menu.cpp index 54095f553d..7911958d18 100644 --- a/Telegram/SourceFiles/window/window_main_menu.cpp +++ b/Telegram/SourceFiles/window/window_main_menu.cpp @@ -65,6 +65,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include +#include +#include + namespace Window { namespace { @@ -568,7 +571,20 @@ void MainMenu::setupAccounts() { void MainMenu::setupAccountsToggle() { _toggleAccounts->show(); - _toggleAccounts->setClickedCallback([=] { toggleAccounts(); }); + _toggleAccounts->setAcceptBoth(); + _toggleAccounts->addClickHandler([=](Qt::MouseButton button) { + if (button == Qt::LeftButton) { + toggleAccounts(); + } else if (button == Qt::RightButton) { + const auto menu = Ui::CreateChild( + _toggleAccounts.data()); + + menu->addAction(tr::lng_profile_copy_phone(tr::now), [=] { + QGuiApplication::clipboard()->setText(_phoneText); + }); + menu->popup(QCursor::pos()); + } + }); } void MainMenu::parentResized() {