From 965e647e2df390c3bb08368c8e358bb996c6f1a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 18 Apr 2026 15:18:50 +0000 Subject: [PATCH] Improve freqdisplay polling diagnostics and font sizing guards Agent-Logs-Url: https://github.com/srcejon/sdrangel/sessions/3b53c052-7f2b-4597-b509-d7cc17f3b0b0 Co-authored-by: srcejon <57259258+srcejon@users.noreply.github.com> --- plugins/feature/freqdisplay/freqdisplaygui.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/feature/freqdisplay/freqdisplaygui.cpp b/plugins/feature/freqdisplay/freqdisplaygui.cpp index 941dc37eb..b5412f602 100644 --- a/plugins/feature/freqdisplay/freqdisplaygui.cpp +++ b/plugins/feature/freqdisplay/freqdisplaygui.cpp @@ -11,8 +11,8 @@ #include "freqdisplaygui.h" namespace { -// Derived empirically to keep the rendered frequency text large and readable while -// avoiding clipping in typical feature window sizes. +// For typical feature windows this keeps the text close to ~22% of the smallest +// widget dimension, which yields large readable digits without clipping. constexpr double frequencyFontScale = 0.22; constexpr const char* rxTxKinds = "RT"; constexpr int pollIntervalMs = 1000; @@ -217,13 +217,18 @@ void FreqDisplayGUI::updateFrequencyText() double centerFrequencyHz = 0.0; int offsetHz = 0; - if (!ChannelWebAPIUtils::getCenterFrequency(selectedChannel.m_superIndex, centerFrequencyHz) - || !ChannelWebAPIUtils::getFrequencyOffset(selectedChannel.m_superIndex, selectedChannel.m_index, offsetHz)) + if (!ChannelWebAPIUtils::getCenterFrequency(selectedChannel.m_superIndex, centerFrequencyHz)) { ui->frequencyValue->setText(tr("Frequency unavailable")); updateFrequencyFont(); return; } + if (!ChannelWebAPIUtils::getFrequencyOffset(selectedChannel.m_superIndex, selectedChannel.m_index, offsetHz)) + { + ui->frequencyValue->setText(tr("Offset unavailable")); + updateFrequencyFont(); + return; + } const qint64 centerFrequencyRounded = qRound64(centerFrequencyHz); const qint64 channelOffset = static_cast(offsetHz); @@ -235,6 +240,9 @@ void FreqDisplayGUI::updateFrequencyText() void FreqDisplayGUI::updateFrequencyFont() { const int minDimension = qMin(ui->frequencyValue->width(), ui->frequencyValue->height()); + if (minDimension <= 0) { + return; + } const int pointSize = qMax(minimumFrequencyFontPointSize, static_cast(minDimension * frequencyFontScale)); QFont font = ui->frequencyValue->font();