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

#include <KisGradientGeneratorConfigWidget.h>

+ Inheritance diagram for KisGradientGeneratorConfigWidget:

Public Member Functions

KisPropertiesConfigurationSP configuration () const override
 
 KisGradientGeneratorConfigWidget (QWidget *parent=0)
 
void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface) override
 
void setConfiguration (const KisPropertiesConfigurationSP) override
 
void setView (KisViewManager *view) override
 
 ~KisGradientGeneratorConfigWidget () override
 
- Public Member Functions inherited from KisConfigWidget
virtual KoCanvasResourcesInterfaceSP canvasResourcesInterface () const
 
 ~KisConfigWidget () override
 

Private Slots

void slot_radioButtonEndPositionCartesianCoordinates_toggled (bool enabled)
 
void slot_radioButtonEndPositionPolarCoordinates_toggled (bool enabled)
 

Private Attributes

Ui_GradientGeneratorConfigWidget m_ui
 
KisViewManagerm_view
 

Additional Inherited Members

- Signals inherited from KisConfigWidget
void sigConfigurationItemChanged ()
 
void sigConfigurationUpdated ()
 
void sigDropLockedConfig (KisPropertiesConfigurationSP p)
 
void sigSaveLockedConfig (KisPropertiesConfigurationSP p)
 
- Protected Member Functions inherited from KisConfigWidget
 KisConfigWidget (QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags(), int delay=200)
 

Detailed Description

Definition at line 19 of file KisGradientGeneratorConfigWidget.h.

Constructor & Destructor Documentation

◆ KisGradientGeneratorConfigWidget()

KisGradientGeneratorConfigWidget::KisGradientGeneratorConfigWidget ( QWidget * parent = 0)

Definition at line 22 of file KisGradientGeneratorConfigWidget.cpp.

