void KisToolPan::continuePrimaryAction(KoPointerEvent *event) { Q_ASSERT(canvas()); Q_ASSERT(canvas()->canvasController()); QPointF actualPosition = convertDocumentToWidget(e->point); adjustCursor(); if (!e->buttons()) return; e->accept(); if(e->modifiers() & Qt::ShiftModifier) { if(!isInCheckerArea(actualPosition)) { qreal angle = calculateAngle(m_lastPosition, actualPosition); kritaCanvasController()->rotateCanvas(angle); } } else { QPointF distance(m_lastPosition - actualPosition); kritaCanvasController()->pan(distance.toPoint()); } m_lastPosition = actualPosition; }
void KisToolPan::adjustCursor() { QPoint pt = canvas()->canvasWidget()->mapFromGlobal(QCursor::pos()); if(m_rotationMode && isInCheckerArea(pt)) { useCursor(KisCursor::pointingHandCursor()); } else { useCursor(m_defaultCursor); } }
void KisToolPan::beginPrimaryAction(KoPointerEvent *event) { m_lastPosition = convertDocumentToWidget(e->point); e->accept(); m_defaultCursor = KisCursor::closedHandCursor(); adjustCursor(); if(m_rotationMode && isInCheckerArea(m_lastPosition)) { kritaCanvasController()->resetCanvasRotation(); } }
void KisToolPan::mousePressEvent(KoPointerEvent *e) { m_lastPosition = convertDocumentToWidget(e->point); e->accept(); m_defaultCursor = KisCursor::closedHandCursor(); adjustCursor(); if(m_rotationMode && isInCheckerArea(m_lastPosition)) { kritaCanvasController()->resetCanvasTransformations(); } }