File indexing completed on 2024-05-12 04:20:35
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 "KChartMarkerAttributes.h" 0010 0011 #include "KChartMath_p.h" 0012 0013 #include <QColor> 0014 #include <QMap> 0015 #include <QPen> 0016 #include <QPainterPath> 0017 #include <QSizeF> 0018 #include <QDebug> 0019 #include <qglobal.h> 0020 0021 using namespace KChart; 0022 0023 class Q_DECL_HIDDEN MarkerAttributes::Private 0024 { 0025 friend class ::KChart::MarkerAttributes; 0026 public: 0027 Private(); 0028 private: 0029 bool visible; 0030 bool threeD; 0031 QMap<uint,uint> markerStylesMap; 0032 uint markerStyle; 0033 MarkerSizeMode markerSizeMode; 0034 QSizeF markerSize; 0035 QColor markerColor; 0036 QPainterPath customMarkerPath; 0037 QPen markerPen; 0038 }; 0039 0040 MarkerAttributes::Private::Private() 0041 : visible( false ), 0042 threeD( false ), 0043 markerStyle( MarkerSquare ), 0044 markerSizeMode( AbsoluteSize ), 0045 markerSize( 10, 10 ), 0046 markerPen( Qt::black ) 0047 { 0048 } 0049 0050 0051 MarkerAttributes::MarkerAttributes() 0052 : _d( new Private ) 0053 { 0054 0055 } 0056 0057 MarkerAttributes::MarkerAttributes( const MarkerAttributes& r ) 0058 : _d( new Private( *r._d ) ) 0059 { 0060 0061 } 0062 0063 MarkerAttributes & MarkerAttributes::operator=( const MarkerAttributes& r ) 0064 { 0065 MarkerAttributes copy( r ); 0066 copy.swap( *this ); 0067 return *this; 0068 } 0069 0070 MarkerAttributes::~MarkerAttributes() 0071 { 0072 delete _d; _d = nullptr; 0073 } 0074 0075 #define d d_func() 0076 0077 bool MarkerAttributes::operator==( const MarkerAttributes& r ) const 0078 { 0079 /* 0080 qDebug() << "MarkerAttributes::operator== finds" 0081 << "b" << (isVisible() == r.isVisible()) 0082 << "c" << (markerStylesMap() == r.markerStylesMap()) 0083 << "d" << (markerStyle() == r.markerStyle()) << markerStyle() <<r.markerStyle() 0084 << "e" << (markerSize() == r.markerSize()) 0085 << "f" << (markerColor() == r.markerColor()) 0086 << "p" << (customMarkerPath() == r.customMarkerPath()) 0087 << "g" << (pen() == r.pen()) 0088 << "h" << (markerColor() == r.markerColor()) << markerColor() << r.markerColor(); 0089 */ 0090 return ( isVisible() == r.isVisible() && 0091 markerStylesMap() == r.markerStylesMap() && 0092 markerStyle() == r.markerStyle() && 0093 markerStyle() == r.markerStyle() && 0094 markerSizeMode() == r.markerSizeMode() && 0095 markerColor() == r.markerColor() && 0096 customMarkerPath() == r.customMarkerPath() && 0097 pen() == r.pen() ); 0098 } 0099 0100 0101 0102 void MarkerAttributes::setVisible( bool visible ) 0103 { 0104 d->visible = visible; 0105 } 0106 0107 bool MarkerAttributes::isVisible() const 0108 { 0109 return d->visible; 0110 } 0111 0112 void MarkerAttributes::setThreeD( bool value ) 0113 { 0114 d->threeD = value; 0115 } 0116 0117 bool MarkerAttributes::threeD() const 0118 { 0119 return d->threeD; 0120 } 0121 0122 void MarkerAttributes::setMarkerStylesMap( const MarkerStylesMap & map ) 0123 { 0124 d->markerStylesMap = map; 0125 } 0126 0127 MarkerAttributes::MarkerStylesMap MarkerAttributes::markerStylesMap() const 0128 { 0129 return d->markerStylesMap; 0130 } 0131 0132 void MarkerAttributes::setMarkerStyle( uint style ) 0133 { 0134 d->markerStyle = style; 0135 } 0136 0137 uint MarkerAttributes::markerStyle() const 0138 { 0139 return d->markerStyle; 0140 } 0141 0142 void MarkerAttributes::setMarkerSize( const QSizeF& size ) 0143 { 0144 d->markerSize = size; 0145 } 0146 0147 QSizeF MarkerAttributes::markerSize() const 0148 { 0149 return d->markerSize; 0150 } 0151 0152 void MarkerAttributes::setMarkerSizeMode( MarkerSizeMode mode ) 0153 { 0154 d->markerSizeMode = mode; 0155 } 0156 0157 MarkerAttributes::MarkerSizeMode MarkerAttributes::markerSizeMode() const 0158 { 0159 return d->markerSizeMode; 0160 } 0161 0162 0163 void MarkerAttributes::setMarkerColor( const QColor& color ) 0164 { 0165 d->markerColor = color; 0166 } 0167 0168 QColor MarkerAttributes::markerColor() const 0169 { 0170 return d->markerColor; 0171 } 0172 0173 void MarkerAttributes::setCustomMarkerPath( const QPainterPath& path ) 0174 { 0175 d->customMarkerPath = path; 0176 } 0177 0178 QPainterPath MarkerAttributes::customMarkerPath() const 0179 { 0180 return d->customMarkerPath; 0181 } 0182 0183 void MarkerAttributes::setPen( const QPen& pen ) 0184 { 0185 d->markerPen = pen; 0186 } 0187 0188 QPen MarkerAttributes::pen() const 0189 { 0190 return d->markerPen; 0191 } 0192 0193 #undef d 0194 0195 #ifndef QT_NO_DEBUG_STREAM 0196 QDebug operator<<( QDebug dbg, const MarkerAttributes & ma ) { 0197 return dbg << "KChart::MarkerAttributes(" 0198 << "visible=" << ma.isVisible() 0199 << "markerStylesMap=" << ma.markerStylesMap() 0200 << "markerStyle=" << ma.markerStyle() 0201 << "markerColor=" << ma.markerColor() 0202 << "customMarkerPath=" << ma.customMarkerPath() 0203 << "pen=" << ma.pen() 0204 << ")"; 0205 } 0206 #endif 0207