Skip to content

Commit 8f6521d

Browse files
authored
cabana: improve charts toolbar (#27233)
* improve toolbar * add text
1 parent b462463 commit 8f6521d

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

tools/cabana/chartswidget.cc

+11-8
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ ChartsWidget::ChartsWidget(QWidget *parent) : QWidget(parent) {
2222
// toolbar
2323
QToolBar *toolbar = new QToolBar(tr("Charts"), this);
2424
toolbar->setIconSize({16, 16});
25+
toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
2526

2627
QAction *new_plot_btn = toolbar->addAction(utils::icon("file-plus"), "");
2728
new_plot_btn->setToolTip(tr("New Plot"));
@@ -36,17 +37,16 @@ ChartsWidget::ChartsWidget(QWidget *parent) : QWidget(parent) {
3637
stretch_label->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
3738
toolbar->addWidget(stretch_label);
3839

39-
toolbar->addWidget(new QLabel(tr("Range:")));
40-
toolbar->addWidget(range_lb = new QLabel(this));
40+
range_lb_action = toolbar->addWidget(range_lb = new QLabel(this));
4141
range_slider = new QSlider(Qt::Horizontal, this);
4242
range_slider->setToolTip(tr("Set the chart range"));
4343
range_slider->setRange(1, settings.max_cached_minutes * 60);
4444
range_slider->setSingleStep(1);
4545
range_slider->setPageStep(60); // 1 min
46-
toolbar->addWidget(range_slider);
46+
range_slider_action = toolbar->addWidget(range_slider);
4747

4848
reset_zoom_btn = toolbar->addAction(utils::icon("zoom-out"), "");
49-
reset_zoom_btn->setToolTip(tr("Reset zoom (drag on chart to zoom X-Axis)"));
49+
reset_zoom_btn->setToolTip(tr("Reset zoom"));
5050
remove_all_btn = toolbar->addAction(utils::icon("x"), "");
5151
remove_all_btn->setToolTip(tr("Remove all charts"));
5252
dock_btn = toolbar->addAction("");
@@ -159,12 +159,15 @@ void ChartsWidget::setMaxChartRange(int value) {
159159
}
160160

161161
void ChartsWidget::updateToolBar() {
162-
range_lb->setText(QString(" %1:%2 ").arg(max_chart_range / 60, 2, 10, QLatin1Char('0')).arg(max_chart_range % 60, 2, 10, QLatin1Char('0')));
163162
title_label->setText(tr("Charts: %1").arg(charts.size()));
164-
dock_btn->setIcon(utils::icon(docking ? "arrow-up-right" : "arrow-down-left"));
165-
dock_btn->setToolTip(docking ? tr("Undock charts") : tr("Dock charts"));
163+
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')));
164+
range_lb_action->setVisible(!is_zoomed);
165+
range_slider_action->setVisible(!is_zoomed);
166+
reset_zoom_btn->setVisible(is_zoomed);
167+
reset_zoom_btn->setText(is_zoomed ? tr("Zoomin: %1-%2").arg(zoomed_range.first, 0, 'f', 2).arg(zoomed_range.second, 0, 'f', 2) : "");
166168
remove_all_btn->setEnabled(!charts.isEmpty());
167-
reset_zoom_btn->setEnabled(is_zoomed);
169+
dock_btn->setIcon(utils::icon(docking ? "arrow-up-right-square" : "arrow-down-left-square"));
170+
dock_btn->setToolTip(docking ? tr("Undock charts") : tr("Dock charts"));
168171
}
169172

170173
void ChartsWidget::settingChanged() {

tools/cabana/chartswidget.h

+2
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ public slots:
134134
QLabel *title_label;
135135
QLabel *range_lb;
136136
QSlider *range_slider;
137+
QAction *range_lb_action;
138+
QAction *range_slider_action;
137139
bool docking = true;
138140
QAction *dock_btn;
139141
QAction *reset_zoom_btn;

0 commit comments

Comments
 (0)