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

#include <kis_dlg_layer_style.h>

+ Inheritance diagram for InnerGlow:

Public Types

enum  Mode { InnerGlowMode = 0 , OuterGlowMode }
 

Signals

void configChanged ()
 

Public Member Functions

void fetchConfig (psd_layer_effects_glow_common *innerGlow, QSharedPointer< KisLocalStrokeResources > uploadResourcesInterface) const
 
 InnerGlow (Mode mode, KisCanvasResourceProvider *resourceProvider, QWidget *parent)
 
void setConfig (const psd_layer_effects_glow_common *innerGlow, KisResourcesInterfaceSP resourcesInterface)
 

Private Attributes

Mode m_mode
 
Ui::WdgInnerGlow ui
 

Detailed Description

Definition at line 138 of file kis_dlg_layer_style.h.

Member Enumeration Documentation

◆ Mode

Enumerator
InnerGlowMode 
OuterGlowMode 

Definition at line 141 of file kis_dlg_layer_style.h.

141 {
142 InnerGlowMode = 0,
144 };

Constructor & Destructor Documentation

◆ InnerGlow()

InnerGlow::InnerGlow ( Mode mode,
KisCanvasResourceProvider * resourceProvider,
QWidget * parent )

Definition at line 1218 of file kis_dlg_layer_style.cpp.

