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

#include <kis_guides_config.h>

+ Inheritance diagram for KisGuidesConfig:

Public Types

enum  LineTypeInternal { LINE_SOLID = 0 , LINE_DASHED , LINE_DOTTED }
 

Public Member Functions

void addGuideLine (Qt::Orientation orientation, qreal position)
 Add a guide line to the canvas.
 
QColor guidesColor () const
 
LineTypeInternal guidesLineType () const
 
QPen guidesPen () const
 
bool hasGuides () const
 
bool hasSamePositionAs (const KisGuidesConfig &rhs) const
 
const QList< qreal > & horizontalGuideLines () const
 Returns the list of horizontal guide lines.
 
bool isDefault () const
 
 KisGuidesConfig ()
 
 KisGuidesConfig (const KisGuidesConfig &rhs)
 
bool loadFromXml (const QDomElement &parent)
 
void loadStaticData ()
 
bool lockGuides () const
 
KisGuidesConfigoperator= (const KisGuidesConfig &rhs)
 
bool operator== (const KisGuidesConfig &rhs) const
 
bool operator== (const Private &rhs)
 
void removeAllGuides ()
 
bool rulersMultiple2 () const
 
void saveStaticData () const
 
QDomElement saveToXml (QDomDocument &doc, const QString &tag) const
 
void setGuidesColor (const QColor &value)
 
void setGuidesLineType (LineTypeInternal value)
 
void setHorizontalGuideLines (const QList< qreal > &lines)
 Set the positions of the horizontal guide lines.
 
void setLockGuides (bool value)
 
void setRulersMultiple2 (bool value)
 
void setShowGuides (bool value)
 
void setSnapToGuides (bool value)
 
void setUnitType (KoUnit::Type type)
 
void setVerticalGuideLines (const QList< qreal > &lines)
 Set the positions of the vertical guide lines.
 
bool showGuides () const
 
bool snapToGuides () const
 
Qt::PenStyle toPenStyle (LineTypeInternal type)
 
void transform (const QTransform &transform)
 
KoUnit::Type unitType () const
 
const QList< qreal > & verticalGuideLines () const
 Returns the list of vertical guide lines.
 
 ~KisGuidesConfig ()
 

Public Attributes

QColor guidesColor
 
LineTypeInternal guidesLineType {LINE_SOLID}
 
QList< qreal > horzGuideLines
 
bool lockGuides {false}
 
bool rulersMultiple2 {false}
 
bool showGuides {false}
 
bool snapToGuides {false}
 
KoUnit::Type unitType {KoUnit::Pixel}
 
QList< qreal > vertGuideLines
 

Private Attributes

const QScopedPointer< Privated
 
- Private Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Additional Inherited Members

- Private Member Functions inherited from Private
 Private (KisCanvas2 *c)
 

Detailed Description

Definition at line 25 of file kis_guides_config.cpp.

Member Enumeration Documentation

◆ LineTypeInternal

Enumerator
LINE_SOLID 
LINE_DASHED 
LINE_DOTTED 

Definition at line 27 of file kis_guides_config.h.

Constructor & Destructor Documentation

◆ KisGuidesConfig() [1/2]

KisGuidesConfig::KisGuidesConfig ( )

Definition at line 57 of file kis_guides_config.cpp.

58 : d(new Private())
59{
61}
const QScopedPointer< Private > d

References loadStaticData().

◆ ~KisGuidesConfig()

KisGuidesConfig::~KisGuidesConfig ( )

Definition at line 63 of file kis_guides_config.cpp.

64{
65}

◆ KisGuidesConfig() [2/2]

KisGuidesConfig::KisGuidesConfig ( const KisGuidesConfig & rhs)

Definition at line 67 of file kis_guides_config.cpp.

68 : d(new Private(*rhs.d))
69{
70}

Member Function Documentation

◆ addGuideLine()

