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

#include <kis_liquify_properties.h>

+ Inheritance diagram for KisLiquifyProperties:

Public Types

enum  LiquifyMode {
  MOVE , SCALE , ROTATE , OFFSET ,
  UNDO , RESTORE_SHAPE , N_MODES
}
 

Public Member Functions

qreal amount () const
 
bool amountHasPressure () const
 
qreal flow () const
 
 KisLiquifyProperties ()
 
 KisLiquifyProperties (const KisLiquifyProperties &rhs)
 
void loadAndResetMode ()
 
void loadMode ()
 
LiquifyMode mode () const
 
KisLiquifyPropertiesoperator= (const KisLiquifyProperties &rhs)
 
bool operator== (const KisLiquifyProperties &other) const
 
bool preserveShapeRotation () const
 
bool preserveShapeScale () const
 
bool preserveShapeStretch () const
 
bool reverseDirection () const
 
void saveMode () const
 
void setAmount (qreal value)
 
void setAmountHasPressure (bool value)
 
void setFlow (qreal value)
 
void setMode (LiquifyMode value)
 
void setPreserveShapeRotation (bool value)
 
void setPreserveShapeScale (bool value)
 
void setPreserveShapeStretch (bool value)
 
void setReverseDirection (bool value)
 
void setSize (qreal value)
 
void setSizeHasPressure (bool value)
 
void setSpacing (qreal value)
 
void setUseWashMode (bool value)
 
qreal size () const
 
bool sizeHasPressure () const
 
qreal spacing () const
 
void toXML (QDomElement *e) const
 
bool useWashMode () const
 

Static Public Member Functions

static KisLiquifyProperties fromXML (const QDomElement &e)
 
static qreal maxSize ()
 
static qreal minSize ()
 
static bool supportsReverseDirection (LiquifyMode mode)
 
static bool supportsWashMode (LiquifyMode mode)
 

Private Attributes

qreal m_amount
 
bool m_amountHasPressure
 
qreal m_flow
 
LiquifyMode m_mode
 
bool m_preserveShapeRotation
 
bool m_preserveShapeScale
 
bool m_preserveShapeStretch
 
bool m_reverseDirection
 
qreal m_size
 
bool m_sizeHasPressure
 
qreal m_spacing
 
bool m_useWashMode
 

Detailed Description

Definition at line 18 of file kis_liquify_properties.h.

Member Enumeration Documentation

◆ LiquifyMode

Constructor & Destructor Documentation

◆ KisLiquifyProperties() [1/2]

KisLiquifyProperties::KisLiquifyProperties ( )
inline

Definition at line 32 of file kis_liquify_properties.h.

◆ KisLiquifyProperties() [2/2]

Member Function Documentation

◆ amount()

qreal KisLiquifyProperties::amount ( ) const
inline

Definition at line 80 of file kis_liquify_properties.h.

80 {
81 return m_amount;
82 }

◆ amountHasPressure()

bool KisLiquifyProperties::amountHasPressure ( ) const
inline

Definition at line 101 of file kis_liquify_properties.h.

101 {
102 return m_amountHasPressure;
103 }

◆ flow()

qreal KisLiquifyProperties::flow ( ) const
inline

Definition at line 122 of file kis_liquify_properties.h.

122 {
123 return m_flow;
124 }

◆ fromXML()

KisLiquifyProperties KisLiquifyProperties::fromXML ( const QDomElement & e)
static

Definition at line 203 of file kis_liquify_properties.cpp.

204{
206 bool result = false;
207
208 QDomElement liqEl;
209 int newMode = 0;
210
211 result =
212 KisDomUtils::findOnlyElement(e, "liquify_properties", &liqEl) &&
213
214 KisDomUtils::loadValue(liqEl, "mode", &newMode) &&
215 KisDomUtils::loadValue(liqEl, "size", &props.m_size) &&
216 KisDomUtils::loadValue(liqEl, "amount", &props.m_amount) &&
217 KisDomUtils::loadValue(liqEl, "spacing", &props.m_spacing) &&
218 KisDomUtils::loadValue(liqEl, "sizeHasPressure", &props.m_sizeHasPressure) &&
219 KisDomUtils::loadValue(liqEl, "amountHasPressure", &props.m_amountHasPressure) &&
220 KisDomUtils::loadValue(liqEl, "reverseDirection", &props.m_reverseDirection) &&
221 KisDomUtils::loadValue(liqEl, "useWashMode", &props.m_useWashMode) &&
222 KisDomUtils::loadValue(liqEl, "flow", &props.m_flow);
223
224 if (result && newMode >= 0 && newMode < N_MODES) {
225 props.m_mode = (LiquifyMode) newMode;
226 } else if (result && newMode == N_MODES) {
227 props.m_mode = RESTORE_SHAPE;
228 } else {
229 result = false;
230 }
231
232 if (result) {
233 KisDomUtils::loadValue(liqEl, "preserveShapeRotation", &props.m_preserveShapeRotation);
234 KisDomUtils::loadValue(liqEl, "preserveShapeScale", &props.m_preserveShapeScale);
235 KisDomUtils::loadValue(liqEl, "preserveShapeStretch", &props.m_preserveShapeStretch);
236 }
237
238 return props;
239}
bool findOnlyElement(const QDomElement &parent, const QString &tag, QDomElement *el, QStringList *errorMessages)
bool loadValue(const QDomElement &e, float *v)

