ddt 1.4.0
 
Loading...
Searching...
No Matches
ddtPanningWidget.hpp
Go to the documentation of this file.
1
11
12#ifndef DDT_DATAVISUALISATION_DDTWIDGETS_PANNINGWIDGET_HPP
13#define DDT_DATAVISUALISATION_DDTWIDGETS_PANNINGWIDGET_HPP
14
15#include <QtUiPlugin/QDesignerExportWidget>
16
18
23class QDESIGNER_WIDGET_EXPORT DdtPanningWidget : public DdtWidget {
24 Q_OBJECT
25 Q_PROPERTY(bool ShowAxes READ get_show_axes WRITE set_show_axes)
26
27 public:
32 explicit DdtPanningWidget(QWidget* parent = nullptr);
33
38
44 void set_show_axes(const bool show);
45
50 bool get_show_axes() const;
51
56 void set_rotation_deg(const float rotation);
57
63 float get_rotation_deg() const;
64
65 protected:
70
78 int show_status = 1;
79
84
89
94
100
105
110
115
121
127
131 QRubberBand* rubberband;
132
139 bool eventFilter(QObject* obj, QEvent* event);
140
141 private:
142 void CreateWidget();
143
144 void OnMouseMoveEvent(QMouseEvent* m);
145 void OnMousePressEvent(QMouseEvent* m);
146 void OnMouseReleaseEvent(QMouseEvent* m);
147
148 void UpdateSelectionRectangle(const bool externally_triggered = false);
149 void ValidateSelectionRectangle();
150
151 int PanWindowWidth() const;
152 int PanWindowHeight() const;
153
154 void DrawImage();
155
156 QTransform image_transform;
157
158 int start_drag_x;
159 int start_drag_y;
160
161 const int SHOW_NONE = 0;
162 const int SHOW_COMPASS_AND_XY = 1;
163 const int SHOW_COMPASS_ONLY = 2;
164 const int SHOW_XY_ONLY = 3;
165 const int SHOW_MAX = 4;
166
167 signals:
175 void UpdatePosition(double scroll_fraction_x, double scroll_fraction_y);
176
177 public slots:
178 // Image Widget interface
185 void SetImage(const QImage &image, const QTransform& transform,
186 const double rotation);
187
196 void ImageWidgetViewChanged(const QRectF& visible_image_rect,
197 const int current_image_width,
198 const int current_image_height);
199
204 void ClearMagnifiedImage();
205};
206
207#endif // DDT_DATAVISUALISATION_DDTWIDGETS_PANNINGWIDGET_HPP
float zoom_factor
Definition ddtPanningWidget.hpp:88
QImage preview_image
Definition ddtPanningWidget.hpp:104
DdtPanningWidget(QWidget *parent=nullptr)
Definition ddtPanningWidget.cpp:21
bool show_axes
Definition ddtPanningWidget.hpp:69
QRect max_selection_rectangle
Definition ddtPanningWidget.hpp:114
int show_status
Definition ddtPanningWidget.hpp:78
void SetImage(const QImage &image, const QTransform &transform, const double rotation)
Definition ddtPanningWidget.cpp:229
bool eventFilter(QObject *obj, QEvent *event)
Definition ddtPanningWidget.cpp:85
void UpdatePosition(double scroll_fraction_x, double scroll_fraction_y)
void set_show_axes(const bool show)
Definition ddtPanningWidget.cpp:59
bool get_show_axes() const
Definition ddtPanningWidget.cpp:67
QRubberBand * rubberband
Definition ddtPanningWidget.hpp:131
bool mouse_drag_active
Definition ddtPanningWidget.hpp:93
void set_rotation_deg(const float rotation)
Definition ddtPanningWidget.cpp:69
float get_rotation_deg() const
Definition ddtPanningWidget.cpp:73
float rotation_deg
Definition ddtPanningWidget.hpp:83
void ImageWidgetViewChanged(const QRectF &visible_image_rect, const int current_image_width, const int current_image_height)
Definition ddtPanningWidget.cpp:340
int origin_y
Definition ddtPanningWidget.hpp:126
bool ShowAxes
Definition ddtPanningWidget.hpp:25
void ClearMagnifiedImage()
Definition ddtPanningWidget.cpp:330
QRect selection_rectangle
Definition ddtPanningWidget.hpp:109
QLabel * preview_image_label
Definition ddtPanningWidget.hpp:99
int origin_x
Definition ddtPanningWidget.hpp:120
DdtWidget(QWidget *parent=nullptr)
DdtWidget.
Definition ddtWidget.cpp:19
DDT Widgets. Base class for the DDT widgets. Base class for the DDT widgets.