1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-03-15 07:29:15 +01:00

OP-984 Added code to allow switching between pid banks by selecting tabs

The tabs are now dynamically created from a constant.
This commit is contained in:
Fredrik Arvidsson 2014-01-08 00:33:45 +01:00
parent 99cfa5339d
commit 958efa62e1
5 changed files with 104 additions and 58 deletions

View File

@ -47,17 +47,26 @@ ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTa
ui = new Ui_StabilizationWidget();
ui->setupUi(this);
// Set up fake tab widget stuff for pid banks support
m_pidTabBars.append(ui->basicPIDBankTabBar);
m_pidTabBars.append(ui->advancedPIDBankTabBar);
m_pidTabBars.append(ui->expertPIDBankTabBar);
foreach(QTabBar * tabBar, m_pidTabBars) {
for (int i = 1; i <= PID_BANKS; i++) {
tabBar->addTab(tr("PID Bank %1").arg(i));
for (int i = 0; i < PID_BANKS; i++) {
tabBar->addTab(tr("PID Bank %1").arg(i + 1));
tabBar->setTabData(i, QString("StabilizationSettingsBank%1").arg(i + 1));
}
tabBar->setExpanding(false);
connect(tabBar, SIGNAL(currentChanged(int)), this, SLOT(pidBankChanged(int)));
}
for (int i = 0; i < PID_BANKS; i++) {
if(i > 0) {
m_stabilizationObjectsString.append(",");
}
m_stabilizationObjectsString.append(m_pidTabBars.at(0)->tabData(i).toString());
}
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
Core::Internal::GeneralSettings *settings = pm->getObject<Core::Internal::GeneralSettings>();
@ -221,6 +230,10 @@ void ConfigStabilizationWidget::pidBankChanged(int index)
foreach(QTabBar * tabBar, m_pidTabBars) {
tabBar->setCurrentIndex(index);
}
for(int i = 0; i < m_pidTabBars.at(0)->count(); i++) {
setWidgetBindingObjectEnabled(m_pidTabBars.at(0)->tabData(i).toString(), index == i);
}
}
bool ConfigStabilizationWidget::shouldObjectBeSaved(UAVObject *object)
@ -232,3 +245,11 @@ bool ConfigStabilizationWidget::shouldObjectBeSaved(UAVObject *object)
return true;
}
}
QString ConfigStabilizationWidget::mapObjectName(const QString objectName)
{
if(objectName == "StabilizationSettingsBankX") {
return m_stabilizationObjectsString;
}
return ConfigTaskWidget::mapObjectName(objectName);
}

View File

@ -49,6 +49,7 @@ private:
Ui_StabilizationWidget *ui;
QTimer *realtimeUpdates;
QList<QTabBar*> m_pidTabBars;
QString m_stabilizationObjectsString;
// Milliseconds between automatic 'Instant Updates'
static const int AUTOMATIC_UPDATE_RATE = 500;
@ -56,6 +57,8 @@ private:
static const int PID_BANKS = 3;
int boardModel;
protected:
QString mapObjectName(const QString objectName);
protected slots:
void refreshWidgetsValues(UAVObject *o = NULL);

View File

