00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <QMap>
00027
00028 #include "KDChartAbstractPieDiagram.h"
00029 #include "KDChartAbstractPieDiagram_p.h"
00030 #include "KDChartAttributesModel.h"
00031 #include "KDChartPieAttributes.h"
00032 #include "KDChartThreeDPieAttributes.h"
00033
00034 #include <KDABLibFakes>
00035
00036
00037 using namespace KDChart;
00038
00039 AbstractPieDiagram::Private::Private() :
00040 granularity( 1.0 )
00041 {
00042 }
00043
00044 AbstractPieDiagram::Private::~Private() {}
00045
00046 AbstractPieDiagram::AbstractPieDiagram( QWidget* parent, PolarCoordinatePlane *plane ) :
00047 AbstractPolarDiagram( new Private(), parent, plane )
00048 {
00049 init();
00050 }
00051
00052 AbstractPieDiagram::~AbstractPieDiagram()
00053 {
00054 }
00055
00056
00057 void AbstractPieDiagram::init()
00058 {
00059 }
00060
00061
00062 #define d d_func()
00063
00064 void AbstractPieDiagram::setGranularity( qreal value )
00065 {
00066 d->granularity = value;
00067 }
00068
00069 qreal AbstractPieDiagram::granularity() const
00070 {
00071 return (d->granularity < 0.05 || d->granularity > 36.0)
00072 ? 1.0
00073 : d->granularity;
00074 }
00075
00076
00077 void AbstractPieDiagram::setStartPosition( int degrees )
00078 {
00079 qWarning() << "Deprecated AbstractPieDiagram::setStartPosition() called, setting ignored.";
00080 }
00081
00082 int AbstractPieDiagram::startPosition() const
00083 {
00084 qWarning() << "Deprecated AbstractPieDiagram::startPosition() called.";
00085 return 0;
00086 }
00087
00088 void AbstractPieDiagram::setPieAttributes( const PieAttributes & attrs )
00089 {
00090 d->attributesModel->setModelData( qVariantFromValue( attrs ), PieAttributesRole );
00091 emit layoutChanged( this );
00092 }
00093
00094 void AbstractPieDiagram::setPieAttributes( int column, const PieAttributes & attrs )
00095 {
00096 d->attributesModel->setHeaderData(
00097 column, Qt::Vertical, qVariantFromValue( attrs ), PieAttributesRole );
00098 emit layoutChanged( this );
00099 }
00100
00101
00102
00103
00104 PieAttributes AbstractPieDiagram::pieAttributes() const
00105 {
00106 return qVariantValue<PieAttributes>(
00107 d->attributesModel->data( PieAttributesRole ) );
00108 }
00109
00110
00111
00112
00113 PieAttributes AbstractPieDiagram::pieAttributes( int column ) const
00114 {
00115 return qVariantValue<PieAttributes>(
00116 d->attributesModel->data(
00117 d->attributesModel->mapFromSource( columnToIndex( column ) ).column(),
00118 PieAttributesRole ) );
00119 }
00120
00121 PieAttributes AbstractPieDiagram::pieAttributes( const QModelIndex & index ) const
00122 {
00123 return qVariantValue<PieAttributes>(
00124 d->attributesModel->data(
00125 d->attributesModel->mapFromSource( index ),
00126 PieAttributesRole ) );
00127 }
00128
00129
00130 void AbstractPieDiagram::setThreeDPieAttributes( const ThreeDPieAttributes & tda )
00131 {
00132 d->attributesModel->setModelData( qVariantFromValue( tda ), ThreeDPieAttributesRole );
00133 emit layoutChanged( this );
00134 }
00135
00136 void AbstractPieDiagram::setThreeDPieAttributes( int column, const ThreeDPieAttributes & tda )
00137 {
00138 d->attributesModel->setHeaderData(
00139 column, Qt::Vertical, qVariantFromValue( tda ), ThreeDPieAttributesRole );
00140 emit layoutChanged( this );
00141 }
00142
00143 void AbstractPieDiagram::setThreeDPieAttributes( const QModelIndex & index, const ThreeDPieAttributes & tda )
00144 {
00145 model()->setData( index, qVariantFromValue( tda ), ThreeDPieAttributesRole );
00146 emit layoutChanged( this );
00147 }
00148
00149
00150
00151
00152 ThreeDPieAttributes AbstractPieDiagram::threeDPieAttributes() const
00153 {
00154 return qVariantValue<ThreeDPieAttributes>(
00155 d->attributesModel->data( ThreeDPieAttributesRole ) );
00156 }
00157
00158
00159
00160
00161 ThreeDPieAttributes AbstractPieDiagram::threeDPieAttributes( int column ) const
00162 {
00163 return qVariantValue<ThreeDPieAttributes>(
00164 d->attributesModel->data(
00165 d->attributesModel->mapFromSource( columnToIndex( column ) ).column(),
00166 ThreeDPieAttributesRole ) );
00167 }
00168
00169 ThreeDPieAttributes AbstractPieDiagram::threeDPieAttributes( const QModelIndex & index ) const
00170 {
00171 return qVariantValue<ThreeDPieAttributes>(
00172 d->attributesModel->data(
00173 d->attributesModel->mapFromSource( index ),
00174 ThreeDPieAttributesRole ) );
00175 }
00176