refactor description

This commit is contained in:
Jason Wen
2025-05-18 01:48:27 -04:00
parent 72a462e82d
commit 29d984e42f
2 changed files with 39 additions and 22 deletions
@@ -40,13 +40,12 @@ MadsSettings::MadsSettings(QWidget *parent) : QWidget(parent) {
list->addItem(madsUnifiedEngagementModeToggle);
// Steering Mode On Brake
std::vector<QString> lateral_on_brake_texts{tr("Remain Active"), tr("Pause Steering"), tr("Disengage")};
madsSteeringMode = new ButtonParamControl(
"MadsSteeringMode",
tr("Steering Mode on Brake Pedal"),
"",
"",
lateral_on_brake_texts,
madsSteeringModeTexts(),
500);
QObject::connect(madsSteeringMode, &ButtonParamControl::buttonToggled, [=] {
updateToggles(offroad);
@@ -67,9 +66,9 @@ void MadsSettings::updateToggles(bool _offroad) {
auto mads_steering_mode_param = std::atoi(params.get("MadsSteeringMode").c_str());
MadsSteeringMode steering_mode;
if (mads_steering_mode_param == int(MadsSteeringMode::REMAIN_ACTIVE)) {
if (mads_steering_mode_param == static_cast<int>(MadsSteeringMode::REMAIN_ACTIVE)) {
steering_mode = MadsSteeringMode::REMAIN_ACTIVE;
} else if (mads_steering_mode_param == int(MadsSteeringMode::PAUSE_STEERING)) {
} else if (mads_steering_mode_param == static_cast<int>(MadsSteeringMode::PAUSE_STEERING)) {
steering_mode = MadsSteeringMode::PAUSE_STEERING;
} else {
steering_mode = MadsSteeringMode::DISENGAGE;
@@ -13,9 +13,15 @@
#include "selfdrive/ui/sunnypilot/qt/widgets/controls.h"
enum class MadsSteeringMode {
REMAIN_ACTIVE,
PAUSE_STEERING,
DISENGAGE,
REMAIN_ACTIVE = 0,
PAUSE_STEERING = 1,
DISENGAGE = 2,
};
struct MadsSteeringModeOption {
MadsSteeringMode mode;
QString display_text;
QString description;
};
class MadsSettings : public QWidget {
@@ -40,23 +46,35 @@ private:
ParamControl *madsUnifiedEngagementModeToggle;
ButtonParamControl *madsSteeringMode;
static QString madsSteeringModeDescription(MadsSteeringMode mode) {
QString remain_active_str = tr("Remain Active: ALC will remain active when the brake pedal is pressed.");
QString pause_steering_str = tr("Pause Steering: ALC will pause steering when the brake pedal is pressed.");
QString disengage_str = tr("Disengage: ALC will disengage when the brake pedal is pressed.");
static const std::vector<MadsSteeringModeOption> &madsSteeringModeOptions() {
static const std::vector<MadsSteeringModeOption> options = {
{MadsSteeringMode::REMAIN_ACTIVE, tr("Remain Active"), tr("Remain Active: ALC will remain active when the brake pedal is pressed.")},
{MadsSteeringMode::PAUSE_STEERING, tr("Pause"), tr("Pause: ALC will pause steering when the brake pedal is pressed.")},
{MadsSteeringMode::DISENGAGE, tr("Disengage"), tr("Disengage: ALC will disengage when the brake pedal is pressed.")},
};
return options;
}
if (mode == MadsSteeringMode::REMAIN_ACTIVE) {
remain_active_str = "<font color='white'><b>" + remain_active_str + "</b></font>";
} else if (mode == MadsSteeringMode::PAUSE_STEERING) {
pause_steering_str = "<font color='white'><b>" + pause_steering_str + "</b></font>";
} else if (mode == MadsSteeringMode::DISENGAGE) {
disengage_str = "<font color='white'><b>" + disengage_str + "</b></font>";
static std::vector<QString> madsSteeringModeTexts() {
std::vector<QString> texts;
for (const auto& option : madsSteeringModeOptions()) {
texts.push_back(option.display_text);
}
return texts;
}
static QString madsSteeringModeDescription(const MadsSteeringMode mode) {
QString base_desc = tr("Choose how Automatic Lane Centering (ALC) behaves after the brake pedal is manually pressed in sunnypilot.");
QString result = base_desc + "<br><br>";
for (const auto& option : madsSteeringModeOptions()) {
QString desc = option.description;
if (option.mode == mode) {
desc = "<font color='white'><b>" + desc + "</b></font>";
}
result += desc + "<br>";
}
return QString("%1<br><br>%2<br>%3<br>%4")
.arg(tr("Choose how Automatic Lane Centering (ALC) behaves after the brake pedal is manually pressed in sunnypilot."))
.arg(remain_active_str)
.arg(pause_steering_str)
.arg(disengage_str);
return result;
}
};