diff --git a/companion/src/firmwares/customfunctiondata.cpp b/companion/src/firmwares/customfunctiondata.cpp index 42d84d570..017e100ea 100644 --- a/companion/src/firmwares/customfunctiondata.cpp +++ b/companion/src/firmwares/customfunctiondata.cpp @@ -126,20 +126,15 @@ void CustomFunctionData::populateResetParams(const ModelData * model, QComboBox b->addItem(tr("REa"), val++); b->addItem(tr("REb"), val++); } - if ((int)value < b->count()) { - b->setCurrentIndex(value); - } if (model) { - for (unsigned i=0; igetCapability(Sensors); ++i) { if (model->sensorData[i].isAvailable()) { - RawSource item = RawSource(SOURCE_TYPE_TELEMETRY, 3*i); - b->addItem(item.toString(model), val+i); - if (value == val+i) { - b->setCurrentIndex(b->count()-1); - } + RawSource item = RawSource(SOURCE_TYPE_TELEMETRY, 3 * i); + b->addItem(item.toString(model), val + i); } } } + b->setCurrentIndex(b->findData(value)); } void CustomFunctionData::populatePlaySoundParams(QStringList & qs) diff --git a/companion/src/firmwares/modeldata.cpp b/companion/src/firmwares/modeldata.cpp index f9bb4e744..451c7d5c5 100644 --- a/companion/src/firmwares/modeldata.cpp +++ b/companion/src/firmwares/modeldata.cpp @@ -723,7 +723,8 @@ int ModelData::updateReference() updateAssignFunc(cfd); if (!cfd->isEmpty()) { updateSwitchRef(cfd->swtch); - if (cfd->func == FuncVolume || cfd->func == FuncBacklight || cfd->func == FuncPlayValue || (cfd->func >= FuncAdjustGV1 && cfd->func <= FuncAdjustGVLast && (cfd->adjustMode == FUNC_ADJUST_GVAR_GVAR || cfd->adjustMode == FUNC_ADJUST_GVAR_SOURCE))) { + if (cfd->func == FuncVolume || cfd->func == FuncBacklight || cfd->func == FuncPlayValue || + (cfd->func >= FuncAdjustGV1 && cfd->func <= FuncAdjustGVLast && (cfd->adjustMode == FUNC_ADJUST_GVAR_GVAR || cfd->adjustMode == FUNC_ADJUST_GVAR_SOURCE))) { updateSourceIntRef(cfd->param); if (cfd->param == 0) cfd->clear(); @@ -1387,12 +1388,13 @@ void ModelData::updateResetParam(CustomFunctionData * cfd) const int invalidateRef = -1; int newRef = cfd->param; int idxAdj = 0; + Firmware *firmware = getCurrentFirmware(); switch (updRefInfo.type) { case REF_UPD_TYPE_SENSOR: - idxAdj = 5/*3 Timers + Flight + Telemetery*/ + getCurrentFirmware()->getCapability(RotaryEncoders); - if (cfd->param < idxAdj) + idxAdj = 5/*3 Timers + Flight + Telemetery*/ + firmware->getCapability(RotaryEncoders); + if (cfd->param < idxAdj || cfd->param > (idxAdj + firmware->getCapability(Sensors))) return; break; default: