    range_slider->setSingleStep(1);
    range_slider->setPageStep(60);  // 1 min
    range_slider_action = toolbar->addWidget(range_slider);
  
    reset_zoom_action = toolbar->addAction(utils::icon("zoom-out"), tr("Reset Zoom"));
    qobject_cast<QToolButton*>(toolbar->widgetForAction(reset_zoom_action))->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
  
    remove_all_btn = toolbar->addAction(utils::icon("x"), tr("Remove all charts"));
    dock_btn = toolbar->addAction("");
    main_layout->addWidget(toolbar);
 
</s> remove     // loop in zoommed range
 </s> add     // loop in zoomed range </s> remove void ChartsWidget::zoomIn(double min, double max) {
 </s> add void ChartsWidget::setZoom(double min, double max) {
  undo_zoom_action = toolbar->addAction(utils::icon("arrow-counterclockwise"), tr("Previous zoom"));
  qobject_cast<QToolButton*>(toolbar->widgetForAction(undo_zoom_action))->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

    range_slider->setSingleStep(1);
    range_slider->setPageStep(60);  // 1 min
    range_slider_action = toolbar->addWidget(range_slider);
  
  undo_zoom_action = toolbar->addAction(utils::icon("arrow-counterclockwise"), tr("Previous zoom"));
  qobject_cast<QToolButton*>(toolbar->widgetForAction(undo_zoom_action))->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

    reset_zoom_action = toolbar->addAction(utils::icon("zoom-out"), tr("Reset Zoom"));
    qobject_cast<QToolButton*>(toolbar->widgetForAction(reset_zoom_action))->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
  
    remove_all_btn = toolbar->addAction(utils::icon("x"), tr("Remove all charts"));
    dock_btn = toolbar->addAction("");
    main_layout->addWidget(toolbar);
keep keep keep add keep keep keep keep keep keep
 cabana: go to previous zoom window (#27702)

* cabana: go to previous zoom level

* zoom undo on right click

* catch mousepress event on linux 
tools/cabana/chartswidget.cc