ddt 1.2.1
Loading...
Searching...
No Matches
ddtPanningWidget.hpp
Go to the documentation of this file.
1
21#ifndef DDT_DATAVISUALISATION_DDTWIDGETS_PANNINGWIDGET_HPP
22#define DDT_DATAVISUALISATION_DDTWIDGETS_PANNINGWIDGET_HPP
23
24#include <QtUiPlugin/QDesignerExportWidget>
25
27
32class QDESIGNER_WIDGET_EXPORT DdtPanningWidget : public DdtWidget {
33 Q_OBJECT
34 Q_PROPERTY(bool ShowAxes READ get_show_axes WRITE set_show_axes)
35
36 public:
41 explicit DdtPanningWidget(QWidget* parent = nullptr);
42
47
53 void set_show_axes(const bool show);
54
59 bool get_show_axes() const;
60
65 void set_rotation_deg(const float rotation);
66
72 float get_rotation_deg() const;
73
74 protected:
79
87 int show_status = 1;
88
93
98
103
109
114
119
124
130
136
140 QRubberBand* rubberband;
141
148 bool eventFilter(QObject* obj, QEvent* event);
149
150 private:
151 void CreateWidget();
152
153 void OnMouseMoveEvent(QMouseEvent* m);
154 void OnMousePressEvent(QMouseEvent* m);
155 void OnMouseReleaseEvent(QMouseEvent* m);
156
157 void UpdateSelectionRectangle(const bool externally_triggered = false);
158 void ValidateSelectionRectangle();
159
160 int PanWindowWidth() const;
161 int PanWindowHeight() const;
162
163 void DrawImage();
164
165 QTransform image_transform;
166
167 int start_drag_x;
168 int start_drag_y;
169
170 const int SHOW_NONE = 0;
171 const int SHOW_COMPASS_AND_XY = 1;
172 const int SHOW_COMPASS_ONLY = 2;
173 const int SHOW_XY_ONLY = 3;
174 const int SHOW_MAX = 4;
175
176 signals:
184 void UpdatePosition(double scroll_fraction_x, double scroll_fraction_y);
185
186 public slots:
187 // Image Widget interface
194 void SetImage(const QImage &image, const QTransform& transform,
195 const double rotation);
196
205 void ImageWidgetViewChanged(const QRectF& visible_image_rect,
206 const int current_image_width,
207 const int current_image_height);
208
213 void ClearMagnifiedImage();
214};
215
216#endif // DDT_DATAVISUALISATION_DDTWIDGETS_PANNINGWIDGET_HPP
217
Definition ddtPanningWidget.hpp:32
float zoom_factor
Definition ddtPanningWidget.hpp:97
QImage preview_image
Definition ddtPanningWidget.hpp:113
bool show_axes
Definition ddtPanningWidget.hpp:78
QRect max_selection_rectangle
Definition ddtPanningWidget.hpp:123
void UpdatePosition(double scroll_fraction_x, double scroll_fraction_y)
QRubberBand * rubberband
Definition ddtPanningWidget.hpp:140
bool mouse_drag_active
Definition ddtPanningWidget.hpp:102
float rotation_deg
Definition ddtPanningWidget.hpp:92
int origin_y
Definition ddtPanningWidget.hpp:135
QRect selection_rectangle
Definition ddtPanningWidget.hpp:118
QLabel * preview_image_label
Definition ddtPanningWidget.hpp:108
int origin_x
Definition ddtPanningWidget.hpp:129
The DdtWidget class Use as wrapper class for new widgets.
Definition ddtWidget.hpp:28
DDT Widgets. Base class for the DDT widgets. Base class for the DDT widgets.