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

#include <KisGradientColorEditor.h>

+ Inheritance diagram for KisGradientColorEditor:

Public Slots

void setColor (KoColor color)
 
void setColorType (KisGradientWidgetsUtils::ColorType type)
 
void setOpacity (qreal opacity)
 
void setPosition (qreal position)
 
void setPositionSliderEnabled (bool enabled)
 
void setTransparent (bool checked)
 
void setUsePositionSlider (bool use)
 
void setUseTransParentCheckBox (bool use)
 

Signals

void colorChanged (KoColor color)
 
void colorTypeChanged (KisGradientWidgetsUtils::ColorType type)
 
void opacityChanged (qreal opacity)
 
void positionChanged (qreal position)
 
void transparentToggled (bool checked)
 

Public Member Functions

KoColor color () const
 
KisGradientWidgetsUtils::ColorType colorType () const
 
 KisGradientColorEditor (const KisGradientColorEditor &other)
 
 KisGradientColorEditor (QWidget *parent=nullptr)
 
QSize minimumSizeHint () const override
 
qreal opacity () const
 
qreal position () const
 
QSize sizeHint () const override
 
bool transparent () const
 
 ~KisGradientColorEditor ()
 

Public Attributes

KisColorButtoncolorButton {nullptr}
 
QToolButton * colorTypeBackgroundButton {nullptr}
 
QToolButton * colorTypeCustomButton {nullptr}
 
QToolButton * colorTypeForegroundButton {nullptr}
 
KisDoubleSliderSpinBoxopacitySlider {nullptr}
 
KisDoubleSliderSpinBoxpositionSlider {nullptr}
 
QCheckBox * transparentCheckBox {nullptr}
 

Private Attributes

QScopedPointer< Privatem_d
 
- Private Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Additional Inherited Members

- Private Member Functions inherited from Private
 Private (KisCanvas2 *c)
 

Detailed Description

Definition at line 18 of file KisGradientColorEditor.cpp.

Constructor & Destructor Documentation

◆ KisGradientColorEditor() [1/2]

KisGradientColorEditor::KisGradientColorEditor ( QWidget * parent = nullptr)

Definition at line 30 of file KisGradientColorEditor.cpp.

