From dd12d09c9202c829da8bee733e11e11d4c6308b9 Mon Sep 17 00:00:00 2001 From: Neil Horne Date: Sun, 12 Jun 2016 18:49:59 +1000 Subject: [PATCH] Issue 3473 port to next (#3587) --- companion/src/eeprominterface.cpp | 15 ++++++++++++++- companion/src/eeprominterface.h | 6 +++--- companion/src/modeledit/flightmodes.cpp | 18 ++++++++++++------ radio/src/opentx.cpp | 8 ++++++++ 4 files changed, 37 insertions(+), 10 deletions(-) diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index 306d0f8d1..069de327b 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -1397,7 +1397,7 @@ void ModelData::clear() moduleData[1].protocol = PULSES_OFF; } for (int i=0; ireGB); reUse[i]->setProperty("index", i); populateGvarUseCB(reUse[i], phaseIdx); - connect(reUse[i], SIGNAL(currentIndexChanged(int)), this, SLOT(phaseREUse_currentIndexChanged(int))); if (phase.rotaryEncoders[i] > 1024) { reUse[i]->setCurrentIndex(phase.rotaryEncoders[i] - 1024); } + connect(reUse[i], SIGNAL(currentIndexChanged(int)), this, SLOT(phaseREUse_currentIndexChanged(int))); reLayout->addWidget(reUse[i], i, 1, 1, 1); } // RE value @@ -290,8 +290,14 @@ void FlightModePanel::trimUpdate(unsigned int trim) trimsUse[trim]->setCurrentIndex(1 + 2*phase.trimRef[chn] + phase.trimMode[chn] - (phase.trimRef[chn] > phaseIdx ? 1 : 0)); else trimsUse[trim]->setCurrentIndex(phase.trimRef[chn]); - trimsValue[trim]->setEnabled(true); - trimsSlider[trim]->setEnabled(true); + if (phaseIdx == 0 || phase.trimRef[chn] == phaseIdx || (IS_TARANIS(board) && phase.trimMode[chn] != 0)) { + trimsValue[trim]->setEnabled(true); + trimsSlider[trim]->setEnabled(true); + } + else { + trimsValue[trim]->setEnabled(false); + trimsSlider[trim]->setEnabled(false); + } } lock = false; } @@ -443,7 +449,7 @@ void FlightModePanel::fmClear() { int res = QMessageBox::question(this, "Companion", tr("Clear all current Flight Mode properties?"), QMessageBox::Yes | QMessageBox::No); if (res == QMessageBox::Yes) { - phase.clear(); + phase.clear(phaseIdx); if (phaseIdx == 0) { if (IS_TARANIS(GetEepromInterface()->getBoard())) { for (int i=0; i < gvCount; ++i) { @@ -459,11 +465,11 @@ void FlightModePanel::fmClear() pswtch->setCurrentIndex(pswtch->findText(item.toString())); if (gvCount > 0 && (firmware->getCapability(GvarsFlightModes))) { for (int i=0; isetCurrentIndex(0); + gvUse[i]->setCurrentIndex((phase.gvars[i] > 1024 ? (phase.gvars[i] - 1024) : 0)); } } for (int i=0; isetCurrentIndex(0); + reUse[i]->setCurrentIndex((phase.rotaryEncoders[i] > 1024 ? (phase.rotaryEncoders[i] - 1024) : 0)); } lock = false; } diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index cf12ffed5..8f55e813d 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -452,6 +452,14 @@ void modelDefault(uint8_t id) } #endif +#if defined(FLIGHT_MODES) && defined(ROTARY_ENCODERS) + for (int p=1; p