feat: More rotary encoder options for B&W screens (see #2045)
* First build * Fix X9 * Update api_general.cpp * Update translations.h * clean up translations * fix: B&W option handling, remove magic numbers, cleanup - Remove references to invertRotary, change to RotEncDir or similar - Add compatabilty importing to companion, firmware - Rename Lua API call - Move magic numbers to enum - Improve B&W option handling so it doesn't apply changes while in menu * chore: yaml regen * fix: Add missing guards for X9D/X9D+ * fix: Wrong enum name in simu * fix(cpn): Use correct names for UI elements * fix: Translations * fix: Allow `rotEncMode` in all yaml due to x9d var Of the three X9D variants, the X9D+2019 is the only one that has a rotary encoder as standard. However, as the base config file is for the X9D, this meant it wasn't reading or writing the config value. Rather than add a seperate config file for it for a single variable, simple to just allow it across all targets. * fix: Companion string, change colorlcd to `Choice` Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
co-authored by
Peter Feerick
parent
5752cf4061
commit
62692dba6a
@@ -126,11 +126,11 @@ ui(new Ui::GeneralSetup)
|
||||
}
|
||||
|
||||
if (!firmware->getCapability(RotaryEncoderNavigation)) {
|
||||
ui->invertRotary_CB->hide();
|
||||
ui->invertRotary_label->hide();
|
||||
ui->rotEncMode_CB->hide();
|
||||
ui->rotEncMode_label->hide();
|
||||
}
|
||||
else {
|
||||
ui->invertRotary_CB->setChecked(generalSettings.rotEncDirection);
|
||||
populateRotEncModeCB();
|
||||
}
|
||||
|
||||
if (!firmware->getCapability(HasPxxCountry)) {
|
||||
@@ -483,10 +483,29 @@ void GeneralSetupPanel::on_faimode_CB_stateChanged(int)
|
||||
emit modified();
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::on_invertRotary_CB_stateChanged(int)
|
||||
void GeneralSetupPanel::populateRotEncModeCB()
|
||||
{
|
||||
generalSettings.rotEncDirection = ui->invertRotary_CB->isChecked();
|
||||
emit modified();
|
||||
QComboBox * b = ui->rotEncMode_CB;
|
||||
QString strings[] = { tr("Normal"), tr("Inverted"), tr("Vertical Inverted, Horizontal Normal"), tr("Vertical Inverted, Horizontal Alternate") };
|
||||
int itemCount = 4;
|
||||
|
||||
if (Boards::getCapability(firmware->getBoard(), Board::HasColorLcd)) {
|
||||
itemCount = 2;
|
||||
}
|
||||
|
||||
b->clear();
|
||||
for (uint8_t i=0; i < itemCount; i++) {
|
||||
b->addItem(strings[i], 0);
|
||||
}
|
||||
b->setCurrentIndex(generalSettings.rotEncMode);
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::on_rotEncMode_CB_currentIndexChanged(int index)
|
||||
{
|
||||
if (!lock) {
|
||||
generalSettings.rotEncMode = index;
|
||||
emit modified();
|
||||
}
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::on_speakerPitchSB_editingFinished()
|
||||
|
||||
Reference in New Issue
Block a user