| 862 | } |
| 863 | |
| 864 | void SpectrumOverlayMenu::refreshAntennaCombo() |
| 865 | { |
| 866 | if (!m_rxAntCmb) |
| 867 | return; |
| 868 | const QString cur = currentRxAntennaToken(); |
| 869 | QStringList options; |
| 870 | auto append = [&options](const QString& token) { |
| 871 | if (!token.isEmpty() && !options.contains(token)) { |
| 872 | options.append(token); |
| 873 | } |
| 874 | }; |
| 875 | |
| 876 | SliceModel* targetSlice = |
| 877 | antennaTargetSliceForPan(m_radioModel, m_slice, m_panId); |
| 878 | if (targetSlice) { |
| 879 | for (const QString& token : targetSlice->rxAntennaList()) { |
| 880 | append(token); |
| 881 | } |
| 882 | } |
| 883 | for (const QString& token : m_antList) { |
| 884 | append(token); |
| 885 | } |
| 886 | if (m_radioModel) { |
| 887 | for (const QString& token : m_radioModel->knownAntennaTokens()) { |
| 888 | append(token); |
| 889 | } |
| 890 | } |
| 891 | append(cur); |
| 892 | if (options.isEmpty()) { |
| 893 | append(QStringLiteral("ANT1")); |
| 894 | append(QStringLiteral("ANT2")); |
| 895 | } |
| 896 | if (m_kiwiSdrManager) { |
| 897 | for (const QString& token : m_kiwiSdrManager->virtualAntennaTokens()) { |
| 898 | append(token); |
| 899 | } |
| 900 | } |
| 901 | QSignalBlocker sb(m_rxAntCmb); |
| 902 | m_rxAntCmb->clear(); |
| 903 | for (const QString& ant : options) { |
| 904 | m_rxAntCmb->addItem(antennaComboLabel(ant, options), ant); |
| 905 | } |
| 906 | setRxAntennaComboToken(cur); |
| 907 | updateLoopButtonVisibility(); |
| 908 | } |
| 909 | |
| 910 | void SpectrumOverlayMenu::setRxAntennaComboToken(const QString& token) |
| 911 | { |
nothing calls this directly
no test coverage detected