31 : QWidget(parent)
32 , m_d(new Private)
33{
34 m_d->colorTypeForegroundButton = new QToolButton;
35 m_d->colorTypeForegroundButton->setCheckable(true);
36 m_d->colorTypeForegroundButton->setChecked(true);
37 m_d->colorTypeForegroundButton->setAutoExclusive(true);
38 m_d->colorTypeForegroundButton->setAutoRaise(true);
39 m_d->colorTypeForegroundButton->setIcon(KisIconUtils::loadIcon("object-order-lower-calligra"));
40 m_d->colorTypeForegroundButton->setToolTip(i18nc("Button to change the gradient stop type to foreground", "Foreground color"));
41 connect(m_d->colorTypeForegroundButton, &QToolButton::toggled,
42 [this](bool toggled)
43 {
44 if (toggled) {
45 setColorType(KisGradientWidgetsUtils::Foreground);
46 }
48 });
49
50 m_d->colorTypeBackgroundButton = new QToolButton;
51 m_d->colorTypeBackgroundButton->setCheckable(true);
52 m_d->colorTypeBackgroundButton->setAutoExclusive(true);
53 m_d->colorTypeBackgroundButton->setAutoRaise(true);
54 m_d->colorTypeBackgroundButton->setIcon(KisIconUtils::loadIcon("object-order-raise-calligra"));
55 m_d->colorTypeBackgroundButton->setToolTip(i18nc("Button to change the gradient stop type to background", "Background color"));
56 connect(m_d->colorTypeBackgroundButton, &QToolButton::toggled,
57 [this](bool toggled)
58 {
59 if (toggled) {
60 setColorType(KisGradientWidgetsUtils::Background);
61 }
63 });
64
65 m_d->colorTypeCustomButton = new QToolButton;
66 m_d->colorTypeCustomButton->setCheckable(true);
67 m_d->colorTypeCustomButton->setAutoExclusive(true);
68 m_d->colorTypeCustomButton->setAutoRaise(true);
69 m_d->colorTypeCustomButton->setIcon(KisIconUtils::loadIcon("wheel-sectors"));
70 m_d->colorTypeCustomButton->setToolTip(i18nc("Button to change the gradient stop type to custom color", "Custom color"));
71 connect(m_d->colorTypeCustomButton, &QToolButton::toggled,
72 [this](bool toggled)
73 {
74 if (toggled) {
75 setColorType(KisGradientWidgetsUtils::Custom);
76 }
78 });
79
80 QWidget *colorTypeButtonsContainer = new QWidget;
81
82 m_d->transparentCheckBox = new QCheckBox;
83 m_d->transparentCheckBox->setText(i18n("Transparent"));
84 m_d->transparentCheckBox->setProperty("isBeingUsed", true);
85 connect(m_d->transparentCheckBox, SIGNAL(toggled(bool)), this, SIGNAL(transparentToggled(bool)));
86
87 m_d->colorButton = new KisColorButton;
88 m_d->colorButton->setVisible(false);
89 connect(m_d->colorButton, SIGNAL(changed(KoColor)), this, SIGNAL(colorChanged(KoColor)));
90
91 m_d->opacitySlider = new KisDoubleSliderSpinBox;
92 m_d->opacitySlider->setRange(0, 100, 2);
94 i18nc("{n} is the number value, % is the percent sign", "Opacity: {n}%"));
95 m_d->opacitySlider->setVisible(false);
96 connect(m_d->opacitySlider, SIGNAL(valueChanged(double)), this, SIGNAL(opacityChanged(qreal)));
97
98 m_d->positionSlider = new KisDoubleSliderSpinBox;
99 m_d->positionSlider->setRange(0, 100, 2);
100 KisSpinBoxI18nHelper::setText(m_d->positionSlider,
101 i18nc("{n} is the number value, % is the percent sign", "Position: {n}%"));
102 connect(m_d->positionSlider, SIGNAL(valueChanged(double)), this, SIGNAL(positionChanged(qreal)));
103
104 QHBoxLayout *colorTypeButtonsLayout = new QHBoxLayout;
105 colorTypeButtonsLayout->setContentsMargins(0, 0, 0, 0);
106 colorTypeButtonsLayout->setSpacing(0);
107 colorTypeButtonsLayout->addWidget(m_d->colorTypeForegroundButton);
108 colorTypeButtonsLayout->addWidget(m_d->colorTypeBackgroundButton);
109 colorTypeButtonsLayout->addWidget(m_d->colorTypeCustomButton);
110 colorTypeButtonsContainer->setLayout(colorTypeButtonsLayout);
111
112 QHBoxLayout *mainLayout = new QHBoxLayout;
113 mainLayout->setContentsMargins(0, 0, 0, 0);
114 mainLayout->setSpacing(5);
115 mainLayout->addWidget(colorTypeButtonsContainer);
116 mainLayout->addWidget(m_d->transparentCheckBox);
117 mainLayout->addWidget(m_d->colorButton);
118 mainLayout->addWidget(m_d->opacitySlider);
119 mainLayout->addStretch();
120 mainLayout->addWidget(m_d->positionSlider);
121 setLayout(mainLayout);
122
123 setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
124}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
A pushbutton to display or allow user selection of a color.
This class is a spinbox in which you can click and drag to set the value. A slider like bar is displa...
void setRange(qreal newMinimum, qreal newMaximum, int newNumberOfDecimals=0, bool computeNewFastSliderStep=true)
Set the minimum and the maximum values of the range.
void transparentToggled(bool checked)
QScopedPointer< Private > m_d
void colorChanged(KoColor color)
void colorTypeChanged(KisGradientWidgetsUtils::ColorType type)
void positionChanged(qreal position)
void opacityChanged(qreal opacity)
QIcon loadIcon(const QString &name)
void setText(QSpinBox *spinBox, const QStringView textTemplate)

References colorTypeChanged(), connect(), KisGradientWidgetsUtils::Foreground, KisIconUtils::loadIcon(), and m_d.

◆ KisGradientColorEditor() [2/2]

KisGradientColorEditor::KisGradientColorEditor ( const KisGradientColorEditor & other)

Definition at line 126 of file KisGradientColorEditor.cpp.

127 : QWidget()
128{
129 setPosition(other.position());
130 setColorType(other.colorType());
132 setColor(other.color());
133 setOpacity(other.opacity());
134}
KisGradientWidgetsUtils::ColorType colorType() const
void setColorType(KisGradientWidgetsUtils::ColorType type)

References color(), colorType(), opacity(), position(), setColor(), setColorType(), setOpacity(), setPosition(), setTransparent(), and transparent().

◆ ~KisGradientColorEditor()

KisGradientColorEditor::~KisGradientColorEditor ( )

Definition at line 136 of file KisGradientColorEditor.cpp.

137{}

Member Function Documentation

◆ color()

