Fixed bug of display for y-axis captions with instant delivered data.

This commit is contained in:
23rd 2023-07-14 21:09:55 +03:00 committed by John Preston
parent 64bb818fe9
commit b1ed8cd1b1
2 changed files with 17 additions and 12 deletions

View File

@ -816,7 +816,9 @@ ChartWidget::ChartWidget(not_null<Ui::RpWidget*> parent)
} }
}) { }) {
sizeValue( sizeValue(
) | rpl::start_with_next([=](const QSize &s) { ) | rpl::filter([](const QSize &s) {
return !s.isNull();
}) | rpl::start_with_next([=](const QSize &s) {
const auto filtersHeight = _filterButtons const auto filtersHeight = _filterButtons
? _filterButtons->height() ? _filterButtons->height()
: 0; : 0;
@ -840,6 +842,11 @@ ChartWidget::ChartWidget(not_null<Ui::RpWidget*> parent)
- st::statisticsChartFooterHeight - st::statisticsChartFooterHeight
- filtersHeight - filtersHeight
- st::statisticsChartFooterSkip); - st::statisticsChartFooterSkip);
{
updateChartFullWidth(s.width());
updateBottomDates();
}
}, lifetime()); }, lifetime());
setupChartArea(); setupChartArea();
@ -857,6 +864,11 @@ void ChartWidget::resizeHeight() {
+ (_filterButtons ? _filterButtons->height() : 0)); + (_filterButtons ? _filterButtons->height() : 0));
} }
void ChartWidget::updateChartFullWidth(int w) {
const auto finalXLimits = _animationController.finalXLimits();
_bottomLine.chartFullWidth = w / (finalXLimits.max - finalXLimits.min);
}
QRect ChartWidget::chartAreaRect() const { QRect ChartWidget::chartAreaRect() const {
return _chartArea->rect() return _chartArea->rect()
- QMargins( - QMargins(
@ -971,7 +983,7 @@ void ChartWidget::setupChartArea() {
} }
void ChartWidget::updateBottomDates() { void ChartWidget::updateBottomDates() {
if (!_chartData) { if (!_chartData || !_bottomLine.chartFullWidth) {
return; return;
} }
const auto d = _bottomLine.chartFullWidth * _chartData.oneDayPercentage; const auto d = _bottomLine.chartFullWidth * _chartData.oneDayPercentage;
@ -1079,11 +1091,7 @@ void ChartWidget::setupFooter() {
xPercentageLimits, xPercentageLimits,
_animatedChartLines, _animatedChartLines,
now); now);
{ updateChartFullWidth(_chartArea->width());
const auto finalXLimits = _animationController.finalXLimits();
_bottomLine.chartFullWidth = _chartArea->width()
/ (finalXLimits.max - finalXLimits.min);
}
updateBottomDates(); updateBottomDates();
if ((now - _lastHeightLimitsChanged) < kHeightLimitsUpdateTimeout) { if ((now - _lastHeightLimitsChanged) < kHeightLimitsUpdateTimeout) {
return; return;
@ -1221,11 +1229,7 @@ void ChartWidget::setChartData(Data::StatisticalChart chartData) {
{ _chartData.xPercentage.front(), _chartData.xPercentage.back() }, { _chartData.xPercentage.front(), _chartData.xPercentage.back() },
_animatedChartLines, _animatedChartLines,
0); 0);
{ updateChartFullWidth(_chartArea->width());
const auto finalXLimits = _animationController.finalXLimits();
_bottomLine.chartFullWidth = _chartArea->width()
/ (finalXLimits.max - finalXLimits.min);
}
updateBottomDates(); updateBottomDates();
_animationController.finish(); _animationController.finish();
addHorizontalLine(_animationController.finalHeightLimits(), false); addHorizontalLine(_animationController.finalHeightLimits(), false);

View File

@ -121,6 +121,7 @@ private:
void updateBottomDates(); void updateBottomDates();
void resizeHeight(); void resizeHeight();
void updateChartFullWidth(int w);
const base::unique_qptr<RpMouseWidget> _chartArea; const base::unique_qptr<RpMouseWidget> _chartArea;
const std::unique_ptr<Footer> _footer; const std::unique_ptr<Footer> _footer;