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 
61  protected:
65  virtual void CreateDialog();
66  virtual void RetranslateUi();
67 
68  private:
69  QVBoxLayout *verticalLayout;
70  QVBoxLayout *verticalLayoutHeader;
71  QLabel *label_header;
72  QHBoxLayout *horizontalLayout_low_high;
73  QLabel *label_low;
74  QLineEdit *lineEdit_low_0;
75  QLineEdit *lineEdit_low_1;
76  QSpacerItem *horizontalSpacer;
77  QLabel *label_high;
78  QLineEdit *lineEdit_high_0;
79  QLineEdit *lineEdit_high_1;
80  QHBoxLayout *horizontalLayout_autoset;
81  QLabel *label_autoset;
82  QRadioButton *radioButton_0;
83  QRadioButton *radioButton_1;
84  QRadioButton *radioButton_2;
85  QRadioButton *radioButton_3;
86  QRadioButton *radioButton_4;
87  QRadioButton *radioButton_5;
88  QHBoxLayout *horizontalLayout_buttons;
89  QPushButton *pushButton_reset;
90  QPushButton *pushButton_median;
91  QPushButton *pushButton_quit;
92 
93  QList<QRadioButton *> radioButton_list;
94 
95  QGridLayout *chartLayout;
96 
97  QLabel *label_chart;
98  QLabel *label_xaxis;
99  QLabel *label_yaxis;
100  QLabel *label_fill;
101 
102  QPainterPath *linePath;
103  QGraphicsPathItem *linePathItem;
104 
105  QList<QVariant> spectrum_vals;
106  QList<QPointF> pointList;
107 
108  int pixelMin;
109  int pixelMax;
110 
111  int rangeXMin;
112  int rangeXMax;
113  double valueYMin;
114  double valueYMax;
115 
116  double chartXMin;
117  double chartXMax;
118  double chartYMin;
119  double chartYMax;
120 
121  void createLayouts();
122  void createWidgets();
123  void createLineEditWidgets(const QFont font);
124  void createLabelWidgets(const QFont font);
125  void createButtonWidgets();
126  void clearEditWidgets();
127  void createChart();
128  void resetRadioButtons();
129 
130  void setCutValues(const QList<QVariant> cut_values, const bool initialSet);
131  void setHistogram(const QList<QVariant> hist_values);
132 
133  void showHistogram();
134  void DrawScaleX(const double min_value, const double max_value,
135  double *chart_min_value, double *chart_max_value,
136  QPainter &painter) const;
137  void DrawScaleY(const double min_value, const double max_value,
138  double *chart_min_value, double *chart_max_value,
139  QPainter &painter) const;
140  double CalculateTickPositionLinear(const double tick, const double min_value,
141  const double width,
142  const double maxsize) const;
143 
144  void fillPointList(const double xfactor, const double yfactor,
145  const int height);
146 
147  void findValueMinMax();
148 
149  public slots:
154  virtual void ResetPressed();
155 
160  virtual void MedianFilterPressed();
161 
165  virtual void QuitPressed();
166 
170  virtual void UpdateCutValues();
171 
175  virtual void AutoSetPressed_0();
176 
180  virtual void AutoSetPressed_1();
181 
185  virtual void AutoSetPressed_2();
186 
190  virtual void AutoSetPressed_3();
191 
195  virtual void AutoSetPressed_4();
196 
200  virtual void AutoSetPressed_5();
201 
202  private slots:
203 
204  signals:
208  void ParameterChanged(const QString dialog_id, const QString param_id,
209  const QVariant parameter);
210 };
211 
212 #endif // DDT_DATAVISUALISATION_DDTDIALOGS_PVCM_HPP
DdtPVCMDialog::MedianFilterPressed
virtual void MedianFilterPressed()
Definition: ddtPVCMDialog.cpp:633
DdtPVCMDialog::UpdateCutValues
virtual void UpdateCutValues()
Definition: ddtPVCMDialog.cpp:673
DdtPVCMDialog
Definition: ddtPVCMDialog.hpp:30
ddtDatavisualisationUtils.hpp
DdtPVCMDialog::SetInitialParameter
void SetInitialParameter(const QString parameter_id, const QVariant parameter) override
Definition: ddtPVCMDialog.cpp:585
DdtPVCMDialog::AutoSetPressed_0
virtual void AutoSetPressed_0()
Definition: ddtPVCMDialog.cpp:642
DdtPVCMDialog::AutoSetPressed_2
virtual void AutoSetPressed_2()
Definition: ddtPVCMDialog.cpp:652
ddtDialog.hpp
DdtPVCMDialog::ParameterChanged
void ParameterChanged(const QString dialog_id, const QString param_id, const QVariant parameter)
DdtPVCMDialog::DdtPVCMDialog
DdtPVCMDialog(QWidget *parent=nullptr)
Definition: ddtPVCMDialog.cpp:22
DdtPVCMDialog::~DdtPVCMDialog
virtual ~DdtPVCMDialog()=default
DdtPVCMDialog::SetChangedParameter
void SetChangedParameter(const QString param_id, const QVariant parameter) override
Definition: ddtPVCMDialog.cpp:605
ddtDialogIds.hpp
DdtPVCMDialog::AutoSetPressed_3
virtual void AutoSetPressed_3()
Definition: ddtPVCMDialog.cpp:657
DdtDialog
Definition: ddtDialog.hpp:24
DdtPVCMDialog::AutoSetPressed_4
virtual void AutoSetPressed_4()
Definition: ddtPVCMDialog.cpp:662
DdtPVCMDialog::QuitPressed
virtual void QuitPressed()
Definition: ddtPVCMDialog.cpp:640
DdtPVCMDialog::AutoSetPressed_5
virtual void AutoSetPressed_5()
Definition: ddtPVCMDialog.cpp:667
DdtPVCMDialog::CreateDialog
virtual void CreateDialog()
Definition: ddtPVCMDialog.cpp:27
DdtPVCMDialog::AutoSetPressed_1
virtual void AutoSetPressed_1()
Definition: ddtPVCMDialog.cpp:647
DdtPVCMDialog::RetranslateUi
virtual void RetranslateUi()
Definition: ddtPVCMDialog.cpp:554
DdtPVCMDialog::ResetPressed
virtual void ResetPressed()
Definition: ddtPVCMDialog.cpp:626