KoColor KisGradientColorEditor::color ( ) const

Definition at line 155 of file KisGradientColorEditor.cpp.

156{
157 return m_d->colorButton->color();
158}

References m_d.

◆ colorChanged

void KisGradientColorEditor::colorChanged ( KoColor color)
signal

◆ colorType()

KisGradientWidgetsUtils::ColorType KisGradientColorEditor::colorType ( ) const

Definition at line 144 of file KisGradientColorEditor.cpp.

145{
146 if (m_d->colorTypeForegroundButton->isChecked()) {
148 } else if (m_d->colorTypeBackgroundButton->isChecked()) {
150 } else {
152 }
153}

References KisGradientWidgetsUtils::Background, KisGradientWidgetsUtils::Custom, KisGradientWidgetsUtils::Foreground, and m_d.

◆ colorTypeChanged

void KisGradientColorEditor::colorTypeChanged ( KisGradientWidgetsUtils::ColorType type)
signal

◆ minimumSizeHint()

QSize KisGradientColorEditor::minimumSizeHint ( ) const
override

Definition at line 265 of file KisGradientColorEditor.cpp.

266{
267 return QSize(
268 m_d->colorTypeForegroundButton->minimumSizeHint().width() +
269 m_d->colorTypeBackgroundButton->minimumSizeHint().width() +
270 m_d->colorTypeCustomButton->minimumSizeHint().width() +
271 qMax(
272 m_d->transparentCheckBox->minimumSizeHint().width(),
273 m_d->colorButton->minimumSizeHint().width() +
274 m_d->opacitySlider->minimumSizeHint().width()
275 ) +
276 (m_d->positionSlider->isVisible() ? m_d->positionSlider->minimumSizeHint().width() : 0) +
277 15, // spacing
278
279 qMax(
281 qMax(
283 qMax(
284 m_d->colorButton->minimumSizeHint().height(),
286 )
287 )
288 )
289 );
290}
KisDoubleSliderSpinBox * opacitySlider
QSize minimumSizeHint() const override

References m_d.

◆ opacity()

qreal KisGradientColorEditor::opacity ( ) const

Definition at line 165 of file KisGradientColorEditor.cpp.

166{
167 return m_d->opacitySlider->value();
168}

References m_d.

◆ opacityChanged

void KisGradientColorEditor::opacityChanged ( qreal opacity)
signal

◆ position()

qreal KisGradientColorEditor::position ( ) const

Definition at line 139 of file KisGradientColorEditor.cpp.

140{
141 return m_d->positionSlider->value();
142}

References m_d.

◆ positionChanged

void KisGradientColorEditor::positionChanged ( qreal position)
signal

◆ setColor

void KisGradientColorEditor::setColor ( KoColor color)
slot

Definition at line 206 of file KisGradientColorEditor.cpp.

207{
208 color.setOpacity(1.0);
209 if (color == m_d->colorButton->color()) {
210 return;
211 }
212 m_d->colorButton->setColor(color);
213}
void setOpacity(quint8 alpha)
Definition KoColor.cpp:333

References color(), m_d, and KoColor::setOpacity().

◆ setColorType

void KisGradientColorEditor::setColorType ( KisGradientWidgetsUtils::ColorType type)
slot

Definition at line 175 of file KisGradientColorEditor.cpp.

176{
178 m_d->colorTypeForegroundButton->setChecked(true);
179 } else if (type == KisGradientWidgetsUtils::Background) {
180 m_d->colorTypeBackgroundButton->setChecked(true);
181 } else {
182 m_d->colorTypeCustomButton->setChecked(true);
183 }
184
185 // "if" to avoid flickering. setUpdatesEnabled doesn't seems to work here?
187 m_d->transparentCheckBox->setVisible(false);
188 m_d->colorButton->setVisible(true);
189 m_d->opacitySlider->setVisible(true);
190 } else {
191 m_d->colorButton->setVisible(false);
192 m_d->opacitySlider->setVisible(false);
193 m_d->transparentCheckBox->setVisible(m_d->transparentCheckBox->property("isBeingUsed").toBool());
194 }
195
196 if (type != colorType()) {
197 Q_EMIT colorTypeChanged(type);
198 }
199}

References KisGradientWidgetsUtils::Background, colorType(), colorTypeChanged(), KisGradientWidgetsUtils::Custom, KisGradientWidgetsUtils::Foreground, and m_d.

◆ setOpacity

void KisGradientColorEditor::setOpacity ( qreal opacity)
slot

Definition at line 215 of file KisGradientColorEditor.cpp.

