From 5862599d088d072b4ac89ed556a645680f786d80 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 18 Apr 2013 13:30:07 +0300 Subject: Generate charts plugin for QtQuick2 as well as QtQuick1 Added quick2 versions of a couple of demos, too. Task-number: QTRD-1922 Change-Id: Ie3e2c1c40c38e06fc6d3afe27289eccc2f997f67 Reviewed-by: Miikka Heikkinen --- plugins/declarative/declarativechart.h | 38 ++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 9 deletions(-) (limited to 'plugins/declarative/declarativechart.h') diff --git a/plugins/declarative/declarativechart.h b/plugins/declarative/declarativechart.h index cc6295e7..c02434e4 100644 --- a/plugins/declarative/declarativechart.h +++ b/plugins/declarative/declarativechart.h @@ -22,7 +22,15 @@ #define DECLARATIVECHART_H #include +#include "shared_defines.h" + +#ifdef CHARTS_FOR_QUICK2 +#include +#include +#include +#else #include +#endif #include "qchart.h" @@ -32,7 +40,7 @@ class DeclarativeMargins; class Domain; class DeclarativeAxes; -class DeclarativeChart : public QDeclarativeItem +class DeclarativeChart : public QDECLARATIVE_PAINTED_ITEM { Q_OBJECT Q_PROPERTY(Theme theme READ theme WRITE setTheme) @@ -51,7 +59,11 @@ class DeclarativeChart : public QDeclarativeItem Q_PROPERTY(DeclarativeMargins *minimumMargins READ minimumMargins NOTIFY minimumMarginsChanged REVISION 1) Q_PROPERTY(DeclarativeMargins *margins READ margins NOTIFY marginsChanged REVISION 2) Q_PROPERTY(QRectF plotArea READ plotArea NOTIFY plotAreaChanged REVISION 1) +#ifdef CHARTS_FOR_QUICK2 + Q_PROPERTY(QQmlListProperty axes READ axes REVISION 2) +#else Q_PROPERTY(QDeclarativeListProperty axes READ axes REVISION 2) +#endif Q_ENUMS(Animation) Q_ENUMS(Theme) Q_ENUMS(SeriesType) @@ -90,13 +102,18 @@ public: }; public: - DeclarativeChart(QDeclarativeItem *parent = 0); + DeclarativeChart(QDECLARATIVE_ITEM *parent = 0); ~DeclarativeChart(); -public: // From QDeclarativeItem/QGraphicsItem +public: // From parent classes void childEvent(QChildEvent *event); void componentComplete(); void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry); +#ifdef CHARTS_FOR_QUICK2 + void paint(QPainter *painter); +private Q_SLOTS: + void handleAntialiasingChanged(bool enable); +#endif public: void setTheme(DeclarativeChart::Theme theme); @@ -129,10 +146,11 @@ public: QAbstractAxis *defaultAxis(Qt::Orientation orientation, QAbstractSeries *series); void initializeAxes(QAbstractSeries *series); void doInitializeAxes(QAbstractSeries *series, DeclarativeAxes *axes); - QDeclarativeListProperty axes(); - static void axesAppendFunc(QDeclarativeListProperty *list, QAbstractAxis *element); - static int axesCountFunc(QDeclarativeListProperty *list); - static QAbstractAxis *axesAtFunc(QDeclarativeListProperty *list, int index); + QDECLARATIVE_LIST_PROPERTY axes(); + static void axesAppendFunc(QDECLARATIVE_LIST_PROPERTY *list, QAbstractAxis *element); + static int axesCountFunc(QDECLARATIVE_LIST_PROPERTY *list); + static QAbstractAxis *axesAtFunc(QDECLARATIVE_LIST_PROPERTY *list, int index); + static void axesClearFunc(QDECLARATIVE_LIST_PROPERTY *list); public: Q_INVOKABLE QAbstractSeries *series(int index); @@ -171,14 +189,16 @@ private Q_SLOTS: void handleSeriesAdded(QAbstractSeries *series); protected: - explicit DeclarativeChart(QChart::ChartType type, QDeclarativeItem *parent); + explicit DeclarativeChart(QChart::ChartType type, QDECLARATIVE_ITEM *parent); private: void initChart(QChart::ChartType type); // Extending QChart with DeclarativeChart is not possible because QObject does not support // multi inheritance, so we now have a QChart as a member instead QChart *m_chart; - //QMargins m_chartMargins; +#ifdef CHARTS_FOR_QUICK2 + QGraphicsScene *m_scene; +#endif DeclarativeMargins *m_margins; }; -- cgit v1.2.3