From f1dff4d0b76a2d33131d2c78d9cbcfd4aa4fb9d3 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 21 Sep 2025 13:56:51 +0300 Subject: [PATCH] Added ability to delete contact from edit contact box. --- .../boxes/peers/edit_contact_box.cpp | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/Telegram/SourceFiles/boxes/peers/edit_contact_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_contact_box.cpp index 9d35743630..0af2cba8fe 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_contact_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_contact_box.cpp @@ -128,6 +128,7 @@ private: void setupNameFields(); void setupNotesField(); void setupPhotoButtons(); + void setupDeleteContactButton(); void setupWarning(); void setupSharePhoneNumber(); void initNameFields( @@ -183,6 +184,7 @@ void Controller::setupContent() { setupNameFields(); setupNotesField(); setupPhotoButtons(); + setupDeleteContactButton(); setupWarning(); setupSharePhoneNumber(); } @@ -518,6 +520,41 @@ void Controller::setupPhotoButtons() { Ui::AddDividerText( inner, tr::lng_contact_photo_replace_info(lt_user, std::move(nameValue))); + Ui::AddSkip(inner); +} + +void Controller::setupDeleteContactButton() { + if (!_user->isContact()) { + return; + } + const auto inner = _box->verticalLayout(); + const auto deleteButton = Settings::AddButtonWithIcon( + inner, + tr::lng_info_delete_contact(), + st::settingsAttentionButton, + { nullptr }); + deleteButton->setClickedCallback([=] { + const auto text = tr::lng_sure_delete_contact( + tr::now, + lt_contact, + _user->name()); + const auto deleteSure = [=](Fn &&close) { + close(); + _user->session().api().request(MTPcontacts_DeleteContacts( + MTP_vector(1, _user->inputUser) + )).done([=](const MTPUpdates &result) { + _user->session().api().applyUpdates(result); + _box->closeBox(); + }).send(); + }; + _window->show(Ui::MakeConfirmBox({ + .text = text, + .confirmed = deleteSure, + .confirmText = tr::lng_box_delete(), + .confirmStyle = &st::attentionBoxButton, + })); + }); + Ui::AddSkip(inner); } void Controller::setupSharePhoneNumber() {