File indexing completed on 2025-02-23 04:09:02
0001 /* 0002 * SPDX-FileCopyrightText: 2019 Anna Medonosova <anna.medonosova@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 0008 #ifndef KISMIRRORAXISCONFIG_H 0009 #define KISMIRRORAXISCONFIG_H 0010 0011 #include <QScopedPointer> 0012 0013 #include "kritaui_export.h" 0014 #include <boost/operators.hpp> 0015 0016 class QDomElement; 0017 class QDomDocument; 0018 0019 /** 0020 * @brief The KisMirrorAxisConfig class stores configuration for the KisMirrorAxis 0021 * canvas decoration. Contents are saved to/loaded from KRA documents. 0022 */ 0023 0024 class KRITAUI_EXPORT KisMirrorAxisConfig : public QObject, boost::equality_comparable<KisMirrorAxisConfig> 0025 { 0026 Q_OBJECT 0027 0028 public: 0029 KisMirrorAxisConfig(); 0030 ~KisMirrorAxisConfig(); 0031 0032 KisMirrorAxisConfig(const KisMirrorAxisConfig &rhs); 0033 KisMirrorAxisConfig& operator=(const KisMirrorAxisConfig& rhs); 0034 bool operator==(const KisMirrorAxisConfig& rhs) const; 0035 0036 bool mirrorHorizontal() const; 0037 void setMirrorHorizontal(bool state); 0038 0039 bool mirrorVertical() const; 0040 void setMirrorVertical(bool state); 0041 0042 bool lockHorizontal() const; 0043 void setLockHorizontal(bool state); 0044 0045 bool lockVertical() const; 0046 void setLockVertical(bool state); 0047 0048 bool hideVerticalDecoration() const; 0049 void setHideVerticalDecoration(bool state); 0050 0051 bool hideHorizontalDecoration() const; 0052 void setHideHorizontalDecoration(bool state); 0053 0054 float handleSize() const; 0055 void setHandleSize(float size); 0056 0057 float horizontalHandlePosition() const; 0058 void setHorizontalHandlePosition(float position); 0059 0060 float verticalHandlePosition() const; 0061 void setVerticalHandlePosition(float position); 0062 0063 QPointF axisPosition() const; 0064 void setAxisPosition(QPointF position); 0065 0066 /** 0067 * @brief saveToXml() function for KisKraSaver 0068 * @param doc 0069 * @param tag 0070 * @return 0071 */ 0072 QDomElement saveToXml(QDomDocument& doc, const QString &tag) const; 0073 0074 /** 0075 * @brief loadFromXml() function for KisKraLoader 0076 * @param parent element 0077 * @return 0078 */ 0079 bool loadFromXml(const QDomElement &parent); 0080 0081 /** 0082 * @brief Check whether the config object was changed, or is the class default. 0083 * @return true, if the object is default; false, if the config was changed 0084 */ 0085 bool isDefault() const; 0086 0087 private: 0088 class Private; 0089 const QScopedPointer<Private> d; 0090 }; 0091 0092 #endif // KISMIRRORAXISCONFIG_H