From 09ff556aa6028cf5df22b17ffe41caf094740c04 Mon Sep 17 00:00:00 2001 From: Royal Wizard Date: Mon, 25 Mar 2019 17:37:31 +0530 Subject: [PATCH] Version 1.6.3: Add child abuse report reason (#5828) --- Telegram/Resources/langs/lang.strings | 1 + Telegram/SourceFiles/boxes/report_box.cpp | 16 ++++++++++++++-- Telegram/SourceFiles/boxes/report_box.h | 2 ++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 3968aea9f..ddb94810e 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -845,6 +845,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_report_message_title" = "Report message"; "lng_report_reason_spam" = "Spam"; "lng_report_reason_violence" = "Violence"; +"lng_report_reason_child_abuse" = "Child Abuse"; "lng_report_reason_pornography" = "Pornography"; "lng_report_reason_other" = "Other"; "lng_report_reason_description" = "Description"; diff --git a/Telegram/SourceFiles/boxes/report_box.cpp b/Telegram/SourceFiles/boxes/report_box.cpp index f0486ab5d..d1c9c2f28 100644 --- a/Telegram/SourceFiles/boxes/report_box.cpp +++ b/Telegram/SourceFiles/boxes/report_box.cpp @@ -64,6 +64,9 @@ void ReportBox::prepare() { }; createButton(_reasonSpam, Reason::Spam, lng_report_reason_spam); createButton(_reasonViolence, Reason::Violence, lng_report_reason_violence); + if (_ids) { + createButton(_reasonChildAbuse, Reason::ChildAbuse, lng_report_reason_child_abuse); + } createButton(_reasonPornography, Reason::Pornography, lng_report_reason_pornography); createButton(_reasonOther, Reason::Other, lng_report_reason_other); _reasonGroup->setChangedCallback([=](Reason value) { @@ -78,7 +81,13 @@ void ReportBox::resizeEvent(QResizeEvent *e) { _reasonSpam->moveToLeft(st::boxPadding.left() + st::boxOptionListPadding.left(), st::boxOptionListPadding.top() + _reasonSpam->getMargins().top()); _reasonViolence->moveToLeft(st::boxPadding.left() + st::boxOptionListPadding.left(), _reasonSpam->bottomNoMargins() + st::boxOptionListSkip); - _reasonPornography->moveToLeft(st::boxPadding.left() + st::boxOptionListPadding.left(), _reasonViolence->bottomNoMargins() + st::boxOptionListSkip); + if (_ids) { + _reasonChildAbuse->moveToLeft(st::boxPadding.left() + st::boxOptionListPadding.left(), _reasonViolence->bottomNoMargins() + st::boxOptionListSkip); + _reasonPornography->moveToLeft(st::boxPadding.left() + st::boxOptionListPadding.left(), _reasonChildAbuse->bottomNoMargins() + st::boxOptionListSkip); + } + else{ + _reasonPornography->moveToLeft(st::boxPadding.left() + st::boxOptionListPadding.left(), _reasonViolence->bottomNoMargins() + st::boxOptionListSkip); + } _reasonOther->moveToLeft(st::boxPadding.left() + st::boxOptionListPadding.left(), _reasonPornography->bottomNoMargins() + st::boxOptionListSkip); if (_reasonOtherText) { @@ -136,6 +145,7 @@ void ReportBox::report() { switch (_reasonGroup->value()) { case Reason::Spam: return MTP_inputReportReasonSpam(); case Reason::Violence: return MTP_inputReportReasonViolence(); + case Reason::ChildAbuse: return MTP_inputReportReasonChildAbuse(); case Reason::Pornography: return MTP_inputReportReasonPornography(); case Reason::Other: return MTP_inputReportReasonOther(MTP_string(_reasonOtherText->getLastText())); } @@ -180,7 +190,9 @@ bool ReportBox::reportFail(const RPCError &error) { } void ReportBox::updateMaxHeight() { - auto newHeight = st::boxOptionListPadding.top() + _reasonSpam->getMargins().top() + 4 * _reasonSpam->heightNoMargins() + 3 * st::boxOptionListSkip + _reasonSpam->getMargins().bottom() + st::boxOptionListPadding.bottom(); + const auto buttonsCount = _ids ? 5 : 4; + auto newHeight = st::boxOptionListPadding.top() + _reasonSpam->getMargins().top() + buttonsCount * _reasonSpam->heightNoMargins() + (buttonsCount - 1) * st::boxOptionListSkip + _reasonSpam->getMargins().bottom() + st::boxOptionListPadding.bottom(); + if (_reasonOtherText) { newHeight += st::newGroupDescriptionPadding.top() + _reasonOtherText->height() + st::newGroupDescriptionPadding.bottom(); } diff --git a/Telegram/SourceFiles/boxes/report_box.h b/Telegram/SourceFiles/boxes/report_box.h index 0e7162929..3b48cd03d 100644 --- a/Telegram/SourceFiles/boxes/report_box.h +++ b/Telegram/SourceFiles/boxes/report_box.h @@ -32,6 +32,7 @@ private: enum class Reason { Spam, Violence, + ChildAbuse, Pornography, Other, }; @@ -49,6 +50,7 @@ private: std::shared_ptr> _reasonGroup; object_ptr> _reasonSpam = { nullptr }; object_ptr> _reasonViolence = { nullptr }; + object_ptr> _reasonChildAbuse = { nullptr }; object_ptr> _reasonPornography = { nullptr }; object_ptr> _reasonOther = { nullptr }; object_ptr _reasonOtherText = { nullptr };