diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-04-18 13:30:07 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-04-23 09:24:32 +0300 |
commit | 5862599d088d072b4ac89ed556a645680f786d80 (patch) | |
tree | 838db883bea99b520ae90c634746f9f942fb6832 /plugins | |
parent | b0caebd0eeccca1b5e901faa6e5df1a1f6301312 (diff) |
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 <miikka.heikkinen@digia.com>
Diffstat (limited to 'plugins')
25 files changed, 428 insertions, 160 deletions
diff --git a/plugins/declarative/declarative.pri b/plugins/declarative/declarative.pri new file mode 100644 index 00000000..305e6861 --- /dev/null +++ b/plugins/declarative/declarative.pri @@ -0,0 +1,58 @@ +!include( ../plugins.pri ) { + error( "Couldn't find the plugins.pri file!" ) +} + +contains(DEFINES, CHARTS_FOR_QUICK2) { + DESTDIR = $$CHART_BUILD_QML2_PLUGIN_DIR +} else { + DESTDIR = $$CHART_BUILD_QML_PLUGIN_DIR +} + +INCLUDEPATH += $$CHART_BUILD_PRIVATE_HEADER_DIR + +CONFIG(debug, debug|release) { + mac: TARGET = $$join(TARGET,,,_debug) + win32: TARGET = $$join(TARGET,,,d) +} + +SOURCES += \ + ../declarative/plugin.cpp \ + ../declarative/declarativechart.cpp \ + ../declarative/declarativexypoint.cpp \ + ../declarative/declarativexyseries.cpp \ + ../declarative/declarativelineseries.cpp \ + ../declarative/declarativesplineseries.cpp \ + ../declarative/declarativeareaseries.cpp \ + ../declarative/declarativescatterseries.cpp \ + ../declarative/declarativepieseries.cpp \ + ../declarative/declarativebarseries.cpp \ + ../declarative/declarativecategoryaxis.cpp \ + ../declarative/declarativemargins.cpp \ + ../declarative/declarativeaxes.cpp \ + ../declarative/declarativepolarchart.cpp + +HEADERS += \ + ../declarative/declarativechart.h \ + ../declarative/declarativexypoint.h \ + ../declarative/declarativexyseries.h \ + ../declarative/declarativelineseries.h \ + ../declarative/declarativesplineseries.h \ + ../declarative/declarativeareaseries.h \ + ../declarative/declarativescatterseries.h \ + ../declarative/declarativepieseries.h \ + ../declarative/declarativebarseries.h \ + ../declarative/declarativecategoryaxis.h \ + ../declarative/declarativemargins.h \ + ../declarative/declarativeaxes.h \ + ../declarative/declarativepolarchart.h \ + ../declarative/shared_defines.h + +TARGETPATH = QtCommercial/Chart +target.path = $$IMPORT_INSTALL_PATH/$$TARGETPATH +qmldir.files += $$_PRO_FILE_PWD_/qmldir +qmldir.path += $$IMPORT_INSTALL_PATH/$$TARGETPATH +INSTALLS += target qmldir + +QMLDIR_FILE = $$_PRO_FILE_PWD_/qmldir +win32:QMLDIR_FILE = $$replace(QMLDIR_FILE, "/","\\") +QMAKE_POST_LINK += $$QMAKE_COPY $$QMLDIR_FILE $$DESTDIR diff --git a/plugins/declarative/declarative.pro b/plugins/declarative/declarative.pro deleted file mode 100644 index 12d48832..00000000 --- a/plugins/declarative/declarative.pro +++ /dev/null @@ -1,54 +0,0 @@ -!include( ../plugins.pri ) { - error( "Couldn't find the plugins.pri file!" ) -} - -TARGET = qtcommercialchartqml -QT += declarative -DESTDIR = $$CHART_BUILD_QML_PLUGIN_DIR -INCLUDEPATH += $$CHART_BUILD_PRIVATE_HEADER_DIR - -CONFIG(debug, debug|release) { - mac: TARGET = $$join(TARGET,,,_debug) - win32: TARGET = $$join(TARGET,,,d) -} - -SOURCES += \ - plugin.cpp \ - declarativechart.cpp \ - declarativexypoint.cpp \ - declarativexyseries.cpp \ - declarativelineseries.cpp \ - declarativesplineseries.cpp \ - declarativeareaseries.cpp \ - declarativescatterseries.cpp \ - declarativepieseries.cpp \ - declarativebarseries.cpp \ - declarativecategoryaxis.cpp \ - declarativemargins.cpp \ - declarativeaxes.cpp \ - declarativepolarchart.cpp - -HEADERS += \ - declarativechart.h \ - declarativexypoint.h \ - declarativexyseries.h \ - declarativelineseries.h \ - declarativesplineseries.h \ - declarativeareaseries.h \ - declarativescatterseries.h \ - declarativepieseries.h \ - declarativebarseries.h \ - declarativecategoryaxis.h \ - declarativemargins.h \ - declarativeaxes.h \ - declarativepolarchart.h - -TARGETPATH = QtCommercial/Chart -target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH -qmldir.files += $$PWD/qmldir -qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH -INSTALLS += target qmldir - -FILE = $$PWD/qmldir -win32:{FILE = $$replace(FILE, "/","\\")} -QMAKE_POST_LINK += $$QMAKE_COPY $$FILE $$CHART_BUILD_QML_PLUGIN_DIR diff --git a/plugins/declarative/declarativebarseries.cpp b/plugins/declarative/declarativebarseries.cpp index 9133141a..2bff984b 100644 --- a/plugins/declarative/declarativebarseries.cpp +++ b/plugins/declarative/declarativebarseries.cpp @@ -74,7 +74,7 @@ void DeclarativeBarSet::setValues(QVariantList values) } // Declarative bar series ====================================================================================== -DeclarativeBarSeries::DeclarativeBarSeries(QDeclarativeItem *parent) : +DeclarativeBarSeries::DeclarativeBarSeries(QDECLARATIVE_ITEM *parent) : QBarSeries(parent), m_axes(new DeclarativeAxes(this)) { @@ -103,12 +103,12 @@ void DeclarativeBarSeries::componentComplete() } } -QDeclarativeListProperty<QObject> DeclarativeBarSeries::seriesChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativeBarSeries::seriesChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren LIST_PROPERTY_PARAM_DEFAULTS); } -void DeclarativeBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) +void DeclarativeBarSeries::appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element) { // Empty implementation; the children are parsed in componentComplete instead Q_UNUSED(list); @@ -136,7 +136,7 @@ DeclarativeBarSet *DeclarativeBarSeries::insert(int index, QString label, QVaria } // Declarative stacked bar series ============================================================================== -DeclarativeStackedBarSeries::DeclarativeStackedBarSeries(QDeclarativeItem *parent) : +DeclarativeStackedBarSeries::DeclarativeStackedBarSeries(QDECLARATIVE_ITEM *parent) : QStackedBarSeries(parent), m_axes(0) { @@ -167,12 +167,12 @@ void DeclarativeStackedBarSeries::componentComplete() } -QDeclarativeListProperty<QObject> DeclarativeStackedBarSeries::seriesChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativeStackedBarSeries::seriesChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren LIST_PROPERTY_PARAM_DEFAULTS); } -void DeclarativeStackedBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) +void DeclarativeStackedBarSeries::appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> * list, QObject *element) { // Empty implementation; the children are parsed in componentComplete instead Q_UNUSED(list); @@ -200,7 +200,7 @@ DeclarativeBarSet *DeclarativeStackedBarSeries::insert(int index, QString label, } // Declarative percent bar series ============================================================================== -DeclarativePercentBarSeries::DeclarativePercentBarSeries(QDeclarativeItem *parent) : +DeclarativePercentBarSeries::DeclarativePercentBarSeries(QDECLARATIVE_ITEM *parent) : QPercentBarSeries(parent), m_axes(0) { @@ -230,12 +230,12 @@ void DeclarativePercentBarSeries::componentComplete() } } -QDeclarativeListProperty<QObject> DeclarativePercentBarSeries::seriesChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativePercentBarSeries::seriesChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren LIST_PROPERTY_PARAM_DEFAULTS); } -void DeclarativePercentBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) +void DeclarativePercentBarSeries::appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> * list, QObject *element) { // Empty implementation; the children are parsed in componentComplete instead Q_UNUSED(list); @@ -263,7 +263,7 @@ DeclarativeBarSet *DeclarativePercentBarSeries::insert(int index, QString label, } // Declarative horizontal bar series =========================================================================== -DeclarativeHorizontalBarSeries::DeclarativeHorizontalBarSeries(QDeclarativeItem *parent) : +DeclarativeHorizontalBarSeries::DeclarativeHorizontalBarSeries(QDECLARATIVE_ITEM *parent) : QHorizontalBarSeries(parent), m_axes(0) { @@ -293,12 +293,12 @@ void DeclarativeHorizontalBarSeries::componentComplete() } } -QDeclarativeListProperty<QObject> DeclarativeHorizontalBarSeries::seriesChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativeHorizontalBarSeries::seriesChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeHorizontalBarSeries::appendSeriesChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &DeclarativeHorizontalBarSeries::appendSeriesChildren LIST_PROPERTY_PARAM_DEFAULTS); } -void DeclarativeHorizontalBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) +void DeclarativeHorizontalBarSeries::appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> * list, QObject *element) { // Empty implementation; the children are parsed in componentComplete instead Q_UNUSED(list); @@ -326,7 +326,7 @@ DeclarativeBarSet *DeclarativeHorizontalBarSeries::insert(int index, QString lab } // Declarative horizontal stacked bar series =================================================================== -DeclarativeHorizontalStackedBarSeries::DeclarativeHorizontalStackedBarSeries(QDeclarativeItem *parent) : +DeclarativeHorizontalStackedBarSeries::DeclarativeHorizontalStackedBarSeries(QDECLARATIVE_ITEM *parent) : QHorizontalStackedBarSeries(parent), m_axes(0) { @@ -356,12 +356,12 @@ void DeclarativeHorizontalStackedBarSeries::componentComplete() } } -QDeclarativeListProperty<QObject> DeclarativeHorizontalStackedBarSeries::seriesChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativeHorizontalStackedBarSeries::seriesChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeHorizontalStackedBarSeries::appendSeriesChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &DeclarativeHorizontalStackedBarSeries::appendSeriesChildren LIST_PROPERTY_PARAM_DEFAULTS); } -void DeclarativeHorizontalStackedBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) +void DeclarativeHorizontalStackedBarSeries::appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> * list, QObject *element) { // Empty implementation; the children are parsed in componentComplete instead Q_UNUSED(list); @@ -389,7 +389,7 @@ DeclarativeBarSet *DeclarativeHorizontalStackedBarSeries::insert(int index, QStr } // Declarative horizontal percent bar series =================================================================== -DeclarativeHorizontalPercentBarSeries::DeclarativeHorizontalPercentBarSeries(QDeclarativeItem *parent) : +DeclarativeHorizontalPercentBarSeries::DeclarativeHorizontalPercentBarSeries(QDECLARATIVE_ITEM *parent) : QHorizontalPercentBarSeries(parent), m_axes(0) { @@ -419,12 +419,12 @@ void DeclarativeHorizontalPercentBarSeries::componentComplete() } } -QDeclarativeListProperty<QObject> DeclarativeHorizontalPercentBarSeries::seriesChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativeHorizontalPercentBarSeries::seriesChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeHorizontalPercentBarSeries::appendSeriesChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &DeclarativeHorizontalPercentBarSeries::appendSeriesChildren LIST_PROPERTY_PARAM_DEFAULTS); } -void DeclarativeHorizontalPercentBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) +void DeclarativeHorizontalPercentBarSeries::appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> * list, QObject *element) { // Empty implementation; the children are parsed in componentComplete instead Q_UNUSED(list); diff --git a/plugins/declarative/declarativebarseries.h b/plugins/declarative/declarativebarseries.h index 8e63fcbb..7d8f99cf 100644 --- a/plugins/declarative/declarativebarseries.h +++ b/plugins/declarative/declarativebarseries.h @@ -29,8 +29,15 @@ #include "qhorizontalpercentbarseries.h" #include "qbarset.h" #include "declarativeaxes.h" +#include "shared_defines.h" + +#ifdef CHARTS_FOR_QUICK2 +#include <QtQuick/QQuickItem> +#include <QtQml/QQmlParserStatus> +#else #include <QtDeclarative/QDeclarativeItem> #include <QtDeclarative/QDeclarativeParserStatus> +#endif QTCOMMERCIALCHART_BEGIN_NAMESPACE @@ -64,19 +71,27 @@ private Q_SLOTS: void handleCountChanged(int index, int count); }; -class DeclarativeBarSeries : public QBarSeries, public QDeclarativeParserStatus +class DeclarativeBarSeries : public QBarSeries, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) +#else Q_INTERFACES(QDeclarativeParserStatus) +#endif Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisXTop READ axisXTop WRITE setAxisXTop NOTIFY axisXTopChanged REVISION 2) Q_PROPERTY(QAbstractAxis *axisYRight READ axisYRight WRITE setAxisYRight NOTIFY axisYRightChanged REVISION 2) +#ifdef CHARTS_FOR_QUICK2 + Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) +#else Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) +#endif Q_CLASSINFO("DefaultProperty", "seriesChildren") public: - explicit DeclarativeBarSeries(QDeclarativeItem *parent = 0); + explicit DeclarativeBarSeries(QDECLARATIVE_ITEM *parent = 0); QAbstractAxis *axisX() { return m_axes->axisX(); } void setAxisX(QAbstractAxis *axis) { m_axes->setAxisX(axis); } QAbstractAxis *axisY() { return m_axes->axisY(); } @@ -85,7 +100,7 @@ public: Q_REVISION(2) void setAxisXTop(QAbstractAxis *axis) { m_axes->setAxisXTop(axis); } Q_REVISION(2) QAbstractAxis *axisYRight() { return m_axes->axisYRight(); } Q_REVISION(2) void setAxisYRight(QAbstractAxis *axis) { m_axes->setAxisYRight(axis); } - QDeclarativeListProperty<QObject> seriesChildren(); + QDECLARATIVE_LIST_PROPERTY<QObject> seriesChildren(); public: Q_INVOKABLE DeclarativeBarSet *at(int index); @@ -105,25 +120,33 @@ Q_SIGNALS: Q_REVISION(2) void axisYRightChanged(QAbstractAxis *axis); public Q_SLOTS: - static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); public: DeclarativeAxes *m_axes; }; -class DeclarativeStackedBarSeries : public QStackedBarSeries, public QDeclarativeParserStatus +class DeclarativeStackedBarSeries : public QStackedBarSeries, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) +#else Q_INTERFACES(QDeclarativeParserStatus) +#endif Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisXTop READ axisXTop WRITE setAxisXTop NOTIFY axisXTopChanged REVISION 2) Q_PROPERTY(QAbstractAxis *axisYRight READ axisYRight WRITE setAxisYRight NOTIFY axisYRightChanged REVISION 2) +#ifdef CHARTS_FOR_QUICK2 + Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) +#else Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) +#endif Q_CLASSINFO("DefaultProperty", "seriesChildren") public: - explicit DeclarativeStackedBarSeries(QDeclarativeItem *parent = 0); + explicit DeclarativeStackedBarSeries(QDECLARATIVE_ITEM *parent = 0); QAbstractAxis *axisX() { return m_axes->axisX(); } void setAxisX(QAbstractAxis *axis) { m_axes->setAxisX(axis); } QAbstractAxis *axisY() { return m_axes->axisY(); } @@ -132,7 +155,7 @@ public: Q_REVISION(2) void setAxisXTop(QAbstractAxis *axis) { m_axes->setAxisXTop(axis); } Q_REVISION(2) QAbstractAxis *axisYRight() { return m_axes->axisYRight(); } Q_REVISION(2) void setAxisYRight(QAbstractAxis *axis) { m_axes->setAxisYRight(axis); } - QDeclarativeListProperty<QObject> seriesChildren(); + QDECLARATIVE_LIST_PROPERTY<QObject> seriesChildren(); public: Q_INVOKABLE DeclarativeBarSet *at(int index); @@ -152,25 +175,33 @@ Q_SIGNALS: Q_REVISION(2) void axisYRightChanged(QAbstractAxis *axis); public Q_SLOTS: - static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); public: DeclarativeAxes *m_axes; }; -class DeclarativePercentBarSeries : public QPercentBarSeries, public QDeclarativeParserStatus +class DeclarativePercentBarSeries : public QPercentBarSeries, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) +#else Q_INTERFACES(QDeclarativeParserStatus) +#endif Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisXTop READ axisXTop WRITE setAxisXTop NOTIFY axisXTopChanged REVISION 2) Q_PROPERTY(QAbstractAxis *axisYRight READ axisYRight WRITE setAxisYRight NOTIFY axisYRightChanged REVISION 2) +#ifdef CHARTS_FOR_QUICK2 + Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) +#else Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) +#endif Q_CLASSINFO("DefaultProperty", "seriesChildren") public: - explicit DeclarativePercentBarSeries(QDeclarativeItem *parent = 0); + explicit DeclarativePercentBarSeries(QDECLARATIVE_ITEM *parent = 0); QAbstractAxis *axisX() { return m_axes->axisX(); } void setAxisX(QAbstractAxis *axis) { m_axes->setAxisX(axis); } QAbstractAxis *axisY() { return m_axes->axisY(); } @@ -179,7 +210,7 @@ public: Q_REVISION(2) void setAxisXTop(QAbstractAxis *axis) { m_axes->setAxisXTop(axis); } Q_REVISION(2) QAbstractAxis *axisYRight() { return m_axes->axisYRight(); } Q_REVISION(2) void setAxisYRight(QAbstractAxis *axis) { m_axes->setAxisYRight(axis); } - QDeclarativeListProperty<QObject> seriesChildren(); + QDECLARATIVE_LIST_PROPERTY<QObject> seriesChildren(); public: Q_INVOKABLE DeclarativeBarSet *at(int index); @@ -199,25 +230,33 @@ Q_SIGNALS: Q_REVISION(2) void axisYRightChanged(QAbstractAxis *axis); public Q_SLOTS: - static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); public: DeclarativeAxes *m_axes; }; -class DeclarativeHorizontalBarSeries : public QHorizontalBarSeries, public QDeclarativeParserStatus +class DeclarativeHorizontalBarSeries : public QHorizontalBarSeries, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) +#else Q_INTERFACES(QDeclarativeParserStatus) +#endif Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisXTop READ axisXTop WRITE setAxisXTop NOTIFY axisXTopChanged REVISION 2) Q_PROPERTY(QAbstractAxis *axisYRight READ axisYRight WRITE setAxisYRight NOTIFY axisYRightChanged REVISION 2) +#ifdef CHARTS_FOR_QUICK2 + Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) +#else Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) +#endif Q_CLASSINFO("DefaultProperty", "seriesChildren") public: - explicit DeclarativeHorizontalBarSeries(QDeclarativeItem *parent = 0); + explicit DeclarativeHorizontalBarSeries(QDECLARATIVE_ITEM *parent = 0); QAbstractAxis *axisX() { return m_axes->axisX(); } void setAxisX(QAbstractAxis *axis) { m_axes->setAxisX(axis); } QAbstractAxis *axisY() { return m_axes->axisY(); } @@ -226,7 +265,7 @@ public: Q_REVISION(2) void setAxisXTop(QAbstractAxis *axis) { m_axes->setAxisXTop(axis); } Q_REVISION(2) QAbstractAxis *axisYRight() { return m_axes->axisYRight(); } Q_REVISION(2) void setAxisYRight(QAbstractAxis *axis) { m_axes->setAxisYRight(axis); } - QDeclarativeListProperty<QObject> seriesChildren(); + QDECLARATIVE_LIST_PROPERTY<QObject> seriesChildren(); public: Q_INVOKABLE DeclarativeBarSet *at(int index); @@ -246,25 +285,33 @@ Q_SIGNALS: Q_REVISION(2) void axisYRightChanged(QAbstractAxis *axis); public Q_SLOTS: - static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); public: DeclarativeAxes *m_axes; }; -class DeclarativeHorizontalStackedBarSeries : public QHorizontalStackedBarSeries, public QDeclarativeParserStatus +class DeclarativeHorizontalStackedBarSeries : public QHorizontalStackedBarSeries, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) +#else Q_INTERFACES(QDeclarativeParserStatus) +#endif Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisXTop READ axisXTop WRITE setAxisXTop NOTIFY axisXTopChanged REVISION 2) Q_PROPERTY(QAbstractAxis *axisYRight READ axisYRight WRITE setAxisYRight NOTIFY axisYRightChanged REVISION 2) +#ifdef CHARTS_FOR_QUICK2 + Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) +#else Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) +#endif Q_CLASSINFO("DefaultProperty", "seriesChildren") public: - explicit DeclarativeHorizontalStackedBarSeries(QDeclarativeItem *parent = 0); + explicit DeclarativeHorizontalStackedBarSeries(QDECLARATIVE_ITEM *parent = 0); QAbstractAxis *axisX() { return m_axes->axisX(); } void setAxisX(QAbstractAxis *axis) { m_axes->setAxisX(axis); } QAbstractAxis *axisY() { return m_axes->axisY(); } @@ -273,7 +320,7 @@ public: Q_REVISION(2) void setAxisXTop(QAbstractAxis *axis) { m_axes->setAxisXTop(axis); } Q_REVISION(2) QAbstractAxis *axisYRight() { return m_axes->axisYRight(); } Q_REVISION(2) void setAxisYRight(QAbstractAxis *axis) { m_axes->setAxisYRight(axis); } - QDeclarativeListProperty<QObject> seriesChildren(); + QDECLARATIVE_LIST_PROPERTY<QObject> seriesChildren(); public: Q_INVOKABLE DeclarativeBarSet *at(int index); @@ -293,25 +340,33 @@ Q_SIGNALS: Q_REVISION(2) void axisYRightChanged(QAbstractAxis *axis); public Q_SLOTS: - static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); public: DeclarativeAxes *m_axes; }; -class DeclarativeHorizontalPercentBarSeries : public QHorizontalPercentBarSeries, public QDeclarativeParserStatus +class DeclarativeHorizontalPercentBarSeries : public QHorizontalPercentBarSeries, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) +#else Q_INTERFACES(QDeclarativeParserStatus) +#endif Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisXTop READ axisXTop WRITE setAxisXTop NOTIFY axisXTopChanged REVISION 2) Q_PROPERTY(QAbstractAxis *axisYRight READ axisYRight WRITE setAxisYRight NOTIFY axisYRightChanged REVISION 2) +#ifdef CHARTS_FOR_QUICK2 + Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) +#else Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) +#endif Q_CLASSINFO("DefaultProperty", "seriesChildren") public: - explicit DeclarativeHorizontalPercentBarSeries(QDeclarativeItem *parent = 0); + explicit DeclarativeHorizontalPercentBarSeries(QDECLARATIVE_ITEM *parent = 0); QAbstractAxis *axisX() { return m_axes->axisX(); } void setAxisX(QAbstractAxis *axis) { m_axes->setAxisX(axis); } QAbstractAxis *axisY() { return m_axes->axisY(); } @@ -320,7 +375,7 @@ public: Q_REVISION(2) void setAxisXTop(QAbstractAxis *axis) { m_axes->setAxisXTop(axis); } Q_REVISION(2) QAbstractAxis *axisYRight() { return m_axes->axisYRight(); } Q_REVISION(2) void setAxisYRight(QAbstractAxis *axis) { m_axes->setAxisYRight(axis); } - QDeclarativeListProperty<QObject> seriesChildren(); + QDECLARATIVE_LIST_PROPERTY<QObject> seriesChildren(); public: Q_INVOKABLE DeclarativeBarSet *at(int index); @@ -340,7 +395,7 @@ Q_SIGNALS: Q_REVISION(2) void axisYRightChanged(QAbstractAxis *axis); public Q_SLOTS: - static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); public: DeclarativeAxes *m_axes; diff --git a/plugins/declarative/declarativecategoryaxis.cpp b/plugins/declarative/declarativecategoryaxis.cpp index 4e2c4fa5..dbe37f11 100644 --- a/plugins/declarative/declarativecategoryaxis.cpp +++ b/plugins/declarative/declarativecategoryaxis.cpp @@ -66,9 +66,9 @@ bool DeclarativeCategoryAxis::endValueLessThan(const QPair<QString, qreal> &valu return value1.second < value2.second; } -QDeclarativeListProperty<QObject> DeclarativeCategoryAxis::axisChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativeCategoryAxis::axisChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeCategoryAxis::appendAxisChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &DeclarativeCategoryAxis::appendAxisChildren LIST_PROPERTY_PARAM_DEFAULTS); } void DeclarativeCategoryAxis::append(const QString &label, qreal categoryEndValue) @@ -86,7 +86,7 @@ void DeclarativeCategoryAxis::replace(const QString &oldLabel, const QString &ne QCategoryAxis::replaceLabel(oldLabel, newLabel); } -void DeclarativeCategoryAxis::appendAxisChildren(QDeclarativeListProperty<QObject> *list, QObject *element) +void DeclarativeCategoryAxis::appendAxisChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element) { // Empty implementation; the children are parsed in componentComplete instead Q_UNUSED(list) diff --git a/plugins/declarative/declarativecategoryaxis.h b/plugins/declarative/declarativecategoryaxis.h index 5e17bab3..6e718d78 100644 --- a/plugins/declarative/declarativecategoryaxis.h +++ b/plugins/declarative/declarativecategoryaxis.h @@ -22,8 +22,15 @@ #define DECLARATIVECATEGORYAXIS_H #include "qcategoryaxis.h" +#include "shared_defines.h" + +#ifdef CHARTS_FOR_QUICK2 +#include <QtQml/QQmlListProperty> +#include <QtQml/QQmlParserStatus> +#else #include <QtDeclarative/QDeclarativeListProperty> #include <QtDeclarative/QDeclarativeParserStatus> +#endif QTCOMMERCIALCHART_BEGIN_NAMESPACE @@ -45,16 +52,21 @@ private: QString m_label; }; -class DeclarativeCategoryAxis : public QCategoryAxis, public QDeclarativeParserStatus +class DeclarativeCategoryAxis : public QCategoryAxis, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) + Q_PROPERTY(QQmlListProperty<QObject> axisChildren READ axisChildren) +#else Q_INTERFACES(QDeclarativeParserStatus) Q_PROPERTY(QDeclarativeListProperty<QObject> axisChildren READ axisChildren) +#endif Q_CLASSINFO("DefaultProperty", "axisChildren") public: explicit DeclarativeCategoryAxis(QObject *parent = 0); - QDeclarativeListProperty<QObject> axisChildren(); + QDECLARATIVE_LIST_PROPERTY<QObject> axisChildren(); public: // from QDeclarativeParserStatus void classBegin(); @@ -64,7 +76,7 @@ public Q_SLOTS: Q_INVOKABLE void append(const QString &label, qreal categoryEndValue); Q_INVOKABLE void remove(const QString &label); Q_INVOKABLE void replace(const QString &oldLabel, const QString &newLabel); - static void appendAxisChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendAxisChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); private: static bool endValueLessThan(const QPair<QString, qreal> &value1, const QPair<QString, qreal> &value2); diff --git a/plugins/declarative/declarativechart.cpp b/plugins/declarative/declarativechart.cpp index 344f5e62..c81bbdcc 100644 --- a/plugins/declarative/declarativechart.cpp +++ b/plugins/declarative/declarativechart.cpp @@ -20,7 +20,6 @@ #include "declarativechart.h" #include <QPainter> -#include <QDeclarativeEngine> #include "declarativelineseries.h" #include "declarativeareaseries.h" #include "declarativebarseries.h" @@ -235,26 +234,41 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE object after the signal handler has completed. */ -DeclarativeChart::DeclarativeChart(QDeclarativeItem *parent) - : QDeclarativeItem(parent) +DeclarativeChart::DeclarativeChart(QDECLARATIVE_ITEM *parent) + : QDECLARATIVE_PAINTED_ITEM(parent) { initChart(QChart::ChartTypeCartesian); } -DeclarativeChart::DeclarativeChart(QChart::ChartType type, QDeclarativeItem *parent) - : QDeclarativeItem(parent) +DeclarativeChart::DeclarativeChart(QChart::ChartType type, QDECLARATIVE_ITEM *parent) + : QDECLARATIVE_PAINTED_ITEM(parent) { initChart(type); } void DeclarativeChart::initChart(QChart::ChartType type) { +#ifdef CHARTS_FOR_QUICK2 + if (type == QChart::ChartTypePolar) + m_chart = new QPolarChart(); + else + m_chart = new QChart(); + + m_scene = new QGraphicsScene(this); + m_scene->addItem(m_chart); + + setAntialiasing(QQuickItem::antialiasing()); + connect(m_scene, SIGNAL(changed(QList<QRectF>)), this, SLOT(update())); + connect(this, SIGNAL(antialiasingChanged(bool)), this, SLOT(handleAntialiasingChanged(bool))); +#else if (type == QChart::ChartTypePolar) m_chart = new QPolarChart(this); else m_chart = new QChart(this); setFlag(QGraphicsItem::ItemHasNoContents, false); +#endif + m_margins = new DeclarativeMargins(this); m_margins->setTop(m_chart->margins().top()); m_margins->setLeft(m_chart->margins().left()); @@ -314,7 +328,7 @@ void DeclarativeChart::componentComplete() } } - QDeclarativeItem::componentComplete(); + QDECLARATIVE_ITEM::componentComplete(); } void DeclarativeChart::handleAxisXSet(QAbstractAxis *axis) @@ -377,7 +391,7 @@ void DeclarativeChart::geometryChanged(const QRectF &newGeometry, const QRectF & m_chart->resize(newGeometry.width(), newGeometry.height()); } } - QDeclarativeItem::geometryChanged(newGeometry, oldGeometry); + QDECLARATIVE_ITEM::geometryChanged(newGeometry, oldGeometry); // It would be better to trigger the plotAreaChanged signal from QChart::plotAreaChanged or // similar. Since that kind of a signal is not clearly needed in the C++ API the work-around is @@ -385,6 +399,19 @@ void DeclarativeChart::geometryChanged(const QRectF &newGeometry, const QRectF & emit plotAreaChanged(m_chart->plotArea()); } +#ifdef CHARTS_FOR_QUICK2 +void DeclarativeChart::paint(QPainter *painter) +{ + QRectF renderRect(QPointF(0, 0), m_chart->size()); + m_scene->render(painter, renderRect, renderRect); +} + +void DeclarativeChart::handleAntialiasingChanged(bool enable) +{ + setAntialiasing(enable); +} +#endif + void DeclarativeChart::setTheme(DeclarativeChart::Theme theme) { QChart::ChartTheme chartTheme = (QChart::ChartTheme) theme; @@ -555,22 +582,27 @@ void DeclarativeChart::scrollDown(qreal pixels) m_chart->scroll(0, -pixels); } -QDeclarativeListProperty<QAbstractAxis> DeclarativeChart::axes() +QDECLARATIVE_LIST_PROPERTY<QAbstractAxis> DeclarativeChart::axes() { - return QDeclarativeListProperty<QAbstractAxis>(this, 0, + return QDECLARATIVE_LIST_PROPERTY<QAbstractAxis>(this, 0, &DeclarativeChart::axesAppendFunc, &DeclarativeChart::axesCountFunc, +#ifdef CHARTS_FOR_QUICK2 + &DeclarativeChart::axesAtFunc, + &DeclarativeChart::axesClearFunc); +#else &DeclarativeChart::axesAtFunc); +#endif } -void DeclarativeChart::axesAppendFunc(QDeclarativeListProperty<QAbstractAxis> *list, QAbstractAxis *element) +void DeclarativeChart::axesAppendFunc(QDECLARATIVE_LIST_PROPERTY<QAbstractAxis> *list, QAbstractAxis *element) { // Empty implementation Q_UNUSED(list); Q_UNUSED(element); } -int DeclarativeChart::axesCountFunc(QDeclarativeListProperty<QAbstractAxis> *list) +int DeclarativeChart::axesCountFunc(QDECLARATIVE_LIST_PROPERTY<QAbstractAxis> *list) { if (qobject_cast<DeclarativeChart *>(list->object)) { DeclarativeChart *chart = qobject_cast<DeclarativeChart *>(list->object); @@ -579,7 +611,7 @@ int DeclarativeChart::axesCountFunc(QDeclarativeListProperty<QAbstractAxis> *lis return 0; } -QAbstractAxis *DeclarativeChart::axesAtFunc(QDeclarativeListProperty<QAbstractAxis> *list, int index) +QAbstractAxis *DeclarativeChart::axesAtFunc(QDECLARATIVE_LIST_PROPERTY<QAbstractAxis> *list, int index) { if (qobject_cast<DeclarativeChart *>(list->object)) { DeclarativeChart *chart = qobject_cast<DeclarativeChart *>(list->object); @@ -589,6 +621,13 @@ QAbstractAxis *DeclarativeChart::axesAtFunc(QDeclarativeListProperty<QAbstractAx return 0; } +void DeclarativeChart::axesClearFunc(QDECLARATIVE_LIST_PROPERTY<QAbstractAxis> *list) +{ + // Empty implementation + Q_UNUSED(list); +} + + QAbstractSeries *DeclarativeChart::series(int index) { if (index < m_chart->series().count()) { 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 <QtCore/QtGlobal> +#include "shared_defines.h" + +#ifdef CHARTS_FOR_QUICK2 +#include <QtQuick/QQuickItem> +#include <QtQuick/QQuickPaintedItem> +#include <QtWidgets/QGraphicsScene> +#else #include <QtDeclarative/QDeclarativeItem> +#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<QAbstractAxis> axes READ axes REVISION 2) +#else Q_PROPERTY(QDeclarativeListProperty<QAbstractAxis> 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<QAbstractAxis> axes(); - static void axesAppendFunc(QDeclarativeListProperty<QAbstractAxis> *list, QAbstractAxis *element); - static int axesCountFunc(QDeclarativeListProperty<QAbstractAxis> *list); - static QAbstractAxis *axesAtFunc(QDeclarativeListProperty<QAbstractAxis> *list, int index); + QDECLARATIVE_LIST_PROPERTY<QAbstractAxis> axes(); + static void axesAppendFunc(QDECLARATIVE_LIST_PROPERTY<QAbstractAxis> *list, QAbstractAxis *element); + static int axesCountFunc(QDECLARATIVE_LIST_PROPERTY<QAbstractAxis> *list); + static QAbstractAxis *axesAtFunc(QDECLARATIVE_LIST_PROPERTY<QAbstractAxis> *list, int index); + static void axesClearFunc(QDECLARATIVE_LIST_PROPERTY<QAbstractAxis> *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; }; diff --git a/plugins/declarative/declarativelineseries.cpp b/plugins/declarative/declarativelineseries.cpp index 735b2962..7fed7cd1 100644 --- a/plugins/declarative/declarativelineseries.cpp +++ b/plugins/declarative/declarativelineseries.cpp @@ -87,12 +87,12 @@ void DeclarativeLineSeries::setCapStyle(Qt::PenCapStyle capStyle) } } -QDeclarativeListProperty<QObject> DeclarativeLineSeries::declarativeChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativeLineSeries::declarativeChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &appendDeclarativeChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &appendDeclarativeChildren LIST_PROPERTY_PARAM_DEFAULTS); } -void DeclarativeLineSeries::appendDeclarativeChildren(QDeclarativeListProperty<QObject> *list, QObject *element) +void DeclarativeLineSeries::appendDeclarativeChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element) { Q_UNUSED(list) Q_UNUSED(element) diff --git a/plugins/declarative/declarativelineseries.h b/plugins/declarative/declarativelineseries.h index 05222a6d..a3fd19b9 100644 --- a/plugins/declarative/declarativelineseries.h +++ b/plugins/declarative/declarativelineseries.h @@ -24,15 +24,26 @@ #include "qlineseries.h" #include "declarativexyseries.h" #include "declarativeaxes.h" +#include "shared_defines.h" + +#ifdef CHARTS_FOR_QUICK2 +#include <QtQml/QQmlListProperty> +#include <QtQml/QQmlParserStatus> +#else #include <QtDeclarative/QDeclarativeListProperty> #include <QtDeclarative/QDeclarativeParserStatus> +#endif QTCOMMERCIALCHART_BEGIN_NAMESPACE -class DeclarativeLineSeries : public QLineSeries, public DeclarativeXySeries, public QDeclarativeParserStatus +class DeclarativeLineSeries : public QLineSeries, public DeclarativeXySeries, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) +#else Q_INTERFACES(QDeclarativeParserStatus) +#endif Q_PROPERTY(int count READ count NOTIFY countChanged) Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged REVISION 1) @@ -43,7 +54,11 @@ class DeclarativeLineSeries : public QLineSeries, public DeclarativeXySeries, pu Q_PROPERTY(qreal width READ width WRITE setWidth NOTIFY widthChanged REVISION 1) Q_PROPERTY(Qt::PenStyle style READ style WRITE setStyle NOTIFY styleChanged REVISION 1) Q_PROPERTY(Qt::PenCapStyle capStyle READ capStyle WRITE setCapStyle NOTIFY capStyleChanged REVISION 1) +#ifdef CHARTS_FOR_QUICK2 + Q_PROPERTY(QQmlListProperty<QObject> declarativeChildren READ declarativeChildren) +#else Q_PROPERTY(QDeclarativeListProperty<QObject> declarativeChildren READ declarativeChildren) +#endif Q_CLASSINFO("DefaultProperty", "declarativeChildren") public: @@ -67,7 +82,7 @@ public: void setStyle(Qt::PenStyle style); Qt::PenCapStyle capStyle() const; void setCapStyle(Qt::PenCapStyle capStyle); - QDeclarativeListProperty<QObject> declarativeChildren(); + QDECLARATIVE_LIST_PROPERTY<QObject> declarativeChildren(); public: // from QDeclarativeParserStatus void classBegin() { DeclarativeXySeries::classBegin(); } @@ -94,7 +109,7 @@ Q_SIGNALS: Q_REVISION(1) void capStyleChanged(Qt::PenCapStyle capStyle); public Q_SLOTS: - static void appendDeclarativeChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendDeclarativeChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); void handleCountChanged(int index); public: diff --git a/plugins/declarative/declarativepieseries.cpp b/plugins/declarative/declarativepieseries.cpp index 46a52938..6764f5a6 100644 --- a/plugins/declarative/declarativepieseries.cpp +++ b/plugins/declarative/declarativepieseries.cpp @@ -25,7 +25,7 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE -DeclarativePieSeries::DeclarativePieSeries(QDeclarativeItem *parent) : +DeclarativePieSeries::DeclarativePieSeries(QDECLARATIVE_ITEM *parent) : QPieSeries(parent) { connect(this, SIGNAL(added(QList<QPieSlice*>)), this, SLOT(handleAdded(QList<QPieSlice*>))); @@ -51,12 +51,12 @@ void DeclarativePieSeries::componentComplete() } } -QDeclarativeListProperty<QObject> DeclarativePieSeries::seriesChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativePieSeries::seriesChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativePieSeries::appendSeriesChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &DeclarativePieSeries::appendSeriesChildren LIST_PROPERTY_PARAM_DEFAULTS); } -void DeclarativePieSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) +void DeclarativePieSeries::appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> * list, QObject *element) { // Empty implementation; the children are parsed in componentComplete instead Q_UNUSED(list); diff --git a/plugins/declarative/declarativepieseries.h b/plugins/declarative/declarativepieseries.h index 2440990a..7c6c8f13 100644 --- a/plugins/declarative/declarativepieseries.h +++ b/plugins/declarative/declarativepieseries.h @@ -22,22 +22,34 @@ #define DECLARATIVEPIESERIES_H #include "qpieseries.h" +#include "shared_defines.h" + +#ifdef CHARTS_FOR_QUICK2 +#include <QtQuick/QQuickItem> +#include <QtQml/QQmlParserStatus> +#else #include <QtDeclarative/QDeclarativeItem> #include <QtDeclarative/QDeclarativeParserStatus> +#endif QTCOMMERCIALCHART_BEGIN_NAMESPACE class QPieSlice; -class DeclarativePieSeries : public QPieSeries, public QDeclarativeParserStatus +class DeclarativePieSeries : public QPieSeries, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) + Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) +#else Q_INTERFACES(QDeclarativeParserStatus) Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) +#endif Q_CLASSINFO("DefaultProperty", "seriesChildren") public: - explicit DeclarativePieSeries(QDeclarativeItem *parent = 0); - QDeclarativeListProperty<QObject> seriesChildren(); + explicit DeclarativePieSeries(QDECLARATIVE_ITEM *parent = 0); + QDECLARATIVE_LIST_PROPERTY<QObject> seriesChildren(); Q_INVOKABLE QPieSlice *at(int index); Q_INVOKABLE QPieSlice *find(QString label); Q_INVOKABLE QPieSlice *append(QString label, qreal value); @@ -53,7 +65,7 @@ Q_SIGNALS: void sliceRemoved(QPieSlice *slice); public Q_SLOTS: - static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); void handleAdded(QList<QPieSlice *> slices); void handleRemoved(QList<QPieSlice *> slices); }; diff --git a/plugins/declarative/declarativepolarchart.cpp b/plugins/declarative/declarativepolarchart.cpp index 3be90d78..25c2ece8 100644 --- a/plugins/declarative/declarativepolarchart.cpp +++ b/plugins/declarative/declarativepolarchart.cpp @@ -50,7 +50,7 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE \clearfloat */ -DeclarativePolarChart::DeclarativePolarChart(QDeclarativeItem *parent) +DeclarativePolarChart::DeclarativePolarChart(QDECLARATIVE_ITEM *parent) : DeclarativeChart(QChart::ChartTypePolar, parent) { } diff --git a/plugins/declarative/declarativepolarchart.h b/plugins/declarative/declarativepolarchart.h index 598de6ea..96c3e0c8 100644 --- a/plugins/declarative/declarativepolarchart.h +++ b/plugins/declarative/declarativepolarchart.h @@ -22,7 +22,14 @@ #define DECLARATIVEPOLARCHART_H #include <QtCore/QtGlobal> +#include "shared_defines.h" + +#ifdef CHARTS_FOR_QUICK2 +#include <QtQuick/QQuickItem> +#else #include <QtDeclarative/QDeclarativeItem> +#endif + #include "declarativechart.h" QTCOMMERCIALCHART_BEGIN_NAMESPACE @@ -31,7 +38,7 @@ class DeclarativePolarChart : public DeclarativeChart { Q_OBJECT public: - DeclarativePolarChart(QDeclarativeItem *parent = 0); + DeclarativePolarChart(QDECLARATIVE_ITEM *parent = 0); ~DeclarativePolarChart(); }; diff --git a/plugins/declarative/declarativescatterseries.cpp b/plugins/declarative/declarativescatterseries.cpp index af7b41a6..dedc99f1 100644 --- a/plugins/declarative/declarativescatterseries.cpp +++ b/plugins/declarative/declarativescatterseries.cpp @@ -57,12 +57,12 @@ void DeclarativeScatterSeries::setBorderWidth(qreal width) } } -QDeclarativeListProperty<QObject> DeclarativeScatterSeries::declarativeChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativeScatterSeries::declarativeChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &appendDeclarativeChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &appendDeclarativeChildren LIST_PROPERTY_PARAM_DEFAULTS); } -void DeclarativeScatterSeries::appendDeclarativeChildren(QDeclarativeListProperty<QObject> *list, QObject *element) +void DeclarativeScatterSeries::appendDeclarativeChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element) { Q_UNUSED(list) Q_UNUSED(element) diff --git a/plugins/declarative/declarativescatterseries.h b/plugins/declarative/declarativescatterseries.h index 2400242c..549e5ff7 100644 --- a/plugins/declarative/declarativescatterseries.h +++ b/plugins/declarative/declarativescatterseries.h @@ -24,15 +24,26 @@ #include "qscatterseries.h" #include "declarativexyseries.h" #include "declarativeaxes.h" +#include "shared_defines.h" + +#ifdef CHARTS_FOR_QUICK2 +#include <QtQml/QQmlListProperty> +#include <QtQml/QQmlParserStatus> +#else #include <QtDeclarative/QDeclarativeListProperty> #include <QtDeclarative/QDeclarativeParserStatus> +#endif QTCOMMERCIALCHART_BEGIN_NAMESPACE -class DeclarativeScatterSeries : public QScatterSeries, public DeclarativeXySeries, public QDeclarativeParserStatus +class DeclarativeScatterSeries : public QScatterSeries, public DeclarativeXySeries, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) +#else Q_INTERFACES(QDeclarativeParserStatus) +#endif Q_PROPERTY(int count READ count NOTIFY countChanged) Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged REVISION 1) @@ -41,7 +52,11 @@ class DeclarativeScatterSeries : public QScatterSeries, public DeclarativeXySeri Q_PROPERTY(QAbstractAxis *axisAngular READ axisAngular WRITE setAxisAngular NOTIFY axisAngularChanged REVISION 3) Q_PROPERTY(QAbstractAxis *axisRadial READ axisRadial WRITE setAxisRadial NOTIFY axisRadialChanged REVISION 3) Q_PROPERTY(qreal borderWidth READ borderWidth WRITE setBorderWidth NOTIFY borderWidthChanged REVISION 1) +#ifdef CHARTS_FOR_QUICK2 + Q_PROPERTY(QQmlListProperty<QObject> declarativeChildren READ declarativeChildren) +#else Q_PROPERTY(QDeclarativeListProperty<QObject> declarativeChildren READ declarativeChildren) +#endif Q_CLASSINFO("DefaultProperty", "declarativeChildren") public: @@ -61,7 +76,7 @@ public: Q_REVISION(3) void setAxisRadial(QAbstractAxis *axis) { m_axes->setAxisY(axis); } qreal borderWidth() const; void setBorderWidth(qreal borderWidth); - QDeclarativeListProperty<QObject> declarativeChildren(); + QDECLARATIVE_LIST_PROPERTY<QObject> declarativeChildren(); public: // from QDeclarativeParserStatus void classBegin() { DeclarativeXySeries::classBegin(); } @@ -86,7 +101,7 @@ Q_SIGNALS: Q_REVISION(3) void axisRadialChanged(QAbstractAxis *axis); public Q_SLOTS: - static void appendDeclarativeChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendDeclarativeChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); void handleCountChanged(int index); public: diff --git a/plugins/declarative/declarativesplineseries.cpp b/plugins/declarative/declarativesplineseries.cpp index f3900413..1acc91cb 100644 --- a/plugins/declarative/declarativesplineseries.cpp +++ b/plugins/declarative/declarativesplineseries.cpp @@ -87,12 +87,12 @@ void DeclarativeSplineSeries::setCapStyle(Qt::PenCapStyle capStyle) } } -QDeclarativeListProperty<QObject> DeclarativeSplineSeries::declarativeChildren() +QDECLARATIVE_LIST_PROPERTY<QObject> DeclarativeSplineSeries::declarativeChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &appendDeclarativeChildren); + return QDECLARATIVE_LIST_PROPERTY<QObject>(this, 0, &appendDeclarativeChildren LIST_PROPERTY_PARAM_DEFAULTS); } -void DeclarativeSplineSeries::appendDeclarativeChildren(QDeclarativeListProperty<QObject> *list, QObject *element) +void DeclarativeSplineSeries::appendDeclarativeChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element) { Q_UNUSED(list) Q_UNUSED(element) diff --git a/plugins/declarative/declarativesplineseries.h b/plugins/declarative/declarativesplineseries.h index cfa0a7ee..6d256e62 100644 --- a/plugins/declarative/declarativesplineseries.h +++ b/plugins/declarative/declarativesplineseries.h @@ -24,15 +24,26 @@ #include "qsplineseries.h" #include "declarativexyseries.h" #include "declarativeaxes.h" +#include "shared_defines.h" + +#ifdef CHARTS_FOR_QUICK2 +#include <QtQml/QQmlListProperty> +#include <QtQml/QQmlParserStatus> +#else #include <QtDeclarative/QDeclarativeListProperty> #include <QtDeclarative/QDeclarativeParserStatus> +#endif QTCOMMERCIALCHART_BEGIN_NAMESPACE -class DeclarativeSplineSeries : public QSplineSeries, public DeclarativeXySeries, public QDeclarativeParserStatus +class DeclarativeSplineSeries : public QSplineSeries, public DeclarativeXySeries, public QDECLARATIVE_PARSER_STATUS { Q_OBJECT +#ifdef CHARTS_FOR_QUICK2 + Q_INTERFACES(QQmlParserStatus) +#else Q_INTERFACES(QDeclarativeParserStatus) +#endif Q_PROPERTY(int count READ count NOTIFY countChanged) Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged REVISION 1) Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged REVISION 1) @@ -43,7 +54,11 @@ class DeclarativeSplineSeries : public QSplineSeries, public DeclarativeXySeries Q_PROPERTY(qreal width READ width WRITE setWidth NOTIFY widthChanged REVISION 1) Q_PROPERTY(Qt::PenStyle style READ style WRITE setStyle NOTIFY styleChanged REVISION 1) Q_PROPERTY(Qt::PenCapStyle capStyle READ capStyle WRITE setCapStyle NOTIFY capStyleChanged REVISION 1) +#ifdef CHARTS_FOR_QUICK2 + Q_PROPERTY(QQmlListProperty<QObject> declarativeChildren READ declarativeChildren) +#else Q_PROPERTY(QDeclarativeListProperty<QObject> declarativeChildren READ declarativeChildren) +#endif Q_CLASSINFO("DefaultProperty", "declarativeChildren") public: @@ -67,7 +82,7 @@ public: void setStyle(Qt::PenStyle style); Qt::PenCapStyle capStyle() const; void setCapStyle(Qt::PenCapStyle capStyle); - QDeclarativeListProperty<QObject> declarativeChildren(); + QDECLARATIVE_LIST_PROPERTY<QObject> declarativeChildren(); public: // from QDeclarativeParserStatus void classBegin() { DeclarativeXySeries::classBegin(); } @@ -94,7 +109,7 @@ Q_SIGNALS: Q_REVISION(1) void capStyleChanged(Qt::PenCapStyle capStyle); public Q_SLOTS: - static void appendDeclarativeChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + static void appendDeclarativeChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element); void handleCountChanged(int index); public: diff --git a/plugins/declarative/plugin.cpp b/plugins/declarative/plugin.cpp index bf560e59..dd060212 100644 --- a/plugins/declarative/plugin.cpp +++ b/plugins/declarative/plugin.cpp @@ -47,9 +47,14 @@ #ifndef QT_ON_ARM #include "qdatetimeaxis.h" #endif +#include "shared_defines.h" #include <QAbstractItemModel> +#ifdef CHARTS_FOR_QUICK2 +#include <QtQml/QQmlExtensionPlugin> +#else #include <QtDeclarative/qdeclarativeextensionplugin.h> #include <QtDeclarative/qdeclarative.h> +#endif QTCOMMERCIALCHART_USE_NAMESPACE @@ -67,6 +72,7 @@ Q_DECLARE_METATYPE(DeclarativePolarChart *) Q_DECLARE_METATYPE(DeclarativeMargins *) Q_DECLARE_METATYPE(DeclarativeAreaSeries *) Q_DECLARE_METATYPE(DeclarativeBarSeries *) +Q_DECLARE_METATYPE(DeclarativeBarSet *) Q_DECLARE_METATYPE(DeclarativeLineSeries *) Q_DECLARE_METATYPE(DeclarativePieSeries *) Q_DECLARE_METATYPE(DeclarativeScatterSeries *) @@ -116,12 +122,16 @@ Q_DECLARE_METATYPE(QStackedBarSeries *) QTCOMMERCIALCHART_BEGIN_NAMESPACE -class ChartQmlPlugin : public QDeclarativeExtensionPlugin +class ChartQmlPlugin : public QDECLARATIVE_EXTENSION_PLUGIN { Q_OBJECT -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef CHARTS_FOR_QUICK2 + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") +#else +# if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDeclarativeExtensionInterface") +# endif #endif public: diff --git a/plugins/declarative/shared_defines.h b/plugins/declarative/shared_defines.h new file mode 100644 index 00000000..f5580cfe --- /dev/null +++ b/plugins/declarative/shared_defines.h @@ -0,0 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Commercial Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef SHARED_DEFINES_H +#define SHARED_DEFINES_H + +#ifdef CHARTS_FOR_QUICK2 +#define QDECLARATIVE_ITEM QQuickItem +#define QDECLARATIVE_PAINTED_ITEM QQuickPaintedItem +#define QDECLARATIVE_LIST_PROPERTY QQmlListProperty +#define QDECLARATIVE_EXTENSION_PLUGIN QQmlExtensionPlugin +#define QDECLARATIVE_PARSER_STATUS QQmlParserStatus +#define LIST_PROPERTY_PARAM_DEFAULTS ,0,0,0 + +#else +#define QDECLARATIVE_ITEM QDeclarativeItem +#define QDECLARATIVE_PAINTED_ITEM QDeclarativeItem +#define QDECLARATIVE_LIST_PROPERTY QDeclarativeListProperty +#define QDECLARATIVE_EXTENSION_PLUGIN QDeclarativeExtensionPlugin +#define QDECLARATIVE_PARSER_STATUS QDeclarativeParserStatus +#define LIST_PROPERTY_PARAM_DEFAULTS ,0,0 + +#endif + +#endif // SHARED_DEFINES_H diff --git a/plugins/plugins.pro b/plugins/plugins.pro index e9cda3b0..704489d1 100644 --- a/plugins/plugins.pro +++ b/plugins/plugins.pro @@ -7,7 +7,10 @@ TEMPLATE = subdirs contains(QT_VERSION, ^4\\.[0-7]\\.[0-3]\\s*$) | contains(QT_VERSION, ^4\\.[0-6]\\..*) { warning("QtCommercial.Charts QML API requires at least Qt 4.7.4. You are using $${QT_VERSION} so the QML API is disabled.") } else { - SUBDIRS += declarative + SUBDIRS += quick1 + contains(QT_VERSION, ^5\\..*\\..*$) { + qtHaveModule(quick): SUBDIRS += quick2 + } } !linux-arm*:!qnx:!vxworks:!wince*: { diff --git a/plugins/declarative/qmldir b/plugins/quick1/qmldir index d4b6ae7d..d4b6ae7d 100644 --- a/plugins/declarative/qmldir +++ b/plugins/quick1/qmldir diff --git a/plugins/quick1/quick1.pro b/plugins/quick1/quick1.pro new file mode 100644 index 00000000..17300d5c --- /dev/null +++ b/plugins/quick1/quick1.pro @@ -0,0 +1,8 @@ +TARGET = qtcommercialchartqml +QT += declarative +IMPORT_INSTALL_PATH = $$[QT_INSTALL_IMPORTS] + +!include(../declarative/declarative.pri) { + error( "Couldn't find the declarative.pri file!" ) +} + diff --git a/plugins/quick2/qmldir b/plugins/quick2/qmldir new file mode 100644 index 00000000..90d4edb8 --- /dev/null +++ b/plugins/quick2/qmldir @@ -0,0 +1,2 @@ +module QtCommercial.Chart +plugin qtcommercialchartqml2 diff --git a/plugins/quick2/quick2.pro b/plugins/quick2/quick2.pro new file mode 100644 index 00000000..43f697db --- /dev/null +++ b/plugins/quick2/quick2.pro @@ -0,0 +1,9 @@ +TARGET = qtcommercialchartqml2 +QT += quick qml widgets +IMPORT_INSTALL_PATH = $$[QT_INSTALL_QML] +DEFINES += CHARTS_FOR_QUICK2 + +!include(../declarative/declarative.pri) { + error( "Couldn't find the declarative.pri file!" ) +} + |