ddt  0.1
ddtPVCMDialog.hpp
Go to the documentation of this file.
1 // @copyright
2 // (c) Copyright ESO 2020
3 // All Rights Reserved
4 // ESO (eso.org) is an Intergovernmental Organization, and therefore special
5 // legal conditions apply.
6 //
7 // @file ddtPVCMDialog.hpp
8 // @brief DDT Dialogs. Class for the PVCM dialog
9 // A dialog that displays the pixel distribution versus the
10 // colour map values.
11 //
12 // Class for the DDT PVCM Dialog
13 //
14 // @author Carsten Mannel, CGI
15 // @since 2020/11/13
16 //
17 
18 #ifndef DDT_DATAVISUALISATION_DDTDIALOGS_PVCM_HPP
19 #define DDT_DATAVISUALISATION_DDTDIALOGS_PVCM_HPP
20 
21 #include <QtWidgets>
22 
26 
30 class DdtPVCMDialog : public DdtDialog {
31  Q_OBJECT
32 
33  public:
38  explicit DdtPVCMDialog(QWidget *parent = nullptr);
42  virtual ~DdtPVCMDialog() = default;
43 
50  void SetInitialParameter(const QString parameter_id,
51  const QVariant parameter) override;
52 
58  void SetChangedParameter(const QString param_id,
59  const QVariant parameter) override;
60 
65  QString GetDialogName() override;
66 
67  protected:
71  virtual void CreateDialog();
72  virtual void RetranslateUi();
73 
74  virtual void paintEvent(QPaintEvent *event);
75 
76  private:
77  QVBoxLayout *verticalLayout;
78  QVBoxLayout *verticalLayoutHeader;
79  QLabel *label_header;
80  QHBoxLayout *horizontalLayout_low_high;
81  QLabel *label_low;
82  QLineEdit *lineEdit_low_0;
83  QLineEdit *lineEdit_low_1;
84  QSpacerItem *horizontalSpacer;
85  QLabel *label_high;
86  QLineEdit *lineEdit_high_0;
87  QLineEdit *lineEdit_high_1;
88  QHBoxLayout *horizontalLayout_autoset;
89  QLabel *label_autoset;
90  QRadioButton *radioButton_0;
91  QRadioButton *radioButton_1;
92  QRadioButton *radioButton_2;
93  QRadioButton *radioButton_3;
94  QRadioButton *radioButton_4;
95  QRadioButton *radioButton_5;
96  QHBoxLayout *horizontalLayout_buttons;
97  QPushButton *pushButton_reset;
98  QPushButton *pushButton_median;
99  QPushButton *pushButton_quit;
100 
101  QList<QRadioButton *> radioButton_list;
102 
103  QGridLayout *chartLayout;
104 
105  QLabel *label_chart;
106  QLabel *label_xaxis;
107  QLabel *label_yaxis;
108  QLabel *label_fill;
109 
110  std::unique_ptr<QPainterPath> linePath;
111  std::unique_ptr<QGraphicsPathItem> linePathItem;
112 
113  QList<QVariant> spectrum_vals;
114  QList<QPointF> pointList;
115 
116  double pixelMin;
117  double pixelMax;
118 
119  double rangeXMin;
120  double rangeXMax;
121  double valueYMin;
122  double valueYMax;
123 
124  double chartXMin;
125  double chartXMax;
126  double chartYMin;
127  double chartYMax;
128 
129  void createLayouts();
130  void createWidgets();
131  void createLineEditWidgets(const QFont font);
132  void createLabelWidgets(const QFont font);
133  void createButtonWidgets();
134  void clearEditWidgets();
135  void createChart();
136  void resetRadioButtons();
137 
138  void setCutValues(const QList<QVariant> cut_values, const bool initialSet);
139  void setHistogram(const QList<QVariant> hist_values);
140 
141  void showHistogram();
142  void DrawScaleX(const double min_value, const double max_value,
143  double *chart_min_value, double *chart_max_value,
144  QPainter &painter) const;
145  void DrawScaleY(const double min_value, const double max_value,
146  double *chart_min_value, double *chart_max_value,
147  QPainter &painter) const;
148  double CalculateTickPositionLinear(const double tick, const double min_value,
149  const double width,
150  const double maxsize) const;
151 
152  void fillPointList(const double xfactor, const double yfactor,
153  const int height);
154 
155  void findValueMinMax();
156 
157  public slots:
162  virtual void ResetPressed();
163 
168  virtual void MedianFilterPressed();
169 
173  virtual void QuitPressed();
174 
178  virtual void UpdateCutValues();
179 
183  virtual void AutoSetPressed_0();
184 
188  virtual void AutoSetPressed_1();
189 
193  virtual void AutoSetPressed_2();
194 
198  virtual void AutoSetPressed_3();
199 
203  virtual void AutoSetPressed_4();
204 
208  virtual void AutoSetPressed_5();
209 
210  private slots:
211 
212  signals:
216  void ParameterChanged(const QString dialog_id, const QString param_id,
217  const QVariant parameter);
218 };
219 
220 #endif // DDT_DATAVISUALISATION_DDTDIALOGS_PVCM_HPP
DdtPVCMDialog::MedianFilterPressed
virtual void MedianFilterPressed()
Definition: ddtPVCMDialog.cpp:692
DdtPVCMDialog::UpdateCutValues
virtual void UpdateCutValues()
Definition: ddtPVCMDialog.cpp:742
DdtPVCMDialog
Definition: ddtPVCMDialog.hpp:30
ddtDatavisualisationUtils.hpp
DdtPVCMDialog::SetInitialParameter
void SetInitialParameter(const QString parameter_id, const QVariant parameter) override
Definition: ddtPVCMDialog.cpp:639
DdtPVCMDialog::AutoSetPressed_0
virtual void AutoSetPressed_0()
Definition: ddtPVCMDialog.cpp:705
DdtPVCMDialog::AutoSetPressed_2
virtual void AutoSetPressed_2()
Definition: ddtPVCMDialog.cpp:717
ddtDialog.hpp
DdtPVCMDialog::GetDialogName
QString GetDialogName() override
Definition: ddtPVCMDialog.cpp:31
DdtPVCMDialog::ParameterChanged
void ParameterChanged(const QString dialog_id, const QString param_id, const QVariant parameter)
DdtPVCMDialog::DdtPVCMDialog
DdtPVCMDialog(QWidget *parent=nullptr)
Definition: ddtPVCMDialog.cpp:26
DdtPVCMDialog::~DdtPVCMDialog
virtual ~DdtPVCMDialog()=default
DdtPVCMDialog::SetChangedParameter
void SetChangedParameter(const QString param_id, const QVariant parameter) override
Definition: ddtPVCMDialog.cpp:661
ddtDialogIds.hpp
DdtPVCMDialog::AutoSetPressed_3
virtual void AutoSetPressed_3()
Definition: ddtPVCMDialog.cpp:723
DdtDialog
Definition: ddtDialog.hpp:24
DdtPVCMDialog::AutoSetPressed_4
virtual void AutoSetPressed_4()
Definition: ddtPVCMDialog.cpp:729
DdtPVCMDialog::QuitPressed
virtual void QuitPressed()
Definition: ddtPVCMDialog.cpp:700
DdtPVCMDialog::AutoSetPressed_5
virtual void AutoSetPressed_5()
Definition: ddtPVCMDialog.cpp:735
DdtPVCMDialog::CreateDialog
virtual void CreateDialog()
Definition: ddtPVCMDialog.cpp:35
DdtPVCMDialog::paintEvent
virtual void paintEvent(QPaintEvent *event)
Definition: ddtPVCMDialog.cpp:138
DdtPVCMDialog::AutoSetPressed_1
virtual void AutoSetPressed_1()
Definition: ddtPVCMDialog.cpp:711
DdtPVCMDialog::RetranslateUi
virtual void RetranslateUi()
Definition: ddtPVCMDialog.cpp:607
DdtPVCMDialog::ResetPressed
virtual void ResetPressed()
Definition: ddtPVCMDialog.cpp:684