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"
14#include <kis_canvas2.h>
15
20
27
31
33{
34 m_d->guidesConfig = value;
35}
36
38{
39 return m_d->guidesConfig;
40}
41
42
43void KisGuidesDecoration::drawDecoration(QPainter &painter, const QRectF& updateArea, const KisCoordinatesConverter *converter, KisCanvas2 *canvas)
44{
45 Q_UNUSED(canvas);
46
47 const qreal borderDelta = 2.0;
48 QPen guidesPen(m_d->guidesConfig.guidesPen());
49 guidesPen.setColor(canvas->displayRendererInterface()->convertColorToDisplayColorSpace(KoColor(guidesPen.color(), KoColorSpaceRegistry::instance()->rgb8())));
50
51 painter.save();
52 painter.setPen(guidesPen);
53 painter.setTransform(QTransform());
54 painter.setRenderHints(QPainter::Antialiasing, false);
55 painter.setRenderHints(QPainter::Antialiasing, false);
56
57 Q_FOREACH (qreal guide, m_d->guidesConfig.horizontalGuideLines()) {
58 if (guide < updateArea.top() - borderDelta ||
59 guide > updateArea.bottom() + borderDelta) {
60
61 continue;
62 }
63
64 const QPoint p0 = converter->documentToWidget(QPointF(updateArea.left() - borderDelta, guide)).toPoint();
65 const QPoint p1 = converter->documentToWidget(QPointF(updateArea.right() + borderDelta, guide)).toPoint();
66 painter.drawLine(p0, p1);
67 }
68
69 Q_FOREACH (qreal guide, m_d->guidesConfig.verticalGuideLines()) {
70 if (guide < updateArea.left() - borderDelta ||
71 guide > updateArea.right() + borderDelta) {
72
73 continue;
74 }
75
76 const QPoint p0 = converter->documentToWidget(QPointF(guide, updateArea.top() - borderDelta)).toPoint();
77 const QPoint p1 = converter->documentToWidget(QPointF(guide, updateArea.bottom() + borderDelta)).toPoint();
78 painter.drawLine(p0, p1);
79 }
80
81 painter.restore();
82}
float value(const T *src, size_t ch)
QPointF p0
QPointF p1
KoColorDisplayRendererInterface * displayRendererInterface() const override
displayRendererInterface The display renderer interface has a number of color conversion functions wh...
_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
virtual QColor convertColorToDisplayColorSpace(const KoColor color) const =0
convertColorToDisplayColorSpace
static const QString GUIDES_DECORATION_ID
static KoColorSpaceRegistry * instance()
const KoColorSpace * rgb8(const QString &profileName=QString())