Companion: YAML and hardware panel

This commit is contained in:
Raphael Coeffic
2022-03-21 11:52:19 +01:00
parent 70f71c8ec8
commit ebfb0b61f0
9 changed files with 98 additions and 59 deletions
+22 -10
View File
@@ -96,7 +96,7 @@ HardwarePanel::HardwarePanel(QWidget * parent, GeneralSettings & generalSettings
int btmodelid = editorItemModels->registerItemModel(GeneralSettings::bluetoothModeItemModel());
int auxmodelid = editorItemModels->registerItemModel(GeneralSettings::serialModeItemModel(GeneralSettings::SP_AUX1));
int vcpmodelid = editorItemModels->registerItemModel(GeneralSettings::serialModeItemModel(GeneralSettings::SP_VCP));
int baudmodelid = editorItemModels->registerItemModel(GeneralSettings::telemetryBaudrateItemModel());
int baudmodelid = editorItemModels->registerItemModel(GeneralSettings::internalModuleBaudrateItemModel());
id = editorItemModels->registerItemModel(ModuleData::internalModuleItemModel());
tabFilteredModels->registerItemModel(new FilteredItemModel(editorItemModels->getItemModel(id)), FIM_INTERNALMODULES);
@@ -182,16 +182,21 @@ HardwarePanel::HardwarePanel(QWidget * parent, GeneralSettings & generalSettings
internalModule = new AutoComboBox(this);
internalModule->setModel(tabFilteredModels->getItemModel(FIM_INTERNALMODULES));
internalModule->setField(generalSettings.internalModule, this);
addParams(row, internalModule);
connect(internalModule, &AutoComboBox::currentDataChanged, this, &HardwarePanel::on_internalModuleChanged);
}
if (firmware->getCapability(HasTelemetryBaudrate)) {
addLabel(tr("Maximum Baud"), row, 0);
AutoComboBox *maxBaudRate = new AutoComboBox(this);
maxBaudRate->setModel(editorItemModels->getItemModel(baudmodelid));
maxBaudRate->setField(generalSettings.telemetryBaudrate, this);
addParams(row, maxBaudRate);
connect(internalModule, &AutoComboBox::currentDataChanged, this,
&HardwarePanel::on_internalModuleChanged);
internalModuleBaudRate = new AutoComboBox(this);
internalModuleBaudRate->setModel(editorItemModels->getItemModel(baudmodelid));
internalModuleBaudRate->setField(generalSettings.internalModuleBaudrate, this);
if (m_internalModule != MODULE_TYPE_GHOST && m_internalModule != MODULE_TYPE_CROSSFIRE) {
generalSettings.internalModuleBaudrate = 0;
internalModuleBaudRate->setVisible(false);
}
addParams(row, internalModule, internalModuleBaudRate);
row++;
}
// All values except 0 are mutually exclusive
@@ -275,6 +280,13 @@ void HardwarePanel::on_internalModuleChanged()
}
else {
m_internalModule = generalSettings.internalModule;
if (m_internalModule == MODULE_TYPE_GHOST || m_internalModule == MODULE_TYPE_CROSSFIRE) {
// TODO: set proper default baudrate
internalModuleBaudRate->setVisible(true);
} else {
generalSettings.internalModuleBaudrate = 0;
internalModuleBaudRate->setVisible(false);
}
emit internalModuleChanged();
}
}