/** Refreshes the current value of the SystemSettings which holds the aircraft type Note: The default behavior of ConfigTaskWidget is bypassed. Therefore no automatic synchronization of UAV Objects to UI is done. */ void ConfigVehicleTypeWidget::refreshWidgetsValues(UAVObject *o) { Q_UNUSED(o); if (!allObjectsUpdated()) { return; } bool dirty = isDirty(); // Get the Airframe type from the system settings: UAVDataObject *system = dynamic_cast<UAVDataObject *>(getObjectManager()->getObject(QString("SystemSettings"))); Q_ASSERT(system); UAVObjectField *field = system->getField(QString("AirframeType")); Q_ASSERT(field); // At this stage, we will need to have some hardcoded settings in this code QString frameType = field->getValue().toString(); // Always update custom tab from others airframe settings : debug/learn hardcoded mixers int category = frameCategory("Custom"); m_aircraft->aircraftType->setCurrentIndex(category); VehicleConfig *vehicleConfig = getVehicleConfigWidget(category); if (vehicleConfig) { vehicleConfig->refreshWidgetsValues("Custom"); } // Switch to Airframe currently used category = frameCategory(frameType); if (frameType != "Custom") { m_aircraft->aircraftType->setCurrentIndex(category); VehicleConfig *vehicleConfig = getVehicleConfigWidget(category); if (vehicleConfig) { vehicleConfig->refreshWidgetsValues(frameType); } } field = system->getField(QString("VehicleName")); Q_ASSERT(field); QString name; for (uint i = 0; i < field->getNumElements(); ++i) { QChar chr = field->getValue(i).toChar(); if (chr != 0) { name.append(chr); } else { break; } } m_aircraft->nameEdit->setText(name); updateFeedForwardUI(); setDirty(dirty); }
/** Refreshes the current value of the SystemSettings which holds the aircraft type Note: The default behavior of ConfigTaskWidget is bypassed. Therefore no automatic synchronization of UAV Objects to UI is done. */ void ConfigVehicleTypeWidget::refreshWidgetsValues(UAVObject *o) { Q_UNUSED(o); if (!allObjectsUpdated()) { return; } bool dirty = isDirty(); // Get the Airframe type from the system settings: UAVDataObject *system = dynamic_cast<UAVDataObject *>(getObjectManager()->getObject(QString("SystemSettings"))); Q_ASSERT(system); UAVObjectField *field = system->getField(QString("AirframeType")); Q_ASSERT(field); // At this stage, we will need to have some hardcoded settings in this code, this // is not ideal, but there you go. QString frameType = field->getValue().toString(); qDebug() << "ConfigVehicleTypeWidget::refreshWidgetsValues - frame type:" << frameType; QString category = frameCategory(frameType); setComboCurrentIndex(m_aircraft->aircraftType, m_aircraft->aircraftType->findText(category)); VehicleConfig *vehicleConfig = getVehicleConfigWidget(category); if (vehicleConfig) { vehicleConfig->refreshWidgetsValues(frameType); } updateFeedForwardUI(); setDirty(dirty); qDebug() << "ConfigVehicleTypeWidget::refreshWidgetsValues - end"; }