References KisDomUtils::findOnlyElement(), KisDomUtils::loadValue(), m_amount, m_amountHasPressure, m_flow, m_mode, m_preserveShapeRotation, m_preserveShapeScale, m_preserveShapeStretch, m_reverseDirection, m_size, m_sizeHasPressure, m_spacing, m_useWashMode, N_MODES, and RESTORE_SHAPE.

◆ loadAndResetMode()

void KisLiquifyProperties::loadAndResetMode ( )

Definition at line 168 of file kis_liquify_properties.cpp.

169{
170 KConfigGroup globalCfg = KSharedConfig::openConfig()->group("LiquifyTool");
171 const int loadedMode = globalCfg.readEntry("mode", (int)m_mode);
172 if (loadedMode >= 0 && loadedMode < N_MODES) {
173 m_mode = (LiquifyMode) loadedMode;
174 } else if (loadedMode == N_MODES) {
176 } else {
177 m_mode = MOVE;
178 }
179
180 loadMode();
181}

References loadMode(), m_mode, MOVE, N_MODES, and RESTORE_SHAPE.

◆ loadMode()

void KisLiquifyProperties::loadMode ( )

Definition at line 150 of file kis_liquify_properties.cpp.

151{
152 KConfigGroup cfg =
153 KSharedConfig::openConfig()->group(liquifyModeString(m_mode));
154
155 m_size = cfg.readEntry("size", m_size);
156 m_amount = cfg.readEntry("amount", defaultAmountForMode(m_mode));
157 m_spacing = cfg.readEntry("spacing", m_spacing);
158 m_sizeHasPressure = cfg.readEntry("sizeHasPressure", m_sizeHasPressure);
159 m_amountHasPressure = cfg.readEntry("amountHasPressure", m_amountHasPressure);
160 m_reverseDirection = cfg.readEntry("reverseDirection", m_reverseDirection);
161 m_useWashMode = cfg.readEntry("useWashMode", m_useWashMode);
162 m_flow = cfg.readEntry("flow", m_flow);
163 m_preserveShapeRotation = cfg.readEntry("preserveShapeRotation", m_preserveShapeRotation);
164 m_preserveShapeScale = cfg.readEntry("preserveShapeScale", m_preserveShapeScale);
165 m_preserveShapeStretch = cfg.readEntry("preserveShapeStretch", m_preserveShapeStretch);
166}
qreal defaultAmountForMode(KisLiquifyProperties::LiquifyMode mode)
QString liquifyModeString(KisLiquifyProperties::LiquifyMode mode)

References defaultAmountForMode(), liquifyModeString(), m_amount, m_amountHasPressure, m_flow, m_mode, m_preserveShapeRotation, m_preserveShapeScale, m_preserveShapeStretch, m_reverseDirection, m_size, m_sizeHasPressure, m_spacing, and m_useWashMode.

◆ maxSize()

static qreal KisLiquifyProperties::maxSize ( )
inlinestatic

Definition at line 76 of file kis_liquify_properties.h.

76 {
77 return 1000.0;
78 }

◆ minSize()

static qreal KisLiquifyProperties::minSize ( )
inlinestatic

Definition at line 72 of file kis_liquify_properties.h.

72 {
73 return 5.0;
74 }

◆ mode()

LiquifyMode KisLiquifyProperties::mode ( ) const
inline

Definition at line 55 of file kis_liquify_properties.h.

55 {
56 return m_mode;
57 }

◆ operator=()

◆ operator==()

◆ preserveShapeRotation()

bool KisLiquifyProperties::preserveShapeRotation ( ) const
inline

Definition at line 129 of file kis_liquify_properties.h.

129 {
131 }

◆ preserveShapeScale()

bool KisLiquifyProperties::preserveShapeScale ( ) const
inline

Definition at line 136 of file kis_liquify_properties.h.

136 {
138 }

◆ preserveShapeStretch()

