Maki
Formally verfied low-code orchestration
Loading...
Searching...
No Matches
plugin_view.h
1#pragma once
2
3#include <QGraphicsView>
4#include <QKeyEvent>
5#include <QWheelEvent>
6
10class PluginView : public QGraphicsView
11{
12 Q_OBJECT
13
14public:
20 PluginView(QWidget* parent = nullptr);
21
27 QPointF getCenter() const;
28
34 qreal getScale() const;
35
41 void setScale(qreal scale);
42
48 void zoom(float scaleFactor);
49
55 void centerOn(const QPointF& pos);
56
62 void centerOn(const QGraphicsItem* item);
63
64protected:
70 void keyPressEvent(QKeyEvent*) override;
71
77 void keyReleaseEvent(QKeyEvent*) override;
78
84 void mouseMoveEvent(QMouseEvent*) override;
85
91 void mousePressEvent(QMouseEvent*) override;
92
98 void mouseReleaseEvent(QMouseEvent*) override;
99
105 void wheelEvent(QWheelEvent*) override;
106
107private:
110
113
116
118 QPointF mCenterPoint;
119
121 qreal mPanSpeed;
122
125
127 Qt::Key mZoomKey;
128
130 qreal mMinZoom;
131
133 qreal mMaxZoom;
134
136 Qt::MouseButton mPanButton;
137
143 void pan(QPointF delta);
144
148 void zoomIn();
149
153 void zoomOut();
154
158 void resetZoom();
159
166 qreal quantisedScale(qreal proposedScale) const;
167
171 void setMaxSize();
172};
void zoom(float scaleFactor)
Zooms in by a specified scale factor.
Definition plugin_view.cpp:172
void pan(QPointF delta)
Determines which mouse button is used for panning.
Definition plugin_view.cpp:199
void zoomIn()
Zooms in.
Definition plugin_view.cpp:154
void keyPressEvent(QKeyEvent *) override
Handles key press events.
Definition plugin_view.cpp:72
void resetZoom()
Resets the view to its default scale.
Definition plugin_view.cpp:164
PluginView(QWidget *parent=nullptr)
Constructs a new PluginView object.
Definition plugin_view.cpp:10
void mouseReleaseEvent(QMouseEvent *) override
Handles mouse release events.
Definition plugin_view.cpp:135
void mouseMoveEvent(QMouseEvent *) override
Handles mouse move events.
Definition plugin_view.cpp:108
qreal quantisedScale(qreal proposedScale) const
Quantises a proposed scale factor to ensure it is within valid limits.
Definition plugin_view.cpp:187
Qt::Key mZoomKey
Defines the increment or decrement in zoom level.
Definition plugin_view.h:127
void setMaxSize()
Sets the maximum size of the view's scene rect.
Definition plugin_view.cpp:67
void mousePressEvent(QMouseEvent *) override
Handles mouse press events.
Definition plugin_view.cpp:123
qreal mPanSpeed
Keeps track of the current center point of the view.
Definition plugin_view.h:121
bool mDoKeyZoom
Determines whether mouse panning is enabled.
Definition plugin_view.h:112
void wheelEvent(QWheelEvent *) override
Handles wheel events.
Definition plugin_view.cpp:146
qreal mMinZoom
Specifies the key that triggers zoom actions.
Definition plugin_view.h:130
qreal mMaxZoom
Sets the lower limit for the zoom factor.
Definition plugin_view.h:133
void zoomOut()
Zooms out.
Definition plugin_view.cpp:159
void centerOn(const QPointF &pos)
Centers the view on a given position.
Definition plugin_view.cpp:52
qreal getScale() const
Gets the current scale factor of the view.
Definition plugin_view.cpp:37
void setScale(qreal scale)
Sets the scale factor of the view.
Definition plugin_view.cpp:58
QPointF getCenter() const
Gets the current center point of the view.
Definition plugin_view.cpp:42
void keyReleaseEvent(QKeyEvent *) override
Handles key release events.
Definition plugin_view.cpp:100
Qt::MouseButton mPanButton
Sets the upper limit for the zoom factor.
Definition plugin_view.h:136
QPoint mLastMousePos
Determines whether key-based zooming is enabled.
Definition plugin_view.h:115
bool mDoMousePanning
Flag to determine if mouse panning should be done.
Definition plugin_view.h:109
QPointF mCenterPoint
Stores the last mouse position for panning.
Definition plugin_view.h:118
qreal mZoomDelta
Controls the speed of the panning action.
Definition plugin_view.h:124