23 : KisConfigWidget(parent)
24 , m_view(nullptr)
25{
26 QStringList shapeNames =
28 << i18nc("the gradient will be drawn linearly", "Linear")
29 << i18nc("the gradient will be drawn bilinearly", "Bi-Linear")
30 << i18nc("the gradient will be drawn radially", "Radial")
31 << i18nc("the gradient will be drawn in a square around a centre", "Square")
32 << i18nc("the gradient will be drawn as an asymmetric cone", "Conical")
33 << i18nc("the gradient will be drawn as a symmetric cone", "Conical Symmetric")
34 << i18nc("the gradient will be drawn as a spiral", "Spiral")
35 << i18nc("the gradient will be drawn as a reverse spiral", "Reverse Spiral")
36 << i18nc("the gradient will be drawn in a selection outline", "Shaped");
37 QStringList repeatNames =
39 << i18nc("The gradient will not repeat", "None")
40 << i18nc("The gradient will repeat forwards", "Forwards")
41 << i18nc("The gradient will repeat alternatingly", "Alternating");
42 QStringList spatialUnitsNames =
44 << i18nc("The position will be set in pixels", "Pixels")
45 << i18nc("The position will be a percentage of the width", "Percent of the Width")
46 << i18nc("The position will be a percentage of the height", "Percent of the Height")
47 << i18nc("The position will be a percentage of the longest image side", "Percent of the Longest Side")
48 << i18nc("The position will be a percentage of the shortest image side", "Percent of the Shortest Side");
49 QStringList positioningNames =
51 << i18nc("The position will be relative to the top-left corner of the image", "Absolute")
52 << i18nc("The position will be relative to the start point", "Relative");
53
54 m_ui.setupUi(this);
55
56 m_ui.comboBoxShape->addItems(shapeNames);
57 m_ui.comboBoxRepeat->addItems(repeatNames);
58 m_ui.sliderAntiAliasThreshold->setRange(0, 1, 3);
59
60 m_ui.comboBoxStartPositionXUnits->addItems(spatialUnitsNames);
61 m_ui.comboBoxStartPositionYUnits->addItems(spatialUnitsNames);
62 m_ui.comboBoxEndPositionXUnits->addItems(spatialUnitsNames);
63 m_ui.comboBoxEndPositionYUnits->addItems(spatialUnitsNames);
64 m_ui.comboBoxEndPositionXPositioning->addItems(positioningNames);
65 m_ui.comboBoxEndPositionYPositioning->addItems(positioningNames);
66 m_ui.comboBoxEndPositionDistanceUnits->addItems(spatialUnitsNames);
67
68 m_ui.widgetGradientEditor->setContentsMargins(10, 10, 10, 10);
69 m_ui.widgetGradientEditor->loadUISettings();
70
71 connect(m_ui.comboBoxShape, SIGNAL(currentIndexChanged(int)), this, SIGNAL(sigConfigurationUpdated()));
72 connect(m_ui.comboBoxRepeat, SIGNAL(currentIndexChanged(int)), this, SIGNAL(sigConfigurationUpdated()));
73 connect(m_ui.sliderAntiAliasThreshold, SIGNAL(valueChanged(qreal)), this, SIGNAL(sigConfigurationUpdated()));
74 connect(m_ui.checkBoxDither, SIGNAL(toggled(bool)), this, SIGNAL(sigConfigurationUpdated()));
75 connect(m_ui.checkBoxReverse, SIGNAL(toggled(bool)), this, SIGNAL(sigConfigurationUpdated()));
76
77 connect(m_ui.spinBoxStartPositionX, SIGNAL(valueChanged(double)), this, SIGNAL(sigConfigurationUpdated()));
78 connect(m_ui.spinBoxStartPositionY, SIGNAL(valueChanged(double)), this, SIGNAL(sigConfigurationUpdated()));
79 connect(m_ui.comboBoxStartPositionXUnits, SIGNAL(currentIndexChanged(int)), this, SIGNAL(sigConfigurationUpdated()));
80 connect(m_ui.comboBoxStartPositionYUnits, SIGNAL(currentIndexChanged(int)), this, SIGNAL(sigConfigurationUpdated()));
81
82 connect(
83 m_ui.radioButtonEndPositionCartesianCoordinates,
84 SIGNAL(toggled(bool)),
85 this,
87 );
88 connect(
89 m_ui.radioButtonEndPositionPolarCoordinates,
90 SIGNAL(toggled(bool)),
91 this,
93 );
94 connect(m_ui.spinBoxEndPositionX, SIGNAL(valueChanged(double)), this, SIGNAL(sigConfigurationUpdated()));
95 connect(m_ui.spinBoxEndPositionY, SIGNAL(valueChanged(double)), this, SIGNAL(sigConfigurationUpdated()));
96 connect(m_ui.comboBoxEndPositionXUnits, SIGNAL(currentIndexChanged(int)), this, SIGNAL(sigConfigurationUpdated()));
97 connect(m_ui.comboBoxEndPositionYUnits, SIGNAL(currentIndexChanged(int)), this, SIGNAL(sigConfigurationUpdated()));
98 connect(m_ui.comboBoxEndPositionXPositioning, SIGNAL(currentIndexChanged(int)), this, SIGNAL(sigConfigurationUpdated()));
99 connect(m_ui.comboBoxEndPositionYPositioning, SIGNAL(currentIndexChanged(int)), this, SIGNAL(sigConfigurationUpdated()));
100 connect(m_ui.angleSelectorEndPositionAngle, SIGNAL(angleChanged(qreal)), this, SIGNAL(sigConfigurationUpdated()));
101 connect(m_ui.spinBoxEndPositionDistance, SIGNAL(valueChanged(double)), this, SIGNAL(sigConfigurationUpdated()));
102 connect(m_ui.comboBoxEndPositionDistanceUnits, SIGNAL(currentIndexChanged(int)), this, SIGNAL(sigConfigurationUpdated()));
103
104 connect(m_ui.widgetGradientEditor, SIGNAL(sigGradientChanged()), this, SIGNAL(sigConfigurationUpdated()));
105}
QList< QString > QStringList
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisConfigWidget(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags(), int delay=200)
void sigConfigurationUpdated()

References connect(), m_ui, KisConfigWidget::sigConfigurationUpdated(), slot_radioButtonEndPositionCartesianCoordinates_toggled(), and slot_radioButtonEndPositionPolarCoordinates_toggled().

◆ ~KisGradientGeneratorConfigWidget()

KisGradientGeneratorConfigWidget::~KisGradientGeneratorConfigWidget ( )
override

Definition at line 107 of file KisGradientGeneratorConfigWidget.cpp.

108{
109 m_ui.widgetGradientEditor->saveUISettings();
110}

References m_ui.

Member Function Documentation

◆ configuration()

KisPropertiesConfigurationSP KisGradientGeneratorConfigWidget::configuration ( ) const
overridevirtual
Returns
the configuration

Implements KisConfigWidget.

Definition at line 163 of file KisGradientGeneratorConfigWidget.cpp.

