Skip to content

Commit c166b0e

Browse files
committed
adrv9009: advanced navigation buttons layout
Signed-off-by: IonutMuthi <ionut.muthi@analog.com>
1 parent 527341b commit c166b0e

File tree

2 files changed

+21
-32
lines changed

2 files changed

+21
-32
lines changed

packages/adrv9009/plugins/adrv9009plugin/include/adrv9009plugin/adrv9009advanced.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ class SCOPY_ADRV9009PLUGIN_EXPORT Adrv9009Advanced : public QWidget
7070
QWidget *m_secondRow = nullptr;
7171
QHBoxLayout *m_firstRowLayout = nullptr;
7272
QHBoxLayout *m_secondRowLayout = nullptr;
73-
QPushButton *m_expandBtn = nullptr;
73+
QSpacerItem *m_navigationSpacerItem = nullptr;
7474

7575
// Content widgets (placeholders for Phase 1)
7676
QWidget *m_clkSettings = nullptr;
@@ -99,4 +99,3 @@ class SCOPY_ADRV9009PLUGIN_EXPORT Adrv9009Advanced : public QWidget
9999

100100
} // namespace scopy::adrv9009
101101
#endif // ADRV9009ADVANCED_H
102-

packages/adrv9009/plugins/adrv9009plugin/src/adrv9009advanced.cpp

Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -103,54 +103,67 @@ void Adrv9009Advanced::createNavigationButtons()
103103
Style::setStyle(m_clkSettingsBtn, style::properties::button::blueGrayButton);
104104
m_clkSettingsBtn->setCheckable(true);
105105
m_clkSettingsBtn->setChecked(true); // First button starts selected
106+
m_clkSettingsBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
106107

107108
m_calibrationsBtn = new QPushButton("Calibrations", this);
108109
Style::setStyle(m_calibrationsBtn, style::properties::button::blueGrayButton);
109110
m_calibrationsBtn->setCheckable(true);
111+
m_calibrationsBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
110112

111113
m_txSettingsBtn = new QPushButton("TX Settings", this);
112114
Style::setStyle(m_txSettingsBtn, style::properties::button::blueGrayButton);
113115
m_txSettingsBtn->setCheckable(true);
116+
m_txSettingsBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
114117

115118
m_rxSettingsBtn = new QPushButton("RX Settings", this);
116119
Style::setStyle(m_rxSettingsBtn, style::properties::button::blueGrayButton);
117120
m_rxSettingsBtn->setCheckable(true);
121+
m_rxSettingsBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
118122

119123
m_orxSettingsBtn = new QPushButton("ORX Settings", this);
120124
Style::setStyle(m_orxSettingsBtn, style::properties::button::blueGrayButton);
121125
m_orxSettingsBtn->setCheckable(true);
126+
m_orxSettingsBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
122127

123128
m_fhmSetupBtn = new QPushButton("FHM Setup", this);
124129
Style::setStyle(m_fhmSetupBtn, style::properties::button::blueGrayButton);
125130
m_fhmSetupBtn->setCheckable(true);
131+
m_fhmSetupBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
126132

127133
m_paProtectionBtn = new QPushButton("PA Protection", this);
128134
Style::setStyle(m_paProtectionBtn, style::properties::button::blueGrayButton);
129135
m_paProtectionBtn->setCheckable(true);
136+
m_paProtectionBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
130137

131138
m_gainSetupBtn = new QPushButton("GAIN Setup", this);
132139
Style::setStyle(m_gainSetupBtn, style::properties::button::blueGrayButton);
133140
m_gainSetupBtn->setCheckable(true);
141+
m_gainSetupBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
134142

135143
m_agcSetupBtn = new QPushButton("AGC Setup", this);
136144
Style::setStyle(m_agcSetupBtn, style::properties::button::blueGrayButton);
137145
m_agcSetupBtn->setCheckable(true);
146+
m_agcSetupBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
138147

139148
m_gpioConfigBtn = new QPushButton("GPIO Config", this);
140149
Style::setStyle(m_gpioConfigBtn, style::properties::button::blueGrayButton);
141150
m_gpioConfigBtn->setCheckable(true);
151+
m_gpioConfigBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
142152

