##// END OF EJS Templates
Fix long label visibility...
Fix long label visibility The detection of overlapping items has been corrected. By default, item text is truncated thus only the ellipsis can overlap. Change-Id: I856f440184006b91c23e44d63ddef5b1796f38a1 Task-number: QTRD-3310 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>

File last commit:

r2688:bdd8266c9c7d
r2706:11c2ee82f698
Show More
declarativechart.h
235 lines | 8.7 KiB | text/x-c | CLexer
Jani Honkonen
Add/modify license headers
r830 /****************************************************************************
**
Titta Heikkala
Update copyright year...
r2688 ** Copyright (C) 2014 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
**
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 ** This file is part of the Qt Enterprise Charts Add-on.
Jani Honkonen
Add/modify license headers
r830 **
** $QT_BEGIN_LICENSE$
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 ** Licensees holding valid Qt Enterprise licenses may use this file in
** accordance with the Qt Enterprise License Agreement provided with the
Jani Honkonen
Add/modify license headers
r830 ** 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>
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 #include "shared_defines.h"
#ifdef CHARTS_FOR_QUICK2
#include <QtQuick/QQuickItem>
#include <QtQuick/QQuickPaintedItem>
#include <QtWidgets/QGraphicsScene>
Heikkinen Miikka
Fix quick2 support with multithreaded scenegraph rendering....
r2505 #include <QtCore/QMutex>
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 #else
Jani Honkonen
Fixing qml build for latest Qt5...
r2247 #include <QtDeclarative/QDeclarativeItem>
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 #endif
Jani Honkonen
Fixing qml build for latest Qt5...
r2247
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
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 class DeclarativeChart : public QDECLARATIVE_PAINTED_ITEM
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)
Titta Heikkala
Fix DeclarativeChart::legend property...
r2685 Q_PROPERTY(QLegend *legend READ legend CONSTANT)
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)
Miikka Heikkinen
Added API to set chart background roundness...
r2549 Q_PROPERTY(qreal backgroundRoundness READ backgroundRoundness WRITE setBackgroundRoundness NOTIFY backgroundRoundnessChanged REVISION 3)
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)
Miikka Heikkinen
Add API to specify plot area background....
r2498 Q_PROPERTY(QColor plotAreaColor READ plotAreaColor WRITE setPlotAreaColor NOTIFY plotAreaColorChanged REVISION 3)
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 #ifdef CHARTS_FOR_QUICK2
Q_PROPERTY(QQmlListProperty<QAbstractAxis> axes READ axes REVISION 2)
#else
Tero Ahola
Added axisXTop and axisYRight properties to QML series APIs
r2296 Q_PROPERTY(QDeclarativeListProperty<QAbstractAxis> axes READ axes REVISION 2)
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 #endif
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,
Titta Heikkala
Add new Qt theme template...
r2625 ChartThemeBlueIcy,
ChartThemeQt
Tero Ahola
QML demo with dynamic data
r1240 };
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
A new box-and-whiskers series type added to charts....
r2548 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:
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 DeclarativeChart(QDECLARATIVE_ITEM *parent = 0);
Tero Ahola
d
r722 ~DeclarativeChart();
Tero Ahola
Proof-of-concept for QML api...
r120
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 public: // From parent classes
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);
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 #ifdef CHARTS_FOR_QUICK2
void paint(QPainter *painter);
Miikka Heikkinen
Fix mouse events for QtQuick2...
r2495 protected:
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void hoverMoveEvent(QHoverEvent *event);
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 private Q_SLOTS:
void handleAntialiasingChanged(bool enable);
Heikkinen Miikka
Fix quick2 support with multithreaded scenegraph rendering....
r2505 void sceneChanged(QList<QRectF> region);
void renderScene();
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 #endif
Tero Ahola
Proof-of-concept for QML api...
r120
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();
Miikka Heikkinen
Add API to specify plot area background....
r2498 Q_REVISION(3) void setPlotAreaColor(QColor color);
Q_REVISION(3) QColor plotAreaColor();
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();
Miikka Heikkinen
Added API to set chart background roundness...
r2549 Q_REVISION(3) qreal backgroundRoundness() const;
Q_REVISION(3) void setBackgroundRoundness(qreal diameter);
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);
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 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);
Tero Ahola
Added axisXTop and axisYRight properties to QML series APIs
r2296
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);
Miikka Heikkinen
Add API to specify plot area background....
r2498 Q_REVISION(3) void plotAreaColorChanged();
Miikka Heikkinen
Added API to set chart background roundness...
r2549 Q_REVISION(3) void backgroundRoundnessChanged(qreal diameter);
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
Miikka Heikkinen
Add Polar chart support...
r2483 protected:
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 explicit DeclarativeChart(QChart::ChartType type, QDECLARATIVE_ITEM *parent);
Miikka Heikkinen
Add Polar chart support...
r2483
Tero Ahola
Added property definitions to QChart
r1524 private:
Miikka Heikkinen
Add Polar chart support...
r2483 void initChart(QChart::ChartType type);
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;
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 #ifdef CHARTS_FOR_QUICK2
QGraphicsScene *m_scene;
Miikka Heikkinen
Fix mouse events for QtQuick2...
r2495 QPointF m_mousePressScenePoint;
QPoint m_mousePressScreenPoint;
QPointF m_lastMouseMoveScenePoint;
QPoint m_lastMouseMoveScreenPoint;
Qt::MouseButton m_mousePressButton;
Qt::MouseButtons m_mousePressButtons;
Heikkinen Miikka
Fix quick2 support with multithreaded scenegraph rendering....
r2505 QMutex m_sceneImageLock;
QImage *m_currentSceneImage;
bool m_updatePending;
Miikka Heikkinen
Further fixes to threaded rendering...
r2506 Qt::HANDLE m_paintThreadId;
Qt::HANDLE m_guiThreadId;
Miikka Heikkinen
Generate charts plugin for QtQuick2 as well as QtQuick1...
r2488 #endif
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