1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-20 10:54:14 +01:00

LP-505 Add erase/unbind button icon - Cleanup names and logic

This commit is contained in:
Laurent Lalanne 2017-05-07 12:30:57 +02:00
parent b42d6d0ecf
commit d3280b0bbf
4 changed files with 166 additions and 91 deletions

View File

@ -68,8 +68,9 @@ ConfigOPLinkWidget::ConfigOPLinkWidget(QWidget *parent) : ConfigTaskWidget(paren
addWidget(m_oplink->MinFreq);
addWidget(m_oplink->MaxFreq);
addWidget(m_oplink->UnbindButton);
addWidget(m_oplink->PairSignalStrengthBar1);
addWidget(m_oplink->PairSignalStrengthLabel1);
addWidget(m_oplink->ClearDeviceButton);
addWidget(m_oplink->SignalStrengthBar);
addWidget(m_oplink->SignalStrengthLabel);
addWidgetBinding("OPLinkSettings", "Protocol", m_oplink->Protocol);
addWidgetBinding("OPLinkSettings", "LinkType", m_oplink->LinkType);
@ -128,8 +129,9 @@ ConfigOPLinkWidget::ConfigOPLinkWidget(QWidget *parent) : ConfigTaskWidget(paren
connect(m_oplink->RadioAuxStream, SIGNAL(currentIndexChanged(int)), this, SLOT(radioAuxStreamChanged()));
connect(m_oplink->VCPBridge, SIGNAL(currentIndexChanged(int)), this, SLOT(vcpBridgeChanged()));
// Connect the Unbind button
// Connect the Unbind and ClearDevice buttons
connect(m_oplink->UnbindButton, SIGNAL(released()), this, SLOT(unbind()));
connect(m_oplink->ClearDeviceButton, SIGNAL(released()), this, SLOT(clearDeviceID()));
// all upper case hex
m_oplink->CustomDeviceID->setInputMask(">HHHHHHHH");
@ -179,8 +181,8 @@ void ConfigOPLinkWidget::updateStatus()
m_oplink->LinkState->setText(linkField->getValue().toString());
bool linkConnected = (oplinkStatusObj->linkState() == OPLinkStatus_LinkState::Connected);
m_oplink->PairSignalStrengthBar1->setValue(linkConnected ? m_oplink->RSSI->text().toInt() : -127);
m_oplink->PairSignalStrengthLabel1->setText(QString("%1dBm").arg(m_oplink->PairSignalStrengthBar1->value()));
m_oplink->SignalStrengthBar->setValue(linkConnected ? m_oplink->RSSI->text().toInt() : -127);
m_oplink->SignalStrengthLabel->setText(QString("%1dBm").arg(m_oplink->SignalStrengthBar->value()));
int afc_valueKHz = m_oplink->AFCCorrection->text().toInt() / 1000;
m_oplink->AFCCorrectionBar->setValue(afc_valueKHz);
@ -254,10 +256,9 @@ void ConfigOPLinkWidget::updateSettings()
{
// qDebug() << "ConfigOPLinkWidget::updateSettings";
bool is_enabled = !isComboboxOptionSelected(m_oplink->Protocol, OPLinkSettings::PROTOCOL_DISABLED);
bool is_coordinator = isComboboxOptionSelected(m_oplink->Protocol, OPLinkSettings::PROTOCOL_OPLINKCOORDINATOR);
bool is_receiver = isComboboxOptionSelected(m_oplink->Protocol, OPLinkSettings::PROTOCOL_OPLINKRECEIVER);
bool is_openlrs = isComboboxOptionSelected(m_oplink->Protocol, OPLinkSettings::PROTOCOL_OPENLRS);
bool is_oplink = (is_receiver || is_coordinator);
bool is_ppm_only = isComboboxOptionSelected(m_oplink->LinkType, OPLinkSettings::LINKTYPE_CONTROL);
bool is_main_serial = isComboboxOptionSelected(m_oplink->MainPort, OPLinkSettings::MAINPORT_SERIAL);
bool is_main_telem = isComboboxOptionSelected(m_oplink->MainPort, OPLinkSettings::MAINPORT_TELEMETRY);
@ -265,6 +266,7 @@ void ConfigOPLinkWidget::updateSettings()
bool is_flexi_telem = isComboboxOptionSelected(m_oplink->FlexiPort, OPLinkSettings::FLEXIPORT_TELEMETRY);
bool is_vcp_main = isComboboxOptionSelected(m_oplink->VCPBridge, OPLinkSettings::VCPBRIDGE_MAIN);
bool is_vcp_flexi = isComboboxOptionSelected(m_oplink->VCPBridge, OPLinkSettings::VCPBRIDGE_FLEXI);
bool is_custom_id = (m_oplink->CustomDeviceID->text() != "");
bool is_bound = (m_oplink->CoordID->text() != "");
bool is_stream_main = isComboboxOptionSelected(m_oplink->RadioPriStream, OPLinkSettings::RADIOPRISTREAM_MAIN) ||
@ -288,24 +290,25 @@ void ConfigOPLinkWidget::updateSettings()
enableComboBoxOptionItem(m_oplink->MainPort, OPLinkSettings::MAINPORT_TELEMETRY, is_stream_main);
enableComboBoxOptionItem(m_oplink->MainPort, OPLinkSettings::MAINPORT_SERIAL, (is_stream_main || is_vcp_main));
m_oplink->MainPort->setEnabled((is_enabled && !is_openlrs) || is_vcp_main);
m_oplink->FlexiPort->setEnabled((is_enabled && !is_openlrs) || is_vcp_flexi);
m_oplink->MainComSpeed->setEnabled(is_enabled && !is_openlrs && !is_ppm_only && !is_vcp_main && (is_main_serial || is_main_telem));
m_oplink->FlexiComSpeed->setEnabled(is_enabled && !is_openlrs && !is_ppm_only && !is_vcp_flexi && (is_flexi_serial || is_flexi_telem));
m_oplink->CoordID->setEnabled(is_enabled && is_receiver);
m_oplink->UnbindButton->setEnabled(is_enabled && is_bound && !is_coordinator);
m_oplink->MainPort->setEnabled(is_oplink || is_vcp_main);
m_oplink->FlexiPort->setEnabled(is_oplink || is_vcp_flexi);
m_oplink->MainComSpeed->setEnabled(is_oplink && !is_ppm_only && !is_vcp_main && (is_main_serial || is_main_telem));
m_oplink->FlexiComSpeed->setEnabled(is_oplink && !is_ppm_only && !is_vcp_flexi && (is_flexi_serial || is_flexi_telem));
m_oplink->CoordID->setEnabled(is_receiver);
m_oplink->UnbindButton->setEnabled(is_receiver && is_bound);
m_oplink->CustomDeviceID->setEnabled(is_coordinator);
m_oplink->ClearDeviceButton->setEnabled(is_coordinator && is_custom_id);
m_oplink->RadioPriStream->setEnabled((is_receiver || is_coordinator) && !is_ppm_only);
m_oplink->RadioAuxStream->setEnabled((is_receiver || is_coordinator) && !is_ppm_only);
m_oplink->RadioPriStream->setEnabled(is_oplink && !is_ppm_only);
m_oplink->RadioAuxStream->setEnabled(is_oplink && !is_ppm_only);
m_oplink->AirDataRate->setEnabled((is_receiver || is_coordinator) && !is_ppm_only);
m_oplink->RFBand->setEnabled(is_receiver || is_coordinator);
m_oplink->MinimumChannel->setEnabled(is_receiver || is_coordinator);
m_oplink->MaximumChannel->setEnabled(is_receiver || is_coordinator);
m_oplink->AirDataRate->setEnabled(is_oplink && !is_ppm_only);
m_oplink->RFBand->setEnabled(is_oplink);
m_oplink->MinimumChannel->setEnabled(is_oplink);
m_oplink->MaximumChannel->setEnabled(is_oplink);
m_oplink->LinkType->setEnabled(is_enabled && !is_openlrs);
m_oplink->MaxRFTxPower->setEnabled(is_enabled && !is_openlrs);
m_oplink->LinkType->setEnabled(is_oplink);
m_oplink->MaxRFTxPower->setEnabled(is_oplink);
}
void ConfigOPLinkWidget::protocolChanged()
@ -598,3 +601,10 @@ void ConfigOPLinkWidget::unbind()
oplinkSettingsObj->setModemParams((quint16)0);
oplinkSettingsObj->setFlags((quint16)0);
}
void ConfigOPLinkWidget::clearDeviceID()
{
// Clear the device ID
oplinkSettingsObj->setCustomDeviceID(0);
m_oplink->CustomDeviceID->clear();
}

View File

@ -84,6 +84,7 @@ private slots:
void vcpBridgeChanged();
void unbind();
void clearDeviceID();
};
#endif // CONFIGOPLINKWIDGET_H

