1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-01-30 15:52:12 +01:00

OP-984 Closing in...

This commit is contained in:
Fredrik Arvidsson 2014-01-06 17:25:39 +01:00
parent f8714de85b
commit a2e0158bfb
2 changed files with 116 additions and 109 deletions

View File

@ -1312,7 +1312,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollMax</string>
<string>haslimits:no</string>
<string>scale:1</string>
@ -1346,7 +1346,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:ManualRate</string>
<string>element:Roll</string>
<string>haslimits:no</string>
@ -1394,7 +1394,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:ManualRate</string>
<string>element:Roll</string>
<string>haslimits:no</string>
@ -2583,7 +2583,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollMax</string>
<string>haslimits:no</string>
<string>scale:1</string>
@ -2617,7 +2617,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:ManualRate</string>
<string>element:Yaw</string>
<string>haslimits:no</string>
@ -2668,7 +2668,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:ManualRate</string>
<string>element:Yaw</string>
<string>haslimits:no</string>
@ -4448,7 +4448,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4487,7 +4487,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4562,7 +4562,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4612,7 +4612,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4651,7 +4651,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4690,7 +4690,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4740,7 +4740,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -4798,7 +4798,7 @@ value as the Kp.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -4837,7 +4837,7 @@ value as the Kp.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -4887,7 +4887,7 @@ value as the Kp.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -4937,7 +4937,7 @@ value as the Kp.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -4976,7 +4976,7 @@ value as the Kp.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -8349,7 +8349,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -8384,7 +8384,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -8434,7 +8434,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -8469,7 +8469,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -8519,7 +8519,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -8554,7 +8554,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -9989,7 +9989,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchMax</string>
<string>haslimits:no</string>
<string>scale:1</string>
@ -10072,7 +10072,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:MaximumRate</string>
<string>element:Roll</string>
<string>haslimits:no</string>
@ -10141,7 +10141,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:ManualRate</string>
<string>element:Yaw</string>
<string>haslimits:no</string>
@ -10194,7 +10194,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawMax</string>
<string>haslimits:no</string>
<string>scale:1</string>
@ -10246,7 +10246,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:MaximumRate</string>
<string>element:Pitch</string>
<string>haslimits:no</string>
@ -11456,7 +11456,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:ManualRate</string>
<string>element:Pitch</string>
<string>haslimits:no</string>
@ -12075,7 +12075,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:ManualRate</string>
<string>element:Roll</string>
<string>haslimits:no</string>
@ -12131,7 +12131,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollMax</string>
<string>haslimits:no</string>
<string>scale:1</string>
@ -12183,7 +12183,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:MaximumRate</string>
<string>element:Yaw</string>
<string>haslimits:no</string>
@ -13352,7 +13352,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchRatePID</string>
<string>element:Kd</string>
<string>haslimits:no</string>
@ -13971,7 +13971,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawRatePID</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -14021,7 +14021,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchRatePID</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -14071,7 +14071,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawRatePID</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -14121,7 +14121,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawRatePID</string>
<string>element:Kd</string>
<string>haslimits:no</string>
@ -15328,7 +15328,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollRatePID</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -15394,7 +15394,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollRatePID</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -15475,7 +15475,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchRatePID</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -15525,7 +15525,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollRatePID</string>
<string>element:Kd</string>
<string>haslimits:no</string>
@ -18378,7 +18378,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollPI</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -18428,7 +18428,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchPI</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -18478,7 +18478,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawPI</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -18563,7 +18563,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollPI</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -18629,7 +18629,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchPI</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -18695,7 +18695,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawPI</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -21937,7 +21937,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchRatePID</string>
<string>element:ILimit</string>
<string>haslimits:no</string>
@ -21990,7 +21990,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollRatePID</string>
<string>element:ILimit</string>
<string>haslimits:no</string>
@ -23140,7 +23140,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawPI</string>
<string>element:ILimit</string>
<string>haslimits:no</string>
@ -23221,7 +23221,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:PitchPI</string>
<string>element:ILimit</string>
<string>haslimits:no</string>
@ -23331,7 +23331,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:RollPI</string>
<string>element:ILimit</string>
<string>haslimits:no</string>
@ -23947,7 +23947,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1</string>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>fieldname:YawRatePID</string>
<string>element:ILimit</string>
<string>haslimits:no</string>

View File

@ -60,11 +60,12 @@ void ConfigTaskWidget::addUAVObject(UAVObject *objectName, QList<int> *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<int> *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<WidgetBinding *> 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<objectComparator> 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<QComboBox *>(widget)) {
connect(cb, SIGNAL(currentIndexChanged(int)), this, function);
connect(cb, SIGNAL(currentIndexChanged(int)), this, function, Qt::UniqueConnection);
} else if (QSlider * cb = qobject_cast<QSlider *>(widget)) {
connect(cb, SIGNAL(valueChanged(int)), this, function);
connect(cb, SIGNAL(valueChanged(int)), this, function, Qt::UniqueConnection);
} else if (MixerCurveWidget * cb = qobject_cast<MixerCurveWidget *>(widget)) {
connect(cb, SIGNAL(curveUpdated()), this, function);
connect(cb, SIGNAL(curveUpdated()), this, function, Qt::UniqueConnection);
} else if (QTableWidget * cb = qobject_cast<QTableWidget *>(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<QSpinBox *>(widget)) {
connect(cb, SIGNAL(valueChanged(int)), this, function);
connect(cb, SIGNAL(valueChanged(int)), this, function, Qt::UniqueConnection);
} else if (QDoubleSpinBox * cb = qobject_cast<QDoubleSpinBox *>(widget)) {
connect(cb, SIGNAL(valueChanged(double)), this, function);
connect(cb, SIGNAL(valueChanged(double)), this, function, Qt::UniqueConnection);
} else if (QCheckBox * cb = qobject_cast<QCheckBox *>(widget)) {
connect(cb, SIGNAL(stateChanged(int)), this, function);
connect(cb, SIGNAL(stateChanged(int)), this, function, Qt::UniqueConnection);
} else if (QPushButton * cb = qobject_cast<QPushButton *>(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<QComboBox *>(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());