void KisGuidesConfig::addGuideLine ( Qt::Orientation orientation,
qreal position )

Add a guide line to the canvas.

Parameters
orientationthe orientation of the guide line
positionthe position in document coordinates of the guide line

Definition at line 102 of file kis_guides_config.cpp.

103{
104 if (o == Qt::Horizontal) {
105 d->horzGuideLines.append(pos);
106 } else {
107 d->vertGuideLines.append(pos);
108 }
109}

References d.

◆ guidesColor()

QColor KisGuidesConfig::guidesColor ( ) const

◆ guidesLineType()

LineTypeInternal KisGuidesConfig::guidesLineType ( ) const

◆ guidesPen()

QPen KisGuidesConfig::guidesPen ( ) const

Definition at line 197 of file kis_guides_config.cpp.

198{
199 return QPen(d->guidesColor, 0, d->toPenStyle(d->guidesLineType));
200}

References d.

◆ hasGuides()

bool KisGuidesConfig::hasGuides ( ) const

Definition at line 212 of file kis_guides_config.cpp.

213{
214 return !d->horzGuideLines.isEmpty() || !d->vertGuideLines.isEmpty();
215}

References d.

◆ hasSamePositionAs()

bool KisGuidesConfig::hasSamePositionAs ( const KisGuidesConfig & rhs) const

Definition at line 86 of file kis_guides_config.cpp.

87{
90}
const QList< qreal > & verticalGuideLines() const
Returns the list of vertical guide lines.
const QList< qreal > & horizontalGuideLines() const
Returns the list of horizontal guide lines.

References horizontalGuideLines(), and verticalGuideLines().

◆ horizontalGuideLines()

const QList< qreal > & KisGuidesConfig::horizontalGuideLines ( ) const

Returns the list of horizontal guide lines.

Definition at line 202 of file kis_guides_config.cpp.

203{
204 return d->horzGuideLines;
205}

References d.

◆ isDefault()

bool KisGuidesConfig::isDefault ( ) const

Definition at line 289 of file kis_guides_config.cpp.

290{
291 KisGuidesConfig defaultObject;
292 defaultObject.loadStaticData();
293
294 return *this == defaultObject;
295}

References loadStaticData().

◆ loadFromXml()

bool KisGuidesConfig::loadFromXml ( const QDomElement & parent)

Definition at line 250 of file kis_guides_config.cpp.

251{
252 KisConfig cfg(false);
253 bool result = true;
254
255 result &= KisDomUtils::loadValue(parent, "showGuides", &d->showGuides);
256 result &= KisDomUtils::loadValue(parent, "snapToGuides", &d->snapToGuides);
257 result &= KisDomUtils::loadValue(parent, "lockGuides", &d->lockGuides);
258
259 QVector<qreal> hGuides;
260 QVector<qreal> vGuides;
261
262 result &= KisDomUtils::loadValue(parent, "horizontalGuides", &hGuides);
263 result &= KisDomUtils::loadValue(parent, "verticalGuides", &vGuides);
264
265 d->horzGuideLines = QList<qreal>::fromVector(hGuides);
266 d->vertGuideLines = QList<qreal>::fromVector(vGuides);
267
268 result &= KisDomUtils::loadValue(parent, "rulersMultiple2", &d->rulersMultiple2);
269 QString unit;
270 result &= KisDomUtils::loadValue(parent, "unit", &unit);
271 bool ok = false;
272 KoUnit tmp = KoUnit::fromSymbol(unit, &ok);
273 if (ok) {
274 d->unitType = tmp.type();
275 }
276 result &= ok;
277
278 // following variables may not be present in older files; do not update result variable
279 int guidesLineType = cfg.guidesLineStyle();
280 KisDomUtils::loadValue(parent, "lineTypeGuides", &guidesLineType);
281 d->guidesLineType = LineTypeInternal(guidesLineType);
282
283 d->guidesColor = cfg.guidesColor();
284 KisDomUtils::loadValue(parent, "colorGuides", &d->guidesColor);
285
286 return result;
287}
LineTypeInternal guidesLineType
static KoUnit fromSymbol(const QString &symbol, bool *ok=0)
Definition KoUnit.cpp:271
bool loadValue(const QDomElement &e, float *v)

