From 7f505c5b6c1a613ffad90fb4d90ff81071cb6236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Mon, 2 Jun 2014 12:34:43 +0300 Subject: Fix QML item model crashes Needed to allow using charts and data visualization from the same application. Low-impact binary break Change-Id: I4b82e540b202e18e2e7a4278d06c9e9f43001a8f Change-Id: I4b82e540b202e18e2e7a4278d06c9e9f43001a8f Reviewed-by: Miikka Heikkinen --- .../data/abstractitemmodelhandler.cpp | 4 ++-- .../data/abstractitemmodelhandler_p.h | 6 +++--- .../data/qitemmodelbardataproxy.cpp | 16 +++++++-------- .../data/qitemmodelbardataproxy.h | 18 ++++++++-------- .../data/qitemmodelscatterdataproxy.cpp | 10 ++++----- .../data/qitemmodelscatterdataproxy.h | 12 +++++------ .../data/qitemmodelsurfacedataproxy.cpp | 16 +++++++-------- .../data/qitemmodelsurfacedataproxy.h | 24 ++++++++++++---------- 8 files changed, 54 insertions(+), 52 deletions(-) (limited to 'src/datavisualization/data') diff --git a/src/datavisualization/data/abstractitemmodelhandler.cpp b/src/datavisualization/data/abstractitemmodelhandler.cpp index 9f2ccd86..f8ddf7b7 100644 --- a/src/datavisualization/data/abstractitemmodelhandler.cpp +++ b/src/datavisualization/data/abstractitemmodelhandler.cpp @@ -34,7 +34,7 @@ AbstractItemModelHandler::~AbstractItemModelHandler() { } -void AbstractItemModelHandler::setItemModel(const QAbstractItemModel *itemModel) +void AbstractItemModelHandler::setItemModel(QAbstractItemModel *itemModel) { if (itemModel != m_itemModel.data()) { if (!m_itemModel.isNull()) @@ -69,7 +69,7 @@ void AbstractItemModelHandler::setItemModel(const QAbstractItemModel *itemModel) } } -const QAbstractItemModel *AbstractItemModelHandler::itemModel() const +QAbstractItemModel *AbstractItemModelHandler::itemModel() const { return m_itemModel.data(); } diff --git a/src/datavisualization/data/abstractitemmodelhandler_p.h b/src/datavisualization/data/abstractitemmodelhandler_p.h index ecbfe61c..e11d229a 100644 --- a/src/datavisualization/data/abstractitemmodelhandler_p.h +++ b/src/datavisualization/data/abstractitemmodelhandler_p.h @@ -43,8 +43,8 @@ public: AbstractItemModelHandler(QObject *parent = 0); virtual ~AbstractItemModelHandler(); - virtual void setItemModel(const QAbstractItemModel *itemModel); - virtual const QAbstractItemModel *itemModel() const; + virtual void setItemModel(QAbstractItemModel *itemModel); + virtual QAbstractItemModel *itemModel() const; public slots: virtual void handleColumnsInserted(const QModelIndex &parent, int start, int end); @@ -71,7 +71,7 @@ signals: protected: virtual void resolveModel() = 0; - QPointer m_itemModel; // Not owned + QPointer m_itemModel; // Not owned bool resolvePending; QTimer m_resolveTimer; bool m_fullReset; diff --git a/src/datavisualization/data/qitemmodelbardataproxy.cpp b/src/datavisualization/data/qitemmodelbardataproxy.cpp index f87deb20..6683e06f 100644 --- a/src/datavisualization/data/qitemmodelbardataproxy.cpp +++ b/src/datavisualization/data/qitemmodelbardataproxy.cpp @@ -282,7 +282,7 @@ QItemModelBarDataProxy::QItemModelBarDataProxy(QObject *parent) * Constructs QItemModelBarDataProxy with \a itemModel and optional \a parent. Proxy doesn't take * ownership of the \a itemModel, as typically item models are owned by other controls. */ -QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemModel, QObject *parent) +QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, QObject *parent) : QBarDataProxy(new QItemModelBarDataProxyPrivate(this), parent) { setItemModel(itemModel); @@ -296,7 +296,7 @@ QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemMod * This constructor is meant to be used with models that have data properly sorted * in rows and columns already, so it also sets useModelCategories property to true. */ -QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemModel, +QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &valueRole, QObject *parent) : QBarDataProxy(new QItemModelBarDataProxyPrivate(this), parent) { @@ -311,7 +311,7 @@ QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemMod * ownership of the \a itemModel, as typically item models are owned by other controls. * The role mappings are set with \a rowRole, \a columnRole, and \a valueRole. */ -QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemModel, +QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, QObject *parent) @@ -329,7 +329,7 @@ QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemMod * ownership of the \a itemModel, as typically item models are owned by other controls. * The role mappings are set with \a rowRole, \a columnRole, \a valueRole, and \a rotationRole. */ -QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemModel, +QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, @@ -352,7 +352,7 @@ QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemMod * Row and column categories are set with \a rowCategories and \a columnCategories. * This constructor also sets autoRowCategories and autoColumnCategories to false. */ -QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemModel, +QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, @@ -379,7 +379,7 @@ QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemMod * Row and column categories are set with \a rowCategories and \a columnCategories. * This constructor also sets autoRowCategories and autoColumnCategories to false. */ -QItemModelBarDataProxy::QItemModelBarDataProxy(const QAbstractItemModel *itemModel, +QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, @@ -414,12 +414,12 @@ QItemModelBarDataProxy::~QItemModelBarDataProxy() * Defines item model. Does not take ownership of the model, but does connect to it to listen for * changes. */ -void QItemModelBarDataProxy::setItemModel(const QAbstractItemModel *itemModel) +void QItemModelBarDataProxy::setItemModel(QAbstractItemModel *itemModel) { dptr()->m_itemModelHandler->setItemModel(itemModel); } -const QAbstractItemModel *QItemModelBarDataProxy::itemModel() const +QAbstractItemModel *QItemModelBarDataProxy::itemModel() const { return dptrc()->m_itemModelHandler->itemModel(); } diff --git a/src/datavisualization/data/qitemmodelbardataproxy.h b/src/datavisualization/data/qitemmodelbardataproxy.h index 317befdc..d7394dcf 100644 --- a/src/datavisualization/data/qitemmodelbardataproxy.h +++ b/src/datavisualization/data/qitemmodelbardataproxy.h @@ -31,7 +31,7 @@ class QT_DATAVISUALIZATION_EXPORT QItemModelBarDataProxy : public QBarDataProxy { Q_OBJECT Q_ENUMS(MultiMatchBehavior) - Q_PROPERTY(const QAbstractItemModel* itemModel READ itemModel WRITE setItemModel NOTIFY itemModelChanged) + Q_PROPERTY(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) @@ -60,27 +60,27 @@ public: }; explicit QItemModelBarDataProxy(QObject *parent = 0); - QItemModelBarDataProxy(const QAbstractItemModel *itemModel, QObject *parent = 0); - QItemModelBarDataProxy(const QAbstractItemModel *itemModel, const QString &valueRole, + QItemModelBarDataProxy(QAbstractItemModel *itemModel, QObject *parent = 0); + QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &valueRole, QObject *parent = 0); - QItemModelBarDataProxy(const QAbstractItemModel *itemModel, const QString &rowRole, + QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, QObject *parent = 0); - QItemModelBarDataProxy(const QAbstractItemModel *itemModel, const QString &rowRole, + QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, const QString &rotationRole, QObject *parent = 0); - QItemModelBarDataProxy(const QAbstractItemModel *itemModel, const QString &rowRole, + QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, const QStringList &rowCategories, const QStringList &columnCategories, QObject *parent = 0); - QItemModelBarDataProxy(const QAbstractItemModel *itemModel, const QString &rowRole, + QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, const QString &rotationRole, const QStringList &rowCategories, const QStringList &columnCategories, QObject *parent = 0); virtual ~QItemModelBarDataProxy(); - void setItemModel(const QAbstractItemModel *itemModel); - const QAbstractItemModel *itemModel() const; + void setItemModel(QAbstractItemModel *itemModel); + QAbstractItemModel *itemModel() const; void setRowRole(const QString &role); QString rowRole() const; diff --git a/src/datavisualization/data/qitemmodelscatterdataproxy.cpp b/src/datavisualization/data/qitemmodelscatterdataproxy.cpp index ad588ab1..56e164f9 100644 --- a/src/datavisualization/data/qitemmodelscatterdataproxy.cpp +++ b/src/datavisualization/data/qitemmodelscatterdataproxy.cpp @@ -206,7 +206,7 @@ QItemModelScatterDataProxy::QItemModelScatterDataProxy(QObject *parent) * Constructs QItemModelScatterDataProxy with \a itemModel and optional \a parent. Proxy doesn't take * ownership of the \a itemModel, as typically item models are owned by other controls. */ -QItemModelScatterDataProxy::QItemModelScatterDataProxy(const QAbstractItemModel *itemModel, +QItemModelScatterDataProxy::QItemModelScatterDataProxy(QAbstractItemModel *itemModel, QObject *parent) : QScatterDataProxy(new QItemModelScatterDataProxyPrivate(this), parent) { @@ -220,7 +220,7 @@ QItemModelScatterDataProxy::QItemModelScatterDataProxy(const QAbstractItemModel * The xPosRole property is set to \a xPosRole, yPosRole property to \a yPosRole, and zPosRole property * to \a zPosRole. */ -QItemModelScatterDataProxy::QItemModelScatterDataProxy(const QAbstractItemModel *itemModel, +QItemModelScatterDataProxy::QItemModelScatterDataProxy(QAbstractItemModel *itemModel, const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, @@ -240,7 +240,7 @@ QItemModelScatterDataProxy::QItemModelScatterDataProxy(const QAbstractItemModel * The xPosRole property is set to \a xPosRole, yPosRole property to \a yPosRole, zPosRole property * to \a zPosRole, and rotationRole property to \a rotationRole. */ -QItemModelScatterDataProxy::QItemModelScatterDataProxy(const QAbstractItemModel *itemModel, +QItemModelScatterDataProxy::QItemModelScatterDataProxy(QAbstractItemModel *itemModel, const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, @@ -269,12 +269,12 @@ QItemModelScatterDataProxy::~QItemModelScatterDataProxy() * Defines the item model. Does not take ownership of the model, but does connect to it to listen for * changes. */ -void QItemModelScatterDataProxy::setItemModel(const QAbstractItemModel *itemModel) +void QItemModelScatterDataProxy::setItemModel(QAbstractItemModel *itemModel) { dptr()->m_itemModelHandler->setItemModel(itemModel); } -const QAbstractItemModel *QItemModelScatterDataProxy::itemModel() const +QAbstractItemModel *QItemModelScatterDataProxy::itemModel() const { return dptrc()->m_itemModelHandler->itemModel(); } diff --git a/src/datavisualization/data/qitemmodelscatterdataproxy.h b/src/datavisualization/data/qitemmodelscatterdataproxy.h index 5c2bbce9..3215c688 100644 --- a/src/datavisualization/data/qitemmodelscatterdataproxy.h +++ b/src/datavisualization/data/qitemmodelscatterdataproxy.h @@ -31,7 +31,7 @@ class QItemModelScatterDataProxyPrivate; class QT_DATAVISUALIZATION_EXPORT QItemModelScatterDataProxy : public QScatterDataProxy { Q_OBJECT - Q_PROPERTY(const QAbstractItemModel* itemModel READ itemModel WRITE setItemModel NOTIFY itemModelChanged) + Q_PROPERTY(QAbstractItemModel* itemModel READ itemModel WRITE setItemModel NOTIFY itemModelChanged) Q_PROPERTY(QString xPosRole READ xPosRole WRITE setXPosRole NOTIFY xPosRoleChanged) Q_PROPERTY(QString yPosRole READ yPosRole WRITE setYPosRole NOTIFY yPosRoleChanged) Q_PROPERTY(QString zPosRole READ zPosRole WRITE setZPosRole NOTIFY zPosRoleChanged) @@ -47,18 +47,18 @@ class QT_DATAVISUALIZATION_EXPORT QItemModelScatterDataProxy : public QScatterDa public: explicit QItemModelScatterDataProxy(QObject *parent = 0); - QItemModelScatterDataProxy(const QAbstractItemModel *itemModel, QObject *parent = 0); - QItemModelScatterDataProxy(const QAbstractItemModel *itemModel, + QItemModelScatterDataProxy(QAbstractItemModel *itemModel, QObject *parent = 0); + QItemModelScatterDataProxy(QAbstractItemModel *itemModel, const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, QObject *parent = 0); - QItemModelScatterDataProxy(const QAbstractItemModel *itemModel, + QItemModelScatterDataProxy(QAbstractItemModel *itemModel, const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, const QString &rotationRole, QObject *parent = 0); virtual ~QItemModelScatterDataProxy(); - void setItemModel(const QAbstractItemModel *itemModel); - const QAbstractItemModel *itemModel() const; + void setItemModel(QAbstractItemModel *itemModel); + QAbstractItemModel *itemModel() const; void setXPosRole(const QString &role); QString xPosRole() const; diff --git a/src/datavisualization/data/qitemmodelsurfacedataproxy.cpp b/src/datavisualization/data/qitemmodelsurfacedataproxy.cpp index 6ed1ec07..00f9b201 100644 --- a/src/datavisualization/data/qitemmodelsurfacedataproxy.cpp +++ b/src/datavisualization/data/qitemmodelsurfacedataproxy.cpp @@ -325,7 +325,7 @@ QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(QObject *parent) * Constructs QItemModelSurfaceDataProxy with \a itemModel and optional \a parent. Proxy doesn't take * ownership of the \a itemModel, as typically item models are owned by other controls. */ -QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, +QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, QObject *parent) : QSurfaceDataProxy(new QItemModelSurfaceDataProxyPrivate(this), parent) { @@ -340,7 +340,7 @@ QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel * This constructor is meant to be used with models that have data properly sorted * in rows and columns already, so it also sets useModelCategories property to true. */ -QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, +QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, const QString &yPosRole, QObject *parent) : QSurfaceDataProxy(new QItemModelSurfaceDataProxyPrivate(this), parent) @@ -357,7 +357,7 @@ QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel * The role mappings are set with \a rowRole, \a columnRole, and \a yPosRole. * The zPosRole and the xPosRole are set to \a rowRole and \a columnRole, respectively. */ -QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, +QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &yPosRole, @@ -379,7 +379,7 @@ QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel * The role mappings are set with \a rowRole, \a columnRole, \a xPosRole, \a yPosRole, and * \a zPosRole. */ -QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, +QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &xPosRole, @@ -405,7 +405,7 @@ QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel * Row and column categories are set with \a rowCategories and \a columnCategories. * This constructor also sets autoRowCategories and autoColumnCategories to false. */ -QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, +QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &yPosRole, @@ -435,7 +435,7 @@ QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel * Row and column categories are set with \a rowCategories and \a columnCategories. * This constructor also sets autoRowCategories and autoColumnCategories to false. */ -QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, +QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &xPosRole, @@ -472,12 +472,12 @@ QItemModelSurfaceDataProxy::~QItemModelSurfaceDataProxy() * Defines item model. Does not take ownership of the model, but does connect to it to listen for * changes. */ -void QItemModelSurfaceDataProxy::setItemModel(const QAbstractItemModel *itemModel) +void QItemModelSurfaceDataProxy::setItemModel(QAbstractItemModel *itemModel) { dptr()->m_itemModelHandler->setItemModel(itemModel); } -const QAbstractItemModel *QItemModelSurfaceDataProxy::itemModel() const +QAbstractItemModel *QItemModelSurfaceDataProxy::itemModel() const { return dptrc()->m_itemModelHandler->itemModel(); } diff --git a/src/datavisualization/data/qitemmodelsurfacedataproxy.h b/src/datavisualization/data/qitemmodelsurfacedataproxy.h index 27ce9ea5..1b95ed90 100644 --- a/src/datavisualization/data/qitemmodelsurfacedataproxy.h +++ b/src/datavisualization/data/qitemmodelsurfacedataproxy.h @@ -32,7 +32,7 @@ class QT_DATAVISUALIZATION_EXPORT QItemModelSurfaceDataProxy : public QSurfaceDa { Q_OBJECT Q_ENUMS(MultiMatchBehavior) - Q_PROPERTY(const QAbstractItemModel* itemModel READ itemModel WRITE setItemModel NOTIFY itemModelChanged) + Q_PROPERTY(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 xPosRole READ xPosRole WRITE setXPosRole NOTIFY xPosRoleChanged) @@ -64,29 +64,31 @@ public: }; explicit QItemModelSurfaceDataProxy(QObject *parent = 0); - QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, QObject *parent = 0); - QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, const QString &yPosRole, + QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, QObject *parent = 0); + QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, const QString &yPosRole, QObject *parent = 0); - QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, const QString &rowRole, + QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &yPosRole, QObject *parent = 0); - QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, const QString &rowRole, + QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, QObject *parent = 0); - QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, const QString &rowRole, + QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &yPosRole, - const QStringList &rowCategories, const QStringList &columnCategories, + const QStringList &rowCategories, + const QStringList &columnCategories, QObject *parent = 0); - QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel, const QString &rowRole, + QItemModelSurfaceDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, - const QStringList &rowCategories, const QStringList &columnCategories, + const QStringList &rowCategories, + const QStringList &columnCategories, QObject *parent = 0); virtual ~QItemModelSurfaceDataProxy(); - void setItemModel(const QAbstractItemModel *itemModel); - const QAbstractItemModel *itemModel() const; + void setItemModel(QAbstractItemModel *itemModel); + QAbstractItemModel *itemModel() const; void setRowRole(const QString &role); QString rowRole() const; -- cgit v1.2.3