feat(cpn): add support for new 'Manage Models' settings (#4599)

This commit is contained in:
philmoz
2024-02-07 10:40:39 +10:00
committed by GitHub
parent 7e706b73d5
commit cbdd70b80e
5 changed files with 927 additions and 749 deletions
@@ -235,8 +235,12 @@ Node convert<GeneralSettings>::encode(const GeneralSettings& rhs)
node["varioRepeat"] = rhs.varioRepeat;
node["backgroundVolume"] = rhs.backgroundVolume + 2;
node["dontPlayHello"] = (int)rhs.dontPlayHello;
if (Boards::getCapability(fw->getBoard(), Board::HasColorLcd)) {
if (hasColorLcd) {
node["modelQuickSelect"] = (int)rhs.modelQuickSelect;
node["modelSelectLayout"] = rhs.modelSelectLayout;
node["labelSingleSelect"] = rhs.labelSingleSelect;
node["labelMultiMode"] = rhs.labelMultiMode;
node["favMultiMode"] = rhs.favMultiMode;
}
Node serialPort;
@@ -580,6 +584,11 @@ bool convert<GeneralSettings>::decode(const Node& node, GeneralSettings& rhs)
node["modelCustomScriptsDisabled"] >> rhs.modelCustomScriptsDisabled;
node["modelTelemetryDisabled"] >> rhs.modelTelemetryDisabled;
node["modelSelectLayout"] >> rhs.modelSelectLayout;
node["labelSingleSelect"] >> rhs.labelSingleSelect;
node["labelMultiMode"] >> rhs.labelMultiMode;
node["favMultiMode"] >> rhs.favMultiMode;
// fix ups
rhs.validateFlexSwitches();
@@ -310,6 +310,11 @@ class GeneralSettings {
bool modelCustomScriptsDisabled;
bool modelTelemetryDisabled;
int modelSelectLayout;
int labelSingleSelect;
int labelMultiMode;
int favMultiMode;
// v 2.10 ADC refactor
// earlier version data is read into legacy structs to maintain older version compatibility
// post reading the legacy structs are manipulated into the new structs
@@ -515,9 +515,42 @@ void GeneralSetupPanel::setValues()
if (Boards::getCapability(firmware->getBoard(), Board::HasColorLcd)) {
ui->modelQuickSelect_CB->setChecked(generalSettings.modelQuickSelect);
ui->modelSelectLayout_CB->setCurrentIndex(generalSettings.modelSelectLayout);
ui->labelSingleSelect_CB->setCurrentIndex(generalSettings.labelSingleSelect);
ui->labelMultiMode_CB->setCurrentIndex(generalSettings.labelMultiMode);
ui->favMultiMode_CB->setCurrentIndex(generalSettings.favMultiMode);
showLabelSelectOptions();
} else {
ui->label_modelQuickSelect->hide();
ui->modelQuickSelect_CB->hide();
ui->label_modelSelectLayout->hide();
ui->modelSelectLayout_CB->hide();
ui->label_labelSingleSelect->hide();
ui->labelSingleSelect_CB->hide();
ui->label_labelMultiMode->hide();
ui->labelMultiMode_CB->hide();
ui->label_favMultiMode->hide();
ui->favMultiMode_CB->hide();
}
}
void GeneralSetupPanel::showLabelSelectOptions()
{
if (generalSettings.labelSingleSelect == 0) {
ui->label_labelMultiMode->show();
ui->labelMultiMode_CB->show();
if (generalSettings.labelMultiMode == 1) {
ui->label_favMultiMode->show();
ui->favMultiMode_CB->show();
} else {
ui->label_favMultiMode->hide();
ui->favMultiMode_CB->hide();
}
} else {
ui->label_labelMultiMode->hide();
ui->labelMultiMode_CB->hide();
ui->label_favMultiMode->hide();
ui->favMultiMode_CB->hide();
}
}
@@ -857,6 +890,32 @@ void GeneralSetupPanel::on_modelQuickSelect_CB_stateChanged(int)
emit modified();
}
void GeneralSetupPanel::on_modelSelectLayout_CB_currentIndexChanged(int index)
{
generalSettings.modelSelectLayout = index;
emit modified();
}
void GeneralSetupPanel::on_labelSingleSelect_CB_currentIndexChanged(int index)
{
generalSettings.labelSingleSelect = index;
showLabelSelectOptions();
emit modified();
}
void GeneralSetupPanel::on_labelMultiMode_CB_currentIndexChanged(int index)
{
generalSettings.labelMultiMode = index;
showLabelSelectOptions();
emit modified();
}
void GeneralSetupPanel::on_favMultiMode_CB_currentIndexChanged(int index)
{
generalSettings.favMultiMode = index;
emit modified();
}
void GeneralSetupPanel::on_startSoundCB_stateChanged(int)
{
generalSettings.dontPlayHello = !ui->startSoundCB->isChecked();
+6
View File
@@ -95,10 +95,16 @@ class GeneralSetupPanel : public GeneralPanel
void on_modelQuickSelect_CB_stateChanged(int);
void on_startSoundCB_stateChanged(int);
void on_modelSelectLayout_CB_currentIndexChanged(int);
void on_labelSingleSelect_CB_currentIndexChanged(int);
void on_labelMultiMode_CB_currentIndexChanged(int);
void on_favMultiMode_CB_currentIndexChanged(int);
private:
Ui::GeneralSetup *ui;
void showLabelSelectOptions();
void setValues();
void populateBacklightCB();
void populateVoiceLangCB();
File diff suppressed because it is too large Load Diff