42 #include "layoutscene.h"
60 : QGraphicsScene(parent)
65 m_qvView->grabGesture(Qt::PanGesture);
66 m_qvView->grabGesture(Qt::PinchGesture);
76 m_qvView->setTransformationAnchor(QGraphicsView::AnchorViewCenter);
79 double scaleFactor = 1.15;
80 if(event->delta() > 0) {
82 m_qvView->scale(scaleFactor, scaleFactor);
85 m_qvView->scale(1.0 / scaleFactor, 1.0 / scaleFactor);
94 if(mouseEvent->button() == Qt::LeftButton)
95 m_qvView->fitInView(this->itemsBoundingRect(), Qt::KeepAspectRatio);
97 QGraphicsScene::mouseDoubleClickEvent(mouseEvent);
105 switch(mouseEvent->button()) {
107 m_qvView->setDragMode(QGraphicsView::RubberBandDrag);
115 case Qt::RightButton:
117 m_qvView->setDragMode(QGraphicsView::NoDrag);
124 QGraphicsScene::mousePressEvent(mouseEvent);
138 m_qvView->verticalScrollBar()->setValue(
m_qvView->verticalScrollBar()->value() - diffY);
139 m_qvView->horizontalScrollBar()->setValue(
m_qvView->horizontalScrollBar()->value() - diffX);
142 QGraphicsScene::mouseMoveEvent(mouseEvent);
181 QGraphicsScene::mouseReleaseEvent(mouseEvent);
192 QGraphicsScene::keyPressEvent(keyEvent);
203 QGraphicsScene::keyReleaseEvent(keyEvent);
211 if (event->type() == QEvent::Gesture) {
212 QGestureEvent* gestureEventCast =
static_cast<QGestureEvent*
>(
event);
219 return gestureEvent(static_cast<QGestureEvent*>(gestureEventCast));
222 return QGraphicsScene::event(event);
230 if (QGesture *pan = event->gesture(Qt::PanGesture))
234 if (QGesture *pinch = event->gesture(Qt::PinchGesture))
245 qDebug()<<
"panTriggered";
247 QPointF delta = gesture->delta();
249 m_qvView->verticalScrollBar()->setValue(
m_qvView->verticalScrollBar()->value() + delta.y());
250 m_qvView->horizontalScrollBar()->setValue(
m_qvView->horizontalScrollBar()->value() + delta.x());
257 qDebug()<<
"pinchTriggered";
259 m_qvView->setTransformationAnchor(QGraphicsView::NoAnchor);
260 m_qvView->scale(gesture->scaleFactor(), gesture->scaleFactor());
267 if (
object ==
m_qvView && event->type() == QEvent::Gesture) {
268 QGestureEvent* gestureEventCast =
static_cast<QGestureEvent*
>(
event);
270 return gestureEvent(static_cast<QGestureEvent*>(gestureEventCast));
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *mouseEvent)
QPointF m_mousePressPosition
void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
void keyReleaseEvent(QKeyEvent *keyEvent)
void keyPressEvent(QKeyEvent *keyEvent)
LayoutScene(QGraphicsView *view, QObject *parent=0)
void panTriggered(QPanGesture *)
bool event(QEvent *event)
void wheelEvent(QGraphicsSceneWheelEvent *event)
bool gestureEvent(QGestureEvent *event)
bool eventFilter(QObject *object, QEvent *event)
void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
void pinchTriggered(QPinchGesture *)
void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)