bool KisLiquifyProperties::preserveShapeStretch ( ) const
inline

Definition at line 143 of file kis_liquify_properties.h.

143 {
145 }

◆ reverseDirection()

bool KisLiquifyProperties::reverseDirection ( ) const
inline

Definition at line 108 of file kis_liquify_properties.h.

108 {
109 return m_reverseDirection;
110 }

◆ saveMode()

void KisLiquifyProperties::saveMode ( ) const

Definition at line 129 of file kis_liquify_properties.cpp.

130{
131 KConfigGroup cfg =
132 KSharedConfig::openConfig()->group(liquifyModeString(m_mode));
133
134 cfg.writeEntry("size", m_size);
135 cfg.writeEntry("amount", m_amount);
136 cfg.writeEntry("spacing", m_spacing);
137 cfg.writeEntry("sizeHasPressure", m_sizeHasPressure);
138 cfg.writeEntry("amountHasPressure", m_amountHasPressure);
139 cfg.writeEntry("reverseDirection", m_reverseDirection);
140 cfg.writeEntry("useWashMode", m_useWashMode);
141 cfg.writeEntry("flow", m_flow);
142 cfg.writeEntry("preserveShapeRotation", m_preserveShapeRotation);
143 cfg.writeEntry("preserveShapeScale", m_preserveShapeScale);
144 cfg.writeEntry("preserveShapeStretch", m_preserveShapeStretch);
145
146 KConfigGroup globalCfg = KSharedConfig::openConfig()->group("LiquifyTool");
147 globalCfg.writeEntry("mode", (int)m_mode);
148}

References liquifyModeString(), m_amount, m_amountHasPressure, m_flow, m_mode, m_preserveShapeRotation, m_preserveShapeScale, m_preserveShapeStretch, m_reverseDirection, m_size, m_sizeHasPressure, m_spacing, and m_useWashMode.

◆ setAmount()

void KisLiquifyProperties::setAmount ( qreal value)
inline

Definition at line 83 of file kis_liquify_properties.h.

83 {
85 }
float value(const T *src, size_t ch)

References value().

◆ setAmountHasPressure()

void KisLiquifyProperties::setAmountHasPressure ( bool value)
inline

Definition at line 104 of file kis_liquify_properties.h.

104 {
106 }

References value().

◆ setFlow()

void KisLiquifyProperties::setFlow ( qreal value)
inline

Definition at line 125 of file kis_liquify_properties.h.

125 {
126 m_flow = value;
127 }

References value().

◆ setMode()

void KisLiquifyProperties::setMode ( LiquifyMode value)
inline

Definition at line 58 of file kis_liquify_properties.h.

58 {
59 m_mode = value;
60 }

References value().

◆ setPreserveShapeRotation()

void KisLiquifyProperties::setPreserveShapeRotation ( bool value)
inline

Definition at line 132 of file kis_liquify_properties.h.

132 {
134 }

References value().

◆ setPreserveShapeScale()

void KisLiquifyProperties::setPreserveShapeScale ( bool value)
inline

Definition at line 139 of file kis_liquify_properties.h.

139 {
141 }

References value().

◆ setPreserveShapeStretch()

void KisLiquifyProperties::setPreserveShapeStretch ( bool value)
inline

Definition at line 146 of file kis_liquify_properties.h.

146 {
148 }

References value().

◆ setReverseDirection()

void KisLiquifyProperties::setReverseDirection ( bool value)
inline

Definition at line 111 of file kis_liquify_properties.h.

111 {
113 }

References value().

◆ setSize()

void KisLiquifyProperties::setSize ( qreal value)
inline

Definition at line 68 of file kis_liquify_properties.h.

68 {
69 m_size = value;
70 }

References value().

◆ setSizeHasPressure()

void KisLiquifyProperties::setSizeHasPressure ( bool value)
inline

Definition at line 97 of file kis_liquify_properties.h.

97 {
99 }

References value().

◆ setSpacing()

void KisLiquifyProperties::setSpacing ( qreal value)
inline

Definition at line 90 of file kis_liquify_properties.h.

90 {
92 }

References value().

◆ setUseWashMode()

void KisLiquifyProperties::setUseWashMode ( bool value)
inline

Definition at line 118 of file kis_liquify_properties.h.

118 {
120 }

References value().

◆ size()

qreal KisLiquifyProperties::size ( ) const
inline

Definition at line 65 of file kis_liquify_properties.h.

65 {
66 return m_size;
67 }

◆ sizeHasPressure()

bool KisLiquifyProperties::sizeHasPressure ( ) const
inline

Definition at line 94 of file kis_liquify_properties.h.

