File indexing completed on 2024-06-16 04:17:26
0001 /* 0002 * SPDX-FileCopyrightText: 2012 Dmitry Kazakov <dimula73@gmail.com> 0003 * SPDX-FileCopyrightText: 2014 Mohit Goyal <mohit.bits2011@gmail.com> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef __KIS_PRECISION_OPTION_H 0009 #define __KIS_PRECISION_OPTION_H 0010 0011 #include <QString> 0012 #include <kritapaintop_export.h> 0013 #include <kis_properties_configuration.h> 0014 0015 const QString PRECISION_LEVEL = "KisPrecisionOption/precisionLevel"; 0016 const QString AUTO_PRECISION_ENABLED = "KisPrecisionOption/AutoPrecisionEnabled"; 0017 const QString STARTING_SIZE = "KisPrecisionOption/SizeToStartFrom"; 0018 const QString DELTA_VALUE = "KisPrecisionOption/DeltaValue"; 0019 0020 0021 namespace KisBrushModel { 0022 struct PrecisionData : public boost::equality_comparable<PrecisionData> 0023 { 0024 int precisionLevel = 5; 0025 bool useAutoPrecision = false; 0026 0027 friend bool operator==(const PrecisionData &lhs, const PrecisionData &rhs); 0028 static PrecisionData read(const KisPropertiesConfiguration *config); 0029 void write(KisPropertiesConfiguration *config) const; 0030 }; 0031 } 0032 0033 class PAINTOP_EXPORT KisPrecisionOption 0034 { 0035 public: 0036 KisPrecisionOption(const KisPropertiesConfiguration *setting); 0037 0038 int effectivePrecisionLevel(qreal effectiveDabSize) const; 0039 void setHasImprecisePositionOptions(bool value); 0040 bool hasImprecisePositionOptions() const; 0041 0042 int precisionLevel() const; 0043 void setPrecisionLevel(int precisionLevel); 0044 void setAutoPrecisionEnabled(int); 0045 bool autoPrecisionEnabled(); 0046 0047 private: 0048 bool m_hasImprecisePositionOptions {false}; 0049 KisBrushModel::PrecisionData m_precisionData; 0050 }; 0051 0052 #endif /* __KIS_PRECISION_OPTION_H */