Skip to content

Commit c317c79

Browse files
iio-widgets: Add optional runtime reconfiguration
Signed-off-by: Andrei-Fabian-Pop <[email protected]>
1 parent f260ad2 commit c317c79

34 files changed

+936
-148
lines changed

gr-util/src/grdeviceaddon.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,15 @@ QWidget *GRDeviceAddon::createAttrMenu(QWidget *parent)
2727
MenuSectionWidget *attrContainer = new MenuSectionWidget(parent);
2828
MenuCollapseSection *attr =
2929
new MenuCollapseSection("ATTRIBUTES", MenuCollapseSection::MHCW_NONE, attrContainer);
30-
QList<IIOWidget *> attrWidgets = IIOWidgetBuilder().device(m_src->iioDev()).buildAll();
30+
QList<IIOWidget *> attrWidgets = IIOWidgetBuilder().device(m_src->iioDev()).parent(parent).buildAll();
3131
const struct iio_context *ctx = iio_device_get_context(m_src->iioDev());
3232
attrWidgets.append(IIOWidgetBuilder()
3333
.context(const_cast<iio_context *>(ctx))
3434
.device(m_src->iioDev())
3535
.attribute("Triggers")
3636
.uiStrategy(IIOWidgetBuilder::UIS::ComboUi)
3737
.dataStrategy(IIOWidgetBuilder::DS::TriggerData)
38+
.parent(parent)
3839
.buildSingle());
3940

4041
auto layout = new QVBoxLayout();

gr-util/src/grtimechanneladdon.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ QWidget *GRTimeChannelAddon::createAttrMenu(QWidget *parent)
193193
MenuSectionWidget *attrcontainer = new MenuSectionWidget(parent);
194194
MenuCollapseSection *attr =
195195
new MenuCollapseSection("ATTRIBUTES", MenuCollapseSection::MHCW_NONE, attrcontainer);
196-
QList<IIOWidget *> attrWidgets = IIOWidgetBuilder().channel(grch()->channel()).buildAll();
196+
QList<IIOWidget *> attrWidgets = IIOWidgetBuilder().channel(grch()->channel()).parent(parent).buildAll();
197197

198198
auto layout = new QVBoxLayout();
199199
layout->setSpacing(10);

gui/include/gui/widgets/menucombo.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class SCOPY_GUI_EXPORT MenuCombo : public QWidget
1919
MenuCombo(QString title, QWidget *parent = nullptr);
2020
virtual ~MenuCombo();
2121

22+
QLabel *label();
2223
QComboBox *combo();
2324
void applyStylesheet();
2425

gui/src/widgets/menucombo.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ MenuCombo::MenuCombo(QString title, QWidget *parent)
4646
}
4747

4848
MenuCombo::~MenuCombo() {}
49+
50+
QLabel *MenuCombo::label() { return m_label; }
4951
QComboBox *MenuCombo::combo() { return m_combo; }
5052

5153
void MenuCombo::applyStylesheet()

iio-widgets/include/iio-widgets/guistrategy/comboguistrategy.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class SCOPY_IIO_WIDGETS_EXPORT ComboAttrUi : public QWidget, public GuiStrategyI
4949

5050
public Q_SLOTS:
5151
void receiveData(QString currentData, QString optionalData) override;
52+
void changeName(QString name) override;
5253

5354
Q_SIGNALS:
5455
void displayedNewData(QString data, QString optionalData) override;
@@ -58,6 +59,8 @@ public Q_SLOTS:
5859
private:
5960
QWidget *m_ui;
6061
QComboBox *m_comboWidget;
62+
MenuCombo *m_menuCombo;
63+
QLabel *m_compactLabel;
6164
bool m_isCompact;
6265
};
6366
} // namespace scopy

iio-widgets/include/iio-widgets/guistrategy/editableguistrategy.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class SCOPY_IIO_WIDGETS_EXPORT EditableGuiStrategy : public QWidget, public GuiS
4949

5050
public Q_SLOTS:
5151
void receiveData(QString currentData, QString optionalData) override;
52+
void changeName(QString name) override;
5253

5354
Q_SIGNALS:
5455
void displayedNewData(QString data, QString optionalData) override;
@@ -57,6 +58,7 @@ public Q_SLOTS:
5758

5859
private:
5960
QWidget *m_ui;
61+
QLabel *m_titleLabel;
6062
MenuLineEdit *m_lineEdit;
6163
QString m_lastEmittedText;
6264
};

iio-widgets/include/iio-widgets/guistrategy/guistrategyinterface.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ public Q_SLOTS:
5656
* */
5757
virtual void receiveData(QString currentData, QString optionalData) = 0;
5858

59+
/**
60+
* @brief changeName Changes the title of the UI strategy
61+
* @param name The new name/title of the UI strategy
62+
*/
63+
virtual void changeName(QString name) = 0;
64+
5965
Q_SIGNALS:
6066
/**
6167
* @brief This signal is emitted when the ui strategy receives new data from external sources,

iio-widgets/include/iio-widgets/guistrategy/rangeguistrategy.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class SCOPY_IIO_WIDGETS_EXPORT RangeAttrUi : public QWidget, public GuiStrategyI
5252

5353
public Q_SLOTS:
5454
void receiveData(QString currentData, QString optionalData) override;
55+
void changeName(QString name) override;
5556

5657
Q_SIGNALS:
5758
void displayedNewData(QString data, QString optionalData) override;

iio-widgets/include/iio-widgets/guistrategy/switchguistrategy.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class SCOPY_IIO_WIDGETS_EXPORT SwitchAttrUi : public QWidget, public GuiStrategy
5050

5151
public Q_SLOTS:
5252
void receiveData(QString currentData, QString optionalData) override;
53+
void changeName(QString name) override;
5354

5455
Q_SIGNALS:
5556
void displayedNewData(QString data, QString optionalData) override;
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#ifndef IIOCONFIGURATIONPOPUP_H
2+
#define IIOCONFIGURATIONPOPUP_H
3+
4+
#include "iiowidgetselector.h"
5+
#include "scopy-iio-widgets_export.h"
6+
#include <gui/tintedoverlay.h>
7+
#include <iioutil/iioitem.h>
8+
#include <iio.h>
9+
#include <QWidget>
10+
#include <QLabel>
11+
#include <QPushButton>
12+
#include <QTreeView>
13+
14+
namespace scopy {
15+
class SCOPY_IIO_WIDGETS_EXPORT IIOConfigurationPopup : public QWidget
16+
{
17+
Q_OBJECT
18+
public:
19+
explicit IIOConfigurationPopup(iio_context *ctx, QWidget *parent = nullptr);
20+
explicit IIOConfigurationPopup(iio_device *dev, QWidget *parent = nullptr);
21+
explicit IIOConfigurationPopup(iio_channel *chnl, QWidget *parent = nullptr);
22+
~IIOConfigurationPopup();
23+
24+
void enableTintedOverlay(bool enable = true);
25+
26+
Q_SIGNALS:
27+
void selectButtonClicked(IIOItem *selected);
28+
void exitButtonClicked();
29+
30+
protected Q_SLOTS:
31+
void modelSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
32+
33+
protected:
34+
void init();
35+
void initUI();
36+
37+
gui::TintedOverlay *m_tintedOverlay;
38+
QLabel *m_titleLabel;
39+
IIOWidgetSelector *m_widgetSelector;
40+
QPushButton *m_exitButton;
41+
QPushButton *m_selectButton;
42+
IIOItem *m_root;
43+
};
44+
} // namespace scopy
45+
46+
#endif // IIOCONFIGURATIONPOPUP_H

0 commit comments

Comments
 (0)