mirror of
https://github.com/python-LimeReport/LimeReport.git
synced 2025-10-01 11:40:02 +03:00
Extend Axis data class
This commit is contained in:
@@ -147,6 +147,9 @@ ChartItem::ChartItem(QObject *owner, QGraphicsItem *parent)
|
||||
m_horizontalAxisOnTop(false), m_gridChartLines(AllLines),
|
||||
m_legendStyle(LegendPoints)
|
||||
{
|
||||
m_xAxisData = new AxisData(this);
|
||||
m_xAxisData->setReverseDirection(true);
|
||||
m_yAxisData = new AxisData(this);
|
||||
m_labels<<"First"<<"Second"<<"Thrid";
|
||||
m_chart = new PieChart(this);
|
||||
m_chart->setTitleFont(font());
|
||||
@@ -224,6 +227,42 @@ void ChartItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||
ItemDesignIntf::paint(painter,option,widget);
|
||||
}
|
||||
|
||||
QObject *ChartItem::xAxisSettings()
|
||||
{
|
||||
return m_xAxisData;
|
||||
}
|
||||
|
||||
void ChartItem::setYAxisSettings(QObject *axis)
|
||||
{
|
||||
AxisData *data = dynamic_cast<AxisData*>(axis);
|
||||
if (data) {
|
||||
m_yAxisData->copy(data);
|
||||
}
|
||||
}
|
||||
|
||||
QObject *ChartItem::yAxisSettings()
|
||||
{
|
||||
return m_yAxisData;
|
||||
}
|
||||
|
||||
void ChartItem::setXAxisSettings(QObject *axis)
|
||||
{
|
||||
AxisData *data = static_cast<AxisData*>(axis);
|
||||
if (data) {
|
||||
m_xAxisData->copy(data);
|
||||
}
|
||||
}
|
||||
|
||||
AxisData *ChartItem::xAxisData()
|
||||
{
|
||||
return m_xAxisData;
|
||||
}
|
||||
|
||||
AxisData *ChartItem::yAxisData()
|
||||
{
|
||||
return m_yAxisData;
|
||||
}
|
||||
|
||||
BaseDesignIntf *ChartItem::createSameTypeItem(QObject *owner, QGraphicsItem *parent)
|
||||
{
|
||||
ChartItem* result = new ChartItem(owner,parent);
|
||||
@@ -289,10 +328,7 @@ void ChartItem::fillLabels(IDataSource *dataSource)
|
||||
|
||||
QWidget *ChartItem::defaultEditor()
|
||||
{
|
||||
QSettings* l_settings = (page()->settings() != 0) ?
|
||||
page()->settings() :
|
||||
(page()->reportEditor()!=0) ? page()->reportEditor()->settings() : 0;
|
||||
QWidget* editor = new ChartItemEditor(this, page(), l_settings);
|
||||
QWidget* editor = new ChartItemEditor(this, page(), settings());
|
||||
editor->setAttribute(Qt::WA_DeleteOnClose);
|
||||
return editor;
|
||||
}
|
||||
@@ -302,6 +338,18 @@ bool ChartItem::isNeedUpdateSize(RenderPass pass) const
|
||||
return pass == FirstPass && m_isEmpty;
|
||||
}
|
||||
|
||||
QSettings *ChartItem::settings()
|
||||
{
|
||||
PageDesignIntf *page = this->page();
|
||||
if (page->settings()) {
|
||||
return page->settings();
|
||||
}
|
||||
if (page->reportEditor()) {
|
||||
return page->reportEditor()->settings();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool ChartItem::showLegend() const
|
||||
{
|
||||
return m_showLegend;
|
||||
@@ -724,22 +772,22 @@ AbstractSeriesChart::AbstractSeriesChart(ChartItem *chartItem)
|
||||
|
||||
qreal AbstractSeriesChart::maxValue()
|
||||
{
|
||||
return m_yAxisData.maxValue();
|
||||
return m_chartItem->yAxisData()->maxValue();
|
||||
}
|
||||
|
||||
qreal AbstractSeriesChart::minValue()
|
||||
{
|
||||
return m_yAxisData.minValue();
|
||||
return m_chartItem->yAxisData()->minValue();
|
||||
}
|
||||
|
||||
AxisData AbstractSeriesChart::yAxisData()
|
||||
AxisData &AbstractSeriesChart::xAxisData() const
|
||||
{
|
||||
return m_yAxisData;
|
||||
return *m_chartItem->xAxisData();
|
||||
}
|
||||
|
||||
AxisData AbstractSeriesChart::xAxisData()
|
||||
AxisData &AbstractSeriesChart::yAxisData() const
|
||||
{
|
||||
return m_xAxisData;
|
||||
return *m_chartItem->yAxisData();
|
||||
}
|
||||
|
||||
void AbstractSeriesChart::updateMinAndMaxValues()
|
||||
@@ -772,8 +820,8 @@ void AbstractSeriesChart::updateMinAndMaxValues()
|
||||
}
|
||||
}
|
||||
|
||||
m_yAxisData = AxisData(minYValue, maxYValue);
|
||||
m_xAxisData = AxisData(minXValue, maxXValue);
|
||||
m_chartItem->xAxisData()->update(minXValue, maxXValue);
|
||||
m_chartItem->yAxisData()->update(minYValue, maxYValue);
|
||||
}
|
||||
|
||||
qreal AbstractSeriesChart::hPadding(QRectF chartRect)
|
||||
|
@@ -97,8 +97,8 @@ class AbstractSeriesChart: public AbstractChart{
|
||||
public:
|
||||
AbstractSeriesChart(ChartItem* chartItem);
|
||||
protected:
|
||||
AxisData yAxisData();
|
||||
AxisData xAxisData();
|
||||
AxisData &xAxisData() const;
|
||||
AxisData &yAxisData() const;
|
||||
qreal maxValue();
|
||||
qreal minValue();
|
||||
void updateMinAndMaxValues();
|
||||
@@ -125,7 +125,6 @@ private:
|
||||
bool calculateLegendColumnWidths(qreal indicatorWidth, qreal maxWidth, const QFontMetrics &fm);
|
||||
bool calculateLegendSingleColumnWidth(qreal ¤tRowWidth, int ¤tColumn, int &maxColumnCount,
|
||||
const qreal itemWidth, const qreal maxRowWidth);
|
||||
AxisData m_yAxisData, m_xAxisData;
|
||||
qreal m_designValues [9];
|
||||
};
|
||||
|
||||
@@ -146,6 +145,8 @@ private:
|
||||
class ChartItem : public LimeReport::ItemDesignIntf
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QObject* xAxisSettings READ xAxisSettings WRITE setXAxisSettings)
|
||||
Q_PROPERTY(QObject* yAxisSettings READ yAxisSettings WRITE setYAxisSettings)
|
||||
Q_PROPERTY(ACollectionProperty series READ fakeCollectionReader WRITE setSeries)
|
||||
Q_PROPERTY(QString datasource READ datasource WRITE setDatasource)
|
||||
Q_PROPERTY(QString chartTitle READ chartTitle WRITE setChartTitle)
|
||||
@@ -201,6 +202,13 @@ public:
|
||||
~ChartItem();
|
||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
|
||||
|
||||
QObject* xAxisSettings();
|
||||
void setYAxisSettings(QObject *axis);
|
||||
QObject* yAxisSettings();
|
||||
void setXAxisSettings(QObject *axis);
|
||||
|
||||
AxisData *xAxisData();
|
||||
AxisData *yAxisData();
|
||||
QList<SeriesItem *> &series();
|
||||
void setSeries(const QList<SeriesItem *> &series);
|
||||
bool isSeriesExists(const QString& name);
|
||||
@@ -255,6 +263,8 @@ public:
|
||||
void setTitleFont(QFont value);
|
||||
void setCharItemFont(QFont value);
|
||||
|
||||
QSettings *settings();
|
||||
|
||||
protected:
|
||||
void paintChartTitle(QPainter* painter, QRectF titleRect);
|
||||
virtual BaseDesignIntf* createSameTypeItem(QObject *owner, QGraphicsItem *parent);
|
||||
@@ -287,6 +297,7 @@ private:
|
||||
bool m_horizontalAxisOnTop;
|
||||
GridChartLines m_gridChartLines;
|
||||
LegendStyle m_legendStyle;
|
||||
AxisData *m_xAxisData, *m_yAxisData;
|
||||
};
|
||||
} //namespace LimeReport
|
||||
#endif // LRCHARTITEM_H
|
||||
|
Reference in New Issue
Block a user