Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSnapPixelStrategy.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2019 Kuntal Majumder <hellozee@disroot.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
9#include <QPainterPath>
10#include "kis_global.h"
11#include "kis_canvas2.h"
12#include "KoSnapProxy.h"
13
18
22
23bool KisSnapPixelStrategy::snap(const QPointF &mousePosition, KoSnapProxy *proxy, qreal maxSnapDistance)
24{
25 Q_UNUSED(maxSnapDistance);
26 KisCanvas2 *canvas2 = dynamic_cast<KisCanvas2*>(proxy->canvas());
28
29 const QPointF imagePos = canvas2->coordinatesConverter()->documentToImage(mousePosition);
30 const QPointF alignedDocPoint = canvas2->coordinatesConverter()->imageToDocument(imagePos.toPoint());
31 setSnappedPosition(alignedDocPoint, ToPoint);
32
33 return true;
34}
35
36QPainterPath KisSnapPixelStrategy::decoration(const KoViewConverter &converter) const
37{
38 QSizeF unzoomedSize = converter.viewToDocument(QSizeF(5, 5));
39 QPainterPath decoration;
40 decoration.moveTo(snappedPosition() - QPointF(unzoomedSize.width(), 0));
41 decoration.lineTo(snappedPosition() + QPointF(unzoomedSize.width(), 0));
42 decoration.moveTo(snappedPosition() - QPointF(0, unzoomedSize.height()));
43 decoration.lineTo(snappedPosition() + QPointF(0, unzoomedSize.height()));
44 return decoration;
45}
KisCoordinatesConverter * coordinatesConverter
_Private::Traits< T >::Result documentToImage(const T &obj) const
_Private::Traits< T >::Result imageToDocument(const T &obj) const
QPainterPath decoration(const KoViewConverter &converter) const override
returns the current snap strategy decoration
KisSnapPixelStrategy(KoSnapGuide::Strategy type=KoSnapGuide::PixelSnapping)
bool snap(const QPointF &mousePosition, KoSnapProxy *proxy, qreal maxSnapDistance) override
Strategy
the different possible snap Strategies
Definition KoSnapGuide.h:49
KoCanvasBase * canvas()
returns canvas we are working on
void setSnappedPosition(const QPointF &position, SnapType snapType)
sets the current snapped position
QPointF snappedPosition() const
returns the snapped position form the last call to snapToPoints
virtual QPointF viewToDocument(const QPointF &viewPoint) const
#define KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(cond, val)
Definition kis_assert.h:129