164{
166
167 config->setShape(static_cast<KisGradientPainter::enumGradientShape>(m_ui.comboBoxShape->currentIndex()));
168 config->setRepeat(static_cast<KisGradientPainter::enumGradientRepeat>(m_ui.comboBoxRepeat->currentIndex()));
169 config->setAntiAliasThreshold(m_ui.sliderAntiAliasThreshold->value());
170 config->setDither(m_ui.checkBoxDither->isChecked());
171 config->setReverse(m_ui.checkBoxReverse->isChecked());
172
173 config->setStartPositionX(m_ui.spinBoxStartPositionX->value());
174 config->setStartPositionY(m_ui.spinBoxStartPositionY->value());
175 config->setStartPositionXUnits(static_cast<KisGradientGeneratorConfiguration::SpatialUnits>(m_ui.comboBoxStartPositionXUnits->currentIndex()));
176 config->setStartPositionYUnits(static_cast<KisGradientGeneratorConfiguration::SpatialUnits>(m_ui.comboBoxStartPositionYUnits->currentIndex()));
177 if (m_ui.radioButtonEndPositionCartesianCoordinates->isChecked()) {
179 } else {
181 }
182 config->setEndPositionX(m_ui.spinBoxEndPositionX->value());
183 config->setEndPositionY(m_ui.spinBoxEndPositionY->value());
184 config->setEndPositionXUnits(static_cast<KisGradientGeneratorConfiguration::SpatialUnits>(m_ui.comboBoxEndPositionXUnits->currentIndex()));
185 config->setEndPositionYUnits(static_cast<KisGradientGeneratorConfiguration::SpatialUnits>(m_ui.comboBoxEndPositionYUnits->currentIndex()));
186 config->setEndPositionXPositioning(static_cast<KisGradientGeneratorConfiguration::Positioning>(m_ui.comboBoxEndPositionXPositioning->currentIndex()));
187 config->setEndPositionYPositioning(static_cast<KisGradientGeneratorConfiguration::Positioning>(m_ui.comboBoxEndPositionYPositioning->currentIndex()));
188 config->setEndPositionAngle(m_ui.angleSelectorEndPositionAngle->angle());
189 config->setEndPositionDistance(m_ui.spinBoxEndPositionDistance->value());
190 config->setEndPositionDistanceUnits(static_cast<KisGradientGeneratorConfiguration::SpatialUnits>(m_ui.comboBoxEndPositionDistanceUnits->currentIndex()));
191
192 KoAbstractGradientSP gradient = m_ui.widgetGradientEditor->gradient();
193 if (gradient && m_view) {
196 gradient->bakeVariableColors(canvasResourcesInterface);
197 }
198 config->setGradient(gradient);
199
200 return config;
201}
KoCanvasResourceProvider * resourceManager()
virtual KoCanvasResourcesInterfaceSP canvasResourcesInterface() const
static KisResourcesInterfaceSP instance()
void setShape(KisGradientPainter::enumGradientShape newShape)
void setEndPositionYPositioning(Positioning newEndPositionYPositioning)
void setEndPositionYUnits(SpatialUnits newEndPositionYUnits)
void setStartPositionYUnits(SpatialUnits newStartPositionYUnits)
void setRepeat(KisGradientPainter::enumGradientRepeat newRepeat)
void setEndPositionXPositioning(Positioning newEndPositionXPositioning)
void setAntiAliasThreshold(qreal newAntiAliasThreshold)
void setGradient(KoAbstractGradientSP newGradient)
void setEndPositionCoordinateSystem(CoordinateSystem newEndPositionCoordinateSystem)
void setStartPositionXUnits(SpatialUnits newStartPositionXUnits)
void setEndPositionXUnits(SpatialUnits newEndPositionXUnits)
void setEndPositionDistance(qreal newEndPositionDistance)
void setEndPositionDistanceUnits(SpatialUnits newEndPositionDistanceUnits)
KisCanvasResourceProvider * canvasResourceProvider()
KoCanvasResourcesInterfaceSP canvasResourcesInterface() const

