MCPcopy Create free account
hub / github.com/aethersdr/AetherSDR / DxClusterDialog

Method DxClusterDialog

src/gui/DxClusterDialog.cpp:258–595  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

256// ── DxClusterDialog ─────────────────────────────────────────────────────────
257
258DxClusterDialog::DxClusterDialog(DxClusterClient* clusterClient, DxClusterClient* rbnClient,
259 WsjtxClient* wsjtxClient, SpotCollectorClient* spotCollectorClient,
260 PotaClient* potaClient,
261#ifdef HAVE_WEBSOCKETS
262 FreeDvClient* freedvClient,
263#endif
264 RadioModel* radioModel,
265 DxccColorProvider* dxccProvider,
266 QWidget* parent)
267 : PersistentDialog("SpotHub", "DxClusterDialogGeometry", parent),
268 m_client(clusterClient), m_rbnClient(rbnClient),
269 m_wsjtxClient(wsjtxClient), m_spotCollectorClient(spotCollectorClient),
270 m_potaClient(potaClient),
271#ifdef HAVE_WEBSOCKETS
272 m_freedvClient(freedvClient),
273#endif
274 m_radioModel(radioModel), m_dxccProvider(dxccProvider)
275{
276 theme::setContainer(this, QStringLiteral("dialog/dxCluster"));
277 setMinimumSize(680, 560);
278 resize(760, 640);
279
280 // Capture source log paths up front so the per-tab Clear handlers (built
281 // below) can zero them on click. (#2022)
282 m_clusterLogPath = clusterClient->logFilePath();
283 m_rbnLogPath = rbnClient->logFilePath();
284 m_wsjtxLogPath = wsjtxClient->logFilePath();
285 m_potaLogPath = potaClient->logFilePath();
286 m_scLogPath = spotCollectorClient->logFilePath();
287#ifdef HAVE_WEBSOCKETS
288 m_freedvLogPath = freedvClient->logFilePath();
289#endif
290
291 auto* root = new QVBoxLayout(bodyWidget());
292 root->setSpacing(0);
293 root->setContentsMargins(4, 4, 4, 4);
294
295 auto* tabs = new QTabWidget;
296 AetherSDR::ThemeManager::instance().applyStyleSheet(tabs, "QTabWidget::pane { border: 1px solid {{color.background.1}}; }"
297 "QTabBar::tab { background: {{color.background.0}}; color: #808890; border: 1px solid {{color.background.1}}; "
298 " padding: 6px 16px; margin-right: 2px; }"
299 "QTabBar::tab:selected { background: {{color.background.0}}; color: {{color.accent}}; border-bottom: none; }");
300
301 buildClusterTab(tabs);
302 buildRbnTab(tabs);
303 buildWsjtxTab(tabs);
304 buildSpotCollectorTab(tabs);
305 buildPotaTab(tabs);
306#ifdef HAVE_WEBSOCKETS
307 buildFreeDvTab(tabs);
308#endif
309 buildSpotListTab(tabs);
310 buildDisplayTab(tabs);
311
312 root->addWidget(tabs);
313
314 // ── Spot batch timer (1/sec flush) ──────────────────────────────────
315 m_spotBatchTimer = new QTimer(this);

Callers

nothing calls this directly

Calls 13

setContainerFunction · 0.85
applyStyleSheetMethod · 0.80
hostMethod · 0.80
containsMethod · 0.80
logFilePathMethod · 0.45
startMethod · 0.45
valueMethod · 0.45
setValueMethod · 0.45
portMethod · 0.45
setEnabledMethod · 0.45
toStringMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected