This commit is contained in:
Your Name
2024-05-09 21:17:20 -05:00
parent ffe401f5d1
commit fbd09ad9bd
3 changed files with 54 additions and 94 deletions

View File

@@ -44,7 +44,6 @@ HomeWindow::HomeWindow(QWidget* parent) : QWidget(parent) {
slayout->addWidget(body); slayout->addWidget(body);
// CLEARPILOT // CLEARPILOT
// show_ready = true;
ready = new ReadyWindow(this); ready = new ReadyWindow(this);
slayout->addWidget(ready); slayout->addWidget(ready);
@@ -89,6 +88,7 @@ void HomeWindow::offroadTransition(bool offroad) {
if (offroad) { if (offroad) {
sidebar->setVisible(false); sidebar->setVisible(false);
slayout->setCurrentWidget(ready); slayout->setCurrentWidget(ready);
refresh();
// this->showDriverView(true, true); // Temp // this->showDriverView(true, true); // Temp
} else { } else {
sidebar->setVisible(false); sidebar->setVisible(false);
@@ -190,42 +190,7 @@ OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) {
home_layout->setContentsMargins(0, 0, 0, 0); home_layout->setContentsMargins(0, 0, 0, 0);
home_layout->setSpacing(30); home_layout->setSpacing(30);
// left: MapSettings/PrimeAdWidget // Clearpilot: removed home ui widgets
// QStackedWidget *left_widget = new QStackedWidget(this);
#ifdef ENABLE_MAPS
// left_widget->addWidget(new MapSettings);
#else
// left_widget->addWidget(new QWidget);
#endif
// left_widget->addWidget(new PrimeAdWidget);
// left_widget->addWidget(new DriveStats);
// left_widget->setStyleSheet("border-radius: 10px;");
// left_widget->setCurrentIndex(2);
// connect(uiState(), &UIState::primeChanged, [=](bool prime) {
// left_widget->setCurrentIndex(2);
// });
// home_layout->addWidget(left_widget, 1);
// // right: ExperimentalModeButton, SetupWidget
// QWidget* right_widget = new QWidget(this);
// QVBoxLayout* right_column = new QVBoxLayout(right_widget);
// right_column->setContentsMargins(0, 0, 0, 0);
// right_widget->setFixedWidth(750);
// right_column->setSpacing(30);
// ExperimentalModeButton *experimental_mode = new ExperimentalModeButton(this);
// CLEARPILOT TEMP
// QObject::connect(experimental_mode, &ExperimentalModeButton::openSettings, this, &OffroadHome::openSettings);
// QObject::connect(experimental_mode, &ExperimentalModeButton::openSettings, this, &OffroadHome::openSettings);
// right_column->addWidget(experimental_mode, 1);
// SetupWidget *setup_widget = new SetupWidget;
// QObject::connect(setup_widget, &SetupWidget::openSettings, this, &OffroadHome::openSettings);
// right_column->addWidget(setup_widget, 1);
// home_layout->addWidget(right_widget, 1);
} }
center_layout->addWidget(home_widget); center_layout->addWidget(home_widget);
@@ -262,12 +227,10 @@ OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) {
)"); )");
} }
/* Refresh data on screen every 5 seconds. */
void OffroadHome::showEvent(QShowEvent *event) { void OffroadHome::showEvent(QShowEvent *event) {
refresh(); refresh();
// CLEARPILOT changed timeout to 2 min timer->start(5 * 1000);
// What does this even do?
timer->start(120 * 1000);
// slayout->addWidget(ready);
} }
void OffroadHome::hideEvent(QHideEvent *event) { void OffroadHome::hideEvent(QHideEvent *event) {
@@ -303,4 +266,8 @@ void OffroadHome::refresh() {
if (alerts) { if (alerts) {
alert_notif->setText(QString::number(alerts) + (alerts > 1 ? tr(" ALERTS") : tr(" ALERT"))); alert_notif->setText(QString::number(alerts) + (alerts > 1 ? tr(" ALERTS") : tr(" ALERT")));
} }
if (ready->isVisible()) {
ready->refresh();
}
} }

View File

@@ -19,54 +19,46 @@
#include "selfdrive/ui/qt/qt_window.h" #include "selfdrive/ui/qt/qt_window.h"
#include "selfdrive/ui/qt/util.h" #include "selfdrive/ui/qt/util.h"
ReadyWindow::ReadyWindow(QWidget *parent) : QWidget(parent) { ReadyWindow::ReadyWindow(QWidget *parent) : QWidget(parent) {
QGridLayout *layout = new QGridLayout(this); QGridLayout *layout = new QGridLayout(this);
layout->setSpacing(0); layout->setSpacing(0);
layout->setMargin(0); layout->setMargin(0);
setAttribute(Qt::WA_OpaquePaintEvent); setAttribute(Qt::WA_OpaquePaintEvent);
setStyleSheet("ReadyWindow { background-color: black; }");
setStyleSheet(R"(
BodyWindow {
background-color: black;
}
)");
QObject::connect(uiState(), &UIState::uiUpdate, this, &ReadyWindow::updateState);
} }
void ReadyWindow::paintEvent(QPaintEvent *event) { void ReadyWindow::paintEvent(QPaintEvent *event) {
QPainter painter(this); QPainter painter(this);
QPixmap *img_shown = nullptr;
QPixmap comma_img = loadPixmap("/data/openpilot/selfdrive/clearpilot/theme/clearpilot/images/ready.png"); if (is_hot) {
if (img_hot.isNull()) {
// Calculate the top-left position to center the image in the window. img_hot.load("/data/openpilot/selfdrive/clearpilot/theme/clearpilot/images/hot.png");
int x = (this->width() - comma_img.width()) / 2; }
int y = ((this->height() - comma_img.height()) / 20) * 9; img_shown = &img_hot;
} else {
// Draw the pixmap at the calculated position. if (img_ready.isNull()) {
painter.drawPixmap(x, y, comma_img); img_ready.load("/data/openpilot/selfdrive/clearpilot/theme/clearpilot/images/ready.png");
}
// TODO: Referencw widgets/offroad_alert.cc img_shown = &img_ready;
// std::string bytes = params.get(key); }
// if params value Offroad_TemperatureTooHigh is set with bytes > 0, then
// temp is too high. show hot.png. Add current temp to the right of the logo.
// otherwise, if offroad_alert widget would otherwise display, then ditch the ready.cc
// screen and go to home.cc.
int x = (width() - img_shown->width()) / 2;
int y = (height() - img_shown->height()) / 2;
painter.drawPixmap(x, y, *img_shown);
} }
void ReadyWindow::showEvent(QShowEvent *event) { void ReadyWindow::refresh() {
// refresh(); std::string bytes = params.get("Offroad_TemperatureTooHigh");
// timer->start(120 * 1000); if (!bytes.empty()) {
} auto doc = QJsonDocument::fromJson(bytes.data());
is_hot = true;
void ReadyWindow::hideEvent(QHideEvent *event) { cur_temp = doc["extra"].toString();
// timer->stop(); update();
} } else if (is_hot) {
is_hot = false;
void ReadyWindow::updateState(const UIState &s) { update();
} }
void ReadyWindow::offroadTransition(bool offroad) {
} }

View File

@@ -16,15 +16,16 @@
class ReadyWindow : public QWidget { class ReadyWindow : public QWidget {
Q_OBJECT Q_OBJECT
public: public:
ReadyWindow(QWidget* parent = 0); ReadyWindow(QWidget* parent = nullptr);
private: private:
void paintEvent(QPaintEvent*) override; void paintEvent(QPaintEvent *event) override;
void refresh();
bool is_hot = false;
QString cur_temp;
QPixmap img_ready;
QPixmap img_hot;
private slots: private slots:
void updateState(const UIState &s);
void offroadTransition(bool onroad);
void showEvent(QShowEvent *event) override; void showEvent(QShowEvent *event) override;
void hideEvent(QHideEvent *event) override; void hideEvent(QHideEvent *event) override;
// void refresh();
// QTimer* timer;
}; };