Krita Source Code Documentation
Loading...
Searching...
No Matches
KisColorSamplerPreviewPreview Class Reference

A widget that allows to select a combination of auto levels parameters. More...

#include <KisColorSamplerPreviewPreview.h>

+ Inheritance diagram for KisColorSamplerPreviewPreview:

Public Member Functions

 KisColorSamplerPreviewPreview (QWidget *parent)
 
void paintEvent (QPaintEvent *e) override
 
void setDiameter (int diameter)
 
void setOutlineEnabled (bool enabled)
 
void setThickness (qreal thickness)
 

Private Attributes

int m_diameter {200}
 
QColor m_outlineColor {QColor::fromRgbF(0.5, 0.5, 0.5)}
 
bool m_outlineEnabled {true}
 
QColor m_sampledColorBottom {QColor::fromRgb(67, 154, 120)}
 
QColor m_sampledColorTop {QColor::fromRgb(67, 183, 120)}
 
qreal m_thickness {0.1}
 

Static Private Attributes

static constexpr qreal m_crossLength {8.0}
 
static constexpr qreal m_crossSpace {2.0}
 
static constexpr int m_horizontalWidgetMargins {20}
 
static constexpr qreal m_outlineThickness {1.0}
 
static constexpr qreal m_roundingMargin {3}
 
static constexpr qreal m_verticalOutlineMargins {10.0}
 

Detailed Description

A widget that allows to select a combination of auto levels parameters.

Definition at line 20 of file KisColorSamplerPreviewPreview.h.

Constructor & Destructor Documentation

◆ KisColorSamplerPreviewPreview()

KisColorSamplerPreviewPreview::KisColorSamplerPreviewPreview ( QWidget * parent)

Definition at line 21 of file KisColorSamplerPreviewPreview.cpp.

22 : QLabel(parent)
23{
24}

Member Function Documentation

◆ paintEvent()

void KisColorSamplerPreviewPreview::paintEvent ( QPaintEvent * e)
override

Definition at line 44 of file KisColorSamplerPreviewPreview.cpp.

45{
46 Q_UNUSED(e);
47
48
49 QPainter painter(this);
50 painter.save();
51
52 painter.setRenderHint(QPainter::Antialiasing);
53 painter.setPen(Qt::transparent);
54
55
56 QPainterPath edge;
57
58 QRect viewRect = rect();
60
61
62 QRect edgeRect = viewRect;
63 QRect edgeRectSmaller = kisGrowRect(viewRect, -1);
64
65
66 edge.addRoundedRect(edgeRect, m_roundingMargin, m_roundingMargin);
67
68 QColor outsideColor = palette().base().color();
69 painter.setBrush(outsideColor);
70
71 painter.fillPath(edge, outsideColor);
72
73
74 int maxWidth = viewRect.width();
75 int thicknessPixels = m_thickness*m_diameter;
76 int innerWidth = m_diameter - 2*thicknessPixels;
77
78 int outsideWidths = maxWidth - innerWidth - 2*thicknessPixels;
79 int outsideWidth = outsideWidths/2;
80
81 // if there are any inaccuracies, no worries, it doesn't have to be exact
82
83 QRect leftSide = QRect(QPoint(), QPoint(thicknessPixels, viewRect.height()));
84 leftSide.translate(viewRect.topLeft());
85 QRect rightSide = leftSide;
86 leftSide.translate(outsideWidth, 0);
87 rightSide.translate(maxWidth - outsideWidth - thicknessPixels, 0);
88
89 QRect leftBottom = QRect(QPoint(leftSide.left(), leftSide.top() + leftSide.height()/2), QPoint(leftSide.bottomRight()));
90 QRect leftTop = QRect(leftSide.topLeft(), QPoint(leftSide.right(), leftSide.top() + leftSide.height()/2));
91
92 QRect rightBottom = QRect(QPoint(rightSide.left(), rightSide.top() + rightSide.height()/2), QPoint(rightSide.bottomRight()));
93 QRect rightTop = QRect(rightSide.topLeft(), QPoint(rightSide.right(), rightSide.top() + rightSide.height()/2));
94
95 painter.setBrush(m_sampledColorTop);
96 painter.fillRect(leftTop, m_sampledColorTop);
97 painter.fillRect(leftBottom, m_sampledColorBottom);
98
99 painter.fillRect(rightTop, m_sampledColorTop);
100 painter.fillRect(rightBottom, m_sampledColorBottom);
101
102 painter.setBrush(Qt::transparent);
103 if (m_outlineEnabled) {
104 painter.setPen(QPen(m_outlineColor, 2));
105 painter.drawRect(leftSide.adjusted(0, -m_verticalOutlineMargins, 0, m_verticalOutlineMargins));
106 painter.drawRect(rightSide.adjusted(0, -m_verticalOutlineMargins, 0, m_verticalOutlineMargins));
107 }
108
109 QColor crossColor = Qt::white;
110 crossColor.setAlphaF(0.4);
111 painter.setPen(crossColor);
112
113 QPointF center = viewRect.topLeft() + QPoint(viewRect.width()/2, viewRect.height()/2);
114 painter.drawLine(center - QPointF(m_crossLength, 0), center - QPointF(m_crossSpace, 0));
115 painter.drawLine(center + QPointF(m_crossLength, 0), center + QPointF(m_crossSpace, 0));
116
117 painter.drawLine(center - QPointF(0, m_crossLength), center - QPointF(0, m_crossSpace));
118 painter.drawLine(center + QPointF(0, m_crossLength), center + QPointF(0, m_crossSpace));
119
120
121 edge.clear();
122 QColor darkTransparent = palette().dark().color();
123 darkTransparent = KisPaintingTweaks::blendColors(outsideColor, darkTransparent, 0.6);
124
125 painter.setPen(QPen(darkTransparent, 2));
126 edge.addRoundedRect(edgeRectSmaller, m_roundingMargin, m_roundingMargin);
127 painter.drawPath(edge);
128
129 painter.restore();
130
131}
T kisGrowRect(const T &rect, U offset)
Definition kis_global.h:186
QColor blendColors(const QColor &c1, const QColor &c2, qreal r1)
rgba palette[MAX_PALETTE]
Definition palette.c:35

