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.
◆ ImageTaskGraphicsView()
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);
121 setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
122 setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
◆ ~ImageTaskGraphicsView()
geometrize::scene::ImageTaskGraphicsView::~ImageTaskGraphicsView |
( |
| ) |
|
|
virtual |
◆ changeEvent()
void geometrize::scene::ImageTaskGraphicsView::changeEvent |
( |
QEvent * |
event | ) |
|
|
overrideprotected |
255 if (event->type() == QEvent::LanguageChange) {
258 QGraphicsView::changeEvent(event);
◆ keyPressEvent()
void geometrize::scene::ImageTaskGraphicsView::keyPressEvent |
( |
QKeyEvent * |
event | ) |
|
|
overrideprivate |
245 QGraphicsView::keyPressEvent(event);
◆ keyReleaseEvent()
void geometrize::scene::ImageTaskGraphicsView::keyReleaseEvent |
( |
QKeyEvent * |
event | ) |
|
|
overrideprivate |
250 QGraphicsView::keyReleaseEvent(event);
◆ mouseMoveEvent()
void geometrize::scene::ImageTaskGraphicsView::mouseMoveEvent |
( |
QMouseEvent * |
event | ) |
|
|
overrideprivate |
240 QGraphicsView::mouseMoveEvent(event);
◆ mousePressEvent()
void geometrize::scene::ImageTaskGraphicsView::mousePressEvent |
( |
QMouseEvent * |
event | ) |
|
|
overrideprivate |
230 QGraphicsView::mousePressEvent(event);
◆ mouseReleaseEvent()
void geometrize::scene::ImageTaskGraphicsView::mouseReleaseEvent |
( |
QMouseEvent * |
event | ) |
|
|
overrideprivate |
235 QGraphicsView::mouseReleaseEvent(event);
◆ populateUi()
void geometrize::scene::ImageTaskGraphicsView::populateUi |
( |
| ) |
|
|
private |
◆ viewportEvent()
bool geometrize::scene::ImageTaskGraphicsView::viewportEvent |
( |
QEvent * |
event | ) |
|
|
overrideprivate |
133 switch(event->type()) {
134 case QEvent::TabletMove:
135 case QEvent::TabletPress:
136 case QEvent::TabletRelease:
137 case QEvent::TabletEnterProximity:
138 case QEvent::TabletLeaveProximity:
141 const auto customEventData = makeCustomTabletEventData(
static_cast<QTabletEvent&
>(*event), *
this);
179 return QGraphicsView::viewportEvent(event);
◆ wheelEvent()
void geometrize::scene::ImageTaskGraphicsView::wheelEvent |
( |
QWheelEvent * |
event | ) |
|
|
overrideprivate |
184 if(e->modifiers() & Qt::ControlModifier) {
186 QGraphicsView::wheelEvent(e);
191 if (e->angleDelta().x() == 0) {
192 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
193 const QPointF pos{e->position()};
194 const QPointF posf{mapToScene(pos.toPoint())};
195 const QPointF newPos{mapToScene(pos.toPoint())};
197 const QPoint pos{e->pos()};
198 const QPointF posf{mapToScene(pos)};
199 const QPointF newPos{mapToScene(pos)};
202 const double angle{
static_cast<double>(e->angleDelta().y())};
205 by = 1 + (angle / 360 * 0.1);
206 }
else if (angle < 0) {
207 by = 1 - (-angle / 360 * 0.1);
214 const int w{viewport()->width()};
215 const int h{viewport()->height()};
216 const double wf{mapToScene(QPoint(w - 1, 0)).x() - mapToScene(QPoint(0,0)).x()};
217 const double hf{mapToScene(QPoint(0, h - 1)).y() - mapToScene(QPoint(0,0)).y()};
218 const double lf{posf.x() - pos.x() * wf / w};
219 const double tf{posf.y() - pos.y() * hf / h};
221 ensureVisible(lf, tf, wf, hf, 0, 0);
222 ensureVisible(QRectF(QPointF(lf, tf) - newPos + posf, QSizeF(wf, hf)), 0, 0);
The documentation for this class was generated from the following files: