diff --git a/Telegram/SourceFiles/statistics/statistics_data_deserialize.cpp b/Telegram/SourceFiles/statistics/statistics_data_deserialize.cpp index b4dafe9e09..96234faf57 100644 --- a/Telegram/SourceFiles/statistics/statistics_data_deserialize.cpp +++ b/Telegram/SourceFiles/statistics/statistics_data_deserialize.cpp @@ -80,6 +80,13 @@ Data::StatisticalChart StatisticalChartFromJSON(const QByteArray &json) { } result.measure(); } + if (result.maxValue == result.minValue) { + if (result.minValue) { + result.minValue = 0; + } else { + result.maxValue = 1; + } + } { const auto subchart = root.value(u"subchart"_q).toObject(); diff --git a/Telegram/SourceFiles/statistics/view/linear_chart_view.cpp b/Telegram/SourceFiles/statistics/view/linear_chart_view.cpp index e0474bf0aa..e89be9177c 100644 --- a/Telegram/SourceFiles/statistics/view/linear_chart_view.cpp +++ b/Telegram/SourceFiles/statistics/view/linear_chart_view.cpp @@ -256,6 +256,10 @@ AbstractChartView::HeightLimits LinearChartView::heightLimits( maxValueFull = std::max(int(l.maxValue * r), maxValueFull); minValueFull = std::min(int(l.minValue * r), minValueFull); } + if (maxValue == minValue) { + maxValue = chartData.maxValue; + minValue = chartData.minValue; + } return { .full = Limits{ float64(minValueFull), float64(maxValueFull) }, .ranged = Limits{ float64(minValue), float64(maxValue) }, diff --git a/Telegram/SourceFiles/statistics/view/stack_chart_view.cpp b/Telegram/SourceFiles/statistics/view/stack_chart_view.cpp index 2a3a21898f..d6a93914b7 100644 --- a/Telegram/SourceFiles/statistics/view/stack_chart_view.cpp +++ b/Telegram/SourceFiles/statistics/view/stack_chart_view.cpp @@ -167,9 +167,11 @@ AbstractChartView::HeightLimits StackChartView::heightLimits( _cachedHeightLimits.ySum); _cachedHeightLimits.full = { 0., float64(maxValueFull) }; } - const auto max = _cachedHeightLimits.ySumSegmentTree.rMaxQ( - xIndices.min, - xIndices.max); + const auto max = std::max( + _cachedHeightLimits.ySumSegmentTree.rMaxQ( + xIndices.min, + xIndices.max), + 1); return { .full = _cachedHeightLimits.full, .ranged = { 0., float64(max) },