ddt  0.1
ddtMagnificationWidget.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 ddtMagnificationWidgets.hpp
8 // @brief DDT Widgets. Class for the DDT Magnification Widget.
9 //
10 // Class for the Magnification Widget. The widget will display a magnified part
11 // of the original image around the current mouse position
12 //
13 // @author Carsten Mannel, CGI
14 // @since 2020/11/24
15 //
16 
17 #ifndef DDT_DATAVISUALISATION_DDTWIDGETS_MAGNIFICATIONWIDGET_HPP
18 #define DDT_DATAVISUALISATION_DDTWIDGETS_MAGNIFICATIONWIDGET_HPP
19 
20 #include <QtUiPlugin/QDesignerExportWidget>
21 
23 #include "ddt/imageHandling.hpp"
25 
32 class QDESIGNER_WIDGET_EXPORT DdtMagnificationWidget : public DdtWidget {
33  Q_OBJECT
34 
35  Q_PROPERTY(QString default_magnification_factors READ
36  get_default_magnification_factors WRITE
37  set_default_magnification_factors)
38  Q_PROPERTY(int region_size READ get_region_size WRITE set_region_size)
39 
40  public:
45  explicit DdtMagnificationWidget(QWidget* parent = nullptr);
46 
50  virtual ~DdtMagnificationWidget() = default;
51 
57  void set_default_magnification_factors(const QString default_factors);
58 
63  QString get_default_magnification_factors();
64 
69  void set_region_size(const int size);
70 
75  int get_region_size();
76 
81  void SetImageSize(int size);
82 
87  int GetImageSize();
88 
96  void DrawMarker(double fwhm_x, double fwhm_y,
97  const double angle_x_axis) const;
98 
106  void DrawCenterRectangle(QPixmap* const image) const;
107 
111  void ClearImage();
112 
113  protected:
119 
125 
130 
135 
136  private:
137  QLabel* label_zoomed_image;
138  QToolButton* button_zoom_in;
139  QToolButton* button_zoom_out;
140  QToolButton* button_zoom_one;
141  QLabel* label_current_zoom;
142 
143  void CreateWidget();
144 
145  void ChangedMagnification(QString magnification_factor);
146 
147  private slots:
148 
149  void ButtonZoomInPressed();
150  void ButtonZoomOutPressed();
151  void ButtonZoomOnePressed();
152 
153  public slots:
154 
159  void MagnifiedImage(QImage magnified_image);
160 
161  signals:
165  void SetMagnificationFactor(QString factor);
166 };
167 
168 #endif // DDT_DATAVISUALISATION_DDTWIDGETS_MAGNIFICATIONWIDGET_HPP
DdtMagnificationWidget::magnification_factors
QStringList magnification_factors
Definition: ddtMagnificationWidget.hpp:134
DdtMagnificationWidget::~DdtMagnificationWidget
virtual ~DdtMagnificationWidget()=default
ddtDatavisualisationUtils.hpp
DdtMagnificationWidget::region_size
int region_size
region_size The size of the region
Definition: ddtMagnificationWidget.hpp:124
DdtMagnificationWidget::default_magnification_factors
QString default_magnification_factors
default_magnification_factors List of magnification scales
Definition: ddtMagnificationWidget.hpp:118
DdtWidget
The DdtWidget class Use as wrapper class for new widgets.
Definition: ddtWidget.hpp:23
DdtMagnificationWidget::magnification_factor_index
int magnification_factor_index
Definition: ddtMagnificationWidget.hpp:129
DdtMagnificationWidget
The DdtMagnificationWidget class Class for the Magnification Widget that can be used to display a mag...
Definition: ddtMagnificationWidget.hpp:32
ddtWidget.hpp
imageHandling.hpp
DdtMagnificationWidget::SetMagnificationFactor
void SetMagnificationFactor(QString factor)