diff options
Diffstat (limited to 'src/datavisualization/data')
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 |