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 99 of file kis_dlg_layer_style.h.

Member Enumeration Documentation

◆ Mode

Enumerator
DropShadowMode 
InnerShadowMode 

Definition at line 103 of file kis_dlg_layer_style.h.

Constructor & Destructor Documentation

◆ DropShadow()

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

Definition at line 951 of file kis_dlg_layer_style.cpp.

952 : QWidget(parent),
953 m_mode(mode)
954{
955 ui.setupUi(this);
956
957 ui.intOpacity->setRange(0, 100);
958 KisSpinBoxI18nHelper::setText(ui.intOpacity, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
959
960 ui.intDistance->setRange(0, 500);
961 ui.intDistance->setSuffix(i18n(" px"));
962 ui.intDistance->setExponentRatio(3.0);
963
964 ui.intSpread->setRange(0, 100);
965 KisSpinBoxI18nHelper::setText(ui.intSpread, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
966
967 ui.intSize->setRange(0, 250);
968 ui.intSize->setSuffix(i18n(" px"));
969 ui.intSize->setExponentRatio(2.0);
970
971 ui.intNoise->setRange(0, 100);
972 KisSpinBoxI18nHelper::setText(ui.intNoise, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
973
974 ui.angleSelector->enableGlobalLight(true);
975 connect(ui.angleSelector, SIGNAL(globalAngleChanged(int)), SIGNAL(globalAngleChanged(int)));
976 connect(ui.angleSelector, SIGNAL(configChanged()), SIGNAL(configChanged()));
977
978 // connect everything to configChanged() signal
979 connect(ui.cmbCompositeOp, SIGNAL(currentIndexChanged(int)), SIGNAL(configChanged()));
980 connect(ui.intOpacity, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
981 connect(ui.bnColor, SIGNAL(changed(KoColor)), SIGNAL(configChanged()));
982
983 connect(ui.intDistance, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
984 connect(ui.intSpread, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
985 connect(ui.intSize, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
986
987 connect(ui.cmbContour, SIGNAL(currentIndexChanged(int)), SIGNAL(configChanged()));
988 connect(ui.chkAntiAliased, SIGNAL(toggled(bool)), SIGNAL(configChanged()));
989 connect(ui.intNoise, SIGNAL(valueChanged(int)), SIGNAL(configChanged()));
990
991 connect(ui.chkLayerKnocksOutDropShadow, SIGNAL(toggled(bool)), SIGNAL(configChanged()));
992
993 if (m_mode == InnerShadowMode) {
994 ui.chkLayerKnocksOutDropShadow->setVisible(false);
995 ui.grpMain->setTitle(i18n("Inner Shadow"));
996 ui.lblSpread->setText(i18n("Choke:"));
997 }
998}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
Ui::WdgDropShadow ui
void globalAngleChanged(int value)
void configChanged()
void setText(QSpinBox *spinBox, const QStringView textTemplate)

References configChanged(), connect(), 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 1027 of file kis_dlg_layer_style.cpp.

1028{
1029 shadow->setBlendMode(ui.cmbCompositeOp->selectedCompositeOp().id());
1030 shadow->setOpacity(ui.intOpacity->value());
1031 shadow->setColor(ui.bnColor->color());
1032
1033 shadow->setAngle(ui.angleSelector->value());
1034 shadow->setUseGlobalLight(ui.angleSelector->useGlobalLight());
1035
1036 shadow->setDistance(ui.intDistance->value());
1037 shadow->setSpread(ui.intSpread->value());
1038 shadow->setSize(ui.intSize->value());
1039
1040 // FIXME: curve editing
1041 // ui.cmbContour;
1042 shadow->setAntiAliased(ui.chkAntiAliased->isChecked());
1043 shadow->setNoise(ui.intNoise->value());
1044
1045 if (m_mode == DropShadowMode) {
1046 psd_layer_effects_drop_shadow *realDropShadow = dynamic_cast<psd_layer_effects_drop_shadow*>(shadow);
1047 KIS_ASSERT_RECOVER_NOOP(realDropShadow);
1048
1049 realDropShadow->setKnocksOut(ui.chkLayerKnocksOutDropShadow->isChecked());
1050 }
1051}
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 1000 of file kis_dlg_layer_style.cpp.

1001{
1002 ui.cmbCompositeOp->selectCompositeOp(KoID(shadow->blendMode()));
1003 ui.intOpacity->setValue(shadow->opacity());
1004 ui.bnColor->setColor(shadow->color());
1005
1006 ui.angleSelector->setValue(shadow->angle());
1007 ui.angleSelector->setUseGlobalLight(shadow->useGlobalLight());
1008
1009 ui.intDistance->setValue(shadow->distance());
1010 ui.intSpread->setValue(shadow->spread());
1011 ui.intSize->setValue(shadow->size());
1012
1013 // FIXME: curve editing
1014 // ui.cmbContour;
1015 ui.chkAntiAliased->setChecked(shadow->antiAliased());
1016
1017 ui.intNoise->setValue(shadow->noise());
1018
1019 if (m_mode == DropShadowMode) {
1020 const psd_layer_effects_drop_shadow *realDropShadow = dynamic_cast<const psd_layer_effects_drop_shadow*>(shadow);
1021 KIS_ASSERT_RECOVER_NOOP(realDropShadow);
1022
1023 ui.chkLayerKnocksOutDropShadow->setChecked(shadow->knocksOut());
1024 }
1025}
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 119 of file kis_dlg_layer_style.h.

◆ ui

Ui::WdgDropShadow DropShadow::ui
private

Definition at line 118 of file kis_dlg_layer_style.h.


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