Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_guides_decoration.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
9#include <KisDocument.h>
10#include "kis_config.h"
11#include "kis_guides_config.h"
13
18
25
29
31{
32 m_d->guidesConfig = value;
33}
34
36{
37 return m_d->guidesConfig;
38}
39
40
41void KisGuidesDecoration::drawDecoration(QPainter &painter, const QRectF& updateArea, const KisCoordinatesConverter *converter, KisCanvas2 *canvas)
42{
43 Q_UNUSED(canvas);
44
45 const qreal borderDelta = 2.0;
46 const QPen guidesPen(m_d->guidesConfig.guidesPen());
47
48 painter.save();
49 painter.setPen(guidesPen);
50 painter.setTransform(QTransform());
51 painter.setRenderHints(QPainter::Antialiasing, false);
52 painter.setRenderHints(QPainter::Antialiasing, false);
53
54 Q_FOREACH (qreal guide, m_d->guidesConfig.horizontalGuideLines()) {
55 if (guide < updateArea.top() - borderDelta ||
56 guide > updateArea.bottom() + borderDelta) {
57
58 continue;
59 }
60
61 const QPoint p0 = converter->documentToWidget(QPointF(updateArea.left() - borderDelta, guide)).toPoint();
62 const QPoint p1 = converter->documentToWidget(QPointF(updateArea.right() + borderDelta, guide)).toPoint();
63 painter.drawLine(p0, p1);
64 }
65
66 Q_FOREACH (qreal guide, m_d->guidesConfig.verticalGuideLines()) {
67 if (guide < updateArea.left() - borderDelta ||
68 guide > updateArea.right() + borderDelta) {
69
70 continue;
71 }
72
73 const QPoint p0 = converter->documentToWidget(QPointF(guide, updateArea.top() - borderDelta)).toPoint();
74 const QPoint p1 = converter->documentToWidget(QPointF(guide, updateArea.bottom() + borderDelta)).toPoint();
75 painter.drawLine(p0, p1);
76 }
77
78 painter.restore();
79}
float value(const T *src, size_t ch)
QPointF p0
QPointF p1
_Private::Traits< T >::Result documentToWidget(const T &obj) const
void setGuidesConfig(const KisGuidesConfig &value)
const KisGuidesConfig & guidesConfig() const
KisGuidesDecoration(QPointer< KisView > view)
void drawDecoration(QPainter &gc, const QRectF &updateArea, const KisCoordinatesConverter *converter, KisCanvas2 *canvas) override
const QScopedPointer< Private > m_d
static const QString GUIDES_DECORATION_ID