UI: adjust opacity instead of visibility to indicate engageability (#28765)

This commit is contained in:
Adeeb Shihadeh
2023-06-30 19:18:35 -07:00
committed by GitHub
parent a66135665c
commit 010ef17da5
2 changed files with 6 additions and 5 deletions
+5 -5
View File
@@ -199,7 +199,6 @@ void OnroadAlerts::paintEvent(QPaintEvent *event) {
// ExperimentalButton
ExperimentalButton::ExperimentalButton(QWidget *parent) : experimental_mode(false), QPushButton(parent) {
setVisible(false);
setFixedSize(btn_size, btn_size);
params = Params();
@@ -217,10 +216,11 @@ void ExperimentalButton::changeMode() {
}
void ExperimentalButton::updateState(const UIState &s) {
// button is "visible" if engageable or enabled
const auto cs = (*s.sm)["controlsState"].getControlsState();
setVisible(cs.getEngageable() || cs.getEnabled());
if (std::exchange(experimental_mode, cs.getExperimentalMode()) != experimental_mode) {
bool eng = cs.getEngageable() || cs.getEnabled();
if ((cs.getExperimentalMode() != experimental_mode) || (eng != engageable)) {
engageable = eng;
experimental_mode = cs.getExperimentalMode();
update();
}
}
@@ -236,7 +236,7 @@ void ExperimentalButton::paintEvent(QPaintEvent *event) {
p.setPen(Qt::NoPen);
p.setBrush(QColor(0, 0, 0, 166));
p.drawEllipse(center, btn_size / 2, btn_size / 2);
p.setOpacity(isDown() ? 0.8 : 1.0);
p.setOpacity((isDown() || !engageable) ? 0.6 : 1.0);
p.drawPixmap((btn_size - img_size) / 2, (btn_size - img_size) / 2, img);
}
+1
View File
@@ -44,6 +44,7 @@ private:
QPixmap engage_img;
QPixmap experimental_img;
bool experimental_mode;
bool engageable;
};
// container window for the NVG UI