From a2e0158bfbd2ae0b6d9f08a709bd55d6e8a1731e Mon Sep 17 00:00:00 2001 From: Fredrik Arvidsson Date: Mon, 6 Jan 2014 17:25:39 +0100 Subject: [PATCH] OP-984 Closing in... --- .../src/plugins/config/stabilization.ui | 108 ++++++++-------- .../uavobjectwidgetutils/configtaskwidget.cpp | 117 ++++++++++-------- 2 files changed, 116 insertions(+), 109 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/config/stabilization.ui b/ground/openpilotgcs/src/plugins/config/stabilization.ui index 6b6bb6bf0..416e26590 100644 --- a/ground/openpilotgcs/src/plugins/config/stabilization.ui +++ b/ground/openpilotgcs/src/plugins/config/stabilization.ui @@ -1312,7 +1312,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollMax haslimits:no scale:1 @@ -1346,7 +1346,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:ManualRate element:Roll haslimits:no @@ -1394,7 +1394,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:ManualRate element:Roll haslimits:no @@ -2583,7 +2583,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollMax haslimits:no scale:1 @@ -2617,7 +2617,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:ManualRate element:Yaw haslimits:no @@ -2668,7 +2668,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:ManualRate element:Yaw haslimits:no @@ -4448,7 +4448,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollRatePID element:Kp haslimits:yes @@ -4487,7 +4487,7 @@ Then lower the value by 5 or so. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollRatePID element:Kp haslimits:yes @@ -4562,7 +4562,7 @@ Then lower the value by 5 or so. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawRatePID element:Kp haslimits:yes @@ -4612,7 +4612,7 @@ Then lower the value by 5 or so. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchRatePID element:Kp haslimits:yes @@ -4651,7 +4651,7 @@ Then lower the value by 5 or so. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchRatePID element:Kp haslimits:yes @@ -4690,7 +4690,7 @@ Then lower the value by 5 or so. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawRatePID element:Kp haslimits:yes @@ -4740,7 +4740,7 @@ Then lower the value by 5 or so. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollRatePID element:Ki haslimits:yes @@ -4798,7 +4798,7 @@ value as the Kp. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollRatePID element:Ki haslimits:yes @@ -4837,7 +4837,7 @@ value as the Kp. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawRatePID element:Ki haslimits:yes @@ -4887,7 +4887,7 @@ value as the Kp. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawRatePID element:Ki haslimits:yes @@ -4937,7 +4937,7 @@ value as the Kp. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchRatePID element:Ki haslimits:yes @@ -4976,7 +4976,7 @@ value as the Kp. - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchRatePID element:Ki haslimits:yes @@ -8349,7 +8349,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollPI element:Kp scale:0.1 @@ -8384,7 +8384,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollPI element:Kp scale:0.1 @@ -8434,7 +8434,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchPI element:Kp scale:0.1 @@ -8469,7 +8469,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchPI element:Kp scale:0.1 @@ -8519,7 +8519,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawPI element:Kp scale:0.1 @@ -8554,7 +8554,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawPI element:Kp scale:0.1 @@ -9989,7 +9989,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchMax haslimits:no scale:1 @@ -10072,7 +10072,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:MaximumRate element:Roll haslimits:no @@ -10141,7 +10141,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:ManualRate element:Yaw haslimits:no @@ -10194,7 +10194,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawMax haslimits:no scale:1 @@ -10246,7 +10246,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:MaximumRate element:Pitch haslimits:no @@ -11456,7 +11456,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:ManualRate element:Pitch haslimits:no @@ -12075,7 +12075,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:ManualRate element:Roll haslimits:no @@ -12131,7 +12131,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollMax haslimits:no scale:1 @@ -12183,7 +12183,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:MaximumRate element:Yaw haslimits:no @@ -13352,7 +13352,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchRatePID element:Kd haslimits:no @@ -13971,7 +13971,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawRatePID element:Ki haslimits:no @@ -14021,7 +14021,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchRatePID element:Ki haslimits:no @@ -14071,7 +14071,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawRatePID element:Kp haslimits:no @@ -14121,7 +14121,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawRatePID element:Kd haslimits:no @@ -15328,7 +15328,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollRatePID element:Kp haslimits:no @@ -15394,7 +15394,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollRatePID element:Ki haslimits:no @@ -15475,7 +15475,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchRatePID element:Kp haslimits:no @@ -15525,7 +15525,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollRatePID element:Kd haslimits:no @@ -18378,7 +18378,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollPI element:Kp haslimits:no @@ -18428,7 +18428,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchPI element:Kp haslimits:no @@ -18478,7 +18478,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawPI element:Kp haslimits:no @@ -18563,7 +18563,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollPI element:Ki haslimits:no @@ -18629,7 +18629,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchPI element:Ki haslimits:no @@ -18695,7 +18695,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawPI element:Ki haslimits:no @@ -21937,7 +21937,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchRatePID element:ILimit haslimits:no @@ -21990,7 +21990,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollRatePID element:ILimit haslimits:no @@ -23140,7 +23140,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawPI element:ILimit haslimits:no @@ -23221,7 +23221,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:PitchPI element:ILimit haslimits:no @@ -23331,7 +23331,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:RollPI element:ILimit haslimits:no @@ -23947,7 +23947,7 @@ border-radius: 5; - objname:StabilizationSettingsBank1 + objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3 fieldname:YawRatePID element:ILimit haslimits:no diff --git a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.cpp b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.cpp index e6af06247..1ac4a2c34 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.cpp @@ -60,11 +60,12 @@ void ConfigTaskWidget::addUAVObject(UAVObject *objectName, QList *reloadGro int ConfigTaskWidget::fieldIndexFromElementName(QString objectName, QString fieldName, QString elementName) { - if (elementName.isEmpty()) { + if (elementName.isEmpty() || objectName.isEmpty()) { return 0; } - UAVObject *object = getObject(objectName); + QString singleObjectName = objectName.split(",").at(0); + UAVObject *object = getObject(singleObjectName); Q_ASSERT(object); UAVObjectField *field = object->getField(fieldName); @@ -153,12 +154,14 @@ void ConfigTaskWidget::doAddWidgetBinding(QString objectName, QString fieldName, m_reloadGroups.insert(groupId, binding); } } - } else { + } else { connectWidgetUpdatesToSlot(widget, SLOT(widgetsContentsChanged())); if (reloadGroupIDs) { addWidgetToReloadGroups(widget, reloadGroupIDs); } - loadWidgetLimits(widget, field, index, isLimited, scale); + if(binding->isEnabled()) { + loadWidgetLimits(widget, field, index, isLimited, scale); + } } } @@ -247,7 +250,7 @@ void ConfigTaskWidget::onAutopilotConnect() } invalidateObjects(); m_isConnected = true; - foreach(WidgetBinding * binding, m_widgetBindingsPerWidget) { + foreach(WidgetBinding * binding, m_widgetBindingsPerObject) { if (!binding->isEnabled()) { continue; } @@ -263,7 +266,7 @@ void ConfigTaskWidget::populateWidgets() bool dirtyBack = m_isDirty; emit populateWidgetsRequested(); - foreach(WidgetBinding * binding, m_widgetBindingsPerWidget) { + foreach(WidgetBinding * binding, m_widgetBindingsPerObject) { if (binding->isEnabled() && binding->object() != NULL && binding->field() != NULL && binding->widget() != NULL) { setWidgetFromField(binding->widget(), binding->field(), binding->index(), binding->scale(), binding->isLimited()); } @@ -279,8 +282,8 @@ void ConfigTaskWidget::refreshWidgetsValues(UAVObject *obj) bool dirtyBack = m_isDirty; emit refreshWidgetsValuesRequested(); - foreach(WidgetBinding * binding, m_widgetBindingsPerWidget) { - if (binding->isEnabled() && binding->object() == obj && binding->field() != NULL && binding->widget() != NULL) { + foreach(WidgetBinding * binding, m_widgetBindingsPerObject.values(obj)) { + if (binding->isEnabled() && binding->field() != NULL && binding->widget() != NULL) { setWidgetFromField(binding->widget(), binding->field(), binding->index(), binding->scale(), binding->isLimited()); } } @@ -291,7 +294,7 @@ void ConfigTaskWidget::updateObjectsFromWidgets() { emit updateObjectsFromWidgetsRequested(); - foreach(WidgetBinding * binding, m_widgetBindingsPerWidget) { + foreach(WidgetBinding * binding, m_widgetBindingsPerObject) { if (binding->isEnabled() && binding->object() != NULL && binding->field() != NULL) { setFieldFromWidget(binding->widget(), binding->field(), binding->index(), binding->scale()); } @@ -339,7 +342,7 @@ void ConfigTaskWidget::enableControls(bool enable) button->setEnabled(enable); } - foreach(WidgetBinding * binding, m_widgetBindingsPerWidget) { + foreach(WidgetBinding * binding, m_widgetBindingsPerObject) { if (binding->isEnabled() && binding->widget()) { binding->widget()->setEnabled(enable); foreach(ShadowWidgetBinding * shadow, binding->shadows()) { @@ -357,7 +360,10 @@ bool ConfigTaskWidget::shouldObjectBeSaved(UAVObject *object) void ConfigTaskWidget::forceShadowUpdates() { - foreach(WidgetBinding * binding, m_widgetBindingsPerWidget) { + foreach(WidgetBinding * binding, m_widgetBindingsPerObject) { + if(!binding->isEnabled()) { + continue; + } QVariant widgetValue = getVariantFromWidget(binding->widget(), binding->scale(), binding->units()); foreach(ShadowWidgetBinding * shadow, binding->shadows()) { @@ -378,42 +384,43 @@ void ConfigTaskWidget::widgetsContentsChanged() QWidget *emitter = ((QWidget *)sender()); emit widgetContentsChanged(emitter); double scale; - WidgetBinding *binding = m_widgetBindingsPerWidget.value(emitter, NULL); + foreach(WidgetBinding *binding ,m_widgetBindingsPerWidget.values(emitter)) { - if (binding) { - if (binding->widget() == emitter) { - scale = binding->scale(); - checkWidgetsLimits(emitter, binding->field(), binding->index(), binding->isLimited(), - getVariantFromWidget(emitter, binding->scale(), binding->units()), binding->scale()); - } else { - foreach(ShadowWidgetBinding * shadow, binding->shadows()) { - if (shadow->widget() == emitter) { - scale = shadow->scale(); - checkWidgetsLimits(emitter, binding->field(), binding->index(), shadow->isLimited(), - getVariantFromWidget(emitter, shadow->scale(), binding->units()), scale); + if (binding && binding->isEnabled()) { + if (binding->widget() == emitter) { + scale = binding->scale(); + checkWidgetsLimits(emitter, binding->field(), binding->index(), binding->isLimited(), + getVariantFromWidget(emitter, binding->scale(), binding->units()), binding->scale()); + } else { + foreach(ShadowWidgetBinding * shadow, binding->shadows()) { + if (shadow->widget() == emitter) { + scale = shadow->scale(); + checkWidgetsLimits(emitter, binding->field(), binding->index(), shadow->isLimited(), + getVariantFromWidget(emitter, shadow->scale(), binding->units()), scale); + } } } - } - if (binding->widget() != emitter) { - disconnectWidgetUpdatesToSlot(binding->widget(), SLOT(widgetsContentsChanged())); + if (binding->widget() != emitter) { + disconnectWidgetUpdatesToSlot(binding->widget(), SLOT(widgetsContentsChanged())); - checkWidgetsLimits(binding->widget(), binding->field(), binding->index(), binding->isLimited(), - getVariantFromWidget(emitter, scale, binding->units()), binding->scale()); - setWidgetFromVariant(binding->widget(), getVariantFromWidget(emitter, scale, binding->units()), binding->scale()); - emit widgetContentsChanged(binding->widget()); + checkWidgetsLimits(binding->widget(), binding->field(), binding->index(), binding->isLimited(), + getVariantFromWidget(emitter, scale, binding->units()), binding->scale()); + setWidgetFromVariant(binding->widget(), getVariantFromWidget(emitter, scale, binding->units()), binding->scale()); + emit widgetContentsChanged(binding->widget()); - connectWidgetUpdatesToSlot(binding->widget(), SLOT(widgetsContentsChanged())); - } - foreach(ShadowWidgetBinding * shadow, binding->shadows()) { - if (shadow->widget() != emitter) { - disconnectWidgetUpdatesToSlot(shadow->widget(), SLOT(widgetsContentsChanged())); + connectWidgetUpdatesToSlot(binding->widget(), SLOT(widgetsContentsChanged())); + } + foreach(ShadowWidgetBinding * shadow, binding->shadows()) { + if (shadow->widget() != emitter) { + disconnectWidgetUpdatesToSlot(shadow->widget(), SLOT(widgetsContentsChanged())); - checkWidgetsLimits(shadow->widget(), binding->field(), binding->index(), shadow->isLimited(), - getVariantFromWidget(emitter, scale, binding->units()), shadow->scale()); - setWidgetFromVariant(shadow->widget(), getVariantFromWidget(emitter, scale, binding->units()), shadow->scale()); - emit widgetContentsChanged(shadow->widget()); + checkWidgetsLimits(shadow->widget(), binding->field(), binding->index(), shadow->isLimited(), + getVariantFromWidget(emitter, scale, binding->units()), shadow->scale()); + setWidgetFromVariant(shadow->widget(), getVariantFromWidget(emitter, scale, binding->units()), shadow->scale()); + emit widgetContentsChanged(shadow->widget()); - connectWidgetUpdatesToSlot(shadow->widget(), SLOT(widgetsContentsChanged())); + connectWidgetUpdatesToSlot(shadow->widget(), SLOT(widgetsContentsChanged())); + } } } } @@ -508,7 +515,7 @@ bool ConfigTaskWidget::addShadowWidgetBinding(QString objectName, QString fieldN QList *defaultReloadGroups, quint32 instID) { foreach(WidgetBinding * binding, m_widgetBindingsPerWidget) { - if (!binding->isEnabled() || !binding->object() || !binding->widget() || !binding->field()) { + if (!binding->object() || !binding->widget() || !binding->field()) { continue; } if (binding->matches(objectName, fieldName, index, instID)) { @@ -519,7 +526,9 @@ bool ConfigTaskWidget::addShadowWidgetBinding(QString objectName, QString fieldN if (defaultReloadGroups) { addWidgetToReloadGroups(widget, defaultReloadGroups); } - loadWidgetLimits(widget, binding->field(), binding->index(), isLimited, scale); + if(!binding->isEnabled()) { + loadWidgetLimits(widget, binding->field(), binding->index(), isLimited, scale); + } return true; } } @@ -630,7 +639,7 @@ void ConfigTaskWidget::autoLoadWidgets() refreshWidgetsValues(); forceShadowUpdates(); - foreach(WidgetBinding * binding, m_widgetBindingsPerWidget) { + foreach(WidgetBinding * binding, m_widgetBindingsPerObject) { if (binding->widget()) { qDebug() << "Binding :" << binding->widget()->objectName(); qDebug() << " Object :" << binding->object()->getName(); @@ -689,7 +698,7 @@ void ConfigTaskWidget::defaultButtonClicked() QList bindings = m_reloadGroups.values(groupID); foreach(WidgetBinding * binding, bindings) { - if (!binding->object() || !binding->field()) { + if (!binding->isEnabled() || !binding->object() || !binding->field()) { continue; } UAVDataObject *temp = ((UAVDataObject *)binding->object())->dirtyClone(); @@ -715,7 +724,7 @@ void ConfigTaskWidget::reloadButtonClicked() QList temp; foreach(WidgetBinding * binding, bindings) { - if (binding->object() != NULL) { + if (binding->isEnabled() && binding->object() != NULL) { objectComparator value; value.objid = binding->object()->getObjID(); value.objinstid = binding->object()->getInstID(); @@ -758,21 +767,21 @@ void ConfigTaskWidget::connectWidgetUpdatesToSlot(QWidget *widget, const char *f return; } if (QComboBox * cb = qobject_cast(widget)) { - connect(cb, SIGNAL(currentIndexChanged(int)), this, function); + connect(cb, SIGNAL(currentIndexChanged(int)), this, function, Qt::UniqueConnection); } else if (QSlider * cb = qobject_cast(widget)) { - connect(cb, SIGNAL(valueChanged(int)), this, function); + connect(cb, SIGNAL(valueChanged(int)), this, function, Qt::UniqueConnection); } else if (MixerCurveWidget * cb = qobject_cast(widget)) { - connect(cb, SIGNAL(curveUpdated()), this, function); + connect(cb, SIGNAL(curveUpdated()), this, function, Qt::UniqueConnection); } else if (QTableWidget * cb = qobject_cast(widget)) { - connect(cb, SIGNAL(cellChanged(int, int)), this, function); + connect(cb, SIGNAL(cellChanged(int, int)), this, function, Qt::UniqueConnection); } else if (QSpinBox * cb = qobject_cast(widget)) { - connect(cb, SIGNAL(valueChanged(int)), this, function); + connect(cb, SIGNAL(valueChanged(int)), this, function, Qt::UniqueConnection); } else if (QDoubleSpinBox * cb = qobject_cast(widget)) { - connect(cb, SIGNAL(valueChanged(double)), this, function); + connect(cb, SIGNAL(valueChanged(double)), this, function, Qt::UniqueConnection); } else if (QCheckBox * cb = qobject_cast(widget)) { - connect(cb, SIGNAL(stateChanged(int)), this, function); + connect(cb, SIGNAL(stateChanged(int)), this, function, Qt::UniqueConnection); } else if (QPushButton * cb = qobject_cast(widget)) { - connect(cb, SIGNAL(clicked()), this, function); + connect(cb, SIGNAL(clicked()), this, function, Qt::UniqueConnection); } else { qDebug() << __FUNCTION__ << "widget binding not implemented" << widget->metaObject()->className(); } @@ -847,7 +856,6 @@ QVariant ConfigTaskWidget::getVariantFromWidget(QWidget *widget, double scale, Q bool ConfigTaskWidget::setWidgetFromVariant(QWidget *widget, QVariant value, double scale, QString units) { - qDebug() << widget->objectName() << "=" << value; if (QComboBox * cb = qobject_cast(widget)) { cb->setCurrentIndex(cb->findText(value.toString())); return true; @@ -902,7 +910,6 @@ bool ConfigTaskWidget::setWidgetFromField(QWidget *widget, UAVObjectField *field loadWidgetLimits(cb, field, index, hasLimits, scale); } } - qDebug() << field->getName() << ":" << index; QVariant value = field->getValue(index); checkWidgetsLimits(widget, field, index, hasLimits, value, scale); bool result = setWidgetFromVariant(widget, value, scale, field->getUnits());