@ -1336,7 +1336,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollMax</string>
<string>haslimits:no</string>
<string>scale:1</string>
@ -1370,7 +1370,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:ManualRate</string>
<string>element:Roll</string>
<string>haslimits:no</string>
@ -1418,7 +1418,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:ManualRate</string>
<string>element:Roll</string>
<string>haslimits:no</string>
@ -2607,7 +2607,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollMax</string>
<string>haslimits:no</string>
<string>scale:1</string>
@ -2641,7 +2641,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:ManualRate</string>
<string>element:Yaw</string>
<string>haslimits:no</string>
@ -2692,7 +2692,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:ManualRate</string>
<string>element:Yaw</string>
<string>haslimits:no</string>
@ -4394,7 +4394,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4433,7 +4433,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4508,7 +4508,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4558,7 +4558,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4597,7 +4597,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4636,7 +4636,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawRatePID</string>
<string>element:Kp</string>
<string>haslimits:yes</string>
@ -4686,7 +4686,7 @@ Then lower the value by 5 or so.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -4744,7 +4744,7 @@ value as the Kp.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -4783,7 +4783,7 @@ value as the Kp.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -4833,7 +4833,7 @@ value as the Kp.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -4883,7 +4883,7 @@ value as the Kp.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -4922,7 +4922,7 @@ value as the Kp.</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchRatePID</string>
<string>element:Ki</string>
<string>haslimits:yes</string>
@ -8373,7 +8373,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -8408,7 +8408,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -8458,7 +8458,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -8493,7 +8493,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -8543,7 +8543,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -8578,7 +8578,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawPI</string>
<string>element:Kp</string>
<string>scale:0.1</string>
@ -10055,7 +10055,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchRatePID</string>
<string>element:Kd</string>
<string>haslimits:no</string>
@ -10674,7 +10674,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawRatePID</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -10724,7 +10724,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchRatePID</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -10774,7 +10774,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawRatePID</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -10824,7 +10824,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawRatePID</string>
<string>element:Kd</string>
<string>haslimits:no</string>
@ -12031,7 +12031,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollRatePID</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -12097,7 +12097,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollRatePID</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -12178,7 +12178,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchRatePID</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -12228,7 +12228,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollRatePID</string>
<string>element:Kd</string>
<string>haslimits:no</string>
@ -13386,7 +13386,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchMax</string>
<string>haslimits:no</string>
<string>scale:1</string>
@ -13469,7 +13469,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:MaximumRate</string>
<string>element:Roll</string>
<string>haslimits:no</string>
@ -13538,7 +13538,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:ManualRate</string>
<string>element:Yaw</string>
<string>haslimits:no</string>
@ -13591,7 +13591,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawMax</string>
<string>haslimits:no</string>
<string>scale:1</string>
@ -13643,7 +13643,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:MaximumRate</string>
<string>element:Pitch</string>
<string>haslimits:no</string>
@ -14853,7 +14853,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:ManualRate</string>
<string>element:Pitch</string>
<string>haslimits:no</string>
@ -15472,7 +15472,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:ManualRate</string>
<string>element:Roll</string>
<string>haslimits:no</string>
@ -15528,7 +15528,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollMax</string>
<string>haslimits:no</string>
<string>scale:1</string>
@ -15580,7 +15580,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:MaximumRate</string>
<string>element:Yaw</string>
<string>haslimits:no</string>
@ -18442,7 +18442,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollPI</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -18492,7 +18492,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchPI</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -18542,7 +18542,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawPI</string>
<string>element:Kp</string>
<string>haslimits:no</string>
@ -18627,7 +18627,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollPI</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -18693,7 +18693,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchPI</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -18759,7 +18759,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawPI</string>
<string>element:Ki</string>
<string>haslimits:no</string>
@ -19364,7 +19364,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchRatePID</string>
<string>element:ILimit</string>
<string>haslimits:no</string>
@ -19417,7 +19417,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollRatePID</string>
<string>element:ILimit</string>
<string>haslimits:no</string>
@ -20567,7 +20567,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawPI</string>
<string>element:ILimit</string>
<string>haslimits:no</string>
@ -20648,7 +20648,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:PitchPI</string>
<string>element:ILimit</string>
<string>haslimits:no</string>
@ -20758,7 +20758,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:RollPI</string>
<string>element:ILimit</string>
<string>haslimits:no</string>
@ -21374,7 +21374,7 @@ border-radius: 5;</string>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettingsBank1,StabilizationSettingsBank2,StabilizationSettingsBank3</string>
<string>objname:StabilizationSettingsBankX</string>
<string>fieldname:YawRatePID</string>
<string>element:ILimit</string>
<string>haslimits:no</string>

View File

@ -64,7 +64,7 @@ int ConfigTaskWidget::fieldIndexFromElementName(QString objectName, QString fiel
return 0;
}
QString singleObjectName = objectName.split(",").at(0);
QString singleObjectName = mapObjectName(objectName).split(",").at(0);
UAVObject *object = getObject(singleObjectName);
Q_ASSERT(object);
@ -108,8 +108,10 @@ void ConfigTaskWidget::addWidgetBinding(UAVObject *object, UAVObjectField *field
void ConfigTaskWidget::addWidgetBinding(QString objectName, QString fieldName, QWidget *widget, int index, double scale,
bool isLimited, QList<int> *reloadGroupIDs, quint32 instID) {
QString mappedObjectName = mapObjectName(objectName);
// If object name is comma separated list of objects, call one time per objectName
foreach(QString singleObjectName, objectName.split(",")) {
foreach(QString singleObjectName, mappedObjectName.split(",")) {
doAddWidgetBinding(singleObjectName, fieldName, widget, index, scale, isLimited, reloadGroupIDs, instID);
}
}
@ -165,6 +167,19 @@ void ConfigTaskWidget::doAddWidgetBinding(QString objectName, QString fieldName,
}
}
void ConfigTaskWidget::setWidgetBindingObjectEnabled(QString objectName, bool enabled)
{
UAVObject* object = getObject(objectName);
Q_ASSERT(object);
foreach(WidgetBinding* binding, m_widgetBindingsPerObject.values(object)) {
binding->setIsEnabled(enabled);
if(enabled) {
setWidgetFromField(binding->widget(), binding->field(), binding->index(), binding->scale(), binding->isLimited());
}
}
}
ConfigTaskWidget::~ConfigTaskWidget()
{
if (m_saveButton) {
@ -1016,6 +1031,11 @@ UAVObject *ConfigTaskWidget::getObject(const QString name, quint32 instId)
return m_pluginManager->getObject<UAVObjectManager>()->getObject(name, instId);
}
QString ConfigTaskWidget::mapObjectName(const QString objectName)
{
return objectName;
}
void ConfigTaskWidget::updateEnableControls()
{
TelemetryManager *telMngr = m_pluginManager->getObject<TelemetryManager>();

View File

@ -151,6 +151,7 @@ public slots:
void invalidateObjects();
void apply();
void save();
void setWidgetBindingObjectEnabled(QString objectName, bool enabled);
signals:
// fired when a widgets contents changes
@ -243,6 +244,7 @@ protected slots:
protected:
virtual void enableControls(bool enable);
virtual QString mapObjectName(const QString objectName);
void checkWidgetsLimits(QWidget *widget, UAVObjectField *field, int index, bool hasLimits, QVariant value, double scale);
void updateEnableControls();