References d, KoUnit::fromSymbol(), KisConfig::guidesColor(), KisConfig::guidesLineStyle(), guidesLineType, and KisDomUtils::loadValue().

◆ loadStaticData()

void KisGuidesConfig::loadStaticData ( )

Definition at line 217 of file kis_guides_config.cpp.

218{
219 KisConfig cfg(true);
220 d->guidesLineType = LineTypeInternal(cfg.guidesLineStyle());
221 d->guidesColor = cfg.guidesColor();
222}

References d, KisConfig::guidesColor(), and KisConfig::guidesLineStyle().

◆ lockGuides()

bool KisGuidesConfig::lockGuides ( ) const

◆ operator=()

KisGuidesConfig & KisGuidesConfig::operator= ( const KisGuidesConfig & rhs)

Definition at line 72 of file kis_guides_config.cpp.

73{
74 if (&rhs != this) {
75 *d = *rhs.d;
76 }
77
78 return *this;
79}

References d.

◆ operator==() [1/2]

bool KisGuidesConfig::operator== ( const KisGuidesConfig & rhs) const

Definition at line 81 of file kis_guides_config.cpp.

82{
83 return *d == *rhs.d;
84}

References d.

◆ operator==() [2/2]

bool KisGuidesConfig::operator== ( const Private & rhs)
inline

Definition at line 29 of file kis_guides_config.cpp.

29 {
30 return horzGuideLines == rhs.horzGuideLines &&
31 vertGuideLines == rhs.vertGuideLines &&
32 showGuides == rhs.showGuides &&
33 snapToGuides == rhs.snapToGuides &&
34 lockGuides == rhs.lockGuides &&
35 guidesColor == rhs.guidesColor &&
36 guidesLineType == rhs.guidesLineType &&
37 rulersMultiple2 == rhs.rulersMultiple2 &&
38 unitType == rhs.unitType;
39 }
QList< qreal > vertGuideLines
QList< qreal > horzGuideLines

◆ removeAllGuides()

void KisGuidesConfig::removeAllGuides ( )

Definition at line 111 of file kis_guides_config.cpp.

112{
113 QList<qreal> emptyGuides ;
114 setVerticalGuideLines(emptyGuides);
115 setHorizontalGuideLines(emptyGuides);
116}
void setHorizontalGuideLines(const QList< qreal > &lines)
Set the positions of the horizontal guide lines.
void setVerticalGuideLines(const QList< qreal > &lines)
Set the positions of the vertical guide lines.

References setHorizontalGuideLines(), and setVerticalGuideLines().

◆ rulersMultiple2()

bool KisGuidesConfig::rulersMultiple2 ( ) const

◆ saveStaticData()

void KisGuidesConfig::saveStaticData ( ) const

Definition at line 224 of file kis_guides_config.cpp.

225{
226 KisConfig cfg(false);
227 cfg.setGuidesLineStyle(d->guidesLineType);
228 cfg.setGuidesColor(d->guidesColor);
229}

References d, KisConfig::setGuidesColor(), and KisConfig::setGuidesLineStyle().

◆ saveToXml()

QDomElement KisGuidesConfig::saveToXml ( QDomDocument & doc,
const QString & tag ) const

Definition at line 231 of file kis_guides_config.cpp.

