Files
StarPilot/frogpilot/ui/qt/offroad/utilities.cc
T
2026-02-13 00:21:32 -07:00

82 lines
3.1 KiB
C++

#include "frogpilot/ui/qt/offroad/utilities.h"
FrogPilotUtilitiesPanel::FrogPilotUtilitiesPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) {
forceOpenDescriptions = forceOpen;
ParamControl *debugModeToggle = new ParamControl("DebugMode", tr("Debug Mode"), tr("<b>Use all of FrogPilot's developer metrics on your next drive</b> to diagnose issues and improve bug reports."), "");
if (forceOpenDescriptions) {
debugModeToggle->showDescription();
}
addItem(debugModeToggle);
ButtonControl *resetTogglesButton = new ButtonControl(tr("Reset Toggles to Default"), tr("RESET"), tr("<b>Reset all toggles to their default values.</b>"));
QObject::connect(resetTogglesButton, &ButtonControl::clicked, [parent, resetTogglesButton, this]() {
if (ConfirmationDialog::confirm(tr("Are you sure you want to reset all toggles to their default values?"), tr("Reset"), this)) {
std::thread([parent, resetTogglesButton, this]() {
parent->keepScreenOn = true;
resetTogglesButton->setEnabled(false);
resetTogglesButton->setValue(tr("Resetting..."));
std::vector<std::string> all_keys = params.allKeys();
for (const std::string &key : all_keys) {
if (excluded_keys.count(key)) {
continue;
}
std::optional<std::string> default_value = params.getKeyDefaultValue(key);
if (default_value.has_value()) {
params.put(key, default_value.value());
}
}
updateFrogPilotToggles();
resetTogglesButton->setValue(tr("Reset!"));
util::sleep_for(2500);
resetTogglesButton->setValue("");
}).detach();
}
});
if (forceOpenDescriptions) {
resetTogglesButton->showDescription();
}
addItem(resetTogglesButton);
ButtonControl *resetTogglesButtonStock = new ButtonControl(tr("Reset Toggles to Stock openpilot"), tr("RESET"), tr("<b>Reset all toggles to match stock openpilot.</b>"));
QObject::connect(resetTogglesButtonStock, &ButtonControl::clicked, [parent, resetTogglesButtonStock, this]() {
if (ConfirmationDialog::confirm(tr("Are you sure you want to reset all toggles to match stock openpilot?"), tr("Reset"), this)) {
std::thread([parent, resetTogglesButtonStock, this]() {
parent->keepScreenOn = true;
resetTogglesButtonStock->setEnabled(false);
resetTogglesButtonStock->setValue(tr("Resetting..."));
std::vector<std::string> all_keys = params.allKeys();
for (const std::string &key : all_keys) {
if (excluded_keys.count(key)) {
continue;
}
std::optional<std::string> stock_value = params.getStockValue(key);
if (stock_value.has_value()) {
params.put(key, stock_value.value());
}
}
updateFrogPilotToggles();
resetTogglesButtonStock->setValue(tr("Reset!"));
util::sleep_for(2500);
resetTogglesButtonStock->setValue("");
}).detach();
}
});
if (forceOpenDescriptions) {
resetTogglesButtonStock->showDescription();
}
addItem(resetTogglesButtonStock);
}