Cabana: darken signal backgrounds on hover (#27010)

* darker signal background when hovering

* remove import

* little better
pull/26999/head^2
Shane Smiskol 2 years ago committed by GitHub
parent c1fcd63bba
commit 1c128db8b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      tools/cabana/binaryview.cc
  2. 9
      tools/cabana/signaledit.cc
  3. 1
      tools/cabana/signaledit.h

@ -242,8 +242,9 @@ void BinaryItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &op
painter->fillRect(option.rect, selection_color); painter->fillRect(option.rect, selection_color);
painter->setPen(option.palette.color(QPalette::BrightText)); painter->setPen(option.palette.color(QPalette::BrightText));
} else if (!item->sigs.isEmpty() && (!bin_view->selectionModel()->hasSelection() || !item->sigs.contains(bin_view->resize_sig))) { } else if (!item->sigs.isEmpty() && (!bin_view->selectionModel()->hasSelection() || !item->sigs.contains(bin_view->resize_sig))) {
painter->fillRect(option.rect, item->bg_color); bool sig_hovered = item->sigs.contains(bin_view->hovered_sig);
painter->setPen(item->sigs.contains(bin_view->hovered_sig) ? option.palette.color(QPalette::BrightText) : Qt::black); painter->fillRect(option.rect, sig_hovered ? item->bg_color.darker(125) : item->bg_color); // 4/5x brightness
painter->setPen(sig_hovered ? option.palette.color(QPalette::BrightText) : Qt::black);
} }
painter->drawText(option.rect, Qt::AlignCenter, item->val); painter->drawText(option.rect, Qt::AlignCenter, item->val);

@ -89,6 +89,8 @@ SignalEdit::SignalEdit(int index, QWidget *parent) : form_idx(index), QWidget(pa
main_layout->setContentsMargins(0, 0, 0, 0); main_layout->setContentsMargins(0, 0, 0, 0);
main_layout->setSpacing(0); main_layout->setSpacing(0);
bg_color = QColor(getColor(form_idx));
// title bar // title bar
auto title_bar = new QWidget(this); auto title_bar = new QWidget(this);
title_bar->setFixedHeight(32); title_bar->setFixedHeight(32);
@ -142,7 +144,7 @@ void SignalEdit::setSignal(const QString &message_id, const Signal *signal) {
updateForm(msg_id == message_id && form->isVisible()); updateForm(msg_id == message_id && form->isVisible());
msg_id = message_id; msg_id = message_id;
color_label->setText(QString::number(form_idx + 1)); color_label->setText(QString::number(form_idx + 1));
color_label->setStyleSheet(QString("color:black; background-color:%2").arg(getColor(form_idx))); color_label->setStyleSheet(QString("color:black; background-color:%2").arg(bg_color.name()));
title->setText(sig->name.c_str()); title->setText(sig->name.c_str());
show(); show();
} }
@ -199,8 +201,9 @@ void SignalEdit::updateForm(bool visible) {
} }
void SignalEdit::signalHovered(const Signal *s) { void SignalEdit::signalHovered(const Signal *s) {
auto color = sig == s ? "white" : "black"; auto text_color = sig == s ? "white" : "black";
color_label->setStyleSheet(QString("color:%1; background-color:%2").arg(color).arg(getColor(form_idx))); auto _bg_color = sig == s ? bg_color.darker(125) : bg_color; // 4/5x brightness
color_label->setStyleSheet(QString("color:%1; background-color:%2").arg(text_color).arg(_bg_color.name()));
} }
void SignalEdit::enterEvent(QEvent *event) { void SignalEdit::enterEvent(QEvent *event) {

@ -54,5 +54,6 @@ protected:
QLabel *color_label; QLabel *color_label;
QLabel *icon; QLabel *icon;
int form_idx = 0; int form_idx = 0;
QColor bg_color;
QToolButton *plot_btn; QToolButton *plot_btn;
}; };

Loading…
Cancel
Save