Drive Summary

This commit is contained in:
James
2025-12-01 12:00:00 -07:00
parent 0bf423792a
commit c7c0970a5a
4 changed files with 304 additions and 6 deletions
+1
View File
@@ -49,6 +49,7 @@ frogpilot_src = ["../../frogpilot/ui/frogpilot_ui.cc", "../../frogpilot/ui/qt/of
"../../frogpilot/ui/qt/offroad/wheel_settings.cc", "../../frogpilot/ui/qt/onroad/frogpilot_annotated_camera.cc",
"../../frogpilot/ui/qt/onroad/frogpilot_buttons.cc", "../../frogpilot/ui/qt/onroad/frogpilot_onroad.cc",
"../../frogpilot/ui/qt/widgets/developer_sidebar.cc", "../../frogpilot/ui/qt/widgets/drive_stats.cc",
"../../frogpilot/ui/qt/widgets/drive_summary.cc",
"../../frogpilot/ui/qt/widgets/navigation_functions.cc"]
qt_src += frogpilot_src
+39 -6
View File
@@ -10,6 +10,7 @@
#include "selfdrive/ui/qt/widgets/prime.h"
#include "frogpilot/ui/qt/widgets/drive_stats.h"
#include "frogpilot/ui/qt/widgets/drive_summary.h"
// HomeWindow: the container for the offroad and onroad UIs
@@ -170,20 +171,35 @@ OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) {
home_layout->setContentsMargins(0, 0, 0, 0);
home_layout->setSpacing(30);
// left: stack of DriveStats
// left: stack of DriveStats / DriveSummary
QWidget *left_widget = new QWidget(this);
QStackedLayout *left_stack = new QStackedLayout(left_widget);
left_stack->setContentsMargins(0, 0, 0, 0);
left_stack->addWidget(new DriveStats());
FrogPilotDriveSummary *drive_summary = new FrogPilotDriveSummary(this);
left_stack->addWidget(drive_summary);
QObject::connect(drive_summary, &FrogPilotDriveSummary::panelClosed, [left_stack]() {
left_stack->setCurrentIndex(0);
});
QObject::connect(uiState(), &UIState::offroadTransition, [left_stack](bool offroad) {
static bool previouslyOnroad = false;
if (offroad && previouslyOnroad) {
left_stack->setCurrentIndex(1);
}
previouslyOnroad = !offroad;
});
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: ExperimentalModeButton, SetupWidget, Random Events Summary
QStackedWidget *right_widget = new QStackedWidget(this);
right_widget->setFixedWidth(750);
QWidget *default_right = new QWidget(this);
QVBoxLayout *right_column = new QVBoxLayout(default_right);
right_column->setContentsMargins(0, 0, 0, 0);
right_column->setSpacing(30);
ExperimentalModeButton *experimental_mode = new ExperimentalModeButton(this);
@@ -194,7 +210,24 @@ OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) {
QObject::connect(setup_widget, &SetupWidget::openSettings, this, &OffroadHome::openSettings);
right_column->addWidget(setup_widget, 1);
home_layout->addWidget(right_widget, 1);
right_widget->addWidget(default_right);
FrogPilotDriveSummary *random_events_summary = new FrogPilotDriveSummary(this, true);
right_widget->addWidget(random_events_summary);
right_widget->setCurrentIndex(0);
QObject::connect(random_events_summary, &FrogPilotDriveSummary::panelClosed, [=]() {
right_widget->setCurrentIndex(0);
});
QObject::connect(uiState(), &UIState::offroadTransition, [right_widget](bool offroad) {
static bool previouslyOnroad = false;
if (offroad && previouslyOnroad && frogpilotUIState()->frogpilot_scene.frogpilot_toggles.value("random_events").toBool()) {
right_widget->setCurrentIndex(1);
}
previouslyOnroad = !offroad;
});
home_layout->addWidget(right_widget, 0);
}
center_layout->addWidget(home_widget);