cabana: improve charts toolbar (#27233)

* improve toolbar

* add text
pull/27241/head
Dean Lee 2 years ago committed by GitHub
parent b462463fbf
commit 8f6521ded3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      tools/cabana/chartswidget.cc
  2. 2
      tools/cabana/chartswidget.h

@ -22,6 +22,7 @@ ChartsWidget::ChartsWidget(QWidget *parent) : QWidget(parent) {
// toolbar // toolbar
QToolBar *toolbar = new QToolBar(tr("Charts"), this); QToolBar *toolbar = new QToolBar(tr("Charts"), this);
toolbar->setIconSize({16, 16}); toolbar->setIconSize({16, 16});
toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
QAction *new_plot_btn = toolbar->addAction(utils::icon("file-plus"), ""); QAction *new_plot_btn = toolbar->addAction(utils::icon("file-plus"), "");
new_plot_btn->setToolTip(tr("New Plot")); new_plot_btn->setToolTip(tr("New Plot"));
@ -36,17 +37,16 @@ ChartsWidget::ChartsWidget(QWidget *parent) : QWidget(parent) {
stretch_label->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); stretch_label->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
toolbar->addWidget(stretch_label); toolbar->addWidget(stretch_label);
toolbar->addWidget(new QLabel(tr("Range:"))); range_lb_action = toolbar->addWidget(range_lb = new QLabel(this));
toolbar->addWidget(range_lb = new QLabel(this));
range_slider = new QSlider(Qt::Horizontal, this); range_slider = new QSlider(Qt::Horizontal, this);
range_slider->setToolTip(tr("Set the chart range")); range_slider->setToolTip(tr("Set the chart range"));
range_slider->setRange(1, settings.max_cached_minutes * 60); range_slider->setRange(1, settings.max_cached_minutes * 60);
range_slider->setSingleStep(1); range_slider->setSingleStep(1);
range_slider->setPageStep(60); // 1 min range_slider->setPageStep(60); // 1 min
toolbar->addWidget(range_slider); range_slider_action = toolbar->addWidget(range_slider);
reset_zoom_btn = toolbar->addAction(utils::icon("zoom-out"), ""); reset_zoom_btn = toolbar->addAction(utils::icon("zoom-out"), "");
reset_zoom_btn->setToolTip(tr("Reset zoom (drag on chart to zoom X-Axis)")); reset_zoom_btn->setToolTip(tr("Reset zoom"));
remove_all_btn = toolbar->addAction(utils::icon("x"), ""); remove_all_btn = toolbar->addAction(utils::icon("x"), "");
remove_all_btn->setToolTip(tr("Remove all charts")); remove_all_btn->setToolTip(tr("Remove all charts"));
dock_btn = toolbar->addAction(""); dock_btn = toolbar->addAction("");
@ -159,12 +159,15 @@ void ChartsWidget::setMaxChartRange(int value) {
} }
void ChartsWidget::updateToolBar() { void ChartsWidget::updateToolBar() {
range_lb->setText(QString(" %1:%2 ").arg(max_chart_range / 60, 2, 10, QLatin1Char('0')).arg(max_chart_range % 60, 2, 10, QLatin1Char('0')));
title_label->setText(tr("Charts: %1").arg(charts.size())); title_label->setText(tr("Charts: %1").arg(charts.size()));
dock_btn->setIcon(utils::icon(docking ? "arrow-up-right" : "arrow-down-left")); range_lb->setText(QString("Range: %1:%2 ").arg(max_chart_range / 60, 2, 10, QLatin1Char('0')).arg(max_chart_range % 60, 2, 10, QLatin1Char('0')));
dock_btn->setToolTip(docking ? tr("Undock charts") : tr("Dock charts")); range_lb_action->setVisible(!is_zoomed);
range_slider_action->setVisible(!is_zoomed);
reset_zoom_btn->setVisible(is_zoomed);
reset_zoom_btn->setText(is_zoomed ? tr("Zoomin: %1-%2").arg(zoomed_range.first, 0, 'f', 2).arg(zoomed_range.second, 0, 'f', 2) : "");
remove_all_btn->setEnabled(!charts.isEmpty()); remove_all_btn->setEnabled(!charts.isEmpty());
reset_zoom_btn->setEnabled(is_zoomed); dock_btn->setIcon(utils::icon(docking ? "arrow-up-right-square" : "arrow-down-left-square"));
dock_btn->setToolTip(docking ? tr("Undock charts") : tr("Dock charts"));
} }
void ChartsWidget::settingChanged() { void ChartsWidget::settingChanged() {

@ -134,6 +134,8 @@ private:
QLabel *title_label; QLabel *title_label;
QLabel *range_lb; QLabel *range_lb;
QSlider *range_slider; QSlider *range_slider;
QAction *range_lb_action;
QAction *range_slider_action;
bool docking = true; bool docking = true;
QAction *dock_btn; QAction *dock_btn;
QAction *reset_zoom_btn; QAction *reset_zoom_btn;

Loading…
Cancel
Save