diff --git a/ground/gcs/src/plugins/config/configinputwidget.cpp b/ground/gcs/src/plugins/config/configinputwidget.cpp index 7bbe10bf8..b11baa679 100644 --- a/ground/gcs/src/plugins/config/configinputwidget.cpp +++ b/ground/gcs/src/plugins/config/configinputwidget.cpp @@ -1645,6 +1645,46 @@ void ConfigInputWidget::moveFMSlider() pos = manualSettingsDataPriv.FlightModeNumber - 1; } ui->fmsSlider->setValue(pos); + highlightStabilizationMode(pos); +} + +void ConfigInputWidget::highlightStabilizationMode(int pos) +{ + QComboBox *comboboxFm = this->findChild("fmsModePos" + QString::number(pos + 1)); + QString customStyleSheet = "border-radius: 4px; border:3px solid #feb103;"; + + if (comboboxFm) { + QString flightModeText = comboboxFm->currentText(); + comboboxFm->setStyleSheet(""); + for (uint8_t i = 0; i < FlightModeSettings::FLIGHTMODEPOSITION_NUMELEM; i++) { + QLabel *label = this->findChild("stab" + QString::number(i + 1) + "_label"); + QComboBox *comboRoll = this->findChild("fmsSsPos" + QString::number(i + 1) + "Roll"); + QComboBox *comboPitch = this->findChild("fmsSsPos" + QString::number(i + 1) + "Pitch"); + QComboBox *comboYaw = this->findChild("fmsSsPos" + QString::number(i + 1) + "Yaw"); + QComboBox *comboThrust = this->findChild("fmsSsPos" + QString::number(i + 1) + "Thrust"); + QComboBox *comboboxFm2 = this->findChild("fmsModePos" + QString::number(i + 1)); + comboboxFm2->setStyleSheet(""); + + // Highlight current stabilization mode if any. + if ((flightModeText.contains("Stabilized", Qt::CaseInsensitive)) && (flightModeText.contains(QString::number(i + 1), Qt::CaseInsensitive))) { + label->setStyleSheet("QLabel {" + customStyleSheet + "}"); + comboRoll->setStyleSheet("QComboBox {" + customStyleSheet + "}"); + comboPitch->setStyleSheet("QComboBox {" + customStyleSheet + "}"); + comboYaw->setStyleSheet("QComboBox {" + customStyleSheet + "}"); + comboThrust->setStyleSheet("QComboBox {" + customStyleSheet + "}"); + } else { + label->setStyleSheet(""); + comboRoll->setStyleSheet(""); + comboPitch->setStyleSheet(""); + comboYaw->setStyleSheet(""); + comboThrust->setStyleSheet(""); + if (!flightModeText.contains("Stabilized", Qt::CaseInsensitive)) { + // Highlight PosHold, Return to Base, ... flightmodes + comboboxFm->setStyleSheet("QComboBox {" + customStyleSheet + "}"); + } + } + } + } } void ConfigInputWidget::updatePositionSlider() diff --git a/ground/gcs/src/plugins/config/configinputwidget.h b/ground/gcs/src/plugins/config/configinputwidget.h index eb7778289..00e460f64 100644 --- a/ground/gcs/src/plugins/config/configinputwidget.h +++ b/ground/gcs/src/plugins/config/configinputwidget.h @@ -202,6 +202,8 @@ private: AccessoryDesired *getAccessoryDesiredInstance(int instance); float getAccessoryDesiredValue(int instance); + void highlightStabilizationMode(int pos); + private slots: void wzNext(); void wzNextDelayed(); diff --git a/ground/gcs/src/plugins/config/input.ui b/ground/gcs/src/plugins/config/input.ui index 3d55eea17..eb6f8113e 100644 --- a/ground/gcs/src/plugins/config/input.ui +++ b/ground/gcs/src/plugins/config/input.ui @@ -752,62 +752,62 @@ font:bold; 1 - + Stabilized 1 - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignCenter - + Stabilized 2 - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignCenter - + Stabilized 3 - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignCenter - + Stabilized 4 - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignCenter - + Stabilized 5 - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignCenter - + Stabilized 6 - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignCenter