mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-06-21 22:12:05 +08:00
cabana: small improvements to charts (#27140)
* cabana: small improvements to charts toolbar * show column count when wide enough * call setspacing * set in same place * remove call to updateToolBar()
This commit is contained in:
@@ -30,8 +30,8 @@ ChartsWidget::ChartsWidget(QWidget *parent) : QWidget(parent) {
|
||||
title_label->setContentsMargins(0, 0, 12, 0);
|
||||
columns_cb = new QComboBox(this);
|
||||
columns_cb->addItems({"1", "2", "3", "4"});
|
||||
toolbar->addWidget(new QLabel(tr("Columns:")));
|
||||
toolbar->addWidget(columns_cb);
|
||||
columns_lb_action = toolbar->addWidget(new QLabel(tr("Columns:")));
|
||||
columns_cb_action = toolbar->addWidget(columns_cb);
|
||||
|
||||
QLabel *stretch_label = new QLabel(this);
|
||||
stretch_label->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
@@ -46,8 +46,7 @@ ChartsWidget::ChartsWidget(QWidget *parent) : QWidget(parent) {
|
||||
range_slider->setPageStep(60); // 1 min
|
||||
toolbar->addWidget(range_slider);
|
||||
|
||||
toolbar->addWidget(zoom_range_lb = new QLabel());
|
||||
reset_zoom_btn = toolbar->addAction(bootstrapPixmap("arrow-counterclockwise"), "");
|
||||
reset_zoom_btn = toolbar->addAction(bootstrapPixmap("zoom-out"), "");
|
||||
reset_zoom_btn->setToolTip(tr("Reset zoom (drag on chart to zoom X-Axis)"));
|
||||
remove_all_btn = toolbar->addAction(bootstrapPixmap("x"), "");
|
||||
remove_all_btn->setToolTip(tr("Remove all charts"));
|
||||
@@ -55,10 +54,13 @@ ChartsWidget::ChartsWidget(QWidget *parent) : QWidget(parent) {
|
||||
main_layout->addWidget(toolbar);
|
||||
|
||||
// charts
|
||||
charts_layout = new QGridLayout();
|
||||
charts_layout->setSpacing(10);
|
||||
|
||||
QWidget *charts_container = new QWidget(this);
|
||||
QVBoxLayout *charts_main_layout = new QVBoxLayout(charts_container);
|
||||
charts_main_layout->setContentsMargins(0, 0, 0, 0);
|
||||
charts_main_layout->addLayout(charts_layout = new QGridLayout);
|
||||
charts_main_layout->addLayout(charts_layout);
|
||||
charts_main_layout->addStretch(0);
|
||||
|
||||
QScrollArea *charts_scroll = new QScrollArea(this);
|
||||
@@ -167,7 +169,6 @@ void ChartsWidget::setMaxChartRange(int value) {
|
||||
|
||||
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')));
|
||||
zoom_range_lb->setText(is_zoomed ? tr("Zooming: %1 - %2").arg(zoomed_range.first, 0, 'f', 2).arg(zoomed_range.second, 0, 'f', 2) : "");
|
||||
title_label->setText(tr("Charts: %1").arg(charts.size()));
|
||||
dock_btn->setIcon(bootstrapPixmap(docking ? "arrow-up-right" : "arrow-down-left"));
|
||||
dock_btn->setToolTip(docking ? tr("Undock charts") : tr("Dock charts"));
|
||||
@@ -230,8 +231,13 @@ void ChartsWidget::setColumnCount(int n) {
|
||||
void ChartsWidget::updateLayout() {
|
||||
int n = column_count;
|
||||
for (; n > 1; --n) {
|
||||
if ((n * (CHART_MIN_WIDTH + charts_layout->spacing())) < rect().width()) break;
|
||||
if ((n * CHART_MIN_WIDTH + (n - 1) * charts_layout->spacing()) < charts_layout->geometry().width()) break;
|
||||
}
|
||||
|
||||
bool show_column_cb = n > 1;
|
||||
columns_lb_action->setVisible(show_column_cb);
|
||||
columns_cb_action->setVisible(show_column_cb);
|
||||
|
||||
for (int i = 0; i < charts.size(); ++i) {
|
||||
charts_layout->addWidget(charts[charts.size() - i - 1], i / n, i % n);
|
||||
}
|
||||
|
||||
@@ -116,7 +116,6 @@ private:
|
||||
ChartView *findChart(const QString &id, const Signal *sig);
|
||||
|
||||
QLabel *title_label;
|
||||
QLabel *zoom_range_lb;
|
||||
QLabel *range_lb;
|
||||
QSlider *range_slider;
|
||||
bool docking = true;
|
||||
@@ -131,6 +130,8 @@ private:
|
||||
std::pair<double, double> display_range;
|
||||
std::pair<double, double> zoomed_range;
|
||||
bool use_dark_theme = false;
|
||||
QAction *columns_lb_action;
|
||||
QAction *columns_cb_action;
|
||||
QComboBox *columns_cb;
|
||||
int column_count = 1;
|
||||
const int CHART_MIN_WIDTH = 300;
|
||||
|
||||
Reference in New Issue
Block a user