File indexing completed on 2024-05-26 04:33:56

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Agata Cacko <cacko.azh@gmail.com>
0003  *  SPDX-FileCopyrightText: 2009, 2010 Lukáš Tvrdý (lukast.dev@gmail.com)
0004  *
0005  *  SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 #ifndef KIS_GRID_OP_OPTION_DATA_H
0008 #define KIS_GRID_OP_OPTION_DATA_H
0009 
0010 
0011 #include "kis_types.h"
0012 #include <boost/operators.hpp>
0013 #include <kritapaintop_export.h>
0014 
0015 class KisPropertiesConfiguration;
0016 
0017 
0018 const QString DIAMETER = "Grid/diameter";
0019 const QString GRID_WIDTH = "Grid/gridWidth";
0020 const QString GRID_HEIGHT = "Grid/gridHeight";
0021 const QString HORIZONTAL_OFFSET = "Grid/horizontalOffset";
0022 const QString VERTICAL_OFFSET = "Grid/verticalOffset";
0023 const QString GRID_DIVISION_LEVEL = "Grid/divisionLevel";
0024 const QString GRID_PRESSURE_DIVISION = "Grid/pressureDivision";
0025 const QString GRID_SCALE = "Grid/scale";
0026 const QString GRID_VERTICAL_BORDER = "Grid/verticalBorder";
0027 const QString GRID_HORIZONTAL_BORDER = "Grid/horizontalBorder";
0028 const QString GRID_RANDOM_BORDER = "Grid/randomBorder";
0029 
0030 
0031 struct KisGridOpOptionData : boost::equality_comparable<KisGridOpOptionData>
0032 {   
0033     
0034     inline friend bool operator==(const KisGridOpOptionData &lhs, const KisGridOpOptionData &rhs) {
0035         return lhs.diameter == rhs.diameter
0036             && lhs.grid_width == rhs.grid_width
0037             && lhs.grid_height == rhs.grid_height
0038             
0039             && lhs.horizontal_offset == rhs.horizontal_offset
0040             && lhs.vertical_offset == rhs.vertical_offset
0041             && lhs.grid_division_level == rhs.grid_division_level
0042             
0043             && lhs.grid_pressure_division == rhs.grid_pressure_division
0044             && lhs.grid_scale == rhs.grid_scale
0045             && lhs.grid_vertical_border == rhs.grid_vertical_border
0046             
0047             && lhs.grid_horizontal_border == rhs.grid_horizontal_border
0048             && lhs.grid_random_border == rhs.grid_random_border
0049             ;
0050     }
0051 
0052     // sane defaults (for Coverity)
0053     int diameter {25};
0054     int grid_width {25};
0055     int grid_height {25};
0056     
0057     qreal horizontal_offset {0.0};
0058     qreal vertical_offset {0.0};
0059     int grid_division_level {2};
0060     
0061     bool grid_pressure_division {false};
0062     qreal grid_scale {1.0};
0063     qreal grid_vertical_border {0.0};
0064     
0065     qreal grid_horizontal_border {0.0};
0066     bool grid_random_border {false};
0067     
0068     // functions
0069     bool read(const KisPropertiesConfiguration *setting);
0070     void write(KisPropertiesConfiguration *setting) const;
0071     
0072 };
0073 
0074 #endif // KIS_GRID_OP_OPTION_DATA_H