File indexing completed on 2024-05-12 04:20:33
0001 /* 0002 * SPDX-FileCopyrightText: 2001-2015 Klaralvdalens Datakonsult AB. All rights reserved. 0003 * 0004 * This file is part of the KD Chart library. 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "KChartGridAttributes.h" 0010 0011 #include "KChartMath_p.h" 0012 0013 #include <QPen> 0014 #include <QDebug> 0015 0016 #define d d_func() 0017 0018 using namespace KChart; 0019 0020 class Q_DECL_HIDDEN GridAttributes::Private 0021 { 0022 friend class GridAttributes; 0023 public: 0024 Private(); 0025 private: 0026 bool visible; 0027 KChartEnums::GranularitySequence sequence; 0028 bool linesOnAnnotations; 0029 qreal stepWidth; 0030 qreal subStepWidth; 0031 bool adjustLower; 0032 bool adjustUpper; 0033 QPen pen; 0034 bool subVisible; 0035 QPen subPen; 0036 bool outerVisible; 0037 QPen zeroPen; 0038 }; 0039 0040 GridAttributes::Private::Private() 0041 : visible( true ), 0042 sequence( KChartEnums::GranularitySequence_10_20 ), 0043 linesOnAnnotations( false ), 0044 stepWidth( 0.0 ), 0045 subStepWidth( 0.0 ), 0046 adjustLower( true ), 0047 adjustUpper( true ), 0048 pen( QColor(0xa0, 0xa0, 0xa0 ) ), 0049 subVisible( true ), 0050 subPen( QColor(0xd0, 0xd0, 0xd0 ) ), 0051 outerVisible( true ), 0052 zeroPen( QColor( 0x00, 0x00, 0x80 ) ) 0053 { 0054 pen.setCapStyle( Qt::FlatCap ); 0055 subPen.setCapStyle( Qt::FlatCap ); 0056 zeroPen.setCapStyle( Qt::FlatCap ); 0057 } 0058 0059 0060 GridAttributes::GridAttributes() 0061 : _d( new Private() ) 0062 { 0063 // this block left empty intentionally 0064 } 0065 0066 GridAttributes::GridAttributes( const GridAttributes& r ) 0067 : _d( new Private( *r.d ) ) 0068 { 0069 } 0070 0071 GridAttributes & GridAttributes::operator=( const GridAttributes& r ) 0072 { 0073 if ( this == &r ) 0074 return *this; 0075 0076 *d = *r.d; 0077 0078 return *this; 0079 } 0080 0081 GridAttributes::~GridAttributes() 0082 { 0083 delete _d; _d = nullptr; 0084 } 0085 0086 0087 bool GridAttributes::operator==( const GridAttributes& r ) const 0088 { 0089 return isGridVisible() == r.isGridVisible() && 0090 gridGranularitySequence() == r.gridGranularitySequence() && 0091 linesOnAnnotations() == r.linesOnAnnotations() && 0092 adjustLowerBoundToGrid() == r.adjustLowerBoundToGrid() && 0093 adjustUpperBoundToGrid() == r.adjustUpperBoundToGrid() && 0094 gridPen() == r.gridPen() && 0095 isSubGridVisible() == r.isSubGridVisible() && 0096 subGridPen() == r.subGridPen() && 0097 isOuterLinesVisible() == r.isOuterLinesVisible() && 0098 zeroLinePen() == r.zeroLinePen(); 0099 } 0100 0101 0102 void GridAttributes::setGridVisible( bool visible ) 0103 { 0104 d->visible = visible; 0105 } 0106 0107 bool GridAttributes::isGridVisible() const 0108 { 0109 return d->visible; 0110 } 0111 0112 void GridAttributes::setLinesOnAnnotations( bool b ) 0113 { 0114 d->linesOnAnnotations = b; 0115 } 0116 0117 bool GridAttributes::linesOnAnnotations() const 0118 { 0119 return d->linesOnAnnotations; 0120 } 0121 0122 void GridAttributes::setGridStepWidth( qreal stepWidth ) 0123 { 0124 d->stepWidth = stepWidth; 0125 } 0126 0127 qreal GridAttributes::gridStepWidth() const 0128 { 0129 return d->stepWidth; 0130 } 0131 0132 0133 0134 void GridAttributes::setGridSubStepWidth( qreal subStepWidth ) 0135 { 0136 d->subStepWidth = subStepWidth; 0137 } 0138 0139 qreal GridAttributes::gridSubStepWidth() const 0140 { 0141 return d->subStepWidth; 0142 } 0143 0144 void GridAttributes::setGridGranularitySequence( KChartEnums::GranularitySequence sequence ) 0145 { 0146 d->sequence = sequence; 0147 } 0148 0149 KChartEnums::GranularitySequence GridAttributes::gridGranularitySequence() const 0150 { 0151 return d->sequence; 0152 } 0153 0154 void GridAttributes::setAdjustBoundsToGrid( bool adjustLower, bool adjustUpper ) 0155 { 0156 d->adjustLower = adjustLower; 0157 d->adjustUpper = adjustUpper; 0158 } 0159 bool GridAttributes::adjustLowerBoundToGrid() const 0160 { 0161 return d->adjustLower; 0162 } 0163 bool GridAttributes::adjustUpperBoundToGrid() const 0164 { 0165 return d->adjustUpper; 0166 } 0167 0168 void GridAttributes::setGridPen( const QPen & pen ) 0169 { 0170 d->pen = pen; 0171 d->pen.setCapStyle( Qt::FlatCap ); 0172 } 0173 0174 QPen GridAttributes::gridPen() const 0175 { 0176 return d->pen; 0177 } 0178 0179 void GridAttributes::setSubGridVisible( bool visible ) 0180 { 0181 d->subVisible = visible; 0182 } 0183 0184 bool GridAttributes::isSubGridVisible() const 0185 { 0186 return d->subVisible; 0187 } 0188 0189 void GridAttributes::setSubGridPen( const QPen & pen ) 0190 { 0191 d->subPen = pen; 0192 d->subPen.setCapStyle( Qt::FlatCap ); 0193 } 0194 0195 QPen GridAttributes::subGridPen() const 0196 { 0197 return d->subPen; 0198 } 0199 0200 void GridAttributes::setOuterLinesVisible( bool visible ) 0201 { 0202 d->outerVisible = visible; 0203 } 0204 0205 bool GridAttributes::isOuterLinesVisible() const 0206 { 0207 return d->outerVisible; 0208 } 0209 0210 void GridAttributes::setZeroLinePen( const QPen & pen ) 0211 { 0212 d->zeroPen = pen; 0213 d->zeroPen.setCapStyle( Qt::FlatCap ); 0214 } 0215 0216 QPen GridAttributes::zeroLinePen() const 0217 { 0218 return d->zeroPen; 0219 } 0220 0221 #if !defined(QT_NO_DEBUG_STREAM) 0222 QDebug operator<<(QDebug dbg, const KChart::GridAttributes& a) 0223 { 0224 dbg << "KChart::GridAttributes(" 0225 << "visible="<<a.isGridVisible() 0226 << "subVisible="<<a.isSubGridVisible() 0227 // KChartEnums::GranularitySequence sequence; 0228 << "stepWidth=" << a.gridStepWidth() 0229 << "subStepWidth=" << a.gridSubStepWidth() 0230 << "pen="<<a.gridPen() 0231 << "subPen="<<a.subGridPen() 0232 << "zeroPen="<<a.zeroLinePen() 0233 << ")"; 0234 return dbg; 0235 } 0236 #endif /* QT_NO_DEBUG_STREAM */ 0237