ready screen: hide READY! text after first drive, reset on ignition cycle
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -98,6 +98,7 @@ void HomeWindow::updateState(const UIState &s) {
|
|||||||
} else if (!parked && was_parked_onroad) {
|
} else if (!parked && was_parked_onroad) {
|
||||||
LOGW("CLP UI: drive transition -> showing onroad");
|
LOGW("CLP UI: drive transition -> showing onroad");
|
||||||
slayout->setCurrentWidget(onroad);
|
slayout->setCurrentWidget(onroad);
|
||||||
|
ready->has_driven = true;
|
||||||
}
|
}
|
||||||
was_parked_onroad = parked;
|
was_parked_onroad = parked;
|
||||||
|
|
||||||
|
|||||||
@@ -70,8 +70,8 @@ void ReadyWindow::paintEvent(QPaintEvent *event) {
|
|||||||
painter.drawPixmap(x, y, scaled);
|
painter.drawPixmap(x, y, scaled);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (error_msg.isEmpty()) {
|
if (error_msg.isEmpty() && !has_driven) {
|
||||||
// "READY!" 8-bit text sprite, 2x size, 15% below center
|
// "READY!" 8-bit text sprite, 15% below center — only before first drive
|
||||||
static QPixmap ready_text("/data/openpilot/selfdrive/clearpilot/theme/clearpilot/images/ready_text.png");
|
static QPixmap ready_text("/data/openpilot/selfdrive/clearpilot/theme/clearpilot/images/ready_text.png");
|
||||||
if (!ready_text.isNull()) {
|
if (!ready_text.isNull()) {
|
||||||
int tx = (width() - ready_text.width()) / 2;
|
int tx = (width() - ready_text.width()) / 2;
|
||||||
@@ -125,5 +125,13 @@ void ReadyWindow::refresh() {
|
|||||||
if (error_msg != prev_error) changed = true;
|
if (error_msg != prev_error) changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reset has_driven on ignition off→on (power cycle)
|
||||||
|
bool started = uiState()->scene.started;
|
||||||
|
if (!last_started && started) {
|
||||||
|
has_driven = false;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
last_started = started;
|
||||||
|
|
||||||
if (changed) update();
|
if (changed) update();
|
||||||
}
|
}
|
||||||
@@ -18,6 +18,7 @@ class ReadyWindow : public QWidget {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
ReadyWindow(QWidget* parent = nullptr);
|
ReadyWindow(QWidget* parent = nullptr);
|
||||||
|
bool has_driven = false;
|
||||||
private:
|
private:
|
||||||
void showEvent(QShowEvent *event) override;
|
void showEvent(QShowEvent *event) override;
|
||||||
void hideEvent(QHideEvent *event) override;
|
void hideEvent(QHideEvent *event) override;
|
||||||
@@ -29,6 +30,7 @@ private:
|
|||||||
QString cur_temp;
|
QString cur_temp;
|
||||||
QString error_msg; // non-empty = show red error instead of READY!
|
QString error_msg; // non-empty = show red error instead of READY!
|
||||||
QElapsedTimer uptime;
|
QElapsedTimer uptime;
|
||||||
|
bool last_started = false;
|
||||||
QPixmap img_bg;
|
QPixmap img_bg;
|
||||||
QPixmap img_hot;
|
QPixmap img_hot;
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user