pieslicedata_p.h
110 lines
| 2.5 KiB
| text/x-c
|
CLexer
Jani Honkonen
|
r675 | #ifndef PIESLICEDATA_P_H | ||
#define PIESLICEDATA_P_H | ||||
#include <qchartglobal.h> | ||||
#include <QPen> | ||||
#include <QBrush> | ||||
Jani Honkonen
|
r691 | #include <QDebug> | ||
Jani Honkonen
|
r675 | |||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
Jani Honkonen
|
r691 | template <class T> | ||
class Themed : public T | ||||
{ | ||||
public: | ||||
Themed():m_isThemed(true) {} | ||||
inline T &operator=(const T &other) { return T::operator =(other); } | ||||
inline bool operator!=(const T &other) { return T::operator !=(other); } | ||||
inline bool operator!=(const Themed &other) | ||||
{ | ||||
if (T::operator !=(other)) | ||||
return true; | ||||
if (m_isThemed != other.m_isThemed) | ||||
return true; | ||||
return false; | ||||
} | ||||
inline void setThemed(bool state) { m_isThemed = state; } | ||||
inline bool isThemed() const { return m_isThemed; } | ||||
private: | ||||
bool m_isThemed; | ||||
}; | ||||
Jani Honkonen
|
r675 | class PieSliceData | ||
{ | ||||
public: | ||||
PieSliceData() | ||||
{ | ||||
m_value = 0; | ||||
Jani Honkonen
|
r691 | |||
Jani Honkonen
|
r675 | m_isExploded = false; | ||
m_explodeDistanceFactor = 0.15; | ||||
Jani Honkonen
|
r691 | |||
m_isLabelVisible = false; | ||||
Jani Honkonen
|
r675 | m_labelArmLengthFactor = 0.15; | ||
Jani Honkonen
|
r691 | |||
m_percentage = 0; | ||||
m_radius = 0; | ||||
m_startAngle = 0; | ||||
m_angleSpan = 0; | ||||
} | ||||
bool operator!=(const PieSliceData &other) | ||||
{ | ||||
if (m_value != other.m_value) | ||||
return true; | ||||
if (m_slicePen != other.m_slicePen || | ||||
m_sliceBrush != other.m_sliceBrush) | ||||
return true; | ||||
if (m_isExploded != other.m_isExploded || | ||||
Jani Honkonen
|
r765 | !qFuzzyIsNull(m_explodeDistanceFactor - other.m_explodeDistanceFactor)) | ||
Jani Honkonen
|
r691 | return true; | ||
if (m_isLabelVisible != other.m_isLabelVisible || | ||||
m_labelText != other.m_labelText || | ||||
m_labelFont != other.m_labelFont || | ||||
Jani Honkonen
|
r765 | !qFuzzyIsNull(m_labelArmLengthFactor - other.m_labelArmLengthFactor) || | ||
Jani Honkonen
|
r714 | m_labelPen != other.m_labelPen) | ||
Jani Honkonen
|
r691 | return true; | ||
Jani Honkonen
|
r765 | if (!qFuzzyIsNull(m_percentage - other.m_percentage) || | ||
Jani Honkonen
|
r691 | m_center != other.m_center || | ||
Jani Honkonen
|
r765 | !qFuzzyIsNull(m_radius - other.m_radius) || | ||
!qFuzzyIsNull(m_startAngle - other.m_startAngle) || | ||||
!qFuzzyIsNull(m_angleSpan - other.m_angleSpan)) | ||||
Jani Honkonen
|
r691 | return true; | ||
return false; | ||||
Jani Honkonen
|
r675 | } | ||
qreal m_value; | ||||
Jani Honkonen
|
r691 | Themed<QPen> m_slicePen; | ||
Themed<QBrush> m_sliceBrush; | ||||
Jani Honkonen
|
r675 | |||
bool m_isExploded; | ||||
qreal m_explodeDistanceFactor; | ||||
Jani Honkonen
|
r691 | bool m_isLabelVisible; | ||
Jani Honkonen
|
r675 | QString m_labelText; | ||
Jani Honkonen
|
r691 | Themed<QFont> m_labelFont; | ||
Jani Honkonen
|
r675 | qreal m_labelArmLengthFactor; | ||
Jani Honkonen
|
r714 | Themed<QPen> m_labelPen; | ||
Jani Honkonen
|
r675 | |||
qreal m_percentage; | ||||
QPointF m_center; | ||||
qreal m_radius; | ||||
qreal m_startAngle; | ||||
qreal m_angleSpan; | ||||
}; | ||||
QTCOMMERCIALCHART_END_NAMESPACE | ||||
#endif // PIESLICEDATA_P_H | ||||