View File

@ -1543,7 +1543,7 @@
</property>
</widget>
</item>
<item row="2" column="2">
<item row="2" column="3">
<widget class="QLabel" name="CoordIDLabel">
<property name="font">
<font>
@ -1578,7 +1578,7 @@
</property>
</widget>
</item>
<item row="4" column="1">
<item row="4" column="2">
<widget class="QComboBox" name="LinkType">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -1603,65 +1603,7 @@
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="CustomDeviceID">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>90</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Enter your custom ID for this device as a hexadecimal value,
this allows device clones. Be sure only one device with this
ID transmits at the same time!
Leave blank to use autogenerated Device ID.</string>
</property>
<property name="maxLength">
<number>8</number>
</property>
<property name="frame">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="readOnly">
<bool>false</bool>
</property>
<property name="placeholderText">
<string/>
</property>
<property name="cursorMoveStyle">
<enum>Qt::LogicalMoveStyle</enum>
</property>
<property name="clearButtonEnabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="3">
<item row="0" column="4">
<widget class="QComboBox" name="MaxRFTxPower">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
@ -1687,7 +1629,7 @@ Leave blank to use autogenerated Device ID.</string>
</property>
</widget>
</item>
<item row="0" column="1">
<item row="0" column="2">
<widget class="QComboBox" name="Protocol">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
@ -1712,7 +1654,7 @@ Leave blank to use autogenerated Device ID.</string>
</property>
</widget>
</item>
<item row="0" column="2">
<item row="0" column="3">
<widget class="QLabel" name="MaxRFTxPowerLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
@ -1756,7 +1698,7 @@ Leave blank to use autogenerated Device ID.</string>
</property>
</widget>
</item>
<item row="4" column="2">
<item row="4" column="3">
<widget class="QLabel" name="AirDataRateLabel">
<property name="font">
<font>
@ -1772,7 +1714,7 @@ Leave blank to use autogenerated Device ID.</string>
</property>
</widget>
</item>
<item row="4" column="3">
<item row="4" column="4">
<widget class="QComboBox" name="AirDataRate">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -1791,7 +1733,7 @@ Leave blank to use autogenerated Device ID.</string>
</property>
</widget>
</item>
<item row="2" column="3">
<item row="2" column="4">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLineEdit" name="CoordID">
@ -1833,7 +1775,7 @@ The device must be rebooted for the binding to take place.</string>
<item>
<widget class="QPushButton" name="UnbindButton">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -1845,10 +1787,128 @@ The device must be rebooted for the binding to take place.</string>
<string>Clear the binding/coordinator ID</string>
</property>
<property name="text">
<string>Unbind</string>
<string/>
</property>
<property name="icon">
<iconset resource="../coreplugin/core.qrc">
<normaloff>:/core/images/clear_left.png</normaloff>:/core/images/clear_left.png</iconset>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="2" column="2">
<layout class="QHBoxLayout" name="horizontalLayout_6">
<property name="rightMargin">
<number>10</number>
</property>
<item>
<widget class="QLineEdit" name="CustomDeviceID">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>90</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Enter your custom ID for this device as a hexadecimal value,
this allows device clones. Be sure only one device with this
ID transmits at the same time!
Leave blank to use autogenerated Device ID.</string>
</property>
<property name="maxLength">
<number>8</number>
</property>
<property name="frame">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="readOnly">
<bool>false</bool>
</property>
<property name="placeholderText">
<string/>
</property>
<property name="cursorMoveStyle">
<enum>Qt::LogicalMoveStyle</enum>
</property>
<property name="clearButtonEnabled">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="ClearDeviceButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Clear the device ID and leave it autogenerated</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../coreplugin/core.qrc">
<normaloff>:/core/images/clear_left.png</normaloff>:/core/images/clear_left.png</iconset>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
@ -2199,7 +2259,7 @@ a frequency misalignement between the two modems.</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="PairSignalStrengthLabel1">
<widget class="QLabel" name="SignalStrengthLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
@ -2229,7 +2289,7 @@ a frequency misalignement between the two modems.</string>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QProgressBar" name="PairSignalStrengthBar1">
<widget class="QProgressBar" name="SignalStrengthBar">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
@ -2396,6 +2456,9 @@ a frequency misalignement between the two modems.</string>
<tabstop>Protocol</tabstop>
<tabstop>MaxRFTxPower</tabstop>
<tabstop>CustomDeviceID</tabstop>
<tabstop>ClearDeviceButton</tabstop>
<tabstop>CoordID</tabstop>
<tabstop>UnbindButton</tabstop>
<tabstop>LinkType</tabstop>
<tabstop>AirDataRate</tabstop>
<tabstop>RadioPriStream</tabstop>

View File

@ -7,6 +7,7 @@
<file>images/librepilot_logo_32.png</file>
<file>images/clean_pane_small.png</file>
<file>images/clear.png</file>
<file>images/clear_left.png</file>
<file>images/closebutton.png</file>
<file>images/dir.png</file>
<file>images/editcopy.png</file>