References KisViewManager::canvasResourceProvider(), KoCanvasResourceProvider::canvasResourcesInterface(), KisConfigWidget::canvasResourcesInterface(), KisGradientGeneratorConfiguration::CoordinateSystemCartesian, KisGradientGeneratorConfiguration::CoordinateSystemPolar, KisGlobalResourcesInterface::instance(), m_ui, m_view, KisCanvasResourceProvider::resourceManager(), KisGradientGeneratorConfiguration::setAntiAliasThreshold(), KisGradientGeneratorConfiguration::setDither(), KisGradientGeneratorConfiguration::setEndPositionAngle(), KisGradientGeneratorConfiguration::setEndPositionCoordinateSystem(), KisGradientGeneratorConfiguration::setEndPositionDistance(), KisGradientGeneratorConfiguration::setEndPositionDistanceUnits(), KisGradientGeneratorConfiguration::setEndPositionX(), KisGradientGeneratorConfiguration::setEndPositionXPositioning(), KisGradientGeneratorConfiguration::setEndPositionXUnits(), KisGradientGeneratorConfiguration::setEndPositionY(), KisGradientGeneratorConfiguration::setEndPositionYPositioning(), KisGradientGeneratorConfiguration::setEndPositionYUnits(), KisGradientGeneratorConfiguration::setGradient(), KisGradientGeneratorConfiguration::setRepeat(), KisGradientGeneratorConfiguration::setReverse(), KisGradientGeneratorConfiguration::setShape(), KisGradientGeneratorConfiguration::setStartPositionX(), KisGradientGeneratorConfiguration::setStartPositionXUnits(), KisGradientGeneratorConfiguration::setStartPositionY(), and KisGradientGeneratorConfiguration::setStartPositionYUnits().

◆ setCanvasResourcesInterface()

void KisGradientGeneratorConfigWidget::setCanvasResourcesInterface ( KoCanvasResourcesInterfaceSP canvasResourcesInterface)
overridevirtual

Reimplemented from KisConfigWidget.

Definition at line 211 of file KisGradientGeneratorConfigWidget.cpp.

212{
213 m_ui.widgetGradientEditor->setCanvasResourcesInterface(canvasResourcesInterface);
215}
virtual void setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP canvasResourcesInterface)

References KisConfigWidget::canvasResourcesInterface(), m_ui, and KisConfigWidget::setCanvasResourcesInterface().

◆ setConfiguration()

void KisGradientGeneratorConfigWidget::setConfiguration ( const KisPropertiesConfigurationSP config)
overridevirtual
Parameters
configthe configuration for this configuration widget.

Implements KisConfigWidget.

Definition at line 112 of file KisGradientGeneratorConfigWidget.cpp.

113{
114 const KisGradientGeneratorConfiguration *generatorConfig =
115 dynamic_cast<const KisGradientGeneratorConfiguration*>(config.data());
116 KIS_ASSERT(generatorConfig);
117
118 {
119 KisSignalsBlocker signalsBlocker(this);
120
121 m_ui.comboBoxShape->setCurrentIndex(generatorConfig->shape());
122 m_ui.comboBoxRepeat->setCurrentIndex(generatorConfig->repeat());
123 m_ui.sliderAntiAliasThreshold->setValue(generatorConfig->antiAliasThreshold());
124 m_ui.checkBoxDither->setChecked(generatorConfig->dither());
125 m_ui.checkBoxReverse->setChecked(generatorConfig->reverse());
126
127 m_ui.spinBoxStartPositionX->setValue(generatorConfig->startPositionX());
128 m_ui.spinBoxStartPositionY->setValue(generatorConfig->startPositionY());
129 m_ui.comboBoxStartPositionXUnits->setCurrentIndex(generatorConfig->startPositionXUnits());
130 m_ui.comboBoxStartPositionYUnits->setCurrentIndex(generatorConfig->startPositionYUnits());
132 m_ui.radioButtonEndPositionCartesianCoordinates->setChecked(true);
133 } else {
134 m_ui.radioButtonEndPositionPolarCoordinates->setChecked(true);
135 }
136 m_ui.spinBoxEndPositionX->setValue(generatorConfig->endPositionX());
137 m_ui.spinBoxEndPositionY->setValue(generatorConfig->endPositionY());
138 m_ui.comboBoxEndPositionXUnits->setCurrentIndex(generatorConfig->endPositionXUnits());
139 m_ui.comboBoxEndPositionYUnits->setCurrentIndex(generatorConfig->endPositionYUnits());
140 m_ui.comboBoxEndPositionXPositioning->setCurrentIndex(generatorConfig->endPositionXPositioning());
141 m_ui.comboBoxEndPositionYPositioning->setCurrentIndex(generatorConfig->endPositionYPositioning());
142 m_ui.angleSelectorEndPositionAngle->setAngle(generatorConfig->endPositionAngle());
143 m_ui.spinBoxEndPositionDistance->setValue(generatorConfig->endPositionDistance());
144 m_ui.comboBoxEndPositionDistanceUnits->setCurrentIndex(generatorConfig->endPositionDistanceUnits());
145
146 KoAbstractGradientSP fallbackGradient = nullptr;
147 if (m_view) {
150 KoAbstractGradientSP currentGradient =
152 if (currentGradient) {
153 fallbackGradient = currentGradient->clone().dynamicCast<KoAbstractGradient>();
154 }
155 }
156 }
157 m_ui.widgetGradientEditor->setGradient(generatorConfig->gradient(fallbackGradient));
158 }
159
161}
void sigConfigurationItemChanged()
KisGradientPainter::enumGradientShape shape() const
KisGradientPainter::enumGradientRepeat repeat() const
KoAbstractGradientSP gradient(KoAbstractGradientSP fallbackGradient=nullptr) const
#define KIS_ASSERT(cond)
Definition kis_assert.h:33

