mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-07-17 17:12:05 +08:00
refactor description
This commit is contained in:
@@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user