References KisPaintingTweaks::blendColors(), kisGrowRect(), m_crossLength, m_crossSpace, m_diameter, m_horizontalWidgetMargins, m_outlineColor, m_outlineEnabled, m_roundingMargin, m_sampledColorBottom, m_sampledColorTop, m_thickness, m_verticalOutlineMargins, and palette.

◆ setDiameter()

void KisColorSamplerPreviewPreview::setDiameter ( int diameter)

Definition at line 26 of file KisColorSamplerPreviewPreview.cpp.

27{
28 m_diameter = diameter;
29 repaint();
30}

References m_diameter.

◆ setOutlineEnabled()

void KisColorSamplerPreviewPreview::setOutlineEnabled ( bool enabled)

Definition at line 32 of file KisColorSamplerPreviewPreview.cpp.

33{
34 m_outlineEnabled = enabled;
35 repaint();
36}

References m_outlineEnabled.

◆ setThickness()

void KisColorSamplerPreviewPreview::setThickness ( qreal thickness)

Definition at line 38 of file KisColorSamplerPreviewPreview.cpp.

39{
40 m_thickness = thickness;
41 repaint();
42}

References m_thickness.

Member Data Documentation

◆ m_crossLength

constexpr qreal KisColorSamplerPreviewPreview::m_crossLength {8.0}
staticconstexprprivate

Definition at line 51 of file KisColorSamplerPreviewPreview.h.

51{8.0};

◆ m_crossSpace

constexpr qreal KisColorSamplerPreviewPreview::m_crossSpace {2.0}
staticconstexprprivate

Definition at line 52 of file KisColorSamplerPreviewPreview.h.

52{2.0};

◆ m_diameter

int KisColorSamplerPreviewPreview::m_diameter {200}
private

Definition at line 39 of file KisColorSamplerPreviewPreview.h.

39{200};

◆ m_horizontalWidgetMargins

constexpr int KisColorSamplerPreviewPreview::m_horizontalWidgetMargins {20}
staticconstexprprivate

Definition at line 55 of file KisColorSamplerPreviewPreview.h.

55{20};

◆ m_outlineColor

QColor KisColorSamplerPreviewPreview::m_outlineColor {QColor::fromRgbF(0.5, 0.5, 0.5)}
private

Definition at line 46 of file KisColorSamplerPreviewPreview.h.

46{QColor::fromRgbF(0.5, 0.5, 0.5)};

◆ m_outlineEnabled

bool KisColorSamplerPreviewPreview::m_outlineEnabled {true}
private

Definition at line 41 of file KisColorSamplerPreviewPreview.h.

41{true};

◆ m_outlineThickness

constexpr qreal KisColorSamplerPreviewPreview::m_outlineThickness {1.0}
staticconstexprprivate

Definition at line 48 of file KisColorSamplerPreviewPreview.h.

48{1.0};

◆ m_roundingMargin

constexpr qreal KisColorSamplerPreviewPreview::m_roundingMargin {3}
staticconstexprprivate

Definition at line 49 of file KisColorSamplerPreviewPreview.h.

49{3};

◆ m_sampledColorBottom

QColor KisColorSamplerPreviewPreview::m_sampledColorBottom {QColor::fromRgb(67, 154, 120)}
private

Definition at line 45 of file KisColorSamplerPreviewPreview.h.

45{QColor::fromRgb(67, 154, 120)};

◆ m_sampledColorTop

QColor KisColorSamplerPreviewPreview::m_sampledColorTop {QColor::fromRgb(67, 183, 120)}
private

Definition at line 44 of file KisColorSamplerPreviewPreview.h.

44{QColor::fromRgb(67, 183, 120)};

◆ m_thickness

qreal KisColorSamplerPreviewPreview::m_thickness {0.1}
private

Definition at line 40 of file KisColorSamplerPreviewPreview.h.

40{0.1};

◆ m_verticalOutlineMargins

constexpr qreal KisColorSamplerPreviewPreview::m_verticalOutlineMargins {10.0}
staticconstexprprivate

Definition at line 50 of file KisColorSamplerPreviewPreview.h.

50{10.0};

The documentation for this class was generated from the following files: