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 */