##// END OF EJS Templates
Fix setting custom color to pie. Now the pie knows if the color is set by the user.
Fix setting custom color to pie. Now the pie knows if the color is set by the user.

File last commit:

r691:02b456949de5
r691:02b456949de5
Show More
pieslicedata_p.h
110 lines | 2.5 KiB | text/x-c | CLexer
#ifndef PIESLICEDATA_P_H
#define PIESLICEDATA_P_H
#include <qchartglobal.h>
#include <QPen>
#include <QBrush>
#include <QDebug>
QTCOMMERCIALCHART_BEGIN_NAMESPACE
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;
};
class PieSliceData
{
public:
PieSliceData()
{
m_value = 0;
m_isExploded = false;
m_explodeDistanceFactor = 0.15;
m_isLabelVisible = false;
m_labelArmLengthFactor = 0.15;
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 ||
m_explodeDistanceFactor != other.m_explodeDistanceFactor)
return true;
if (m_isLabelVisible != other.m_isLabelVisible ||
m_labelText != other.m_labelText ||
m_labelFont != other.m_labelFont ||
m_labelArmLengthFactor != other.m_labelArmLengthFactor ||
m_labelArmPen != other.m_labelArmPen)
return true;
if (m_percentage != other.m_percentage ||
m_center != other.m_center ||
m_radius != other.m_radius ||
m_startAngle != other.m_startAngle ||
m_angleSpan != other.m_angleSpan)
return true;
return false;
}
qreal m_value;
Themed<QPen> m_slicePen;
Themed<QBrush> m_sliceBrush;
bool m_isExploded;
qreal m_explodeDistanceFactor;
bool m_isLabelVisible;
QString m_labelText;
Themed<QFont> m_labelFont;
qreal m_labelArmLengthFactor;
Themed<QPen> m_labelArmPen;
qreal m_percentage;
QPointF m_center;
qreal m_radius;
qreal m_startAngle;
qreal m_angleSpan;
};
QTCOMMERCIALCHART_END_NAMESPACE
#endif // PIESLICEDATA_P_H