mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-29 14:52:12 +01:00
Fix 'smart' throttle/flight mode channel assignment, it works now. Someone please test & report.
OP-522
This commit is contained in:
parent
3a3c88cefa
commit
1ac92643b7
@ -70,15 +70,6 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent)
|
|||||||
<< m_config->ch6Min
|
<< m_config->ch6Min
|
||||||
<< m_config->ch7Min;
|
<< m_config->ch7Min;
|
||||||
|
|
||||||
inNeuLabels << m_config->ch0Cur
|
|
||||||
<< m_config->ch1Cur
|
|
||||||
<< m_config->ch2Cur
|
|
||||||
<< m_config->ch3Cur
|
|
||||||
<< m_config->ch4Cur
|
|
||||||
<< m_config->ch5Cur
|
|
||||||
<< m_config->ch6Cur
|
|
||||||
<< m_config->ch7Cur;
|
|
||||||
|
|
||||||
inSliders << m_config->inSlider0
|
inSliders << m_config->inSlider0
|
||||||
<< m_config->inSlider1
|
<< m_config->inSlider1
|
||||||
<< m_config->inSlider2
|
<< m_config->inSlider2
|
||||||
@ -97,6 +88,14 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent)
|
|||||||
<< m_config->ch6Rev
|
<< m_config->ch6Rev
|
||||||
<< m_config->ch7Rev;
|
<< m_config->ch7Rev;
|
||||||
|
|
||||||
|
inChannelAssign << m_config->ch0Assign
|
||||||
|
<< m_config->ch1Assign
|
||||||
|
<< m_config->ch2Assign
|
||||||
|
<< m_config->ch3Assign
|
||||||
|
<< m_config->ch4Assign
|
||||||
|
<< m_config->ch5Assign
|
||||||
|
<< m_config->ch6Assign
|
||||||
|
<< m_config->ch7Assign;
|
||||||
|
|
||||||
// Now connect the widget to the ManualControlCommand / Channel UAVObject
|
// Now connect the widget to the ManualControlCommand / Channel UAVObject
|
||||||
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(objManager->getObject(QString("ManualControlCommand")));
|
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(objManager->getObject(QString("ManualControlCommand")));
|
||||||
@ -166,15 +165,6 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent)
|
|||||||
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(onAutopilotConnect()));
|
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(onAutopilotConnect()));
|
||||||
connect(parent, SIGNAL(autopilotDisconnected()), this, SLOT(onAutopilotDisconnect()));
|
connect(parent, SIGNAL(autopilotDisconnected()), this, SLOT(onAutopilotDisconnect()));
|
||||||
|
|
||||||
connect(m_config->inSlider0, SIGNAL(valueChanged(int)),this, SLOT(onInSliderValueChanged0(int)));
|
|
||||||
connect(m_config->inSlider1, SIGNAL(valueChanged(int)),this, SLOT(onInSliderValueChanged1(int)));
|
|
||||||
connect(m_config->inSlider2, SIGNAL(valueChanged(int)),this, SLOT(onInSliderValueChanged2(int)));
|
|
||||||
connect(m_config->inSlider3, SIGNAL(valueChanged(int)),this, SLOT(onInSliderValueChanged3(int)));
|
|
||||||
connect(m_config->inSlider4, SIGNAL(valueChanged(int)),this, SLOT(onInSliderValueChanged4(int)));
|
|
||||||
connect(m_config->inSlider5, SIGNAL(valueChanged(int)),this, SLOT(onInSliderValueChanged5(int)));
|
|
||||||
connect(m_config->inSlider6, SIGNAL(valueChanged(int)),this, SLOT(onInSliderValueChanged6(int)));
|
|
||||||
connect(m_config->inSlider7, SIGNAL(valueChanged(int)),this, SLOT(onInSliderValueChanged7(int)));
|
|
||||||
|
|
||||||
connect(m_config->ch0Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool)));
|
connect(m_config->ch0Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool)));
|
||||||
connect(m_config->ch1Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool)));
|
connect(m_config->ch1Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool)));
|
||||||
connect(m_config->ch2Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool)));
|
connect(m_config->ch2Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool)));
|
||||||
@ -213,49 +203,6 @@ void ConfigInputWidget::reverseCheckboxClicked(bool state)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ************************************
|
|
||||||
// slider value changed signals
|
|
||||||
|
|
||||||
void ConfigInputWidget::onInSliderValueChanged0(int value)
|
|
||||||
{
|
|
||||||
inNeuLabels[0]->setText(QString::number(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConfigInputWidget::onInSliderValueChanged1(int value)
|
|
||||||
{
|
|
||||||
inNeuLabels[1]->setText(QString::number(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConfigInputWidget::onInSliderValueChanged2(int value)
|
|
||||||
{
|
|
||||||
inNeuLabels[2]->setText(QString::number(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConfigInputWidget::onInSliderValueChanged3(int value)
|
|
||||||
{
|
|
||||||
inNeuLabels[3]->setText(QString::number(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConfigInputWidget::onInSliderValueChanged4(int value)
|
|
||||||
{
|
|
||||||
inNeuLabels[4]->setText(QString::number(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConfigInputWidget::onInSliderValueChanged5(int value)
|
|
||||||
{
|
|
||||||
inNeuLabels[5]->setText(QString::number(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConfigInputWidget::onInSliderValueChanged6(int value)
|
|
||||||
{
|
|
||||||
inNeuLabels[6]->setText(QString::number(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConfigInputWidget::onInSliderValueChanged7(int value)
|
|
||||||
{
|
|
||||||
inNeuLabels[7]->setText(QString::number(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************
|
// ************************************
|
||||||
|
|
||||||
@ -269,8 +216,6 @@ void ConfigInputWidget::enableControls(bool enable)
|
|||||||
//m_config->saveRCInputToRAM->setEnabled(enable);
|
//m_config->saveRCInputToRAM->setEnabled(enable);
|
||||||
m_config->saveRCInputToSD->setEnabled(enable);
|
m_config->saveRCInputToSD->setEnabled(enable);
|
||||||
m_config->doRCInputCalibration->setEnabled(enable);
|
m_config->doRCInputCalibration->setEnabled(enable);
|
||||||
|
|
||||||
m_config->doRCInputCalibration->setChecked(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -319,14 +264,9 @@ void ConfigInputWidget::refreshValues()
|
|||||||
m_config->receiverType->setCurrentIndex(m_config->receiverType->findText(field->getValue().toString()));
|
m_config->receiverType->setCurrentIndex(m_config->receiverType->findText(field->getValue().toString()));
|
||||||
|
|
||||||
// Reset all channel assignement dropdowns:
|
// Reset all channel assignement dropdowns:
|
||||||
m_config->ch0Assign->setCurrentIndex(0);
|
foreach (QComboBox *combo, inChannelAssign) {
|
||||||
m_config->ch1Assign->setCurrentIndex(0);
|
combo->setCurrentIndex(0);
|
||||||
m_config->ch2Assign->setCurrentIndex(0);
|
}
|
||||||
m_config->ch3Assign->setCurrentIndex(0);
|
|
||||||
m_config->ch4Assign->setCurrentIndex(0);
|
|
||||||
m_config->ch5Assign->setCurrentIndex(0);
|
|
||||||
m_config->ch6Assign->setCurrentIndex(0);
|
|
||||||
m_config->ch7Assign->setCurrentIndex(0);
|
|
||||||
|
|
||||||
// Update all channels assignements
|
// Update all channels assignements
|
||||||
QList<UAVObjectField *> fieldList = obj->getFields();
|
QList<UAVObjectField *> fieldList = obj->getFields();
|
||||||
@ -553,6 +493,10 @@ void ConfigInputWidget::updateChannels(UAVObject* controlCommand)
|
|||||||
field->setValue(0,i);
|
field->setValue(0,i);
|
||||||
}
|
}
|
||||||
obj->updated();
|
obj->updated();
|
||||||
|
|
||||||
|
// Last, make sure the user won't apply/save during calibration
|
||||||
|
m_config->saveRCInputToRAM->setEnabled(false);
|
||||||
|
m_config->saveRCInputToSD->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
field = controlCommand->getField(QString("Channel"));
|
field = controlCommand->getField(QString("Channel"));
|
||||||
@ -574,20 +518,42 @@ void ConfigInputWidget::updateChannels(UAVObject* controlCommand)
|
|||||||
obj->setMetadata(mdata);
|
obj->setMetadata(mdata);
|
||||||
|
|
||||||
// Set some slider values to better defaults
|
// Set some slider values to better defaults
|
||||||
ManualControlSettings * manualSettings = ManualControlSettings::GetInstance(getObjectManager());
|
// Find what channel we used for throttle, set it 5% about min:
|
||||||
ManualControlSettings::DataFields manualSettingsData = manualSettings->getData();
|
int throttleChannel = -1;
|
||||||
uint throttleIndex = manualSettingsData.Throttle;
|
int fmChannel = -1;
|
||||||
uint flightModeIndex = manualSettingsData.FlightMode;
|
for (int i=0; i < inChannelAssign.length(); i++) {
|
||||||
if(throttleIndex < manualSettings->THROTTLE_NONE) {
|
if (inChannelAssign.at(i)->currentText() == "Throttle") {
|
||||||
// Throttle neutral defaults to 5% of range
|
// TODO: this is very ugly, because this relies on the name of the
|
||||||
manualSettingsData.ChannelNeutral[throttleIndex] = 0.05 * (manualSettingsData.ChannelMax[throttleIndex] - manualSettingsData.ChannelMin[throttleIndex]) + manualSettingsData.ChannelMin[throttleIndex];
|
// channel input, everywhere else in the gadget we don't rely on the
|
||||||
qDebug() << manualSettingsData.ChannelNeutral[throttleIndex];
|
// naming...
|
||||||
|
throttleChannel = i;
|
||||||
|
}
|
||||||
|
if (inChannelAssign.at(i)->currentText() == "FlightMode") {
|
||||||
|
// TODO: this is very ugly, because this relies on the name of the
|
||||||
|
// channel input, everywhere else in the gadget we don't rely on the
|
||||||
|
// naming...
|
||||||
|
fmChannel = i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(flightModeIndex < manualSettings->FLIGHTMODE_NONE) {
|
|
||||||
// Flight mode neutral defaults to 50% of range
|
// Throttle neutral defaults to 2% of range
|
||||||
manualSettingsData.ChannelNeutral[flightModeIndex] = 0.5 * (manualSettingsData.ChannelMax[flightModeIndex] - manualSettingsData.ChannelMin[flightModeIndex]) + manualSettingsData.ChannelMin[flightModeIndex];
|
if (throttleChannel > -1) {
|
||||||
|
inSliders.at(throttleChannel)->setValue(
|
||||||
|
inSliders.at(throttleChannel)->minimum() +
|
||||||
|
(inSliders.at(throttleChannel)->maximum()-
|
||||||
|
inSliders.at(throttleChannel)->minimum())*0.02);
|
||||||
}
|
}
|
||||||
manualSettings->setData(manualSettingsData);
|
|
||||||
|
// Flight mode at 50% of range:
|
||||||
|
if (fmChannel > -1) {
|
||||||
|
inSliders.at(fmChannel)->setValue(
|
||||||
|
inSliders.at(fmChannel)->minimum()+
|
||||||
|
(inSliders.at(fmChannel)->maximum()-
|
||||||
|
inSliders.at(fmChannel)->minimum())*0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_config->saveRCInputToRAM->setEnabled(true);
|
||||||
|
m_config->saveRCInputToSD->setEnabled(true);
|
||||||
}
|
}
|
||||||
firstUpdate = true;
|
firstUpdate = true;
|
||||||
}
|
}
|
||||||
|
@ -47,15 +47,6 @@ public:
|
|||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
void onInSliderValueChanged0(int value);
|
|
||||||
void onInSliderValueChanged1(int value);
|
|
||||||
void onInSliderValueChanged2(int value);
|
|
||||||
void onInSliderValueChanged3(int value);
|
|
||||||
void onInSliderValueChanged4(int value);
|
|
||||||
void onInSliderValueChanged5(int value);
|
|
||||||
void onInSliderValueChanged6(int value);
|
|
||||||
void onInSliderValueChanged7(int value);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui_InputWidget *m_config;
|
Ui_InputWidget *m_config;
|
||||||
|
|
||||||
@ -75,6 +66,7 @@ private:
|
|||||||
QList<QLabel*> inMinLabels;
|
QList<QLabel*> inMinLabels;
|
||||||
QList<QLabel*> inNeuLabels;
|
QList<QLabel*> inNeuLabels;
|
||||||
QList<QCheckBox*> inRevCheckboxes;
|
QList<QCheckBox*> inRevCheckboxes;
|
||||||
|
QList<QComboBox*> inChannelAssign;
|
||||||
|
|
||||||
bool firstUpdate;
|
bool firstUpdate;
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1000</string>
|
<string>1500</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -160,7 +160,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1000</string>
|
<string>1500</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -268,7 +268,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1000</string>
|
<string>1500</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -376,7 +376,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1000</string>
|
<string>1500</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -484,7 +484,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1000</string>
|
<string>1500</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -592,7 +592,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1000</string>
|
<string>1500</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -700,7 +700,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1000</string>
|
<string>1500</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -912,7 +912,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1000</string>
|
<string>1500</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -1460,5 +1460,134 @@ Applies and Saves all settings to SD</string>
|
|||||||
<resources>
|
<resources>
|
||||||
<include location="../coreplugin/core.qrc"/>
|
<include location="../coreplugin/core.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections/>
|
<connections>
|
||||||
|
<connection>
|
||||||
|
<sender>inSlider0</sender>
|
||||||
|
<signal>valueChanged(int)</signal>
|
||||||
|
<receiver>ch0Cur</receiver>
|
||||||
|
<slot>setNum(int)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>291</x>
|
||||||
|
<y>93</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>150</x>
|
||||||
|
<y>104</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>inSlider1</sender>
|
||||||
|
<signal>valueChanged(int)</signal>
|
||||||
|
<receiver>ch1Cur</receiver>
|
||||||
|
<slot>setNum(int)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>283</x>
|
||||||
|
<y>137</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>160</x>
|
||||||
|
<y>138</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>inSlider2</sender>
|
||||||
|
<signal>valueChanged(int)</signal>
|
||||||
|
<receiver>ch2Cur</receiver>
|
||||||
|
<slot>setNum(int)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>341</x>
|
||||||
|
<y>163</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>156</x>
|
||||||
|
<y>167</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>inSlider3</sender>
|
||||||
|
<signal>valueChanged(int)</signal>
|
||||||
|
<receiver>ch3Cur</receiver>
|
||||||
|
<slot>setNum(int)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>283</x>
|
||||||
|
<y>211</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>159</x>
|
||||||
|
<y>210</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>inSlider4</sender>
|
||||||
|
<signal>valueChanged(int)</signal>
|
||||||
|
<receiver>ch4Cur</receiver>
|
||||||
|
<slot>setNum(int)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>287</x>
|
||||||
|
<y>239</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>156</x>
|
||||||
|
<y>242</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>inSlider5</sender>
|
||||||
|
<signal>valueChanged(int)</signal>
|
||||||
|
<receiver>ch5Cur</receiver>
|
||||||
|
<slot>setNum(int)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>309</x>
|
||||||
|
<y>272</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>164</x>
|
||||||
|
<y>276</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>inSlider6</sender>
|
||||||
|
<signal>valueChanged(int)</signal>
|
||||||
|
<receiver>ch6Cur</receiver>
|
||||||
|
<slot>setNum(int)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>282</x>
|
||||||
|
<y>300</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>144</x>
|
||||||
|
<y>311</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>inSlider7</sender>
|
||||||
|
<signal>valueChanged(int)</signal>
|
||||||
|
<receiver>ch7Cur</receiver>
|
||||||
|
<slot>setNum(int)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>278</x>
|
||||||
|
<y>339</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>168</x>
|
||||||
|
<y>340</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
</connections>
|
||||||
</ui>
|
</ui>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user