216{
217 m_d->opacitySlider->setValue(opacity);
218}

References m_d, and opacity().

◆ setPosition

void KisGradientColorEditor::setPosition ( qreal position)
slot

Definition at line 170 of file KisGradientColorEditor.cpp.

171{
172 m_d->positionSlider->setValue(position);
173}

References m_d, and position().

◆ setPositionSliderEnabled

void KisGradientColorEditor::setPositionSliderEnabled ( bool enabled)
slot

Definition at line 233 of file KisGradientColorEditor.cpp.

234{
235 m_d->positionSlider->setEnabled(enabled);
236}

References m_d.

◆ setTransparent

void KisGradientColorEditor::setTransparent ( bool checked)
slot

Definition at line 201 of file KisGradientColorEditor.cpp.

202{
203 m_d->transparentCheckBox->setChecked(checked);
204}

References m_d.

◆ setUsePositionSlider

void KisGradientColorEditor::setUsePositionSlider ( bool use)
slot

Definition at line 228 of file KisGradientColorEditor.cpp.

229{
230 m_d->positionSlider->setVisible(use);
231}

References m_d.

◆ setUseTransParentCheckBox

void KisGradientColorEditor::setUseTransParentCheckBox ( bool use)
slot

Definition at line 220 of file KisGradientColorEditor.cpp.

221{
222 m_d->transparentCheckBox->setProperty("isBeingUsed", use);
224 m_d->transparentCheckBox->setVisible(use);
225 }
226}

References colorType(), KisGradientWidgetsUtils::Custom, and m_d.

◆ sizeHint()

QSize KisGradientColorEditor::sizeHint ( ) const
override

Definition at line 238 of file KisGradientColorEditor.cpp.

239{
240 return QSize(
241 m_d->colorTypeForegroundButton->sizeHint().width() +
242 m_d->colorTypeBackgroundButton->sizeHint().width() +
243 m_d->colorTypeCustomButton->sizeHint().width() +
244 qMax(
245 m_d->transparentCheckBox->sizeHint().width(),
246 m_d->colorButton->sizeHint().width() +
247 m_d->opacitySlider->sizeHint().width()
248 ) +
249 (m_d->positionSlider->isVisible() ? m_d->positionSlider->sizeHint().width() : 0) +
250 15, // spacing
251
252 qMax(
254 qMax(
255 m_d->transparentCheckBox->sizeHint().height(),
256 qMax(
257 m_d->colorButton->sizeHint().height(),
258 m_d->opacitySlider->sizeHint().height()
259 )
260 )
261 )
262 );
263}
QSize sizeHint() const override

References m_d.

◆ transparent()

bool KisGradientColorEditor::transparent ( ) const

Definition at line 160 of file KisGradientColorEditor.cpp.

161{
162 return m_d->transparentCheckBox->isChecked();
163}

References m_d.

◆ transparentToggled

void KisGradientColorEditor::transparentToggled ( bool checked)
signal

Member Data Documentation

◆ colorButton

KisColorButton* KisGradientColorEditor::colorButton {nullptr}

Definition at line 26 of file KisGradientColorEditor.cpp.

26{nullptr};

◆ colorTypeBackgroundButton

QToolButton* KisGradientColorEditor::colorTypeBackgroundButton {nullptr}

Definition at line 23 of file KisGradientColorEditor.cpp.

23{nullptr};

◆ colorTypeCustomButton

QToolButton* KisGradientColorEditor::colorTypeCustomButton {nullptr}

Definition at line 24 of file KisGradientColorEditor.cpp.

24{nullptr};

◆ colorTypeForegroundButton

QToolButton* KisGradientColorEditor::colorTypeForegroundButton {nullptr}

Definition at line 22 of file KisGradientColorEditor.cpp.

22{nullptr};

◆ m_d

QScopedPointer<Private> KisGradientColorEditor::m_d
private

Definition at line 57 of file KisGradientColorEditor.h.

◆ opacitySlider

KisDoubleSliderSpinBox* KisGradientColorEditor::opacitySlider {nullptr}

Definition at line 27 of file KisGradientColorEditor.cpp.

27{nullptr};

◆ positionSlider

KisDoubleSliderSpinBox* KisGradientColorEditor::positionSlider {nullptr}

Definition at line 21 of file KisGradientColorEditor.cpp.

21{nullptr};

◆ transparentCheckBox

QCheckBox* KisGradientColorEditor::transparentCheckBox {nullptr}

Definition at line 25 of file KisGradientColorEditor.cpp.

25{nullptr};

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