##// END OF EJS Templates
QML Plugins and sample for that...
QML Plugins and sample for that Change-Id: I74bbc82149936be75c960fec0470256c05be3c87 Reviewed-by: Mika Salmela <mika.salmela@digia.com>

File last commit:

r2481:20a93e498d73
r2481:20a93e498d73
Show More
declarativechart.h
184 lines | 6.8 KiB | text/x-c | CLexer
Jani Honkonen
Add/modify license headers
r830 /****************************************************************************
**
Miikka Heikkinen
More copyright year changes
r2433 ** Copyright (C) 2013 Digia Plc
Jani Honkonen
Add/modify license headers
r830 ** 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$
**
****************************************************************************/
Jani Honkonen
First draft of project structure
r1 #ifndef DECLARATIVECHART_H
#define DECLARATIVECHART_H
#include <QtCore/QtGlobal>
Jani Honkonen
Fixing qml build for latest Qt5...
r2247 #include <QtDeclarative/QDeclarativeItem>
Tero Ahola
Removed unneeded includes from declarative plugin
r1831 #include "qchart.h"
Tero Ahola
Proof-of-concept for QML api...
r120
QTCOMMERCIALCHART_BEGIN_NAMESPACE
Tero Ahola
Added ChartView.minimumMargins to QML properties
r1928 class DeclarativeMargins;
Tero Ahola
Added axisXTop and axisYRight properties to QML series APIs
r2296 class Domain;
class DeclarativeAxes;
Tero Ahola
Added ChartView.minimumMargins to QML properties
r1928
Tero Ahola
Proof-of-concept for QML api...
r120 class DeclarativeChart : public QDeclarativeItem
Jani Honkonen
First draft of project structure
r1 {
Q_OBJECT
Tero Ahola
color and borderColor properties to XY charts; removed unnecessary signals
r1481 Q_PROPERTY(Theme theme READ theme WRITE setTheme)
Q_PROPERTY(Animation animationOptions READ animationOptions WRITE setAnimationOptions)
Q_PROPERTY(QString title READ title WRITE setTitle)
Jani Honkonen
Add qml Font properties & docs
r1517 Q_PROPERTY(QFont titleFont READ titleFont WRITE setTitleFont)
Tero Ahola
QML ChartView scrolling, zooming, drop shadow
r1461 Q_PROPERTY(QColor titleColor READ titleColor WRITE setTitleColor NOTIFY titleColorChanged)
Tero Ahola
Qml ChartView properties; legend to use Qt alignments
r1357 Q_PROPERTY(QLegend *legend READ legend)
Tero Ahola
QML demo with dynamic data
r1240 Q_PROPERTY(int count READ count)
Tero Ahola
Qml ChartView properties; legend to use Qt alignments
r1357 Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged)
Tero Ahola
QML ChartView scrolling, zooming, drop shadow
r1461 Q_PROPERTY(bool dropShadowEnabled READ dropShadowEnabled WRITE setDropShadowEnabled NOTIFY dropShadowEnabledChanged)
Tero Ahola
Improved ChartView.minimuMargins implementation
r1946 Q_PROPERTY(qreal topMargin READ topMargin)
Q_PROPERTY(qreal bottomMargin READ bottomMargin)
Q_PROPERTY(qreal leftMargin READ leftMargin)
Q_PROPERTY(qreal rightMargin READ rightMargin)
Q_PROPERTY(DeclarativeMargins *minimumMargins READ minimumMargins NOTIFY minimumMarginsChanged REVISION 1)
Michal Klocek
Rename minimumMargins to margins in QML plugin version 1.2
r2090 Q_PROPERTY(DeclarativeMargins *margins READ margins NOTIFY marginsChanged REVISION 2)
Tero Ahola
Added ChartView.plotArea to QML API
r1929 Q_PROPERTY(QRectF plotArea READ plotArea NOTIFY plotAreaChanged REVISION 1)
Tero Ahola
Added axisXTop and axisYRight properties to QML series APIs
r2296 Q_PROPERTY(QDeclarativeListProperty<QAbstractAxis> axes READ axes REVISION 2)
Tero Ahola
QML demo with dynamic data
r1240 Q_ENUMS(Animation)
Q_ENUMS(Theme)
Q_ENUMS(SeriesType)
Tero Ahola
Legend to QML API
r1095
public:
Tero Ahola
QML demo with dynamic data
r1240 // duplicating enums from QChart to make the QML api namings 1-to-1 with the C++ api
enum Theme {
ChartThemeLight = 0,
ChartThemeBlueCerulean,
ChartThemeDark,
ChartThemeBrownSand,
ChartThemeBlueNcs,
ChartThemeHighContrast,
ChartThemeBlueIcy
};
enum Animation {
NoAnimation = 0x0,
GridAxisAnimations = 0x1,
Jani Honkonen
coding style fixes for plugins
r2101 SeriesAnimations = 0x2,
Tero Ahola
QML demo with dynamic data
r1240 AllAnimations = 0x3
};
enum SeriesType {
SeriesTypeLine,
SeriesTypeArea,
SeriesTypeBar,
SeriesTypeStackedBar,
SeriesTypePercentBar,
Mika Salmela
QML Plugins and sample for that...
r2481 SeriesTypeBoxPlot,
Tero Ahola
QML demo with dynamic data
r1240 SeriesTypePie,
SeriesTypeScatter,
sauimone
added horizontal barcharts to qmlchart demo
r1811 SeriesTypeSpline,
SeriesTypeHorizontalBar,
SeriesTypeHorizontalStackedBar,
SeriesTypeHorizontalPercentBar
Tero Ahola
QML demo with dynamic data
r1240 };
Jani Honkonen
First draft of project structure
r1 public:
DeclarativeChart(QDeclarativeItem *parent = 0);
Tero Ahola
d
r722 ~DeclarativeChart();
Tero Ahola
Proof-of-concept for QML api...
r120
public: // From QDeclarativeItem/QGraphicsItem
Tero Ahola
Simplified declarative implementation
r1117 void childEvent(QChildEvent *event);
void componentComplete();
Tero Ahola
Proof-of-concept for QML api...
r120 void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry);
public:
Tero Ahola
QML demo with dynamic data
r1240 void setTheme(DeclarativeChart::Theme theme);
DeclarativeChart::Theme theme();
void setAnimationOptions(DeclarativeChart::Animation animations);
DeclarativeChart::Animation animationOptions();
Tero Ahola
Qml ChartView properties; legend to use Qt alignments
r1357 void setTitle(QString title);
QString title();
QLegend *legend();
Jani Honkonen
Add qml Font properties & docs
r1517 QFont titleFont() const;
Jani Honkonen
coding style fixes for plugins
r2101 void setTitleFont(const QFont &font);
Tero Ahola
Qml ChartView properties; legend to use Qt alignments
r1357 void setTitleColor(QColor color);
QColor titleColor();
void setBackgroundColor(QColor color);
QColor backgroundColor();
Tero Ahola
QML demo with dynamic data
r1240 int count();
Tero Ahola
QML ChartView scrolling, zooming, drop shadow
r1461 void setDropShadowEnabled(bool enabled);
bool dropShadowEnabled();
Tero Ahola
Fixed a bug in ChartView.axes property when no series added
r2300
// Margins & plotArea
Tero Ahola
Added property definitions to QChart
r1524 qreal topMargin();
qreal bottomMargin();
qreal leftMargin();
qreal rightMargin();
Michal Klocek
Rename minimumMargins to margins in QML plugin version 1.2
r2090 DeclarativeMargins *minimumMargins() { return m_margins; }
Q_REVISION(2) DeclarativeMargins *margins() { return m_margins; }
Tero Ahola
Added ChartView.plotArea to QML API
r1929 QRectF plotArea() { return m_chart->plotArea(); }
Michal Klocek
Adds axis to qml...
r1604
Tero Ahola
Fixed a bug in ChartView.axes property when no series added
r2300 // Axis handling
QAbstractAxis *defaultAxis(Qt::Orientation orientation, QAbstractSeries *series);
void initializeAxes(QAbstractSeries *series);
void doInitializeAxes(QAbstractSeries *series, DeclarativeAxes *axes);
Tero Ahola
Added axisXTop and axisYRight properties to QML series APIs
r2296 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);
Tero Ahola
QML methods of series: several fixes and documentation
r1521 public:
Q_INVOKABLE QAbstractSeries *series(int index);
Q_INVOKABLE QAbstractSeries *series(QString seriesName);
Tero Ahola
Fixed Qt5 specific issue with ChartView.createSeries series types
r2389 Q_INVOKABLE QAbstractSeries *createSeries(int type, QString name = "", QAbstractAxis *axisX = 0, QAbstractAxis *axisY = 0);
Tero Ahola
QML ChartView signals seriesAdded and seriesRemoved
r2068 Q_INVOKABLE void removeSeries(QAbstractSeries *series);
Tero Ahola
Added removeSeries and removeAllSeries to QML API
r1948 Q_INVOKABLE void removeAllSeries() { m_chart->removeAllSeries(); }
Tero Ahola
Refactored QML axis handling
r1813 Q_INVOKABLE void setAxisX(QAbstractAxis *axis, QAbstractSeries *series = 0);
Q_INVOKABLE void setAxisY(QAbstractAxis *axis, QAbstractSeries *series = 0);
Michal Klocek
Adds axis to qml...
r1604 Q_INVOKABLE void createDefaultAxes();
Michal Klocek
Fixes missing update barcategory...
r1643 Q_INVOKABLE QAbstractAxis *axisX(QAbstractSeries *series = 0);
Q_INVOKABLE QAbstractAxis *axisY(QAbstractSeries *series = 0);
Tero Ahola
QML ChartView scrolling, zooming, drop shadow
r1461 Q_INVOKABLE void zoom(qreal factor);
Q_INVOKABLE void scrollLeft(qreal pixels);
Q_INVOKABLE void scrollRight(qreal pixels);
Q_INVOKABLE void scrollUp(qreal pixels);
Q_INVOKABLE void scrollDown(qreal pixels);
Tero Ahola
Proof-of-concept for QML api...
r120
Tero Ahola
Qml ChartView properties; legend to use Qt alignments
r1357 Q_SIGNALS:
void axisLabelsChanged();
Tero Ahola
Added property definitions to QChart
r1524 void titleColorChanged(QColor color);
Tero Ahola
Qml ChartView properties; legend to use Qt alignments
r1357 void backgroundColorChanged();
Tero Ahola
QML ChartView scrolling, zooming, drop shadow
r1461 void dropShadowEnabledChanged(bool enabled);
Tero Ahola
Improved ChartView.minimuMargins implementation
r1946 void minimumMarginsChanged();
Michal Klocek
Rename minimumMargins to margins in QML plugin version 1.2
r2090 Q_REVISION(2) void marginsChanged();
Tero Ahola
Added ChartView.plotArea to QML API
r1929 void plotAreaChanged(QRectF plotArea);
Jani Honkonen
coding style fixes for plugins
r2101 void seriesAdded(QAbstractSeries *series);
void seriesRemoved(QAbstractSeries *series);
Tero Ahola
Qml ChartView properties; legend to use Qt alignments
r1357
Tero Ahola
Added axisXTop and axisYRight properties to QML series APIs
r2296 private Q_SLOTS:
Tero Ahola
Added ChartView.minimumMargins to QML properties
r1928 void changeMinimumMargins(int top, int bottom, int left, int right);
Tero Ahola
Refactored QML axis handling
r1813 void handleAxisXSet(QAbstractAxis *axis);
void handleAxisYSet(QAbstractAxis *axis);
Tero Ahola
Added axisXTop and axisYRight properties to QML series APIs
r2296 void handleAxisXTopSet(QAbstractAxis *axis);
void handleAxisYRightSet(QAbstractAxis *axis);
Jani Honkonen
Some fixes for Qt5, vs2010 build and qml
r2277 void handleSeriesAdded(QAbstractSeries *series);
Tero Ahola
Added property definitions to QChart
r1524
private:
Tero Ahola
Proof-of-concept for QML api...
r120 // 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;
Tero Ahola
Added ChartView.minimumMargins to QML properties
r1928 //QMargins m_chartMargins;
Michal Klocek
Rename minimumMargins to margins in QML plugin version 1.2
r2090 DeclarativeMargins *m_margins;
Jani Honkonen
First draft of project structure
r1 };
Tero Ahola
Proof-of-concept for QML api...
r120 QTCOMMERCIALCHART_END_NAMESPACE
Jani Honkonen
First draft of project structure
r1
#endif // DECLARATIVECHART_H