Esempio n. 1
0
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;
}
Esempio n. 2
0
void KisToolPan::adjustCursor()
{
    QPoint pt = canvas()->canvasWidget()->mapFromGlobal(QCursor::pos());

    if(m_rotationMode && isInCheckerArea(pt)) {
        useCursor(KisCursor::pointingHandCursor());
    }
    else {
        useCursor(m_defaultCursor);
    }
}
Esempio n. 3
0
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();
    }
}
Esempio n. 4
0
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();
    }
}