mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-07-09 06:52:05 +08:00
cabana: fix chart background issue in live mode (#27793)
* fix background * Update tools/cabana/chartswidget.cc --------- Co-authored-by: Shane Smiskol <shane@smiskol.com>
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user