From 8912d4d55aa964329181dabb8ff8016db2e55be0 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 4 Feb 2025 21:46:26 +0400 Subject: [PATCH] Fix weather widget in stories. --- .../media/stories/media_stories_reactions.cpp | 17 +++++++++-------- .../SourceFiles/ui/color_int_conversion.cpp | 6 +++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Telegram/SourceFiles/media/stories/media_stories_reactions.cpp b/Telegram/SourceFiles/media/stories/media_stories_reactions.cpp index 2ac9d29f3..e65443b42 100644 --- a/Telegram/SourceFiles/media/stories/media_stories_reactions.cpp +++ b/Telegram/SourceFiles/media/stories/media_stories_reactions.cpp @@ -576,9 +576,10 @@ void WeatherView::setAreaGeometry(QRect geometry, float64 radius) { const auto diagxdiag = (geometry.width() * geometry.width()) + (geometry.height() * geometry.height()); const auto diag = std::sqrt(diagxdiag); + const auto shift = diag * 2 / 3.; const auto topleft = QRectF(geometry).center() - - QPointF(diag / 2., diag / 2.); - const auto bottomright = topleft + QPointF(diag, diag); + - QPointF(shift, shift); + const auto bottomright = topleft + QPointF(shift, shift) * 2; const auto left = int(std::floor(topleft.x())); const auto top = int(std::floor(topleft.y())); const auto right = int(std::ceil(bottomright.x())); @@ -701,7 +702,7 @@ void WeatherView::cacheBackground() { p.translate(-center); const auto format = [](float64 value) { - return QString::number(int(base::SafeRound(value * 10)) / 10.); + return QString::number(int(base::SafeRound(value))); }; const auto text = [&] { const auto celsius = _data.millicelsius / 1000.; @@ -712,11 +713,11 @@ void WeatherView::cacheBackground() { return format(fahrenheit); }().append(QChar(0xb0)).append(_celsius ? "C" : "F"); const auto metrics = QFontMetrics(_font); - const auto textWidth = metrics.horizontalAdvance(text); - _padding = int(_rect.height() / 6); - const auto fullWidth = (_emoji ? _emojiSize : 0) + const auto textWidth = qCeil(metrics.horizontalAdvance(text)); + _padding = int(_rect.height() / 5); + const auto fullWidth = (_emoji ? (_emojiSize - _padding) : 0) + textWidth - + (2 * _padding); + + (4 * _padding); const auto left = _rect.x() + (_rect.width() - fullWidth) / 2; _wrapped = QRect(left, _rect.y(), fullWidth, _rect.height()); @@ -725,7 +726,7 @@ void WeatherView::cacheBackground() { p.setPen(_fg); p.setFont(_font); p.drawText(_wrapped.marginsRemoved( - { _padding + (_emoji ? _emojiSize : 0), 0, _padding, 0 }), + { 2 * _padding + (_emoji ? (_emojiSize - _padding) : 0), 0, 2 * _padding, 0 }), text, style::al_center); } diff --git a/Telegram/SourceFiles/ui/color_int_conversion.cpp b/Telegram/SourceFiles/ui/color_int_conversion.cpp index 5c9c57f07..b5df1c1c5 100644 --- a/Telegram/SourceFiles/ui/color_int_conversion.cpp +++ b/Telegram/SourceFiles/ui/color_int_conversion.cpp @@ -24,10 +24,10 @@ std::optional MaybeColorFromSerialized(quint32 serialized) { QColor Color32FromSerialized(quint32 serialized) { return QColor( - int((serialized >> 24) & 0xFFU), - int((serialized >> 16) & 0xFFU), + int(serialized & 0xFFU), int((serialized >> 8) & 0xFFU), - int(serialized & 0xFFU)); + int((serialized >> 16) & 0xFFU), + int((serialized >> 24) & 0xFFU)); } } // namespace Ui