94 {
95 return m_sizeHasPressure;
96 }

◆ spacing()

qreal KisLiquifyProperties::spacing ( ) const
inline

Definition at line 87 of file kis_liquify_properties.h.

87 {
88 return m_spacing;
89 }

◆ supportsReverseDirection()

bool KisLiquifyProperties::supportsReverseDirection ( LiquifyMode mode)
static

Definition at line 69 of file kis_liquify_properties.cpp.

70{
71 return mode != UNDO &&
73}

References mode(), RESTORE_SHAPE, and UNDO.

◆ supportsWashMode()

bool KisLiquifyProperties::supportsWashMode ( LiquifyMode mode)
static

Definition at line 75 of file kis_liquify_properties.cpp.

76{
77 return mode != UNDO &&
79}

References mode(), RESTORE_SHAPE, and UNDO.

◆ toXML()

void KisLiquifyProperties::toXML ( QDomElement * e) const

Definition at line 183 of file kis_liquify_properties.cpp.

184{
185 QDomDocument doc = e->ownerDocument();
186 QDomElement liqEl = doc.createElement("liquify_properties");
187 e->appendChild(liqEl);
188
189 KisDomUtils::saveValue(&liqEl, "mode", (int)m_mode);
190 KisDomUtils::saveValue(&liqEl, "size", m_size);
191 KisDomUtils::saveValue(&liqEl, "amount", m_amount);
192 KisDomUtils::saveValue(&liqEl, "spacing", m_spacing);
193 KisDomUtils::saveValue(&liqEl, "sizeHasPressure", m_sizeHasPressure);
194 KisDomUtils::saveValue(&liqEl, "amountHasPressure", m_amountHasPressure);
195 KisDomUtils::saveValue(&liqEl, "reverseDirection", m_reverseDirection);
196 KisDomUtils::saveValue(&liqEl, "useWashMode", m_useWashMode);
197 KisDomUtils::saveValue(&liqEl, "flow", m_flow);
198 KisDomUtils::saveValue(&liqEl, "preserveShapeRotation", m_preserveShapeRotation);
199 KisDomUtils::saveValue(&liqEl, "preserveShapeScale", m_preserveShapeScale);
200 KisDomUtils::saveValue(&liqEl, "preserveShapeStretch", m_preserveShapeStretch);
201}
void saveValue(QDomElement *parent, const QString &tag, const QSize &size)

References m_amount, m_amountHasPressure, m_flow, m_mode, m_preserveShapeRotation, m_preserveShapeScale, m_preserveShapeStretch, m_reverseDirection, m_size, m_sizeHasPressure, m_spacing, m_useWashMode, and KisDomUtils::saveValue().

◆ useWashMode()

bool KisLiquifyProperties::useWashMode ( ) const
inline

Definition at line 115 of file kis_liquify_properties.h.

115 {
116 return m_useWashMode;
117 }

Member Data Documentation

◆ m_amount

qreal KisLiquifyProperties::m_amount
private

Definition at line 161 of file kis_liquify_properties.h.

◆ m_amountHasPressure

bool KisLiquifyProperties::m_amountHasPressure
private

Definition at line 164 of file kis_liquify_properties.h.

◆ m_flow

qreal KisLiquifyProperties::m_flow
private

Definition at line 168 of file kis_liquify_properties.h.

◆ m_mode

LiquifyMode KisLiquifyProperties::m_mode
private

Definition at line 159 of file kis_liquify_properties.h.

◆ m_preserveShapeRotation

bool KisLiquifyProperties::m_preserveShapeRotation
private

Definition at line 169 of file kis_liquify_properties.h.

◆ m_preserveShapeScale

bool KisLiquifyProperties::m_preserveShapeScale
private

Definition at line 170 of file kis_liquify_properties.h.

◆ m_preserveShapeStretch

bool KisLiquifyProperties::m_preserveShapeStretch
private

Definition at line 171 of file kis_liquify_properties.h.

◆ m_reverseDirection

bool KisLiquifyProperties::m_reverseDirection
private

Definition at line 165 of file kis_liquify_properties.h.

◆ m_size

qreal KisLiquifyProperties::m_size
private

Definition at line 160 of file kis_liquify_properties.h.

◆ m_sizeHasPressure

bool KisLiquifyProperties::m_sizeHasPressure
private

Definition at line 163 of file kis_liquify_properties.h.

◆ m_spacing

qreal KisLiquifyProperties::m_spacing
private

Definition at line 162 of file kis_liquify_properties.h.

◆ m_useWashMode

bool KisLiquifyProperties::m_useWashMode
private

Definition at line 167 of file kis_liquify_properties.h.


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