diff --git a/Telegram/SourceFiles/api/api_editing.cpp b/Telegram/SourceFiles/api/api_editing.cpp index b529eca4c..3b6ad3c67 100644 --- a/Telegram/SourceFiles/api/api_editing.cpp +++ b/Telegram/SourceFiles/api/api_editing.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "main/main_session.h" #include "mtproto/mtproto_response.h" +#include "boxes/abstract_box.h" // Ui::show(). namespace Api { namespace { diff --git a/Telegram/SourceFiles/boxes/connection_box.cpp b/Telegram/SourceFiles/boxes/connection_box.cpp index 89466f98a..8dd8db93b 100644 --- a/Telegram/SourceFiles/boxes/connection_box.cpp +++ b/Telegram/SourceFiles/boxes/connection_box.cpp @@ -29,6 +29,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/text/text_options.h" #include "ui/text/text_utilities.h" #include "ui/basic_click_handlers.h" +#include "boxes/abstract_box.h" // Ui::show(). #include "styles/style_layers.h" #include "styles/style_boxes.h" #include "styles/style_chat_helpers.h" diff --git a/Telegram/SourceFiles/calls/calls_instance.cpp b/Telegram/SourceFiles/calls/calls_instance.cpp index 04fdb1da7..b69f84f42 100644 --- a/Telegram/SourceFiles/calls/calls_instance.cpp +++ b/Telegram/SourceFiles/calls/calls_instance.cpp @@ -33,6 +33,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/toast/toast.h" #include "base/unixtime.h" #include "mtproto/mtproto_config.h" +#include "boxes/abstract_box.h" // Ui::show(). #include #include diff --git a/Telegram/SourceFiles/core/click_handler_types.cpp b/Telegram/SourceFiles/core/click_handler_types.cpp index f11d771d9..160eaad15 100644 --- a/Telegram/SourceFiles/core/click_handler_types.cpp +++ b/Telegram/SourceFiles/core/click_handler_types.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_user.h" #include "data/data_session.h" #include "window/window_session_controller.h" +#include "boxes/abstract_box.h" // Ui::hideLayer(). #include "facades.h" namespace { diff --git a/Telegram/SourceFiles/data/data_document.cpp b/Telegram/SourceFiles/data/data_document.cpp index 40633a30a..56bb69d9c 100644 --- a/Telegram/SourceFiles/data/data_document.cpp +++ b/Telegram/SourceFiles/data/data_document.cpp @@ -45,6 +45,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "core/application.h" #include "lottie/lottie_animation.h" +#include "boxes/abstract_box.h" // Ui::hideLayer(). #include #include diff --git a/Telegram/SourceFiles/data/data_document_resolver.cpp b/Telegram/SourceFiles/data/data_document_resolver.cpp index 8a8e9cab1..89301357b 100644 --- a/Telegram/SourceFiles/data/data_document_resolver.cpp +++ b/Telegram/SourceFiles/data/data_document_resolver.cpp @@ -25,7 +25,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_file_utilities.h" #include "ui/chat/chat_theme.h" #include "ui/text/text_utilities.h" +#include "ui/widgets/checkbox.h" #include "window/window_session_controller.h" +#include "boxes/abstract_box.h" // Ui::show(). +#include "styles/style_layers.h" #include #include @@ -34,12 +37,38 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL namespace Data { namespace { +void ConfirmDontWarnBox( + not_null box, + rpl::producer &&text, + rpl::producer &&confirm, + Fn callback) { + auto checkbox = object_ptr( + box.get(), + tr::lng_launch_exe_dont_ask(), + false, + st::defaultBoxCheckbox); + const auto weak = Ui::MakeWeak(checkbox.data()); + auto confirmed = crl::guard(weak, [=, callback = std::move(callback)] { + const auto checked = weak->checked(); + box->closeBox(); + callback(checked); + }); + Ui::ConfirmBox(box, { + .text = std::move(text), + .confirmed = std::move(confirmed), + .confirmText = std::move(confirm), + }); + auto padding = st::boxPadding; + padding.setTop(padding.bottom()); + box->addRow(std::move(checkbox), std::move(padding)); +} + void LaunchWithWarning( // not_null controller, const QString &name, HistoryItem *item) { const auto isExecutable = Data::IsExecutableName(name); - const auto isIpReveal = Data::IsIpRevealingName(name); + const auto isIpReveal = true; auto &app = Core::App(); const auto warn = [&] { if (item && item->history()->peer->isVerified()) { @@ -80,9 +109,9 @@ void LaunchWithWarning( rpl::single(Ui::Text::Bold(extension)), Ui::Text::WithEntities) : tr::lng_launch_svg_warning(Ui::Text::WithEntities); - Ui::show(Box( + Ui::show(Box( + ConfirmDontWarnBox, std::move(text), - tr::lng_launch_exe_dont_ask(tr::now), (isExecutable ? tr::lng_launch_exe_sure : tr::lng_continue)(), callback)); } diff --git a/Telegram/SourceFiles/data/stickers/data_stickers.cpp b/Telegram/SourceFiles/data/stickers/data_stickers.cpp index 5c790ab21..e7c76ec05 100644 --- a/Telegram/SourceFiles/data/stickers/data_stickers.cpp +++ b/Telegram/SourceFiles/data/stickers/data_stickers.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/toast/toast.h" #include "ui/image/image_location_factory.h" #include "base/unixtime.h" +#include "boxes/abstract_box.h" // Ui::show(). #include "styles/style_chat_helpers.h" namespace Data { diff --git a/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp b/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp index 5dee830bd..c793114e0 100644 --- a/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp +++ b/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp @@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/platform/base_platform_info.h" #include "base/unixtime.h" #include "base/qt/qt_common_adapters.h" +#include "boxes/abstract_box.h" // Ui::show(). #include "styles/style_export.h" #include "styles/style_layers.h" diff --git a/Telegram/SourceFiles/lang/lang_cloud_manager.cpp b/Telegram/SourceFiles/lang/lang_cloud_manager.cpp index f568c8178..c64945a47 100644 --- a/Telegram/SourceFiles/lang/lang_cloud_manager.cpp +++ b/Telegram/SourceFiles/lang/lang_cloud_manager.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/text/text_utilities.h" #include "core/file_utilities.h" #include "core/click_handler_types.h" +#include "boxes/abstract_box.h" // Ui::hideLayer(). #include "styles/style_layers.h" namespace Lang { diff --git a/Telegram/SourceFiles/settings/settings_calls.cpp b/Telegram/SourceFiles/settings/settings_calls.cpp index 254f50e09..8bda5776c 100644 --- a/Telegram/SourceFiles/settings/settings_calls.cpp +++ b/Telegram/SourceFiles/settings/settings_calls.cpp @@ -35,6 +35,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "webrtc/webrtc_create_adm.h" // Webrtc::Backend. #include "tgcalls/VideoCaptureInterface.h" #include "facades.h" +#include "boxes/abstract_box.h" // Ui::hideLayer(). #include "styles/style_layers.h" namespace Settings { diff --git a/Telegram/SourceFiles/settings/settings_codes.cpp b/Telegram/SourceFiles/settings/settings_codes.cpp index ebef15287..536cdd2c6 100644 --- a/Telegram/SourceFiles/settings/settings_codes.cpp +++ b/Telegram/SourceFiles/settings/settings_codes.cpp @@ -32,6 +32,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_updates.h" #include "base/qt/qt_common_adapters.h" #include "base/custom_app_icon.h" +#include "boxes/abstract_box.h" // Ui::show(). #include "zlib.h" diff --git a/Telegram/SourceFiles/ui/boxes/confirm_box.cpp b/Telegram/SourceFiles/ui/boxes/confirm_box.cpp index 830fc727c..92d3a05e2 100644 --- a/Telegram/SourceFiles/ui/boxes/confirm_box.cpp +++ b/Telegram/SourceFiles/ui/boxes/confirm_box.cpp @@ -8,10 +8,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/boxes/confirm_box.h" #include "lang/lang_keys.h" -#include "ui/widgets/checkbox.h" -#include "ui/wrap/vertical_layout.h" +#include "ui/widgets/buttons.h" #include "styles/style_layers.h" -#include "styles/style_boxes.h" namespace Ui { @@ -86,51 +84,4 @@ object_ptr MakeInformBox(v::text::data text) { }); } -ConfirmDontWarnBox::ConfirmDontWarnBox( - QWidget*, - rpl::producer text, - const QString &checkbox, - rpl::producer confirm, - FnMut callback) -: _confirm(std::move(confirm)) -, _content(setupContent(std::move(text), checkbox, std::move(callback))) { -} - -void ConfirmDontWarnBox::prepare() { - setDimensionsToContent(st::boxWidth, _content); - addButton(std::move(_confirm), [=] { _callback(); }); - addButton(tr::lng_cancel(), [=] { closeBox(); }); -} - -not_null ConfirmDontWarnBox::setupContent( - rpl::producer text, - const QString &checkbox, - FnMut callback) { - const auto result = Ui::CreateChild(this); - result->add( - object_ptr( - result, - std::move(text), - st::boxLabel), - st::boxPadding); - const auto control = result->add( - object_ptr( - result, - checkbox, - false, - st::defaultBoxCheckbox), - style::margins( - st::boxPadding.left(), - st::boxPadding.bottom(), - st::boxPadding.right(), - st::boxPadding.bottom())); - _callback = [=, callback = std::move(callback)]() mutable { - const auto checked = control->checked(); - auto local = std::move(callback); - closeBox(); - local(checked); - }; - return result; -} - } // namespace Ui diff --git a/Telegram/SourceFiles/ui/boxes/confirm_box.h b/Telegram/SourceFiles/ui/boxes/confirm_box.h index f5d79c6db..9a340c7bd 100644 --- a/Telegram/SourceFiles/ui/boxes/confirm_box.h +++ b/Telegram/SourceFiles/ui/boxes/confirm_box.h @@ -7,7 +7,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once -#include "boxes/abstract_box.h" #include "ui/layers/generic_box.h" #include "ui/text/text_variant.h" @@ -44,28 +43,4 @@ void ConfirmBox(not_null box, ConfirmBoxArgs &&args); ConfirmBoxArgs &&args); [[nodiscard]] object_ptr MakeInformBox(v::text::data text); -class ConfirmDontWarnBox : public Ui::BoxContent { -public: - ConfirmDontWarnBox( - QWidget*, - rpl::producer text, - const QString &checkbox, - rpl::producer confirm, - FnMut callback); - -protected: - void prepare() override; - -private: - not_null setupContent( - rpl::producer text, - const QString &checkbox, - FnMut callback); - - rpl::producer _confirm; - FnMut _callback; - not_null _content; - -}; - } // namespace Ui