      auto items = dlg.seletedItems();
      for (auto s : items) {
        addSeries(s->msg_id, s->sig);
      }
      removeIf([&](auto &s) {
        return std::none_of(items.cbegin(), items.cend(), [&](auto &it) { return s.msg_id == it->msg_id && s.sig == it->sig; });
      });
    }
  }
  
  void ChartView::resizeEvent(QResizeEvent *event) {
    updatePlotArea(align_to);
    int top_margin = style()->pixelMetric(QStyle::PM_LayoutTopMargin);
    int spacing = style()->pixelMetric(QStyle::PM_LayoutHorizontalSpacing);
    int x = event->size().width() - close_btn_proxy->size().width() - style()->pixelMetric(QStyle::PM_LayoutRightMargin);
    close_btn_proxy->setPos(x, top_margin);
    manage_btn_proxy->setPos(x - manage_btn_proxy->size().width() - spacing, top_margin);
    move_icon->setPos(style()->pixelMetric(QStyle::PM_LayoutLeftMargin), top_margin);
    QChartView::resizeEvent(event);
  }
  
 
</s> remove     updateTitle();
}

void ChartView::manageSeries() {
  SeriesSelector dlg(tr("Mange Chart"), this);
  for (auto &s : sigs) {
 </s> add  </s> remove void ChartView::signalRemoved(const Signal *sig) {
  for (auto it = sigs.begin(); it != sigs.end(); /**/) {
    it = (it->sig == sig) ? removeItem(it) : ++it;
  }
}

 </s> add  </s> remove   return ret;
 </s> add 
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
      auto items = dlg.seletedItems();
      for (auto s : items) {
        addSeries(s->msg_id, s->sig);
      }
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    for (auto s : items) {
      addSeries(s->msg_id, s->sig);
    manage_btn_proxy->setPos(x - manage_btn_proxy->size().width() - spacing, top_margin);
    move_icon->setPos(style()->pixelMetric(QStyle::PM_LayoutLeftMargin), top_margin);
    QChartView::resizeEvent(event);
  }
  
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 cabana: cleanup code for charts (#27350) 
tools/cabana/chartswidget.cc