ui: Driving Screen Off: show/hide toggles with param updates (#149)

* ui: Driving Screen Off: show/hide toggles with param updates

* not just yet
This commit is contained in:
Jason Wen
2023-06-13 11:37:29 -04:00
committed by GitHub
parent dbab500b23
commit 439cad86fd
2 changed files with 31 additions and 5 deletions
+21 -5
View File
@@ -60,6 +60,11 @@ SPGeneralPanel::SPGeneralPanel(QWidget *parent) : ListWidget(parent) {
}
};
// General: Onroad Screen Off (Auto Onroad Screen Timer)
onroad_screen_off = new OnroadScreenOff();
// General: Onroad Screen Off Brightness
onroad_screen_off_brightness = new OnroadScreenOffBrightness();
for (auto &[param, title, desc, icon] : toggle_defs) {
auto toggle = new ParamControl(param, title, desc, icon, this);
@@ -70,20 +75,29 @@ SPGeneralPanel::SPGeneralPanel(QWidget *parent) : ListWidget(parent) {
// General: Max Time Offroad (Shutdown timer)
addItem(new MaxTimeOffroad());
// General: Onroad Screen Off (Auto Onroad Screen Timer)
addItem(new OnroadScreenOff());
addItem(onroad_screen_off);
// General: Onroad Screen Off Brightness
addItem(new OnroadScreenOffBrightness());
addItem(onroad_screen_off_brightness);
// General: Brightness Control (Global)
addItem(new BrightnessControl());
}
}
connect(onroad_screen_off, &OnroadScreenOff::toggleUpdated, this, &SPGeneralPanel::updateToggles);
toggles["EndToEndLongAlertLight"]->setConfirmation(true, false);
}
void SPGeneralPanel::showEvent(QShowEvent *event) {
updateToggles();
}
void SPGeneralPanel::updateToggles() {
// toggle names to update when OnroadScreenOff is toggled
onroad_screen_off_brightness->setVisible(QString::fromStdString(params.get("OnroadScreenOff")) != "-2");
}
SPControlsPanel::SPControlsPanel(QWidget *parent) : ListWidget(parent) {
// param, title, desc, icon
std::vector<std::tuple<QString, QString, QString, QString>> toggle_defs{
@@ -774,6 +788,7 @@ OnroadScreenOff::OnroadScreenOff() : AbstractControl(
QString values = QString::number(value);
params.put("OnroadScreenOff", values.toStdString());
refresh();
emit toggleUpdated();
});
QObject::connect(&btnplus, &QPushButton::clicked, [=]() {
@@ -787,6 +802,7 @@ OnroadScreenOff::OnroadScreenOff() : AbstractControl(
QString values = QString::number(value);
params.put("OnroadScreenOff", values.toStdString());
refresh();
emit toggleUpdated();
});
refresh();
}
@@ -812,7 +828,7 @@ void OnroadScreenOff::refresh()
OnroadScreenOffBrightness::OnroadScreenOffBrightness() : AbstractControl(
tr("Driving Screen Off Brightness (%)"),
tr("When using the Driving Screen Off feature, the brightness is reduced according to the automatic brightness ratio."),
"../assets/offroad/icon_metric.png")
"../assets/offroad/icon_blank.png")
{
label.setAlignment(Qt::AlignVCenter|Qt::AlignRight);
@@ -62,6 +62,9 @@ class OnroadScreenOff : public AbstractControl {
public:
OnroadScreenOff();
signals:
void toggleUpdated();
private:
QPushButton btnplus;
QPushButton btnminus;
@@ -241,10 +244,17 @@ class SPGeneralPanel : public ListWidget {
public:
explicit SPGeneralPanel(QWidget *parent = nullptr);
void showEvent(QShowEvent *event) override;
public slots:
void updateToggles();
private:
Params params;
std::map<std::string, ParamControl*> toggles;
OnroadScreenOff *onroad_screen_off;
OnroadScreenOffBrightness *onroad_screen_off_brightness;
};
class SPControlsPanel : public ListWidget {