@@ -45,9 +45,6 @@ JesdDeframerWidget::JesdDeframerWidget(iio_device *device, QWidget *parent)
4545 }
4646
4747 setupUi ();
48-
49- // Apply established ADRV styling pattern (from adrv9002/initialcalibrationswidget.cpp:61)
50- Style::setStyle (this , style::properties::widget::border_interactive);
5148}
5249
5350JesdDeframerWidget::~JesdDeframerWidget () {}
@@ -101,27 +98,36 @@ QWidget *JesdDeframerWidget::createDeframerColumn(const QString &columnType, con
10198 MenuCollapseSection::MHCW_ARROW,
10299 MenuCollapseSection::MHW_BASEWIDGET, parent);
103100
101+ QWidget *widget = new QWidget (parent);
102+ QVBoxLayout *layout = new QVBoxLayout (widget);
103+ layout->setContentsMargins (10 , 10 , 10 , 10 );
104+ layout->setSpacing (10 );
105+
106+ column->contentLayout ()->addWidget (widget);
107+ Style::setBackgroundColor (widget, json::theme::background_primary);
108+ Style::setStyle (widget, style::properties::widget::border_interactive);
109+
104110 // 1. BANK ID - Range Widget [0 1 15]
105111 auto bankIdWidget = Adrv9009WidgetFactory::createRangeWidget (
106112 m_device, QString (" adi,jesd204-%1-bank-id" ).arg (attrPrefix), " [0 1 15]" , " Bank ID" );
107113 if (bankIdWidget) {
108- column-> contentLayout () ->addWidget (bankIdWidget);
114+ layout ->addWidget (bankIdWidget);
109115 connect (this , &JesdDeframerWidget::readRequested, bankIdWidget, &IIOWidget::readAsync);
110116 }
111117
112118 // 2. DEVICE ID - Range Widget [0 1 255]
113119 auto deviceIdWidget = Adrv9009WidgetFactory::createRangeWidget (
114120 m_device, QString (" adi,jesd204-%1-device-id" ).arg (attrPrefix), " [0 1 255]" , " Device ID" );
115121 if (deviceIdWidget) {
116- column-> contentLayout () ->addWidget (deviceIdWidget);
122+ layout ->addWidget (deviceIdWidget);
117123 connect (this , &JesdDeframerWidget::readRequested, deviceIdWidget, &IIOWidget::readAsync);
118124 }
119125
120126 // 3. LANE0 ID - Range Widget [0 1 31]
121127 auto lane0IdWidget = Adrv9009WidgetFactory::createRangeWidget (
122128 m_device, QString (" adi,jesd204-%1-lane0-id" ).arg (attrPrefix), " [0 1 31]" , " Lane0 ID" );
123129 if (lane0IdWidget) {
124- column-> contentLayout () ->addWidget (lane0IdWidget);
130+ layout ->addWidget (lane0IdWidget);
125131 connect (this , &JesdDeframerWidget::readRequested, lane0IdWidget, &IIOWidget::readAsync);
126132 }
127133
@@ -133,7 +139,7 @@ QWidget *JesdDeframerWidget::createDeframerColumn(const QString &columnType, con
133139 IIOWidget *mWidget = Adrv9009WidgetFactory::createCustomComboWidget (
134140 m_device, QString (" adi,jesd204-%1-m" ).arg (attrPrefix), mOptions , " M" );
135141 if (mWidget ) {
136- column-> contentLayout () ->addWidget (mWidget );
142+ layout ->addWidget (mWidget );
137143 connect (this , &JesdDeframerWidget::readRequested, mWidget , &IIOWidget::readAsync);
138144 mWidget ->getUiStrategy ()->setInfoMessage (
139145 " Number of DACs (0, 2, or 4) - 2 DACs per transmit chain (I and Q)" );
@@ -143,23 +149,25 @@ QWidget *JesdDeframerWidget::createDeframerColumn(const QString &columnType, con
143149 auto kWidget = Adrv9009WidgetFactory::createRangeWidget (m_device, QString (" adi,jesd204-%1-k" ).arg (attrPrefix),
144150 " [1 1 32]" , " K" );
145151 if (kWidget ) {
146- column-> contentLayout () ->addWidget (kWidget );
152+ layout ->addWidget (kWidget );
147153 connect (this , &JesdDeframerWidget::readRequested, kWidget , &IIOWidget::readAsync);
148154 }
149155
150156 // 6. SCRAMBLE - Checkbox
151157 auto scrambleWidget = Adrv9009WidgetFactory::createCheckboxWidget (
152158 m_device, QString (" adi,jesd204-%1-scramble" ).arg (attrPrefix), " Scramble" );
153159 if (scrambleWidget) {
154- column->contentLayout ()->addWidget (scrambleWidget);
160+ layout->addWidget (scrambleWidget);
161+ scrambleWidget->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
155162 connect (this , &JesdDeframerWidget::readRequested, scrambleWidget, &IIOWidget::readAsync);
156163 }
157164
158165 // 7. EXTERNAL SYSREF - Checkbox
159166 auto extSysrefWidget = Adrv9009WidgetFactory::createCheckboxWidget (
160167 m_device, QString (" adi,jesd204-%1-external-sysref" ).arg (attrPrefix), " External SYSREF" );
161168 if (extSysrefWidget) {
162- column->contentLayout ()->addWidget (extSysrefWidget);
169+ layout->addWidget (extSysrefWidget);
170+ extSysrefWidget->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
163171 connect (this , &JesdDeframerWidget::readRequested, extSysrefWidget, &IIOWidget::readAsync);
164172 }
165173
@@ -168,14 +176,18 @@ QWidget *JesdDeframerWidget::createDeframerColumn(const QString &columnType, con
168176
169177 // Create switches directly
170178 scopy::MenuOnOffSwitch *lane0 = new scopy::MenuOnOffSwitch (" Deserializer Lane 0" , column);
179+ lane0->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
171180 scopy::MenuOnOffSwitch *lane1 = new scopy::MenuOnOffSwitch (" Deserializer Lane 1" , column);
181+ lane1->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
172182 scopy::MenuOnOffSwitch *lane2 = new scopy::MenuOnOffSwitch (" Deserializer Lane 2" , column);
183+ lane2->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
173184 scopy::MenuOnOffSwitch *lane3 = new scopy::MenuOnOffSwitch (" Deserializer Lane 3" , column);
185+ lane3->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
174186
175- column-> contentLayout () ->addWidget (lane0);
176- column-> contentLayout () ->addWidget (lane1);
177- column-> contentLayout () ->addWidget (lane2);
178- column-> contentLayout () ->addWidget (lane3);
187+ layout ->addWidget (lane0);
188+ layout ->addWidget (lane1);
189+ layout ->addWidget (lane2);
190+ layout ->addWidget (lane3);
179191
180192 // Function to update hardware from all switches
181193 auto updateHardware = [this , baseAttr, lane0, lane1, lane2, lane3]() {
@@ -220,31 +232,33 @@ QWidget *JesdDeframerWidget::createDeframerColumn(const QString &columnType, con
220232 m_device, QString (" adi,jesd204-%1-deserializer-lane-crossbar" ).arg (attrPrefix), " [0 1 255]" ,
221233 " Deserializer Lane Crossbar" );
222234 if (crossbarWidget) {
223- column-> contentLayout () ->addWidget (crossbarWidget);
235+ layout ->addWidget (crossbarWidget);
224236 connect (this , &JesdDeframerWidget::readRequested, crossbarWidget, &IIOWidget::readAsync);
225237 }
226238
227239 // 10. LMFC OFFSET - Range Widget [0 1 31]
228240 auto lmfcWidget = Adrv9009WidgetFactory::createRangeWidget (
229241 m_device, QString (" adi,jesd204-%1-lmfc-offset" ).arg (attrPrefix), " [0 1 31]" , " LMFC Offset" );
230242 if (lmfcWidget) {
231- column-> contentLayout () ->addWidget (lmfcWidget);
243+ layout ->addWidget (lmfcWidget);
232244 connect (this , &JesdDeframerWidget::readRequested, lmfcWidget, &IIOWidget::readAsync);
233245 }
234246
235247 // 11. NEW SYSREF ON RELINK - Checkbox
236248 auto newSysrefWidget = Adrv9009WidgetFactory::createCheckboxWidget (
237249 m_device, QString (" adi,jesd204-%1-new-sysref-on-relink" ).arg (attrPrefix), " New SYSREF on Relink" );
238250 if (newSysrefWidget) {
239- column->contentLayout ()->addWidget (newSysrefWidget);
251+ layout->addWidget (newSysrefWidget);
252+ newSysrefWidget->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
240253 connect (this , &JesdDeframerWidget::readRequested, newSysrefWidget, &IIOWidget::readAsync);
241254 }
242255
243256 // 12. SYNCB OUT SELECT - Checkbox
244257 auto syncbSelectWidget = Adrv9009WidgetFactory::createCheckboxWidget (
245258 m_device, QString (" adi,jesd204-%1-syncb-out-select" ).arg (attrPrefix), " SYNCB Out Select" );
246259 if (syncbSelectWidget) {
247- column->contentLayout ()->addWidget (syncbSelectWidget);
260+ layout->addWidget (syncbSelectWidget);
261+ syncbSelectWidget->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
248262 connect (this , &JesdDeframerWidget::readRequested, syncbSelectWidget, &IIOWidget::readAsync);
249263 syncbSelectWidget->getUiStrategy ()->setInfoMessage (
250264 " Selects deframer SYNCBOUT pin (0 = SYNCBOUT0, 1 = SYNCBOUT1)" );
@@ -257,15 +271,16 @@ QWidget *JesdDeframerWidget::createDeframerColumn(const QString &columnType, con
257271 IIOWidget *npWidget = Adrv9009WidgetFactory::createCustomComboWidget (
258272 m_device, QString (" adi,jesd204-%1-np" ).arg (attrPrefix), npOptions, " NP" );
259273 if (npWidget) {
260- column-> contentLayout () ->addWidget (npWidget);
274+ layout ->addWidget (npWidget);
261275 connect (this , &JesdDeframerWidget::readRequested, npWidget, &IIOWidget::readAsync);
262276 }
263277
264278 // 14. SYNCB OUT LVDS MODE - Checkbox
265279 auto lvdsModeWidget = Adrv9009WidgetFactory::createCheckboxWidget (
266280 m_device, QString (" adi,jesd204-%1-syncb-out-lvds-mode" ).arg (attrPrefix), " SYNCB Out LVDS Mode" );
267281 if (lvdsModeWidget) {
268- column->contentLayout ()->addWidget (lvdsModeWidget);
282+ layout->addWidget (lvdsModeWidget);
283+ lvdsModeWidget->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
269284 connect (this , &JesdDeframerWidget::readRequested, lvdsModeWidget, &IIOWidget::readAsync);
270285 }
271286
@@ -274,7 +289,8 @@ QWidget *JesdDeframerWidget::createDeframerColumn(const QString &columnType, con
274289 m_device, QString (" adi,jesd204-%1-syncb-out-lvds-pn-invert" ).arg (attrPrefix),
275290 " SYNCB Out LVDS PN Invert" );
276291 if (lvdsPnInvertWidget) {
277- column->contentLayout ()->addWidget (lvdsPnInvertWidget);
292+ layout->addWidget (lvdsPnInvertWidget);
293+ lvdsPnInvertWidget->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
278294 connect (this , &JesdDeframerWidget::readRequested, lvdsPnInvertWidget, &IIOWidget::readAsync);
279295 }
280296
@@ -283,7 +299,7 @@ QWidget *JesdDeframerWidget::createDeframerColumn(const QString &columnType, con
283299 m_device, QString (" adi,jesd204-%1-syncb-out-cmos-slew-rate" ).arg (attrPrefix), " [0 1 3]" ,
284300 " SYNCB Out CMOS Slew Rate" );
285301 if (cmosSlewWidget) {
286- column-> contentLayout () ->addWidget (cmosSlewWidget);
302+ layout ->addWidget (cmosSlewWidget);
287303 connect (this , &JesdDeframerWidget::readRequested, cmosSlewWidget, &IIOWidget::readAsync);
288304 }
289305
@@ -292,7 +308,8 @@ QWidget *JesdDeframerWidget::createDeframerColumn(const QString &columnType, con
292308 m_device, QString (" adi,jesd204-%1-syncb-out-cmos-drive-level" ).arg (attrPrefix),
293309 " SYNCB Out CMOS Drive Level" );
294310 if (cmosDriveWidget) {
295- column->contentLayout ()->addWidget (cmosDriveWidget);
311+ layout->addWidget (cmosDriveWidget);
312+ cmosDriveWidget->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
296313 connect (this , &JesdDeframerWidget::readRequested, cmosDriveWidget, &IIOWidget::readAsync);
297314 }
298315
@@ -301,12 +318,13 @@ QWidget *JesdDeframerWidget::createDeframerColumn(const QString &columnType, con
301318 m_device, QString (" adi,jesd204-%1-enable-manual-lane-xbar" ).arg (attrPrefix),
302319 " Enable Manual Lane Crossbar" );
303320 if (manualXbarWidget) {
304- column->contentLayout ()->addWidget (manualXbarWidget);
321+ layout->addWidget (manualXbarWidget);
322+ manualXbarWidget->setSizePolicy (QSizePolicy::Maximum, QSizePolicy::Maximum);
305323 connect (this , &JesdDeframerWidget::readRequested, manualXbarWidget, &IIOWidget::readAsync);
306324 }
307325
308326 // Add spacer to push content to top
309- column-> contentLayout () ->addItem (new QSpacerItem (20 , 40 , QSizePolicy::Minimum, QSizePolicy::Expanding));
327+ layout ->addItem (new QSpacerItem (20 , 40 , QSizePolicy::Minimum, QSizePolicy::Expanding));
310328
311329 return column;
312330}
0 commit comments