1219 : QWidget(parent),
1220 m_mode(mode)
1221{
1222 ui.setupUi(this);
1223
1224 if (mode == OuterGlowMode) {
1225 ui.groupBox->setTitle(i18n("Outer Glow"));
1226 }
1227
1228 ui.intOpacity->setRange(0, 100);
1229 KisSpinBoxI18nHelper::setText(ui.intOpacity, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
1230
1231 ui.intNoise->setRange(0, 100);
1232 KisSpinBoxI18nHelper::setText(ui.intNoise, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
1233
1234 ui.intChoke->setRange(0, 100);
1235 KisSpinBoxI18nHelper::setText(ui.intChoke, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
1236
1237 ui.intSize->setRange(0, 250);
1238 ui.intSize->setSuffix(i18n(" px"));
1239 ui.intSize->setExponentRatio(2.0);
1240
1241 ui.intRange->setRange(1, 100);
1242 KisSpinBoxI18nHelper::setText(ui.intRange, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
1243
1244 ui.intJitter->setRange(0, 100);
1245 KisSpinBoxI18nHelper::setText(ui.intJitter, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
1246
1247 ui.cmbGradient->setCanvasResourcesInterface(resourceProvider->resourceManager()->canvasResourcesInterface());
1248
1249 connect(ui.cmbCompositeOp, SIGNAL(currentIndexChanged(int)), SIGNAL(configChanged()));
1250 connect(ui.intOpacity, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1251 connect(ui.intNoise, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1252
1253 connect(ui.radioColor, SIGNAL(toggled(bool)), SIGNAL(configChanged()));
1254 connect(ui.bnColor, SIGNAL(changed(KoColor)), SIGNAL(configChanged()));
1255 connect(ui.radioGradient, SIGNAL(toggled(bool)), SIGNAL(configChanged()));
1256 connect(ui.cmbGradient, SIGNAL(gradientChanged(KoAbstractGradientSP)), SIGNAL(configChanged()));
1257
1258 connect(ui.cmbTechnique, SIGNAL(currentIndexChanged(int)), SIGNAL(configChanged()));
1259 connect(ui.cmbSource, SIGNAL(currentIndexChanged(int)), SIGNAL(configChanged()));
1260 connect(ui.intChoke, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1261 connect(ui.intSize, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1262
1263 connect(ui.cmbContour, SIGNAL(currentIndexChanged(int)), SIGNAL(configChanged()));
1264 connect(ui.chkAntiAliased, SIGNAL(toggled(bool)), SIGNAL(configChanged()));
1265 connect(ui.intRange, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1266 connect(ui.intJitter, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1267
1268 if (m_mode == OuterGlowMode) {
1269 ui.cmbSource->hide();
1270 ui.lblSource->hide();
1271 ui.lblChoke->setText(i18nc("layer styles parameter", "Spread:"));
1272 }
1273
1274}
Ui::WdgInnerGlow ui
void configChanged()
KoCanvasResourceProvider * resourceManager()
KoCanvasResourcesInterfaceSP canvasResourcesInterface() const
void setText(QSpinBox *spinBox, const QStringView textTemplate)

References KoCanvasResourceProvider::canvasResourcesInterface(), configChanged(), m_mode, OuterGlowMode, KisCanvasResourceProvider::resourceManager(), KisSpinBoxI18nHelper::setText(), and ui.

Member Function Documentation

◆ configChanged

void InnerGlow::configChanged ( )
signal

◆ fetchConfig()

void InnerGlow::fetchConfig ( psd_layer_effects_glow_common * innerGlow,
QSharedPointer< KisLocalStrokeResources > uploadResourcesInterface ) const

Definition at line 1311 of file kis_dlg_layer_style.cpp.

1312{
1313 config->setBlendMode(ui.cmbCompositeOp->selectedCompositeOp().id());
1314 config->setOpacity(ui.intOpacity->value());
1315 config->setNoise(ui.intNoise->value());
1316
1317 if (ui.radioColor->isChecked()) {
1318 config->setFillType(psd_fill_solid_color);
1319 }
1320 else {
1321 config->setFillType(psd_fill_gradient);
1322 }
1323
1324 config->setColor(ui.bnColor->color());
1325 KoAbstractGradientSP gradient = ui.cmbGradient->gradient();
1326 if (gradient) {
1327 auto clonedGradient = cloneAndPrepareGradientFromGUI(gradient);
1328 uploadResourcesInterface->addResource(clonedGradient);
1329 config->setGradient(clonedGradient);
1330 }
1331 config->setTechnique((psd_technique_type)ui.cmbTechnique->currentIndex());
1332 config->setSpread(ui.intChoke->value());
1333 config->setSize(ui.intSize->value());
1334
1335 if (m_mode == InnerGlowMode) {
1337 dynamic_cast<psd_layer_effects_inner_glow *>(config);
1339
1340 iglow->setSource((psd_glow_source)ui.cmbSource->currentIndex());
1341 }
1342
1343 // FIXME: Curve editing
1344 //ui.cmbContour;
1345
1346 config->setAntiAliased(ui.chkAntiAliased->isChecked());
1347 config->setRange(ui.intRange->value());
1348 config->setJitter(ui.intJitter->value());
1349}
void setSource(psd_glow_source value)
Definition psd.h:610
#define KIS_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:75
KoAbstractGradientSP cloneAndPrepareGradientFromGUI(KoAbstractGradientSP gradient)
psd_glow_source
Definition psd.h:129
@ psd_fill_solid_color
Definition psd.h:124
@ psd_fill_gradient
Definition psd.h:125
psd_technique_type
Definition psd.h:115

References cloneAndPrepareGradientFromGUI(), InnerGlowMode, KIS_ASSERT_RECOVER_RETURN, m_mode, psd_fill_gradient, psd_fill_solid_color, psd_layer_effects_shadow_base::setAntiAliased(), psd_layer_effects_shadow_base::setBlendMode(), psd_layer_effects_shadow_base::setColor(), psd_layer_effects_shadow_base::setFillType(), psd_layer_effects_shadow_base::setGradient(), psd_layer_effects_shadow_base::setJitter(), psd_layer_effects_shadow_base::setNoise(), psd_layer_effects_shadow_base::setOpacity(), psd_layer_effects_shadow_base::setRange(), psd_layer_effects_shadow_base::setSize(), psd_layer_effects_inner_glow::setSource(), psd_layer_effects_shadow_base::setSpread(), psd_layer_effects_shadow_base::setTechnique(), and ui.

◆ setConfig()

void InnerGlow::setConfig ( const psd_layer_effects_glow_common * innerGlow,
KisResourcesInterfaceSP resourcesInterface )

Definition at line 1276 of file kis_dlg_layer_style.cpp.

1277{
1278 ui.cmbCompositeOp->selectCompositeOp(KoID(config->blendMode()));
1279 ui.intOpacity->setValue(config->opacity());
1280 ui.intNoise->setValue(config->noise());
1281
1282 ui.radioColor->setChecked(config->fillType() == psd_fill_solid_color);
1283 ui.bnColor->setColor(config->color());
1284 ui.radioGradient->setChecked(config->fillType() == psd_fill_gradient);
1285
1286 KoAbstractGradientSP gradient = fetchGradientLazy(config->gradientLink(), resourcesInterface);
1287 if (gradient) {
1288 ui.cmbGradient->setGradient(gradient);
1289 }
1290
1291 ui.cmbTechnique->setCurrentIndex((int)config->technique());
1292 ui.intChoke->setValue(config->spread());
1293 ui.intSize->setValue(config->size());
1294
1295 if (m_mode == InnerGlowMode) {
1296 const psd_layer_effects_inner_glow *iglow =
1297 dynamic_cast<const psd_layer_effects_inner_glow *>(config);
1299
1300 ui.cmbSource->setCurrentIndex(iglow->source() == psd_glow_edge);
1301 }
1302
1303 // FIXME: Curve editing
1304 //ui.cmbContour;
1305
1306 ui.chkAntiAliased->setChecked(config->antiAliased());
1307 ui.intRange->setValue(config->range());
1308 ui.intJitter->setValue(config->jitter());
1309}
Definition KoID.h:30
psd_glow_source source() const
Definition psd.h:606
KoAbstractGradientSP fetchGradientLazy(KoResourceSignature signature, KisResourcesInterfaceSP resourcesInterface)
@ psd_glow_edge
Definition psd.h:131

References psd_layer_effects_shadow_base::antiAliased(), psd_layer_effects_shadow_base::blendMode(), psd_layer_effects_shadow_base::color(), fetchGradientLazy(), psd_layer_effects_shadow_base::fillType(), psd_layer_effects_shadow_base::gradientLink(), InnerGlowMode, psd_layer_effects_shadow_base::jitter(), KIS_ASSERT_RECOVER_RETURN, m_mode, psd_layer_effects_shadow_base::noise(), psd_layer_effects_shadow_base::opacity(), psd_fill_gradient, psd_fill_solid_color, psd_glow_edge, psd_layer_effects_shadow_base::range(), psd_layer_effects_shadow_base::size(), psd_layer_effects_inner_glow::source(), psd_layer_effects_shadow_base::spread(), psd_layer_effects_shadow_base::technique(), and ui.

Member Data Documentation

◆ m_mode

Mode InnerGlow::m_mode
private

Definition at line 156 of file kis_dlg_layer_style.h.

◆ ui

Ui::WdgInnerGlow InnerGlow::ui
private

Definition at line 155 of file kis_dlg_layer_style.h.


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