  
  // ChartWidget
  
  ChartWidget::ChartWidget(const QString &id, const QString &sig_name, QWidget *parent) : id(id), sig_name(sig_name), QWidget(parent) {
    QStackedLayout *stacked = new QStackedLayout(this);
    stacked->setStackingMode(QStackedLayout::StackAll);
  
    QWidget *chart_widget = new QWidget(this);
    QVBoxLayout *chart_layout = new QVBoxLayout(chart_widget);
    chart_layout->setSpacing(0);
    chart_layout->setContentsMargins(0, 0, 0, 0);
 
</s> remove   chart_view = new ChartView(chart);
  chart_view->setFixedHeight(300);
  chart_view->setRenderHint(QPainter::Antialiasing);
  chart_view->setRubberBand(QChartView::HorizontalRubberBand);
  if (auto rubber = chart_view->findChild<QRubberBand *>()) {
 </s> add   track_line = new QGraphicsLineItem(chart);
  track_line->setPen(QPen(Qt::gray, 1, Qt::DashLine));
  value_text = new QGraphicsSimpleTextItem(chart);
  value_text->setBrush(Qt::gray);
  line_marker = new QGraphicsLineItem(chart);
  line_marker->setPen(QPen(Qt::black, 2));

  setChart(chart);

  setRenderHint(QPainter::Antialiasing);
  setRubberBand(QChartView::HorizontalRubberBand);
  if (auto rubber = findChild<QRubberBand *>()) { </s> remove   LineMarker(QWidget *parent) : QWidget(parent) {}
  void setX(double x);
 </s> add   ChartView(const QString &id, const QString &sig_name, QWidget *parent = nullptr); </s> remove   chart_layout->addWidget(chart_view);
  chart_layout->addStretch();
 </s> add  </s> remove public:
  ChartView(QChart *chart, QWidget *parent = nullptr) : QChartView(chart, parent) {}
  void mouseReleaseEvent(QMouseEvent *event) override;
 </s> add   QGraphicsLineItem *track_line;
  QGraphicsSimpleTextItem *value_text;
  QGraphicsLineItem *line_marker;
  QList<QPointF> vals;
  QString id;
  QString sig_name;
  QVBoxLayout *main_layout = new QVBoxLayout(this);
  
  // ChartWidget
  
  ChartWidget::ChartWidget(const QString &id, const QString &sig_name, QWidget *parent) : id(id), sig_name(sig_name), QWidget(parent) {
  QVBoxLayout *main_layout = new QVBoxLayout(this);
  QVBoxLayout *main_layout = new QVBoxLayout(this);
  
    QWidget *chart_widget = new QWidget(this);
    QVBoxLayout *chart_layout = new QVBoxLayout(chart_widget);
    chart_layout->setSpacing(0);
    chart_layout->setContentsMargins(0, 0, 0, 0);
keep keep keep keep replace replace keep keep keep keep keep
 Cabana: display the (x,y) values while MouseMove on the chart (#26064) 
tools/cabana/chartswidget.cc