References KisGradientGeneratorConfiguration::antiAliasThreshold(), KisViewManager::canvasResourceProvider(), KoCanvasResourceProvider::canvasResourcesInterface(), KisConfigWidget::canvasResourcesInterface(), KisGradientGeneratorConfiguration::CoordinateSystemCartesian, KoCanvasResource::CurrentGradient, KisSharedPtr< T >::data(), KisGradientGeneratorConfiguration::dither(), KisGradientGeneratorConfiguration::endPositionAngle(), KisGradientGeneratorConfiguration::endPositionCoordinateSystem(), KisGradientGeneratorConfiguration::endPositionDistance(), KisGradientGeneratorConfiguration::endPositionDistanceUnits(), KisGradientGeneratorConfiguration::endPositionX(), KisGradientGeneratorConfiguration::endPositionXPositioning(), KisGradientGeneratorConfiguration::endPositionXUnits(), KisGradientGeneratorConfiguration::endPositionY(), KisGradientGeneratorConfiguration::endPositionYPositioning(), KisGradientGeneratorConfiguration::endPositionYUnits(), KisGradientGeneratorConfiguration::gradient(), KIS_ASSERT, m_ui, m_view, KisGradientGeneratorConfiguration::repeat(), KisCanvasResourceProvider::resourceManager(), KisGradientGeneratorConfiguration::reverse(), KisGradientGeneratorConfiguration::shape(), KisConfigWidget::sigConfigurationItemChanged(), KisGradientGeneratorConfiguration::startPositionX(), KisGradientGeneratorConfiguration::startPositionXUnits(), KisGradientGeneratorConfiguration::startPositionY(), and KisGradientGeneratorConfiguration::startPositionYUnits().

◆ setView()

void KisGradientGeneratorConfigWidget::setView ( KisViewManager * view)
overridevirtual

Sets the view object that can be used by the configuration widget for richer functionality

TODO: remove this method from KisConfigWidget, since KisViewManager is from kritaui, but we are in kritaimage

Reimplemented from KisConfigWidget.

Definition at line 203 of file KisGradientGeneratorConfigWidget.cpp.

204{
205 m_view = view;
206
209}
void setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP canvasResourcesInterface) override

References KisViewManager::canvasResourceProvider(), KoCanvasResourceProvider::canvasResourcesInterface(), KisConfigWidget::canvasResourcesInterface(), m_view, KisCanvasResourceProvider::resourceManager(), and setCanvasResourcesInterface().

◆ slot_radioButtonEndPositionCartesianCoordinates_toggled

void KisGradientGeneratorConfigWidget::slot_radioButtonEndPositionCartesianCoordinates_toggled ( bool enabled)
privateslot

Definition at line 217 of file KisGradientGeneratorConfigWidget.cpp.

218{
219 if (!enabled) {
220 return;
221 }
222
223 m_ui.stackedWidgetEndPosition->setCurrentIndex(0);
225}

References m_ui, and KisConfigWidget::sigConfigurationItemChanged().

◆ slot_radioButtonEndPositionPolarCoordinates_toggled

void KisGradientGeneratorConfigWidget::slot_radioButtonEndPositionPolarCoordinates_toggled ( bool enabled)
privateslot

Definition at line 227 of file KisGradientGeneratorConfigWidget.cpp.

228{
229 if (!enabled) {
230 return;
231 }
232
233 m_ui.stackedWidgetEndPosition->setCurrentIndex(1);
235}

References m_ui, and KisConfigWidget::sigConfigurationItemChanged().

Member Data Documentation

◆ m_ui

Ui_GradientGeneratorConfigWidget KisGradientGeneratorConfigWidget::m_ui
private

Definition at line 33 of file KisGradientGeneratorConfigWidget.h.

◆ m_view

KisViewManager* KisGradientGeneratorConfigWidget::m_view
private

Definition at line 34 of file KisGradientGeneratorConfigWidget.h.


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