object == "waveform container", kvs contains name=, version=, and optionally removed "removed" is a bare-word key (no value) — detected via kvs.contains(). FlexLib Radio.cs DockerUpdateWaveformList (line 11188).
| 47 | // "removed" is a bare-word key (no value) — detected via kvs.contains(). |
| 48 | // FlexLib Radio.cs DockerUpdateWaveformList (line 11188). |
| 49 | void FlexWaveformModel::handleContainerStatus(const QMap<QString, QString>& kvs) |
| 50 | { |
| 51 | const QString name = kvs.value(QStringLiteral("name")); |
| 52 | const QString version = kvs.value(QStringLiteral("version")); |
| 53 | |
| 54 | if (name.isEmpty()) { |
| 55 | qWarning() << "FlexWaveformModel: container status missing name, ignoring"; |
| 56 | return; |
| 57 | } |
| 58 | |
| 59 | if (kvs.contains(QStringLiteral("removed"))) { |
| 60 | if (m_waveforms.removeIf([&name](const FlexWaveformEntry& e){ |
| 61 | return e.isContainer && e.name == name; |
| 62 | }) > 0) { |
| 63 | emit waveformsChanged(); |
| 64 | } |
| 65 | return; |
| 66 | } |
| 67 | |
| 68 | // Add or update the container entry. |
| 69 | for (FlexWaveformEntry& e : m_waveforms) { |
| 70 | if (e.isContainer && e.name == name) { |
| 71 | e.version = version; |
| 72 | emit waveformsChanged(); |
| 73 | return; |
| 74 | } |
| 75 | } |
| 76 | FlexWaveformEntry e; |
| 77 | e.name = name; |
| 78 | e.version = version; |
| 79 | e.isContainer = true; |
| 80 | m_waveforms.append(e); |
| 81 | emit waveformsChanged(); |
| 82 | } |
| 83 | |
| 84 | // object == "waveform wfp_status", kvs contains power=, ready=, ipaddr= |
| 85 | // FlexLib Radio.cs ParseWfpStatus (line 11292). |