feat(cpn): add support for new 'Manage Models' settings (#4599)
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user