cabana: fix chart background issue in live mode (#27793)

* fix background

* Update tools/cabana/chartswidget.cc

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: ea91532ac1
vw-mqb-aeb
Dean Lee 2 years ago committed by GitHub
parent 07c2eb11a9
commit ca1fe711af
  1. 9
      tools/cabana/chartswidget.cc
  2. 1
      tools/cabana/chartswidget.h

@ -358,6 +358,7 @@ bool ChartsWidget::event(QEvent *event) {
case QEvent::WindowDeactivate:
case QEvent::FocusIn:
case QEvent::FocusOut:
case QEvent::Leave:
showValueTip(-1);
break;
default:
@ -618,7 +619,7 @@ void ChartView::updateSeries(const cabana::Signal *sig) {
}
}
updateAxisY();
resetChartCache();
chart_pixmap = QPixmap();
}
// auto zoom on yaxis
@ -874,9 +875,9 @@ void ChartView::paintEvent(QPaintEvent *event) {
const qreal dpr = viewport()->devicePixelRatioF();
chart_pixmap = QPixmap(viewport()->size() * dpr);
chart_pixmap.setDevicePixelRatio(dpr);
chart_pixmap.fill(palette().color(QPalette::Base));
QPainter p(&chart_pixmap);
p.setRenderHints(QPainter::Antialiasing);
drawBackground(&p, viewport()->rect());
scene()->setSceneRect(viewport()->rect());
scene()->render(&p);
}
@ -891,6 +892,10 @@ void ChartView::paintEvent(QPaintEvent *event) {
}
}
void ChartView::drawBackground(QPainter *painter, const QRectF &rect) {
painter->fillRect(rect, palette().color(QPalette::Base));
}
void ChartView::drawForeground(QPainter *painter, const QRectF &rect) {
// draw time line
qreal x = chart()->mapToPosition(QPointF{cur_sec, 0}).x();

@ -91,6 +91,7 @@ private:
void resetChartCache();
void paintEvent(QPaintEvent *event) override;
void drawForeground(QPainter *painter, const QRectF &rect) override;
void drawBackground(QPainter *painter, const QRectF &rect) override;
std::tuple<double, double, int> getNiceAxisNumbers(qreal min, qreal max, int tick_count);
qreal niceNumber(qreal x, bool ceiling);
QXYSeries *createSeries(SeriesType type, QColor color);

Loading…
Cancel
Save