232{
233 QDomElement guidesElement = doc.createElement(tag);
234 KisDomUtils::saveValue(&guidesElement, "showGuides", d->showGuides);
235 KisDomUtils::saveValue(&guidesElement, "snapToGuides", d->snapToGuides);
236 KisDomUtils::saveValue(&guidesElement, "lockGuides", d->lockGuides);
237 KisDomUtils::saveValue(&guidesElement, "colorGuides", d->guidesColor);
238 KisDomUtils::saveValue(&guidesElement, "lineTypeGuides", d->guidesLineType);
239
240 KisDomUtils::saveValue(&guidesElement, "horizontalGuides", d->horzGuideLines.toVector());
241 KisDomUtils::saveValue(&guidesElement, "verticalGuides", d->vertGuideLines.toVector());
242
243 KisDomUtils::saveValue(&guidesElement, "rulersMultiple2", d->rulersMultiple2);
244 KoUnit tmp(d->unitType);
245 KisDomUtils::saveValue(&guidesElement, "unit", tmp.symbol());
246
247 return guidesElement;
248}
void saveValue(QDomElement *parent, const QString &tag, const QSize &size)

References d, and KisDomUtils::saveValue().

◆ setGuidesColor()

void KisGuidesConfig::setGuidesColor ( const QColor & value)

Definition at line 185 of file kis_guides_config.cpp.

186{
187 d->guidesColor = value;
188}
float value(const T *src, size_t ch)

References d, and value().

◆ setGuidesLineType()

void KisGuidesConfig::setGuidesLineType ( LineTypeInternal value)

Definition at line 174 of file kis_guides_config.cpp.

175{
176 d->guidesLineType = value;
177}

References d, and value().

◆ setHorizontalGuideLines()

void KisGuidesConfig::setHorizontalGuideLines ( const QList< qreal > & lines)

Set the positions of the horizontal guide lines.

Parameters
linesa list of positions of the horizontal guide lines

Definition at line 92 of file kis_guides_config.cpp.

93{
94 d->horzGuideLines = lines;
95}

References d.

◆ setLockGuides()

void KisGuidesConfig::setLockGuides ( bool value)

Definition at line 133 of file kis_guides_config.cpp.

134{
135 d->lockGuides = value;
136}

References d, and value().

◆ setRulersMultiple2()

void KisGuidesConfig::setRulersMultiple2 ( bool value)

Definition at line 153 of file kis_guides_config.cpp.

154{
155 d->rulersMultiple2 = value;
156}

References d, and value().

◆ setShowGuides()

void KisGuidesConfig::setShowGuides ( bool value)

Definition at line 123 of file kis_guides_config.cpp.

124{
125 d->showGuides = value;
126}

References d, and value().

◆ setSnapToGuides()

void KisGuidesConfig::setSnapToGuides ( bool value)

Definition at line 143 of file kis_guides_config.cpp.

144{
145 d->snapToGuides = value;
146}

References d, and value().

◆ setUnitType()

void KisGuidesConfig::setUnitType ( KoUnit::Type type)

Definition at line 163 of file kis_guides_config.cpp.

164{
165 d->unitType = type;
166}

References d.

◆ setVerticalGuideLines()

void KisGuidesConfig::setVerticalGuideLines ( const QList< qreal > & lines)

Set the positions of the vertical guide lines.

Parameters
linesa list of positions of the vertical guide lines

Definition at line 97 of file kis_guides_config.cpp.

98{
99 d->vertGuideLines = lines;
100}

References d.

◆ showGuides()

bool KisGuidesConfig::showGuides ( ) const

◆ snapToGuides()

bool KisGuidesConfig::snapToGuides ( ) const

◆ toPenStyle()

Qt::PenStyle KisGuidesConfig::toPenStyle ( LineTypeInternal type)

◆ transform()

void KisGuidesConfig::transform ( const QTransform & transform)

Transform the guides using the given transform. Please note that transform should be in 'document' coordinate system. Used with image-wide transformations.

Definition at line 297 of file kis_guides_config.cpp.

