diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-26 14:53:50 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-27 11:29:30 +0200 |
commit | 7c942cc0f497fe7e61ce6a10fce45771c0858e09 (patch) | |
tree | aab5d2285b8e583f3565e305e0818a49503cf95c /src/datavisualization/data/qitemmodelsurfacedataproxy.h | |
parent | e029d0ea1d486dd3dbbfa4519a2125da202f22e4 (diff) |
Integrated item model mappings to item model proxies
Separate mapping object was redundant.
Task-number: QTRD-2564
Change-Id: I6b1a23ba52dbb184f46df0fdd64184eeb145c0c3
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualization/data/qitemmodelsurfacedataproxy.h')
-rw-r--r-- | src/datavisualization/data/qitemmodelsurfacedataproxy.h | 70 |
1 files changed, 59 insertions, 11 deletions
diff --git a/src/datavisualization/data/qitemmodelsurfacedataproxy.h b/src/datavisualization/data/qitemmodelsurfacedataproxy.h index 080bf54b..843fa3af 100644 --- a/src/datavisualization/data/qitemmodelsurfacedataproxy.h +++ b/src/datavisualization/data/qitemmodelsurfacedataproxy.h @@ -20,7 +20,6 @@ #define QITEMMODELSURFACEDATAPROXY_H #include <QtDataVisualization/qsurfacedataproxy.h> -#include <QtDataVisualization/qitemmodelsurfacedatamapping.h> #include <QAbstractItemModel> #include <QStringList> @@ -31,30 +30,79 @@ class QItemModelSurfaceDataProxyPrivate; class QT_DATAVISUALIZATION_EXPORT QItemModelSurfaceDataProxy : public QSurfaceDataProxy { Q_OBJECT - Q_PROPERTY(const QAbstractItemModel* itemModel READ itemModel WRITE setItemModel) - Q_PROPERTY(QItemModelSurfaceDataMapping* activeMapping READ activeMapping WRITE setActiveMapping) + Q_PROPERTY(const QAbstractItemModel* itemModel READ itemModel WRITE setItemModel NOTIFY itemModelChanged) + Q_PROPERTY(QString rowRole READ rowRole WRITE setRowRole NOTIFY rowRoleChanged) + Q_PROPERTY(QString columnRole READ columnRole WRITE setColumnRole NOTIFY columnRoleChanged) + Q_PROPERTY(QString valueRole READ valueRole WRITE setValueRole NOTIFY valueRoleChanged) + Q_PROPERTY(QStringList rowCategories READ rowCategories WRITE setRowCategories NOTIFY rowCategoriesChanged) + Q_PROPERTY(QStringList columnCategories READ columnCategories WRITE setColumnCategories NOTIFY columnCategoriesChanged) + Q_PROPERTY(bool useModelCategories READ useModelCategories WRITE setUseModelCategories NOTIFY useModelCategoriesChanged) + Q_PROPERTY(bool autoRowCategories READ autoRowCategories WRITE setAutoRowCategories NOTIFY autoRowCategoriesChanged) + Q_PROPERTY(bool autoColumnCategories READ autoColumnCategories WRITE setAutoColumnCategories NOTIFY autoColumnCategoriesChanged) public: - explicit QItemModelSurfaceDataProxy(); - explicit QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, - QItemModelSurfaceDataMapping *mapping); + explicit QItemModelSurfaceDataProxy(QObject *parent = 0); + QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, QObject *parent = 0); + QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, const QString &valueRole, + QObject *parent = 0); + QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, const QString &rowRole, + const QString &columnRole, const QString &valueRole, + QObject *parent = 0); + QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, const QString &rowRole, + const QString &columnRole, const QString &valueRole, + const QStringList &rowCategories, const QStringList &columnCategories, + QObject *parent = 0); virtual ~QItemModelSurfaceDataProxy(); void setItemModel(const QAbstractItemModel *itemModel); const QAbstractItemModel *itemModel() const; - void setActiveMapping(QItemModelSurfaceDataMapping *mapping); - QItemModelSurfaceDataMapping *activeMapping() const; - void addMapping(QItemModelSurfaceDataMapping *mapping); - void releaseMapping(QItemModelSurfaceDataMapping *mapping); - QList<QItemModelSurfaceDataMapping *> mappings() const; + void setRowRole(const QString &role); + QString rowRole() const; + void setColumnRole(const QString &role); + QString columnRole() const; + void setValueRole(const QString &role); + QString valueRole() const; + + void setRowCategories(const QStringList &categories); + QStringList rowCategories() const; + void setColumnCategories(const QStringList &categories); + QStringList columnCategories() const; + + void setUseModelCategories(bool enable); + bool useModelCategories() const; + void setAutoRowCategories(bool enable); + bool autoRowCategories() const; + void setAutoColumnCategories(bool enable); + bool autoColumnCategories() const; + + void remap(const QString &rowRole, const QString &columnRole, + const QString &valueRole, const QStringList &rowCategories, + const QStringList &columnCategories); + + Q_INVOKABLE int rowCategoryIndex(const QString& category); + Q_INVOKABLE int columnCategoryIndex(const QString& category); + +signals: + void itemModelChanged(const QAbstractItemModel* itemModel); + void rowRoleChanged(QString role); + void columnRoleChanged(QString role); + void valueRoleChanged(QString role); + void rowCategoriesChanged(QStringList categories); + void columnCategoriesChanged(QStringList categories); + void useModelCategoriesChanged(bool enable); + void autoRowCategoriesChanged(bool enable); + void autoColumnCategoriesChanged(bool enable); protected: QItemModelSurfaceDataProxyPrivate *dptr(); const QItemModelSurfaceDataProxyPrivate *dptrc() const; private: + void connectItemModelHandler(); Q_DISABLE_COPY(QItemModelSurfaceDataProxy) + + friend class SurfaceItemModelHandler; }; QT_DATAVISUALIZATION_END_NAMESPACE |