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

#include <kis_dlg_layer_style.h>

+ Inheritance diagram for DropShadow:

Public Types

enum  Mode { DropShadowMode , InnerShadowMode }
 

Signals

void configChanged ()
 
void globalAngleChanged (int value)
 

Public Member Functions

 DropShadow (Mode mode, QWidget *parent)
 
void fetchShadow (psd_layer_effects_shadow_common *shadow) const
 
void setShadow (const psd_layer_effects_shadow_common *shadow)
 

Private Attributes

Mode m_mode
 
Ui::WdgDropShadow ui
 

Detailed Description

Definition at line 101 of file kis_dlg_layer_style.h.

Member Enumeration Documentation

◆ Mode

Enumerator
DropShadowMode 
InnerShadowMode 

Definition at line 105 of file kis_dlg_layer_style.h.

Constructor & Destructor Documentation

◆ DropShadow()

DropShadow::DropShadow ( Mode mode,
QWidget * parent )

Definition at line 1043 of file kis_dlg_layer_style.cpp.

1044 : QWidget(parent),
1045 m_mode(mode)
1046{
1047 ui.setupUi(this);
1048
1049 ui.intOpacity->setRange(0, 100);
1050 KisSpinBoxI18nHelper::setText(ui.intOpacity, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
1051
1052 ui.intDistance->setRange(0, 500);
1053 ui.intDistance->setSuffix(i18n(" px"));
1054 ui.intDistance->setExponentRatio(3.0);
1055
1056 ui.intSpread->setRange(0, 100);
1057 KisSpinBoxI18nHelper::setText(ui.intSpread, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
1058
1059 ui.intSize->setRange(0, 250);
1060 ui.intSize->setSuffix(i18n(" px"));
1061 ui.intSize->setExponentRatio(2.0);
1062
1063 ui.intNoise->setRange(0, 100);
1064 KisSpinBoxI18nHelper::setText(ui.intNoise, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
1065
1066 ui.angleSelector->enableGlobalLight(true);
1067 connect(ui.angleSelector, SIGNAL(globalAngleChanged(int)), SIGNAL(globalAngleChanged(int)));
1068 connect(ui.angleSelector, SIGNAL(configChanged()), SIGNAL(configChanged()));
1069
1070 // connect everything to configChanged() signal
1071 connect(ui.cmbCompositeOp, SIGNAL(currentIndexChanged(int)), SIGNAL(configChanged()));
1072 connect(ui.intOpacity, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1073 connect(ui.bnColor, SIGNAL(changed(KoColor)), SIGNAL(configChanged()));
1074
1075 connect(ui.intDistance, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1076 connect(ui.intSpread, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1077 connect(ui.intSize, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1078
1079 connect(ui.cmbContour, SIGNAL(currentIndexChanged(int)), SIGNAL(configChanged()));
1080 connect(ui.chkAntiAliased, SIGNAL(toggled(bool)), SIGNAL(configChanged()));
1081 connect(ui.intNoise, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
1082
1083 connect(ui.chkLayerKnocksOutDropShadow, SIGNAL(toggled(bool)), SIGNAL(configChanged()));
1084
1085 if (m_mode == InnerShadowMode) {
1086 ui.chkLayerKnocksOutDropShadow->setVisible(false);
1087 ui.grpMain->setTitle(i18n("Inner Shadow"));
1088 ui.lblSpread->setText(i18n("Choke:"));
1089 }
1090}
Ui::WdgDropShadow ui
void globalAngleChanged(int value)
void configChanged()
void setText(QSpinBox *spinBox, const QStringView textTemplate)

References configChanged(), globalAngleChanged(), InnerShadowMode, m_mode, KisSpinBoxI18nHelper::setText(), and ui.

Member Function Documentation

◆ configChanged

void DropShadow::configChanged ( )
signal

◆ fetchShadow()

void DropShadow::fetchShadow ( psd_layer_effects_shadow_common * shadow) const

Definition at line 1119 of file kis_dlg_layer_style.cpp.

1120{
1121 shadow->setBlendMode(ui.cmbCompositeOp->selectedCompositeOp().id());
1122 shadow->setOpacity(ui.intOpacity->value());
1123 shadow->setColor(ui.bnColor->color());
1124
1125 shadow->setAngle(ui.angleSelector->value());
1126 shadow->setUseGlobalLight(ui.angleSelector->useGlobalLight());
1127
1128 shadow->setDistance(ui.intDistance->value());
1129 shadow->setSpread(ui.intSpread->value());
1130 shadow->setSize(ui.intSize->value());
1131
1132 // FIXME: curve editing
1133 // ui.cmbContour;
1134 shadow->setAntiAliased(ui.chkAntiAliased->isChecked());
1135 shadow->setNoise(ui.intNoise->value());
1136
1137 if (m_mode == DropShadowMode) {
1138 psd_layer_effects_drop_shadow *realDropShadow = dynamic_cast<psd_layer_effects_drop_shadow*>(shadow);
1139 KIS_ASSERT_RECOVER_NOOP(realDropShadow);
1140
1141 realDropShadow->setKnocksOut(ui.chkLayerKnocksOutDropShadow->isChecked());
1142 }
1143}
void setColor(KoColor value)
Definition psd.h:377
void setNoise(qint32 value)
Definition psd.h:427
void setUseGlobalLight(bool value)
Definition psd.h:397
void setAntiAliased(bool value)
Definition psd.h:422
void setKnocksOut(bool value)
Definition psd.h:432
void setDistance(qint32 value)
Definition psd.h:402
void setAngle(qint32 value)
Definition psd.h:392
void setBlendMode(QString value)
Definition psd.h:372
void setOpacity(qint32 value)
Definition psd.h:387
void setSpread(qint32 value)
Definition psd.h:407
void setSize(qint32 value)
Definition psd.h:412
#define KIS_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:97

References DropShadowMode, KIS_ASSERT_RECOVER_NOOP, m_mode, psd_layer_effects_shadow_base::setAngle(), psd_layer_effects_shadow_base::setAntiAliased(), psd_layer_effects_shadow_base::setBlendMode(), psd_layer_effects_shadow_base::setColor(), psd_layer_effects_shadow_base::setDistance(), psd_layer_effects_shadow_base::setKnocksOut(), psd_layer_effects_shadow_base::setNoise(), psd_layer_effects_shadow_base::setOpacity(), psd_layer_effects_shadow_base::setSize(), psd_layer_effects_shadow_base::setSpread(), psd_layer_effects_shadow_base::setUseGlobalLight(), and ui.

◆ globalAngleChanged

void DropShadow::globalAngleChanged ( int value)
signal

◆ setShadow()

void DropShadow::setShadow ( const psd_layer_effects_shadow_common * shadow)

Definition at line 1092 of file kis_dlg_layer_style.cpp.

1093{
1094 ui.cmbCompositeOp->selectCompositeOp(KoID(shadow->blendMode()));
1095 ui.intOpacity->setValue(shadow->opacity());
1096 ui.bnColor->setColor(shadow->color());
1097
1098 ui.angleSelector->setValue(shadow->angle());
1099 ui.angleSelector->setUseGlobalLight(shadow->useGlobalLight());
1100
1101 ui.intDistance->setValue(shadow->distance());
1102 ui.intSpread->setValue(shadow->spread());
1103 ui.intSize->setValue(shadow->size());
1104
1105 // FIXME: curve editing
1106 // ui.cmbContour;
1107 ui.chkAntiAliased->setChecked(shadow->antiAliased());
1108
1109 ui.intNoise->setValue(shadow->noise());
1110
1111 if (m_mode == DropShadowMode) {
1112 const psd_layer_effects_drop_shadow *realDropShadow = dynamic_cast<const psd_layer_effects_drop_shadow*>(shadow);
1113 KIS_ASSERT_RECOVER_NOOP(realDropShadow);
1114
1115 ui.chkLayerKnocksOutDropShadow->setChecked(shadow->knocksOut());
1116 }
1117}
Definition KoID.h:30
qint32 opacity() const
Definition psd.h:281
qint32 distance() const
Definition psd.h:296
bool useGlobalLight() const
Definition psd.h:291
QString blendMode() const
Definition psd.h:266
bool knocksOut() const
Definition psd.h:326
qint32 spread() const
Definition psd.h:301
KoColor color() const
Definition psd.h:271
qint32 noise() const
Definition psd.h:321
qint32 angle() const
Definition psd.h:286
qint32 size() const
Definition psd.h:306
bool antiAliased() const
Definition psd.h:316

References psd_layer_effects_shadow_base::angle(), psd_layer_effects_shadow_base::antiAliased(), psd_layer_effects_shadow_base::blendMode(), psd_layer_effects_shadow_base::color(), psd_layer_effects_shadow_base::distance(), DropShadowMode, KIS_ASSERT_RECOVER_NOOP, psd_layer_effects_shadow_base::knocksOut(), m_mode, psd_layer_effects_shadow_base::noise(), psd_layer_effects_shadow_base::opacity(), psd_layer_effects_shadow_base::size(), psd_layer_effects_shadow_base::spread(), ui, and psd_layer_effects_shadow_base::useGlobalLight().

Member Data Documentation

◆ m_mode

Mode DropShadow::m_mode
private

Definition at line 121 of file kis_dlg_layer_style.h.

◆ ui

Ui::WdgDropShadow DropShadow::ui
private

Definition at line 120 of file kis_dlg_layer_style.h.


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