QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RGraphicsViewQt.h
Go to the documentation of this file.
1
20#ifndef RGRAPHICSVIEWQT_H
21#define RGRAPHICSVIEWQT_H
22
23#include "gui_global.h"
24
25#include <QElapsedTimer>
26#include <QWidget>
27
28#include "RVector.h"
29
30class QFrame;
31class QGestureEvent;
33
44class QCADGUI_EXPORT RGraphicsViewQt : public QWidget {
45 Q_OBJECT
46
47public:
48 RGraphicsViewQt(QWidget* parent=NULL, bool showFocus=true);
49 virtual ~RGraphicsViewQt();
50
51 void setImageView(RGraphicsViewImage* v);
52
54 return imageView;
55 }
56
58 gesturesEnabled = false;
59 ungrabGesture(Qt::PanGesture);
60 ungrabGesture(Qt::PinchGesture);
61 }
62
63 virtual void removeFocus();
64
65 virtual int getWidth() const;
66 virtual int getHeight() const;
67 virtual QRect getRect() const;
68
69 virtual bool getSignalsBlocked() const;
70 virtual void setSignalsBlocked(bool on);
71
72 void setFocusFrameWidget(QFrame* w);
73
74 virtual void simulateMouseMoveEvent();
75
76 virtual QSize sizeHint() const;
77
78signals:
79 void drop(QDropEvent* event);
80 void dragEnter(QDragEnterEvent* event);
81
82protected:
83
84 bool event(QEvent* e);
85
86 bool gestureEvent(QGestureEvent* event);
87
88 virtual void focusInEvent(QFocusEvent* event);
89 virtual void focusOutEvent(QFocusEvent* event);
90
91 virtual void tabletEvent(QTabletEvent *event);
92 virtual void mouseMoveEvent(QMouseEvent* event);
93 virtual void mousePressEvent(QMouseEvent* event);
94 virtual void mouseReleaseEvent(QMouseEvent* event);
95 virtual void mouseDoubleClickEvent(QMouseEvent* event);
96 virtual void wheelEvent(QWheelEvent* event);
97 virtual void paintEvent(QPaintEvent*);
98 virtual void resizeEvent(QResizeEvent* event);
99 virtual void keyPressEvent(QKeyEvent* event);
100 virtual void keyReleaseEvent(QKeyEvent* event);
101 virtual void dragEnterEvent(QDragEnterEvent* event);
102 virtual void dropEvent(QDropEvent* event);
103 virtual bool focusNextPrevChild(bool next) {
104 // ignore tab key:
105 return false;
106 }
107
108private slots:
109 void imageViewDeleted();
110
111private:
113 Qt::MouseButtons lastButtonState;
114
116
118
120 QElapsedTimer mouseClickTimer;
124
125 // backend to render to bitmap (can be QPainter or Skia):
127};
128
130
131#endif
Q_DECLARE_METATYPE(RMath *)
QImage based 2d graphics view.
Definition RGraphicsViewImage.h:69
QWidget based 2d graphics view.
Definition RGraphicsViewQt.h:44
bool gesturesEnabled
Definition RGraphicsViewQt.h:119
void drop(QDropEvent *event)
QElapsedTimer mouseClickTimer
Definition RGraphicsViewQt.h:120
virtual bool focusNextPrevChild(bool next)
Definition RGraphicsViewQt.h:103
bool gotMouseButtonPress
Definition RGraphicsViewQt.h:123
RGraphicsViewImage * getImageView() const
Definition RGraphicsViewQt.h:53
RGraphicsViewImage * imageView
Definition RGraphicsViewQt.h:126
bool showFocus
Definition RGraphicsViewQt.h:115
void disableGestures()
Definition RGraphicsViewQt.h:57
Qt::MouseButtons lastButtonState
remember last mouse button state for wacom bug workaround
Definition RGraphicsViewQt.h:113
RVector mousePressScreenPosition
Definition RGraphicsViewQt.h:121
RVector mousePressModelPosition
Definition RGraphicsViewQt.h:122
void dragEnter(QDragEnterEvent *event)
QFrame * focusFrameWidget
Definition RGraphicsViewQt.h:117
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADGUI_EXPORT
Definition gui_global.h:10
#define NULL
Definition opennurbs_system.h:256