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

Method setCollapsed

src/gui/VfoWidget.cpp:2583–2729  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2581}
2582
2583void VfoWidget::setCollapsed(bool collapsed)
2584{
2585 if (m_collapsed == collapsed) return;
2586 m_collapsed = collapsed;
2587
2588 // Persist per-slice preference
2589 if (m_slice) {
2590 auto& s = AppSettings::instance();
2591 s.setValue(QString("SliceFlagCollapsed_%1").arg(m_slice->sliceId()),
2592 collapsed ? "True" : "False");
2593 }
2594
2595 if (collapsed) {
2596 // Remember which children were already hidden so we don't show them on expand
2597 m_hiddenBeforeCollapse.clear();
2598 const QList<QWidget*> children = findChildren<QWidget*>(QString(), Qt::FindDirectChildrenOnly);
2599 for (QWidget* child : children) {
2600 if (!child->isVisible()) {
2601 m_hiddenBeforeCollapse.insert(child);
2602 }
2603 child->setVisible(false);
2604 // Make children ignore mouse events so external code that shows
2605 // them (e.g. updateSplitBadge) can't intercept our clicks
2606 child->setAttribute(Qt::WA_TransparentForMouseEvents, true);
2607 }
2608 // Hide external buttons (and remember their state)
2609 if (m_closeSliceBtn) {
2610 if (!m_closeSliceBtn->isVisible()) m_hiddenBeforeCollapse.insert(m_closeSliceBtn);
2611 m_closeSliceBtn->hide();
2612 }
2613 if (m_lockVfoBtn) {
2614 if (!m_lockVfoBtn->isVisible()) m_hiddenBeforeCollapse.insert(m_lockVfoBtn);
2615 m_lockVfoBtn->hide();
2616 }
2617 if (m_recordBtn) {
2618 if (!m_recordBtn->isVisible()) m_hiddenBeforeCollapse.insert(m_recordBtn);
2619 m_recordBtn->hide();
2620 }
2621 if (m_playBtn) {
2622 if (!m_playBtn->isVisible()) m_hiddenBeforeCollapse.insert(m_playBtn);
2623 m_playBtn->hide();
2624 }
2625
2626 // Resize to narrow collapsed width with fixed height for painted content
2627 setMinimumWidth(COLLAPSED_W);
2628 setMaximumWidth(COLLAPSED_W);
2629 setFixedHeight(44); // slice badge (20) + gap (2) + TX badge (16) + padding (6)
2630
2631 // Show collapsed frequency label and position it immediately
2632 if (m_collapsedFreqLabel) {
2633 updateFreqLabel();
2634 m_collapsedFreqLabel->setText(m_freqLabel->text());
2635 m_collapsedFreqLabel->adjustSize();
2636 m_collapsedFreqLabel->show();
2637
2638 // Position now based on current widget location
2639 const int freqGap = 2;
2640 int freqH = m_collapsedFreqLabel->sizeHint().height();

Callers

nothing calls this directly

Calls 7

sliceIdMethod · 0.80
containsMethod · 0.80
updateMethod · 0.80
setValueMethod · 0.45
clearMethod · 0.45
textMethod · 0.45
sizeHintMethod · 0.45

Tested by

no test coverage detected