/****************************************************************************** ** ** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Data Visualization module. ** ** $QT_BEGIN_LICENSE:COMM$ ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** $QT_END_LICENSE$ ** ******************************************************************************/ #ifndef QBARDATAPROXY_H #define QBARDATAPROXY_H #include #include #include #include namespace QtDataVisualization { // typedefs introduced this way because QDoc doesn't understand namespace macros typedef QVector QBarDataRow; typedef QList QBarDataArray; } QT_BEGIN_NAMESPACE_DATAVISUALIZATION class QBarDataProxyPrivate; class QBar3DSeries; class QT_DATAVISUALIZATION_EXPORT QBarDataProxy : public QAbstractDataProxy { Q_OBJECT Q_PROPERTY(int rowCount READ rowCount NOTIFY rowCountChanged) Q_PROPERTY(QStringList rowLabels READ rowLabels WRITE setRowLabels NOTIFY rowLabelsChanged) Q_PROPERTY(QStringList columnLabels READ columnLabels WRITE setColumnLabels NOTIFY columnLabelsChanged) Q_PROPERTY(QBar3DSeries *series READ series NOTIFY seriesChanged) public: explicit QBarDataProxy(QObject *parent = 0); virtual ~QBarDataProxy(); QBar3DSeries *series() const; int rowCount() const; QStringList rowLabels() const; void setRowLabels(const QStringList &labels); QStringList columnLabels() const; void setColumnLabels(const QStringList &labels); const QBarDataArray *array() const; const QBarDataRow *rowAt(int rowIndex) const; const QBarDataItem *itemAt(int rowIndex, int columnIndex) const; const QBarDataItem *itemAt(const QPoint &position) const; void resetArray(); void resetArray(QBarDataArray *newArray); void resetArray(QBarDataArray *newArray, const QStringList &rowLabels, const QStringList &columnLabels); void setRow(int rowIndex, QBarDataRow *row); void setRow(int rowIndex, QBarDataRow *row, const QString &label); void setRows(int rowIndex, const QBarDataArray &rows); void setRows(int rowIndex, const QBarDataArray &rows, const QStringList &labels); void setItem(int rowIndex, int columnIndex, const QBarDataItem &item); void setItem(const QPoint &position, const QBarDataItem &item); int addRow(QBarDataRow *row); int addRow(QBarDataRow *row, const QString &label); int addRows(const QBarDataArray &rows); int addRows(const QBarDataArray &rows, const QStringList &labels); void insertRow(int rowIndex, QBarDataRow *row); void insertRow(int rowIndex, QBarDataRow *row, const QString &label); void insertRows(int rowIndex, const QBarDataArray &rows); void insertRows(int rowIndex, const QBarDataArray &rows, const QStringList &labels); void removeRows(int rowIndex, int removeCount, bool removeLabels = true); Q_SIGNALS: void arrayReset(); void rowsAdded(int startIndex, int count); void rowsChanged(int startIndex, int count); void rowsRemoved(int startIndex, int count); void rowsInserted(int startIndex, int count); void itemChanged(int rowIndex, int columnIndex); void rowCountChanged(int count); void rowLabelsChanged(); void columnLabelsChanged(); void seriesChanged(QBar3DSeries *series); protected: explicit QBarDataProxy(QBarDataProxyPrivate *d, QObject *parent = 0); QBarDataProxyPrivate *dptr(); const QBarDataProxyPrivate *dptrc() const; private: Q_DISABLE_COPY(QBarDataProxy) friend class Bars3DController; }; QT_END_NAMESPACE_DATAVISUALIZATION #endif