diff options
author | Michal Klocek <michal.klocek@digia.com> | 2012-07-03 20:11:09 +0300 |
---|---|---|
committer | Michal Klocek <michal.klocek@digia.com> | 2012-07-03 20:12:12 +0300 |
commit | 6954b167a346ca21a18ac7da39c91474d83a8c7d (patch) | |
tree | e32c2e24ffef7a7c9c0e64d9f3ffed07732910e2 /plugins | |
parent | 0ff3e515e1f068e5360ada358f8cec400314d109 (diff) |
Adds axis to qml
* bunding is done in OnCompled
* qmlchart fixed
* addes setAxis, createDefaultAxes to qml
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/declarative/declarativebarseries.cpp | 165 | ||||
-rw-r--r-- | plugins/declarative/declarativebarseries.h | 55 | ||||
-rw-r--r-- | plugins/declarative/declarativechart.cpp | 21 | ||||
-rw-r--r-- | plugins/declarative/declarativechart.h | 9 | ||||
-rw-r--r-- | plugins/declarative/plugin.cpp | 8 |
5 files changed, 33 insertions, 225 deletions
diff --git a/plugins/declarative/declarativebarseries.cpp b/plugins/declarative/declarativebarseries.cpp index fbcadd3f..a3a65c62 100644 --- a/plugins/declarative/declarativebarseries.cpp +++ b/plugins/declarative/declarativebarseries.cpp @@ -60,106 +60,6 @@ void DeclarativeBarSet::setValues(QVariantList values) } } -DeclarativeAbstractBarSeries::DeclarativeAbstractBarSeries(QDeclarativeItem *parent) : - QAbstractBarSeries(parent) -{ - connect(this, SIGNAL(barsetsAdded(QList<QBarSet*>)), this, SLOT(handleAdded(QList<QBarSet*>))); - connect(this, SIGNAL(barsetsRemoved(QList<QBarSet*>)), this, SLOT(handleRemoved(QList<QBarSet*>))); -} - -void DeclarativeAbstractBarSeries::handleAdded(QList<QBarSet* > barsets) -{ - foreach(QBarSet *b, barsets) { - DeclarativeBarSet *barset = qobject_cast<DeclarativeBarSet *>(b); - emit added(barset); - } -} - -void DeclarativeAbstractBarSeries::handleRemoved(QList<QBarSet* > barsets) -{ - foreach(QBarSet *b, barsets) { - DeclarativeBarSet *barset = qobject_cast<DeclarativeBarSet *>(b); - emit removed(barset); - } -} - -void DeclarativeAbstractBarSeries::classBegin() -{ -} - -void DeclarativeAbstractBarSeries::componentComplete() -{ - foreach(QObject *child, children()) { - if (qobject_cast<DeclarativeBarSet *>(child)) { - QAbstractBarSeries::append(qobject_cast<DeclarativeBarSet *>(child)); - } else if (qobject_cast<QVBarModelMapper *>(child)) { - QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child); - mapper->setSeries(this); - } else if (qobject_cast<QHBarModelMapper *>(child)) { - QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child); - mapper->setSeries(this); - } - } -} - -void DeclarativeAbstractBarSeries::setAxisX(QAbstractAxis *axis) -{ - chart()->setAxisX(axis, this); -} - -QAbstractAxis *DeclarativeAbstractBarSeries::axisX() -{ - return chart()->axisX(this); -} - -void DeclarativeAbstractBarSeries::setAxisY(QAbstractAxis *axis) -{ - chart()->setAxisY(axis, this); -} - -QAbstractAxis *DeclarativeAbstractBarSeries::axisY() -{ - return chart()->axisY(this); -} - -QDeclarativeListProperty<QObject> DeclarativeAbstractBarSeries::seriesChildren() -{ - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeAbstractBarSeries::appendSeriesChildren); -} - -void DeclarativeAbstractBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) -{ - // Empty implementation; the children are parsed in componentComplete instead - Q_UNUSED(list); - Q_UNUSED(element); -} - -DeclarativeBarSet *DeclarativeAbstractBarSeries::at(int index) -{ - QList<QBarSet*> setList = barSets(); - if (index >= 0 && index < setList.count()) - return qobject_cast<DeclarativeBarSet *>(setList[index]); - - return 0; -} - -DeclarativeBarSet *DeclarativeAbstractBarSeries::insert(int index, QString label, QVariantList values) -{ - int insertIndex = index; - if (insertIndex < 0) - insertIndex = 0; - else if (insertIndex > count()) - insertIndex = count(); - - DeclarativeBarSet *barset = new DeclarativeBarSet(this); - barset->setLabel(label); - barset->setValues(values); - if (QAbstractBarSeries::insert(insertIndex, barset)) - return barset; - delete barset; - return 0; -} - DeclarativeBarSeries::DeclarativeBarSeries(QDeclarativeItem *parent) : QBarSeries(parent) { @@ -184,29 +84,9 @@ void DeclarativeBarSeries::componentComplete() } } -void DeclarativeBarSeries::setAxisX(QAbstractAxis *axis) -{ - chart()->setAxisX(axis, this); -} - -QAbstractAxis *DeclarativeBarSeries::axisX() -{ - return chart()->axisX(this); -} - -void DeclarativeBarSeries::setAxisY(QAbstractAxis *axis) -{ - chart()->setAxisY(axis, this); -} - -QAbstractAxis *DeclarativeBarSeries::axisY() -{ - return chart()->axisY(this); -} - QDeclarativeListProperty<QObject> DeclarativeBarSeries::seriesChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeAbstractBarSeries::appendSeriesChildren); + return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren); } void DeclarativeBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) @@ -260,29 +140,10 @@ void DeclarativeStackedBarSeries::componentComplete() } } -void DeclarativeStackedBarSeries::setAxisX(QAbstractAxis *axis) -{ - chart()->setAxisX(axis, this); -} - -QAbstractAxis *DeclarativeStackedBarSeries::axisX() -{ - return chart()->axisX(this); -} - -void DeclarativeStackedBarSeries::setAxisY(QAbstractAxis *axis) -{ - chart()->setAxisY(axis, this); -} - -QAbstractAxis *DeclarativeStackedBarSeries::axisY() -{ - return chart()->axisY(this); -} QDeclarativeListProperty<QObject> DeclarativeStackedBarSeries::seriesChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeAbstractBarSeries::appendSeriesChildren); + return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren); } void DeclarativeStackedBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) @@ -336,29 +197,9 @@ void DeclarativePercentBarSeries::componentComplete() } } -void DeclarativePercentBarSeries::setAxisX(QAbstractAxis *axis) -{ - chart()->setAxisX(axis, this); -} - -QAbstractAxis *DeclarativePercentBarSeries::axisX() -{ - return chart()->axisX(this); -} - -void DeclarativePercentBarSeries::setAxisY(QAbstractAxis *axis) -{ - chart()->setAxisY(axis, this); -} - -QAbstractAxis *DeclarativePercentBarSeries::axisY() -{ - return chart()->axisY(this); -} - QDeclarativeListProperty<QObject> DeclarativePercentBarSeries::seriesChildren() { - return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeAbstractBarSeries::appendSeriesChildren); + return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren); } void DeclarativePercentBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) diff --git a/plugins/declarative/declarativebarseries.h b/plugins/declarative/declarativebarseries.h index f16e60db..b4caf14c 100644 --- a/plugins/declarative/declarativebarseries.h +++ b/plugins/declarative/declarativebarseries.h @@ -59,48 +59,10 @@ private Q_SLOTS: void handleCountChanged(int index, int count); }; -class DeclarativeAbstractBarSeries : public QAbstractBarSeries, public QDeclarativeParserStatus -{ - Q_OBJECT - Q_INTERFACES(QDeclarativeParserStatus) - Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) - Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX) - Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY) - Q_CLASSINFO("DefaultProperty", "seriesChildren") - -public: - explicit DeclarativeAbstractBarSeries(QDeclarativeItem *parent = 0); - void setAxisX(QAbstractAxis *axis); - QAbstractAxis *axisX(); - void setAxisY(QAbstractAxis *axis); - QAbstractAxis *axisY(); - QDeclarativeListProperty<QObject> seriesChildren(); - Q_INVOKABLE DeclarativeBarSet *at(int index); - Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); } - Q_INVOKABLE DeclarativeBarSet *insert(int index, QString label, QVariantList values); - Q_INVOKABLE bool remove(QBarSet *barset) { return QAbstractBarSeries::remove(barset); } - Q_INVOKABLE void clear() { return QAbstractBarSeries::clear(); } - -public: // from QDeclarativeParserStatus - void classBegin(); - void componentComplete(); - -Q_SIGNALS: - void added(DeclarativeBarSet *barset); - void removed(DeclarativeBarSet *barset); - -public Q_SLOTS: - static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); - void handleAdded(QList<QBarSet* > barsets); - void handleRemoved(QList<QBarSet* > barsets); -}; - class DeclarativeBarSeries : public QBarSeries, public QDeclarativeParserStatus { Q_OBJECT Q_INTERFACES(QDeclarativeParserStatus) - Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX) - Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY) Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) Q_CLASSINFO("DefaultProperty", "seriesChildren") @@ -123,23 +85,21 @@ public: // from QDeclarativeParserStatus public Q_SLOTS: static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + +private: + QAbstractAxis* m_axisX; + QAbstractAxis* m_axisY; }; class DeclarativeStackedBarSeries : public QStackedBarSeries, public QDeclarativeParserStatus { Q_OBJECT Q_INTERFACES(QDeclarativeParserStatus) - Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX) - Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY) Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) Q_CLASSINFO("DefaultProperty", "seriesChildren") public: explicit DeclarativeStackedBarSeries(QDeclarativeItem *parent = 0); - void setAxisX(QAbstractAxis *axis); - QAbstractAxis *axisX(); - void setAxisY(QAbstractAxis *axis); - QAbstractAxis *axisY(); QDeclarativeListProperty<QObject> seriesChildren(); Q_INVOKABLE DeclarativeBarSet *at(int index); Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); } @@ -153,23 +113,18 @@ public: // from QDeclarativeParserStatus public Q_SLOTS: static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + }; class DeclarativePercentBarSeries : public QPercentBarSeries, public QDeclarativeParserStatus { Q_OBJECT Q_INTERFACES(QDeclarativeParserStatus) - Q_PROPERTY(QAbstractAxis *axisX READ axisX WRITE setAxisX) - Q_PROPERTY(QAbstractAxis *axisY READ axisY WRITE setAxisY) Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) Q_CLASSINFO("DefaultProperty", "seriesChildren") public: explicit DeclarativePercentBarSeries(QDeclarativeItem *parent = 0); - void setAxisX(QAbstractAxis *axis); - QAbstractAxis *axisX(); - void setAxisY(QAbstractAxis *axis); - QAbstractAxis *axisY(); QDeclarativeListProperty<QObject> seriesChildren(); Q_INVOKABLE DeclarativeBarSet *at(int index); Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); } diff --git a/plugins/declarative/declarativechart.cpp b/plugins/declarative/declarativechart.cpp index f5f7290c..454eccaa 100644 --- a/plugins/declarative/declarativechart.cpp +++ b/plugins/declarative/declarativechart.cpp @@ -250,19 +250,15 @@ void DeclarativeChart::childEvent(QChildEvent *event) void DeclarativeChart::componentComplete() { - bool createAxis = true; foreach(QObject *child, children()) { if (qobject_cast<QAbstractSeries *>(child)) { // qDebug() << "DeclarativeChart::componentComplete(), add: " << child; // TODO: how about optional y-axis? m_chart->addSeries(qobject_cast<QAbstractSeries *>(child)); }else if(qobject_cast<QAbstractAxis *>(child)){ - createAxis = false; + } } - - if(createAxis) m_chart->createDefaultAxes(); - QDeclarativeItem::componentComplete(); } @@ -499,6 +495,21 @@ QAbstractSeries *DeclarativeChart::createSeries(DeclarativeChart::SeriesType typ return series; } +void DeclarativeChart::setAxisX(QAbstractAxis* axis, QAbstractSeries *series) +{ + m_chart->setAxisX(axis,series); +} + +void DeclarativeChart::setAxisY(QAbstractAxis* axis, QAbstractSeries *series) +{ + m_chart->setAxisY(axis,series); +} + +void DeclarativeChart::createDefaultAxes() +{ + m_chart->createDefaultAxes(); +} + #include "moc_declarativechart.cpp" QTCOMMERCIALCHART_END_NAMESPACE diff --git a/plugins/declarative/declarativechart.h b/plugins/declarative/declarativechart.h index b077da30..7ae0a1ae 100644 --- a/plugins/declarative/declarativechart.h +++ b/plugins/declarative/declarativechart.h @@ -114,12 +114,17 @@ public: qreal leftMargin(); qreal rightMargin(); + QAbstractAxis *axisX(QAbstractSeries *series = 0); + QAbstractAxis *axisY(QAbstractSeries *series = 0); + public: Q_INVOKABLE QAbstractSeries *series(int index); Q_INVOKABLE QAbstractSeries *series(QString seriesName); Q_INVOKABLE QAbstractSeries *createSeries(DeclarativeChart::SeriesType type, QString name = ""); - Q_INVOKABLE QAbstractAxis *axisX(QAbstractSeries *series = 0); - Q_INVOKABLE QAbstractAxis *axisY(QAbstractSeries *series = 0); + Q_INVOKABLE void setAxisX(QAbstractAxis* axis, QAbstractSeries *series = 0); + Q_INVOKABLE void setAxisY(QAbstractAxis* axis, QAbstractSeries *series = 0); + Q_INVOKABLE void createDefaultAxes(); + Q_INVOKABLE void zoom(qreal factor); Q_INVOKABLE void scrollLeft(qreal pixels); Q_INVOKABLE void scrollRight(qreal pixels); diff --git a/plugins/declarative/plugin.cpp b/plugins/declarative/plugin.cpp index b7a5b7f1..0b486b8c 100644 --- a/plugins/declarative/plugin.cpp +++ b/plugins/declarative/plugin.cpp @@ -74,12 +74,6 @@ public: QLatin1String("Trying to create uncreatable: Legend.")); qmlRegisterUncreatableType<QXYSeries>(uri, 1, 0, "XYSeries", QLatin1String("Trying to create uncreatable: XYSeries.")); - qmlRegisterUncreatableType<QScatterSeries>(uri, 1, 0, "QScatterSeries", - QLatin1String("Trying to create uncreatable: QScatterSeries.")); - qmlRegisterUncreatableType<QPieSeries>(uri, 1, 0, "QPieSeries", - QLatin1String("Trying to create uncreatable: QPieSeries.")); - qmlRegisterUncreatableType<QBarSet>(uri, 1, 0, "QBarSet", - QLatin1String("Trying to create uncreatable: QBarSet.")); qmlRegisterUncreatableType<QAbstractItemModel>(uri, 1, 0, "AbstractItemModel", QLatin1String("Trying to create uncreatable: AbstractItemModel.")); qmlRegisterUncreatableType<QXYModelMapper>(uri, 1, 0, "XYModelMapper", @@ -90,6 +84,8 @@ public: QLatin1String("Trying to create uncreatable: BarModelMapper.")); qmlRegisterUncreatableType<QAbstractSeries>(uri, 1, 0, "AbstractSeries", QLatin1String("Trying to create uncreatable: AbstractSeries.")); + qmlRegisterUncreatableType<QAbstractBarSeries>(uri, 1, 0, "AbstractBarSeries", + QLatin1String("Trying to create uncreatable: AbstractBarSeries.")); qmlRegisterUncreatableType<QAbstractAxis>(uri, 1, 0, "AbstractAxis", QLatin1String("Trying to create uncreatable: AbstractAxis.")); qmlRegisterUncreatableType<QPieModelMapper>(uri, 1, 0, "PieModelMapper", |