143153
m_auxDacBtn = new QPushButton("AUX DAC", this);
144154
Style::setStyle(m_auxDacBtn, style::properties::button::blueGrayButton);
145155
m_auxDacBtn->setCheckable(true);
156+
m_auxDacBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
146157

147158
m_jesd204SettingsBtn = new QPushButton("JESD204 Settings", this);
148159
Style::setStyle(m_jesd204SettingsBtn, style::properties::button::blueGrayButton);
149160
m_jesd204SettingsBtn->setCheckable(true);
161+
m_jesd204SettingsBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
150162

151163
m_bistBtn = new QPushButton("BIST", this);
152164
Style::setStyle(m_bistBtn, style::properties::button::blueGrayButton);
153165
m_bistBtn->setCheckable(true);
166+
m_bistBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
154167

155168
// Add buttons to button group
156169
navigationButtons->addButton(m_clkSettingsBtn);
@@ -184,31 +197,12 @@ void Adrv9009Advanced::createNavigationButtons()
184197
m_secondRowLayout->setMargin(0);
185198
m_secondRowLayout->setSpacing(5);
186199

187-
// Create expand button once
188-
m_expandBtn = new QPushButton("", this);
189-
m_expandBtn->setCheckable(true);
190-
Style::setStyle(m_expandBtn, style::properties::button::blueGrayButton);
191-
192-
// Connect expand/collapse logic once (not repeatedly in updateNavigationButtonsLayout)
193-
connect(m_expandBtn, &QPushButton::clicked, [this]() {
194-
bool isVisible = m_secondRow->isVisible();
195-
m_secondRow->setVisible(!isVisible);
196-
197-
// Change top container height: 44px single row, 88px double row
198-
if(!isVisible) {
199-
m_tool->topContainer()->setFixedHeight(88);
200-
} else {
201-
m_tool->topContainer()->setFixedHeight(44);
202-
}
203-
});
200+
m_navigationSpacerItem = new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Expanding);
204201

205202
// Add persistent row widgets to main navigation layout
206203
navLayout->addWidget(m_firstRow);
207204
navLayout->addWidget(m_secondRow);
208205

209-
// Initially hide second row
210-
m_secondRow->setVisible(false);
211-
212206
updateNavigationButtonsLayout();
213207

214208
// Add main navigation widget to top container
@@ -282,8 +276,8 @@ void Adrv9009Advanced::updateNavigationButtonsLayout()
282276
// Step 1: Calculate available width (same as before)
283277
int containerWidth = m_tool->width();
284278
int refreshButtonWidth = m_refreshButton->width();
285-
int expandButtonWidth = m_expandBtn->width(); // Approximate width for expand button
286-
int availableWidth = containerWidth - expandButtonWidth - refreshButtonWidth;
279+
int layoutSpacingAndMargins = 50; // consider the spacing when computin so buttons text will not be cropped
280+
int availableWidth = containerWidth - layoutSpacingAndMargins - refreshButtonWidth;
287281

288282
// Create list of all navigation buttons in order (same as before)
289283
QList<QPushButton *> allButtons = {m_clkSettingsBtn, m_calibrationsBtn, m_txSettingsBtn, m_rxSettingsBtn,
@@ -313,18 +307,14 @@ void Adrv9009Advanced::updateNavigationButtonsLayout()
313307
}
314308

315309
if(!remainingButtons.isEmpty()) {
316-
m_expandBtn->setVisible(true);
317-
m_firstRowLayout->addWidget(m_expandBtn);
318-
310+
m_tool->topContainer()->setFixedHeight(88);
311+
m_secondRowLayout->removeItem(m_navigationSpacerItem);
319312
for(QPushButton *button : remainingButtons) {
320313
m_secondRowLayout->addWidget(button);
321314
}
322-
323-
// Step 4: Show/hide second row and expand button based on expand button state
324-
bool isExpandingEnabled = m_expandBtn->isChecked();
325-
m_secondRow->setVisible(isExpandingEnabled); // Always start hidden
315+
m_secondRowLayout->addItem(m_navigationSpacerItem);
326316
} else {
327-
m_expandBtn->setVisible(false);
317+
m_tool->topContainer()->setFixedHeight(44);
328318
}
329319
}
330320

0 commit comments

Comments
 (0)