Skip to content

Commit 19dd01b

Browse files
committed
iiowidgets: add info icon for iiowidgets
Signed-off-by: IonutMuthi <[email protected]>
1 parent 3f29a31 commit 19dd01b

File tree

11 files changed

+51
-6
lines changed

11 files changed

+51
-6
lines changed

gui/include/gui/widgets/menucombo.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
#ifndef MENUCOMBO_H
2323
#define MENUCOMBO_H
2424

25+
#include "infoiconwidget.h"
26+
2527
#include <QComboBox>
2628
#include <QLabel>
2729
#include <QPen>
@@ -45,9 +47,11 @@ class SCOPY_GUI_EXPORT MenuCombo : public QWidget
4547

4648
QString title() const;
4749
void setTitle(const QString &newTitle);
50+
void setInfoMessage(QString infoMessage);
4851

4952
private:
5053
QLabel *m_label;
54+
InfoIconWidget *m_infoIcon;
5155
QComboBox *m_combo;
5256
MouseWheelWidgetGuard *m_mouseWheelGuard;
5357
};
@@ -64,6 +68,7 @@ class SCOPY_GUI_EXPORT MenuComboWidget : public QWidget
6468

6569
QString title() const;
6670
void setTitle(const QString &newTitle);
71+
void setInfoMessage(QString infoMessage);
6772

6873
private:
6974
MenuCombo *m_combo;

gui/include/gui/widgets/menuspinbox.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <QPushButton>
3434
#include <QLabel>
3535
#include <QBoxLayout>
36+
#include <infoiconwidget.h>
3637

3738
namespace scopy {
3839
namespace gui {
@@ -161,6 +162,7 @@ class SCOPY_GUI_EXPORT MenuSpinbox : public QWidget
161162

162163
public Q_SLOTS:
163164
void setName(const QString &newName);
165+
void setInfoMessage(QString infoMessage);
164166
void setUnit(const QString &newUnit);
165167
void setMinValue(double);
166168
void setMaxValue(double);
@@ -186,6 +188,7 @@ private Q_SLOTS:
186188
double clamp(double val, double min, double max);
187189

188190
QLabel *m_label;
191+
InfoIconWidget *m_infoIcon;
189192
QLineEdit *m_edit;
190193
QComboBox *m_scaleCb;
191194
QPushButton *m_plus;

gui/src/widgets/menucombo.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ QString MenuComboWidget::title() const { return m_combo->title(); }
4949

5050
void MenuComboWidget::setTitle(const QString &newTitle) { m_combo->setTitle(newTitle); }
5151

52+
void MenuComboWidget::setInfoMessage(QString infoMessage) { m_combo->setInfoMessage(infoMessage); }
53+
5254
MenuCombo::MenuCombo(QString title, QWidget *parent)
5355
: QWidget(parent)
5456
{
@@ -63,9 +65,19 @@ MenuCombo::MenuCombo(QString title, QWidget *parent)
6365
m_label = new QLabel(title, this);
6466
Style::setStyle(m_label, style::properties::label::subtle);
6567

68+
m_infoIcon = new InfoIconWidget("", parent);
69+
6670
m_combo = new QComboBox(this);
6771

68-
lay->addWidget(m_label);
72+
QHBoxLayout *labelLayout = new QHBoxLayout();
73+
labelLayout->setContentsMargins(0, 0, 0, 0);
74+
labelLayout->setSpacing(5);
75+
76+
labelLayout->addWidget(m_label);
77+
labelLayout->addWidget(m_infoIcon);
78+
labelLayout->addItem(new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Preferred));
79+
80+
lay->addLayout(labelLayout);
6981
lay->addWidget(m_combo);
7082
m_mouseWheelGuard->installEventRecursively(this);
7183
}
@@ -77,4 +89,6 @@ QString MenuCombo::title() const { return m_label->text(); }
7789

7890
void MenuCombo::setTitle(const QString &newTitle) { m_label->setText(newTitle); }
7991

92+
void MenuCombo::setInfoMessage(QString infoMessage) { m_infoIcon->setInfoMessage(infoMessage); }
93+
8094
#include "moc_menucombo.cpp"

gui/src/widgets/menuspinbox.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ MenuSpinbox::MenuSpinbox(QString name, double val, QString unit, double min, dou
3434
m_label = new QLabel(name, parent);
3535
Style::setStyle(m_label, style::properties::label::subtle);
3636

37+
m_infoIcon = new InfoIconWidget("", parent);
38+
3739
m_edit = new QLineEdit("0", parent);
3840
m_scaleCb = new QComboBox(parent);
3941
m_plus = new QPushButton("", parent);
@@ -110,7 +112,14 @@ void MenuSpinbox::layoutVertically(bool left)
110112
btnLay->addWidget(m_plus);
111113
btnLay->addWidget(m_minus);
112114

113-
editLay->addWidget(m_label);
115+
QHBoxLayout *labelLayout = new QHBoxLayout();
116+
labelLayout->setContentsMargins(0, 0, 0, 0);
117+
labelLayout->setSpacing(2);
118+
labelLayout->addWidget(m_label);
119+
labelLayout->addWidget(m_infoIcon);
120+
labelLayout->addItem(new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Preferred));
121+
122+
editLay->addItem(labelLayout);
114123
editLay->addWidget(m_edit);
115124

116125
editLay->addWidget(m_scaleCb);
@@ -170,6 +179,7 @@ void MenuSpinbox::layoutHorizontally(bool left)
170179
btnLay->addWidget(m_plus);
171180

172181
editLay->addWidget(m_label);
182+
editLay->addWidget(m_infoIcon);
173183
editLay->addWidget(m_edit);
174184

175185
editLay->addWidget(m_scaleCb);
@@ -376,6 +386,8 @@ void MenuSpinbox::setName(const QString &newName)
376386
Q_EMIT nameChanged(newName);
377387
}
378388

