Skip to content

Commit

Permalink
feat(cpn): add support for new 'Manage Models' settings (#4599)
Browse files Browse the repository at this point in the history
  • Loading branch information
philmoz authored Feb 7, 2024
1 parent 7e706b7 commit cbdd70b
Show file tree
Hide file tree
Showing 5 changed files with 779 additions and 601 deletions.
11 changes: 10 additions & 1 deletion companion/src/firmwares/edgetx/yaml_generalsettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();

Expand Down
5 changes: 5 additions & 0 deletions companion/src/firmwares/generalsettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
59 changes: 59 additions & 0 deletions companion/src/generaledit/generalsetup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}

Expand Down Expand Up @@ -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();
Expand Down
6 changes: 6 additions & 0 deletions companion/src/generaledit/generalsetup.h
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Loading

0 comments on commit cbdd70b

Please sign in to comment.