298{
299 if (transform.type() >= QTransform::TxShear) return;
300
302
303 QTransform t = m.scaleTransform();
304
305 const qreal eps = 1e-3;
306 int numWraps = 0;
307 const qreal wrappedRotation = KisAlgebra2D::wrapValue(m.angle, 90.0);
308 if (wrappedRotation <= eps || wrappedRotation >= 90.0 - eps) {
309 t *= m.rotateTransform();
310 numWraps = qRound(normalizeAngleDegrees(m.angle) / 90.0);
311 }
312
313 t *= m.translateTransform();
314
315
316 QList<qreal> newHorzGuideLines;
317 QList<qreal> newVertGuideLines;
318
319 Q_FOREACH (qreal hRuler, d->horzGuideLines) {
320 const QPointF pt = t.map(QPointF(0, hRuler));
321
322 if (numWraps & 0x1) {
323 newVertGuideLines << pt.x();
324 } else {
325 newHorzGuideLines << pt.y();
326 }
327 }
328
329 Q_FOREACH (qreal vRuler, d->vertGuideLines) {
330 const QPointF pt = t.map(QPointF(vRuler, 0));
331
332 if (!(numWraps & 0x1)) {
333 newVertGuideLines << pt.x();
334 } else {
335 newHorzGuideLines << pt.y();
336 }
337 }
338
339 d->horzGuideLines = newHorzGuideLines;
340 d->vertGuideLines = newVertGuideLines;
341}
void transform(const QTransform &transform)
const qreal eps
std::enable_if< std::is_floating_point< T >::value, T >::type normalizeAngleDegrees(T a)
Definition kis_global.h:132
T wrapValue(T value, T wrapBounds)

References KisAlgebra2D::DecomposedMatrix::angle, d, eps, normalizeAngleDegrees(), KisAlgebra2D::DecomposedMatrix::rotateTransform(), KisAlgebra2D::DecomposedMatrix::scaleTransform(), transform(), KisAlgebra2D::DecomposedMatrix::translateTransform(), and KisAlgebra2D::wrapValue().

◆ unitType()

KoUnit::Type KisGuidesConfig::unitType ( ) const

◆ verticalGuideLines()

const QList< qreal > & KisGuidesConfig::verticalGuideLines ( ) const

Returns the list of vertical guide lines.

Definition at line 207 of file kis_guides_config.cpp.

208{
209 return d->vertGuideLines;
210}

References d.

Member Data Documentation

◆ d

const QScopedPointer<Private> KisGuidesConfig::d
private

Definition at line 109 of file kis_guides_config.h.

◆ guidesColor

QColor KisGuidesConfig::guidesColor

Definition at line 51 of file kis_guides_config.cpp.

◆ guidesLineType

KisGuidesConfig::LineTypeInternal KisGuidesConfig::guidesLineType {LINE_SOLID}

Definition at line 52 of file kis_guides_config.cpp.

◆ horzGuideLines

QList<qreal> KisGuidesConfig::horzGuideLines

Definition at line 41 of file kis_guides_config.cpp.

◆ lockGuides

bool KisGuidesConfig::lockGuides {false}

Definition at line 46 of file kis_guides_config.cpp.

46{false};

◆ rulersMultiple2

bool KisGuidesConfig::rulersMultiple2 {false}

Definition at line 47 of file kis_guides_config.cpp.

47{false};

◆ showGuides

bool KisGuidesConfig::showGuides {false}

Definition at line 44 of file kis_guides_config.cpp.

44{false};

◆ snapToGuides

bool KisGuidesConfig::snapToGuides {false}

Definition at line 45 of file kis_guides_config.cpp.

45{false};

◆ unitType

KoUnit::Type KisGuidesConfig::unitType {KoUnit::Pixel}

Definition at line 49 of file kis_guides_config.cpp.

@ Pixel
Definition KoUnit.h:82

◆ vertGuideLines

QList<qreal> KisGuidesConfig::vertGuideLines

Definition at line 42 of file kis_guides_config.cpp.


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