389+
void MenuSpinbox::setInfoMessage(QString infoMessage) { m_infoIcon->setInfoMessage(infoMessage); }
390+
379391
double MenuSpinbox::getScaleForPrefix(QString prefix, Qt::CaseSensitivity s)
380392
{
381393
for(int i = 0; i < m_scales.count(); i++) {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class SCOPY_IIO_WIDGETS_EXPORT CheckBoxAttrUi : public QObject, public GuiStrate
4848
bool isValid() final;
4949

5050
void setCustomTitle(QString title) override;
51+
void setInfoMessage(QString infoMessage) { m_infoIcon->setInfoMessage(infoMessage); }
5152

5253
public Q_SLOTS:
5354
void receiveData(QString currentData, QString optionalData) override;
@@ -62,6 +63,7 @@ public Q_SLOTS:
6263
MenuOnOffSwitch *m_menuOnOffSwitch;
6364
bool m_isCompact;
6465
QLabel *m_title;
66+
InfoIconWidget *m_infoIcon;
6567
};
6668
} // namespace scopy
6769

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class SCOPY_IIO_WIDGETS_EXPORT EditableGuiStrategy : public QObject, public GuiS
5050
bool isValid() override;
5151

5252
void setCustomTitle(QString title) override;
53-
void setInfoMessage(QString infoMessage);
53+
void setInfoMessage(QString infoMessage) { m_infoIcon->setInfoMessage(infoMessage); }
5454

5555
public Q_SLOTS:
5656
void receiveData(QString currentData, QString optionalData) override;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ class SCOPY_IIO_WIDGETS_EXPORT RangeAttrUi : public QObject, public GuiStrategyI
5252

5353
void setCustomTitle(QString title) override;
5454

55+
void setInfoMessage(QString infoMessage);
56+
5557
public Q_SLOTS:
5658
void receiveData(QString currentData, QString optionalData) override;
5759

iio-widgets/src/guistrategy/checkboxguistrategy.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,12 @@ CheckBoxAttrUi::CheckBoxAttrUi(IIOWidgetFactoryRecipe recipe, bool isCompact, QW
3939
if(!m_isCompact) {
4040
m_title = new QLabel(recipe.data, m_ui);
4141
m_title->setWordWrap(true);
42-
m_title->setFixedWidth(m_menuOnOffSwitch->width());
4342
Style::setStyle(m_title, style::properties::label::subtle);
4443
m_ui->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
4544
m_ui->layout()->addWidget(m_title);
45+
46+
m_infoIcon = new InfoIconWidget(recipe.infoMessage, m_ui);
47+
m_ui->layout()->addWidget(m_infoIcon);
4648
}
4749
m_ui->layout()->addWidget(m_menuOnOffSwitch);
4850

iio-widgets/src/guistrategy/comboguistrategy.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ ComboAttrUi::ComboAttrUi(IIOWidgetFactoryRecipe recipe, bool isCompact, QWidget
5454

5555
m_comboMenuWidget = new MenuCombo(recipe.data, m_ui);
5656
m_comboWidget = m_comboMenuWidget->combo();
57+
m_comboMenuWidget->setInfoMessage(recipe.infoMessage);
5758

5859
m_ui->layout()->addWidget(m_comboMenuWidget);
5960
}
@@ -93,6 +94,8 @@ void ComboAttrUi::setInfoMessage(QString infoMessage)
9394
{
9495
if(!m_isCompact) {
9596
m_infoIcon->setInfoMessage(infoMessage);
97+
} else {
98+
m_comboMenuWidget->setInfoMessage(infoMessage);
9699
}
97100
}
98101

iio-widgets/src/guistrategy/editableguistrategy.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,6 @@ bool EditableGuiStrategy::isValid()
8383

8484
void EditableGuiStrategy::setCustomTitle(QString title) { m_title->setText(title); }
8585

86-
void EditableGuiStrategy::setInfoMessage(QString infoMessage) { m_infoIcon->setInfoMessage(infoMessage); }
87-
8886
void EditableGuiStrategy::receiveData(QString currentData, QString optionalData)
8987
{
9088
QSignalBlocker blocker(m_lineEdit);

0 commit comments

Comments
 (0)