The ImageTaskGraphicsView class models a graphics view for viewing the images and shapes used and/or produced by image tasks.
More...
#include <imagetaskgraphicsview.h>
The ImageTaskGraphicsView class models a graphics view for viewing the images and shapes used and/or produced by image tasks.
geometrize::scene::ImageTaskGraphicsView::ImageTaskGraphicsView |
( |
QWidget * |
parent = nullptr | ) |
|
|
explicit |
113 : QGraphicsView(parent),
d{std::make_unique<ImageTaskGraphicsViewImpl>(
this)}
115 viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
116 setInteractive(
true);
117 setMouseTracking(
true);
118 setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
119 setDragMode(QGraphicsView::ScrollHandDrag);
120 setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
void populateUi()
Definition: imagetaskgraphicsview.cpp:259
std::unique_ptr< ImageTaskGraphicsViewImpl > d
Definition: imagetaskgraphicsview.h:43
geometrize::scene::ImageTaskGraphicsView::~ImageTaskGraphicsView |
( |
| ) |
|
|
virtual |
void geometrize::scene::ImageTaskGraphicsView::changeEvent |
( |
QEvent * |
event | ) |
|
|
overrideprotected |
253 if (event->type() == QEvent::LanguageChange) {
256 QGraphicsView::changeEvent(event);
void populateUi()
Definition: imagetaskgraphicsview.cpp:259
void geometrize::scene::ImageTaskGraphicsView::keyPressEvent |
( |
QKeyEvent * |
event | ) |
|
|
overrideprivate |
243 QGraphicsView::keyPressEvent(event);
void geometrize::scene::ImageTaskGraphicsView::keyReleaseEvent |
( |
QKeyEvent * |
event | ) |
|
|
overrideprivate |
248 QGraphicsView::keyReleaseEvent(event);
void geometrize::scene::ImageTaskGraphicsView::mouseMoveEvent |
( |
QMouseEvent * |
event | ) |
|
|
overrideprivate |
238 QGraphicsView::mouseMoveEvent(event);
void geometrize::scene::ImageTaskGraphicsView::mousePressEvent |
( |
QMouseEvent * |
event | ) |
|
|
overrideprivate |
228 QGraphicsView::mousePressEvent(event);
void geometrize::scene::ImageTaskGraphicsView::mouseReleaseEvent |
( |
QMouseEvent * |
event | ) |
|
|
overrideprivate |
233 QGraphicsView::mouseReleaseEvent(event);
void geometrize::scene::ImageTaskGraphicsView::populateUi |
( |
| ) |
|
|
private |
bool geometrize::scene::ImageTaskGraphicsView::viewportEvent |
( |
QEvent * |
event | ) |
|
|
overrideprivate |
131 switch(event->type()) {
132 case QEvent::TabletMove:
133 case QEvent::TabletPress:
134 case QEvent::TabletRelease:
135 case QEvent::TabletEnterProximity:
136 case QEvent::TabletLeaveProximity:
139 const auto customEventData = makeCustomTabletEventData(static_cast<QTabletEvent&>(*event), *
this);
141 QCoreApplication::sendEvent(dynamic_cast<geometrize::scene::ImageTaskScene*>(scene()), &customEvent);
177 return QGraphicsView::viewportEvent(event);
The CustomTabletEvent class represents a tablet event (specifically from a Wacom Pro pen) that can be...
Definition: customtabletevent.h:87
void geometrize::scene::ImageTaskGraphicsView::wheelEvent |
( |
QWheelEvent * |
event | ) |
|
|
overrideprivate |
182 if(e->modifiers() & Qt::ControlModifier) {
184 QGraphicsView::wheelEvent(e);
189 if (e->angleDelta().x() == 0) {
190 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
191 const QPointF pos{e->position()};
192 const QPointF posf{mapToScene(pos.toPoint())};
193 const QPointF newPos{mapToScene(pos.toPoint())};
195 const QPoint pos{e->pos()};
196 const QPointF posf{mapToScene(pos)};
197 const QPointF newPos{mapToScene(pos)};
200 const double angle{
static_cast<double>(e->angleDelta().y())};
203 by = 1 + (angle / 360 * 0.1);
204 }
else if (angle < 0) {
205 by = 1 - (-angle / 360 * 0.1);
212 const int w{viewport()->width()};
213 const int h{viewport()->height()};
214 const double wf{mapToScene(QPoint(w - 1, 0)).x() - mapToScene(QPoint(0,0)).x()};
215 const double hf{mapToScene(QPoint(0, h - 1)).y() - mapToScene(QPoint(0,0)).y()};
216 const double lf{posf.x() - pos.x() * wf / w};
217 const double tf{posf.y() - pos.y() * hf / h};
219 ensureVisible(lf, tf, wf, hf, 0, 0);
220 ensureVisible(QRectF(QPointF(lf, tf) - newPos + posf, QSizeF(wf, hf)), 0, 0);
The documentation for this class was generated from the following files: