summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/data
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/data')
-rw-r--r--src/datavisualization/data/abstractitemmodelhandler.cpp91
-rw-r--r--src/datavisualization/data/abstractitemmodelhandler_p.h7
-rw-r--r--src/datavisualization/data/abstractrenderitem.cpp7
-rw-r--r--src/datavisualization/data/abstractrenderitem_p.h7
-rw-r--r--src/datavisualization/data/baritemmodelhandler.cpp6
-rw-r--r--src/datavisualization/data/baritemmodelhandler_p.h6
-rw-r--r--src/datavisualization/data/barrenderitem.cpp10
-rw-r--r--src/datavisualization/data/barrenderitem_p.h34
-rw-r--r--src/datavisualization/data/labelitem.cpp6
-rw-r--r--src/datavisualization/data/labelitem_p.h8
-rw-r--r--src/datavisualization/data/qabstract3dseries.cpp186
-rw-r--r--src/datavisualization/data/qabstract3dseries.h20
-rw-r--r--src/datavisualization/data/qabstract3dseries_p.h18
-rw-r--r--src/datavisualization/data/qabstractdataproxy.cpp14
-rw-r--r--src/datavisualization/data/qabstractdataproxy.h11
-rw-r--r--src/datavisualization/data/qabstractdataproxy_p.h8
-rw-r--r--src/datavisualization/data/qbar3dseries.cpp38
-rw-r--r--src/datavisualization/data/qbar3dseries.h8
-rw-r--r--src/datavisualization/data/qbar3dseries_p.h6
-rw-r--r--src/datavisualization/data/qbardataitem.cpp34
-rw-r--r--src/datavisualization/data/qbardataitem.h16
-rw-r--r--src/datavisualization/data/qbardataitem_p.h8
-rw-r--r--src/datavisualization/data/qbardataproxy.cpp20
-rw-r--r--src/datavisualization/data/qbardataproxy.h13
-rw-r--r--src/datavisualization/data/qbardataproxy_p.h8
-rw-r--r--src/datavisualization/data/qheightmapsurfacedataproxy.cpp15
-rw-r--r--src/datavisualization/data/qheightmapsurfacedataproxy.h6
-rw-r--r--src/datavisualization/data/qheightmapsurfacedataproxy_p.h6
-rw-r--r--src/datavisualization/data/qitemmodelbardataproxy.cpp48
-rw-r--r--src/datavisualization/data/qitemmodelbardataproxy.h6
-rw-r--r--src/datavisualization/data/qitemmodelbardataproxy_p.h6
-rw-r--r--src/datavisualization/data/qitemmodelscatterdataproxy.cpp34
-rw-r--r--src/datavisualization/data/qitemmodelscatterdataproxy.h6
-rw-r--r--src/datavisualization/data/qitemmodelscatterdataproxy_p.h6
-rw-r--r--src/datavisualization/data/qitemmodelsurfacedataproxy.cpp59
-rw-r--r--src/datavisualization/data/qitemmodelsurfacedataproxy.h6
-rw-r--r--src/datavisualization/data/qitemmodelsurfacedataproxy_p.h6
-rw-r--r--src/datavisualization/data/qscatter3dseries.cpp42
-rw-r--r--src/datavisualization/data/qscatter3dseries.h9
-rw-r--r--src/datavisualization/data/qscatter3dseries_p.h6
-rw-r--r--src/datavisualization/data/qscatterdataitem.cpp21
-rw-r--r--src/datavisualization/data/qscatterdataitem.h13
-rw-r--r--src/datavisualization/data/qscatterdataitem_p.h8
-rw-r--r--src/datavisualization/data/qscatterdataproxy.cpp12
-rw-r--r--src/datavisualization/data/qscatterdataproxy.h11
-rw-r--r--src/datavisualization/data/qscatterdataproxy_p.h8
-rw-r--r--src/datavisualization/data/qsurface3dseries.cpp44
-rw-r--r--src/datavisualization/data/qsurface3dseries.h10
-rw-r--r--src/datavisualization/data/qsurface3dseries_p.h6
-rw-r--r--src/datavisualization/data/qsurfacedataitem.cpp8
-rw-r--r--src/datavisualization/data/qsurfacedataitem.h9
-rw-r--r--src/datavisualization/data/qsurfacedataitem_p.h8
-rw-r--r--src/datavisualization/data/qsurfacedataproxy.cpp20
-rw-r--r--src/datavisualization/data/qsurfacedataproxy.h13
-rw-r--r--src/datavisualization/data/qsurfacedataproxy_p.h8
-rw-r--r--src/datavisualization/data/scatteritemmodelhandler.cpp102
-rw-r--r--src/datavisualization/data/scatteritemmodelhandler_p.h18
-rw-r--r--src/datavisualization/data/scatterrenderitem.cpp7
-rw-r--r--src/datavisualization/data/scatterrenderitem_p.h40
-rw-r--r--src/datavisualization/data/surfaceitemmodelhandler.cpp8
-rw-r--r--src/datavisualization/data/surfaceitemmodelhandler_p.h6
61 files changed, 793 insertions, 438 deletions
diff --git a/src/datavisualization/data/abstractitemmodelhandler.cpp b/src/datavisualization/data/abstractitemmodelhandler.cpp
index 41f520a4..63eb7e45 100644
--- a/src/datavisualization/data/abstractitemmodelhandler.cpp
+++ b/src/datavisualization/data/abstractitemmodelhandler.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,11 +19,12 @@
#include "abstractitemmodelhandler_p.h"
#include <QTimer>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
AbstractItemModelHandler::AbstractItemModelHandler(QObject *parent)
: QObject(parent),
- resolvePending(0)
+ resolvePending(0),
+ m_fullReset(true)
{
m_resolveTimer.setSingleShot(true);
QObject::connect(&m_resolveTimer, &QTimer::timeout,
@@ -81,9 +82,12 @@ void AbstractItemModelHandler::handleColumnsInserted(const QModelIndex &parent,
Q_UNUSED(start)
Q_UNUSED(end)
- // Resolve new items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
+ // Manipulating columns changes all rows in proxies that map rows/columns directly,
+ // and its effects are not clearly defined in others -> always do full reset.
+ if (!m_resolveTimer.isActive()) {
+ m_fullReset = true;
+ m_resolveTimer.start(0);
+ }
}
void AbstractItemModelHandler::handleColumnsMoved(const QModelIndex &sourceParent,
@@ -98,9 +102,12 @@ void AbstractItemModelHandler::handleColumnsMoved(const QModelIndex &sourceParen
Q_UNUSED(destinationParent)
Q_UNUSED(destinationColumn)
- // Resolve moved items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
+ // Manipulating columns changes all rows in proxies that map rows/columns directly,
+ // and its effects are not clearly defined in others -> always do full reset.
+ if (!m_resolveTimer.isActive()) {
+ m_fullReset = true;
+ m_resolveTimer.start(0);
+ }
}
void AbstractItemModelHandler::handleColumnsRemoved(const QModelIndex &parent,
@@ -110,9 +117,12 @@ void AbstractItemModelHandler::handleColumnsRemoved(const QModelIndex &parent,
Q_UNUSED(start)
Q_UNUSED(end)
- // Remove old items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
+ // Manipulating columns changes all rows in proxies that map rows/columns directly,
+ // and its effects are not clearly defined in others -> always do full reset.
+ if (!m_resolveTimer.isActive()) {
+ m_fullReset = true;
+ m_resolveTimer.start(0);
+ }
}
void AbstractItemModelHandler::handleDataChanged(const QModelIndex &topLeft,
@@ -123,9 +133,13 @@ void AbstractItemModelHandler::handleDataChanged(const QModelIndex &topLeft,
Q_UNUSED(bottomRight)
Q_UNUSED(roles)
- // Resolve changed items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
+ // Default handling for dataChanged is to do full reset, as it cannot be optimized
+ // in a general case, where we do not know which row/column/index the item model item
+ // actually ended up to in the proxy.
+ if (!m_resolveTimer.isActive()) {
+ m_fullReset = true;
+ m_resolveTimer.start(0);
+ }
}
void AbstractItemModelHandler::handleLayoutChanged(const QList<QPersistentModelIndex> &parents,
@@ -134,16 +148,20 @@ void AbstractItemModelHandler::handleLayoutChanged(const QList<QPersistentModelI
Q_UNUSED(parents)
Q_UNUSED(hint)
- // Resolve moved items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
+ // Resolve entire model if layout changes
+ if (!m_resolveTimer.isActive()) {
+ m_fullReset = true;
+ m_resolveTimer.start(0);
+ }
}
void AbstractItemModelHandler::handleModelReset()
{
// Data cleared, reset array
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
+ if (!m_resolveTimer.isActive()) {
+ m_fullReset = true;
+ m_resolveTimer.start(0);
+ }
}
void AbstractItemModelHandler::handleRowsInserted(const QModelIndex &parent, int start, int end)
@@ -152,9 +170,13 @@ void AbstractItemModelHandler::handleRowsInserted(const QModelIndex &parent, int
Q_UNUSED(start)
Q_UNUSED(end)
- // Resolve new items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
+ // Default handling for rowsInserted is to do full reset, as it cannot be optimized
+ // in a general case, where we do not know which row/column/index the item model item
+ // actually ended up to in the proxy.
+ if (!m_resolveTimer.isActive()) {
+ m_fullReset = true;
+ m_resolveTimer.start(0);
+ }
}
void AbstractItemModelHandler::handleRowsMoved(const QModelIndex &sourceParent,
@@ -169,9 +191,13 @@ void AbstractItemModelHandler::handleRowsMoved(const QModelIndex &sourceParent,
Q_UNUSED(destinationParent)
Q_UNUSED(destinationRow)
- // Resolve moved items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
+ // Default handling for rowsMoved is to do full reset, as it cannot be optimized
+ // in a general case, where we do not know which row/column/index the item model item
+ // actually ended up to in the proxy.
+ if (!m_resolveTimer.isActive()) {
+ m_fullReset = true;
+ m_resolveTimer.start(0);
+ }
}
void AbstractItemModelHandler::handleRowsRemoved(const QModelIndex &parent, int start, int end)
@@ -180,9 +206,13 @@ void AbstractItemModelHandler::handleRowsRemoved(const QModelIndex &parent, int
Q_UNUSED(start)
Q_UNUSED(end)
- // Resolve removed items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
+ // Default handling for rowsRemoved is to do full reset, as it cannot be optimized
+ // in a general case, where we do not know which row/column/index the item model item
+ // actually ended up to in the proxy.
+ if (!m_resolveTimer.isActive()) {
+ m_fullReset = true;
+ m_resolveTimer.start(0);
+ }
}
void AbstractItemModelHandler::handleMappingChanged()
@@ -194,6 +224,7 @@ void AbstractItemModelHandler::handleMappingChanged()
void AbstractItemModelHandler::handlePendingResolve()
{
resolveModel();
+ m_fullReset = false;
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/abstractitemmodelhandler_p.h b/src/datavisualization/data/abstractitemmodelhandler_p.h
index b4d55b4a..c238a63b 100644
--- a/src/datavisualization/data/abstractitemmodelhandler_p.h
+++ b/src/datavisualization/data/abstractitemmodelhandler_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -34,7 +34,7 @@
#include <QPointer>
#include <QTimer>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class AbstractItemModelHandler : public QObject
{
@@ -74,11 +74,12 @@ protected:
QPointer<const QAbstractItemModel> m_itemModel; // Not owned
bool resolvePending;
QTimer m_resolveTimer;
+ bool m_fullReset;
private:
Q_DISABLE_COPY(AbstractItemModelHandler)
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/abstractrenderitem.cpp b/src/datavisualization/data/abstractrenderitem.cpp
index 22a1c6de..522fd144 100644
--- a/src/datavisualization/data/abstractrenderitem.cpp
+++ b/src/datavisualization/data/abstractrenderitem.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "abstractrenderitem_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
AbstractRenderItem::AbstractRenderItem()
: m_selectionLabelItem(0)
@@ -56,5 +56,4 @@ QString &AbstractRenderItem::selectionLabel()
return m_selectionLabel;
}
-
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/abstractrenderitem_p.h b/src/datavisualization/data/abstractrenderitem_p.h
index 5f623c41..fa06db54 100644
--- a/src/datavisualization/data/abstractrenderitem_p.h
+++ b/src/datavisualization/data/abstractrenderitem_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -35,8 +35,9 @@
#include <QOpenGLFunctions>
#include <QString>
#include <QVector3D>
+#include <QQuaternion>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class AbstractRenderItem
{
@@ -64,6 +65,6 @@ protected:
friend class QAbstractDataItem;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/baritemmodelhandler.cpp b/src/datavisualization/data/baritemmodelhandler.cpp
index b67a3d8a..611fbcb9 100644
--- a/src/datavisualization/data/baritemmodelhandler.cpp
+++ b/src/datavisualization/data/baritemmodelhandler.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "baritemmodelhandler_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
BarItemModelHandler::BarItemModelHandler(QItemModelBarDataProxy *proxy, QObject *parent)
: AbstractItemModelHandler(parent),
@@ -143,4 +143,4 @@ void BarItemModelHandler::resolveModel()
m_proxy->resetArray(m_proxyArray, rowLabels, columnLabels);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/baritemmodelhandler_p.h b/src/datavisualization/data/baritemmodelhandler_p.h
index 99192b55..7bf7b0a1 100644
--- a/src/datavisualization/data/baritemmodelhandler_p.h
+++ b/src/datavisualization/data/baritemmodelhandler_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "abstractitemmodelhandler_p.h"
#include "qitemmodelbardataproxy_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class BarItemModelHandler : public AbstractItemModelHandler
{
@@ -49,6 +49,6 @@ protected:
int m_columnCount;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/barrenderitem.cpp b/src/datavisualization/data/barrenderitem.cpp
index 67029c60..915f3f78 100644
--- a/src/datavisualization/data/barrenderitem.cpp
+++ b/src/datavisualization/data/barrenderitem.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,7 +19,7 @@
#include "barrenderitem_p.h"
#include "bars3drenderer_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
BarRenderItem::BarRenderItem()
: AbstractRenderItem(),
@@ -39,6 +39,7 @@ BarRenderItem::BarRenderItem(const BarRenderItem &other)
m_sliceLabel = other.m_sliceLabel;
m_sliceLabelItem = 0;
m_seriesIndex = other.m_seriesIndex;
+ m_rotation = other.m_rotation;
}
BarRenderItem::~BarRenderItem()
@@ -60,10 +61,9 @@ void BarRenderItem::setSliceLabel(const QString &label)
m_sliceLabel = label;
}
-QString &BarRenderItem::sliceLabel()
+const QString &BarRenderItem::sliceLabel() const
{
return m_sliceLabel;
}
-
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/barrenderitem_p.h b/src/datavisualization/data/barrenderitem_p.h
index 480d5049..e1062969 100644
--- a/src/datavisualization/data/barrenderitem_p.h
+++ b/src/datavisualization/data/barrenderitem_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -31,7 +31,7 @@
#include "abstractrenderitem_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class Bars3DRenderer;
@@ -47,7 +47,15 @@ public:
inline const QPoint &position() const { return m_position; }
// Actual cached data value of the bar (needed to trigger label reformats)
- inline void setValue(float value);
+ inline void setValue(float value)
+ {
+ m_value = value;
+ // Force reformatting on next access by setting label string to null string
+ if (!m_sliceLabel.isNull())
+ setSliceLabel(QString());
+ if (!m_selectionLabel.isNull())
+ setSelectionLabel(QString());
+ }
inline float value() const { return m_value; }
// Normalized bar height
@@ -59,12 +67,15 @@ public:
// Formatted label for item.
void setSliceLabel(const QString &label);
- QString &sliceLabel(); // Formats label if not previously formatted
+ const QString &sliceLabel() const; // Formats label if not previously formatted
// Series index in visual series that this item belongs to.
// This is only utilized by slicing, so it may not be up to date on all items.
inline void setSeriesIndex(int seriesIndex) { m_seriesIndex = seriesIndex; }
- inline int seriesIndex() { return m_seriesIndex; }
+ inline int seriesIndex() const { return m_seriesIndex; }
+
+ inline void setRotation(const QQuaternion &rotation) { m_rotation = rotation; }
+ inline const QQuaternion &rotation() const { return m_rotation; }
protected:
float m_value;
@@ -73,23 +84,14 @@ protected:
QString m_sliceLabel;
LabelItem *m_sliceLabelItem;
int m_seriesIndex;
+ QQuaternion m_rotation;
friend class QBarDataItem;
};
-void BarRenderItem::setValue(float value)
-{
- m_value = value;
- // Force reformatting on next access by setting label string to null string
- if (!m_sliceLabel.isNull())
- setSliceLabel(QString());
- if (!m_selectionLabel.isNull())
- setSelectionLabel(QString());
-}
-
typedef QVector<BarRenderItem> BarRenderItemRow;
typedef QVector<BarRenderItemRow> BarRenderItemArray;
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/labelitem.cpp b/src/datavisualization/data/labelitem.cpp
index 5e27a50e..859b0550 100644
--- a/src/datavisualization/data/labelitem.cpp
+++ b/src/datavisualization/data/labelitem.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "labelitem_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
LabelItem::LabelItem()
: m_size(QSize(0, 0)),
@@ -61,4 +61,4 @@ void LabelItem::clear()
m_size = QSize(0, 0);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/labelitem_p.h b/src/datavisualization/data/labelitem_p.h
index c10c1f12..ca60f742 100644
--- a/src/datavisualization/data/labelitem_p.h
+++ b/src/datavisualization/data/labelitem_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -33,7 +33,7 @@
#include <QOpenGLFunctions>
#include <QSize>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class LabelItem
{
@@ -48,12 +48,12 @@ public:
void clear();
private:
- Q_DISABLE_COPY(LabelItem);
+ Q_DISABLE_COPY(LabelItem)
QSize m_size;
GLuint m_textureId;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qabstract3dseries.cpp b/src/datavisualization/data/qabstract3dseries.cpp
index 2c869574..dc241fdb 100644
--- a/src/datavisualization/data/qabstract3dseries.cpp
+++ b/src/datavisualization/data/qabstract3dseries.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -21,7 +21,7 @@
#include "qabstractdataproxy_p.h"
#include "abstract3dcontroller_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QAbstract3DSeries
@@ -34,6 +34,16 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
+ * \class QAbstract3DSeriesChangeBitField
+ * \internal
+ */
+
+/*!
+ * \class QAbstract3DSeriesThemeOverrideBitField
+ * \internal
+ */
+
+/*!
* \qmltype Abstract3DSeries
* \inqmlmodule QtDataVisualization
* \since QtDataVisualization 1.0
@@ -42,10 +52,60 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* \brief Base type for all QtDataVisualization series.
*
* This type is uncreatable, but contains properties that are exposed via subtypes.
+ *
+ * For Abstract3DSeries enums, see \l QAbstract3DSeries::SeriesType and \l QAbstract3DSeries::Mesh
+ *
* \sa Bar3DSeries, Scatter3DSeries, Surface3DSeries, {Qt Data Visualization Data Handling}
*/
/*!
+ * \enum QAbstract3DSeries::SeriesType
+ *
+ * Type of the series.
+ *
+ * \value SeriesTypeNone
+ * No series type.
+ * \value SeriesTypeBar
+ * Series type for Q3DBars.
+ * \value SeriesTypeScatter
+ * Series type for Q3DScatter.
+ * \value SeriesTypeSurface
+ * Series type for Q3DSurface.
+ */
+
+/*!
+ * \enum QAbstract3DSeries::Mesh
+ *
+ * Predefined mesh types. All styles are not usable with all visualization types.
+ *
+ * \value MeshUserDefined
+ * User defined mesh, set via QAbstract3DSeries::userDefinedMesh property.
+ * \value MeshBar
+ * Basic rectangular bar.
+ * \value MeshCube
+ * Basic cube.
+ * \value MeshPyramid
+ * Four-sided pyramid.
+ * \value MeshCone
+ * Basic cone.
+ * \value MeshCylinder
+ * Basic cylinder.
+ * \value MeshBevelBar
+ * Slightly beveled (rounded) rectangular bar.
+ * \value MeshBevelCube
+ * Slightly beveled (rounded) cube.
+ * \value MeshSphere
+ * Sphere.
+ * \value MeshMinimal
+ * The minimal 3D mesh: a triangular pyramid. Usable only with Q3DScatter.
+ * \value MeshArrow
+ * Arrow pointing upwards.
+ * \value MeshPoint
+ * 2D point. Usable only with Q3DScatter.
+ * \b Note: Shadows and color gradients do not affect this style.
+ */
+
+/*!
* \qmlproperty Abstract3DSeries.SeriesType Abstract3DSeries::type
* The type of the series.
*/
@@ -82,6 +142,18 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
+ * \qmlproperty quaternion Abstract3DSeries::meshRotation
+ *
+ * Sets the mesh \a rotation that is applied to all items of the series.
+ * The \a rotation should be a normalized quaternion.
+ * For those series types that support item specific rotation, the rotations are
+ * multiplied together.
+ * Bar3DSeries ignores any rotation that is not around Y-axis.
+ * Surface3DSeries applies the rotation only to the selection pointer.
+ * Defaults to no rotation.
+ */
+
+/*!
* \qmlproperty string Abstract3DSeries::userDefinedMesh
*
* Sets the \a fileName for user defined custom mesh for objects that is used when mesh
@@ -159,48 +231,12 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
- * \enum QAbstract3DSeries::SeriesType
- *
- * Type of the series.
- *
- * \value SeriesTypeNone
- * No series type.
- * \value SeriesTypeBar
- * Series type for Q3DBars.
- * \value SeriesTypeScatter
- * Series type for Q3DScatter.
- * \value SeriesTypeSurface
- * Series type for Q3DSurface.
- */
-
-/*!
- * \enum QAbstract3DSeries::Mesh
+ * \qmlproperty string Abstract3DSeries::name
*
- * Predefined mesh types. All styles are not usable with all visualization types.
+ * Sets the series name.
+ * Series name can be used in item label format with tag \c{@seriesName}.
*
- * \value MeshUserDefined
- * User defined mesh, set via QAbstract3DSeries::userDefinedMesh property.
- * \value MeshBar
- * Basic rectangular bar.
- * \value MeshCube
- * Basic cube.
- * \value MeshPyramid
- * Four-sided pyramid.
- * \value MeshCone
- * Basic cone.
- * \value MeshCylinder
- * Basic cylinder.
- * \value MeshBevelBar
- * Slightly beveled (rounded) rectangular bar.
- * \value MeshBevelCube
- * Slightly beveled (rounded) cube.
- * \value MeshSphere
- * Sphere.
- * \value MeshMinimal
- * The minimal 3D mesh: a triangular pyramid. Usable only with Q3DScatter.
- * \value MeshPoint
- * 2D point. Usable only with Q3DScatter.
- * \b Note: Shadows and color gradients do not affect this style.
+ * \sa itemLabelFormat
*/
/*!
@@ -279,7 +315,8 @@ bool QAbstract3DSeries::isVisible() const
*/
void QAbstract3DSeries::setMesh(QAbstract3DSeries::Mesh mesh)
{
- if ((mesh == QAbstract3DSeries::MeshPoint || mesh == QAbstract3DSeries::MeshMinimal)
+ if ((mesh == QAbstract3DSeries::MeshPoint || mesh == QAbstract3DSeries::MeshMinimal
+ || mesh == QAbstract3DSeries::MeshArrow)
&& type() != QAbstract3DSeries::SeriesTypeScatter) {
qWarning() << "Specified style is only supported for QScatter3DSeries.";
} else if (d_ptr->m_mesh != mesh) {
@@ -314,6 +351,30 @@ bool QAbstract3DSeries::isMeshSmooth() const
}
/*!
+ * \property QAbstract3DSeries::meshRotation
+ *
+ * Sets the mesh \a rotation that is applied to all items of the series.
+ * The \a rotation should be a normalized QQuaternion.
+ * For those series types that support item specific rotation, the rotations are
+ * multiplied together.
+ * QBar3DSeries ignores any rotation that is not around Y-axis.
+ * QSurface3DSeries applies the rotation only to the selection pointer.
+ * Defaults to no rotation.
+ */
+void QAbstract3DSeries::setMeshRotation(const QQuaternion &rotation)
+{
+ if (d_ptr->m_meshRotation != rotation) {
+ d_ptr->setMeshRotation(rotation);
+ emit meshRotationChanged(rotation);
+ }
+}
+
+QQuaternion QAbstract3DSeries::meshRotation() const
+{
+ return d_ptr->m_meshRotation;
+}
+
+/*!
* \property QAbstract3DSeries::userDefinedMesh
*
* Sets the \a fileName for user defined custom mesh for objects that is used when mesh
@@ -486,6 +547,27 @@ QLinearGradient QAbstract3DSeries::multiHighlightGradient() const
return d_ptr->m_multiHighlightGradient;
}
+/*!
+ * \property QAbstract3DSeries::name
+ *
+ * Sets the series name.
+ * Series name can be used in item label format with tag \c{@seriesName}.
+ *
+ * \sa itemLabelFormat
+ */
+void QAbstract3DSeries::setName(const QString &name)
+{
+ if (d_ptr->m_name != name) {
+ d_ptr->setName(name);
+ emit nameChanged(name);
+ }
+}
+
+QString QAbstract3DSeries::name() const
+{
+ return d_ptr->m_name;
+}
+
// QAbstract3DSeriesPrivate
QAbstract3DSeriesPrivate::QAbstract3DSeriesPrivate(QAbstract3DSeries *q, QAbstract3DSeries::SeriesType type)
@@ -563,6 +645,14 @@ void QAbstract3DSeriesPrivate::setMeshSmooth(bool enable)
m_controller->markSeriesVisualsDirty();
}
+void QAbstract3DSeriesPrivate::setMeshRotation(const QQuaternion &rotation)
+{
+ m_meshRotation = rotation;
+ m_changeTracker.meshRotationChanged = true;
+ if (m_controller)
+ m_controller->markSeriesVisualsDirty();
+}
+
void QAbstract3DSeriesPrivate::setUserDefinedMesh(const QString &meshFile)
{
m_userDefinedMesh = meshFile;
@@ -627,6 +717,14 @@ void QAbstract3DSeriesPrivate::setMultiHighlightGradient(const QLinearGradient &
m_controller->markSeriesVisualsDirty();
}
+void QAbstract3DSeriesPrivate::setName(const QString &name)
+{
+ m_name = name;
+ m_changeTracker.nameChanged = true;
+ if (m_controller)
+ m_controller->markSeriesVisualsDirty();
+}
+
void QAbstract3DSeriesPrivate::resetToTheme(const Q3DTheme &theme, int seriesIndex, bool force)
{
int themeIndex = seriesIndex;
@@ -664,4 +762,4 @@ void QAbstract3DSeriesPrivate::resetToTheme(const Q3DTheme &theme, int seriesInd
}
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qabstract3dseries.h b/src/datavisualization/data/qabstract3dseries.h
index ebe73510..ebb22b7f 100644
--- a/src/datavisualization/data/qabstract3dseries.h
+++ b/src/datavisualization/data/qabstract3dseries.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,13 +19,13 @@
#ifndef QABSTRACT3DSERIES_H
#define QABSTRACT3DSERIES_H
-#include <QtDataVisualization/qdatavisualizationenums.h>
#include <QtDataVisualization/q3dtheme.h>
#include <QObject>
#include <QScopedPointer>
#include <QLinearGradient>
+#include <QQuaternion>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QAbstract3DSeriesPrivate;
@@ -39,6 +39,7 @@ class QT_DATAVISUALIZATION_EXPORT QAbstract3DSeries : public QObject
Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibilityChanged)
Q_PROPERTY(Mesh mesh READ mesh WRITE setMesh NOTIFY meshChanged)
Q_PROPERTY(bool meshSmooth READ isMeshSmooth WRITE setMeshSmooth NOTIFY meshSmoothChanged)
+ Q_PROPERTY(QQuaternion meshRotation READ meshRotation WRITE setMeshRotation NOTIFY meshRotationChanged)
Q_PROPERTY(QString userDefinedMesh READ userDefinedMesh WRITE setUserDefinedMesh NOTIFY userDefinedMeshChanged)
Q_PROPERTY(QtDataVisualization::Q3DTheme::ColorStyle colorStyle READ colorStyle WRITE setColorStyle NOTIFY colorStyleChanged)
Q_PROPERTY(QColor baseColor READ baseColor WRITE setBaseColor NOTIFY baseColorChanged)
@@ -47,6 +48,7 @@ class QT_DATAVISUALIZATION_EXPORT QAbstract3DSeries : public QObject
Q_PROPERTY(QLinearGradient singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged)
Q_PROPERTY(QColor multiHighlightColor READ multiHighlightColor WRITE setMultiHighlightColor NOTIFY multiHighlightColorChanged)
Q_PROPERTY(QLinearGradient multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged)
+ Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
public:
enum SeriesType {
@@ -67,6 +69,7 @@ public:
MeshBevelCube,
MeshSphere,
MeshMinimal,
+ MeshArrow,
MeshPoint
};
@@ -90,6 +93,9 @@ public:
void setMeshSmooth(bool enable);
bool isMeshSmooth() const;
+ void setMeshRotation(const QQuaternion &rotation);
+ QQuaternion meshRotation() const;
+
void setUserDefinedMesh(const QString &fileName);
QString userDefinedMesh() const;
@@ -108,11 +114,15 @@ public:
void setMultiHighlightGradient(const QLinearGradient &gradient);
QLinearGradient multiHighlightGradient() const;
+ void setName(const QString &name);
+ QString name() const;
+
signals:
void itemLabelFormatChanged(QString format);
void visibilityChanged(bool visible);
void meshChanged(Mesh mesh);
void meshSmoothChanged(bool enabled);
+ void meshRotationChanged(QQuaternion rotation);
void userDefinedMeshChanged(QString fileName);
void colorStyleChanged(Q3DTheme::ColorStyle style);
void baseColorChanged(QColor color);
@@ -121,6 +131,7 @@ signals:
void singleHighlightGradientChanged(QLinearGradient gradient);
void multiHighlightColorChanged(QColor color);
void multiHighlightGradientChanged(QLinearGradient gradient);
+ void nameChanged(QString name);
protected:
QScopedPointer<QAbstract3DSeriesPrivate> d_ptr;
@@ -134,8 +145,9 @@ private:
friend class Scatter3DController;
friend class QBar3DSeries;
friend class SeriesRenderCache;
+ friend class Abstract3DRenderer;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qabstract3dseries_p.h b/src/datavisualization/data/qabstract3dseries_p.h
index 7b2ea2e6..6fbabd3d 100644
--- a/src/datavisualization/data/qabstract3dseries_p.h
+++ b/src/datavisualization/data/qabstract3dseries_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -33,7 +33,7 @@
#ifndef QABSTRACT3DSERIES_P_H
#define QABSTRACT3DSERIES_P_H
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QAbstractDataProxy;
class Abstract3DController;
@@ -42,6 +42,7 @@ struct QAbstract3DSeriesChangeBitField {
bool itemLabelFormatChanged : 1;
bool meshChanged : 1;
bool meshSmoothChanged : 1;
+ bool meshRotationChanged : 1;
bool userDefinedMeshChanged : 1;
bool colorStyleChanged : 1;
bool baseColorChanged : 1;
@@ -50,11 +51,13 @@ struct QAbstract3DSeriesChangeBitField {
bool singleHighlightGradientChanged : 1;
bool multiHighlightColorChanged : 1;
bool multiHighlightGradientChanged : 1;
+ bool nameChanged : 1;
QAbstract3DSeriesChangeBitField()
: itemLabelFormatChanged(true),
meshChanged(true),
meshSmoothChanged(true),
+ meshRotationChanged(true),
userDefinedMeshChanged(true),
colorStyleChanged(true),
baseColorChanged(true),
@@ -62,7 +65,8 @@ struct QAbstract3DSeriesChangeBitField {
singleHighlightColorChanged(true),
singleHighlightGradientChanged(true),
multiHighlightColorChanged(true),
- multiHighlightGradientChanged(true)
+ multiHighlightGradientChanged(true),
+ nameChanged(true)
{
}
};
@@ -104,6 +108,7 @@ public:
void setVisible(bool visible);
void setMesh(QAbstract3DSeries::Mesh mesh);
void setMeshSmooth(bool enable);
+ void setMeshRotation(const QQuaternion &rotation);
void setUserDefinedMesh(const QString &meshFile);
void setColorStyle(Q3DTheme::ColorStyle style);
@@ -113,6 +118,7 @@ public:
void setSingleHighlightGradient(const QLinearGradient &gradient);
void setMultiHighlightColor(const QColor &color);
void setMultiHighlightGradient(const QLinearGradient &gradient);
+ void setName(const QString &name);
void resetToTheme(const Q3DTheme &theme, int seriesIndex, bool force);
@@ -126,6 +132,7 @@ public:
Abstract3DController *m_controller;
QAbstract3DSeries::Mesh m_mesh;
bool m_meshSmooth;
+ QQuaternion m_meshRotation;
QString m_userDefinedMesh;
Q3DTheme::ColorStyle m_colorStyle;
@@ -136,8 +143,9 @@ public:
QColor m_multiHighlightColor;
QLinearGradient m_multiHighlightGradient;
+ QString m_name;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
-#endif // QAbstract3DSeries_P_H
+#endif
diff --git a/src/datavisualization/data/qabstractdataproxy.cpp b/src/datavisualization/data/qabstractdataproxy.cpp
index fa0934c3..18d88971 100644
--- a/src/datavisualization/data/qabstractdataproxy.cpp
+++ b/src/datavisualization/data/qabstractdataproxy.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -20,7 +20,7 @@
#include "qabstractdataproxy_p.h"
#include "qabstract3dseries_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QAbstractDataProxy
@@ -41,6 +41,9 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* \brief Base type for all QtDataVisualization data proxies.
*
* This type is uncreatable, but contains properties that are exposed via subtypes.
+ *
+ * For AbstractDataProxy enums, see \l QAbstractDataProxy::DataType
+ *
* \sa BarDataProxy, ScatterDataProxy, SurfaceDataProxy, {Qt Data Visualization Data Handling}
*/
@@ -92,7 +95,8 @@ QAbstractDataProxy::DataType QAbstractDataProxy::type() const
// QAbstractDataProxyPrivate
-QAbstractDataProxyPrivate::QAbstractDataProxyPrivate(QAbstractDataProxy *q, QAbstractDataProxy::DataType type)
+QAbstractDataProxyPrivate::QAbstractDataProxyPrivate(QAbstractDataProxy *q,
+ QAbstractDataProxy::DataType type)
: QObject(0),
q_ptr(q),
m_type(type),
@@ -106,8 +110,8 @@ QAbstractDataProxyPrivate::~QAbstractDataProxyPrivate()
void QAbstractDataProxyPrivate::setSeries(QAbstract3DSeries *series)
{
- setParent(series);
+ q_ptr->setParent(series);
m_series = series;
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qabstractdataproxy.h b/src/datavisualization/data/qabstractdataproxy.h
index 2a053c60..52c2e2c6 100644
--- a/src/datavisualization/data/qabstractdataproxy.h
+++ b/src/datavisualization/data/qabstractdataproxy.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,11 +19,12 @@
#ifndef QABSTRACTDATAPROXY_H
#define QABSTRACTDATAPROXY_H
-#include <QtDataVisualization/qdatavisualizationenums.h>
+#include <QtDataVisualization/qdatavisualizationglobal.h>
+
#include <QObject>
#include <QScopedPointer>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QAbstractDataProxyPrivate;
@@ -58,6 +59,6 @@ private:
friend class QAbstract3DSeriesPrivate;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
-#endif // QABSTRACTDATAPROXY_H
+#endif
diff --git a/src/datavisualization/data/qabstractdataproxy_p.h b/src/datavisualization/data/qabstractdataproxy_p.h
index 90504ccb..093629d5 100644
--- a/src/datavisualization/data/qabstractdataproxy_p.h
+++ b/src/datavisualization/data/qabstractdataproxy_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -33,7 +33,7 @@
#ifndef QABSTRACTDATAPROXY_P_H
#define QABSTRACTDATAPROXY_P_H
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QAbstract3DSeries;
@@ -56,6 +56,6 @@ private:
friend class QAbstractDataProxy;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
-#endif // QABSTRACTDATAPROXY_P_H
+#endif
diff --git a/src/datavisualization/data/qbar3dseries.cpp b/src/datavisualization/data/qbar3dseries.cpp
index 18e8b2ed..1440476b 100644
--- a/src/datavisualization/data/qbar3dseries.cpp
+++ b/src/datavisualization/data/qbar3dseries.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,7 +19,7 @@
#include "qbar3dseries_p.h"
#include "bars3dcontroller_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QBar3DSeries
@@ -51,7 +51,9 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* \li @colLabel \li Label from column axis
* \row
* \li @valueLabel \li Item value formatted using the same format the value axis attached to the graph uses,
- * see \l{Q3DValueAxis::setLabelFormat()} for more information.
+ * see \l{QValue3DAxis::setLabelFormat()} for more information.
+ * \row
+ * \li @seriesName \li Name of the series
* \row
* \li %<format spec> \li Item value in specified format.
* \endtable
@@ -93,16 +95,22 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* Selects a bar at the \a position. The \a position is the (row, column) position in
* the data array of the series.
* Only one bar can be selected at a time.
- * To clear selection, set invalidSelectionPosition() as the \a position.
+ * To clear selection from this series, set invalidSelectionPosition as the \a position.
* If this series is added to a graph, the graph can adjust the selection according to user
* interaction or if it becomes invalid. Selecting a bar on another added series will also
* clear the selection.
+ * Removing rows from or inserting rows to the series before the row of the selected bar
+ * will adjust the selection so that the same bar will stay selected.
+ *
+ * \sa AbstractGraph3D::clearSelection()
*/
/*!
- * \qmlmethod point Bar3DSeries::invalidSelectionPosition()
- * \return an invalid position for selection. Set this position to selectedBar property if you
- * want to clear the selection.
+ * \qmlproperty point Bar3DSeries::invalidSelectionPosition
+ * A constant property providing an invalid position for selection. Set this position to
+ * selectedBar property if you want to clear the selection from this series.
+ *
+ * \sa AbstractGraph3D::clearSelection()
*/
/*!
@@ -162,10 +170,14 @@ QBarDataProxy *QBar3DSeries::dataProxy() const
* Selects a bar at the \a position. The \a position is the (row, column) position in
* the data array of the series.
* Only one bar can be selected at a time.
- * To clear selection, set invalidSelectionPosition() as the \a position.
+ * To clear selection from this series, set invalidSelectionPosition() as the \a position.
* If this series is added to a graph, the graph can adjust the selection according to user
* interaction or if it becomes invalid. Selecting a bar on another added series will also
* clear the selection.
+ * Removing rows from or inserting rows to the series before the row of the selected bar
+ * will adjust the selection so that the same bar will stay selected.
+ *
+ * \sa QAbstract3DGraph::clearSelection()
*/
void QBar3DSeries::setSelectedBar(const QPoint &position)
{
@@ -183,9 +195,11 @@ QPoint QBar3DSeries::selectedBar() const
/*!
* \return an invalid position for selection. Set this position to selectedBar property if you
- * want to clear the selection.
+ * want to clear the selection from this series.
+ *
+ * \sa QAbstract3DGraph::clearSelection()
*/
-QPoint QBar3DSeries::invalidSelectionPosition() const
+QPoint QBar3DSeries::invalidSelectionPosition()
{
return Bars3DController::invalidSelectionPosition();
}
@@ -212,7 +226,7 @@ QBar3DSeriesPrivate::QBar3DSeriesPrivate(QBar3DSeries *q)
: QAbstract3DSeriesPrivate(q, QAbstract3DSeries::SeriesTypeBar),
m_selectedBar(Bars3DController::invalidSelectionPosition())
{
- m_itemLabelFormat = QStringLiteral("@valueTitle: @valueLabel");
+ m_itemLabelFormat = QStringLiteral("@valueLabel");
m_mesh = QAbstract3DSeries::MeshBevelBar;
}
@@ -273,4 +287,4 @@ void QBar3DSeriesPrivate::setSelectedBar(const QPoint &position)
}
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qbar3dseries.h b/src/datavisualization/data/qbar3dseries.h
index 5883cbfb..be748516 100644
--- a/src/datavisualization/data/qbar3dseries.h
+++ b/src/datavisualization/data/qbar3dseries.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -23,7 +23,7 @@
#include <QtDataVisualization/qbardataproxy.h>
#include <QPoint>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QBar3DSeriesPrivate;
@@ -43,7 +43,7 @@ public:
void setSelectedBar(const QPoint &position);
QPoint selectedBar() const;
- QPoint invalidSelectionPosition() const;
+ static QPoint invalidSelectionPosition();
signals:
void dataProxyChanged(QBarDataProxy *proxy);
@@ -60,6 +60,6 @@ private:
friend class Bars3DController;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qbar3dseries_p.h b/src/datavisualization/data/qbar3dseries_p.h
index 89edb84a..173f1cd9 100644
--- a/src/datavisualization/data/qbar3dseries_p.h
+++ b/src/datavisualization/data/qbar3dseries_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "qbar3dseries.h"
#include "qabstract3dseries_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QBar3DSeriesPrivate : public QAbstract3DSeriesPrivate
{
@@ -55,6 +55,6 @@ private:
friend class QBar3DSeries;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qbardataitem.cpp b/src/datavisualization/data/qbardataitem.cpp
index e564bd5d..37c2033f 100644
--- a/src/datavisualization/data/qbardataitem.cpp
+++ b/src/datavisualization/data/qbardataitem.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "qbardataitem_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QBarDataItem
@@ -37,7 +37,8 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
QBarDataItem::QBarDataItem()
: d_ptr(0), // private data doesn't exist by default (optimization)
- m_value(0.0f)
+ m_value(0.0f),
+ m_angle(0.0f)
{
}
@@ -46,7 +47,18 @@ QBarDataItem::QBarDataItem()
*/
QBarDataItem::QBarDataItem(float value)
: d_ptr(0),
- m_value(value)
+ m_value(value),
+ m_angle(0.0f)
+{
+}
+
+/*!
+ * Constructs QBarDataItem with \a value and \a angle
+ */
+QBarDataItem::QBarDataItem(float value, float angle)
+ : d_ptr(0),
+ m_value(value),
+ m_angle(angle)
{
}
@@ -72,11 +84,11 @@ QBarDataItem::~QBarDataItem()
QBarDataItem &QBarDataItem::operator=(const QBarDataItem &other)
{
m_value = other.m_value;
+ m_angle = other.m_angle;
if (other.d_ptr)
createExtraData();
else
d_ptr = 0;
- // TODO set extra data
return *this;
}
@@ -91,6 +103,16 @@ QBarDataItem &QBarDataItem::operator=(const QBarDataItem &other)
*/
/*!
+ * \fn void QBarDataItem::setRotation(float angle)
+ * Sets rotation \a angle in degrees for this data item.
+ */
+
+/*!
+ * \fn float QBarDataItem::rotation() const
+ * \return rotation angle in degrees for this data item.
+ */
+
+/*!
* \internal
*/
void QBarDataItem::createExtraData()
@@ -107,4 +129,4 @@ QBarDataItemPrivate::~QBarDataItemPrivate()
{
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qbardataitem.h b/src/datavisualization/data/qbardataitem.h
index 60a4a19f..84e7cd92 100644
--- a/src/datavisualization/data/qbardataitem.h
+++ b/src/datavisualization/data/qbardataitem.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,9 +19,9 @@
#ifndef QBARDATAITEM_H
#define QBARDATAITEM_H
-#include <QtDataVisualization/qdatavisualizationenums.h>
+#include <QtDataVisualization/qdatavisualizationglobal.h>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QBarDataItemPrivate;
@@ -30,13 +30,16 @@ class QT_DATAVISUALIZATION_EXPORT QBarDataItem
public:
QBarDataItem();
QBarDataItem(float value);
+ QBarDataItem(float value, float angle);
QBarDataItem(const QBarDataItem &other);
~QBarDataItem();
QBarDataItem &operator=(const QBarDataItem &other);
- void setValue(float value) { m_value = value; }
- float value() const { return m_value; }
+ inline void setValue(float value) { m_value = value; }
+ inline float value() const { return m_value; }
+ inline void setRotation(float angle) { m_angle = angle; }
+ inline float rotation() const { return m_angle; }
protected:
virtual void createExtraData();
@@ -45,8 +48,9 @@ protected:
private:
float m_value;
+ float m_angle;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qbardataitem_p.h b/src/datavisualization/data/qbardataitem_p.h
index 20b7ea69..c06ddea9 100644
--- a/src/datavisualization/data/qbardataitem_p.h
+++ b/src/datavisualization/data/qbardataitem_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "datavisualizationglobal_p.h"
#include "qbardataitem.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QBarDataItemPrivate
{
@@ -40,12 +40,10 @@ public:
QBarDataItemPrivate();
virtual ~QBarDataItemPrivate();
- // TODO stores other data for bars besides value
-
protected:
friend class QBarDataItem;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qbardataproxy.cpp b/src/datavisualization/data/qbardataproxy.cpp
index 80768059..a26e446e 100644
--- a/src/datavisualization/data/qbardataproxy.cpp
+++ b/src/datavisualization/data/qbardataproxy.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -20,7 +20,7 @@
#include "qbardataproxy_p.h"
#include "qbar3dseries_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QBarDataProxy
@@ -38,7 +38,7 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* If you use QBarDataRow pointers to directly modify data after adding the array to the proxy,
* you must also emit proper signal to make the graph update.
*
- * QBarDataProxy optionally keeps track of row and column labels, which Q3DCategoryAxis can utilize
+ * QBarDataProxy optionally keeps track of row and column labels, which QCategory3DAxis can utilize
* to show axis labels. The row and column labels are stored in separate array from the data and
* row manipulation methods provide an alternate versions that don't affect the row labels.
* This enables the option of having row labels that relate to the position of the data in the
@@ -48,6 +48,18 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
+ * \typedef QtDataVisualization::QBarDataRow
+ *
+ * A vector of \l {QBarDataItem}s.
+ */
+
+/*!
+ * \typedef QtDataVisualization::QBarDataArray
+ *
+ * A list of pointers to \l {QBarDataRow}s.
+ */
+
+/*!
* \qmltype BarDataProxy
* \inqmlmodule QtDataVisualization
* \since QtDataVisualization 1.0
@@ -713,4 +725,4 @@ void QBarDataProxyPrivate::setSeries(QAbstract3DSeries *series)
emit qptr()->seriesChanged(barSeries);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qbardataproxy.h b/src/datavisualization/data/qbardataproxy.h
index 94e15116..0ad71365 100644
--- a/src/datavisualization/data/qbardataproxy.h
+++ b/src/datavisualization/data/qbardataproxy.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -24,10 +24,13 @@
#include <QVector>
#include <QStringList>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
-
+namespace QtDataVisualization {
+// typedefs introduced this way because QDoc doesn't understand namespace macros
typedef QVector<QBarDataItem> QBarDataRow;
typedef QList<QBarDataRow *> QBarDataArray;
+}
+
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QBarDataProxyPrivate;
class QBar3DSeries;
@@ -104,6 +107,6 @@ private:
friend class Bars3DController;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
-#endif // QBARDATAPROXY_H
+#endif
diff --git a/src/datavisualization/data/qbardataproxy_p.h b/src/datavisualization/data/qbardataproxy_p.h
index 84726a02..eb0a0873 100644
--- a/src/datavisualization/data/qbardataproxy_p.h
+++ b/src/datavisualization/data/qbardataproxy_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -33,7 +33,7 @@
#include "qabstractdataproxy_p.h"
#include "qbardataitem.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QBarDataProxyPrivate : public QAbstractDataProxyPrivate
{
@@ -72,6 +72,6 @@ private:
friend class QBarDataProxy;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
-#endif // QBARDATAPROXY_P_H
+#endif
diff --git a/src/datavisualization/data/qheightmapsurfacedataproxy.cpp b/src/datavisualization/data/qheightmapsurfacedataproxy.cpp
index ce379592..9ac5c90f 100644
--- a/src/datavisualization/data/qheightmapsurfacedataproxy.cpp
+++ b/src/datavisualization/data/qheightmapsurfacedataproxy.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "qheightmapsurfacedataproxy_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
// Default ranges correspond value axis defaults
const float defaultMinValue = 0.0f;
@@ -296,9 +296,7 @@ const QHeightMapSurfaceDataProxyPrivate *QHeightMapSurfaceDataProxy::dptrc() con
return static_cast<const QHeightMapSurfaceDataProxyPrivate *>(d_ptr.data());
}
-//
// QHeightMapSurfaceDataProxyPrivate
-//
QHeightMapSurfaceDataProxyPrivate::QHeightMapSurfaceDataProxyPrivate(QHeightMapSurfaceDataProxy *q)
: QSurfaceDataProxyPrivate(q),
@@ -321,7 +319,8 @@ QHeightMapSurfaceDataProxy *QHeightMapSurfaceDataProxyPrivate::qptr()
return static_cast<QHeightMapSurfaceDataProxy *>(q_ptr);
}
-void QHeightMapSurfaceDataProxyPrivate::setValueRanges(float minX, float maxX, float minZ, float maxZ)
+void QHeightMapSurfaceDataProxyPrivate::setValueRanges(float minX, float maxX,
+ float minZ, float maxZ)
{
bool minXChanged = false;
bool maxXChanged = false;
@@ -509,10 +508,10 @@ void QHeightMapSurfaceDataProxyPrivate::handlePendingResolve()
for (; j < lastCol; j++)
newRow[j].setPosition(QVector3D((float(j) * xMul) + m_minXValue,
float(bits[bitCount + (j * 4)]),
- zVal));
+ zVal));
newRow[j].setPosition(QVector3D(m_maxXValue,
float(bits[bitCount + (j * 4)]),
- zVal));
+ zVal));
}
} else {
// Not grayscale, we'll need to calculate height from RGB
@@ -548,4 +547,4 @@ void QHeightMapSurfaceDataProxyPrivate::handlePendingResolve()
emit qptr()->heightMapChanged(m_heightMap);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qheightmapsurfacedataproxy.h b/src/datavisualization/data/qheightmapsurfacedataproxy.h
index 16132b0d..d506d4e8 100644
--- a/src/datavisualization/data/qheightmapsurfacedataproxy.h
+++ b/src/datavisualization/data/qheightmapsurfacedataproxy.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -23,7 +23,7 @@
#include <QImage>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QHeightMapSurfaceDataProxyPrivate;
@@ -77,6 +77,6 @@ private:
friend class Surface3DController;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qheightmapsurfacedataproxy_p.h b/src/datavisualization/data/qheightmapsurfacedataproxy_p.h
index 2d773344..0e947666 100644
--- a/src/datavisualization/data/qheightmapsurfacedataproxy_p.h
+++ b/src/datavisualization/data/qheightmapsurfacedataproxy_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -33,7 +33,7 @@
#include "qsurfacedataproxy_p.h"
#include <QTimer>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QHeightMapSurfaceDataProxyPrivate : public QSurfaceDataProxyPrivate
{
@@ -64,6 +64,6 @@ private:
friend class QHeightMapSurfaceDataProxy;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qitemmodelbardataproxy.cpp b/src/datavisualization/data/qitemmodelbardataproxy.cpp
index e3354015..97289da1 100644
--- a/src/datavisualization/data/qitemmodelbardataproxy.cpp
+++ b/src/datavisualization/data/qitemmodelbardataproxy.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -20,7 +20,7 @@
#include "baritemmodelhandler_p.h"
#include <QTimer>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QItemModelBarDataProxy
@@ -446,6 +446,27 @@ const QItemModelBarDataProxyPrivate *QItemModelBarDataProxy::dptrc() const
return static_cast<const QItemModelBarDataProxyPrivate *>(d_ptr.data());
}
+// QItemModelBarDataProxyPrivate
+
+QItemModelBarDataProxyPrivate::QItemModelBarDataProxyPrivate(QItemModelBarDataProxy *q)
+ : QBarDataProxyPrivate(q),
+ m_itemModelHandler(new BarItemModelHandler(q)),
+ m_useModelCategories(false),
+ m_autoRowCategories(true),
+ m_autoColumnCategories(true)
+{
+}
+
+QItemModelBarDataProxyPrivate::~QItemModelBarDataProxyPrivate()
+{
+ delete m_itemModelHandler;
+}
+
+QItemModelBarDataProxy *QItemModelBarDataProxyPrivate::qptr()
+{
+ return static_cast<QItemModelBarDataProxy *>(q_ptr);
+}
+
void QItemModelBarDataProxyPrivate::connectItemModelHandler()
{
QObject::connect(m_itemModelHandler, &BarItemModelHandler::itemModelChanged,
@@ -468,25 +489,4 @@ void QItemModelBarDataProxyPrivate::connectItemModelHandler()
m_itemModelHandler, &AbstractItemModelHandler::handleMappingChanged);
}
-// QItemModelBarDataProxyPrivate
-
-QItemModelBarDataProxyPrivate::QItemModelBarDataProxyPrivate(QItemModelBarDataProxy *q)
- : QBarDataProxyPrivate(q),
- m_itemModelHandler(new BarItemModelHandler(q)),
- m_useModelCategories(false),
- m_autoRowCategories(true),
- m_autoColumnCategories(true)
-{
-}
-
-QItemModelBarDataProxyPrivate::~QItemModelBarDataProxyPrivate()
-{
- delete m_itemModelHandler;
-}
-
-QItemModelBarDataProxy *QItemModelBarDataProxyPrivate::qptr()
-{
- return static_cast<QItemModelBarDataProxy *>(q_ptr);
-}
-
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qitemmodelbardataproxy.h b/src/datavisualization/data/qitemmodelbardataproxy.h
index 597ab48f..4e62b4c3 100644
--- a/src/datavisualization/data/qitemmodelbardataproxy.h
+++ b/src/datavisualization/data/qitemmodelbardataproxy.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -23,7 +23,7 @@
#include <QAbstractItemModel>
#include <QStringList>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QItemModelBarDataProxyPrivate;
@@ -104,6 +104,6 @@ private:
friend class BarItemModelHandler;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qitemmodelbardataproxy_p.h b/src/datavisualization/data/qitemmodelbardataproxy_p.h
index 63c5b3ff..0c987a00 100644
--- a/src/datavisualization/data/qitemmodelbardataproxy_p.h
+++ b/src/datavisualization/data/qitemmodelbardataproxy_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "qitemmodelbardataproxy.h"
#include "qbardataproxy_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class BarItemModelHandler;
@@ -66,6 +66,6 @@ private:
friend class QItemModelBarDataProxy;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qitemmodelscatterdataproxy.cpp b/src/datavisualization/data/qitemmodelscatterdataproxy.cpp
index 50b57423..1edee53c 100644
--- a/src/datavisualization/data/qitemmodelscatterdataproxy.cpp
+++ b/src/datavisualization/data/qitemmodelscatterdataproxy.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -20,7 +20,7 @@
#include "scatteritemmodelhandler_p.h"
#include <QTimer>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QItemModelScatterDataProxy
@@ -32,7 +32,9 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* for Q3DScatter. It maps roles of QAbstractItemModel to the XYZ-values of Q3DScatter points.
*
* The data is resolved asynchronously whenever the mapping or the model changes.
- * QScatterDataProxy::arrayReset() is emitted when the data has been resolved.
+ * QScatterDataProxy::arrayReset() is emitted when the data has been resolved. However, inserts,
+ * removes, and single data item changes after the model initialization are resolved synchronously,
+ * unless the same frame also contains a change that causes the whole model to be resolved.
*
* Mapping ignores rows and columns of the QAbstractItemModel and treats
* all items equally. It requires the model to provide at least three roles for the data items
@@ -235,18 +237,6 @@ const QItemModelScatterDataProxyPrivate *QItemModelScatterDataProxy::dptrc() con
return static_cast<const QItemModelScatterDataProxyPrivate *>(d_ptr.data());
}
-void QItemModelScatterDataProxyPrivate::connectItemModelHandler()
-{
- QObject::connect(m_itemModelHandler, &ScatterItemModelHandler::itemModelChanged,
- qptr(), &QItemModelScatterDataProxy::itemModelChanged);
- QObject::connect(qptr(), &QItemModelScatterDataProxy::xPosRoleChanged,
- m_itemModelHandler, &AbstractItemModelHandler::handleMappingChanged);
- QObject::connect(qptr(), &QItemModelScatterDataProxy::yPosRoleChanged,
- m_itemModelHandler, &AbstractItemModelHandler::handleMappingChanged);
- QObject::connect(qptr(), &QItemModelScatterDataProxy::zPosRoleChanged,
- m_itemModelHandler, &AbstractItemModelHandler::handleMappingChanged);
-}
-
// QItemModelScatterDataProxyPrivate
QItemModelScatterDataProxyPrivate::QItemModelScatterDataProxyPrivate(QItemModelScatterDataProxy *q)
@@ -265,4 +255,16 @@ QItemModelScatterDataProxy *QItemModelScatterDataProxyPrivate::qptr()
return static_cast<QItemModelScatterDataProxy *>(q_ptr);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+void QItemModelScatterDataProxyPrivate::connectItemModelHandler()
+{
+ QObject::connect(m_itemModelHandler, &ScatterItemModelHandler::itemModelChanged,
+ qptr(), &QItemModelScatterDataProxy::itemModelChanged);
+ QObject::connect(qptr(), &QItemModelScatterDataProxy::xPosRoleChanged,
+ m_itemModelHandler, &AbstractItemModelHandler::handleMappingChanged);
+ QObject::connect(qptr(), &QItemModelScatterDataProxy::yPosRoleChanged,
+ m_itemModelHandler, &AbstractItemModelHandler::handleMappingChanged);
+ QObject::connect(qptr(), &QItemModelScatterDataProxy::zPosRoleChanged,
+ m_itemModelHandler, &AbstractItemModelHandler::handleMappingChanged);
+}
+
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qitemmodelscatterdataproxy.h b/src/datavisualization/data/qitemmodelscatterdataproxy.h
index f2a7d78c..0f69afa7 100644
--- a/src/datavisualization/data/qitemmodelscatterdataproxy.h
+++ b/src/datavisualization/data/qitemmodelscatterdataproxy.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -23,7 +23,7 @@
#include <QAbstractItemModel>
#include <QStringList>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QItemModelScatterDataProxyPrivate;
@@ -71,6 +71,6 @@ private:
friend class ScatterItemModelHandler;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qitemmodelscatterdataproxy_p.h b/src/datavisualization/data/qitemmodelscatterdataproxy_p.h
index 8c86ef09..b8804c5c 100644
--- a/src/datavisualization/data/qitemmodelscatterdataproxy_p.h
+++ b/src/datavisualization/data/qitemmodelscatterdataproxy_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "qitemmodelscatterdataproxy.h"
#include "qscatterdataproxy_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class ScatterItemModelHandler;
@@ -57,6 +57,6 @@ private:
friend class QItemModelScatterDataProxy;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qitemmodelsurfacedataproxy.cpp b/src/datavisualization/data/qitemmodelsurfacedataproxy.cpp
index 191e0d7f..0c206b81 100644
--- a/src/datavisualization/data/qitemmodelsurfacedataproxy.cpp
+++ b/src/datavisualization/data/qitemmodelsurfacedataproxy.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -20,9 +20,7 @@
#include "surfaceitemmodelhandler_p.h"
#include <QTimer>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
-
-// TODO: CHECK DOCUMENTATION!
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QItemModelSurfaceDataProxy
@@ -160,7 +158,8 @@ 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, QObject *parent)
+QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel,
+ QObject *parent)
: QSurfaceDataProxy(new QItemModelSurfaceDataProxyPrivate(this), parent)
{
dptr()->m_itemModelHandler->setItemModel(itemModel);
@@ -175,7 +174,8 @@ QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel
* in rows and columns already, so it also sets useModelCategories property to true.
*/
QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel,
- const QString &valueRole, QObject *parent)
+ const QString &valueRole,
+ QObject *parent)
: QSurfaceDataProxy(new QItemModelSurfaceDataProxyPrivate(this), parent)
{
dptr()->m_itemModelHandler->setItemModel(itemModel);
@@ -192,7 +192,8 @@ QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel
QItemModelSurfaceDataProxy::QItemModelSurfaceDataProxy(const QAbstractItemModel *itemModel,
const QString &rowRole,
const QString &columnRole,
- const QString &valueRole, QObject *parent)
+ const QString &valueRole,
+ QObject *parent)
: QSurfaceDataProxy(new QItemModelSurfaceDataProxyPrivate(this), parent)
{
dptr()->m_itemModelHandler->setItemModel(itemModel);
@@ -456,6 +457,27 @@ const QItemModelSurfaceDataProxyPrivate *QItemModelSurfaceDataProxy::dptrc() con
return static_cast<const QItemModelSurfaceDataProxyPrivate *>(d_ptr.data());
}
+// QItemModelSurfaceDataProxyPrivate
+
+QItemModelSurfaceDataProxyPrivate::QItemModelSurfaceDataProxyPrivate(QItemModelSurfaceDataProxy *q)
+ : QSurfaceDataProxyPrivate(q),
+ m_itemModelHandler(new SurfaceItemModelHandler(q)),
+ m_useModelCategories(false),
+ m_autoRowCategories(true),
+ m_autoColumnCategories(true)
+{
+}
+
+QItemModelSurfaceDataProxyPrivate::~QItemModelSurfaceDataProxyPrivate()
+{
+ delete m_itemModelHandler;
+}
+
+QItemModelSurfaceDataProxy *QItemModelSurfaceDataProxyPrivate::qptr()
+{
+ return static_cast<QItemModelSurfaceDataProxy *>(q_ptr);
+}
+
void QItemModelSurfaceDataProxyPrivate::connectItemModelHandler()
{
QObject::connect(m_itemModelHandler, &SurfaceItemModelHandler::itemModelChanged,
@@ -478,25 +500,4 @@ void QItemModelSurfaceDataProxyPrivate::connectItemModelHandler()
m_itemModelHandler, &AbstractItemModelHandler::handleMappingChanged);
}
-// QItemModelSurfaceDataProxyPrivate
-
-QItemModelSurfaceDataProxyPrivate::QItemModelSurfaceDataProxyPrivate(QItemModelSurfaceDataProxy *q)
- : QSurfaceDataProxyPrivate(q),
- m_itemModelHandler(new SurfaceItemModelHandler(q)),
- m_useModelCategories(false),
- m_autoRowCategories(true),
- m_autoColumnCategories(true)
-{
-}
-
-QItemModelSurfaceDataProxyPrivate::~QItemModelSurfaceDataProxyPrivate()
-{
- delete m_itemModelHandler;
-}
-
-QItemModelSurfaceDataProxy *QItemModelSurfaceDataProxyPrivate::qptr()
-{
- return static_cast<QItemModelSurfaceDataProxy *>(q_ptr);
-}
-
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qitemmodelsurfacedataproxy.h b/src/datavisualization/data/qitemmodelsurfacedataproxy.h
index ee6b4d99..d1e0f2b8 100644
--- a/src/datavisualization/data/qitemmodelsurfacedataproxy.h
+++ b/src/datavisualization/data/qitemmodelsurfacedataproxy.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -23,7 +23,7 @@
#include <QAbstractItemModel>
#include <QStringList>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QItemModelSurfaceDataProxyPrivate;
@@ -104,6 +104,6 @@ private:
friend class SurfaceItemModelHandler;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qitemmodelsurfacedataproxy_p.h b/src/datavisualization/data/qitemmodelsurfacedataproxy_p.h
index e4505c40..5049a25e 100644
--- a/src/datavisualization/data/qitemmodelsurfacedataproxy_p.h
+++ b/src/datavisualization/data/qitemmodelsurfacedataproxy_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "qitemmodelsurfacedataproxy.h"
#include "qsurfacedataproxy_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class SurfaceItemModelHandler;
@@ -66,6 +66,6 @@ private:
friend class QItemModelSurfaceDataProxy;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qscatter3dseries.cpp b/src/datavisualization/data/qscatter3dseries.cpp
index 47971f5f..43bde4dd 100644
--- a/src/datavisualization/data/qscatter3dseries.cpp
+++ b/src/datavisualization/data/qscatter3dseries.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,7 +19,7 @@
#include "qscatter3dseries_p.h"
#include "scatter3dcontroller_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QScatter3DSeries
@@ -43,13 +43,15 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* \li @zTitle \li Title from Z axis
* \row
* \li @xLabel \li Item value formatted using the same format the X axis attached to the graph uses,
- * see \l{Q3DValueAxis::setLabelFormat()} for more information.
+ * see \l{QValue3DAxis::setLabelFormat()} for more information.
* \row
* \li @yLabel \li Item value formatted using the same format the Y axis attached to the graph uses,
- * see \l{Q3DValueAxis::setLabelFormat()} for more information.
+ * see \l{QValue3DAxis::setLabelFormat()} for more information.
* \row
* \li @zLabel \li Item value formatted using the same format the Z axis attached to the graph uses,
- * see \l{Q3DValueAxis::setLabelFormat()} for more information.
+ * see \l{QValue3DAxis::setLabelFormat()} for more information.
+ * \row
+ * \li @seriesName \li Name of the series
* \endtable
*
* For example:
@@ -88,10 +90,14 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*
* Selects an item at the \a index. The \a index is the index in the data array of the series.
* Only one item can be selected at a time.
- * To clear selection, set invalidSelectionIndex() as the \a index.
+ * To clear selection from this series, set invalidSelectionIndex as the \a index.
* If this series is added to a graph, the graph can adjust the selection according to user
* interaction or if it becomes invalid. Selecting an item on another added series will also
* clear the selection.
+ * Removing items from or inserting items to the series before the selected item
+ * will adjust the selection so that the same item will stay selected.
+ *
+ * \sa AbstractGraph3D::clearSelection()
*/
/*!
@@ -103,9 +109,11 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
- * \qmlmethod int Scatter3DSeries::invalidSelectionIndex()
- * \return an invalid index for selection. Set this index to selectedItem property if you
- * want to clear the selection.
+ * \qmlproperty int Scatter3DSeries::invalidSelectionIndex
+ * A constant property providing an invalid index for selection. Set this index to
+ * selectedItem property if you want to clear the selection from this series.
+ *
+ * \sa AbstractGraph3D::clearSelection()
*/
/*!
@@ -164,10 +172,14 @@ QScatterDataProxy *QScatter3DSeries::dataProxy() const
*
* Selects an item at the \a index. The \a index is the index in the data array of the series.
* Only one item can be selected at a time.
- * To clear selection, set invalidSelectionIndex() as the \a index.
+ * To clear selection from this series, set invalidSelectionIndex() as the \a index.
* If this series is added to a graph, the graph can adjust the selection according to user
* interaction or if it becomes invalid. Selecting an item on another added series will also
* clear the selection.
+ * Removing items from or inserting items to the series before the selected item
+ * will adjust the selection so that the same item will stay selected.
+ *
+ * \sa QAbstract3DGraph::clearSelection()
*/
void QScatter3DSeries::setSelectedItem(int index)
{
@@ -207,9 +219,11 @@ float QScatter3DSeries::itemSize() const
/*!
* \return an invalid index for selection. Set this index to selectedItem property if you
- * want to clear the selection.
+ * want to clear the selection from this series.
+ *
+ * \sa QAbstract3DGraph::clearSelection()
*/
-int QScatter3DSeries::invalidSelectionIndex() const
+int QScatter3DSeries::invalidSelectionIndex()
{
return Scatter3DController::invalidSelectionIndex();
}
@@ -237,7 +251,7 @@ QScatter3DSeriesPrivate::QScatter3DSeriesPrivate(QScatter3DSeries *q)
m_selectedItem(Scatter3DController::invalidSelectionIndex()),
m_itemSize(0.0f)
{
- m_itemLabelFormat = QStringLiteral("@valueTitle: @valueLabel");
+ m_itemLabelFormat = QStringLiteral("@xLabel, @yLabel, @zLabel");
m_mesh = QAbstract3DSeries::MeshSphere;
}
@@ -299,4 +313,4 @@ void QScatter3DSeriesPrivate::setItemSize(float size)
m_controller->markSeriesVisualsDirty();
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qscatter3dseries.h b/src/datavisualization/data/qscatter3dseries.h
index 1d9abc11..437c7fd1 100644
--- a/src/datavisualization/data/qscatter3dseries.h
+++ b/src/datavisualization/data/qscatter3dseries.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -22,7 +22,7 @@
#include <QtDataVisualization/qabstract3dseries.h>
#include <QtDataVisualization/qscatterdataproxy.h>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QScatter3DSeriesPrivate;
@@ -43,12 +43,11 @@ public:
void setSelectedItem(int index);
int selectedItem() const;
+ static int invalidSelectionIndex();
void setItemSize(float size);
float itemSize() const;
- Q_INVOKABLE int invalidSelectionIndex() const;
-
signals:
void dataProxyChanged(QScatterDataProxy *proxy);
void selectedItemChanged(int index);
@@ -65,6 +64,6 @@ private:
friend class Scatter3DController;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qscatter3dseries_p.h b/src/datavisualization/data/qscatter3dseries_p.h
index a09536c9..1abbd406 100644
--- a/src/datavisualization/data/qscatter3dseries_p.h
+++ b/src/datavisualization/data/qscatter3dseries_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "qscatter3dseries.h"
#include "qabstract3dseries_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QScatter3DSeriesPrivate : public QAbstract3DSeriesPrivate
{
@@ -56,6 +56,6 @@ private:
friend class QScatter3DSeries;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qscatterdataitem.cpp b/src/datavisualization/data/qscatterdataitem.cpp
index 2c0c0d5a..33f8bed0 100644
--- a/src/datavisualization/data/qscatterdataitem.cpp
+++ b/src/datavisualization/data/qscatterdataitem.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "qscatterdataitem_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QScatterDataItem
@@ -72,6 +72,7 @@ QScatterDataItem::~QScatterDataItem()
QScatterDataItem &QScatterDataItem::operator=(const QScatterDataItem &other)
{
m_position = other.m_position;
+ m_rotation = other.m_rotation;
if (other.d_ptr)
createExtraData();
@@ -92,6 +93,20 @@ QScatterDataItem &QScatterDataItem::operator=(const QScatterDataItem &other)
*/
/*!
+ * \fn void QScatterDataItem::setRotation(const QQuaternion &rotation)
+ * Sets \a rotation to this data item.
+ * The \a rotation should be a normalized QQuaternion.
+ * If the series also has rotation, item and series rotations are multiplied together.
+ * Defaults to no rotation.
+ */
+
+/*!
+ * \fn QQuaternion QScatterDataItem::rotation() const
+ * \return rotation of this data item.
+ * \sa setRotation()
+ */
+
+/*!
* \fn void QScatterDataItem::setX(float value)
* Sets the X component of the item position to the \a value.
*/
@@ -138,4 +153,4 @@ QScatterDataItemPrivate::~QScatterDataItemPrivate()
{
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qscatterdataitem.h b/src/datavisualization/data/qscatterdataitem.h
index 7992864c..d2ef3bcc 100644
--- a/src/datavisualization/data/qscatterdataitem.h
+++ b/src/datavisualization/data/qscatterdataitem.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,10 +19,12 @@
#ifndef QSCATTERDATAITEM_H
#define QSCATTERDATAITEM_H
-#include <QtDataVisualization/qdatavisualizationenums.h>
+#include <QtDataVisualization/qdatavisualizationglobal.h>
+
#include <QVector3D>
+#include <QQuaternion>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QScatterDataItemPrivate;
@@ -38,6 +40,8 @@ public:
inline void setPosition(const QVector3D &position) { m_position = position; }
inline QVector3D position() const { return m_position; }
+ inline void setRotation(const QQuaternion &rotation) { m_rotation = rotation; }
+ inline QQuaternion rotation() const { return m_rotation; }
inline void setX(float value) { m_position.setX(value); }
inline void setY(float value) { m_position.setY(value); }
inline void setZ(float value) { m_position.setZ(value); }
@@ -52,8 +56,9 @@ protected:
private:
QVector3D m_position;
+ QQuaternion m_rotation;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qscatterdataitem_p.h b/src/datavisualization/data/qscatterdataitem_p.h
index acc67347..efb1cc5c 100644
--- a/src/datavisualization/data/qscatterdataitem_p.h
+++ b/src/datavisualization/data/qscatterdataitem_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "datavisualizationglobal_p.h"
#include "qscatterdataitem.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QScatterDataItemPrivate
{
@@ -40,12 +40,10 @@ public:
QScatterDataItemPrivate();
virtual ~QScatterDataItemPrivate();
- // TODO stores other data for scatter items besides position
-
protected:
friend class QScatterDataItem;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qscatterdataproxy.cpp b/src/datavisualization/data/qscatterdataproxy.cpp
index e0876d64..b5e3863d 100644
--- a/src/datavisualization/data/qscatterdataproxy.cpp
+++ b/src/datavisualization/data/qscatterdataproxy.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -20,7 +20,7 @@
#include "qscatterdataproxy_p.h"
#include "qscatter3dseries_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QScatterDataProxy
@@ -36,6 +36,12 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
+ * \typedef QtDataVisualization::QScatterDataArray
+ *
+ * A vector of \l {QScatterDataItem}s.
+ */
+
+/*!
* \qmltype ScatterDataProxy
* \inqmlmodule QtDataVisualization
* \since QtDataVisualization 1.0
@@ -408,4 +414,4 @@ QScatterDataProxy *QScatterDataProxyPrivate::qptr()
return static_cast<QScatterDataProxy *>(q_ptr);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qscatterdataproxy.h b/src/datavisualization/data/qscatterdataproxy.h
index acb3d3d4..b8179166 100644
--- a/src/datavisualization/data/qscatterdataproxy.h
+++ b/src/datavisualization/data/qscatterdataproxy.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -22,9 +22,12 @@
#include <QtDataVisualization/qabstractdataproxy.h>
#include <QtDataVisualization/qscatterdataitem.h>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
-
+namespace QtDataVisualization {
+// typedef introduced this way because QDoc doesn't understand namespace macros
typedef QVector<QScatterDataItem> QScatterDataArray;
+}
+
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QScatterDataProxyPrivate;
class QScatter3DSeries;
@@ -79,6 +82,6 @@ private:
friend class Scatter3DController;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qscatterdataproxy_p.h b/src/datavisualization/data/qscatterdataproxy_p.h
index 322c8937..ccd37bda 100644
--- a/src/datavisualization/data/qscatterdataproxy_p.h
+++ b/src/datavisualization/data/qscatterdataproxy_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -33,7 +33,7 @@
#include "qabstractdataproxy_p.h"
#include "qscatterdataitem.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QScatterDataProxyPrivate : public QAbstractDataProxyPrivate
{
@@ -61,6 +61,6 @@ private:
friend class QScatterDataProxy;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
-#endif // QBARDATAPROXY_P_H
+#endif
diff --git a/src/datavisualization/data/qsurface3dseries.cpp b/src/datavisualization/data/qsurface3dseries.cpp
index cf794077..e5f06cc6 100644
--- a/src/datavisualization/data/qsurface3dseries.cpp
+++ b/src/datavisualization/data/qsurface3dseries.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,7 +19,7 @@
#include "qsurface3dseries_p.h"
#include "surface3dcontroller_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QSurface3DSeries
@@ -46,13 +46,15 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* \li @zTitle \li Title from Z axis
* \row
* \li @xLabel \li Item value formatted using the same format as the X axis attached to the graph uses,
- * see \l{Q3DValueAxis::setLabelFormat()} for more information.
+ * see \l{QValue3DAxis::setLabelFormat()} for more information.
* \row
* \li @yLabel \li Item value formatted using the same format as the Y axis attached to the graph uses,
- * see \l{Q3DValueAxis::setLabelFormat()} for more information.
+ * see \l{QValue3DAxis::setLabelFormat()} for more information.
* \row
* \li @zLabel \li Item value formatted using the same format as the Z axis attached to the graph uses,
- * see \l{Q3DValueAxis::setLabelFormat()} for more information.
+ * see \l{QValue3DAxis::setLabelFormat()} for more information.
+ * \row
+ * \li @seriesName \li Name of the series
* \endtable
*
* For example:
@@ -73,6 +75,8 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* This type manages the series specific visual elements, as well as series data
* (via data proxy).
*
+ * For Surface3DSeries enums, see \l QSurface3DSeries::DrawFlag
+ *
* For more complete description, see QSurface3DSeries.
*
* \sa {Qt Data Visualization Data Handling}
@@ -92,15 +96,21 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
* Selects a surface grid point in a \a position. The position is the (row, column) position in
* the data array of the series.
* Only one point can be selected at a time.
- * To clear selection, set invalidSelectionPosition() as the \a position.
+ * To clear selection from this series, set invalidSelectionPosition as the \a position.
* If this series is added to a graph, the graph can adjust the selection according to user
* interaction or if it becomes invalid.
+ * Removing rows from or inserting rows to the series before the row of the selected point
+ * will adjust the selection so that the same point will stay selected.
+ *
+ * \sa AbstractGraph3D::clearSelection()
*/
/*!
- * \qmlmethod point Surface3DSeries::invalidSelectionPosition()
- * \return a point signifying an invalid selection position. Set this to selectedPoint property
- * to clear the selection.
+ * \qmlproperty point Surface3DSeries::invalidSelectionPosition
+ * A constant property providing an invalid selection position.
+ * Set this to selectedPoint property to clear the selection from this series.
+ *
+ * \sa AbstractGraph3D::clearSelection()
*/
/*!
@@ -199,9 +209,13 @@ QSurfaceDataProxy *QSurface3DSeries::dataProxy() const
* Selects a surface grid point in a \a position. The position is the (row, column) position in
* the data array of the series.
* Only one point can be selected at a time.
- * To clear selection, set invalidSelectionPosition() as the \a position.
+ * To clear selection from this series, set invalidSelectionPosition() as the \a position.
* If this series is added to a graph, the graph can adjust the selection according to user
* interaction or if it becomes invalid.
+ * Removing rows from or inserting rows to the series before the row of the selected point
+ * will adjust the selection so that the same point will stay selected.
+ *
+ * \sa QAbstract3DGraph::clearSelection()
*/
void QSurface3DSeries::setSelectedPoint(const QPoint &position)
{
@@ -219,9 +233,11 @@ QPoint QSurface3DSeries::selectedPoint() const
/*!
* \return a QPoint signifying an invalid selection position. Set this to selectedPoint property
- * to clear the selection.
+ * to clear the selection from this series.
+ *
+ * \sa QAbstract3DGraph::clearSelection()
*/
-QPoint QSurface3DSeries::invalidSelectionPosition() const
+QPoint QSurface3DSeries::invalidSelectionPosition()
{
return Surface3DController::invalidSelectionPosition();
}
@@ -306,7 +322,7 @@ QSurface3DSeriesPrivate::QSurface3DSeriesPrivate(QSurface3DSeries *q)
m_flatShadingEnabled(true),
m_drawMode(QSurface3DSeries::DrawSurfaceAndWireframe)
{
- m_itemLabelFormat = QStringLiteral("(@xLabel, @yLabel, @zLabel)");
+ m_itemLabelFormat = QStringLiteral("@xLabel, @yLabel, @zLabel");
m_mesh = QAbstract3DSeries::MeshSphere;
}
@@ -378,4 +394,4 @@ void QSurface3DSeriesPrivate::setDrawMode(QSurface3DSeries::DrawFlags mode)
m_controller->markSeriesVisualsDirty();
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qsurface3dseries.h b/src/datavisualization/data/qsurface3dseries.h
index 6681495b..b8a1a62b 100644
--- a/src/datavisualization/data/qsurface3dseries.h
+++ b/src/datavisualization/data/qsurface3dseries.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -22,7 +22,7 @@
#include <QtDataVisualization/qabstract3dseries.h>
#include <QtDataVisualization/qsurfacedataproxy.h>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QSurface3DSeriesPrivate;
@@ -34,7 +34,7 @@ class QT_DATAVISUALIZATION_EXPORT QSurface3DSeries : public QAbstract3DSeries
Q_PROPERTY(QPoint selectedPoint READ selectedPoint WRITE setSelectedPoint NOTIFY selectedPointChanged)
Q_PROPERTY(bool flatShadingEnabled READ isFlatShadingEnabled WRITE setFlatShadingEnabled NOTIFY flatShadingEnabledChanged)
Q_PROPERTY(bool flatShadingSupported READ isFlatShadingSupported NOTIFY flatShadingSupportedChanged)
- Q_PROPERTY(QtDataVisualization::QSurface3DSeries::DrawFlags drawMode READ drawMode WRITE setDrawMode NOTIFY drawModeChanged)
+ Q_PROPERTY(DrawFlags drawMode READ drawMode WRITE setDrawMode NOTIFY drawModeChanged)
public:
enum DrawFlag {
@@ -53,7 +53,7 @@ public:
void setSelectedPoint(const QPoint &position);
QPoint selectedPoint() const;
- QPoint invalidSelectionPosition() const;
+ static QPoint invalidSelectionPosition();
void setFlatShadingEnabled(bool enabled);
bool isFlatShadingEnabled() const;
@@ -81,6 +81,6 @@ private:
friend class Surface3DController;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qsurface3dseries_p.h b/src/datavisualization/data/qsurface3dseries_p.h
index 00bfbed2..bc8157bd 100644
--- a/src/datavisualization/data/qsurface3dseries_p.h
+++ b/src/datavisualization/data/qsurface3dseries_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "qsurface3dseries.h"
#include "qabstract3dseries_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QSurface3DSeriesPrivate : public QAbstract3DSeriesPrivate
{
@@ -59,6 +59,6 @@ private:
friend class QSurface3DSeries;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qsurfacedataitem.cpp b/src/datavisualization/data/qsurfacedataitem.cpp
index f5f91464..c8a76a67 100644
--- a/src/datavisualization/data/qsurfacedataitem.cpp
+++ b/src/datavisualization/data/qsurfacedataitem.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "qsurfacedataitem_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QSurfaceDataItem
@@ -72,13 +72,11 @@ QSurfaceDataItem::~QSurfaceDataItem()
QSurfaceDataItem &QSurfaceDataItem::operator=(const QSurfaceDataItem &other)
{
m_position = other.m_position;
- //m_size = other.m_size;
if (other.d_ptr)
createExtraData();
else
d_ptr = 0;
- // TODO set extra data
return *this;
}
@@ -140,4 +138,4 @@ QSurfaceDataItemPrivate::~QSurfaceDataItemPrivate()
{
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qsurfacedataitem.h b/src/datavisualization/data/qsurfacedataitem.h
index dbc849d3..f305952b 100644
--- a/src/datavisualization/data/qsurfacedataitem.h
+++ b/src/datavisualization/data/qsurfacedataitem.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,10 +19,11 @@
#ifndef QSURFACEDATAITEM_H
#define QSURFACEDATAITEM_H
-#include <QtDataVisualization/qdatavisualizationenums.h>
+#include <QtDataVisualization/qdatavisualizationglobal.h>
+
#include <QVector3D>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QSurfaceDataItemPrivate;
@@ -54,6 +55,6 @@ private:
QVector3D m_position;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qsurfacedataitem_p.h b/src/datavisualization/data/qsurfacedataitem_p.h
index d13679a8..0cec7eab 100644
--- a/src/datavisualization/data/qsurfacedataitem_p.h
+++ b/src/datavisualization/data/qsurfacedataitem_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "datavisualizationglobal_p.h"
#include "qsurfacedataitem.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QSurfaceDataItemPrivate
{
@@ -40,12 +40,10 @@ public:
QSurfaceDataItemPrivate();
virtual ~QSurfaceDataItemPrivate();
- // TODO stores other data for surface items besides position
-
protected:
friend class QSurfaceDataItem;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/qsurfacedataproxy.cpp b/src/datavisualization/data/qsurfacedataproxy.cpp
index 5ea05d75..43ce40eb 100644
--- a/src/datavisualization/data/qsurfacedataproxy.cpp
+++ b/src/datavisualization/data/qsurfacedataproxy.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -20,7 +20,7 @@
#include "qsurfacedataproxy_p.h"
#include "qsurface3dseries_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
/*!
* \class QSurfaceDataProxy
@@ -57,6 +57,18 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
+ * \typedef QtDataVisualization::QSurfaceDataRow
+ *
+ * A vector of \l {QSurfaceDataItem}s.
+ */
+
+/*!
+ * \typedef QtDataVisualization::QSurfaceDataArray
+ *
+ * A list of pointers to \l {QSurfaceDataRow}s.
+ */
+
+/*!
* \qmltype SurfaceDataProxy
* \inqmlmodule QtDataVisualization
* \since QtDataVisualization 1.0
@@ -343,9 +355,7 @@ const QSurfaceDataProxyPrivate *QSurfaceDataProxy::dptrc() const
* need to emit this signal yourself or the graph won't get updated.
*/
-//
// QSurfaceDataProxyPrivate
-//
QSurfaceDataProxyPrivate::QSurfaceDataProxyPrivate(QSurfaceDataProxy *q)
: QAbstractDataProxyPrivate(q, QAbstractDataProxy::DataTypeSurface),
@@ -520,4 +530,4 @@ void QSurfaceDataProxyPrivate::setSeries(QAbstract3DSeries *series)
emit qptr()->seriesChanged(surfaceSeries);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qsurfacedataproxy.h b/src/datavisualization/data/qsurfacedataproxy.h
index 04c6dbf7..0933faf6 100644
--- a/src/datavisualization/data/qsurfacedataproxy.h
+++ b/src/datavisualization/data/qsurfacedataproxy.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -22,10 +22,13 @@
#include <QtDataVisualization/qabstractdataproxy.h>
#include <QtDataVisualization/qsurfacedataitem.h>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
-
+namespace QtDataVisualization {
+// typedefs introduced this way because QDoc doesn't understand namespace macros
typedef QVector<QSurfaceDataItem> QSurfaceDataRow;
typedef QList<QSurfaceDataRow *> QSurfaceDataArray;
+}
+
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QSurfaceDataProxyPrivate;
class QSurface3DSeries;
@@ -86,6 +89,6 @@ private:
friend class Surface3DController;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
-#endif // QSURFACEDATAPROXY_H
+#endif
diff --git a/src/datavisualization/data/qsurfacedataproxy_p.h b/src/datavisualization/data/qsurfacedataproxy_p.h
index 1fda354c..658abe32 100644
--- a/src/datavisualization/data/qsurfacedataproxy_p.h
+++ b/src/datavisualization/data/qsurfacedataproxy_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -34,7 +34,7 @@
#include <QSize>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QSurfaceDataProxyPrivate : public QAbstractDataProxyPrivate
{
@@ -67,6 +67,6 @@ private:
friend class QSurfaceDataProxy;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
-#endif // QSURFACEDATAPROXY_P_H
+#endif
diff --git a/src/datavisualization/data/scatteritemmodelhandler.cpp b/src/datavisualization/data/scatteritemmodelhandler.cpp
index a70b35b0..1c936d08 100644
--- a/src/datavisualization/data/scatteritemmodelhandler.cpp
+++ b/src/datavisualization/data/scatteritemmodelhandler.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -19,7 +19,9 @@
#include "scatteritemmodelhandler_p.h"
#include <QTimer>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
+
+static const int noRoleIndex = -1;
ScatterItemModelHandler::ScatterItemModelHandler(QItemModelScatterDataProxy *proxy, QObject *parent)
: AbstractItemModelHandler(parent),
@@ -32,6 +34,80 @@ ScatterItemModelHandler::~ScatterItemModelHandler()
{
}
+void ScatterItemModelHandler::handleDataChanged(const QModelIndex &topLeft,
+ const QModelIndex &bottomRight,
+ const QVector<int> &roles)
+{
+ // Do nothing if full reset already pending
+ if (!m_fullReset) {
+ if (m_itemModel->columnCount() > 1) {
+ // If the data model is multi-column, do full asynchronous reset to simplify things
+ AbstractItemModelHandler::handleDataChanged(topLeft, bottomRight, roles);
+ } else {
+ int start = qMin(topLeft.row(), bottomRight.row());
+ int end = qMax(topLeft.row(), bottomRight.row());
+
+ QScatterDataArray array(end - start + 1);
+ int count = 0;
+ for (int i = start; i <= end; i++)
+ modelPosToScatterItem(i, 0, array[count++]);
+
+ m_proxy->setItems(start, array);
+ }
+ }
+}
+
+void ScatterItemModelHandler::handleRowsInserted(const QModelIndex &parent, int start, int end)
+{
+ // Do nothing if full reset already pending
+ if (!m_fullReset) {
+ if (!m_proxy->itemCount() || m_itemModel->columnCount() > 1) {
+ // If inserting into an empty array, do full asynchronous reset to avoid multiple
+ // separate inserts when initializing the model.
+ // If the data model is multi-column, do full asynchronous reset to simplify things
+ AbstractItemModelHandler::handleRowsInserted(parent, start, end);
+ } else {
+ QScatterDataArray array(end - start + 1);
+ int count = 0;
+ for (int i = start; i <= end; i++)
+ modelPosToScatterItem(i, 0, array[count++]);
+
+ m_proxy->insertItems(start, array);
+ }
+ }
+}
+
+void ScatterItemModelHandler::handleRowsRemoved(const QModelIndex &parent, int start, int end)
+{
+ Q_UNUSED(parent)
+
+ // Do nothing if full reset already pending
+ if (!m_fullReset) {
+ if (m_itemModel->columnCount() > 1) {
+ // If the data model is multi-column, do full asynchronous reset to simplify things
+ AbstractItemModelHandler::handleRowsRemoved(parent, start, end);
+ } else {
+ m_proxy->removeItems(start, end - start + 1);
+ }
+ }
+}
+
+void ScatterItemModelHandler::modelPosToScatterItem(int modelRow, int modelColumn,
+ QScatterDataItem &item)
+{
+ QModelIndex index = m_itemModel->index(modelRow, modelColumn);
+ float xPos(0.0f);
+ float yPos(0.0f);
+ float zPos(0.0f);
+ if (m_xPosRole != noRoleIndex)
+ xPos = index.data(m_xPosRole).toFloat();
+ if (m_yPosRole != noRoleIndex)
+ yPos = index.data(m_yPosRole).toFloat();
+ if (m_zPosRole != noRoleIndex)
+ zPos = index.data(m_zPosRole).toFloat();
+ item.setPosition(QVector3D(xPos, yPos, zPos));
+}
+
// Resolve entire item model into QScatterDataArray.
void ScatterItemModelHandler::resolveModel()
{
@@ -41,12 +117,10 @@ void ScatterItemModelHandler::resolveModel()
return;
}
- static const int noRoleIndex = -1;
-
QHash<int, QByteArray> roleHash = m_itemModel->roleNames();
- const int xPosRole = roleHash.key(m_proxy->xPosRole().toLatin1(), noRoleIndex);
- const int yPosRole = roleHash.key(m_proxy->yPosRole().toLatin1(), noRoleIndex);
- const int zPosRole = roleHash.key(m_proxy->zPosRole().toLatin1(), noRoleIndex);
+ m_xPosRole = roleHash.key(m_proxy->xPosRole().toLatin1(), noRoleIndex);
+ m_yPosRole = roleHash.key(m_proxy->yPosRole().toLatin1(), noRoleIndex);
+ m_zPosRole = roleHash.key(m_proxy->zPosRole().toLatin1(), noRoleIndex);
const int columnCount = m_itemModel->columnCount();
const int rowCount = m_itemModel->rowCount();
const int totalCount = rowCount * columnCount;
@@ -59,17 +133,7 @@ void ScatterItemModelHandler::resolveModel()
// Parse data into newProxyArray
for (int i = 0; i < rowCount; i++) {
for (int j = 0; j < columnCount; j++) {
- QModelIndex index = m_itemModel->index(i, j);
- float xPos(0.0f);
- float yPos(0.0f);
- float zPos(0.0f);
- if (xPosRole != noRoleIndex)
- xPos = index.data(xPosRole).toFloat();
- if (yPosRole != noRoleIndex)
- yPos = index.data(yPosRole).toFloat();
- if (zPosRole != noRoleIndex)
- zPos = index.data(zPosRole).toFloat();
- (*m_proxyArray)[runningCount].setPosition(QVector3D(xPos, yPos, zPos));
+ modelPosToScatterItem(i, j, (*m_proxyArray)[runningCount]);
runningCount++;
}
}
@@ -77,4 +141,4 @@ void ScatterItemModelHandler::resolveModel()
m_proxy->resetArray(m_proxyArray);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/scatteritemmodelhandler_p.h b/src/datavisualization/data/scatteritemmodelhandler_p.h
index 72f8f76c..f0e4fa84 100644
--- a/src/datavisualization/data/scatteritemmodelhandler_p.h
+++ b/src/datavisualization/data/scatteritemmodelhandler_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "abstractitemmodelhandler_p.h"
#include "qitemmodelscatterdataproxy_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class ScatterItemModelHandler : public AbstractItemModelHandler
{
@@ -41,13 +41,25 @@ public:
ScatterItemModelHandler(QItemModelScatterDataProxy *proxy, QObject *parent = 0);
virtual ~ScatterItemModelHandler();
+public slots:
+ virtual void handleDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight,
+ const QVector<int> &roles = QVector<int> ());
+ virtual void handleRowsInserted(const QModelIndex &parent, int start, int end);
+ virtual void handleRowsRemoved(const QModelIndex &parent, int start, int end);
+
protected:
void virtual resolveModel();
+private:
+ void modelPosToScatterItem(int modelRow, int modelColumn, QScatterDataItem &item);
+
QItemModelScatterDataProxy *m_proxy; // Not owned
QScatterDataArray *m_proxyArray; // Not owned
+ int m_xPosRole;
+ int m_yPosRole;
+ int m_zPosRole;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/scatterrenderitem.cpp b/src/datavisualization/data/scatterrenderitem.cpp
index 83c66583..d39af816 100644
--- a/src/datavisualization/data/scatterrenderitem.cpp
+++ b/src/datavisualization/data/scatterrenderitem.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -20,7 +20,7 @@
#include "scatter3drenderer_p.h"
#include "qscatterdataproxy.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
ScatterRenderItem::ScatterRenderItem()
: AbstractRenderItem(),
@@ -33,10 +33,11 @@ ScatterRenderItem::ScatterRenderItem(const ScatterRenderItem &other)
m_visible(false)
{
m_position = other.m_position;
+ m_rotation = other.m_rotation;
}
ScatterRenderItem::~ScatterRenderItem()
{
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/scatterrenderitem_p.h b/src/datavisualization/data/scatterrenderitem_p.h
index 5a97c1e9..45066dd8 100644
--- a/src/datavisualization/data/scatterrenderitem_p.h
+++ b/src/datavisualization/data/scatterrenderitem_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -31,7 +31,7 @@
#include "abstractrenderitem_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class Scatter3DRenderer;
@@ -43,35 +43,35 @@ public:
virtual ~ScatterRenderItem();
inline const QVector3D &position() const { return m_position; }
- inline void setPosition(const QVector3D &pos);
+ inline void setPosition(const QVector3D &pos)
+ {
+ if (m_position != pos) {
+ m_position = pos;
+ // Force reformatting on next access by setting label string to null string
+ if (!m_selectionLabel.isNull())
+ setSelectionLabel(QString());
+ }
+ }
+
+ inline QQuaternion rotation() const { return m_rotation; }
+ inline void setRotation(const QQuaternion &rotation)
+ {
+ if (m_rotation != rotation)
+ m_rotation = rotation;
+ }
inline bool isVisible() const { return m_visible; }
inline void setVisible(bool visible) { m_visible = visible; }
- // TODO: Will we ever support item specific size? If not, remove.
- //inline void setSize(float size);
- //inline float size() const { return m_size; }
-
protected:
QVector3D m_position;
+ QQuaternion m_rotation;
bool m_visible;
- //float m_size; // TODO in case we need a fourth variable that adjusts scatter item size
friend class QScatterDataItem;
};
-
-void ScatterRenderItem::setPosition(const QVector3D &pos)
-{
- if (m_position != pos) {
- m_position = pos;
- // Force reformatting on next access by setting label string to null string
- if (!m_selectionLabel.isNull())
- setSelectionLabel(QString());
- }
-}
-
typedef QVector<ScatterRenderItem> ScatterRenderItemArray;
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualization/data/surfaceitemmodelhandler.cpp b/src/datavisualization/data/surfaceitemmodelhandler.cpp
index 10b4ccc5..767425e9 100644
--- a/src/datavisualization/data/surfaceitemmodelhandler.cpp
+++ b/src/datavisualization/data/surfaceitemmodelhandler.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "surfaceitemmodelhandler_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
SurfaceItemModelHandler::SurfaceItemModelHandler(QItemModelSurfaceDataProxy *proxy, QObject *parent)
: AbstractItemModelHandler(parent),
@@ -131,7 +131,7 @@ void SurfaceItemModelHandler::resolveModel()
for (int j = 0; j < columnList.size(); j++) {
newProxyRow[j].setPosition(QVector3D(columnList.at(j).toFloat(),
itemValueMap[rowKey][columnList.at(j)],
- rowList.at(i).toFloat()));
+ rowList.at(i).toFloat()));
}
}
}
@@ -139,4 +139,4 @@ void SurfaceItemModelHandler::resolveModel()
m_proxy->resetArray(m_proxyArray);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/surfaceitemmodelhandler_p.h b/src/datavisualization/data/surfaceitemmodelhandler_p.h
index de0d2885..ae426433 100644
--- a/src/datavisualization/data/surfaceitemmodelhandler_p.h
+++ b/src/datavisualization/data/surfaceitemmodelhandler_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "abstractitemmodelhandler_p.h"
#include "qitemmodelsurfacedataproxy_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class SurfaceItemModelHandler : public AbstractItemModelHandler
{
@@ -48,6 +48,6 @@ protected:
QSurfaceDataArray *m_proxyArray; // Not owned
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif