diff options
Diffstat (limited to 'src/piechart/qpieslice.cpp')
-rw-r--r-- | src/piechart/qpieslice.cpp | 789 |
1 files changed, 0 insertions, 789 deletions
diff --git a/src/piechart/qpieslice.cpp b/src/piechart/qpieslice.cpp deleted file mode 100644 index dac41100..00000000 --- a/src/piechart/qpieslice.cpp +++ /dev/null @@ -1,789 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Digia Plc -** All rights reserved. -** For any questions to Digia, please use contact form at http://qt.digia.com -** -** This file is part of the Qt Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. -** -** If you have questions regarding the use of this file, please use -** contact form at http://qt.digia.com -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qpieslice.h" -#include "qpieslice_p.h" - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -/*! - \class QPieSlice - \inmodule Qt Charts - \brief Defines a slice in pie series. - - This object defines the properties of a single slice in a QPieSeries. - - In addition to the obvious value and label properties the user can also control - the visual appearance of a slice. By modifying the visual appearance also means that - the user is overriding the default appearance set by the theme. - - Note that if the user has customized slices and theme is changed all customizations will be lost. - - To enable user interaction with the pie some basic signals are provided about clicking and hovering. -*/ - -#ifdef QDOC_QT5 -/*! - \qmltype PieSlice - \instantiates QPieSlice - \inqmlmodule QtCommercial.Chart - - \include doc/src/pieslice.qdocinc -*/ -#else -/*! - \qmlclass PieSlice QPieSlice - - \include ../doc/src/pieslice.qdocinc -*/ -#endif - -/*! - \enum QPieSlice::LabelPosition - - This enum describes the position of the slice label. - - \value LabelOutside Label is outside the slice with an arm. - \value LabelInsideHorizontal Label is centered inside the slice and laid out horizontally. - \value LabelInsideTangential Label is centered inside the slice and rotated to be parallel to the tangential of the slice's arc. - \value LabelInsideNormal Label is centered inside the slice rotated to be parallel to the normal of the slice's arc. - */ - -/*! - \property QPieSlice::label - Label of the slice. - \sa labelVisible, labelBrush, labelFont, labelArmLengthFactor -*/ -/*! - \qmlproperty string PieSlice::label - Label (text) of the slice. -*/ - -/*! - \fn void QPieSlice::labelChanged() - This signal emitted when the slice label has been changed. - \sa label -*/ -/*! - \qmlsignal PieSlice::onLabelChanged() - This signal emitted when the slice label has been changed. - \sa label -*/ - -/*! - \property QPieSlice::value - Value of the slice. - Note that if users sets a negative value it is converted to a positive value. - \sa percentage(), QPieSeries::sum() -*/ -/*! - \qmlproperty real PieSlice::value - Value of the slice. Note that if users sets a negative value it is converted to a positive value. -*/ - -/*! - \fn void QPieSlice::valueChanged() - This signal is emitted when the slice value changes. - \sa value -*/ -/*! - \qmlsignal PieSlice::onValueChanged() - This signal is emitted when the slice value changes. - \sa value -*/ - -/*! - \property QPieSlice::labelVisible - Defines the visibility of slice label. By default the label is not visible. - \sa label, labelBrush, labelFont, labelArmLengthFactor -*/ -/*! - \qmlproperty bool PieSlice::labelVisible - Defines the visibility of slice label. By default the label is not visible. -*/ - -/*! - \fn void QPieSlice::labelVisibleChanged() - This signal emitted when visibility of the slice label has changed. - \sa labelVisible -*/ -/*! - \qmlsignal PieSlice::onLabelVisibleChanged() - This signal emitted when visibility of the slice label has changed. - \sa labelVisible -*/ - -/*! - \property QPieSlice::exploded - If set to true the slice is "exploded" away from the pie. - \sa explodeDistanceFactor -*/ -/*! - \qmlproperty bool PieSlice::exploded - If set to true the slice is "exploded" away from the pie. - \sa explodeDistanceFactor -*/ - -/*! - \property QPieSlice::pen - Pen used to draw the slice border. -*/ - -/*! - \fn void QPieSlice::penChanged() - This signal is emitted when the pen of the slice has changed. - \sa pen -*/ - -/*! - \property QPieSlice::borderColor - Color used to draw the slice border. - This is a convenience property for modifying the slice pen. - \sa pen, borderWidth -*/ -/*! - \qmlproperty color PieSlice::borderColor - Color used to draw the slice border (pen color). - \sa borderWidth -*/ - -/*! - \fn void QPieSlice::borderColorChanged() - This signal is emitted when slice border color changes. - \sa pen, borderColor -*/ -/*! - \qmlsignal PieSlice::onBorderColorChanged() - This signal is emitted when slice border color changes. - \sa borderColor -*/ - -/*! - \property QPieSlice::borderWidth - Width of the slice border. - This is a convenience property for modifying the slice pen. - \sa pen, borderColor -*/ -/*! - \qmlproperty int PieSlice::borderWidth - Width of the slice border. - This is a convenience property for modifying the slice pen. - \sa borderColor -*/ - -/*! - \fn void QPieSlice::borderWidthChanged() - This signal is emitted when slice border width changes. - \sa pen, borderWidth -*/ -/*! - \qmlsignal PieSlice::onBorderWidthChanged() - This signal is emitted when slice border width changes. - \sa borderWidth -*/ - -/*! - \property QPieSlice::brush - Brush used to draw the slice. -*/ - -/*! - \fn void QPieSlice::brushChanged() - This signal is emitted when the brush of the slice has changed. - \sa brush -*/ - -/*! - \qmlproperty QString PieSlice::brushFilename - The name of the file used as a brush for the slice. -*/ - -/*! - \property QPieSlice::color - Fill (brush) color of the slice. - This is a convenience property for modifying the slice brush. - \sa brush -*/ -/*! - \qmlproperty color PieSlice::color - Fill (brush) color of the slice. -*/ - -/*! - \fn void QPieSlice::colorChanged() - This signal is emitted when slice color changes. - \sa brush -*/ -/*! - \qmlsignal PieSlice::onColorChanged() - This signal is emitted when slice color changes. -*/ - -/*! - \property QPieSlice::labelBrush - Brush used to draw label and label arm of the slice. - \sa label, labelVisible, labelFont, labelArmLengthFactor -*/ - -/*! - \fn void QPieSlice::labelBrushChanged() - This signal is emitted when the label brush of the slice has changed. - \sa labelBrush -*/ - -/*! - \property QPieSlice::labelColor - Color used to draw the slice label. - This is a convenience property for modifying the slice label brush. - \sa labelBrush -*/ -/*! - \qmlproperty color PieSlice::labelColor - Color used to draw the slice label. -*/ - -/*! - \fn void QPieSlice::labelColorChanged() - This signal is emitted when slice label color changes. - \sa labelColor -*/ -/*! - \qmlsignal PieSlice::onLabelColorChanged() - This signal is emitted when slice label color changes. - \sa labelColor -*/ - -/*! - \property QPieSlice::labelFont - Font used for drawing label text. - \sa label, labelVisible, labelArmLengthFactor -*/ - -/*! - \fn void QPieSlice::labelFontChanged() - This signal is emitted when the label font of the slice has changed. - \sa labelFont -*/ - -/*! - \qmlproperty Font PieSlice::labelFont - - Defines the font used for slice label. - - See the Qt documentation for more details of Font. - - \sa labelVisible, labelPosition -*/ - -/*! - \property QPieSlice::labelPosition - Position of the slice label. - \sa label, labelVisible -*/ -/*! - \qmlproperty LabelPosition PieSlice::labelPosition - Position of the slice label. One of PieSlice.LabelOutside, PieSlice.LabelInsideHorizontal, - PieSlice.LabelInsideTangential or PieSlice.LabelInsideNormal. By default the position is - PieSlice.LabelOutside. - \sa labelVisible -*/ - -/*! - \property QPieSlice::labelArmLengthFactor - Defines the length of the label arm. - The factor is relative to pie radius. For example: - 1.0 means the length is the same as the radius. - 0.5 means the length is half of the radius. - By default the arm length is 0.15 - \sa label, labelVisible, labelBrush, labelFont -*/ -/*! - \qmlproperty real PieSlice::labelArmLengthFactor - Defines the length of the label arm. - The factor is relative to pie radius. For example: - 1.0 means the length is the same as the radius. - 0.5 means the length is half of the radius. - By default the arm length is 0.15 - \sa labelVisible -*/ - -/*! - \property QPieSlice::explodeDistanceFactor - When the slice is exploded this factor defines how far the slice is exploded away from the pie. - The factor is relative to pie radius. For example: - 1.0 means the distance is the same as the radius. - 0.5 means the distance is half of the radius. - By default the distance is is 0.15 - \sa exploded -*/ -/*! - \qmlproperty real PieSlice::explodeDistanceFactor - When the slice is exploded this factor defines how far the slice is exploded away from the pie. - The factor is relative to pie radius. For example: - 1.0 means the distance is the same as the radius. - 0.5 means the distance is half of the radius. - By default the distance is is 0.15 - \sa exploded -*/ - -/*! - \property QPieSlice::percentage - Percentage of the slice compared to the sum of all slices in the series. - The actual value ranges from 0.0 to 1.0. - Updated automatically once the slice is added to the series. - \sa value, QPieSeries::sum -*/ -/*! - \qmlproperty real PieSlice::percentage - Percentage of the slice compared to the sum of all slices in the series. - The actual value ranges from 0.0 to 1.0. - Updated automatically once the slice is added to the series. -*/ - -/*! - \fn void QPieSlice::percentageChanged() - This signal is emitted when the percentage of the slice has changed. - \sa percentage -*/ -/*! - \qmlsignal void PieSlice::onPercentageChanged() - This signal is emitted when the percentage of the slice has changed. - \sa percentage -*/ - -/*! - \property QPieSlice::startAngle - Defines the starting angle of this slice in the series it belongs to. - Full pie is 360 degrees where 0 degrees is at 12 a'clock. - Updated automatically once the slice is added to the series. -*/ -/*! - \qmlproperty real PieSlice::startAngle - Defines the starting angle of this slice in the series it belongs to. - Full pie is 360 degrees where 0 degrees is at 12 a'clock. - Updated automatically once the slice is added to the series. -*/ - -/*! - \fn void QPieSlice::startAngleChanged() - This signal is emitted when the starting angle f the slice has changed. - \sa startAngle -*/ -/*! - \qmlsignal PieSlice::onStartAngleChanged() - This signal is emitted when the starting angle f the slice has changed. - \sa startAngle -*/ - -/*! - \property QPieSlice::angleSpan - Span of the slice in degrees. - Full pie is 360 degrees where 0 degrees is at 12 a'clock. - Updated automatically once the slice is added to the series. -*/ -/*! - \qmlproperty real PieSlice::angleSpan - Span of the slice in degrees. - Full pie is 360 degrees where 0 degrees is at 12 a'clock. - Updated automatically once the slice is added to the series. -*/ - -/*! - \fn void QPieSlice::angleSpanChanged() - This signal is emitted when the angle span of the slice has changed. - \sa angleSpan -*/ -/*! - \qmlsignal PieSlice::onAngleSpanChanged() - This signal is emitted when the angle span of the slice has changed. - \sa angleSpan -*/ - -/*! - \fn void QPieSlice::clicked() - This signal is emitted when user has clicked the slice. - \sa QPieSeries::clicked() -*/ -/*! - \qmlsignal PieSlice::onClicked() - This signal is emitted when user has clicked the slice. -*/ - -/*! - \fn void QPieSlice::hovered(bool state) - This signal is emitted when user has hovered over or away from the slice. - \a state is true when user has hovered over the slice and false when hover has moved away from the slice. - \sa QPieSeries::hovered() -*/ -/*! - \qmlsignal PieSlice::onHovered(bool state) - This signal is emitted when user has hovered over or away from the slice. - \a state is true when user has hovered over the slice and false when hover has moved away from the slice. -*/ - -/*! - Constructs an empty slice with a \a parent. - \sa QPieSeries::append(), QPieSeries::insert() -*/ -QPieSlice::QPieSlice(QObject *parent) - : QObject(parent), - d_ptr(new QPieSlicePrivate(this)) -{ - -} - -/*! - Constructs an empty slice with given \a value, \a label and a \a parent. - \sa QPieSeries::append(), QPieSeries::insert() -*/ -QPieSlice::QPieSlice(QString label, qreal value, QObject *parent) - : QObject(parent), - d_ptr(new QPieSlicePrivate(this)) -{ - setValue(value); - setLabel(label); -} - -/*! - Destroys the slice. - User should not delete the slice if it has been added to the series. -*/ -QPieSlice::~QPieSlice() -{ - -} - -void QPieSlice::setLabel(QString label) -{ - if (d_ptr->m_data.m_labelText != label) { - d_ptr->m_data.m_labelText = label; - emit labelChanged(); - } -} - -QString QPieSlice::label() const -{ - return d_ptr->m_data.m_labelText; -} - -void QPieSlice::setValue(qreal value) -{ - value = qAbs(value); // negative values not allowed - if (!qFuzzyCompare(d_ptr->m_data.m_value, value)) { - d_ptr->m_data.m_value = value; - emit valueChanged(); - } -} - -qreal QPieSlice::value() const -{ - return d_ptr->m_data.m_value; -} - -void QPieSlice::setLabelVisible(bool visible) -{ - if (d_ptr->m_data.m_isLabelVisible != visible) { - d_ptr->m_data.m_isLabelVisible = visible; - emit labelVisibleChanged(); - } -} - -bool QPieSlice::isLabelVisible() const -{ - return d_ptr->m_data.m_isLabelVisible; -} - -void QPieSlice::setExploded(bool exploded) -{ - if (d_ptr->m_data.m_isExploded != exploded) { - d_ptr->m_data.m_isExploded = exploded; - emit d_ptr->explodedChanged(); - } -} - -QPieSlice::LabelPosition QPieSlice::labelPosition() -{ - return d_ptr->m_data.m_labelPosition; -} - -void QPieSlice::setLabelPosition(LabelPosition position) -{ - if (d_ptr->m_data.m_labelPosition != position) { - d_ptr->m_data.m_labelPosition = position; - emit d_ptr->labelPositionChanged(); - } -} - -bool QPieSlice::isExploded() const -{ - return d_ptr->m_data.m_isExploded; -} - -void QPieSlice::setPen(const QPen &pen) -{ - d_ptr->setPen(pen, false); -} - -QPen QPieSlice::pen() const -{ - return d_ptr->m_data.m_slicePen; -} - -QColor QPieSlice::borderColor() -{ - return pen().color(); -} - -void QPieSlice::setBorderColor(QColor color) -{ - QPen p = pen(); - if (color != p.color()) { - p.setColor(color); - setPen(p); - } -} - -int QPieSlice::borderWidth() -{ - return pen().width(); -} - -void QPieSlice::setBorderWidth(int width) -{ - QPen p = pen(); - if (width != p.width()) { - p.setWidth(width); - setPen(p); - } -} - -void QPieSlice::setBrush(const QBrush &brush) -{ - d_ptr->setBrush(brush, false); -} - -QBrush QPieSlice::brush() const -{ - return d_ptr->m_data.m_sliceBrush; -} - -QColor QPieSlice::color() -{ - return brush().color(); -} - -void QPieSlice::setColor(QColor color) -{ - QBrush b = brush(); - - if (b == QBrush()) - b.setStyle(Qt::SolidPattern); - b.setColor(color); - setBrush(b); -} - -void QPieSlice::setLabelBrush(const QBrush &brush) -{ - d_ptr->setLabelBrush(brush, false); -} - -QBrush QPieSlice::labelBrush() const -{ - return d_ptr->m_data.m_labelBrush; -} - -QColor QPieSlice::labelColor() -{ - return labelBrush().color(); -} - -void QPieSlice::setLabelColor(QColor color) -{ - QBrush b = labelBrush(); - if (color != b.color()) { - b.setColor(color); - setLabelBrush(b); - } -} - -void QPieSlice::setLabelFont(const QFont &font) -{ - d_ptr->setLabelFont(font, false); -} - -QFont QPieSlice::labelFont() const -{ - return d_ptr->m_data.m_labelFont; -} - -void QPieSlice::setLabelArmLengthFactor(qreal factor) -{ - if (!qFuzzyCompare(d_ptr->m_data.m_labelArmLengthFactor, factor)) { - d_ptr->m_data.m_labelArmLengthFactor = factor; - emit d_ptr->labelArmLengthFactorChanged(); - } -} - -qreal QPieSlice::labelArmLengthFactor() const -{ - return d_ptr->m_data.m_labelArmLengthFactor; -} - -void QPieSlice::setExplodeDistanceFactor(qreal factor) -{ - if (!qFuzzyCompare(d_ptr->m_data.m_explodeDistanceFactor, factor)) { - d_ptr->m_data.m_explodeDistanceFactor = factor; - emit d_ptr->explodeDistanceFactorChanged(); - } -} - -qreal QPieSlice::explodeDistanceFactor() const -{ - return d_ptr->m_data.m_explodeDistanceFactor; -} - -qreal QPieSlice::percentage() const -{ - return d_ptr->m_data.m_percentage; -} - -qreal QPieSlice::startAngle() const -{ - return d_ptr->m_data.m_startAngle; -} - -qreal QPieSlice::angleSpan() const -{ - return d_ptr->m_data.m_angleSpan; -} - -/*! - Returns the series that this slice belongs to. - - \sa QPieSeries::append() -*/ -QPieSeries *QPieSlice::series() const -{ - return d_ptr->m_series; -} - -QPieSlicePrivate::QPieSlicePrivate(QPieSlice *parent) - : QObject(parent), - q_ptr(parent), - m_series(0) -{ - -} - -QPieSlicePrivate::~QPieSlicePrivate() -{ - -} - -QPieSlicePrivate *QPieSlicePrivate::fromSlice(QPieSlice *slice) -{ - return slice->d_func(); -} - -void QPieSlicePrivate::setPen(const QPen &pen, bool themed) -{ - if (m_data.m_slicePen != pen) { - - QPen oldPen = m_data.m_slicePen; - - m_data.m_slicePen = pen; - m_data.m_slicePen.setThemed(themed); - - emit q_ptr->penChanged(); - if (oldPen.color() != pen.color()) - emit q_ptr->borderColorChanged(); - if (oldPen.width() != pen.width()) - emit q_ptr->borderWidthChanged(); - } -} - -void QPieSlicePrivate::setBrush(const QBrush &brush, bool themed) -{ - if (m_data.m_sliceBrush != brush) { - - QBrush oldBrush = m_data.m_sliceBrush; - - m_data.m_sliceBrush = brush; - m_data.m_sliceBrush.setThemed(themed); - - emit q_ptr->brushChanged(); - if (oldBrush.color() != brush.color()) - emit q_ptr->colorChanged(); - } -} - -void QPieSlicePrivate::setLabelBrush(const QBrush &brush, bool themed) -{ - if (m_data.m_labelBrush != brush) { - - QBrush oldBrush = m_data.m_labelBrush; - - m_data.m_labelBrush = brush; - m_data.m_labelBrush.setThemed(themed); - - emit q_ptr->labelBrushChanged(); - if (oldBrush.color() != brush.color()) - emit q_ptr->labelColorChanged(); - } -} - -void QPieSlicePrivate::setLabelFont(const QFont &font, bool themed) -{ - if (m_data.m_labelFont != font) { - m_data.m_labelFont = font; - m_data.m_labelFont.setThemed(themed); - emit q_ptr->labelFontChanged(); - } -} - -void QPieSlicePrivate::setPercentage(qreal percentage) -{ - if (!qFuzzyCompare(m_data.m_percentage, percentage)) { - m_data.m_percentage = percentage; - emit q_ptr->percentageChanged(); - } -} - -void QPieSlicePrivate::setStartAngle(qreal angle) -{ - if (!qFuzzyCompare(m_data.m_startAngle, angle)) { - m_data.m_startAngle = angle; - emit q_ptr->startAngleChanged(); - } -} - -void QPieSlicePrivate::setAngleSpan(qreal span) -{ - if (!qFuzzyCompare(m_data.m_angleSpan, span)) { - m_data.m_angleSpan = span; - emit q_ptr->angleSpanChanged(); - } -} - -QTCOMMERCIALCHART_END_NAMESPACE - -QTCOMMERCIALCHART_USE_NAMESPACE -#include "moc_qpieslice.cpp" -#include "moc_qpieslice_p.cpp" |