void CustomFunctionsPanel::populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsigned int adjustmode) { QStringList qs; b->clear(); if (function==FuncPlaySound) { CustomFunctionData::populatePlaySoundParams(qs); b->addItems(qs); b->setCurrentIndex(value); } else if (function==FuncPlayHaptic) { CustomFunctionData::populateHapticParams(qs); b->addItems(qs); b->setCurrentIndex(value); } else if (function==FuncReset) { CustomFunctionData::populateResetParams(model, b, value); } else if (function==FuncVolume) { populateSourceCB(b, RawSource(value), generalSettings, model, POPULATE_NONE|POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_TRIMS|POPULATE_SWITCHES); } else if (function==FuncPlayValue) { populateSourceCB(b, RawSource(value), generalSettings, model, POPULATE_NONE|POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_SWITCHES|POPULATE_GVARS|POPULATE_TRIMS|POPULATE_TELEMETRY|POPULATE_TELEMETRYEXT|POPULATE_SCRIPT_OUTPUTS); } else if (function>=FuncAdjustGV1 && function<=FuncAdjustGVLast) { switch (adjustmode) { case 1: populateSourceCB(b, RawSource(value), generalSettings, model, POPULATE_NONE|POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_TRIMS|POPULATE_SWITCHES); break; case 2: populateSourceCB(b, RawSource(value), generalSettings, model, POPULATE_GVARS); break; case 3: b->clear(); b->addItem("-1", 0); b->addItem("+1", 1); b->setCurrentIndex(value); break; } } else { b->hide(); } }
void HeliPanel::update() { lock = true; ui->swashTypeCB->setCurrentIndex(model.swashRingData.type); populateSourceCB(ui->swashCollectiveCB, model.swashRingData.collectiveSource, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS); ui->swashRingValSB->setValue(model.swashRingData.value); ui->swashInvertELE->setChecked(model.swashRingData.invertELE); ui->swashInvertAIL->setChecked(model.swashRingData.invertAIL); ui->swashInvertCOL->setChecked(model.swashRingData.invertCOL); lock = false; }
MixerDialog::MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, GeneralSettings & generalSettings, Firmware * firmware) : QDialog(parent), ui(new Ui::MixerDialog), model(model), generalSettings(generalSettings), firmware(firmware), md(mixdata), lock(false) { ui->setupUi(this); QRegExp rx(CHAR_FOR_NAMES_REGEX); QLabel * lb_fp[] = {ui->lb_FP0,ui->lb_FP1,ui->lb_FP2,ui->lb_FP3,ui->lb_FP4,ui->lb_FP5,ui->lb_FP6,ui->lb_FP7,ui->lb_FP8 }; QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 }; this->setWindowTitle(tr("DEST -> CH%1").arg(md->destCh)); populateSourceCB(ui->sourceCB, md->srcRaw, generalSettings, &model, POPULATE_NONE | POPULATE_SOURCES | POPULATE_SCRIPT_OUTPUTS | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS); ui->sourceCB->removeItem(0); int limit = firmware->getCapability(OffsetWeight); gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, md->weight, 100, -limit, limit); gvOffsetGroup = new GVarGroup(ui->offsetGV, ui->offsetSB, ui->offsetCB, md->sOffset, 0, -limit, limit); curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, md->curve, firmware->getCapability(HasMixerExpo) ? 0 : HIDE_EXPO); ui->MixDR_CB->setChecked(md->noExpo == 0); if (!firmware->getCapability(HasNoExpo)) { ui->MixDR_CB->hide(); ui->label_MixDR->hide(); } if (!firmware->getCapability(VirtualInputs)) { for(int i=0; i < NUM_STICKS; i++) { ui->trimCB->addItem(AnalogString(i)); } } ui->trimCB->setCurrentIndex(1 - md->carryTrim); int namelength = firmware->getCapability(HasMixerNames); if (!namelength) { ui->label_name->hide(); ui->mixerName->hide(); } else { ui->mixerName->setMaxLength(namelength); } ui->mixerName->setValidator(new QRegExpValidator(rx, this)); ui->mixerName->setText(md->name); if (!firmware->getCapability(FlightModes)) { ui->label_phases->hide(); for (int i=0; i<9; i++) { lb_fp[i]->hide(); cb_fp[i]->hide(); } } else { int mask = 1; for (int i=0; i<9 ; i++) { if ((md->flightModes & mask) == 0) { cb_fp[i]->setChecked(true); } mask <<= 1; } for (int i=firmware->getCapability(FlightModes); i<9; i++) { lb_fp[i]->hide(); cb_fp[i]->hide(); } } populateSwitchCB(ui->switchesCB, md->swtch, generalSettings, MixesContext); ui->warningCB->setCurrentIndex(md->mixWarn); ui->mltpxCB->setCurrentIndex(md->mltpx); int scale=firmware->getCapability(SlowScale); float range=firmware->getCapability(SlowRange); ui->slowDownSB->setMaximum(range/scale); ui->slowDownSB->setSingleStep(1.0/scale); ui->slowDownSB->setDecimals((scale==1 ? 0 :1)); ui->slowDownSB->setValue((float)md->speedDown/scale); ui->slowUpSB->setMaximum(range/scale); ui->slowUpSB->setSingleStep(1.0/scale); ui->slowUpSB->setDecimals((scale==1 ? 0 :1)); ui->slowUpSB->setValue((float)md->speedUp/scale); ui->delayDownSB->setMaximum(range/scale); ui->delayDownSB->setSingleStep(1.0/scale); ui->delayDownSB->setDecimals((scale==1 ? 0 :1)); ui->delayDownSB->setValue((float)md->delayDown/scale); ui->delayUpSB->setMaximum(range/scale); ui->delayUpSB->setSingleStep(1.0/scale); ui->delayUpSB->setDecimals((scale==1 ? 0 :1)); ui->delayUpSB->setValue((float)md->delayUp/scale); QTimer::singleShot(0, this, SLOT(shrink())); valuesChanged(); connect(ui->mixerName,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); connect(ui->sourceCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->trimCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->MixDR_CB,SIGNAL(toggled(bool)),this,SLOT(valuesChanged())); connect(ui->switchesCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->warningCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->mltpxCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->delayDownSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); connect(ui->delayUpSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); connect(ui->slowDownSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); connect(ui->slowUpSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); for (int i=0; i<9; i++) { connect(cb_fp[i],SIGNAL(toggled(bool)),this,SLOT(valuesChanged())); } }
ExpoDialog::ExpoDialog(QWidget *parent, ModelData & model, ExpoData *expoData, GeneralSettings & generalSettings, Firmware * firmware, QString & inputName) : QDialog(parent), ui(new Ui::ExpoDialog), model(model), generalSettings(generalSettings), firmware(firmware), ed(expoData), inputName(inputName), modelPrinter(firmware, generalSettings, model) { ui->setupUi(this); QLabel * lb_fp[] = {ui->lb_FP0,ui->lb_FP1,ui->lb_FP2,ui->lb_FP3,ui->lb_FP4,ui->lb_FP5,ui->lb_FP6,ui->lb_FP7,ui->lb_FP8 }; QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 }; setWindowTitle(tr("Edit %1").arg(modelPrinter.printInputName(ed->chn))); QRegExp rx(CHAR_FOR_NAMES_REGEX); if (IS_TARANIS(GetEepromInterface()->getBoard())) { gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, ed->weight, 100, -100, 100); gvOffsetGroup = new GVarGroup(ui->offsetGV, ui->offsetSB, ui->offsetCB, ed->offset, 0, -100, 100); } else { gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, ed->weight, 100, 0, 100); gvOffsetGroup = NULL; ui->offsetLabel->hide(); ui->offsetGV->hide(); ui->offsetSB->hide(); ui->offsetCB->hide(); } curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, ed->curve, firmware->getCapability(HasInputDiff) ? 0 : (HIDE_DIFF | HIDE_NEGATIVE_CURVES)); populateSwitchCB(ui->switchesCB, ed->swtch, generalSettings, MixesContext); ui->sideCB->setCurrentIndex(ed->mode-1); if (!firmware->getCapability(FlightModes)) { ui->label_phases->hide(); for (int i=0; i<9; i++) { lb_fp[i]->hide(); cb_fp[i]->hide(); } } else { int mask = 1; for (int i=0; i<9; i++) { if ((ed->flightModes & mask) == 0) { cb_fp[i]->setChecked(true); } mask <<= 1; } for (int i=firmware->getCapability(FlightModes); i<9; i++) { lb_fp[i]->hide(); cb_fp[i]->hide(); } } if (firmware->getCapability(VirtualInputs)) { ui->inputName->setMaxLength(4); populateSourceCB(ui->sourceCB, ed->srcRaw, generalSettings, &model, POPULATE_NONE | POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS | POPULATE_TELEMETRY); ui->sourceCB->removeItem(0); ui->inputName->setValidator(new QRegExpValidator(rx, this)); ui->inputName->setText(inputName); } else { ui->inputNameLabel->hide(); ui->inputName->hide(); ui->sourceLabel->hide(); ui->sourceCB->hide(); ui->trimLabel->hide(); ui->trimCB->hide(); } for(int i=0; i < NUM_STICKS; i++) { ui->trimCB->addItem(AnalogString(i), i+1); } ui->trimCB->setCurrentIndex(1 - ed->carryTrim); int expolength = firmware->getCapability(HasExpoNames); if (!expolength) { ui->lineNameLabel->hide(); ui->lineName->hide(); } else { ui->lineName->setMaxLength(expolength); } ui->lineName->setValidator(new QRegExpValidator(rx, this)); ui->lineName->setText(ed->name); updateScale(); valuesChanged(); connect(ui->lineName, SIGNAL(editingFinished()), this, SLOT(valuesChanged())); connect(ui->sourceCB, SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged())); connect(ui->scale, SIGNAL(editingFinished()), this, SLOT(valuesChanged())); connect(ui->trimCB, SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged())); connect(ui->switchesCB, SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged())); connect(ui->sideCB, SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged())); for (int i=0; i<9; i++) { connect(cb_fp[i], SIGNAL(toggled(bool)), this, SLOT(valuesChanged())); } if (firmware->getCapability(VirtualInputs)) connect(ui->inputName, SIGNAL(editingFinished()), this, SLOT(valuesChanged())); QTimer::singleShot(0, this, SLOT(shrink())); }
VoiceAlarmDialog::VoiceAlarmDialog(QWidget *parent, VoiceAlarmData *invad, int eeType, int stickmode, int modelVersion, SKYModelData *pModel ) : QDialog(parent), ui(new Ui::VoiceAlarmDialog) { ui->setupUi(this); leeType = eeType ; lpModel = pModel ; vad = invad ; populateSourceCB( ui->SourceCB, stickmode, 1, vad->source, modelVersion, eeType ) ; // uint32_t value ; // value = vad->source ; // if ( eeType ) // { // if ( value >= EXTRA_POTS_POSITION ) // { // if ( value >= EXTRA_POTS_START ) // { // value -= ( EXTRA_POTS_START - EXTRA_POTS_POSITION ) ; // } // else // { // value += eeType == 2 ? 2 : NUM_EXTRA_POTS ; // } // } // } // ui->SourceCB->setCurrentIndex(value) ; populateSwitchCB( ui->SwitchCB, vad->swtch, eeType ) ; ui->FunctionCB->setCurrentIndex( vad->func ) ; ui->RateCB->setCurrentIndex( vad->rate ) ; ui->HapticCB->setCurrentIndex( vad->haptic ) ; ui->ValueSB->setValue( vad->offset ) ; ui->MuteCB->setCurrentIndex( vad->mute ) ; ui->FileTypeCB->setCurrentIndex( vad->fnameType ) ; ui->PlaySourceCB->setCurrentIndex( vad->vsource ) ; switch ( vad->fnameType ) { case 1 : ui->FileName->setText( (char *)vad->file.name ) ; break ; case 2 : ui->FileNumberSB->setValue( vad->file.vfile ) ; break ; case 3 : ui->AudioCB->setCurrentIndex( vad->file.vfile ) ; break ; } updateDisplay() ; connect(ui->SourceCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->FunctionCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->SwitchCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->RateCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->HapticCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->MuteCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->ValueSB,SIGNAL(valueChanged(int)),this,SLOT(valuesChanged())); connect(ui->FileTypeCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->PlaySourceCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->FileName, SIGNAL(editingFinished()),this,SLOT(valuesChanged())); connect(ui->FileNumberSB,SIGNAL(valueChanged(int)),this,SLOT(valuesChanged())); connect(ui->AudioCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); }