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 "KChartLineAttributes.h" 0010 0011 #include "KChartMath_p.h" 0012 0013 #include <QDebug> 0014 0015 #define d d_func() 0016 0017 using namespace KChart; 0018 0019 class Q_DECL_HIDDEN LineAttributes::Private 0020 { 0021 friend class LineAttributes; 0022 public: 0023 Private(); 0024 0025 private: 0026 //Areas 0027 MissingValuesPolicy missingValuesPolicy; 0028 bool displayArea; 0029 bool visible; 0030 uint transparency; 0031 int areaBoundingDataset; 0032 }; 0033 0034 0035 LineAttributes::Private::Private() 0036 : missingValuesPolicy( MissingValuesAreBridged ) 0037 , displayArea( false ) 0038 , visible( true ) 0039 , transparency( 255 ) 0040 , areaBoundingDataset( -1 ) 0041 { 0042 } 0043 0044 0045 LineAttributes::LineAttributes() 0046 : _d( new Private() ) 0047 { 0048 } 0049 0050 LineAttributes::LineAttributes( const LineAttributes& r ) 0051 : _d( new Private( *r.d ) ) 0052 { 0053 } 0054 0055 LineAttributes& LineAttributes::operator= ( const LineAttributes& r ) 0056 { 0057 if ( this == &r ) 0058 return *this; 0059 0060 *d = *r.d; 0061 0062 return *this; 0063 } 0064 0065 LineAttributes::~LineAttributes() 0066 { 0067 delete _d; _d = nullptr; 0068 } 0069 0070 bool LineAttributes::operator==( const LineAttributes& r ) const 0071 { 0072 return 0073 missingValuesPolicy() == r.missingValuesPolicy() && 0074 displayArea() == r.displayArea() && 0075 isVisible() == r.isVisible() && 0076 transparency() == r.transparency() && 0077 areaBoundingDataset() == r.areaBoundingDataset(); 0078 } 0079 0080 void LineAttributes::setMissingValuesPolicy( MissingValuesPolicy policy ) 0081 { 0082 d->missingValuesPolicy = policy; 0083 } 0084 0085 LineAttributes::MissingValuesPolicy LineAttributes::missingValuesPolicy() const 0086 { 0087 return d->missingValuesPolicy; 0088 } 0089 0090 void LineAttributes::setDisplayArea( bool display ) 0091 { 0092 d->displayArea = display; 0093 } 0094 0095 bool LineAttributes::displayArea() const 0096 { 0097 return d->displayArea; 0098 } 0099 0100 void LineAttributes::setTransparency( uint alpha ) 0101 { 0102 if ( alpha > 255 ) 0103 alpha = 255; 0104 d->transparency = alpha; 0105 } 0106 0107 uint LineAttributes::transparency() const 0108 { 0109 return d->transparency; 0110 } 0111 0112 void LineAttributes::setAreaBoundingDataset( int dataset ) 0113 { 0114 d->areaBoundingDataset = dataset; 0115 } 0116 0117 int LineAttributes::areaBoundingDataset() const 0118 { 0119 return d->areaBoundingDataset; 0120 } 0121 0122 void LineAttributes::setVisible( bool visible ) 0123 { 0124 d->visible = visible; 0125 } 0126 0127 bool LineAttributes::isVisible() const 0128 { 0129 return d->visible; 0130 } 0131 0132 #if !defined(QT_NO_DEBUG_STREAM) 0133 QDebug operator<<(QDebug dbg, const KChart::LineAttributes& a) 0134 { 0135 dbg << "KChart::LineAttributes(" 0136 // MissingValuesPolicy missingValuesPolicy; 0137 << "bool="<<a.displayArea() 0138 << "visible="<<a.isVisible() 0139 << "transparency="<<a.transparency() 0140 << "areaBoundingDataset="<<a.areaBoundingDataset() 0141 << ")"; 0142 return dbg; 0143 0144 } 0145 #endif /* QT_NO_DEBUG_STREAM */