diff options
author | Michal Klocek <michal.klocek@digia.com> | 2012-06-25 13:48:41 +0300 |
---|---|---|
committer | Michal Klocek <michal.klocek@digia.com> | 2012-06-26 14:44:35 +0300 |
commit | d9bcc3bd9d82e9a6422a0a418a49c28de81aa316 (patch) | |
tree | f9028805d350b0378c5a58e1ce0c6c0eff391a39 /src/chartpresenter_p.h | |
parent | 94e7c38623e4543ae1d5e19c35ac56a44fa78c67 (diff) |
Refactors layout managment
* adds chartlayout class
* adds lagendlayout class
* refactors handling to setGeometry instead of resize
* implmements all TODOs from presenter and qchart
* refactors layout handling in legend
* adds QGraphicsLayoutItem sublcassing
Diffstat (limited to 'src/chartpresenter_p.h')
-rw-r--r-- | src/chartpresenter_p.h | 61 |
1 files changed, 40 insertions, 21 deletions
diff --git a/src/chartpresenter_p.h b/src/chartpresenter_p.h index fdae5e74..20ff5313 100644 --- a/src/chartpresenter_p.h +++ b/src/chartpresenter_p.h @@ -45,6 +45,7 @@ class ChartTheme; class ChartAnimator; class ChartBackground; class ChartAnimation; +class ChartLayout; class ChartPresenter: public QObject { @@ -80,6 +81,34 @@ public: ChartTheme *chartTheme() const { return m_chartTheme; } ChartDataSet *dataSet() const { return m_dataset; } QGraphicsItem* rootItem() const { return m_chart; } + QGraphicsRectItem* backgroundItem(); + QGraphicsItem* titleItem(); + QList<ChartAxis*> axisItems() const; + + QLegend* legend(); + + void setBackgroundBrush(const QBrush& brush); + QBrush backgroundBrush() const; + + void setBackgroundPen(const QPen& pen); + QPen backgroundPen() const; + + void setTitle(const QString& title); + QString title() const; + + void setTitleFont(const QFont& font); + QFont titleFont() const; + + void setTitleBrush(const QBrush &brush); + QBrush titleBrush() const; + + void setBackgroundVisible(bool visible); + bool isBackgroundVisible() const; + + void setBackgroundDropShadowEnabled(bool enabled); + bool isBackgroundDropShadowEnabled() const; + + void setVisible(bool visible); void setTheme(QChart::ChartTheme theme,bool force = true); QChart::ChartTheme theme(); @@ -93,28 +122,27 @@ public: void scroll(qreal dx,qreal dy); void setGeometry(const QRectF& rect); - QRectF chartGeometry() const { return m_chartRect; } - - void setMinimumMarginHeight(ChartAxis* axis, qreal height); - void setMinimumMarginWidth(ChartAxis* axis, qreal width); - qreal minimumLeftMargin() const { return m_minLeftMargin; } - qreal minimumBottomMargin() const { return m_minBottomMargin; } + QRectF geometry() { return m_rect; } void startAnimation(ChartAnimation* animation); State state() const { return m_state; } QPointF statePoint() const { return m_statePoint; } -public: //TODO: fix me + void resetAllElements(); - void createChartBackgroundItem(); - void createChartTitleItem(); - QRectF margins() const { return m_chartMargins;} + + void setMarginsMinimum(const QRectF& margins); + QRectF margins() const; + QGraphicsLayout* layout(); + +private: + void createBackgroundItem(); + void createTitleItem(); public Q_SLOTS: void handleSeriesAdded(QAbstractSeries* series,Domain* domain); void handleSeriesRemoved(QAbstractSeries* series); void handleAxisAdded(QAxis* axis,Domain* domain); void handleAxisRemoved(QAxis* axis); - void updateLayout(); private Q_SLOTS: void handleAnimationFinished(); @@ -132,22 +160,13 @@ private: QMap<QAbstractSeries *, Chart *> m_chartItems; QMap<QAxis *, ChartAxis *> m_axisItems; QRectF m_rect; - QRectF m_chartRect; QChart::AnimationOptions m_options; - qreal m_minLeftMargin; - qreal m_minBottomMargin; State m_state; QPointF m_statePoint; QList<ChartAnimation*> m_animations; - -public: //TODO: fixme + ChartLayout* m_layout; ChartBackground* m_backgroundItem; QGraphicsSimpleTextItem* m_titleItem; - int m_marginBig; - int m_marginSmall; - int m_marginTiny; - QRectF m_chartMargins; - QRectF m_legendMargins; }; QTCOMMERCIALCHART_END_NAMESPACE |