From ec8c634e9c708b0330735fd5528d5d24fec18d36 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sat, 21 Oct 2023 11:14:49 +0300 Subject: [PATCH] Fixed display of arrow on point details widget when no values there. --- .../SourceFiles/statistics/widgets/point_details_widget.cpp | 5 +++-- .../SourceFiles/statistics/widgets/point_details_widget.h | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/statistics/widgets/point_details_widget.cpp b/Telegram/SourceFiles/statistics/widgets/point_details_widget.cpp index c76ed355a0..a9f057543b 100644 --- a/Telegram/SourceFiles/statistics/widgets/point_details_widget.cpp +++ b/Telegram/SourceFiles/statistics/widgets/point_details_widget.cpp @@ -306,7 +306,8 @@ void PointDetailsWidget::setXIndex(int xIndex) { _lines.push_back(std::move(textLine)); } const auto clickable = _zoomEnabled && hasPositiveValues; - setAttribute( + _hasPositiveValues = hasPositiveValues; + QWidget::setAttribute( Qt::WA_TransparentForMouseEvents, !clickable); invalidateCache(); @@ -424,7 +425,7 @@ void PointDetailsWidget::paintEvent(QPaintEvent *e) { line.value.draw(p, valueContext); } - if (_zoomEnabled) { + if (_zoomEnabled && _hasPositiveValues) { const auto s = _arrow.size() / style::DevicePixelRatio(); const auto x = rect::right(_textRect) - s.width(); const auto y = _textRect.y() diff --git a/Telegram/SourceFiles/statistics/widgets/point_details_widget.h b/Telegram/SourceFiles/statistics/widgets/point_details_widget.h index 8b066a5db6..219ef71838 100644 --- a/Telegram/SourceFiles/statistics/widgets/point_details_widget.h +++ b/Telegram/SourceFiles/statistics/widgets/point_details_widget.h @@ -65,6 +65,8 @@ private: float64 alpha = 1.; }; + bool _hasPositiveValues = true; + int _maxPercentageWidth = 0; QRect _innerRect;