Skip to content

Commit d280f34

Browse files
committed
replace hardcoded margins, colors, spacing
1 parent 608ac25 commit d280f34

File tree

5 files changed

+33
-19
lines changed

5 files changed

+33
-19
lines changed

tools/cabana/binaryview.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ void BinaryItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &op
375375
bg.setAlpha(std::max(50, bg.alpha()));
376376
}
377377
painter->fillRect(option.rect, bg);
378-
painter->setPen(Qt::black);
378+
painter->setPen(option.palette.color(QPalette::Text));
379379
}
380380
}
381381

tools/cabana/chartswidget.cc

+12-9
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,12 @@ ChartsWidget::ChartsWidget(QWidget *parent) : QFrame(parent) {
2525

2626
// toolbar
2727
QToolBar *toolbar = new QToolBar(tr("Charts"), this);
28-
toolbar->setIconSize({16, 16});
28+
int icon_size = style()->pixelMetric(QStyle::PM_SmallIconSize);
29+
toolbar->setIconSize({icon_size, icon_size});
2930

3031
QAction *new_plot_btn = toolbar->addAction(utils::icon("file-plus"), tr("New Plot"));
3132
toolbar->addWidget(title_label = new QLabel());
32-
title_label->setContentsMargins(0, 0, 12, 0);
33+
title_label->setContentsMargins(0, 0, style()->pixelMetric(QStyle::PM_LayoutHorizontalSpacing), 0);
3334

3435
QMenu *menu = new QMenu(this);
3536
for (int i = 0; i < MAX_COLUMN_COUNT; ++i) {
@@ -77,8 +78,8 @@ ChartsWidget::ChartsWidget(QWidget *parent) : QFrame(parent) {
7778
main_layout->addWidget(charts_scroll);
7879

7980
// init settings
80-
use_dark_theme = QApplication::style()->standardPalette().color(QPalette::WindowText).value() >
81-
QApplication::style()->standardPalette().color(QPalette::Background).value();
81+
use_dark_theme = QApplication::palette().color(QPalette::WindowText).value() >
82+
QApplication::palette().color(QPalette::Background).value();
8283
column_count = std::clamp(settings.chart_column_count, 1, MAX_COLUMN_COUNT);
8384
max_chart_range = std::clamp(settings.chart_range, 1, settings.max_cached_minutes * 60);
8485
display_range = {0, max_chart_range};
@@ -322,7 +323,7 @@ ChartView::ChartView(QWidget *parent) : QChartView(nullptr, parent) {
322323
chart->setMargins({0, 0, 0, 0});
323324

324325
background = new QGraphicsRectItem(chart);
325-
background->setBrush(Qt::white);
326+
background->setBrush(QApplication::palette().color(QPalette::Base));
326327
background->setPen(Qt::NoPen);
327328
background->setZValue(chart->zValue() - 1);
328329

@@ -443,10 +444,12 @@ void ChartView::manageSeries() {
443444

444445
void ChartView::resizeEvent(QResizeEvent *event) {
445446
updatePlotArea(align_to);
446-
int x = event->size().width() - close_btn_proxy->size().width() - 11;
447-
close_btn_proxy->setPos(x, 8);
448-
manage_btn_proxy->setPos(x - manage_btn_proxy->size().width() - 5, 8);
449-
move_icon->setPos(11, 8);
447+
int top_margin = style()->pixelMetric(QStyle::PM_LayoutTopMargin);
448+
int spacing = style()->pixelMetric(QStyle::PM_LayoutHorizontalSpacing);
449+
int x = event->size().width() - close_btn_proxy->size().width() - style()->pixelMetric(QStyle::PM_LayoutRightMargin);
450+
close_btn_proxy->setPos(x, top_margin);
451+
manage_btn_proxy->setPos(x - manage_btn_proxy->size().width() - spacing, top_margin);
452+
move_icon->setPos(style()->pixelMetric(QStyle::PM_LayoutLeftMargin), top_margin);
450453
QChartView::resizeEvent(event);
451454
}
452455

tools/cabana/mainwin.cc

+5
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ MainWindow::MainWindow() : QMainWindow() {
5858
fingerprint_to_dbc = QJsonDocument::fromJson(json_file.readAll());
5959
}
6060

61+
setStyleSheet(QString(R"(QMainWindow::separator {
62+
width: %1px; /* when vertical */
63+
height: %1px; /* when horizontal */
64+
})").arg(style()->pixelMetric(QStyle::PM_SplitterWidth)));
65+
6166
QObject::connect(this, &MainWindow::showMessage, statusBar(), &QStatusBar::showMessage);
6267
QObject::connect(this, &MainWindow::updateProgressBar, this, &MainWindow::updateDownloadProgress);
6368
QObject::connect(messages_widget, &MessagesWidget::msgSelectionChanged, center_widget, &CenterWidget::setMessage);

tools/cabana/signaledit.cc

+13-7
Original file line numberDiff line numberDiff line change
@@ -322,19 +322,22 @@ void SignalItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &op
322322

323323
// color label
324324
auto bg_color = getColor(item->sig);
325-
QRect rc{option.rect.left(), option.rect.top(), color_label_width, option.rect.height()};
325+
int h_margin = option.widget->style()->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1;
326+
int v_margin = option.widget->style()->pixelMetric(QStyle::PM_FocusFrameVMargin);
327+
QRect rc{option.rect.left() + h_margin, option.rect.top(), color_label_width, option.rect.height()};
326328
painter->setPen(Qt::NoPen);
327329
painter->setBrush(item->highlight ? bg_color.darker(125) : bg_color);
328-
painter->drawRoundedRect(rc.adjusted(0, 2, 0, -2), 3, 3);
330+
painter->drawRoundedRect(rc.adjusted(0, v_margin, 0, -v_margin), 3, 3);
329331
painter->setPen(item->highlight ? Qt::white : Qt::black);
330332
painter->setFont(small_font);
331333
painter->drawText(rc, Qt::AlignCenter, QString::number(item->row() + 1));
332334

333335
// signal name
334336
painter->setFont(option.font);
335-
painter->setPen((option.state & QStyle::State_Selected ? option.palette.highlightedText() : option.palette.text()).color());
337+
painter->setPen(option.palette.color(option.state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Text));
336338
QString text = index.data(Qt::DisplayRole).toString();
337-
QRect text_rect = option.rect.adjusted(rc.width() + 6, 0, 0, 0);
339+
QRect text_rect = option.rect;
340+
text_rect.setLeft(rc.right() + h_margin * 2);
338341
text = painter->fontMetrics().elidedText(text, Qt::ElideRight, text_rect.width());
339342
painter->drawText(text_rect, option.displayAlignment, text);
340343
painter->restore();
@@ -343,7 +346,7 @@ void SignalItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &op
343346
if (option.state & QStyle::State_Selected) {
344347
painter->fillRect(option.rect, option.palette.highlight());
345348
}
346-
painter->setPen((option.state & QStyle::State_Selected ? option.palette.highlightedText() : option.palette.text()).color());
349+
painter->setPen(option.palette.color(option.state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Text));
347350
QRect rc = option.rect.adjusted(0, 0, -70, 0);
348351
auto text = painter->fontMetrics().elidedText(index.data(Qt::DisplayRole).toString(), Qt::ElideRight, rc.width());
349352
painter->drawText(rc, Qt::AlignRight | Qt::AlignVCenter, text);
@@ -442,8 +445,11 @@ void SignalView::rowsChanged() {
442445
if (!tree->indexWidget(index)) {
443446
QWidget *w = new QWidget(this);
444447
QHBoxLayout *h = new QHBoxLayout(w);
445-
h->setContentsMargins(0, 2, 0, 2);
446-
h->addStretch(1);
448+
int v_margin = style()->pixelMetric(QStyle::PM_FocusFrameVMargin);
449+
int h_margin = style()->pixelMetric(QStyle::PM_FocusFrameHMargin);
450+
h->setContentsMargins(0, v_margin, -h_margin, v_margin);
451+
h->setSpacing(style()->pixelMetric(QStyle::PM_ToolBarItemSpacing));
452+
h->addStretch(0);
447453

448454
auto remove_btn = toolButton("x", tr("Remove signal"));
449455
auto plot_btn = toolButton("graph-up", "");

tools/cabana/util.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ QValidator::State NameValidator::validate(QString &input, int &pos) const {
114114

115115
namespace utils {
116116
QPixmap icon(const QString &id) {
117-
static bool dark_theme = QApplication::style()->standardPalette().color(QPalette::WindowText).value() >
118-
QApplication::style()->standardPalette().color(QPalette::Background).value();
117+
static bool dark_theme = QApplication::palette().color(QPalette::WindowText).value() >
118+
QApplication::palette().color(QPalette::Background).value();
119119
QPixmap pm;
120120
QString key = "bootstrap_" % id % (dark_theme ? "1" : "0");
121121
if (!QPixmapCache::find(key, &pm)) {

0 commit comments

Comments
 (0)