From 7356179308f98a709aeebcdf94138df63a4df38a Mon Sep 17 00:00:00 2001 From: RadRussianRus Date: Fri, 24 Apr 2020 17:25:02 +0300 Subject: [PATCH] Show poll explanation in box --- .../history/view/media/history_view_poll.cpp | 23 +++++++++++-------- .../history/view/media/history_view_poll.h | 2 +- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Telegram/SourceFiles/history/view/media/history_view_poll.cpp b/Telegram/SourceFiles/history/view/media/history_view_poll.cpp index 4a806da51..b1d542ec0 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_poll.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_poll.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/ripple_animation.h" #include "ui/effects/fireworks_animation.h" #include "ui/toast/toast.h" +#include "kotato/boxes/confirm_box.h" #include "data/data_media_types.h" #include "data/data_poll.h" #include "data/data_user.h" @@ -442,17 +443,21 @@ void Poll::checkQuizAnswered() { } } -void Poll::showSolution() const { +void Poll::showSolution(bool inBox) const { if (_poll->solution.text.isEmpty()) { return; } - auto config = Ui::Toast::Config(); - config.multiline = config.dark = true; - config.minWidth = st::msgMinWidth; - config.maxWidth = st::windowMinWidth; - config.text = _poll->solution; - config.durationMs = CountToastDuration(config.text); - Ui::Toast::Show(config); + if (inBox) { + Ui::show(Box(_poll->solution)); + } else { + auto config = Ui::Toast::Config(); + config.multiline = config.dark = true; + config.minWidth = st::msgMinWidth; + config.maxWidth = st::windowMinWidth; + config.text = _poll->solution; + config.durationMs = CountToastDuration(config.text); + Ui::Toast::Show(config); + } } void Poll::updateRecentVoters() { @@ -953,7 +958,7 @@ void Poll::paintShowSolution( } if (!_showSolutionLink) { _showSolutionLink = std::make_shared( - crl::guard(this, [=] { showSolution(); })); + crl::guard(this, [=] { showSolution(true); })); } const auto outbg = _parent->hasOutLayout(); const auto &icon = (selection == FullSelection) diff --git a/Telegram/SourceFiles/history/view/media/history_view_poll.h b/Telegram/SourceFiles/history/view/media/history_view_poll.h index 28d19d80b..7c46461e7 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_poll.h +++ b/Telegram/SourceFiles/history/view/media/history_view_poll.h @@ -165,7 +165,7 @@ private: void sendMultiOptions(); void showResults(); void checkQuizAnswered(); - void showSolution() const; + void showSolution(bool inBox = false) const; [[nodiscard]] bool canShowSolution() const; [[nodiscard]] bool inShowSolution(